@genexus/genexus-ide-ui 0.0.62 → 0.0.63
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/cjs/{ch-tree-x_3.cjs.entry.js → ch-checkbox_4.cjs.entry.js} +277 -71
- package/dist/cjs/ch-next-data-modeling-render.cjs.entry.js +242 -0
- package/dist/cjs/{ch-next-data-modeling-item.cjs.entry.js → ch-next-data-modeling_2.cjs.entry.js} +20 -1
- package/dist/cjs/ch-tree-view-render-wrapper.cjs.entry.js +160 -0
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +41 -39
- package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +23 -11
- package/dist/cjs/gx-ide-test.cjs.entry.js +107 -122
- package/dist/cjs/gxg-color-picker.cjs.entry.js +2 -2
- package/dist/cjs/gxg-title-editable.cjs.entry.js +11 -4
- package/dist/cjs/{gxg-tree_2.cjs.entry.js → gxg-tree-item.cjs.entry.js} +0 -212
- package/dist/cjs/gxg-tree-view.cjs.entry.js +165 -0
- package/dist/cjs/gxg-tree.cjs.entry.js +218 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +5 -3
- package/dist/collection/components/_test/test.css +5 -0
- package/dist/collection/components/_test/test.js +109 -220
- package/dist/collection/components/kb-manager-export/helpers.js +7 -23
- package/dist/collection/components/kb-manager-export/kb-manager-export.css +20 -0
- package/dist/collection/components/kb-manager-export/kb-manager-export.js +42 -22
- package/dist/collection/components/kb-manager-import/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.en.json +1 -0
- package/dist/collection/components/kb-manager-import/kb-manager-import.js +23 -11
- package/dist/components/ch-next-data-modeling-item.js +1 -457
- package/dist/components/ch-next-data-modeling-render.js +295 -0
- package/dist/components/ch-next-data-modeling.js +1 -27
- package/dist/components/ch-tree-view-item.js +6 -0
- package/dist/components/ch-tree-view-render-wrapper.js +224 -0
- package/dist/components/ch-tree-view-render.js +6 -0
- package/dist/components/ch-tree-view.js +6 -0
- package/dist/components/gx-ide-kb-manager-export.js +75 -73
- package/dist/components/gx-ide-kb-manager-import.js +38 -20
- package/dist/components/gx-ide-references.js +21 -15
- package/dist/components/gx-ide-test.js +120 -160
- package/dist/components/gxg-color-picker.js +2 -2
- package/dist/components/gxg-title-editable.js +12 -4
- package/dist/components/gxg-tree-item.js +614 -1
- package/dist/components/gxg-tree-view.js +2 -2
- package/dist/components/gxg-tree.js +236 -1
- package/dist/components/index.js +5 -3
- package/dist/components/next-data-modeling-item.js +466 -0
- package/dist/{esm/ch-next-data-modeling.entry.js → components/next-data-modeling.js} +21 -7
- package/dist/components/{tree-x-list-item.js → tree-view-item.js} +9 -9
- package/dist/components/{ch-test-tree-x.js → tree-view-render.js} +168 -28
- package/dist/components/tree-view.js +410 -435
- package/dist/components/tree-view2.js +226 -0
- package/dist/esm/{ch-tree-x_3.entry.js → ch-checkbox_4.entry.js} +275 -70
- package/dist/esm/ch-next-data-modeling-render.entry.js +238 -0
- package/dist/esm/{ch-next-data-modeling-item.entry.js → ch-next-data-modeling_2.entry.js} +21 -3
- package/dist/esm/ch-tree-view-render-wrapper.entry.js +156 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-kb-manager-export.entry.js +41 -39
- package/dist/esm/gx-ide-kb-manager-import.entry.js +23 -11
- package/dist/esm/gx-ide-test.entry.js +108 -123
- package/dist/esm/gxg-color-picker.entry.js +2 -2
- package/dist/esm/gxg-title-editable.entry.js +11 -4
- package/dist/{components/gxg-tree-item2.js → esm/gxg-tree-item.entry.js} +9 -79
- package/dist/esm/gxg-tree-view.entry.js +161 -0
- package/dist/{components/gxg-tree2.js → esm/gxg-tree.entry.js} +8 -32
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.css +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.en.json +1 -0
- package/dist/genexus-ide-ui/p-13177896.entry.js +1 -0
- package/dist/genexus-ide-ui/p-19fef562.entry.js +1 -0
- package/dist/genexus-ide-ui/p-2781b92a.entry.js +1 -0
- package/dist/genexus-ide-ui/p-2c17e71d.entry.js +1 -0
- package/dist/genexus-ide-ui/p-40a57a36.entry.js +1 -0
- package/dist/genexus-ide-ui/p-636d02fa.entry.js +1 -0
- package/dist/genexus-ide-ui/p-7b63be93.entry.js +1 -0
- package/dist/genexus-ide-ui/p-8a7c4561.entry.js +1 -0
- package/dist/genexus-ide-ui/p-a2cb0e6b.entry.js +1 -0
- package/dist/genexus-ide-ui/p-a9c8b373.entry.js +1 -0
- package/dist/genexus-ide-ui/p-b819706e.entry.js +1 -0
- package/dist/genexus-ide-ui/p-bacd879c.entry.js +1 -0
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/next/data-modeling-render/next-data-modeling-render.css +3 -0
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/renders/tree-view/tree-view-render.css +3 -0
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-tree-view/tree-view-render-wrapper.css +0 -0
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-view/tree-view/tree-view.css +45 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/title-editable/title-editable.css +17 -3
- package/dist/node_modules/@genexus/gemini/dist/collection/components/tree-view/tree-view.css +5 -2
- package/dist/types/common/helpers.d.ts +2 -2
- package/dist/types/components/_test/test.d.ts +3 -35
- package/dist/types/components/kb-manager-export/helpers.d.ts +4 -4
- package/dist/types/components/kb-manager-export/kb-manager-export.d.ts +10 -5
- package/dist/types/components/kb-manager-import/helpers.d.ts +3 -3
- package/dist/types/components/kb-manager-import/kb-manager-import.d.ts +7 -6
- package/dist/types/components/references/helpers.d.ts +2 -2
- package/dist/types/components/references/references.d.ts +3 -3
- package/dist/types/components.d.ts +3 -60
- package/package.json +3 -3
- package/dist/cjs/ch-checkbox.cjs.entry.js +0 -93
- package/dist/cjs/ch-next-data-modeling.cjs.entry.js +0 -19
- package/dist/cjs/ch-test-tree-x.cjs.entry.js +0 -458
- package/dist/components/ch-tree-x-list-item.js +0 -6
- package/dist/components/ch-tree-x.js +0 -6
- package/dist/components/tree-x.js +0 -504
- package/dist/esm/ch-checkbox.entry.js +0 -89
- package/dist/esm/ch-test-tree-x.entry.js +0 -454
- package/dist/esm/gxg-tree_2.entry.js +0 -757
- package/dist/genexus-ide-ui/p-092ccacd.entry.js +0 -1
- package/dist/genexus-ide-ui/p-1ad68b23.entry.js +0 -3
- package/dist/genexus-ide-ui/p-3442d19a.entry.js +0 -1
- package/dist/genexus-ide-ui/p-39968306.entry.js +0 -1
- package/dist/genexus-ide-ui/p-5755f985.entry.js +0 -1
- package/dist/genexus-ide-ui/p-85597097.entry.js +0 -1
- package/dist/genexus-ide-ui/p-9e530c7d.entry.js +0 -1
- package/dist/genexus-ide-ui/p-ad5040e4.entry.js +0 -1
- package/dist/genexus-ide-ui/p-aeb3b032.entry.js +0 -1
- package/dist/genexus-ide-ui/p-c53522c9.entry.js +0 -1
- package/dist/genexus-ide-ui/p-d104f9a4.entry.js +0 -1
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-tree-x.css +0 -3
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-view/tree-x/tree-x.css +0 -45
- /package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-view/{tree-x-list-item/tree-x-list-item.css → tree-view-item/tree-view-item.css} +0 -0
|
@@ -58,7 +58,24 @@ export class GxIdeKbManagerImport {
|
|
|
58
58
|
}
|
|
59
59
|
};
|
|
60
60
|
this.objectsTreeCheckedItemsChangedHandler = (event) => {
|
|
61
|
+
/* Begin of evaluate 'select/unselect checkbox' state*/
|
|
62
|
+
if (event.detail == null) {
|
|
63
|
+
this.toggleObjectsCheckboxEl.checked = false;
|
|
64
|
+
this.toggleObjectsCheckboxEl.indeterminate = false;
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
61
67
|
const allItemsWithCheckbox = [...event.detail.values()];
|
|
68
|
+
if (allItemsWithCheckbox.length === 0) {
|
|
69
|
+
this.toggleObjectsCheckboxEl.checked = false;
|
|
70
|
+
this.toggleObjectsCheckboxEl.indeterminate = false;
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const firstItemCheckedValue = allItemsWithCheckbox[0].item.checked;
|
|
74
|
+
const allItemsHaveTheSameCheckedValue = allItemsWithCheckbox.every(treeItem => treeItem.item.checked === firstItemCheckedValue);
|
|
75
|
+
this.toggleObjectsCheckboxEl.checked = firstItemCheckedValue;
|
|
76
|
+
this.toggleObjectsCheckboxEl.indeterminate =
|
|
77
|
+
!allItemsHaveTheSameCheckedValue;
|
|
78
|
+
/* End of evaluate 'select/unselect checkbox' state*/
|
|
62
79
|
const checkedItems = allItemsWithCheckbox.filter(node => node.item.checked);
|
|
63
80
|
// objects checked
|
|
64
81
|
const checkedObjects = checkedItems.filter(node => node.item.class === "object");
|
|
@@ -88,12 +105,10 @@ export class GxIdeKbManagerImport {
|
|
|
88
105
|
this.statusInfo.warning.number = 0;
|
|
89
106
|
this.statusInfo.success.number = 0;
|
|
90
107
|
};
|
|
91
|
-
this.
|
|
92
|
-
const checked = e.
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
this.objectsTreeEl.updateAllItemsProperties({ checked: true });
|
|
96
|
-
}
|
|
108
|
+
this.toggleSelectionHandler = (e) => {
|
|
109
|
+
const checked = e.detail.value;
|
|
110
|
+
this.toggleObjectsCheckboxEl.indeterminate = false;
|
|
111
|
+
this.objectsTreeEl.updateAllItemsProperties({ checked: checked });
|
|
97
112
|
};
|
|
98
113
|
this.statusButtonsSelectionChangedHandler = (e) => {
|
|
99
114
|
const activeStates = e.detail;
|
|
@@ -189,11 +204,8 @@ export class GxIdeKbManagerImport {
|
|
|
189
204
|
"tree-container": true,
|
|
190
205
|
"tree-container--objects-in-file": true,
|
|
191
206
|
"tree-container--empty": this.noObjects
|
|
192
|
-
} }, !this.noObjects ? (h("gxg-tree-view", { treeModel: this.objectsTreeState, dragDisabled: true, dropDisabled: true, toggleCheckboxes: true, onCheckedItemsChange: this.objectsTreeCheckedItemsChangedHandler, ref: el => (this.objectsTreeEl = el) })) : (h("div", { class: "gx-ide-message" }, h("gxg-text", { textAlign: config.gxgMessage.common.textAlign, padding: config.gxgMessage.common.textAlign, type: config.gxgMessage.common.type, maxWidth: config.gxgMessage.common.maxWidth, part: "objects-in-file-empty-status-message" }, "There are no Objects. ", h("br", null), h("gxg-text", { type: "text-link-no-line", onClick: this.selectFileHandler }, "Begin by selecting a file."))))), h("gxg-form-checkbox", { label: this.objectsTreeState.length
|
|
193
|
-
this.
|
|
194
|
-
this.checkedObjectsIds.length
|
|
195
|
-
? this._componentLocale.main.objectsInFile.deselectAll
|
|
196
|
-
: this._componentLocale.main.objectsInFile.selectAll, part: "select-all-checkbox", slot: "footer-start", disabled: this.importingObjects || this.objectsTreeState.length === 0, checked: this.evaluateCheckAllValue(), onClick: this.selectAllClickedHandler }), h("gxg-button-group", { slot: "footer-end", ref: (el) => (this.objectsButtonsGroup = el) }, h("button", { id: "import-btn", part: "import-button", disabled: this.importingObjects ||
|
|
207
|
+
} }, !this.noObjects ? (h("gxg-tree-view", { treeModel: this.objectsTreeState, dragDisabled: true, dropDisabled: true, toggleCheckboxes: true, onCheckedItemsChange: this.objectsTreeCheckedItemsChangedHandler, ref: el => (this.objectsTreeEl = el) })) : (h("div", { class: "gx-ide-message" }, h("gxg-text", { textAlign: config.gxgMessage.common.textAlign, padding: config.gxgMessage.common.textAlign, type: config.gxgMessage.common.type, maxWidth: config.gxgMessage.common.maxWidth, part: "objects-in-file-empty-status-message" }, "There are no Objects. ", h("br", null), h("gxg-text", { type: "text-link-no-line", onClick: this.selectFileHandler }, "Begin by selecting a file."))))), h("gxg-form-checkbox", { label: this._componentLocale.main.objectsInFile.selectUnselect, part: "select-all-checkbox", slot: "footer-start", disabled: this.importingObjects || this.objectsTreeState.length === 0, checked: this.evaluateCheckAllValue(), onChange: this.toggleSelectionHandler, ref: (el) => (this.toggleObjectsCheckboxEl =
|
|
208
|
+
el) }), h("gxg-button-group", { slot: "footer-end", ref: (el) => (this.objectsButtonsGroup = el) }, h("button", { id: "import-btn", part: "import-button", disabled: this.importingObjects ||
|
|
197
209
|
this.checkedObjectsIds.length === 0, onClick: this.importObjectsHandler }, this._componentLocale.main.objectsInFile.importButton), h("button", { id: "cancel-import-btn", part: "cancel-import-button", disabled: !this.importingObjects, onClick: this.cancelImportHandler }, this._componentLocale.main.objectsInFile.cancelButton)), h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/settings", slot: "footer-end", part: "select-kb-btn", onClick: this.optionsHandler }, this._componentLocale.header.optionsButton)), h("gx-ide-container", { containerTitle: this._componentLocale.main.importStatus.title, noContentPadding: true, noBorderFooter: true, slimmerFooter: true, inactiveTitle: this.noImport, footerSubtleShadow: !this.noImport, titleType: "secondary" }, h("div", { class: {
|
|
198
210
|
"tree-container": true,
|
|
199
211
|
"tree-container--import-status": true,
|
|
@@ -1,460 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { K as KEY_CODES } from './reserverd-names.js';
|
|
3
|
-
import { d as defineCustomElement$2 } from './accordion.js';
|
|
4
|
-
|
|
5
|
-
const nextDataModelingItemCss = ":where(button){all:unset;display:inline-flex;cursor:pointer}*,::before,::after{box-sizing:border-box}.error-text,.name{color:inherit;font:inherit;margin:0;padding:0;outline:0}gx-edit:is(.gx-edit--auto-fill,.gx-edit--auto-fill:focus-within,.gx-edit--auto-fill:hover){background-color:var(--gx-edit-auto-fill-background-color)}:host{display:grid;--chevron-color:#ccc}:host(:hover) .button-primary,:host(:focus-within) .button-primary{display:grid}:host(:hover) .button-primary::before,:host(:focus-within) .button-primary::before{content:\"\"}:host(.gx-disabled){pointer-events:none}.add-new-field--level-0{display:grid;grid-template:\"name . . .\" min-content \"field-name type confirm cancel\" 1fr \"error-text . confirm cancel\" min-content \"sub-item sub-item confirm cancel\" min-content/1fr min-content 56px 32px;row-gap:8px}.add-new-field--level-0 ::slotted(ch-next-data-modeling){grid-area:sub-item}.add-new-field--level-1{display:grid;grid-template:\"name . . .\" min-content \"field-name type confirm cancel\" 1fr \"error-text . . .\" min-content/1fr min-content 56px 32px;row-gap:8px}.add-new-field--level-2{display:grid;grid-template:\"sub-field name . . .\" min-content \". field-name type confirm cancel\" 1fr \". error-text . . .\" min-content/min-content 1fr min-content 56px 32px;row-gap:4px}.add-new-field--no-actions{grid-template:\"sub-field name .\" min-content \". field-name type\" 1fr \". error-text .\" min-content/min-content 1fr min-content}.accordion:hover .edit-button,.accordion:hover .delete-button,.accordion:focus-within .edit-button,.accordion:focus-within .delete-button{display:grid}.sub-field{grid-area:sub-field}.field-name{grid-area:field-name;margin-inline-end:8px}.button-confirm{grid-area:confirm;margin-inline:16px 8px}.button-cancel{grid-area:cancel}.error-text{grid-area:error-text;display:flex;white-space:break-spaces}.header{display:grid;grid-template:\"sub-field name type edit delete\" 1fr/min-content max-content 1fr min-content max-content;align-items:center;width:100%;margin-inline-end:12px}.accordion::part(accordion__header){column-gap:24px}.edit-mode{grid-template:\"sub-field field-name type confirm cancel\" min-content \"sub-field error-text error-text confirm cancel\" min-content/min-content 1fr min-content 56px 32px}.name{grid-area:name}.name-entity{text-decoration:underline}.type{grid-area:type}.select-wrapper{--chevron:url('data:image/svg+xml,<svg width=\"12\" height=\"8\" viewBox=\"0 0 12 8\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.41 0L6 4.59L10.59 0L12 1.42L6 7.42L0 1.42L1.41 0Z\"/></svg>');grid-area:type;position:relative}.select-wrapper::after{content:\"\";display:flex;position:absolute;inset-inline-end:0;inset-block-start:calc(50% - 3.75px);width:12px;height:7.5px;margin-inline:8px 16px;-webkit-mask:var(--chevron) no-repeat;background-color:var(--chevron-color);pointer-events:none}.select{display:flex;height:100%;appearance:none;background-color:unset;cursor:pointer;outline:unset;transition-property:background-color, border-color, color;transition-duration:250ms}.button-new-entity{align-items:center;transition:color 250ms}.optimization{display:contents}.button-primary{display:none;align-self:center;height:20px;padding:2px}.button-primary::before{display:flex}.button-edit{grid-area:edit;width:21px}.button-edit::before{-webkit-mask:var(--edit-icon) no-repeat}.button-delete{grid-area:delete;width:18px;margin-inline-start:12px}.button-delete::before{-webkit-mask:var(--delete-icon) no-repeat}.delete-mode,.waiting-mode{grid-area:delete;display:grid;grid-template-columns:1fr 24px 24px;align-items:center;column-gap:8px;cursor:auto;animation:fade-in 250ms ease-in-out}.waiting-mode{grid-template-columns:24px 1fr}.waiting-mode__loading{order:-1;width:100%;fill:none;animation:rotate 1.5s linear 0.125s infinite}circle{stroke:currentColor;stroke-dasharray:1, 200;stroke-linecap:round;animation:indeterminate-loading 1.25s ease-in-out 0.125s infinite}@keyframes fade-in{0%{opacity:0}}@keyframes rotate{100%{transform:rotate(1turn)}}@keyframes indeterminate-loading{50%,60%{stroke-dasharray:20, 200;stroke-dashoffset:-8px}100%{stroke-dashoffset:-24px}}";
|
|
6
|
-
|
|
7
|
-
const NAME = "name";
|
|
8
|
-
const PART_PREFIX = "dm-item__";
|
|
9
|
-
const CANCEL_CLASS = "button-cancel";
|
|
10
|
-
const CONFIRM_CLASS = "button-confirm";
|
|
11
|
-
const BUTTON_CONFIRM_PART = (disabledPart) => `${PART_PREFIX}button-action confirm${disabledPart}`;
|
|
12
|
-
const BUTTON_CANCEL_PART = (disabledPart) => `${PART_PREFIX}button-action cancel${disabledPart}`;
|
|
13
|
-
const SELECT_OPTION_PART = `${PART_PREFIX}select-option`;
|
|
14
|
-
const NextDataModelingSubitem = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
15
|
-
constructor() {
|
|
16
|
-
super();
|
|
17
|
-
this.__registerHost();
|
|
18
|
-
this.__attachShadow();
|
|
19
|
-
this.deleteField = createEvent(this, "deleteField", 7);
|
|
20
|
-
this.editField = createEvent(this, "editField", 7);
|
|
21
|
-
this.newEntity = createEvent(this, "newEntity", 7);
|
|
22
|
-
this.firstNewField = createEvent(this, "firstNewField", 7);
|
|
23
|
-
this.firstNewFieldErrors = createEvent(this, "firstNewFieldErrors", 7);
|
|
24
|
-
this.newField = createEvent(this, "newField", 7);
|
|
25
|
-
/**
|
|
26
|
-
* The metadata used for the different actions in the UI.
|
|
27
|
-
*/
|
|
28
|
-
this.actions = (captions, disabledPart) => ({
|
|
29
|
-
add: [
|
|
30
|
-
{
|
|
31
|
-
// Confirm add
|
|
32
|
-
label: captions.confirm,
|
|
33
|
-
class: CONFIRM_CLASS,
|
|
34
|
-
part: BUTTON_CONFIRM_PART(disabledPart),
|
|
35
|
-
event: this.confirmAction("new")
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
// Cancel add
|
|
39
|
-
label: captions.cancel,
|
|
40
|
-
class: CANCEL_CLASS,
|
|
41
|
-
part: BUTTON_CANCEL_PART(disabledPart),
|
|
42
|
-
event: this.toggleShowNewField
|
|
43
|
-
}
|
|
44
|
-
],
|
|
45
|
-
delete: [
|
|
46
|
-
{
|
|
47
|
-
// Confirm delete
|
|
48
|
-
label: captions.confirm,
|
|
49
|
-
class: undefined,
|
|
50
|
-
part: `${PART_PREFIX}button-delete-action confirm${disabledPart}`,
|
|
51
|
-
event: this.emitDelete
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
// Cancel delete
|
|
55
|
-
label: captions.cancel,
|
|
56
|
-
class: undefined,
|
|
57
|
-
part: `${PART_PREFIX}button-delete-action cancel${disabledPart}`,
|
|
58
|
-
event: this.toggleMode("delete")
|
|
59
|
-
}
|
|
60
|
-
],
|
|
61
|
-
edit: [
|
|
62
|
-
{
|
|
63
|
-
// Confirm edit
|
|
64
|
-
label: captions.confirm,
|
|
65
|
-
class: CONFIRM_CLASS,
|
|
66
|
-
part: BUTTON_CONFIRM_PART(disabledPart),
|
|
67
|
-
event: this.confirmAction("edit")
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
// Cancel edit
|
|
71
|
-
label: captions.cancel,
|
|
72
|
-
class: CANCEL_CLASS,
|
|
73
|
-
part: BUTTON_CANCEL_PART(disabledPart),
|
|
74
|
-
event: this.toggleMode("edit")
|
|
75
|
-
}
|
|
76
|
-
],
|
|
77
|
-
normal: [
|
|
78
|
-
{
|
|
79
|
-
// Edit action
|
|
80
|
-
label: captions.edit,
|
|
81
|
-
class: "button-primary button-edit",
|
|
82
|
-
part: `${PART_PREFIX}button-primary edit${disabledPart}`,
|
|
83
|
-
event: this.toggleMode("edit")
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
// Delete action
|
|
87
|
-
label: captions.delete,
|
|
88
|
-
class: "button-primary button-delete",
|
|
89
|
-
part: `${PART_PREFIX}button-primary delete${disabledPart}`,
|
|
90
|
-
event: this.toggleMode("delete")
|
|
91
|
-
}
|
|
92
|
-
]
|
|
93
|
-
});
|
|
94
|
-
this.lastEditInfo = { name: "", type: "ATT" };
|
|
95
|
-
this.focusInputInNextRender = false;
|
|
96
|
-
this.expanded = false;
|
|
97
|
-
// Modes
|
|
98
|
-
this.errorType = "None";
|
|
99
|
-
this.waitingMode = "none";
|
|
100
|
-
/**
|
|
101
|
-
* This attribute lets you specify if the actions in the `mode === "add"` are
|
|
102
|
-
* visible.
|
|
103
|
-
*/
|
|
104
|
-
this.actionsVisible = true;
|
|
105
|
-
/**
|
|
106
|
-
* The dataType of the field.
|
|
107
|
-
*/
|
|
108
|
-
this.dataType = "";
|
|
109
|
-
/**
|
|
110
|
-
* This attribute lets you specify if the element is disabled.
|
|
111
|
-
* If disabled, it will not fire any user interaction related event.
|
|
112
|
-
*/
|
|
113
|
-
this.disabled = false;
|
|
114
|
-
/**
|
|
115
|
-
* This property maps entities of the current dataModel with their
|
|
116
|
-
* corresponding ATTs.
|
|
117
|
-
*/
|
|
118
|
-
this.entityNameToATTs = {};
|
|
119
|
-
/**
|
|
120
|
-
* This property specifies the defined field names of the entity parent.
|
|
121
|
-
*/
|
|
122
|
-
this.fieldNames = [];
|
|
123
|
-
/**
|
|
124
|
-
* This property specifies at which collection level the field is located.
|
|
125
|
-
*/
|
|
126
|
-
this.level = 1;
|
|
127
|
-
/**
|
|
128
|
-
* Determine the maximum amount of ATTs displayed per entity.
|
|
129
|
-
*/
|
|
130
|
-
this.maxAtts = 3;
|
|
131
|
-
/**
|
|
132
|
-
* This attribute specifies the operating mode of the control
|
|
133
|
-
*/
|
|
134
|
-
this.mode = "normal";
|
|
135
|
-
/**
|
|
136
|
-
* The name of the field.
|
|
137
|
-
*/
|
|
138
|
-
this.name = "";
|
|
139
|
-
/**
|
|
140
|
-
* `true` to show the new field button when `mode === "add"`
|
|
141
|
-
*/
|
|
142
|
-
this.showNewFieldBtn = true;
|
|
143
|
-
/**
|
|
144
|
-
* The type of the field.
|
|
145
|
-
*/
|
|
146
|
-
this.type = "LEVEL";
|
|
147
|
-
/**
|
|
148
|
-
* Returns:
|
|
149
|
-
* @example ```(Scorer, Goals)```
|
|
150
|
-
* @example ```(Name, Age, Nationality (+3))```
|
|
151
|
-
*/
|
|
152
|
-
this.makeAttsPrettier = (atts, maxAtts) => atts.length <= maxAtts
|
|
153
|
-
? "(" + atts.join(", ") + ")"
|
|
154
|
-
: `(${atts.slice(0, maxAtts).join(", ")} (+${atts.length - maxAtts}))`;
|
|
155
|
-
this.emitDelete = (event) => {
|
|
156
|
-
// The subitem is the last one of the parent. Delete the parent instead
|
|
157
|
-
if (this.level !== 0 && this.fieldNames.length === 1) {
|
|
158
|
-
const parentItem = this.el.parentElement
|
|
159
|
-
.parentElement;
|
|
160
|
-
parentItem.delete(event);
|
|
161
|
-
this.mode = "normal";
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
event.stopPropagation();
|
|
165
|
-
this.waitingMode = "deleting";
|
|
166
|
-
this.deleteField.emit();
|
|
167
|
-
};
|
|
168
|
-
this.toggleMode = (mode) => (event) => {
|
|
169
|
-
event.stopPropagation();
|
|
170
|
-
this.mode = this.mode === "normal" ? mode : "normal";
|
|
171
|
-
this.focusInputInNextRender = mode === "edit";
|
|
172
|
-
};
|
|
173
|
-
this.toggleShowNewField = (event) => {
|
|
174
|
-
event.stopPropagation();
|
|
175
|
-
this.errorType = "None";
|
|
176
|
-
const showNewFieldBtn = !this.showNewFieldBtn;
|
|
177
|
-
this.showNewFieldBtn = showNewFieldBtn;
|
|
178
|
-
this.focusInputInNextRender = !showNewFieldBtn;
|
|
179
|
-
if (!showNewFieldBtn && this.level === 0) {
|
|
180
|
-
const entityItem = this.el.firstElementChild
|
|
181
|
-
.firstElementChild;
|
|
182
|
-
entityItem.clearInput();
|
|
183
|
-
}
|
|
184
|
-
};
|
|
185
|
-
/**
|
|
186
|
-
* @todo TODO: Improve typing
|
|
187
|
-
* WA function to get the gx-edit's input value
|
|
188
|
-
* @param editElement An HTMLGxEditElement that is implemented in the web-controls-library
|
|
189
|
-
*/
|
|
190
|
-
this.getGxEditInputValue = (editElement) => editElement.shadowRoot.firstElementChild.value;
|
|
191
|
-
this.handleKeyDown = (actionType) => (event) => {
|
|
192
|
-
if (event.code !== KEY_CODES.ENTER) {
|
|
193
|
-
return;
|
|
194
|
-
}
|
|
195
|
-
event.preventDefault();
|
|
196
|
-
this.confirmAction(actionType)(event);
|
|
197
|
-
};
|
|
198
|
-
this.checkChildErrors = (errors, event) => {
|
|
199
|
-
this.el.firstElementChild
|
|
200
|
-
.firstElementChild.checkErrors(errors, event);
|
|
201
|
-
};
|
|
202
|
-
this.validateErrorsWhenAddingEntity = (actionType, errors = "unknown", event) => {
|
|
203
|
-
// Validate child errors when adding a new entity
|
|
204
|
-
if (this.level === 0 && actionType === "new" && errors === "unknown") {
|
|
205
|
-
this.checkChildErrors(errors, event);
|
|
206
|
-
}
|
|
207
|
-
// Validate parent errors when adding a new field in the new entity
|
|
208
|
-
else if (!this.actionsVisible && errors === "unknown") {
|
|
209
|
-
this.firstNewFieldErrors.emit();
|
|
210
|
-
}
|
|
211
|
-
};
|
|
212
|
-
this.confirmAction = (actionType, errors = "unknown", itemInfo = null) => (event) => {
|
|
213
|
-
event.stopPropagation();
|
|
214
|
-
const trimmedInput = this.getGxEditInputValue(this.inputName).trim();
|
|
215
|
-
// Force re-render. Useful when the error type don't change but the
|
|
216
|
-
// displayed error text must change
|
|
217
|
-
this.errorType = "None";
|
|
218
|
-
if (trimmedInput === "") {
|
|
219
|
-
this.errorType = "Empty";
|
|
220
|
-
this.validateErrorsWhenAddingEntity(actionType, errors, event);
|
|
221
|
-
return;
|
|
222
|
-
}
|
|
223
|
-
// The field already exists
|
|
224
|
-
if (this.name !== trimmedInput &&
|
|
225
|
-
this.fieldNames.includes(trimmedInput)) {
|
|
226
|
-
this.errorType = "AlreadyDefined";
|
|
227
|
-
this.errorName = trimmedInput;
|
|
228
|
-
this.validateErrorsWhenAddingEntity(actionType, errors, event);
|
|
229
|
-
return;
|
|
230
|
-
}
|
|
231
|
-
// New field
|
|
232
|
-
if (actionType === "new") {
|
|
233
|
-
this.lastEditInfo = {
|
|
234
|
-
name: trimmedInput,
|
|
235
|
-
type: this.level === 0 ? "ATT" : this.inputType.value // Doesn't matter the type when level = 0
|
|
236
|
-
};
|
|
237
|
-
// Adding a entity
|
|
238
|
-
if (this.level === 0) {
|
|
239
|
-
// Must check child errors
|
|
240
|
-
if (errors === "unknown") {
|
|
241
|
-
this.checkChildErrors(errors, event);
|
|
242
|
-
}
|
|
243
|
-
// The child does not have errors, commit the new entity
|
|
244
|
-
else if (errors === "no") {
|
|
245
|
-
this.waitingMode = "adding";
|
|
246
|
-
this.expanded = true;
|
|
247
|
-
this.newEntity.emit({ name: trimmedInput, level: [itemInfo] });
|
|
248
|
-
this.toggleShowNewField(event);
|
|
249
|
-
this.el.firstElementChild
|
|
250
|
-
.firstElementChild.setAddingMode(); // TODO: Improve typing
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
// Normal case: Adding a field that is not the first field of the entity
|
|
254
|
-
else if (this.actionsVisible) {
|
|
255
|
-
this.waitingMode = "adding";
|
|
256
|
-
this.newField.emit(this.lastEditInfo);
|
|
257
|
-
this.toggleShowNewField(event);
|
|
258
|
-
}
|
|
259
|
-
// Adding a field that is the first field of the entity
|
|
260
|
-
else {
|
|
261
|
-
this.firstNewField.emit(this.lastEditInfo);
|
|
262
|
-
}
|
|
263
|
-
return;
|
|
264
|
-
}
|
|
265
|
-
// Edit field (level 0 fields don't have a type, because they are always entities)
|
|
266
|
-
if (this.name !== trimmedInput ||
|
|
267
|
-
(this.level !== 0 && this.type !== this.inputType.value)) {
|
|
268
|
-
this.waitingMode = "editing";
|
|
269
|
-
this.lastEditInfo = {
|
|
270
|
-
name: trimmedInput,
|
|
271
|
-
type: this.level === 0 ? "ATT" : this.inputType.value // Doesn't matter the type when level = 0
|
|
272
|
-
};
|
|
273
|
-
this.editField.emit(this.lastEditInfo);
|
|
274
|
-
}
|
|
275
|
-
this.toggleMode("edit")(event);
|
|
276
|
-
};
|
|
277
|
-
this.loading = () => (h("svg", { class: "waiting-mode__loading", height: "28", viewBox: "6 6 12 12" }, h("circle", { cx: "12", cy: "12", r: "4", "stroke-width": "1.125" })));
|
|
278
|
-
this.errorText = (errorTexts) => (h("p", { class: "error-text", part: `${PART_PREFIX}error-text` }, this.errorType === "Empty"
|
|
279
|
-
? errorTexts.Empty
|
|
280
|
-
: [
|
|
281
|
-
this.level === 0
|
|
282
|
-
? errorTexts.AlreadyDefinedEntity1
|
|
283
|
-
: errorTexts.AlreadyDefined1,
|
|
284
|
-
h("span", { part: `${PART_PREFIX}error-text-name` }, this.errorName),
|
|
285
|
-
errorTexts.AlreadyDefined2
|
|
286
|
-
]));
|
|
287
|
-
this.readonlyContent = (captions, name, type) => [
|
|
288
|
-
// Readonly
|
|
289
|
-
h("h1", { id: NAME, class: {
|
|
290
|
-
name: true,
|
|
291
|
-
"name-entity": type === "ENTITY"
|
|
292
|
-
}, part: `${PART_PREFIX}name` }, name),
|
|
293
|
-
this.level !== 0 && type !== "ATT" && (h("span", { class: "type", part: type === "LEVEL" ? `${PART_PREFIX}collection` : `${PART_PREFIX}entity` }, type === "LEVEL"
|
|
294
|
-
? captions.collection
|
|
295
|
-
: this.makeAttsPrettier(this.entityNameToATTs[this.dataType] || [], this.maxAtts)))
|
|
296
|
-
];
|
|
297
|
-
this.editableContent = (actionType, captions, disabledPart, errorPart) => [
|
|
298
|
-
// Editable
|
|
299
|
-
h("gx-edit", { class: "field-name", part: `${PART_PREFIX}input${errorPart}${disabledPart}`, disabled: this.disabled, type: "text", value: this.name, ref: el => (this.inputName = el), onKeydown: this.handleKeyDown(actionType) }),
|
|
300
|
-
this.level !== 0 && (h("div", { class: "select-wrapper" }, h("select", { class: "select", part: `${PART_PREFIX}input${disabledPart} select`, disabled: this.disabled, ref: el => (this.inputType = el) }, h("option", { part: SELECT_OPTION_PART, value: "ATT", selected: this.type === "ATT" }, captions.ATT), h("option", { part: SELECT_OPTION_PART, value: "ENTITY", selected: this.type === "ENTITY" }, captions.ENTITY), h("option", { part: SELECT_OPTION_PART, value: "LEVEL", selected: this.type === "LEVEL" }, captions.LEVEL)))),
|
|
301
|
-
this.errorType !== "None" && this.errorText(this.errorTexts)
|
|
302
|
-
];
|
|
303
|
-
this.newFieldMode = (captions, errorPart, disabledPart, actions) => this.showNewFieldBtn ? (h("button", { class: "button-new-entity", part: `${PART_PREFIX}button-new-entity${disabledPart}`, disabled: this.disabled, type: "button", onClick: this.toggleShowNewField }, this.level === 0 ? captions.addNewEntity : captions.addNewField)) : (h("div", { slot: this.level === 0 ? "header" : undefined, class: {
|
|
304
|
-
[`add-new-field--level-${this.level}`]: true,
|
|
305
|
-
"add-new-field--no-actions": !this.actionsVisible
|
|
306
|
-
}, part: `${PART_PREFIX}header-content`, tabindex: this.level !== 0 && this.actionsVisible ? "0" : undefined }, this.level === 2 && (h("div", { "aria-hidden": "true", class: "sub-field", part: `${PART_PREFIX}sub-field` })), h("h1", { class: "name", part: `${PART_PREFIX}name` }, this.level === 0 ? captions.newEntity : captions.newField), this.editableContent("new", captions, disabledPart, errorPart), this.level === 0 && h("slot", null), this.actionsVisible && [
|
|
307
|
-
h("button", { "aria-label": actions[0].label, class: actions[0].class, part: actions[0].part, disabled: this.disabled, type: "button", onClick: actions[0].event }),
|
|
308
|
-
h("button", { "aria-label": actions[1].label, class: actions[1].class, part: actions[1].part, disabled: this.disabled, type: "button", onClick: actions[1].event })
|
|
309
|
-
]));
|
|
310
|
-
this.normalMode = (captions, errorPart, disabledPart, waitingModePart, actions, showWaitingModeTexts) => [
|
|
311
|
-
h("div", { slot: this.level === 0 ? "header" : undefined, class: {
|
|
312
|
-
header: true,
|
|
313
|
-
"edit-mode": this.mode === "edit"
|
|
314
|
-
}, part: `${PART_PREFIX}header-content`, tabindex: this.level !== 0 ? "0" : undefined }, this.level === 2 && (h("div", { "aria-hidden": "true", class: "sub-field", part: `${PART_PREFIX}sub-field` })), this.mode === "edit"
|
|
315
|
-
? this.editableContent("edit", captions, disabledPart, errorPart)
|
|
316
|
-
: this.readonlyContent(captions, showWaitingModeTexts ? this.lastEditInfo.name : this.name, showWaitingModeTexts ? this.lastEditInfo.type : this.type), this.actionsVisible && (h("div", { class: {
|
|
317
|
-
"delete-mode": this.mode === "delete",
|
|
318
|
-
optimization: this.mode !== "delete",
|
|
319
|
-
"waiting-mode": this.waitingMode !== "none"
|
|
320
|
-
}, part: `${PART_PREFIX}delete-mode${waitingModePart}` }, this.waitingMode === "none"
|
|
321
|
-
? [
|
|
322
|
-
this.mode === "delete" && captions.deleteMode,
|
|
323
|
-
h("button", { "aria-label": actions[0].label, class: actions[0].class, part: actions[0].part, disabled: this.disabled, type: "button", onClick: actions[0].event }),
|
|
324
|
-
h("button", { "aria-label": actions[1].label, class: actions[1].class, part: actions[1].part, disabled: this.disabled, type: "button", onClick: actions[1].event })
|
|
325
|
-
]
|
|
326
|
-
: [captions[this.waitingMode], this.loading()]))),
|
|
327
|
-
this.type === "LEVEL" &&
|
|
328
|
-
(this.level === 0 ? (h("div", { slot: "content", part: `${PART_PREFIX}content` }, h("slot", null))) : (h("slot", null)))
|
|
329
|
-
];
|
|
330
|
-
}
|
|
331
|
-
handleExpandedChange(event) {
|
|
332
|
-
event.stopPropagation();
|
|
333
|
-
}
|
|
334
|
-
handleFirstNewField(event) {
|
|
335
|
-
if (this.level !== 0) {
|
|
336
|
-
return;
|
|
337
|
-
}
|
|
338
|
-
this.confirmAction("new", "no", event.detail)(event);
|
|
339
|
-
}
|
|
340
|
-
handleFirstNewFieldErrors(event) {
|
|
341
|
-
this.confirmAction("new", "yes")(event);
|
|
342
|
-
}
|
|
343
|
-
/**
|
|
344
|
-
* Set the adding mode for the first field of the entity.
|
|
345
|
-
*/
|
|
346
|
-
async setAddingMode() {
|
|
347
|
-
this.clearInput();
|
|
348
|
-
this.waitingMode = "adding";
|
|
349
|
-
}
|
|
350
|
-
/**
|
|
351
|
-
* Remove the value of the input when mode === "add" | "edit"
|
|
352
|
-
*/
|
|
353
|
-
async clearInput() {
|
|
354
|
-
if (this.inputName) {
|
|
355
|
-
const inputRef = this.inputName.shadowRoot
|
|
356
|
-
.firstElementChild; // TODO: Improve typing
|
|
357
|
-
inputRef.value = "";
|
|
358
|
-
}
|
|
359
|
-
this.errorType = "None";
|
|
360
|
-
}
|
|
361
|
-
/**
|
|
362
|
-
* Check errors in the item when `level !== 0`
|
|
363
|
-
*/
|
|
364
|
-
async checkErrors(errors, event) {
|
|
365
|
-
this.confirmAction("new", errors)(event);
|
|
366
|
-
}
|
|
367
|
-
/**
|
|
368
|
-
* Deletes the field.
|
|
369
|
-
*/
|
|
370
|
-
async delete(event) {
|
|
371
|
-
this.emitDelete(event);
|
|
372
|
-
}
|
|
373
|
-
/**
|
|
374
|
-
* Hides the waiting mode to continue editing the field.
|
|
375
|
-
*/
|
|
376
|
-
async hideWaitingMode() {
|
|
377
|
-
if (this.mode === "add" && this.level === 0) {
|
|
378
|
-
const entityItem = this.el.firstElementChild
|
|
379
|
-
.firstElementChild;
|
|
380
|
-
entityItem.hideWaitingMode();
|
|
381
|
-
}
|
|
382
|
-
// The add mode should not be changed
|
|
383
|
-
else if (this.mode !== "add") {
|
|
384
|
-
this.mode = "normal";
|
|
385
|
-
}
|
|
386
|
-
this.waitingMode = "none";
|
|
387
|
-
}
|
|
388
|
-
componentDidUpdate() {
|
|
389
|
-
// Focus the edit input when the render method has finished
|
|
390
|
-
if (this.focusInputInNextRender && this.inputName) {
|
|
391
|
-
this.focusInputInNextRender = false;
|
|
392
|
-
// Wait until the gx-edit control has render
|
|
393
|
-
requestAnimationFrame(() => {
|
|
394
|
-
this.inputName.click(); // The click method focuses the inner input of the gx-edit
|
|
395
|
-
});
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
render() {
|
|
399
|
-
// Parts
|
|
400
|
-
const disabledPart = this.disabled ? " disabled" : "";
|
|
401
|
-
const waitingModePart = this.waitingMode === "none" ? "" : ` ${PART_PREFIX}waiting-mode`;
|
|
402
|
-
const errorPart = this.errorType !== "None" ? " error" : "";
|
|
403
|
-
const captions = this.captions;
|
|
404
|
-
const actions = this.actions(captions, disabledPart)[this.mode];
|
|
405
|
-
const showWaitingModeTexts = this.waitingMode === "editing" || this.waitingMode === "adding";
|
|
406
|
-
return (h(Host, { role: "listitem", "aria-labelledby": NAME, class: {
|
|
407
|
-
"gx-disabled": this.disabled
|
|
408
|
-
} },
|
|
409
|
-
// Add new field layout (last cell of the collection/entity)
|
|
410
|
-
this.mode === "add" && this.waitingMode !== "adding" ? (this.newFieldMode(captions, errorPart, disabledPart, actions)) : this.level === 0 ? ( // Normal mode. Level === 0
|
|
411
|
-
h("ch-accordion", { class: "accordion", part: `${PART_PREFIX}accordion`, accessibleName: this.name, expanded: this.expanded, exportparts: `accordion__chevron:${PART_PREFIX}chevron,accordion__expandable:${PART_PREFIX}expandable,accordion__header:${PART_PREFIX}header` }, this.normalMode(captions, errorPart, disabledPart, waitingModePart, actions, showWaitingModeTexts))) : (
|
|
412
|
-
// Normal mode. Level !== 0
|
|
413
|
-
this.normalMode(captions, errorPart, disabledPart, waitingModePart, actions, showWaitingModeTexts))));
|
|
414
|
-
}
|
|
415
|
-
get el() { return this; }
|
|
416
|
-
static get style() { return nextDataModelingItemCss; }
|
|
417
|
-
}, [1, "ch-next-data-modeling-item", {
|
|
418
|
-
"actionsVisible": [4, "actions-visible"],
|
|
419
|
-
"captions": [16],
|
|
420
|
-
"dataType": [1, "data-type"],
|
|
421
|
-
"disabled": [4],
|
|
422
|
-
"entityNameToATTs": [16],
|
|
423
|
-
"errorTexts": [16],
|
|
424
|
-
"fieldNames": [16],
|
|
425
|
-
"level": [2],
|
|
426
|
-
"maxAtts": [2, "max-atts"],
|
|
427
|
-
"mode": [1025],
|
|
428
|
-
"name": [1],
|
|
429
|
-
"showNewFieldBtn": [1028, "show-new-field-btn"],
|
|
430
|
-
"type": [1],
|
|
431
|
-
"expanded": [32],
|
|
432
|
-
"errorType": [32],
|
|
433
|
-
"waitingMode": [32],
|
|
434
|
-
"setAddingMode": [64],
|
|
435
|
-
"clearInput": [64],
|
|
436
|
-
"checkErrors": [64],
|
|
437
|
-
"delete": [64],
|
|
438
|
-
"hideWaitingMode": [64]
|
|
439
|
-
}, [[0, "expandedChange", "handleExpandedChange"], [0, "firstNewField", "handleFirstNewField"], [0, "firstNewFieldErrors", "handleFirstNewFieldErrors"]]]);
|
|
440
|
-
function defineCustomElement$1() {
|
|
441
|
-
if (typeof customElements === "undefined") {
|
|
442
|
-
return;
|
|
443
|
-
}
|
|
444
|
-
const components = ["ch-next-data-modeling-item", "ch-accordion"];
|
|
445
|
-
components.forEach(tagName => { switch (tagName) {
|
|
446
|
-
case "ch-next-data-modeling-item":
|
|
447
|
-
if (!customElements.get(tagName)) {
|
|
448
|
-
customElements.define(tagName, NextDataModelingSubitem);
|
|
449
|
-
}
|
|
450
|
-
break;
|
|
451
|
-
case "ch-accordion":
|
|
452
|
-
if (!customElements.get(tagName)) {
|
|
453
|
-
defineCustomElement$2();
|
|
454
|
-
}
|
|
455
|
-
break;
|
|
456
|
-
} });
|
|
457
|
-
}
|
|
1
|
+
import { N as NextDataModelingSubitem, d as defineCustomElement$1 } from './next-data-modeling-item.js';
|
|
458
2
|
|
|
459
3
|
const ChNextDataModelingItem = NextDataModelingSubitem;
|
|
460
4
|
const defineCustomElement = defineCustomElement$1;
|