@umbraco-cms/backoffice 14.0.0--preview005-d8ecd776 → 14.0.0--preview005-b4989b95

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist-cms/custom-elements.json +0 -14
  2. package/dist-cms/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.js +4 -4
  3. package/dist-cms/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.js +3 -3
  4. package/dist-cms/packages/core/components/multiple-color-picker-input/multiple-color-picker-input.element.js +4 -5
  5. package/dist-cms/packages/core/components/multiple-text-string-input/input-multiple-text-string.element.js +4 -4
  6. package/dist-cms/packages/core/sorter/sorter.controller.d.ts +18 -6
  7. package/dist-cms/packages/core/sorter/sorter.controller.js +206 -189
  8. package/dist-cms/packages/documents/document-types/workspace/document-type-workspace-sorter.js +8 -8
  9. package/dist-cms/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.js +4 -4
  10. package/dist-cms/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.js +4 -4
  11. package/dist-cms/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.js +4 -4
  12. package/dist-cms/packages/documents/documents/components/input-document/input-document.element.js +5 -3
  13. package/dist-cms/packages/media/media/components/input-media/input-media.element.js +5 -3
  14. package/dist-cms/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.js +4 -4
  15. package/dist-cms/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-tab.element.js +4 -4
  16. package/dist-cms/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.js +4 -4
  17. package/dist-cms/packages/members/members/components/input-member/input-member.element.js +5 -3
  18. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  19. package/dist-cms/vscode-html-custom-data.json +0 -5
  20. package/examples/sorter-with-nested-containers/README.md +3 -0
  21. package/examples/sorter-with-nested-containers/index.ts +15 -0
  22. package/examples/sorter-with-nested-containers/sorter-dashboard.ts +90 -0
  23. package/examples/sorter-with-nested-containers/sorter-group.ts +103 -0
  24. package/examples/sorter-with-nested-containers/sorter-item.ts +58 -0
  25. package/examples/sorter-with-two-containers/README.md +1 -3
  26. package/examples/sorter-with-two-containers/sorter-dashboard.ts +1 -1
  27. package/examples/sorter-with-two-containers/sorter-group.ts +24 -48
  28. package/examples/sorter-with-two-containers/sorter-item.ts +16 -5
  29. package/package.json +2 -2
  30. package/dist-cms/packages/core/sorter/stories/test-sorter-controller.element.d.ts +0 -16
  31. package/dist-cms/packages/core/sorter/stories/test-sorter-controller.element.js +0 -134
@@ -5297,20 +5297,6 @@
5297
5297
  }
5298
5298
  ]
5299
5299
  },
5300
- {
5301
- "name": "test-my-sorter-controller",
5302
- "path": "./../src/packages/core/sorter/stories/test-sorter-controller.element.ts",
5303
- "properties": [
5304
- {
5305
- "name": "styles",
5306
- "type": "array",
5307
- "default": "[null]"
5308
- },
5309
- {
5310
- "name": "sorter"
5311
- }
5312
- ]
5313
- },
5314
5300
  {
5315
5301
  "name": "umb-temporary-file-badge",
5316
5302
  "path": "./../src/packages/core/temporary-file/components/temporary-file-badge.element.ts",
@@ -21,11 +21,11 @@ import { UmbModalRouteRegistrationController } from '../../../../core/modal/inde
21
21
  import { UmbChangeEvent } from '../../../../core/event/index.js';
22
22
  import { UmbSorterController } from '../../../../core/sorter/index.js';
23
23
  const SORTER_CONFIG = {
24
- compareElementToModel: (element, model) => {
25
- return element.getAttribute('data-udi') === model.contentUdi;
24
+ getUniqueOfElement: (element) => {
25
+ return element.getAttribute('data-udi');
26
26
  },
27
- querySelectModelToElement: (container, modelEntry) => {
28
- return container.querySelector("umb-property-editor-ui-block-list-block[data-udi='" + modelEntry.contentUdi + "']");
27
+ getUniqueOfModel: (modelEntry) => {
28
+ return modelEntry.contentUdi;
29
29
  },
30
30
  identifier: 'block-list-editor',
31
31
  itemSelector: 'umb-property-editor-ui-block-list-block',
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { UmbTextStyles } from '../../../../shared/style/index.js';
8
8
  import { css, html, customElement, state, repeat, query } from '../../../../external/lit/index.js';
9
- import { UMB_NOTIFICATION_CONTEXT, } from '../../notification/index.js';
9
+ import { UMB_NOTIFICATION_CONTEXT } from '../../notification/index.js';
10
10
  import { UmbLitElement } from '../../../../shared/lit-element/index.js';
11
11
  let UmbBackofficeNotificationContainerElement = class UmbBackofficeNotificationContainerElement extends UmbLitElement {
12
12
  constructor() {
@@ -25,11 +25,11 @@ let UmbBackofficeNotificationContainerElement = class UmbBackofficeNotificationC
25
25
  // TODO: This ignorer is just needed for JSON SCHEMA TO WORK, As its not updated with latest TS jet.
26
26
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
27
27
  // @ts-ignore
28
- this._notificationsElement?.hidePopover();
28
+ this._notificationsElement?.hidePopover?.(); // To prevent issues in FireFox I added `?.` before `()` [NL]
29
29
  // TODO: This ignorer is just needed for JSON SCHEMA TO WORK, As its not updated with latest TS jet.
30
30
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
31
31
  // @ts-ignore
32
- this._notificationsElement?.showPopover();
32
+ this._notificationsElement?.showPopover?.(); // To prevent issues in FireFox I added `?.` before `()` [NL]
33
33
  });
34
34
  }
35
35
  render() {
@@ -17,11 +17,11 @@ import { UmbLitElement } from '../../../../shared/lit-element/index.js';
17
17
  import { UmbSorterController } from '../../sorter/index.js';
18
18
  import { UMB_PROPERTY_DATASET_CONTEXT } from '../../property/index.js';
19
19
  const SORTER_CONFIG = {
20
- compareElementToModel: (element, model) => {
21
- return element.getAttribute('data-sort-entry-id') === model.value;
20
+ getUniqueOfElement: (element) => {
21
+ return element.value.toString();
22
22
  },
23
- querySelectModelToElement: (container, modelEntry) => {
24
- return container.querySelector('[data-sort-entry-id=' + modelEntry.value + ']');
23
+ getUniqueOfModel: (modelEntry) => {
24
+ return modelEntry.value;
25
25
  },
26
26
  identifier: 'Umb.SorterIdentifier.ColorEditor',
27
27
  itemSelector: 'umb-multiple-color-picker-item-input',
@@ -132,7 +132,6 @@ _UmbMultipleColorPickerInputElement_renderItems = function _UmbMultipleColorPick
132
132
  ${repeat(this._items, (item) => item.value, (item, index) => html ` <umb-multiple-color-picker-item-input
133
133
  ?showLabels=${this.showLabels}
134
134
  value=${item.value}
135
- data-sort-entry-id=${item.value}
136
135
  label=${ifDefined(item.label)}
137
136
  name="item-${index}"
138
137
  @change=${(event) => __classPrivateFieldGet(this, _UmbMultipleColorPickerInputElement_instances, "m", _UmbMultipleColorPickerInputElement_onChange).call(this, event, index)}
@@ -16,11 +16,11 @@ import { UmbChangeEvent } from '../../event/index.js';
16
16
  import { UmbLitElement } from '../../../../shared/lit-element/index.js';
17
17
  import { UmbSorterController } from '../../sorter/index.js';
18
18
  const SORTER_CONFIG = {
19
- compareElementToModel: (element, model) => {
20
- return element.getAttribute('data-sort-entry-id') === model.value;
19
+ getUniqueOfElement: (element) => {
20
+ return element.getAttribute('data-sort-entry-id');
21
21
  },
22
- querySelectModelToElement: (container, modelEntry) => {
23
- return container.querySelector('[data-sort-entry-id=' + modelEntry.value + ']');
22
+ getUniqueOfModel: (modelEntry) => {
23
+ return modelEntry.value;
24
24
  },
25
25
  identifier: 'Umb.SorterIdentifier.ColorEditor',
26
26
  itemSelector: 'umb-input-multiple-text-string-item',
@@ -1,8 +1,8 @@
1
1
  import type { UmbController, UmbControllerHostElement } from '../../../libs/controller-api/index.js';
2
2
  type INTERNAL_UmbSorterConfig<T, ElementType extends HTMLElement> = {
3
- compareElementToModel: (el: ElementType, modelEntry: T) => boolean;
4
- querySelectModelToElement: (container: HTMLElement, modelEntry: T) => ElementType | null;
5
- identifier: string;
3
+ getUniqueOfElement: (element: ElementType) => string | null | symbol | number;
4
+ getUniqueOfModel: (modeEntry: T) => string | null | symbol | number;
5
+ identifier: string | symbol;
6
6
  itemSelector: string;
7
7
  disabledItemSelector?: string;
8
8
  containerSelector: string;
@@ -58,7 +58,7 @@ type INTERNAL_UmbSorterConfig<T, ElementType extends HTMLElement> = {
58
58
  item: T;
59
59
  }) => Promise<boolean> | boolean;
60
60
  };
61
- export type UmbSorterConfig<T, ElementType extends HTMLElement = HTMLElement> = Omit<INTERNAL_UmbSorterConfig<T, ElementType>, 'ignorerSelector' | 'containerSelector'> & Partial<Pick<INTERNAL_UmbSorterConfig<T, ElementType>, 'ignorerSelector' | 'containerSelector'>>;
61
+ export type UmbSorterConfig<T, ElementType extends HTMLElement = HTMLElement> = Omit<INTERNAL_UmbSorterConfig<T, ElementType>, 'ignorerSelector' | 'containerSelector' | 'identifier'> & Partial<Pick<INTERNAL_UmbSorterConfig<T, ElementType>, 'ignorerSelector' | 'containerSelector' | 'identifier'>>;
62
62
  /**
63
63
  * @export
64
64
  * @class UmbSorterController
@@ -67,20 +67,32 @@ export type UmbSorterConfig<T, ElementType extends HTMLElement = HTMLElement> =
67
67
  */
68
68
  export declare class UmbSorterController<T, ElementType extends HTMLElement = HTMLElement> implements UmbController {
69
69
  #private;
70
+ static originalSorter?: UmbSorterController<unknown>;
71
+ static originalIndex?: number;
72
+ static dropSorter?: UmbSorterController<unknown>;
73
+ static activeSorter?: UmbSorterController<unknown>;
74
+ static activeIndex?: number;
75
+ static activeItem?: any;
76
+ static activeElement?: HTMLElement;
77
+ static activeDragElement?: Element;
70
78
  get controllerAlias(): string;
79
+ get identifier(): string | symbol;
71
80
  constructor(host: UmbControllerHostElement, config: UmbSorterConfig<T, ElementType>);
72
81
  setModel(model: Array<T>): void;
82
+ hasItem(unique: string): boolean;
83
+ getItem(unique: string): T | undefined;
73
84
  hostConnected(): void;
74
85
  private _onFirstRender;
75
86
  hostDisconnected(): void;
87
+ _itemDraggedOver: (e: DragEvent) => void;
76
88
  setupItem(element: ElementType): void;
77
89
  destroyItem(element: HTMLElement): void;
78
90
  /** Management methods: */
79
91
  getItemOfElement(element: ElementType): T | undefined;
80
92
  removeItem(item: T): Promise<boolean>;
81
93
  hasOtherItemsThan(item: T): boolean;
82
- moveItemInModel(newIndex: number, element: ElementType, fromCtrl: UmbSorterController<T, ElementType>): Promise<boolean>;
83
- updateAllowIndication(controller: UmbSorterController<T, ElementType>, item: T): boolean;
94
+ moveItemInModel(newIndex: number, fromCtrl: UmbSorterController<unknown>): Promise<boolean>;
95
+ updateAllowIndication(item: T): boolean;
84
96
  removeAllowIndication(): void;
85
97
  private autoScrollX;
86
98
  private autoScrollY;