@genexus/genexus-ide-ui 0.0.140 → 0.0.142
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/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js +78 -0
- package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js +123 -0
- package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-design-import.cjs.entry.js +567 -0
- package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-entity-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +3 -1
- package/dist/collection/components/_helpers/entity-selector/entity-selector.css +2 -2
- package/dist/collection/components/_helpers/entity-selector/entity-selector.js.map +1 -1
- package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.css +8 -10
- package/dist/collection/components/bpm/export-xpdl/export-xpdl.css +574 -0
- package/dist/collection/components/bpm/export-xpdl/export-xpdl.js +238 -0
- package/dist/collection/components/bpm/export-xpdl/export-xpdl.js.map +1 -0
- package/dist/collection/components/bpm/export-xpdl/gx-ide-assets/bpm-export-xpdl/langs/bpm-export-xpdl.lang.en.json +19 -0
- package/dist/collection/components/bpm/objects-selector/gx-ide-assets/bpm-objects-selector/langs/bpm-objects-selector.lang.en.json +17 -0
- package/dist/collection/components/bpm/objects-selector/gx-ide-assets/bpm-objects-selector/langs/bpm-objects-selector.lang.ja.json +3 -0
- package/dist/collection/components/bpm/objects-selector/helpers.js +17 -0
- package/dist/collection/components/bpm/objects-selector/helpers.js.map +1 -0
- package/dist/collection/components/bpm/objects-selector/objects-selector.css +574 -0
- package/dist/collection/components/bpm/objects-selector/objects-selector.js +259 -0
- package/dist/collection/components/bpm/objects-selector/objects-selector.js.map +1 -0
- package/dist/collection/components/{import-from-design/import-from-design.js → design-import/design-import.js} +115 -64
- package/dist/collection/components/design-import/design-import.js.map +1 -0
- package/dist/collection/components/{import-from-design/gx-ide-assets/import-from-design/langs/import-from-design.lang.en.json → design-import/gx-ide-assets/design-import/langs/design-import.lang.en.json} +2 -1
- package/dist/components/entity-selector.js +1 -1
- package/dist/components/entity-selector.js.map +1 -1
- package/dist/components/gx-ide-bpm-export-xpdl.d.ts +11 -0
- package/dist/components/gx-ide-bpm-export-xpdl.js +155 -0
- package/dist/components/gx-ide-bpm-export-xpdl.js.map +1 -0
- package/dist/components/gx-ide-bpm-objects-selector.d.ts +11 -0
- package/dist/components/gx-ide-bpm-objects-selector.js +8 -0
- package/dist/components/gx-ide-bpm-objects-selector.js.map +1 -0
- package/dist/components/gx-ide-design-import.d.ts +11 -0
- package/dist/components/{gx-ide-import-from-design.js → gx-ide-design-import.js} +95 -49
- package/dist/components/gx-ide-design-import.js.map +1 -0
- package/dist/components/list-selector-item.js +1 -1
- package/dist/components/list-selector-item.js.map +1 -1
- package/dist/components/objects-selector.js +189 -0
- package/dist/components/objects-selector.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +74 -0
- package/dist/esm/gx-ide-bpm-export-xpdl.entry.js.map +1 -0
- package/dist/esm/gx-ide-bpm-objects-selector.entry.js +119 -0
- package/dist/esm/gx-ide-bpm-objects-selector.entry.js.map +1 -0
- package/dist/esm/gx-ide-design-import.entry.js +563 -0
- package/dist/esm/gx-ide-design-import.entry.js.map +1 -0
- package/dist/esm/gx-ide-entity-selector.entry.js +1 -1
- package/dist/esm/gx-ide-entity-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-list-selector_2.entry.js +1 -1
- package/dist/esm/gx-ide-list-selector_2.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/bpm-export-xpdl/langs/bpm-export-xpdl.lang.en.json +19 -0
- package/dist/genexus-ide-ui/gx-ide-assets/bpm-export-xpdl/langs/bpm-export-xpdl.lang.zh.json +3 -0
- package/dist/genexus-ide-ui/gx-ide-assets/bpm-objects-selector/langs/bpm-objects-selector.lang.en.json +17 -0
- package/dist/genexus-ide-ui/gx-ide-assets/bpm-objects-selector/langs/bpm-objects-selector.lang.ja.json +3 -0
- package/dist/genexus-ide-ui/gx-ide-assets/bpm-objects-selector/langs/bpm-objects-selector.lang.zh.json +3 -0
- package/dist/genexus-ide-ui/gx-ide-assets/bpm-timer-duration/langs/timer-duration.lang.ja.json +3 -0
- package/dist/genexus-ide-ui/gx-ide-assets/bpm-timer-duration/langs/timer-duration.lang.zh.json +3 -0
- package/dist/genexus-ide-ui/gx-ide-assets/{import-from-design/langs/import-from-design.lang.en.json → design-import/langs/design-import.lang.en.json} +2 -1
- package/dist/genexus-ide-ui/gx-ide-assets/design-import/langs/design-import.lang.ja.json +3 -0
- package/dist/genexus-ide-ui/gx-ide-assets/design-import/langs/design-import.lang.zh.json +3 -0
- package/dist/genexus-ide-ui/{p-972b18a0.entry.js → p-0e47720b.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-0e47720b.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-7364d5d1.entry.js +109 -0
- package/dist/genexus-ide-ui/p-7364d5d1.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-832a8a94.entry.js +160 -0
- package/dist/genexus-ide-ui/p-832a8a94.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-9bf62c5c.entry.js → p-c46c7974.entry.js} +244 -175
- package/dist/genexus-ide-ui/p-c46c7974.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-3345a1bc.entry.js → p-e07809d0.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-e07809d0.entry.js.map +1 -0
- package/dist/types/components/bpm/export-xpdl/export-xpdl.d.ts +66 -0
- package/dist/types/components/bpm/import-gxpm/import-gxpm.d.ts +21 -0
- package/dist/types/components/bpm/objects-selector/helpers.d.ts +7 -0
- package/dist/types/components/bpm/objects-selector/objects-selector.d.ts +61 -0
- package/dist/types/components/{import-from-design/import-from-design.d.ts → design-import/design-import.d.ts} +24 -10
- package/dist/types/components.d.ts +371 -208
- package/package.json +1 -1
- package/dist/cjs/gx-ide-import-from-design.cjs.entry.js +0 -522
- package/dist/cjs/gx-ide-import-from-design.cjs.entry.js.map +0 -1
- package/dist/collection/components/import-from-design/import-from-design.js.map +0 -1
- package/dist/components/gx-ide-import-from-design.d.ts +0 -11
- package/dist/components/gx-ide-import-from-design.js.map +0 -1
- package/dist/esm/gx-ide-import-from-design.entry.js +0 -518
- package/dist/esm/gx-ide-import-from-design.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-3345a1bc.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-972b18a0.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-9bf62c5c.entry.js.map +0 -1
- /package/dist/collection/components/bpm/{timer-duration/gx-ide-assets/bpm-timer-duration/langs/bpm-timer-duration.lang.ja.json → export-xpdl/gx-ide-assets/bpm-export-xpdl/langs/bpm-export-xpdl.lang.ja.json} +0 -0
- /package/dist/collection/components/bpm/{timer-duration/gx-ide-assets/bpm-timer-duration/langs/bpm-timer-duration.lang.zh.json → export-xpdl/gx-ide-assets/bpm-export-xpdl/langs/bpm-export-xpdl.lang.zh.json} +0 -0
- /package/dist/collection/components/{import-from-design/gx-ide-assets/import-from-design/langs/import-from-design.lang.zh.json → bpm/objects-selector/gx-ide-assets/bpm-objects-selector/langs/bpm-objects-selector.lang.zh.json} +0 -0
- /package/dist/collection/components/bpm/timer-duration/gx-ide-assets/bpm-timer-duration/langs/{bpm-timer-duration.lang.en.json → timer-duration.lang.en.json} +0 -0
- /package/dist/collection/components/{import-from-design/gx-ide-assets/import-from-design/langs/import-from-design.lang.ja.json → bpm/timer-duration/gx-ide-assets/bpm-timer-duration/langs/timer-duration.lang.ja.json} +0 -0
- /package/dist/{genexus-ide-ui/gx-ide-assets/bpm-timer-duration/langs/bpm-timer-duration.lang.zh.json → collection/components/bpm/timer-duration/gx-ide-assets/bpm-timer-duration/langs/timer-duration.lang.zh.json} +0 -0
- /package/dist/collection/components/{import-from-design/import-from-design.css → design-import/design-import.css} +0 -0
- /package/dist/{genexus-ide-ui/gx-ide-assets/bpm-timer-duration/langs/bpm-timer-duration.lang.ja.json → collection/components/design-import/gx-ide-assets/design-import/langs/design-import.lang.ja.json} +0 -0
- /package/dist/{genexus-ide-ui/gx-ide-assets/import-from-design/langs/import-from-design.lang.zh.json → collection/components/design-import/gx-ide-assets/design-import/langs/design-import.lang.zh.json} +0 -0
- /package/dist/genexus-ide-ui/gx-ide-assets/{import-from-design/langs/import-from-design.lang.ja.json → bpm-export-xpdl/langs/bpm-export-xpdl.lang.ja.json} +0 -0
- /package/dist/genexus-ide-ui/gx-ide-assets/bpm-timer-duration/langs/{bpm-timer-duration.lang.en.json → timer-duration.lang.en.json} +0 -0
|
@@ -16,6 +16,12 @@ export class GxIdeImportFromDesign {
|
|
|
16
16
|
* An array that keeps track of the tree items id's (design system data type + item id) along with the content, that will be used to save and retrieve items information, in order to avoid using a callback to get items information that was already get. loadedItemsArray will be reset every time a new design is loaded.
|
|
17
17
|
*/
|
|
18
18
|
this.loadedItems = new Map();
|
|
19
|
+
/**
|
|
20
|
+
* The path/URL value when loadCallback was called for the last time. This is used to determine
|
|
21
|
+
* if there is a difference with the actual path/URL value, in order to know if calling loadCallback
|
|
22
|
+
* again is required on blur on Path/URL/File input.
|
|
23
|
+
*/
|
|
24
|
+
this.pathOnLoadCallback = "";
|
|
19
25
|
this.panelsSelected = [];
|
|
20
26
|
this.stencilsSelected = [];
|
|
21
27
|
// private imagesSelected: string[] = [];
|
|
@@ -55,7 +61,9 @@ export class GxIdeImportFromDesign {
|
|
|
55
61
|
const idList = itemComposedId.split("@");
|
|
56
62
|
const itemId = idList[0];
|
|
57
63
|
const itemDesignType = idList[1];
|
|
58
|
-
|
|
64
|
+
const isChildNode = itemId && itemId !== "parent";
|
|
65
|
+
const isDesignSystem = itemDesignType === "design_system";
|
|
66
|
+
if (isChildNode || isDesignSystem) {
|
|
59
67
|
this.selectedDesignType = itemDesignType;
|
|
60
68
|
const loadedItem = this.getLoadedItem(itemComposedId);
|
|
61
69
|
if (!loadedItem) {
|
|
@@ -105,19 +113,22 @@ export class GxIdeImportFromDesign {
|
|
|
105
113
|
this.stencilsSelected = stencils;
|
|
106
114
|
};
|
|
107
115
|
this.selectFile = () => {
|
|
108
|
-
this.
|
|
109
|
-
};
|
|
110
|
-
this.pathOnInputHandler = (e) => {
|
|
111
|
-
this.path = e.detail;
|
|
116
|
+
this.pathURLFile.openFile();
|
|
112
117
|
};
|
|
113
|
-
this.pathOnFileSelected = (e) => {
|
|
118
|
+
this.pathOnFileSelected = async (e) => {
|
|
114
119
|
this.selectedFile = e.detail[0];
|
|
115
120
|
const fileName = e.detail[0].name;
|
|
116
121
|
this.path = fileName;
|
|
117
|
-
this.
|
|
118
|
-
};
|
|
119
|
-
this.
|
|
120
|
-
this.showAccessToken = await this.requiresAccessTokenCallback(this.
|
|
122
|
+
this.showAccessToken = await this.requiresAccessTokenCallback(this.pathURLFile.value);
|
|
123
|
+
};
|
|
124
|
+
this.pathURLFileBlurHandler = async () => {
|
|
125
|
+
this.showAccessToken = await this.requiresAccessTokenCallback(this.pathURLFile.value);
|
|
126
|
+
if (this.path !== this.pathOnLoadCallback) {
|
|
127
|
+
// if loadOnBlur is true, and the actual path/URL value differs from the one
|
|
128
|
+
// when loadCallback was called the last time, it is required to call loadCallback
|
|
129
|
+
// again, because the DesignData might differ from the actual.
|
|
130
|
+
this.loadData();
|
|
131
|
+
}
|
|
121
132
|
};
|
|
122
133
|
this.loadData = async () => {
|
|
123
134
|
this.isLoading = true;
|
|
@@ -152,6 +163,7 @@ export class GxIdeImportFromDesign {
|
|
|
152
163
|
this.fontsSelected = [];
|
|
153
164
|
}
|
|
154
165
|
});
|
|
166
|
+
this.pathOnLoadCallback = this.path;
|
|
155
167
|
this.isLoading = false;
|
|
156
168
|
};
|
|
157
169
|
this.messageCallback = message => {
|
|
@@ -213,18 +225,33 @@ export class GxIdeImportFromDesign {
|
|
|
213
225
|
this.shrunkenTree = false;
|
|
214
226
|
}
|
|
215
227
|
};
|
|
228
|
+
this.importAsWebPanelsChangedHandler = () => {
|
|
229
|
+
// When "Import as Web Panels" checkbox value changes, loadCallback has to be
|
|
230
|
+
// called again, because the received DesignData differs between having
|
|
231
|
+
// "Import as Web Panels" checked or not. This only makes sense if a file is
|
|
232
|
+
// selected or the Path/URL input is not empty
|
|
233
|
+
if (this.path.length !== 0 || !this.selectedFile) {
|
|
234
|
+
this.loadData();
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
this.pathURLFileValueChangedHandler = (e) => {
|
|
238
|
+
this.path = e.detail;
|
|
239
|
+
if (this.path.length === 0) {
|
|
240
|
+
this.selectFile === null;
|
|
241
|
+
}
|
|
242
|
+
};
|
|
216
243
|
// 9.LOCAL METHODS -> RENDERS //
|
|
217
244
|
this.renderOptions = () => {
|
|
218
245
|
var _a;
|
|
219
246
|
return (h("div", { class: {
|
|
220
247
|
"options grid": true,
|
|
221
248
|
"options--hide-access-token": !this.showAccessToken
|
|
222
|
-
} }, h("gxg-label", { class: "path-url-label" }, this._componentLocale.options.path), h("div", { class: "path-url-wrapper" }, h("gxg-form-text", { value: this.path,
|
|
249
|
+
} }, h("gxg-label", { class: "path-url-label" }, this._componentLocale.options.path), h("div", { class: "path-url-wrapper" }, h("gxg-form-text", { value: this.path, onFileSelected: this.pathOnFileSelected, onBlur: this.pathURLFileBlurHandler, ref: (el) => (this.pathURLFile = el), clearButton: true, part: "option-path", disabled: this.isLoading, type: "file", acceptFile: this.extensions, class: "path-url", placeholder: this._componentLocale.options.pathPlaceholder, onValueChanged: this.pathURLFileValueChangedHandler }), h("div", { class: "path-url-wrapper__buttons-container" }, h("gxg-button", { id: "button-select-file", type: "primary-text-only", onClick: this.selectFile, part: "gxg-button gxg-button--select-file", disabled: this.isLoading, class: "select-file" }, "..."), h("gxg-button", { id: "button-load", type: "primary-text-only", onClick: this.loadData, part: "gxg-button gxg-button--load", disabled: this.path.length === 0 || this.isLoading, class: "load-file" }, this._componentLocale.options.btnLoad))), this.showAccessToken
|
|
223
250
|
? [
|
|
224
251
|
h("gxg-label", { class: { "access-token-label": true } }, this._componentLocale.options.accessToken),
|
|
225
252
|
h("gxg-form-text", { class: { "access-token": true }, ref: (el) => (this.accessTokenEl = el), part: "access-token", disabled: this.isLoading })
|
|
226
253
|
]
|
|
227
|
-
: null, h("gxg-label", { class: "style-label" }, this._componentLocale.options.style), h("gxg-combo-box", { disabled: !this.styles || this.isLoading, "display-validation-styles": true, "display-validation-message": true, ref: (el) => (this.optionStyleEl = el), part: "option-style", class: "style" }, renderFormItems("gxg-combo-box-item", (_a = this.styles) !== null && _a !== void 0 ? _a : [])), h("gxg-label", { class: "module-label" }, this._componentLocale.options.module), h("gx-ide-entity-selector", { value: this.defaultModule, defaultValue: this.defaultModule, selectEntityCallback: this.selectModuleCallback, ref: (el) => (this.filterModuleEl = el), class: "module" }), h("div", { class: "checkboxes-options" }, h("gxg-form-checkbox", { label: this._componentLocale.options.importAs, class: "import-as-web-panels", ref: (el) => (this.optionImportAsEl = el), part: "option-import-as-web-panels", disabled: this.isLoading }), h("div", { class: {
|
|
254
|
+
: null, h("gxg-label", { class: "style-label" }, this._componentLocale.options.style), h("gxg-combo-box", { disabled: !this.styles || this.isLoading, "display-validation-styles": true, "display-validation-message": true, ref: (el) => (this.optionStyleEl = el), part: "option-style", class: "style" }, renderFormItems("gxg-combo-box-item", (_a = this.styles) !== null && _a !== void 0 ? _a : [])), h("gxg-label", { class: "module-label" }, this._componentLocale.options.module), h("gx-ide-entity-selector", { value: this.defaultModule, defaultValue: this.defaultModule, selectEntityCallback: this.selectModuleCallback, ref: (el) => (this.filterModuleEl = el), class: "module" }), h("div", { class: "checkboxes-options" }, h("gxg-form-checkbox", { label: this._componentLocale.options.importAs, class: "import-as-web-panels", ref: (el) => (this.optionImportAsEl = el), part: "option-import-as-web-panels", disabled: this.isLoading, onChange: this.importAsWebPanelsChangedHandler }), h("div", { class: {
|
|
228
255
|
"checkboxes-options__col-right": true,
|
|
229
256
|
"checkboxes-options__col-right--hidden": !this.designDataTreeDataModel.length
|
|
230
257
|
} }, h("gxg-form-checkbox", { label: this._componentLocale.options.fitImages, part: "fit-images-checkbox", disabled: this.isLoading || !this.designDataTreeDataModel.length, onChange: this.fitImagesHandler }), h("gxg-form-checkbox", { label: this._componentLocale.options.toggleTree, part: "shrink-tree-checkbox", disabled: this.isLoading || !this.designDataTreeDataModel.length, onChange: this.shrinkTreeHandler })))));
|
|
@@ -275,25 +302,50 @@ export class GxIdeImportFromDesign {
|
|
|
275
302
|
this.renderImageTab = () => {
|
|
276
303
|
return (h("div", { part: "data-panel-composition-preview", class: "data-preview" }, h("img", { src: this.selectedDesignItem ? this.selectedDesignItem : undefined, alt: "Preview" })));
|
|
277
304
|
};
|
|
305
|
+
this.tabActivatedHandler = (tabActivated) => {
|
|
306
|
+
if (tabActivated.detail) {
|
|
307
|
+
const tab = tabActivated.detail.tab;
|
|
308
|
+
this.activeTabs = Object.assign(Object.assign({}, this.activeTabs), { [this.selectedDesignType]: tab });
|
|
309
|
+
}
|
|
310
|
+
};
|
|
311
|
+
this.isTabActive = (tab) => {
|
|
312
|
+
const activeTab = this.selectedDesignType;
|
|
313
|
+
this.activeTabs[activeTab];
|
|
314
|
+
if (this.activeTabs[activeTab] === tab) {
|
|
315
|
+
return true;
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
return false;
|
|
319
|
+
}
|
|
320
|
+
};
|
|
278
321
|
this.renderDesignTabs = () => {
|
|
279
322
|
return (h("gxg-tabs", { class: {
|
|
280
323
|
"design-tabs": true,
|
|
281
324
|
"design-tabs--fit-images": this.fitImages
|
|
282
325
|
}, part: "data-tabs", "no-border": true, noPadding: true, buttonsBorderAbove: true }, h("gxg-tab-bar", { slot: "tab-bar-container" }, h("gxg-tab-button", { hidden: !this.selectedDesignType ||
|
|
283
|
-
this.selectedDesignType !== DESIGN_DATA_TYPE_DESIGN_SYSTEM, slot: "tab-bar", "tab-label": this._componentLocale.tabs.tokens, tab: "tokens", key: "tokens", "
|
|
284
|
-
this.selectedDesignType !== DESIGN_DATA_TYPE_DESIGN_SYSTEM, slot: "tab-bar", "tab-label": this._componentLocale.tabs.styles, tab: "styles", key: "styles" }), h("gxg-tab-button", { hidden: !this.selectedDesignType ||
|
|
285
|
-
this.selectedDesignType === DESIGN_DATA_TYPE_DESIGN_SYSTEM, slot: "tab-bar", "tab-label": this._componentLocale.tabs.composition, tab: "composition", key: "composition", "
|
|
326
|
+
this.selectedDesignType !== DESIGN_DATA_TYPE_DESIGN_SYSTEM, slot: "tab-bar", "tab-label": this._componentLocale.tabs.tokens, tab: "tokens", key: "tokens", onTabActivated: this.tabActivatedHandler, isSelected: this.isTabActive("tokens") }), h("gxg-tab-button", { hidden: !this.selectedDesignType ||
|
|
327
|
+
this.selectedDesignType !== DESIGN_DATA_TYPE_DESIGN_SYSTEM, slot: "tab-bar", "tab-label": this._componentLocale.tabs.styles, tab: "styles", key: "styles", onTabActivated: this.tabActivatedHandler, isSelected: this.isTabActive("styles") }), h("gxg-tab-button", { hidden: !this.selectedDesignType ||
|
|
328
|
+
this.selectedDesignType === DESIGN_DATA_TYPE_DESIGN_SYSTEM, slot: "tab-bar", "tab-label": this._componentLocale.tabs.composition, tab: "composition", key: "composition", onTabActivated: this.tabActivatedHandler, isSelected: this.isTabActive("composition") }), h("gxg-tab-button", { hidden: !this.selectedDesignType ||
|
|
329
|
+
(this.selectedDesignType !== DESIGN_DATA_TYPE_PANELS &&
|
|
330
|
+
this.selectedDesignType !== DESIGN_DATA_TYPE_STENCILS), slot: "tab-bar", "tab-label": this._componentLocale.tabs.layout, tab: "layout", key: "layout", onTabActivated: this.tabActivatedHandler, isSelected: this.isTabActive("layout") }), h("gxg-tab-button", { hidden: !this.selectedDesignType ||
|
|
286
331
|
(this.selectedDesignType !== DESIGN_DATA_TYPE_PANELS &&
|
|
287
|
-
this.selectedDesignType !== DESIGN_DATA_TYPE_STENCILS), slot: "tab-bar", "tab-label": this._componentLocale.tabs.code, tab: "code", key: "code" })), h("gxg-tab", { tab: "tokens", key: "tokens" }, h("div", { ref: (el) => (this.tokensFactoryRenderEl = el) })), h("gxg-tab", { tab: "styles", key: "styles" }, h("div", { ref: (el) => (this.stylesFactoryRenderEl = el) })), h("gxg-tab", { tab: "composition", key: "composition" }, this.selectedDesignType === DESIGN_DATA_TYPE_IMAGES ||
|
|
332
|
+
this.selectedDesignType !== DESIGN_DATA_TYPE_STENCILS), slot: "tab-bar", "tab-label": this._componentLocale.tabs.code, tab: "code", key: "code", onTabActivated: this.tabActivatedHandler, isSelected: this.isTabActive("code") })), h("gxg-tab", { tab: "tokens", key: "tokens", isSelected: this.isTabActive("tokens") }, h("div", { ref: (el) => (this.tokensFactoryRenderEl = el) })), h("gxg-tab", { tab: "styles", key: "styles", isSelected: this.isTabActive("styles") }, h("div", { ref: (el) => (this.stylesFactoryRenderEl = el) })), h("gxg-tab", { tab: "composition", key: "composition", isSelected: this.isTabActive("composition") }, this.selectedDesignType === DESIGN_DATA_TYPE_IMAGES ||
|
|
288
333
|
this.selectedDesignType === DESIGN_DATA_TYPE_FONTS
|
|
289
334
|
? this.renderImageTab()
|
|
290
|
-
: this.renderPanelTab()), h("gxg-tab", { tab: "code", key: "code" }, h("div", { ref: (el) => (this.codeFactoryRenderEl = el) }))));
|
|
335
|
+
: this.renderPanelTab()), h("gxg-tab", { tab: "layout", key: "layout", isSelected: this.isTabActive("layout") }, h("div", { ref: (el) => (this.layoutFactoryRenderEl = el) })), h("gxg-tab", { tab: "code", key: "code", isSelected: this.isTabActive("code") }, h("div", { ref: (el) => (this.codeFactoryRenderEl = el) }))));
|
|
291
336
|
};
|
|
337
|
+
this.activeTabs = {
|
|
338
|
+
panels: "composition",
|
|
339
|
+
stencils: "composition",
|
|
340
|
+
images: "composition",
|
|
341
|
+
fonts: "composition",
|
|
342
|
+
design_system: "tokens"
|
|
343
|
+
};
|
|
344
|
+
this.path = "";
|
|
292
345
|
this.designData = null;
|
|
293
346
|
this.detailTreeModel = [];
|
|
294
347
|
this.isLoading = false;
|
|
295
348
|
this.messages = [];
|
|
296
|
-
this.path = "";
|
|
297
349
|
this.selectedFile = undefined;
|
|
298
350
|
this.selectedDesignType = undefined;
|
|
299
351
|
this.selectedDesignItem = undefined;
|
|
@@ -324,6 +376,7 @@ export class GxIdeImportFromDesign {
|
|
|
324
376
|
if (newDesignData) {
|
|
325
377
|
this.designDataTreeDataModel = [
|
|
326
378
|
{
|
|
379
|
+
order: 0,
|
|
327
380
|
id: `parent@${DESIGN_DATA_TYPE_PANELS}`,
|
|
328
381
|
class: "category tree-view-item",
|
|
329
382
|
leaf: false,
|
|
@@ -332,17 +385,19 @@ export class GxIdeImportFromDesign {
|
|
|
332
385
|
checkbox: true,
|
|
333
386
|
checked: true,
|
|
334
387
|
expanded: true,
|
|
335
|
-
items: this.designData.panels.map(item => ({
|
|
388
|
+
items: this.designData.panels.map((item, i) => ({
|
|
336
389
|
id: `${item.id}@${DESIGN_DATA_TYPE_PANELS}`,
|
|
337
390
|
class: "object tree-view-item",
|
|
338
391
|
leaf: true,
|
|
339
392
|
caption: item.name,
|
|
340
393
|
startImgSrc: "general/generator",
|
|
341
394
|
checkbox: true,
|
|
342
|
-
checked: true
|
|
395
|
+
checked: true,
|
|
396
|
+
selected: i === 0
|
|
343
397
|
}))
|
|
344
398
|
},
|
|
345
399
|
{
|
|
400
|
+
order: 1,
|
|
346
401
|
id: `parent@${DESIGN_DATA_TYPE_STENCILS}`,
|
|
347
402
|
class: "category tree-view-item",
|
|
348
403
|
leaf: false,
|
|
@@ -362,6 +417,7 @@ export class GxIdeImportFromDesign {
|
|
|
362
417
|
}))
|
|
363
418
|
},
|
|
364
419
|
{
|
|
420
|
+
order: 2,
|
|
365
421
|
id: `parent@${DESIGN_DATA_TYPE_IMAGES}`,
|
|
366
422
|
class: "category tree-view-item",
|
|
367
423
|
leaf: false,
|
|
@@ -381,18 +437,19 @@ export class GxIdeImportFromDesign {
|
|
|
381
437
|
}))
|
|
382
438
|
},
|
|
383
439
|
{
|
|
384
|
-
|
|
440
|
+
order: 3,
|
|
441
|
+
id: `parent@${DESIGN_DATA_TYPE_FONTS}`,
|
|
385
442
|
class: "category tree-view-item",
|
|
386
443
|
leaf: false,
|
|
387
|
-
caption: this._componentLocale.tree.
|
|
444
|
+
caption: this._componentLocale.tree.fonts,
|
|
388
445
|
startImgSrc: "general/knowledge-base",
|
|
389
446
|
checkbox: true,
|
|
390
447
|
checked: true,
|
|
391
448
|
expanded: true,
|
|
392
|
-
items: this.designData.
|
|
449
|
+
items: this.designData.fonts.map(item => ({
|
|
450
|
+
id: `${item.id}@${DESIGN_DATA_TYPE_FONTS}`,
|
|
393
451
|
class: "object tree-view-item",
|
|
394
452
|
leaf: true,
|
|
395
|
-
id: `${item.id}@${DESIGN_DATA_TYPE_DESIGN_SYSTEM}`,
|
|
396
453
|
caption: item.name,
|
|
397
454
|
startImgSrc: "general/generator",
|
|
398
455
|
checkbox: true,
|
|
@@ -400,25 +457,17 @@ export class GxIdeImportFromDesign {
|
|
|
400
457
|
}))
|
|
401
458
|
},
|
|
402
459
|
{
|
|
403
|
-
|
|
460
|
+
order: 4,
|
|
461
|
+
id: `parent@${DESIGN_DATA_TYPE_DESIGN_SYSTEM}`,
|
|
404
462
|
class: "category tree-view-item",
|
|
405
|
-
leaf:
|
|
406
|
-
caption: this._componentLocale.tree.
|
|
463
|
+
leaf: true,
|
|
464
|
+
caption: this._componentLocale.tree.designSystem,
|
|
407
465
|
startImgSrc: "general/knowledge-base",
|
|
408
466
|
checkbox: true,
|
|
409
|
-
checked: true
|
|
410
|
-
expanded: true,
|
|
411
|
-
items: this.designData.fonts.map(item => ({
|
|
412
|
-
id: `${item.id}@${DESIGN_DATA_TYPE_FONTS}`,
|
|
413
|
-
class: "object tree-view-item",
|
|
414
|
-
leaf: true,
|
|
415
|
-
caption: item.name,
|
|
416
|
-
startImgSrc: "general/generator",
|
|
417
|
-
checkbox: true,
|
|
418
|
-
checked: true
|
|
419
|
-
}))
|
|
467
|
+
checked: true
|
|
420
468
|
}
|
|
421
469
|
];
|
|
470
|
+
this.designDataTreeDataModel;
|
|
422
471
|
}
|
|
423
472
|
}
|
|
424
473
|
watchShrinkTreeHandler(shrink) {
|
|
@@ -481,6 +530,7 @@ export class GxIdeImportFromDesign {
|
|
|
481
530
|
case DESIGN_DATA_TYPE_PANELS:
|
|
482
531
|
case DESIGN_DATA_TYPE_STENCILS:
|
|
483
532
|
this.textEditorFactoryCallback("html", this.codeFactoryRenderEl, this.selectedDesignItem.code);
|
|
533
|
+
this.textEditorFactoryCallback("html", this.layoutFactoryRenderEl, this.selectedDesignItem.layout);
|
|
484
534
|
break;
|
|
485
535
|
case DESIGN_DATA_TYPE_DESIGN_SYSTEM:
|
|
486
536
|
this.textEditorFactoryCallback("tokens", this.tokensFactoryRenderEl, this.selectedDesignItem.tokens);
|
|
@@ -500,19 +550,19 @@ export class GxIdeImportFromDesign {
|
|
|
500
550
|
render() {
|
|
501
551
|
return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { noContentPadding: true, noContentGap: true, displayBorderBottom: true, part: "options-container", slimmerFooter: config.gxIdeContainer.slimmerFooter, containerTitle: this.displayTitle ? this._componentLocale.componentName : null }, this.renderOptions(), this.renderMain(), this.renderFooter()))));
|
|
502
552
|
}
|
|
503
|
-
static get is() { return "gx-ide-import
|
|
553
|
+
static get is() { return "gx-ide-design-import"; }
|
|
504
554
|
static get encapsulation() { return "shadow"; }
|
|
505
555
|
static get originalStyleUrls() {
|
|
506
556
|
return {
|
|
507
|
-
"$": ["import
|
|
557
|
+
"$": ["design-import.scss"]
|
|
508
558
|
};
|
|
509
559
|
}
|
|
510
560
|
static get styleUrls() {
|
|
511
561
|
return {
|
|
512
|
-
"$": ["import
|
|
562
|
+
"$": ["design-import.css"]
|
|
513
563
|
};
|
|
514
564
|
}
|
|
515
|
-
static get assetsDirs() { return ["gx-ide-assets/import
|
|
565
|
+
static get assetsDirs() { return ["gx-ide-assets/design-import"]; }
|
|
516
566
|
static get properties() {
|
|
517
567
|
return {
|
|
518
568
|
"displayTitle": {
|
|
@@ -580,8 +630,8 @@ export class GxIdeImportFromDesign {
|
|
|
580
630
|
"references": {
|
|
581
631
|
"SelectModuleCallback": {
|
|
582
632
|
"location": "local",
|
|
583
|
-
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/import-
|
|
584
|
-
"id": "src/components/import-
|
|
633
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/design-import/design-import.tsx",
|
|
634
|
+
"id": "src/components/design-import/design-import.tsx::SelectModuleCallback"
|
|
585
635
|
}
|
|
586
636
|
}
|
|
587
637
|
},
|
|
@@ -601,8 +651,8 @@ export class GxIdeImportFromDesign {
|
|
|
601
651
|
"references": {
|
|
602
652
|
"CancelCallback": {
|
|
603
653
|
"location": "local",
|
|
604
|
-
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/import-
|
|
605
|
-
"id": "src/components/import-
|
|
654
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/design-import/design-import.tsx",
|
|
655
|
+
"id": "src/components/design-import/design-import.tsx::CancelCallback"
|
|
606
656
|
}
|
|
607
657
|
}
|
|
608
658
|
},
|
|
@@ -622,8 +672,8 @@ export class GxIdeImportFromDesign {
|
|
|
622
672
|
"references": {
|
|
623
673
|
"ConfirmCallback": {
|
|
624
674
|
"location": "local",
|
|
625
|
-
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/import-
|
|
626
|
-
"id": "src/components/import-
|
|
675
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/design-import/design-import.tsx",
|
|
676
|
+
"id": "src/components/design-import/design-import.tsx::ConfirmCallback"
|
|
627
677
|
}
|
|
628
678
|
}
|
|
629
679
|
},
|
|
@@ -643,8 +693,8 @@ export class GxIdeImportFromDesign {
|
|
|
643
693
|
"references": {
|
|
644
694
|
"LoadCallback": {
|
|
645
695
|
"location": "local",
|
|
646
|
-
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/import-
|
|
647
|
-
"id": "src/components/import-
|
|
696
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/design-import/design-import.tsx",
|
|
697
|
+
"id": "src/components/design-import/design-import.tsx::LoadCallback"
|
|
648
698
|
}
|
|
649
699
|
}
|
|
650
700
|
},
|
|
@@ -664,8 +714,8 @@ export class GxIdeImportFromDesign {
|
|
|
664
714
|
"references": {
|
|
665
715
|
"LoadDesignSystemCallback": {
|
|
666
716
|
"location": "local",
|
|
667
|
-
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/import-
|
|
668
|
-
"id": "src/components/import-
|
|
717
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/design-import/design-import.tsx",
|
|
718
|
+
"id": "src/components/design-import/design-import.tsx::LoadDesignSystemCallback"
|
|
669
719
|
}
|
|
670
720
|
}
|
|
671
721
|
},
|
|
@@ -685,8 +735,8 @@ export class GxIdeImportFromDesign {
|
|
|
685
735
|
"references": {
|
|
686
736
|
"LoadFontCallback": {
|
|
687
737
|
"location": "local",
|
|
688
|
-
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/import-
|
|
689
|
-
"id": "src/components/import-
|
|
738
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/design-import/design-import.tsx",
|
|
739
|
+
"id": "src/components/design-import/design-import.tsx::LoadFontCallback"
|
|
690
740
|
}
|
|
691
741
|
}
|
|
692
742
|
},
|
|
@@ -706,8 +756,8 @@ export class GxIdeImportFromDesign {
|
|
|
706
756
|
"references": {
|
|
707
757
|
"LoadImageCallback": {
|
|
708
758
|
"location": "local",
|
|
709
|
-
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/import-
|
|
710
|
-
"id": "src/components/import-
|
|
759
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/design-import/design-import.tsx",
|
|
760
|
+
"id": "src/components/design-import/design-import.tsx::LoadImageCallback"
|
|
711
761
|
}
|
|
712
762
|
}
|
|
713
763
|
},
|
|
@@ -727,8 +777,8 @@ export class GxIdeImportFromDesign {
|
|
|
727
777
|
"references": {
|
|
728
778
|
"LoadPanelDataCallback": {
|
|
729
779
|
"location": "local",
|
|
730
|
-
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/import-
|
|
731
|
-
"id": "src/components/import-
|
|
780
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/design-import/design-import.tsx",
|
|
781
|
+
"id": "src/components/design-import/design-import.tsx::LoadPanelDataCallback"
|
|
732
782
|
}
|
|
733
783
|
}
|
|
734
784
|
},
|
|
@@ -748,8 +798,8 @@ export class GxIdeImportFromDesign {
|
|
|
748
798
|
"references": {
|
|
749
799
|
"RequiresAccessTokenCallback": {
|
|
750
800
|
"location": "local",
|
|
751
|
-
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/import-
|
|
752
|
-
"id": "src/components/import-
|
|
801
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/design-import/design-import.tsx",
|
|
802
|
+
"id": "src/components/design-import/design-import.tsx::RequiresAccessTokenCallback"
|
|
753
803
|
}
|
|
754
804
|
}
|
|
755
805
|
},
|
|
@@ -808,8 +858,8 @@ export class GxIdeImportFromDesign {
|
|
|
808
858
|
"references": {
|
|
809
859
|
"TextEditorFactoryCallback": {
|
|
810
860
|
"location": "local",
|
|
811
|
-
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/import-
|
|
812
|
-
"id": "src/components/import-
|
|
861
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/design-import/design-import.tsx",
|
|
862
|
+
"id": "src/components/design-import/design-import.tsx::TextEditorFactoryCallback"
|
|
813
863
|
}
|
|
814
864
|
}
|
|
815
865
|
},
|
|
@@ -824,11 +874,12 @@ export class GxIdeImportFromDesign {
|
|
|
824
874
|
}
|
|
825
875
|
static get states() {
|
|
826
876
|
return {
|
|
877
|
+
"activeTabs": {},
|
|
878
|
+
"path": {},
|
|
827
879
|
"designData": {},
|
|
828
880
|
"detailTreeModel": {},
|
|
829
881
|
"isLoading": {},
|
|
830
882
|
"messages": {},
|
|
831
|
-
"path": {},
|
|
832
883
|
"selectedFile": {},
|
|
833
884
|
"selectedDesignType": {},
|
|
834
885
|
"selectedDesignItem": {},
|
|
@@ -894,4 +945,4 @@ export class GxIdeImportFromDesign {
|
|
|
894
945
|
}];
|
|
895
946
|
}
|
|
896
947
|
}
|
|
897
|
-
//# sourceMappingURL=import
|
|
948
|
+
//# sourceMappingURL=design-import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-import.js","sourceRoot":"","sources":["../../../src/components/design-import/design-import.tsx"],"names":[],"mappings":"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","sourcesContent":["/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Method,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport {\n TextAlign,\n TextPadding,\n TextType\n} from \"@genexus/gemini/dist/types/components/text/text\";\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { renderFormItems } from \"../../common/common\";\nimport { EntityData, GxOption } from \"../../common/types\";\nimport { CheckboxInfo } from \"@genexus/gemini\";\n\nconst DESIGN_DATA_TYPE_PANELS = \"panels\";\nconst DESIGN_DATA_TYPE_STENCILS = \"stencils\";\nconst DESIGN_DATA_TYPE_IMAGES = \"images\";\nconst DESIGN_DATA_TYPE_DESIGN_SYSTEM = \"design_system\";\nconst DESIGN_DATA_TYPE_FONTS = \"fonts\";\n\n@Component({\n tag: \"gx-ide-design-import\",\n styleUrl: \"design-import.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/design-import\"]\n})\nexport class GxIdeImportFromDesign {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n /**\n * An array that keeps track of the tree items id's (design system data type + item id) along with the content, that will be used to save and retrieve items information, in order to avoid using a callback to get items information that was already get. loadedItemsArray will be reset every time a new design is loaded.\n */\n private loadedItems: Map<string, ItemLoadedInfo> = new Map();\n\n /**\n * The path/URL value when loadCallback was called for the last time. This is used to determine\n * if there is a difference with the actual path/URL value, in order to know if calling loadCallback\n * again is required on blur on Path/URL/File input.\n */\n private pathOnLoadCallback = \"\";\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeDesignImportElement;\n\n /* References needed to collect data */\n private pathURLFile!: HTMLGxgFormTextElement;\n private accessTokenEl!: HTMLGxgFormTextElement;\n private optionStyleEl!: HTMLGxgComboBoxElement;\n private optionImportAsEl!: HTMLGxgFormCheckboxElement;\n private filterModuleEl!: HTMLGxIdeEntitySelectorElement;\n private messagesList: HTMLElement;\n private panelsSelected: string[] = [];\n private stencilsSelected: string[] = [];\n // private imagesSelected: string[] = [];\n // private designSystemSelected: string[] = [];\n private fontsSelected: string[] = [];\n private codeFactoryRenderEl!: HTMLElement;\n private layoutFactoryRenderEl!: HTMLElement;\n private tokensFactoryRenderEl!: HTMLElement;\n private stylesFactoryRenderEl!: HTMLElement;\n private treeDataEl!: HTMLGxgTreeViewElement;\n\n // 3.STATE() VARIABLES //\n\n @State() activeTabs: DesignObjectType = {\n panels: \"composition\",\n stencils: \"composition\",\n images: \"composition\",\n fonts: \"composition\",\n design_system: \"tokens\"\n };\n\n /**\n * The path/URL for load the design data\n */\n @State() path = \"\";\n\n /**\n * The design data loaded from file\n */\n @State() designData: DesignData = null;\n @Watch(\"designData\")\n watchDesignDataHandler(newDesignData: DesignData) {\n if (newDesignData) {\n this.designDataTreeDataModel = [\n {\n order: 0,\n id: `parent@${DESIGN_DATA_TYPE_PANELS}`,\n class: \"category tree-view-item\",\n leaf: false,\n caption: this._componentLocale.tree.panels,\n startImgSrc: \"general/knowledge-base\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.panels.map((item, i) => ({\n id: `${item.id}@${DESIGN_DATA_TYPE_PANELS}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n startImgSrc: \"general/generator\",\n checkbox: true,\n checked: true,\n selected: i === 0\n }))\n },\n {\n order: 1,\n id: `parent@${DESIGN_DATA_TYPE_STENCILS}`,\n class: \"category tree-view-item\",\n leaf: false,\n caption: this._componentLocale.tree.stencils,\n startImgSrc: \"general/knowledge-base\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.stencils.map(item => ({\n id: `${item.id}@${DESIGN_DATA_TYPE_STENCILS}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n startImgSrc: \"general/generator\",\n checkbox: true,\n checked: true\n }))\n },\n {\n order: 2,\n id: `parent@${DESIGN_DATA_TYPE_IMAGES}`,\n class: \"category tree-view-item\",\n leaf: false,\n caption: this._componentLocale.tree.images,\n startImgSrc: \"general/knowledge-base\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.images.map(item => ({\n id: `${item.id}@${DESIGN_DATA_TYPE_IMAGES}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n startImgSrc: \"general/generator\",\n checkbox: true,\n checked: true\n }))\n },\n {\n order: 3,\n id: `parent@${DESIGN_DATA_TYPE_FONTS}`,\n class: \"category tree-view-item\",\n leaf: false,\n caption: this._componentLocale.tree.fonts,\n startImgSrc: \"general/knowledge-base\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.fonts.map(item => ({\n id: `${item.id}@${DESIGN_DATA_TYPE_FONTS}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n startImgSrc: \"general/generator\",\n checkbox: true,\n checked: true\n }))\n },\n {\n order: 4,\n id: `parent@${DESIGN_DATA_TYPE_DESIGN_SYSTEM}`,\n class: \"category tree-view-item\",\n leaf: true,\n caption: this._componentLocale.tree.designSystem,\n startImgSrc: \"general/knowledge-base\",\n checkbox: true,\n checked: true\n }\n ];\n\n this.designDataTreeDataModel;\n }\n }\n\n /**\n * The model data loaded into the detail tree\n */\n @State() detailTreeModel: TreeViewItemModel[] = [];\n\n /**\n * If the design data is loading or not, for disabled actions\n */\n @State() isLoading = false;\n\n /**\n * The messages receive when the file is loading\n */\n @State() messages: MessageData[] = [];\n\n /**\n * The file selected for load the design data\n */\n @State() selectedFile: File;\n\n /**\n * The type of the design data selected for show it visual tabs\n */\n @State() selectedDesignType: DesignType;\n\n /**\n * The item of the design data selected for show its contents on visual tabs\n */\n @State() selectedDesignItem: any;\n\n /**\n * When show or not the access token input field\n */\n @State() showAccessToken: any;\n\n /**\n * the design data tree view data model\n */\n @State() designDataTreeDataModel: TreeViewItemModel[] = [];\n\n /**\n * Used to trigger a re-render after an item has been selected on renderDesignTree, in order to set the first tab as the active tab (setFirstActiveTab()), since calling this method inside objectsTreeSelectedItemsChangedHandler does not always work without a setTimeOut.\n */\n @State() updateTabsActiveTab: boolean = false;\n\n /**\n * If true, images will be fitted in the container\n */\n @State() fitImages = false;\n\n /**\n * If true, the left tree will be shrink and expanded to allow more space for the content\n */\n @State() shrinkTree = false;\n @Watch(\"shrinkTree\")\n watchShrinkTreeHandler(shrink: boolean) {\n if (shrink) {\n this.attachTreeMouseListeners();\n } else {\n this.removeTreeMouseListeners();\n }\n }\n\n /**\n * If true the left tree will be shrunken\n */\n @State() shrunkenTree = false;\n\n @State() treeSh = false;\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * The valid extensions for the files that will be loaded in Path/URL (ie.: \".fig, .sketch\")\n */\n @Prop() readonly extensions!: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * This is a function provided by the developer that cancel the load operation.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * This is a function provided by the developer that init the process of import a design.\n */\n @Prop() readonly confirmCallback!: ConfirmCallback;\n\n /**\n * This is a function provided by the developer that return the list of types of data loaded from file or url.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * This is a function provided by the developer that return the information of a Design System type of data.\n */\n // eslint-disable-next-line prettier/prettier\n @Prop() readonly loadDesignSystemCallback!: LoadDesignSystemCallback;\n\n /**\n * This is a function provided by the developer that return the information of a Font type of data.\n */\n @Prop() readonly loadFontCallback!: LoadFontCallback;\n\n /**\n * This is a function provided by the developer that return the information of an Image System type of data.\n */\n @Prop() readonly loadImageCallback!: LoadImageCallback;\n\n /**\n * This is a function provided by the developer that return the information of a Panel type of data.\n */\n @Prop() readonly loadPanelDataCallback!: LoadPanelDataCallback;\n\n /**\n * Callback invoked to determinate if accessing to a design requires an authentication token\n */\n @Prop() readonly requiresAccessTokenCallback!: RequiresAccessTokenCallback;\n\n /**\n * Applies a shadow all around\n */\n @Prop() readonly shadow = false;\n\n /**\n * The styles render in the option style selector\n */\n @Prop() readonly styles!: GxOption[];\n\n /**\n * This is a function provided by the developer for create an instance of a text editor.\n */\n // eslint-disable-next-line prettier/prettier\n @Prop() readonly textEditorFactoryCallback!: TextEditorFactoryCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n disconnectedCallback() {\n this.removeTreeMouseListeners();\n }\n\n // 7.LISTENERS //\n\n @Watch(\"messages\")\n watchMessagesHandler(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n if (this.messagesList) {\n this.messagesList.scrollTop = this.messagesList.scrollHeight;\n }\n }\n }\n\n // 8.PUBLIC METHODS API //\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n // 9.LOCAL METHODS //\n\n private attachTreeMouseListeners = () => {\n this.treeDataEl.addEventListener(\"mouseenter\", this.treeMouseEnter);\n this.treeDataEl.addEventListener(\"mouseleave\", this.treeMouseLeave);\n };\n private removeTreeMouseListeners = () => {\n this.treeDataEl.removeEventListener(\"mouseenter\", this.treeMouseEnter);\n this.treeDataEl.removeEventListener(\"mouseleave\", this.treeMouseLeave);\n };\n private treeMouseEnter = () => {\n this.shrunkenTree = false;\n };\n private treeMouseLeave = () => {\n this.shrunkenTree = true;\n };\n\n private messageType = (message: MessageData): TextType => {\n if (message.type === \"error\") {\n return \"text-alert-error\";\n } else if (message.type === \"warning\") {\n return \"text-alert-warning\";\n } else {\n return \"text-gray\";\n }\n };\n\n private loadTreeItemCompositionModel(\n controls: DesignPanelControlData[]\n ): TreeViewItemModel[] {\n const modelList: TreeViewItemModel[] = [];\n for (const control of controls) {\n let model: TreeViewItemModel = {\n id: control.name,\n caption: control.name,\n startImgSrc: control.type,\n checkbox: false,\n expanded: true,\n leaf: control.leaf\n };\n if (control.controls) {\n model = {\n ...model,\n items: this.loadTreeItemCompositionModel(control.controls)\n };\n }\n modelList.push(model);\n }\n return modelList;\n }\n\n private objectsTreeSelectedItemsChangedHandler = async (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n if (event.detail.length) {\n const item = event.detail[0]?.item;\n const itemComposedId = item.id;\n const idList = itemComposedId.split(\"@\");\n const itemId = idList[0];\n const itemDesignType: DesignType = idList[1] as DesignType;\n const isChildNode = itemId && itemId !== \"parent\";\n const isDesignSystem = itemDesignType === \"design_system\";\n if (isChildNode || isDesignSystem) {\n this.selectedDesignType = itemDesignType;\n const loadedItem = this.getLoadedItem(itemComposedId);\n if (!loadedItem) {\n const designDataDetail: DesignItemDataDetail =\n await this.getDesignDataDetail(itemId, this.selectedDesignType);\n this.loadedItems.set(itemComposedId, {\n designType: this.selectedDesignType,\n designDataDetail: designDataDetail\n });\n } else {\n /* Item has been queried already. The item content exists already. */\n this.selectedDesignType = loadedItem.designType;\n this.selectedDesignItem = loadedItem.designDataDetail;\n this.getCodeFactory(loadedItem.designType);\n this.renderDetailDataTree(loadedItem.designType);\n }\n }\n }\n };\n\n private getLoadedItem = (id: string): ItemLoadedInfo | undefined => {\n return this.loadedItems?.get(id);\n };\n\n private objectsTreeCheckedItemsChangedHandler = (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n const items = Array.from(event.detail.values());\n let currentParentId = null;\n const result: { [key: string]: string[] } = {};\n\n for (const item of items) {\n if (item.item.id.startsWith(\"parent@\")) {\n currentParentId = item.item.id.split(\"@\")[1];\n result[currentParentId] = [];\n } else if (item.item.checked && currentParentId) {\n const parentId = item.item.id.split(\"@\")[1];\n if (parentId === currentParentId) {\n const id = item.item.id.split(\"@\")[0];\n result[currentParentId].push(id);\n }\n }\n }\n // const { designSystem, fonts, images, panels, stencils } = result;\n const { fonts, panels, stencils } = result;\n\n // this.designSystemSelected = designSystem;\n this.fontsSelected = fonts;\n // this.imagesSelected = images;\n this.panelsSelected = panels;\n this.stencilsSelected = stencils;\n };\n\n private selectFile = (): void => {\n this.pathURLFile.openFile();\n };\n\n private pathOnFileSelected = async (e: any) => {\n this.selectedFile = e.detail[0];\n const fileName = e.detail[0].name;\n this.path = fileName;\n this.showAccessToken = await this.requiresAccessTokenCallback(\n this.pathURLFile.value\n );\n };\n\n private pathURLFileBlurHandler = async () => {\n this.showAccessToken = await this.requiresAccessTokenCallback(\n this.pathURLFile.value\n );\n\n if (this.path !== this.pathOnLoadCallback) {\n // if loadOnBlur is true, and the actual path/URL value differs from the one\n // when loadCallback was called the last time, it is required to call loadCallback\n // again, because the DesignData might differ from the actual.\n this.loadData();\n }\n };\n\n private loadData = async (): Promise<void> => {\n this.isLoading = true;\n const source = this.selectedFile ? this.selectedFile : this.path;\n const token = this.accessTokenEl ? this.accessTokenEl.value : undefined;\n this.designData = null;\n await this.loadCallback(source, token, this.messageCallback).then(\n (designData: DesignData) => {\n // this.isLoading = false;\n this.messages = [];\n this.designData = designData;\n if (this.designData) {\n this.panelsSelected = [\n ...this.designData.panels.map(item => item.id)\n ];\n this.stencilsSelected = [\n ...this.designData.stencils.map(item => item.id)\n ];\n // this.imagesSelected = [\n // ...this.designData.images.map(item => item.id)\n // ];\n // this.designSystemSelected = [\n // ...this.designData.designSystem.map(item => item.id)\n // ];\n this.fontsSelected = [...this.designData.fonts.map(item => item.id)];\n } else {\n // There was probably an error\n this.panelsSelected = [];\n this.stencilsSelected = [];\n // this.imagesSelected = [];\n // this.designSystemSelected = [];\n this.fontsSelected = [];\n }\n }\n );\n this.pathOnLoadCallback = this.path;\n this.isLoading = false;\n };\n\n private messageCallback: LoadMessageCallback = message => {\n this.messages = [...this.messages, message];\n };\n\n private getDesignDataDetail = async (\n id: string,\n designType: DesignType\n ): Promise<DesignItemDataDetail> => {\n let loadFn:\n | LoadPanelDataCallback\n | LoadImageCallback\n | LoadFontCallback\n | LoadDesignSystemCallback;\n\n switch (designType) {\n case DESIGN_DATA_TYPE_IMAGES:\n loadFn = this.loadImageCallback;\n break;\n case DESIGN_DATA_TYPE_DESIGN_SYSTEM:\n loadFn = this.loadDesignSystemCallback;\n break;\n case DESIGN_DATA_TYPE_FONTS:\n loadFn = this.loadFontCallback;\n break;\n case DESIGN_DATA_TYPE_PANELS:\n case DESIGN_DATA_TYPE_STENCILS:\n loadFn = this.loadPanelDataCallback;\n break;\n }\n\n let returnedData: DesignItemDataDetail;\n await loadFn(id).then((data: DesignItemDataDetail) => {\n this.selectedDesignType = designType;\n this.selectedDesignItem = data;\n this.getCodeFactory(designType);\n this.renderDetailDataTree(designType);\n returnedData = data;\n });\n\n return returnedData;\n };\n\n private getCodeFactory(designType: string) {\n switch (designType) {\n case DESIGN_DATA_TYPE_PANELS:\n case DESIGN_DATA_TYPE_STENCILS:\n this.textEditorFactoryCallback(\n \"html\",\n this.codeFactoryRenderEl,\n this.selectedDesignItem.code\n );\n this.textEditorFactoryCallback(\n \"html\",\n this.layoutFactoryRenderEl,\n this.selectedDesignItem.layout\n );\n break;\n case DESIGN_DATA_TYPE_DESIGN_SYSTEM:\n this.textEditorFactoryCallback(\n \"tokens\",\n this.tokensFactoryRenderEl,\n this.selectedDesignItem.tokens\n );\n this.textEditorFactoryCallback(\n \"styles\",\n this.stylesFactoryRenderEl,\n this.selectedDesignItem.styles\n );\n break;\n }\n }\n\n private confirm = (): void => {\n this.confirmCallback({\n panels: this.panelsSelected,\n stencils: this.stencilsSelected,\n fonts: this.fontsSelected,\n /* images: this.imagesSelected, */\n moduleId: this.filterModuleEl?.value?.id,\n styleName: this.optionStyleEl.value,\n importAsWebPanels: this.optionImportAsEl.checked\n });\n };\n\n private cancel = (): void => {\n this.cancelCallback();\n this.isLoading = false;\n };\n\n private fitImagesHandler = (e: CustomEvent<CheckboxInfo>) => {\n this.fitImages = e.detail.value;\n };\n\n private shrinkTreeHandler = (e: CustomEvent<CheckboxInfo>) => {\n const checked = e.detail.value;\n this.shrinkTree = checked;\n if (checked) {\n this.shrunkenTree = true;\n } else {\n this.shrunkenTree = false;\n }\n };\n\n private importAsWebPanelsChangedHandler = () => {\n // When \"Import as Web Panels\" checkbox value changes, loadCallback has to be\n // called again, because the received DesignData differs between having\n // \"Import as Web Panels\" checked or not. This only makes sense if a file is\n // selected or the Path/URL input is not empty\n if (this.path.length !== 0 || !this.selectedFile) {\n this.loadData();\n }\n };\n\n private pathURLFileValueChangedHandler = (e: CustomEvent<string>) => {\n this.path = e.detail;\n if (this.path.length === 0) {\n this.selectFile === null;\n }\n };\n\n // 9.LOCAL METHODS -> RENDERS //\n\n private renderOptions = (): Element => {\n return (\n <div\n class={{\n \"options grid\": true,\n \"options--hide-access-token\": !this.showAccessToken\n }}\n >\n {/* #path/url label*/}\n <gxg-label class=\"path-url-label\">\n {this._componentLocale.options.path}\n </gxg-label>\n\n <div class=\"path-url-wrapper\">\n {/* #path/url input*/}\n <gxg-form-text\n value={this.path}\n onFileSelected={this.pathOnFileSelected}\n onBlur={this.pathURLFileBlurHandler}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.pathURLFile = el as HTMLGxgFormTextElement)\n }\n clearButton\n part=\"option-path\"\n disabled={this.isLoading}\n type=\"file\"\n acceptFile={this.extensions}\n class=\"path-url\"\n placeholder={this._componentLocale.options.pathPlaceholder}\n onValueChanged={this.pathURLFileValueChangedHandler}\n ></gxg-form-text>\n\n <div class=\"path-url-wrapper__buttons-container\">\n {/* #select file button*/}\n <gxg-button\n id=\"button-select-file\"\n type=\"primary-text-only\"\n onClick={this.selectFile}\n part=\"gxg-button gxg-button--select-file\"\n disabled={this.isLoading}\n class=\"select-file\"\n >\n ...\n </gxg-button>\n\n {/* #load file button*/}\n <gxg-button\n id=\"button-load\"\n type=\"primary-text-only\"\n onClick={this.loadData}\n part=\"gxg-button gxg-button--load\"\n disabled={this.path.length === 0 || this.isLoading}\n class=\"load-file\"\n >\n {this._componentLocale.options.btnLoad}\n </gxg-button>\n </div>\n </div>\n\n {/* #access token*/}\n {this.showAccessToken\n ? [\n <gxg-label class={{ \"access-token-label\": true }}>\n {this._componentLocale.options.accessToken}\n </gxg-label>,\n <gxg-form-text\n class={{ \"access-token\": true }}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.accessTokenEl = el as HTMLGxgFormTextElement)\n }\n part=\"access-token\"\n disabled={this.isLoading}\n ></gxg-form-text>\n ]\n : null}\n\n {/* #style label*/}\n <gxg-label class=\"style-label\">\n {this._componentLocale.options.style}\n </gxg-label>\n\n {/* #style*/}\n <gxg-combo-box\n disabled={!this.styles || this.isLoading}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.optionStyleEl = el as HTMLGxgComboBoxElement)\n }\n part=\"option-style\"\n class=\"style\"\n >\n {renderFormItems(\"gxg-combo-box-item\", this.styles ?? [])}\n </gxg-combo-box>\n\n {/* #module label*/}\n <gxg-label class=\"module-label\">\n {this._componentLocale.options.module}\n </gxg-label>\n\n {/* #module*/}\n <gx-ide-entity-selector\n value={this.defaultModule}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.filterModuleEl = el as HTMLGxIdeEntitySelectorElement)\n }\n class=\"module\"\n ></gx-ide-entity-selector>\n <div class=\"checkboxes-options\">\n {/* # import as web panels*/}\n <gxg-form-checkbox\n label={this._componentLocale.options.importAs}\n class=\"import-as-web-panels\"\n ref={(el: HTMLGxgFormCheckboxElement) =>\n (this.optionImportAsEl = el as HTMLGxgFormCheckboxElement)\n }\n part=\"option-import-as-web-panels\"\n disabled={this.isLoading}\n onChange={this.importAsWebPanelsChangedHandler}\n ></gxg-form-checkbox>\n\n <div\n class={{\n \"checkboxes-options__col-right\": true,\n \"checkboxes-options__col-right--hidden\":\n !this.designDataTreeDataModel.length\n }}\n >\n {/* # fit images*/}\n <gxg-form-checkbox\n label={this._componentLocale.options.fitImages}\n part=\"fit-images-checkbox\"\n disabled={this.isLoading || !this.designDataTreeDataModel.length}\n onChange={this.fitImagesHandler}\n ></gxg-form-checkbox>\n\n {/* # shrink tree*/}\n <gxg-form-checkbox\n label={this._componentLocale.options.toggleTree}\n part=\"shrink-tree-checkbox\"\n disabled={this.isLoading || !this.designDataTreeDataModel.length}\n onChange={this.shrinkTreeHandler}\n ></gxg-form-checkbox>\n </div>\n </div>\n </div>\n );\n };\n\n private renderMessages = (): Element => {\n return this.messages.length > 0 ? (\n <div\n class=\"messages-container\"\n ref={(el: HTMLElement) => (this.messagesList = el as HTMLElement)}\n >\n {this.messages.map(message => (\n <gxg-text type={this.messageType(message)}>\n {message.type}: {message.text}\n </gxg-text>\n ))}\n </div>\n ) : null;\n };\n\n private renderDetailDataTree(designType: string) {\n switch (designType) {\n case DESIGN_DATA_TYPE_PANELS:\n case DESIGN_DATA_TYPE_STENCILS:\n this.detailTreeModel = this.loadTreeItemCompositionModel(\n this.selectedDesignItem.composition.controls\n );\n break;\n }\n }\n\n private renderMain = () => {\n if (this.designData) {\n return (\n /* #main*/\n <main\n class={{ \"main\": true, \"main--shrunken-tree\": this.shrunkenTree }}\n >\n {[this.renderDesignTree(), this.renderDesignTabs()]}\n </main>\n );\n } else if (!this.isLoading) {\n return <main class=\"main\">{this.renderNoDesignData()}</main>;\n } else {\n return this.renderMessages();\n }\n };\n\n private renderNoDesignData = () => {\n if (!this.isLoading) {\n return (\n <gxg-text\n textAlign={config.gxgMessage.common.textAlign as TextAlign}\n padding={config.gxgMessage.common.textAlign as TextPadding}\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n part=\"no-design-selected\"\n >\n {this._componentLocale.messages.noDesignSelected} <br />\n <gxg-text\n type=\"text-link-no-line\"\n onClick={this.selectFile}\n part=\"begin-by-loading-one\"\n >\n {this._componentLocale.messages.selectDesign}\n </gxg-text>\n </gxg-text>\n );\n }\n };\n\n private renderDesignTree = (): HTMLGxgTreeViewElement => {\n return (\n <div class=\"tree-container\">\n <gxg-tree-view\n part=\"data-tree\"\n class=\"design-tree\"\n id=\"data-tree\"\n treeModel={this.designDataTreeDataModel}\n dragDisabled={true}\n dropDisabled={true}\n toggleCheckboxes={true}\n checkbox={true}\n checked={true}\n onCheckedItemsChange={this.objectsTreeCheckedItemsChangedHandler}\n onSelectedItemsChange={this.objectsTreeSelectedItemsChangedHandler}\n ref={el => (this.treeDataEl = el as HTMLGxgTreeViewElement)}\n ></gxg-tree-view>\n </div>\n );\n };\n\n private renderFooter = () => {\n return [\n <gxg-button\n id=\"button-ok\"\n type=\"primary-text-only\"\n onClick={this.confirm}\n part=\"gxg-button gxg-button--ok\"\n disabled={this.isLoading}\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnOk}\n </gxg-button>,\n <gxg-button\n id=\"button-cancel\"\n type=\"outlined\"\n onClick={this.cancel}\n part=\"gxg-button gxg-button--cancel\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnCancel}\n </gxg-button>\n ];\n };\n\n private renderPanelTab = (): Element => {\n const renderControlsTree =\n (this.selectedDesignType === DESIGN_DATA_TYPE_PANELS ||\n this.selectedDesignType === DESIGN_DATA_TYPE_STENCILS) &&\n this.detailTreeModel.length > 0;\n\n return (\n <div\n class={{\n \"panel-tab\": true,\n \"panel-tab--controls-tree\": renderControlsTree\n }}\n part=\"data-panel-composition-container\"\n >\n {this.selectedDesignItem &&\n this.selectedDesignItem.composition &&\n this.selectedDesignItem.composition.preview ? (\n <div part=\"data-panel-composition-preview\" class=\"panel-item\">\n <img\n src={\n this.selectedDesignItem && this.selectedDesignItem.composition\n ? this.selectedDesignItem.composition.preview\n : undefined\n }\n alt=\"Preview\"\n />\n </div>\n ) : null}\n\n {renderControlsTree ? (\n <gxg-tree-view\n part=\"data-panel-composition-tree\"\n class=\"panel-item\"\n id=\"gxg-tree-panel-data\"\n treeModel={this.detailTreeModel}\n dragDisabled={true}\n dropDisabled={true}\n ></gxg-tree-view>\n ) : null}\n </div>\n );\n };\n\n private renderImageTab = () => {\n return (\n <div part=\"data-panel-composition-preview\" class=\"data-preview\">\n <img\n src={this.selectedDesignItem ? this.selectedDesignItem : undefined}\n alt=\"Preview\"\n />\n </div>\n );\n };\n\n private tabActivatedHandler = (tabActivated: CustomEvent<any>) => {\n if (tabActivated.detail) {\n const tab = tabActivated.detail.tab;\n this.activeTabs = { ...this.activeTabs, [this.selectedDesignType]: tab };\n }\n };\n\n private isTabActive = (tab: string): boolean => {\n const activeTab = this.selectedDesignType;\n this.activeTabs[activeTab as keyof DesignObjectType];\n if (this.activeTabs[activeTab as keyof DesignObjectType] === tab) {\n return true;\n } else {\n return false;\n }\n };\n\n private renderDesignTabs = (): Element => {\n return (\n <gxg-tabs\n class={{\n \"design-tabs\": true,\n \"design-tabs--fit-images\": this.fitImages\n }}\n part=\"data-tabs\"\n no-border\n noPadding\n buttonsBorderAbove\n >\n <gxg-tab-bar slot=\"tab-bar-container\">\n {/* tokens*/}\n <gxg-tab-button\n hidden={\n !this.selectedDesignType ||\n this.selectedDesignType !== DESIGN_DATA_TYPE_DESIGN_SYSTEM\n }\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.tokens}\n tab=\"tokens\"\n key=\"tokens\"\n onTabActivated={this.tabActivatedHandler}\n isSelected={this.isTabActive(\"tokens\")}\n ></gxg-tab-button>\n\n {/* styles*/}\n <gxg-tab-button\n hidden={\n !this.selectedDesignType ||\n this.selectedDesignType !== DESIGN_DATA_TYPE_DESIGN_SYSTEM\n }\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.styles}\n tab=\"styles\"\n key=\"styles\"\n onTabActivated={this.tabActivatedHandler}\n isSelected={this.isTabActive(\"styles\")}\n ></gxg-tab-button>\n\n {/* composition*/}\n <gxg-tab-button\n hidden={\n !this.selectedDesignType ||\n this.selectedDesignType === DESIGN_DATA_TYPE_DESIGN_SYSTEM\n }\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.composition}\n tab=\"composition\"\n key=\"composition\"\n onTabActivated={this.tabActivatedHandler}\n isSelected={this.isTabActive(\"composition\")}\n ></gxg-tab-button>\n\n {/* layout*/}\n <gxg-tab-button\n hidden={\n !this.selectedDesignType ||\n (this.selectedDesignType !== DESIGN_DATA_TYPE_PANELS &&\n this.selectedDesignType !== DESIGN_DATA_TYPE_STENCILS)\n }\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.layout}\n tab=\"layout\"\n key=\"layout\"\n onTabActivated={this.tabActivatedHandler}\n isSelected={this.isTabActive(\"layout\")}\n ></gxg-tab-button>\n\n {/* code*/}\n <gxg-tab-button\n hidden={\n !this.selectedDesignType ||\n (this.selectedDesignType !== DESIGN_DATA_TYPE_PANELS &&\n this.selectedDesignType !== DESIGN_DATA_TYPE_STENCILS)\n }\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.code}\n tab=\"code\"\n key=\"code\"\n onTabActivated={this.tabActivatedHandler}\n isSelected={this.isTabActive(\"code\")}\n ></gxg-tab-button>\n </gxg-tab-bar>\n\n {/* tokens */}\n <gxg-tab\n tab=\"tokens\"\n key=\"tokens\"\n isSelected={this.isTabActive(\"tokens\")}\n >\n <div\n ref={(el: HTMLElement) =>\n (this.tokensFactoryRenderEl = el as HTMLElement)\n }\n ></div>\n </gxg-tab>\n\n {/* styles */}\n <gxg-tab\n tab=\"styles\"\n key=\"styles\"\n isSelected={this.isTabActive(\"styles\")}\n >\n <div\n ref={(el: HTMLElement) =>\n (this.stylesFactoryRenderEl = el as HTMLElement)\n }\n ></div>\n </gxg-tab>\n\n {/* composition */}\n <gxg-tab\n tab=\"composition\"\n key=\"composition\"\n isSelected={this.isTabActive(\"composition\")}\n >\n {this.selectedDesignType === DESIGN_DATA_TYPE_IMAGES ||\n this.selectedDesignType === DESIGN_DATA_TYPE_FONTS\n ? this.renderImageTab()\n : this.renderPanelTab()}\n </gxg-tab>\n\n {/* layout */}\n <gxg-tab\n tab=\"layout\"\n key=\"layout\"\n isSelected={this.isTabActive(\"layout\")}\n >\n <div\n ref={(el: HTMLElement) =>\n (this.layoutFactoryRenderEl = el as HTMLElement)\n }\n ></div>\n </gxg-tab>\n\n {/* code */}\n <gxg-tab tab=\"code\" key=\"code\" isSelected={this.isTabActive(\"code\")}>\n <div\n ref={(el: HTMLElement) =>\n (this.codeFactoryRenderEl = el as HTMLElement)\n }\n ></div>\n </gxg-tab>\n </gxg-tabs>\n );\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noContentGap\n displayBorderBottom\n part=\"options-container\"\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n {this.renderOptions()}\n {this.renderMain()}\n {this.renderFooter()}\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type LoadMessageCallback = (message: MessageData) => void;\nexport type LoadCallback = (\n source: string | File,\n token: string | undefined,\n onMessage: LoadMessageCallback\n) => Promise<DesignData | undefined>;\nexport type LoadPanelDataCallback = (id: string) => Promise<DesignPanelData>;\nexport type LoadImageCallback = (id: string) => Promise<string>;\nexport type LoadFontCallback = (id: string) => Promise<string>;\nexport type LoadDesignSystemCallback = (\n id: string\n) => Promise<DesignSystemData>;\nexport type TextEditorFactoryCallback = (\n type: TextEditorType,\n parent: HTMLElement,\n text: string\n) => Promise<void>;\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type RequiresAccessTokenCallback = (source: string) => Promise<boolean>;\nexport type ConfirmCallback = (data: DesignImportData) => Promise<boolean>;\nexport type CancelCallback = () => Promise<void>;\n\nexport interface MessageData {\n type: \"error\" | \"warning\" | \"info\";\n text: string;\n}\n\nexport interface DesignData {\n panels: DesignItemData[];\n stencils: DesignItemData[];\n images: DesignItemData[];\n designSystem: DesignItemData[];\n fonts: DesignItemData[];\n}\n\nexport interface DesignItemData {\n id: string;\n name: string;\n}\n\nexport interface DesignPanelData {\n composition: DesignPanelCompositionData;\n code?: string;\n}\n\nexport interface DesignPanelCompositionData {\n preview?: string;\n controls: DesignPanelControlData[];\n}\n\nexport interface DesignPanelControlData {\n name: string;\n type: string;\n leaf?: boolean;\n controls: DesignPanelControlData[];\n}\n\nexport interface DesignSystemData {\n tokens: string;\n styles: string;\n}\n\ntype DesignItemDataDetail = DesignPanelData | DesignSystemData | string;\n\nexport interface DesignImportData {\n panels: string[];\n stencils: string[];\n fonts: string[];\n moduleId: string;\n /* images: string[]; */\n styleName: string;\n importAsWebPanels: boolean;\n}\n\nexport type DesignType =\n | typeof DESIGN_DATA_TYPE_PANELS\n | typeof DESIGN_DATA_TYPE_STENCILS\n | typeof DESIGN_DATA_TYPE_IMAGES\n | typeof DESIGN_DATA_TYPE_DESIGN_SYSTEM\n | typeof DESIGN_DATA_TYPE_FONTS;\n\nexport type DesignObjectType = {\n [Key in DesignType]: string;\n};\n\nexport type ItemLoadedInfo = {\n designType: DesignType;\n designDataDetail: DesignItemDataDetail;\n};\n\ntype TextEditorType = \"html\" | \"styles\" | \"tokens\";\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"componentName": "Import
|
|
2
|
+
"componentName": "Design Import",
|
|
3
3
|
"options": {
|
|
4
4
|
"path": "Path/URL/File",
|
|
5
5
|
"pathPlaceholder": "Set the path or select a file (.fig or .sketch)",
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
},
|
|
21
21
|
"tabs": {
|
|
22
22
|
"composition": "Composition",
|
|
23
|
+
"layout": "Layout",
|
|
23
24
|
"code": "Code",
|
|
24
25
|
"fonts": "Fonts",
|
|
25
26
|
"tokens": "Tokens",
|