@sankhyalabs/sankhyablocks 0.0.0-bugfix-dev-KB-47082.0 → 0.0.0-bugfix-dev-KB-46492.0

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 (148) hide show
  1. package/dist/cjs/{SnkMessageBuilder-e7dcf408.js → SnkMessageBuilder-141aa18d.js} +2 -1
  2. package/dist/cjs/SnkMultiSelectionListDataSource-5213120b.js +140 -0
  3. package/dist/cjs/index-f9e81701.js +2 -10
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/{pesquisa-fetcher-c416a6b7.js → pesquisa-fetcher-94f6b316.js} +231 -20
  6. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  7. package/dist/cjs/{snk-actions-button_2.cjs.entry.js → snk-actions-button_4.cjs.entry.js} +517 -2
  8. package/dist/cjs/snk-application.cjs.entry.js +2 -3
  9. package/dist/cjs/snk-attach.cjs.entry.js +3 -4
  10. package/dist/cjs/snk-crud.cjs.entry.js +2 -3
  11. package/dist/cjs/snk-data-exporter.cjs.entry.js +7 -3
  12. package/dist/cjs/{snk-data-unit-82c08a8c.js → snk-data-unit-6026a9f7.js} +1 -1
  13. package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
  14. package/dist/cjs/snk-detail-view.cjs.entry.js +5 -6
  15. package/dist/cjs/snk-form-config.cjs.entry.js +6 -0
  16. package/dist/cjs/snk-form.cjs.entry.js +1 -1
  17. package/dist/cjs/snk-grid.cjs.entry.js +10 -19
  18. package/dist/cjs/{snk-guides-viewer-bd69fce4.js → snk-guides-viewer-c7293cfa.js} +2 -3
  19. package/dist/cjs/snk-guides-viewer.cjs.entry.js +3 -4
  20. package/dist/cjs/snk-personalized-filter-editor.cjs.entry.js +3 -1
  21. package/dist/cjs/snk-simple-crud.cjs.entry.js +147 -16
  22. package/dist/cjs/snk-taskbar.cjs.entry.js +5 -1
  23. package/dist/collection/collection-manifest.json +6 -6
  24. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +2 -2
  25. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +1 -1
  26. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +5 -1
  27. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-personalized-filter-editor/snk-personalized-filter-editor.js +3 -1
  28. package/dist/collection/components/snk-form/snk-form.js +1 -1
  29. package/dist/collection/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.js +11 -5
  30. package/dist/collection/components/snk-grid/snk-grid.js +5 -16
  31. package/dist/collection/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.js +130 -123
  32. package/dist/collection/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.js +1 -1
  33. package/dist/collection/components/snk-simple-crud/snk-simple-crud.css +5 -0
  34. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +226 -14
  35. package/dist/collection/components/snk-taskbar/snk-taskbar.js +6 -0
  36. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +1 -8
  37. package/dist/collection/lib/message/resources/snk-data-exporter.msg.js +2 -1
  38. package/dist/collection/lib/utils/CrudUtils.js +13 -1
  39. package/dist/components/SnkMessageBuilder.js +2 -1
  40. package/dist/components/dataunit-fetcher.js +1 -8
  41. package/dist/components/field-search.js +93 -3
  42. package/dist/components/index.d.ts +6 -6
  43. package/dist/components/snk-attach2.js +54 -12
  44. package/dist/components/snk-data-exporter2.js +5 -1
  45. package/dist/components/snk-detail-view2.js +29 -4
  46. package/dist/components/snk-form-config2.js +7 -1
  47. package/dist/components/snk-grid-config2.js +128 -102
  48. package/dist/components/snk-grid2.js +10 -17
  49. package/dist/components/snk-personalized-filter-editor.js +3 -1
  50. package/dist/components/snk-simple-crud2.js +204 -24
  51. package/dist/components/snk-taskbar2.js +5 -1
  52. package/dist/esm/{SnkMessageBuilder-0fb796b9.js → SnkMessageBuilder-9747ddd2.js} +2 -1
  53. package/dist/esm/SnkMultiSelectionListDataSource-7e7eada5.js +133 -0
  54. package/dist/esm/index-a7d3d3f1.js +2 -10
  55. package/dist/esm/loader.js +1 -1
  56. package/dist/esm/{pesquisa-fetcher-ab16a2e8.js → pesquisa-fetcher-f05a12ca.js} +222 -12
  57. package/dist/esm/sankhyablocks.js +1 -1
  58. package/dist/esm/{snk-actions-button_2.entry.js → snk-actions-button_4.entry.js} +516 -3
  59. package/dist/esm/snk-application.entry.js +2 -3
  60. package/dist/esm/snk-attach.entry.js +2 -3
  61. package/dist/esm/snk-crud.entry.js +2 -3
  62. package/dist/esm/snk-data-exporter.entry.js +7 -3
  63. package/dist/esm/{snk-data-unit-5d201fb3.js → snk-data-unit-4c343635.js} +1 -1
  64. package/dist/esm/snk-data-unit.entry.js +2 -2
  65. package/dist/esm/snk-detail-view.entry.js +5 -6
  66. package/dist/esm/snk-form-config.entry.js +7 -1
  67. package/dist/esm/snk-form.entry.js +1 -1
  68. package/dist/esm/snk-grid.entry.js +11 -20
  69. package/dist/esm/{snk-guides-viewer-fde82cc1.js → snk-guides-viewer-47443f7c.js} +2 -3
  70. package/dist/esm/snk-guides-viewer.entry.js +3 -4
  71. package/dist/esm/snk-personalized-filter-editor.entry.js +3 -1
  72. package/dist/esm/snk-simple-crud.entry.js +148 -17
  73. package/dist/esm/snk-taskbar.entry.js +5 -1
  74. package/dist/sankhyablocks/p-0c9dd95e.entry.js +1 -0
  75. package/dist/sankhyablocks/p-20b46647.entry.js +1 -0
  76. package/dist/sankhyablocks/p-2897fb8c.js +1 -0
  77. package/dist/sankhyablocks/{p-05243555.js → p-2936303b.js} +1 -1
  78. package/dist/sankhyablocks/p-30735d1e.entry.js +1 -0
  79. package/dist/sankhyablocks/p-3c5b7cfc.entry.js +1 -0
  80. package/dist/sankhyablocks/p-6ae58da0.js +1 -0
  81. package/dist/sankhyablocks/{p-fcdcb0e2.entry.js → p-746fc99e.entry.js} +1 -1
  82. package/dist/sankhyablocks/p-7e05bd83.entry.js +1 -0
  83. package/dist/sankhyablocks/p-99b1926b.entry.js +1 -0
  84. package/dist/sankhyablocks/{p-f3d1c48e.js → p-9a5d1b39.js} +1 -1
  85. package/dist/sankhyablocks/p-9fb97691.entry.js +1 -0
  86. package/dist/sankhyablocks/p-a9aec34d.entry.js +1 -0
  87. package/dist/sankhyablocks/p-b11aa1e0.entry.js +1 -0
  88. package/dist/sankhyablocks/{p-fd0a8d68.entry.js → p-c4bcdd4b.entry.js} +3 -3
  89. package/dist/sankhyablocks/p-d78d4062.js +65 -0
  90. package/dist/sankhyablocks/p-e7dbe53a.entry.js +1 -0
  91. package/dist/sankhyablocks/p-eefe9954.entry.js +1 -0
  92. package/dist/sankhyablocks/p-fca66dda.entry.js +1 -0
  93. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  94. package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +1 -1
  95. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +1 -1
  96. package/dist/types/components/snk-form/snk-form.d.ts +1 -1
  97. package/dist/types/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.d.ts +4 -3
  98. package/dist/types/components/snk-grid/snk-grid.d.ts +0 -1
  99. package/dist/types/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.d.ts +11 -6
  100. package/dist/types/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.d.ts +1 -1
  101. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +46 -1
  102. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +1 -0
  103. package/dist/types/components.d.ts +26 -10
  104. package/dist/types/lib/utils/CrudUtils.d.ts +3 -0
  105. package/package.json +1 -1
  106. package/dist/cjs/PreloadManager-84466da6.js +0 -224
  107. package/dist/cjs/SnkMultiSelectionListDataSource-ba5838c2.js +0 -49
  108. package/dist/cjs/snk-grid-config.cjs.entry.js +0 -483
  109. package/dist/cjs/snk-select-box.cjs.entry.js +0 -25
  110. package/dist/esm/PreloadManager-c1c2f2b4.js +0 -222
  111. package/dist/esm/SnkMultiSelectionListDataSource-44494b0e.js +0 -43
  112. package/dist/esm/snk-grid-config.entry.js +0 -479
  113. package/dist/esm/snk-select-box.entry.js +0 -21
  114. package/dist/sankhyablocks/p-094c30cb.js +0 -1
  115. package/dist/sankhyablocks/p-11ad137d.entry.js +0 -1
  116. package/dist/sankhyablocks/p-3e91d5ea.entry.js +0 -1
  117. package/dist/sankhyablocks/p-57212bb5.js +0 -1
  118. package/dist/sankhyablocks/p-5f5b58b6.entry.js +0 -1
  119. package/dist/sankhyablocks/p-84bb8f47.entry.js +0 -1
  120. package/dist/sankhyablocks/p-8c13d8d6.entry.js +0 -1
  121. package/dist/sankhyablocks/p-91b7f78a.entry.js +0 -1
  122. package/dist/sankhyablocks/p-98674137.entry.js +0 -1
  123. package/dist/sankhyablocks/p-b7004423.entry.js +0 -1
  124. package/dist/sankhyablocks/p-c22c1d8e.js +0 -1
  125. package/dist/sankhyablocks/p-c4874327.entry.js +0 -1
  126. package/dist/sankhyablocks/p-c6247955.js +0 -65
  127. package/dist/sankhyablocks/p-c758265f.entry.js +0 -1
  128. package/dist/sankhyablocks/p-d4802f81.entry.js +0 -1
  129. package/dist/sankhyablocks/p-e3bd000e.entry.js +0 -1
  130. package/dist/sankhyablocks/p-fb842329.entry.js +0 -1
  131. package/dist/sankhyablocks/p-fdc4cb9b.entry.js +0 -1
  132. /package/dist/cjs/{SnkFormConfigManager-3621bfc4.js → SnkFormConfigManager-0ffd098d.js} +0 -0
  133. /package/dist/collection/components/{snk-form → snk-form-config}/SnkFormConfigManager.js +0 -0
  134. /package/dist/collection/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.css +0 -0
  135. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.css +0 -0
  136. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.js +0 -0
  137. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.css +0 -0
  138. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.js +0 -0
  139. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.css +0 -0
  140. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.js +0 -0
  141. /package/dist/collection/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.css +0 -0
  142. /package/dist/collection/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.css +0 -0
  143. /package/dist/esm/{SnkFormConfigManager-692e20c7.js → SnkFormConfigManager-dd450734.js} +0 -0
  144. /package/dist/sankhyablocks/{p-725d04ba.js → p-9ea14b61.js} +0 -0
  145. /package/dist/types/components/{snk-form → snk-form-config}/SnkFormConfigManager.d.ts +0 -0
  146. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.d.ts +0 -0
  147. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.d.ts +0 -0
  148. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.d.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  import { Action } from '@sankhyalabs/core';
2
2
  import { Host, forceUpdate, h } from '@stencil/core';
3
- import { SnkFormConfigManager } from '../../../snk-form/SnkFormConfigManager';
3
+ import { SnkFormConfigManager } from '../../../snk-form-config/SnkFormConfigManager';
4
4
  import { buildFormMetadata } from "@sankhyalabs/ezui/dist/collection/utils/form";
5
5
  import { PresentationMode } from '../../../../lib';
6
6
  import { TaskbarElement } from '../../../snk-taskbar/elements/taskbar-elements';
@@ -236,7 +236,7 @@ export class SnkDetailView {
236
236
  "references": {
237
237
  "SnkFormConfigManager": {
238
238
  "location": "import",
239
- "path": "../../../snk-form/SnkFormConfigManager"
239
+ "path": "../../../snk-form-config/SnkFormConfigManager"
240
240
  }
241
241
  }
242
242
  },
@@ -1,6 +1,6 @@
1
1
  import { Action as DUAction, ElementIDUtils } from '@sankhyalabs/core';
2
2
  import { Fragment, h } from '@stencil/core';
3
- import { SnkFormConfigManager } from '../../snk-form/SnkFormConfigManager';
3
+ import { SnkFormConfigManager } from '../../snk-form-config/SnkFormConfigManager';
4
4
  import { buildFormMetadata, FormMetadata } from '@sankhyalabs/ezui/dist/collection/utils/form';
5
5
  import TaskbarProcessor from '../../snk-taskbar/processor/taskbar-processor';
6
6
  import { TaskbarElement } from '../../snk-taskbar/elements/taskbar-elements';
@@ -120,7 +120,11 @@ export class SnkDataExporter {
120
120
  }
121
121
  fetchDataExporter(params)
122
122
  .then((result) => callbackResolver(result))
123
- .catch((exception) => ApplicationUtils.error(this.getMessage("snkDataExporter.message.exportError"), exception ? exception.statusMessage : this.getMessage("snkDataExporter.message.exportError")));
123
+ .catch((exception) => {
124
+ console.error(exception);
125
+ let { title, message, statusMessage } = exception || {};
126
+ ApplicationUtils.error(title || this.getMessage("snkDataExporter.message.exportError"), statusMessage || message || this.getMessage("snkDataExporter.message.unknownFailure"));
127
+ });
124
128
  }
125
129
  getOptionKey(option) {
126
130
  return Object.keys(DataExporterOption)
@@ -55,8 +55,10 @@ export class SnkFilterPersonalized {
55
55
  return this.presentationMode === EPresentationMode.MODAL;
56
56
  }
57
57
  doSearch(mode, argument, param) {
58
+ const context = Object.assign({}, param.searchContext);
59
+ context.searchOptions = Object.assign(Object.assign({}, context.searchOptions), { showInactives: "true" });
58
60
  return new Promise((resolve, reject) => {
59
- this._application.executePreparedSearch(mode, argument, param.searchContext)
61
+ this._application.executePreparedSearch(mode, argument, context)
60
62
  .then(result => {
61
63
  resolve(result);
62
64
  }).catch(reason => {
@@ -1,6 +1,6 @@
1
1
  import { ElementIDUtils } from '@sankhyalabs/core';
2
2
  import { h } from '@stencil/core';
3
- import { SnkFormConfigManager } from './SnkFormConfigManager';
3
+ import { SnkFormConfigManager } from '../snk-form-config/SnkFormConfigManager';
4
4
  import ResourceIDUtils from '../../lib/resourceid/ResourceIDUtils';
5
5
  export class SnkForm {
6
6
  constructor() {
@@ -1,9 +1,9 @@
1
1
  import { h, Host } from "@stencil/core";
2
2
  import { Sortable } from '@shopify/draggable';
3
- import { ObjectUtils, ArrayUtils, ElementIDUtils } from '@sankhyalabs/core';
3
+ import { ObjectUtils, ArrayUtils, ElementIDUtils, ApplicationContext } from '@sankhyalabs/core';
4
4
  import { ApplicationUtils, DialogType } from "@sankhyalabs/ezui/dist/collection/utils";
5
- import { ACTION_CONFIG, CONFIG_EVENTS, CONFIG_SORTABLE_EVENTS, DEFAULT_TYPE, TAB_NAMES } from "../../../../lib/utils/constants";
6
- import { UserConfigType } from "../../../../lib/http/data-fetcher/fetchers/form-config-fetcher";
5
+ import { ACTION_CONFIG, CONFIG_EVENTS, CONFIG_SORTABLE_EVENTS, DEFAULT_TYPE, TAB_NAMES } from "../../lib/utils/constants";
6
+ import { UserConfigType } from "../../lib/http/data-fetcher/fetchers/form-config-fetcher";
7
7
  import { buildFormConfigFromDataUnit } from "@sankhyalabs/ezui/dist/collection/utils/form";
8
8
  const CONTAINER_ID = {
9
9
  collapsibleBox: "EZ-COLLAPSIBLE-BOX",
@@ -946,6 +946,12 @@ export class SnkFormConfig {
946
946
  this.controlSortableField();
947
947
  this.controlSortableGroup();
948
948
  }
949
+ async componentWillRender() {
950
+ if (this.messagesBuilder == undefined) {
951
+ const application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
952
+ this.messagesBuilder = application.messagesBuilder;
953
+ }
954
+ }
949
955
  componentWillLoad() {
950
956
  this.loadConfig();
951
957
  }
@@ -1019,7 +1025,7 @@ export class SnkFormConfig {
1019
1025
  "references": {
1020
1026
  "SnkFormConfigManager": {
1021
1027
  "location": "import",
1022
- "path": "../../SnkFormConfigManager"
1028
+ "path": "./SnkFormConfigManager"
1023
1029
  }
1024
1030
  }
1025
1031
  },
@@ -1039,7 +1045,7 @@ export class SnkFormConfig {
1039
1045
  "references": {
1040
1046
  "SnkMessageBuilder": {
1041
1047
  "location": "import",
1042
- "path": "../../../../lib/message/SnkMessageBuilder"
1048
+ "path": "../../lib/message/SnkMessageBuilder"
1043
1049
  }
1044
1050
  }
1045
1051
  },
@@ -1,6 +1,6 @@
1
1
  import { h, Fragment } from '@stencil/core';
2
2
  import { ApplicationContext, DataType, ElementIDUtils, StringUtils } from '@sankhyalabs/core';
3
- import { SortMode, UserInterface } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
3
+ import { UserInterface } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
4
4
  import { TaskbarElement } from '../snk-taskbar/elements/taskbar-elements';
5
5
  import { ConfigStorage } from '../../lib/configs/ConfigStorage';
6
6
  import { PresentationMode } from '../../lib/@types';
@@ -9,6 +9,7 @@ import store from "../../lib/store";
9
9
  import SnkMultiSelectionListDataSource from './filtercolumn/SnkMultiSelectionListDataSource';
10
10
  import { SelectionMode } from '@sankhyalabs/core/dist/dataunit/DataUnit';
11
11
  import { buildFieldSearch, openFieldSearch } from '../snk-taskbar/subcomponents/field-search';
12
+ import { CrudUtils } from '../../lib';
12
13
  export class SnkGrid {
13
14
  constructor() {
14
15
  this._topTaskbarProcessor = new TaskbarProcessor({
@@ -111,19 +112,7 @@ export class SnkGrid {
111
112
  }
112
113
  setGridConfig(config) {
113
114
  this._gridConfig = config;
114
- this.assertDefaultSorting();
115
- }
116
- assertDefaultSorting() {
117
- if (this._gridConfig && this._dataUnit) {
118
- this._dataUnit.defaultSorting = this._gridConfig
119
- .columns
120
- .filter(col => col.ascending != undefined)
121
- .sort((colA, colB) => colA.orderIndex - colB.orderIndex)
122
- .map(({ name: field, ascending }) => {
123
- const { dataType } = this._dataUnit.getField(field);
124
- return { field, dataType, mode: ascending ? SortMode.ASC : SortMode.DESC };
125
- });
126
- }
115
+ CrudUtils.assertDefaultSorting(this._gridConfig, this._dataUnit);
127
116
  }
128
117
  loadConfig() {
129
118
  ConfigStorage.loadGridConfig(this.configName, this.resourceID)
@@ -249,7 +238,7 @@ export class SnkGrid {
249
238
  ElementIDUtils.addIDInfo(this._element, null, dataInfo);
250
239
  }
251
240
  finshLoading() {
252
- this.assertDefaultSorting();
241
+ CrudUtils.assertDefaultSorting(this._gridConfig, this._dataUnit);
253
242
  this.addElementID();
254
243
  if (this.columnFilterDataSource != undefined) {
255
244
  this.columnFilterDataSource.setApplication(this._application);
@@ -401,7 +390,7 @@ export class SnkGrid {
401
390
  return undefined;
402
391
  }
403
392
  return (h("div", { class: "snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, h("div", { class: "snk-grid__header ez-margin-bottom--medium" }, this._showSnkFilterBar &&
404
- h(Fragment, null, h("snk-filter-bar", { ref: (ref) => this._snkFilterBar = ref, title: this.filterBarTitle, dataUnit: this._dataUnit, "data-element-id": "gridFilter", class: "snk-grid__filter-bar ez-align--top", configName: this.configName, messagesBuilder: this.messagesBuilder, resourceID: this.resourceID, onConfigUpdated: evt => this.handleFilterConfigUpdated(evt.detail), disablePersonalizedFilter: this.disablePersonalizedFilter }), h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" })), h("snk-taskbar", { class: "ez-padding-left--medium", "data-element-id": "grid_top", key: "topTaskbar", configName: this.configName, dataUnit: this._dataUnit, messagesBuilder: this.messagesBuilder, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: this.getPrimaryButton(), resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: this.topTaskbarCustomSlotId, overflowStrategy: 'none' }, h("slot", { name: this.topTaskbarCustomSlotId }))), h("ez-grid", { ref: ref => this._grid = ref, class: (this.presentationMode === PresentationMode.SECONDARY ? "snk-grid-container__without-shadow " : "") + "snk-grid__table", "data-element-id": "embedded", dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: (evt) => { this.gridConfigChangeHandler(evt); }, onEzDoubleClick: (evt) => this.gridDoubleClick.emit(evt.detail), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, columnfilterDataSource: this.columnFilterDataSource, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, recordsValidator: this.recordsValidator, canEdit: this.canEdit }, h("snk-taskbar", { id: 'teste', dataUnit: this._dataUnit, configName: this.configName, messagesBuilder: this.messagesBuilder, "data-element-id": "grid_left", buttons: this._headerTaskbarProcessor.buttons, presentationMode: this.presentationMode, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.getActionsList(), primaryButton: this.getPrimaryButton(), resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: this.gridHeaderCustomSlotId }, h("slot", { name: this.gridHeaderCustomSlotId }))), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" })), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._popUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this._gridConfig, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), application: this._application, selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resourceID }))));
393
+ h(Fragment, null, h("snk-filter-bar", { ref: (ref) => this._snkFilterBar = ref, title: this.filterBarTitle, dataUnit: this._dataUnit, "data-element-id": "gridFilter", class: "snk-grid__filter-bar ez-align--top", configName: this.configName, messagesBuilder: this.messagesBuilder, resourceID: this.resourceID, onConfigUpdated: evt => this.handleFilterConfigUpdated(evt.detail), disablePersonalizedFilter: this.disablePersonalizedFilter }), h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" })), h("snk-taskbar", { class: "ez-padding-left--medium", "data-element-id": "grid_top", key: "topTaskbar", configName: this.configName, dataUnit: this._dataUnit, messagesBuilder: this.messagesBuilder, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: this.getPrimaryButton(), resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: this.topTaskbarCustomSlotId, overflowStrategy: 'none' }, h("slot", { name: this.topTaskbarCustomSlotId }))), h("ez-grid", { ref: ref => this._grid = ref, class: (this.presentationMode === PresentationMode.SECONDARY ? "snk-grid-container__without-shadow " : "") + "snk-grid__table", "data-element-id": "embedded", dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: (evt) => { this.gridConfigChangeHandler(evt); }, onEzDoubleClick: (evt) => this.gridDoubleClick.emit(evt.detail), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, columnfilterDataSource: this.columnFilterDataSource, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, recordsValidator: this.recordsValidator, canEdit: this.canEdit }, h("snk-taskbar", { id: 'teste', dataUnit: this._dataUnit, configName: this.configName, messagesBuilder: this.messagesBuilder, "data-element-id": "grid_left", buttons: this._headerTaskbarProcessor.buttons, presentationMode: this.presentationMode, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.getActionsList(), primaryButton: this.getPrimaryButton(), resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: this.gridHeaderCustomSlotId }, h("slot", { name: this.gridHeaderCustomSlotId }))), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" })), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._popUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this._gridConfig, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resourceID }))));
405
394
  }
406
395
  static get is() { return "snk-grid"; }
407
396
  static get encapsulation() { return "scoped"; }
@@ -1,9 +1,9 @@
1
- import { StringUtils, ElementIDUtils } from '@sankhyalabs/core';
1
+ import { StringUtils, ElementIDUtils, ApplicationContext } from '@sankhyalabs/core';
2
2
  import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
3
3
  import { CheckMode } from '@sankhyalabs/ezui/dist/collection/components/ez-check/CheckMode';
4
4
  import { h, Host } from '@stencil/core';
5
- import { ConfigStorage } from '../../../../lib/configs/ConfigStorage';
6
- import { ORDER_VALUES } from '../../../../lib/utils/constants';
5
+ import { ConfigStorage } from '../../lib/configs/ConfigStorage';
6
+ import { ORDER_VALUES } from '../../lib/utils/constants';
7
7
  export class SnkGridConfig {
8
8
  constructor() {
9
9
  this._orderListItems = [];
@@ -13,7 +13,6 @@ export class SnkGridConfig {
13
13
  this._dataChanged = false;
14
14
  this._componenteInternalKey = Date.now();
15
15
  this.selectedIndex = 0;
16
- this.application = undefined;
17
16
  this.columns = undefined;
18
17
  this.config = undefined;
19
18
  this.configName = undefined;
@@ -27,9 +26,10 @@ export class SnkGridConfig {
27
26
  * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-grid.msg.ts"
28
27
  */
29
28
  getMessage(key, params) {
30
- return this.application.messagesBuilder.getMessage(key, params);
29
+ const application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
30
+ return application.messagesBuilder.getMessage(key, params);
31
31
  }
32
- createOrderList() {
32
+ getSortableColumns() {
33
33
  let newList = [];
34
34
  this.columns.filter(col => { var _a; return StringUtils.getBooleanValue((_a = col === null || col === void 0 ? void 0 : col.props) === null || _a === void 0 ? void 0 : _a.get("sortable"), true); }).forEach((column) => {
35
35
  var _a;
@@ -43,7 +43,11 @@ export class SnkGridConfig {
43
43
  newList.push(item);
44
44
  }
45
45
  });
46
- newList.sort((a, b) => {
46
+ return newList;
47
+ }
48
+ createOrderList() {
49
+ let newSortableList = this.getSortableColumns();
50
+ newSortableList.sort((a, b) => {
47
51
  //OS dois tem order index 0 e pelo menos um deles tem orientação de ordenação.
48
52
  if (a.orderIndex == 0 && b.orderIndex == 0 && (a.ascending != undefined || b.ascending != undefined)) {
49
53
  if (a.ascending != undefined)
@@ -66,7 +70,7 @@ export class SnkGridConfig {
66
70
  }
67
71
  return (a.orderIndex - b.orderIndex);
68
72
  });
69
- this._orderListItems = newList;
73
+ this._orderListItems = newSortableList;
70
74
  }
71
75
  createColumnList() {
72
76
  let visibleGroup = {
@@ -89,12 +93,18 @@ export class SnkGridConfig {
89
93
  });
90
94
  this._columListItems = [visibleGroup, hiddenGroup];
91
95
  }
96
+ createColumnListSlotDataElementId(item) {
97
+ return `configItem_${StringUtils.replaceAccentuatedChars(StringUtils.toCamelCase(item.label))}`;
98
+ }
92
99
  buildColumnListSlot(item, group) {
93
- const dataElementId = `configItem_${StringUtils.replaceAccentuatedChars(StringUtils.toCamelCase(item.label))}`;
100
+ const dataElementId = this.createColumnListSlotDataElementId(item);
94
101
  return (h("div", null, h("ez-check", { mode: CheckMode.SWITCH, id: CheckMode.SWITCH + ((item === null || item === void 0 ? void 0 : item.label) || '') + ((group === null || group === void 0 ? void 0 : group.group) || ''), value: group.group === this.getMessage("snkGridConfig.group.visible"), "data-element-id": dataElementId, onEzChange: (evt) => { this.switchColumnGroup(evt, item); } })));
95
102
  }
103
+ createOrderListSlotDataElementId(item) {
104
+ return `${this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)}_configItem_${StringUtils.toCamelCase(item.label)}`;
105
+ }
96
106
  buildOrderListSlot(item) {
97
- const dataElementId = `${this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME)}_configItem_${StringUtils.toCamelCase(item.label)}`;
107
+ const dataElementId = this.createOrderListSlotDataElementId(item);
98
108
  let selectedOption = ORDER_VALUES.none.value;
99
109
  if ((item === null || item === void 0 ? void 0 : item.ascending) != undefined) {
100
110
  selectedOption = item.ascending == true ? ORDER_VALUES.asc.value : ORDER_VALUES.desc.value;
@@ -112,7 +122,7 @@ export class SnkGridConfig {
112
122
  let orderArray;
113
123
  if (((_a = this._orderPriorityList) === null || _a === void 0 ? void 0 : _a.length) > 0) {
114
124
  this._orderPriorityList.find((item) => item.label === newItem.label).sort = sortOrder;
115
- this._orderPriorityList.filter((item) => item.sort).map((item, index) => {
125
+ this._orderPriorityList.filter((item) => item.sort).forEach((item, index) => {
116
126
  if (item.label === newItem.label) {
117
127
  newItem.sortIndex = index;
118
128
  }
@@ -181,6 +191,35 @@ export class SnkGridConfig {
181
191
  this.closeConfig();
182
192
  this.save();
183
193
  }
194
+ saveGridConfigOnStorage(_newConfig) {
195
+ ConfigStorage.saveGridConfig(_newConfig, this.configName, this.resourceID)
196
+ .then((savedConfig) => {
197
+ this.configChange.emit(savedConfig);
198
+ this._orderList.clearHistory();
199
+ ApplicationUtils.info(this.getMessage("snkGridConfig.info.successfullyConfigSaved"), { iconName: "check" });
200
+ });
201
+ }
202
+ reOrderPriorityColumns(columns, orderPriorityList) {
203
+ let orderArray = [];
204
+ orderArray = columns.filter((item) => item.sort && item.hidden !== true)
205
+ .map((item) => {
206
+ return { label: item.label, orderIndex: 0 };
207
+ });
208
+ let indexCount = 0;
209
+ let newOrderArray = [];
210
+ orderPriorityList.forEach((orderPriorityItem) => {
211
+ let item = orderArray.find((column) => column.label === orderPriorityItem.label);
212
+ if (item) {
213
+ item.orderIndex = indexCount;
214
+ newOrderArray.push(item);
215
+ indexCount++;
216
+ }
217
+ });
218
+ if (newOrderArray.length > 0) {
219
+ orderArray = newOrderArray;
220
+ }
221
+ return orderArray;
222
+ }
184
223
  save() {
185
224
  var _a;
186
225
  let _newConfig;
@@ -193,30 +232,12 @@ export class SnkGridConfig {
193
232
  let _newColumnConfigList = [];
194
233
  let orderArray;
195
234
  if (((_a = this._orderPriorityList) === null || _a === void 0 ? void 0 : _a.length) > 0) {
196
- orderArray = this.columns.filter((item) => item.sort && item.hidden !== true)
197
- .map((item) => {
198
- return { label: item.label, orderIndex: 0 };
199
- });
200
- let indexCount = 0;
201
- let newOrderArray = [];
202
- this._orderPriorityList.forEach((orderPriorityItem) => {
203
- let item = orderArray.find((column) => column.label === orderPriorityItem.label);
204
- if (item) {
205
- item.orderIndex = indexCount;
206
- newOrderArray.push(item);
207
- indexCount++;
208
- }
209
- });
210
- if (newOrderArray.length > 0) {
211
- orderArray = newOrderArray;
212
- }
235
+ orderArray = this.reOrderPriorityColumns(this.columns, this._orderPriorityList);
213
236
  }
214
- for (let i = 0; i < this.columns.length; i++) {
215
- const column = this.columns[i];
237
+ this.columns.forEach((column) => {
216
238
  let _newColumnConfig = _newConfig.columns.find((_newColumnConfig) => column.name === _newColumnConfig.name);
217
- if (column.hidden === true && _newColumnConfig) {
218
- continue;
219
- }
239
+ if (column.hidden === true && _newColumnConfig)
240
+ return;
220
241
  if (_newColumnConfig) {
221
242
  _newColumnConfig.width = column.width;
222
243
  }
@@ -239,14 +260,9 @@ export class SnkGridConfig {
239
260
  }
240
261
  _newColumnConfigList.push(_newColumnConfig);
241
262
  }
242
- }
243
- _newConfig.columns = _newColumnConfigList;
244
- ConfigStorage.saveGridConfig(_newConfig, this.configName, this.resourceID)
245
- .then((savedConfig) => {
246
- this.configChange.emit(savedConfig);
247
- this._orderList.clearHistory();
248
- ApplicationUtils.info(this.getMessage("snkGridConfig.info.successfullyConfigSaved"), { iconName: "check" });
249
263
  });
264
+ _newConfig.columns = _newColumnConfigList;
265
+ this.saveGridConfigOnStorage(_newConfig);
250
266
  function adjustPriorityOrder(column, _newColumnConfig) {
251
267
  if (orderArray) {
252
268
  let orderItem = orderArray.find((item) => item.label === column.label);
@@ -281,85 +297,96 @@ export class SnkGridConfig {
281
297
  async locateColumn(evt, searchingText) {
282
298
  var _a;
283
299
  const hitEnter = evt.key === "Enter";
300
+ searchingText = searchingText || ((_a = evt.currentTarget) === null || _a === void 0 ? void 0 : _a.value);
284
301
  if (!searchingText) {
285
- searchingText = (_a = evt.currentTarget) === null || _a === void 0 ? void 0 : _a.value;
302
+ this.removeSelection();
303
+ return;
286
304
  }
287
- let newSelected = -1;
305
+ const matchedIndexes = await this.getMatchedIndexes(searchingText);
306
+ const newSelected = this.getNewSelectedIndex(matchedIndexes, hitEnter);
307
+ this._selectedIndex = newSelected;
288
308
  if (this.selectedIndex === 1) {
289
- if (searchingText) {
290
- const matchedIndexes = [];
291
- let orderListDatasource;
292
- await this._orderList.getList().then((listGroup) => {
293
- orderListDatasource = listGroup;
294
- orderListDatasource.forEach((column, index) => {
295
- if (this.compareWords(column, searchingText)) {
296
- matchedIndexes.push(index);
297
- }
298
- });
299
- });
300
- if (matchedIndexes.length > 0) {
301
- if (hitEnter) {
302
- for (let j = 0; j < matchedIndexes.length; j++) {
303
- if (matchedIndexes[j] > this._selectedIndex) {
304
- newSelected = matchedIndexes[j];
305
- break;
306
- }
307
- }
308
- }
309
- if (newSelected === -1) {
310
- newSelected = matchedIndexes[0];
311
- }
309
+ this.updateOrderListSelection(newSelected);
310
+ }
311
+ else {
312
+ this.updateColumnListSelection(newSelected);
313
+ }
314
+ }
315
+ async getMatchedIndexes(searchingText) {
316
+ const matchedIndexes = [];
317
+ if (this.selectedIndex === 1) {
318
+ const orderListDatasource = await this._orderList.getList();
319
+ orderListDatasource.forEach((column, index) => {
320
+ if (this.compareWords(column, searchingText)) {
321
+ matchedIndexes.push(index);
312
322
  }
313
- this._selectedIndex = newSelected;
314
- let selectedColumn;
315
- selectedColumn = orderListDatasource[newSelected];
316
- if (selectedColumn) {
317
- this._orderList.setSelection(selectedColumn, true);
323
+ });
324
+ }
325
+ else {
326
+ this.columns.forEach((column, index) => {
327
+ if (this.compareWords(column, searchingText)) {
328
+ matchedIndexes.push(index);
318
329
  }
319
- else {
320
- this._orderList.removeSelection();
330
+ });
331
+ }
332
+ return matchedIndexes;
333
+ }
334
+ getNewSelectedIndex(matchedIndexes, hitEnter) {
335
+ if (matchedIndexes.length === 0)
336
+ return -1;
337
+ if (hitEnter) {
338
+ for (const index of matchedIndexes) {
339
+ if (index > this._selectedIndex) {
340
+ return index;
321
341
  }
322
342
  }
343
+ }
344
+ return matchedIndexes[0];
345
+ }
346
+ updateOrderListSelection(newSelected) {
347
+ if (newSelected === -1) {
348
+ this._orderList.removeSelection();
349
+ return;
350
+ }
351
+ this._orderList.getList().then((orderListDatasource) => {
352
+ const selectedColumn = orderListDatasource[newSelected];
353
+ if (selectedColumn) {
354
+ this._orderList.setSelection(selectedColumn, true);
355
+ }
323
356
  else {
324
357
  this._orderList.removeSelection();
325
358
  }
359
+ });
360
+ }
361
+ updateColumnListSelection(newSelected) {
362
+ if (newSelected === -1) {
363
+ this._columnList.removeSelection();
364
+ return;
326
365
  }
327
- else {
328
- if (searchingText) {
329
- const matchedIndexes = [];
330
- this.columns.forEach((column, index) => {
331
- if (this.compareWords(column, searchingText)) {
332
- matchedIndexes.push(index);
333
- }
334
- });
335
- if (matchedIndexes.length > 0) {
336
- if (hitEnter) {
337
- for (let j = 0; j < matchedIndexes.length; j++) {
338
- if (matchedIndexes[j] > this._selectedIndex) {
339
- newSelected = matchedIndexes[j];
340
- break;
341
- }
342
- }
343
- }
344
- if (newSelected === -1) {
345
- newSelected = matchedIndexes[0];
346
- }
347
- }
348
- this._selectedIndex = newSelected;
349
- let selectedColumn = this.columns[newSelected];
350
- if (selectedColumn) {
351
- const listItem = this._columListItems.map(group => group.items).flat().find(item => item.label === selectedColumn.label);
352
- if (listItem)
353
- this._columnList.setSelection(listItem, true);
354
- }
355
- else {
356
- this._columnList.removeSelection();
357
- }
366
+ const selectedColumn = this.columns[newSelected];
367
+ if (selectedColumn) {
368
+ const listItem = this._columListItems
369
+ .map(group => group.items)
370
+ .flat()
371
+ .find(item => item.label === selectedColumn.label);
372
+ if (listItem) {
373
+ this._columnList.setSelection(listItem, true);
358
374
  }
359
375
  else {
360
376
  this._columnList.removeSelection();
361
377
  }
362
378
  }
379
+ else {
380
+ this._columnList.removeSelection();
381
+ }
382
+ }
383
+ removeSelection() {
384
+ if (this.selectedIndex === 1) {
385
+ this._orderList.removeSelection();
386
+ }
387
+ else {
388
+ this._columnList.removeSelection();
389
+ }
363
390
  }
364
391
  compareWords(column, searchingText) {
365
392
  var _a, _b;
@@ -493,26 +520,6 @@ export class SnkGridConfig {
493
520
  "reflect": false,
494
521
  "defaultValue": "0"
495
522
  },
496
- "application": {
497
- "type": "unknown",
498
- "mutable": false,
499
- "complexType": {
500
- "original": "SnkApplication",
501
- "resolved": "SnkApplication",
502
- "references": {
503
- "SnkApplication": {
504
- "location": "import",
505
- "path": "../../../snk-application/snk-application"
506
- }
507
- }
508
- },
509
- "required": false,
510
- "optional": false,
511
- "docs": {
512
- "tags": [],
513
- "text": "Refer\u00EAncia para o SnkApplication"
514
- }
515
- },
516
523
  "columns": {
517
524
  "type": "unknown",
518
525
  "mutable": true,
@@ -1,5 +1,5 @@
1
1
  import { h } from '@stencil/core';
2
- import { ORDER_VALUES } from '../../../../lib/utils/constants';
2
+ import { ORDER_VALUES } from '../../../lib/utils/constants';
3
3
  export class SelectBox {
4
4
  constructor() {
5
5
  this.selectedOption = ORDER_VALUES.none;
@@ -16,6 +16,11 @@
16
16
  flex-wrap: unset;
17
17
  flex-direction: column;
18
18
  }
19
+
20
+ .simple-crud__form--hidden {
21
+ display: none;
22
+ }
23
+
19
24
  ez-grid {
20
25
  --ez-grid__container--shadow: none;
21
26
  min-height: 300px;