Inhaltsfragment-Selektor – Verwandte Eigenschaften content-fragment-selector-related-properties

Über den Micro-Frontend-Inhaltsfragment-Selektor können Sie Inhaltsfragmente im Repository durchsuchen bzw. suchen und in Ihrer Anwendung verwenden.

Mit den folgenden Eigenschaften können Sie anpassen, wie der Inhaltsfragment-Selektor gerendert wird und wie er verwendet werden kann.

Eigenschaften des Inhaltsfragment-Selektors content-fragment-selector-properties

Eigenschaft
Typ
Erforderlich
Standard
Beschreibung
ref
fragmentSelectorRef
Nein
Verweis auf die ContentFragmentSelector-Instanz, die den Zugriff auf bereitgestellte Funktionen wie reload ermöglicht.
apiKey
Zeichenfolge
Nein
API-Schlüssel für Analytics in digitalData.page.attributes.apiKey. Wird nur für das Tracking verwendet - nicht für API-Aufrufe. Wird dies nicht angegeben, wird es von der imsToken (client_id) abgeleitet, die auf den Standardwert des Pakets zurückfällt.
imsToken
Zeichenfolge
Nein
Für die Authentifizierung verwendetes IMS-Token Wenn dies nicht angegeben wird, wird der IMS-Anmeldefluss initiiert.
repoId
Zeichenfolge
Nein
Repository-ID für den Fragmentselektor. Wenn angegeben, stellt der Selektor automatisch eine Verbindung zum angegebenen Repository her, und das Dropdown-Menü des Repositorys wird ausgeblendet. Wenn kein Repository angegeben wird, kann der Benutzer ein Repository aus der Liste der verfügbaren Repositorys auswählen, auf die er Zugriff hat.
allowedRepositoryIds
Zeichenfolge[]
Nein
Liste der Repository-IDs zum Filtern von Repositorys und Inhaltsfragmenten im Inhaltsfragment-Selektor. Wenn Repository-IDs bereitgestellt werden, sind nur diese Repositorys in der Repository-Auswahl sichtbar. Wenn kein -Array oder leeres -Array bereitgestellt wird, stehen alle Repositorys zur Verfügung, auf die der Benutzer Zugriff hat.
defaultRepoId
Zeichenfolge
Nein
Repository-ID, die beim Anzeigen des Repository-Selektors standardmäßig ausgewählt wird. Wird nur verwendet, wenn repoId nicht angegeben wird. Wenn repoId festgelegt ist, wird der Repository-Selektor ausgeblendet und dieser Wert ignoriert.
orgId
Zeichenfolge
Nein
Für die Authentifizierung verwendete Organisations-ID. Wenn kein Wert angegeben ist, kann der Benutzer ein Repository aus verschiedenen Organisationen auswählen, auf die er Zugriff hat. Wenn der Benutzer keinen Zugriff auf ein Repository oder eine Organisation hat, wird der Inhalt nicht geladen.
locale
Zeichenfolge
Nein
„en-US“
Gebietsschema.
env
Zeichenfolge
Nein
Bereitstellungsumgebung. Siehe den Env für zulässige Umgebungsnamen.
filters
Fragmentfilter
Nein
{ folder: "/content/dam" }
Auf die Liste der Inhaltsfragmente anzuwendende Filter Standardmäßig werden Fragmente unter /content/dam angezeigt.
repoFilters
Record<String, FragmentFilterWithReadOnlySupport>
Nein
Repository-spezifische Filterüberschreibungen, die nach Repository-ID verschlüsselt sind.
Verwenden Sie , wenn der Selektor mehrere Repositorys verfügbar macht, aber jedes unterschiedliche Filter benötigt (z. B. Status: Entwurf für eine Autoreninstanz, während andere Status: Veröffentlicht, Geändert verwenden).
Wenn das aktive Repository einen Eintrag hat, ersetzt es Filter für dieses Repository vollständig (die Standardwerte werden nicht in zusammengeführt). Daher muss jede Überschreibung den vollständigen benötigten Filtersatz deklarieren. Repositorys ohne Eintrag greifen auf Filter zurück. Wenn Sie also auf repoFilters verzichten, bleibt das vorhandene Verhalten erhalten. Die Überschreibung wird automatisch erneut angewendet, wenn der Benutzer das Repository wechselt. Jeder Eintrag unterstützt dieselben schreibgeschützten Markierungen wie Filter.
isOpen
Boolesch
Nein
false
Markierung, um zu steuern, ob der Selektor geöffnet oder geschlossen ist.
noWrap
Boolesch
Nein
false
Bestimmt, ob der Fragmentselektor ohne Umbruchsdialogfeld gerendert wird. Wenn auf true gesetzt, wird der Fragmentselektor direkt in den übergeordneten Container eingebettet. Nützlich für die Integration der -Auswahl in benutzerdefinierte Layouts oder Workflows.
onSelectionChange
({ contentFragments: ContentFragmentSelection, domainName?: string, tenantInfo?: string, repoId?: string, deliveryRepos?: DeliveryRepository[] }) => void
Nein
Die Rückruffunktion wird ausgelöst, wenn sich die Auswahl von Inhaltsfragmenten ändert. Stellt die aktuell ausgewählten Fragmente, den Domain-Namen, Mandanteninformationen, Repository-ID und Versand-Repositorys bereit.
onDismiss
() => void
Nein
Rückruffunktion, die ausgelöst wird, wenn die Abweisungsaktion ausgeführt wird (z. B. Schließen des Selektors).
onSubmit
({ contentFragments: ContentFragmentSelection, domainName?: string, tenantInfo?: string, repoId?: string, deliveryRepos?: DeliveryRepository[] }) => void
Nein
Die Rückruffunktion wird ausgelöst, wenn der Benutzer seine Auswahl bestätigt. Empfängt die ausgewählten Inhaltsfragmente, den Domain-Namen, die Mandanteninformationen, die Repository-ID und die Versand-Repositorys.
theme
„hell“ oder „dunkel“
Nein
Design für den Fragmentselektor. Standardmäßig ist dies auf das UnifiedShell-Umgebungsdesign festgelegt.
selectionType
„einfach“ oder „mehrfach“
Nein
single
Der Auswahltyp kann verwendet werden, um die Auswahl für den Fragmentselektor einzuschränken.
maxItems
number
Nein
Maximale Anzahl an Elementen, die beim multiple von selectionType ausgewählt werden können. Wenn nicht anders angegeben, ist eine unbegrenzte Auswahl zulässig. Nicht anwendbar für den Einzelauswahlmodus.
dialogSize
„fullscreen“ oder „fullscreenTakeover“
Nein
fullscreen
Optionale Prop zur Steuerung der Dialogfeldgröße.
runningInUnifiedShell
Boolesch
Nein
Ob DestinationSelector unter UnifiedShell oder eigenständig ausgeführt wird.
selectedFragments
InhaltsfragmentIdentifier[]
Nein
[]
Die anfängliche Auswahl von Inhaltsfragmenten, die beim Öffnen des Selektors vorausgewählt werden sollen.
hipaaEnabled
Boolesch
Nein
false
Gibt an, ob die HIPAA-Konformität aktiviert ist.
inventoryView
InventoryViewType
Nein
table
Standardansichtstyp des Inventars, der im Selektor verwendet werden soll.
inventoryViewToggleEnabled
Boolesch
Nein
false
Gibt an, ob der Umschalter für die Bestandsansicht aktiviert ist, sodass Benutzende zwischen Tabellen- und Rasteransichten wechseln können.
selectFields
Boolesch
Nein
false
Gibt an, ob der Feldauswahlschritt aktiviert ist. Bei der true wählt der Benutzer die Felder aus, die für jedes ausgewählte Fragment verfügbar gemacht werden sollen, und die ausgewählten Felder werden als selectedFields pro Fragment auf den onSelectionChange- und onSubmit-Payloads zurückgegeben. Wenn false (Standard) wird der Schritt übersprungen und selectedFields in jedem Fragment weggelassen.
variationsFilters
object
Nein
Optional.
Passt das Varianten-Dropdown-Menü an (nicht die Hauptliste - verwenden Sie dazu Filter). Heute wird nur der Status unterstützt, wobei „PUBLISHED“ der unterstützte Wert ist (z. B. { status: [„PUBLISHED“] }). Andere Schlüssel werden ignoriert. Lassen Sie die Eigenschaft aus, um alle Varianten anzuzeigen.
rememberState
Boolesch
Nein
false
Wenn true, speichert der Selektor die aktiven Filter, gespeicherten Suchvorgänge und das zuletzt verwendete Repository in IndexedDB und stellt sie beim nächsten Laden automatisch wieder her. Opt-in - Bestehende Verbraucher benötigen keine Änderungen, wenn sie weggelassen werden.
amsRepositories
Array<{ label: string; value: string; orgId?: string }>
Nein
Optionale Liste der AMS-Repositorys, die in die Repository-Auswahl aufgenommen werden sollen. Diese werden mit Cloud-Repositorys aus dem Discovery-Service verkettet. Jeder Eintrag kann eine optionale orgId für Benutzende mit mehreren Organisationen enthalten. Wenn sie weggelassen wird, wird die orgId-Eigenschaft der obersten Ebene verwendet, gefolgt von einer Adobe IMS-Suche. AMS-Repos verwenden immer die imsToken (kein Austausch von Cloud-Token). Abhängig von allowedRepositoryIds Filterung, wenn diese Eigenschaft ebenfalls bereitgestellt wird.

ImsAuthProps-Eigenschaften imsauthprops-properties

Die ImsAuthProps-Eigenschaften definieren die Authentifizierungsinformationen und den Fluss, mit dem der Inhaltsfragment-Selektor ein imsToken abruft. Durch Festlegen dieser Eigenschaften können Sie steuern, wie sich der Authentifizierungsfluss verhält, und Listener für verschiedene Authentifizierungsereignisse registrieren.

Eigenschaftsname
Beschreibung
imsClientId
Ein Zeichenfolgenwert, der die für Authentifizierungszwecke verwendete IMS-Client-ID darstellt. Dieser Wert wird von Adobe bereitgestellt und ist spezifisch für Ihre Adobe AEM CS-Organisation.
imsScope
Beschreibt die bei der Authentifizierung verwendeten Bereiche. Die Bereiche bestimmen den Umfang des Zugriffs, den die Anwendung auf die Ressourcen Ihrer Organisation hat. Mehrere Bereiche werden durch Kommas voneinander getrennt.
redirectUrl
Stellt die URL dar, an die Benutzende nach der Authentifizierung weitergeleitet werden. Dieser Wert wird normalerweise auf die aktuelle URL der Anwendung gesetzt. Wenn keine redirectUrl angegeben wird, verwendet ImsAuthService die zum Registrieren der imsClientId verwendete redirectUrl.
modalMode
Ein boolescher Wert, der angibt, ob der Authentifizierungsfluss in einem Modal (Popup-Fenster) angezeigt werden soll oder nicht. Wenn true festgelegt ist, wird der Authentifizierungsfluss in einem Popup-Fenster angezeigt. Wenn false festgelegt ist, wird der Authentifizierungsfluss bei vollständigem Neuladen der Seite angezeigt. Hinweis::_Für ein besseres Anwendererlebnis können Sie diesen Wert dynamisch steuern, wenn Popup-Fenster des Browsers deaktiviert sind.
onImsServiceInitialized
Eine Rückruffunktion, die aufgerufen wird, wenn der Adobe IMS-Authentifizierungsdienst initialisiert wird. Diese Funktion akzeptiert einen Parameter namens service, ein Objekt, das den Adobe IMS-Dienst darstellt. Siehe ImsAuthService für weitere Informationen.
onAccessTokenReceived
Eine Rückruffunktion, die aufgerufen wird, wenn ein imsToken vom Adobe IMS-Authentifizierungsdienst empfangen wird. Diese Funktion akzeptiert einen Parameter namens imsToken, eine Zeichenfolge, die das Zugriffstoken darstellt.
onAccessTokenExpired
Eine Rückruffunktion, die aufgerufen wird, wenn ein Zugriffstoken abgelaufen ist. Diese Funktion wird normalerweise verwendet, um einen neuen Authentifizierungsfluss auszulösen und so ein neues Zugriffstoken zu erhalten.
onErrorReceived
Eine Rückruffunktion, die aufgerufen wird, wenn während der Authentifizierung ein Fehler auftritt. Diese Funktion akzeptiert zwei Parameter: den Fehlertyp und die Fehlermeldung. Der Fehlertyp ist eine Zeichenfolge, die den Fehlertyp darstellt, und die Fehlermeldung ist eine Zeichenfolge, die die Fehlermeldung darstellt.

Eigenschaften von ImsAuthService imsauthservice-properties

Die Klasse ImsAuthService regelt den Authentifizierungsfluss für den Inhaltsfragment-Selektor. Sie ist für den Erhalt eines imsToken über den Adobe IMS-Authentifizierungsdienst verantwortlich. Das imsToken wird verwendet, um die Benutzerin oder den Benutzer zu authentifizieren und den Zugriff auf das Adobe Experience Manager (AEM) CS-Repository zu autorisieren. Der ImsAuthService verwendet die ImsAuthProps-Eigenschaften, um den Authentifizierungsfluss zu steuern und Listener für verschiedene Authentifizierungsereignisse zu registrieren. Sie können die praktische Funktion registerContentFragmentSelectorAuthService zum Registrieren der Instanz ImsAuthService beim Inhaltsfragment-Selektor verwenden. Die folgenden Funktionen sind in der Klasse ImsAuthService verfügbar. Wenn Sie jedoch die Funktion registerContentFragmentSelectorAuthService verwenden, müssen Sie diese Funktionen nicht direkt aufrufen.

Funktionsname
Beschreibung
isSignedInUser
Bestimmt, ob die Person derzeit beim Dienst angemeldet ist, und gibt entsprechend einen booleschen Wert zurück.
getImsToken
Ruft den imsToken für den aktuell angemeldeten Benutzer ab, der zum Authentifizieren von Anforderungen an andere Services verwendet werden kann, z. B. zum Generieren von Asset-Ausgabedarstellungen.
signIn
Startet den Anmeldeprozess für die Person. Diese Funktion verwendet die ImsAuthProps, um die Authentifizierung in einem Popup oder beim vollständigem Neuladen einer Seite anzuzeigen.
signOut
Meldet die Person vom Dienst ab, macht ihr Authentifizierungs-Token ungültig und fordert sie auf, sich erneut anzumelden, um auf geschützte Ressourcen zuzugreifen. Durch Aufrufen dieser Funktion wird die aktuelle Seite neu geladen.
refreshToken
Aktualisiert das Authentifizierungs-Token für die derzeit angemeldete Person, verhindert das Ablaufen des Tokens und stellt einen unterbrechungsfreien Zugriff auf geschützte Ressourcen sicher. Gibt ein neues Authentifizierungs-Token zurück, das für nachfolgende Anforderungen verwendet werden kann.

Typ der Inhaltsfragmentauswahl contentfragmentselection-type

Der ContentFragmentSelection stellt die Struktur der Inhaltsfragmente dar, die vom Inhaltsfragmentselektor zurückgegeben werden, wenn ein Benutzer Fragmente auswählt.

Typdefinitionen type-definitions

ContentFragmentSelection contentfragmentselection

type ContentFragmentSelection = {
    id: string;
    path: string;
    title: string;
    model: ContentFragmentModel;
    variations: string[];
    status: string;
    publishedBy: string;
    publishedByFullName: string;
    publishedDate: number | undefined;
    modifiedBy: string;
    modifiedByFullName: string;
    modifiedDate: number;
    createdBy: string;
    createdByFullName: string;
    createdDate: number;
    selectedFields?: Record<string, unknown>;
    selectedTemplateId?: string | null;
}[];

ContentFragmentModel

type ContentFragmentModel = {
    name: string;
    id: string;
    path?: string;
    tagIds?: string[];
};

Eigenschaften properties

ContentFragmentSelection-Eigenschaften contentfragmentselection-properties

Eigenschaft
Typ
Erforderlich
Beschreibung
id
Zeichenfolge
Ja
Eindeutige Kennung für das Inhaltsfragment
path
Zeichenfolge
Ja
Vollständiger Pfad zum Fragment im DAM (z. B. /content/dam/my-project/article-fragment)
title
Zeichenfolge
Ja
Titel des Inhaltsfragments anzeigen
model
ContentFragmentModel
Ja
Vollständige Informationen zum Inhaltsfragmentmodell
variations
Zeichenfolge[]
Ja
Array von Variantennamen, die für dieses Fragment verfügbar sind (z. B. ["master", "mobile", "tablet"])
status
Zeichenfolge
Ja
Veröffentlichungsstatus des Fragments (z. B. „PUBLISHED“, „MODIFIED“, „DRAFT“, „NEW“, „UNPUBLISHED„)
publishedBy
Zeichenfolge
Ja
E-Mail-Adresse/Benutzername der Person, die das Fragment veröffentlicht hat
publishedByFullName
Zeichenfolge
Ja
Vollständiger Name des Benutzers, der das Fragment veröffentlicht hat
publishedDate
Zahl
nicht definiert
Ja
modifiedBy
Zeichenfolge
Ja
E-Mail-Adresse/Benutzername der Person, die das Fragment zuletzt geändert hat
modifiedByFullName
Zeichenfolge
Ja
Vollständiger Name des Benutzers, der das Fragment zuletzt geändert hat
modifiedDate
number
Ja
Zeitstempel (in Millisekunden), wann das Fragment zuletzt geändert wurde
createdBy
Zeichenfolge
Ja
E-Mail-Adresse/Benutzername der Person, die das Fragment erstellt hat
createdByFullName
Zeichenfolge
Ja
Vollständiger Name des Benutzers, der das Fragment erstellt hat
createdDate
number
Ja
Zeitstempel (in Millisekunden), wann das Fragment erstellt wurde
selectedFields
Record<string, unknown>
Nein
Zuordnung des Feldnamens → Feldwerts für die Felder, die der Benutzer im Schritt zur Feldauswahl ausgewählt hat. Schlüssel sind Feldnamen; Werte spiegeln das zugrunde liegende ContentFragmentField["values"] wider d. h. jeder Wert ist ein Array von Primitiven (string[], boolean[], number[], …), deren Elementtyp vom Modelltyp des Felds abhängt. Nur vorhanden, wenn der Selektor mit selectFields={true} geöffnet wurde und der Benutzer mindestens ein Feld für dieses Fragment ausgewählt hat; andernfalls ausgelassen.
selectedTemplateId
string | null
Nein
ID der HTML-Vorlage, die für dieses Fragment im Vorlagenwähler des Bedienfelds „Schnelldetails“ ausgewählt wurde (Upstream-@aem-sites/fragment-selector). null bedeutet, dass die generische (Standard-)Vorlage explizit ausgewählt wurde - eine echte Auswahl, die weitergeleitet wird. Der Schlüssel wird vollständig ausgelassen wenn nichts ausgewählt wurde (z. B. wurde die Vorlagenauswahl für dieses Fragment nie geöffnet oder der Upstream-Umschalter zum Deaktivieren der Auswahl ist deaktiviert).

ContentFragmentModel-Eigenschaften contentfragmentmodel-properties

Eigenschaft
Typ
Erforderlich
Beschreibung
name
Zeichenfolge
Ja
Anzeigename des Inhaltsfragmentmodells
id
Zeichenfolge
Ja
Eindeutige Kennung für das Modell
path
Zeichenfolge
Nein
Vollständiger Pfad zur Modelldefinition (z. B. /conf/my-project/settings/dam/cfm/models/article)
tagIds
Zeichenfolge[]
Nein
Array von Tag-IDs, die mit dem Modell verknüpft sind

Anwendungsbeispiel example-usage

Einfaches Beispiel basic-example

PureJSContentFragmentSelectors.renderContentFragmentSelectorWithAuthFlow(
    container,
    {
        orgId: "YOUR_ORG_ID@AdobeOrg",
        onSubmit: ({ contentFragments, domainName, repoId }) => {
            // contentFragments is of type ContentFragmentSelection
            contentFragments.forEach(fragment => {
                console.log('Fragment ID:', fragment.id);
                console.log('Fragment Path:', fragment.path);
                console.log('Fragment Title:', fragment.title);
                console.log('Model Name:', fragment.model?.name);
                console.log('Model Path:', fragment.model?.path);
                console.log('Variations:', fragment.variations);
                console.log('Status:', fragment.status);
                console.log('Published By:', fragment.publishedBy);
                console.log('Published By Full Name:', fragment.publishedByFullName);
                console.log('Published Date:', new Date(fragment.publishedDate));
                console.log('Modified By:', fragment.modifiedBy);
                console.log('Modified By Full Name:', fragment.modifiedByFullName);
                console.log('Modified Date:', new Date(fragment.modifiedDate));
                console.log('Created By:', fragment.createdBy);
                console.log('Created By Full Name:', fragment.createdByFullName);
                console.log('Created Date:', new Date(fragment.createdDate));
                // Only present when the selector was opened with `selectFields={true}`
                // and the user picked at least one field for this fragment.
                if (fragment.selectedFields) {
                    console.log('Selected Fields:', fragment.selectedFields);
                }
                // Only present when a template was chosen in the Quick Details panel;
                // `null` means the generic (default) template was picked.
                if (fragment.selectedTemplateId !== undefined) {
                    console.log('Selected Template Id:', fragment.selectedTemplateId);
                }
            });
        }
    }
);

Vollständige Beispielantwort complete-example-response

{
    contentFragments: [
        {
            id: "fragment-uuid-123",
            path: "/content/dam/my-project/article-fragment",
            title: "My Article Fragment",
            model: {
                name: "Article",
                id: "model-id-456",
                path: "/conf/my-project/settings/dam/cfm/models/article",
                tagIds: ["tag:product", "tag:news"]
            },
            variations: ["master", "mobile", "tablet"],
            status: "PUBLISHED",
            publishedBy: "user@adobetest.com",
            publishedByFullName: "John Doe",
            publishedDate: 1765728541321,
            modifiedBy: "editor@adobe.com",
            modifiedByFullName: "Jane Editor",
            modifiedDate: 1765728541320,
            createdBy: "abc12345@adobe.com",
            createdByFullName: "Peter Editor",
            createdDate: 1754035541525,
            // Returned per-fragment when the selector was opened with
            // `selectFields={true}` and the user picked fields for it.
            // Each value mirrors the underlying ContentFragmentField["values"]
            // array — usually a single-element array of the field's primitive
            // type. Multi-valued fields contain multiple entries.
            selectedFields: {
                title: ["My Article Fragment"],
                body: ["Lorem ipsum dolor sit amet…"],
                featured: [true]
            },
            // Returned per-fragment when a template was chosen in the Quick
            // Details panel. `null` means the generic (default) template;
            // omitted entirely when no template was chosen.
            selectedTemplateId: "template-abc-123"
        },
        {
            id: "fragment-uuid-789",
            path: "/content/dam/my-project/blog-post",
            title: "Sample Blog Post",
            model: {
                name: "Blog Post",
                id: "model-id-789",
                path: "/conf/my-project/settings/dam/cfm/models/blog-post",
                tagIds: ["tag:blog"]
            },
            variations: ["master"],
            status: "MODIFIED",
            publishedBy: "user@adobe.com",
            publishedByFullName: "John Doe",
            publishedDate: 1765728541321,
            modifiedBy: "admin@adobe.com",
            modifiedByFullName: "Admin User",
            modifiedDate: 1765728541322,
            createdBy: "admin@adobe.com",
            createdByFullName: "Admin User",
            createdDate: 1754035541525
        }
    ],
    domainName: "author-pXXXXX-eYYYYY.adobeaemcloud.com",
    repoId: "repository-id",
    tenantInfo: "tenant-info"
}

TypeScript-Integration typescript-integration

Wenn Sie TypeScript verwenden, können Sie den Typ aus dem Paket importieren:

import type {
    ContentFragmentSelection,
    ContentFragmentModel
} from '@aem-sites/content-fragment-selector';

// Use in your code
const handleSubmit = (data: {
    contentFragments: ContentFragmentSelection
}) => {
    // TypeScript will provide full type checking
    data.contentFragments.forEach(fragment => {
        const title: string = fragment.title;
        const modelName: string = fragment.model.name;
    });
};

Source-Code-Referenz source-code-reference

Die vollständige Typdefinition finden Sie im Quell-Code:

recommendation-more-help
experience-manager-cloud-service-help-main-toc