注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

利用可能なイベントとアクション

このページでは、クエリ、関数、変数、ウィジェット、アプリケーションレベルでSlateで利用可能なすべてのイベントとアクションをリストアップしています。これらのイベントとアクションの設定と使用方法については、追加のドキュメンテーションで学んでください。

グローバルイベント

グローバルイベントとは、アプリケーションレベルで発生するイベントで、個々のコンポーネントやクエリに特化していません。

slate.ready

slate.ready イベントは、ページフレームワークがロードされ、クエリが実行を開始したときにトリガーされます。ページの読み込み時にすぐにトリガーしたいアクション(たとえば、手動クエリを発行するなど)はここで行うべきです。

slate.resize

slate.resize イベントは、ブラウザウィンドウがリサイズされるたびにトリガーされます。ブラウザウィンドウのサイズに基づいてサイズが調整されるウィジェットがある場合、それらもリサイズされます。ただし、一部のウィジェット(チャートなど)には、ブラウザウィンドウのサイズが変更されてもウィジェットが正しいサイズに再描画されるように、redraw アクションをトリガーできます。

slate.onNavigate[page_name]

slate.onNavigate[page_name] は、ユーザーがイベントが追加されたページに移動するたびにトリガーされます。

slate.onPrint

slate.onPrint は、ユーザーが slate.print アクションで以前に開いた印刷モーダルを閉じるたびにトリガーされます。

slate.userStorageChanged

slate.userStorageChanged は、ユーザーストレージが slate.setUserStorage アクションで更新されたときに検出します。このイベントは、ユーザーストレージが別のブラウザタブやウィンドウを通じて更新された場合でもサポートされています。

slate.getMessage

slate.getMessage は、Workshopのような他のアプリケーションのiframes内に存在するSlateアプリケーション向けです。slate.getMessage イベントは、Slateが親iframeからのpostMessageを受け取るたびにトリガーされます。形式は以下の通りです:

{"target": "slate-parent-iframe-event", "message": <payload>}

上記のコードは、JSON形式でデータを表現しています。

  • "target": これは、メッセージが送信されるターゲットを指定するキーです。この例では、"slate-parent-iframe-event"という値が設定されています。これは、特定のイベントや機能を指定するためのものである可能性があります。
  • "message": これは、送信されるメッセージ本体を指定するキーです。 <payload> は、具体的なメッセージ内容を示すプレースホルダー(置き換えるべき値)であり、実際には具体的なデータや値が入ります。
Copied!
1 2 3 4 上記のコードはJSON形式でデータを表現しています。 - `"target"` : これは、メッセージが送られる対象を指定するキーです。この例では、`"slate-parent-iframe-event"`という値が設定されています。これは特定のイベントや機能を指定するためのものと思われます。 - `"message"` : これは送られるメッセージ本体を指定するキーです。`<payload>`は具体的なメッセージ内容を示すプレースホルダー(置き換えるべき値)で、実際には具体的なデータや値が入ります。

slate.getMessageイベントは、子ウィンドウまたは親ウィンドウが以下のターゲットプロパティーが設定されたオブジェクトを含むpostMessageを送信した場合にもトリガーされます:

{
  "target": "SLATE_MESSAGING_SERVICE", // "target": "SLATE_MESSAGING_SERVICE"はメッセージングサービスへのターゲットを指定します。
  ...<payload> // <payload>はメッセージの本体を指します。ここには具体的なメッセージ内容や指示が入ります。
}

イベントがトリガーされます。そして、このイベントのためのJavaScriptペインの中では、メッセージ内のデータが適切に使用できるように、<payload>{{slEventValue}} として利用可能となります。

Slateに送信されるメッセージは、変数の設定など、アクションを実行することもできます: アクションの実行も可能です:

Copied!
1 2 3 4 5 6 { "slateActionOption": { "type": "TRIGGER_ACTION", // アクションをトリガーするタイプ "payload": <アクションのためのペイロード> } }

slate.getBroadcast

ベータ機能

BroadcastChannel のサポートはベータ版です。イベントやアクションとやり取りするための API は変更される可能性があります。

slate.getBroadcastは、Slateが開いた BroadcastChannelからメッセージを受信するたびにトリガーされます。 BroadcastChannelを開くには、slate.createBroadcastChannel アクションを使用します。

メッセージのペイロードは {{slEventValue}}として利用可能で、次のような構造を持っています:

Copied!
1 2 3 4 { "channel": "channel_name", // "channel"はメッセージが送信されるチャンネルの名前を表します "data": <payload> // "data"は送信するメッセージの内容(ペイロード)を表します }

slate.onCloseCheckpoint

slate.onCloseCheckpoint はユーザーが Checkpoint を閉じるたびにトリガーされます。これは閉じられた Checkpoint に関する情報を提供し、{{slEventValue}} として利用可能で、次の構造を持っています:

Copied!
1 2 3 4 5 { "slateCheckpointId": string, // スレートチェックポイントID "status": "cancelled" | "no-checkpoint" | "success", // ステータス。キャンセルされた、チェックポイントなし、または成功という値を取ります "interactionRid": string (optional - if Checkpoint was successful) // 交互作用Rid。これはオプションで、チェックポイントが成功した場合に使用されます }
Copied!
1 2 3 4 // このJSONオブジェクトは、"source"と"message"という2つのキーを持っています。 // "source"の値は"slate-parent-iframe-action"で、どこからのアクションであるかを示しています。 // "message"の値は<payload>で、送信するデータまたはメッセージ本体を示しています。 {"source": "slate-parent-iframe-action", "message": <payload>}
Copied!
1 2 3 4 5 6 7 8 9 10 return { "targetOptions": { // "targetWindow"は送信先のウィンドウを指定します。"child"、"opener"、"parent"から選択できます。 "targetWindow": "child" | "opener" | "parent", // "children"はオプションで、子ウィンドウのIDを指定できます。 "children": ["child-id1", "child-id2"] }, // "message"は送信するデータを指定します。 "message": <payload> }

ターゲットウィンドウが child に設定されている場合、slate.redirectToUrl を使用して設定した子ウィンドウのIDの配列を提供できます。これが提供されていない場合、すべての子ウィンドウにメッセージが送信されます。

opener および parenttargetWindow は、それぞれ window.opener および window.parent に postMessage を実行します。

slate.createBroadcastChannel

ベータ機能

BroadcastChannel サポートはベータ版です。イベントやアクションとのやりとりを行うAPIは変更される可能性があります。

slate.createBroadcastChannel アクションは、指定された名前の BroadcastChannel を作成します。このチャンネルは、同じチャンネル名を持つすべてのブロードキャストチャンネルへのメッセージ送信/受信に使用できます。

このアクションを使用するには、以下のように return 文を追加します: BroadcastChannelについての詳細情報は、MDN web docs ↗を参照してください。

slate.closeBroadcastChannel

ベータ機能

BroadcastChannelのサポートはベータ版です。イベントとアクションとの対話のためのAPIは、変更される可能性があります。

slate.closeBroadcastChannel アクションは、指定した名前の BroadcastChannel を閉じて削除します。

このアクションを使用するには、以下のようにreturn文を追加します。

slate.broadcastMessage

ベータ機能

BroadcastChannel のサポートはベータ版です。イベントとアクションとのやり取りを行う API は変更の可能性があります。

slate.broadcastMessage アクションは、指定した名前のブロードキャストチャンネルにメッセージを投稿します。

このアクションを使用するには、以下のように return 文を追加します:

Copied!
1 2 3 4 5 // 以下のコードは、特定のチャンネルにメッセージを送信するためのJSON形式のデータを返すものです。 return { channel: "my_channel", // メッセージを送信するチャンネルの名前 message: <payload> // 送信するメッセージの内容 };

slate.showCheckpoint

slate.showCheckpoint アクションは、指定した Checkpoint モーダルを開きます。 Checkpoints についての詳細は Checkpoints のドキュメンテーションをご覧ください。

このアクションを使用するには、以下のように return ステートメントを追加します:

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 return { // スレートチェックポイントID(文字列) slateCheckpointId: string; // チェックポイントのタイプ(CheckpointTypeV1) checkpointType: CheckpointTypeV1; // 主要なチェックポイントアイテムID(オプション) // idとtypeを持つオブジェクト primaryCheckpointedItemId?: { id: string; type: CheckpointedItemIdType; }; // 追加のチェックポイントアイテムID(オプション) // idとtypeを持つオブジェクトの配列 additionalCheckpointedItemIds?: { id: string; type: CheckpointedItemIdType; }[]; };
Copied!
1 2 3 4 // このコードは、ユーザーにSlate内のウィジェットとどのように対話するかを尋ねるプロンプトを返します。 return { "prompt": "Slateのウィジェットとはどのように対話しますか?" };

slate.logout

slate.logout アクションは、ユーザーがログアウトするかどうかを確認するためのブラウザダイアログを開きます。ユーザーが確認すると、Foundryからログアウトされます。

slate.copyToClipboard

slate.copyToClipboard アクションは、パネル内のJavaScriptコードから返される値をユーザーのクリップボードにコピーします。

slate.redirectToUrl

slate.redirectToUrl アクションは、ユーザーをアクションに渡されたURLにリダイレクトします。このアクションを slate.ready イベントと一緒に使用することはお勧めしません。なぜなら、その場合、ページの読み込みが完了するとすぐにユーザーがリダイレクトされ、編集が困難になるからです。もし、ユーザーのユースケースが slate.redirectToUrl アクションを slate.ready イベントと一緒に使用することを必要とする場合は、アクションを無効にするためのクエリパラメーターを追加することをお勧めします。

また、リダイレクトのターゲットを制御することもできます。これを使用するには、アクションを作成し、以下のプロパティを持つオブジェクトを返します:

Copied!
1 2 3 4 return { "url": "https://www.palantir.com/", // URLを指定します "target": "_blank" (optional) // これはオプションで、新しいタブでURLを開く場合に使用します };

子ウィンドウからpostMessagesを送信したり受信したりしたい場合は、子のためのユニークIDを付けて windowSharingOptions フィールドを追加することができます:

Copied!
1 2 3 4 5 6 7 return { "url": "https://www.palantir.com/", "target": "_blank", // (任意) 新しいタブでリンクを開く "windowSharingOptions": { "id": "child-window-id1" // 子ウィンドウの識別子 } };