@umbraco-cms/backoffice 14.0.0--preview004-df50b4ac → 14.0.0--preview004-9f49270d

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 (110) hide show
  1. package/dist-cms/custom-elements.json +59 -10
  2. package/dist-cms/mocks/browser-handlers.js +1 -1
  3. package/dist-cms/mocks/data/document-type.data.d.ts +2 -1
  4. package/dist-cms/mocks/data/document-type.data.js +12 -0
  5. package/dist-cms/mocks/e2e-handlers.js +1 -1
  6. package/dist-cms/mocks/handlers/document-type/detail.handlers.js +37 -0
  7. package/dist-cms/mocks/handlers/document-type/index.d.ts +1 -0
  8. package/dist-cms/mocks/handlers/document-type/index.js +4 -0
  9. package/dist-cms/mocks/handlers/document-type/item.handlers.d.ts +1 -0
  10. package/dist-cms/mocks/handlers/document-type/item.handlers.js +13 -0
  11. package/dist-cms/mocks/handlers/document-type/slug.d.ts +1 -0
  12. package/dist-cms/mocks/handlers/document-type/slug.js +1 -0
  13. package/dist-cms/mocks/handlers/document-type/tree.handlers.d.ts +1 -0
  14. package/dist-cms/mocks/handlers/document-type/tree.handlers.js +25 -0
  15. package/dist-cms/packages/core/data-type/components/data-type-input/data-type-input.context.js +2 -1
  16. package/dist-cms/packages/core/data-type/repository/item/data-type-item.repository.d.ts +2 -22
  17. package/dist-cms/packages/core/data-type/repository/item/data-type-item.repository.js +4 -31
  18. package/dist-cms/packages/core/modal/common/property-settings/property-settings-modal.element.js +2 -2
  19. package/dist-cms/packages/core/modal/token/document-type-picker-modal.token.js +1 -1
  20. package/dist-cms/packages/core/repository/data-source/index.d.ts +0 -1
  21. package/dist-cms/packages/core/repository/data-source/index.js +0 -1
  22. package/dist-cms/packages/core/repository/index.d.ts +1 -1
  23. package/dist-cms/packages/core/repository/index.js +1 -1
  24. package/dist-cms/packages/core/repository/item/index.d.ts +3 -0
  25. package/dist-cms/packages/core/repository/item/index.js +3 -0
  26. package/dist-cms/packages/core/repository/item/item-data-source.interface.d.ts +8 -0
  27. package/dist-cms/packages/core/repository/item/item-repository-base.d.ts +30 -0
  28. package/dist-cms/packages/core/repository/item/item-repository-base.js +37 -0
  29. package/dist-cms/packages/core/repository/item/item-repository.interface.d.ts +11 -0
  30. package/dist-cms/packages/documents/document-types/components/document-type-input/document-type-input.context.d.ts +6 -0
  31. package/dist-cms/packages/documents/document-types/components/document-type-input/document-type-input.context.js +8 -0
  32. package/dist-cms/packages/documents/document-types/components/document-type-input/document-type-input.element.d.ts +53 -0
  33. package/dist-cms/packages/documents/document-types/components/document-type-input/document-type-input.element.js +133 -0
  34. package/dist-cms/packages/documents/document-types/components/index.d.ts +1 -1
  35. package/dist-cms/packages/documents/document-types/components/index.js +1 -1
  36. package/dist-cms/packages/documents/document-types/entity-actions/create/create.action.d.ts +2 -2
  37. package/dist-cms/packages/documents/document-types/entity-actions/create/manifests.js +2 -2
  38. package/dist-cms/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.js +3 -3
  39. package/dist-cms/packages/documents/document-types/entity-actions/manifests.js +5 -5
  40. package/dist-cms/packages/documents/document-types/menu-item/manifests.js +2 -1
  41. package/dist-cms/packages/documents/document-types/repository/detail/document-type-detail.repository.d.ts +30 -0
  42. package/dist-cms/packages/documents/document-types/repository/{document-type.repository.js → detail/document-type-detail.repository.js} +11 -77
  43. package/dist-cms/packages/documents/document-types/repository/detail/document-type-detail.store.d.ts +25 -0
  44. package/dist-cms/packages/documents/document-types/repository/detail/document-type-detail.store.js +28 -0
  45. package/dist-cms/packages/documents/document-types/repository/detail/index.d.ts +3 -0
  46. package/dist-cms/packages/documents/document-types/repository/detail/index.js +3 -0
  47. package/dist-cms/packages/documents/document-types/repository/detail/manifests.d.ts +4 -0
  48. package/dist-cms/packages/documents/document-types/repository/detail/manifests.js +17 -0
  49. package/dist-cms/packages/documents/document-types/repository/index.d.ts +2 -3
  50. package/dist-cms/packages/documents/document-types/repository/index.js +2 -3
  51. package/dist-cms/packages/documents/document-types/repository/item/document-type-item.repository.d.ts +6 -0
  52. package/dist-cms/packages/documents/document-types/repository/item/document-type-item.repository.js +8 -0
  53. package/dist-cms/packages/documents/document-types/repository/{document-type-item.store.d.ts → item/document-type-item.store.d.ts} +5 -5
  54. package/dist-cms/packages/documents/document-types/repository/{document-type-item.store.js → item/document-type-item.store.js} +5 -5
  55. package/dist-cms/packages/documents/document-types/repository/item/index.d.ts +3 -0
  56. package/dist-cms/packages/documents/document-types/repository/item/index.js +3 -0
  57. package/dist-cms/packages/documents/document-types/repository/item/manifests.d.ts +4 -0
  58. package/dist-cms/packages/documents/document-types/repository/item/manifests.js +17 -0
  59. package/dist-cms/packages/documents/document-types/repository/item/types.d.ts +2 -0
  60. package/dist-cms/packages/documents/document-types/repository/item/types.js +1 -0
  61. package/dist-cms/packages/documents/document-types/repository/manifests.d.ts +1 -6
  62. package/dist-cms/packages/documents/document-types/repository/manifests.js +3 -33
  63. package/dist-cms/packages/documents/document-types/tree/document-type-tree.repository.d.ts +16 -0
  64. package/dist-cms/packages/documents/document-types/tree/document-type-tree.repository.js +19 -0
  65. package/dist-cms/packages/documents/document-types/tree/document-type.tree.server.data-source.d.ts +37 -0
  66. package/dist-cms/packages/documents/document-types/{repository/sources/document-type.tree.server.data.js → tree/document-type.tree.server.data-source.js} +3 -24
  67. package/dist-cms/packages/documents/document-types/{repository → tree}/document-type.tree.store.d.ts +3 -3
  68. package/dist-cms/packages/documents/document-types/{repository → tree}/document-type.tree.store.js +3 -4
  69. package/dist-cms/packages/documents/document-types/tree/manifests.d.ts +5 -3
  70. package/dist-cms/packages/documents/document-types/tree/manifests.js +20 -5
  71. package/dist-cms/packages/documents/document-types/tree/types.d.ts +4 -0
  72. package/dist-cms/packages/documents/document-types/tree/types.js +1 -0
  73. package/dist-cms/packages/documents/document-types/workspace/document-type-workspace.context.d.ts +3 -3
  74. package/dist-cms/packages/documents/document-types/workspace/document-type-workspace.context.js +2 -2
  75. package/dist-cms/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.js +3 -3
  76. package/dist-cms/packages/documents/documents/workspace/document-workspace.context.d.ts +2 -2
  77. package/dist-cms/packages/documents/documents/workspace/document-workspace.context.js +4 -3
  78. package/dist-cms/packages/user/user/components/user-input/user-input.context.js +2 -1
  79. package/dist-cms/packages/user/user/repository/index.d.ts +1 -0
  80. package/dist-cms/packages/user/user/repository/index.js +1 -0
  81. package/dist-cms/packages/user/user/repository/item/index.d.ts +3 -0
  82. package/dist-cms/packages/user/user/repository/item/index.js +3 -0
  83. package/dist-cms/packages/user/user/repository/item/manifests.d.ts +4 -0
  84. package/dist-cms/packages/user/user/repository/item/manifests.js +17 -0
  85. package/dist-cms/packages/user/user/repository/item/user-item.repository.d.ts +2 -22
  86. package/dist-cms/packages/user/user/repository/item/user-item.repository.js +4 -31
  87. package/dist-cms/packages/user/user/repository/item/user-item.store.d.ts +1 -1
  88. package/dist-cms/packages/user/user/repository/item/user-item.store.js +2 -2
  89. package/dist-cms/packages/user/user/repository/manifests.d.ts +2 -2
  90. package/dist-cms/packages/user/user/repository/manifests.js +2 -8
  91. package/dist-cms/packages/user/user/repository/user-repository-base.js +3 -3
  92. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  93. package/dist-cms/vscode-html-custom-data.json +18 -6
  94. package/package.json +1 -1
  95. package/dist-cms/mocks/handlers/document-type.handlers.js +0 -80
  96. package/dist-cms/packages/core/repository/data-source/item-data-source.interface.d.ts +0 -4
  97. package/dist-cms/packages/core/repository/item-repository.interface.d.ts +0 -11
  98. package/dist-cms/packages/documents/document-types/components/input-document-type/input-document-type.element.d.ts +0 -27
  99. package/dist-cms/packages/documents/document-types/components/input-document-type/input-document-type.element.js +0 -114
  100. package/dist-cms/packages/documents/document-types/repository/document-type.repository.d.ts +0 -63
  101. package/dist-cms/packages/documents/document-types/repository/document-type.store.d.ts +0 -37
  102. package/dist-cms/packages/documents/document-types/repository/document-type.store.js +0 -44
  103. package/dist-cms/packages/documents/document-types/repository/sources/document-type.tree.server.data.d.ts +0 -39
  104. /package/dist-cms/mocks/handlers/{document-type.handlers.d.ts → document-type/detail.handlers.d.ts} +0 -0
  105. /package/dist-cms/packages/core/repository/{data-source → item}/item-data-source.interface.js +0 -0
  106. /package/dist-cms/packages/core/repository/{item-repository.interface.js → item/item-repository.interface.js} +0 -0
  107. /package/dist-cms/packages/documents/document-types/repository/{sources → detail}/document-type.server.data.d.ts +0 -0
  108. /package/dist-cms/packages/documents/document-types/repository/{sources → detail}/document-type.server.data.js +0 -0
  109. /package/dist-cms/packages/documents/document-types/repository/{sources → item}/document-type-item.server.data.d.ts +0 -0
  110. /package/dist-cms/packages/documents/document-types/repository/{sources → item}/document-type-item.server.data.js +0 -0
@@ -5541,22 +5541,72 @@
5541
5541
  "path": "./../src/packages/documents/document-blueprints/workspace/document-blueprint-root-workspace.element.ts"
5542
5542
  },
5543
5543
  {
5544
- "name": "umb-input-document-type",
5545
- "path": "./../src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts",
5544
+ "name": "umb-document-type-input",
5545
+ "path": "./../src/packages/documents/document-types/components/document-type-input/document-type-input.element.ts",
5546
5546
  "attributes": [
5547
5547
  {
5548
- "name": "selectedIds",
5549
- "type": "string[]"
5548
+ "name": "min",
5549
+ "description": "This is a minimum amount of selected items in this input.",
5550
+ "type": "number",
5551
+ "default": "\"0\""
5552
+ },
5553
+ {
5554
+ "name": "max",
5555
+ "description": "This is a maximum amount of selected items in this input.",
5556
+ "type": "number",
5557
+ "default": "\"Infinity\""
5558
+ },
5559
+ {
5560
+ "name": "min-message",
5561
+ "description": "Min validation message.",
5562
+ "type": "boolean",
5563
+ "default": "\"\""
5564
+ },
5565
+ {
5566
+ "name": "maxMessage",
5567
+ "description": "Max validation message.",
5568
+ "type": "boolean",
5569
+ "default": "\"\""
5550
5570
  },
5551
5571
  {
5552
5572
  "name": "value",
5553
5573
  "type": "string"
5574
+ },
5575
+ {
5576
+ "name": "pickableFilter"
5554
5577
  }
5555
5578
  ],
5556
5579
  "properties": [
5580
+ {
5581
+ "name": "min",
5582
+ "attribute": "min",
5583
+ "description": "This is a minimum amount of selected items in this input.",
5584
+ "type": "number",
5585
+ "default": "\"0\""
5586
+ },
5587
+ {
5588
+ "name": "max",
5589
+ "attribute": "max",
5590
+ "description": "This is a maximum amount of selected items in this input.",
5591
+ "type": "number",
5592
+ "default": "\"Infinity\""
5593
+ },
5594
+ {
5595
+ "name": "minMessage",
5596
+ "attribute": "min-message",
5597
+ "description": "Min validation message.",
5598
+ "type": "boolean",
5599
+ "default": "\"\""
5600
+ },
5601
+ {
5602
+ "name": "maxMessage",
5603
+ "attribute": "maxMessage",
5604
+ "description": "Max validation message.",
5605
+ "type": "boolean",
5606
+ "default": "\"\""
5607
+ },
5557
5608
  {
5558
5609
  "name": "selectedIds",
5559
- "attribute": "selectedIds",
5560
5610
  "type": "string[]"
5561
5611
  },
5562
5612
  {
@@ -5564,16 +5614,15 @@
5564
5614
  "attribute": "value",
5565
5615
  "type": "string"
5566
5616
  },
5617
+ {
5618
+ "name": "pickableFilter",
5619
+ "attribute": "pickableFilter"
5620
+ },
5567
5621
  {
5568
5622
  "name": "styles",
5569
5623
  "type": "array",
5570
5624
  "default": "[null]"
5571
5625
  }
5572
- ],
5573
- "events": [
5574
- {
5575
- "name": "change"
5576
- }
5577
5626
  ]
5578
5627
  },
5579
5628
  {
@@ -1,6 +1,6 @@
1
1
  import { handlers as dataTypeHandlers } from './handlers/data-type/index.js';
2
2
  import { handlers as relationTypeHandlers } from './handlers/relation-type.handlers.js';
3
- import { handlers as documentTypeHandlers } from './handlers/document-type.handlers.js';
3
+ import { handlers as documentTypeHandlers } from './handlers/document-type/index.js';
4
4
  import { handlers as installHandlers } from './handlers/install.handlers.js';
5
5
  import * as manifestsHandlers from './handlers/manifests.handlers.js';
6
6
  import { handlers as publishedStatusHandlers } from './handlers/published-status.handlers.js';
@@ -1,5 +1,5 @@
1
1
  import { UmbEntityData } from './entity.data.js';
2
- import { DocumentTypeTreeItemResponseModel, DocumentTypeResponseModel } from '../../external/backend-api/index.js';
2
+ import { DocumentTypeTreeItemResponseModel, DocumentTypeResponseModel, DocumentTypeItemResponseModel } from '../../external/backend-api/index.js';
3
3
  export declare const data: Array<DocumentTypeResponseModel>;
4
4
  export declare const treeData: Array<DocumentTypeTreeItemResponseModel>;
5
5
  declare class UmbDocumentTypeData extends UmbEntityData<DocumentTypeResponseModel> {
@@ -11,6 +11,7 @@ declare class UmbDocumentTypeData extends UmbEntityData<DocumentTypeResponseMode
11
11
  getTreeItemChildren(id: string): Array<DocumentTypeTreeItemResponseModel>;
12
12
  getTreeItem(ids: Array<string>): Array<DocumentTypeTreeItemResponseModel>;
13
13
  getAllowedTypesOf(id: string): Array<DocumentTypeTreeItemResponseModel>;
14
+ getItems(ids: Array<string>): Array<DocumentTypeItemResponseModel>;
14
15
  }
15
16
  export declare const umbDocumentTypeData: UmbDocumentTypeData;
16
17
  export {};
@@ -1152,5 +1152,17 @@ class UmbDocumentTypeData extends UmbEntityData {
1152
1152
  const items = this.treeData.filter((item) => allowedTypeKeys.includes(item.id ?? ''));
1153
1153
  return items.map((item) => item);
1154
1154
  }
1155
+ getItems(ids) {
1156
+ const items = this.data.filter((item) => ids.includes(item.id ?? ''));
1157
+ return items.map((item) => createDocumentTypeItem(item));
1158
+ }
1155
1159
  }
1160
+ const createDocumentTypeItem = (item) => {
1161
+ return {
1162
+ id: item.id,
1163
+ name: item.name,
1164
+ isElement: item.isElement,
1165
+ icon: item.icon,
1166
+ };
1167
+ };
1156
1168
  export const umbDocumentTypeData = new UmbDocumentTypeData();
@@ -1,5 +1,5 @@
1
1
  import { handlers as dataTypeHandlers } from './handlers/data-type/index.js';
2
- import { handlers as documentTypeHandlers } from './handlers/document-type.handlers.js';
2
+ import { handlers as documentTypeHandlers } from './handlers/document-type/index.js';
3
3
  import { handlers as installHandlers } from './handlers/install.handlers.js';
4
4
  import * as manifestsHandlers from './handlers/manifests.handlers.js';
5
5
  import { handlers as publishedStatusHandlers } from './handlers/published-status.handlers.js';
@@ -0,0 +1,37 @@
1
+ const { rest } = window.MockServiceWorker;
2
+ import { umbDocumentTypeData } from '../../data/document-type.data.js';
3
+ import { slug } from './slug.js';
4
+ import { umbracoPath } from '../../../shared/utils/index.js';
5
+ export const handlers = [
6
+ rest.get(umbracoPath(`${slug}/:id`), (req, res, ctx) => {
7
+ const id = req.params.id;
8
+ if (!id)
9
+ return;
10
+ const document = umbDocumentTypeData.getById(id);
11
+ return res(ctx.status(200), ctx.json(document));
12
+ }),
13
+ rest.delete(umbracoPath(`${slug}/:id`), (req, res, ctx) => {
14
+ const id = req.params.id;
15
+ if (!id)
16
+ return;
17
+ const document = umbDocumentTypeData.getById(id);
18
+ return res(ctx.status(200), ctx.json(document));
19
+ }),
20
+ rest.put(umbracoPath(`${slug}/:id`), async (req, res, ctx) => {
21
+ const id = req.params.id;
22
+ if (!id)
23
+ return;
24
+ const data = await req.json();
25
+ if (!data)
26
+ return;
27
+ const saved = umbDocumentTypeData.save(id, data);
28
+ return res(ctx.status(200), ctx.json(saved));
29
+ }),
30
+ rest.post(umbracoPath(`${slug}`), async (req, res, ctx) => {
31
+ const data = await req.json();
32
+ if (!data)
33
+ return;
34
+ umbDocumentTypeData.insert(data);
35
+ return res(ctx.status(200));
36
+ }),
37
+ ];
@@ -0,0 +1 @@
1
+ export declare const handlers: import("msw").RestHandler<import("msw/lib/glossary-de6278a9.js").M<import("msw/lib/glossary-de6278a9.js").h>>[];
@@ -0,0 +1,4 @@
1
+ import { handlers as treeHandlers } from './tree.handlers.js';
2
+ import { handlers as detailHandlers } from './detail.handlers.js';
3
+ import { handlers as itemHandlers } from './item.handlers.js';
4
+ export const handlers = [...treeHandlers, ...itemHandlers, ...detailHandlers];
@@ -0,0 +1 @@
1
+ export declare const handlers: import("msw").RestHandler<import("msw/lib/glossary-de6278a9.js").M<import("msw/lib/glossary-de6278a9.js").h>>[];
@@ -0,0 +1,13 @@
1
+ const { rest } = window.MockServiceWorker;
2
+ import { umbDocumentTypeData } from '../../data/document-type.data.js';
3
+ import { slug } from './slug.js';
4
+ import { umbracoPath } from '../../../shared/utils/index.js';
5
+ export const handlers = [
6
+ rest.get(umbracoPath(`${slug}/item`), (req, res, ctx) => {
7
+ const ids = req.url.searchParams.getAll('id');
8
+ if (!ids)
9
+ return;
10
+ const items = umbDocumentTypeData.getItems(ids);
11
+ return res(ctx.status(200), ctx.json(items));
12
+ }),
13
+ ];
@@ -0,0 +1 @@
1
+ export declare const slug = "/document-type";
@@ -0,0 +1 @@
1
+ export const slug = '/document-type';
@@ -0,0 +1 @@
1
+ export declare const handlers: import("msw").RestHandler<import("msw/lib/glossary-de6278a9.js").M<import("msw/lib/glossary-de6278a9.js").h>>[];
@@ -0,0 +1,25 @@
1
+ const { rest } = window.MockServiceWorker;
2
+ import { umbDocumentTypeData } from '../../data/document-type.data.js';
3
+ import { slug } from './slug.js';
4
+ import { umbracoPath } from '../../../shared/utils/index.js';
5
+ export const handlers = [
6
+ rest.get(umbracoPath(`/tree${slug}/root`), (req, res, ctx) => {
7
+ const rootItems = umbDocumentTypeData.getTreeRoot();
8
+ const response = {
9
+ total: rootItems.length,
10
+ items: rootItems,
11
+ };
12
+ return res(ctx.status(200), ctx.json(response));
13
+ }),
14
+ rest.get(umbracoPath(`/tree${slug}/children`), (req, res, ctx) => {
15
+ const parentId = req.url.searchParams.get('parentId');
16
+ if (!parentId)
17
+ return;
18
+ const children = umbDocumentTypeData.getTreeItemChildren(parentId);
19
+ const response = {
20
+ total: children.length,
21
+ items: children,
22
+ };
23
+ return res(ctx.status(200), ctx.json(response));
24
+ }),
25
+ ];
@@ -1,7 +1,8 @@
1
+ import { DATA_TYPE_ITEM_REPOSITORY_ALIAS } from '../../repository/index.js';
1
2
  import { UmbPickerInputContext } from '../../../picker-input/index.js';
2
3
  import { UMB_DATA_TYPE_PICKER_MODAL } from '../../../modal/index.js';
3
4
  export class UmbDataTypePickerContext extends UmbPickerInputContext {
4
5
  constructor(host) {
5
- super(host, 'Umb.Repository.DataType', UMB_DATA_TYPE_PICKER_MODAL);
6
+ super(host, DATA_TYPE_ITEM_REPOSITORY_ALIAS, UMB_DATA_TYPE_PICKER_MODAL);
6
7
  }
7
8
  }
@@ -1,26 +1,6 @@
1
- import { UmbDataTypeRepositoryBase } from '../data-type-repository-base.js';
2
1
  import type { UmbControllerHost } from '../../../../../libs/controller-api/index.js';
3
- import { UmbItemRepository } from '../../../repository/index.js';
2
+ import { UmbItemRepositoryBase } from '../../../repository/index.js';
4
3
  import { DataTypeItemResponseModel } from '../../../../../external/backend-api/index.js';
5
- export declare class UmbDataTypeItemRepository extends UmbDataTypeRepositoryBase implements UmbItemRepository<DataTypeItemResponseModel> {
6
- #private;
4
+ export declare class UmbDataTypeItemRepository extends UmbItemRepositoryBase<DataTypeItemResponseModel> {
7
5
  constructor(host: UmbControllerHost);
8
- /**
9
- * Requests the Data Type items for the given ids
10
- * @param {Array<string>} ids
11
- * @return {*}
12
- * @memberof UmbDataTypeItemRepository
13
- */
14
- requestItems(ids: Array<string>): Promise<{
15
- data: DataTypeItemResponseModel[] | undefined;
16
- error: import("../../../../../external/backend-api/index.js").ApiError | import("../../../../../external/backend-api/index.js").CancelError | undefined;
17
- asObservable: () => import("rxjs").Observable<DataTypeItemResponseModel[]>;
18
- }>;
19
- /**
20
- * Returns a promise with an observable of the Data Type items for the given ids
21
- * @param {Array<string>} ids
22
- * @return {Promise<Observable<DataTypeItemResponseModel[]>>}
23
- * @memberof UmbDataTypeItemRepository
24
- */
25
- items(ids: Array<string>): Promise<import("rxjs").Observable<DataTypeItemResponseModel[]>>;
26
6
  }
@@ -1,35 +1,8 @@
1
- import { UmbDataTypeRepositoryBase } from '../data-type-repository-base.js';
2
1
  import { UmbDataTypeItemServerDataSource } from './data-type-item.server.data.js';
3
- export class UmbDataTypeItemRepository extends UmbDataTypeRepositoryBase {
4
- #itemSource;
2
+ import { UMB_DATA_TYPE_ITEM_STORE_CONTEXT } from './data-type-item.store.js';
3
+ import { UmbItemRepositoryBase } from '../../../repository/index.js';
4
+ export class UmbDataTypeItemRepository extends UmbItemRepositoryBase {
5
5
  constructor(host) {
6
- super(host);
7
- this.#itemSource = new UmbDataTypeItemServerDataSource(host);
8
- }
9
- /**
10
- * Requests the Data Type items for the given ids
11
- * @param {Array<string>} ids
12
- * @return {*}
13
- * @memberof UmbDataTypeItemRepository
14
- */
15
- async requestItems(ids) {
16
- if (!ids)
17
- throw new Error('Ids are missing');
18
- await this._init;
19
- const { data, error } = await this.#itemSource.getItems(ids);
20
- if (data) {
21
- this._itemStore.appendItems(data);
22
- }
23
- return { data, error, asObservable: () => this._itemStore.items(ids) };
24
- }
25
- /**
26
- * Returns a promise with an observable of the Data Type items for the given ids
27
- * @param {Array<string>} ids
28
- * @return {Promise<Observable<DataTypeItemResponseModel[]>>}
29
- * @memberof UmbDataTypeItemRepository
30
- */
31
- async items(ids) {
32
- await this._init;
33
- return this._itemStore.items(ids);
6
+ super(host, UmbDataTypeItemServerDataSource, UMB_DATA_TYPE_ITEM_STORE_CONTEXT);
34
7
  }
35
8
  }
@@ -8,7 +8,7 @@ import { UmbTextStyles } from '../../../../../shared/style/index.js';
8
8
  import { css, html, nothing, customElement, state } from '../../../../../external/lit/index.js';
9
9
  import { UmbModalBaseElement, } from '../../index.js';
10
10
  import { generateAlias } from '../../../../../shared/utils/index.js';
11
- import { UMB_DOCUMENT_TYPE_STORE_CONTEXT_TOKEN } from '../../../../documents/document-types/index.js';
11
+ import { UMB_DOCUMENT_TYPE_DETAIL_STORE_CONTEXT } from '../../../../documents/document-types/index.js';
12
12
  // TODO: Could base take a token to get its types?.
13
13
  // TODO: Missing a workspace context... unless this should not be a workspace any way.
14
14
  export let UmbPropertySettingsModalElement = class UmbPropertySettingsModalElement extends UmbModalBaseElement {
@@ -44,7 +44,7 @@ export let UmbPropertySettingsModalElement = class UmbPropertySettingsModalEleme
44
44
  connectedCallback() {
45
45
  super.connectedCallback();
46
46
  // TODO: This is actually not good enough, we need to be able to get to the DOCUMENT_WORKSPACE_CONTEXT, so we can have a look at the draft/runtime version of the document. Otherwise 'Vary by culture' is first updated when saved.
47
- this.consumeContext(UMB_DOCUMENT_TYPE_STORE_CONTEXT_TOKEN, (instance) => {
47
+ this.consumeContext(UMB_DOCUMENT_TYPE_DETAIL_STORE_CONTEXT, (instance) => {
48
48
  this.observe(instance.byId(this.data?.documentTypeId), (documentType) => {
49
49
  this._ownerDocumentType = documentType;
50
50
  this.requestUpdate('_ownerDocumentType');
@@ -3,5 +3,5 @@ export const UMB_DOCUMENT_TYPE_PICKER_MODAL = new UmbModalToken('Umb.Modal.TreeP
3
3
  type: 'sidebar',
4
4
  size: 'small',
5
5
  }, {
6
- treeAlias: 'Umb.Tree.DocumentTypes',
6
+ treeAlias: 'Umb.Tree.DocumentType',
7
7
  });
@@ -5,6 +5,5 @@ export * from './data-source.interface.js';
5
5
  export * from './extend-data-source-paged-response-data.function.js';
6
6
  export * from './extend-data-source-response-data.function.js';
7
7
  export * from './folder-data-source.interface.js';
8
- export * from './item-data-source.interface.js';
9
8
  export * from './move-data-source.interface.js';
10
9
  export * from './types.js';
@@ -5,6 +5,5 @@ export * from './data-source.interface.js';
5
5
  export * from './extend-data-source-paged-response-data.function.js';
6
6
  export * from './extend-data-source-response-data.function.js';
7
7
  export * from './folder-data-source.interface.js';
8
- export * from './item-data-source.interface.js';
9
8
  export * from './move-data-source.interface.js';
10
9
  export * from './types.js';
@@ -2,8 +2,8 @@ export * from './data-source/index.js';
2
2
  export * from './detail-repository.interface.js';
3
3
  export * from './folder-repository.interface.js';
4
4
  export * from './collection-repository.interface.js';
5
- export * from './item-repository.interface.js';
6
5
  export * from './move-repository.interface.js';
7
6
  export * from './copy-repository.interface.js';
8
7
  export * from './repository-items.manager.js';
9
8
  export * from './repository-base.js';
9
+ export * from './item/index.js';
@@ -2,8 +2,8 @@ export * from './data-source/index.js';
2
2
  export * from './detail-repository.interface.js';
3
3
  export * from './folder-repository.interface.js';
4
4
  export * from './collection-repository.interface.js';
5
- export * from './item-repository.interface.js';
6
5
  export * from './move-repository.interface.js';
7
6
  export * from './copy-repository.interface.js';
8
7
  export * from './repository-items.manager.js';
9
8
  export * from './repository-base.js';
9
+ export * from './item/index.js';
@@ -0,0 +1,3 @@
1
+ export * from './item-data-source.interface.js';
2
+ export * from './item-repository-base.js';
3
+ export * from './item-repository.interface.js';
@@ -0,0 +1,3 @@
1
+ export * from './item-data-source.interface.js';
2
+ export * from './item-repository-base.js';
3
+ export * from './item-repository.interface.js';
@@ -0,0 +1,8 @@
1
+ import { UmbControllerHost } from '../../../../libs/controller-api/index.js';
2
+ import type { DataSourceResponse } from '../index.js';
3
+ export interface UmbItemDataSourceConstructor<ItemType = any> {
4
+ new (host: UmbControllerHost): UmbItemDataSource<ItemType>;
5
+ }
6
+ export interface UmbItemDataSource<ItemType = any> {
7
+ getItems(unique: Array<string>): Promise<DataSourceResponse<Array<ItemType>>>;
8
+ }
@@ -0,0 +1,30 @@
1
+ import { UmbRepositoryBase } from '../repository-base.js';
2
+ import { UmbItemDataSourceConstructor } from './item-data-source.interface.js';
3
+ import { UmbItemRepository } from './item-repository.interface.js';
4
+ import { UmbControllerHost } from '../../../../libs/controller-api/index.js';
5
+ import { UmbItemStore } from '../../store/index.js';
6
+ import { UmbContextToken } from '../../../../libs/context-api/index.js';
7
+ export declare class UmbItemRepositoryBase<ItemType = any> extends UmbRepositoryBase implements UmbItemRepository<ItemType> {
8
+ #private;
9
+ protected _init: Promise<unknown>;
10
+ protected _itemStore?: UmbItemStore;
11
+ constructor(host: UmbControllerHost, itemSource: UmbItemDataSourceConstructor, itemStoreContextAlias: string | UmbContextToken<any, any>);
12
+ /**
13
+ * Requests the items for the given uniques
14
+ * @param {Array<string>} uniques
15
+ * @return {*}
16
+ * @memberof UmbItemRepositoryBase
17
+ */
18
+ requestItems(uniques: Array<string>): Promise<{
19
+ data: any[] | undefined;
20
+ error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
21
+ asObservable: () => import("rxjs").Observable<any[]>;
22
+ }>;
23
+ /**
24
+ * Returns a promise with an observable of the items for the given uniques
25
+ * @param {Array<string>} uniques
26
+ * @return {*}
27
+ * @memberof UmbItemRepositoryBase
28
+ */
29
+ items(uniques: Array<string>): Promise<import("rxjs").Observable<any[]>>;
30
+ }
@@ -0,0 +1,37 @@
1
+ import { UmbRepositoryBase } from '../repository-base.js';
2
+ export class UmbItemRepositoryBase extends UmbRepositoryBase {
3
+ #itemSource;
4
+ constructor(host, itemSource, itemStoreContextAlias) {
5
+ super(host);
6
+ this.#itemSource = new itemSource(host);
7
+ this._init = this.consumeContext(itemStoreContextAlias, (instance) => {
8
+ this._itemStore = instance;
9
+ }).asPromise();
10
+ }
11
+ /**
12
+ * Requests the items for the given uniques
13
+ * @param {Array<string>} uniques
14
+ * @return {*}
15
+ * @memberof UmbItemRepositoryBase
16
+ */
17
+ async requestItems(uniques) {
18
+ if (!uniques)
19
+ throw new Error('Uniques are missing');
20
+ await this._init;
21
+ const { data, error } = await this.#itemSource.getItems(uniques);
22
+ if (data) {
23
+ this._itemStore.appendItems(data);
24
+ }
25
+ return { data, error, asObservable: () => this._itemStore.items(uniques) };
26
+ }
27
+ /**
28
+ * Returns a promise with an observable of the items for the given uniques
29
+ * @param {Array<string>} uniques
30
+ * @return {*}
31
+ * @memberof UmbItemRepositoryBase
32
+ */
33
+ async items(uniques) {
34
+ await this._init;
35
+ return this._itemStore.items(uniques);
36
+ }
37
+ }
@@ -0,0 +1,11 @@
1
+ import type { Observable } from '../../../../external/rxjs/index.js';
2
+ import { ProblemDetails } from '../../../../external/backend-api/index.js';
3
+ import { UmbApi } from '../../../../libs/extension-api/index.js';
4
+ export interface UmbItemRepository<ItemType = any> extends UmbApi {
5
+ requestItems: (uniques: string[]) => Promise<{
6
+ data?: Array<ItemType> | undefined;
7
+ error?: ProblemDetails | undefined;
8
+ asObservable?: () => Observable<Array<ItemType>>;
9
+ }>;
10
+ items: (uniques: string[]) => Promise<Observable<Array<ItemType>>>;
11
+ }
@@ -0,0 +1,6 @@
1
+ import { UmbPickerInputContext } from '../../../../core/picker-input/index.js';
2
+ import { UmbControllerHostElement } from '../../../../../libs/controller-api/index.js';
3
+ import { DocumentTypeItemResponseModel } from '../../../../../external/backend-api/index.js';
4
+ export declare class UmbDocumentTypePickerContext extends UmbPickerInputContext<DocumentTypeItemResponseModel> {
5
+ constructor(host: UmbControllerHostElement);
6
+ }
@@ -0,0 +1,8 @@
1
+ import { DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS } from '../../repository/index.js';
2
+ import { UmbPickerInputContext } from '../../../../core/picker-input/index.js';
3
+ import { UMB_DOCUMENT_TYPE_PICKER_MODAL } from '../../../../core/modal/index.js';
4
+ export class UmbDocumentTypePickerContext extends UmbPickerInputContext {
5
+ constructor(host) {
6
+ super(host, DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS, UMB_DOCUMENT_TYPE_PICKER_MODAL);
7
+ }
8
+ }
@@ -0,0 +1,53 @@
1
+ import { UmbLitElement } from '../../../../../shared/lit-element/index.js';
2
+ import type { DocumentTypeItemResponseModel } from '../../../../../external/backend-api/index.js';
3
+ declare const UmbDocumentTypeInputElement_base: (new (...args: any[]) => import("../../../../../external/uui/index.js").FormControlMixinInterface) & typeof UmbLitElement;
4
+ export declare class UmbDocumentTypeInputElement extends UmbDocumentTypeInputElement_base {
5
+ #private;
6
+ /**
7
+ * This is a minimum amount of selected items in this input.
8
+ * @type {number}
9
+ * @attr
10
+ * @default 0
11
+ */
12
+ get min(): number;
13
+ set min(value: number);
14
+ /**
15
+ * Min validation message.
16
+ * @type {boolean}
17
+ * @attr
18
+ * @default
19
+ */
20
+ minMessage: string;
21
+ /**
22
+ * This is a maximum amount of selected items in this input.
23
+ * @type {number}
24
+ * @attr
25
+ * @default Infinity
26
+ */
27
+ get max(): number;
28
+ set max(value: number);
29
+ /**
30
+ * Max validation message.
31
+ * @type {boolean}
32
+ * @attr
33
+ * @default
34
+ */
35
+ maxMessage: string;
36
+ get selectedIds(): Array<string>;
37
+ set selectedIds(ids: Array<string>);
38
+ set value(idsString: string);
39
+ get pickableFilter(): ((item: DocumentTypeItemResponseModel) => boolean) | undefined;
40
+ set pickableFilter(newVal: ((item: DocumentTypeItemResponseModel) => boolean) | undefined);
41
+ private _items?;
42
+ constructor();
43
+ protected getFormElement(): undefined;
44
+ render(): import("lit-html").TemplateResult<1>;
45
+ private _renderItem;
46
+ static styles: import("@lit/reactive-element/css-tag.js").CSSResult[];
47
+ }
48
+ export default UmbDocumentTypeInputElement;
49
+ declare global {
50
+ interface HTMLElementTagNameMap {
51
+ 'umb-document-type-input': UmbDocumentTypeInputElement;
52
+ }
53
+ }