@genexus/genexus-ide-ui 0.0.109 → 0.0.111

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 (191) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/{gx-ide-add-module-servers.cjs.entry.js → gx-ide-edit-module-server.cjs.entry.js} +6 -6
  3. package/dist/cjs/{gx-ide-add-module-servers.cjs.entry.js.map → gx-ide-edit-module-server.cjs.entry.js.map} +1 -1
  4. package/dist/cjs/gx-ide-empty-state.cjs.entry.js +70 -0
  5. package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -0
  6. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
  7. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +142 -63
  9. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-status-buttons.cjs.entry.js +5 -10
  11. package/dist/cjs/gx-ide-status-buttons.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gxg-buttons-container_2.cjs.entry.js +1 -1
  13. package/dist/cjs/gxg-buttons-container_2.cjs.entry.js.map +1 -1
  14. package/dist/cjs/{gx-ide-empty-state_2.cjs.entry.js → gxg-card_2.cjs.entry.js} +121 -63
  15. package/dist/cjs/gxg-card_2.cjs.entry.js.map +1 -0
  16. package/dist/cjs/gxg-combo-box_2.cjs.entry.js +1 -0
  17. package/dist/cjs/gxg-combo-box_2.cjs.entry.js.map +1 -1
  18. package/dist/cjs/gxg-ide-loader.cjs.entry.js +4 -15
  19. package/dist/cjs/gxg-ide-loader.cjs.entry.js.map +1 -1
  20. package/dist/cjs/gxg-tab_4.cjs.entry.js +1 -1
  21. package/dist/cjs/gxg-tab_4.cjs.entry.js.map +1 -1
  22. package/dist/cjs/loader.cjs.js +1 -1
  23. package/dist/collection/collection-manifest.json +1 -2
  24. package/dist/collection/components/_helpers/status-buttons/gx-ide-status-buttons.css +370 -29
  25. package/dist/collection/components/_helpers/status-buttons/gx-ide-status-buttons.js +4 -99
  26. package/dist/collection/components/_helpers/status-buttons/gx-ide-status-buttons.js.map +1 -1
  27. package/dist/collection/components/kb-manager-import/kb-manager-import.js +1 -1
  28. package/dist/collection/components/kb-manager-import/kb-manager-import.js.map +1 -1
  29. package/dist/collection/components/modules/{edit-module-servers/edit-module-servers.js → edit-module-server/edit-module-server.js} +12 -12
  30. package/dist/collection/components/modules/{add-module-servers/add-module-servers.js.map → edit-module-server/edit-module-server.js.map} +1 -1
  31. package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +10 -4
  32. package/dist/collection/components/modules/manage-module-references/manage-module-references.css +43 -22
  33. package/dist/collection/components/modules/manage-module-references/manage-module-references.js +167 -63
  34. package/dist/collection/components/modules/manage-module-references/manage-module-references.js.map +1 -1
  35. package/dist/collection/components/modules/types.js.map +1 -1
  36. package/dist/components/combo-box.js +2 -1
  37. package/dist/components/combo-box.js.map +1 -1
  38. package/dist/components/container.js +2 -2
  39. package/dist/components/form-checkbox.js +1 -1
  40. package/dist/components/form-radio-group.js +1 -1
  41. package/dist/components/form-text.js +1 -1
  42. package/dist/components/form-textarea.js +1 -1
  43. package/dist/components/form.js +1 -1
  44. package/dist/components/gx-ide-ai-assistant.js +1 -1
  45. package/dist/components/gx-ide-bpm-app-declaration.js +2 -2
  46. package/dist/components/gx-ide-create-kb-from-server.js +2 -2
  47. package/dist/components/gx-ide-dashboard-home.js +2 -2
  48. package/dist/components/gx-ide-data-selector.js +2 -2
  49. package/dist/components/gx-ide-edit-module-server.d.ts +11 -0
  50. package/dist/components/{gx-ide-add-module-servers.js → gx-ide-edit-module-server.js} +13 -13
  51. package/dist/components/{gx-ide-add-module-servers.js.map → gx-ide-edit-module-server.js.map} +1 -1
  52. package/dist/components/gx-ide-empty-state2.js +2 -2
  53. package/dist/components/gx-ide-import-from-design.js +2 -2
  54. package/dist/components/gx-ide-kb-manager-export.js +2 -2
  55. package/dist/components/gx-ide-kb-manager-import.js +3 -3
  56. package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
  57. package/dist/components/gx-ide-manage-module-references.js +173 -90
  58. package/dist/components/gx-ide-manage-module-references.js.map +1 -1
  59. package/dist/components/gx-ide-new-environment.js +2 -2
  60. package/dist/components/gx-ide-new-kb.js +2 -2
  61. package/dist/components/gx-ide-new-object.js +2 -2
  62. package/dist/components/gx-ide-object-selector.js +2 -2
  63. package/dist/components/gx-ide-references.js +2 -2
  64. package/dist/components/gx-ide-share-kb.js +2 -2
  65. package/dist/components/gx-ide-start-page.js +2 -2
  66. package/dist/components/gx-ide-status-buttons2.js +6 -16
  67. package/dist/components/gx-ide-status-buttons2.js.map +1 -1
  68. package/dist/components/gx-ide-team-dev-commit.js +2 -2
  69. package/dist/components/gx-ide-team-dev-select-recent-comment.js +2 -2
  70. package/dist/components/gx-ide-team-dev-update-partial-selection.js +2 -2
  71. package/dist/components/gx-ide-team-dev-update-to-revision.js +2 -2
  72. package/dist/components/gx-ide-team-dev-update.js +2 -2
  73. package/dist/components/gx-ide-template.js +2 -2
  74. package/dist/components/gx-ide-title.js +1 -1
  75. package/dist/components/gx-ide-top-bar.js +1 -1
  76. package/dist/components/gx-ide-ww-images.js +2 -2
  77. package/dist/components/gxg-container.js +1 -1
  78. package/dist/components/gxg-form-checkbox-group2.js +1 -1
  79. package/dist/components/gxg-menu-slim-list.js +1 -1
  80. package/dist/components/gxg-title.js +1 -1
  81. package/dist/components/gxg-top-state-bar2.js +1 -1
  82. package/dist/components/gxg-top-state-bar2.js.map +1 -1
  83. package/dist/components/ide-loader.js +7 -16
  84. package/dist/components/ide-loader.js.map +1 -1
  85. package/dist/components/list-box.js +1 -1
  86. package/dist/components/list-selector.js +1 -1
  87. package/dist/components/recent-news.js +2 -2
  88. package/dist/components/suggest.js +1 -1
  89. package/dist/components/tabs.js +1 -1
  90. package/dist/components/tabs.js.map +1 -1
  91. package/dist/components/title-editable.js +1 -1
  92. package/dist/components/title.js +31 -32
  93. package/dist/components/title.js.map +1 -1
  94. package/dist/components/title2.js +32 -31
  95. package/dist/components/title2.js.map +1 -1
  96. package/dist/esm/genexus-ide-ui.js +1 -1
  97. package/dist/esm/{gx-ide-add-module-servers.entry.js → gx-ide-edit-module-server.entry.js} +6 -6
  98. package/dist/esm/{gx-ide-add-module-servers.entry.js.map → gx-ide-edit-module-server.entry.js.map} +1 -1
  99. package/dist/esm/gx-ide-empty-state.entry.js +66 -0
  100. package/dist/esm/gx-ide-empty-state.entry.js.map +1 -0
  101. package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
  102. package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
  103. package/dist/esm/gx-ide-manage-module-references.entry.js +142 -63
  104. package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
  105. package/dist/esm/gx-ide-status-buttons.entry.js +5 -10
  106. package/dist/esm/gx-ide-status-buttons.entry.js.map +1 -1
  107. package/dist/esm/gxg-buttons-container_2.entry.js +1 -1
  108. package/dist/esm/gxg-buttons-container_2.entry.js.map +1 -1
  109. package/dist/esm/{gx-ide-empty-state_2.entry.js → gxg-card_2.entry.js} +122 -64
  110. package/dist/{cjs/gx-ide-empty-state_2.cjs.entry.js.map → esm/gxg-card_2.entry.js.map} +1 -1
  111. package/dist/esm/gxg-combo-box_2.entry.js +1 -0
  112. package/dist/esm/gxg-combo-box_2.entry.js.map +1 -1
  113. package/dist/esm/gxg-ide-loader.entry.js +4 -15
  114. package/dist/esm/gxg-ide-loader.entry.js.map +1 -1
  115. package/dist/esm/gxg-tab_4.entry.js +1 -1
  116. package/dist/esm/gxg-tab_4.entry.js.map +1 -1
  117. package/dist/esm/loader.js +1 -1
  118. package/dist/genexus-ide-ui/genexus-ide-ui.css +4 -3
  119. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  120. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  121. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +10 -4
  122. package/dist/genexus-ide-ui/{p-b7bc3c0c.entry.js → p-00704c36.entry.js} +6 -6
  123. package/dist/genexus-ide-ui/{p-b7bc3c0c.entry.js.map → p-00704c36.entry.js.map} +1 -1
  124. package/dist/genexus-ide-ui/p-5ca7da19.entry.js +94 -0
  125. package/dist/genexus-ide-ui/p-5ca7da19.entry.js.map +1 -0
  126. package/dist/genexus-ide-ui/{p-41ac8e60.entry.js → p-5fe20f47.entry.js} +2 -2
  127. package/dist/genexus-ide-ui/p-5fe20f47.entry.js.map +1 -0
  128. package/dist/genexus-ide-ui/{p-adaf7aff.entry.js → p-713ad05d.entry.js} +185 -109
  129. package/dist/genexus-ide-ui/p-713ad05d.entry.js.map +1 -0
  130. package/dist/genexus-ide-ui/{p-40121554.entry.js → p-9f9fda93.entry.js} +172 -120
  131. package/dist/genexus-ide-ui/p-9f9fda93.entry.js.map +1 -0
  132. package/dist/genexus-ide-ui/{p-ee9f4e20.entry.js → p-bc04fcaa.entry.js} +7 -15
  133. package/dist/genexus-ide-ui/p-bc04fcaa.entry.js.map +1 -0
  134. package/dist/genexus-ide-ui/{p-5a5d3e19.entry.js → p-c9cceb40.entry.js} +1 -4
  135. package/dist/genexus-ide-ui/p-c9cceb40.entry.js.map +1 -0
  136. package/dist/genexus-ide-ui/{p-e9e4482b.entry.js → p-decf86d4.entry.js} +114 -127
  137. package/dist/genexus-ide-ui/p-decf86d4.entry.js.map +1 -0
  138. package/dist/genexus-ide-ui/{p-045a084f.entry.js → p-f37ec5b8.entry.js} +2 -1
  139. package/dist/genexus-ide-ui/p-f37ec5b8.entry.js.map +1 -0
  140. package/dist/genexus-ide-ui/{p-a46794f4.entry.js → p-f91c432e.entry.js} +3 -3
  141. package/dist/genexus-ide-ui/{p-a46794f4.entry.js.map → p-f91c432e.entry.js.map} +1 -1
  142. package/dist/node_modules/@genexus/gemini/dist/collection/components/ide-loader/ide-loader.css +3 -0
  143. package/dist/node_modules/@genexus/gemini/dist/collection/components/tabs/tabs.css +1 -0
  144. package/dist/node_modules/@genexus/gemini/dist/collection/components/top-state-bar/gxg-top-state-bar.css +32 -34
  145. package/dist/types/components/_helpers/status-buttons/gx-ide-status-buttons.d.ts +0 -20
  146. package/dist/types/components/modules/{add-module-servers/add-module-servers.d.ts → edit-module-server/edit-module-server.d.ts} +2 -2
  147. package/dist/types/components/modules/manage-module-references/manage-module-references.d.ts +20 -8
  148. package/dist/types/components/modules/types.d.ts +5 -4
  149. package/dist/types/components.d.ts +85 -199
  150. package/package.json +3 -3
  151. package/dist/cjs/gx-ide-edit-module-servers.cjs.entry.js +0 -98
  152. package/dist/cjs/gx-ide-edit-module-servers.cjs.entry.js.map +0 -1
  153. package/dist/cjs/gxg-title-editable.cjs.entry.js +0 -128
  154. package/dist/cjs/gxg-title-editable.cjs.entry.js.map +0 -1
  155. package/dist/collection/components/modules/add-module-servers/add-module-servers.js +0 -251
  156. package/dist/collection/components/modules/add-module-servers/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.en.json +0 -11
  157. package/dist/collection/components/modules/add-module-servers/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.ja.json +0 -3
  158. package/dist/collection/components/modules/add-module-servers/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.zh.json +0 -3
  159. package/dist/collection/components/modules/edit-module-servers/edit-module-servers.css +0 -560
  160. package/dist/collection/components/modules/edit-module-servers/edit-module-servers.js.map +0 -1
  161. package/dist/collection/components/modules/edit-module-servers/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.en.json +0 -11
  162. package/dist/collection/components/modules/edit-module-servers/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.ja.json +0 -3
  163. package/dist/collection/components/modules/edit-module-servers/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.zh.json +0 -3
  164. package/dist/components/gx-ide-add-module-servers.d.ts +0 -11
  165. package/dist/components/gx-ide-edit-module-servers.d.ts +0 -11
  166. package/dist/components/gx-ide-edit-module-servers.js +0 -186
  167. package/dist/components/gx-ide-edit-module-servers.js.map +0 -1
  168. package/dist/esm/gx-ide-edit-module-servers.entry.js +0 -94
  169. package/dist/esm/gx-ide-edit-module-servers.entry.js.map +0 -1
  170. package/dist/esm/gx-ide-empty-state_2.entry.js.map +0 -1
  171. package/dist/esm/gxg-title-editable.entry.js +0 -124
  172. package/dist/esm/gxg-title-editable.entry.js.map +0 -1
  173. package/dist/genexus-ide-ui/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.en.json +0 -11
  174. package/dist/genexus-ide-ui/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.ja.json +0 -3
  175. package/dist/genexus-ide-ui/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.zh.json +0 -3
  176. package/dist/genexus-ide-ui/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.en.json +0 -11
  177. package/dist/genexus-ide-ui/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.ja.json +0 -3
  178. package/dist/genexus-ide-ui/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.zh.json +0 -3
  179. package/dist/genexus-ide-ui/p-045a084f.entry.js.map +0 -1
  180. package/dist/genexus-ide-ui/p-36544e00.entry.js +0 -138
  181. package/dist/genexus-ide-ui/p-36544e00.entry.js.map +0 -1
  182. package/dist/genexus-ide-ui/p-40121554.entry.js.map +0 -1
  183. package/dist/genexus-ide-ui/p-41ac8e60.entry.js.map +0 -1
  184. package/dist/genexus-ide-ui/p-5a5d3e19.entry.js.map +0 -1
  185. package/dist/genexus-ide-ui/p-adaf7aff.entry.js.map +0 -1
  186. package/dist/genexus-ide-ui/p-b7d0697f.entry.js +0 -138
  187. package/dist/genexus-ide-ui/p-b7d0697f.entry.js.map +0 -1
  188. package/dist/genexus-ide-ui/p-e9e4482b.entry.js.map +0 -1
  189. package/dist/genexus-ide-ui/p-ee9f4e20.entry.js.map +0 -1
  190. package/dist/types/components/modules/edit-module-servers/edit-module-servers.d.ts +0 -60
  191. /package/dist/collection/components/modules/{add-module-servers/add-module-servers.css → edit-module-server/edit-module-server.css} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["escapeRegExp","str","replace","hiChar","text","filterValue","escapedFilterValue","re","RegExp","h","innerHTML","cardCss","GxgCard","constructor","hostRef","this","titleType","hasSlot","hasHeaderSlot","renderCardSubtitle","cardSubtitle","subtitleLink","class","href","target","elevation","background","padding","minHeight","height","maxWidth","noShadow","noBorder","undefined","noPaddingTop","cardTitle","noHeaderBorder","titleSemibold","subtitleIcon","cardType","icon","iconColor","subtitleColor","editableTitle","actionable","displayHeaderSlot","componentWillLoad","el","querySelector","headerSlot","render","Host","role","card","mercury","state","style","wrapper","type","color","value","disableEdition","name","titleEditableCss","GxgTitleEditable","edit","editing","positionCursorAtTheEnd","wrapperClickedHandler","textInput","selectionStart","selectionEnd","length","focus","inputKeyDownHandler","e","key","preventDefault","editButtonEl","fluid","setInputWidth","detectClickOutsideFunc","clickedOutside","detectClickOutside","wrapperEl","width","inputInputHandler","ghostDiv","innerText","updateInputWidth","ghostDivWidth","getBoundingClientRect","debounce","debounceDelay","disabled","clickToEdit","focusType","validationStatus","validationMessage","hideTooltip","watchValueHandler","newValue","clearTimeout","timeoutReference","setTimeout","valueChanged","emit","watchEditingHandler","document","addEventListener","removeEventListener","componentDidLoad","formClasses","commonClassesNames","onMouseUp","ref","readOnly","onKeyDown","onInput","tabIndex","onClick","formTooltipLogic"],"sources":["node_modules/@genexus/gemini/dist/collection/common/hiChar.js","node_modules/@genexus/gemini/dist/collection/components/card/card.css?tag=gxg-card&encapsulation=shadow","node_modules/@genexus/gemini/dist/collection/components/card/card.js","node_modules/@genexus/gemini/dist/collection/components/title-editable/title-editable.css?tag=gxg-title-editable&encapsulation=shadow","node_modules/@genexus/gemini/dist/collection/components/title-editable/title-editable.js"],"sourcesContent":["/* STENCIL IMPORTS */\nimport { h } from \"@stencil/core\";\n/*A function that helps highlighting characters when searching.*/\nexport const escapeRegExp = (str) => {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n};\nexport const hiChar = function (text, filterValue) {\n if (text && filterValue) {\n /* this function highlights the character(s) that match(es) the filter value. (hi)light (Char)acters */\n const escapedFilterValue = escapeRegExp(filterValue);\n const re = new RegExp(escapedFilterValue, \"gi\");\n return (h(\"span\", { innerHTML: text.replace(re, '<span class=\"hiChar\">$&</span>') }));\n }\n else {\n return text;\n }\n};\n//# sourceMappingURL=hiChar.js.map\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n/* Document\n ========================================================================== */\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\nhtml {\n line-height: 1.15;\n /* 1 */\n -webkit-text-size-adjust: 100%;\n /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n/**\n * Remove the margin in all browsers.\n */\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\nhr {\n box-sizing: content-box;\n /* 1 */\n height: 0;\n /* 1 */\n overflow: visible;\n /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\npre {\n font-family: monospace, monospace;\n /* 1 */\n font-size: 1em;\n /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n/**\n * Remove the gray background on active links in IE 10.\n */\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\nabbr[title] {\n border-bottom: none;\n /* 1 */\n text-decoration: underline;\n /* 2 */\n text-decoration: underline dotted;\n /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace;\n /* 1 */\n font-size: 1em;\n /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n/**\n * Remove the border on images inside links in IE 10.\n */\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit;\n /* 1 */\n font-size: 100%;\n /* 1 */\n line-height: 1.15;\n /* 1 */\n margin: 0;\n /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\nbutton::-moz-focus-inner,\n[type=button]::-moz-focus-inner,\n[type=reset]::-moz-focus-inner,\n[type=submit]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\nbutton:-moz-focusring,\n[type=button]:-moz-focusring,\n[type=reset]:-moz-focusring,\n[type=submit]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\nlegend {\n box-sizing: border-box;\n /* 1 */\n color: inherit;\n /* 2 */\n display: table;\n /* 1 */\n max-width: 100%;\n /* 1 */\n padding: 0;\n /* 3 */\n white-space: normal;\n /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n[type=checkbox],\n[type=radio] {\n box-sizing: border-box;\n /* 1 */\n padding: 0;\n /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n[type=number]::-webkit-inner-spin-button,\n[type=number]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n[type=search] {\n -webkit-appearance: textfield;\n /* 1 */\n outline-offset: -2px;\n /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n[type=search]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n /* 1 */\n font: inherit;\n /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n/**\n * Add the correct display in IE 10+.\n */\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n[hidden] {\n display: none;\n}\n\n:root {\n --ui-animaton-speed: 0.2s;\n}\n\n/*ALIGNMENT*/\n/*Ellipsis*/\n/*****************************************************\nTYPOGRAPHY\n*****************************************************/\n/*Title 01 (Positive)*/\n.gxg-title-01 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n/*Title 01 (Negative)*/\n.gxg-title-01--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 02 (Positive)*/\n.gxg-title-02 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-02--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--color-on-primary);\n}\n\n/*Title 03*/\n.gxg-title-03 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-03--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 04*/\n.gxg-title-04 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-04--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 05*/\n.gxg-title-05 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-05--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Text*/\n.gxg-text {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-text--negative {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n.gxg-text--gray {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--dimmed);\n}\n\n/*Quote*/\n.gxg-quote {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n font-style: italic;\n}\n\n.gxg-quote--negative {\n color: var(--ds-base-font-color--negative);\n}\n\n/*Link*/\n.gxg-link {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n}\n.gxg-link:hover {\n color: var(--ds-base-font-color--link-hover);\n}\n.gxg-link:active {\n color: var(--ds-base-font-color--link-active);\n}\n\n.gxg-link-gray {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n}\n.gxg-link-gray:hover {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n filter: brightness(1.4);\n}\n\n/*Alerts*/\n.gxg-alert-error {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--error);\n display: inline-block;\n}\n\n.gxg-alert-warning {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--warning);\n display: inline-block;\n}\n\n.gxg-alert-success {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--success);\n display: inline-block;\n}\n\n/*Tab*/\n.gxg-tab--disabled {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n.gxg-tab--disabled[disabled] {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n\n/*Label*/\n.gxg-label {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--gxg-label-font-weight);\n font-size: var(--gxg-label-font-size);\n color: var(--gxg-label-color);\n text-align: center;\n line-height: 1.455em;\n display: flex;\n align-items: center;\n}\n.gxg-label:hover {\n color: var(--color-primary-hover);\n}\n.gxg-label:focus {\n color: var(--color-primary-active);\n}\n.gxg-label:active {\n color: var(--color-primary-active);\n}\n.gxg-label[disabled] {\n color: var(--color-primary-disabled);\n}\n\n.gxg-label--negative {\n color: var(--color-on-primary);\n}\n.gxg-label--negative[disabled] {\n color: var(--color-on-disabled);\n}\n\n/*****************************************************\nGXG-BUTTON and GXG-BUTTON-GROUP COMMON STYLES\n*****************************************************/\n/*****************************************************\nFORM ELEMENTS\n*****************************************************/\n.gxg-scrollbar {\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gxg-scrollbar::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gxg-scrollbar::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gxg-scrollbar::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n/*--- Elevation ---*/\n:host {\n display: block;\n background-color: var(--gxg-card_background-color);\n box-shadow: var(--gxg-card_box-shadow);\n border-radius: var(--gxg-card_border-radius);\n border-style: solid;\n border-width: 1px;\n border-color: transparent;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n:host([elevation=xs]) {\n box-shadow: var(--gxg-card_box-shadow);\n}\n\n:host([elevation=m]) {\n box-shadow: var(--gxg-card_box-shadow);\n}\n\n:host([padding=\"0\"]) {\n padding: 0;\n}\n\n:host([padding=xs]) {\n padding: var(--gxg-card_padding-xs);\n}\n\n:host([padding=s]) {\n padding: var(--gxg-card_padding-s);\n}\n\n:host([padding=m]) {\n padding: var(--gxg-card_padding-m);\n}\n\n:host([padding=l]) {\n padding: var(--gxg-card_padding-l);\n}\n\n:host([padding=xl]) {\n padding: var(--gxg-card_padding-xl);\n}\n\n:host([padding=xxl]) {\n padding: var(--gxg-card_padding-xxl);\n}\n\n:host([padding=xxxl]) {\n padding: var(--gxg-card_padding-xxxl);\n}\n\n:host([background=white]) {\n background: var(--gxg-card_background-white);\n}\n\n:host([background=gray-01]) {\n background: var(--gxg-card_background-gray);\n}\n\n.content {\n /* Track */\n /* Handle */\n /* Handle on hover */\n overflow: auto;\n height: 100%;\n}\n.content::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.content::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.content::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.content::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.content::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n/*No Shadow*/\n:host(.card--no-shadow) {\n box-shadow: none;\n}\n\n/*Title*/\n:host(.card--title) .wrapper {\n display: flex;\n flex-direction: column;\n height: 100%;\n grid-template-rows: auto 1fr;\n}\n\n:host(.card) {\n background-color: var(--gxg-card_background-color);\n}\n:host(.card) .card__header {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: var(--gxg-card-header_margin);\n padding-block-end: var(--gxg-card-header_padding-block-end);\n border-block-end: var(--gxg-card-header_border-block-end);\n gap: var(--gxg-card-header_gap);\n}\n:host(.card) .card__header--left {\n display: flex;\n align-items: center;\n gap: var(--gxg-card-header-left_gap);\n width: var(--gxg-card-header-left_width);\n}\n:host(.card) .card__header--left .card-title-wrapper {\n width: 100%;\n white-space: nowrap;\n overflow: hidden;\n}\n:host(.card) .card__header--left-full-width {\n width: 100% !important;\n}\n:host(.card) .card__header--left-full-width .card-title-wrapper {\n white-space: unset;\n}\n:host(.card) .card__header--right {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: end;\n gap: var(--gxg-card-header-right_gap);\n font-size: var(--font-size-xl);\n width: var(--gxg-card-header-right_width);\n overflow: hidden;\n white-space: nowrap;\n}\n:host(.card) .card__header .subtitle-wrapper {\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--gxg-card-subtitle_color);\n padding-inline-end: var(--gxg-card-subtitle-wrapper_padding-inline-end);\n /*prevents text cut text if italic, due to ellipsis*/\n}\n:host(.card) .card__header .subtitle-wrapper a {\n color: var(--gxg-card-subtitle-wrapper_link-color);\n}\n:host(.card) .card__header .subtitle {\n white-space: nowrap;\n color: var(--gxg-card-subtitle-wrapper_color);\n}\n:host(.card) .content {\n padding: var(--gxg-card-content_padding);\n font-size: var(--gxg-card-content_font-size);\n line-height: var(--gxg-card-content_line-height);\n color: var(--gxg-card-content_color);\n}\n\n/*--- Default ---*/\n:host(.card--default) {\n background: var(--color-background);\n}\n:host(.card--default) .content {\n padding: 0;\n}\n\n/*--- Section ---*/\n:host(.card--section) {\n font-size: var(--gxg-card-section_font-size);\n border-radius: var(--gxg-card-section_border-radius);\n padding: var(--gxg-card-section_padding);\n background-color: var(--mer-elevation__background-color--01);\n border: var(--mer-elevation__border-01);\n box-shadow: var(--mer-elevation__box-shadow--01);\n}\n:host(.card--section) .card__title {\n font-weight: var(--gxg-card-section-title_font-weight);\n font-size: var(--gxg-card-section-title_font-size);\n}\n\n/*--- Article ---*/\n:host(.card--article) {\n font-size: var(--gxg-card-article_font-size);\n border-radius: var(--gxg-card-article_border-radius);\n padding: var(--gxg-card-article_padding);\n background-color: var(--mer-elevation__background-color--02);\n border: var(--mer-elevation__border-02);\n box-shadow: var(--mer-elevation__box-shadow--02);\n border: var(--gxg-card-article_border);\n}\n:host(.card--article) .card__header .card__title {\n margin: var(--gxg-card-article-title_margin);\n color: var(--gxg-card-article-title_color);\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: var(--gxg-card-article-title_font-weight);\n font-size: var(--gxg-card-article-title_font-size);\n}\n:host(.card--article) .card__header .subtitle-wrapper {\n color: var(--gxg-card-article-subtitle-wrapper_color);\n font-style: var(--gxg-card-article-subtitle-wrapper_font-style);\n}\n:host(.card--article) .content {\n font-style: var(--gxg-card-article-subtitle-content_font-style);\n color: var(--gxg-card-article-content_color);\n line-height: var(--gxg-card-article-subtitle-content_line-height);\n}\n\n/*semibold*/\n:host(.card--article.title-semibold) .card__header .card__title {\n font-weight: var(--gxg-card-article-title-semibold_font-weight);\n}\n\n/*--- Mini ---*/\n:host(.card--mini) {\n font-size: var(--gxg-card-mini_font-size);\n border-radius: var(--gxg-card-mini_border-radius);\n padding: var(--gxg-card-mini_padding);\n background-color: var(--mer-elevation__background-color--02);\n border: var(--mer-elevation__border-02);\n box-shadow: var(--mer-elevation__box-shadow--02);\n border: var(--gxg-card-mini_border);\n}\n:host(.card--mini) .card__header {\n margin: var(--gxg-card-mini-header_margin);\n padding-block-end: var(--gxg-card-mini-header_padding-block-end);\n border-bottom: var(--gxg-card-mini-header_border-bottom);\n}\n:host(.card--mini) .card__header .card__header--left {\n width: var(--gxg-card-mini-header-left_width);\n gap: var(--gxg-card-mini-header-left_gap);\n}\n:host(.card--mini) .card__header .card__title {\n margin: var(--gxg-card-mini-title_margin);\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: var(--gxg-card-mini-title_font-weight);\n font-size: var(--gxg-card-mini-title_font-size);\n color: var(--gxg-card-mini-title_color);\n}\n:host(.card--mini) .content {\n font-style: var(--gxg-card-mini-content_font-style);\n font-size: var(--gxg-card-mini_font-size);\n padding: var(--gxg-card-mini-content_padding);\n color: var(--gxg-card-mini-content_color);\n}\n\n:host(.card--no-content) .card__header {\n border-bottom: 0;\n}\n\n/*actionable*/\n:host(.card--actionable:hover) {\n filter: brightness(var(--gxg-card-actionable-brightness--hover));\n}\n:host(.card--actionable:hover) .wrapper,\n:host(.card--actionable:hover) .card__header,\n:host(.card--actionable:hover) .content {\n cursor: pointer;\n}\n\n/*no header border*/\n:host(.no-header-border) .card__header {\n padding-bottom: 0;\n border-bottom: 0;\n}\n\n/*noBorder*/\n:host(.card--no-border) {\n border: none !important;\n}\n\n/*hiChar*/\n.hiChar {\n color: var(--gxg-hi-char-color);\n font-weight: 600;\n}","import { h, Host } from \"@stencil/core\";\nimport state from \"../store\";\nimport { hiChar } from \"../../common/hiChar\";\nexport class GxgCard {\n constructor() {\n this.elevation = \"xs\";\n this.background = \"white\";\n this.padding = \"xs\";\n this.minHeight = \"auto\";\n this.height = \"auto\";\n this.maxWidth = \"100%\";\n this.noShadow = false;\n this.noBorder = false;\n this.hiChar = false;\n this.filterValue = undefined;\n this.noPaddingTop = false;\n this.cardTitle = undefined;\n this.noHeaderBorder = false;\n this.titleSemibold = false;\n this.cardSubtitle = undefined;\n this.subtitleLink = undefined;\n this.subtitleIcon = undefined;\n this.cardType = \"section\";\n this.icon = undefined;\n this.iconColor = \"auto\";\n this.subtitleColor = \"auto\";\n this.editableTitle = false;\n this.actionable = false;\n this.displayHeaderSlot = false;\n }\n el;\n /*--- Mercury Only Tokens ---*/\n titleType = \"h2\";\n hasSlot = false;\n hasHeaderSlot = false;\n componentWillLoad() {\n if (this.cardType === \"article\") {\n this.titleType = \"h2\";\n }\n else if (this.cardType === \"mini\") {\n this.titleType = \"h4\";\n }\n const hasSlot = this.el.querySelector(\"*\");\n if (hasSlot) {\n this.hasSlot = true;\n }\n const headerSlot = this.el.querySelector(\"[slot='header']\");\n if (headerSlot || this.displayHeaderSlot) {\n this.hasHeaderSlot = true;\n }\n }\n renderCardSubtitle = () => {\n if (this.cardSubtitle && this.subtitleLink) {\n return (h(\"a\", { class: \"subtitle\", href: this.subtitleLink, target: \"_blank\" }, this.cardSubtitle));\n }\n else if (this.cardSubtitle && !this.subtitleLink) {\n {\n return this.hiChar\n ? hiChar(this.cardSubtitle, this.filterValue)\n : this.cardSubtitle;\n }\n }\n };\n render() {\n return (h(Host, { role: \"article\", class: {\n card: true,\n mercury: state.mercury,\n \"card--no-content\": !this.hasSlot,\n \"card--section\": this.cardType === \"section\",\n \"card--article\": this.cardType === \"article\",\n \"card--mini\": this.cardType === \"mini\",\n \"card--title\": this.cardTitle !== undefined,\n \"card--actionable\": this.actionable &&\n (this.cardType === \"article\" || this.cardType === \"mini\"),\n \"title-semibold\": this.titleSemibold,\n \"card--no-shadow\": this.noShadow,\n \"card--no-border\": this.noBorder,\n \"no-header-border\": this.noHeaderBorder\n }, style: {\n maxWidth: this.maxWidth,\n minHeight: this.minHeight,\n height: this.height\n } }, h(\"div\", { role: this.actionable ? \"button\" : \"none\", class: {\n wrapper: true,\n \"wrapper--header\": this.cardTitle !== undefined\n } }, this.cardTitle ? (h(\"header\", { class: \"card__header\" }, h(\"div\", { class: {\n \"card__header--left\": true,\n \"card__header--left-full-width\": !this.cardSubtitle\n } }, this.icon ? (h(\"gxg-icon\", { type: this.icon, color: this.iconColor })) : null, h(\"div\", { class: \"card-title-wrapper\" }, this.cardType === \"section\" ? (h(\"gxg-title-editable\", { class: \"card__title\", titleType: this.titleType, value: this.cardTitle, disableEdition: !this.editableTitle })) : (h(\"h2\", { class: \"card__title\" }, this.hiChar\n ? hiChar(this.cardTitle, this.filterValue)\n : this.cardTitle)))), this.cardSubtitle &&\n this.cardType !== \"mini\" &&\n !this.hasHeaderSlot ? (h(\"div\", { class: \"card__header--right\" }, h(\"div\", { class: \"subtitle-wrapper\" }, this.renderCardSubtitle()), this.subtitleIcon ? (h(\"gxg-icon\", { type: this.subtitleIcon, color: this.subtitleColor })) : null)) : null, this.hasHeaderSlot ? (h(\"div\", { class: \"card__header--right\" }, h(\"slot\", { name: \"header\" }))) : null)) : null, this.hasSlot ? (h(\"div\", { class: \"content\" }, h(\"slot\", null))) : null)));\n }\n static get is() { return \"gxg-card\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"card.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"card.css\"]\n };\n }\n static get properties() {\n return {\n \"elevation\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"elevation\",\n \"resolved\": \"\\\"m\\\" | \\\"xs\\\"\",\n \"references\": {\n \"elevation\": {\n \"location\": \"local\",\n \"path\": \"/home/circleci/repo/src/components/card/card.tsx\",\n \"id\": \"src/components/card/card.tsx::elevation\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The card box-shadow\"\n },\n \"attribute\": \"elevation\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"xs\\\"\"\n },\n \"background\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"background\",\n \"resolved\": \"\\\"gray-01\\\" | \\\"white\\\"\",\n \"references\": {\n \"background\": {\n \"location\": \"local\",\n \"path\": \"/home/circleci/repo/src/components/card/card.tsx\",\n \"id\": \"src/components/card/card.tsx::background\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The background color\"\n },\n \"attribute\": \"background\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"white\\\"\"\n },\n \"padding\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"padding\",\n \"resolved\": \"\\\"0\\\" | \\\"l\\\" | \\\"m\\\" | \\\"s\\\" | \\\"xl\\\" | \\\"xs\\\" | \\\"xxl\\\" | \\\"xxxl\\\"\",\n \"references\": {\n \"padding\": {\n \"location\": \"local\",\n \"path\": \"/home/circleci/repo/src/components/card/card.tsx\",\n \"id\": \"src/components/card/card.tsx::padding\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The card padding\"\n },\n \"attribute\": \"padding\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"xs\\\"\"\n },\n \"minHeight\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The component min. height\"\n },\n \"attribute\": \"min-height\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"auto\\\"\"\n },\n \"height\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The component height\"\n },\n \"attribute\": \"height\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"auto\\\"\"\n },\n \"maxWidth\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The component max. width\"\n },\n \"attribute\": \"max-width\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"100%\\\"\"\n },\n \"noShadow\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Disables box-shadow\"\n },\n \"attribute\": \"no-shadow\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"noBorder\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Removes border\"\n },\n \"attribute\": \"no-border\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"hiChar\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"This allows to highlight any character on the card title, or subtitle.\"\n },\n \"attribute\": \"hi-char\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"filterValue\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"This is the filter value needed for hiChar.\"\n },\n \"attribute\": \"filter-value\",\n \"reflect\": false\n },\n \"noPaddingTop\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Remove padding from the top (applies only for the \\\"section\\\" card type)\"\n },\n \"attribute\": \"no-padding-top\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"cardTitle\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"An optional title\"\n },\n \"attribute\": \"card-title\",\n \"reflect\": false\n },\n \"noHeaderBorder\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Removes the header border\"\n },\n \"attribute\": \"no-header-border\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"titleSemibold\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Card title semibold\"\n },\n \"attribute\": \"title-semibold\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"cardSubtitle\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"An optional subtitle\"\n },\n \"attribute\": \"card-subtitle\",\n \"reflect\": false\n },\n \"subtitleLink\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"An optional subtitle link\"\n },\n \"attribute\": \"subtitle-link\",\n \"reflect\": false\n },\n \"subtitleIcon\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"An optional subtitle icon\"\n },\n \"attribute\": \"subtitle-icon\",\n \"reflect\": false\n },\n \"cardType\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"CardType\",\n \"resolved\": \"\\\"article\\\" | \\\"mini\\\" | \\\"section\\\"\",\n \"references\": {\n \"CardType\": {\n \"location\": \"local\",\n \"path\": \"/home/circleci/repo/src/components/card/card.tsx\",\n \"id\": \"src/components/card/card.tsx::CardType\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The card type (only for mercury)\"\n },\n \"attribute\": \"card-type\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"section\\\"\"\n },\n \"icon\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The card type (only for mercury)\"\n },\n \"attribute\": \"icon\",\n \"reflect\": false\n },\n \"iconColor\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"Color\",\n \"resolved\": \"\\\"alwaysblack\\\" | \\\"auto\\\" | \\\"disabled\\\" | \\\"error\\\" | \\\"indeterminate\\\" | \\\"mercury\\\" | \\\"mercury-neutral\\\" | \\\"mercury-on-primary\\\" | \\\"mercury-on-surface\\\" | \\\"mercury-primary\\\" | \\\"mercury-primary-disabled\\\" | \\\"mercury-text-on-message\\\" | \\\"negative\\\" | \\\"onbackground\\\" | \\\"ondisabled\\\" | \\\"primary-active\\\" | \\\"primary-enabled\\\" | \\\"primary-hover\\\" | \\\"success\\\" | \\\"warning\\\"\",\n \"references\": {\n \"Color\": {\n \"location\": \"import\",\n \"path\": \"../icon/icon\",\n \"id\": \"src/components/icon/icon.tsx::Color\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The icon color\"\n },\n \"attribute\": \"icon-color\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"auto\\\"\"\n },\n \"subtitleColor\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"Color\",\n \"resolved\": \"\\\"alwaysblack\\\" | \\\"auto\\\" | \\\"disabled\\\" | \\\"error\\\" | \\\"indeterminate\\\" | \\\"mercury\\\" | \\\"mercury-neutral\\\" | \\\"mercury-on-primary\\\" | \\\"mercury-on-surface\\\" | \\\"mercury-primary\\\" | \\\"mercury-primary-disabled\\\" | \\\"mercury-text-on-message\\\" | \\\"negative\\\" | \\\"onbackground\\\" | \\\"ondisabled\\\" | \\\"primary-active\\\" | \\\"primary-enabled\\\" | \\\"primary-hover\\\" | \\\"success\\\" | \\\"warning\\\"\",\n \"references\": {\n \"Color\": {\n \"location\": \"import\",\n \"path\": \"../icon/icon\",\n \"id\": \"src/components/icon/icon.tsx::Color\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The icon color\"\n },\n \"attribute\": \"subtitle-color\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"auto\\\"\"\n },\n \"editableTitle\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"It makes the title editable (only for mercury)\"\n },\n \"attribute\": \"editable-title\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"actionable\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"It applies a different style on hover. Useful when the card is actionable (has an action attached to the click event).\"\n },\n \"attribute\": \"actionable\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"displayHeaderSlot\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A way to force header slot evaluation.\"\n },\n \"attribute\": \"display-header-slot\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get elementRef() { return \"el\"; }\n}\n//# sourceMappingURL=card.js.map\n",":root {\n --ui-animaton-speed: 0.2s;\n}\n\n/*ALIGNMENT*/\n/*Ellipsis*/\n/*****************************************************\nTYPOGRAPHY\n*****************************************************/\n/*Title 01 (Positive)*/\n.gxg-title-01 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n/*Title 01 (Negative)*/\n.gxg-title-01--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 02 (Positive)*/\n.gxg-title-02 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-02--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--color-on-primary);\n}\n\n/*Title 03*/\n.gxg-title-03 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-03--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 04*/\n.gxg-title-04 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-04--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 05*/\n.gxg-title-05 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-05--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Text*/\n.gxg-text {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-text--negative {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n.gxg-text--gray {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--dimmed);\n}\n\n/*Quote*/\n.gxg-quote {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n font-style: italic;\n}\n\n.gxg-quote--negative {\n color: var(--ds-base-font-color--negative);\n}\n\n/*Link*/\n.gxg-link {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n}\n.gxg-link:hover {\n color: var(--ds-base-font-color--link-hover);\n}\n.gxg-link:active {\n color: var(--ds-base-font-color--link-active);\n}\n\n.gxg-link-gray {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n}\n.gxg-link-gray:hover {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n filter: brightness(1.4);\n}\n\n/*Alerts*/\n.gxg-alert-error {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--error);\n display: inline-block;\n}\n\n.gxg-alert-warning {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--warning);\n display: inline-block;\n}\n\n.gxg-alert-success {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--success);\n display: inline-block;\n}\n\n/*Tab*/\n.gxg-tab--disabled {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n.gxg-tab--disabled[disabled] {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n\n/*Label*/\n.gxg-label {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--gxg-label-font-weight);\n font-size: var(--gxg-label-font-size);\n color: var(--gxg-label-color);\n text-align: center;\n line-height: 1.455em;\n display: flex;\n align-items: center;\n}\n.gxg-label:hover {\n color: var(--color-primary-hover);\n}\n.gxg-label:focus {\n color: var(--color-primary-active);\n}\n.gxg-label:active {\n color: var(--color-primary-active);\n}\n.gxg-label[disabled] {\n color: var(--color-primary-disabled);\n}\n\n.gxg-label--negative {\n color: var(--color-on-primary);\n}\n.gxg-label--negative[disabled] {\n color: var(--color-on-disabled);\n}\n\n/*****************************************************\nGXG-BUTTON and GXG-BUTTON-GROUP COMMON STYLES\n*****************************************************/\n/*****************************************************\nFORM ELEMENTS\n*****************************************************/\n.gxg-scrollbar {\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gxg-scrollbar::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gxg-scrollbar::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gxg-scrollbar::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n/*Warning*/\n:host(.gxg-validation--warning) .form-element {\n border-color: var(--ds-border-color--warning);\n}\n:host(.gxg-validation--warning) .form-element:focus {\n outline-color: var(--ds-border-color--warning);\n border-color: var(--ds-border-color--warning);\n}\n:host(.gxg-validation--warning) .form-element:focus + .checkmark {\n --checkmark-border-color: var(--ds-border-color--warning);\n}\n\n/*Error*/\n:host(.gxg-validation--error) .form-element {\n border-color: var(--ds-border-color--error);\n}\n:host(.gxg-validation--error) .form-element:focus {\n outline-color: var(--ds-border-color--error);\n border-color: var(--ds-border-color--error);\n}\n:host(.gxg-validation--error) .form-element:focus + .checkmark {\n --checkmark-border-color: var(--ds-border-color--error);\n}\n\n/*Success*/\n:host(.gxg-validation--success) .form-element {\n border-color: var(--ds-border-color--success);\n}\n:host(.gxg-validation--success) .form-element:focus {\n outline-color: var(--ds-border-color--success);\n border-color: var(--ds-border-color--success);\n}\n:host(.gxg-validation--success) .form-element:focus + .checkmark {\n --checkmark-border-color: var(--ds-border-color--success);\n}\n\n/*Tooltip*/\n.tooltip-outer-wrapper {\n display: grid;\n grid-template-columns: 0fr;\n transition: grid-template-columns var(--timing-02);\n}\n\n:host(.tooltip--visible) .tooltip-outer-wrapper {\n grid-template-columns: 1fr;\n}\n\n.tooltip-inner-wrapper {\n --margin-inline-start: 6px;\n overflow: hidden;\n transition: 150ms width;\n width: 0;\n}\n.tooltip-inner-wrapper gxg-icon {\n display: flex;\n position: relative !important;\n top: 0 !important;\n transform: none !important;\n margin-inline-start: var(--margin-inline-start);\n box-sizing: border-box;\n}\n.tooltip-inner-wrapper--visible {\n width: calc(var(--ds-icon-size-box--small) + var(--margin-inline-start));\n}\n.tooltip-inner-wrapper--hidden {\n display: none;\n}\n\n:host(.gxg--disabled) .form-element,\n:host(.gxg--disabled.form-element) {\n pointer-events: none;\n background-color: var(--ds-background-color-disabled) !important;\n color: var(--ds-color--disabled) !important;\n border-color: var(--ds-border-color-disabled) !important;\n cursor: default !important;\n}\n\n:host {\n display: block;\n color: var(--gxg-title-editable__color);\n}\n:host .wrapper {\n font-family: var(--ds-base-font-family-primary);\n position: relative;\n max-width: 100%;\n}\n:host input {\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n text-transform: inherit;\n color: inherit;\n background-color: transparent;\n border: none;\n padding: 0;\n box-sizing: border-box;\n flex-grow: 1;\n cursor: auto;\n border-bottom: 2px solid transparent;\n}\n:host input:focus {\n outline: none;\n}\n\n/*wrapper*/\n.wrapper {\n display: flex;\n align-items: center;\n gap: var(--gxg-title-editable-wrapper__gap);\n font-weight: var(--gxg-title-editable__font-weight);\n}\n\n/*editing*/\n:host(:not([editing])) input {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/*click-to-edit*/\n:host([click-to-edit]:not([disable-edition])) .wrapper,\n:host([click-to-edit]:not([disable-edition])) input {\n cursor: pointer;\n}\n\n/*title types*/\n:host([title-type=h1]) .wrapper {\n font-size: var(--gxg-title-editable-h1__font-size);\n text-transform: capitalize;\n}\n\n:host([title-type=h2]) .wrapper {\n font-size: var(--gxg-title-editable-h2__font-size);\n}\n\n/*fluid*/\n:host([fluid]) .wrapper {\n display: inline-flex;\n}\n\n/*focus (optional)*/\n:host(.focus--text.editing) input {\n color: var(--gxg-title-editable__color--editing);\n}\n\n/*focus (optional)*/\n:host(.focus--line.editing) input {\n border-bottom-color: var(--gxg-title-editable__color--editing);\n}\n\n/*ghost div: it helps measuring the text width, to make the input as wide as needed (fluid)*/\n.ghost {\n font-family: inherit;\n font-size: inherit;\n position: fixed;\n visibility: hidden;\n height: auto;\n width: auto;\n white-space: nowrap;\n /*remove from viewport*/\n bottom: 0;\n left: 0;\n transform: translate(-100%, -100%);\n}\n\n.right-wrapper {\n display: flex;\n align-items: center;\n}","import { Host, h } from \"@stencil/core\";\nimport { formTooltipLogic } from \"../../common/form\";\nimport { formClasses } from \"../../common/classesNames\";\nimport { commonClassesNames } from \"../../common/classesNames\";\nimport { detectClickOutside } from \"../../common/detect-click-outside\";\nexport class GxgTitleEditable {\n constructor() {\n this.value = undefined;\n this.titleType = \"h1\";\n this.disableEdition = false;\n this.debounce = false;\n this.debounceDelay = 800;\n this.disabled = false;\n this.clickToEdit = false;\n this.fluid = false;\n this.focusType = undefined;\n this.validationStatus = \"indeterminate\";\n this.validationMessage = undefined;\n this.hideTooltip = false;\n this.editing = false;\n }\n textInput;\n wrapperEl;\n editButtonEl;\n ghostDiv;\n el;\n timeoutReference;\n watchValueHandler(newValue) {\n if (this.debounce) {\n clearTimeout(this.timeoutReference);\n this.timeoutReference = setTimeout(() => {\n this.valueChanged.emit(newValue);\n }, this.debounceDelay);\n }\n else {\n this.valueChanged.emit(newValue);\n }\n }\n watchEditingHandler(editing) {\n if (editing) {\n document.addEventListener(\"click\", this.detectClickOutsideFunc);\n }\n else {\n document.removeEventListener(\"click\", this.detectClickOutsideFunc);\n }\n }\n /* EVENTS */\n /**\n * Emitted when the value changes\n */\n valueChanged;\n /*COMPONENT LIFECYCLE METHODS*/\n componentDidLoad() {\n if (this.fluid) {\n this.inputInputHandler();\n }\n }\n /*PRIVATE METHODS*/\n edit = () => {\n this.editing = true;\n this.positionCursorAtTheEnd();\n };\n wrapperClickedHandler = () => {\n this.editing = true;\n };\n positionCursorAtTheEnd = () => {\n this.textInput.selectionStart = this.textInput.selectionEnd =\n this.textInput.value.length;\n this.textInput.focus();\n };\n inputKeyDownHandler = (e) => {\n if (e.key === \"Enter\" || e.key === \"Escape\") {\n e.preventDefault();\n this.editing = false;\n this.editButtonEl.focus();\n }\n else if (this.fluid) {\n this.setInputWidth();\n }\n };\n detectClickOutsideFunc = (e) => {\n const clickedOutside = detectClickOutside(e, this.wrapperEl);\n if (clickedOutside) {\n this.editing = false;\n }\n };\n setInputWidth = () => {\n this.textInput.style.width = this.value.length + 1 + \"ch\";\n };\n inputInputHandler = () => {\n this.value = this.textInput.value;\n if (this.fluid) {\n this.ghostDiv.innerText = this.value;\n this.updateInputWidth();\n }\n };\n updateInputWidth = () => {\n if (this.fluid) {\n const ghostDivWidth = this.ghostDiv.getBoundingClientRect().width;\n this.textInput.style.width = `${ghostDivWidth}px`;\n }\n };\n /*RENDER*/\n render() {\n return (h(Host, { class: {\n editing: this.editing,\n \"focus--text\": this.focusType === \"text\",\n \"focus--line\": this.focusType === \"line\",\n [formClasses[\"VALIDATION_INDETERMINATE_CLASS\"]]: this.validationStatus === \"indeterminate\",\n [formClasses[\"VALIDATION_WARNING_CLASS\"]]: this.validationStatus === \"warning\",\n [formClasses[\"VALIDATION_ERROR_CLASS\"]]: this.validationStatus === \"error\",\n [formClasses[\"VALIDATION_SUCCESS_CLASS\"]]: this.validationStatus === \"success\",\n [commonClassesNames[\"DISABLED_CLASS\"]]: this.disabled\n } }, h(\"div\", { onMouseUp: this.clickToEdit &&\n !this.editing &&\n !this.disableEdition &&\n this.wrapperClickedHandler, class: {\n wrapper: true\n }, ref: el => (this.wrapperEl = el) }, this.fluid ? (h(\"div\", { class: \"ghost\", ref: el => (this.ghostDiv = el) })) : null, h(\"input\", { type: \"text\", value: this.value, readOnly: !this.editing, ref: el => (this.textInput = el), onKeyDown: this.inputKeyDownHandler, onInput: this.inputInputHandler, tabIndex: this.editing ? 0 : -1 }), h(\"div\", { class: \"right-wrapper\" }, !this.disableEdition ? (h(\"gxg-button\", { type: \"secondary-icon-only\", icon: \"gemini-tools/edit\", onClick: this.edit, ref: el => (this.editButtonEl = el) })) : null, formTooltipLogic(this, this.hideTooltip)))));\n }\n static get is() { return \"gxg-title-editable\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"title-editable.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"title-editable.css\"]\n };\n }\n static get properties() {\n return {\n \"value\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The title value\"\n },\n \"attribute\": \"value\",\n \"reflect\": false,\n \"defaultValue\": \"undefined\"\n },\n \"titleType\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"EditableTitleType\",\n \"resolved\": \"\\\"h1\\\" | \\\"h2\\\" | \\\"h3\\\" | \\\"h4\\\"\",\n \"references\": {\n \"EditableTitleType\": {\n \"location\": \"local\",\n \"path\": \"/home/circleci/repo/src/components/title-editable/title-editable.tsx\",\n \"id\": \"src/components/title-editable/title-editable.tsx::EditableTitleType\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The title type\"\n },\n \"attribute\": \"title-type\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"h1\\\"\"\n },\n \"disableEdition\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If true, the title will not be editable\"\n },\n \"attribute\": \"disable-edition\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"debounce\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The presence of this attribute activates a debounce for the valueChanged event. This will cause the event to be emitted after 'debounceDelay' time.\"\n },\n \"attribute\": \"debounce\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"debounceDelay\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The debounce delay value. Only applies if 'debounce' is true.\"\n },\n \"attribute\": \"debounce-delay\",\n \"reflect\": false,\n \"defaultValue\": \"800\"\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The presence of this attribute makes the input disabled\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"clickToEdit\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If true, it will allow the title to be edited\"\n },\n \"attribute\": \"click-to-edit\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"fluid\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If true, the width of the title will take only the minimum needed space\"\n },\n \"attribute\": \"fluid\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"focusType\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"EditableTitleFocusType\",\n \"resolved\": \"\\\"line\\\" | \\\"text\\\"\",\n \"references\": {\n \"EditableTitleFocusType\": {\n \"location\": \"local\",\n \"path\": \"/home/circleci/repo/src/components/title-editable/title-editable.tsx\",\n \"id\": \"src/components/title-editable/title-editable.tsx::EditableTitleFocusType\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If true, the width of the title will take only the minimum needed space\"\n },\n \"attribute\": \"focus-type\",\n \"reflect\": true\n },\n \"validationStatus\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"ValidationStatus\",\n \"resolved\": \"\\\"error\\\" | \\\"indeterminate\\\" | \\\"success\\\" | \\\"warning\\\"\",\n \"references\": {\n \"ValidationStatus\": {\n \"location\": \"import\",\n \"path\": \"../../common/types\",\n \"id\": \"src/common/types.ts::ValidationStatus\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The validation status\"\n },\n \"attribute\": \"validation-status\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"indeterminate\\\"\"\n },\n \"validationMessage\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The message to display when validation fails (error)\"\n },\n \"attribute\": \"validation-message\",\n \"reflect\": false\n },\n \"hideTooltip\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Shows or hides the tooltip\"\n },\n \"attribute\": \"hide-tooltip\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get states() {\n return {\n \"editing\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"valueChanged\",\n \"name\": \"valueChanged\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the value changes\"\n },\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"value\",\n \"methodName\": \"watchValueHandler\"\n }, {\n \"propName\": \"editing\",\n \"methodName\": \"watchEditingHandler\"\n }];\n }\n}\n//# sourceMappingURL=title-editable.js.map\n"],"mappings":"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"}
@@ -1,22 +1,9 @@
1
1
  import { h as e, r, c as t, H as i } from "./p-48217969.js";
2
2
 
3
- const o = ":host(.gxg--disabled) .form-element,:host(.gxg--disabled.form-element){pointer-events:none;background-color:var(--ds-background-color-disabled) !important;color:var(--ds-color--disabled) !important;border-color:var(--ds-border-color-disabled) !important;cursor:default !important}:host{display:block}ch-window::part(mask){overflow:hidden}ch-window::part(main){height:100%}ch-window::part(window){width:100%;height:100%}.loader__wrapper{opacity:0;transition:var(--show-transition) opacity;width:100%;height:100%;display:flex;background-color:var(--gxg-ide-loader-wrapper__background-color--from);backdrop-filter:var(--gxg-ide-loader-wrapper__backdrop-filter);padding:var(--gxg-ide-loader-wrapper__padding);flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;color:var(--gxg-ide-loader-wrapper__color)}.loader__wrapper--visible{opacity:1}.loader__spinner{border:var(--gxg-ide-loader-spinner__border);border-top:var(--gxg-ide-loader-spinner__border-top);border-radius:50%;-webkit-animation:spinner 0.6s infinite linear;animation:spinner 0.6s infinite linear;width:var(--gxg-ide-loader-spinner__width);height:var(--gxg-ide-loader-spinner__width);flex-shrink:0}.loader__content-wrapper{display:flex;flex-direction:column;margin-block-start:var(--gxg-ide-loader-content-wrapper__mbs);gap:var(--gxg-ide-loader-content-wrapper__gap);max-width:var(--gxg-ide-loader-content-wrapper__max-width)}.loader__content-wrapper--hidden{display:none}@keyframes wrapper{from{background-color:var(--gxg-ide-loader-wrapper__background-color--from)}to{background-color:var(--gxg-ide-loader-wrapper__background-color--to)}}@-webkit-keyframes spinner{from{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(359deg)}}@keyframes spinner{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}";
3
+ const o = ":host(.gxg--disabled) .form-element,:host(.gxg--disabled.form-element){pointer-events:none;background-color:var(--ds-background-color-disabled) !important;color:var(--ds-color--disabled) !important;border-color:var(--ds-border-color-disabled) !important;cursor:default !important}:host{display:block}ch-window::part(mask){overflow:hidden}ch-window::part(main){height:100%}ch-window::part(window){width:100%;height:100%}.loader__wrapper{opacity:0;transition:var(--show-transition) opacity;width:100%;height:100%;display:flex;background-color:var(--gxg-ide-loader-wrapper__background-color--from);backdrop-filter:var(--gxg-ide-loader-wrapper__backdrop-filter);padding:var(--gxg-ide-loader-wrapper__padding);flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;color:var(--gxg-ide-loader-wrapper__color)}.loader__wrapper--visible{opacity:1}.loader__spinner{border:var(--gxg-ide-loader-spinner__border);border-top:var(--gxg-ide-loader-spinner__border-top);border-radius:50%;-webkit-animation:spinner 0.6s infinite linear;animation:spinner 0.6s infinite linear;width:var(--gxg-ide-loader-spinner__width);height:var(--gxg-ide-loader-spinner__width);flex-shrink:0}.loader__content-wrapper{display:flex;flex-direction:column;margin-block-start:var(--gxg-ide-loader-content-wrapper__mbs);gap:var(--gxg-ide-loader-content-wrapper__gap);max-width:var(--gxg-ide-loader-content-wrapper__max-width)}.loader__content-wrapper--hidden{display:none}@keyframes wrapper{from{background-color:var(--gxg-ide-loader-wrapper__background-color--from)}to{background-color:var(--gxg-ide-loader-wrapper__background-color--to)}}@-webkit-keyframes spinner{from{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(359deg)}}@keyframes spinner{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}:host([display-border]) .loader__wrapper{border:1px solid var(--mer-color__elevation--02)}";
4
4
 
5
5
  const a = class {
6
6
  constructor(i) {
7
- /*
8
- INDEX:
9
- 1.OWN PROPERTIES
10
- 2.REFERENCE TO ELEMENTS
11
- 3.STATE() VARIABLES
12
- 4.PUBLIC PROPERTY API | WATCH'S
13
- 5.EVENTS (EMIT)
14
- 6.COMPONENT LIFECYCLE EVENTS
15
- 7.LISTENERS
16
- 8.PUBLIC METHODS API
17
- 9.LOCAL METHODS
18
- 10.RENDER() FUNCTION
19
- */
20
7
  // 1.OWN PROPERTIES //
21
8
  /**
22
9
  * The transition speed for displaying/hiding the ch-window
@@ -60,6 +47,8 @@ const a = class {
60
47
  this.cancelCallback = undefined;
61
48
  this.show = false;
62
49
  this.abortTime = 5e3;
50
+ this.displayBorder = false;
51
+ this.borderRadius = "0";
63
52
  this.container = undefined;
64
53
  }
65
54
  showHandler(e) {
@@ -103,6 +92,9 @@ const a = class {
103
92
  [`loader__wrapper`]: true,
104
93
  "loader__wrapper--visible": this.showWrapper
105
94
  },
95
+ style: {
96
+ borderRadius: this.borderRadius
97
+ },
106
98
  part: "loader-wrapper"
107
99
  }, e("div", {
108
100
  class: "loader__spinner"
@@ -123,4 +115,4 @@ const a = class {
123
115
  a.style = o;
124
116
 
125
117
  export { a as gxg_ide_loader };
126
- //# sourceMappingURL=p-ee9f4e20.entry.js.map
118
+ //# sourceMappingURL=p-bc04fcaa.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ideLoaderCss","IdeLoader","constructor","hostRef","this","showTransition","renderTitle","loaderTitle","h","class","type","alignment","renderDescription","description","textAlign","renderCancelButton","cancelLabel","onClick","cancelProcess","cancelCallback","clearTimeout","timeoutReference","show","showWindow","showWrapper","undefined","abortTime","displayBorder","borderRadius","container","showHandler","timeout","setTimeout","loaderFinished","emit","render","Host","closeOnEscape","closeOnOutsideClick","hidden","modal","showFooter","showHeader","style","part"],"sources":["node_modules/@genexus/gemini/dist/collection/components/ide-loader/ide-loader.css?tag=gxg-ide-loader&encapsulation=shadow","node_modules/@genexus/gemini/dist/collection/components/ide-loader/ide-loader.js"],"sourcesContent":[":host(.gxg--disabled) .form-element,\n:host(.gxg--disabled.form-element) {\n pointer-events: none;\n background-color: var(--ds-background-color-disabled) !important;\n color: var(--ds-color--disabled) !important;\n border-color: var(--ds-border-color-disabled) !important;\n cursor: default !important;\n}\n\n:host {\n display: block;\n}\n\nch-window::part(mask) {\n overflow: hidden;\n}\n\nch-window::part(main) {\n height: 100%;\n}\n\nch-window::part(window) {\n width: 100%;\n height: 100%;\n}\n\n.loader__wrapper {\n opacity: 0;\n transition: var(--show-transition) opacity;\n width: 100%;\n height: 100%;\n display: flex;\n background-color: var(--gxg-ide-loader-wrapper__background-color--from);\n backdrop-filter: var(--gxg-ide-loader-wrapper__backdrop-filter);\n padding: var(--gxg-ide-loader-wrapper__padding);\n flex-direction: column;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n color: var(--gxg-ide-loader-wrapper__color);\n}\n.loader__wrapper--visible {\n opacity: 1;\n}\n.loader__spinner {\n border: var(--gxg-ide-loader-spinner__border);\n border-top: var(--gxg-ide-loader-spinner__border-top);\n border-radius: 50%;\n -webkit-animation: spinner 0.6s infinite linear;\n animation: spinner 0.6s infinite linear;\n width: var(--gxg-ide-loader-spinner__width);\n height: var(--gxg-ide-loader-spinner__width);\n flex-shrink: 0;\n}\n.loader__content-wrapper {\n display: flex;\n flex-direction: column;\n margin-block-start: var(--gxg-ide-loader-content-wrapper__mbs);\n gap: var(--gxg-ide-loader-content-wrapper__gap);\n max-width: var(--gxg-ide-loader-content-wrapper__max-width);\n}\n.loader__content-wrapper--hidden {\n display: none;\n}\n\n/*background color animation*/\n@keyframes wrapper {\n from {\n background-color: var(--gxg-ide-loader-wrapper__background-color--from);\n }\n to {\n background-color: var(--gxg-ide-loader-wrapper__background-color--to);\n }\n}\n/*spinner animation*/\n@-webkit-keyframes spinner {\n from {\n -webkit-transform: rotate(0deg);\n }\n to {\n -webkit-transform: rotate(359deg);\n }\n}\n@keyframes spinner {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n}\n:host([display-border]) .loader__wrapper {\n border: 1px solid var(--mer-color__elevation--02);\n}","import { Host, h } from \"@stencil/core\";\nexport class IdeLoader {\n constructor() {\n this.showWindow = false;\n this.showWrapper = false;\n this.loaderTitle = undefined;\n this.description = undefined;\n this.cancelLabel = undefined;\n this.cancelCallback = undefined;\n this.show = false;\n this.abortTime = 5000;\n this.displayBorder = false;\n this.borderRadius = \"0\";\n this.container = undefined;\n }\n // 1.OWN PROPERTIES //\n /**\n * The transition speed for displaying/hiding the ch-window\n */\n showTransition = 200;\n timeoutReference;\n // 2. REFERENCE TO ELEMENTS //\n containerEl;\n showHandler(show) {\n const timeout = 50;\n if (show) {\n this.showWindow = true;\n setTimeout(() => {\n this.showWrapper = true;\n }, timeout);\n }\n else {\n this.showWrapper = false;\n setTimeout(() => {\n this.showWindow = false;\n this.loaderFinished.emit();\n }, this.showTransition);\n }\n if (show) {\n if (this.timeoutReference) {\n clearTimeout(this.timeoutReference);\n }\n this.timeoutReference = setTimeout(() => {\n this.show = false;\n }, this.abortTime);\n }\n }\n // 5.EVENTS (EMIT) //\n loaderFinished;\n // 6.COMPONENT LIFECYCLE EVENTS //\n // 7.LISTENERS //\n // 8.PUBLIC METHODS API //\n // 9.LOCAL METHODS //\n renderTitle = () => {\n return this.loaderTitle ? (h(\"gxg-title\", { class: \"loader__title\", type: \"title-04\", alignment: \"center\" }, this.loaderTitle)) : null;\n };\n renderDescription = () => {\n return this.description ? (h(\"gxg-text\", { class: \"loader__description\", type: \"text-regular\", textAlign: \"center\" }, this.description)) : null;\n };\n renderCancelButton = () => {\n return this.cancelLabel ? (h(\"gxg-button\", { class: {\n [`loader__cancel-button`]: true\n }, type: \"secondary-text-icon\", onClick: this.cancelProcess }, this.cancelLabel)) : null;\n };\n cancelProcess = () => {\n if (this.cancelCallback) {\n this.cancelCallback();\n }\n clearTimeout(this.timeoutReference);\n this.show = false;\n };\n // 10.RENDER() FUNCTION //\n render() {\n return (h(Host, null, h(\"ch-window\", { closeOnEscape: false, closeOnOutsideClick: false, container: this.container, hidden: !this.showWindow, modal: false, showFooter: false, showHeader: false, style: { \"--show-transition\": `${this.showTransition}ms` } }, h(\"div\", { class: {\n [`loader__wrapper`]: true,\n \"loader__wrapper--visible\": this.showWrapper\n }, style: { borderRadius: this.borderRadius }, part: \"loader-wrapper\" }, h(\"div\", { class: \"loader__spinner\" }), h(\"div\", { class: {\n \"loader__content-wrapper\": true,\n \"loader__content-wrapper--hidden\": !this.description && !this.loaderTitle && !this.cancelLabel\n } }, this.renderTitle(), this.renderDescription(), this.renderCancelButton())))));\n }\n static get is() { return \"gxg-ide-loader\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ide-loader.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ide-loader.css\"]\n };\n }\n static get properties() {\n return {\n \"loaderTitle\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The loader title (optional)\"\n },\n \"attribute\": \"loader-title\",\n \"reflect\": false\n },\n \"description\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The loader description (optional)\"\n },\n \"attribute\": \"description\",\n \"reflect\": false\n },\n \"cancelLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The cancel button label (optional)\"\n },\n \"attribute\": \"cancel-label\",\n \"reflect\": false\n },\n \"cancelCallback\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IdeLoaderCancelCallback\",\n \"resolved\": \"() => void\",\n \"references\": {\n \"IdeLoaderCancelCallback\": {\n \"location\": \"local\",\n \"path\": \"/home/circleci/repo/src/components/ide-loader/ide-loader.tsx\",\n \"id\": \"src/components/ide-loader/ide-loader.tsx::IdeLoaderCancelCallback\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The cancel callback\"\n }\n },\n \"show\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"It shows the loader\"\n },\n \"attribute\": \"show\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"abortTime\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The time the loader will await before abort.\"\n },\n \"attribute\": \"abort-time\",\n \"reflect\": false,\n \"defaultValue\": \"5000\"\n },\n \"displayBorder\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Displays a border all around\"\n },\n \"attribute\": \"display-border\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"borderRadius\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The border radius value that applies on the .loader__wrapper\"\n },\n \"attribute\": \"border-radius\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"0\\\"\"\n },\n \"container\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"HTMLElement\",\n \"resolved\": \"HTMLElement\",\n \"references\": {\n \"HTMLElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLElement\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The container element for the loader.\"\n }\n }\n };\n }\n static get states() {\n return {\n \"showWindow\": {},\n \"showWrapper\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"loaderFinished\",\n \"name\": \"loaderFinished\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get watchers() {\n return [{\n \"propName\": \"show\",\n \"methodName\": \"showHandler\"\n }];\n }\n}\n//# sourceMappingURL=ide-loader.js.map\n"],"mappings":";;AAAA,MAAMA,IAAe;;MCCRC,IAAS;EAClB,WAAAC,CAAAC;;;;;IAiBAC,KAAAC,iBAAiB;;;;;QAkCjBD,KAAAE,cAAc,MACHF,KAAKG,cAAeC,EAAE,aAAa;MAAEC,OAAO;MAAiBC,MAAM;MAAYC,WAAW;OAAYP,KAAKG,eAAgB;IAEtIH,KAAAQ,oBAAoB,MACTR,KAAKS,cAAeL,EAAE,YAAY;MAAEC,OAAO;MAAuBC,MAAM;MAAgBI,WAAW;OAAYV,KAAKS,eAAgB;IAE/IT,KAAAW,qBAAqB,MACVX,KAAKY,cAAeR,EAAE,cAAc;MAAEC,OAAO;QAC5C,CAAC,0BAA0B;;MAC5BC,MAAM;MAAuBO,SAASb,KAAKc;OAAiBd,KAAKY,eAAgB;IAE5FZ,KAAAc,gBAAgB;MACZ,IAAId,KAAKe,gBAAgB;QACrBf,KAAKe;;MAETC,aAAahB,KAAKiB;MAClBjB,KAAKkB,OAAO;AAAK;;;IAlEjBlB,KAAKmB,aAAa;IAClBnB,KAAKoB,cAAc;IACnBpB,KAAKG,cAAckB;IACnBrB,KAAKS,cAAcY;IACnBrB,KAAKY,cAAcS;IACnBrB,KAAKe,iBAAiBM;IACtBrB,KAAKkB,OAAO;IACZlB,KAAKsB,YAAY;IACjBtB,KAAKuB,gBAAgB;IACrBvB,KAAKwB,eAAe;IACpBxB,KAAKyB,YAAYJ;;EAUrB,WAAAK,CAAYR;IACR,MAAMS,IAAU;IAChB,IAAIT,GAAM;MACNlB,KAAKmB,aAAa;MAClBS,YAAW;QACP5B,KAAKoB,cAAc;AAAI,UACxBO;WAEF;MACD3B,KAAKoB,cAAc;MACnBQ,YAAW;QACP5B,KAAKmB,aAAa;QAClBnB,KAAK6B,eAAeC;AAAM,UAC3B9B,KAAKC;;IAEZ,IAAIiB,GAAM;MACN,IAAIlB,KAAKiB,kBAAkB;QACvBD,aAAahB,KAAKiB;;MAEtBjB,KAAKiB,mBAAmBW,YAAW;QAC/B5B,KAAKkB,OAAO;AAAK,UAClBlB,KAAKsB;;;;EA4BhB,MAAAS;IACI,OAAQ3B,EAAE4B,GAAM,MAAM5B,EAAE,aAAa;MAAE6B,eAAe;MAAOC,qBAAqB;MAAOT,WAAWzB,KAAKyB;MAAWU,SAASnC,KAAKmB;MAAYiB,OAAO;MAAOC,YAAY;MAAOC,YAAY;MAAOC,OAAO;QAAE,qBAAqB,GAAGvC,KAAKC;;OAAwBG,EAAE,OAAO;MAAEC,OAAO;QAC1Q,CAAC,oBAAoB;QACrB,4BAA4BL,KAAKoB;;MAClCmB,OAAO;QAAEf,cAAcxB,KAAKwB;;MAAgBgB,MAAM;OAAoBpC,EAAE,OAAO;MAAEC,OAAO;QAAsBD,EAAE,OAAO;MAAEC,OAAO;QAC/H,2BAA2B;QAC3B,oCAAoCL,KAAKS,gBAAgBT,KAAKG,gBAAgBH,KAAKY;;OAClFZ,KAAKE,eAAeF,KAAKQ,qBAAqBR,KAAKW"}
@@ -554,9 +554,6 @@ const d = class {
554
554
  successes: this.statusInfo.success.number,
555
555
  hideMessage: true,
556
556
  compact: true,
557
- noBorderTop: true,
558
- noBorderBottom: true,
559
- noBorderStart: true,
560
557
  minimal: this.statusMinimal,
561
558
  onSelectionChanged: this.statusButtonsSelectionChangedHandler
562
559
  })))));
@@ -580,4 +577,4 @@ const d = class {
580
577
  d.style = g;
581
578
 
582
579
  export { d as gx_ide_kb_manager_import };
583
- //# sourceMappingURL=p-5a5d3e19.entry.js.map
580
+ //# sourceMappingURL=p-c9cceb40.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["KB_OBJECT","KB_CATEGORY","convertImportItemToTreeItem","importCatIcon","importItems","importTreeItems","forEach","importItem","push","id","caption","name","startImgSrc","expanded","leaf","class","metadata","convertImportCategoryToTreeView","importCategoryData","treeData","importCat","importCategoryTreeItem","items","length","icon","createImportResultDataMessages","importItemId","messagesArray","messages","message","i","updateImportStatusTree","importItemResultFullData","importTreeActualState","objectCategoryIndex","findIndex","objectCategoryItem","categoryId","importTreeItem","categoryName","categoryIcon","status","importItemIndex","_a","createImportResultFullData","importItemResultData","importCategoryFullData","Object","assign","undefined","importCategoryDataFor","categoryNode","j","addImportItemResultDataItem","updatedImportStatusTree","kbManagerImportCss","GxIdeKbManagerImport","this","renderedFirstTime","objectsInFileTotalNodes","selectedObjectsInFileIds","evaluateImportStatusMessage","someStatusVisible","statusInfo","error","display","warning","success","evaluateObjects","noObjects","objectsTreeState","evaluateImport","noImport","importTreeState","selectFileAndLoadHandler","fileInputEl","openFile","loadFileHandler","async","loadCallback","selectedFile","importCategoryTreeData","fileSelectedHandler","fileEvent","detail","importObjectsHandler","importCallback","clearStatusHandler","importingIsInProcess","objectsButtonsGroup","selectedButtonId","checkedObjectsIds","then","objectsTreeCheckedItemsChangedHandler","event","toggleObjectsCheckboxEl","checked","indeterminate","allItemsWithCheckbox","values","firstItemCheckedValue","item","allItemsHaveTheSameCheckedValue","every","treeItem","checkedItems","filter","node","checkedObjects","objectChecked","objectsTreeSelectedItemsChangedHandler","map","objectsTreeContextMenuHandler","objectContextMenuCallback","selection","clientX","contextmenuEvent","screenX","clientY","screenY","cancelImportHandler","cancelCallback","result","topStateBarEl","active","optionsHandler","optionsCallback","number","toggleSelectionClickHandler","e","target","objectsTreeEl","updateAllItemsProperties","statusButtonsSelectionChangedHandler","activeStates","errorIndex","state","itemId","warningIndex","successIndex","evaluateCheckAllValue","allAreChecked","conditionToUncheck","fileClearedHandler","watchObjectsTreeStateHandler","newState","countTreeItems","watchImportTreeStateHandler","importStatusMessage","_componentLocale","main","importStatus","noImportedFiles","importedButHidden","watchImportingIsInProcessHandler","isImporting","topStateBar","watchSelectedFileHandler","file","size","componentWillLoad","Locale","getComponentStrings","el","componentDidLoadEvent","emit","componentDidLoad","focus","componentDidRender","componentDidRenderFirstTime","componentName","addResultItem","render","h","Host","noContentPadding","noFooterPadding","containerTitle","displayTitle","slot","type","label","header","fileNameLabel","placeholder","fileNamePlaceholder","part","acceptFile","clearButton","iconPosition","onFileSelected","onClearButtonClicked","ref","onClick","disabled","selectFileButton","loader","title","objectsInFile","noBorderFooter","slimmerFooter","inactiveTitle","titleType","treeModel","dragDisabled","dropDisabled","toggleCheckboxes","checkbox","onCheckedItemsChange","onSelectedItemsChange","onItemContextmenu","textAlign","config","gxgMessage","common","padding","maxWidth","selectFile","selectUnselect","onChange","reduced","selected","importButton","cancelButton","optionsButton","errors","warnings","successes","hideMessage","compact","minimal","statusMinimal","onSelectionChanged"],"sources":["src/components/kb-manager-import/helpers.ts","src/components/kb-manager-import/kb-manager-import.scss?tag=gx-ide-kb-manager-import&encapsulation=shadow","src/components/kb-manager-import/kb-manager-import.tsx"],"sourcesContent":["/* Tree View */\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/renders/tree-view/types\";\n\n/* Kb Manager Import Types*/\nimport { ImportItemData } from \"./kb-manager-import\";\nimport { ImportCategoryData, ImportItemResultData } from \"../../common/types\";\n/* objects in file metadata*/\nexport const KB_OBJECT = \"object\";\nexport const KB_CATEGORY = \"category\";\n\nconst convertImportItemToTreeItem = (\n importCatIcon: string,\n importItems: ImportItemData[]\n) => {\n const importTreeItems: TreeViewItemModel[] = [];\n importItems.forEach(importItem => {\n importTreeItems.push({\n id: importItem.id,\n caption: importItem.name,\n startImgSrc: importCatIcon,\n expanded: true,\n leaf: true,\n class: \"object tree-view-item\",\n metadata: KB_OBJECT\n });\n });\n return importTreeItems;\n};\n\n/**\n * @description This function converts ReferenceData[] data to TreeItemData[]\n */\nexport const convertImportCategoryToTreeView = (\n importCategoryData: ImportCategoryData[]\n): TreeViewItemModel[] => {\n const treeData: TreeViewItemModel[] = [];\n if (!importCategoryData) {\n return treeData;\n }\n importCategoryData.forEach(importCat => {\n const importCategoryTreeItem: TreeViewItemModel = {\n id: importCat.id,\n // caption: importCat.name,\n caption: `${importCat.name} (${importCat.items.length})`,\n startImgSrc: importCat.icon,\n expanded: true,\n leaf: false,\n class: \"category tree-view-item\",\n metadata: KB_CATEGORY,\n items: convertImportItemToTreeItem(importCat.icon, importCat.items)\n };\n treeData.push(importCategoryTreeItem);\n });\n return treeData;\n};\n\nconst createImportResultDataMessages = (\n importItemId: string,\n messagesArray: string[]\n): TreeViewItemModel[] => {\n const messages: TreeViewItemModel[] = [];\n messagesArray.forEach((message, i) => {\n messages.push({\n id: `${importItemId}-message-${i}}]`,\n caption: message,\n startImgSrc: \"gx-test/test-results\",\n leaf: true\n });\n });\n return messages;\n};\n\nconst updateImportStatusTree = (\n importItemResultFullData: ImportItemResultFullData,\n importTreeActualState: TreeViewItemModel[]\n): TreeViewItemModel[] => {\n const objectCategoryIndex = importTreeActualState.findIndex(\n objectCategoryItem => {\n return objectCategoryItem.id === importItemResultFullData.categoryId;\n }\n );\n if (objectCategoryIndex === -1) {\n // object category node does not exists. We have to create it, and insert the import result tree node inside.\n const importTreeItem: TreeViewItemModel = {\n id: importItemResultFullData.categoryId,\n // the count is (1), because this is the first item for this category\n caption: `${importItemResultFullData.categoryName} (1)`,\n startImgSrc: importItemResultFullData.categoryIcon,\n class: `tree-view-item`,\n expanded: true,\n items: [\n {\n id: importItemResultFullData.id,\n caption: importItemResultFullData.name,\n items: createImportResultDataMessages(\n importItemResultFullData.id,\n importItemResultFullData.messages\n ),\n class: `tree-view-item tree-view-item--${importItemResultFullData.status}`,\n expanded: true,\n leaf: importItemResultFullData.messages.length === 0\n }\n ]\n };\n importTreeActualState.push(importTreeItem);\n } else {\n // Object category node already exists. Just create the import result node, and insert into the parent category node (if it doesn't exists already).\n\n // first search for the importItemResult node...\n const importItemIndex = importTreeActualState[\n objectCategoryIndex\n ].items?.findIndex(importItem => {\n return importItem.id === importItemResultFullData.id;\n });\n\n if (importItemIndex === -1) {\n // ImportItem does not exists already\n const importTreeItem: TreeViewItemModel = {\n id: importItemResultFullData.id,\n caption: importItemResultFullData.name,\n expanded: true,\n items: createImportResultDataMessages(\n importItemResultFullData.id,\n importItemResultFullData.messages\n ),\n class: `tree-view-item tree-view-item--${importItemResultFullData.status}`\n };\n // Insert the import node into the category node\n importTreeActualState[objectCategoryIndex].items.push(importTreeItem);\n // Then, update the category node caption (the name is the same, but the (count) should be the actual items.length, because we have just added a new child import node. )\n importTreeActualState[\n objectCategoryIndex\n ].caption = `${importItemResultFullData.categoryName} (${importTreeActualState[objectCategoryIndex].items.length})`;\n }\n }\n return importTreeActualState;\n};\n\n/**\n * This function takes an ImportItemResultData item, and updates it to a ImportCategoryFullData, which has the same information, plus the category parent needed information, that will be used for creating the \"virtual\" parent category node on the \"Import Status\" section.\n */\nconst createImportResultFullData = (\n importItemResultData: ImportItemResultData,\n importCategoryData: ImportCategoryData[]\n): ImportItemResultFullData => {\n const importCategoryFullData: ImportItemResultFullData = {\n categoryId: undefined,\n categoryName: undefined,\n categoryIcon: undefined,\n ...importItemResultData\n };\n importCategoryDataFor: for (let i = 0; i < importCategoryData.length; i++) {\n const categoryNode = importCategoryData[i];\n for (let j = 0; j < categoryNode.items.length; j++) {\n if (categoryNode.items[j].id === importItemResultData.id) {\n importCategoryFullData.categoryId = categoryNode.id;\n importCategoryFullData.categoryName = categoryNode.name;\n importCategoryFullData.categoryIcon = categoryNode.icon;\n break importCategoryDataFor;\n }\n }\n }\n return importCategoryFullData;\n};\n\n/**\n * @description This function adds an ImportItemResultData item to the \"importTreeState\", and returns the updated tree with the new item added.\n */\nexport const addImportItemResultDataItem = (\n importItemResultData: ImportItemResultData,\n importCategoryData: ImportCategoryData[],\n importTreeActualState: TreeViewItemModel[]\n): TreeViewItemModel[] => {\n let updatedImportStatusTree: TreeViewItemModel[] = [...importTreeActualState];\n // first, update importItemResultData with the category data. It will be needed later.\n const importItemResultFullData: ImportItemResultFullData =\n createImportResultFullData(importItemResultData, importCategoryData);\n updatedImportStatusTree = updateImportStatusTree(\n importItemResultFullData,\n updatedImportStatusTree\n );\n return updatedImportStatusTree;\n};\n\ntype ImportItemResultFullData = ImportItemResultData & {\n categoryId: string;\n categoryName: string;\n categoryIcon: string;\n};\n","@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n}\n/*Header*/\n.header {\n display: flex;\n flex-direction: row;\n gap: var(--gx-ide-grid-column-gap);\n\n .select-file {\n flex: 1;\n }\n}\n/*Main*/\n.main {\n //min-height: 250px;\n height: 100%;\n overflow: auto;\n .container-wrapper {\n height: 100%;\n display: grid;\n grid-template-rows: auto 1fr;\n grid-template-columns: 1fr 1fr;\n grid-template-areas:\n \"top-state-bar top-state-bar\"\n \"left-container right-container\";\n\n .top-state-bar {\n grid-area: top-state-bar;\n }\n .left-container {\n grid-area: left-container;\n border-right: 1px solid var(--gx-ide-container-border-color);\n }\n .right-container {\n grid-area: right-container;\n }\n\n @include gx-ide-message(\"short\");\n\n .tree-container {\n &--empty {\n align-items: center;\n justify-content: center;\n }\n\n &--import-status {\n .tree-view-item {\n &--success {\n @include tree-item-status(\"success\");\n }\n &--warning {\n @include tree-item-status(\"warning\");\n }\n &--error {\n @include tree-item-status(\"error\");\n }\n }\n }\n /*import status display/hide status (warning, error, success)*/\n &--no-warnings {\n .tree-view-item--warning {\n display: none;\n }\n }\n &--no-errors {\n .tree-view-item--error {\n display: none;\n }\n }\n &--no-successes {\n .tree-view-item--success {\n display: none;\n }\n }\n }\n }\n}\n.ghost-element {\n display: block;\n width: 0;\n height: 24px; /*this is the taller element on the \"objects in file container footer (which is the button group, at the time of writing)\"*/\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n Element,\n State,\n EventEmitter,\n Watch,\n Method\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { TreeViewItemContextMenu } from \"@genexus/chameleon-controls-library/dist/types/components/tree-view/tree-view/types\";\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/renders/tree-view/types\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library/dist/types/components/renders/tree-view/types\";\n\nimport {\n TextAlign,\n TextPadding,\n TextType\n} from \"@genexus/gemini/dist/types/components/text/text\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport {\n ImportCategoryData,\n ImportItemResultData,\n ContextMenuInfo\n} from \"../../common/types\";\nimport {\n convertImportCategoryToTreeView,\n addImportItemResultDataItem\n} from \"./helpers\";\n// import { CheckboxInfo } from \"@genexus/gemini/dist/types/components/form-checkbox/form-checkbox\";\nimport { countTreeItems } from \"../../common/helpers\";\nimport { CheckedItemsInfo } from \"../_helpers/list-selector/list-selector\";\n\nimport { KB_OBJECT } from \"./helpers\";\nimport { CheckboxInfo } from \"@genexus/gemini\";\n\n@Component({\n tag: \"gx-ide-kb-manager-import\",\n styleUrl: \"kb-manager-import.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/kb-manager-import\"]\n})\nexport class GxIdeKbManagerImport {\n /*\nINDEX:\n1.OWN PROPERTIES\n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE EVENTS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n /* ImportCategoryBasicData Holds the original name of category data, and its id. Used to create parent nodes on the imported tree*/\n private importCategoryData: ImportCategoryData[] = [];\n private objectsInFileTotalNodes = 0;\n private selectedObjectsInFileIds: string[] = [];\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeKbManagerImportElement;\n\n private objectsTreeEl!: HTMLGxgTreeViewElement;\n private fileInputEl!: HTMLGxgFormTextElement;\n private objectsButtonsGroup!: HTMLGxgButtonsContainerElement;\n private toggleObjectsCheckboxEl: HTMLGxgFormCheckboxElement;\n private topStateBarEl!: HTMLGxgTopStateBarElement;\n\n // 3.STATE() VARIABLES //\n\n @State() checkedObjectsIds: string[] = [];\n @State() noObjects: boolean;\n @State() showHiddenImportsMessage = false;\n @State() statusInfo: StatusInfo = {\n error: {\n display: true,\n number: 0\n },\n warning: {\n display: true,\n number: 0\n },\n success: {\n display: true,\n number: 0\n }\n };\n @State() objectsTreeState: TreeViewItemModel[] = [];\n @Watch(\"objectsTreeState\")\n watchObjectsTreeStateHandler(newState: TreeViewItemModel[]) {\n this.noObjects = !!(newState.length === 0 || !newState);\n this.objectsInFileTotalNodes = countTreeItems(newState);\n }\n\n // import status\n @State() importStatusMessage: string;\n @State() someStatusVisible: boolean;\n @State() noImport: boolean;\n @State() importTreeState: TreeViewItemModel[] = [];\n @Watch(\"importTreeState\")\n watchImportTreeStateHandler() {\n this.evaluateImport();\n if (this.noImport) {\n this.importStatusMessage =\n this._componentLocale.main.importStatus.noImportedFiles;\n } else {\n this.importStatusMessage =\n this._componentLocale.main.importStatus.importedButHidden;\n }\n }\n\n @State() importingIsInProcess = false;\n @Watch(\"importingIsInProcess\")\n watchImportingIsInProcessHandler(isImporting: boolean) {\n if (isImporting && this.topStateBar) {\n this.topStateBarEl.active = true;\n } else if (!isImporting && this.topStateBar) {\n this.topStateBarEl.active = false;\n }\n }\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly topStateBar = true;\n\n /**\n * The name of the imported xml or xps file\n */\n @Prop({ mutable: true }) selectedFile: File;\n @Watch(\"selectedFile\")\n watchSelectedFileHandler(file: File) {\n if (file && file.name && file.size > 0) {\n this.loadFileHandler();\n }\n }\n\n /**\n * Callback invoked when the user wants to access the export options.\n */\n @Prop() readonly optionsCallback: OptionsCallback;\n\n /**\n *Callback invoked when the user wants to initiate the import process.\n */\n @Prop() readonly importCallback: ImportCallback;\n\n /**\n *Callback invoked when the user wants to load the xpz information\n */\n @Prop() readonly loadCallback: LoadCallback;\n\n /**\n * Callback invoked when the user wants to cancel the export process.\n * @returns It returns a boolean indicating whether the process could be canceled or not.\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * It displays the status buttons (errors, warning, succeeded) with the minimal ui (no captions)\n */\n @Prop() readonly statusMinimal = false;\n\n /**\n * It displays the status buttons (errors, warning, succeeded) with the minimal ui (no captions)\n */\n @Prop() readonly objectContextMenuCallback: ObjectContextMenuCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.componentDidLoadEvent.emit(true);\n this.evaluateObjects();\n this.evaluateImport();\n this.importStatusMessage =\n this._componentLocale.main.importStatus.noImportedFiles;\n this.evaluateImportStatusMessage();\n }\n\n componentDidLoad() {\n this.fileInputEl.focus();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n /**\n * Add the result of importing an item\n */\n @Method()\n async addResultItem(item: ImportItemResultData) {\n this.importTreeState = addImportItemResultDataItem(\n item,\n this.importCategoryData,\n this.importTreeState\n );\n this.statusInfo[item.status].number++;\n }\n\n // 9.LOCAL METHODS //\n\n private evaluateImportStatusMessage = () => {\n this.someStatusVisible =\n this.statusInfo.error.display ||\n this.statusInfo.warning.display ||\n this.statusInfo.success.display;\n };\n\n private evaluateObjects = () => {\n this.noObjects = !!(\n this.objectsTreeState?.length === 0 || !this.objectsTreeState\n );\n };\n\n private evaluateImport = () => {\n this.noImport = !!(\n this.importTreeState?.length === 0 || !this.importTreeState\n );\n };\n\n private selectFileAndLoadHandler = () => {\n this.fileInputEl.openFile();\n };\n\n private loadFileHandler = async () => {\n if (this.loadCallback && this.selectedFile) {\n this.importCategoryData = await this.loadCallback(this.selectedFile);\n const importCategoryTreeData = convertImportCategoryToTreeView(\n this.importCategoryData\n );\n this.objectsTreeState = importCategoryTreeData;\n if (this.importCategoryData.length > 0) {\n // clear input\n this.selectedFile = null;\n }\n }\n };\n\n private fileSelectedHandler = (fileEvent: CustomEvent<FileList>) => {\n this.selectedFile = fileEvent.detail[0];\n };\n\n private importObjectsHandler = async () => {\n if (this.importCallback) {\n /* first clear imported objects (this clears errors/warnings/success counts as well)*/\n this.clearStatusHandler();\n /* then do the import*/\n this.importingIsInProcess = true;\n this.objectsButtonsGroup.selectedButtonId = \"cancel-import-btn\";\n this.importCallback(this.checkedObjectsIds).then(() => {\n this.importingIsInProcess = false;\n });\n }\n };\n\n private objectsTreeCheckedItemsChangedHandler = (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n /* 1. Begin of evaluate 'select/unselect checkbox' state*/\n if (event.detail == null) {\n this.toggleObjectsCheckboxEl.checked = false;\n this.toggleObjectsCheckboxEl.indeterminate = false;\n return;\n }\n\n const allItemsWithCheckbox = [...event.detail.values()];\n\n if (allItemsWithCheckbox.length === 0) {\n this.toggleObjectsCheckboxEl.checked = false;\n this.toggleObjectsCheckboxEl.indeterminate = false;\n return;\n }\n\n const firstItemCheckedValue = allItemsWithCheckbox[0].item.checked;\n\n const allItemsHaveTheSameCheckedValue = allItemsWithCheckbox.every(\n treeItem => treeItem.item.checked === firstItemCheckedValue\n );\n\n this.toggleObjectsCheckboxEl.checked = firstItemCheckedValue;\n this.toggleObjectsCheckboxEl.indeterminate =\n !allItemsHaveTheSameCheckedValue;\n /* /End of evaluate 'select/unselect checkbox' state*/\n\n /* 2. Begin of checked items evaluation*/\n const checkedItems = allItemsWithCheckbox.filter(node => node.item.checked);\n // objects checked\n const checkedObjects = checkedItems.filter(\n node => node.item.metadata === KB_OBJECT\n );\n\n const checkedObjectsIds: string[] = [];\n if (checkedObjects.length > 0) {\n checkedObjects.forEach(objectChecked => {\n checkedObjectsIds.push(objectChecked.item.id);\n });\n }\n /* /End of checked items evaluation*/\n\n /* 3. Begin of caption update*/\n /* TO DO (when we can differentiate the caption from the number of children)*/\n // const categoryItems = allItemsWithCheckbox.filter(\n // node => node.item.metadata === KB_CATEGORY\n // );\n // categoryItems.forEach(category => {\n // const itemInfo = category.item;\n // // Update the amount of checked values\n // if (itemInfo.leaf !== true) {\n // const totalItems = itemInfo.items.length;\n\n // const totalItemsChecked = itemInfo.items.filter(\n // itemUIModel => itemUIModel.checked\n // ).length;\n\n // const newItemCaption =\n // totalItems !== totalItemsChecked\n // ? `${itemInfo.caption} (${totalItemsChecked}/${totalItems})`\n // : `${itemInfo.caption} (${totalItems})`;\n\n // // Only update the item caption if needed\n // if (newItemCaption !== itemInfo.caption) {\n // this.objectsTreeEl.updateItemsProperties([itemInfo.id], {\n // id: itemInfo.id,\n // caption: newItemCaption\n // });\n // }\n // }\n // });\n\n /* /End of caption update*/\n this.checkedObjectsIds = checkedObjectsIds;\n };\n\n private objectsTreeSelectedItemsChangedHandler = (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n this.selectedObjectsInFileIds = event.detail.map(item => item.item.id);\n };\n\n private objectsTreeContextMenuHandler = (\n event: CustomEvent<TreeViewItemContextMenu>\n ) => {\n if (this.objectContextMenuCallback && event.detail.metadata === KB_OBJECT) {\n this.objectContextMenuCallback(\"imported\", {\n selection: this.selectedObjectsInFileIds,\n clientX: event.detail.contextmenuEvent.screenX,\n clientY: event.detail.contextmenuEvent.screenY\n });\n }\n };\n\n private cancelImportHandler = () => {\n if (this.cancelCallback) {\n this.cancelCallback().then(result => {\n if (result) {\n this.topStateBarEl.active = false;\n }\n });\n // returns boolean\n }\n };\n\n private optionsHandler = () => {\n if (this.optionsCallback) {\n this.optionsCallback();\n // returns boolean\n }\n };\n\n private clearStatusHandler = () => {\n this.importTreeState = [];\n this.statusInfo.error.number = 0;\n this.statusInfo.warning.number = 0;\n this.statusInfo.success.number = 0;\n };\n\n private toggleSelectionClickHandler = (e: CustomEvent<CheckboxInfo>) => {\n const checked = (e.target as HTMLGxgFormCheckboxElement).checked;\n this.toggleObjectsCheckboxEl.indeterminate = false;\n this.objectsTreeEl.updateAllItemsProperties({ checked: checked });\n };\n\n private statusButtonsSelectionChangedHandler = (\n e: CustomEvent<CheckedItemsInfo>\n ) => {\n const activeStates = e.detail;\n const errorIndex = activeStates.findIndex(\n state => state.itemId === \"error\"\n );\n const warningIndex = activeStates.findIndex(\n state => state.itemId === \"warning\"\n );\n const successIndex = activeStates.findIndex(\n state => state.itemId === \"success\"\n );\n this.statusInfo = {\n error: {\n display: errorIndex !== -1,\n number: this.statusInfo.error.number\n },\n warning: {\n display: warningIndex !== -1,\n number: this.statusInfo.warning.number\n },\n success: {\n display: successIndex !== -1,\n number: this.statusInfo.success.number\n }\n };\n this.evaluateImportStatusMessage();\n };\n\n private evaluateCheckAllValue = (): boolean => {\n let checked = true;\n const allAreChecked =\n this.objectsInFileTotalNodes === this.checkedObjectsIds.length;\n const conditionToUncheck =\n this.objectsTreeState.length === 0 || !allAreChecked;\n if (conditionToUncheck) {\n checked = false;\n }\n return checked;\n };\n\n private fileClearedHandler = () => {\n this.selectedFile = null;\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noFooterPadding\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n {/* header */}\n <header class=\"header\" slot=\"header\">\n {/* select a file */}\n <gxg-form-text\n type=\"file\"\n class=\"select-file\"\n label={this._componentLocale.header.fileNameLabel}\n placeholder={this._componentLocale.header.fileNamePlaceholder}\n part=\"file-name\"\n acceptFile=\".xpz, .xml\"\n clearButton\n iconPosition=\"start\"\n onFileSelected={this.fileSelectedHandler}\n onClearButtonClicked={this.fileClearedHandler}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.fileInputEl = el as HTMLGxgFormTextElement)\n }\n ></gxg-form-text>\n {/* select file button / load button*/}\n <gxg-button\n type=\"primary-text-icon\"\n icon=\"gemini-tools/file\"\n part=\"select-file-load-button\"\n onClick={this.selectFileAndLoadHandler}\n disabled={this.importingIsInProcess}\n >\n {this._componentLocale.header.selectFileButton}\n </gxg-button>\n </header>\n <main class=\"main\">\n {/* main */}\n {/* objects in file*/}\n <div class=\"container-wrapper\">\n {/* top state bar*/}\n {this.topStateBar ? (\n <gxg-top-state-bar\n class=\"top-state-bar\"\n part=\"top-state-bar\"\n caption={this._componentLocale.loader.title}\n ref={el =>\n (this.topStateBarEl = el as HTMLGxgTopStateBarElement)\n }\n ></gxg-top-state-bar>\n ) : null}\n <gx-ide-container\n containerTitle={\n this._componentLocale.main.objectsInFile.title\n }\n noContentPadding\n noBorderFooter\n class=\"left-container\"\n slimmerFooter\n inactiveTitle={this.noObjects}\n titleType=\"secondary\"\n >\n <div\n class={{\n \"tree-container\": true,\n \"tree-container--objects-in-file\": true,\n \"tree-container--empty\": this.noObjects\n }}\n >\n {!this.noObjects ? (\n <gxg-tree-view\n treeModel={this.objectsTreeState}\n dragDisabled={true}\n dropDisabled={true}\n toggleCheckboxes={true}\n checkbox={true}\n checked={true}\n onCheckedItemsChange={\n this.objectsTreeCheckedItemsChangedHandler\n }\n onSelectedItemsChange={\n this.objectsTreeSelectedItemsChangedHandler\n }\n onItemContextmenu={this.objectsTreeContextMenuHandler}\n ref={el =>\n (this.objectsTreeEl = el as HTMLGxgTreeViewElement)\n }\n ></gxg-tree-view>\n ) : (\n <div class=\"gx-ide-message\">\n <gxg-text\n textAlign={\n config.gxgMessage.common.textAlign as TextAlign\n }\n padding={\n config.gxgMessage.common.textAlign as TextPadding\n }\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n part=\"objects-in-file-empty-status-message\"\n >\n {this._componentLocale.main.objectsInFile.noObjects}\n <gxg-text\n type=\"text-link-no-line\"\n onClick={this.selectFileAndLoadHandler}\n >\n {\n this._componentLocale.main.objectsInFile\n .selectFile\n }\n </gxg-text>\n </gxg-text>\n </div>\n )}\n </div>\n {/* select all / unselect all checkbox*/}\n <gxg-form-checkbox\n label={\n this._componentLocale.main.objectsInFile.selectUnselect\n }\n part=\"select-all-checkbox\"\n slot=\"footer-start\"\n disabled={\n this.importingIsInProcess ||\n this.objectsTreeState.length === 0\n }\n checked={this.evaluateCheckAllValue()}\n onChange={this.toggleSelectionClickHandler}\n ref={(el: HTMLGxgFormCheckboxElement) =>\n (this.toggleObjectsCheckboxEl =\n el as HTMLGxgFormCheckboxElement)\n }\n ></gxg-form-checkbox>\n {/* import button / cancel button*/}\n <gxg-buttons-container\n reduced\n slot=\"footer-end\"\n ref={(el: HTMLGxgButtonsContainerElement) =>\n (this.objectsButtonsGroup =\n el as HTMLGxgButtonsContainerElement)\n }\n >\n {/* import objects button*/}\n <gxg-button\n id=\"import-btn\"\n part=\"import-button\"\n disabled={\n this.objectsTreeState?.length === 0 ||\n this.importingIsInProcess\n }\n onClick={this.importObjectsHandler}\n selected\n >\n {this._componentLocale.main.objectsInFile.importButton}\n </gxg-button>\n\n {/* cancel-import button*/}\n <gxg-button\n id=\"cancel-import-btn\"\n part=\"cancel-import-button\"\n disabled={!this.importingIsInProcess}\n onClick={this.cancelImportHandler}\n >\n {this._componentLocale.main.objectsInFile.cancelButton}\n </gxg-button>\n </gxg-buttons-container>\n {/* settings/options button*/}\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/settings\"\n slot=\"footer-end\"\n part=\"select-kb-btn\"\n onClick={this.optionsHandler}\n >\n {this._componentLocale.header.optionsButton}\n </gxg-button>\n </gx-ide-container>\n {/* import status */}\n <gx-ide-container\n class=\"right-container\"\n containerTitle={this._componentLocale.main.importStatus.title}\n noContentPadding\n noBorderFooter\n slimmerFooter\n inactiveTitle={this.noImport}\n titleType=\"secondary\"\n >\n <div\n class={{\n \"tree-container\": true,\n \"tree-container--import-status\": true,\n \"tree-container--empty\":\n this.noImport || !this.someStatusVisible,\n \"tree-container--no-warnings\":\n !this.statusInfo.warning.display,\n \"tree-container--no-errors\":\n !this.statusInfo.error.display,\n \"tree-container--no-succeeded\":\n !this.statusInfo.success.display\n }}\n >\n {!this.noImport && this.someStatusVisible ? (\n <gxg-tree-view\n treeModel={this.importTreeState}\n toggleCheckboxes={true}\n ></gxg-tree-view>\n ) : (\n <gxg-text\n textAlign={\n config.gxgMessage.common.textAlign as TextAlign\n }\n padding={\n config.gxgMessage.common.textAlign as TextPadding\n }\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n part=\"objects-in-file-empty-status-message\"\n class=\"gx-ide-message\"\n >\n {this.importStatusMessage}\n </gxg-text>\n )}\n </div>\n {/* clear status button */}\n <gxg-button\n type=\"secondary-text-only\"\n slot=\"footer-end\"\n part=\"select-kb-btn\"\n onClick={this.clearStatusHandler}\n disabled={this.noImport || this.importingIsInProcess}\n >\n {this._componentLocale.main.importStatus.clearButton}\n </gxg-button>\n {/* ghost element (used to force the container footer heights the same as the \"objects in file\" container tree)*/}\n <span class=\"ghost-element\" slot=\"footer-start\"></span>\n </gx-ide-container>\n </div>\n </main>\n {/* footer */}\n <footer slot=\"footer-start\">\n <gx-ide-status-buttons\n errors={this.statusInfo.error.number}\n warnings={this.statusInfo.warning.number}\n successes={this.statusInfo.success.number}\n hideMessage\n compact\n minimal={this.statusMinimal}\n onSelectionChanged={this.statusButtonsSelectionChangedHandler}\n ></gx-ide-status-buttons>\n </footer>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type LoadCallback = (file: File) => Promise<ImportCategoryData[]>;\n\nexport type ImportCallback = (itemIds: string[]) => Promise<boolean>;\n\nexport type CancelCallback = () => Promise<boolean>;\n\nexport type OptionsCallback = () => Promise<void>;\nexport interface SelectedObject {\n itemId: string;\n subItemsIds: string[];\n}\n\nexport type ImportItemData = {\n id: string;\n name: string;\n};\n\ntype StatusInfo = {\n error: {\n display: boolean;\n number: number;\n };\n warning: {\n display: boolean;\n number: number;\n };\n success: {\n display: boolean;\n number: number;\n };\n};\n\nexport type ObjectContextMenuCallback = (\n tree: ObjectsSourceType,\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\n\nexport type ObjectsSourceType = \"in-file\" | \"imported\";\n"],"mappings":"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"}