@umbraco-cms/backoffice 14.0.0--preview004-d15cc388 → 14.0.0--preview004-a47b65d4

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 (27) hide show
  1. package/dist-cms/packages/core/components/input-tiny-mce/input-tiny-mce.element.js +0 -3
  2. package/dist-cms/packages/core/components/multiple-color-picker-input/multiple-color-picker-input.element.js +7 -14
  3. package/dist-cms/packages/core/components/multiple-text-string-input/input-multiple-text-string.element.js +5 -12
  4. package/dist-cms/packages/core/index.d.ts +0 -1
  5. package/dist-cms/packages/core/index.js +0 -1
  6. package/dist-cms/packages/core/sorter/sorter.controller.d.ts +24 -32
  7. package/dist-cms/packages/core/sorter/sorter.controller.js +185 -187
  8. package/dist-cms/packages/core/sorter/stories/test-sorter-controller.element.d.ts +2 -1
  9. package/dist-cms/packages/core/sorter/stories/test-sorter-controller.element.js +11 -2
  10. package/dist-cms/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.js +16 -1
  11. package/dist-cms/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.js +1 -0
  12. package/dist-cms/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.js +1 -0
  13. package/dist-cms/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.js +15 -1
  14. package/dist-cms/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-tab.element.js +1 -0
  15. package/dist-cms/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.js +1 -0
  16. package/dist-cms/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-workspace-view-rich-text-editor.element.js +11 -2
  17. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  18. package/dist-cms/vscode-html-custom-data.json +1 -1
  19. package/examples/dashboard-with-property-dataset/index.ts +1 -1
  20. package/examples/sorter-with-two-containers/README.md +5 -0
  21. package/examples/sorter-with-two-containers/index.ts +15 -0
  22. package/examples/sorter-with-two-containers/sorter-dashboard.ts +72 -0
  23. package/examples/sorter-with-two-containers/sorter-group.ts +118 -0
  24. package/examples/sorter-with-two-containers/sorter-item.ts +47 -0
  25. package/package.json +1 -2
  26. package/dist-cms/packages/core/meta/index.d.ts +0 -5
  27. package/dist-cms/packages/core/meta/index.js +0 -5
@@ -20,7 +20,6 @@ import { defaultFallbackConfig } from './input-tiny-mce.defaults.js';
20
20
  import { pastePreProcessHandler } from './input-tiny-mce.handlers.js';
21
21
  import { availableLanguages } from './input-tiny-mce.languages.js';
22
22
  import { uriAttributeSanitizer } from './input-tiny-mce.sanitizer.js';
23
- import { umbMeta } from '../../meta/index.js';
24
23
  import { FormControlMixin } from '../../../../external/uui/index.js';
25
24
  import { renderEditor } from '../../../../external/tinymce/index.js';
26
25
  import { loadManifestApi } from '../../../../libs/extension-api/index.js';
@@ -174,8 +173,6 @@ _UmbInputTinyMceElement_setTinyConfig = async function _UmbInputTinyMceElement_s
174
173
  this._tinyConfig = {
175
174
  autoresize_bottom_margin: 10,
176
175
  body_class: 'umb-rte',
177
- //see https://www.tiny.cloud/docs/tinymce/6/editor-important-options/#cache_suffix
178
- cache_suffix: `?umb__rnd=${umbMeta.clientVersion}`,
179
176
  contextMenu: false,
180
177
  inline_boundaries_selector: 'a[href],code,.mce-annotation,.umb-embed-holder,.umb-macro-holder',
181
178
  menubar: false,
@@ -21,7 +21,7 @@ const SORTER_CONFIG = {
21
21
  return element.getAttribute('data-sort-entry-id') === model.value;
22
22
  },
23
23
  querySelectModelToElement: (container, modelEntry) => {
24
- return container.querySelector('data-sort-entry-id=[' + modelEntry.value + ']');
24
+ return container.querySelector('[data-sort-entry-id=' + modelEntry.value + ']');
25
25
  },
26
26
  identifier: 'Umb.SorterIdentifier.ColorEditor',
27
27
  itemSelector: 'umb-multiple-color-picker-item-input',
@@ -36,17 +36,10 @@ let UmbMultipleColorPickerInputElement = class UmbMultipleColorPickerInputElemen
36
36
  _UmbMultipleColorPickerInputElement_instances.add(this);
37
37
  _UmbMultipleColorPickerInputElement_sorter.set(this, new UmbSorterController(this, {
38
38
  ...SORTER_CONFIG,
39
- performItemInsert: (args) => {
40
- const frozenArray = [...this.items];
41
- const indexToMove = frozenArray.findIndex((x) => x.value === args.item.value);
42
- frozenArray.splice(indexToMove, 1);
43
- frozenArray.splice(args.newIndex, 0, args.item);
44
- this.items = frozenArray;
45
- this.dispatchEvent(new UmbChangeEvent());
46
- return true;
47
- },
48
- performItemRemove: (args) => {
49
- return true;
39
+ onChange: ({ model }) => {
40
+ const oldValue = this._items;
41
+ this._items = model;
42
+ this.requestUpdate('_items', oldValue);
50
43
  },
51
44
  }));
52
45
  /**
@@ -107,7 +100,7 @@ let UmbMultipleColorPickerInputElement = class UmbMultipleColorPickerInputElemen
107
100
  _UmbMultipleColorPickerInputElement_sorter = new WeakMap();
108
101
  _UmbMultipleColorPickerInputElement_instances = new WeakSet();
109
102
  _UmbMultipleColorPickerInputElement_onAdd = function _UmbMultipleColorPickerInputElement_onAdd() {
110
- this._items = [...this._items, { value: '', label: '' }];
103
+ this.items = [...this._items, { value: '', label: '' }];
111
104
  this.pristine = false;
112
105
  this.dispatchEvent(new UmbChangeEvent());
113
106
  __classPrivateFieldGet(this, _UmbMultipleColorPickerInputElement_instances, "m", _UmbMultipleColorPickerInputElement_focusNewItem).call(this);
@@ -130,7 +123,7 @@ _UmbMultipleColorPickerInputElement_focusNewItem = async function _UmbMultipleCo
130
123
  };
131
124
  _UmbMultipleColorPickerInputElement_deleteItem = function _UmbMultipleColorPickerInputElement_deleteItem(event, itemIndex) {
132
125
  event.stopPropagation();
133
- this._items = this._items.filter((item, index) => index !== itemIndex);
126
+ this.items = this._items.filter((item, index) => index !== itemIndex);
134
127
  this.pristine = false;
135
128
  this.dispatchEvent(new UmbChangeEvent());
136
129
  };
@@ -20,7 +20,7 @@ const SORTER_CONFIG = {
20
20
  return element.getAttribute('data-sort-entry-id') === model.value;
21
21
  },
22
22
  querySelectModelToElement: (container, modelEntry) => {
23
- return container.querySelector('data-sort-entry-id=[' + modelEntry.value + ']');
23
+ return container.querySelector('[data-sort-entry-id=' + modelEntry.value + ']');
24
24
  },
25
25
  identifier: 'Umb.SorterIdentifier.ColorEditor',
26
26
  itemSelector: 'umb-input-multiple-text-string-item',
@@ -35,17 +35,10 @@ let UmbInputMultipleTextStringElement = class UmbInputMultipleTextStringElement
35
35
  _UmbInputMultipleTextStringElement_instances.add(this);
36
36
  _UmbInputMultipleTextStringElement_prevalueSorter.set(this, new UmbSorterController(this, {
37
37
  ...SORTER_CONFIG,
38
- performItemInsert: (args) => {
39
- const frozenArray = [...this.items];
40
- const indexToMove = frozenArray.findIndex((x) => x.value === args.item.value);
41
- frozenArray.splice(indexToMove, 1);
42
- frozenArray.splice(args.newIndex, 0, args.item);
43
- this.items = frozenArray;
44
- this.dispatchEvent(new UmbChangeEvent());
45
- return true;
46
- },
47
- performItemRemove: (args) => {
48
- return true;
38
+ onChange: ({ model }) => {
39
+ const oldValue = this._items;
40
+ this._items = model;
41
+ this.requestUpdate('_items', oldValue);
49
42
  },
50
43
  }));
51
44
  /**
@@ -11,7 +11,6 @@ export * from './extension-registry/index.js';
11
11
  export * from './id/index.js';
12
12
  export * from './macro/index.js';
13
13
  export * from './menu/index.js';
14
- export * from './meta/index.js';
15
14
  export * from './modal/index.js';
16
15
  export * from './notification/index.js';
17
16
  export * from './picker-input/index.js';
@@ -26,7 +26,6 @@ export * from './extension-registry/index.js';
26
26
  export * from './id/index.js';
27
27
  export * from './macro/index.js';
28
28
  export * from './menu/index.js';
29
- export * from './meta/index.js';
30
29
  export * from './modal/index.js';
31
30
  export * from './notification/index.js';
32
31
  export * from './picker-input/index.js';
@@ -1,36 +1,32 @@
1
1
  import { UmbController, UmbControllerHostElement } from '../../../libs/controller-api/index.js';
2
- type INTERNAL_UmbSorterConfig<T> = {
3
- compareElementToModel: (el: HTMLElement, modelEntry: T) => boolean;
4
- querySelectModelToElement: (container: HTMLElement, modelEntry: T) => HTMLElement | null;
2
+ type INTERNAL_UmbSorterConfig<T, ElementType extends HTMLElement> = {
3
+ compareElementToModel: (el: ElementType, modelEntry: T) => boolean;
4
+ querySelectModelToElement: (container: HTMLElement, modelEntry: T) => ElementType | null;
5
5
  identifier: string;
6
6
  itemSelector: string;
7
7
  disabledItemSelector?: string;
8
8
  containerSelector: string;
9
9
  ignorerSelector: string;
10
- placeholderClass: string;
10
+ placeholderClass?: string;
11
+ placeholderAttr?: string;
11
12
  draggableSelector?: string;
12
13
  boundarySelector?: string;
13
14
  dataTransferResolver?: (dataTransfer: DataTransfer | null, currentItem: T) => void;
14
15
  onStart?: (argument: {
15
16
  item: T;
16
- element: HTMLElement;
17
+ element: ElementType;
17
18
  }) => void;
18
19
  onChange?: (argument: {
19
20
  item: T;
20
- element: HTMLElement;
21
+ model: Array<T>;
21
22
  }) => void;
22
23
  onContainerChange?: (argument: {
23
24
  item: T;
24
- element: HTMLElement;
25
+ element: ElementType;
25
26
  }) => void;
26
27
  onEnd?: (argument: {
27
28
  item: T;
28
- element: HTMLElement;
29
- }) => void;
30
- onSync?: (argument: {
31
- item: T;
32
- fromController: UmbSorterController<T>;
33
- toController: UmbSorterController<T>;
29
+ element: ElementType;
34
30
  }) => void;
35
31
  itemHasNestedContainersResolver?: (element: HTMLElement) => boolean;
36
32
  onDisallowed?: () => void;
@@ -42,13 +38,18 @@ type INTERNAL_UmbSorterConfig<T> = {
42
38
  containerElement: Element;
43
39
  containerRect: DOMRect;
44
40
  item: T;
45
- element: HTMLElement;
41
+ element: ElementType;
46
42
  elementRect: DOMRect;
47
- relatedElement: HTMLElement;
43
+ relatedElement: ElementType;
48
44
  relatedRect: DOMRect;
49
45
  placeholderIsInThisRow: boolean;
50
46
  horizontalPlaceAfter: boolean;
51
47
  }) => void;
48
+ performItemMove?: (argument: {
49
+ item: T;
50
+ newIndex: number;
51
+ oldIndex: number;
52
+ }) => Promise<boolean> | boolean;
52
53
  performItemInsert?: (argument: {
53
54
  item: T;
54
55
  newIndex: number;
@@ -57,42 +58,33 @@ type INTERNAL_UmbSorterConfig<T> = {
57
58
  item: T;
58
59
  }) => Promise<boolean> | boolean;
59
60
  };
60
- export type UmbSorterConfig<T> = Omit<INTERNAL_UmbSorterConfig<T>, 'placeholderClass' | 'ignorerSelector' | 'containerSelector'> & Partial<Pick<INTERNAL_UmbSorterConfig<T>, 'placeholderClass' | 'ignorerSelector' | 'containerSelector'>>;
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
62
  /**
62
63
  * @export
63
64
  * @class UmbSorterController
64
65
  * @implements {UmbControllerInterface}
65
66
  * @description This controller can make user able to sort items.
66
67
  */
67
- export declare class UmbSorterController<T> implements UmbController {
68
+ export declare class UmbSorterController<T, ElementType extends HTMLElement = HTMLElement> implements UmbController {
68
69
  #private;
69
- private _lastIndicationContainerVM;
70
70
  get controllerAlias(): string;
71
- constructor(host: UmbControllerHostElement, config: UmbSorterConfig<T>);
71
+ constructor(host: UmbControllerHostElement, config: UmbSorterConfig<T, ElementType>);
72
72
  setModel(model: Array<T>): void;
73
73
  hostConnected(): void;
74
74
  private _onFirstRender;
75
75
  hostDisconnected(): void;
76
- setupItem(element: HTMLElement): void;
76
+ setupItem(element: ElementType): void;
77
77
  destroyItem(element: HTMLElement): void;
78
- handleDragStart: (event: DragEvent) => void;
79
- handleDragEnd: () => Promise<void>;
80
- handleDragMove: (event: DragEvent) => void;
81
- moveCurrentElement: () => void;
82
- move(orderedContainerElements: Array<Element>, newElIndex: number): void;
83
78
  /** Management methods: */
84
- getItemOfElement(element: HTMLElement): T | null | undefined;
85
- removeItem(item: T): Promise<boolean | T | null>;
79
+ getItemOfElement(element: ElementType): T | undefined;
80
+ removeItem(item: T): Promise<boolean>;
86
81
  hasOtherItemsThan(item: T): boolean;
87
- sync(element: HTMLElement, fromVm: UmbSorterController<T>): Promise<boolean>;
88
- updateAllowIndication(contextVM: UmbSorterController<T>, item: T): boolean;
82
+ moveItemInModel(newIndex: number, element: ElementType, fromCtrl: UmbSorterController<T, ElementType>): Promise<boolean>;
83
+ updateAllowIndication(controller: UmbSorterController<T, ElementType>, item: T): boolean;
89
84
  removeAllowIndication(): void;
90
85
  private autoScrollX;
91
86
  private autoScrollY;
92
87
  private handleAutoScroll;
93
- private _performAutoScroll;
94
- private stopAutoScroll;
95
- notifySync(data: any): void;
96
88
  notifyDisallowed(): void;
97
89
  notifyAllowed(): void;
98
90
  notifyRequestDrop(data: any): boolean;