@genexus/genexus-ide-ui 0.0.85 → 0.0.87

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 (116) hide show
  1. package/dist/cjs/ch-action-group-render.cjs.entry.js +112 -0
  2. package/dist/cjs/ch-checkbox_3.cjs.entry.js +21 -10
  3. package/dist/cjs/ch-dropdown-item.cjs.entry.js +1 -1
  4. package/dist/cjs/ch-dropdown-render.cjs.entry.js +73 -0
  5. package/dist/cjs/ch-shortcuts_2.cjs.entry.js +99 -20
  6. package/dist/cjs/ch-tree-view-render_2.cjs.entry.js +49 -92
  7. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  8. package/dist/cjs/genexus-implementation-664b13f0.js +76 -0
  9. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +2 -5
  10. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +16 -9
  11. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +15 -4
  12. package/dist/cjs/gx-ide-new-object.cjs.entry.js +21 -3
  13. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +87 -59
  14. package/dist/cjs/gx-ide-recent-news.cjs.entry.js +2 -3
  15. package/dist/cjs/gx-ide-references.cjs.entry.js +2 -7
  16. package/dist/cjs/gxg-combo-box_2.cjs.entry.js +2 -8
  17. package/dist/cjs/loader.cjs.js +1 -1
  18. package/dist/collection/collection-manifest.json +2 -2
  19. package/dist/collection/components/kb-manager-import/kb-manager-import.js +2 -5
  20. package/dist/collection/components/new-environment/new-environment.js +39 -9
  21. package/dist/collection/components/new-kb/gx-ide-assets/new-kb/shortcuts.json +1 -4
  22. package/dist/collection/components/new-kb/new-kb.css +1 -9
  23. package/dist/collection/components/new-kb/new-kb.js +37 -3
  24. package/dist/collection/components/new-object/gx-ide-assets/new-object/shortcuts.json +1 -4
  25. package/dist/collection/components/new-object/new-object.js +44 -3
  26. package/dist/collection/components/object-selector/gx-ide-assets/object-selector/langs/object-selector.lang.en.json +4 -0
  27. package/dist/collection/components/object-selector/object-selector.css +4 -0
  28. package/dist/collection/components/object-selector/object-selector.js +123 -58
  29. package/dist/collection/components/references/references.js +3 -10
  30. package/dist/collection/components/start-page/recent-news.js +2 -3
  31. package/dist/components/ch-action-group-render.js +175 -0
  32. package/dist/components/ch-dropdown-item-separator.js +28 -1
  33. package/dist/components/ch-dropdown-render.js +121 -0
  34. package/dist/components/ch-shortcuts2.js +97 -19
  35. package/dist/components/combo-box.js +2 -9
  36. package/dist/components/dropdown-item.js +1 -1
  37. package/dist/components/genexus-implementation.js +74 -0
  38. package/dist/components/gx-ide-kb-manager-import.js +2 -5
  39. package/dist/components/gx-ide-new-environment.js +18 -10
  40. package/dist/components/gx-ide-new-kb.js +17 -5
  41. package/dist/components/gx-ide-new-object.js +24 -5
  42. package/dist/components/gx-ide-object-selector.js +140 -104
  43. package/dist/components/gx-ide-references.js +3 -10
  44. package/dist/components/index.js +2 -2
  45. package/dist/components/recent-news.js +2 -3
  46. package/dist/components/shortcuts.js +4 -1
  47. package/dist/components/tree-view-item.js +21 -10
  48. package/dist/components/tree-view-render.js +49 -91
  49. package/dist/esm/ch-action-group-render.entry.js +108 -0
  50. package/dist/esm/ch-checkbox_3.entry.js +21 -10
  51. package/dist/esm/ch-dropdown-item.entry.js +1 -1
  52. package/dist/esm/ch-dropdown-render.entry.js +69 -0
  53. package/dist/esm/ch-shortcuts_2.entry.js +99 -20
  54. package/dist/esm/ch-tree-view-render_2.entry.js +48 -91
  55. package/dist/esm/genexus-ide-ui.js +1 -1
  56. package/dist/esm/genexus-implementation-3b347d88.js +74 -0
  57. package/dist/esm/gx-ide-kb-manager-import.entry.js +2 -5
  58. package/dist/esm/gx-ide-new-environment.entry.js +16 -9
  59. package/dist/esm/gx-ide-new-kb.entry.js +15 -4
  60. package/dist/esm/gx-ide-new-object.entry.js +21 -3
  61. package/dist/esm/gx-ide-object-selector.entry.js +87 -59
  62. package/dist/esm/gx-ide-recent-news.entry.js +2 -3
  63. package/dist/esm/gx-ide-references.entry.js +2 -7
  64. package/dist/esm/gxg-combo-box_2.entry.js +2 -8
  65. package/dist/esm/loader.js +1 -1
  66. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  67. package/dist/genexus-ide-ui/gx-ide-assets/new-kb/shortcuts.json +1 -4
  68. package/dist/genexus-ide-ui/gx-ide-assets/new-object/shortcuts.json +1 -4
  69. package/dist/genexus-ide-ui/gx-ide-assets/object-selector/langs/object-selector.lang.en.json +4 -0
  70. package/dist/genexus-ide-ui/p-021e21a0.entry.js +1 -0
  71. package/dist/genexus-ide-ui/p-068b6b8d.entry.js +1 -0
  72. package/dist/genexus-ide-ui/p-06d9d6ff.entry.js +1 -0
  73. package/dist/genexus-ide-ui/p-1cf2d35f.entry.js +1 -0
  74. package/dist/genexus-ide-ui/p-356ee19a.js +1 -0
  75. package/dist/genexus-ide-ui/p-49333316.entry.js +1 -0
  76. package/dist/genexus-ide-ui/p-4bd7c59a.entry.js +1 -0
  77. package/dist/genexus-ide-ui/p-54b5628c.entry.js +1 -0
  78. package/dist/genexus-ide-ui/p-65b5622e.entry.js +1 -0
  79. package/dist/genexus-ide-ui/p-8a18798d.entry.js +1 -0
  80. package/dist/genexus-ide-ui/p-8f022c0e.entry.js +1 -0
  81. package/dist/genexus-ide-ui/p-c224911a.entry.js +1 -0
  82. package/dist/genexus-ide-ui/p-cadcd655.entry.js +1 -0
  83. package/dist/genexus-ide-ui/p-cfbd5a0e.entry.js +1 -0
  84. package/dist/genexus-ide-ui/{p-005970ac.entry.js → p-eaae6676.entry.js} +1 -1
  85. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/renders/action-group/action-group-render.css +3 -0
  86. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/renders/dropdown/dropdown-render.css +3 -0
  87. package/dist/types/components/new-environment/new-environment.d.ts +5 -1
  88. package/dist/types/components/new-kb/new-kb.d.ts +5 -0
  89. package/dist/types/components/new-object/new-object.d.ts +6 -0
  90. package/dist/types/components/object-selector/object-selector.d.ts +14 -3
  91. package/dist/types/components/references/references.d.ts +0 -9
  92. package/dist/types/components/start-page/recent-news.d.ts +1 -1
  93. package/dist/types/components.d.ts +24 -0
  94. package/package.json +3 -3
  95. package/dist/cjs/ch-test-action-group.cjs.entry.js +0 -79
  96. package/dist/cjs/ch-test-dropdown.cjs.entry.js +0 -54
  97. package/dist/components/ch-test-action-group.js +0 -137
  98. package/dist/components/ch-test-dropdown.js +0 -104
  99. package/dist/components/dropdown-item-separator.js +0 -30
  100. package/dist/esm/ch-test-action-group.entry.js +0 -75
  101. package/dist/esm/ch-test-dropdown.entry.js +0 -50
  102. package/dist/genexus-ide-ui/p-20fab805.entry.js +0 -1
  103. package/dist/genexus-ide-ui/p-2d77e2a3.entry.js +0 -1
  104. package/dist/genexus-ide-ui/p-5757e203.entry.js +0 -1
  105. package/dist/genexus-ide-ui/p-7a03aa05.entry.js +0 -1
  106. package/dist/genexus-ide-ui/p-7ae11b35.entry.js +0 -1
  107. package/dist/genexus-ide-ui/p-85b78e25.entry.js +0 -1
  108. package/dist/genexus-ide-ui/p-9f08b2a4.entry.js +0 -1
  109. package/dist/genexus-ide-ui/p-a2c7dc8a.entry.js +0 -1
  110. package/dist/genexus-ide-ui/p-a69aaabc.entry.js +0 -1
  111. package/dist/genexus-ide-ui/p-c00aa636.entry.js +0 -1
  112. package/dist/genexus-ide-ui/p-d3428456.entry.js +0 -1
  113. package/dist/genexus-ide-ui/p-d9910218.entry.js +0 -1
  114. package/dist/genexus-ide-ui/p-da8ad725.entry.js +0 -1
  115. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-action-group/test-action-group.css +0 -52
  116. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-dropdown/test-dropdown.css +0 -36
@@ -10,8 +10,6 @@ export class GxIdeNewKb {
10
10
  this.renderedFirstTime = false;
11
11
  this.selectedFrontEndsIds = [];
12
12
  this.shortcutsSrc = getAssetPath(`./gx-ide-assets/new-kb/shortcuts.json`);
13
- // 7.LISTENERS //
14
- // 8.PUBLIC METHODS API //
15
13
  // 9.LOCAL METHODS //
16
14
  // 9.LOCAL METHODS -> Helpers //
17
15
  this.initialSetup = () => {
@@ -242,6 +240,19 @@ export class GxIdeNewKb {
242
240
  this.renderedFirstTime = true;
243
241
  }
244
242
  }
243
+ // 7.LISTENERS //
244
+ // 8.PUBLIC METHODS API //
245
+ /**
246
+ * Suspends or reactivates the shortcuts
247
+ */
248
+ async suspendShortcuts(suspendShortcuts) {
249
+ if (suspendShortcuts) {
250
+ this.gxgShortcutsEl.suspend = true;
251
+ }
252
+ else {
253
+ this.gxgShortcutsEl.suspend = false;
254
+ }
255
+ }
245
256
  /** *****************************
246
257
  * 11.RENDER() FUNCTION
247
258
  ********************************/
@@ -256,7 +267,7 @@ export class GxIdeNewKb {
256
267
  h("gxg-form-text", { labelPosition: "start", placeholder: "C:\\Models", maxWidth: "100%", value: this.kbLocation, ref: (el) => (this.locationEl = el), disabled: !this.isAdvanced, part: "kb-location", class: "location-input" }),
257
268
  h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/folder", onClick: this.selectLocationHandler, part: "button-select-location", class: "location-icon" })
258
269
  ]
259
- : null), h("main", { class: "gxi-full-height" }, h("gxg-tabs", { class: "gxg-tabs" }, this.isAdvanced ? (h("gxg-tab-bar", { slot: "tab-bar-container", part: "tab-bar", displayBorder: true }, h("gxg-tab-button", { slot: "tab-bar", tabLabel: this._componentLocale.tabBasic.tabLabel, tab: "basic", "is-selected": true, hidden: !this.isAdvanced, part: "tab-button-basic" }), h("gxg-tab-button", { slot: "tab-bar", tabLabel: this._componentLocale.tabAdvanced.tabLabel, tab: "advanced", hidden: !this.isAdvanced, part: "tab-button-advanced" }))) : null, this.renderTabBasic(), this.isAdvanced && this.renderTabAdvanced())), h("gxg-button", { id: "button-cancel", type: "outlined", onClick: this.cancelKbHandler, part: "button-cancel", slot: "footer-end" }, this._componentLocale.footer.btnCancel), h("gxg-button", { id: "button-create", type: "primary-text-only", onClick: this.createKbHandler, part: "button-create", slot: "footer-end" }, this._componentLocale.footer.btnCreate))), h("gxg-shortcuts", { src: this.shortcutsSrc })));
270
+ : null), h("main", { class: "gxi-full-height" }, h("gxg-tabs", { class: "gxg-tabs" }, this.isAdvanced ? (h("gxg-tab-bar", { slot: "tab-bar-container", part: "tab-bar", displayBorder: true }, h("gxg-tab-button", { slot: "tab-bar", tabLabel: this._componentLocale.tabBasic.tabLabel, tab: "basic", "is-selected": true, hidden: !this.isAdvanced, part: "tab-button-basic" }), h("gxg-tab-button", { slot: "tab-bar", tabLabel: this._componentLocale.tabAdvanced.tabLabel, tab: "advanced", hidden: !this.isAdvanced, part: "tab-button-advanced" }))) : null, this.renderTabBasic(), this.isAdvanced && this.renderTabAdvanced())), h("gxg-button", { id: "button-cancel", type: "outlined", onClick: this.cancelKbHandler, part: "button-cancel", slot: "footer-end" }, this._componentLocale.footer.btnCancel), h("gxg-button", { id: "button-create", type: "primary-text-only", onClick: this.createKbHandler, part: "button-create", slot: "footer-end" }, this._componentLocale.footer.btnCreate))), h("gxg-shortcuts", { src: this.shortcutsSrc, ref: (el) => (this.gxgShortcutsEl = el) })));
260
271
  }
261
272
  static get is() { return "gx-ide-new-kb"; }
262
273
  static get encapsulation() { return "shadow"; }
@@ -730,5 +741,28 @@ export class GxIdeNewKb {
730
741
  }
731
742
  }];
732
743
  }
744
+ static get methods() {
745
+ return {
746
+ "suspendShortcuts": {
747
+ "complexType": {
748
+ "signature": "(suspendShortcuts: boolean) => Promise<void>",
749
+ "parameters": [{
750
+ "tags": [],
751
+ "text": ""
752
+ }],
753
+ "references": {
754
+ "Promise": {
755
+ "location": "global"
756
+ }
757
+ },
758
+ "return": "Promise<void>"
759
+ },
760
+ "docs": {
761
+ "text": "Suspends or reactivates the shortcuts",
762
+ "tags": []
763
+ }
764
+ }
765
+ };
766
+ }
733
767
  static get elementRef() { return "el"; }
734
768
  }
@@ -4,10 +4,7 @@
4
4
  "keyShortcuts": "Enter",
5
5
  "action": "click",
6
6
  "conditions": {
7
- "focusExclude": [
8
- "[part~='gxg-button--cancel']",
9
- "#module::part(button-clear)"
10
- ]
7
+ "focusExclude": "[part~='gxg-button--cancel'] ,#module::part(button-clear)"
11
8
  }
12
9
  },
13
10
  {
@@ -8,9 +8,12 @@ export class GxIdeNewObject {
8
8
  this.renderedFirstTime = false;
9
9
  this.shortcutsSrc = getAssetPath(`./gx-ide-assets/new-object/shortcuts.json`);
10
10
  this.descriptionModifiedByUser = false;
11
- // 7.LISTENERS //
12
- // 8.PUBLIC METHODS API //
13
11
  // 9.LOCAL METHODS //
12
+ this.setFirstFocusableElement = () => {
13
+ this.el.addEventListener("focus", () => {
14
+ this.nameEl.focus();
15
+ });
16
+ };
14
17
  this.validateInitialName = async () => {
15
18
  const result = await this.validateNameCallback(this.name);
16
19
  this.validateNameHandler(result);
@@ -139,6 +142,7 @@ export class GxIdeNewObject {
139
142
  }
140
143
  componentDidLoad() {
141
144
  this.nameEl.focus();
145
+ this.setFirstFocusableElement();
142
146
  this.validateInitialName();
143
147
  this.componentDidLoadEvent.emit(true);
144
148
  }
@@ -148,16 +152,30 @@ export class GxIdeNewObject {
148
152
  this.renderedFirstTime = true;
149
153
  }
150
154
  }
155
+ // 7.LISTENERS //
156
+ // 8.PUBLIC METHODS API //
157
+ /**
158
+ * Suspends or reactivates the shortcuts
159
+ */
160
+ async suspendShortcuts(suspendShortcuts) {
161
+ if (suspendShortcuts) {
162
+ this.gxgShortcutsEl.suspend = true;
163
+ }
164
+ else {
165
+ this.gxgShortcutsEl.suspend = false;
166
+ }
167
+ }
151
168
  // 10.LOCAL METHODS (RENDER) //
152
169
  // 11.RENDER() FUNCTION //
153
170
  render() {
154
171
  var _a;
155
172
  return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { noContentPadding: true, noContentGap: true, slimmerFooter: config.gxIdeContainer.slimmerFooter, containerTitle: this.displayTitle ? this._componentLocale.componentName : null, noHeadingBorder: true }, h("main", { class: "main" }, h("div", { class: "categories-types-container" }, h("div", { class: "categories" }, this.typeCategories.length > 0 ? (h("gxg-list-box", { class: "category", "single-selection": true, noBorder: true, borderEnd: true, "the-title": this._componentLocale.categorySelectionTitle, onSelectionChanged: this.categoryOnSelectionChangedHandler }, this.typeCategories.map(category => (h("gxg-list-box-item", { key: category.id, value: category.id, icon: category.icon, part: `category-${category.id}` }, category.name))))) : null), h("div", { class: "types" }, this.selectedCategory.types.length > 0 ? (h("gxg-list-box", { class: "types", "single-selection": true, noBorder: true, theTitle: this.selectedCategory.name
156
173
  ? `${this.selectedCategory.name} ${this._componentLocale.typeSelectionTitleSuffix}`
157
- : this._componentLocale.typeSelectionTitle, key: this.selectedCategory.id, onSelectionChanged: this.typeOnSelectionChangedHandler }, this.selectedCategory.types.map(type => (h("gxg-list-box-item", { key: `${this.selectedCategory.id}-${type.id}`, icon: type.icon, part: `type-${this.selectedCategory.id}-${type.id}` }, type.name))))) : (h("p", null, "No Categories to display")))), h("div", { class: "api-description" }, h("gxg-title", { type: "title-05" }, (_a = this.selectedType) === null || _a === void 0 ? void 0 : _a.description), h("div", { class: "form" }, h("gxg-label", { labelPosition: "start" }, this._componentLocale.objectName), h("gxg-form-text", { "label-position": "start", placeholder: "Name", "max-width": "100%", value: this.selectedType.name, toolTip: config.tooltip, ref: (el) => (this.nameEl = el), onInput: this.onInputNameHandler, onBlur: this.onBlurNameHandler, onValueChanged: this.onNameValueChangedHandler, debounce: true, part: "name", "display-validation-styles": true, "display-validation-message": true }), h("gxg-label", { labelPosition: "start" }, this._componentLocale.objectDescription), h("gxg-form-text", { "label-position": "start", placeholder: "Description", "max-width": "100%", value: this.selectedType.name, ref: (el) => (this.descriptionEl = el), onInput: this.onInputDescriptionHandler, part: "description", "display-validation-styles": true, "display-validation-message": true }), this.renderModuleFolder()))), h("gxg-button", { id: "button-cancel", slot: "footer-end", type: "outlined", onClick: this.cancelCallbackHandler, part: "gxg-button gxg-button--cancel" }, this._componentLocale.footer.btnCancel), h("gxg-button", { id: "button-create", slot: "footer-end", type: "primary-text-only", onClick: this.createCallbackHandler, disabled: !this.nameIsValid, part: "gxg-button gxg-button--create" }, this._componentLocale.footer.btnCreate))), h("gxg-shortcuts", { src: this.shortcutsSrc })));
174
+ : this._componentLocale.typeSelectionTitle, key: this.selectedCategory.id, onSelectionChanged: this.typeOnSelectionChangedHandler }, this.selectedCategory.types.map(type => (h("gxg-list-box-item", { key: `${this.selectedCategory.id}-${type.id}`, icon: type.icon, part: `type-${this.selectedCategory.id}-${type.id}` }, type.name))))) : (h("p", null, "No Categories to display")))), h("div", { class: "api-description" }, h("gxg-title", { type: "title-05" }, (_a = this.selectedType) === null || _a === void 0 ? void 0 : _a.description), h("div", { class: "form" }, h("gxg-label", { labelPosition: "start" }, this._componentLocale.objectName), h("gxg-form-text", { "label-position": "start", placeholder: "Name", "max-width": "100%", value: this.selectedType.name, toolTip: config.tooltip, ref: (el) => (this.nameEl = el), onInput: this.onInputNameHandler, onBlur: this.onBlurNameHandler, onValueChanged: this.onNameValueChangedHandler, debounce: true, part: "name", "display-validation-styles": true, "display-validation-message": true }), h("gxg-label", { labelPosition: "start" }, this._componentLocale.objectDescription), h("gxg-form-text", { "label-position": "start", placeholder: "Description", "max-width": "100%", value: this.selectedType.name, ref: (el) => (this.descriptionEl = el), onInput: this.onInputDescriptionHandler, part: "description", "display-validation-styles": true, "display-validation-message": true }), this.renderModuleFolder()))), h("gxg-button", { id: "button-cancel", slot: "footer-end", type: "outlined", onClick: this.cancelCallbackHandler, part: "gxg-button gxg-button--cancel" }, this._componentLocale.footer.btnCancel), h("gxg-button", { id: "button-create", slot: "footer-end", type: "primary-text-only", onClick: this.createCallbackHandler, disabled: !this.nameIsValid, part: "gxg-button gxg-button--create" }, this._componentLocale.footer.btnCreate))), h("gxg-shortcuts", { src: this.shortcutsSrc, ref: (el) => (this.gxgShortcutsEl = el) })));
158
175
  }
159
176
  static get is() { return "gx-ide-new-object"; }
160
177
  static get encapsulation() { return "shadow"; }
178
+ static get delegatesFocus() { return true; }
161
179
  static get originalStyleUrls() {
162
180
  return {
163
181
  "$": ["new-object.scss"]
@@ -435,6 +453,29 @@ export class GxIdeNewObject {
435
453
  }
436
454
  }];
437
455
  }
456
+ static get methods() {
457
+ return {
458
+ "suspendShortcuts": {
459
+ "complexType": {
460
+ "signature": "(suspendShortcuts: boolean) => Promise<void>",
461
+ "parameters": [{
462
+ "tags": [],
463
+ "text": ""
464
+ }],
465
+ "references": {
466
+ "Promise": {
467
+ "location": "global"
468
+ }
469
+ },
470
+ "return": "Promise<void>"
471
+ },
472
+ "docs": {
473
+ "text": "Suspends or reactivates the shortcuts",
474
+ "tags": []
475
+ }
476
+ }
477
+ };
478
+ }
438
479
  static get elementRef() { return "el"; }
439
480
  static get watchers() {
440
481
  return [{
@@ -40,5 +40,9 @@
40
40
  "btnNew": "New Object",
41
41
  "btnConfirm": "Confirm",
42
42
  "btnCancel": "Cancel"
43
+ },
44
+ "loader": {
45
+ "title": "Loading Objects...",
46
+ "cancelLabel": "Cancel Process"
43
47
  }
44
48
  }
@@ -270,6 +270,10 @@ Found on /common/helpers.tsx hiChar function is used to add a span/class to ever
270
270
  }
271
271
 
272
272
  /*gxg-grid*/
273
+ .grid-container {
274
+ height: 100%;
275
+ }
276
+
273
277
  ch-grid-cell {
274
278
  --spacing-comp-02: var(--spacing-comp-03);
275
279
  }
@@ -13,57 +13,8 @@ export class GxIdeObjectSelector {
13
13
  this.renderedFirstTime = false;
14
14
  this.shortcutsSrc = getAssetPath(`./gx-ide-assets/object-selector/shortcuts.json`);
15
15
  // 9.LOCAL METHODS //
16
- this.renderFilter = () => {
17
- var _a, _b;
18
- return (h("div", { part: "filters-container", class: {
19
- "filter-grid": true,
20
- "filter-grid--no-title": !this.displayTitle
21
- }, slot: "header" }, h("gxg-form-text", { "label-position": "above", label: this._componentLocale.filter.pattern, ref: (el) => (this.filterPatternEl = el), value: this.patternValue, class: "pattern", part: "filter-pattern" }), h("gxg-combo-box", { "disable-filter": true, label: this._componentLocale.filter.type, value: this.defaultType, disabled: !this.types, "display-validation-styles": true, "display-validation-message": true, ref: (el) => (this.filterTypeEl = el), class: "type", part: "filter-type" }, renderComboItems((_a = this.types) !== null && _a !== void 0 ? _a : [])), h("gxg-combo-box", { "disable-filter": true, label: this._componentLocale.filter.category, value: this.defaultCategory, disabled: !this.categories, "display-validation-styles": true, "display-validation-message": true, ref: (el) => (this.filterCategoryEl = el), class: "category", part: "filter-category" }, renderComboItems((_b = this.categories) !== null && _b !== void 0 ? _b : [])), h("gx-ide-entity-selector", { label: this._componentLocale.filter.module, "label-position": "above", value: this.defaultModule, defaultValue: this.defaultModule, selectEntityCallback: this.selectModuleCallback, ref: (el) => (this.filterModuleEl = el), class: "module-folder" }), h("div", { class: "modified-row" }, h("gxg-form-checkbox", { label: this._componentLocale.filter.modified, class: "align-center", ref: (el) => (this.filterModifiedEl = el), part: "filter-modified" }), h("div", { class: "modified-row__inner-wrapper" }, h("gxg-combo-box", { class: {
22
- "gxi-hidden": !this.filterModified,
23
- "combo-modified": true
24
- }, "disable-filter": true, value: this.filterAfterType, "display-validation-styles": true, "display-validation-message": true, ref: (el) => (this.filterAfterTypeEl = el), part: "filter-after-type" }, renderComboItems([
25
- {
26
- id: FILTER_AFTER.NONE,
27
- label: this._componentLocale.filter.afterNone,
28
- value: FILTER_AFTER.NONE
29
- },
30
- {
31
- id: FILTER_AFTER.DATE_TIME,
32
- label: this._componentLocale.filter[FILTER_AFTER.DATE_TIME],
33
- value: FILTER_AFTER.DATE_TIME
34
- },
35
- {
36
- id: FILTER_AFTER.IMPORT,
37
- label: this._componentLocale.filter[FILTER_AFTER.IMPORT],
38
- value: FILTER_AFTER.IMPORT
39
- },
40
- {
41
- id: FILTER_AFTER.LAST_BUILD,
42
- label: this._componentLocale.filter[FILTER_AFTER.LAST_BUILD],
43
- value: FILTER_AFTER.LAST_BUILD
44
- }
45
- ])), h("gxg-form-text", { class: {
46
- "gxi-hidden": !this.filterModified,
47
- "user": true
48
- }, "label-position": "start", label: this._componentLocale.filter.user, "max-width": "150px", ref: (el) => (this.filterUserEl = el), part: "filter-user" }), h("div", { class: {
49
- "date-time": true,
50
- "gxi-hidden": !this.filterModified ||
51
- this.filterAfterType !== FILTER_AFTER.DATE_TIME
52
- }, part: "filter-datetime" }, h("gxg-label", { "label-position": "start" }, this._componentLocale.filter.dateTime), h("gxg-date-picker", { ref: (el) => (this.filterModifiedDateEl = el), class: "date-time" }))))));
53
- };
54
- this.renderObjects = () => {
55
- return (h("gxg-grid", { "ellipsis-cell-wrapper": true, noBorder: true }, h("ch-grid", { rowSelectionMode: this.multiSelection ? "multiple" : "single", ref: (el) => (this.chGridEl = el), onKeyDown: this.chGridKeyDownHandler, part: "ch-grid-objects" }, h("ch-grid-columnset", null, h("ch-grid-column", { "column-name-position": "text", settingable: false, size: gridCommon.colSize.auto }), h("ch-grid-column", { "column-name": this._componentLocale.tableHead.name, "column-name-position": "text", settingable: false, size: gridCommon.colSize.auto }), h("ch-grid-column", { "column-name": this._componentLocale.tableHead.type, "column-name-position": "text", settingable: false, size: gridCommon.colSize.auto }), h("ch-grid-column", { "column-name": this._componentLocale.tableHead.module, "column-name-position": "text", settingable: false, size: gridCommon.colSize.auto }), h("ch-grid-column", { "column-name": this._componentLocale.tableHead.description, "column-name-position": "text", settingable: false, size: gridCommon.colSize.common }), h("ch-grid-column", { "column-name": this._componentLocale.tableHead.modifiedDate, "column-name-position": "text", settingable: false, size: gridCommon.colSize.auto }), h("ch-grid-column", { "column-name": this._componentLocale.tableHead.importDate, "column-name-position": "text", settingable: false, size: gridCommon.colSize.auto })), this.objects
56
- .sort((a, b) => {
57
- const nameA = a.name.toLowerCase(), nameB = b.name.toLowerCase();
58
- if (nameA < nameB) {
59
- return -1;
60
- }
61
- if (nameA > nameB) {
62
- return 1;
63
- }
64
- return 0;
65
- })
66
- .map((obj) => (h("ch-grid-row", { rowid: obj.id, onDblClick: this.openSelectionCallbackHandler }, h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, h("gxg-icon", { type: obj.icon, color: "auto" }))), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, " ", obj.name, " ")), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, obj.type)), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, obj.module)), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, obj.description)), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, `${formatDate(obj.modifiedDate, "date-time")}`)), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, `${formatDate(obj.importDate, "date-time")}`))))))));
16
+ this.loaderCancelCallbackHandler = async () => {
17
+ this.cancelCallbackHandler();
67
18
  };
68
19
  this.getObjects = () => {
69
20
  var _a, _b, _c, _d, _e, _f, _g, _h;
@@ -82,17 +33,27 @@ export class GxIdeObjectSelector {
82
33
  ? (_h = this.filterModifiedDateEl) === null || _h === void 0 ? void 0 : _h.value
83
34
  : null
84
35
  };
85
- this.loadCallback(filters).then((items) => {
86
- this.objects = items;
87
- this.selectedObjectsIds = [];
88
- this.deselectAll();
89
- });
36
+ if (this.loadCallback) {
37
+ if (this.loader) {
38
+ this.loaderEl.show = true;
39
+ }
40
+ this.loadCallback(filters).then((items) => {
41
+ if (items) {
42
+ this.objects = items;
43
+ }
44
+ this.selectedObjectsIds = [];
45
+ this.deselectAll();
46
+ if (this.loader) {
47
+ this.loaderEl.show = false;
48
+ }
49
+ });
50
+ }
90
51
  };
91
52
  this.openSelectionCallbackHandler = (e) => {
92
53
  e.stopPropagation();
93
54
  this.openSelectionCallback(this.selectedObjectsIds);
94
55
  };
95
- this.cancelCallbackHandle = () => {
56
+ this.cancelCallbackHandler = () => {
96
57
  this.cancelCallback();
97
58
  };
98
59
  this.selectAll = () => {
@@ -176,11 +137,65 @@ export class GxIdeObjectSelector {
176
137
  return `${this.objects.length} ${this._componentLocale.objCount.matching.many}`;
177
138
  }
178
139
  };
140
+ // 9.LOCAL METHODS -> RENDER//
141
+ this.renderFilter = () => {
142
+ var _a, _b;
143
+ return (h("div", { part: "filters-container", class: {
144
+ "filter-grid": true,
145
+ "filter-grid--no-title": !this.displayTitle
146
+ }, slot: "header" }, h("gxg-form-text", { "label-position": "above", label: this._componentLocale.filter.pattern, ref: (el) => (this.filterPatternEl = el), value: this.patternValue, class: "pattern", part: "filter-pattern" }), h("gxg-combo-box", { "disable-filter": true, label: this._componentLocale.filter.type, value: this.defaultType, disabled: !this.types, "display-validation-styles": true, "display-validation-message": true, ref: (el) => (this.filterTypeEl = el), class: "type", part: "filter-type" }, renderComboItems((_a = this.types) !== null && _a !== void 0 ? _a : [])), h("gxg-combo-box", { "disable-filter": true, label: this._componentLocale.filter.category, value: this.defaultCategory, disabled: !this.categories, "display-validation-styles": true, "display-validation-message": true, ref: (el) => (this.filterCategoryEl = el), class: "category", part: "filter-category" }, renderComboItems((_b = this.categories) !== null && _b !== void 0 ? _b : [])), h("gx-ide-entity-selector", { label: this._componentLocale.filter.module, "label-position": "above", value: this.defaultModule, defaultValue: this.defaultModule, selectEntityCallback: this.selectModuleCallback, ref: (el) => (this.filterModuleEl = el), class: "module-folder" }), h("div", { class: "modified-row" }, h("gxg-form-checkbox", { label: this._componentLocale.filter.modified, class: "align-center", ref: (el) => (this.filterModifiedEl = el), part: "filter-modified" }), h("div", { class: "modified-row__inner-wrapper" }, h("gxg-combo-box", { class: {
147
+ "gxi-hidden": !this.filterModified,
148
+ "combo-modified": true
149
+ }, "disable-filter": true, value: this.filterAfterType, "display-validation-styles": true, "display-validation-message": true, ref: (el) => (this.filterAfterTypeEl = el), part: "filter-after-type" }, renderComboItems([
150
+ {
151
+ id: FILTER_AFTER.NONE,
152
+ label: this._componentLocale.filter.afterNone,
153
+ value: FILTER_AFTER.NONE
154
+ },
155
+ {
156
+ id: FILTER_AFTER.DATE_TIME,
157
+ label: this._componentLocale.filter[FILTER_AFTER.DATE_TIME],
158
+ value: FILTER_AFTER.DATE_TIME
159
+ },
160
+ {
161
+ id: FILTER_AFTER.IMPORT,
162
+ label: this._componentLocale.filter[FILTER_AFTER.IMPORT],
163
+ value: FILTER_AFTER.IMPORT
164
+ },
165
+ {
166
+ id: FILTER_AFTER.LAST_BUILD,
167
+ label: this._componentLocale.filter[FILTER_AFTER.LAST_BUILD],
168
+ value: FILTER_AFTER.LAST_BUILD
169
+ }
170
+ ])), h("gxg-form-text", { class: {
171
+ "gxi-hidden": !this.filterModified,
172
+ "user": true
173
+ }, "label-position": "start", label: this._componentLocale.filter.user, "max-width": "150px", ref: (el) => (this.filterUserEl = el), part: "filter-user" }), h("div", { class: {
174
+ "date-time": true,
175
+ "gxi-hidden": !this.filterModified ||
176
+ this.filterAfterType !== FILTER_AFTER.DATE_TIME
177
+ }, part: "filter-datetime" }, h("gxg-label", { "label-position": "start" }, this._componentLocale.filter.dateTime), h("gxg-date-picker", { ref: (el) => (this.filterModifiedDateEl = el), class: "date-time" }))))));
178
+ };
179
+ this.renderObjects = () => {
180
+ return (h("gxg-grid", { "ellipsis-cell-wrapper": true, noBorder: true }, h("ch-grid", { rowSelectionMode: this.multiSelection ? "multiple" : "single", ref: (el) => (this.chGridEl = el), onKeyDown: this.chGridKeyDownHandler, part: "ch-grid-objects" }, h("ch-grid-columnset", null, h("ch-grid-column", { "column-name-position": "text", settingable: false, size: gridCommon.colSize.auto }), h("ch-grid-column", { "column-name": this._componentLocale.tableHead.name, "column-name-position": "text", settingable: false, size: gridCommon.colSize.auto }), h("ch-grid-column", { "column-name": this._componentLocale.tableHead.type, "column-name-position": "text", settingable: false, size: gridCommon.colSize.auto }), h("ch-grid-column", { "column-name": this._componentLocale.tableHead.module, "column-name-position": "text", settingable: false, size: gridCommon.colSize.auto }), h("ch-grid-column", { "column-name": this._componentLocale.tableHead.description, "column-name-position": "text", settingable: false, size: gridCommon.colSize.common }), h("ch-grid-column", { "column-name": this._componentLocale.tableHead.modifiedDate, "column-name-position": "text", settingable: false, size: gridCommon.colSize.auto }), h("ch-grid-column", { "column-name": this._componentLocale.tableHead.importDate, "column-name-position": "text", settingable: false, size: gridCommon.colSize.auto })), this.objects
181
+ .sort((a, b) => {
182
+ const nameA = a.name.toLowerCase(), nameB = b.name.toLowerCase();
183
+ if (nameA < nameB) {
184
+ return -1;
185
+ }
186
+ if (nameA > nameB) {
187
+ return 1;
188
+ }
189
+ return 0;
190
+ })
191
+ .map((obj) => (h("ch-grid-row", { rowid: obj.id, onDblClick: this.openSelectionCallbackHandler }, h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, h("gxg-icon", { type: obj.icon, color: "auto" }))), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, " ", obj.name, " ")), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, obj.type)), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, obj.module)), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, obj.description)), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, `${formatDate(obj.modifiedDate, "date-time")}`)), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, `${formatDate(obj.importDate, "date-time")}`))))))));
192
+ };
179
193
  this.filterAfterType = "";
180
194
  this.filterModified = false;
181
195
  this.objects = [];
182
196
  this.selectedObjectsIds = [];
183
197
  this.displayTitle = false;
198
+ this.loader = false;
184
199
  this.multiSelection = true;
185
200
  this.patternValue = undefined;
186
201
  this.types = undefined;
@@ -201,6 +216,7 @@ export class GxIdeObjectSelector {
201
216
  }
202
217
  componentDidLoad() {
203
218
  this.listenChanges();
219
+ this.loaderEl.container = this.chGridEl;
204
220
  this.getObjects();
205
221
  this.filterPatternEl.focus();
206
222
  }
@@ -212,6 +228,17 @@ export class GxIdeObjectSelector {
212
228
  }
213
229
  // 7.LISTENERS //
214
230
  // 8.PUBLIC METHODS API //
231
+ /**
232
+ * Suspends or reactivates the shortcuts
233
+ */
234
+ async suspendShortcuts(suspendShortcuts) {
235
+ if (suspendShortcuts) {
236
+ this.gxgShortcutsEl.suspend = true;
237
+ }
238
+ else {
239
+ this.gxgShortcutsEl.suspend = false;
240
+ }
241
+ }
215
242
  /**
216
243
  * Validate necessary data input
217
244
  */
@@ -221,10 +248,11 @@ export class GxIdeObjectSelector {
221
248
  }
222
249
  // 10.RENDER() FUNCTION //
223
250
  render() {
224
- return (h(Host, { class: "gx-ide-component", onKeyPress: this.hostKeyPressHandler }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { containerTitle: this.displayTitle ? this._componentLocale.componentName : null, noContentPadding: true, noAboveFooterPadding: true, noHeadingPadding: true, headingPaddingTop: true, noHeadingBorder: true, slimmerFooter: config.gxIdeContainer.slimmerFooter }, this.renderFilter(), this.renderObjects(), h("div", { class: "objects-count", slot: "footer-above" }, h("gxg-text", { class: "align-end", part: "objects-selected", textAlign: "center" }, this.evaluateObjectsCount("selected")), h("gxg-text", { class: "align-end", part: "objects-matching", textAlign: "center" }, this.evaluateObjectsCount("matching"))), h("gxg-button", { type: "outlined", onClick: this.cancelCallbackHandle, part: "gxg-button gxg-button--cancel", slot: "footer-end" }, this._componentLocale.footer.btnCancel), h("gxg-button", { type: "primary-text-only", onClick: this.openSelectionCallbackHandler, part: "gxg-button gxg-button--ok", slot: "footer-end" }, this._componentLocale.footer.btnConfirm), h("gxg-button", { type: "primary-text-icon", icon: "menus/new-object", onClick: this.newObjectCallbackHandler, part: "gxg-button gxg-button--new", slot: "footer-start" }, this._componentLocale.footer.btnNew), this.multiSelection ? (h("gxg-button", { type: "secondary-text-only", onClick: this.selectAll, part: "gxg-button gxg-button--select-all", slot: "footer-start" }, this._componentLocale.footer.btnSelectAll)) : null)), h("gxg-shortcuts", { src: this.shortcutsSrc })));
251
+ return (h(Host, { class: "gx-ide-component", onKeyPress: this.hostKeyPressHandler }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { containerTitle: this.displayTitle ? this._componentLocale.componentName : null, noContentPadding: true, noAboveFooterPadding: true, noHeadingPadding: true, headingPaddingTop: true, noHeadingBorder: true, slimmerFooter: config.gxIdeContainer.slimmerFooter }, this.renderFilter(), this.renderObjects(), h("div", { class: "objects-count", slot: "footer-above" }, h("gxg-text", { class: "align-end", part: "objects-selected", textAlign: "center" }, this.evaluateObjectsCount("selected")), h("gxg-text", { class: "align-end", part: "objects-matching", textAlign: "center" }, this.evaluateObjectsCount("matching"))), h("gxg-button", { type: "outlined", onClick: this.cancelCallbackHandler, part: "gxg-button gxg-button--cancel", slot: "footer-end" }, this._componentLocale.footer.btnCancel), h("gxg-button", { type: "primary-text-only", onClick: this.openSelectionCallbackHandler, part: "gxg-button gxg-button--ok", slot: "footer-end" }, this._componentLocale.footer.btnConfirm), h("gxg-button", { type: "primary-text-icon", icon: "menus/new-object", onClick: this.newObjectCallbackHandler, part: "gxg-button gxg-button--new", slot: "footer-start" }, this._componentLocale.footer.btnNew), this.multiSelection ? (h("gxg-button", { type: "secondary-text-only", onClick: this.selectAll, part: "gxg-button gxg-button--select-all", slot: "footer-start" }, this._componentLocale.footer.btnSelectAll)) : null)), h("gxg-shortcuts", { src: this.shortcutsSrc, ref: (el) => (this.gxgShortcutsEl = el) }), this.loader ? (h("gxg-ide-loader", { cancelLabel: this._componentLocale.loader.cancelLabel, loaderTitle: this._componentLocale.loader.title, ref: el => (this.loaderEl = el), cancelCallback: this.loaderCancelCallbackHandler })) : null));
225
252
  }
226
253
  static get is() { return "gx-ide-object-selector"; }
227
254
  static get encapsulation() { return "shadow"; }
255
+ static get delegatesFocus() { return true; }
228
256
  static get originalStyleUrls() {
229
257
  return {
230
258
  "$": ["object-selector.scss"]
@@ -256,6 +284,24 @@ export class GxIdeObjectSelector {
256
284
  "reflect": false,
257
285
  "defaultValue": "false"
258
286
  },
287
+ "loader": {
288
+ "type": "boolean",
289
+ "mutable": false,
290
+ "complexType": {
291
+ "original": "false",
292
+ "resolved": "boolean",
293
+ "references": {}
294
+ },
295
+ "required": false,
296
+ "optional": false,
297
+ "docs": {
298
+ "tags": [],
299
+ "text": "If true, it will display a loader when needed."
300
+ },
301
+ "attribute": "loader",
302
+ "reflect": false,
303
+ "defaultValue": "false"
304
+ },
259
305
  "multiSelection": {
260
306
  "type": "boolean",
261
307
  "mutable": false,
@@ -524,6 +570,25 @@ export class GxIdeObjectSelector {
524
570
  }
525
571
  static get methods() {
526
572
  return {
573
+ "suspendShortcuts": {
574
+ "complexType": {
575
+ "signature": "(suspendShortcuts: boolean) => Promise<void>",
576
+ "parameters": [{
577
+ "tags": [],
578
+ "text": ""
579
+ }],
580
+ "references": {
581
+ "Promise": {
582
+ "location": "global"
583
+ }
584
+ },
585
+ "return": "Promise<void>"
586
+ },
587
+ "docs": {
588
+ "text": "Suspends or reactivates the shortcuts",
589
+ "tags": []
590
+ }
591
+ },
527
592
  "validate": {
528
593
  "complexType": {
529
594
  "signature": "() => Promise<boolean>",
@@ -100,12 +100,9 @@ export class GxIdeReferences {
100
100
  resolve([]);
101
101
  });
102
102
  };
103
- this.referenceSelectedHandler = (selectedItem) => {
103
+ this.referenceSelectedHandler = (event) => {
104
104
  if (this.selectReferenceCallback) {
105
- const selectedItems = [];
106
- selectedItem.detail.forEach(item => {
107
- selectedItems.push(item.id);
108
- });
105
+ const selectedItems = event.detail.map(item => item.item.id);
109
106
  this.selectReferenceCallback(selectedItems[0]);
110
107
  // returns void
111
108
  }
@@ -121,8 +118,6 @@ export class GxIdeReferences {
121
118
  this.referencesToTreeData = undefined;
122
119
  this.barHidden = false;
123
120
  this.objectsSuggestions = undefined;
124
- this.referencedBy = undefined;
125
- this.referencesTo = undefined;
126
121
  this.displayTitle = false;
127
122
  this.selectedObject = undefined;
128
123
  this.selectorSourceCallback = undefined;
@@ -325,9 +320,7 @@ export class GxIdeReferences {
325
320
  "referencedByTreeData": {},
326
321
  "referencesToTreeData": {},
327
322
  "barHidden": {},
328
- "objectsSuggestions": {},
329
- "referencedBy": {},
330
- "referencesTo": {}
323
+ "objectsSuggestions": {}
331
324
  };
332
325
  }
333
326
  static get events() {
@@ -53,8 +53,7 @@ export class GxIdeRecentNews {
53
53
  }
54
54
  }
55
55
  };
56
- this.NewsClickHandler = async (e) => {
57
- const newsId = e.target.id;
56
+ this.openNewsHandler = (newsId) => async () => {
58
57
  if (this.openNewsCallback) {
59
58
  await this.openNewsCallback(newsId);
60
59
  }
@@ -62,7 +61,7 @@ export class GxIdeRecentNews {
62
61
  // 9.LOCAL METHODS -> RENDERS //
63
62
  this.renderNews = (news) => {
64
63
  if (news.id && news.title) {
65
- return (h("gxg-card", { id: news.id, key: news.id, cardType: "article", cardTitle: news.title, icon: "gx-test/test-results", iconColor: "auto", actionable: true, onClick: this.NewsClickHandler, titleSemibold: true, noHeaderBorder: true, class: "news-article" }, news.body ? h("p", null, news.body) : null));
64
+ return (h("gxg-card", { id: news.id, key: news.id, cardType: "article", cardTitle: news.title, icon: "gx-test/test-results", iconColor: "auto", actionable: true, onClick: this.openNewsHandler(news.id), titleSemibold: true, noHeaderBorder: true, class: "news-article" }, news.body ? h("p", null, news.body) : null));
66
65
  }
67
66
  return null;
68
67
  };