@genexus/genexus-ide-ui 1.0.34 → 1.0.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/cjs/MERCURY_ASSETS-b23e31e2.js +9 -0
  2. package/dist/cjs/MERCURY_ASSETS-b23e31e2.js.map +1 -0
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +1 -1
  5. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js +8 -8
  6. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js.map +1 -1
  7. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +1 -1
  8. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +1 -1
  9. package/dist/cjs/gx-ide-design-import.cjs.entry.js +48 -35
  10. package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
  11. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +1 -1
  12. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +1 -1
  13. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
  14. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +1 -1
  15. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +1 -1
  16. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  17. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
  18. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
  19. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js +8 -7
  20. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js.map +1 -1
  21. package/dist/cjs/gx-ide-start-page.cjs.entry.js +1 -1
  22. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +15 -10
  23. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js.map +1 -1
  24. package/dist/cjs/loader.cjs.js +1 -1
  25. package/dist/collection/components/current-user-info/current-user-info.css +7 -5
  26. package/dist/collection/components/current-user-info/current-user-info.js +6 -6
  27. package/dist/collection/components/current-user-info/current-user-info.js.map +1 -1
  28. package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.en.json +1 -1
  29. package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.ja.json +1 -1
  30. package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.zh.json +1 -1
  31. package/dist/collection/components/design-import/design-import.css +8 -0
  32. package/dist/collection/components/design-import/design-import.js +46 -33
  33. package/dist/collection/components/design-import/design-import.js.map +1 -1
  34. package/dist/collection/components/design-import/gx-ide-assets/design-import/langs/design-import.lang.en.json +2 -1
  35. package/dist/collection/components/design-import/gx-ide-assets/design-import/langs/design-import.lang.ja.json +2 -1
  36. package/dist/collection/components/design-import/gx-ide-assets/design-import/langs/design-import.lang.zh.json +2 -1
  37. package/dist/collection/components/sign-in-team/sign-in-team.js +9 -6
  38. package/dist/collection/components/sign-in-team/sign-in-team.js.map +1 -1
  39. package/dist/collection/components/welcome-page/welcome-page.css +1 -1
  40. package/dist/collection/components/welcome-page/welcome-page.js +13 -8
  41. package/dist/collection/components/welcome-page/welcome-page.js.map +1 -1
  42. package/dist/components/MERCURY_ASSETS.js +1 -1
  43. package/dist/components/MERCURY_ASSETS.js.map +1 -1
  44. package/dist/components/gx-ide-current-user-info.js +7 -7
  45. package/dist/components/gx-ide-current-user-info.js.map +1 -1
  46. package/dist/components/gx-ide-design-import.js +47 -34
  47. package/dist/components/gx-ide-design-import.js.map +1 -1
  48. package/dist/components/gx-ide-sign-in-team.js +10 -8
  49. package/dist/components/gx-ide-sign-in-team.js.map +1 -1
  50. package/dist/components/gx-ide-welcome-page.js +14 -9
  51. package/dist/components/gx-ide-welcome-page.js.map +1 -1
  52. package/dist/esm/MERCURY_ASSETS-7a7c1795.js +7 -0
  53. package/dist/esm/MERCURY_ASSETS-7a7c1795.js.map +1 -0
  54. package/dist/esm/genexus-ide-ui.js +1 -1
  55. package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
  56. package/dist/esm/gx-ide-current-user-info.entry.js +8 -8
  57. package/dist/esm/gx-ide-current-user-info.entry.js.map +1 -1
  58. package/dist/esm/gx-ide-dashboard-home.entry.js +1 -1
  59. package/dist/esm/gx-ide-data-selector.entry.js +1 -1
  60. package/dist/esm/gx-ide-design-import.entry.js +48 -35
  61. package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
  62. package/dist/esm/gx-ide-entity-selector.entry.js +1 -1
  63. package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
  64. package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
  65. package/dist/esm/gx-ide-manage-module-references-v2.entry.js +1 -1
  66. package/dist/esm/gx-ide-manage-module-references.entry.js +1 -1
  67. package/dist/esm/gx-ide-new-kb.entry.js +1 -1
  68. package/dist/esm/gx-ide-object-selector.entry.js +1 -1
  69. package/dist/esm/gx-ide-share-kb.entry.js +1 -1
  70. package/dist/esm/gx-ide-sign-in-team.entry.js +8 -7
  71. package/dist/esm/gx-ide-sign-in-team.entry.js.map +1 -1
  72. package/dist/esm/gx-ide-start-page.entry.js +1 -1
  73. package/dist/esm/gx-ide-welcome-page.entry.js +15 -10
  74. package/dist/esm/gx-ide-welcome-page.entry.js.map +1 -1
  75. package/dist/esm/loader.js +1 -1
  76. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  77. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  78. package/dist/genexus-ide-ui/gx-ide-assets/current-user-info/langs/current-user-info.lang.en.json +1 -1
  79. package/dist/genexus-ide-ui/gx-ide-assets/current-user-info/langs/current-user-info.lang.ja.json +1 -1
  80. package/dist/genexus-ide-ui/gx-ide-assets/current-user-info/langs/current-user-info.lang.zh.json +1 -1
  81. package/dist/genexus-ide-ui/gx-ide-assets/design-import/langs/design-import.lang.en.json +2 -1
  82. package/dist/genexus-ide-ui/gx-ide-assets/design-import/langs/design-import.lang.ja.json +2 -1
  83. package/dist/genexus-ide-ui/gx-ide-assets/design-import/langs/design-import.lang.zh.json +2 -1
  84. package/dist/genexus-ide-ui/{p-70a8edd9.entry.js → p-05775d0c.entry.js} +2 -2
  85. package/dist/genexus-ide-ui/{p-fe063c9e.entry.js → p-0b33d2f9.entry.js} +42 -41
  86. package/dist/genexus-ide-ui/p-0b33d2f9.entry.js.map +1 -0
  87. package/dist/genexus-ide-ui/{p-ecd748ba.entry.js → p-0f196406.entry.js} +2 -2
  88. package/dist/genexus-ide-ui/{p-a1e8b380.entry.js → p-32bd11fa.entry.js} +247 -234
  89. package/dist/genexus-ide-ui/p-32bd11fa.entry.js.map +1 -0
  90. package/dist/genexus-ide-ui/{p-390498e4.entry.js → p-764540b3.entry.js} +2 -2
  91. package/dist/genexus-ide-ui/{p-33a1c48f.entry.js → p-7ba9fb6d.entry.js} +2 -2
  92. package/dist/genexus-ide-ui/{p-b42dfccc.entry.js → p-7cde7e4f.entry.js} +26 -23
  93. package/dist/genexus-ide-ui/p-7cde7e4f.entry.js.map +1 -0
  94. package/dist/genexus-ide-ui/{p-6f3f4f54.entry.js → p-88e16a83.entry.js} +2 -2
  95. package/dist/genexus-ide-ui/{p-e774109a.entry.js → p-993819d4.entry.js} +2 -2
  96. package/dist/genexus-ide-ui/{p-ad521974.entry.js → p-a8e43d8e.entry.js} +2 -2
  97. package/dist/genexus-ide-ui/{p-7d4c5a43.js → p-b81d21d5.js} +8050 -966
  98. package/dist/genexus-ide-ui/p-b81d21d5.js.map +1 -0
  99. package/dist/genexus-ide-ui/{p-a0724750.entry.js → p-bd5316a2.entry.js} +11 -11
  100. package/dist/genexus-ide-ui/{p-fa69428e.entry.js → p-bf1682ff.entry.js} +20 -20
  101. package/dist/genexus-ide-ui/{p-31511545.entry.js → p-cadec045.entry.js} +2 -2
  102. package/dist/genexus-ide-ui/{p-edd6ebef.entry.js → p-dd890eed.entry.js} +15 -15
  103. package/dist/genexus-ide-ui/p-dd890eed.entry.js.map +1 -0
  104. package/dist/genexus-ide-ui/{p-cc0fbef2.entry.js → p-de6112f9.entry.js} +2 -2
  105. package/dist/genexus-ide-ui/{p-be0c10de.entry.js → p-f36f9a6d.entry.js} +2 -2
  106. package/dist/types/components/sign-in-team/sign-in-team.d.ts +1 -0
  107. package/package.json +3 -3
  108. package/dist/cjs/MERCURY_ASSETS-56ba4d5e.js +0 -9
  109. package/dist/cjs/MERCURY_ASSETS-56ba4d5e.js.map +0 -1
  110. package/dist/esm/MERCURY_ASSETS-827056e0.js +0 -7
  111. package/dist/esm/MERCURY_ASSETS-827056e0.js.map +0 -1
  112. package/dist/genexus-ide-ui/p-7d4c5a43.js.map +0 -1
  113. package/dist/genexus-ide-ui/p-a1e8b380.entry.js.map +0 -1
  114. package/dist/genexus-ide-ui/p-b42dfccc.entry.js.map +0 -1
  115. package/dist/genexus-ide-ui/p-edd6ebef.entry.js.map +0 -1
  116. package/dist/genexus-ide-ui/p-fe063c9e.entry.js.map +0 -1
  117. /package/dist/genexus-ide-ui/{p-70a8edd9.entry.js.map → p-05775d0c.entry.js.map} +0 -0
  118. /package/dist/genexus-ide-ui/{p-ecd748ba.entry.js.map → p-0f196406.entry.js.map} +0 -0
  119. /package/dist/genexus-ide-ui/{p-390498e4.entry.js.map → p-764540b3.entry.js.map} +0 -0
  120. /package/dist/genexus-ide-ui/{p-33a1c48f.entry.js.map → p-7ba9fb6d.entry.js.map} +0 -0
  121. /package/dist/genexus-ide-ui/{p-6f3f4f54.entry.js.map → p-88e16a83.entry.js.map} +0 -0
  122. /package/dist/genexus-ide-ui/{p-e774109a.entry.js.map → p-993819d4.entry.js.map} +0 -0
  123. /package/dist/genexus-ide-ui/{p-ad521974.entry.js.map → p-a8e43d8e.entry.js.map} +0 -0
  124. /package/dist/genexus-ide-ui/{p-a0724750.entry.js.map → p-bd5316a2.entry.js.map} +0 -0
  125. /package/dist/genexus-ide-ui/{p-fa69428e.entry.js.map → p-bf1682ff.entry.js.map} +0 -0
  126. /package/dist/genexus-ide-ui/{p-31511545.entry.js.map → p-cadec045.entry.js.map} +0 -0
  127. /package/dist/genexus-ide-ui/{p-cc0fbef2.entry.js.map → p-de6112f9.entry.js.map} +0 -0
  128. /package/dist/genexus-ide-ui/{p-be0c10de.entry.js.map → p-f36f9a6d.entry.js.map} +0 -0
@@ -3,7 +3,7 @@
3
3
  "changeTeamLabel": "",
4
4
  "languageLabel": "",
5
5
  "modeLabel": "",
6
- "logOutLabel": "",
6
+ "signOutLabel": "",
7
7
  "privacyAndTerms": "",
8
8
  "labelModeDark": "",
9
9
  "labelModeLight": ""
@@ -3,7 +3,7 @@
3
3
  "changeTeamLabel": "",
4
4
  "languageLabel": "",
5
5
  "modeLabel": "",
6
- "logOutLabel": "",
6
+ "signOutLabel": "",
7
7
  "privacyAndTerms": "",
8
8
  "labelModeDark": "",
9
9
  "labelModeLight": ""
@@ -99,6 +99,10 @@ Found on /common/helpers.tsx hiChar function is used to add a span/class to ever
99
99
  overflow: auto;
100
100
  }
101
101
 
102
+ .panel-tab:has(> :only-child) {
103
+ grid-template-columns: 1fr;
104
+ }
105
+
102
106
  .tree-view {
103
107
  padding-block: var(--mer-spacing--2xs);
104
108
  }
@@ -182,4 +186,8 @@ Found on /common/helpers.tsx hiChar function is used to add a span/class to ever
182
186
  --control__border-color: var(--control__border-color--disabled);
183
187
  --control__color: var(--control__color--disabled);
184
188
  --ch-placeholder-color: var(--control-placeholder__color--disabled);
189
+ }
190
+
191
+ .tree-view::part(item__header) {
192
+ min-inline-size: var(--tree-view__min-inline-size);
185
193
  }
@@ -14,7 +14,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
14
14
  throw new TypeError("Cannot write private member to an object whose class did not declare it");
15
15
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
16
16
  };
17
- var _GxIdeImportFromDesign_instances, _GxIdeImportFromDesign_componentLocale, _GxIdeImportFromDesign_loadedItems, _GxIdeImportFromDesign_emptyStateAnimated, _GxIdeImportFromDesign_formattedExtensions, _GxIdeImportFromDesign_accessTokenEl, _GxIdeImportFromDesign_importAsWebPanelsEl, _GxIdeImportFromDesign_moduleEl, _GxIdeImportFromDesign_messagesList, _GxIdeImportFromDesign_panelsSelected, _GxIdeImportFromDesign_stencilsSelected, _GxIdeImportFromDesign_imagesSelected, _GxIdeImportFromDesign_fontsSelected, _GxIdeImportFromDesign_fileInputHiddenEl, _GxIdeImportFromDesign_pathEl, _GxIdeImportFromDesign_initializeActiveTabs, _GxIdeImportFromDesign_evaluateAccessTokenRender, _GxIdeImportFromDesign_pathURLBlurHandler, _GxIdeImportFromDesign_loadTreeItemCompositionModel, _GxIdeImportFromDesign_objectsTreeSelectedItemsChangedHandler, _GxIdeImportFromDesign_getLoadedItem, _GxIdeImportFromDesign_validatePath, _GxIdeImportFromDesign_objectsTreeCheckedItemsChangedHandler, _GxIdeImportFromDesign_selectFileHandler, _GxIdeImportFromDesign_styleComboBoxInputHandler, _GxIdeImportFromDesign_moduleInputHandler, _GxIdeImportFromDesign_loadData, _GxIdeImportFromDesign_messageCallback, _GxIdeImportFromDesign_getDesignDataDetail, _GxIdeImportFromDesign_getCodeFactory, _GxIdeImportFromDesign_confirm, _GxIdeImportFromDesign_cancel, _GxIdeImportFromDesign_fitImagesHandler, _GxIdeImportFromDesign_getPanelsSelectedItem, _GxIdeImportFromDesign_importAsWebPanelsChangedHandler, _GxIdeImportFromDesign_removeFileSelection, _GxIdeImportFromDesign_selectFileInputChangedHandler, _GxIdeImportFromDesign_accessFocusHandler, _GxIdeImportFromDesign_accessBlurHandler, _GxIdeImportFromDesign_pathUrlInputHandler, _GxIdeImportFromDesign_renderHeader, _GxIdeImportFromDesign_renderMessages, _GxIdeImportFromDesign_renderDetailDataTree, _GxIdeImportFromDesign_renderMain, _GxIdeImportFromDesign_renderDesignTree, _GxIdeImportFromDesign_renderFooter, _GxIdeImportFromDesign_renderPanelTab, _GxIdeImportFromDesign_renderImageTab, _GxIdeImportFromDesign_tabSelectionChangedHandler, _GxIdeImportFromDesign_renderDesignTabsCh;
17
+ var _GxIdeImportFromDesign_instances, _GxIdeImportFromDesign_componentLocale, _GxIdeImportFromDesign_loadedItems, _GxIdeImportFromDesign_emptyStateAnimated, _GxIdeImportFromDesign_formattedExtensions, _GxIdeImportFromDesign_accessTokenEl, _GxIdeImportFromDesign_importAsWebPanelsEl, _GxIdeImportFromDesign_moduleEl, _GxIdeImportFromDesign_messagesList, _GxIdeImportFromDesign_panelsSelected, _GxIdeImportFromDesign_stencilsSelected, _GxIdeImportFromDesign_imagesSelected, _GxIdeImportFromDesign_fontsSelected, _GxIdeImportFromDesign_fileInputHiddenEl, _GxIdeImportFromDesign_pathEl, _GxIdeImportFromDesign_recursiveDesignTreeItems, _GxIdeImportFromDesign_initializeActiveTabs, _GxIdeImportFromDesign_evaluateAccessTokenRender, _GxIdeImportFromDesign_pathURLBlurHandler, _GxIdeImportFromDesign_loadTreeItemCompositionModel, _GxIdeImportFromDesign_objectsTreeSelectedItemsChangedHandler, _GxIdeImportFromDesign_getLoadedItem, _GxIdeImportFromDesign_validatePath, _GxIdeImportFromDesign_objectsTreeCheckedItemsChangedHandler, _GxIdeImportFromDesign_selectFileHandler, _GxIdeImportFromDesign_styleComboBoxInputHandler, _GxIdeImportFromDesign_moduleInputHandler, _GxIdeImportFromDesign_loadData, _GxIdeImportFromDesign_messageCallback, _GxIdeImportFromDesign_getDesignDataDetail, _GxIdeImportFromDesign_getCodeFactory, _GxIdeImportFromDesign_confirm, _GxIdeImportFromDesign_cancel, _GxIdeImportFromDesign_fitImagesHandler, _GxIdeImportFromDesign_getPanelsSelectedItem, _GxIdeImportFromDesign_importAsWebPanelsChangedHandler, _GxIdeImportFromDesign_removeFileSelection, _GxIdeImportFromDesign_selectFileInputChangedHandler, _GxIdeImportFromDesign_accessFocusHandler, _GxIdeImportFromDesign_accessBlurHandler, _GxIdeImportFromDesign_pathUrlInputHandler, _GxIdeImportFromDesign_renderHeader, _GxIdeImportFromDesign_renderMessages, _GxIdeImportFromDesign_renderDetailDataTree, _GxIdeImportFromDesign_renderMain, _GxIdeImportFromDesign_renderDesignTree, _GxIdeImportFromDesign_renderFooter, _GxIdeImportFromDesign_evaluatePanelPreview, _GxIdeImportFromDesign_renderPanelTab, _GxIdeImportFromDesign_renderImageTab, _GxIdeImportFromDesign_tabSelectionChangedHandler, _GxIdeImportFromDesign_renderDesignTabsCh;
18
18
  // Stencil
19
19
  import { Host, h } from "@stencil/core";
20
20
  import { getIconPath } from "@genexus/mercury";
@@ -45,6 +45,15 @@ const FILE_UPLOAD = getIconPath({
45
45
  category: "controls",
46
46
  name: "file-upload"
47
47
  });
48
+ // For empty states
49
+ const WEBPANEL_ICON = getIconPath({
50
+ category: "objects",
51
+ name: "webpanel"
52
+ });
53
+ const PANEL_FOR_SD_ICON = getIconPath({
54
+ category: "objects",
55
+ name: "panel-for-sd"
56
+ });
48
57
  const CSS_BUNDLES = [
49
58
  "resets/box-sizing",
50
59
  "utils/form",
@@ -90,7 +99,6 @@ export class GxIdeImportFromDesign {
90
99
  _GxIdeImportFromDesign_fontsSelected.set(this, []);
91
100
  _GxIdeImportFromDesign_fileInputHiddenEl.set(this, void 0);
92
101
  _GxIdeImportFromDesign_pathEl.set(this, void 0);
93
- // 9.LOCAL METHODS //
94
102
  _GxIdeImportFromDesign_initializeActiveTabs.set(this, () => {
95
103
  this.activeTabs.set("panels", TAB_MODEL.panels[0].id);
96
104
  this.activeTabs.set("stencils", TAB_MODEL.stencils[0].id);
@@ -333,7 +341,6 @@ export class GxIdeImportFromDesign {
333
341
  this.designData = null;
334
342
  }
335
343
  });
336
- // 9.LOCAL METHODS -> RENDERS //
337
344
  _GxIdeImportFromDesign_renderHeader.set(this, () => {
338
345
  const primaryButtonDisabled = this.isLoading ||
339
346
  (this.pathIsValid &&
@@ -344,6 +351,10 @@ export class GxIdeImportFromDesign {
344
351
  const moduleDisabled = this.isLoading;
345
352
  const pathWithErrorStyles = !this.pathIsValid && this.path.length > 0;
346
353
  const displayPathErrorTooltip = !this.pathIsValid && this.path.length > 0;
354
+ const fitImagesIsDisabled = this.isLoading ||
355
+ !this.designDataTreeDataModel.length ||
356
+ this.selectedDesignType === "stencils" ||
357
+ this.selectedDesignType === "design_system";
347
358
  let primaryButtonCaption;
348
359
  if (this.pathIsValid &&
349
360
  this.path === this.lastLoadCallbackSettingValues.path) {
@@ -412,7 +423,7 @@ export class GxIdeImportFromDesign {
412
423
  "checkboxes-options__col-right": true
413
424
  } }, h("ch-checkbox", {
414
425
  // fit images
415
- caption: __classPrivateFieldGet(this, _GxIdeImportFromDesign_componentLocale, "f").header.fitImages, checkedValue: CHECKED_VALUE, class: "checkbox", part: "fit-images-checkbox", disabled: this.isLoading || !this.designDataTreeDataModel.length, onInput: __classPrivateFieldGet(this, _GxIdeImportFromDesign_fitImagesHandler, "f")
426
+ caption: __classPrivateFieldGet(this, _GxIdeImportFromDesign_componentLocale, "f").header.fitImages, checkedValue: CHECKED_VALUE, class: "checkbox", part: "fit-images-checkbox", disabled: fitImagesIsDisabled, onInput: __classPrivateFieldGet(this, _GxIdeImportFromDesign_fitImagesHandler, "f")
416
427
  })))));
417
428
  });
418
429
  _GxIdeImportFromDesign_renderMessages.set(this, () => {
@@ -441,7 +452,7 @@ export class GxIdeImportFromDesign {
441
452
  }
442
453
  });
443
454
  _GxIdeImportFromDesign_renderDesignTree.set(this, () => {
444
- return (h("ch-tree-view-render", { part: "data-tree", class: "tree-view", id: "data-tree", showLines: "last", model: this.designDataTreeDataModel, dragDisabled: true, dropDisabled: true, expandOnClick: false, toggleCheckboxes: true, checkbox: true, checked: true, onCheckedItemsChange: __classPrivateFieldGet(this, _GxIdeImportFromDesign_objectsTreeCheckedItemsChangedHandler, "f"), onSelectedItemsChange: __classPrivateFieldGet(this, _GxIdeImportFromDesign_objectsTreeSelectedItemsChangedHandler, "f") }));
455
+ return (h("ch-tree-view-render", { part: "data-tree", class: "tree-view", id: "data-tree", showLines: "last", model: this.designDataTreeDataModel, dragDisabled: true, dropDisabled: true, expandableButton: "action", expandOnClick: false, toggleCheckboxes: true, checkbox: true, checked: true, onCheckedItemsChange: __classPrivateFieldGet(this, _GxIdeImportFromDesign_objectsTreeCheckedItemsChangedHandler, "f"), onSelectedItemsChange: __classPrivateFieldGet(this, _GxIdeImportFromDesign_objectsTreeSelectedItemsChangedHandler, "f") }));
445
456
  });
446
457
  _GxIdeImportFromDesign_renderFooter.set(this, () => {
447
458
  var _a;
@@ -454,15 +465,23 @@ export class GxIdeImportFromDesign {
454
465
  id: "button-ok", class: "button-primary button-ok", type: "primary-text-only", onClick: !buttonOkDisabled && __classPrivateFieldGet(this, _GxIdeImportFromDesign_confirm, "f"), part: "button button--ok", disabled: buttonOkDisabled, slot: "footer-end"
455
466
  }, __classPrivateFieldGet(this, _GxIdeImportFromDesign_componentLocale, "f").footer.btnOk))));
456
467
  });
457
- _GxIdeImportFromDesign_renderPanelTab.set(this, () => {
468
+ _GxIdeImportFromDesign_evaluatePanelPreview.set(this, () => {
458
469
  var _a, _b;
470
+ if (this.selectedDesignType === "panels") {
471
+ return ((_b = (_a = this.selectedDesignItem) === null || _a === void 0 ? void 0 : _a.composition) === null || _b === void 0 ? void 0 : _b.preview) ? (h("div", { part: "data-panel-composition-preview", class: "panel-item scrollable" }, h("img", { src: this.selectedDesignItem.composition.preview, alt: "Preview" }))) : (h("gx-ide-empty-state", { class: "panel-tab__empty-state", stateTitle: __classPrivateFieldGet(this, _GxIdeImportFromDesign_componentLocale, "f").messages.noPanelPreviewAvailable, stateIconSrc: __classPrivateFieldGet(this, _GxIdeImportFromDesign_importAsWebPanelsEl, "f").value === CHECKED_VALUE
472
+ ? WEBPANEL_ICON
473
+ : PANEL_FOR_SD_ICON }));
474
+ }
475
+ return null;
476
+ });
477
+ _GxIdeImportFromDesign_renderPanelTab.set(this, () => {
459
478
  const renderControlsTree = (this.selectedDesignType === DESIGN_DATA_TYPE_PANELS ||
460
479
  this.selectedDesignType === DESIGN_DATA_TYPE_STENCILS) &&
461
480
  this.detailTreeModel.length > 0;
462
481
  return (h("div", { class: {
463
482
  "panel-tab": true,
464
483
  "panel-tab--controls-tree": renderControlsTree
465
- }, part: "data-panel-composition-container" }, ((_b = (_a = this.selectedDesignItem) === null || _a === void 0 ? void 0 : _a.composition) === null || _b === void 0 ? void 0 : _b.preview) ? (h("div", { part: "data-panel-composition-preview", class: "panel-item scrollable" }, h("img", { src: this.selectedDesignItem.composition.preview, alt: "Preview" }))) : null, renderControlsTree ? (h("ch-tree-view-render", { part: "data-panel-composition-tree", class: "tree-view tree-view-panel-item scrollable", showLines: "last", model: this.detailTreeModel, dragDisabled: true, dropDisabled: true })) : null));
484
+ }, part: "data-panel-composition-container" }, __classPrivateFieldGet(this, _GxIdeImportFromDesign_evaluatePanelPreview, "f").call(this), renderControlsTree ? (h("ch-tree-view-render", { part: "data-panel-composition-tree", class: "tree-view tree-view-panel-item scrollable", showLines: "last", model: this.detailTreeModel, dragDisabled: true, dropDisabled: true })) : null));
466
485
  });
467
486
  _GxIdeImportFromDesign_renderImageTab.set(this, () => {
468
487
  return (h("div", { part: "data-panel-composition-preview", class: "data-preview", style: { height: "100%" } }, h("img", { src: this.selectedDesignItem ? this.selectedDesignItem : undefined, alt: "Preview", class: this.selectedDesignType === DESIGN_DATA_TYPE_IMAGES
@@ -574,28 +593,7 @@ export class GxIdeImportFromDesign {
574
593
  checkbox: true,
575
594
  checked: true,
576
595
  expanded: true,
577
- items: this.designData.panels.map((item, i) => {
578
- var _a;
579
- return ({
580
- id: `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_PANELS}`,
581
- class: "object tree-view-item",
582
- leaf: !item.variants,
583
- caption: item.name,
584
- startImgSrc: iconSrc,
585
- checkbox: true,
586
- checked: true,
587
- expanded: true,
588
- selected: i === panelsSelectedItem,
589
- items: (_a = item.variants) === null || _a === void 0 ? void 0 : _a.map(variant => ({
590
- id: `${variant.id}${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_PANELS}`,
591
- caption: variant.name,
592
- startImgSrc: iconSrc,
593
- leaf: true,
594
- checkbox: true,
595
- checked: true
596
- }))
597
- });
598
- })
596
+ items: __classPrivateFieldGet(this, _GxIdeImportFromDesign_instances, "m", _GxIdeImportFromDesign_recursiveDesignTreeItems).call(this, this.designData.panels, DESIGN_DATA_TYPE_PANELS, iconSrc, panelsSelectedItem)
599
597
  },
600
598
  {
601
599
  order: 1,
@@ -619,7 +617,6 @@ export class GxIdeImportFromDesign {
619
617
  {
620
618
  order: 2,
621
619
  id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_IMAGES}`,
622
- parts: "category tree-view-item",
623
620
  leaf: false,
624
621
  caption: __classPrivateFieldGet(this, _GxIdeImportFromDesign_componentLocale, "f").tree.images,
625
622
  startImgSrc: "objects/image",
@@ -628,7 +625,6 @@ export class GxIdeImportFromDesign {
628
625
  expanded: true,
629
626
  items: this.designData.images.map(item => ({
630
627
  id: `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_IMAGES}`,
631
- class: "object tree-view-item",
632
628
  leaf: true,
633
629
  caption: item.name,
634
630
  startImgSrc: "objects/image",
@@ -647,7 +643,6 @@ export class GxIdeImportFromDesign {
647
643
  expanded: true,
648
644
  items: this.designData.fonts.map(item => ({
649
645
  id: `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_FONTS}`,
650
- class: "object tree-view-item",
651
646
  leaf: true,
652
647
  caption: item.name,
653
648
  startImgSrc: "controls/font",
@@ -1118,7 +1113,25 @@ export class GxIdeImportFromDesign {
1118
1113
  }];
1119
1114
  }
1120
1115
  }
1121
- _GxIdeImportFromDesign_componentLocale = new WeakMap(), _GxIdeImportFromDesign_loadedItems = new WeakMap(), _GxIdeImportFromDesign_emptyStateAnimated = new WeakMap(), _GxIdeImportFromDesign_formattedExtensions = new WeakMap(), _GxIdeImportFromDesign_accessTokenEl = new WeakMap(), _GxIdeImportFromDesign_importAsWebPanelsEl = new WeakMap(), _GxIdeImportFromDesign_moduleEl = new WeakMap(), _GxIdeImportFromDesign_messagesList = new WeakMap(), _GxIdeImportFromDesign_panelsSelected = new WeakMap(), _GxIdeImportFromDesign_stencilsSelected = new WeakMap(), _GxIdeImportFromDesign_imagesSelected = new WeakMap(), _GxIdeImportFromDesign_fontsSelected = new WeakMap(), _GxIdeImportFromDesign_fileInputHiddenEl = new WeakMap(), _GxIdeImportFromDesign_pathEl = new WeakMap(), _GxIdeImportFromDesign_initializeActiveTabs = new WeakMap(), _GxIdeImportFromDesign_evaluateAccessTokenRender = new WeakMap(), _GxIdeImportFromDesign_pathURLBlurHandler = new WeakMap(), _GxIdeImportFromDesign_objectsTreeSelectedItemsChangedHandler = new WeakMap(), _GxIdeImportFromDesign_getLoadedItem = new WeakMap(), _GxIdeImportFromDesign_validatePath = new WeakMap(), _GxIdeImportFromDesign_objectsTreeCheckedItemsChangedHandler = new WeakMap(), _GxIdeImportFromDesign_selectFileHandler = new WeakMap(), _GxIdeImportFromDesign_styleComboBoxInputHandler = new WeakMap(), _GxIdeImportFromDesign_moduleInputHandler = new WeakMap(), _GxIdeImportFromDesign_loadData = new WeakMap(), _GxIdeImportFromDesign_messageCallback = new WeakMap(), _GxIdeImportFromDesign_getDesignDataDetail = new WeakMap(), _GxIdeImportFromDesign_confirm = new WeakMap(), _GxIdeImportFromDesign_cancel = new WeakMap(), _GxIdeImportFromDesign_fitImagesHandler = new WeakMap(), _GxIdeImportFromDesign_getPanelsSelectedItem = new WeakMap(), _GxIdeImportFromDesign_importAsWebPanelsChangedHandler = new WeakMap(), _GxIdeImportFromDesign_removeFileSelection = new WeakMap(), _GxIdeImportFromDesign_selectFileInputChangedHandler = new WeakMap(), _GxIdeImportFromDesign_accessFocusHandler = new WeakMap(), _GxIdeImportFromDesign_accessBlurHandler = new WeakMap(), _GxIdeImportFromDesign_pathUrlInputHandler = new WeakMap(), _GxIdeImportFromDesign_renderHeader = new WeakMap(), _GxIdeImportFromDesign_renderMessages = new WeakMap(), _GxIdeImportFromDesign_renderMain = new WeakMap(), _GxIdeImportFromDesign_renderDesignTree = new WeakMap(), _GxIdeImportFromDesign_renderFooter = new WeakMap(), _GxIdeImportFromDesign_renderPanelTab = new WeakMap(), _GxIdeImportFromDesign_renderImageTab = new WeakMap(), _GxIdeImportFromDesign_tabSelectionChangedHandler = new WeakMap(), _GxIdeImportFromDesign_renderDesignTabsCh = new WeakMap(), _GxIdeImportFromDesign_instances = new WeakSet(), _GxIdeImportFromDesign_loadTreeItemCompositionModel = function _GxIdeImportFromDesign_loadTreeItemCompositionModel(controls) {
1116
+ _GxIdeImportFromDesign_componentLocale = new WeakMap(), _GxIdeImportFromDesign_loadedItems = new WeakMap(), _GxIdeImportFromDesign_emptyStateAnimated = new WeakMap(), _GxIdeImportFromDesign_formattedExtensions = new WeakMap(), _GxIdeImportFromDesign_accessTokenEl = new WeakMap(), _GxIdeImportFromDesign_importAsWebPanelsEl = new WeakMap(), _GxIdeImportFromDesign_moduleEl = new WeakMap(), _GxIdeImportFromDesign_messagesList = new WeakMap(), _GxIdeImportFromDesign_panelsSelected = new WeakMap(), _GxIdeImportFromDesign_stencilsSelected = new WeakMap(), _GxIdeImportFromDesign_imagesSelected = new WeakMap(), _GxIdeImportFromDesign_fontsSelected = new WeakMap(), _GxIdeImportFromDesign_fileInputHiddenEl = new WeakMap(), _GxIdeImportFromDesign_pathEl = new WeakMap(), _GxIdeImportFromDesign_initializeActiveTabs = new WeakMap(), _GxIdeImportFromDesign_evaluateAccessTokenRender = new WeakMap(), _GxIdeImportFromDesign_pathURLBlurHandler = new WeakMap(), _GxIdeImportFromDesign_objectsTreeSelectedItemsChangedHandler = new WeakMap(), _GxIdeImportFromDesign_getLoadedItem = new WeakMap(), _GxIdeImportFromDesign_validatePath = new WeakMap(), _GxIdeImportFromDesign_objectsTreeCheckedItemsChangedHandler = new WeakMap(), _GxIdeImportFromDesign_selectFileHandler = new WeakMap(), _GxIdeImportFromDesign_styleComboBoxInputHandler = new WeakMap(), _GxIdeImportFromDesign_moduleInputHandler = new WeakMap(), _GxIdeImportFromDesign_loadData = new WeakMap(), _GxIdeImportFromDesign_messageCallback = new WeakMap(), _GxIdeImportFromDesign_getDesignDataDetail = new WeakMap(), _GxIdeImportFromDesign_confirm = new WeakMap(), _GxIdeImportFromDesign_cancel = new WeakMap(), _GxIdeImportFromDesign_fitImagesHandler = new WeakMap(), _GxIdeImportFromDesign_getPanelsSelectedItem = new WeakMap(), _GxIdeImportFromDesign_importAsWebPanelsChangedHandler = new WeakMap(), _GxIdeImportFromDesign_removeFileSelection = new WeakMap(), _GxIdeImportFromDesign_selectFileInputChangedHandler = new WeakMap(), _GxIdeImportFromDesign_accessFocusHandler = new WeakMap(), _GxIdeImportFromDesign_accessBlurHandler = new WeakMap(), _GxIdeImportFromDesign_pathUrlInputHandler = new WeakMap(), _GxIdeImportFromDesign_renderHeader = new WeakMap(), _GxIdeImportFromDesign_renderMessages = new WeakMap(), _GxIdeImportFromDesign_renderMain = new WeakMap(), _GxIdeImportFromDesign_renderDesignTree = new WeakMap(), _GxIdeImportFromDesign_renderFooter = new WeakMap(), _GxIdeImportFromDesign_evaluatePanelPreview = new WeakMap(), _GxIdeImportFromDesign_renderPanelTab = new WeakMap(), _GxIdeImportFromDesign_renderImageTab = new WeakMap(), _GxIdeImportFromDesign_tabSelectionChangedHandler = new WeakMap(), _GxIdeImportFromDesign_renderDesignTabsCh = new WeakMap(), _GxIdeImportFromDesign_instances = new WeakSet(), _GxIdeImportFromDesign_recursiveDesignTreeItems = function _GxIdeImportFromDesign_recursiveDesignTreeItems(items, designType, iconSrc, selectedIndex = undefined) {
1117
+ return items.map((item, i) => {
1118
+ var _a;
1119
+ const hasVariants = ((_a = item.variants) === null || _a === void 0 ? void 0 : _a.length) > 0;
1120
+ return {
1121
+ id: `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${designType}`,
1122
+ leaf: !hasVariants,
1123
+ caption: item.name,
1124
+ startImgSrc: iconSrc,
1125
+ checkbox: true,
1126
+ checked: true,
1127
+ expanded: hasVariants,
1128
+ selected: selectedIndex === i,
1129
+ items: hasVariants
1130
+ ? __classPrivateFieldGet(this, _GxIdeImportFromDesign_instances, "m", _GxIdeImportFromDesign_recursiveDesignTreeItems).call(this, item.variants, designType, iconSrc)
1131
+ : []
1132
+ };
1133
+ });
1134
+ }, _GxIdeImportFromDesign_loadTreeItemCompositionModel = function _GxIdeImportFromDesign_loadTreeItemCompositionModel(controls) {
1122
1135
  const modelList = [];
1123
1136
  for (const control of controls) {
1124
1137
  let model = {
@@ -1 +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\nimport { Component, Host, h, Prop, Element, State, Watch } from \"@stencil/core\";\n\n// Other Libraries\nimport {\n ChCheckboxCustomEvent,\n ChEditCustomEvent,\n ComboBoxModel,\n TabModel,\n TreeViewItemModel\n} from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\n// Custom Imports\nimport { config } from \"../../common/config\";\nimport { mapStylesToComboBoxItemModel } from \"./helpers\";\nimport { Locale } from \"../../common/locale\";\nimport { EntityData, GxOption } from \"../../common/types\";\nimport { TAB_DATA, DESIGN_TYPE_TO_TAB_MODEL_MAP, TAB_MODEL } from \"./models\";\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\nconst ITEM_COMPOSE_ID_SEPARATOR = \"@@@\";\n\n// ch-checkbox\nconst CHECKED_VALUE = \"on\";\n\n// Icons\nconst MENU_DELETE = getIconPath({\n category: \"menus\",\n name: \"delete\",\n colorType: \"primary\"\n});\nconst DESIGN = getIconPath({\n category: \"objects\",\n name: \"design\"\n});\nconst FILE_UPLOAD = getIconPath({\n category: \"controls\",\n name: \"file-upload\"\n});\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/tree-view\",\n \"components/combo-box\",\n \"components/tab\",\n \"components/tooltip\",\n \"chameleon/scrollbar\"\n];\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 /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n /**\n * An array that keeps track of the tree items id's (design system data type\n * + item id) along with the content, that will be used to save and retrieve\n * items information, in order to avoid using a callback to get items\n * information that was already get. loadedItemsArray will be reset every time\n * a new design is loaded.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #loadedItems: Map<string, ItemLoadedInfo> = new Map();\n\n #emptyStateAnimated: boolean = false;\n #formattedExtensions: string;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeDesignImportElement;\n\n /* References needed to collect data */\n #accessTokenEl!: HTMLChEditElement;\n #importAsWebPanelsEl!: HTMLChCheckboxElement;\n #moduleEl!: HTMLGxIdeEntitySelectorElement;\n #messagesList: HTMLElement;\n #panelsSelected: string[] = [];\n #stencilsSelected: string[] = [];\n #imagesSelected: string[] = [];\n #fontsSelected: string[] = [];\n #fileInputHiddenEl: HTMLInputElement;\n #pathEl: HTMLChEditElement;\n\n // Use to force a re-render\n @State() reRenderCounter: number = 0;\n\n // Maps to Chameleon Models:\n @State() stylesAsComboBoxModel: ComboBoxModel;\n\n // The current style value\n @State() styleValue: string = \"\";\n\n @State() accessTokenHasError: boolean = false;\n\n @State() pathIsValid: boolean;\n @Watch(\"pathIsValid\")\n pathIsValidChanged(pathIsValid: boolean) {\n if (pathIsValid) {\n this.#evaluateAccessTokenRender();\n } else {\n // hide access token input if path is not valid\n this.requiresAccessToken = false;\n }\n }\n\n @State() tabsModel: TabModel = [];\n\n @State() activeTabs: Map<DesignType, string> = new Map();\n\n @State() renderedTabs: Set<string> = new Set();\n\n /**\n * The design data loaded from file\n */\n @State() designData: DesignData = null;\n @Watch(\"designData\")\n designDataChanged(newDesignData: DesignData) {\n if (newDesignData) {\n const panelsSelectedItem = this.#getPanelsSelectedItem(\n this.designData.panels\n );\n const iconSrc =\n this.#importAsWebPanelsEl.value === CHECKED_VALUE\n ? \"objects/webpanel\"\n : \"objects/panel-for-sd\";\n this.designDataTreeDataModel = [\n {\n order: 0,\n id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_PANELS}`,\n leaf: false,\n caption: this.#componentLocale.tree.panels,\n startImgSrc: iconSrc,\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.panels.map((item, i) => ({\n id: `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_PANELS}`,\n class: \"object tree-view-item\",\n leaf: !item.variants,\n caption: item.name,\n startImgSrc: iconSrc,\n checkbox: true,\n checked: true,\n expanded: true,\n selected: i === panelsSelectedItem,\n items: item.variants?.map(variant => ({\n id: `${variant.id}${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_PANELS}`,\n caption: variant.name,\n startImgSrc: iconSrc,\n leaf: true,\n checkbox: true,\n checked: true\n }))\n }))\n },\n {\n order: 1,\n id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_STENCILS}`,\n leaf: false,\n caption: this.#componentLocale.tree.stencils,\n startImgSrc: \"objects/stencil\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.stencils.map(item => ({\n id: `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_STENCILS}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n startImgSrc: \"objects/stencil\",\n checkbox: true,\n checked: true\n }))\n },\n {\n order: 2,\n id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_IMAGES}`,\n parts: \"category tree-view-item\",\n leaf: false,\n caption: this.#componentLocale.tree.images,\n startImgSrc: \"objects/image\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.images.map(item => ({\n id: `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_IMAGES}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n startImgSrc: \"objects/image\",\n checkbox: true,\n checked: true\n }))\n },\n {\n order: 3,\n id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_FONTS}`,\n leaf: false,\n caption: this.#componentLocale.tree.fonts,\n startImgSrc: \"controls/font\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.fonts.map(item => ({\n id: `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_FONTS}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n startImgSrc: \"controls/font\",\n checkbox: true,\n checked: true\n }))\n },\n {\n order: 4,\n id: `${\n this.designData.designSystem.length > 0\n ? this.designData.designSystem[0].id\n : \"parent\"\n }${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_DESIGN_SYSTEM}`,\n leaf: true,\n caption: this.#componentLocale.tree.designSystem,\n startImgSrc: \"objects/dso\",\n checkbox: true,\n checked: true\n }\n ];\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 * If the design data is loaded or not, for conditioning input file\n */\n @State() isLoaded = 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 * Whether to show or not the access token input field\n */\n @State() requiresAccessToken: boolean;\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\n * renderDesignTree, in order to set the first tab as the active tab\n * (setFirstActiveTab()), since calling this method inside\n * objectsTreeSelectedItemsChangedHandler does not always work without a\n * 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 * Represents a collection of settings where each key is a specific option. Its\n * boolean value determines whether changes to that option are listened to and\n * trigger the loadCallback callback.\n */\n @Prop() readonly reactiveSettings: ReactiveSettings = {\n path: true,\n style: false,\n module: false,\n importAsWebPanels: true\n };\n\n /**\n * Used to keep track of the settings values since the last loadCallback.\n * Used to know if loadCallback is required to be called again, when any\n * of these values are changed.\n */\n @State() lastLoadCallbackSettingValues: ReactiveSettingsValues = {\n path: undefined,\n style: undefined,\n moduleId: undefined,\n importAsWebPanels: undefined\n };\n\n /**\n * The valid extensions for the files that will be loaded in Path/URL\n * (ie.: \".fig, .sketch\")\n */\n @Prop() readonly extensions!: string[];\n\n /**\n * Default value for the 'Module' field.\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * The path/URL for load the design data\n */\n @Prop({ mutable: true }) path: string = \"\";\n @Watch(\"path\")\n pathChanged(newPath: string) {\n const fileIsLoaded = this.selectedFile?.size > 0;\n const validatePathResult = this.#validatePath(newPath) || fileIsLoaded;\n this.pathIsValid = validatePathResult;\n }\n\n /**\n * The access token for the given path, which is not always required\n */\n @Prop({ mutable: true }) accessToken: string = \"\";\n @Watch(\"accessToken\")\n accessTokenChanged(newAccessToken: string) {\n if (!newAccessToken.trim().length) {\n this.accessTokenHasError = true;\n return;\n }\n this.accessTokenHasError = false;\n this.accessToken = newAccessToken;\n }\n\n /**\n * The value for \"Import as Web Panels\" checkbox.\n */\n @Prop() readonly importAsWebPanels: boolean = false;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter.\n * It returns the information of the selected object (id and name) or\n * '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 initiates the process\n * of importing a design.\n */\n @Prop() readonly confirmCallback!: ConfirmCallback;\n\n /**\n * This is a function provided by the developer that returns the list of\n * data types loaded from a file or URL.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * This is a function provided by the developer that returns the information\n * 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 returns the information\n * of a Font type of data.\n */\n @Prop() readonly loadFontCallback!: LoadFontCallback;\n\n /**\n * This is a function provided by the developer that returns the information\n * 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 returns the information\n * of a Panel type of data.\n */\n @Prop() readonly loadPanelDataCallback!: LoadPanelDataCallback;\n\n /**\n * Callback invoked to determine if accessing a design requires an authentication token.\n */\n @Prop() readonly requiresAccessTokenCallback!: RequiresAccessTokenCallback;\n\n /**\n * The styles render in the option style selector\n */\n @Prop() readonly styles!: GxOption[];\n @Watch(\"styles\")\n stylesChanged(newStyles: GxOption[]) {\n this.stylesAsComboBoxModel = mapStylesToComboBoxItemModel(newStyles);\n }\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 async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#formattedExtensions = this.extensions\n .map(ext => `.${ext}`)\n .join(\", \");\n this.stylesChanged(this.styles);\n this.#initializeActiveTabs();\n this.pathChanged(this.path);\n this.styleValue =\n this.stylesAsComboBoxModel?.length > 0\n ? this.stylesAsComboBoxModel[0]?.value\n : \"\";\n }\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 // 9.LOCAL METHODS //\n\n #initializeActiveTabs = () => {\n this.activeTabs.set(\"panels\", TAB_MODEL.panels[0].id);\n this.activeTabs.set(\"stencils\", TAB_MODEL.stencils[0].id);\n this.activeTabs.set(\"images\", TAB_MODEL.images[0].id);\n this.activeTabs.set(\"fonts\", TAB_MODEL.fonts[0].id);\n this.activeTabs.set(\"design_system\", TAB_MODEL.designSystem[0].id);\n };\n\n #evaluateAccessTokenRender = async () => {\n this.requiresAccessToken = await this.requiresAccessTokenCallback(\n this.path\n );\n // evaluate access token error\n if (this.accessToken.length) {\n this.accessTokenHasError = false;\n }\n };\n\n #pathURLBlurHandler = async () => {\n const loadDataCondition1 =\n this.isLoaded &&\n this.reactiveSettings.path &&\n this.pathIsValid &&\n this.path !== this.lastLoadCallbackSettingValues.path;\n const loadDataCondition2 =\n !this.requiresAccessToken ||\n (this.requiresAccessToken && this.accessToken.length > 0);\n if (loadDataCondition1 && loadDataCondition2) {\n this.#loadData();\n }\n };\n\n #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 #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(ITEM_COMPOSE_ID_SEPARATOR);\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.tabsModel = DESIGN_TYPE_TO_TAB_MODEL_MAP.get(itemDesignType);\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 this.renderedTabs.clear();\n this.renderedTabs.add(this.activeTabs.get(this.selectedDesignType));\n }\n }\n };\n\n #getLoadedItem = (id: string): ItemLoadedInfo | undefined => {\n return this.#loadedItems?.get(id);\n };\n\n #validatePath = (path: string): boolean => {\n const validPathRegex = /^(\\/|\\.\\/|(\\w:))[^:*?\"<>|]*\\.(sketch|gxsketch)$/i; // Match valid file paths\n const figmaURLRegex = /^https?:\\/\\/(www\\.)?figma\\.com/; // Match URLs containing \"www.figma.com\"\n const urlWithExtensionRegex =\n /^https?:\\/\\/[^\\s/$.?#].[^\\s]*\\.(sketch|gxsketch)$/i; // Match URLs ending with .sketch or .gxsketch\n const pathIsValid =\n validPathRegex.test(path) ||\n figmaURLRegex.test(path) ||\n urlWithExtensionRegex.test(path);\n return pathIsValid;\n };\n\n #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${ITEM_COMPOSE_ID_SEPARATOR}`)) {\n currentParentId = item.item.id.split(ITEM_COMPOSE_ID_SEPARATOR)[1];\n result[currentParentId] = [];\n } else if (item.item.checked && currentParentId) {\n const parentId = item.item.id.split(ITEM_COMPOSE_ID_SEPARATOR)[1];\n if (parentId === currentParentId) {\n const id = item.item.id.split(ITEM_COMPOSE_ID_SEPARATOR)[0];\n result[currentParentId].push(id);\n }\n }\n }\n // const { designSystem, fonts, images, panels, stencils } = result;\n const { fonts, panels, stencils, images } = result;\n\n // this.designSystemSelected = designSystem;\n this.#panelsSelected = panels;\n this.#stencilsSelected = stencils;\n this.#imagesSelected = images;\n this.#fontsSelected = fonts;\n };\n\n #selectFileHandler = (): void => {\n this.#fileInputHiddenEl.click();\n };\n\n #styleComboBoxInputHandler = (event: CustomEvent<string> | InputEvent) => {\n this.styleValue = (event.target as HTMLChComboBoxRenderElement).value;\n if (\n this.reactiveSettings.style &&\n this.styleValue !== this.lastLoadCallbackSettingValues.style\n ) {\n this.#loadData();\n }\n };\n\n #moduleInputHandler = (event: CustomEvent<EntityData>) => {\n if (\n this.reactiveSettings.module &&\n this.defaultModule.id !== event.detail.id &&\n this.pathIsValid\n ) {\n this.#loadData();\n }\n };\n\n #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 const style = this.styleValue;\n const importAsWebPanels = this.#importAsWebPanelsEl.value === CHECKED_VALUE;\n const designData: DesignData = await this.loadCallback(\n source,\n style,\n importAsWebPanels,\n token,\n this.#messageCallback\n );\n\n // clear\n this.#panelsSelected = [];\n this.#stencilsSelected = [];\n this.#fontsSelected = [];\n this.selectedDesignType = undefined;\n this.selectedDesignItem = undefined;\n this.messages = [];\n\n this.designData = designData;\n this.isLoaded = designData?.success ?? false;\n this.isLoading = false;\n\n const firstDesignSystemName = designData.designSystem[0]?.name;\n if (firstDesignSystemName && !this.styleValue) {\n this.styleValue = firstDesignSystemName;\n }\n\n // update the settings that were used for the last load\n if (this.reactiveSettings.path && this.pathIsValid) {\n this.lastLoadCallbackSettingValues.path = this.path;\n }\n if (this.reactiveSettings.style) {\n this.lastLoadCallbackSettingValues.style = style;\n }\n if (this.reactiveSettings.module) {\n this.lastLoadCallbackSettingValues.moduleId = this.#moduleEl.value.id;\n }\n if (this.reactiveSettings.importAsWebPanels) {\n this.lastLoadCallbackSettingValues.importAsWebPanels = importAsWebPanels;\n }\n };\n\n #messageCallback: LoadMessageCallback = message => {\n this.messages = [...this.messages, message];\n };\n\n #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 #getCodeFactory(designType: string) {\n switch (designType) {\n case DESIGN_DATA_TYPE_PANELS:\n case DESIGN_DATA_TYPE_STENCILS:\n this.textEditorFactoryCallback(\n \"code\",\n TAB_DATA.code.slot,\n this.selectedDesignItem.code\n );\n this.textEditorFactoryCallback(\n \"html\",\n TAB_DATA.layout.slot,\n this.selectedDesignItem.layout\n );\n break;\n case DESIGN_DATA_TYPE_DESIGN_SYSTEM:\n this.textEditorFactoryCallback(\n \"tokens\",\n TAB_DATA.tokens.slot,\n this.selectedDesignItem.tokens\n );\n this.textEditorFactoryCallback(\n \"styles\",\n TAB_DATA.styles.slot,\n this.selectedDesignItem.styles\n );\n break;\n }\n }\n\n #confirm = (): void => {\n this.confirmCallback({\n panels: this.#panelsSelected,\n stencils: this.#stencilsSelected,\n fonts: this.#fontsSelected,\n images: this.#imagesSelected,\n moduleId: this.#moduleEl?.value?.id,\n styleName: this.styleValue,\n importAsWebPanels: this.#importAsWebPanelsEl.value === CHECKED_VALUE\n });\n };\n\n #cancel = (): void => {\n this.cancelCallback();\n this.isLoading = false;\n };\n\n #fitImagesHandler = (event: ChCheckboxCustomEvent<any> | InputEvent) => {\n this.fitImages = event.detail === CHECKED_VALUE;\n };\n\n #getPanelsSelectedItem = (panels: DesignItemData[]): number => {\n return panels.reduce((minIndex, item, index, panels) => {\n return panels[minIndex].name <= item.name ? minIndex : index;\n }, 0);\n };\n\n #importAsWebPanelsChangedHandler = () => {\n const loadData =\n this.reactiveSettings.importAsWebPanels && this.pathIsValid;\n if (loadData) {\n this.#loadData();\n }\n };\n\n #removeFileSelection = () => {\n this.selectedFile = null;\n this.path = \"\";\n this.accessToken = \"\";\n this.selectedFile = null;\n this.#fileInputHiddenEl.value = null;\n };\n\n #selectFileInputChangedHandler = (event: InputEvent) => {\n const target = event.target as HTMLInputElement;\n if (target.files?.length > 0) {\n this.selectedFile = target.files[0];\n this.path = this.selectedFile.name;\n // we know the path is valid because the extensions are restricted by \"extensions\" Prop.\n }\n };\n\n #accessFocusHandler = (event: ChEditCustomEvent<string> | FocusEvent) => {\n const element = event.target as HTMLChEditElement;\n element.type = \"text\"; // display token on focus\n };\n\n #accessBlurHandler = (event: ChEditCustomEvent<string> | FocusEvent) => {\n const element = event.target as HTMLChEditElement;\n element.type = \"password\"; // hide token on blur\n\n this.accessTokenChanged(element.value);\n };\n\n #pathUrlInputHandler = async (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.path = event.detail as string;\n this.#evaluateAccessTokenRender();\n this.selectedFile = null;\n if (!this.path.length) {\n this.designData = null;\n }\n };\n\n // 9.LOCAL METHODS -> RENDERS //\n\n #renderHeader = (): Element => {\n const primaryButtonDisabled =\n this.isLoading ||\n (this.pathIsValid &&\n this.requiresAccessToken &&\n this.accessToken.length === 0);\n const clearFileButtonDisabled = this.isLoading || this.path.length === 0;\n const stylesComboDisabled = this.isLoading;\n const moduleDisabled = this.isLoading;\n const pathWithErrorStyles = !this.pathIsValid && this.path.length > 0;\n const displayPathErrorTooltip = !this.pathIsValid && this.path.length > 0;\n let primaryButtonCaption;\n if (\n this.pathIsValid &&\n this.path === this.lastLoadCallbackSettingValues.path\n ) {\n primaryButtonCaption = this.#componentLocale.header.btnReload;\n } else if (this.pathIsValid) {\n primaryButtonCaption = this.#componentLocale.header.btnLoad;\n } else {\n primaryButtonCaption = this.#componentLocale.header.selectFileButton;\n }\n\n return (\n <header\n class={{\n \"header\": true,\n \"control-header-with-border\": true,\n \"spacing-body-inline\": true,\n \"spacing-body-block-start\": true,\n \"header--show-access-token\": this.requiresAccessToken,\n \"header--hide-access-token\": !this.requiresAccessToken,\n \"field-group-cols-2\": true\n }}\n >\n <label\n // path/url label\n class=\"label path-url-label\"\n >\n {this.#componentLocale.header.path}\n </label>\n <div class=\"path-url-wrapper buttons-spacer\">\n <ch-edit\n // path/url/file input\n id=\"path-url\"\n class={{\n \"input\": true,\n \"input-error\": pathWithErrorStyles,\n \"path-url-control\": true\n }}\n debounce={config.inputDebounce}\n part=\"option-path\"\n type=\"text\"\n value={this.path}\n onInput={this.#pathUrlInputHandler}\n onBlur={this.reactiveSettings.path && this.#pathURLBlurHandler}\n disabled={this.isLoading}\n placeholder={`${this.#componentLocale.header.pathPlaceholder}`}\n startImgSrc={FILE_UPLOAD}\n ref={(el: HTMLChEditElement) =>\n (this.#pathEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n {displayPathErrorTooltip && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={this.#pathEl as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.#componentLocale.header.pathErrorMessage}{\" \"}\n {this.#formattedExtensions}\n </ch-tooltip>\n )}\n\n <input\n hidden\n type=\"file\"\n accept={this.#formattedExtensions}\n onChange={this.#selectFileInputChangedHandler}\n ref={(el: HTMLInputElement) =>\n (this.#fileInputHiddenEl = el as HTMLInputElement)\n }\n />\n\n <div class=\"buttons-spacer\">\n <button\n // remove file selection\n aria-label={this.#componentLocale.header.removeFileSelection}\n title={this.#componentLocale.header.removeFileSelection}\n id=\"reset-all-button\"\n class=\"button-tertiary button-icon-only\"\n part=\"reset-all-button\"\n disabled={clearFileButtonDisabled}\n onClick={!clearFileButtonDisabled && this.#removeFileSelection}\n >\n <ch-image\n class=\"icon-md\"\n src={MENU_DELETE}\n disabled={clearFileButtonDisabled}\n ></ch-image>\n </button>\n <button\n // load file button\n id=\"button-load\"\n type=\"primary-text-only\"\n onClick={\n this.pathIsValid ? this.#loadData : this.#selectFileHandler\n }\n part=\"button button--load\"\n disabled={primaryButtonDisabled}\n class={{\n \"button-primary\": this.pathIsValid,\n \"button-secondary\": !this.pathIsValid,\n \"select-load-button\": true\n }}\n >\n {primaryButtonCaption}\n </button>\n </div>\n </div>\n\n {this.requiresAccessToken && [\n <label\n // access token label\n class=\"label access-token-label\"\n >\n {this.#componentLocale.header.accessToken}\n </label>,\n <div>\n <ch-edit\n class={{\n \"input\": true,\n \"access-token\": true,\n \"input-error\": this.accessTokenHasError\n }}\n ref={(el: HTMLChEditElement) =>\n (this.#accessTokenEl = el as HTMLChEditElement)\n }\n value={this.accessToken}\n placeholder={this.#componentLocale.header.accessTokenPlaceholder}\n onFocus={this.#accessFocusHandler}\n onBlur={this.#accessBlurHandler}\n part=\"access-token\"\n disabled={this.isLoading}\n type=\"password\"\n ></ch-edit>\n {this.accessTokenHasError && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={\n this.#accessTokenEl as unknown as HTMLButtonElement\n }\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.#componentLocale.header.accessTokenErrorMessage}\n </ch-tooltip>\n )}\n </div>\n ]}\n <label\n // style label\n class=\"label style-label\"\n >\n {this.#componentLocale.header.style}\n </label>\n <ch-combo-box-render\n // style combo box\n suggest={true}\n suggestOptions={{\n alreadyProcessed: true\n }}\n disabled={stylesComboDisabled}\n model={this.stylesAsComboBoxModel}\n value={this.styleValue}\n onInput={this.#styleComboBoxInputHandler}\n part=\"option-style\"\n class=\"combo-box style\"\n ></ch-combo-box-render>\n\n <label\n // module label\n class=\"label module-label\"\n >\n {this.#componentLocale.header.module}\n </label>\n <gx-ide-entity-selector\n // module entity selector\n labelPosition=\"none\"\n value={this.defaultModule}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#moduleEl = el as HTMLGxIdeEntitySelectorElement)\n }\n onValueChanged={\n this.reactiveSettings.module && this.#moduleInputHandler\n }\n disabled={moduleDisabled}\n class=\"module\"\n ></gx-ide-entity-selector>\n\n <div\n // import as web panels\n class=\"checkboxes-options field-group\"\n >\n <ch-checkbox\n caption={this.#componentLocale.header.importAs}\n checkedValue={CHECKED_VALUE}\n class=\"checkbox import-as-web-panels\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#importAsWebPanelsEl = el as HTMLChCheckboxElement)\n }\n value={this.importAsWebPanels ? CHECKED_VALUE : undefined}\n part=\"option-import-as-web-panels\"\n disabled={this.isLoading}\n onInput={this.#importAsWebPanelsChangedHandler}\n ></ch-checkbox>\n\n <div\n class={{\n \"field-group-inline\": true,\n \"checkboxes-options__col-right\": true\n }}\n >\n <ch-checkbox\n // fit images\n caption={this.#componentLocale.header.fitImages}\n checkedValue={CHECKED_VALUE}\n class=\"checkbox\"\n part=\"fit-images-checkbox\"\n disabled={this.isLoading || !this.designDataTreeDataModel.length}\n onInput={this.#fitImagesHandler}\n ></ch-checkbox>\n </div>\n </div>\n </header>\n );\n };\n\n #renderMessages = (): HTMLParagraphElement[] => {\n return (\n this.messages.length > 0 &&\n this.messages.map(message => (\n <p\n class={{\n \"text-body-regular-m\": true,\n \"message\": true,\n [`message--${message.type}`]: true\n }}\n >\n {message.type}: {message.text}\n </p>\n ))\n );\n };\n\n #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 #renderMain = () => {\n if (this.isLoading || this.designData?.success === false) {\n return (\n <div\n class=\"main main--loading scrollable\"\n ref={(el: HTMLElement) => (this.#messagesList = el as HTMLElement)}\n >\n {this.#renderMessages()}\n <div class=\"text-body-regular-m spacing-body\">\n <slot name=\"messages\"></slot>\n </div>\n </div>\n );\n } else if (this.designData?.success) {\n return (\n /* #main*/\n <div class=\"main\">\n {[this.#renderDesignTree(), this.#renderDesignTabsCh()]}\n </div>\n );\n } else {\n return (\n <gx-ide-empty-state\n class=\"empty-state scrollable\"\n stateIconSrc={DESIGN}\n isAnimated={this.#emptyStateAnimated}\n stateTitle={this.#componentLocale.messages.noDesignSelected}\n key=\"no-objects-empty-state\"\n >\n <button\n // begin by selecting a file\n class=\"button-tertiary empty-state-button\"\n onClick={this.#selectFileHandler}\n >\n {this.#componentLocale.messages.selectDesign}\n </button>\n </gx-ide-empty-state>\n );\n }\n };\n\n #renderDesignTree = (): HTMLChTreeViewElement => {\n return (\n <ch-tree-view-render\n part=\"data-tree\"\n class=\"tree-view\"\n id=\"data-tree\"\n showLines=\"last\"\n model={this.designDataTreeDataModel}\n dragDisabled={true}\n dropDisabled={true}\n expandOnClick={false}\n toggleCheckboxes={true}\n checkbox={true}\n checked={true}\n onCheckedItemsChange={this.#objectsTreeCheckedItemsChangedHandler}\n onSelectedItemsChange={this.#objectsTreeSelectedItemsChangedHandler}\n ></ch-tree-view-render>\n );\n };\n\n #renderFooter = () => {\n const buttonOkDisabled =\n this.designData?.success !== true || this.isLoading;\n return (\n <footer class=\"control-footer-with-border spacing-body-block-end spacing-body-inline\">\n <div class=\"buttons-spacer\">\n <button\n // button cancel\n id=\"button-cancel\"\n class=\"button-secondary button-cancel\"\n type=\"outlined\"\n onClick={this.#cancel}\n part=\"button button--cancel\"\n slot=\"footer-end\"\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n <button\n // button ok\n id=\"button-ok\"\n class=\"button-primary button-ok\"\n type=\"primary-text-only\"\n onClick={!buttonOkDisabled && this.#confirm}\n part=\"button button--ok\"\n disabled={buttonOkDisabled}\n slot=\"footer-end\"\n >\n {this.#componentLocale.footer.btnOk}\n </button>\n </div>\n </footer>\n );\n };\n\n #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?.composition?.preview ? (\n <div\n part=\"data-panel-composition-preview\"\n class=\"panel-item scrollable\"\n >\n <img\n src={this.selectedDesignItem.composition.preview}\n alt=\"Preview\"\n />\n </div>\n ) : null}\n\n {renderControlsTree ? (\n <ch-tree-view-render\n part=\"data-panel-composition-tree\"\n class=\"tree-view tree-view-panel-item scrollable\"\n showLines=\"last\"\n model={this.detailTreeModel}\n dragDisabled={true}\n dropDisabled={true}\n ></ch-tree-view-render>\n ) : null}\n </div>\n );\n };\n\n #renderImageTab = () => {\n return (\n <div\n part=\"data-panel-composition-preview\"\n class=\"data-preview\"\n style={{ height: \"100%\" }}\n >\n <img\n src={this.selectedDesignItem ? this.selectedDesignItem : undefined}\n alt=\"Preview\"\n class={\n this.selectedDesignType === DESIGN_DATA_TYPE_IMAGES\n ? \"checker-board\"\n : undefined\n }\n />\n </div>\n );\n };\n\n #tabSelectionChangedHandler = (\n event: CustomEvent<{\n lastSelectedIndex: number;\n newSelectedId: string;\n newSelectedIndex: number;\n }>\n ): void => {\n this.renderedTabs.clear();\n this.renderedTabs.add(event.detail.newSelectedId);\n this.reRenderCounter++;\n this.activeTabs.set(this.selectedDesignType, event.detail.newSelectedId);\n };\n\n #renderDesignTabsCh = (): HTMLChTabRenderElement => {\n return (\n <ch-tab-render\n // main section\n class={{\n \"tab\": true,\n \"scrollable\": true,\n \"fit-images\": this.fitImages\n }}\n tabListPosition=\"block-start\"\n model={this.tabsModel}\n selectedId={this.activeTabs.get(this.selectedDesignType)}\n overflow=\"auto\"\n contain=\"size\"\n onSelectedItemChange={this.#tabSelectionChangedHandler}\n >\n <div\n slot={TAB_DATA.tokens.slot}\n class=\"spacing-body\"\n style={{\n display: this.renderedTabs.has(TAB_DATA.tokens.id) ? \"\" : \"none\"\n }}\n >\n <slot name={TAB_DATA.tokens.slot}></slot>\n </div>\n\n <div\n slot={TAB_DATA.styles.slot}\n class=\"spacing-body\"\n style={{\n display: this.renderedTabs.has(TAB_DATA.styles.id) ? \"\" : \"none\"\n }}\n >\n <slot name={TAB_DATA.styles.slot}></slot>\n </div>\n\n <div\n class=\"composition-tab-slot scrollable\"\n slot={TAB_DATA.composition.slot}\n style={{\n display: this.renderedTabs.has(TAB_DATA.composition.id)\n ? \"\"\n : \"none\"\n }}\n >\n {this.selectedDesignType === DESIGN_DATA_TYPE_IMAGES ||\n this.selectedDesignType === DESIGN_DATA_TYPE_FONTS\n ? this.#renderImageTab()\n : this.#renderPanelTab()}\n </div>\n\n <div\n slot={TAB_DATA.layout.slot}\n class=\"spacing-body\"\n style={{\n display: this.renderedTabs.has(TAB_DATA.layout.id) ? \"\" : \"none\"\n }}\n >\n <slot name={TAB_DATA.layout.slot}></slot>\n </div>\n\n <div\n slot={TAB_DATA.code.slot}\n class=\"spacing-body\"\n style={{\n display: this.renderedTabs.has(TAB_DATA.code.id) ? \"\" : \"none\"\n }}\n >\n <slot name={TAB_DATA.code.slot}></slot>\n </div>\n </ch-tab-render>\n );\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n {this.#renderHeader()}\n {this.#renderMain()}\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type LoadMessageCallback = (message: MessageData) => void;\nexport type LoadCallback = (\n source: string | File,\n designSystem: string,\n importAsWebPanels: boolean,\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: string,\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 success: boolean;\n}\n\nexport interface DesignItemData {\n id: string;\n name: string;\n variants?: DesignItemData[];\n}\n\nexport interface DesignPanelData {\n composition: DesignPanelCompositionData;\n code?: string;\n layout?: 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\nexport type TextEditorType = \"code\" | \"html\" | \"styles\" | \"tokens\";\n\nexport type ReactiveSettings = {\n path: boolean;\n style: boolean;\n module: boolean;\n importAsWebPanels: boolean;\n};\n\ntype ReactiveSettingsValues = {\n path: string;\n style: string;\n moduleId: string;\n importAsWebPanels: boolean;\n};\n"]}
1
+ {"version":3,"file":"design-import.js","sourceRoot":"","sources":["../../../src/components/design-import/design-import.tsx"],"names":[],"mappings":"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","sourcesContent":["// Stencil\nimport { Component, Host, h, Prop, Element, State, Watch } from \"@stencil/core\";\n\n// Other Libraries\nimport {\n ChCheckboxCustomEvent,\n ChEditCustomEvent,\n ComboBoxModel,\n TabModel,\n TreeViewItemModel\n} from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\n// Custom Imports\nimport { config } from \"../../common/config\";\nimport { mapStylesToComboBoxItemModel } from \"./helpers\";\nimport { Locale } from \"../../common/locale\";\nimport { EntityData, GxOption } from \"../../common/types\";\nimport { TAB_DATA, DESIGN_TYPE_TO_TAB_MODEL_MAP, TAB_MODEL } from \"./models\";\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\nconst ITEM_COMPOSE_ID_SEPARATOR = \"@@@\";\n\n// ch-checkbox\nconst CHECKED_VALUE = \"on\";\n\n// Icons\nconst MENU_DELETE = getIconPath({\n category: \"menus\",\n name: \"delete\",\n colorType: \"primary\"\n});\nconst DESIGN = getIconPath({\n category: \"objects\",\n name: \"design\"\n});\nconst FILE_UPLOAD = getIconPath({\n category: \"controls\",\n name: \"file-upload\"\n});\n// For empty states\nconst WEBPANEL_ICON = getIconPath({\n category: \"objects\",\n name: \"webpanel\"\n});\nconst PANEL_FOR_SD_ICON = getIconPath({\n category: \"objects\",\n name: \"panel-for-sd\"\n});\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/tree-view\",\n \"components/combo-box\",\n \"components/tab\",\n \"components/tooltip\",\n \"chameleon/scrollbar\"\n];\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 /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n /**\n * An array that keeps track of the tree items id's (design system data type\n * + item id) along with the content, that will be used to save and retrieve\n * items information, in order to avoid using a callback to get items\n * information that was already get. loadedItemsArray will be reset every time\n * a new design is loaded.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #loadedItems: Map<string, ItemLoadedInfo> = new Map();\n\n #emptyStateAnimated: boolean = false;\n #formattedExtensions: string;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeDesignImportElement;\n\n /* References needed to collect data */\n #accessTokenEl!: HTMLChEditElement;\n #importAsWebPanelsEl!: HTMLChCheckboxElement;\n #moduleEl!: HTMLGxIdeEntitySelectorElement;\n #messagesList: HTMLElement;\n #panelsSelected: string[] = [];\n #stencilsSelected: string[] = [];\n #imagesSelected: string[] = [];\n #fontsSelected: string[] = [];\n #fileInputHiddenEl: HTMLInputElement;\n #pathEl: HTMLChEditElement;\n\n // Use to force a re-render\n @State() reRenderCounter: number = 0;\n\n // Maps to Chameleon Models:\n @State() stylesAsComboBoxModel: ComboBoxModel;\n\n // The current style value\n @State() styleValue: string = \"\";\n\n @State() accessTokenHasError: boolean = false;\n\n @State() pathIsValid: boolean;\n @Watch(\"pathIsValid\")\n pathIsValidChanged(pathIsValid: boolean) {\n if (pathIsValid) {\n this.#evaluateAccessTokenRender();\n } else {\n // hide access token input if path is not valid\n this.requiresAccessToken = false;\n }\n }\n\n @State() tabsModel: TabModel = [];\n\n @State() activeTabs: Map<DesignType, string> = new Map();\n\n @State() renderedTabs: Set<string> = new Set();\n\n /**\n * The design data loaded from file\n */\n @State() designData: DesignData = null;\n @Watch(\"designData\")\n designDataChanged(newDesignData: DesignData) {\n if (newDesignData) {\n const panelsSelectedItem = this.#getPanelsSelectedItem(\n this.designData.panels\n );\n const iconSrc =\n this.#importAsWebPanelsEl.value === CHECKED_VALUE\n ? \"objects/webpanel\"\n : \"objects/panel-for-sd\";\n this.designDataTreeDataModel = [\n {\n order: 0,\n id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_PANELS}`,\n leaf: false,\n caption: this.#componentLocale.tree.panels,\n startImgSrc: iconSrc,\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.#recursiveDesignTreeItems(\n this.designData.panels,\n DESIGN_DATA_TYPE_PANELS,\n iconSrc,\n panelsSelectedItem\n )\n },\n {\n order: 1,\n id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_STENCILS}`,\n leaf: false,\n caption: this.#componentLocale.tree.stencils,\n startImgSrc: \"objects/stencil\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.stencils.map(item => ({\n id: `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_STENCILS}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n startImgSrc: \"objects/stencil\",\n checkbox: true,\n checked: true\n }))\n },\n {\n order: 2,\n id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_IMAGES}`,\n leaf: false,\n caption: this.#componentLocale.tree.images,\n startImgSrc: \"objects/image\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.images.map(item => ({\n id: `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_IMAGES}`,\n leaf: true,\n caption: item.name,\n startImgSrc: \"objects/image\",\n checkbox: true,\n checked: true\n }))\n },\n {\n order: 3,\n id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_FONTS}`,\n leaf: false,\n caption: this.#componentLocale.tree.fonts,\n startImgSrc: \"controls/font\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.fonts.map(item => ({\n id: `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_FONTS}`,\n leaf: true,\n caption: item.name,\n startImgSrc: \"controls/font\",\n checkbox: true,\n checked: true\n }))\n },\n {\n order: 4,\n id: `${\n this.designData.designSystem.length > 0\n ? this.designData.designSystem[0].id\n : \"parent\"\n }${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_DESIGN_SYSTEM}`,\n leaf: true,\n caption: this.#componentLocale.tree.designSystem,\n startImgSrc: \"objects/dso\",\n checkbox: true,\n checked: true\n }\n ];\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 * If the design data is loaded or not, for conditioning input file\n */\n @State() isLoaded = 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 * Whether to show or not the access token input field\n */\n @State() requiresAccessToken: boolean;\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\n * renderDesignTree, in order to set the first tab as the active tab\n * (setFirstActiveTab()), since calling this method inside\n * objectsTreeSelectedItemsChangedHandler does not always work without a\n * 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 * Represents a collection of settings where each key is a specific option. Its\n * boolean value determines whether changes to that option are listened to and\n * trigger the loadCallback callback.\n */\n @Prop() readonly reactiveSettings: ReactiveSettings = {\n path: true,\n style: false,\n module: false,\n importAsWebPanels: true\n };\n\n /**\n * Used to keep track of the settings values since the last loadCallback.\n * Used to know if loadCallback is required to be called again, when any\n * of these values are changed.\n */\n @State() lastLoadCallbackSettingValues: ReactiveSettingsValues = {\n path: undefined,\n style: undefined,\n moduleId: undefined,\n importAsWebPanels: undefined\n };\n\n /**\n * The valid extensions for the files that will be loaded in Path/URL\n * (ie.: \".fig, .sketch\")\n */\n @Prop() readonly extensions!: string[];\n\n /**\n * Default value for the 'Module' field.\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * The path/URL for load the design data\n */\n @Prop({ mutable: true }) path: string = \"\";\n @Watch(\"path\")\n pathChanged(newPath: string) {\n const fileIsLoaded = this.selectedFile?.size > 0;\n const validatePathResult = this.#validatePath(newPath) || fileIsLoaded;\n this.pathIsValid = validatePathResult;\n }\n\n /**\n * The access token for the given path, which is not always required\n */\n @Prop({ mutable: true }) accessToken: string = \"\";\n @Watch(\"accessToken\")\n accessTokenChanged(newAccessToken: string) {\n if (!newAccessToken.trim().length) {\n this.accessTokenHasError = true;\n return;\n }\n this.accessTokenHasError = false;\n this.accessToken = newAccessToken;\n }\n\n /**\n * The value for \"Import as Web Panels\" checkbox.\n */\n @Prop() readonly importAsWebPanels: boolean = false;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter.\n * It returns the information of the selected object (id and name) or\n * '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 initiates the process\n * of importing a design.\n */\n @Prop() readonly confirmCallback!: ConfirmCallback;\n\n /**\n * This is a function provided by the developer that returns the list of\n * data types loaded from a file or URL.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * This is a function provided by the developer that returns the information\n * 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 returns the information\n * of a Font type of data.\n */\n @Prop() readonly loadFontCallback!: LoadFontCallback;\n\n /**\n * This is a function provided by the developer that returns the information\n * 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 returns the information\n * of a Panel type of data.\n */\n @Prop() readonly loadPanelDataCallback!: LoadPanelDataCallback;\n\n /**\n * Callback invoked to determine if accessing a design requires an authentication token.\n */\n @Prop() readonly requiresAccessTokenCallback!: RequiresAccessTokenCallback;\n\n /**\n * The styles render in the option style selector\n */\n @Prop() readonly styles!: GxOption[];\n @Watch(\"styles\")\n stylesChanged(newStyles: GxOption[]) {\n this.stylesAsComboBoxModel = mapStylesToComboBoxItemModel(newStyles);\n }\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 async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#formattedExtensions = this.extensions\n .map(ext => `.${ext}`)\n .join(\", \");\n this.stylesChanged(this.styles);\n this.#initializeActiveTabs();\n this.pathChanged(this.path);\n this.styleValue =\n this.stylesAsComboBoxModel?.length > 0\n ? this.stylesAsComboBoxModel[0]?.value\n : \"\";\n }\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 #recursiveDesignTreeItems(\n items: DesignItemData[],\n designType: DesignType,\n iconSrc: string,\n selectedIndex: number = undefined\n ): TreeViewItemModel[] {\n return items.map((item, i) => {\n const hasVariants = item.variants?.length > 0;\n\n return {\n id: `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${designType}`,\n leaf: !hasVariants,\n caption: item.name,\n startImgSrc: iconSrc,\n checkbox: true,\n checked: true,\n expanded: hasVariants,\n selected: selectedIndex === i,\n items: hasVariants\n ? this.#recursiveDesignTreeItems(item.variants, designType, iconSrc)\n : []\n };\n });\n }\n\n #initializeActiveTabs = () => {\n this.activeTabs.set(\"panels\", TAB_MODEL.panels[0].id);\n this.activeTabs.set(\"stencils\", TAB_MODEL.stencils[0].id);\n this.activeTabs.set(\"images\", TAB_MODEL.images[0].id);\n this.activeTabs.set(\"fonts\", TAB_MODEL.fonts[0].id);\n this.activeTabs.set(\"design_system\", TAB_MODEL.designSystem[0].id);\n };\n\n #evaluateAccessTokenRender = async () => {\n this.requiresAccessToken = await this.requiresAccessTokenCallback(\n this.path\n );\n // evaluate access token error\n if (this.accessToken.length) {\n this.accessTokenHasError = false;\n }\n };\n\n #pathURLBlurHandler = async () => {\n const loadDataCondition1 =\n this.isLoaded &&\n this.reactiveSettings.path &&\n this.pathIsValid &&\n this.path !== this.lastLoadCallbackSettingValues.path;\n const loadDataCondition2 =\n !this.requiresAccessToken ||\n (this.requiresAccessToken && this.accessToken.length > 0);\n if (loadDataCondition1 && loadDataCondition2) {\n this.#loadData();\n }\n };\n\n #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 #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(ITEM_COMPOSE_ID_SEPARATOR);\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.tabsModel = DESIGN_TYPE_TO_TAB_MODEL_MAP.get(itemDesignType);\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 this.renderedTabs.clear();\n this.renderedTabs.add(this.activeTabs.get(this.selectedDesignType));\n }\n }\n };\n\n #getLoadedItem = (id: string): ItemLoadedInfo | undefined => {\n return this.#loadedItems?.get(id);\n };\n\n #validatePath = (path: string): boolean => {\n const validPathRegex = /^(\\/|\\.\\/|(\\w:))[^:*?\"<>|]*\\.(sketch|gxsketch)$/i; // Match valid file paths\n const figmaURLRegex = /^https?:\\/\\/(www\\.)?figma\\.com/; // Match URLs containing \"www.figma.com\"\n const urlWithExtensionRegex =\n /^https?:\\/\\/[^\\s/$.?#].[^\\s]*\\.(sketch|gxsketch)$/i; // Match URLs ending with .sketch or .gxsketch\n const pathIsValid =\n validPathRegex.test(path) ||\n figmaURLRegex.test(path) ||\n urlWithExtensionRegex.test(path);\n return pathIsValid;\n };\n\n #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${ITEM_COMPOSE_ID_SEPARATOR}`)) {\n currentParentId = item.item.id.split(ITEM_COMPOSE_ID_SEPARATOR)[1];\n result[currentParentId] = [];\n } else if (item.item.checked && currentParentId) {\n const parentId = item.item.id.split(ITEM_COMPOSE_ID_SEPARATOR)[1];\n if (parentId === currentParentId) {\n const id = item.item.id.split(ITEM_COMPOSE_ID_SEPARATOR)[0];\n result[currentParentId].push(id);\n }\n }\n }\n // const { designSystem, fonts, images, panels, stencils } = result;\n const { fonts, panels, stencils, images } = result;\n\n // this.designSystemSelected = designSystem;\n this.#panelsSelected = panels;\n this.#stencilsSelected = stencils;\n this.#imagesSelected = images;\n this.#fontsSelected = fonts;\n };\n\n #selectFileHandler = (): void => {\n this.#fileInputHiddenEl.click();\n };\n\n #styleComboBoxInputHandler = (event: CustomEvent<string> | InputEvent) => {\n this.styleValue = (event.target as HTMLChComboBoxRenderElement).value;\n if (\n this.reactiveSettings.style &&\n this.styleValue !== this.lastLoadCallbackSettingValues.style\n ) {\n this.#loadData();\n }\n };\n\n #moduleInputHandler = (event: CustomEvent<EntityData>) => {\n if (\n this.reactiveSettings.module &&\n this.defaultModule.id !== event.detail.id &&\n this.pathIsValid\n ) {\n this.#loadData();\n }\n };\n\n #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 const style = this.styleValue;\n const importAsWebPanels = this.#importAsWebPanelsEl.value === CHECKED_VALUE;\n const designData: DesignData = await this.loadCallback(\n source,\n style,\n importAsWebPanels,\n token,\n this.#messageCallback\n );\n\n // clear\n this.#panelsSelected = [];\n this.#stencilsSelected = [];\n this.#fontsSelected = [];\n this.selectedDesignType = undefined;\n this.selectedDesignItem = undefined;\n this.messages = [];\n\n this.designData = designData;\n this.isLoaded = designData?.success ?? false;\n this.isLoading = false;\n\n const firstDesignSystemName = designData.designSystem[0]?.name;\n if (firstDesignSystemName && !this.styleValue) {\n this.styleValue = firstDesignSystemName;\n }\n\n // update the settings that were used for the last load\n if (this.reactiveSettings.path && this.pathIsValid) {\n this.lastLoadCallbackSettingValues.path = this.path;\n }\n if (this.reactiveSettings.style) {\n this.lastLoadCallbackSettingValues.style = style;\n }\n if (this.reactiveSettings.module) {\n this.lastLoadCallbackSettingValues.moduleId = this.#moduleEl.value.id;\n }\n if (this.reactiveSettings.importAsWebPanels) {\n this.lastLoadCallbackSettingValues.importAsWebPanels = importAsWebPanels;\n }\n };\n\n #messageCallback: LoadMessageCallback = message => {\n this.messages = [...this.messages, message];\n };\n\n #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 #getCodeFactory(designType: string) {\n switch (designType) {\n case DESIGN_DATA_TYPE_PANELS:\n case DESIGN_DATA_TYPE_STENCILS:\n this.textEditorFactoryCallback(\n \"code\",\n TAB_DATA.code.slot,\n this.selectedDesignItem.code\n );\n this.textEditorFactoryCallback(\n \"html\",\n TAB_DATA.layout.slot,\n this.selectedDesignItem.layout\n );\n break;\n case DESIGN_DATA_TYPE_DESIGN_SYSTEM:\n this.textEditorFactoryCallback(\n \"tokens\",\n TAB_DATA.tokens.slot,\n this.selectedDesignItem.tokens\n );\n this.textEditorFactoryCallback(\n \"styles\",\n TAB_DATA.styles.slot,\n this.selectedDesignItem.styles\n );\n break;\n }\n }\n\n #confirm = (): void => {\n this.confirmCallback({\n panels: this.#panelsSelected,\n stencils: this.#stencilsSelected,\n fonts: this.#fontsSelected,\n images: this.#imagesSelected,\n moduleId: this.#moduleEl?.value?.id,\n styleName: this.styleValue,\n importAsWebPanels: this.#importAsWebPanelsEl.value === CHECKED_VALUE\n });\n };\n\n #cancel = (): void => {\n this.cancelCallback();\n this.isLoading = false;\n };\n\n #fitImagesHandler = (event: ChCheckboxCustomEvent<any> | InputEvent) => {\n this.fitImages = event.detail === CHECKED_VALUE;\n };\n\n #getPanelsSelectedItem = (panels: DesignItemData[]): number => {\n return panels.reduce((minIndex, item, index, panels) => {\n return panels[minIndex].name <= item.name ? minIndex : index;\n }, 0);\n };\n\n #importAsWebPanelsChangedHandler = () => {\n const loadData =\n this.reactiveSettings.importAsWebPanels && this.pathIsValid;\n if (loadData) {\n this.#loadData();\n }\n };\n\n #removeFileSelection = () => {\n this.selectedFile = null;\n this.path = \"\";\n this.accessToken = \"\";\n this.selectedFile = null;\n this.#fileInputHiddenEl.value = null;\n };\n\n #selectFileInputChangedHandler = (event: InputEvent) => {\n const target = event.target as HTMLInputElement;\n if (target.files?.length > 0) {\n this.selectedFile = target.files[0];\n this.path = this.selectedFile.name;\n // we know the path is valid because the extensions are restricted by \"extensions\" Prop.\n }\n };\n\n #accessFocusHandler = (event: ChEditCustomEvent<string> | FocusEvent) => {\n const element = event.target as HTMLChEditElement;\n element.type = \"text\"; // display token on focus\n };\n\n #accessBlurHandler = (event: ChEditCustomEvent<string> | FocusEvent) => {\n const element = event.target as HTMLChEditElement;\n element.type = \"password\"; // hide token on blur\n\n this.accessTokenChanged(element.value);\n };\n\n #pathUrlInputHandler = async (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.path = event.detail as string;\n this.#evaluateAccessTokenRender();\n this.selectedFile = null;\n if (!this.path.length) {\n this.designData = null;\n }\n };\n\n #renderHeader = (): Element => {\n const primaryButtonDisabled =\n this.isLoading ||\n (this.pathIsValid &&\n this.requiresAccessToken &&\n this.accessToken.length === 0);\n const clearFileButtonDisabled = this.isLoading || this.path.length === 0;\n const stylesComboDisabled = this.isLoading;\n const moduleDisabled = this.isLoading;\n const pathWithErrorStyles = !this.pathIsValid && this.path.length > 0;\n const displayPathErrorTooltip = !this.pathIsValid && this.path.length > 0;\n const fitImagesIsDisabled =\n this.isLoading ||\n !this.designDataTreeDataModel.length ||\n this.selectedDesignType === \"stencils\" ||\n this.selectedDesignType === \"design_system\";\n\n let primaryButtonCaption;\n if (\n this.pathIsValid &&\n this.path === this.lastLoadCallbackSettingValues.path\n ) {\n primaryButtonCaption = this.#componentLocale.header.btnReload;\n } else if (this.pathIsValid) {\n primaryButtonCaption = this.#componentLocale.header.btnLoad;\n } else {\n primaryButtonCaption = this.#componentLocale.header.selectFileButton;\n }\n\n return (\n <header\n class={{\n \"header\": true,\n \"control-header-with-border\": true,\n \"spacing-body-inline\": true,\n \"spacing-body-block-start\": true,\n \"header--show-access-token\": this.requiresAccessToken,\n \"header--hide-access-token\": !this.requiresAccessToken,\n \"field-group-cols-2\": true\n }}\n >\n <label\n // path/url label\n class=\"label path-url-label\"\n >\n {this.#componentLocale.header.path}\n </label>\n <div class=\"path-url-wrapper buttons-spacer\">\n <ch-edit\n // path/url/file input\n id=\"path-url\"\n class={{\n \"input\": true,\n \"input-error\": pathWithErrorStyles,\n \"path-url-control\": true\n }}\n debounce={config.inputDebounce}\n part=\"option-path\"\n type=\"text\"\n value={this.path}\n onInput={this.#pathUrlInputHandler}\n onBlur={this.reactiveSettings.path && this.#pathURLBlurHandler}\n disabled={this.isLoading}\n placeholder={`${this.#componentLocale.header.pathPlaceholder}`}\n startImgSrc={FILE_UPLOAD}\n ref={(el: HTMLChEditElement) =>\n (this.#pathEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n {displayPathErrorTooltip && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={this.#pathEl as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.#componentLocale.header.pathErrorMessage}{\" \"}\n {this.#formattedExtensions}\n </ch-tooltip>\n )}\n\n <input\n hidden\n type=\"file\"\n accept={this.#formattedExtensions}\n onChange={this.#selectFileInputChangedHandler}\n ref={(el: HTMLInputElement) =>\n (this.#fileInputHiddenEl = el as HTMLInputElement)\n }\n />\n\n <div class=\"buttons-spacer\">\n <button\n // remove file selection\n aria-label={this.#componentLocale.header.removeFileSelection}\n title={this.#componentLocale.header.removeFileSelection}\n id=\"reset-all-button\"\n class=\"button-tertiary button-icon-only\"\n part=\"reset-all-button\"\n disabled={clearFileButtonDisabled}\n onClick={!clearFileButtonDisabled && this.#removeFileSelection}\n >\n <ch-image\n class=\"icon-md\"\n src={MENU_DELETE}\n disabled={clearFileButtonDisabled}\n ></ch-image>\n </button>\n <button\n // load file button\n id=\"button-load\"\n type=\"primary-text-only\"\n onClick={\n this.pathIsValid ? this.#loadData : this.#selectFileHandler\n }\n part=\"button button--load\"\n disabled={primaryButtonDisabled}\n class={{\n \"button-primary\": this.pathIsValid,\n \"button-secondary\": !this.pathIsValid,\n \"select-load-button\": true\n }}\n >\n {primaryButtonCaption}\n </button>\n </div>\n </div>\n\n {this.requiresAccessToken && [\n <label\n // access token label\n class=\"label access-token-label\"\n >\n {this.#componentLocale.header.accessToken}\n </label>,\n <div>\n <ch-edit\n class={{\n \"input\": true,\n \"access-token\": true,\n \"input-error\": this.accessTokenHasError\n }}\n ref={(el: HTMLChEditElement) =>\n (this.#accessTokenEl = el as HTMLChEditElement)\n }\n value={this.accessToken}\n placeholder={this.#componentLocale.header.accessTokenPlaceholder}\n onFocus={this.#accessFocusHandler}\n onBlur={this.#accessBlurHandler}\n part=\"access-token\"\n disabled={this.isLoading}\n type=\"password\"\n ></ch-edit>\n {this.accessTokenHasError && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={\n this.#accessTokenEl as unknown as HTMLButtonElement\n }\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.#componentLocale.header.accessTokenErrorMessage}\n </ch-tooltip>\n )}\n </div>\n ]}\n <label\n // style label\n class=\"label style-label\"\n >\n {this.#componentLocale.header.style}\n </label>\n <ch-combo-box-render\n // style combo box\n suggest={true}\n suggestOptions={{\n alreadyProcessed: true\n }}\n disabled={stylesComboDisabled}\n model={this.stylesAsComboBoxModel}\n value={this.styleValue}\n onInput={this.#styleComboBoxInputHandler}\n part=\"option-style\"\n class=\"combo-box style\"\n ></ch-combo-box-render>\n\n <label\n // module label\n class=\"label module-label\"\n >\n {this.#componentLocale.header.module}\n </label>\n <gx-ide-entity-selector\n // module entity selector\n labelPosition=\"none\"\n value={this.defaultModule}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#moduleEl = el as HTMLGxIdeEntitySelectorElement)\n }\n onValueChanged={\n this.reactiveSettings.module && this.#moduleInputHandler\n }\n disabled={moduleDisabled}\n class=\"module\"\n ></gx-ide-entity-selector>\n\n <div\n // import as web panels\n class=\"checkboxes-options field-group\"\n >\n <ch-checkbox\n caption={this.#componentLocale.header.importAs}\n checkedValue={CHECKED_VALUE}\n class=\"checkbox import-as-web-panels\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#importAsWebPanelsEl = el as HTMLChCheckboxElement)\n }\n value={this.importAsWebPanels ? CHECKED_VALUE : undefined}\n part=\"option-import-as-web-panels\"\n disabled={this.isLoading}\n onInput={this.#importAsWebPanelsChangedHandler}\n ></ch-checkbox>\n\n <div\n class={{\n \"field-group-inline\": true,\n \"checkboxes-options__col-right\": true\n }}\n >\n <ch-checkbox\n // fit images\n caption={this.#componentLocale.header.fitImages}\n checkedValue={CHECKED_VALUE}\n class=\"checkbox\"\n part=\"fit-images-checkbox\"\n disabled={fitImagesIsDisabled}\n onInput={this.#fitImagesHandler}\n ></ch-checkbox>\n </div>\n </div>\n </header>\n );\n };\n\n #renderMessages = (): HTMLParagraphElement[] => {\n return (\n this.messages.length > 0 &&\n this.messages.map(message => (\n <p\n class={{\n \"text-body-regular-m\": true,\n \"message\": true,\n [`message--${message.type}`]: true\n }}\n >\n {message.type}: {message.text}\n </p>\n ))\n );\n };\n\n #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 #renderMain = () => {\n if (this.isLoading || this.designData?.success === false) {\n return (\n <div\n class=\"main main--loading scrollable\"\n ref={(el: HTMLElement) => (this.#messagesList = el as HTMLElement)}\n >\n {this.#renderMessages()}\n <div class=\"text-body-regular-m spacing-body\">\n <slot name=\"messages\"></slot>\n </div>\n </div>\n );\n } else if (this.designData?.success) {\n return (\n /* #main*/\n <div class=\"main\">\n {[this.#renderDesignTree(), this.#renderDesignTabsCh()]}\n </div>\n );\n } else {\n return (\n <gx-ide-empty-state\n class=\"empty-state scrollable\"\n stateIconSrc={DESIGN}\n isAnimated={this.#emptyStateAnimated}\n stateTitle={this.#componentLocale.messages.noDesignSelected}\n key=\"no-objects-empty-state\"\n >\n <button\n // begin by selecting a file\n class=\"button-tertiary empty-state-button\"\n onClick={this.#selectFileHandler}\n >\n {this.#componentLocale.messages.selectDesign}\n </button>\n </gx-ide-empty-state>\n );\n }\n };\n\n #renderDesignTree = (): HTMLChTreeViewElement => {\n return (\n <ch-tree-view-render\n part=\"data-tree\"\n class=\"tree-view\"\n id=\"data-tree\"\n showLines=\"last\"\n model={this.designDataTreeDataModel}\n dragDisabled={true}\n dropDisabled={true}\n expandableButton=\"action\"\n expandOnClick={false}\n toggleCheckboxes={true}\n checkbox={true}\n checked={true}\n onCheckedItemsChange={this.#objectsTreeCheckedItemsChangedHandler}\n onSelectedItemsChange={this.#objectsTreeSelectedItemsChangedHandler}\n ></ch-tree-view-render>\n );\n };\n\n #renderFooter = () => {\n const buttonOkDisabled =\n this.designData?.success !== true || this.isLoading;\n return (\n <footer class=\"control-footer-with-border spacing-body-block-end spacing-body-inline\">\n <div class=\"buttons-spacer\">\n <button\n // button cancel\n id=\"button-cancel\"\n class=\"button-secondary button-cancel\"\n type=\"outlined\"\n onClick={this.#cancel}\n part=\"button button--cancel\"\n slot=\"footer-end\"\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n <button\n // button ok\n id=\"button-ok\"\n class=\"button-primary button-ok\"\n type=\"primary-text-only\"\n onClick={!buttonOkDisabled && this.#confirm}\n part=\"button button--ok\"\n disabled={buttonOkDisabled}\n slot=\"footer-end\"\n >\n {this.#componentLocale.footer.btnOk}\n </button>\n </div>\n </footer>\n );\n };\n\n #evaluatePanelPreview = () => {\n if (this.selectedDesignType === \"panels\") {\n return this.selectedDesignItem?.composition?.preview ? (\n <div\n part=\"data-panel-composition-preview\"\n class=\"panel-item scrollable\"\n >\n <img\n src={this.selectedDesignItem.composition.preview}\n alt=\"Preview\"\n />\n </div>\n ) : (\n <gx-ide-empty-state\n class=\"panel-tab__empty-state\"\n stateTitle={this.#componentLocale.messages.noPanelPreviewAvailable}\n stateIconSrc={\n this.#importAsWebPanelsEl.value === CHECKED_VALUE\n ? WEBPANEL_ICON\n : PANEL_FOR_SD_ICON\n }\n ></gx-ide-empty-state>\n );\n }\n return null;\n };\n\n #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.#evaluatePanelPreview()}\n\n {renderControlsTree ? (\n <ch-tree-view-render\n part=\"data-panel-composition-tree\"\n class=\"tree-view tree-view-panel-item scrollable\"\n showLines=\"last\"\n model={this.detailTreeModel}\n dragDisabled={true}\n dropDisabled={true}\n ></ch-tree-view-render>\n ) : null}\n </div>\n );\n };\n\n #renderImageTab = () => {\n return (\n <div\n part=\"data-panel-composition-preview\"\n class=\"data-preview\"\n style={{ height: \"100%\" }}\n >\n <img\n src={this.selectedDesignItem ? this.selectedDesignItem : undefined}\n alt=\"Preview\"\n class={\n this.selectedDesignType === DESIGN_DATA_TYPE_IMAGES\n ? \"checker-board\"\n : undefined\n }\n />\n </div>\n );\n };\n\n #tabSelectionChangedHandler = (\n event: CustomEvent<{\n lastSelectedIndex: number;\n newSelectedId: string;\n newSelectedIndex: number;\n }>\n ): void => {\n this.renderedTabs.clear();\n this.renderedTabs.add(event.detail.newSelectedId);\n this.reRenderCounter++;\n this.activeTabs.set(this.selectedDesignType, event.detail.newSelectedId);\n };\n\n #renderDesignTabsCh = (): HTMLChTabRenderElement => {\n return (\n <ch-tab-render\n // main section\n class={{\n \"tab\": true,\n \"scrollable\": true,\n \"fit-images\": this.fitImages\n }}\n tabListPosition=\"block-start\"\n model={this.tabsModel}\n selectedId={this.activeTabs.get(this.selectedDesignType)}\n overflow=\"auto\"\n contain=\"size\"\n onSelectedItemChange={this.#tabSelectionChangedHandler}\n >\n <div\n slot={TAB_DATA.tokens.slot}\n class=\"spacing-body\"\n style={{\n display: this.renderedTabs.has(TAB_DATA.tokens.id) ? \"\" : \"none\"\n }}\n >\n <slot name={TAB_DATA.tokens.slot}></slot>\n </div>\n\n <div\n slot={TAB_DATA.styles.slot}\n class=\"spacing-body\"\n style={{\n display: this.renderedTabs.has(TAB_DATA.styles.id) ? \"\" : \"none\"\n }}\n >\n <slot name={TAB_DATA.styles.slot}></slot>\n </div>\n\n <div\n class=\"composition-tab-slot scrollable\"\n slot={TAB_DATA.composition.slot}\n style={{\n display: this.renderedTabs.has(TAB_DATA.composition.id)\n ? \"\"\n : \"none\"\n }}\n >\n {this.selectedDesignType === DESIGN_DATA_TYPE_IMAGES ||\n this.selectedDesignType === DESIGN_DATA_TYPE_FONTS\n ? this.#renderImageTab()\n : this.#renderPanelTab()}\n </div>\n\n <div\n slot={TAB_DATA.layout.slot}\n class=\"spacing-body\"\n style={{\n display: this.renderedTabs.has(TAB_DATA.layout.id) ? \"\" : \"none\"\n }}\n >\n <slot name={TAB_DATA.layout.slot}></slot>\n </div>\n\n <div\n slot={TAB_DATA.code.slot}\n class=\"spacing-body\"\n style={{\n display: this.renderedTabs.has(TAB_DATA.code.id) ? \"\" : \"none\"\n }}\n >\n <slot name={TAB_DATA.code.slot}></slot>\n </div>\n </ch-tab-render>\n );\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n {this.#renderHeader()}\n {this.#renderMain()}\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type LoadMessageCallback = (message: MessageData) => void;\nexport type LoadCallback = (\n source: string | File,\n designSystem: string,\n importAsWebPanels: boolean,\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: string,\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 success: boolean;\n}\n\nexport interface DesignItemData {\n id: string;\n name: string;\n variants?: DesignItemData[];\n}\n\nexport interface DesignPanelData {\n composition: DesignPanelCompositionData;\n code?: string;\n layout?: 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\nexport type TextEditorType = \"code\" | \"html\" | \"styles\" | \"tokens\";\n\nexport type ReactiveSettings = {\n path: boolean;\n style: boolean;\n module: boolean;\n importAsWebPanels: boolean;\n};\n\ntype ReactiveSettingsValues = {\n path: string;\n style: string;\n moduleId: string;\n importAsWebPanels: boolean;\n};\n"]}