@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.
- package/dist/admin/AdminAppIndex.pack.js +4815 -188
- package/dist/admin/AdminAppIndex.pack.js.map +1 -1
- package/dist/admin/AdminAppIndex.pack.min.js +34 -7
- package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
- package/dist/common/commands/CommonCommands.d.ts +1 -3
- package/dist/common/commands/CommonCommands.d.ts.map +1 -1
- package/dist/common/commands/CommonCommands.js +1 -1
- package/dist/common/commands/CommonCommands.js.map +1 -1
- package/dist/common/controls/collection-editor/CollectionEditor.d.ts +2 -1
- package/dist/common/controls/collection-editor/CollectionEditor.d.ts.map +1 -1
- package/dist/common/controls/collection-editor/CollectionEditor.js +26 -12
- package/dist/common/controls/collection-editor/CollectionEditor.js.map +1 -1
- package/dist/common/controls/collection-editor/CollectionEditorEx.js +173 -0
- package/dist/common/controls/collection-editor/CollectionEditorEx.js.map +1 -0
- package/dist/common/controls/reference-editor/ReferenceEditor.d.ts +38 -0
- package/dist/common/controls/reference-editor/ReferenceEditor.d.ts.map +1 -0
- package/dist/common/controls/reference-editor/ReferenceEditor.js +226 -0
- package/dist/common/controls/reference-editor/ReferenceEditor.js.map +1 -0
- package/dist/common/controls/search-items/SearchItemsPage.d.ts +7 -0
- package/dist/common/controls/search-items/SearchItemsPage.d.ts.map +1 -0
- package/dist/common/controls/search-items/SearchItemsPage.js +15 -0
- package/dist/common/controls/search-items/SearchItemsPage.js.map +1 -0
- package/dist/common/controls/tags/TagChips.d.ts +7 -0
- package/dist/common/controls/tags/TagChips.d.ts.map +1 -0
- package/dist/common/controls/tags/TagChips.js +89 -0
- package/dist/common/controls/tags/TagChips.js.map +1 -0
- package/dist/common/pages/contacts/ContactEditorPage.d.ts +12 -0
- package/dist/common/pages/contacts/ContactEditorPage.d.ts.map +1 -0
- package/dist/common/pages/contacts/ContactEditorPage.js +150 -0
- package/dist/common/pages/contacts/ContactEditorPage.js.map +1 -0
- package/dist/common/pages/stores/StoreDetailPage.d.ts.map +1 -1
- package/dist/common/pages/stores/StoreDetailPage.js +11 -3
- package/dist/common/pages/stores/StoreDetailPage.js.map +1 -1
- package/dist/common/pages/stores/folders/EditItemFolderPage.d.ts +10 -0
- package/dist/common/pages/stores/folders/EditItemFolderPage.d.ts.map +1 -0
- package/dist/common/pages/stores/folders/EditItemFolderPage.js +92 -0
- package/dist/common/pages/stores/folders/EditItemFolderPage.js.map +1 -0
- package/dist/common/pages/stores/orders/EditOrderPage.d.ts +5 -2
- package/dist/common/pages/stores/orders/EditOrderPage.d.ts.map +1 -1
- package/dist/common/pages/stores/orders/EditOrderPage.js +145 -4
- package/dist/common/pages/stores/orders/EditOrderPage.js.map +1 -1
- package/dist/common/pages/stores/products/EditProductDetailPage.d.ts +2 -3
- package/dist/common/pages/stores/products/EditProductDetailPage.d.ts.map +1 -1
- package/dist/common/pages/stores/products/EditProductDetailPage.js +110 -25
- package/dist/common/pages/stores/products/EditProductDetailPage.js.map +1 -1
- package/dist/common/pages/stores/products/EditProductListPage.d.ts.map +1 -1
- package/dist/common/pages/stores/products/EditProductListPage.js +24 -25
- package/dist/common/pages/stores/products/EditProductListPage.js.map +1 -1
- package/dist/model/model.d.ts +87 -2
- package/dist/model/model.d.ts.map +1 -1
- package/dist/model/model.js +3498 -18
- package/dist/model/model.js.map +1 -1
- package/dist/public/channel/ChannelView.pack.js +3500 -19
- package/dist/public/channel/ChannelView.pack.js.map +1 -1
- package/dist/public/channel/ChannelView.pack.min.js +2 -2
- package/dist/public/channel/ChannelView.pack.min.js.map +1 -1
- package/dist/services/contacts/ContactService.d.ts +8 -0
- package/dist/services/contacts/ContactService.d.ts.map +1 -0
- package/dist/services/contacts/ContactService.js +40 -0
- package/dist/services/contacts/ContactService.js.map +1 -0
- package/dist/services/store/StoreItemService.d.ts.map +1 -1
- package/dist/services/store/StoreItemService.js +3 -3
- package/dist/services/store/StoreItemService.js.map +1 -1
- package/dist/services/store/StoreOrderService.d.ts +3 -1
- package/dist/services/store/StoreOrderService.d.ts.map +1 -1
- package/dist/services/store/StoreOrderService.js +72 -3
- package/dist/services/store/StoreOrderService.js.map +1 -1
- package/dist/site-editor/editor/WebSitePageEditor.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/web/AppIndex.pack.js +4816 -189
- package/dist/web/AppIndex.pack.js.map +1 -1
- package/dist/web/AppIndex.pack.min.js +34 -7
- package/dist/web/AppIndex.pack.min.js.map +1 -1
- package/node_modules/@web-atoms/entity/dist/services/BaseEntityService.d.ts +26 -1
- package/node_modules/@web-atoms/entity/dist/services/BaseEntityService.d.ts.map +1 -1
- package/node_modules/@web-atoms/entity/dist/services/BaseEntityService.js +2 -1
- package/node_modules/@web-atoms/entity/dist/services/BaseEntityService.js.map +1 -1
- package/node_modules/@web-atoms/entity/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@web-atoms/entity/package.json +1 -1
- package/node_modules/@web-atoms/entity/src/services/BaseEntityService.ts +27 -1
- package/package.json +2 -2
- package/src/common/commands/CommonCommands.ts +1 -1
- package/src/common/controls/collection-editor/CollectionEditor.tsx +28 -7
- package/src/common/controls/collection-editor/CollectionEditorEx.tsx +158 -0
- package/src/common/controls/reference-editor/ReferenceEditor.tsx +227 -0
- package/src/common/controls/search-items/SearchItemsPage.tsx +10 -0
- package/src/common/controls/tags/TagChips.tsx +51 -0
- package/src/common/pages/contacts/ContactEditorPage.tsx +132 -0
- package/src/common/pages/stores/StoreDetailPage.tsx +3 -1
- package/src/common/pages/stores/folders/EditItemFolderPage.tsx +69 -0
- package/src/common/pages/stores/orders/EditOrderPage.tsx +148 -5
- package/src/common/pages/stores/products/EditProductDetailPage.tsx +106 -29
- package/src/common/pages/stores/products/EditProductListPage.tsx +15 -12
- package/src/model/model.ts +538 -62
- package/src/services/contacts/ContactService.ts +29 -0
- package/src/services/store/StoreItemService.ts +7 -4
- package/src/services/store/StoreOrderService.ts +77 -2
- 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
|
|
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/{
|
|
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;
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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","
|
|
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":"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"}
|
|
@@ -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
|