@social-mail/social-mail-client 1.2.215 → 1.2.217

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 (98) hide show
  1. package/dist/admin/AdminAppIndex.pack.js +4815 -188
  2. package/dist/admin/AdminAppIndex.pack.js.map +1 -1
  3. package/dist/admin/AdminAppIndex.pack.min.js +34 -7
  4. package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
  5. package/dist/common/commands/CommonCommands.d.ts +1 -3
  6. package/dist/common/commands/CommonCommands.d.ts.map +1 -1
  7. package/dist/common/commands/CommonCommands.js +1 -1
  8. package/dist/common/commands/CommonCommands.js.map +1 -1
  9. package/dist/common/controls/collection-editor/CollectionEditor.d.ts +2 -1
  10. package/dist/common/controls/collection-editor/CollectionEditor.d.ts.map +1 -1
  11. package/dist/common/controls/collection-editor/CollectionEditor.js +26 -12
  12. package/dist/common/controls/collection-editor/CollectionEditor.js.map +1 -1
  13. package/dist/common/controls/collection-editor/CollectionEditorEx.js +173 -0
  14. package/dist/common/controls/collection-editor/CollectionEditorEx.js.map +1 -0
  15. package/dist/common/controls/reference-editor/ReferenceEditor.d.ts +38 -0
  16. package/dist/common/controls/reference-editor/ReferenceEditor.d.ts.map +1 -0
  17. package/dist/common/controls/reference-editor/ReferenceEditor.js +226 -0
  18. package/dist/common/controls/reference-editor/ReferenceEditor.js.map +1 -0
  19. package/dist/common/controls/search-items/SearchItemsPage.d.ts +7 -0
  20. package/dist/common/controls/search-items/SearchItemsPage.d.ts.map +1 -0
  21. package/dist/common/controls/search-items/SearchItemsPage.js +15 -0
  22. package/dist/common/controls/search-items/SearchItemsPage.js.map +1 -0
  23. package/dist/common/controls/tags/TagChips.d.ts +7 -0
  24. package/dist/common/controls/tags/TagChips.d.ts.map +1 -0
  25. package/dist/common/controls/tags/TagChips.js +89 -0
  26. package/dist/common/controls/tags/TagChips.js.map +1 -0
  27. package/dist/common/pages/contacts/ContactEditorPage.d.ts +12 -0
  28. package/dist/common/pages/contacts/ContactEditorPage.d.ts.map +1 -0
  29. package/dist/common/pages/contacts/ContactEditorPage.js +150 -0
  30. package/dist/common/pages/contacts/ContactEditorPage.js.map +1 -0
  31. package/dist/common/pages/stores/StoreDetailPage.d.ts.map +1 -1
  32. package/dist/common/pages/stores/StoreDetailPage.js +11 -3
  33. package/dist/common/pages/stores/StoreDetailPage.js.map +1 -1
  34. package/dist/common/pages/stores/folders/EditItemFolderPage.d.ts +10 -0
  35. package/dist/common/pages/stores/folders/EditItemFolderPage.d.ts.map +1 -0
  36. package/dist/common/pages/stores/folders/EditItemFolderPage.js +92 -0
  37. package/dist/common/pages/stores/folders/EditItemFolderPage.js.map +1 -0
  38. package/dist/common/pages/stores/orders/EditOrderPage.d.ts +5 -2
  39. package/dist/common/pages/stores/orders/EditOrderPage.d.ts.map +1 -1
  40. package/dist/common/pages/stores/orders/EditOrderPage.js +145 -4
  41. package/dist/common/pages/stores/orders/EditOrderPage.js.map +1 -1
  42. package/dist/common/pages/stores/products/EditProductDetailPage.d.ts +2 -3
  43. package/dist/common/pages/stores/products/EditProductDetailPage.d.ts.map +1 -1
  44. package/dist/common/pages/stores/products/EditProductDetailPage.js +110 -25
  45. package/dist/common/pages/stores/products/EditProductDetailPage.js.map +1 -1
  46. package/dist/common/pages/stores/products/EditProductListPage.d.ts.map +1 -1
  47. package/dist/common/pages/stores/products/EditProductListPage.js +24 -25
  48. package/dist/common/pages/stores/products/EditProductListPage.js.map +1 -1
  49. package/dist/model/model.d.ts +87 -2
  50. package/dist/model/model.d.ts.map +1 -1
  51. package/dist/model/model.js +3498 -18
  52. package/dist/model/model.js.map +1 -1
  53. package/dist/public/channel/ChannelView.pack.js +3500 -19
  54. package/dist/public/channel/ChannelView.pack.js.map +1 -1
  55. package/dist/public/channel/ChannelView.pack.min.js +2 -2
  56. package/dist/public/channel/ChannelView.pack.min.js.map +1 -1
  57. package/dist/services/contacts/ContactService.d.ts +8 -0
  58. package/dist/services/contacts/ContactService.d.ts.map +1 -0
  59. package/dist/services/contacts/ContactService.js +40 -0
  60. package/dist/services/contacts/ContactService.js.map +1 -0
  61. package/dist/services/store/StoreItemService.d.ts.map +1 -1
  62. package/dist/services/store/StoreItemService.js +3 -3
  63. package/dist/services/store/StoreItemService.js.map +1 -1
  64. package/dist/services/store/StoreOrderService.d.ts +3 -1
  65. package/dist/services/store/StoreOrderService.d.ts.map +1 -1
  66. package/dist/services/store/StoreOrderService.js +72 -3
  67. package/dist/services/store/StoreOrderService.js.map +1 -1
  68. package/dist/site-editor/editor/WebSitePageEditor.js +1 -1
  69. package/dist/tsconfig.tsbuildinfo +1 -1
  70. package/dist/web/AppIndex.pack.js +4816 -189
  71. package/dist/web/AppIndex.pack.js.map +1 -1
  72. package/dist/web/AppIndex.pack.min.js +34 -7
  73. package/dist/web/AppIndex.pack.min.js.map +1 -1
  74. package/node_modules/@web-atoms/entity/dist/services/BaseEntityService.d.ts +26 -1
  75. package/node_modules/@web-atoms/entity/dist/services/BaseEntityService.d.ts.map +1 -1
  76. package/node_modules/@web-atoms/entity/dist/services/BaseEntityService.js +2 -1
  77. package/node_modules/@web-atoms/entity/dist/services/BaseEntityService.js.map +1 -1
  78. package/node_modules/@web-atoms/entity/dist/tsconfig.tsbuildinfo +1 -1
  79. package/node_modules/@web-atoms/entity/package.json +1 -1
  80. package/node_modules/@web-atoms/entity/src/services/BaseEntityService.ts +27 -1
  81. package/package.json +2 -2
  82. package/src/common/commands/CommonCommands.ts +1 -1
  83. package/src/common/controls/collection-editor/CollectionEditor.tsx +28 -7
  84. package/src/common/controls/collection-editor/CollectionEditorEx.tsx +158 -0
  85. package/src/common/controls/reference-editor/ReferenceEditor.tsx +227 -0
  86. package/src/common/controls/search-items/SearchItemsPage.tsx +10 -0
  87. package/src/common/controls/tags/TagChips.tsx +51 -0
  88. package/src/common/pages/contacts/ContactEditorPage.tsx +132 -0
  89. package/src/common/pages/stores/StoreDetailPage.tsx +3 -1
  90. package/src/common/pages/stores/folders/EditItemFolderPage.tsx +69 -0
  91. package/src/common/pages/stores/orders/EditOrderPage.tsx +148 -5
  92. package/src/common/pages/stores/products/EditProductDetailPage.tsx +106 -29
  93. package/src/common/pages/stores/products/EditProductListPage.tsx +15 -12
  94. package/src/model/model.ts +538 -62
  95. package/src/services/contacts/ContactService.ts +29 -0
  96. package/src/services/store/StoreItemService.ts +7 -4
  97. package/src/services/store/StoreOrderService.ts +77 -2
  98. package/src/site-editor/editor/WebSitePageEditor.tsx +1 -1
@@ -26,8 +26,6 @@ export default class CommonCommands extends Commands {
26
26
  static editProductList: Command<{
27
27
  storeID: any;
28
28
  }, any>;
29
- static editProduct: Command<{
30
- id: any;
31
- }, any>;
29
+ static editProduct: Command<Partial<import("../../model/model").IStoreItem>, any>;
32
30
  }
33
31
  //# sourceMappingURL=CommonCommands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommonCommands.d.ts","sourceRoot":"","sources":["../../../src/common/commands/CommonCommands.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAKtE,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,QAAQ;IAEhD,MAAM,CAAC,WAAW;;YAIf;IAEH,MAAM,CAAC,WAAW;;YAIf;IAEH,MAAM,CAAC,eAAe;;YAInB;IAEH,MAAM,CAAC,UAAU,oBAId;IAEH,MAAM,CAAC,aAAa;;YAIjB;IAGH,MAAM,CAAC,WAAW;;;YAIf;IAEH,MAAM,CAAC,cAAc,oBAGlB;IAEH,MAAM,CAAC,gBAAgB,oBAGpB;IAEH,MAAM,CAAC,eAAe,oBAInB;IAEH,MAAM,CAAC,SAAS;;YAIb;IAEH,MAAM,CAAC,eAAe;;YAInB;IAGH,MAAM,CAAC,WAAW;;YAIf;CACN"}
1
+ {"version":3,"file":"CommonCommands.d.ts","sourceRoot":"","sources":["../../../src/common/commands/CommonCommands.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAKtE,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,QAAQ;IAEhD,MAAM,CAAC,WAAW;;YAIf;IAEH,MAAM,CAAC,WAAW;;YAIf;IAEH,MAAM,CAAC,eAAe;;YAInB;IAEH,MAAM,CAAC,UAAU,oBAId;IAEH,MAAM,CAAC,aAAa;;YAIjB;IAGH,MAAM,CAAC,WAAW;;;YAIf;IAEH,MAAM,CAAC,cAAc,oBAGlB;IAEH,MAAM,CAAC,gBAAgB,oBAGpB;IAEH,MAAM,CAAC,eAAe,oBAInB;IAEH,MAAM,CAAC,SAAS;;YAIb;IAEH,MAAM,CAAC,eAAe;;YAInB;IAGH,MAAM,CAAC,WAAW,gEAIf;CACN"}
@@ -67,7 +67,7 @@ System.register(["@web-atoms/core/dist/core/Command", "../apiPath"], function (_
67
67
  openPage: () => _context.import("../pages/stores/products/EditProductListPage")
68
68
  });
69
69
  CommonCommands.editProduct = Command.create({
70
- route: "/stores/product/{id}",
70
+ route: "/stores/product/{storeItemID}",
71
71
  routeOrder: 200,
72
72
  openPage: () => _context.import("../pages/stores/products/EditProductDetailPage")
73
73
  });
@@ -1 +1 @@
1
- {"version":3,"names":["CommonCommands","_export","setters","_webAtomsCoreDistCoreCommand","Command","default","Commands","_apiPath","apiPathRoot","execute","routePrefix","openMailbox","create","route","routeOrder","openPage","_context","import","openChannel","openSubscribers","openDrives","manageWebSite","editWebSite","changePassword","pushPage","setupMultiFactor","openWebSiteList","editStore","editProductList","editProduct"],"sources":["../../../src/common/commands/CommonCommands.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"names":["CommonCommands","_export","setters","_webAtomsCoreDistCoreCommand","Command","default","Commands","_apiPath","apiPathRoot","execute","routePrefix","openMailbox","create","route","routeOrder","openPage","_context","import","openChannel","openSubscribers","openDrives","manageWebSite","editWebSite","changePassword","pushPage","setupMultiFactor","openWebSiteList","editStore","editProductList","editProduct"],"sources":["../../../src/common/commands/CommonCommands.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import XNode from "@web-atoms/core/dist/core/XNode";
2
- export default function CollectionEditor<T>({ model, collection, addPage, pageResultToItem, addItemDefaults, itemFactory, editPage, label, itemRenderer }: {
2
+ export default function CollectionEditor<T>({ model, collection, addPage, pageResultToItem, addItemDefaults, itemFactory, editPage, label, itemRenderer, autoFocus }: {
3
3
  model: T;
4
4
  collection: string & keyof T;
5
5
  pageResultToItem?: (item: any) => any;
@@ -9,5 +9,6 @@ export default function CollectionEditor<T>({ model, collection, addPage, pageRe
9
9
  editPage?: any;
10
10
  label: string;
11
11
  itemRenderer: (item: any) => XNode;
12
+ autoFocus?: boolean;
12
13
  }): any;
13
14
  //# sourceMappingURL=CollectionEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CollectionEditor.d.ts","sourceRoot":"","sources":["../../../../src/common/controls/collection-editor/CollectionEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,iCAAiC,CAAC;AAiBpD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,CAAC,EAAE,EACxC,KAAK,EACL,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,eAAe,EACf,WAA+D,EAC/D,QAAQ,EACR,KAAK,EACL,YAAY,EACf,EAAE;IACC,KAAK,EAAE,CAAC,CAAC;IACT,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAC7B,gBAAgB,CAAC,EAAE,CAAC,IAAI,KAAA,KAAK,GAAG,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,KAAA,KAAK,KAAK,CAAA;CAChC,OA2EA"}
1
+ {"version":3,"file":"CollectionEditor.d.ts","sourceRoot":"","sources":["../../../../src/common/controls/collection-editor/CollectionEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,iCAAiC,CAAC;AA4BpD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,CAAC,EAAE,EACxC,KAAK,EACL,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,SAAiB,EACpB,EAAE;IACC,KAAK,EAAE,CAAC,CAAC;IACT,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAC7B,gBAAgB,CAAC,EAAE,CAAC,IAAI,KAAA,KAAK,GAAG,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,KAAA,KAAK,KAAK,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAA;CACtB,OAmFA"}
@@ -1,23 +1,25 @@
1
- System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/AtomRepeater", "@web-atoms/web-controls/dist/basic/Expander", "../buttons/IconButton", "@web-atoms/web-controls/dist/PageNavigator", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/web/services/PopupService", "../../../services/EntityService", "@web-atoms/core/dist/style/styled"], function (_export, _context) {
1
+ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/AtomRepeater", "@web-atoms/web-controls/dist/basic/Expander", "../buttons/IconButton", "@web-atoms/web-controls/dist/PageNavigator", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/web/services/PopupService", "../../../services/EntityService", "@web-atoms/core/dist/style/styled", "../../../model/model"], function (_export, _context) {
2
2
  "use strict";
3
3
 
4
- var __awaiter, XNode, AtomRepeater, Expander, AddIconTextButton, DeleteIconButton, PageNavigator, Bind, PopupService, EntityService, styled;
4
+ var __awaiter, XNode, AtomRepeater, Expander, AddIconTextButton, DeleteIconButton, PageNavigator, Bind, PopupService, EntityService, styled, modelEntitySchemas, hasKeys;
5
5
  function CollectionEditor({
6
6
  model,
7
7
  collection,
8
8
  addPage,
9
9
  pageResultToItem,
10
10
  addItemDefaults,
11
- itemFactory = () => {
12
- throw new Error("itemFactory not set");
13
- },
11
+ itemFactory,
14
12
  editPage,
15
13
  label,
16
- itemRenderer
14
+ itemRenderer,
15
+ autoFocus = false
17
16
  }) {
18
17
  var _a;
19
18
  let repeater;
20
19
  const items = (_a = model[collection]) !== null && _a !== void 0 ? _a : model[collection] = [];
20
+ const schema = modelEntitySchemas[model.$type];
21
+ const relation = schema.schema.relations.find(x => x.name === collection);
22
+ itemFactory !== null && itemFactory !== void 0 ? itemFactory : itemFactory = () => relation.relatedModel.create(addItemDefaults !== null && addItemDefaults !== void 0 ? addItemDefaults : {});
21
23
  const onAddItem = () => __awaiter(this, void 0, void 0, function* () {
22
24
  const es = repeater.app.resolve(EntityService);
23
25
  let newItem;
@@ -33,12 +35,14 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-con
33
35
  if (newItem === null || newItem === void 0 ? void 0 : newItem.then) {
34
36
  newItem = yield newItem;
35
37
  }
36
- const draft = Object.assign(Object.assign({}, model), {
37
- [collection]: [newItem]
38
- });
39
- let clone = es.cloner(draft);
40
- clone = clone.include(x => x[collection]);
41
- yield es.save(clone.copy);
38
+ if (hasKeys(model, schema)) {
39
+ const draft = Object.assign(Object.assign({}, model), {
40
+ [collection]: [newItem]
41
+ });
42
+ let clone = es.cloner(draft);
43
+ clone = clone.include(x => x[collection]);
44
+ yield es.save(clone.copy);
45
+ }
42
46
  repeater.items.add(newItem);
43
47
  });
44
48
  const deleteItem = item => __awaiter(this, void 0, void 0, function* () {
@@ -106,6 +110,8 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-con
106
110
  EntityService = _servicesEntityService.default;
107
111
  }, function (_webAtomsCoreDistStyleStyled) {
108
112
  styled = _webAtomsCoreDistStyleStyled.default;
113
+ }, function (_modelModel) {
114
+ modelEntitySchemas = _modelModel.modelEntitySchemas;
109
115
  }],
110
116
  execute: function () {
111
117
  styled.css`
@@ -114,6 +120,14 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-con
114
120
  border: solid 1px lightgray;
115
121
  border-radius: 10px;
116
122
  `.installGlobal("div[data-collection-editor]");
123
+ hasKeys = (model, schema) => {
124
+ for (const iterator of schema.schema.keys) {
125
+ if (!model[iterator.name]) {
126
+ return false;
127
+ }
128
+ }
129
+ return true;
130
+ };
117
131
  }
118
132
  };
119
133
  });
@@ -1 +1 @@
1
- {"version":3,"names":["CollectionEditor","model","collection","addPage","pageResultToItem","addItemDefaults","itemFactory","Error","editPage","label","itemRenderer","repeater","items","_a","onAddItem","__awaiter","es","app","resolve","EntityService","newItem","result","PageNavigator","pushPageForResult","then","draft","Object","assign","clone","cloner","include","x","save","copy","add","deleteItem","item","PopupService","confirm","message","title","$deleted","remove","XNode","create","Expander","isExpanded","text","AtomRepeater","presenter","Bind","c","ce","detail","footer","node","children","push","DeleteIconButton","AddIconTextButton","_export","setters","_tslib","_webAtomsCoreDistCoreXNode","default","_webAtomsWebControlsDistBasicAtomRepeater","_webAtomsWebControlsDistBasicExpander","_buttonsIconButton","_webAtomsWebControlsDistPageNavigator","_webAtomsCoreDistCoreBind","_webAtomsCoreDistWebServicesPopupService","_servicesEntityService","_webAtomsCoreDistStyleStyled","styled","execute","css","installGlobal"],"sources":["../../../../src/common/controls/collection-editor/CollectionEditor.tsx"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"names":["CollectionEditor","model","collection","addPage","pageResultToItem","addItemDefaults","itemFactory","editPage","label","itemRenderer","autoFocus","repeater","items","_a","schema","modelEntitySchemas","$type","relation","relations","find","x","name","relatedModel","create","onAddItem","__awaiter","es","app","resolve","EntityService","newItem","result","PageNavigator","pushPageForResult","then","hasKeys","draft","Object","assign","clone","cloner","include","save","copy","add","deleteItem","item","PopupService","confirm","message","title","$deleted","remove","XNode","Expander","isExpanded","text","AtomRepeater","presenter","Bind","c","ce","detail","footer","node","children","push","DeleteIconButton","AddIconTextButton","_export","setters","_tslib","_webAtomsCoreDistCoreXNode","default","_webAtomsWebControlsDistBasicAtomRepeater","_webAtomsWebControlsDistBasicExpander","_buttonsIconButton","_webAtomsWebControlsDistPageNavigator","_webAtomsCoreDistCoreBind","_webAtomsCoreDistWebServicesPopupService","_servicesEntityService","_webAtomsCoreDistStyleStyled","styled","_modelModel","execute","css","installGlobal","iterator","keys"],"sources":["../../../../src/common/controls/collection-editor/CollectionEditor.tsx"],"sourcesContent":[null],"mappings":";;;;EA4Bc,SAAUA,gBAAgBA,CAAI;IACxCC,KAAK;IACLC,UAAU;IACVC,OAAO;IACPC,gBAAgB;IAChBC,eAAe;IACfC,WAAW;IACXC,QAAQ;IACRC,KAAK;IACLC,YAAY;IACZC,SAAS,GAAG;EAAK,CAYpB;;IAEG,IAAIC,QAAsB;IAI1B,MAAMC,KAAK,IAAAC,EAAA,GAAUZ,KAAK,CAACC,UAAU,eAAAW,EAAA,cAAAA,EAAA,GAAhBZ,KAAK,CAACC,UAAU,IAAM,EAAS;IAEpD,MAAMY,MAAM,GAAGC,kBAAkB,CAAEd,KAAa,CAACe,KAAK,CAAgB;IACtE,MAAMC,QAAQ,GAAGH,MAAM,CAACA,MAAM,CAACI,SAAS,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAKnB,UAAU,CAAC;IAE3EI,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAXA,WAAW,GAAKA,CAAA,KAAMW,QAAQ,CAACK,YAAY,CAACC,MAAM,CAAElB,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAI,EAAE,CAAC;IAE1E,MAAMmB,SAAS,GAAGA,CAAA,KAAWC,SAAA;MACzB,MAAMC,EAAE,GAAGf,QAAQ,CAACgB,GAAG,CAACC,OAAO,CAACC,aAAa,CAAC;MAC9C,IAAIC,OAAO;MACX,IAAI3B,OAAO,EAAE;QACT,MAAM4B,MAAM,GAAG,MAAMC,aAAa,CAACC,iBAAiB,CAAC9B,OAAO,EAAEE,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAI,EAAE,CAAC;QACpFyB,OAAO,GAAG1B,gBAAgB,GAAGA,gBAAgB,CAAC2B,MAAM,CAAC,GAAGA,MAAM;OACjE,MAAM;QACHD,OAAO,GAAGxB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,EAAI;;MAG7B,IAAI,CAACwB,OAAO,EAAE;QACV;;MAEJ,IAAIA,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,IAAI,EAAE;QACfJ,OAAO,GAAG,MAAMA,OAAO;;MAG3B,IAAIK,OAAO,CAAClC,KAAK,EAAEa,MAAM,CAAC,EAAE;QACxB,MAAMsB,KAAK,GAAAC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAC,MAAA,KAASrC,KAAK;UAAE,CAACC,UAAU,GAAG,CAAC4B,OAAO;QAAC,EAAE;QACpD,IAAIS,KAAK,GAAGb,EAAE,CAACc,MAAM,CAACJ,KAAK,CAAC;QAC5BG,KAAK,GAAGA,KAAK,CAACE,OAAO,CAAErB,CAAC,IAAKA,CAAC,CAAClB,UAAU,CAAC,CAAC;QAC3C,MAAMwB,EAAE,CAACgB,IAAI,CAACH,KAAK,CAACI,IAAW,CAAC;;MAEpChC,QAAQ,CAACC,KAAK,CAACgC,GAAG,CAACd,OAAO,CAAC;IAC/B,CAAC;IAED,MAAMe,UAAU,GAAUC,IAAI,IAAIrB,SAAA;MAC9B,IAAG,EAAC,MAAMsB,YAAY,CAACC,OAAO,CAAC;QAAEC,OAAO,EAAE,uCAAuC;QAAEC,KAAK,EAAE;MAAS,CAAC,CAAC,GAAE;QACnG;;MAEJ,IAAI,OAAOJ,IAAI,CAACK,QAAQ,KAAK,WAAW,EAAE;QACtCvC,KAAK,CAACwC,MAAM,CAACN,IAAI,CAAC;QAClB;;MAEJA,IAAI,CAACK,QAAQ,GAAG,IAAI;MACpB,MAAMzB,EAAE,GAAGf,QAAQ,CAACgB,GAAG,CAACC,OAAO,CAACC,aAAa,CAAC;MAC9C,MAAMc,IAAI,GAAGjB,EAAE,CAACc,MAAM,CAACM,IAAI,CAAC,CAACH,IAAI;MACjC,MAAMjB,EAAE,CAACgB,IAAI,CAACC,IAAW,CAAC;MAC1B/B,KAAK,CAACwC,MAAM,CAACN,IAAI,CAAC;IAC1B,CAAC;IAGG,OAAOO,KAAA,CAAA9B,MAAA,CAAC+B,QAAQ;MAAA,0BAAwB,QAAQ;MAACC,UAAU,EAAE;IAAI,GAC7DF,KAAA,CAAA9B,MAAA;MAAA,eAAiB;IAAK,GAClB8B,KAAA,CAAA9B,MAAA;MAAMiC,IAAI,EAAEhD;IAAK,EAAG,CAClB,EACN6C,KAAA,CAAA9B,MAAA,cACI8B,KAAA,CAAA9B,MAAA,CAACkC,YAAY;MACTC,SAAS,EAAEC,IAAI,CAACD,SAAS,CAAEE,CAAC,IAAKjD,QAAQ,GAAGiD,CAAC,CAAC;MAAA,eAClC,WAAW;MAAA,gCACQC,EAAe,IAAKhB,UAAU,CAACgB,EAAE,CAACC,MAAM,CAAC;MACxElD,KAAK,EAAEA,KAAK;MACZmD,MAAM,EAAE,IAAI;MACZtD,YAAY,EACPqC,IAAO,IAAI;QACR,MAAMkB,IAAI,GAAGvD,YAAY,CAACqC,IAAI,CAAC;QAC/BkB,IAAI,CAACC,QAAQ,CAACC,IAAI,CAACb,KAAA,CAAA9B,MAAA,eAAM8B,KAAA,CAAA9B,MAAA,CAAC4C,gBAAgB;UAAA,oBACrB;QAAwB,EACvC,CAAO,CAAC;QACd,OAAOH,IAAI;MACf;IAAC,EAEH,EACNX,KAAA,CAAA9B,MAAA,cACI8B,KAAA,CAAA9B,MAAA,CAAC6C,iBAAiB;MAAA,eACD5C,SAAS;MACtBgC,IAAI,EAAC;IAAS,EAAE,CAClB,CACJ,CACC;EACf;EAACa,OAAA,YAzGuBrE,gBAAgB;EAAA;IAAAsE,OAAA,aAAAC,MAAA;;;MA5BjClB,KAAK,GAAAmB,0BAAA,CAAAC,OAAA;IAAA,aAAAC,yCAAA;MACLjB,YAAY,GAAAiB,yCAAA,CAAAD,OAAA;IAAA,aAAAE,qCAAA;MACZrB,QAAQ,GAAAqB,qCAAA,CAAAF,OAAA;IAAA,aAAAG,kBAAA;MACNR,iBAAiB,GAAAQ,kBAAA,CAAjBR,iBAAiB;MAAED,gBAAgB,GAAAS,kBAAA,CAAhBT,gBAAgB;IAAA,aAAAU,qCAAA;MACrC7C,aAAa,GAAA6C,qCAAA,CAAAJ,OAAA;IAAA,aAAAK,yBAAA;MACbnB,IAAI,GAAAmB,yBAAA,CAAAL,OAAA;IAAA,aAAAM,wCAAA;MACJhC,YAAY,GAAAgC,wCAAA,CAAAN,OAAA;IAAA,aAAAO,sBAAA;MACZnD,aAAa,GAAAmD,sBAAA,CAAAP,OAAA;IAAA,aAAAQ,4BAAA;MACbC,MAAM,GAAAD,4BAAA,CAAAR,OAAA;IAAA,aAAAU,WAAA;MACJpE,kBAAkB,GAAAoE,WAAA,CAAlBpE,kBAAkB;IAAA;IAAAqE,OAAA,WAAAA,CAAA;MAGvBF,MAAM,CAACG,GAAI;;;;;CAKd,CAACC,aAAa,CAAC,6BAA6B,CAAC;MAExCnD,OAAO,GAAGA,CAAClC,KAAK,EAAEa,MAAmB,KAAI;QAC3C,KAAK,MAAMyE,QAAQ,IAAIzE,MAAM,CAACA,MAAM,CAAC0E,IAAI,EAAE;UACvC,IAAG,CAACvF,KAAK,CAACsF,QAAQ,CAAClE,IAAI,CAAC,EAAE;YACtB,OAAO,KAAK;;;QAGpB,OAAO,IAAI;MACf,CAAC;IAAA;EAAA;AAAA"}
@@ -0,0 +1,173 @@
1
+ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/AtomRepeater", "@web-atoms/core/dist/core/ExpressionParser", "../buttons/IconButton", "@web-atoms/web-controls/dist/PageNavigator", "@web-atoms/core/dist/core/Bind", "../../../services/EntityService", "@web-atoms/core/dist/style/styled", "../../../model/model", "@web-atoms/core/dist/web/controls/AtomControl", "@web-atoms/core/dist/core/InjectProperty", "@web-atoms/core/dist/view-model/Action"], function (_export, _context) {
2
+ "use strict";
3
+
4
+ var __awaiter, __decorate, __metadata, XNode, AtomRepeater, ExpressionParser, AddIconTextButton, DeleteIconButton, PageNavigator, Bind, EntityService, styled, modelEntitySchemas, AtomControl, InjectProperty, Action, CollectionEditorEx, hasKeys;
5
+ _export("default", void 0);
6
+ return {
7
+ setters: [function (_tslib) {
8
+ __awaiter = _tslib.__awaiter;
9
+ __decorate = _tslib.__decorate;
10
+ __metadata = _tslib.__metadata;
11
+ }, function (_webAtomsCoreDistCoreXNode) {
12
+ XNode = _webAtomsCoreDistCoreXNode.default;
13
+ }, function (_webAtomsWebControlsDistBasicAtomRepeater) {
14
+ AtomRepeater = _webAtomsWebControlsDistBasicAtomRepeater.default;
15
+ }, function (_webAtomsCoreDistCoreExpressionParser) {
16
+ ExpressionParser = _webAtomsCoreDistCoreExpressionParser.default;
17
+ }, function (_buttonsIconButton) {
18
+ AddIconTextButton = _buttonsIconButton.AddIconTextButton;
19
+ DeleteIconButton = _buttonsIconButton.DeleteIconButton;
20
+ }, function (_webAtomsWebControlsDistPageNavigator) {
21
+ PageNavigator = _webAtomsWebControlsDistPageNavigator.default;
22
+ }, function (_webAtomsCoreDistCoreBind) {
23
+ Bind = _webAtomsCoreDistCoreBind.default;
24
+ }, function (_servicesEntityService) {
25
+ EntityService = _servicesEntityService.default;
26
+ }, function (_webAtomsCoreDistStyleStyled) {
27
+ styled = _webAtomsCoreDistStyleStyled.default;
28
+ }, function (_modelModel) {
29
+ modelEntitySchemas = _modelModel.modelEntitySchemas;
30
+ }, function (_webAtomsCoreDistWebControlsAtomControl) {
31
+ AtomControl = _webAtomsCoreDistWebControlsAtomControl.AtomControl;
32
+ }, function (_webAtomsCoreDistCoreInjectProperty) {
33
+ InjectProperty = _webAtomsCoreDistCoreInjectProperty.default;
34
+ }, function (_webAtomsCoreDistViewModelAction) {
35
+ Action = _webAtomsCoreDistViewModelAction.default;
36
+ }],
37
+ execute: function () {
38
+ styled.css`
39
+ margin: 10px;
40
+ padding: 10px;
41
+ border: solid 1px lightgray;
42
+ border-radius: 10px;
43
+ `.installGlobal("div[data-collection-editor]");
44
+ hasKeys = (model, schema) => {
45
+ for (const iterator of schema.schema.keys) {
46
+ if (!model[iterator.name]) {
47
+ return false;
48
+ }
49
+ }
50
+ return true;
51
+ };
52
+ _export("default", CollectionEditorEx = class CollectionEditorEx extends AtomControl {
53
+ constructor(app, e = document.createElement("details")) {
54
+ super(app, e);
55
+ this.label = "";
56
+ this.model = null;
57
+ this.field = null;
58
+ this.pageResultToItem = null;
59
+ this.itemFactory = null;
60
+ this.addPage = null;
61
+ this.editPage = null;
62
+ this.itemRenderer = null;
63
+ this.autoFocus = false;
64
+ this.saveAfterAdd = true;
65
+ this.addItemDefaults = null;
66
+ this.schema = null;
67
+ this.items = [];
68
+ this.fieldName = null;
69
+ this.relation = null;
70
+ this.runAfterInit(() => this.app.runAsync(() => this.init()));
71
+ }
72
+ init() {
73
+ return __awaiter(this, void 0, void 0, function* () {
74
+ const fieldName = ExpressionParser.parsePath(this.field)[0][0];
75
+ this.fieldName = fieldName;
76
+ const fx = () => {
77
+ var _a;
78
+ var _b, _c;
79
+ return (_a = (_b = this.model)[_c = this.fieldName]) !== null && _a !== void 0 ? _a : _b[_c] = [];
80
+ };
81
+ fx.toString = () => `() => this.model.${this.fieldName}`;
82
+ this.renderer = XNode.create("details", {
83
+ "data-border": "frame",
84
+ open: true,
85
+ items: Bind.oneWay(fx),
86
+ schema: Bind.oneWay(() => modelEntitySchemas[this.model.$type]),
87
+ relation: Bind.oneWay(() => this.schema.schema.relations.find(x => x.name === this.fieldName))
88
+ }, XNode.create("summary", {
89
+ text: Bind.oneWay(() => this.label)
90
+ }), XNode.create("div", null, XNode.create(AtomRepeater, {
91
+ presenter: Bind.presenter(c => this.repeater = c),
92
+ "data-layout": "data-grid",
93
+ "event-delete-collection-item": ce => this.deleteItem(ce.detail),
94
+ items: Bind.oneWay(() => this.items),
95
+ footer: true,
96
+ itemRenderer: item => {
97
+ const node = this.itemRenderer(item);
98
+ node.children.push(XNode.create("span", null, XNode.create(DeleteIconButton, {
99
+ "data-click-event": "delete-collection-item"
100
+ })));
101
+ return node;
102
+ }
103
+ }), XNode.create("div", null, XNode.create(AddIconTextButton, {
104
+ "event-click": () => this.onAddItem(),
105
+ text: "Add New"
106
+ }))));
107
+ });
108
+ }
109
+ deleteItem(item) {
110
+ return __awaiter(this, void 0, void 0, function* () {
111
+ const {
112
+ items,
113
+ repeater
114
+ } = this;
115
+ if (typeof item.$deleted === "undefined") {
116
+ items.remove(item);
117
+ return;
118
+ }
119
+ item.$deleted = true;
120
+ const es = repeater.app.resolve(EntityService);
121
+ const copy = es.cloner(item).copy;
122
+ yield es.save(copy);
123
+ items.remove(item);
124
+ });
125
+ }
126
+ onAddItem() {
127
+ var _a;
128
+ return __awaiter(this, void 0, void 0, function* () {
129
+ const {
130
+ repeater,
131
+ addPage,
132
+ addItemDefaults,
133
+ pageResultToItem,
134
+ itemFactory,
135
+ model,
136
+ schema
137
+ } = this;
138
+ const es = this.resolve(EntityService);
139
+ let newItem;
140
+ if (addPage) {
141
+ const result = yield PageNavigator.pushPageForResult(addPage, Object.assign({}, addItemDefaults !== null && addItemDefaults !== void 0 ? addItemDefaults : {}));
142
+ newItem = pageResultToItem ? pageResultToItem(result) : result;
143
+ } else {
144
+ newItem = (_a = itemFactory === null || itemFactory === void 0 ? void 0 : itemFactory()) !== null && _a !== void 0 ? _a : this.relation.relatedModel.create(Object.assign({}, addItemDefaults !== null && addItemDefaults !== void 0 ? addItemDefaults : {}));
145
+ }
146
+ if (!newItem) {
147
+ return;
148
+ }
149
+ if (newItem === null || newItem === void 0 ? void 0 : newItem.then) {
150
+ newItem = yield newItem;
151
+ }
152
+ if (hasKeys(model, schema) && this.saveAfterAdd) {
153
+ const draft = Object.assign(Object.assign({}, model), {
154
+ [this.fieldName]: [newItem]
155
+ });
156
+ let clone = es.cloner(draft);
157
+ clone = clone.include(x => x[this.fieldName]);
158
+ yield es.save(clone.copy);
159
+ }
160
+ repeater.items.add(newItem);
161
+ });
162
+ }
163
+ });
164
+ __decorate([InjectProperty, __metadata("design:type", EntityService)], CollectionEditorEx.prototype, "entityService", void 0);
165
+ __decorate([Action({
166
+ confirm: "Are you sure you want to delete this?",
167
+ confirmTitle: "Confirm Delete"
168
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", [Object]), __metadata("design:returntype", Promise)], CollectionEditorEx.prototype, "deleteItem", null);
169
+ __decorate([Action({}), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], CollectionEditorEx.prototype, "onAddItem", null);
170
+ }
171
+ };
172
+ });
173
+ //# sourceMappingURL=CollectionEditorEx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CollectionEditorEx","hasKeys","_export","setters","_tslib","XNode","_webAtomsCoreDistCoreXNode","default","_webAtomsWebControlsDistBasicAtomRepeater","AtomRepeater","_webAtomsCoreDistCoreExpressionParser","ExpressionParser","_buttonsIconButton","AddIconTextButton","DeleteIconButton","_webAtomsWebControlsDistPageNavigator","PageNavigator","_webAtomsCoreDistCoreBind","Bind","_servicesEntityService","EntityService","_webAtomsCoreDistStyleStyled","styled","_modelModel","modelEntitySchemas","_webAtomsCoreDistWebControlsAtomControl","AtomControl","_webAtomsCoreDistCoreInjectProperty","InjectProperty","_webAtomsCoreDistViewModelAction","Action","execute","css","installGlobal","model","schema","iterator","keys","name","constructor","app","e","document","createElement","label","field","pageResultToItem","itemFactory","addPage","editPage","itemRenderer","autoFocus","saveAfterAdd","addItemDefaults","items","fieldName","relation","runAfterInit","runAsync","init","parsePath","fx","_a","_b","_c","toString","renderer","create","open","oneWay","$type","relations","find","x","text","presenter","c","repeater","ce","deleteItem","detail","footer","item","node","children","push","event-click","onAddItem","$deleted","remove","es","resolve","copy","cloner","save","newItem","result","pushPageForResult","Object","assign","relatedModel","then","draft","clone","include","add","__decorate","confirm","confirmTitle"],"sources":["../../../../src/common/controls/collection-editor/CollectionEditorEx.tsx"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import XNode from "@web-atoms/core/dist/core/XNode";
2
+ import { AtomControl } from "@web-atoms/core/dist/web/controls/AtomControl";
3
+ import { CancelToken } from "@web-atoms/core/dist/core/types";
4
+ import Query from "@web-atoms/entity/dist/services/Query";
5
+ export default class ReferenceEditor<T = any, TR = any> extends AtomControl {
6
+ label: string;
7
+ model: T;
8
+ field: (x: T) => TR;
9
+ searchQuery: (q: Query<TR>, searchText: string) => Query<TR>;
10
+ cacheVersion: string;
11
+ cacheSeconds: number;
12
+ editModelPage: any;
13
+ addNewDefaults: Partial<TR>;
14
+ ["event-reference-updated"]: (ce: CustomEvent<TR>) => any;
15
+ private reference;
16
+ private fieldName;
17
+ private search;
18
+ private suggestions;
19
+ private relation;
20
+ private entityService;
21
+ private schema;
22
+ private showSearch;
23
+ private hasFocus;
24
+ constructor(app: any, e: any);
25
+ itemRenderer: (x: TR) => XNode;
26
+ suggestionRenderer: (x: TR) => XNode;
27
+ onAddNew: (search: string) => Promise<TR>;
28
+ init(): Promise<void>;
29
+ queryItems(start: any, search: string, cancelToken: CancelToken, showSearch: any): Promise<import("@web-atoms/entity/dist/models/IPagedList").default<TR>> | {
30
+ items: any[];
31
+ total: number;
32
+ };
33
+ addNew(): Promise<void>;
34
+ clearModel(): Promise<any>;
35
+ hasAllKeys(): boolean;
36
+ selectSuggestion(item: any): void;
37
+ }
38
+ //# sourceMappingURL=ReferenceEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReferenceEditor.d.ts","sourceRoot":"","sources":["../../../../src/common/controls/reference-editor/ReferenceEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,iCAAiC,CAAC;AASpD,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAK5E,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,KAAK,MAAM,uCAAuC,CAAC;AA4B1D,MAAM,CAAC,OAAO,OAAO,eAAe,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,CAAE,SAAQ,WAAW;IAEhE,KAAK,EAAE,MAAM,CAAM;IAEnB,KAAK,EAAE,CAAC,CAAQ;IAEhB,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAQ;IAE3B,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,KAAK,KAAK,CAAC,EAAE,CAAC,CAAQ;IAEpE,YAAY,SAAQ;IAEpB,YAAY,SAAM;IAGlB,aAAa,EAAE,GAAG,CAAQ;IAE1B,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC,CAAM;IAEjC,CAAC,yBAAyB,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC;IAEjE,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAmB;IAGnC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAEb,GAAG,KAAA,EAAE,CAAC,KAAA;IAKX,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,KAAK,CAA2E;IACzG,kBAAkB,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,KAAK,CAA+B;IACnE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,EAAE,CAAC,CAAwG;IAElJ,IAAI;IAqEV,UAAU,CAAC,KAAK,KAAA,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,KAAA;;;;IAmBhE,MAAM;IAKN,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC;IAwBhC,UAAU;IAcV,gBAAgB,CAAC,IAAI,KAAA;CAUxB"}
@@ -0,0 +1,226 @@
1
+ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/AtomRepeater", "@web-atoms/web-controls/dist/PageNavigator", "@web-atoms/core/dist/core/Bind", "../../../services/EntityService", "@web-atoms/core/dist/style/styled", "@web-atoms/core/dist/web/controls/AtomControl", "@web-atoms/core/dist/core/ExpressionParser", "../../../model/model", "@web-atoms/core/dist/core/InjectProperty", "../repeater/InfiniteRepeater", "@web-atoms/core/dist/view-model/Action"], function (_export, _context) {
2
+ "use strict";
3
+
4
+ var __awaiter, __decorate, __metadata, XNode, AtomRepeater, PageNavigator, Bind, EntityService, styled, AtomControl, ExpressionParser, modelEntitySchemas, InjectProperty, InfiniteRepeater, Action, ReferenceEditor;
5
+ _export("default", void 0);
6
+ return {
7
+ setters: [function (_tslib) {
8
+ __awaiter = _tslib.__awaiter;
9
+ __decorate = _tslib.__decorate;
10
+ __metadata = _tslib.__metadata;
11
+ }, function (_webAtomsCoreDistCoreXNode) {
12
+ XNode = _webAtomsCoreDistCoreXNode.default;
13
+ }, function (_webAtomsWebControlsDistBasicAtomRepeater) {
14
+ AtomRepeater = _webAtomsWebControlsDistBasicAtomRepeater.default;
15
+ }, function (_webAtomsWebControlsDistPageNavigator) {
16
+ PageNavigator = _webAtomsWebControlsDistPageNavigator.default;
17
+ }, function (_webAtomsCoreDistCoreBind) {
18
+ Bind = _webAtomsCoreDistCoreBind.default;
19
+ }, function (_servicesEntityService) {
20
+ EntityService = _servicesEntityService.default;
21
+ }, function (_webAtomsCoreDistStyleStyled) {
22
+ styled = _webAtomsCoreDistStyleStyled.default;
23
+ }, function (_webAtomsCoreDistWebControlsAtomControl) {
24
+ AtomControl = _webAtomsCoreDistWebControlsAtomControl.AtomControl;
25
+ }, function (_webAtomsCoreDistCoreExpressionParser) {
26
+ ExpressionParser = _webAtomsCoreDistCoreExpressionParser.default;
27
+ }, function (_modelModel) {
28
+ modelEntitySchemas = _modelModel.modelEntitySchemas;
29
+ }, function (_webAtomsCoreDistCoreInjectProperty) {
30
+ InjectProperty = _webAtomsCoreDistCoreInjectProperty.default;
31
+ }, function (_repeaterInfiniteRepeater) {
32
+ InfiniteRepeater = _repeaterInfiniteRepeater.default;
33
+ }, function (_webAtomsCoreDistViewModelAction) {
34
+ Action = _webAtomsCoreDistViewModelAction.default;
35
+ }],
36
+ execute: function () {
37
+ styled.css`
38
+
39
+ position: relative;
40
+ overflow: visible !important;
41
+
42
+ & .model {
43
+
44
+ position: relative;
45
+ overflow: visible !important;
46
+
47
+ }
48
+
49
+ & .suggestions {
50
+ position: absolute;
51
+ background-color: canvas;
52
+ padding: 10px;
53
+ border: solid 1px lightgray;
54
+ top: 2rem;
55
+ border-radius: 10px;
56
+ z-index: 40000;
57
+ }
58
+
59
+ `.installGlobal("[data-reference-editor=reference-editor]");
60
+ _export("default", ReferenceEditor = class ReferenceEditor extends AtomControl {
61
+ constructor(app, e) {
62
+ super(app, e);
63
+ this.label = "";
64
+ this.model = null;
65
+ this.field = null;
66
+ this.searchQuery = null;
67
+ this.cacheVersion = "c1";
68
+ this.cacheSeconds = 15;
69
+ this.editModelPage = null;
70
+ this.addNewDefaults = {};
71
+ this.reference = null;
72
+ this.fieldName = null;
73
+ this.search = "";
74
+ this.suggestions = null;
75
+ this.relation = null;
76
+ this.schema = null;
77
+ this.showSearch = false;
78
+ this.hasFocus = false;
79
+ this.itemRenderer = () => XNode.create("div", {
80
+ title: "Setup Item Renderer to customize view",
81
+ text: "Model"
82
+ });
83
+ this.suggestionRenderer = x => this.itemRenderer(x);
84
+ this.onAddNew = search => PageNavigator.pushPageForResult(this.editModelPage, Object.assign({
85
+ search
86
+ }, this.addNewDefaults));
87
+ this.runAfterInit(() => this.app.runAsync(() => this.init()));
88
+ }
89
+ init() {
90
+ return __awaiter(this, void 0, void 0, function* () {
91
+ const fieldName = ExpressionParser.parsePath(this.field)[0][0];
92
+ this.fieldName = fieldName;
93
+ const renderModel = (renderer, model) => XNode.create("div", {
94
+ class: "model",
95
+ "data-border": "frame",
96
+ "data-padding": "auto",
97
+ "data-layout": "vertical-flex-stretch-items"
98
+ }, XNode.create("div", {
99
+ "data-layout": "row"
100
+ }, XNode.create("label", {
101
+ text: Bind.oneWay(() => this.label)
102
+ }), model && renderer(model), model && XNode.create("i", {
103
+ "event-click": () => this.clearModel(),
104
+ title: "Clear",
105
+ "data-cursor": "pointer",
106
+ "data-color": "red",
107
+ class: "fas fa-times-circle"
108
+ }), !model && XNode.create("input", {
109
+ type: "search",
110
+ placeholder: `Search ${this.label}`,
111
+ "event-focus": () => this.hasFocus = true,
112
+ "event-blur": () => setTimeout(() => this.hasFocus = false, 250),
113
+ value: Bind.twoWaysImmediate(() => this.search)
114
+ })), !model && XNode.create("div", {
115
+ class: "suggestions",
116
+ "style-display": Bind.oneWay(() => this.showSearch)
117
+ }, XNode.create("div", null, XNode.create("div", {
118
+ "style-max-height": "200px",
119
+ "data-overflow-y": "auto"
120
+ }, XNode.create(AtomRepeater, Object.assign({
121
+ "data-layout": "data-grid",
122
+ "data-list-selection": "default",
123
+ "data-click-event": "select-suggestion",
124
+ items: this.suggestions
125
+ }, InfiniteRepeater.pagedItems(start => (c, e, cancelToken) => this.queryItems(start, this.search, cancelToken, this.showSearch)), {
126
+ itemRenderer: this.suggestionRenderer
127
+ }))), XNode.create("div", {
128
+ "data-layout": "row",
129
+ "data-cursor": "pointer",
130
+ "event-click": () => this.addNew()
131
+ }, XNode.create("i", {
132
+ class: "fas fa-plus"
133
+ }), "Add New"))));
134
+ const fx = () => this.model[this.fieldName];
135
+ fx.toString = () => `() => this.model.${fieldName}`;
136
+ this.renderer = XNode.create("div", {
137
+ "data-reference-editor": "reference-editor",
138
+ reference: Bind.oneWay(fx),
139
+ schema: Bind.oneWay(() => modelEntitySchemas[this.model.$type]),
140
+ relation: Bind.oneWay(() => this.schema.schema.relations.find(x => x.name === this.fieldName)),
141
+ renderer: Bind.oneWay(() => renderModel(this.itemRenderer, this.reference)),
142
+ showSearch: Bind.oneWay(() => this.hasFocus || this.search ? true : false)
143
+ });
144
+ });
145
+ }
146
+ queryItems(start, search, cancelToken, showSearch) {
147
+ if (!showSearch) {
148
+ return {
149
+ items: [],
150
+ total: 0
151
+ };
152
+ }
153
+ let q = this.entityService.query(this.relation.relatedModel);
154
+ q = this.searchQuery(q, search);
155
+ const {
156
+ cacheVersion,
157
+ cacheSeconds
158
+ } = this;
159
+ return q.toPagedList({
160
+ start,
161
+ size: 10,
162
+ cacheSeconds,
163
+ cacheVersion,
164
+ cancelToken
165
+ });
166
+ }
167
+ addNew() {
168
+ return __awaiter(this, void 0, void 0, function* () {
169
+ this.showSearch = false;
170
+ const model = yield this.onAddNew(this.search);
171
+ });
172
+ }
173
+ clearModel() {
174
+ return __awaiter(this, void 0, void 0, function* () {
175
+ this.model[this.fieldName] = null;
176
+ const relation = this.relation;
177
+ if (!relation.isInverse) {
178
+ this.model[relation.fkMap[0].fk] = null;
179
+ }
180
+ if (!this.hasAllKeys()) {
181
+ this.element.dispatchEvent(new CustomEvent("referenceUpdated", {
182
+ detail: null
183
+ }));
184
+ return;
185
+ }
186
+ yield this.entityService.save(this.model, c => c);
187
+ this.element.dispatchEvent(new CustomEvent("referenceUpdated", {
188
+ detail: null
189
+ }));
190
+ });
191
+ }
192
+ hasAllKeys() {
193
+ const {
194
+ schema,
195
+ model
196
+ } = this;
197
+ if (!model) {
198
+ return;
199
+ }
200
+ for (const key of schema.schema.keys) {
201
+ if (!model[key.name]) {
202
+ return false;
203
+ }
204
+ }
205
+ return schema.schema.keys.length > 0;
206
+ }
207
+ selectSuggestion(item) {
208
+ const {
209
+ relation,
210
+ model
211
+ } = this;
212
+ model[this.fieldName] = item;
213
+ model[relation.fkMap[0].fk] = item[relation.fkMap[0].relatedKey];
214
+ this.element.dispatchEvent(new CustomEvent("referenceUpdated", {
215
+ detail: item
216
+ }));
217
+ }
218
+ });
219
+ __decorate([InjectProperty, __metadata("design:type", EntityService)], ReferenceEditor.prototype, "entityService", void 0);
220
+ __decorate([Action({
221
+ onEvent: "select-suggestion"
222
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", [Object]), __metadata("design:returntype", void 0)], ReferenceEditor.prototype, "selectSuggestion", null);
223
+ }
224
+ };
225
+ });
226
+ //# sourceMappingURL=ReferenceEditor.js.map