注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Workshop では、別の Workshop モジュールを埋め込むためのサポート機能として、埋め込みモジュール ウィジェットと Loop セクションレイアウト("loop レイアウト")の2つの機能を提供しています。
これらの機能により、他の Workshop モジュール内に埋め込むことができる Workshop モジュールを構築できます。埋め込みモジュールは Workshop が提供するすべての機能をサポートしていますが、埋め込みモジュールと埋め込まれるモジュールの相互作用には一部制限があります。このドキュメントでは、あるモジュールを埋め込むモジュールを "親" モジュール、埋め込まれるモジュールを "子" モジュールと呼ぶことがあります。このドキュメントで "埋め込みモジュール" と言及している場合、そのリファレンスは、埋め込みモジュール ウィジェットと、Loop レイアウトに埋め込まれたモジュールの両方に適用されます(特に指定がない限り)。
埋め込みモジュールには、以下のようないくつかのユースケースがあります。
埋め込みモジュールを使用すると、単一の子モジュールを設定し、多数の親モジュールで再利用できます。作成できる埋め込みモジュールの例は以下の通りです。
埋め込みモジュールは、loop レイアウトまたは個々の埋め込みモジュールウィジェットを通じて、単一の親モジュール内で多数の回使用できます。同じ親モジュール内で多数の回埋め込まれる子モジュールの例は以下の通りです。
埋め込みモジュールを使用して、大規模な親モジュールを多数の子モジュールに分割し、保守性を向上させることができます。これにより、各子モジュールが独自の変数スコープを持ち、異なる Workshop ビルダーが同時に各子モジュールを編集できます。
埋め込みモジュールを使用して、Marketplace と一緒に Workshop モジュールをパッケージ化する際のカスタマイズ領域を提供できます。埋め込まれた子モジュールは依存関係としてパッケージ化され、インストール時に Marketplace ユーザーは同じモジュールインターフェース変数タイプ署名を持つモジュールを選択して、インストールされた親モジュールの一部をカスタマイズすることができます。
子モジュールのモジュールレベルでの設定、例えば ルーティング、状態保存、自動更新 などは使用されません。ワークフローによっては、これらを親モジュールレベルで設定し、変数を モジュールインターフェース を通じて子モジュールに渡すことができます。
埋め込みモジュールは イベントパス の概念をサポートしていません。イベントパス は、ビルダーが親モジュールから子モジュールにイベント設定を渡すことを可能にし、子モジュールが親モジュールからの設定を参照するイベントを呼び出すことを可能にします(例えば、子モジュールが親モジュールでオーバーレイを開くイベントを呼び出す)。
親モジュールは、子が親のレイアウト状態を変更するための手段として、レイアウト状態をバックアップする変数を子モジュールのモジュールインターフェース変数に渡すことができます。
Workshop の他の "Foundry apps" ウィジェットと同様に、他の Workshop モジュールで使用される埋め込みモジュールのプロビナンスは、Data Lineage によって報告されません。
モジュールは、直接的にも子モジュールの連鎖を通じても自身を埋め込むことはできません。自己参照が設定されている場合、モジュールはビルダーに警告を表示し、ビューワーには何もレンダリングしません。これは、無限の埋め込みモジュールの連鎖を防ぐためです。再帰的または自己参照的な埋め込みモジュールが必要なユースケースがある場合は、Palantir の代表者にお問い合わせください。
埋め込みモジュールは、独自の権限設定を持つ別のリソースです。ユーザーが視聴権限を持たない子モジュールを埋め込む親モジュールを表示する権限がある場合、ユーザーは "モジュールの読み込みに失敗しました" というエラーを見ることになります。
埋め込みモジュールのパフォーマンス特性は、通常の Workshop モジュールと同様のものであるべきです。注目すべき違いの一つは、埋め込みモジュールの初期化が表示されるまで遅延されることです。初期化されたら、埋め込みモジュールはまるで全体のモジュールが同じ場所で設定されたかのように動作することが期待されます。
子モジュールの設定はインスタンスごとに1回初期化されることに注意してください。これにはその変数を初期化するコストがかかりますが、多数のインスタンスで再利用される場合、子モジュールの設定は1回だけ読み込まれる必要があります。
埋め込みモジュールと loop レイアウトの使用は、ビルダーが非常に大きく、複雑なモジュールを設定することをはるかに容易にします。ビルダーは、一度に表示されるウィジェットと変数の総数、特に読み込みにコストがかかるものに注意する必要があります。
埋め込みモジュール ウィジェットと Loop レイアウトは、モジュールが モバイルモード の場合にのみ、他のモバイルモジュールを埋め込むことができます。