@umbraco-cms/backoffice 14.0.0--preview007-5b109fa3 → 14.0.0--preview007-cccfbc9c

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 (88) hide show
  1. package/dist-cms/custom-elements.json +47 -20
  2. package/dist-cms/mocks/data/data-type/data-type.data.js +34 -1
  3. package/dist-cms/mocks/data/document/document.data.js +7 -1
  4. package/dist-cms/mocks/data/document-type/document-type.data.js +25 -2
  5. package/dist-cms/packages/core/collection/action/collection-action-button.element.d.ts +1 -1
  6. package/dist-cms/packages/core/collection/collection-bulk-action-permission.condition.d.ts +14 -0
  7. package/dist-cms/packages/core/collection/collection-bulk-action-permission.condition.js +36 -0
  8. package/dist-cms/packages/core/collection/collection.element.d.ts +5 -3
  9. package/dist-cms/packages/core/collection/collection.element.js +40 -18
  10. package/dist-cms/packages/core/collection/components/collection-toolbar.element.js +1 -0
  11. package/dist-cms/packages/core/collection/components/collection-view-bundle.element.js +1 -1
  12. package/dist-cms/packages/core/collection/default/collection-default.context.d.ts +9 -2
  13. package/dist-cms/packages/core/collection/default/collection-default.context.js +20 -8
  14. package/dist-cms/packages/core/collection/index.d.ts +1 -0
  15. package/dist-cms/packages/core/collection/index.js +1 -0
  16. package/dist-cms/packages/core/collection/manifests.js +2 -1
  17. package/dist-cms/packages/core/collection/types.d.ts +14 -1
  18. package/dist-cms/packages/core/extension-registry/conditions/types.d.ts +2 -1
  19. package/dist-cms/packages/core/extension-registry/umbraco-package.d.ts +35 -0
  20. package/dist-cms/packages/core/property-editor/schemas/Umbraco.ListView.js +8 -8
  21. package/dist-cms/packages/core/property-editor/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.element.d.ts +3 -9
  22. package/dist-cms/packages/core/property-editor/uis/collection-view/manifests.js +5 -5
  23. package/dist-cms/packages/core/property-editor/uis/collection-view/property-editor-ui-collection-view.element.d.ts +4 -3
  24. package/dist-cms/packages/core/property-editor/uis/collection-view/property-editor-ui-collection-view.element.js +27 -7
  25. package/dist-cms/packages/documents/documents/collection/action/create-document-collection-action.element.d.ts +19 -0
  26. package/dist-cms/packages/documents/documents/collection/action/create-document-collection-action.element.js +120 -0
  27. package/dist-cms/packages/documents/documents/collection/action/manifests.d.ts +3 -0
  28. package/dist-cms/packages/documents/documents/collection/action/manifests.js +19 -0
  29. package/dist-cms/packages/documents/documents/collection/document-collection-toolbar.element.d.ts +13 -0
  30. package/dist-cms/packages/documents/documents/collection/document-collection-toolbar.element.js +77 -0
  31. package/dist-cms/packages/documents/documents/collection/document-collection.context.d.ts +7 -0
  32. package/dist-cms/packages/documents/documents/collection/document-collection.context.js +8 -0
  33. package/dist-cms/packages/documents/documents/collection/document-collection.element.d.ts +11 -0
  34. package/dist-cms/packages/documents/documents/collection/document-collection.element.js +19 -0
  35. package/dist-cms/packages/documents/documents/collection/index.d.ts +1 -1
  36. package/dist-cms/packages/documents/documents/collection/index.js +1 -1
  37. package/dist-cms/packages/documents/documents/collection/manifests.d.ts +1 -3
  38. package/dist-cms/packages/documents/documents/collection/manifests.js +20 -27
  39. package/dist-cms/packages/documents/documents/collection/repository/document-collection.repository.d.ts +19 -0
  40. package/dist-cms/packages/documents/documents/collection/repository/document-collection.repository.js +25 -0
  41. package/dist-cms/packages/documents/documents/collection/repository/document-collection.server.data-source.d.ts +18 -0
  42. package/dist-cms/packages/documents/documents/collection/repository/document-collection.server.data-source.js +60 -0
  43. package/dist-cms/packages/documents/documents/collection/repository/index.d.ts +2 -0
  44. package/dist-cms/packages/documents/documents/collection/repository/index.js +2 -0
  45. package/dist-cms/packages/documents/documents/collection/repository/manifests.d.ts +2 -0
  46. package/dist-cms/packages/documents/documents/collection/repository/manifests.js +9 -0
  47. package/dist-cms/packages/documents/documents/collection/types.d.ts +5 -0
  48. package/dist-cms/packages/documents/documents/collection/types.js +1 -0
  49. package/dist-cms/packages/documents/documents/collection/views/grid/document-grid-collection-view.element.d.ts +17 -0
  50. package/dist-cms/packages/documents/documents/collection/views/grid/document-grid-collection-view.element.js +107 -0
  51. package/dist-cms/packages/documents/documents/collection/views/index.d.ts +1 -0
  52. package/dist-cms/packages/documents/documents/collection/views/index.js +1 -0
  53. package/dist-cms/packages/documents/documents/collection/views/manifests.d.ts +4 -0
  54. package/dist-cms/packages/documents/documents/collection/views/manifests.js +40 -0
  55. package/dist-cms/packages/documents/documents/collection/views/table/document-table-collection-view.element.d.ts +0 -1
  56. package/dist-cms/packages/documents/documents/collection/views/table/document-table-collection-view.element.js +19 -18
  57. package/dist-cms/packages/documents/documents/conditions/document-workspace-has-collection.condition.d.ts +11 -0
  58. package/dist-cms/packages/documents/documents/conditions/document-workspace-has-collection.condition.js +37 -0
  59. package/dist-cms/packages/documents/documents/conditions/index.d.ts +1 -0
  60. package/dist-cms/packages/documents/documents/conditions/index.js +1 -0
  61. package/dist-cms/packages/documents/documents/conditions/manifests.d.ts +1 -0
  62. package/dist-cms/packages/documents/documents/conditions/manifests.js +2 -0
  63. package/dist-cms/packages/documents/documents/entity-bulk-actions/delete/delete.action.d.ts +7 -0
  64. package/dist-cms/packages/documents/documents/entity-bulk-actions/delete/delete.action.js +10 -0
  65. package/dist-cms/packages/documents/documents/entity-bulk-actions/manifests.d.ts +1 -1
  66. package/dist-cms/packages/documents/documents/entity-bulk-actions/manifests.js +85 -14
  67. package/dist-cms/packages/documents/documents/entity-bulk-actions/publish/publish.action.d.ts +7 -0
  68. package/dist-cms/packages/documents/documents/entity-bulk-actions/publish/publish.action.js +10 -0
  69. package/dist-cms/packages/documents/documents/entity-bulk-actions/unpublish/unpublish.action.d.ts +7 -0
  70. package/dist-cms/packages/documents/documents/entity-bulk-actions/unpublish/unpublish.action.js +10 -0
  71. package/dist-cms/packages/documents/documents/index.d.ts +1 -0
  72. package/dist-cms/packages/documents/documents/index.js +1 -0
  73. package/dist-cms/packages/documents/documents/manifests.js +2 -0
  74. package/dist-cms/packages/documents/documents/repository/detail/document-detail.server.data-source.js +5 -1
  75. package/dist-cms/packages/documents/documents/tree/document-tree.server.data-source.js +1 -1
  76. package/dist-cms/packages/documents/documents/tree/types.d.ts +1 -1
  77. package/dist-cms/packages/documents/documents/types.d.ts +1 -0
  78. package/dist-cms/packages/documents/documents/workspace/document-workspace.context.d.ts +1 -0
  79. package/dist-cms/packages/documents/documents/workspace/document-workspace.context.js +5 -1
  80. package/dist-cms/packages/documents/documents/workspace/manifests.js +20 -2
  81. package/dist-cms/packages/documents/documents/workspace/views/collection/document-workspace-view-collection.element.d.ts +14 -0
  82. package/dist-cms/packages/documents/documents/workspace/views/collection/document-workspace-view-collection.element.js +65 -0
  83. package/dist-cms/packages/user/user/collection/user-collection.context.js +1 -1
  84. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  85. package/dist-cms/umbraco-package-schema.json +81 -0
  86. package/dist-cms/umbraco-package.json +1 -0
  87. package/dist-cms/vscode-html-custom-data.json +32 -12
  88. package/package.json +3 -2
@@ -12,27 +12,27 @@ export const manifest = {
12
12
  description: 'Number of items per page.',
13
13
  propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number',
14
14
  },
15
- {
16
- alias: 'orderDirection',
17
- label: 'Order Direction',
18
- propertyEditorUiAlias: 'Umb.PropertyEditorUi.OrderDirection',
19
- },
20
15
  {
21
16
  alias: 'includeProperties',
22
17
  label: 'Columns Displayed',
23
- description: 'The properties that will be displayed for each column',
18
+ description: 'The properties that will be displayed for each column.',
24
19
  propertyEditorUiAlias: 'Umb.PropertyEditorUi.CollectionView.ColumnConfiguration',
25
20
  },
26
21
  {
27
22
  alias: 'orderBy',
28
23
  label: 'Order By',
29
- description: 'The properties that will be displayed for each column',
24
+ description: 'The default sort order for the list.',
30
25
  propertyEditorUiAlias: 'Umb.PropertyEditorUi.CollectionView.OrderBy',
31
26
  },
27
+ {
28
+ alias: 'orderDirection',
29
+ label: 'Order Direction',
30
+ propertyEditorUiAlias: 'Umb.PropertyEditorUi.OrderDirection',
31
+ },
32
32
  {
33
33
  alias: 'bulkActionPermissions',
34
34
  label: 'Bulk Action Permissions',
35
- description: 'The properties that will be displayed for each column',
35
+ description: 'The bulk actions that are allowed from the list view.',
36
36
  propertyEditorUiAlias: 'Umb.PropertyEditorUi.CollectionView.BulkActionPermissions',
37
37
  },
38
38
  ],
@@ -1,21 +1,15 @@
1
+ import type { UmbCollectionBulkActionPermissions } from '../../../../../../core/collection/types.js';
1
2
  import type { UmbPropertyEditorUiElement } from '../../../../../extension-registry/index.js';
2
3
  import type { UmbPropertyEditorConfigCollection } from '../../../../index.js';
3
4
  import { UmbLitElement } from '../../../../../lit-element/index.js';
4
- interface BulkActionPermissions {
5
- allowBulkCopy: boolean;
6
- allowBulkDelete: boolean;
7
- allowBulkMove: boolean;
8
- allowBulkPublish: boolean;
9
- allowBulkUnpublish: boolean;
10
- }
11
5
  /**
12
6
  * @element umb-property-editor-ui-collection-view-bulk-action-permissions
13
7
  */
14
8
  export declare class UmbPropertyEditorUICollectionViewBulkActionPermissionsElement extends UmbLitElement implements UmbPropertyEditorUiElement {
15
9
  #private;
16
10
  private _value;
17
- set value(obj: BulkActionPermissions);
18
- get value(): BulkActionPermissions;
11
+ set value(obj: UmbCollectionBulkActionPermissions);
12
+ get value(): UmbCollectionBulkActionPermissions;
19
13
  config?: UmbPropertyEditorConfigCollection;
20
14
  render(): import("lit-html").TemplateResult<1>;
21
15
  static styles: import("@lit/reactive-element/css-tag.js").CSSResult[];
@@ -17,31 +17,31 @@ const manifest = {
17
17
  {
18
18
  alias: 'layouts',
19
19
  label: 'Layouts',
20
- description: 'The properties that will be displayed for each column',
20
+ description: 'The properties that will be displayed for each column.',
21
21
  propertyEditorUiAlias: 'Umb.PropertyEditorUi.CollectionView.LayoutConfiguration',
22
22
  },
23
23
  {
24
24
  alias: 'icon',
25
25
  label: 'Content app icon',
26
- description: 'The icon of the listview content app',
26
+ description: 'The icon of the listview content app.',
27
27
  propertyEditorUiAlias: 'Umb.PropertyEditorUi.IconPicker',
28
28
  },
29
29
  {
30
30
  alias: 'tabName',
31
31
  label: 'Content app name',
32
- description: 'The name of the listview content app (default if empty: Child Items)',
32
+ description: 'The name of the listview content app (default if empty: Child Items).',
33
33
  propertyEditorUiAlias: 'Umb.PropertyEditorUi.TextBox',
34
34
  },
35
35
  {
36
36
  alias: 'showContentFirst',
37
37
  label: 'Show Content App First',
38
- description: 'Enable this to show the content app by default instead of the list view app',
38
+ description: 'Enable this to show the content app by default instead of the list view app.',
39
39
  propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle',
40
40
  },
41
41
  {
42
42
  alias: 'useInfiniteEditor',
43
43
  label: 'Edit in Infinite Editor',
44
- description: 'Enable this to use infinite editing to edit the content of the list view',
44
+ description: 'Enable this to use infinite editing to edit the content of the list view.',
45
45
  propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle',
46
46
  },
47
47
  ],
@@ -5,10 +5,11 @@ import { UmbLitElement } from '../../../lit-element/index.js';
5
5
  * @element umb-property-editor-ui-collection-view
6
6
  */
7
7
  export declare class UmbPropertyEditorUICollectionViewElement extends UmbLitElement implements UmbPropertyEditorUiElement {
8
- value: string;
9
- config?: UmbPropertyEditorConfigCollection;
8
+ #private;
9
+ value?: string;
10
+ private _config?;
11
+ set config(config: UmbPropertyEditorConfigCollection | undefined);
10
12
  render(): import("lit-html").TemplateResult<1>;
11
- static styles: import("@lit/reactive-element/css-tag.js").CSSResult[];
12
13
  }
13
14
  export default UmbPropertyEditorUICollectionViewElement;
14
15
  declare global {
@@ -4,8 +4,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { html, customElement, property } from '../../../../../external/lit/index.js';
8
- import { UmbTextStyles } from '../../../../../shared/style/index.js';
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _UmbPropertyEditorUICollectionViewElement_instances, _UmbPropertyEditorUICollectionViewElement_mapDataTypeConfigToCollectionConfig;
13
+ import { html, customElement, property, state } from '../../../../../external/lit/index.js';
9
14
  import { UmbLitElement } from '../../../lit-element/index.js';
10
15
  /**
11
16
  * @element umb-property-editor-ui-collection-view
@@ -13,19 +18,34 @@ import { UmbLitElement } from '../../../lit-element/index.js';
13
18
  let UmbPropertyEditorUICollectionViewElement = class UmbPropertyEditorUICollectionViewElement extends UmbLitElement {
14
19
  constructor() {
15
20
  super(...arguments);
16
- this.value = '';
21
+ _UmbPropertyEditorUICollectionViewElement_instances.add(this);
22
+ }
23
+ set config(config) {
24
+ this._config = __classPrivateFieldGet(this, _UmbPropertyEditorUICollectionViewElement_instances, "m", _UmbPropertyEditorUICollectionViewElement_mapDataTypeConfigToCollectionConfig).call(this, config);
17
25
  }
18
26
  render() {
19
- return html `<div>umb-property-editor-ui-collection-view</div>`;
27
+ return html `<umb-collection alias="Umb.Collection.Document" .config=${this._config}></umb-collection>`;
20
28
  }
21
29
  };
22
- UmbPropertyEditorUICollectionViewElement.styles = [UmbTextStyles];
30
+ _UmbPropertyEditorUICollectionViewElement_instances = new WeakSet();
31
+ _UmbPropertyEditorUICollectionViewElement_mapDataTypeConfigToCollectionConfig = function _UmbPropertyEditorUICollectionViewElement_mapDataTypeConfigToCollectionConfig(config) {
32
+ return {
33
+ allowedEntityBulkActions: config?.getValueByAlias('bulkActionPermissions'),
34
+ orderBy: config?.getValueByAlias('orderBy') ?? 'updateDate',
35
+ orderDirection: config?.getValueByAlias('orderDirection') ?? 'asc',
36
+ pageSize: Number(config?.getValueByAlias('pageSize')) ?? 50,
37
+ useInfiniteEditor: config?.getValueByAlias('useInfiniteEditor') ?? false,
38
+ };
39
+ };
23
40
  __decorate([
24
41
  property()
25
42
  ], UmbPropertyEditorUICollectionViewElement.prototype, "value", void 0);
26
43
  __decorate([
27
- property({ type: Object, attribute: false })
28
- ], UmbPropertyEditorUICollectionViewElement.prototype, "config", void 0);
44
+ state()
45
+ ], UmbPropertyEditorUICollectionViewElement.prototype, "_config", void 0);
46
+ __decorate([
47
+ property({ attribute: false })
48
+ ], UmbPropertyEditorUICollectionViewElement.prototype, "config", null);
29
49
  UmbPropertyEditorUICollectionViewElement = __decorate([
30
50
  customElement('umb-property-editor-ui-collection-view')
31
51
  ], UmbPropertyEditorUICollectionViewElement);
@@ -0,0 +1,19 @@
1
+ import { UmbLitElement } from '../../../../core/lit-element/index.js';
2
+ import type { ManifestCollectionAction } from '../../../../core/extension-registry/index.js';
3
+ export declare class UmbCreateDocumentCollectionActionElement extends UmbLitElement {
4
+ #private;
5
+ private _allowedDocumentTypes;
6
+ private _documentUnique?;
7
+ private _documentTypeUnique?;
8
+ private _popoverOpen;
9
+ manifest?: ManifestCollectionAction;
10
+ constructor();
11
+ firstUpdated(): Promise<void>;
12
+ render(): import("lit-html").TemplateResult<1> | undefined;
13
+ }
14
+ export default UmbCreateDocumentCollectionActionElement;
15
+ declare global {
16
+ interface HTMLElementTagNameMap {
17
+ 'umb-create-document-collection-action': UmbCreateDocumentCollectionActionElement;
18
+ }
19
+ }
@@ -0,0 +1,120 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _UmbCreateDocumentCollectionActionElement_instances, _UmbCreateDocumentCollectionActionElement_documentTypeStructureRepository, _UmbCreateDocumentCollectionActionElement_retrieveAllowedDocumentTypesOf, _UmbCreateDocumentCollectionActionElement_onPopoverToggle, _UmbCreateDocumentCollectionActionElement_onClick, _UmbCreateDocumentCollectionActionElement_getCreateUrl, _UmbCreateDocumentCollectionActionElement_renderCreateButton, _UmbCreateDocumentCollectionActionElement_renderDropdown;
13
+ import { html, customElement, property, state, map } from '../../../../../external/lit/index.js';
14
+ import { UmbDocumentTypeStructureRepository } from '../../../document-types/index.js';
15
+ import { UmbLitElement } from '../../../../core/lit-element/index.js';
16
+ import { UMB_DOCUMENT_WORKSPACE_CONTEXT } from '../../index.js';
17
+ let UmbCreateDocumentCollectionActionElement = class UmbCreateDocumentCollectionActionElement extends UmbLitElement {
18
+ constructor() {
19
+ super();
20
+ _UmbCreateDocumentCollectionActionElement_instances.add(this);
21
+ this._allowedDocumentTypes = [];
22
+ this._popoverOpen = false;
23
+ _UmbCreateDocumentCollectionActionElement_documentTypeStructureRepository.set(this, new UmbDocumentTypeStructureRepository(this));
24
+ this.consumeContext(UMB_DOCUMENT_WORKSPACE_CONTEXT, (workspaceContext) => {
25
+ this.observe(workspaceContext.unique, (unique) => {
26
+ this._documentUnique = unique;
27
+ });
28
+ this.observe(workspaceContext.contentTypeUnique, (documentTypeUnique) => {
29
+ this._documentTypeUnique = documentTypeUnique;
30
+ });
31
+ });
32
+ }
33
+ async firstUpdated() {
34
+ if (this._documentTypeUnique) {
35
+ __classPrivateFieldGet(this, _UmbCreateDocumentCollectionActionElement_instances, "m", _UmbCreateDocumentCollectionActionElement_retrieveAllowedDocumentTypesOf).call(this, this._documentTypeUnique);
36
+ }
37
+ }
38
+ render() {
39
+ return this._allowedDocumentTypes.length !== 1 ? __classPrivateFieldGet(this, _UmbCreateDocumentCollectionActionElement_instances, "m", _UmbCreateDocumentCollectionActionElement_renderDropdown).call(this) : __classPrivateFieldGet(this, _UmbCreateDocumentCollectionActionElement_instances, "m", _UmbCreateDocumentCollectionActionElement_renderCreateButton).call(this);
40
+ }
41
+ };
42
+ _UmbCreateDocumentCollectionActionElement_documentTypeStructureRepository = new WeakMap();
43
+ _UmbCreateDocumentCollectionActionElement_instances = new WeakSet();
44
+ _UmbCreateDocumentCollectionActionElement_retrieveAllowedDocumentTypesOf = async function _UmbCreateDocumentCollectionActionElement_retrieveAllowedDocumentTypesOf(unique) {
45
+ const { data } = await __classPrivateFieldGet(this, _UmbCreateDocumentCollectionActionElement_documentTypeStructureRepository, "f").requestAllowedChildrenOf(unique);
46
+ if (data && data.items) {
47
+ this._allowedDocumentTypes = data.items;
48
+ }
49
+ };
50
+ _UmbCreateDocumentCollectionActionElement_onPopoverToggle = function _UmbCreateDocumentCollectionActionElement_onPopoverToggle(event) {
51
+ this._popoverOpen = event.newState === 'open';
52
+ };
53
+ _UmbCreateDocumentCollectionActionElement_onClick = function _UmbCreateDocumentCollectionActionElement_onClick(item, e) {
54
+ e.preventDefault();
55
+ // TODO: Do anything else here? [LK]
56
+ };
57
+ _UmbCreateDocumentCollectionActionElement_getCreateUrl = function _UmbCreateDocumentCollectionActionElement_getCreateUrl(item) {
58
+ // TODO: Review how the "Create" URL is generated. [LK]
59
+ return `section/content/workspace/document/create/${this._documentUnique ?? 'null'}/${item.unique}`;
60
+ };
61
+ _UmbCreateDocumentCollectionActionElement_renderCreateButton = function _UmbCreateDocumentCollectionActionElement_renderCreateButton() {
62
+ if (this._allowedDocumentTypes.length !== 1)
63
+ return;
64
+ const item = this._allowedDocumentTypes[0];
65
+ const label = (this.manifest?.meta.label ?? this.localize.term('general_create')) + ' ' + item.name;
66
+ return html `<uui-button
67
+ @click=${(e) => __classPrivateFieldGet(this, _UmbCreateDocumentCollectionActionElement_instances, "m", _UmbCreateDocumentCollectionActionElement_onClick).call(this, item, e)}
68
+ color="default"
69
+ href=${__classPrivateFieldGet(this, _UmbCreateDocumentCollectionActionElement_instances, "m", _UmbCreateDocumentCollectionActionElement_getCreateUrl).call(this, item)}
70
+ label=${label}
71
+ look="outline"></uui-button>`;
72
+ };
73
+ _UmbCreateDocumentCollectionActionElement_renderDropdown = function _UmbCreateDocumentCollectionActionElement_renderDropdown() {
74
+ if (!this._allowedDocumentTypes.length)
75
+ return;
76
+ const label = this.manifest?.meta.label ?? this.localize.term('general_create');
77
+ return html `
78
+ <uui-button popovertarget="collection-action-menu-popover" label=${label}>
79
+ ${label}
80
+ <uui-symbol-expand .open=${this._popoverOpen}></uui-symbol-expand>
81
+ </uui-button>
82
+ <uui-popover-container
83
+ id="collection-action-menu-popover"
84
+ placement="bottom-start"
85
+ @toggle=${__classPrivateFieldGet(this, _UmbCreateDocumentCollectionActionElement_instances, "m", _UmbCreateDocumentCollectionActionElement_onPopoverToggle)}>
86
+ <umb-popover-layout>
87
+ <uui-scroll-container>
88
+ ${map(this._allowedDocumentTypes, (item) => html `
89
+ <uui-menu-item
90
+ @click=${(e) => __classPrivateFieldGet(this, _UmbCreateDocumentCollectionActionElement_instances, "m", _UmbCreateDocumentCollectionActionElement_onClick).call(this, item, e)}
91
+ label=${item.name}
92
+ href=${__classPrivateFieldGet(this, _UmbCreateDocumentCollectionActionElement_instances, "m", _UmbCreateDocumentCollectionActionElement_getCreateUrl).call(this, item)}>
93
+ <uui-icon slot="icon" name=${item.icon ?? 'icon-document'}></uui-icon>
94
+ </uui-menu-item>
95
+ `)}
96
+ </uui-scroll-container>
97
+ </umb-popover-layout>
98
+ </uui-popover-container>
99
+ `;
100
+ };
101
+ __decorate([
102
+ state()
103
+ ], UmbCreateDocumentCollectionActionElement.prototype, "_allowedDocumentTypes", void 0);
104
+ __decorate([
105
+ state()
106
+ ], UmbCreateDocumentCollectionActionElement.prototype, "_documentUnique", void 0);
107
+ __decorate([
108
+ state()
109
+ ], UmbCreateDocumentCollectionActionElement.prototype, "_documentTypeUnique", void 0);
110
+ __decorate([
111
+ state()
112
+ ], UmbCreateDocumentCollectionActionElement.prototype, "_popoverOpen", void 0);
113
+ __decorate([
114
+ property({ attribute: false })
115
+ ], UmbCreateDocumentCollectionActionElement.prototype, "manifest", void 0);
116
+ UmbCreateDocumentCollectionActionElement = __decorate([
117
+ customElement('umb-create-document-collection-action')
118
+ ], UmbCreateDocumentCollectionActionElement);
119
+ export { UmbCreateDocumentCollectionActionElement };
120
+ export default UmbCreateDocumentCollectionActionElement;
@@ -0,0 +1,3 @@
1
+ import type { ManifestCollectionAction } from '../../../../core/extension-registry/index.js';
2
+ export declare const createManifest: ManifestCollectionAction;
3
+ export declare const manifests: ManifestCollectionAction[];
@@ -0,0 +1,19 @@
1
+ import { UMB_COLLECTION_ALIAS_CONDITION } from '../../../../core/collection/index.js';
2
+ export const createManifest = {
3
+ type: 'collectionAction',
4
+ kind: 'button',
5
+ name: 'Create Document Collection Action',
6
+ alias: 'Umb.CollectionAction.Document.Create',
7
+ element: () => import('./create-document-collection-action.element.js'),
8
+ weight: 100,
9
+ meta: {
10
+ label: 'Create',
11
+ },
12
+ conditions: [
13
+ {
14
+ alias: UMB_COLLECTION_ALIAS_CONDITION,
15
+ match: 'Umb.Collection.Document',
16
+ },
17
+ ],
18
+ };
19
+ export const manifests = [createManifest];
@@ -0,0 +1,13 @@
1
+ import { UmbLitElement } from '../../../core/lit-element/index.js';
2
+ export declare class UmbDocumentCollectionToolbarElement extends UmbLitElement {
3
+ #private;
4
+ constructor();
5
+ render(): import("lit-html").TemplateResult<1>;
6
+ static styles: import("@lit/reactive-element/css-tag.js").CSSResult[];
7
+ }
8
+ export default UmbDocumentCollectionToolbarElement;
9
+ declare global {
10
+ interface HTMLElementTagNameMap {
11
+ 'umb-document-collection-toolbar': UmbDocumentCollectionToolbarElement;
12
+ }
13
+ }
@@ -0,0 +1,77 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
+ if (kind === "m") throw new TypeError("Private method is not writable");
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
+ };
13
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
14
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
15
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
16
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
17
+ };
18
+ var _UmbDocumentCollectionToolbarElement_instances, _UmbDocumentCollectionToolbarElement_collectionContext, _UmbDocumentCollectionToolbarElement_inputTimer, _UmbDocumentCollectionToolbarElement_inputTimerAmount, _UmbDocumentCollectionToolbarElement_updateSearch, _UmbDocumentCollectionToolbarElement_renderSearch;
19
+ import { css, html, customElement } from '../../../../external/lit/index.js';
20
+ import { UmbLitElement } from '../../../core/lit-element/index.js';
21
+ import { UMB_DEFAULT_COLLECTION_CONTEXT } from '../../../core/collection/index.js';
22
+ let UmbDocumentCollectionToolbarElement = class UmbDocumentCollectionToolbarElement extends UmbLitElement {
23
+ constructor() {
24
+ super();
25
+ _UmbDocumentCollectionToolbarElement_instances.add(this);
26
+ _UmbDocumentCollectionToolbarElement_collectionContext.set(this, void 0);
27
+ _UmbDocumentCollectionToolbarElement_inputTimer.set(this, void 0);
28
+ _UmbDocumentCollectionToolbarElement_inputTimerAmount.set(this, 500);
29
+ this.consumeContext(UMB_DEFAULT_COLLECTION_CONTEXT, (instance) => {
30
+ __classPrivateFieldSet(this, _UmbDocumentCollectionToolbarElement_collectionContext, instance, "f");
31
+ });
32
+ }
33
+ render() {
34
+ return html `
35
+ <umb-collection-action-bundle></umb-collection-action-bundle>
36
+ ${__classPrivateFieldGet(this, _UmbDocumentCollectionToolbarElement_instances, "m", _UmbDocumentCollectionToolbarElement_renderSearch).call(this)}
37
+ <umb-collection-view-bundle></umb-collection-view-bundle>
38
+ `;
39
+ }
40
+ };
41
+ _UmbDocumentCollectionToolbarElement_collectionContext = new WeakMap();
42
+ _UmbDocumentCollectionToolbarElement_inputTimer = new WeakMap();
43
+ _UmbDocumentCollectionToolbarElement_inputTimerAmount = new WeakMap();
44
+ _UmbDocumentCollectionToolbarElement_instances = new WeakSet();
45
+ _UmbDocumentCollectionToolbarElement_updateSearch = function _UmbDocumentCollectionToolbarElement_updateSearch(event) {
46
+ const target = event.target;
47
+ const filter = target.value || '';
48
+ clearTimeout(__classPrivateFieldGet(this, _UmbDocumentCollectionToolbarElement_inputTimer, "f"));
49
+ __classPrivateFieldSet(this, _UmbDocumentCollectionToolbarElement_inputTimer, setTimeout(() => __classPrivateFieldGet(this, _UmbDocumentCollectionToolbarElement_collectionContext, "f")?.setFilter({ filter }), __classPrivateFieldGet(this, _UmbDocumentCollectionToolbarElement_inputTimerAmount, "f")), "f");
50
+ };
51
+ _UmbDocumentCollectionToolbarElement_renderSearch = function _UmbDocumentCollectionToolbarElement_renderSearch() {
52
+ return html `
53
+ <uui-input @input=${__classPrivateFieldGet(this, _UmbDocumentCollectionToolbarElement_instances, "m", _UmbDocumentCollectionToolbarElement_updateSearch)} label="Search" placeholder="Search..." id="input-search"></uui-input>
54
+ `;
55
+ };
56
+ UmbDocumentCollectionToolbarElement.styles = [
57
+ css `
58
+ :host {
59
+ height: 100%;
60
+ width: 100%;
61
+ display: flex;
62
+ justify-content: space-between;
63
+ white-space: nowrap;
64
+ gap: var(--uui-size-space-5);
65
+ align-items: center;
66
+ }
67
+
68
+ #input-search {
69
+ width: 100%;
70
+ }
71
+ `,
72
+ ];
73
+ UmbDocumentCollectionToolbarElement = __decorate([
74
+ customElement('umb-document-collection-toolbar')
75
+ ], UmbDocumentCollectionToolbarElement);
76
+ export { UmbDocumentCollectionToolbarElement };
77
+ export default UmbDocumentCollectionToolbarElement;
@@ -0,0 +1,7 @@
1
+ import type { UmbDocumentDetailModel } from '../types.js';
2
+ import type { UmbDocumentCollectionFilterModel } from './types.js';
3
+ import { UmbDefaultCollectionContext } from '../../../core/collection/index.js';
4
+ import type { UmbControllerHost } from '../../../../libs/controller-api/index.js';
5
+ export declare class UmbDocumentCollectionContext extends UmbDefaultCollectionContext<UmbDocumentDetailModel, UmbDocumentCollectionFilterModel> {
6
+ constructor(host: UmbControllerHost);
7
+ }
@@ -0,0 +1,8 @@
1
+ import { UMB_DOCUMENT_TABLE_COLLECTION_VIEW_ALIAS } from './views/index.js';
2
+ import { UmbDefaultCollectionContext } from '../../../core/collection/index.js';
3
+ export class UmbDocumentCollectionContext extends UmbDefaultCollectionContext {
4
+ constructor(host) {
5
+ super(host, UMB_DOCUMENT_TABLE_COLLECTION_VIEW_ALIAS);
6
+ this.selection.setSelectable(true);
7
+ }
8
+ }
@@ -0,0 +1,11 @@
1
+ import { UmbCollectionDefaultElement } from '../../../core/collection/index.js';
2
+ import './document-collection-toolbar.element.js';
3
+ export declare class UmbDocumentCollectionElement extends UmbCollectionDefaultElement {
4
+ protected renderToolbar(): import("lit-html").TemplateResult<1>;
5
+ }
6
+ export default UmbDocumentCollectionElement;
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ 'umb-document-collection': UmbDocumentCollectionElement;
10
+ }
11
+ }
@@ -0,0 +1,19 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html, customElement } from '../../../../external/lit/index.js';
8
+ import { UmbCollectionDefaultElement } from '../../../core/collection/index.js';
9
+ import './document-collection-toolbar.element.js';
10
+ let UmbDocumentCollectionElement = class UmbDocumentCollectionElement extends UmbCollectionDefaultElement {
11
+ renderToolbar() {
12
+ return html `<umb-document-collection-toolbar slot="header"></umb-document-collection-toolbar>`;
13
+ }
14
+ };
15
+ UmbDocumentCollectionElement = __decorate([
16
+ customElement('umb-document-collection')
17
+ ], UmbDocumentCollectionElement);
18
+ export { UmbDocumentCollectionElement };
19
+ export default UmbDocumentCollectionElement;
@@ -1 +1 @@
1
- export { UMB_DOCUMENT_COLLECTION_ALIAS } from './manifests.js';
1
+ export declare const UMB_DOCUMENT_COLLECTION_ALIAS = "Umb.Collection.Document";
@@ -1 +1 @@
1
- export { UMB_DOCUMENT_COLLECTION_ALIAS } from './manifests.js';
1
+ export const UMB_DOCUMENT_COLLECTION_ALIAS = 'Umb.Collection.Document';
@@ -1,3 +1 @@
1
- import type { ManifestTypes } from '../../../core/extension-registry/index.js';
2
- export declare const UMB_DOCUMENT_COLLECTION_ALIAS = "document";
3
- export declare const manifests: Array<ManifestTypes>;
1
+ export declare const manifests: (import("../../../core/extension-registry/index.js").ManifestCollection | import("../../../core/extension-registry/index.js").ManifestCollectionView | import("../../../core/extension-registry/index.js").ManifestCollectionAction | import("../../../core/extension-registry/index.js").ManifestRepository<import("../../../../libs/extension-api/index.js").UmbApi>)[];
@@ -1,29 +1,22 @@
1
- import { UMB_COLLECTION_ALIAS_CONDITION } from '../../../core/collection/index.js';
2
- export const UMB_DOCUMENT_COLLECTION_ALIAS = 'document';
3
- export const manifests = [
4
- // TODO: temp registration, missing collection repository
5
- {
6
- type: 'collection',
7
- kind: 'default',
8
- alias: 'Umb.Collection.Document',
9
- name: 'Document Collection',
10
- },
11
- {
12
- type: 'collectionView',
13
- alias: 'Umb.CollectionView.Document.Table',
14
- name: 'Document Table Collection View',
15
- js: () => import('./views/table/document-table-collection-view.element.js'),
16
- weight: 200,
17
- meta: {
18
- label: 'Table',
19
- icon: 'icon-box',
20
- pathName: 'table',
21
- },
22
- conditions: [
23
- {
24
- alias: UMB_COLLECTION_ALIAS_CONDITION,
25
- match: UMB_DOCUMENT_COLLECTION_ALIAS,
26
- },
27
- ],
1
+ import { UMB_DOCUMENT_COLLECTION_REPOSITORY_ALIAS } from './repository/index.js';
2
+ import { manifests as collectionActionManifests } from './action/manifests.js';
3
+ import { manifests as collectionRepositoryManifests } from './repository/manifests.js';
4
+ import { manifests as collectionViewManifests } from './views/manifests.js';
5
+ import { UmbDocumentCollectionContext } from './document-collection.context.js';
6
+ import { UMB_DOCUMENT_COLLECTION_ALIAS } from './index.js';
7
+ const collectionManifest = {
8
+ type: 'collection',
9
+ alias: UMB_DOCUMENT_COLLECTION_ALIAS,
10
+ name: 'Document Collection',
11
+ api: UmbDocumentCollectionContext,
12
+ element: () => import('./document-collection.element.js'),
13
+ meta: {
14
+ repositoryAlias: UMB_DOCUMENT_COLLECTION_REPOSITORY_ALIAS,
28
15
  },
16
+ };
17
+ export const manifests = [
18
+ collectionManifest,
19
+ ...collectionActionManifests,
20
+ ...collectionRepositoryManifests,
21
+ ...collectionViewManifests,
29
22
  ];
@@ -0,0 +1,19 @@
1
+ import type { UmbDocumentCollectionFilterModel } from '../types.js';
2
+ import type { UmbCollectionRepository } from '../../../../core/repository/index.js';
3
+ import type { UmbControllerHost } from '../../../../../libs/controller-api/index.js';
4
+ export declare class UmbDocumentCollectionRepository implements UmbCollectionRepository {
5
+ #private;
6
+ constructor(host: UmbControllerHost);
7
+ requestCollection(filter: UmbDocumentCollectionFilterModel): Promise<{
8
+ data: {
9
+ items: import("../../tree/types.js").UmbDocumentTreeItemModel[];
10
+ total: number;
11
+ };
12
+ error?: undefined;
13
+ } | {
14
+ error: import("../../../../../external/backend-api/index.js").ApiError | import("../../../../../external/backend-api/index.js").CancelError | undefined;
15
+ data?: undefined;
16
+ }>;
17
+ destroy(): void;
18
+ }
19
+ export default UmbDocumentCollectionRepository;
@@ -0,0 +1,25 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _UmbDocumentCollectionRepository_collectionSource;
13
+ import { UmbDocumentCollectionServerDataSource } from './document-collection.server.data-source.js';
14
+ export class UmbDocumentCollectionRepository {
15
+ constructor(host) {
16
+ _UmbDocumentCollectionRepository_collectionSource.set(this, void 0);
17
+ __classPrivateFieldSet(this, _UmbDocumentCollectionRepository_collectionSource, new UmbDocumentCollectionServerDataSource(host), "f");
18
+ }
19
+ async requestCollection(filter) {
20
+ return __classPrivateFieldGet(this, _UmbDocumentCollectionRepository_collectionSource, "f").getCollection(filter);
21
+ }
22
+ destroy() { }
23
+ }
24
+ _UmbDocumentCollectionRepository_collectionSource = new WeakMap();
25
+ export default UmbDocumentCollectionRepository;
@@ -0,0 +1,18 @@
1
+ import type { UmbDocumentCollectionFilterModel } from '../types.js';
2
+ import type { UmbDocumentTreeItemModel } from '../../tree/types.js';
3
+ import type { UmbCollectionDataSource } from '../../../../core/repository/index.js';
4
+ import type { UmbControllerHost } from '../../../../../libs/controller-api/index.js';
5
+ export declare class UmbDocumentCollectionServerDataSource implements UmbCollectionDataSource<UmbDocumentTreeItemModel> {
6
+ #private;
7
+ constructor(host: UmbControllerHost);
8
+ getCollection(filter: UmbDocumentCollectionFilterModel): Promise<{
9
+ data: {
10
+ items: UmbDocumentTreeItemModel[];
11
+ total: number;
12
+ };
13
+ error?: undefined;
14
+ } | {
15
+ error: import("../../../../../external/backend-api/index.js").ApiError | import("../../../../../external/backend-api/index.js").CancelError | undefined;
16
+ data?: undefined;
17
+ }>;
18
+ }