ユニバーサルエディターイベント events

リモートアプリのコンテンツや UI の変更に対応するのに使用できる、ユニバーサルエディターが送信する様々なイベントについて説明します。

はじめに introduction

アプリケーションでは、ページまたはコンポーネントの更新に関して様々な要件がある場合があります。したがって、ユニバーサルエディターは、定義済みのイベントをリモートアプリケーションに送信します。リモートアプリケーションに送信されたイベントに対するカスタムイベントリスナーがない場合、universal-editor-cors パッケージによって提供されるフォールバックイベントリスナーが実行されます。

すべてのイベントは、リモートページの影響を受ける DOM 要素で呼び出されます。イベントは、universal-editor-cors パッケージによって提供されるデフォルトのイベントリスナーが登録されている BODY 要素までバブルアップします。コンテンツ用のイベントと UI 用のイベントがあります。

すべてのイベントは命名規則に従います。

  • aue:<content-or-ui>-<event-name>

例えば、aue:content-updateaue:ui-select です。

イベントには、リクエストと応答のペイロードが含まれ、対応する呼び出しが成功するとトリガーされます。呼び出しとそのペイロードの例について詳しくは、ユニバーサルエディターの呼び出しドキュメントを参照してください。

コンテンツ更新イベント content-events

aue:content-add content-add

aue:content-add イベントは、コンテナに新しいコンポーネントを追加した際にトリガーされます。

ペイロードは、ユニバーサルエディターサービスからのコンテンツと、コンポーネント定義からのフォールバックコンテンツです。

{
    details: {
        request: request payload;   // what is sent to the service
        response: {                 // what is returned by the service
            resource: string;       // newly created content resource
            updates: [{
                resource: string;   // resource to update
                type: string;       // type of instrumentation
                content?: string;   // content to replace
            }]
        }
    }
}

aue:content-details content-details

プロパティパネルにコンポーネントが読み込まれると、aue:content-details イベントがトリガーされます。

ペイロードは、コンポーネントのコンテンツであり、オプションでそのスキーマでもあります。

{
    details: {
        content: object             // content object
        model: [object]             // model object
        request: request payload;   // what is sent to the service
        response: response payload; // what is returned by the service
    }
}

aue:content-move content-move

aue:content-move イベントは、コンポーネントを移動した際にトリガーされます。

ペイロードは、コンポーネント、ソースコンテナ、ターゲットコンテナです。

{
    details: {
        from: string;                   // container we move the component from
        component: string;              // component we move
        to: string;                     // container we move the component to
        before: string;                    // before which component shall we place the component
        request: request payload;       // what is sent to the service
        response: response payload;     // what is returned by the service
    }
}

aue:content-patch content-patch

プロパティパネルでコンポーネントのデータが更新されると、aue:content-patch イベントがトリガーされます。

ペイロードは、更新したプロパティの JSON パッチです。

{
    details: {
        patch: {
            name: string;               // attribute which is updated
            value: string;              // new value which is stored to the attribute
        },
        request: request payload;       // what is sent to the service
        response: response payload;     // what is returned by the service
    }
}

aue:content-remove content-remove

aue:content-remove イベントは、コンポーネントをコンテナから削除した際にトリガーされます。

ペイロードは、削除したコンポーネントの項目 ID です。

{
    details: {
        resource: string;               // the resource which got removed
        request: request payload;       // what is sent to the service
        response: response payload;     // what is returned by the service
    }
}

aue:content-update content-update

aue:content-update イベントは、コンポーネントのプロパティをコンテキスト内で更新した際にトリガーされます。

ペイロードは、更新した値です。

{
    details: {
        value: string;                  // updated value
        request: request payload;       // what is sent to the service
        response: response payload;     // what is returned by the service
    }
}

ペイロードの受け渡し passing-payloads

すべてのコンテンツ更新イベントでは、リクエストしたペイロードと応答ペイロードがイベントに渡されます。例:更新呼び出しの場合:

リクエストペイロード:

{
  "connections": [
    {
      "name": "aemconnection",
      "protocol": "aem",
      "uri": "https://author-p7452-e12433.adobeaemcloud.com"
    }
  ],
  "target": {
    "resource": "urn:aemconnection:/content/dam/wknd-shared/en/magazine/arctic-surfing/aloha-spirits-in-northern-norway/jcr:content/data/master",
    "type": "text",
    "prop": "title"
  },
  "value": "Alhoa Spirit Northern Norway!"
}

応答ペイロード

{
    "updates": [
        {
            "resource": "urn:aemconnection:/content/dam/wknd-shared/en/magazine/arctic-surfing/aloha-spirits-in-northern-norway/jcr:content/data/master",
            "prop": "title",
            "type": "text"
        }
    ]
}

UI イベント ui-events

aue:ui-publish ui-publish

aue:ui-publish イベントは、コンテンツを公開した際に、(BODY レベルでの呼び出しにより)トリガーされます。

ペイロードは、項目 ID とその公開ステータスのリストです。

aue:ui-select ui-select

aue:ui-select イベントは、コンポーネントを選択した際にトリガーされます。

ペイロードは、選択したコンポーネントの項目 ID、項目プロパティおよび項目タイプです。

{
    details: {
        resource: string;       // resource of the selected
        prop: string;           // prop of the selected
        type: string;           // type of the selected
        selected: boolean;      // was selected or unselected
    }
}

aue:ui-preview ui-preview

aue:ui-preview イベントは、ページの編集モードを​ プレビュー ​に変更した際にトリガーされます。

ペイロードは、このイベントの場合は空です。

{
    details: {}
}

aue:ui-edit ui-edit

aue:ui-edit イベントは、ページの編集モードを​ 編集 ​に変更した際にトリガーされます。

ペイロードは、このイベントの場合は空です。

{
    details: {}
}

aue:ui-viewport-change ui-viewport-change

aue:ui-viewport-change イベントは、ビューポートのサイズを変更した際にトリガーされます。

ペイロードは、ビューポートのディメンションです。

{
    details: {
        height: number?;        // height of the viewport. Undefined when fullscreen
        width: number?;         // width of the viewport. Undefined when fullscreen
    }
}

aue:initialized initialized

aue:initialized イベントは、ユニバーサルエディターに正常に読み込まれたことをリモートページに通知するためにトリガーされます。

ペイロードは、このイベントの場合は空です。

{
    details: {}
}

フォールバックイベントリスナー fallback-listeners

コンテンツの更新 content-update-fallbacks

イベント
動作
aue:content-add
ページの再読み込み
aue:content-details
何もしない
aue:content-move
コンポーネントのコンテンツ/構造をターゲット領域に移動
aue:content-patch
ページの再読み込み
aue:content-remove
DOM 要素を削除
aue:content-update
ペイロードを使用して innerHTML を更新

UI イベント ui-event-fallbacks

イベント
動作
aue:ui-publish
何もしない
aue:ui-select
選択した要素までスクロール
aue:ui-preview
HTML タグに class="adobe-ue-preview" を追加
aue:ui-edit
HTML タグに class=adobe-ue-edit" を追加
aue:ui-viewport-change
何もしない
aue:initialized
何もしない

その他のリソース additional-resources

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab