@sankhyalabs/sankhyablocks 8.9.5 → 8.10.0-rc.1

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 (136) hide show
  1. package/dist/cjs/{ConfigStorage-90552fe8.js → ConfigStorage-49d4681c.js} +1 -1
  2. package/dist/cjs/{PersonalizedFilterUtils-2f7823fc.js → PersonalizedFilterUtils-0184ffbb.js} +1 -1
  3. package/dist/cjs/{SnkFormConfigManager-0561602d.js → SnkFormConfigManager-d4184bfa.js} +1 -1
  4. package/dist/cjs/{filter-item-type.enum-aa823a00.js → filter-item-type.enum-a7ffdaa6.js} +1 -0
  5. package/dist/cjs/index-f9e81701.js +4 -0
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  8. package/dist/cjs/snk-actions-button.cjs.entry.js +1 -1
  9. package/dist/cjs/snk-application.cjs.entry.js +37 -2
  10. package/dist/cjs/snk-crud.cjs.entry.js +72 -8
  11. package/dist/cjs/snk-detail-view.cjs.entry.js +4 -4
  12. package/dist/cjs/snk-filter-advanced-mode_2.cjs.entry.js +2 -2
  13. package/dist/cjs/snk-filter-bar.cjs.entry.js +27 -4
  14. package/dist/cjs/snk-filter-binary-select.cjs.entry.js +1 -1
  15. package/dist/cjs/snk-filter-checkbox-list.cjs.entry.js +52 -0
  16. package/dist/cjs/snk-filter-detail.cjs.entry.js +9 -2
  17. package/dist/cjs/snk-filter-field-search_2.cjs.entry.js +2 -2
  18. package/dist/cjs/snk-filter-item.cjs.entry.js +25 -14
  19. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +5 -3
  20. package/dist/cjs/snk-filter-modal.cjs.entry.js +16 -5
  21. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +1 -1
  22. package/dist/cjs/snk-filter-number.cjs.entry.js +1 -1
  23. package/dist/cjs/snk-filter-period.cjs.entry.js +1 -1
  24. package/dist/cjs/snk-filter-search.cjs.entry.js +1 -1
  25. package/dist/cjs/snk-form.cjs.entry.js +3 -3
  26. package/dist/cjs/snk-grid-config.cjs.entry.js +2 -2
  27. package/dist/cjs/snk-grid.cjs.entry.js +2 -2
  28. package/dist/cjs/{snk-guides-viewer-676dd526.js → snk-guides-viewer-0d5aad6b.js} +2 -2
  29. package/dist/cjs/snk-guides-viewer.cjs.entry.js +4 -4
  30. package/dist/cjs/snk-personalized-filter-editor.cjs.entry.js +1 -1
  31. package/dist/cjs/snk-personalized-filter.cjs.entry.js +3 -3
  32. package/dist/cjs/snk-simple-crud.cjs.entry.js +1 -1
  33. package/dist/collection/collection-manifest.json +1 -0
  34. package/dist/collection/components/snk-application/snk-application.js +47 -1
  35. package/dist/collection/components/snk-crud/snk-crud.js +71 -7
  36. package/dist/collection/components/snk-filter-bar/filter-item/dataunitfilter/data-unit-filter-builder.js +19 -0
  37. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-checkbox-list.js +95 -0
  38. package/dist/collection/components/snk-filter-bar/filter-item/filter-item-type.enum.js +1 -0
  39. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +7 -0
  40. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +24 -13
  41. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +14 -3
  42. package/dist/collection/components/snk-filter-bar/filter-modal/subcomponents/snk-filter-modal-item.js +3 -1
  43. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +5 -1
  44. package/dist/collection/lib/workspace/workspace.js +12 -0
  45. package/dist/components/filter-item-type.enum.js +1 -0
  46. package/dist/components/index.d.ts +1 -0
  47. package/dist/components/index.js +1 -0
  48. package/dist/components/snk-application2.js +37 -1
  49. package/dist/components/snk-crud.js +71 -7
  50. package/dist/components/snk-filter-bar2.js +24 -1
  51. package/dist/components/snk-filter-checkbox-list.d.ts +11 -0
  52. package/dist/components/snk-filter-checkbox-list.js +68 -0
  53. package/dist/components/snk-filter-detail2.js +7 -0
  54. package/dist/components/snk-filter-item2.js +24 -13
  55. package/dist/components/snk-filter-modal-item2.js +3 -1
  56. package/dist/components/snk-filter-modal.js +14 -3
  57. package/dist/esm/{ConfigStorage-84abda58.js → ConfigStorage-9a086412.js} +1 -1
  58. package/dist/esm/{PersonalizedFilterUtils-49a5dcb7.js → PersonalizedFilterUtils-e2b38ef7.js} +1 -1
  59. package/dist/esm/{SnkFormConfigManager-655943d0.js → SnkFormConfigManager-709e68a2.js} +1 -1
  60. package/dist/esm/{filter-item-type.enum-5028ed3f.js → filter-item-type.enum-d45e026f.js} +1 -0
  61. package/dist/esm/index-a7d3d3f1.js +4 -0
  62. package/dist/esm/loader.js +1 -1
  63. package/dist/esm/sankhyablocks.js +1 -1
  64. package/dist/esm/snk-actions-button.entry.js +1 -1
  65. package/dist/esm/snk-application.entry.js +38 -3
  66. package/dist/esm/snk-crud.entry.js +72 -8
  67. package/dist/esm/snk-detail-view.entry.js +4 -4
  68. package/dist/esm/snk-filter-advanced-mode_2.entry.js +2 -2
  69. package/dist/esm/snk-filter-bar.entry.js +27 -4
  70. package/dist/esm/snk-filter-binary-select.entry.js +1 -1
  71. package/dist/esm/snk-filter-checkbox-list.entry.js +48 -0
  72. package/dist/esm/snk-filter-detail.entry.js +9 -2
  73. package/dist/esm/snk-filter-field-search_2.entry.js +2 -2
  74. package/dist/esm/snk-filter-item.entry.js +25 -14
  75. package/dist/esm/snk-filter-modal-item.entry.js +5 -3
  76. package/dist/esm/snk-filter-modal.entry.js +16 -5
  77. package/dist/esm/snk-filter-multi-select.entry.js +1 -1
  78. package/dist/esm/snk-filter-number.entry.js +1 -1
  79. package/dist/esm/snk-filter-period.entry.js +1 -1
  80. package/dist/esm/snk-filter-search.entry.js +1 -1
  81. package/dist/esm/snk-form.entry.js +3 -3
  82. package/dist/esm/snk-grid-config.entry.js +2 -2
  83. package/dist/esm/snk-grid.entry.js +2 -2
  84. package/dist/esm/{snk-guides-viewer-746e2547.js → snk-guides-viewer-9c50ebea.js} +2 -2
  85. package/dist/esm/snk-guides-viewer.entry.js +4 -4
  86. package/dist/esm/snk-personalized-filter-editor.entry.js +1 -1
  87. package/dist/esm/snk-personalized-filter.entry.js +3 -3
  88. package/dist/esm/snk-simple-crud.entry.js +1 -1
  89. package/dist/sankhyablocks/{p-29529c8f.entry.js → p-01ba23cd.entry.js} +1 -1
  90. package/dist/sankhyablocks/{p-43b2aad5.js → p-057fad05.js} +1 -1
  91. package/dist/sankhyablocks/p-117b0848.entry.js +11 -0
  92. package/dist/sankhyablocks/{p-c6800fd4.entry.js → p-1626c58f.entry.js} +1 -1
  93. package/dist/sankhyablocks/{p-6e32de4b.entry.js → p-1b7105ae.entry.js} +1 -1
  94. package/dist/sankhyablocks/{p-cb37982f.entry.js → p-20726710.entry.js} +1 -1
  95. package/dist/sankhyablocks/{p-8f307ef2.entry.js → p-29ffb7d7.entry.js} +1 -1
  96. package/dist/sankhyablocks/{p-a3fbded7.entry.js → p-2e1a8609.entry.js} +1 -1
  97. package/dist/sankhyablocks/{p-c78a80ae.entry.js → p-3ab6df3d.entry.js} +1 -1
  98. package/dist/sankhyablocks/{p-5eb3ac18.js → p-3fd145ac.js} +1 -1
  99. package/dist/sankhyablocks/{p-eb636e15.entry.js → p-41f8bfa3.entry.js} +1 -1
  100. package/dist/sankhyablocks/{p-d7665a57.entry.js → p-57196255.entry.js} +1 -1
  101. package/dist/sankhyablocks/{p-a9b6acf1.js → p-5cff2f60.js} +1 -1
  102. package/dist/sankhyablocks/p-6977a26c.entry.js +1 -0
  103. package/dist/sankhyablocks/{p-fc257290.entry.js → p-7e2ded86.entry.js} +1 -1
  104. package/dist/sankhyablocks/{p-c0931902.entry.js → p-8002dcd0.entry.js} +1 -1
  105. package/dist/sankhyablocks/p-84a53f61.entry.js +1 -0
  106. package/dist/sankhyablocks/p-a037f5b4.entry.js +1 -0
  107. package/dist/sankhyablocks/p-aaa3ee68.entry.js +1 -0
  108. package/dist/sankhyablocks/{p-26ad62b9.entry.js → p-c758265f.entry.js} +1 -1
  109. package/dist/sankhyablocks/{p-fe49067d.entry.js → p-c8622597.entry.js} +1 -1
  110. package/dist/sankhyablocks/p-d05d3e37.entry.js +1 -0
  111. package/dist/sankhyablocks/p-d6317851.entry.js +1 -0
  112. package/dist/sankhyablocks/{p-718ecd01.entry.js → p-df841828.entry.js} +1 -1
  113. package/dist/sankhyablocks/{p-a4401f5f.entry.js → p-e1aec599.entry.js} +1 -1
  114. package/dist/sankhyablocks/p-fab8339c.entry.js +1 -0
  115. package/dist/sankhyablocks/{p-b54e06ca.js → p-fad0a721.js} +1 -1
  116. package/dist/sankhyablocks/{p-584d7212.js → p-ff1990ad.js} +1 -1
  117. package/dist/sankhyablocks/{p-0d5e8a37.entry.js → p-ff90e0e6.entry.js} +1 -1
  118. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  119. package/dist/types/components/snk-application/snk-application.d.ts +10 -1
  120. package/dist/types/components/snk-crud/snk-crud.d.ts +6 -0
  121. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-checkbox-list.d.ts +27 -0
  122. package/dist/types/components/snk-filter-bar/filter-item/filter-item-type.enum.d.ts +2 -1
  123. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +2 -0
  124. package/dist/types/components.d.ts +35 -1
  125. package/dist/types/lib/workspace/workspace.d.ts +3 -0
  126. package/package.json +1 -1
  127. package/react/components.d.ts +1 -0
  128. package/react/components.js +1 -0
  129. package/react/components.js.map +1 -1
  130. package/dist/sankhyablocks/p-1ae31937.entry.js +0 -1
  131. package/dist/sankhyablocks/p-25df73bf.entry.js +0 -1
  132. package/dist/sankhyablocks/p-2640ba03.entry.js +0 -1
  133. package/dist/sankhyablocks/p-993e27ad.entry.js +0 -1
  134. package/dist/sankhyablocks/p-c606c748.entry.js +0 -1
  135. package/dist/sankhyablocks/p-d4c72815.entry.js +0 -1
  136. package/dist/sankhyablocks/p-f3479d53.entry.js +0 -11
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-f9e81701.js');
6
+ const core = require('@sankhyalabs/core');
7
+ const filterItemType_enum = require('./filter-item-type.enum-a7ffdaa6.js');
8
+
9
+ const SnkFilterCheckboxList = class {
10
+ constructor(hostRef) {
11
+ index.registerInstance(this, hostRef);
12
+ this.valueChanged = index.createEvent(this, "valueChanged", 7);
13
+ this.config = undefined;
14
+ this.optionsList = [];
15
+ }
16
+ componentDidLoad() {
17
+ if (this._element) {
18
+ core.ElementIDUtils.addIDInfo(this._element, 'filterContentEditor');
19
+ }
20
+ }
21
+ handleToggleCheck(itemChanged, checked) {
22
+ var _a, _b;
23
+ let configValueMap = (_a = this.config.value) !== null && _a !== void 0 ? _a : {};
24
+ configValueMap[itemChanged.name] = checked;
25
+ this.config = Object.assign(Object.assign({}, this.config), { value: configValueMap });
26
+ this.valueChanged.emit((_b = this.config) === null || _b === void 0 ? void 0 : _b.value);
27
+ }
28
+ renderOptions() {
29
+ return this.optionsList.map(option => (index.h("ez-check", { label: option.label, compact: true, onEzChange: (event) => this.handleToggleCheck(option, event.detail), value: !!this.isChecked(option.name) })));
30
+ }
31
+ isChecked(itemName) {
32
+ var _a;
33
+ return (_a = this.config.value) === null || _a === void 0 ? void 0 : _a[itemName];
34
+ }
35
+ buidOptions() {
36
+ var _a, _b, _c;
37
+ const propsOptions = (_c = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.options) !== null && _c !== void 0 ? _c : [];
38
+ this.optionsList = [...propsOptions];
39
+ }
40
+ componentWillRender() {
41
+ this.buidOptions();
42
+ }
43
+ render() {
44
+ if (!this.config || this.config.type !== filterItemType_enum.FilterItemType.CHECK_BOX_LIST) {
45
+ return undefined;
46
+ }
47
+ return (index.h("div", { class: 'ez-flex ez-flex--column' }, this.renderOptions()));
48
+ }
49
+ get _element() { return index.getElement(this); }
50
+ };
51
+
52
+ exports.snk_filter_checkbox_list = SnkFilterCheckboxList;
@@ -4,10 +4,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-f9e81701.js');
6
6
  const utils = require('@sankhyalabs/ezui/dist/collection/utils');
7
- const filterItemType_enum = require('./filter-item-type.enum-aa823a00.js');
7
+ const filterItemType_enum = require('./filter-item-type.enum-a7ffdaa6.js');
8
8
  const core = require('@sankhyalabs/core');
9
9
  const presentationMode = require('./presentationMode-52ec3bdd.js');
10
- const PersonalizedFilterUtils = require('./PersonalizedFilterUtils-2f7823fc.js');
10
+ const PersonalizedFilterUtils = require('./PersonalizedFilterUtils-0184ffbb.js');
11
11
  require('./index-c5771aba.js');
12
12
 
13
13
  const SnkFilterDetail = class {
@@ -59,6 +59,13 @@ const SnkFilterDetail = class {
59
59
  }
60
60
  };
61
61
  return snkFilterPersonalizedProps;
62
+ case filterItemType_enum.FilterItemType.CHECK_BOX_LIST:
63
+ return {
64
+ tag: "snk-filter-checkbox-list",
65
+ props: {
66
+ onValueChanged: evt => this.config = Object.assign(Object.assign({}, this.config), { value: evt.detail })
67
+ }
68
+ };
62
69
  case filterItemType_enum.FilterItemType.MULTI_LIST:
63
70
  return {
64
71
  tag: "snk-entity-list",
@@ -7,8 +7,8 @@ const index$1 = require('./index-8d94b7e0.js');
7
7
  const core = require('@sankhyalabs/core');
8
8
  const ezModalContainer = require('@sankhyalabs/ezui/dist/collection/components/ez-modal-container');
9
9
  const index$2 = require('./index-c5771aba.js');
10
- const PersonalizedFilterUtils = require('./PersonalizedFilterUtils-2f7823fc.js');
11
- require('./filter-item-type.enum-aa823a00.js');
10
+ const PersonalizedFilterUtils = require('./PersonalizedFilterUtils-0184ffbb.js');
11
+ require('./filter-item-type.enum-a7ffdaa6.js');
12
12
 
13
13
  const ICON_MODES = {
14
14
  [core.UserInterface.SHORTTEXT]: 'text',
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
- const filterItemType_enum = require('./filter-item-type.enum-aa823a00.js');
7
+ const filterItemType_enum = require('./filter-item-type.enum-a7ffdaa6.js');
8
8
  const filterNumberVariation = require('./filterNumberVariation-d65332da.js');
9
9
 
10
10
  const SnkFilterItem = class {
@@ -132,7 +132,7 @@ const SnkFilterItem = class {
132
132
  }
133
133
  }
134
134
  getLabel(isTooltipLabel = false) {
135
- var _a;
135
+ var _a, _b;
136
136
  const { type, value, label, props, groupedItems = [] } = this.config;
137
137
  if (value || groupedItems.length) {
138
138
  if (type === filterItemType_enum.FilterItemType.BINARY_SELECT) {
@@ -193,18 +193,15 @@ const SnkFilterItem = class {
193
193
  }
194
194
  if (type === filterItemType_enum.FilterItemType.MULTI_LIST) {
195
195
  const selectedOptions = ((_a = value.elements) !== null && _a !== void 0 ? _a : value).filter(item => item === null || item === void 0 ? void 0 : item.check);
196
- const checkedAmount = selectedOptions.length;
197
- if (checkedAmount === 0) {
198
- return `${label}`;
199
- }
200
- if (checkedAmount > 1) {
201
- if (isTooltipLabel) {
202
- const selectedOptionsDescrptions = selectedOptions.map(item => item.label);
203
- return `${label}: ${selectedOptionsDescrptions.join(',')}`;
204
- }
205
- return `${label}: ${checkedAmount} ${this.getMessage('snkFilterBar.multiListToltip')}`;
206
- }
207
- return `${label}: ${selectedOptions[0].label}`;
196
+ return this.getLabelFromCheckedOptions(selectedOptions, label, isTooltipLabel);
197
+ }
198
+ if (type === filterItemType_enum.FilterItemType.CHECK_BOX_LIST) {
199
+ const selectedValues = Object.entries(value !== null && value !== void 0 ? value : {})
200
+ .filter(([_, value]) => value === true)
201
+ .map(([key, _]) => key);
202
+ const options = (_b = props.options) !== null && _b !== void 0 ? _b : [];
203
+ const selectedOptions = options.filter(option => selectedValues.includes(option.name));
204
+ return this.getLabelFromCheckedOptions(selectedOptions, label, isTooltipLabel);
208
205
  }
209
206
  if (type === filterItemType_enum.FilterItemType.NUMBER && props.variation === filterNumberVariation.FilterNumberVariation.INTERVAL) {
210
207
  const { start, end } = value;
@@ -222,6 +219,20 @@ const SnkFilterItem = class {
222
219
  }
223
220
  return label;
224
221
  }
222
+ getLabelFromCheckedOptions(selectedOptions, label, isTooltipLabel) {
223
+ const checkedAmount = selectedOptions.length;
224
+ if (checkedAmount === 0) {
225
+ return `${label}`;
226
+ }
227
+ if (checkedAmount > 1) {
228
+ if (isTooltipLabel) {
229
+ const selectedOptionsDescrptions = selectedOptions.map(item => item.label);
230
+ return `${label}: ${selectedOptionsDescrptions.join(',')}`;
231
+ }
232
+ return `${label}: ${checkedAmount} ${this.getMessage('snkFilterBar.multiListToltip')}`;
233
+ }
234
+ return `${label}: ${selectedOptions[0].label}`;
235
+ }
225
236
  calculateActiveCount(groupedItems) {
226
237
  return groupedItems.reduce((total, item) => {
227
238
  if (!!item.visible)
@@ -4,9 +4,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
- const filterItemType_enum = require('./filter-item-type.enum-aa823a00.js');
7
+ const filterItemType_enum = require('./filter-item-type.enum-a7ffdaa6.js');
8
8
  const presentationMode = require('./presentationMode-52ec3bdd.js');
9
- const ConfigStorage = require('./ConfigStorage-90552fe8.js');
9
+ const ConfigStorage = require('./ConfigStorage-49d4681c.js');
10
10
  const filterType_enum = require('./filter-type.enum-b14ce507.js');
11
11
  require('./form-config-fetcher-00372ac0.js');
12
12
  require('./DataFetcher-1b1e9ff0.js');
@@ -46,6 +46,8 @@ const SnkFilterModalItem = class {
46
46
  return { tag: "snk-filter-number", props };
47
47
  case filterItemType_enum.FilterItemType.PERSONALIZED:
48
48
  return this.buildSnkFilterPersonalizedProps();
49
+ case filterItemType_enum.FilterItemType.CHECK_BOX_LIST:
50
+ return { tag: "snk-filter-checkbox-list", props };
49
51
  case filterItemType_enum.FilterItemType.MULTI_LIST:
50
52
  return { tag: "snk-entity-list", props: { maxHeightList: "640px", rightListSlotBuilder: item => this.buildRightSlot(item) } };
51
53
  }
@@ -69,7 +71,7 @@ const SnkFilterModalItem = class {
69
71
  this.filterItem = Object.assign(Object.assign({}, this.filterItem), { visible: newValue > 0, value: newValue, groupedItems: data.items });
70
72
  }
71
73
  else {
72
- this.filterItem = Object.assign(Object.assign({}, this.filterItem), { value: this.filterItem.type === filterItemType_enum.FilterItemType.SEARCH ? data : newValue, visible: this.isVisible(newValue) });
74
+ this.filterItem = Object.assign(Object.assign({}, this.filterItem), { value: this.filterItem.type === (filterItemType_enum.FilterItemType.SEARCH || filterItemType_enum.FilterItemType.CHECK_BOX_LIST) ? data : newValue, visible: this.isVisible(newValue) });
73
75
  }
74
76
  }
75
77
  handleDeleteFilter(filter, filterItemType) {
@@ -6,9 +6,9 @@ const index = require('./index-f9e81701.js');
6
6
  const ezModalContainer = require('@sankhyalabs/ezui/dist/collection/components/ez-modal-container');
7
7
  const utils = require('@sankhyalabs/ezui/dist/collection/utils');
8
8
  const filterType_enum = require('./filter-type.enum-b14ce507.js');
9
- const filterItemType_enum = require('./filter-item-type.enum-aa823a00.js');
9
+ const filterItemType_enum = require('./filter-item-type.enum-a7ffdaa6.js');
10
10
  const core = require('@sankhyalabs/core');
11
- const PersonalizedFilterUtils = require('./PersonalizedFilterUtils-2f7823fc.js');
11
+ const PersonalizedFilterUtils = require('./PersonalizedFilterUtils-0184ffbb.js');
12
12
  const filterNumberVariation = require('./filterNumberVariation-d65332da.js');
13
13
  require('./index-c5771aba.js');
14
14
 
@@ -128,10 +128,15 @@ const SnkFilterModal = class {
128
128
  const index = filterListCopy.findIndex(item => item.id === filterItem.id);
129
129
  filterListCopy.splice(index, 1, filterItemCopy);
130
130
  this.filters = core.ObjectUtils.copy(filterListCopy);
131
+ return;
131
132
  }
132
- else {
133
- this.filters.find(filter => filter.id === filterItem.id).value = undefined;
133
+ if (filterItemType_enum.FilterItemType.CHECK_BOX_LIST === filterItem.type) {
134
+ const filterListCopy = core.ObjectUtils.copy(this.filters);
135
+ filterListCopy.find(filter => filter.id === filterItem.id).value = undefined;
136
+ this.filters = core.ObjectUtils.copy(filterListCopy);
137
+ return;
134
138
  }
139
+ this.filters.find(filter => filter.id === filterItem.id).value = undefined;
135
140
  }
136
141
  uncheckFilterValues(valueList) {
137
142
  valueList.forEach(value => {
@@ -180,11 +185,17 @@ const SnkFilterModal = class {
180
185
  getIformedFiltersCount(listItems) {
181
186
  let countInformedItens = 0;
182
187
  listItems.forEach(item => {
183
- var _a, _b, _c, _d, _e;
188
+ var _a, _b, _c, _d, _e, _f;
184
189
  if (filterItemType_enum.FilterItemType.MULTI_LIST === item.type) {
185
190
  countInformedItens += (_e = (_d = (_c = ((_b = (_a = item.value) === null || _a === void 0 ? void 0 : _a.elements) !== null && _b !== void 0 ? _b : item.value)) === null || _c === void 0 ? void 0 : _c.filter(value => value === null || value === void 0 ? void 0 : value.check)) === null || _d === void 0 ? void 0 : _d.length) !== null && _e !== void 0 ? _e : 0;
186
191
  return;
187
192
  }
193
+ if (filterItemType_enum.FilterItemType.CHECK_BOX_LIST === item.type) {
194
+ countInformedItens += Object.entries((_f = item.value) !== null && _f !== void 0 ? _f : {})
195
+ .filter(([_, value]) => value === true)
196
+ .map(([key, _]) => key).length;
197
+ return;
198
+ }
188
199
  if (item.groupedItems != undefined) {
189
200
  countInformedItens = item.groupedItems.filter(item => item.visible).length;
190
201
  return;
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
- const filterItemType_enum = require('./filter-item-type.enum-aa823a00.js');
7
+ const filterItemType_enum = require('./filter-item-type.enum-a7ffdaa6.js');
8
8
 
9
9
  const SnkFilterMultiSelect = class {
10
10
  constructor(hostRef) {
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
- const filterItemType_enum = require('./filter-item-type.enum-aa823a00.js');
7
+ const filterItemType_enum = require('./filter-item-type.enum-a7ffdaa6.js');
8
8
  const presentationMode = require('./presentationMode-52ec3bdd.js');
9
9
  const filterNumberVariation = require('./filterNumberVariation-d65332da.js');
10
10
 
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
- const filterItemType_enum = require('./filter-item-type.enum-aa823a00.js');
7
+ const filterItemType_enum = require('./filter-item-type.enum-a7ffdaa6.js');
8
8
  const presentationMode = require('./presentationMode-52ec3bdd.js');
9
9
 
10
10
  const SnkFilterPeriod = class {
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
- const filterItemType_enum = require('./filter-item-type.enum-aa823a00.js');
7
+ const filterItemType_enum = require('./filter-item-type.enum-a7ffdaa6.js');
8
8
 
9
9
  const SnkFilterSearch = class {
10
10
  constructor(hostRef) {
@@ -4,14 +4,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
- const SnkFormConfigManager = require('./SnkFormConfigManager-0561602d.js');
7
+ const SnkFormConfigManager = require('./SnkFormConfigManager-d4184bfa.js');
8
8
  const ResourceIDUtils = require('./ResourceIDUtils-5ff86aa7.js');
9
- require('./ConfigStorage-90552fe8.js');
9
+ require('./ConfigStorage-49d4681c.js');
10
10
  require('./form-config-fetcher-00372ac0.js');
11
11
  require('./DataFetcher-1b1e9ff0.js');
12
12
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
13
13
  require('./PrintUtils-bcaeb82f.js');
14
- require('./filter-item-type.enum-aa823a00.js');
14
+ require('./filter-item-type.enum-a7ffdaa6.js');
15
15
 
16
16
  const snkFormCss = ".sc-snk-form-h{--snk-form__header--min-height:94px;display:block}.snk-form__form--hidden.sc-snk-form{display:none}";
17
17
 
@@ -6,13 +6,13 @@ const index = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
7
  const utils = require('@sankhyalabs/ezui/dist/collection/utils');
8
8
  const CheckMode = require('@sankhyalabs/ezui/dist/collection/components/ez-check/CheckMode');
9
- const ConfigStorage = require('./ConfigStorage-90552fe8.js');
9
+ const ConfigStorage = require('./ConfigStorage-49d4681c.js');
10
10
  const constants = require('./constants-35ddd366.js');
11
11
  require('./form-config-fetcher-00372ac0.js');
12
12
  require('./DataFetcher-1b1e9ff0.js');
13
13
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
14
14
  require('./PrintUtils-bcaeb82f.js');
15
- require('./filter-item-type.enum-aa823a00.js');
15
+ require('./filter-item-type.enum-a7ffdaa6.js');
16
16
 
17
17
  const snkGridConfigCss = ".sc-snk-grid-config-h{--snk-grid-config__footer--padding-top:var(--space--medium, 12px);--snk-grid-config__main--padding-right:var(--space--medium, 12px);--snk-grid-config__tabselector-container--padding:var(--space--medium, 12px);--snk-grid-config__button-close--padding-left:var(--space--medium, 12px);--snk-grid-config__title--color:var(--title--primary, #2B3A54);--snk-grid-config__title--font-family:var(--font-pattern, \"Roboto\");--snk-grid-config__title--font-size:var(--title--large, 20px);--snk-grid-config__title--font-weight:var(--text-weight--extra-large, 700);--snk-grid-config__subtitle--font-family:var(--font-pattern, \"Roboto\");--snk-grid-config__subtitle--font-size:var(--text--medium, 14px);--snk-grid-config__group--font-family:var(--font-pattern, \"Roboto\");--snk-grid-config__group--font-size:var(--text--medium, 14px);--snk-grid-config__group--font-weight:var(--text-weight--large, 600);--snk-grid-config__group--padding-bottom:var(--space-small, 6px);--snk-grid-config__scrollbar--color-default:var(--scrollbar--default, #626e82);--snk-grid-config__scrollbar--color-background:var(--scrollbar--background, #E5EAF0);--snk-grid-config__scrollbar--color-hover:var(--scrollbar--hover, #2B3A54);--snk-grid-config__scrollbar--color-clicked:var(--scrollbar--clicked, #a2abb9);--snk-grid-config__scrollbar--border-radius:var(--border--radius-small, 6px);--snk-grid-config__scrollbar--width:var(--space--medium, 12px);display:grid;grid-template-rows:auto 1fr auto;max-height:100%;width:100%}@media screen and (min-width: 480px){.sc-snk-grid-config-h{width:359px;max-width:359px}}.padding-right--medium.sc-snk-grid-config{padding-right:var(--space--medium)}ez-list.sc-snk-grid-config{height:100%}.height-calc.sc-snk-grid-config{max-height:calc(100% - 24px)}.grid-config__footer.sc-snk-grid-config{display:flex;justify-content:flex-end;width:100%;padding-top:var(--snk-grid-config__footer--padding-top)}.hidden.sc-snk-grid-config{display:none}.tabselector-container.sc-snk-grid-config{padding:var(--snk-grid-config__tabselector-container--padding) 0}.button-close.sc-snk-grid-config{padding-left:var(--snk-grid-config__button-close--padding-left)}.title-container.sc-snk-grid-config{display:flex;justify-content:space-between;align-items:center;width:100%}.title.sc-snk-grid-config{display:flex;margin:0;line-height:normal;letter-spacing:0em;text-align:left;color:var(--snk-grid-config__title--color);font-size:var(--snk-grid-config__title--font-size);font-family:var(--snk-grid-config__title--font-family);font-weight:var(--snk-grid-config__title--font-weight)}.subtitle.sc-snk-grid-config{color:var(--text--primary);font-size:var(--snk-grid-config__subtitle--font-size);font-family:var(--snk-grid-config__subtitle--font-family)}.grid-config__main.sc-snk-grid-config{overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--snk-grid-config__scrollbar--color-clicked) var(--snk-grid-config__scrollbar--color-background);padding-right:var(--snk-grid-config__main--padding-right)}.grid-config__main.sc-snk-grid-config::-webkit-scrollbar{width:var(--snk-grid-config__scrollbar--width);max-width:var(--snk-grid-config__scrollbar--width);min-width:var(--snk-grid-config__scrollbar--width);background-color:var(--snk-grid-config__scrollbar--color-background)}.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-track{background-color:var(--snk-grid-config__scrollbar--color-background);border-radius:var(--snk-grid-config__scrollbar--border-radius)}.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-thumb{background-color:var(--snk-grid-config__scrollbar--color-default);border-radius:var(--snk-grid-config__scrollbar--border-radius)}.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-thumb:vertical:hover,.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--snk-grid-config__scrollbar--color-hover)}.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-thumb:vertical:active,.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-thumb:horizontal:active{background-color:var(--snk-grid-config__scrollbar--color-clicked)}.group-name.sc-snk-grid-config{font-family:var(--snk-grid-config__group--font-family);font-size:var(--snk-grid-config__group--font-size);font-weight:var(--snk-grid-config__group--font-weight);padding-bottom:var(--snk-grid-config__group--padding-bottom)}";
18
18
 
@@ -6,7 +6,7 @@ const index = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
7
  const UnitMetadata = require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
8
8
  const taskbarElements = require('./taskbar-elements-39949c7a.js');
9
- const ConfigStorage = require('./ConfigStorage-90552fe8.js');
9
+ const ConfigStorage = require('./ConfigStorage-49d4681c.js');
10
10
  const index$1 = require('./index-0e663819.js');
11
11
  const taskbarProcessor = require('./taskbar-processor-bce3f499.js');
12
12
  const index$2 = require('./index-102ba62d.js');
@@ -15,7 +15,7 @@ const DataUnit = require('@sankhyalabs/core/dist/dataunit/DataUnit');
15
15
  require('./form-config-fetcher-00372ac0.js');
16
16
  require('./DataFetcher-1b1e9ff0.js');
17
17
  require('./PrintUtils-bcaeb82f.js');
18
- require('./filter-item-type.enum-aa823a00.js');
18
+ require('./filter-item-type.enum-a7ffdaa6.js');
19
19
  require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils/InMemoryFilterColumnDataSource');
20
20
  require('./PreloadManager-84466da6.js');
21
21
  require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils');
@@ -2,7 +2,7 @@
2
2
 
3
3
  const index = require('./index-f9e81701.js');
4
4
  const core = require('@sankhyalabs/core');
5
- const SnkFormConfigManager = require('./SnkFormConfigManager-0561602d.js');
5
+ const SnkFormConfigManager = require('./SnkFormConfigManager-d4184bfa.js');
6
6
  const form = require('@sankhyalabs/ezui/dist/collection/utils/form');
7
7
  const taskbarProcessor = require('./taskbar-processor-bce3f499.js');
8
8
  const taskbarElements = require('./taskbar-elements-39949c7a.js');
@@ -15,7 +15,7 @@ require('@sankhyalabs/ezui/dist/collection/utils/constants');
15
15
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
16
16
  require('./dataunit-fetcher-38233d72.js');
17
17
  require('./PreloadManager-84466da6.js');
18
- require('./filter-item-type.enum-aa823a00.js');
18
+ require('./filter-item-type.enum-a7ffdaa6.js');
19
19
  require('./form-config-fetcher-00372ac0.js');
20
20
  const DataUnit = require('@sankhyalabs/core/dist/dataunit/DataUnit');
21
21
 
@@ -2,16 +2,16 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const snkGuidesViewer = require('./snk-guides-viewer-676dd526.js');
5
+ const snkGuidesViewer = require('./snk-guides-viewer-0d5aad6b.js');
6
6
  require('./index-f9e81701.js');
7
7
  require('@sankhyalabs/core');
8
- require('./SnkFormConfigManager-0561602d.js');
9
- require('./ConfigStorage-90552fe8.js');
8
+ require('./SnkFormConfigManager-d4184bfa.js');
9
+ require('./ConfigStorage-49d4681c.js');
10
10
  require('./form-config-fetcher-00372ac0.js');
11
11
  require('./DataFetcher-1b1e9ff0.js');
12
12
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
13
13
  require('./PrintUtils-bcaeb82f.js');
14
- require('./filter-item-type.enum-aa823a00.js');
14
+ require('./filter-item-type.enum-a7ffdaa6.js');
15
15
  require('@sankhyalabs/ezui/dist/collection/utils/form');
16
16
  require('./taskbar-processor-bce3f499.js');
17
17
  require('./taskbar-elements-39949c7a.js');
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
- const filterItemType_enum = require('./filter-item-type.enum-aa823a00.js');
7
+ const filterItemType_enum = require('./filter-item-type.enum-a7ffdaa6.js');
8
8
  const presentationMode = require('./presentationMode-52ec3bdd.js');
9
9
  const EzScrollDirection = require('@sankhyalabs/ezui/dist/collection/components/ez-scroller/EzScrollDirection');
10
10
  const utils = require('@sankhyalabs/ezui/dist/collection/utils');
@@ -4,12 +4,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
- const PersonalizedFilterUtils = require('./PersonalizedFilterUtils-2f7823fc.js');
8
- const ConfigStorage = require('./ConfigStorage-90552fe8.js');
7
+ const PersonalizedFilterUtils = require('./PersonalizedFilterUtils-0184ffbb.js');
8
+ const ConfigStorage = require('./ConfigStorage-49d4681c.js');
9
9
  const utils = require('@sankhyalabs/ezui/dist/collection/utils');
10
10
  const index$1 = require('./index-c5771aba.js');
11
11
  const index$2 = require('./index-102ba62d.js');
12
- require('./filter-item-type.enum-aa823a00.js');
12
+ require('./filter-item-type.enum-a7ffdaa6.js');
13
13
  require('./form-config-fetcher-00372ac0.js');
14
14
  require('./DataFetcher-1b1e9ff0.js');
15
15
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
@@ -14,7 +14,7 @@ require('@sankhyalabs/ezui/dist/collection/utils/constants');
14
14
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
15
15
  const dataunitFetcher = require('./dataunit-fetcher-38233d72.js');
16
16
  require('./PreloadManager-84466da6.js');
17
- require('./filter-item-type.enum-aa823a00.js');
17
+ require('./filter-item-type.enum-a7ffdaa6.js');
18
18
  require('./form-config-fetcher-00372ac0.js');
19
19
  const taskbarProcessor = require('./taskbar-processor-bce3f499.js');
20
20
  const SnkMultiSelectionListDataSource = require('./SnkMultiSelectionListDataSource-ba5838c2.js');
@@ -24,6 +24,7 @@
24
24
  "./components/snk-filter-bar/filter-item/editors/snk-personalized-filter-editor/snk-personalized-filter-editor.js",
25
25
  "./components/snk-filter-bar/filter-item/snk-filter-detail.js",
26
26
  "./components/snk-filter-bar/filter-item/editors/snk-filter-binary-select.js",
27
+ "./components/snk-filter-bar/filter-item/editors/snk-filter-checkbox-list.js",
27
28
  "./components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.js",
28
29
  "./components/snk-filter-bar/filter-item/editors/snk-filter-number.js",
29
30
  "./components/snk-filter-bar/filter-item/editors/snk-filter-period.js",
@@ -1,4 +1,4 @@
1
- import { ApplicationContext, DataType, DependencyType, ElementIDUtils, ErrorTracking, OnboardingUtils, StringUtils } from "@sankhyalabs/core";
1
+ import { ApplicationContext, DataType, DependencyType, ElementIDUtils, ErrorTracking, OnboardingUtils, StringUtils, KeyboardManager } from "@sankhyalabs/core";
2
2
  import { ApplicationUtils } from "@sankhyalabs/ezui/dist/collection/utils";
3
3
  import { h } from "@stencil/core";
4
4
  import AppletCaller from "../../lib/applet-caller/applet-caller";
@@ -24,6 +24,7 @@ export class SnkApplication {
24
24
  constructor() {
25
25
  this.NEW_VERSION_POPUP_LOCKER = "NEW_VERSION_POPUP_LOCKER";
26
26
  this._authPromises = [];
27
+ this._keyboardManager = new KeyboardManager();
27
28
  this._duCache = new Map();
28
29
  this._duPromises = new Map();
29
30
  this._requestListener = new RequestListenerLoadingBar();
@@ -83,6 +84,14 @@ export class SnkApplication {
83
84
  });
84
85
  }
85
86
  }
87
+ /**
88
+ * Obtém o controlador de teclado.
89
+ *
90
+ * @return {KeyboardManager} the keyboard manager
91
+ */
92
+ async getKeyboardManager() {
93
+ return Promise.resolve(this._keyboardManager);
94
+ }
86
95
  /**
87
96
  * Obtém `true` caso o usuário logado seja o SUP.
88
97
  */
@@ -858,6 +867,7 @@ export class SnkApplication {
858
867
  }
859
868
  disconnectedCallback() {
860
869
  DataFetcher.removeRequestListener(this._requestListener);
870
+ this.removeShortcuts();
861
871
  }
862
872
  async componentDidLoad() {
863
873
  this.applicationLoading.emit(true);
@@ -868,6 +878,19 @@ export class SnkApplication {
868
878
  });
869
879
  ElementIDUtils.addIDInfo(this._element, `resource_${this.applicationResourceID}`);
870
880
  await this.handleShowNewVersionPopup();
881
+ this.initKeyboardManager();
882
+ }
883
+ initKeyboardManager() {
884
+ this._keyboardManager
885
+ .bind("ctrl + g", Workspace.searchApp.bind(this), { description: "Pesquisar por telas" })
886
+ .bind("ctrl + d", Workspace.showDesktop.bind(this), { description: "Mostrar o desktop" })
887
+ .bind("F1", Workspace.openHelp.bind(this), { description: "Abrir ajuda" });
888
+ }
889
+ removeShortcuts() {
890
+ this._keyboardManager
891
+ .unbind("ctrl + g")
892
+ .unbind("ctrl + d")
893
+ .unbind("F1");
871
894
  }
872
895
  render() {
873
896
  return (h("div", null, h("ez-loading-bar", { ref: (ref) => this._requestListener.loadingBar = ref }), h("ez-popup", { opened: false, ref: (ref) => this._popUp = ref, onEzClosePopup: () => this.closePopUp() }), h("ez-modal", { opened: false, ref: (ref) => this._rightModal = ref, "modal-size": "small", closeOutsideClick: true, closeEsc: true })));
@@ -979,6 +1002,29 @@ export class SnkApplication {
979
1002
  }
980
1003
  static get methods() {
981
1004
  return {
1005
+ "getKeyboardManager": {
1006
+ "complexType": {
1007
+ "signature": "() => Promise<KeyboardManager>",
1008
+ "parameters": [],
1009
+ "references": {
1010
+ "Promise": {
1011
+ "location": "global"
1012
+ },
1013
+ "KeyboardManager": {
1014
+ "location": "import",
1015
+ "path": "@sankhyalabs/core"
1016
+ }
1017
+ },
1018
+ "return": "Promise<KeyboardManager>"
1019
+ },
1020
+ "docs": {
1021
+ "text": "Obt\u00E9m o controlador de teclado.",
1022
+ "tags": [{
1023
+ "name": "return",
1024
+ "text": "the keyboard manager"
1025
+ }]
1026
+ }
1027
+ },
982
1028
  "isUserSup": {
983
1029
  "complexType": {
984
1030
  "signature": "() => Promise<boolean>",
@@ -118,9 +118,11 @@ export class SnkCrud {
118
118
  return joinedPrimaryKeys;
119
119
  }
120
120
  componentWillLoad() {
121
- const application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
122
- application.hasAccess(AutorizationType.UPDATE, this._resourceID).then(canEdit => this._canEdit = canEdit);
121
+ this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
123
122
  let parent = this._element.parentElement;
123
+ this._application
124
+ .hasAccess(AutorizationType.UPDATE, this._resourceID)
125
+ .then(canEdit => this._canEdit = canEdit);
124
126
  while (parent) {
125
127
  if (parent.tagName.toUpperCase() === "SNK-DATA-UNIT") {
126
128
  this._snkDataUnit = parent;
@@ -131,11 +133,11 @@ export class SnkCrud {
131
133
  if (!this._dataUnit) {
132
134
  this._snkDataUnit.addEventListener("dataUnitReady", (evt) => {
133
135
  this._dataUnit = evt.detail;
134
- this.initDataUnit(application);
136
+ this.initDataUnit();
135
137
  });
136
138
  }
137
139
  else {
138
- this.initDataUnit(application);
140
+ this.initDataUnit();
139
141
  }
140
142
  this._snkDataUnit.addEventListener("dataStateChange", async ({ detail: dataState }) => {
141
143
  this._dataState = dataState;
@@ -148,10 +150,72 @@ export class SnkCrud {
148
150
  parent = parent.parentElement;
149
151
  }
150
152
  if (!this.configName) {
151
- this.configName = application.configName;
153
+ this.configName = this._application.configName;
152
154
  }
153
155
  }
154
- async initDataUnit(application) {
156
+ componentDidLoad() {
157
+ this.initKeyboardManager();
158
+ }
159
+ disconnectedCallback() {
160
+ this.removeShortcuts();
161
+ }
162
+ async initKeyboardManager() {
163
+ const keyboardManager = await this._application.getKeyboardManager();
164
+ if (keyboardManager) {
165
+ const dataUnit = this._dataUnit || await this._snkDataUnit.getDataUnit();
166
+ keyboardManager
167
+ .bind("F6", this.toggleView.bind(this), { description: "Alterna entre modo formulário e grade." })
168
+ .bind("F7", dataUnit.saveData.bind(dataUnit), { description: "Salva os dados." })
169
+ .bind("ctrl + \\", dataUnit.saveData.bind(dataUnit), { description: "Salva os dados." })
170
+ .bind("F8", dataUnit.addRecord.bind(dataUnit), { description: "Adiciona um novo registro." })
171
+ .bind("F9", dataUnit.removeSelectedRecords.bind(dataUnit), { description: "Remove o registro selecionado." })
172
+ .bind("ctrl + F9", dataUnit.removeSelectedRecords.bind(dataUnit), { description: "Remove o registro selecionado." })
173
+ .bind("ctrl + .", () => {
174
+ if (dataUnit.getSelectionInfo().records.length === 0) {
175
+ return dataUnit.selectFirst();
176
+ }
177
+ return dataUnit.nextRecord();
178
+ }, {
179
+ description: "Avança para o próximo registro."
180
+ })
181
+ .bind("ctrl + ,", dataUnit.previousRecord.bind(dataUnit), { description: "Retorna ao registro anterior." })
182
+ .bind("F5", async () => {
183
+ const currentView = await this._viewStack.getSelectedIndex();
184
+ if (VIEW_MODE.GRID === currentView) {
185
+ dataUnit.loadData();
186
+ }
187
+ }, { description: "Atualiza os dados." })
188
+ .bind("Escape", () => {
189
+ if (dataUnit.isDirty()) {
190
+ dataUnit.cancelEdition();
191
+ }
192
+ }, {
193
+ debounceTime: 1000,
194
+ description: "Cancela uma ação."
195
+ });
196
+ }
197
+ }
198
+ async removeShortcuts() {
199
+ const keyboardManager = await this._application.getKeyboardManager();
200
+ if (keyboardManager) {
201
+ keyboardManager
202
+ .unbind("F6")
203
+ .unbind("F7")
204
+ .unbind("ctrl + \\")
205
+ .unbind("F8")
206
+ .unbind("F9")
207
+ .unbind("ctrl + F9")
208
+ .unbind("ctrl + .")
209
+ .unbind("ctrl + ,")
210
+ .unbind("F5")
211
+ .unbind("Escape");
212
+ }
213
+ }
214
+ async toggleView() {
215
+ const currentView = await this._viewStack.getSelectedIndex();
216
+ this.setViewMode(VIEW_MODE.GRID === currentView ? VIEW_MODE.FORM : VIEW_MODE.GRID);
217
+ }
218
+ async initDataUnit() {
155
219
  this.addDataElementID();
156
220
  if (!this.messagesBuilder) {
157
221
  this.messagesBuilder = this._snkDataUnit.messagesBuilder;
@@ -160,7 +224,7 @@ export class SnkCrud {
160
224
  //Tenta pegar o resourceID do snkDataUnit;
161
225
  this._resourceID = this._snkDataUnit.resourceID;
162
226
  if (this._resourceID == undefined) {
163
- this._resourceID = await application.getResourceID();
227
+ this._resourceID = await this._application.getResourceID();
164
228
  }
165
229
  }
166
230
  }