diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index a75e7bd180..3b47326644 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -14,10 +14,8 @@ "./localization-api": "./dist-cms/libs/localization-api/index.js", "./observable-api": "./dist-cms/libs/observable-api/index.js", "./auth": "./dist-cms/shared/auth/index.js", - "./events": "./dist-cms/shared/umb-events/index.js", "./icon": "./dist-cms/shared/icon/index.js", "./models": "./dist-cms/shared/models/index.js", - "./repository": "./dist-cms/shared/repository/index.js", "./resources": "./dist-cms/shared/resources/index.js", "./router": "./dist-cms/shared/router/index.js", "./style": "./dist-cms/shared/style/index.js", @@ -47,6 +45,8 @@ "./tree": "./dist-cms/packages/core/tree/index.js", "./variant": "./dist-cms/packages/core/variant/index.js", "./workspace": "./dist-cms/packages/core/workspace/index.js", + "./events": "./dist-cms/packages/core/umb-events/index.js", + "./repository": "./dist-cms/packages/core/repository/index.js", "./dictionary": "./dist-cms/packages/dictionary/dictionary/index.js", "./document": "./dist-cms/packages/documents/documents/index.js", "./document-blueprint": "./dist-cms/packages/documents/document-blueprints/index.js", diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type.data.ts index 113799666c..8c1490effe 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type.data.ts @@ -299,7 +299,20 @@ export const data: Array = parentId: null, propertyEditorAlias: 'Umbraco.DropDown.Flexible', propertyEditorUiAlias: 'Umb.PropertyEditorUi.Dropdown', - values: [], + values: [ + { + alias: 'multiple', + value: false, + }, + { + alias: 'items', + value: { + 0: { sortOrder: 1, value: 'First Option' }, + 1: { sortOrder: 2, value: 'Second Option' }, + 2: { sortOrder: 3, value: 'I Am the third Option' }, + }, + }, + ], }, { type: 'data-type', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-selection-actions.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-selection-actions.element.ts index ae694f4fe4..dd43060c0d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-selection-actions.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-selection-actions.element.ts @@ -1,10 +1,10 @@ +import { UmbExecutedEvent } from '@umbraco-cms/backoffice/event'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { map } from '@umbraco-cms/backoffice/external/rxjs'; import { UMB_COLLECTION_CONTEXT_TOKEN, UmbCollectionContext } from '@umbraco-cms/backoffice/collection'; import { ManifestEntityBulkAction, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbExecutedEvent } from '@umbraco-cms/backoffice/events'; @customElement('umb-collection-selection-actions') export class UmbCollectionSelectionActionsElement extends UmbLitElement { @@ -49,14 +49,22 @@ export class UmbCollectionSelectionActionsElement extends UmbLitElement { if (!this._collectionContext) return; // TODO: Make sure it only updates on length change. - this.observe(this._collectionContext.items, (mediaItems) => { - this._nodesLength = mediaItems.length; - }, 'observeItem'); + this.observe( + this._collectionContext.items, + (mediaItems) => { + this._nodesLength = mediaItems.length; + }, + 'observeItem', + ); - this.observe(this._collectionContext.selection, (selection) => { - this._selectionLength = selection.length; - this._selection = selection; - }, 'observeSelection'); + this.observe( + this._collectionContext.selection, + (selection) => { + this._selectionLength = selection.length; + this._selection = selection; + }, + 'observeSelection', + ); } private _renderSelectionCount() { @@ -69,12 +77,12 @@ export class UmbCollectionSelectionActionsElement extends UmbLitElement { umbExtensionsRegistry.extensionsOfType('entityBulkAction').pipe( map((extensions) => { return extensions.filter((extension) => extension.conditions.entityType === this.#entityType); - }) + }), ), (bulkActions) => { this._entityBulkActions = bulkActions; - } - , 'observeEntityBulkActions' + }, + 'observeEntityBulkActions', ); } @@ -103,7 +111,7 @@ export class UmbCollectionSelectionActionsElement extends UmbLitElement { html`` + .manifest=${manifest}>`, )} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts index cc2a60b22b..d212570fa6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts @@ -6,6 +6,7 @@ export * from './body-layout/body-layout.element.js'; export * from './button-with-dropdown/button-with-dropdown.element.js'; // TODO: delete this and change usage to umb-dropdown export * from './code-block/index.js'; export * from './input-date/index.js'; +export * from './input-dropdown/index.js'; export * from './dropdown/index.js'; export * from './empty-state/index.js'; export * from './entity-actions-bundle/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-date/input-date.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-date/input-date.element.ts index 3df8c085a9..56fd3a4184 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-date/input-date.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-date/input-date.element.ts @@ -1,4 +1,4 @@ -import { UmbConfigRepository } from '../../repositories/config/config.repository.js'; +import { UmbConfigRepository } from '../../repository/config/config.repository.js'; import { css, html, ifDefined, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -98,7 +98,7 @@ export class UmbInputDateElement extends FormControlMixin(UmbLitElement) { if (this.type === 'time') { const newDate = new Date(`${new Date().toJSON().slice(0, 10)} ${d}`); const dateOffset = new Date( - newDate.setTime(newDate.getTime() + (utc ? this._offsetValue * -1 : this._offsetValue) * 60 * 1000) + newDate.setTime(newDate.getTime() + (utc ? this._offsetValue * -1 : this._offsetValue) * 60 * 1000), ); const time = dateOffset .toLocaleTimeString(undefined, { @@ -109,7 +109,7 @@ export class UmbInputDateElement extends FormControlMixin(UmbLitElement) { } else { const newDate = new Date(d.replace('Z', '')); const dateOffset = new Date( - newDate.setTime(newDate.getTime() + (utc ? this._offsetValue * -1 : this._offsetValue) * 60 * 1000) + newDate.setTime(newDate.getTime() + (utc ? this._offsetValue * -1 : this._offsetValue) * 60 * 1000), ); return this.type === 'datetime-local' ? this.#dateToString(dateOffset) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-dropdown/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-dropdown/index.ts new file mode 100644 index 0000000000..6ba9298f35 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-dropdown/index.ts @@ -0,0 +1 @@ +export * from './input-dropdown-list.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-dropdown/input-dropdown-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-dropdown/input-dropdown-list.element.ts new file mode 100644 index 0000000000..9b06a87c0a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-dropdown/input-dropdown-list.element.ts @@ -0,0 +1,53 @@ +import { css, html, customElement, property, query } from '@umbraco-cms/backoffice/external/lit'; +import { FormControlMixin, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; + +@customElement('umb-input-dropdown-list') +export class UmbInputDropdownListElement extends FormControlMixin(UmbLitElement) { + @property({ type: Array }) + public options?: Array