From d8d382a5c083d82b06c9d6a3508b13a069fd0ab9 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Wed, 20 Mar 2024 18:24:45 +0000 Subject: [PATCH 1/6] Feature: Manifest input This component is a button that opens the Item Picker modal, populating it will the manifests of the selected extension type. --- .../examples/manifest-picker/README.md | 3 + .../examples/manifest-picker/index.ts | 15 +++ .../manifest-picker-dashboard.ts | 97 +++++++++++++++++++ .../src/packages/core/components/index.ts | 1 + .../core/components/input-manifest/index.ts | 1 + .../input-manifest/input-manifest.element.ts | 85 ++++++++++++++++ 6 files changed, 202 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/examples/manifest-picker/README.md create mode 100644 src/Umbraco.Web.UI.Client/examples/manifest-picker/index.ts create mode 100644 src/Umbraco.Web.UI.Client/examples/manifest-picker/manifest-picker-dashboard.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/components/input-manifest/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/components/input-manifest/input-manifest.element.ts diff --git a/src/Umbraco.Web.UI.Client/examples/manifest-picker/README.md b/src/Umbraco.Web.UI.Client/examples/manifest-picker/README.md new file mode 100644 index 0000000000..73944c495c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/examples/manifest-picker/README.md @@ -0,0 +1,3 @@ +# Manifest Picker Example + +This example demonstrates the Manifest picker input UI. diff --git a/src/Umbraco.Web.UI.Client/examples/manifest-picker/index.ts b/src/Umbraco.Web.UI.Client/examples/manifest-picker/index.ts new file mode 100644 index 0000000000..a7c90f8564 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/examples/manifest-picker/index.ts @@ -0,0 +1,15 @@ +import type { ManifestDashboard } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'dashboard', + name: 'Example Manifest Picker Dashboard', + alias: 'example.dashboard.manifestPicker', + element: () => import('./manifest-picker-dashboard.js'), + weight: 1000, + meta: { + label: 'Manifest Picker example', + pathname: 'example-manifest-picker', + }, + }, +]; diff --git a/src/Umbraco.Web.UI.Client/examples/manifest-picker/manifest-picker-dashboard.ts b/src/Umbraco.Web.UI.Client/examples/manifest-picker/manifest-picker-dashboard.ts new file mode 100644 index 0000000000..8d34ad80e7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/examples/manifest-picker/manifest-picker-dashboard.ts @@ -0,0 +1,97 @@ +import { css, html, customElement, state, when, nothing } from '@umbraco-cms/backoffice/external/lit'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import { UmbInputManifestElement } from '@umbraco-cms/backoffice/components'; +import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; + +@customElement('example-manifest-picker-dashboard') +export class ExampleManifestPickerDashboard extends UmbLitElement { + #options: Array