@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
@@ -1,138 +0,0 @@
1
- import { r as e, c as t, h as s, H as i, g as r } from "./p-48217969.js";
2
-
3
- import { L as o } from "./p-74d59062.js";
4
-
5
- const l = ":host{display:block;border:1px solid var(--gx-ide-container-border-color);border-radius:var(--ds-form-control-border-radius);--status-buttons-label-color:var(--mer-text__on-surface)}gx-ide-list-selector::part(list){display:flex;flex-direction:row}gx-ide-list-selector-item{border-block-start:none !important;flex:1;text-align:center;}gx-ide-list-selector-item.not-zero{font-weight:var(--mer-font__weight--semi-bold)}gx-ide-list-selector-item:not(:last-child){border-inline-end:1px solid var(--gx-ide-container-border-color)}gx-ide-list-selector-item .label__wrapper{display:inline-flex;width:auto;min-height:0}gx-ide-list-selector-item .label__description{color:var(--status-buttons-label-color);margin-inline-start:var(--mer-spacing--xxs)}gx-ide-list-selector-item .active-indicator{display:inline-block;width:var(--mer-spacing--xs);height:var(--mer-spacing--xs);border:1px solid var(--mer-border-color__dim);border-radius:calc(var(--mer-spacing--xs) / 2);background-color:var(--mer-border-color__dim)}gx-ide-list-selector-item input:checked+.label{--status-buttons-label-color:var(--mer-text__on-surface);background-color:inherit}gx-ide-list-selector-item input:checked+.label .active-indicator{background-color:var(--mer-icon__primary);border-color:var(--mer-icon__primary)}gx-ide-list-selector-item:hover input:checked+.label{background-color:var(--ds-item-background-color--hover) !important}:host([compact]) gx-ide-list-selector-item{font-size:var(--mer-font__size--xxs)}:host([compact]) .label__wrapper{gap:var(--mer-spacing--xxs);padding:var(--mer-spacing--xxxs) var(--mer-spacing--xs) var(--mer-spacing--xxxs) var(--mer-spacing--xxs)}:host([compact]) .label__universal-slot{margin-inline-end:var(--mer-spacing--xxxs)}:host([no-border]){border:none}:host([no-border-top]){border-top:none}:host([no-border-end]){border-inline-end:none}:host([no-border-bottom]){border-bottom:none}:host([no-border-start]){border-inline-start:none}:host([no-inner-borders]) gx-ide-list-selector-item{border-inline-end:none}";
6
-
7
- const a = class {
8
- constructor(s) {
9
- e(this, s);
10
- this.selectionChanged = t(this, "selectionChanged", 7);
11
- // 7.LISTENERS //
12
- // 8.PUBLIC METHODS API //
13
- // 9.LOCAL METHODS //
14
- this.evaluateIconsSize = () => {
15
- if (this.compact) {
16
- this.iconsSize = "small";
17
- }
18
- };
19
- this.evaluateLabel = e => {
20
- const t = this[e];
21
- if (this.minimal) {
22
- return `${t}`;
23
- } else {
24
- const s = t === 1;
25
- return s ? `${t} ${this._componentLocale[e]["singular"]}` : `${t} ${this._componentLocale[e]["plural"]}`;
26
- }
27
- };
28
- this.selectionChangedHandler = e => {
29
- e.stopPropagation();
30
- this.selectionChanged.emit(e.detail);
31
- };
32
- this.active = false;
33
- this.errors = 0;
34
- this.hideError = false;
35
- this.warnings = 0;
36
- this.hideWarning = false;
37
- this.successes = 0;
38
- this.hideSuccess = false;
39
- this.messages = 0;
40
- this.hideMessage = false;
41
- this.minimal = false;
42
- this.compact = false;
43
- this.noBorder = false;
44
- this.noInnerBorders = false;
45
- this.noBorderTop = false;
46
- this.noBorderEnd = false;
47
- this.noBorderBottom = false;
48
- this.noBorderStart = false;
49
- this.iconsSize = "small";
50
- }
51
- // 6.COMPONENT LIFECYCLE METHODS //
52
- async componentWillLoad() {
53
- this._componentLocale = await o.getComponentStrings(this.el);
54
- this.evaluateIconsSize();
55
- }
56
- // 10.RENDER() FUNCTION //
57
- render() {
58
- return s(i, null, s("gx-ide-list-selector", {
59
- type: "multi-selection",
60
- listName: "status-buttons",
61
- noListBorder: true,
62
- ellipsis: true,
63
- iconsSize: this.iconsSize,
64
- onSelectionChanged: this.selectionChangedHandler
65
- }, !this.hideError ? s("gx-ide-list-selector-item", {
66
- itemId: "errors",
67
- itemValue: this.evaluateLabel("errors"),
68
- icon: "gx-test/result-exception",
69
- iconColor: this.errors === 0 ? "disabled" : "auto",
70
- class: {
71
- error: true,
72
- "not-zero": this.errors !== 0
73
- },
74
- itemChecked: true
75
- }, s("span", {
76
- slot: "universal",
77
- class: {
78
- "active-indicator": true
79
- }
80
- })) : null, !this.hideWarning ? s("gx-ide-list-selector-item", {
81
- itemId: "warnings",
82
- itemValue: this.evaluateLabel("warnings"),
83
- icon: "gx-test/result-warning",
84
- iconColor: this.warnings === 0 ? "disabled" : "auto",
85
- class: {
86
- warning: true,
87
- "not-zero": this.warnings !== 0
88
- },
89
- itemChecked: true
90
- }, s("span", {
91
- slot: "universal",
92
- class: {
93
- "active-indicator": true
94
- }
95
- })) : null, !this.hideSuccess ? s("gx-ide-list-selector-item", {
96
- itemId: "successes",
97
- itemValue: this.evaluateLabel("successes"),
98
- icon: "gx-test/result-ok",
99
- iconColor: this.successes === 0 ? "disabled" : "auto",
100
- class: {
101
- success: true,
102
- "not-zero": this.successes !== 0
103
- },
104
- itemChecked: true
105
- }, s("span", {
106
- slot: "universal",
107
- class: {
108
- "active-indicator": true
109
- }
110
- })) : null, !this.hideMessage ? s("gx-ide-list-selector-item", {
111
- itemId: "messages",
112
- itemValue: this.evaluateLabel("messages"),
113
- icon: "gx-test/screenshot-viewer",
114
- iconColor: this.messages === 0 ? "disabled" : "auto",
115
- class: {
116
- message: true,
117
- "not-zero": this.messages !== 0
118
- },
119
- itemChecked: true
120
- }, s("span", {
121
- slot: "universal",
122
- class: {
123
- "active-indicator": true
124
- }
125
- })) : null));
126
- }
127
- static get assetsDirs() {
128
- return [ "gx-ide-assets/status-buttons" ];
129
- }
130
- get el() {
131
- return r(this);
132
- }
133
- };
134
-
135
- a.style = l;
136
-
137
- export { a as gx_ide_status_buttons };
138
- //# sourceMappingURL=p-36544e00.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["gxIdeStatusButtonsCss","GxIdeStatusButtons","this","evaluateIconsSize","compact","iconsSize","evaluateLabel","type","amount","minimal","singular","_componentLocale","selectionChangedHandler","e","stopPropagation","selectionChanged","emit","detail","componentWillLoad","Locale","getComponentStrings","el","render","h","Host","listName","noListBorder","ellipsis","onSelectionChanged","hideError","itemId","itemValue","icon","iconColor","errors","class","error","itemChecked","slot","hideWarning","warnings","warning","hideSuccess","successes","success","hideMessage","messages","message"],"sources":["src/components/_helpers/status-buttons/gx-ide-status-buttons.scss?tag=gx-ide-status-buttons&encapsulation=shadow","src/components/_helpers/status-buttons/gx-ide-status-buttons.tsx"],"sourcesContent":[":host {\n display: block;\n border: 1px solid var(--gx-ide-container-border-color);\n border-radius: var(--ds-form-control-border-radius);\n --status-buttons-label-color: var(--mer-text__on-surface);\n}\n/*list-selector*/\ngx-ide-list-selector::part(list) {\n display: flex;\n flex-direction: row;\n}\n/*list-selector-items*/\ngx-ide-list-selector-item {\n border-block-start: none !important; //reset\n\n &.not-zero {\n font-weight: var(--mer-font__weight--semi-bold);\n }\n\n &:not(:last-child) {\n border-inline-end: 1px solid var(--gx-ide-container-border-color);\n }\n flex: 1;\n text-align: center;\n\n .label {\n &__wrapper {\n display: inline-flex;\n width: auto;\n min-height: 0;\n }\n &__description {\n color: var(--status-buttons-label-color);\n margin-inline-start: var(--mer-spacing--xxs);\n }\n }\n\n /*active indicator*/\n .active-indicator {\n display: inline-block;\n width: var(--mer-spacing--xs);\n height: var(--mer-spacing--xs);\n border: 1px solid var(--mer-border-color__dim);\n border-radius: calc(var(--mer-spacing--xs) / 2);\n background-color: var(--mer-border-color__dim);\n }\n input:checked {\n + .label {\n --status-buttons-label-color: var(--mer-text__on-surface);\n background-color: inherit;\n\n .active-indicator {\n background-color: var(--mer-icon__primary);\n border-color: var(--mer-icon__primary);\n }\n }\n }\n\n /*hover*/\n &:hover {\n input:checked + .label {\n background-color: var(--ds-item-background-color--hover) !important;\n }\n }\n}\n\n/*--------------------\nCompact size\n--------------------*/\n:host([compact]) {\n gx-ide-list-selector-item {\n font-size: var(--mer-font__size--xxs);\n }\n .label__wrapper {\n gap: var(--mer-spacing--xxs);\n padding: var(--mer-spacing--xxxs) var(--mer-spacing--xs)\n var(--mer-spacing--xxxs) var(--mer-spacing--xxs);\n }\n .label__universal-slot {\n margin-inline-end: var(--mer-spacing--xxxs);\n }\n}\n\n/*--------------------\nAll about borders\n--------------------*/\n:host([no-border]) {\n border: none;\n}\n:host([no-border-top]) {\n border-top: none;\n}\n:host([no-border-end]) {\n border-inline-end: none;\n}\n:host([no-border-bottom]) {\n border-bottom: none;\n}\n:host([no-border-start]) {\n border-inline-start: none;\n}\n:host([no-inner-borders]) {\n gx-ide-list-selector-item {\n border-inline-end: none;\n }\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Event,\n EventEmitter\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { Size } from \"@genexus/gemini/dist/types/components/icon/icon\";\n/* CUSTOM IMPORTS */\nimport { CheckedItemsInfo } from \"../list-selector/list-selector\";\nimport { Locale } from \"../../../common/locale\";\n@Component({\n tag: \"gx-ide-status-buttons\",\n styleUrl: \"gx-ide-status-buttons.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/status-buttons\"]\n})\nexport class GxIdeStatusButtons {\n /*\nINDEX:\n1.OWN PROPERTIES \n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE METHODS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES | WATCH'S //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n\n /**\n * Whether or not the buttons are active\n */\n @Prop() readonly active: boolean = false;\n\n /**\n * The errors amount\n */\n @Prop() readonly errors: number = 0;\n\n /**\n * Hide the errors button\n */\n @Prop() readonly hideError: boolean = false;\n\n /**\n * The warnings amount\n */\n @Prop() readonly warnings: number = 0;\n\n /**\n * Hide the warnings button\n */\n @Prop() readonly hideWarning: boolean = false;\n\n /**\n * The successes amount\n */\n @Prop() readonly successes: number = 0;\n\n /**\n * Hide the successes button\n */\n @Prop() readonly hideSuccess: boolean = false;\n\n /**\n * The messages amount\n */\n @Prop() readonly messages: number = 0;\n\n /**\n * Hide the messages button\n */\n @Prop() readonly hideMessage: boolean = false;\n\n /**\n * Display only the number\n */\n @Prop() readonly minimal: boolean = false;\n\n /**\n * If present will make the component look smaller.\n */\n @Prop({ reflect: true }) readonly compact: boolean = false;\n\n /**\n * No border all around\n */\n @Prop({ reflect: true }) readonly noBorder: boolean = false;\n\n /**\n * No inner borders\n */\n @Prop({ reflect: true }) readonly noInnerBorders: boolean = false;\n\n /**\n * No border on the top\n */\n @Prop({ reflect: true }) readonly noBorderTop: boolean = false;\n\n /**\n * No border on the end\n */\n @Prop({ reflect: true }) readonly noBorderEnd: boolean = false;\n\n /**\n * No border on the bottom\n */\n @Prop({ reflect: true }) readonly noBorderBottom: boolean = false;\n\n /**\n * No border on the start\n */\n @Prop({ reflect: true }) readonly noBorderStart: boolean = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeStatusButtonsElement;\n\n // 3.STATE() VARIABLES //\n\n @State() iconsSize: Size = \"small\";\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n // 5.EVENTS (EMIT) //\n\n /**\n * Emits the actual selection\n */\n @Event() selectionChanged: EventEmitter<CheckedItemsInfo>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.evaluateIconsSize();\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private evaluateIconsSize = () => {\n if (this.compact) {\n this.iconsSize = \"small\";\n }\n };\n\n private evaluateLabel = (\n type: \"errors\" | \"warnings\" | \"successes\" | \"messages\"\n ): string => {\n const amount = this[type];\n if (this.minimal) {\n return `${amount}`;\n } else {\n const singular: boolean = amount === 1;\n return singular\n ? `${amount} ${this._componentLocale[type][\"singular\"]}`\n : `${amount} ${this._componentLocale[type][\"plural\"]}`;\n }\n };\n\n private selectionChangedHandler = (e: CustomEvent<CheckedItemsInfo>) => {\n e.stopPropagation();\n this.selectionChanged.emit(e.detail);\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host>\n <gx-ide-list-selector\n type=\"multi-selection\"\n listName=\"status-buttons\"\n noListBorder\n ellipsis\n iconsSize={this.iconsSize}\n onSelectionChanged={this.selectionChangedHandler}\n >\n {!this.hideError ? (\n <gx-ide-list-selector-item\n itemId=\"errors\"\n itemValue={this.evaluateLabel(\"errors\")}\n icon=\"gx-test/result-exception\"\n iconColor={this.errors === 0 ? \"disabled\" : \"auto\"}\n class={{ \"error\": true, \"not-zero\": this.errors !== 0 }}\n itemChecked\n >\n <span\n slot=\"universal\"\n class={{\n \"active-indicator\": true\n }}\n ></span>\n </gx-ide-list-selector-item>\n ) : null}\n {!this.hideWarning ? (\n <gx-ide-list-selector-item\n itemId=\"warnings\"\n itemValue={this.evaluateLabel(\"warnings\")}\n icon=\"gx-test/result-warning\"\n iconColor={this.warnings === 0 ? \"disabled\" : \"auto\"}\n class={{ \"warning\": true, \"not-zero\": this.warnings !== 0 }}\n itemChecked\n >\n <span\n slot=\"universal\"\n class={{\n \"active-indicator\": true\n }}\n ></span>\n </gx-ide-list-selector-item>\n ) : null}\n {!this.hideSuccess ? (\n <gx-ide-list-selector-item\n itemId=\"successes\"\n itemValue={this.evaluateLabel(\"successes\")}\n icon=\"gx-test/result-ok\"\n iconColor={this.successes === 0 ? \"disabled\" : \"auto\"}\n class={{ \"success\": true, \"not-zero\": this.successes !== 0 }}\n itemChecked\n >\n <span\n slot=\"universal\"\n class={{\n \"active-indicator\": true\n }}\n ></span>\n </gx-ide-list-selector-item>\n ) : null}\n {!this.hideMessage ? (\n <gx-ide-list-selector-item\n itemId=\"messages\"\n itemValue={this.evaluateLabel(\"messages\")}\n icon=\"gx-test/screenshot-viewer\"\n iconColor={this.messages === 0 ? \"disabled\" : \"auto\"}\n class={{ \"message\": true, \"not-zero\": this.messages !== 0 }}\n itemChecked\n >\n <span\n slot=\"universal\"\n class={{\n \"active-indicator\": true\n }}\n ></span>\n </gx-ide-list-selector-item>\n ) : null}\n </gx-ide-list-selector>\n </Host>\n );\n }\n}\n"],"mappings":";;;;AAAA,MAAMA,IAAwB;;MCsBjBC,IAAkB;;;;;;;QAyIrBC,KAAAC,oBAAoB;MAC1B,IAAID,KAAKE,SAAS;QAChBF,KAAKG,YAAY;;;IAIbH,KAAAI,gBACNC;MAEA,MAAMC,IAASN,KAAKK;MACpB,IAAIL,KAAKO,SAAS;QAChB,OAAO,GAAGD;aACL;QACL,MAAME,IAAoBF,MAAW;QACrC,OAAOE,IACH,GAAGF,KAAUN,KAAKS,iBAAiBJ,GAAM,gBACzC,GAAGC,KAAUN,KAAKS,iBAAiBJ,GAAM;;;IAIzCL,KAAAU,0BAA2BC;MACjCA,EAAEC;MACFZ,KAAKa,iBAAiBC,KAAKH,EAAEI;AAAO;kBAtIH;kBAKD;qBAKI;oBAKF;uBAKI;qBAKH;uBAKG;oBAKJ;uBAKI;mBAKJ;mBAKiB;oBAKC;0BAKM;uBAKH;uBAKA;0BAKG;yBAKD;qBAQhC;;;EAa3B,uBAAMC;IACJhB,KAAKS,yBAAyBQ,EAAOC,oBAAoBlB,KAAKmB;IAC9DnB,KAAKC;;;EAoCP,MAAAmB;IACE,OACEC,EAACC,GAAI,MACHD,EAAA;MACEhB,MAAK;MACLkB,UAAS;MACTC,cAAY;MACZC,UAAQ;MACRtB,WAAWH,KAAKG;MAChBuB,oBAAoB1B,KAAKU;QAEvBV,KAAK2B,YACLN,EAAA;MACEO,QAAO;MACPC,WAAW7B,KAAKI,cAAc;MAC9B0B,MAAK;MACLC,WAAW/B,KAAKgC,WAAW,IAAI,aAAa;MAC5CC,OAAO;QAAEC,OAAS;QAAM,YAAYlC,KAAKgC,WAAW;;MACpDG,aAAW;OAEXd,EAAA;MACEe,MAAK;MACLH,OAAO;QACL,oBAAoB;;UAIxB,OACFjC,KAAKqC,cACLhB,EAAA;MACEO,QAAO;MACPC,WAAW7B,KAAKI,cAAc;MAC9B0B,MAAK;MACLC,WAAW/B,KAAKsC,aAAa,IAAI,aAAa;MAC9CL,OAAO;QAAEM,SAAW;QAAM,YAAYvC,KAAKsC,aAAa;;MACxDH,aAAW;OAEXd,EAAA;MACEe,MAAK;MACLH,OAAO;QACL,oBAAoB;;UAIxB,OACFjC,KAAKwC,cACLnB,EAAA;MACEO,QAAO;MACPC,WAAW7B,KAAKI,cAAc;MAC9B0B,MAAK;MACLC,WAAW/B,KAAKyC,cAAc,IAAI,aAAa;MAC/CR,OAAO;QAAES,SAAW;QAAM,YAAY1C,KAAKyC,cAAc;;MACzDN,aAAW;OAEXd,EAAA;MACEe,MAAK;MACLH,OAAO;QACL,oBAAoB;;UAIxB,OACFjC,KAAK2C,cACLtB,EAAA;MACEO,QAAO;MACPC,WAAW7B,KAAKI,cAAc;MAC9B0B,MAAK;MACLC,WAAW/B,KAAK4C,aAAa,IAAI,aAAa;MAC9CX,OAAO;QAAEY,SAAW;QAAM,YAAY7C,KAAK4C,aAAa;;MACxDT,aAAW;OAEXd,EAAA;MACEe,MAAK;MACLH,OAAO;QACL,oBAAoB;;UAIxB"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["gxIdeEmptyStateCss","GxIdeEmptyState","this","transitionSpeed","watchDisplayHandler","display","primaryButtonLabel","primaryButtonEl","disabled","secondaryButtonLabel","secondaryButtonEl","setTimeout","componentWillLoad","el","style","setProperty","componentDidLoad","render","h","Host","class","container","stateIcon","type","color","stateTitle","alignment","stateDescription","textAlign","ref","escapeRegExp","str","replace","hiChar","text","filterValue","escapedFilterValue","re","RegExp","innerHTML","cardCss","GxgCard","constructor","hostRef","titleType","hasSlot","hasHeaderSlot","renderCardSubtitle","cardSubtitle","subtitleLink","href","target","elevation","background","padding","minHeight","height","maxWidth","noShadow","noBorder","undefined","noPaddingTop","cardTitle","noHeaderBorder","titleSemibold","subtitleIcon","cardType","icon","iconColor","subtitleColor","editableTitle","actionable","displayHeaderSlot","querySelector","headerSlot","role","card","mercury","state","wrapper","value","disableEdition","name"],"sources":["src/components/_helpers/empty-state/gx-ide-empty-state.scss?tag=gx-ide-empty-state&encapsulation=shadow","src/components/_helpers/empty-state/gx-ide-empty-state.tsx","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"],"sourcesContent":[":host {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.container {\n max-width: 520px;\n margin: 0 auto;\n gap: var(--mer-spacing--xl);\n opacity: 0;\n transition: opacity var(--state-transition-speed);\n padding: var(--mer-spacing--md);\n\n .icon-wrapper {\n border: var(--mer-border__width--sm) dashed var(--mer-accent__primary);\n border-radius: 50%;\n min-width: 40px;\n min-height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n &__main {\n gap: var(--mer-spacing--sm);\n }\n &__buttons {\n gap: var(--mer-spacing--xs);\n }\n &--visible {\n opacity: 1;\n }\n}\n.container,\n.container__main,\n.container__buttons {\n display: flex;\n align-items: center;\n flex-direction: column;\n}\n","import { Component, Host, h, Prop, Watch, Element } from \"@stencil/core\";\n\n@Component({\n tag: \"gx-ide-empty-state\",\n styleUrl: \"gx-ide-empty-state.scss\",\n shadow: true\n})\nexport class GxIdeEmptyState {\n /*\nINDEX:\n1.OWN PROPERTIES \n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE METHODS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n private transitionSpeed: number = 200;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeEmptyStateElement;\n private primaryButtonEl!: HTMLGxgButtonElement;\n private secondaryButtonEl!: HTMLGxgButtonElement;\n\n // 3.STATE() VARIABLES //\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * The state icon\n */\n @Prop() readonly stateIcon?: string;\n\n /**\n * The state title\n */\n @Prop() readonly stateTitle!: string;\n\n /**\n * The state description\n */\n @Prop() readonly stateDescription?: string;\n\n /**\n * The button primary label\n */\n @Prop() readonly primaryButtonLabel?: string;\n\n /**\n * The button secondary label\n */\n @Prop() readonly secondaryButtonLabel?: string;\n\n /**\n * If true, it will display the content\n */\n @Prop({ mutable: true }) display: boolean = false;\n @Watch(\"display\")\n watchDisplayHandler(display: boolean) {\n if (display) {\n this.primaryButtonLabel && (this.primaryButtonEl.disabled = false);\n this.secondaryButtonLabel && (this.secondaryButtonEl.disabled = false);\n } else {\n setTimeout(() => {\n this.primaryButtonLabel && (this.primaryButtonEl.disabled = true);\n this.secondaryButtonLabel && (this.secondaryButtonEl.disabled = true);\n }, this.transitionSpeed);\n }\n }\n\n // 5.EVENTS (EMIT) //\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n componentWillLoad() {\n this.el.style.setProperty(\n \"--state-transition-speed\",\n `${this.transitionSpeed}ms`\n );\n }\n\n componentDidLoad() {\n this.display = true;\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host>\n <div class={{ \"container\": true, \"container--visible\": this.display }}>\n {this.stateIcon ? (\n <span class=\"icon-wrapper\">\n <gxg-icon\n class=\"icon\"\n type={this.stateIcon}\n color=\"mercury-primary\"\n >\n {this.stateTitle}\n </gxg-icon>\n </span>\n ) : null}\n <main class=\"container__main\">\n {this.stateTitle ? (\n <gx-ide-title alignment=\"center\">{this.stateTitle}</gx-ide-title>\n ) : null}\n {this.stateDescription ? (\n <gxg-text textAlign=\"center\">{this.stateDescription}</gxg-text>\n ) : null}\n </main>\n <div class=\"container__buttons\">\n {this.primaryButtonLabel ? (\n <gxg-button\n type=\"primary-text-only\"\n ref={el => (this.primaryButtonEl = el as HTMLGxgButtonElement)}\n >\n {this.primaryButtonLabel}\n </gxg-button>\n ) : null}\n {this.secondaryButtonLabel ? (\n <gxg-button\n type=\"secondary-text-only\"\n ref={el =>\n (this.secondaryButtonEl = el as HTMLGxgButtonElement)\n }\n >\n {this.secondaryButtonLabel}\n </gxg-button>\n ) : null}\n </div>\n </div>\n </Host>\n );\n }\n}\n","/* 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"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["buttonsContainerCss","GxgButtonsContainer","constructor","hostRef","this","setSelectedButton","event","tagName","target","clickedButton","disabled","selected","gxgButtonsHtmlCollection","el","children","Array","from","forEach","button","selectedButtonChanged","emit","id","updateSelectedButtonId","selectedButton","find","selectedButtonId","undefined","reduced","fullWidth","componentDidLoad","render","h","Host","class","container","ref","containerEl","onClick","gxgTopStateBarCss","GxgTopStateBar","evaluateInitialProgress","progress","stateType","style","setProperty","evaluateWithAction","withClose","closeButtonHandler","active","closeKeyDownHandler","e","key","closeClickHandler","closedCallback","topStateBarVisible","visible","caption","minimal","autoClose","noBorder","watchActiveHandler","setTimeout","watchStateTypeHandler","watchProgressHandler","componentWillLoad","role","part","onKeyDown","type","color","tabIndex","size"],"sources":["node_modules/@genexus/gemini/dist/collection/components/buttons-container/buttons-container.css?tag=gxg-buttons-container&encapsulation=shadow","node_modules/@genexus/gemini/dist/collection/components/buttons-container/buttons-container.js","node_modules/@genexus/gemini/dist/collection/components/top-state-bar/gxg-top-state-bar.css?tag=gxg-top-state-bar&encapsulation=shadow","node_modules/@genexus/gemini/dist/collection/components/top-state-bar/gxg-top-state-bar.js"],"sourcesContent":["/*--- Elevation ---*/\n:host {\n --ds-background-color-disabled: transparent;\n --ds-border-color-disabled: transparent;\n display: block;\n}\n:host .container {\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 box-shadow: none;\n display: inline-flex;\n align-items: center;\n padding: var(--gxg-buttons-group__padding);\n box-sizing: border-box;\n gap: var(--gxg-buttons-group__gap);\n border-radius: var(--gxg-buttons-group__border-radius);\n border: 1px solid var(--mer-color__elevation__03);\n}\n:host .container--reduced {\n height: calc(var(--gxg-form-text-height) + 2px);\n --gxg-button-height: 100%;\n}\n:host .container--reduced ::slotted(gxg-button) {\n height: 100%;\n}\n:host ::slotted(.button--unselected) {\n --gxg-button-primary-border-color: transparent;\n --gxg-button-primary-bg-color: var(\n --gxg-button-unselected-bg-color--enabled\n );\n --gxg-button-primary-color: var(--gxg-button-unselected-color--enabled);\n}\n\n:host([full-width]) {\n width: 100%;\n}\n:host([full-width]) .container {\n width: 100%;\n display: flex;\n}\n:host([full-width]) ::slotted(gxg-button) {\n flex: 1;\n}","import { Host, h } from \"@stencil/core\";\nexport class GxgButtonsContainer {\n constructor() {\n this.selectedButtonId = undefined;\n this.reduced = false;\n this.fullWidth = false;\n }\n el;\n containerEl;\n // 2. REFERENCE TO ELEMENTS //\n // 3.STATE() VARIABLES //\n // 4.PUBLIC PROPERTY API | WATCH'S //\n // 5.EVENTS (EMIT) //\n selectedButtonChanged;\n // 6.COMPONENT LIFECYCLE METHODS //\n componentDidLoad() {\n this.updateSelectedButtonId();\n }\n // 7.LISTENERS //\n // 8.PUBLIC METHODS API //\n // 9.LOCAL METHODS //\n setSelectedButton = (event) => {\n const tagName = event.target.tagName;\n if (tagName !== \"GXG-BUTTON\") {\n //clicked button is disabled\n return;\n }\n else {\n const clickedButton = event.target;\n if (clickedButton.disabled || clickedButton.selected) {\n //button is disabled or is the current selected\n return;\n }\n const gxgButtonsHtmlCollection = this.el.children;\n Array.from(gxgButtonsHtmlCollection).forEach(function (button) {\n if (button.selected) {\n button.selected = false;\n }\n });\n clickedButton.selected = true;\n this.selectedButtonChanged.emit(clickedButton.id);\n this.updateSelectedButtonId();\n }\n };\n updateSelectedButtonId = () => {\n const gxgButtonsHtmlCollection = this.el.children;\n const selectedButton = Array.from(gxgButtonsHtmlCollection).find((button) => {\n return button.selected && !button.disabled;\n });\n if (selectedButton) {\n this.selectedButtonId = selectedButton.id;\n }\n };\n // 10.RENDER() FUNCTION //\n render() {\n return (h(Host, null, h(\"div\", { class: {\n container: true,\n \"container--reduced\": this.reduced\n }, ref: el => (this.containerEl = el), onClick: this.setSelectedButton }, h(\"slot\", null))));\n }\n static get is() { return \"gxg-buttons-container\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"buttons-container.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"buttons-container.css\"]\n };\n }\n static get properties() {\n return {\n \"selectedButtonId\": {\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 id of the currently selected button, or null if all are disabled\"\n },\n \"attribute\": \"selected-button-id\",\n \"reflect\": false\n },\n \"reduced\": {\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\": \"Used to reduce the height when the button-container is next to a form-text\"\n },\n \"attribute\": \"reduced\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"fullWidth\": {\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\": \"Makes the buttons-container full-width\"\n },\n \"attribute\": \"full-width\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get events() {\n return [{\n \"method\": \"selectedButtonChanged\",\n \"name\": \"selectedButtonChanged\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n}\n//# sourceMappingURL=buttons-container.js.map\n",":host {\n --top-bar-progress: 0%;\n display: grid;\n grid-template-rows: 0fr;\n transition: 200ms grid-template-rows;\n overflow: hidden;\n --ds-icon-size-box--small: var(--mer-font__size--xxs);\n --ds-icon-size--small: 100%;\n}\n:host > * {\n overflow: hidden;\n}\n\n:host(.visible) {\n grid-template-rows: 1fr;\n}\n\n.top-state-bar {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--sm);\n border-radius: var(--mer-border__width--lg);\n list-style: var(--mer-font__size--xxs);\n display: flex;\n /*states*/\n}\n.top-state-bar > * {\n position: relative;\n z-index: 1;\n}\n.top-state-bar__outer-wrapper {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--sm);\n padding: var(--mer-spacing--sm) var(--mer-spacing--sm);\n border: var(--mer-border__width--sm) solid var(--mer-border-color__dim);\n border-radius: var(--mer-border__width--lg);\n}\n.top-state-bar__inner-wrapper {\n flex: 1;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n gap: var(--mer-spacing--xs);\n}\n.top-state-bar__caption {\n color: var(--mer-text__on-message);\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--mer-font__size--xxs);\n line-height: var(--mer-font__size--xxs);\n font-weight: var(--mer-font__weight--regular);\n display: flex;\n align-items: baseline;\n font-style: italic;\n}\n.top-state-bar__progress-wrapper {\n height: var(--mer-spacing--xxs);\n background-color: var(--mer-color__elevation--04);\n}\n.top-state-bar__close {\n cursor: pointer;\n transition: 200ms background-color;\n}\n.top-state-bar__inner-wrapper, .top-state-bar__progress-wrapper, .top-state-bar__close {\n opacity: 0;\n transition: 150ms opacity;\n}\n.top-state-bar--accent .progress-bar {\n background-color: var(--mer-accent__primary);\n}\n.top-state-bar--accent .top-state-bar__caption {\n color: var(--mer-accent__primary);\n}\n.top-state-bar--success .progress-bar {\n background-color: var(--mer-color__message-green--100);\n}\n.top-state-bar--success .top-state-bar__caption {\n color: var(--mer-color__message-green--100);\n}\n.top-state-bar--warning .progress-bar {\n background-color: var(--mer-color__message-yellow--100);\n}\n.top-state-bar--warning .top-state-bar__caption {\n color: var(--mer-color__message-yellow--100);\n}\n.top-state-bar--error .progress-bar {\n background-color: var(--mer-color__message-red--100);\n}\n.top-state-bar--error .top-state-bar__caption {\n color: var(--mer-color__message-red--100);\n}\n.top-state-bar--in-progress:before {\n height: 0;\n width: 120%;\n padding-top: 60%;\n padding-bottom: 60%;\n background: linear-gradient(90deg, #5ba7ff 0%, #3fa89b 100%);\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n -webkit-animation: inProgressBackgroundColor 1s linear infinite;\n animation: inProgressBackgroundColor 1s linear infinite;\n}\n.top-state-bar--in-progress .top-state-bar__close-wrapper {\n border-inline-start-color: #3fa89b;\n -webkit-animation: inProgressBorderColor 1s linear infinite;\n animation: inProgressBorderColor 1s linear infinite;\n}\n.top-state-bar--in-progress .progress-bar {\n position: relative;\n overflow: hidden;\n z-index: 1;\n}\n.top-state-bar--in-progress .progress-bar:after {\n content: \"\";\n position: absolute;\n z-index: 0;\n width: 300%;\n height: 100%;\n left: 0;\n background: linear-gradient(90deg, #93f5eb 0%, #1aa3ff 33%, #93f5eb 66%, #1aa3ff 100%);\n animation-name: inProgressBar;\n animation-duration: 2s;\n animation-iteration-count: infinite;\n}\n.top-state-bar--in-progress .top-state-bar__caption {\n color: #3fa89b;\n}\n.top-state-bar--visible .top-state-bar__inner-wrapper,\n.top-state-bar--visible .top-state-bar__progress-wrapper,\n.top-state-bar--visible .top-state-bar__close {\n opacity: 1;\n}\n.top-state-bar--visible .top-state-bar__close:hover {\n opacity: 0.75;\n}\n.top-state-bar--visible .top-state-bar__close:active {\n opacity: 0.5;\n}\n\n/*in progress animation*/\n@-webkit-keyframes inProgressBorderColor {\n 0% {\n border-inline-start-color: #3fa89b;\n }\n 100% {\n border-inline-start-color: #5ba7ff;\n }\n}\n@-webkit-keyframes inProgressBackgroundColor {\n 0% {\n transform: translate(-50%, -50%) rotate(0);\n }\n 100% {\n transform: translate(-50%, -50%) rotate(1turn);\n }\n}\n@-webkit-keyframes inProgressBar {\n 0% {\n left: 0%;\n }\n 100% {\n left: -200%;\n }\n}\n@-moz-keyframes inProgressBar {\n 0% {\n left: 0%;\n }\n 100% {\n left: 200%;\n }\n}\n@keyframes inProgressBar {\n 0% {\n left: 0%;\n }\n 100% {\n left: -200%;\n }\n}\n.progress-bar {\n display: block;\n transition: all 200ms;\n width: var(--top-bar-progress);\n border-radius: calc(var(--mer-spacing--xxs) / 2);\n height: 100%;\n}\n\n:host([no-border]) .top-state-bar__outer-wrapper {\n border: 0;\n}","import { Host, h } from \"@stencil/core\";\nexport class GxgTopStateBar {\n constructor() {\n this.topStateBarVisible = false;\n this.visible = false;\n this.caption = undefined;\n this.minimal = false;\n this.active = false;\n this.stateType = \"in-progress\";\n this.progress = undefined;\n this.withClose = undefined;\n this.autoClose = false;\n this.noBorder = false;\n this.closedCallback = () => { };\n }\n // 1.OWN PROPERTIES //\n // 2. REFERENCE TO ELEMENTS //\n el;\n watchActiveHandler(active) {\n if (active) {\n this.visible = true;\n setTimeout(() => {\n this.topStateBarVisible = true;\n }, 300);\n }\n else {\n this.topStateBarVisible = false;\n setTimeout(() => {\n this.visible = false;\n }, 300);\n }\n }\n watchStateTypeHandler() {\n this.evaluateWithAction();\n }\n watchProgressHandler(progress) {\n if (progress => 0 && progress <= 100) {\n this.el.style.setProperty(\"--top-bar-progress\", `${progress}%`);\n }\n if (progress === 100 && this.autoClose) {\n setTimeout(() => {\n this.active = false;\n }, 200);\n }\n }\n // 5.EVENTS (EMIT) //\n // 6.COMPONENT LIFECYCLE EVENTS //\n componentWillLoad() {\n this.evaluateWithAction();\n this.evaluateInitialProgress();\n if (this.active) {\n this.visible = true;\n this.topStateBarVisible = true;\n }\n }\n // 7.LISTENERS //\n // 8.PUBLIC METHODS API //\n // 9.LOCAL METHODS //\n evaluateInitialProgress = () => {\n if (this.progress === undefined &&\n (this.stateType === \"error\" ||\n this.stateType === \"warning\" ||\n this.stateType === \"success\")) {\n this.progress = 100;\n }\n else if (this.progress === undefined &&\n this.stateType === \"in-progress\") {\n this.progress = 0;\n }\n this.el.style.setProperty(\"--top-bar-progress\", `${this.progress}%`);\n };\n evaluateWithAction = () => {\n if (this.withClose === undefined &&\n (this.stateType === \"error\" ||\n this.stateType === \"warning\" ||\n this.stateType === \"success\")) {\n this.withClose = true;\n }\n };\n closeButtonHandler = () => {\n this.active = false;\n };\n closeKeyDownHandler = (e) => {\n if (e.key === \"Enter\") {\n this.active = false;\n }\n };\n closeClickHandler = () => {\n this.closeButtonHandler();\n this.closedCallback();\n };\n // 10.RENDER() FUNCTION //\n render() {\n return (h(Host, { class: { visible: this.visible }, \"aria-hidden\": !this.active }, h(\"div\", { role: \"status\", \"aria-labelledby\": \"label\", \"aria-hidden\": !this.active, class: {\n \"top-state-bar\": true,\n [`top-state-bar--${this.stateType}`]: true,\n \"top-state-bar--with-close\": this.withClose,\n \"top-state-bar--visible\": this.topStateBarVisible\n } }, h(\"div\", { class: \"top-state-bar__outer-wrapper\" }, !this.minimal ? (h(\"div\", { class: \"top-state-bar__inner-wrapper\" }, h(\"label\", { id: \"label\", class: {\n \"top-state-bar__caption\": true\n }, part: \"label\" }, this.caption), this.withClose && !this.minimal ? (h(\"gxg-icon\", { class: {\n \"top-state-bar__close\": true\n }, onClick: this.closeClickHandler, onKeyDown: this.closeKeyDownHandler, role: \"button\", \"aria-label\": \"close\", type: \"gemini-tools/close\", color: \"mercury-on-surface\", tabIndex: this.visible ? 0 : -1, size: \"small\" })) : null)) : null, h(\"div\", { class: {\n \"top-state-bar__progress-wrapper\": true\n }, part: \"progress-wrapper\" }, h(\"span\", { class: \"progress-bar\" }))))));\n }\n static get is() { return \"gxg-top-state-bar\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"gxg-top-state-bar.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"gxg-top-state-bar.css\"]\n };\n }\n static get properties() {\n return {\n \"caption\": {\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 top-bar title\"\n },\n \"attribute\": \"caption\",\n \"reflect\": false\n },\n \"minimal\": {\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 will only display the bar (no title, no close button)\"\n },\n \"attribute\": \"minimal\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"active\": {\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 top-bar active state. If false it will be hidden\"\n },\n \"attribute\": \"active\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"stateType\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"topStateBarType\",\n \"resolved\": \"\\\"accent\\\" | \\\"error\\\" | \\\"in-progress\\\" | \\\"success\\\" | \\\"warning\\\"\",\n \"references\": {\n \"topStateBarType\": {\n \"location\": \"local\",\n \"path\": \"/home/circleci/repo/src/components/top-state-bar/gxg-top-state-bar.tsx\",\n \"id\": \"src/components/top-state-bar/gxg-top-state-bar.tsx::topStateBarType\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The top-bar title\"\n },\n \"attribute\": \"state-type\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"in-progress\\\"\"\n },\n \"progress\": {\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 progress bar progress\"\n },\n \"attribute\": \"progress\",\n \"reflect\": false,\n \"defaultValue\": \"undefined\"\n },\n \"withClose\": {\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 will display a close action button\"\n },\n \"attribute\": \"with-close\",\n \"reflect\": false,\n \"defaultValue\": \"undefined\"\n },\n \"autoClose\": {\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 true, it will auto-close when the progress is 100\"\n },\n \"attribute\": \"auto-close\",\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\": \"It removes the border (actually is box shadow)\"\n },\n \"attribute\": \"no-border\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"closedCallback\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"() => void\",\n \"resolved\": \"() => void\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A callback that gets called when the top-state-bar is closed\"\n },\n \"defaultValue\": \"() => {}\"\n }\n };\n }\n static get states() {\n return {\n \"topStateBarVisible\": {},\n \"visible\": {}\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"active\",\n \"methodName\": \"watchActiveHandler\"\n }, {\n \"propName\": \"stateType\",\n \"methodName\": \"watchStateTypeHandler\"\n }, {\n \"propName\": \"progress\",\n \"methodName\": \"watchProgressHandler\"\n }];\n }\n}\n//# sourceMappingURL=gxg-top-state-bar.js.map\n"],"mappings":"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"}
@@ -1 +0,0 @@
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","noBorderTop","noBorderBottom","noBorderStart","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 noBorderTop\n noBorderBottom\n noBorderStart\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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"}