@sankhyalabs/sankhyablocks 4.6.0 → 4.6.2

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 (87) hide show
  1. package/dist/cjs/{SnkMessageBuilder-d147f088.js → SnkMessageBuilder-47185d5d.js} +1 -0
  2. package/dist/cjs/{constants-73803daf.js → constants-ae0ed870.js} +0 -2
  3. package/dist/cjs/snk-application.cjs.entry.js +1 -1
  4. package/dist/cjs/snk-config-options.cjs.entry.js +1 -1
  5. package/dist/cjs/snk-configurator.cjs.entry.js +1 -1
  6. package/dist/cjs/snk-crud.cjs.entry.js +1 -1
  7. package/dist/cjs/snk-data-exporter.cjs.entry.js +1 -1
  8. package/dist/cjs/snk-data-unit.cjs.entry.js +50 -25
  9. package/dist/cjs/snk-detail-view.cjs.entry.js +3 -3
  10. package/dist/cjs/snk-field-config.cjs.entry.js +1 -1
  11. package/dist/cjs/snk-form-config.cjs.entry.js +2 -2
  12. package/dist/cjs/snk-grid-config.cjs.entry.js +1 -1
  13. package/dist/cjs/snk-grid.cjs.entry.js +18 -6
  14. package/dist/cjs/{snk-guides-viewer-5d3dca5d.js → snk-guides-viewer-cb02e675.js} +12 -4
  15. package/dist/cjs/snk-guides-viewer.cjs.entry.js +3 -3
  16. package/dist/cjs/snk-select-box.cjs.entry.js +1 -1
  17. package/dist/cjs/snk-simple-crud.cjs.entry.js +15 -8
  18. package/dist/cjs/snk-tab-config.cjs.entry.js +1 -1
  19. package/dist/cjs/{taskbar-processor-6f3d2a75.js → taskbar-processor-bce3f499.js} +1 -1
  20. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +10 -2
  21. package/dist/collection/components/snk-data-unit/snk-data-unit.js +49 -24
  22. package/dist/collection/components/snk-form/subcomponents/snk-form-config/snk-form-config.js +1 -1
  23. package/dist/collection/components/snk-grid/snk-grid.js +17 -5
  24. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +13 -6
  25. package/dist/collection/components/snk-taskbar/processor/taskbar-processor.js +1 -1
  26. package/dist/collection/lib/message/resources/snk-form.msg.js +1 -0
  27. package/dist/components/SnkMessageBuilder.js +1 -0
  28. package/dist/components/constants.js +1 -2
  29. package/dist/components/snk-data-unit2.js +49 -24
  30. package/dist/components/snk-detail-view2.js +10 -2
  31. package/dist/components/snk-field-config2.js +1 -1
  32. package/dist/components/snk-form-config2.js +2 -2
  33. package/dist/components/snk-grid2.js +17 -5
  34. package/dist/components/snk-simple-crud.js +13 -6
  35. package/dist/components/snk-tab-config2.js +1 -1
  36. package/dist/components/taskbar-processor.js +1 -1
  37. package/dist/esm/{SnkMessageBuilder-0e1ffd61.js → SnkMessageBuilder-ec0850af.js} +1 -0
  38. package/dist/esm/{constants-9560e54f.js → constants-15617e7d.js} +1 -2
  39. package/dist/esm/snk-application.entry.js +1 -1
  40. package/dist/esm/snk-config-options.entry.js +1 -1
  41. package/dist/esm/snk-configurator.entry.js +1 -1
  42. package/dist/esm/snk-crud.entry.js +1 -1
  43. package/dist/esm/snk-data-exporter.entry.js +1 -1
  44. package/dist/esm/snk-data-unit.entry.js +50 -25
  45. package/dist/esm/snk-detail-view.entry.js +3 -3
  46. package/dist/esm/snk-field-config.entry.js +1 -1
  47. package/dist/esm/snk-form-config.entry.js +2 -2
  48. package/dist/esm/snk-grid-config.entry.js +1 -1
  49. package/dist/esm/snk-grid.entry.js +18 -6
  50. package/dist/esm/{snk-guides-viewer-6bb54367.js → snk-guides-viewer-b13cff0a.js} +12 -4
  51. package/dist/esm/snk-guides-viewer.entry.js +3 -3
  52. package/dist/esm/snk-select-box.entry.js +1 -1
  53. package/dist/esm/snk-simple-crud.entry.js +15 -8
  54. package/dist/esm/snk-tab-config.entry.js +1 -1
  55. package/dist/esm/{taskbar-processor-c2a99aba.js → taskbar-processor-94402e6e.js} +1 -1
  56. package/dist/sankhyablocks/p-0c0c086f.entry.js +1 -0
  57. package/dist/sankhyablocks/{p-9f00c061.entry.js → p-0d9f624f.entry.js} +1 -1
  58. package/dist/sankhyablocks/{p-8b0e8deb.entry.js → p-1374b0e2.entry.js} +1 -1
  59. package/dist/sankhyablocks/p-28c800b9.js +1 -0
  60. package/dist/sankhyablocks/{p-dbeac5db.entry.js → p-3169584f.entry.js} +1 -1
  61. package/dist/sankhyablocks/{p-9f2306ba.entry.js → p-31d4e5d4.entry.js} +1 -1
  62. package/dist/sankhyablocks/{p-2a3996b0.entry.js → p-5b80ee28.entry.js} +1 -1
  63. package/dist/sankhyablocks/{p-cf9d1b55.entry.js → p-604e6970.entry.js} +1 -1
  64. package/dist/sankhyablocks/p-6181e6cb.entry.js +1 -0
  65. package/dist/sankhyablocks/p-64f21075.entry.js +1 -0
  66. package/dist/sankhyablocks/p-94fef424.entry.js +1 -0
  67. package/dist/sankhyablocks/{p-4bd183ba.entry.js → p-a61d2aa0.entry.js} +1 -1
  68. package/dist/sankhyablocks/{p-869d6616.entry.js → p-af8cf505.entry.js} +1 -1
  69. package/dist/sankhyablocks/p-c2beb95c.js +1 -0
  70. package/dist/sankhyablocks/{p-86efa17d.entry.js → p-c88c4f80.entry.js} +1 -1
  71. package/dist/sankhyablocks/p-e1dbaecb.js +1 -0
  72. package/dist/sankhyablocks/p-f587a454.js +1 -0
  73. package/dist/sankhyablocks/{p-f83e3219.entry.js → p-f9ca6d74.entry.js} +1 -1
  74. package/dist/sankhyablocks/{p-b318cec6.entry.js → p-fa8a62f2.entry.js} +1 -1
  75. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  76. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +8 -2
  77. package/dist/types/components/snk-grid/snk-grid.d.ts +1 -0
  78. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +1 -0
  79. package/package.json +1 -1
  80. package/dist/sankhyablocks/p-4fb98039.entry.js +0 -1
  81. package/dist/sankhyablocks/p-5518d572.js +0 -1
  82. package/dist/sankhyablocks/p-5a3e0eb6.js +0 -1
  83. package/dist/sankhyablocks/p-7889d481.entry.js +0 -1
  84. package/dist/sankhyablocks/p-8490ca88.entry.js +0 -1
  85. package/dist/sankhyablocks/p-9bf0319f.js +0 -1
  86. package/dist/sankhyablocks/p-c0bfafcb.entry.js +0 -1
  87. package/dist/sankhyablocks/p-ecbfbb4a.js +0 -1
@@ -2,7 +2,7 @@ import { r as registerInstance, c as createEvent, h, g as getElement } from './i
2
2
  import { WaitingChangeException, WarningException, ErrorException, ObjectUtils, DataType, DataUnit, StringUtils, DataUnitStorage, ChangeOperation, DateUtils, DependencyType, ElementIDUtils, ApplicationContext, ErrorTracking } from '@sankhyalabs/core';
3
3
  import { d as dist, D as DataFetcher, U as UrlUtils } from './DataFetcher-5e99fa75.js';
4
4
  import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
5
- import { S as SnkMessageBuilder } from './SnkMessageBuilder-0e1ffd61.js';
5
+ import { S as SnkMessageBuilder } from './SnkMessageBuilder-ec0850af.js';
6
6
  import { G as GridConfigFetcher, C as ConfigStorage } from './ConfigStorage-1b64cd96.js';
7
7
  import { R as ResourceFetcher } from './form-config-fetcher-677f86dd.js';
8
8
  import './_commonjsHelpers-9943807e.js';
@@ -2,7 +2,7 @@ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement
2
2
  import { UserInterface, ObjectUtils, StringUtils, ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { DataType, getConvertedValue } from '@sankhyalabs/core/dist/dataunit/metadata/DataType';
4
4
  import { CheckMode } from '@sankhyalabs/ezui/dist/collection/utils';
5
- import { V as VARS_BY_TYPE, D as DEFAULT_TYPE, a as TAGS_BY_TYPE } from './constants-9560e54f.js';
5
+ import { V as VARS_BY_TYPE, D as DEFAULT_TYPE, a as TAGS_BY_TYPE } from './constants-15617e7d.js';
6
6
 
7
7
  const snkConfigOptionsCss = ".sc-snk-config-options-h{--snk-config-options--border:2px solid var(--color--secondary-200, #D2D3DA);width:100%;border-radius:15px;border:var(--snk-config-options--border)}.config-options__switch-row.sc-snk-config-options{margin-top:-30px}";
8
8
 
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-cfd4bb13.js';
2
2
  import { ApplicationContext } from '@sankhyalabs/core';
3
3
  import { A as AuthorizationConfig } from './AuthorizationConfig-dcbd207a.js';
4
- import { c as VIEW_MODE } from './constants-9560e54f.js';
4
+ import { c as VIEW_MODE } from './constants-15617e7d.js';
5
5
 
6
6
  const snkConfiguratorCss = ".sc-snk-configurator-h{--snk-configurator__button-close--padding-left:var(--space--medium, 12px);--snk-configurator__title--color:var(--title--primary, #2B3A54);--snk-configurator__title--font-family:var(--font-pattern, \"Roboto\");--snk-configurator__title--font-size:var(--title--large, 20px);--snk-configurator__title--font-weight:var(--text-weight--extra-large, 700);--snk-configurator__subtitle--color:var(--title--primary, #2B3A54);--snk-configurator__subtitle--font-family:var(--font-pattern, \"Roboto\");--snk-configurator__subtitle--font-size:var(--text--medium, 14px);--snk-configurator__subtitle--font-weight:var(--text-weight--large, 600);--snk-configurator__scrollbar--color-default:var(--scrollbar--default, #626e82);--snk-configurator__scrollbar--color-background:var(--scrollbar--background, #E5EAF0);--snk-configurator__scrollbar--color-hover:var(--scrollbar--hover, #2B3A54);--snk-configurator__scrollbar--color-clicked:var(--scrollbar--clicked, #a2abb9);--snk-configurator__scrollbar--border-radius:var(--border--radius-small, 6px);--snk-configurator__scrollbar--width:var(--space--medium, 12px)}.snk-configurator.sc-snk-configurator{display:grid;grid-template-rows:auto 1fr auto;max-height:100%;width:100%}@media screen and (min-width: 480px){.snk-configurator.sc-snk-configurator{width:359px;max-width:359px}}.snk-configurator__button-config.sc-snk-configurator{--ez-button--min-width:100%}.snk-configurator__header.sc-snk-configurator{display:flex;justify-content:space-between;align-items:center;width:100%}.snk-configurator__title.sc-snk-configurator{display:flex;margin:0;line-height:normal;letter-spacing:0em;text-align:left;color:var(--snk-configurator__title--color);font-size:var(--snk-configurator__title--font-size);font-family:var(--snk-configurator__title--font-family);font-weight:var(--snk-configurator__title--font-weight)}.snk-configurator__subtitle.sc-snk-configurator{display:flex;margin:0;padding-top:var(--space--medium);padding-bottom:var(--space--small);color:var(--snk-configurator__subtitle--color);font-size:var(--snk-configurator__subtitle--font-size);font-family:var(--snk-configurator__subtitle--font-family);font-weight:var(--snk-configurator__subtitle--font-weight)}.snk-configurator__button-close.sc-snk-configurator{padding-left:var(--snk-configurator__button-close--padding-left)}.snk-configurator__main.sc-snk-configurator{overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--snk-configurator__scrollbar--color-clicked) var(--snk-configurator__scrollbar--color-background)}.snk-configurator__main.sc-snk-configurator::-webkit-scrollbar{background-color:var(--snk-configurator__scrollbar--color-background);width:var(--snk-configurator__scrollbar--width);max-width:var(--snk-configurator__scrollbar--width);min-width:var(--snk-configurator__scrollbar--width)}.snk-configurator__main.sc-snk-configurator::-webkit-scrollbar-track{background-color:var(--snk-configurator__scrollbar--color-background);border-radius:var(--snk-configurator__scrollbar--border-radius)}.snk-configurator__main.sc-snk-configurator::-webkit-scrollbar-thumb{background-color:var(--snk-configurator__scrollbar--color-default);border-radius:var(--snk-configurator__scrollbar--border-radius)}.snk-configurator__main.sc-snk-configurator::-webkit-scrollbar-thumb:vertical:hover,.snk-configurator__main.sc-snk-configurator::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--snk-configurator__scrollbar--color-hover)}.snk-configurator__main.sc-snk-configurator::-webkit-scrollbar-thumb:vertical:active,.snk-configurator__main.sc-snk-configurator::-webkit-scrollbar-thumb:horizontal:active{background-color:var(--snk-configurator__scrollbar--color-clicked)}";
7
7
 
@@ -3,7 +3,7 @@ import { ElementIDUtils, ApplicationContext } from '@sankhyalabs/core';
3
3
  import { T as TaskbarElement } from './taskbar-elements-10d80c79.js';
4
4
  import './DataFetcher-5e99fa75.js';
5
5
  import { P as PresentationMode } from './index-6519a79e.js';
6
- import { c as VIEW_MODE } from './constants-9560e54f.js';
6
+ import { c as VIEW_MODE } from './constants-15617e7d.js';
7
7
  import './index-e467ade5.js';
8
8
  import './_commonjsHelpers-9943807e.js';
9
9
 
@@ -2,7 +2,7 @@ import { r as registerInstance, h, H as Host, g as getElement } from './index-cf
2
2
  import { ObjectUtils, ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
4
4
  import { D as DataExporterOption, a as DataExporterFormat, b as DataExporterType } from './index-6519a79e.js';
5
- import { d as KEY_PORT_EXPORT, W as WEB_CONNECTION, R as REPORT_LAUNCHER_RESOURCE_ID } from './constants-9560e54f.js';
5
+ import { d as KEY_PORT_EXPORT, W as WEB_CONNECTION, R as REPORT_LAUNCHER_RESOURCE_ID } from './constants-15617e7d.js';
6
6
  import { D as DataFetcher } from './DataFetcher-5e99fa75.js';
7
7
  import './_commonjsHelpers-9943807e.js';
8
8
 
@@ -1,8 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement, H as Host } from './index-cfd4bb13.js';
2
2
  import { Action, ObjectUtils, JSUtils, ApplicationContext, DataType } from '@sankhyalabs/core';
3
3
  import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
4
- import { O as OperationMap } from './SnkMessageBuilder-0e1ffd61.js';
5
- import { e as ALL_RECORD } from './constants-9560e54f.js';
4
+ import { O as OperationMap } from './SnkMessageBuilder-ec0850af.js';
6
5
 
7
6
  const snkDataUnitCss = ".sc-snk-data-unit-h{display:flex;flex-direction:column;height:100%;width:100%}";
8
7
 
@@ -31,21 +30,27 @@ const SnkDataUnit = class {
31
30
  this.cancelEdition.emit();
32
31
  }
33
32
  if (action.type === Action.RECORDS_REMOVED) {
34
- let removeFinishMsg;
35
33
  const cachedRecords = action.payload.cachedRecords;
34
+ let removeFinishMsg;
36
35
  if ((cachedRecords === null || cachedRecords === void 0 ? void 0 : cachedRecords.length) > 1) {
37
36
  removeFinishMsg = this.getMessage("snkDataUnit.removeAllInfo", { size: cachedRecords.length });
38
37
  }
39
- else if (cachedRecords === null || cachedRecords === void 0 ? void 0 : cachedRecords.some((record) => record.__record__id__ === ALL_RECORD)) {
40
- const size = (_b = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getPaginationInfo()) === null || _b === void 0 ? void 0 : _b.total;
41
- removeFinishMsg = this.getMessage("snkDataUnit.removeAllInfo", { size });
42
- }
43
38
  else {
44
- removeFinishMsg = this.getMessage("snkDataUnit.removeInfo", cachedRecords === null || cachedRecords === void 0 ? void 0 : cachedRecords[0]);
39
+ removeFinishMsg = this.getMessage("snkDataUnit.removeInfo", action.payload.cachedRecords[0]);
45
40
  }
46
41
  if (removeFinishMsg != undefined) {
47
42
  this.showSuccessMessage(removeFinishMsg);
48
43
  }
44
+ const recordsCount = (_b = (_a = this.dataUnit.records) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
45
+ const paginationInfo = this.dataUnit.getPaginationInfo();
46
+ if (paginationInfo) {
47
+ if (recordsCount > 0 || paginationInfo.hasMore) {
48
+ this.dataUnit.gotoPage(paginationInfo.currentPage);
49
+ }
50
+ else {
51
+ this.dataUnit.gotoPage(0);
52
+ }
53
+ }
49
54
  }
50
55
  this._application.messagesBuilder.currentOperation = this.getMessageOperation();
51
56
  };
@@ -107,8 +112,12 @@ const SnkDataUnit = class {
107
112
  */
108
113
  async getSelectedRecordsIDsInfo() {
109
114
  var _a;
115
+ const selectionInfo = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getSelectionInfo();
116
+ if (selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.isAllRecords()) {
117
+ return [];
118
+ }
110
119
  const selectedRecordsIDsInfo = [];
111
- const selectedRecords = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getSelection();
120
+ const selectedRecords = selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.records;
112
121
  if ((selectedRecords === null || selectedRecords === void 0 ? void 0 : selectedRecords.length) > 0) {
113
122
  selectedRecords.forEach(({ __record__id__ }) => {
114
123
  if (!this.dataUnit.isNewRecord(__record__id__)) {
@@ -142,7 +151,7 @@ const SnkDataUnit = class {
142
151
  }
143
152
  async interceptAction(action) {
144
153
  return new Promise(resolve => {
145
- var _a, _b, _c, _d;
154
+ var _a, _b;
146
155
  switch (action.type) {
147
156
  case Action.RECORDS_ADDED:
148
157
  if (this.isAllowed("INSERT")) {
@@ -220,14 +229,9 @@ const SnkDataUnit = class {
220
229
  if (this.isAllowed("REMOVE")) {
221
230
  let multipleSelection = false;
222
231
  let removeConfirmation = this.getMessage("snkDataUnit.removeConfirmation");
223
- const selectedRecords = (_b = this.dataUnit) === null || _b === void 0 ? void 0 : _b.getSelection();
224
- if ((selectedRecords === null || selectedRecords === void 0 ? void 0 : selectedRecords.length) > 1) {
225
- removeConfirmation = this.getMessage("snkDataUnit.removeAllConfirmation", { size: selectedRecords.length });
226
- multipleSelection = true;
227
- }
228
- else if (selectedRecords === null || selectedRecords === void 0 ? void 0 : selectedRecords.some((record) => record.__record__id__ === ALL_RECORD)) {
229
- const size = (_d = (_c = this.dataUnit) === null || _c === void 0 ? void 0 : _c.getPaginationInfo()) === null || _d === void 0 ? void 0 : _d.total;
230
- removeConfirmation = this.getMessage("snkDataUnit.removeAllConfirmation", { size });
232
+ const selection = (_b = this.dataUnit) === null || _b === void 0 ? void 0 : _b.getSelectionInfo();
233
+ if ((selection === null || selection === void 0 ? void 0 : selection.length) > 1) {
234
+ removeConfirmation = this.getMessage("snkDataUnit.removeAllConfirmation", { size: selection.length });
231
235
  multipleSelection = true;
232
236
  }
233
237
  if (removeConfirmation == undefined) {
@@ -261,16 +265,18 @@ const SnkDataUnit = class {
261
265
  return this._permissions ? this._permissions.isSup || this._permissions[flag] : false;
262
266
  }
263
267
  buildDataState() {
264
- return {
268
+ const selectionInfo = this.dataUnit.getSelectionInfo();
269
+ return new DataStateImpl({
265
270
  insertionMode: this.dataUnit.hasNewRecord(),
266
271
  hasNext: this.dataUnit.hasNext(),
267
272
  hasPrevious: this.dataUnit.hasPrevious(),
268
273
  copyMode: this.dataUnit.hasCopiedRecord(),
269
274
  isDirty: this.dataUnit.isDirty(),
270
275
  hasDirtyRecords: this.dataUnit.hasDirtyRecords(),
271
- selectedRecords: this.dataUnit.getSelection(),
276
+ selectedRecords: undefined,
277
+ selectionInfo,
272
278
  selectedRecord: this.dataUnit.getSelectedRecord()
273
- };
279
+ });
274
280
  }
275
281
  /**
276
282
  * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
@@ -285,10 +291,9 @@ const SnkDataUnit = class {
285
291
  return this._application.messagesBuilder.getMessage(key, params);
286
292
  }
287
293
  getMessageParams() {
288
- //TODO: Atualmente ainda não usamos o recurso de multiseleção do dataunit, mas no futuro
289
- //precisaremos criar um mecanismo para oferecer todos os registros selecionados para a
290
- //mensagem
291
- return this.dataState.selectedRecords ? this.dataState.selectedRecords[0] : undefined;
294
+ //FIXME: Devido ao recurso de multiseleção do dataunit, precisaremos criar um mecanismo para
295
+ //oferecer todos os registros selecionados para a mensagem, pois mensagens podem ficar incorretas.
296
+ return this.dataState.selectedRecord;
292
297
  }
293
298
  getMessageOperation() {
294
299
  if (this.dataState.copyMode) {
@@ -384,6 +389,26 @@ const SnkDataUnit = class {
384
389
  "dataUnit": ["observeDataUnit"]
385
390
  }; }
386
391
  };
392
+ class DataStateImpl {
393
+ constructor(datastate) {
394
+ this.copyMode = datastate.copyMode;
395
+ this.insertionMode = datastate.insertionMode;
396
+ this.isDirty = datastate.isDirty;
397
+ this.hasDirtyRecords = datastate.hasDirtyRecords;
398
+ this.hasNext = datastate.hasNext;
399
+ this.hasPrevious = datastate.hasPrevious;
400
+ this.selectionInfo = datastate.selectionInfo;
401
+ this.selectedRecord = datastate.selectedRecord;
402
+ }
403
+ get selectedRecords() {
404
+ var _a;
405
+ console.warn("SnkDataUnit: O método `selectedRecords` foi descontinuado. Use o método `selectionInfo`.");
406
+ if ((_a = this.selectionInfo) === null || _a === void 0 ? void 0 : _a.isAllRecords()) {
407
+ throw new Error("Erro interno: Impossível obter os registros selecionados. A seleção atual é virtual. Use o atributo `selectionInfo`.");
408
+ }
409
+ return this.selectionInfo.records;
410
+ }
411
+ }
387
412
  SnkDataUnit.style = snkDataUnitCss;
388
413
 
389
414
  export { SnkDataUnit as snk_data_unit };
@@ -5,13 +5,13 @@ import './DataFetcher-5e99fa75.js';
5
5
  import '@sankhyalabs/core';
6
6
  import { P as PresentationMode } from './index-6519a79e.js';
7
7
  import { T as TaskbarElement } from './taskbar-elements-10d80c79.js';
8
- import { c as VIEW_MODE } from './constants-9560e54f.js';
9
- import { S as SnkGuidesViewer } from './snk-guides-viewer-6bb54367.js';
8
+ import { c as VIEW_MODE } from './constants-15617e7d.js';
9
+ import { S as SnkGuidesViewer } from './snk-guides-viewer-b13cff0a.js';
10
10
  import './ConfigStorage-1b64cd96.js';
11
11
  import './form-config-fetcher-677f86dd.js';
12
12
  import './_commonjsHelpers-9943807e.js';
13
13
  import './index-e467ade5.js';
14
- import './taskbar-processor-c2a99aba.js';
14
+ import './taskbar-processor-94402e6e.js';
15
15
 
16
16
  const snkDetailViewCss = ".sc-snk-detail-view-h{display:flex;row-gap:24px;flex-direction:column;width:100%;height:100%}.level-path.sc-snk-detail-view{color:var(--color--title-primary, #2B3A54);font-weight:var(--text-weight--medium, 400);padding-right:3px}.form-taskbar.sc-snk-detail-view{padding-bottom:var(--space--medium)}.grid-container.sc-snk-detail-view{background-color:#FFF;min-height:100px}.detail-header.sc-snk-detail-view{padding-bottom:0}";
17
17
 
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-cfd4bb13.js';
2
2
  import { ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
3
- import { A as ACTION_CONFIG } from './constants-9560e54f.js';
3
+ import { A as ACTION_CONFIG } from './constants-15617e7d.js';
4
4
 
5
5
  const snkFieldConfigCss = ".sc-snk-field-config-h{--snk-field-config--height:42px;--snk-field-config--width:100%;--snk-field-config__icon--width:48px;--snk-field-config-slim--height:32px;--snk-field-config--border-radius:var(--border--radius-medium, 12px);--snk-field-config--font-size:var(--text--medium, 14px);--snk-field-config--font-family:var(--font-pattern, Arial);--snk-field-config--font-weight:var(--text-weight--medium, 400);--snk-field-config--color:var(--title--primary, #000);--snk-field-config--padding-left:var(--space--medium, 6px);--snk-field-config__input--background-color:var(--background--medium, #e0e0e0);--snk-field-config__input--border:var(--border--medium, 2px solid);--snk-field-config__input--border-color:var(--background--xlight, #fff);--snk-field-config__required--color:var(--color--error, #FF0000);--snk-field-config__label--gap:var(--space--extra-small, 3px);--snk-field-config__transition--visibility:var(--transition, 0.2s linear);--snk-field-config__transition--opacity:var(--transition, 0.15s linear);--snk-field-config__config-popover--z-index:var(--more-visible, 2);--snk-field-config__config-outer-arrow--background-color:var(--color--secondary-200, #D2D3DA);--snk-field-config__draggable--padding-right:var(--space--small, 6px);display:flex;flex-wrap:wrap;position:relative;width:var(--snk-field-config--width)}.field-config.sc-snk-field-config{width:100%;box-sizing:border-box;display:flex;align-items:center;padding-left:var(--snk-field-config--padding-left);font-weight:var(--snk-field-config--font-weight);height:var(--snk-field-config--height);border-radius:var(--snk-field-config--border-radius);font-family:var(--snk-field-config--font-family);font-size:var(--snk-field-config--font-size);border:var(--snk-field-config__input--border);border-color:var(--snk-field-config__input--border-color);background-color:var(--snk-field-config__input--background-color);color:var(--snk-field-config--color)}.field-config__config-popover.sc-snk-field-config{width:40px;margin-left:auto;z-index:var(--snk-field-config__config-popover--z-index)}.field-config__label.sc-snk-field-config{display:flex;flex-direction:row-reverse;line-height:calc(var(--snk-field-config--font-size) + 2px);gap:var(--snk-field-config__label--gap)}.field-config__label-text.sc-snk-field-config{overflow:hidden;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;height:auto;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;display:-webkit-box;-o-text-overflow:ellipsis;text-overflow:ellipsis;word-break:break-word}.field-config__label-required.sc-snk-field-config{color:var(--snk-field-config__required--color)}.field-config__add.sc-snk-field-config{display:flex;margin-left:auto;visibility:hidden;opacity:0;transition:visibility var(--snk-field-config__transition--visibility), opacity var(--snk-field-config__transition--opacity)}.field-config__options.sc-snk-field-config{display:flex;margin-left:auto;visibility:hidden;opacity:0;transition:visibility var(--snk-field-config__transition--visibility), opacity var(--snk-field-config__transition--opacity)}.field-config__options--is-active.sc-snk-field-config{display:flex;visibility:visible;opacity:1}.field-config__remove-icon.sc-snk-field-config{margin-right:-15px}.field-config.sc-snk-field-config:hover .field-config__options.sc-snk-field-config{display:flex;visibility:visible;opacity:1}.field-config.sc-snk-field-config:hover .field-config__add.sc-snk-field-config{visibility:visible;opacity:1}.field-config__draggable.sc-snk-field-config{padding-right:var(--snk-field-config__draggable--padding-right)}.field-config__config-outer-arrow.sc-snk-field-config{clip-path:polygon(50% 0, 90% 100%, 10% 100%);border-radius:0.25em 0 0 0;width:30px;height:15px;padding-top:3px;border-bottom:1px solid #FFFFFF;background-color:var(--snk-field-config__config-outer-arrow--background-color)}.field-config__config-inner-arrow.sc-snk-field-config{background-color:#FFFFFF;clip-path:polygon(50% 0, 90% 100%, 10% 100%);border-radius:0.25em 0 0 0;width:30px;height:15px}.ez-box__container.sc-snk-field-config ez-collapsible-box.sc-snk-field-config{--snk-collapsible-box__header--padding-left:6px}ez-icon.sc-snk-field-config{--snk-icon--color:var(--snk-field-config--color)}ez-popover.sc-snk-field-config{--snk-popover__box--background-color:transparent;--snk-popover__box--box-shadow:none}.field-config__options.sc-snk-field-config ez-button.sc-snk-field-config{--snk-button--background-color:transparent;--snk-button--focus--border:none;--snk-button--focus--box-shadow:none}@media screen and (min-width: 1200px){.field-config__label.sc-snk-field-config{flex-direction:row}}";
6
6
 
@@ -2,7 +2,7 @@ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement
2
2
  import { d as draggable_bundle } from './draggable.bundle-41d56f06.js';
3
3
  import { ObjectUtils, ElementIDUtils, ArrayUtils, ApplicationContext } from '@sankhyalabs/core';
4
4
  import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
5
- import { C as CONFIG_EVENTS, T as TAB_NAMES, A as ACTION_CONFIG, D as DEFAULT_TYPE } from './constants-9560e54f.js';
5
+ import { C as CONFIG_EVENTS, T as TAB_NAMES, A as ACTION_CONFIG, D as DEFAULT_TYPE } from './constants-15617e7d.js';
6
6
  import { U as UserConfigType } from './form-config-fetcher-677f86dd.js';
7
7
  import { buildFormConfigFromDataUnit } from '@sankhyalabs/ezui/dist/collection/utils/form';
8
8
  import './_commonjsHelpers-9943807e.js';
@@ -976,7 +976,7 @@ const SnkFormConfig = class {
976
976
  }
977
977
  render() {
978
978
  var _a, _b, _c, _d;
979
- return (h(Host, null, h("div", { class: "ez-row ez-padding--medium" }, h("div", { class: "ez-col ez-col--sd-7 ez-col--tb-9 ez-align--middle" }, h("ez-button", { mode: "icon", iconName: "arrow_back", class: "ez-padding--small", size: "small", onClick: () => this.closeFormConfig(), id: "formConfigToBack" }), h("h1", { class: "ez-title ez-title--extra-large ez-padding--small" }, this.getMessage("snkFormConfig.title")), this._formConfigOptions &&
979
+ return (h(Host, null, h("div", { class: "ez-row ez-padding--medium" }, h("div", { class: "ez-col ez-col--sd-7 ez-col--tb-9 ez-align--middle" }, h("ez-button", { mode: "icon", title: this.getMessage("snkFormConfig.goBackTitle"), iconName: "arrow_back", class: "ez-padding--small", size: "small", onClick: () => this.closeFormConfig(), id: "formConfigToBack" }), h("h1", { class: "ez-title ez-title--extra-large ez-padding--small" }, this.getMessage("snkFormConfig.title")), this._formConfigOptions &&
980
980
  h("ez-actions-button", { class: "form-config__actions-button ez-margin-left--medium", value: (_a = this._optionFormConfigSelected) === null || _a === void 0 ? void 0 : _a.origin, showLabel: true, displayIcon: "chevron-down", checkOption: true, size: "small", actions: this._formConfigOptions.map((option) => {
981
981
  return { value: option.origin, label: option.name };
982
982
  }), onEzAction: (evt) => this.controlSelectFormConfig(evt), id: "selectConfig" })), h("div", { class: "ez-col ez-col--sd-5 ez-col--tb-3 ez-align--middle ez-align--right" }, this._formConfigChanged === true && this._optionFormConfigChanged === false &&
@@ -3,7 +3,7 @@ import { StringUtils, ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
4
4
  import { CheckMode } from '@sankhyalabs/ezui/dist/collection/components/ez-check/CheckMode';
5
5
  import { C as ConfigStorage } from './ConfigStorage-1b64cd96.js';
6
- import { O as ORDER_VALUES } from './constants-9560e54f.js';
6
+ import { O as ORDER_VALUES } from './constants-15617e7d.js';
7
7
  import './form-config-fetcher-677f86dd.js';
8
8
  import './DataFetcher-5e99fa75.js';
9
9
  import './_commonjsHelpers-9943807e.js';
@@ -3,7 +3,7 @@ import { ElementIDUtils, ApplicationContext, DataType } from '@sankhyalabs/core'
3
3
  import { UserInterface } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
4
4
  import { C as ConfigStorage } from './ConfigStorage-1b64cd96.js';
5
5
  import { P as PresentationMode } from './index-6519a79e.js';
6
- import { T as TaskbarProcessor } from './taskbar-processor-c2a99aba.js';
6
+ import { T as TaskbarProcessor } from './taskbar-processor-94402e6e.js';
7
7
  import { s as store } from './index-e467ade5.js';
8
8
  import './form-config-fetcher-677f86dd.js';
9
9
  import './DataFetcher-5e99fa75.js';
@@ -151,7 +151,6 @@ const SnkGrid = class {
151
151
  }
152
152
  async dataExporterProviderStore() {
153
153
  var _a, _b;
154
- const paginationInfo = this.getPaginationInfo();
155
154
  const columnsMetadata = [];
156
155
  const selectedIDs = await ((_a = this._snkDataUnit) === null || _a === void 0 ? void 0 : _a.getSelectedRecordsIDsInfo());
157
156
  await ((_b = this._grid) === null || _b === void 0 ? void 0 : _b.getColumnsState().then(this.buildColumnsMetadata.bind(this, columnsMetadata)));
@@ -173,7 +172,7 @@ const SnkGrid = class {
173
172
  },
174
173
  getSelectedNumber: () => {
175
174
  var _a, _b;
176
- return (_b = (_a = this._dataState) === null || _a === void 0 ? void 0 : _a.selectedRecords) === null || _b === void 0 ? void 0 : _b.length;
175
+ return (_b = (_a = this._dataState) === null || _a === void 0 ? void 0 : _a.selectionInfo) === null || _b === void 0 ? void 0 : _b.length;
177
176
  },
178
177
  getTotalRecords: () => {
179
178
  var _a, _b, _c;
@@ -184,7 +183,7 @@ const SnkGrid = class {
184
183
  return selectedIDs || [];
185
184
  },
186
185
  getOffset: () => {
187
- return this.getExporterOffset(paginationInfo);
186
+ return this.getExporterOffset(this.getPaginationInfo());
188
187
  },
189
188
  getLimit: () => {
190
189
  var _a;
@@ -226,10 +225,23 @@ const SnkGrid = class {
226
225
  }
227
226
  this.loadConfig();
228
227
  }
228
+ getHeaderDisabledButtons() {
229
+ var _a;
230
+ const disabledButtons = [];
231
+ if ((_a = this._dataState) === null || _a === void 0 ? void 0 : _a.selectionInfo) {
232
+ if (this._dataState.selectionInfo.length > 1) {
233
+ disabledButtons.push("CLONE");
234
+ }
235
+ if (this._dataState.selectionInfo.isAllRecords()) {
236
+ disabledButtons.push("REMOVE");
237
+ }
238
+ }
239
+ return disabledButtons;
240
+ }
229
241
  componentWillRender() {
230
242
  const invisibleButtons = this._dataUnit && this._dataUnit.records.length > 0 ? [] : ["DATA_EXPORTER"];
231
- const headerTaskbarId = this._dataState && this._dataState.selectedRecords.length > 0 ? "snkGridHeaderTaskbar.selected" : "snkGridHeaderTaskbar.unselected";
232
- this._headerTaskbarProcessor.process(headerTaskbarId, this.taskbarManager, this._dataState, undefined, invisibleButtons);
243
+ const headerTaskbarId = this._dataState && this._dataState.selectionInfo.isEmpty() ? "snkGridHeaderTaskbar.unselected" : "snkGridHeaderTaskbar.selected";
244
+ this._headerTaskbarProcessor.process(headerTaskbarId, this.taskbarManager, this._dataState, this.getHeaderDisabledButtons(), invisibleButtons);
233
245
  this._topTaskbarProcessor.process(this.getTopTaskBarId(this.presentationMode === PresentationMode.SECONDARY ? ".secondary" : ""), this.taskbarManager, this._dataState, undefined, invisibleButtons);
234
246
  this.dataExporterProviderStore();
235
247
  }
@@ -2,9 +2,9 @@ import { r as registerInstance, c as createEvent, h, F as Fragment } from './ind
2
2
  import { ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { S as SnkFormConfigManager } from './SnkFormConfigManager-0d9752c3.js';
4
4
  import { buildFormMetadata, FormMetadata } from '@sankhyalabs/ezui/dist/collection/utils/form';
5
- import { T as TaskbarProcessor } from './taskbar-processor-c2a99aba.js';
5
+ import { T as TaskbarProcessor } from './taskbar-processor-94402e6e.js';
6
6
  import { T as TaskbarElement } from './taskbar-elements-10d80c79.js';
7
- import { c as VIEW_MODE } from './constants-9560e54f.js';
7
+ import { c as VIEW_MODE } from './constants-15617e7d.js';
8
8
  import './DataFetcher-5e99fa75.js';
9
9
  import { P as PresentationMode } from './index-6519a79e.js';
10
10
 
@@ -149,7 +149,7 @@ const SnkGuidesViewer = class {
149
149
  }
150
150
  }
151
151
  loadTaskbarProcessor() {
152
- var _a;
152
+ var _a, _b;
153
153
  const taskbarId = ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "snkGuideViewer.finish_edition" : "snkGuideViewer.regular";
154
154
  const disabledButtons = [];
155
155
  if (!this.dataState || !this.dataState.hasPrevious) {
@@ -158,6 +158,14 @@ const SnkGuidesViewer = class {
158
158
  if (!this.dataState || !this.dataState.hasNext) {
159
159
  disabledButtons.push("NEXT");
160
160
  }
161
+ if ((_b = this.dataState) === null || _b === void 0 ? void 0 : _b.selectionInfo) {
162
+ if (this.dataState.selectionInfo.length > 1) {
163
+ disabledButtons.push("CLONE");
164
+ }
165
+ if (this.dataState.selectionInfo.isAllRecords()) {
166
+ disabledButtons.push("REMOVE");
167
+ }
168
+ }
161
169
  const btnsRegularMode = ["PREVIOUS", "NEXT", "DIVIDER", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "GRID_MODE", "CONFIGURATOR"];
162
170
  if (this.presentationMode == PresentationMode.SECONDARY) {
163
171
  btnsRegularMode.unshift("INSERT");
@@ -308,7 +316,7 @@ const SnkGuidesViewer = class {
308
316
  }
309
317
  this.loadTaskbarProcessor();
310
318
  const showGuides = this._guides && (this._guides.length > 1);
311
- return (h("section", { class: "snk-guides-viewer" }, h("div", { class: "ez-row snk-guides-viewer__header" }, h("div", { class: "ez-col ez-col--sd-6 ez-col--tb-6 ez-flex--align-items-center ez-flex-item--align-center ez-padding-left--large", key: "header" }, h("ez-button", { onClick: () => this.exitViewer(), title: "tooltip", mode: "icon", iconName: "arrow_back", class: "ez-padding-right--medium", size: "small" }), h("div", { class: "ez-flex ez-flex--column ez-flex-item--auto" }, h("h1", { class: "ez-title ez-title--primary ez-title--xlarge" }, this.getMessage("snkCrud.title")), ((_a = this._breadcrumbItems) === null || _a === void 0 ? void 0 : _a.length) > 1 &&
319
+ return (h("section", { class: "snk-guides-viewer" }, h("div", { class: "ez-row snk-guides-viewer__header" }, h("div", { class: "ez-col ez-col--sd-6 ez-col--tb-6 ez-flex--align-items-center ez-flex-item--align-center ez-padding-left--large", key: "header" }, h("ez-button", { onClick: () => this.exitViewer(), title: this.getMessage("snkCrud.goBackTitle"), mode: "icon", iconName: "arrow_back", class: "ez-padding-right--medium", size: "small" }), h("div", { class: "ez-flex ez-flex--column ez-flex-item--auto" }, h("h1", { class: "ez-title ez-title--primary ez-title--xlarge" }, this.getMessage("snkCrud.title")), ((_a = this._breadcrumbItems) === null || _a === void 0 ? void 0 : _a.length) > 1 &&
312
320
  h("div", { class: "ez-margin-top--extra-small" }, h("ez-breadcrumb", Object.assign({ items: this._breadcrumbItems, onSelectedItem: (evt) => this.onBreadcrumbClickHandler(evt === null || evt === void 0 ? void 0 : evt.detail) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("breadcrumb")}` }))))), this.presentationMode != PresentationMode.SECONDARY && this.buildTaskBar()), h("div", { class: showGuides ? "snk-guides-viewer__container" : undefined }, showGuides && h("ez-guide-navigator", { ref: (ref) => this._guideNavigator = ref, class: "snk-guides-viewer__guide-navigator", items: this._guides, selectedId: this.selectedGuide ? this.selectedGuide.id : undefined, onEzChange: evt => this.updateSelectedGuideHandler(evt.detail) }), h("div", { class: "snk-guides-viewer__detail-container" }, SnkGuidesViewer.buildFixedForms(this.masterFormConfig, this._masterFormMetadata, (_b = this.selectedGuide) === null || _b === void 0 ? void 0 : _b.id, this.dataUnit, this.recordsValidator), this.getContent())), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this.getConfigViewMode(), onConfigSelected: (evt) => this.changeConfigViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail) })));
313
321
  }
314
322
  static get watchers() { return {
@@ -1,4 +1,4 @@
1
- export { S as snk_guides_viewer } from './snk-guides-viewer-6bb54367.js';
1
+ export { S as snk_guides_viewer } from './snk-guides-viewer-b13cff0a.js';
2
2
  import './index-cfd4bb13.js';
3
3
  import '@sankhyalabs/core';
4
4
  import './SnkFormConfigManager-0d9752c3.js';
@@ -7,8 +7,8 @@ import './form-config-fetcher-677f86dd.js';
7
7
  import './DataFetcher-5e99fa75.js';
8
8
  import './_commonjsHelpers-9943807e.js';
9
9
  import '@sankhyalabs/ezui/dist/collection/utils/form';
10
- import './taskbar-processor-c2a99aba.js';
10
+ import './taskbar-processor-94402e6e.js';
11
11
  import './taskbar-elements-10d80c79.js';
12
12
  import './index-6519a79e.js';
13
13
  import './index-e467ade5.js';
14
- import './constants-9560e54f.js';
14
+ import './constants-15617e7d.js';
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-cfd4bb13.js';
2
- import { O as ORDER_VALUES } from './constants-9560e54f.js';
2
+ import { O as ORDER_VALUES } from './constants-15617e7d.js';
3
3
 
4
4
  const snkSelectBoxCss = "ez-combo-box{width:100px}.grid-config-combo{--ez-text-input--height:28px;--ez-text-input__input--background-color:#fff;--ez-text-input__input--border-color:#dce0e8}";
5
5
 
@@ -1,10 +1,10 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-cfd4bb13.js';
2
2
  import { DataUnit, StringUtils, SortMode, DataType, ChangeOperation, ObjectUtils, UserInterface } from '@sankhyalabs/core';
3
- import { c as VIEW_MODE, S as SIMPLE_CRUD_MODE } from './constants-9560e54f.js';
3
+ import { c as VIEW_MODE, S as SIMPLE_CRUD_MODE } from './constants-15617e7d.js';
4
4
  import { T as TaskbarElement } from './taskbar-elements-10d80c79.js';
5
5
  import './DataFetcher-5e99fa75.js';
6
6
  import { P as PresentationMode } from './index-6519a79e.js';
7
- import { T as TaskbarProcessor } from './taskbar-processor-c2a99aba.js';
7
+ import { T as TaskbarProcessor } from './taskbar-processor-94402e6e.js';
8
8
  import './index-e467ade5.js';
9
9
  import './_commonjsHelpers-9943807e.js';
10
10
 
@@ -127,13 +127,13 @@ const SnkSimpleCrud = class {
127
127
  registerInstance(this, hostRef);
128
128
  this.dataStateChange = createEvent(this, "dataStateChange", 3);
129
129
  this.dataUnitReady = createEvent(this, "dataUnitReady", 3);
130
- this.REGULAR_DEFAULT_BTNS = ["INSERT", "PREVIOUS", "NEXT", "DIVIDER"];
131
- this.REGULAR_SELECTED_BTNS = ["INSERT", "PREVIOUS", "NEXT", "DIVIDER", "CLONE", "REMOVE", "DIVIDER"];
130
+ this.REGULAR_DEFAULT_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER"];
131
+ this.REGULAR_SELECTED_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER", "CLONE", "REMOVE", "DIVIDER"];
132
132
  this._taskbarProcessor = new TaskbarProcessor({
133
- "snkSimpleCrudTaskbar.form_regular": this.REGULAR_DEFAULT_BTNS.concat(TaskbarElement.GRID_MODE),
134
- "snkSimpleCrudTaskbar.grid_regular": this.REGULAR_DEFAULT_BTNS.concat(TaskbarElement.FORM_MODE),
135
- "snkSimpleCrudTaskbar.form_selected": this.REGULAR_SELECTED_BTNS.concat(TaskbarElement.GRID_MODE),
136
- "snkSimpleCrudTaskbar.grid_selected": this.REGULAR_SELECTED_BTNS.concat(TaskbarElement.FORM_MODE),
133
+ "snkSimpleCrudTaskbar.form_regular": this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(TaskbarElement.GRID_MODE),
134
+ "snkSimpleCrudTaskbar.grid_regular": this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(TaskbarElement.FORM_MODE),
135
+ "snkSimpleCrudTaskbar.form_selected": this.resolveInMemoryBtns(this.REGULAR_SELECTED_BTNS).concat(TaskbarElement.GRID_MODE),
136
+ "snkSimpleCrudTaskbar.grid_selected": this.resolveInMemoryBtns(this.REGULAR_SELECTED_BTNS).concat(TaskbarElement.FORM_MODE),
137
137
  "snkSimpleCrudTaskbar.finish_edition": ["CANCEL", "SAVE"]
138
138
  });
139
139
  this._currentViewMode = VIEW_MODE.GRID;
@@ -143,6 +143,13 @@ const SnkSimpleCrud = class {
143
143
  this.mode = SIMPLE_CRUD_MODE.SERVER;
144
144
  this.taskbarManager = undefined;
145
145
  }
146
+ resolveInMemoryBtns(taskbarButtons) {
147
+ const newTaskBarConfig = [...taskbarButtons];
148
+ if (this.mode === SIMPLE_CRUD_MODE.IN_MEMORY) {
149
+ newTaskBarConfig.splice(1, 1);
150
+ }
151
+ return newTaskBarConfig;
152
+ }
146
153
  /**
147
154
  * Usado para alternar a visão entre GRID e FORM externamente.
148
155
  */
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h, F as Fragment, H as Host, g as getElement } from './index-cfd4bb13.js';
2
2
  import { d as draggable_bundle } from './draggable.bundle-41d56f06.js';
3
3
  import { ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
4
- import { C as CONFIG_EVENTS, K as KEY_EVENTS, b as TYPE_ACTIONS, T as TAB_NAMES } from './constants-9560e54f.js';
4
+ import { C as CONFIG_EVENTS, K as KEY_EVENTS, b as TYPE_ACTIONS, T as TAB_NAMES } from './constants-15617e7d.js';
5
5
  import './_commonjsHelpers-9943807e.js';
6
6
 
7
7
  const snkTabConfigCss = "@keyframes activate{0%{clip-path:inset(calc(100% - 3px) 50% 0px 50%)}100%{clip-path:inset(calc(100% - 3px) 0px 0px 0px)}}.sc-snk-tab-config-h{--snk-tab-config--backward-icon:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"16px\" width=\"10px\"><path d=\"M 9.7808475,13.860393 3.9204526,8.0000004 9.7808475,2.0624965 7.9301965,0.28895552 0.21915255,8.0000004 7.9301965,15.711044 Z\"/></svg>');--snk-tab-config--forward-icon:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"16px\" width=\"10px\"><path d=\"M 0.21915251,13.860393 6.0795475,8.0000007 0.21915251,2.0624968 2.0698036,0.28895588 9.7808475,8.0000007 2.0698036,15.711044 Z\"/></svg>');--snk-tab-config__lower-bar--background-color:var(--color--disable-primary, #e5eaf0);--snk-tab-config__lower-bar--border:2px solid var(--color--disable-primary, #e5eaf0);--snk-tab-config__tab--color:var(--text--primary, #626e82);--snk-tab-config__tab--font-family:var(--font-pattern, \"Roboto\");--snk-tab-config__tab--font-size:var(--title--small, 14px);--snk-tab-config__tab--padding:var(--space--small, 6px) var(--space--medium, 12px);--snk-tab-config__tab-is-active--color:var(--color--primary, #008561);--snk-tab-config__tab-hover--color:var(--color--secondary, #383c45);--snk-tab-config__tab-is-focused--border:1px dashed var(--color--primary, #008561);--snk-tab-config__tab-label--text-shadow:var(--text-shadow, 0 0 0 #353535, 0 0 1px transparent);--snk-tab-config__tab-label--margin-bottom:var(--space--extra-small, 3px);--snk-tab-config__new-button-icon--color:var(--color--secondary-700, #1C1D22);--snk-tab-config__forward-button--background-color:var(--text--primary, #626e82);--snk-tab-config__forward-button-hover--background-color:var(--color--primary, #008561);--snk-tab-config__left-icon--padding-right:var(--space--small, 6px);--snk-tab-config__left-icon--color:var(--text--disable, #AFB6C0);--snk-tab-config__tab-label-disabled--color:var(--text--disable, #AFB6C0);--snk-tab-config__slot--margin-left:var(--space--small, 6px);display:flex;position:relative;width:100%;overflow:hidden}.tab-config__scroll.sc-snk-tab-config{display:flex;width:100%;scroll-behavior:smooth;overflow-x:auto;scrollbar-width:none}.tab-config__lower-bar.sc-snk-tab-config{position:absolute;left:0%;right:0%;top:91%;bottom:0%;border-radius:2px;background-color:var(--snk-tab-config__lower-bar--background-color);border:var(--snk-tab-config__lower-bar--border)}.tab-config__tab.sc-snk-tab-config{display:flex;border:none;background-color:unset;cursor:pointer;align-items:center;justify-content:center;min-width:fit-content;color:var(--snk-tab-config__tab--color);font-family:var(--snk-tab-config__tab--font-family);font-size:var(--snk-tab-config__tab--font-size);padding:var(--snk-tab-config__tab--padding)}.tab-config__tab.sc-snk-tab-config:focus,.tab-config__forward-button.sc-snk-tab-config,.tab-config__backward-button.sc-snk-tab-config{outline:none}.tab-config__tab--is-active.sc-snk-tab-config{position:relative;color:var(--snk-tab-config__tab-is-active--color)}.tab-config__tab.sc-snk-tab-config:hover{color:var(--snk-tab-config__tab-hover--color)}.tab-config__tab--is-active.sc-snk-tab-config:hover{color:var(--snk-tab-config__tab-is-active--color)}.tab-config__tab--is-active.sc-snk-tab-config::after{content:\"\";position:absolute;width:100%;height:100%;clip-path:inset(calc(100% - 3px) 0px 0px 0px);animation:activate 0.25s ease-in-out;background-color:var(--snk-tab-config__tab-is-active--color)}.tab-config__tab--is-focused.sc-snk-tab-config{border:var(--snk-tab-config__tab-is-focused--border)}.tab-config__tab-label.sc-snk-tab-config{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:var(--snk-tab-config__tab-label--text-shadow);margin-bottom:var(--snk-tab-config__tab-label--margin-bottom)}.tab-config__forward-button.sc-snk-tab-config,.tab-config__backward-button.sc-snk-tab-config{position:absolute;z-index:1;display:flex;box-sizing:border-box;padding:0px;top:0px;right:0px;width:16px;height:100%;border:none;background-color:unset;cursor:pointer;justify-content:center;align-items:center}.tab-config__new-button.sc-snk-tab-config{position:absolute;z-index:1;display:flex;box-sizing:border-box;padding:0px;top:0px;right:0px;height:100%;border:none;background-color:unset;cursor:pointer;justify-content:center;align-items:center}.tab-config__new-button.sc-snk-tab-config ez-icon.sc-snk-tab-config{--ez-icon--color:var(--snk-tab-config__new-button-icon--color)}.tab-config__backward-button.sc-snk-tab-config{left:0px;box-shadow:10px 10px 5px 5px white;background:white}.tab-config__forward-button.sc-snk-tab-config{box-shadow:10px 10px 5px 20px white;background:white}.tab-config__forward-button.sc-snk-tab-config::after,.tab-config__backward-button.sc-snk-tab-config::after{content:'';display:flex;width:10px;height:16px;background-color:var(--snk-tab-config__forward-button--background-color)}.tab-config__forward-button.sc-snk-tab-config::after{-webkit-mask-image:var(--snk-tab-config--forward-icon);mask-image:var(--snk-tab-config--forward-icon)}.tab-config__backward-button.sc-snk-tab-config::after{-webkit-mask-image:var(--snk-tab-config--backward-icon);mask-image:var(--snk-tab-config--backward-icon)}.tab-config__forward-button.sc-snk-tab-config:hover::after,.tab-config__backward-button.sc-snk-tab-config:hover::after{background-color:var(--snk-tab-config__forward-button-hover--background-color)}.tab-config__new-button.sc-snk-tab-config:hover ez-icon.sc-snk-tab-config{--ez-icon--color:var(--snk-tab-config__forward-button-hover--background-color)}.tab-config__hidden.sc-snk-tab-config{display:none}.tab-config__scroll.sc-snk-tab-config::-webkit-scrollbar{display:none}.tab-config__left-icon.sc-snk-tab-config{padding-right:var(--snk-tab-config__left-icon--padding-right);--ez-icon--color:var(--snk-tab-config__left-icon--color)}.tab-config__left-icon--eye-off.sc-snk-tab-config{--ez-icon--color:var(--snk-tab-config__left-icon--color)}.tab-config__right-icon.sc-snk-tab-config{visibility:hidden;padding-left:var(--snk-tab-config__left-icon--padding-right)}.tab-config__tab.sc-snk-tab-config:hover .tab-config__right-icon.sc-snk-tab-config{visibility:visible}.tab-config__tab--is-active.sc-snk-tab-config .tab-config__right-icon.sc-snk-tab-config{visibility:visible;--ez-icon--color:var(--snk-tab-config__tab-is-active--color)}.tab-config__tab.sc-snk-tab-config:hover .tab-config__right-icon.sc-snk-tab-config{--ez-icon--color:var(--snk-tab-config__tab-hover--color)}.tab-config__tab--is-active.sc-snk-tab-config:hover .tab-config__right-icon.sc-snk-tab-config{--ez-icon--color:var(--snk-tab-config__tab-is-active--color)}.tab-config__actions-button.sc-snk-tab-config{--ez-actions-button__btn-action--min-width:100px;visibility:hidden;opacity:0;transition:visibility 1s linear, opacity 0.3s linear}.tab-config__tab.sc-snk-tab-config:hover .tab-config__actions-button.sc-snk-tab-config{visibility:visible;opacity:1;transition:visibility 0.2s linear, opacity 0.10s linear}[data-draggable-element].sc-snk-tab-config{cursor:grab}.tab-config__tab-label-disabled.sc-snk-tab-config{color:var(--snk-tab-config__tab-label-disabled--color)}.tab-config__slot.sc-snk-tab-config{margin-left:var(--snk-tab-config__slot--margin-left)}";
@@ -6,7 +6,7 @@ class TaskbarProcessor {
6
6
  var _a;
7
7
  this.customButtons = new Map();
8
8
  this.buttons = "";
9
- this.disabledButtons = [];
9
+ this.disabledButtons = [].concat(disabledButtons);
10
10
  (_a = this.getButtonsArray(taskbarId, taskbarManager, dataState)) === null || _a === void 0 ? void 0 : _a.forEach(btnDef => {
11
11
  let buttonName;
12
12
  if (typeof btnDef === "string") {
@@ -0,0 +1 @@
1
+ import{r as i,c as t,h as s,g as e}from"./p-b9667fbe.js";import{ElementIDUtils as r,ApplicationContext as n,DataType as d}from"@sankhyalabs/core";import{UserInterface as o}from"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";import{C as a}from"./p-3c4823fc.js";import{P as l}from"./p-f132e371.js";import{T as h}from"./p-c2beb95c.js";import{s as c}from"./p-98f7f796.js";import"./p-9f98fc3c.js";import"./p-0c11c980.js";import"./p-112455b1.js";const u=class{constructor(s){i(this,s),this.actionClick=t(this,"actionClick",7),this.gridDoubleClick=t(this,"gridDoubleClick",7),this._topTaskbarProcessor=new h({"snkGridTopTaskbar.regular":["FORM_MODE","CONFIGURATOR","INSERT"],"snkGridTopTaskbar.regular.secondary":["FORM_MODE","CONFIGURATOR","INSERT"],"snkGridTopTaskbar.finish_edition":["CANCEL","SAVE"],"snkGridTopTaskbar.finish_edition.secondary":[]}),this._headerTaskbarProcessor=new h({"snkGridHeaderTaskbar.unselected":["REFRESH","DATA_EXPORTER"],"snkGridHeaderTaskbar.selected":["UPDATE","CLONE","REMOVE","MORE_OPTIONS","DIVIDER","REFRESH","DATA_EXPORTER"]}),this._dataUnit=void 0,this._dataState=void 0,this._gridConfig=void 0,this._popUpGridConfig=!1,this.configName=void 0,this.actionsList=void 0,this.taskbarManager=void 0,this.statusResolver=void 0,this.multipleSelection=void 0,this.presentationMode=l.PRIMARY}async showConfig(){null!=this._grid&&this.openGridConfig()}async hideConfig(){null!=this._grid&&this.closeGridConfig()}async setConfig(i){this.setGridConfig(i)}openGridConfig(){this._grid.getColumnsState().then((i=>{this._snkGridConfig.columns=i.filter((i=>i.name)),this._snkGridConfig.selectedIndex=0,this._popUpGridConfig=!0}))}closeGridConfig(){this._popUpGridConfig=!1}setGridConfig(i){this._gridConfig=i}loadConfig(){a.get().then((i=>{i.loadGridConfig(this.configName).then((i=>{this.setGridConfig(i)})).catch((i=>{console.warn(i)}))}))}gridConfigChangeHandler(i){a.saveGridConfig(i.detail,this.configName),i.stopPropagation()}modalConfigChangeHandler(i){const t=i.detail;this._grid.setColumnsState(t.columns).then((()=>{this.setGridConfig(t),this.closeGridConfig(),this.dataExporterProviderStore()})),i.stopPropagation()}buildColumnsMetadata(i,t){return null==t||t.forEach((t=>{var s,e;if(t.hidden&&"RECDESP"!==t.name)return;const r=null===(s=this._dataUnit)||void 0===s?void 0:s.getField(t.name);if(i.push({label:t.label,id:t.name,width:t.width,type:null==r?void 0:r.dataType,userInterface:null==r?void 0:r.userInterface}),null!=(null===(e=null==r?void 0:r.properties)||void 0===e?void 0:e.DESCRIPTIONFIELD)){const t=r.properties.mergedFrom;i.push({label:r.properties.DESCRIPTIONENTITY,id:`${t?t+".":""}${r.properties.ENTITYNAME}.${r.properties.DESCRIPTIONFIELD}`,width:200,type:d.TEXT,userInterface:o.LONGTEXT})}})),i||[]}getPaginationInfo(){var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.getPaginationInfo()}getExporterOffset(i){if(null==i)return;const t=i.firstRecord;return t>0?t-1:t}async dataExporterProviderStore(){var i,t;const s=[],e=await(null===(i=this._snkDataUnit)||void 0===i?void 0:i.getSelectedRecordsIDsInfo());await(null===(t=this._grid)||void 0===t?void 0:t.getColumnsState().then(this.buildColumnsMetadata.bind(this,s)));const r={getFilters:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.getAppliedFilters()},getColumnsMetadata:()=>s,getOrders:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.getSort()},getResourceURI:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.name},getSelectedNumber:()=>{var i,t;return null===(t=null===(i=this._dataState)||void 0===i?void 0:i.selectionInfo)||void 0===t?void 0:t.length},getTotalRecords:()=>{var i,t,s;const{total:e}=(null===(i=this._dataUnit)||void 0===i?void 0:i.getPaginationInfo())||{};return null!=e?e:null===(s=null===(t=this._dataUnit)||void 0===t?void 0:t.records)||void 0===s?void 0:s.length},getSelectedIDs:()=>e||[],getOffset:()=>this.getExporterOffset(this.getPaginationInfo()),getLimit:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.pageSize},getRecordID:()=>{var i,t,s;return null===(s=null===(t=null===(i=this._dataUnit)||void 0===i?void 0:i.records)||void 0===t?void 0:t[0])||void 0===s?void 0:s.__record__id__}};c.set("exporterProviders",Object.assign(Object.assign({},c.get("exporterProviders")),{[this.configName]:r}))}addElementID(){r.addIDInfo(this._element,null,{dataUnit:this._dataUnit})}componentWillLoad(){this._application=n.getContextValue("__SNK__APPLICATION__");let i=this._element.parentElement;for(;i;){if("SNK-DATA-UNIT"===i.tagName.toUpperCase()){this._snkDataUnit=i,this._dataUnit=this._snkDataUnit.dataUnit,this._dataUnit?this.addElementID():this._snkDataUnit.addEventListener("dataUnitReady",(i=>{this._dataUnit=i.detail,this.addElementID()})),this._snkDataUnit.addEventListener("dataStateChange",(i=>{this._dataState=i.detail}));break}i=i.parentElement}this.loadConfig()}getHeaderDisabledButtons(){var i;const t=[];return(null===(i=this._dataState)||void 0===i?void 0:i.selectionInfo)&&(this._dataState.selectionInfo.length>1&&t.push("CLONE"),this._dataState.selectionInfo.isAllRecords()&&t.push("REMOVE")),t}componentWillRender(){const i=this._dataUnit&&this._dataUnit.records.length>0?[]:["DATA_EXPORTER"],t=this._dataState&&this._dataState.selectionInfo.isEmpty()?"snkGridHeaderTaskbar.unselected":"snkGridHeaderTaskbar.selected";this._headerTaskbarProcessor.process(t,this.taskbarManager,this._dataState,this.getHeaderDisabledButtons(),i),this._topTaskbarProcessor.process(this.getTopTaskBarId(this.presentationMode===l.SECONDARY?".secondary":""),this.taskbarManager,this._dataState,void 0,i),this.dataExporterProviderStore()}getTopTaskBarId(i){var t;return(null===(t=this._dataState)||void 0===t?void 0:t.isDirty)?`snkGridTopTaskbar.finish_edition${i}`:`snkGridTopTaskbar.regular${i}`}getPrimaryButton(){return this.presentationMode===l.PRIMARY?"INSERT":""}render(){var i,t;if(this._dataUnit)return s("div",{class:"snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large"},s("div",{class:"snk-grid__header ez-margin-bottom--medium"},s("snk-filter-bar",{ref:i=>this._snkFilterBar=i,dataUnit:this._dataUnit,"data-element-id":"gridFilter",class:"snk-grid__filter-bar ez-align--top",configName:this.configName}),(null===(t=null===(i=this._snkFilterBar)||void 0===i?void 0:i.filterConfig)||void 0===t?void 0:t.length)>0&&s("hr",{class:"ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider"}),s("snk-taskbar",{class:"ez-padding-left--medium","data-element-id":"grid_top",key:"topTaskbar",configName:this.configName,dataUnit:this._dataUnit,buttons:this._topTaskbarProcessor.buttons,disabledButtons:this._topTaskbarProcessor.disabledButtons,customButtons:this._topTaskbarProcessor.customButtons,primaryButton:this.getPrimaryButton()})),s("ez-grid",{ref:i=>this._grid=i,class:(this.presentationMode===l.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:i=>{this.gridConfigChangeHandler(i)},onEzDoubleClick:()=>this.gridDoubleClick.emit(),statusResolver:this.statusResolver,multipleSelection:this.multipleSelection},s("snk-taskbar",{dataUnit:this._dataUnit,configName:this.configName,"data-element-id":"grid_left",buttons:this._headerTaskbarProcessor.buttons,disabledButtons:this._headerTaskbarProcessor.disabledButtons,customButtons:this._headerTaskbarProcessor.customButtons,slot:"leftButtons",actionsList:this.actionsList})),s("div",{class:"ez-col ez-col--sd-12"},s("slot",{name:"SnkGridFooter"})),s("ez-modal",{modalSize:"small",closeEsc:!1,closeOutsideClick:!1,opened:this._popUpGridConfig,onEzCloseModal:()=>this.closeGridConfig()},s("snk-grid-config",{ref:i=>this._snkGridConfig=i,config:this._gridConfig,"data-element-id":this._element.getAttribute(r.DATA_ELEMENT_ID_ATTRIBUTE_NAME),application:this._application,selectedIndex:0,configName:this.configName,onConfigChange:i=>this.modalConfigChangeHandler(i),onConfigCancel:()=>this.closeGridConfig()})))}get _element(){return e(this)}};u.style=".snk-grid__container.sc-snk-grid{display:flex;height:100%;width:100%}.snk-grid__header.sc-snk-grid{display:flex;flex-wrap:nowrap;width:100%}.snk-grid__filter-bar.sc-snk-grid{width:100%}.snk-grid__header-divider.sc-snk-grid{margin-bottom:var(--space--medium)}.snk-grid__table.sc-snk-grid{min-height:300px}.snk-grid-container__without-shadow.sc-snk-grid{--ezgrid__container--shadow:unset}";export{u as snk_grid}
@@ -1,4 +1,4 @@
1
- import{r as t,c as e,h as s,g as r}from"./p-b9667fbe.js";import{WaitingChangeException as i,WarningException as n,ErrorException as a,ObjectUtils as o,DataType as c,DataUnit as l,StringUtils as u,DataUnitStorage as h,ChangeOperation as d,DateUtils as p,DependencyType as m,ElementIDUtils as f,ApplicationContext as y,ErrorTracking as w}from"@sankhyalabs/core";import{d as v,D as _,U as g}from"./p-0c11c980.js";import{ApplicationUtils as I}from"@sankhyalabs/ezui/dist/collection/utils";import{S as P}from"./p-5518d572.js";import{G as $,C as D}from"./p-3c4823fc.js";import{R as S}from"./p-9f98fc3c.js";import"./p-112455b1.js";class b{constructor(t){this._app=t,window.addEventListener("error",(t=>this.errorHandler(t))),window.addEventListener("unhandledrejection",(t=>this.rejectionHandler(t)))}rejectionHandler(t){const e=t.reason;e instanceof i||(e?this.processException(e):this._app.isDebugMode().then((t=>{t&&this._app.error("Promise rejeitada","Erro interno: Uma promise foi rejeitada sem razão determinada.")})))}errorHandler(t){this.processException(t.error)}buildErrorCodeHTML(t){return'<br><a href="#" onclick="try{window.workspace.openHelp(\'_tbcode:'+t.errorCode+"')} catch(e){alert('Não é possível abrir a ajuda fora do workspace Sankhya');}\">Código: "+t.errorCode+"</a>"}processException(t){t.errorCode&&(t.message+=this.buildErrorCodeHTML(t)),t instanceof i||t instanceof n?this._app.alert(t.title,t.message):t instanceof a?this._app.error(t.title,t.message):this._app.isDebugMode().then((e=>{if(e)if(t instanceof Error)this._app.error(t.name,t.message);else{const e=(null==t?void 0:t.title)||"Erro detectado",s="string"==typeof t?t:t.message||`Erro interno "${o.objectToString(t)}"`;this._app.error(e,s)}}))}}class A{constructor(){this._defaultPageSize=100,this._templateByQuery=new Map,this.buldTemplates()}buldTemplates(){this._templateByQuery.set("search",v.gql`query($entityName: String! $argument: String $criteria: InputSearchCriteria $options: InputSearchOptions) {
1
+ import{r as t,c as e,h as s,g as r}from"./p-b9667fbe.js";import{WaitingChangeException as i,WarningException as n,ErrorException as a,ObjectUtils as o,DataType as c,DataUnit as l,StringUtils as u,DataUnitStorage as h,ChangeOperation as d,DateUtils as p,DependencyType as m,ElementIDUtils as f,ApplicationContext as y,ErrorTracking as w}from"@sankhyalabs/core";import{d as v,D as _,U as g}from"./p-0c11c980.js";import{ApplicationUtils as I}from"@sankhyalabs/ezui/dist/collection/utils";import{S as P}from"./p-28c800b9.js";import{G as $,C as D}from"./p-3c4823fc.js";import{R as S}from"./p-9f98fc3c.js";import"./p-112455b1.js";class b{constructor(t){this._app=t,window.addEventListener("error",(t=>this.errorHandler(t))),window.addEventListener("unhandledrejection",(t=>this.rejectionHandler(t)))}rejectionHandler(t){const e=t.reason;e instanceof i||(e?this.processException(e):this._app.isDebugMode().then((t=>{t&&this._app.error("Promise rejeitada","Erro interno: Uma promise foi rejeitada sem razão determinada.")})))}errorHandler(t){this.processException(t.error)}buildErrorCodeHTML(t){return'<br><a href="#" onclick="try{window.workspace.openHelp(\'_tbcode:'+t.errorCode+"')} catch(e){alert('Não é possível abrir a ajuda fora do workspace Sankhya');}\">Código: "+t.errorCode+"</a>"}processException(t){t.errorCode&&(t.message+=this.buildErrorCodeHTML(t)),t instanceof i||t instanceof n?this._app.alert(t.title,t.message):t instanceof a?this._app.error(t.title,t.message):this._app.isDebugMode().then((e=>{if(e)if(t instanceof Error)this._app.error(t.name,t.message);else{const e=(null==t?void 0:t.title)||"Erro detectado",s="string"==typeof t?t:t.message||`Erro interno "${o.objectToString(t)}"`;this._app.error(e,s)}}))}}class A{constructor(){this._defaultPageSize=100,this._templateByQuery=new Map,this.buldTemplates()}buldTemplates(){this._templateByQuery.set("search",v.gql`query($entityName: String! $argument: String $criteria: InputSearchCriteria $options: InputSearchOptions) {
2
2
  $queryAlias$: search(entityName: $entityName argument: $argument criteria: $criteria options: $options){
3
3
  value
4
4
  label