@sankhyalabs/sankhyablocks 0.0.0-bugfix-dev-KB-38407.0 → 0.0.0-bugfix-dev-KB-9999.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/{pesquisa-fetcher-977c90b1.js → pesquisa-fetcher-c790ffb7.js} +21 -7
  3. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  4. package/dist/cjs/snk-actions-button_2.cjs.entry.js +4 -2
  5. package/dist/cjs/snk-application.cjs.entry.js +22 -1
  6. package/dist/cjs/snk-attach.cjs.entry.js +1 -1
  7. package/dist/cjs/snk-crud.cjs.entry.js +7 -4
  8. package/dist/cjs/snk-detail-view.cjs.entry.js +2 -2
  9. package/dist/cjs/snk-entity-list.cjs.entry.js +5 -3
  10. package/dist/cjs/snk-filter-bar.cjs.entry.js +25 -3
  11. package/dist/cjs/snk-filter-modal.cjs.entry.js +2 -1
  12. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +2 -1
  13. package/dist/cjs/snk-grid.cjs.entry.js +2 -1
  14. package/dist/cjs/{snk-guides-viewer-5803fe92.js → snk-guides-viewer-32c1d35d.js} +4 -4
  15. package/dist/cjs/snk-guides-viewer.cjs.entry.js +2 -2
  16. package/dist/cjs/snk-simple-crud.cjs.entry.js +14 -2
  17. package/dist/cjs/snk-taskbar.cjs.entry.js +51 -3
  18. package/dist/collection/components/snk-application/__mocks__/snk-application.js +7 -0
  19. package/dist/collection/components/snk-crud/snk-crud.js +23 -3
  20. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.css +11 -2
  21. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +2 -2
  22. package/dist/collection/components/snk-entity-list/snk-entity-list.js +5 -3
  23. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.js +2 -1
  24. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +19 -1
  25. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +39 -2
  26. package/dist/collection/components/snk-filter-bar/utils/SnkFilterModalFactory.js +3 -1
  27. package/dist/collection/components/snk-grid/snk-grid.js +19 -1
  28. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +53 -1
  29. package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.js +3 -1
  30. package/dist/collection/components/snk-taskbar/snk-taskbar.css +17 -0
  31. package/dist/collection/components/snk-taskbar/snk-taskbar.js +88 -3
  32. package/dist/collection/lib/dataUnit/InMemoryLoader.js +1 -1
  33. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.js +17 -3
  34. package/dist/collection/lib/http/data-fetcher/fetchers/parameters-fecher.js +21 -0
  35. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +3 -3
  36. package/dist/components/dataunit-fetcher.js +21 -7
  37. package/dist/components/snk-application2.js +21 -0
  38. package/dist/components/snk-crud.js +7 -3
  39. package/dist/components/snk-detail-view2.js +3 -3
  40. package/dist/components/snk-entity-list.js +5 -3
  41. package/dist/components/snk-filter-bar2.js +26 -3
  42. package/dist/components/snk-filter-modal.js +4 -2
  43. package/dist/components/snk-filter-multi-select.js +2 -1
  44. package/dist/components/snk-grid2.js +3 -1
  45. package/dist/components/snk-simple-crud2.js +15 -1
  46. package/dist/components/snk-taskbar2.js +55 -4
  47. package/dist/components/taskbar-actions-button2.js +3 -1
  48. package/dist/esm/loader.js +1 -1
  49. package/dist/esm/{pesquisa-fetcher-5e228b5a.js → pesquisa-fetcher-4000d0b8.js} +21 -7
  50. package/dist/esm/sankhyablocks.js +1 -1
  51. package/dist/esm/snk-actions-button_2.entry.js +4 -2
  52. package/dist/esm/snk-application.entry.js +22 -1
  53. package/dist/esm/snk-attach.entry.js +1 -1
  54. package/dist/esm/snk-crud.entry.js +7 -4
  55. package/dist/esm/snk-detail-view.entry.js +2 -2
  56. package/dist/esm/snk-entity-list.entry.js +5 -3
  57. package/dist/esm/snk-filter-bar.entry.js +25 -3
  58. package/dist/esm/snk-filter-modal.entry.js +2 -1
  59. package/dist/esm/snk-filter-multi-select.entry.js +2 -1
  60. package/dist/esm/snk-grid.entry.js +2 -1
  61. package/dist/esm/{snk-guides-viewer-c77e1c8f.js → snk-guides-viewer-8adacfd4.js} +4 -4
  62. package/dist/esm/snk-guides-viewer.entry.js +2 -2
  63. package/dist/esm/snk-simple-crud.entry.js +14 -2
  64. package/dist/esm/snk-taskbar.entry.js +52 -4
  65. package/dist/sankhyablocks/{p-3efca291.entry.js → p-0574c231.entry.js} +1 -1
  66. package/dist/sankhyablocks/p-0eb1ff03.js +65 -0
  67. package/dist/sankhyablocks/{p-59ce706a.entry.js → p-11bbb65e.entry.js} +1 -1
  68. package/dist/sankhyablocks/{p-ce4bca21.js → p-2419f19f.js} +1 -1
  69. package/dist/sankhyablocks/p-33718dfc.entry.js +1 -0
  70. package/dist/sankhyablocks/{p-2dd38000.entry.js → p-3838d2ff.entry.js} +1 -1
  71. package/dist/sankhyablocks/{p-34156b41.entry.js → p-45d82274.entry.js} +1 -1
  72. package/dist/sankhyablocks/p-70a4af56.entry.js +1 -0
  73. package/dist/sankhyablocks/p-79b4b271.entry.js +1 -0
  74. package/dist/sankhyablocks/p-96ef14f9.entry.js +1 -0
  75. package/dist/sankhyablocks/p-bf2acf72.entry.js +1 -0
  76. package/dist/sankhyablocks/{p-86164061.entry.js → p-db4edd06.entry.js} +3 -3
  77. package/dist/sankhyablocks/p-df2b84c4.entry.js +1 -0
  78. package/dist/sankhyablocks/p-e0b23084.entry.js +1 -0
  79. package/dist/sankhyablocks/p-ed2dce4b.entry.js +1 -0
  80. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  81. package/dist/types/components/snk-application/__mocks__/snk-application.d.ts +3 -0
  82. package/dist/types/components/snk-crud/snk-crud.d.ts +5 -0
  83. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +5 -0
  84. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +7 -0
  85. package/dist/types/components/snk-filter-bar/utils/SnkFilterModalFactory.d.ts +3 -1
  86. package/dist/types/components/snk-grid/snk-grid.d.ts +5 -0
  87. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +10 -1
  88. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +20 -1
  89. package/dist/types/components.d.ts +64 -0
  90. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.d.ts +1 -0
  91. package/dist/types/lib/http/data-fetcher/fetchers/parameters-fecher.d.ts +1 -0
  92. package/package.json +9 -2
  93. package/dist/sankhyablocks/p-20726710.entry.js +0 -1
  94. package/dist/sankhyablocks/p-25c77ddb.js +0 -65
  95. package/dist/sankhyablocks/p-69efa80d.entry.js +0 -1
  96. package/dist/sankhyablocks/p-7d8d7fe9.entry.js +0 -1
  97. package/dist/sankhyablocks/p-a9e5b094.entry.js +0 -1
  98. package/dist/sankhyablocks/p-ab568a2e.entry.js +0 -1
  99. package/dist/sankhyablocks/p-b05ab13d.entry.js +0 -1
  100. package/dist/sankhyablocks/p-d4f9ee17.entry.js +0 -1
  101. package/dist/sankhyablocks/p-f39f48c2.entry.js +0 -1
@@ -68,6 +68,7 @@ const SnkGrid = class {
68
68
  this.taskbarCustomContainerId = undefined;
69
69
  this.gridHeaderCustomSlotId = 'GRID_HEADER_CUSTOM_ELEMENTS';
70
70
  this.topTaskbarCustomSlotId = 'GRID_TASKBAR_CUSTOM_ELEMENTS';
71
+ this.disablePersonalizedFilter = undefined;
71
72
  }
72
73
  /**
73
74
  * Exibe a janela de configurações da grade.
@@ -415,7 +416,7 @@ const SnkGrid = class {
415
416
  return undefined;
416
417
  }
417
418
  return (index.h("div", { class: "snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, index.h("div", { class: "snk-grid__header ez-margin-bottom--medium" }, this._showSnkFilterBar &&
418
- index.h(index.Fragment, null, index.h("snk-filter-bar", { ref: (ref) => this._snkFilterBar = ref, dataUnit: this._dataUnit, "data-element-id": "gridFilter", class: "snk-grid__filter-bar ez-align--top", configName: this.configName, messagesBuilder: this.messagesBuilder, resourceID: this.resourceID, onConfigUpdated: evt => this.handleFilterConfigUpdated(evt.detail) }), index.h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" })), index.h("snk-taskbar", { class: "ez-padding-left--medium", "data-element-id": "grid_top", key: "topTaskbar", configName: this.configName, dataUnit: this._dataUnit, messagesBuilder: this.messagesBuilder, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: this.getPrimaryButton(), resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: this.topTaskbarCustomSlotId }, index.h("slot", { name: this.topTaskbarCustomSlotId }))), index.h("ez-grid", { ref: ref => this._grid = ref, class: (this.presentationMode === index$1.PresentationMode.SECONDARY ? "snk-grid-container__without-shadow " : "") + "snk-grid__table", "data-element-id": "embedded", dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: (evt) => { this.gridConfigChangeHandler(evt); }, onEzDoubleClick: (evt) => this.gridDoubleClick.emit(evt.detail), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, columnfilterDataSource: this.columnFilterDataSource, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, recordsValidator: this.recordsValidator, canEdit: this.canEdit }, index.h("snk-taskbar", { dataUnit: this._dataUnit, configName: this.configName, messagesBuilder: this.messagesBuilder, "data-element-id": "grid_left", buttons: this._headerTaskbarProcessor.buttons, presentationMode: this.presentationMode, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.getActionsList(), primaryButton: this.getPrimaryButton(), resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: this.gridHeaderCustomSlotId }, index.h("slot", { name: this.gridHeaderCustomSlotId }))), index.h("div", { class: "ez-col ez-col--sd-12" }, index.h("slot", { name: "SnkGridFooter" })), index.h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._popUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, index.h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this._gridConfig, "data-element-id": this._element.getAttribute(core.ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), application: this._application, selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resourceID }))));
419
+ index.h(index.Fragment, null, index.h("snk-filter-bar", { ref: (ref) => this._snkFilterBar = ref, dataUnit: this._dataUnit, "data-element-id": "gridFilter", class: "snk-grid__filter-bar ez-align--top", configName: this.configName, messagesBuilder: this.messagesBuilder, resourceID: this.resourceID, onConfigUpdated: evt => this.handleFilterConfigUpdated(evt.detail), disablePersonalizedFilter: this.disablePersonalizedFilter }), index.h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" })), index.h("snk-taskbar", { class: "ez-padding-left--medium", "data-element-id": "grid_top", key: "topTaskbar", configName: this.configName, dataUnit: this._dataUnit, messagesBuilder: this.messagesBuilder, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: this.getPrimaryButton(), resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: this.topTaskbarCustomSlotId, overflowStrategy: 'none' }, index.h("slot", { name: this.topTaskbarCustomSlotId }))), index.h("ez-grid", { ref: ref => this._grid = ref, class: (this.presentationMode === index$1.PresentationMode.SECONDARY ? "snk-grid-container__without-shadow " : "") + "snk-grid__table", "data-element-id": "embedded", dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: (evt) => { this.gridConfigChangeHandler(evt); }, onEzDoubleClick: (evt) => this.gridDoubleClick.emit(evt.detail), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, columnfilterDataSource: this.columnFilterDataSource, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, recordsValidator: this.recordsValidator, canEdit: this.canEdit }, index.h("snk-taskbar", { id: 'teste', dataUnit: this._dataUnit, configName: this.configName, messagesBuilder: this.messagesBuilder, "data-element-id": "grid_left", buttons: this._headerTaskbarProcessor.buttons, presentationMode: this.presentationMode, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.getActionsList(), primaryButton: this.getPrimaryButton(), resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: this.gridHeaderCustomSlotId }, index.h("slot", { name: this.gridHeaderCustomSlotId }))), index.h("div", { class: "ez-col ez-col--sd-12" }, index.h("slot", { name: "SnkGridFooter" })), index.h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._popUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, index.h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this._gridConfig, "data-element-id": this._element.getAttribute(core.ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), application: this._application, selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resourceID }))));
419
420
  }
420
421
  get _element() { return index.getElement(this); }
421
422
  };
@@ -8,7 +8,7 @@ const fieldSearch = require('./field-search-f56aa7d6.js');
8
8
  const taskbarElements = require('./taskbar-elements-01b85b99.js');
9
9
  const constants = require('./constants-35ddd366.js');
10
10
  require('./DataFetcher-ba94ed5b.js');
11
- require('./pesquisa-fetcher-977c90b1.js');
11
+ require('./pesquisa-fetcher-c790ffb7.js');
12
12
  const index$1 = require('./index-0922807b.js');
13
13
  require('./ISave-e91b70a7.js');
14
14
  require('@sankhyalabs/ezui/dist/collection/utils/constants');
@@ -18,7 +18,7 @@ require('./filter-item-type.enum-a7ffdaa6.js');
18
18
  require('./form-config-fetcher-df043d3d.js');
19
19
  const DataUnit = require('@sankhyalabs/core/dist/dataunit/DataUnit');
20
20
 
21
- const snkGuidesViewerCss = ".sc-snk-guides-viewer-h{--snk-guides-viewer--space-large:var(--space--large, 24px);--snk-guides-viewer--space-medium:var(--space--medium, 12px);--snk-guides-viewer__header--min-height:94px;--snk-guides-viewer__header--z-index:var(--more-visible, 2);--snk-guides-viewer__header--background-color:var(--background--body, #fafcff);--snk-guides-viewer__guide-navigator--width:340px;display:block}snk-form-view.sc-snk-guides-viewer{width:100%}.snk-guides-viewer.sc-snk-guides-viewer{position:relative;padding-left:0px;padding-top:0px;padding-right:var(--snk-guides-viewer--space-large);padding-bottom:var(--snk-guides-viewer--space-large)}.snk-guides-viewer__detail-container.sc-snk-guides-viewer{display:flex;row-gap:24px;flex-direction:column}.snk-guides-viewer__header.sc-snk-guides-viewer{position:sticky;align-items:center;top:0;z-index:var(--snk-guides-viewer__header--z-index);background-color:var(--snk-guides-viewer__header--background-color);min-height:var(--snk-guides-viewer__header--min-height);width:calc(100% + (var(--snk-guides-viewer--space-large) * 2));padding-left:var(--snk-guides-viewer--space-large);padding-right:var(--snk-guides-viewer--space-large);padding-top:var(--snk-guides-viewer--space-large);padding-bottom:var(--snk-guides-viewer--space-medium);margin-left:calc(var(--snk-guides-viewer--space-large) * -1);margin-right:calc(var(--snk-guides-viewer--space-large) * -1);margin-bottom:var(--snk-guides-viewer--space-medium)}.snk-guides-viewer__container.sc-snk-guides-viewer{display:grid;grid-template-columns:minmax(0, auto) minmax(0, 100%);height:100%;column-gap:var(--snk-guides-viewer--space-large)}.snk-guides-viewer__guide-navigator.sc-snk-guides-viewer{position:sticky;top:calc(var(--snk-guides-viewer__header--min-height) + var(--snk-guides-viewer--space-medium));height:calc(100vh - var(--snk-guides-viewer__header--min-height) - var(--snk-guides-viewer--space-large) - var(--snk-guides-viewer--space-medium))}.snk-guides-viewer__guide-navigator[open].sc-snk-guides-viewer{width:var(--snk-guides-viewer__guide-navigator--width);max-width:var(--snk-guides-viewer__guide-navigator--width);min-width:var(--snk-guides-viewer__guide-navigator--width)}.snk-guides-viewer__detail-content.sc-snk-guides-viewer{min-height:100%;align-items:flex-start;align-content:flex-start}";
21
+ const snkGuidesViewerCss = ".sc-snk-guides-viewer-h{--snk-guides-viewer--space-large:var(--space--large, 24px);--snk-guides-viewer--space-medium:var(--space--medium, 12px);--snk-guides-viewer__header--min-height:94px;--snk-guides-viewer__header--z-index:var(--more-visible, 2);--snk-guides-viewer__header--background-color:var(--background--body, #fafcff);--snk-guides-viewer__guide-navigator--width:340px;display:block}snk-form-view.sc-snk-guides-viewer{width:100%}.snk-guides-viewer.sc-snk-guides-viewer{position:relative;padding-left:0px;padding-top:0px;padding-right:var(--snk-guides-viewer--space-large);padding-bottom:var(--snk-guides-viewer--space-large)}.snk-guides-viewer__detail-container.sc-snk-guides-viewer{display:flex;row-gap:24px;flex-direction:column}.snk-guides-viewer__header.sc-snk-guides-viewer{position:sticky;align-items:center;top:0;z-index:var(--snk-guides-viewer__header--z-index);background-color:var(--snk-guides-viewer__header--background-color);min-height:var(--snk-guides-viewer__header--min-height);width:calc(100% + (var(--snk-guides-viewer--space-large) * 2));padding-left:var(--snk-guides-viewer--space-large);padding-right:var(--snk-guides-viewer--space-large);padding-top:var(--snk-guides-viewer--space-large);padding-bottom:var(--snk-guides-viewer--space-medium);margin-left:calc(var(--snk-guides-viewer--space-large) * -1);margin-right:calc(var(--snk-guides-viewer--space-large) * -1);margin-bottom:var(--snk-guides-viewer--space-medium)}.snk-guides-viewer__header-breadcrumb.sc-snk-guides-viewer{width:25%;display:flex}.snk-guides-viewer__header-taskbar.sc-snk-guides-viewer{width:75%}.snk-guides-viewer__container.sc-snk-guides-viewer{display:grid;grid-template-columns:minmax(0, auto) minmax(0, 100%);height:100%;column-gap:var(--snk-guides-viewer--space-large)}.snk-guides-viewer__guide-navigator.sc-snk-guides-viewer{position:sticky;top:calc(var(--snk-guides-viewer__header--min-height) + var(--snk-guides-viewer--space-medium));height:calc(100vh - var(--snk-guides-viewer__header--min-height) - var(--snk-guides-viewer--space-large) - var(--snk-guides-viewer--space-medium))}.snk-guides-viewer__guide-navigator[open].sc-snk-guides-viewer{width:var(--snk-guides-viewer__guide-navigator--width);max-width:var(--snk-guides-viewer__guide-navigator--width);min-width:var(--snk-guides-viewer__guide-navigator--width)}.snk-guides-viewer__detail-content.sc-snk-guides-viewer{min-height:100%;align-items:flex-start;align-content:flex-start}";
22
22
 
23
23
  const FORM_NAME_PREFIX = "__FORM:";
24
24
  const SnkGuidesViewer = class {
@@ -399,7 +399,7 @@ const SnkGuidesViewer = class {
399
399
  }
400
400
  buildTaskBar() {
401
401
  var _a;
402
- return index.h("div", { class: `ez-col ez-flex-item--align-center ez-col--sd-6 ez-col--tb-6 ${this.presentationMode != index$1.PresentationMode.SECONDARY ? 'ez-align--right' : 'ez-padding-bottom--medium'}` }, index.h("snk-taskbar", { key: "guideViewerTaskbar", "data-element-id": "guideViewer", configName: this.configName, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, actionsList: this.getActionsList(), messagesBuilder: this.messagesBuilder, presentationMode: this.presentationMode, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-taskbar-owner": "master", dataUnit: this.dataUnit, resourceID: this.resourceID, customSlotId: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }, index.h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" })));
402
+ return index.h("div", { class: `snk-guides-viewer__header-taskbar ${this.presentationMode != index$1.PresentationMode.SECONDARY ? 'ez-align--right' : 'ez-padding-bottom--medium'}` }, index.h("snk-taskbar", { key: "guideViewerTaskbar", "data-element-id": "guideViewer", configName: this.configName, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, actionsList: this.getActionsList(), messagesBuilder: this.messagesBuilder, presentationMode: this.presentationMode, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-taskbar-owner": "master", dataUnit: this.dataUnit, resourceID: this.resourceID, customSlotId: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS", alignRigth: true }, index.h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" })));
403
403
  }
404
404
  async dataUnitActionHandler(action) {
405
405
  var _a;
@@ -458,7 +458,7 @@ const SnkGuidesViewer = class {
458
458
  }
459
459
  this.loadTaskbarProcessor();
460
460
  const showGuides = this._guides && (this._guides.length > 1);
461
- return (index.h("section", { class: "snk-guides-viewer" }, index.h("div", { class: "ez-row snk-guides-viewer__header" }, index.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" }, index.h("ez-button", { onClick: () => this.exitViewer(), title: this.getMessage("snkCrud.goBackTitle"), mode: "icon", iconName: "arrow_back", class: "ez-padding-right--medium", size: "small" }), index.h("div", { class: "ez-flex ez-flex--column ez-flex-item--auto" }, index.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 &&
461
+ return (index.h("section", { class: "snk-guides-viewer" }, index.h("div", { class: "ez-row snk-guides-viewer__header" }, index.h("div", { class: "snk-guides-viewer__header-breadcrumb ez-flex--align-items-center ez-flex-item--align-center ez-padding-left--large", key: "header" }, index.h("ez-button", { onClick: () => this.exitViewer(), title: this.getMessage("snkCrud.goBackTitle"), mode: "icon", iconName: "arrow_back", class: "ez-padding-right--medium", size: "small" }), index.h("div", { class: "ez-flex ez-flex--column ez-flex-item--auto" }, index.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 &&
462
462
  index.h("div", { class: "ez-margin-top--extra-small" }, index.h("ez-breadcrumb", Object.assign({ items: this._breadcrumbItems, onSelectedItem: (evt) => this.onBreadcrumbClickHandler(evt === null || evt === void 0 ? void 0 : evt.detail) }, { [core.ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${core.ElementIDUtils.getInternalIDInfo("breadcrumb")}` }))))), this.presentationMode != index$1.PresentationMode.SECONDARY && this.buildTaskBar()), index.h("div", { class: "snk-guides-viewer__container" }, showGuides ?
463
463
  index.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, onEzSelectionChange: evt => this.updateSelectedGuideHandler(evt.detail) })
464
464
  :
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const snkGuidesViewer = require('./snk-guides-viewer-5803fe92.js');
5
+ const snkGuidesViewer = require('./snk-guides-viewer-32c1d35d.js');
6
6
  require('./index-f9e81701.js');
7
7
  require('@sankhyalabs/core');
8
8
  require('./SnkFormConfigManager-71c4768e.js');
@@ -18,7 +18,7 @@ require('./taskbar-elements-01b85b99.js');
18
18
  require('./index-0922807b.js');
19
19
  require('./index-102ba62d.js');
20
20
  require('./constants-35ddd366.js');
21
- require('./pesquisa-fetcher-977c90b1.js');
21
+ require('./pesquisa-fetcher-c790ffb7.js');
22
22
  require('@sankhyalabs/ezui/dist/collection/utils/constants');
23
23
  require('./PreloadManager-84466da6.js');
24
24
  require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils');
@@ -7,7 +7,7 @@ const core = require('@sankhyalabs/core');
7
7
  const constants = require('./constants-35ddd366.js');
8
8
  const taskbarElements = require('./taskbar-elements-01b85b99.js');
9
9
  require('./DataFetcher-ba94ed5b.js');
10
- const pesquisaFetcher = require('./pesquisa-fetcher-977c90b1.js');
10
+ const pesquisaFetcher = require('./pesquisa-fetcher-c790ffb7.js');
11
11
  const index$1 = require('./index-0922807b.js');
12
12
  require('./ISave-e91b70a7.js');
13
13
  require('@sankhyalabs/ezui/dist/collection/utils/constants');
@@ -57,6 +57,8 @@ const SnkSimpleCrud = class {
57
57
  this.taskbarManager = undefined;
58
58
  this.messagesBuilder = undefined;
59
59
  this.useEnterLikeTab = false;
60
+ this.actionsList = undefined;
61
+ this.configName = undefined;
60
62
  }
61
63
  resolveInMemoryBtns(taskbarButtons) {
62
64
  const newTaskBarConfig = [...taskbarButtons];
@@ -255,7 +257,7 @@ const SnkSimpleCrud = class {
255
257
  }
256
258
  getActionsList() {
257
259
  var _a, _b;
258
- return [{
260
+ const hardList = [{
259
261
  value: core.StringUtils.generateUUID(),
260
262
  label: (_b = (_a = this.messagesBuilder) === null || _a === void 0 ? void 0 : _a.getMessage("snkSimpleCrud.findColumn", undefined)) !== null && _b !== void 0 ? _b : "Buscar",
261
263
  disableCloseOnSelect: true,
@@ -264,6 +266,16 @@ const SnkSimpleCrud = class {
264
266
  ? this.getColumnSearch(actionButton, item)
265
267
  : this.getFieldSearch(actionButton, item)
266
268
  }];
269
+ if (this.taskbarManager != undefined && this.taskbarManager.getMoreOptions != undefined) {
270
+ const taskbarID = this.getTopTaskBarId();
271
+ return hardList.concat(this.taskbarManager.getMoreOptions(taskbarID, this.configName, this.dataState, this.actionsList));
272
+ }
273
+ return hardList.concat(this.actionsList);
274
+ }
275
+ getTopTaskBarId() {
276
+ var _a;
277
+ return ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? `snkGridTopTaskbar.finish_edition${index$1.PresentationMode.PRIMARY}` :
278
+ `snkGridTopTaskbar.regular${index$1.PresentationMode.PRIMARY}`;
267
279
  }
268
280
  async keyDownListener(event) {
269
281
  if (!event.ctrlKey || event.key == undefined || event.key.toUpperCase() !== "F") {
@@ -9,13 +9,15 @@ const taskbarElements = require('./taskbar-elements-01b85b99.js');
9
9
  const index$1 = require('./index-0922807b.js');
10
10
  require('./index-102ba62d.js');
11
11
 
12
- const snkTaskbarCss = ".sc-snk-taskbar-h{display:flex}";
12
+ const snkTaskbarCss = ".sc-snk-taskbar-h{display:flex;flex-wrap:wrap}.no-wrap.sc-snk-taskbar-h{flex-wrap:nowrap}.full-width.sc-snk-taskbar-h{width:100%}.align-right.sc-snk-taskbar-h{justify-content:flex-end}.overflowed.sc-snk-taskbar{display:none}";
13
13
 
14
14
  const SnkTaskbar = class {
15
15
  constructor(hostRef) {
16
16
  index.registerInstance(this, hostRef);
17
17
  this.actionClick = index.createEvent(this, "actionClick", 7);
18
18
  this.TASKBAR_ITEM_ID_PREFIX = 'TASKBAR_ITEM_';
19
+ this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME = 'taskbar-custom-elements-container';
20
+ this.ACTIONS_BUTTON_TAG = 'TASKBAR-ACTIONS-BUTTON';
19
21
  this._titleKeyByElement = {
20
22
  [taskbarElements.TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
21
23
  [taskbarElements.TaskbarElement.PREVIOUS]: "snkTaskbar.titlePrevious",
@@ -33,11 +35,14 @@ const SnkTaskbar = class {
33
35
  [taskbarElements.TaskbarElement.ATTACH]: "snkTaskbar.titleAttach",
34
36
  };
35
37
  this._permissions = undefined;
38
+ this._overFlowedElements = [];
36
39
  this._customElements = undefined;
37
40
  this._customElementsId = undefined;
38
41
  this._slotContainer = undefined;
42
+ this.alignRigth = false;
39
43
  this.customSlotId = "TASKBAR_CUSTOM_ELEMENTS";
40
44
  this.customContainerId = undefined;
45
+ this.overflowStrategy = 'hiddenItems';
41
46
  this.configName = undefined;
42
47
  this.resourceID = undefined;
43
48
  this.buttons = undefined;
@@ -51,6 +56,7 @@ const SnkTaskbar = class {
51
56
  }
52
57
  observeButtons() {
53
58
  this._definitions = undefined;
59
+ requestAnimationFrame(() => { var _a; return (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate(); });
54
60
  }
55
61
  // Internal methods
56
62
  elementsFromString(strButtons) {
@@ -231,15 +237,52 @@ const SnkTaskbar = class {
231
237
  }
232
238
  this.validatePresentationMode();
233
239
  }
240
+ handleOverFlow(overFlowingElements) {
241
+ const elementsToHandle = overFlowingElements.filter(element => !this.hasToIgnoreOverFlow(element));
242
+ this.resetOverFlowedElements();
243
+ this.doOverFlowElements(elementsToHandle);
244
+ }
245
+ resetOverFlowedElements() {
246
+ this._overFlowedElements.forEach(element => {
247
+ element.classList.remove(core.OVERFLOWED_CLASS_NAME);
248
+ });
249
+ this._overFlowedElements = [];
250
+ }
251
+ doOverFlowElements(overFlowedElements) {
252
+ overFlowedElements.forEach(element => {
253
+ element.classList.add(core.OVERFLOWED_CLASS_NAME);
254
+ this._overFlowedElements.push(element);
255
+ });
256
+ }
257
+ hasToIgnoreOverFlow(element) {
258
+ return element.classList.contains(this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME);
259
+ }
260
+ handleOverFlowStrategy() {
261
+ if (this.overflowStrategy === 'hiddenItems') {
262
+ this._overFlowWatcher = new core.OverflowWatcher(this.buildOverFlowWatcherParams());
263
+ }
264
+ }
265
+ buildOverFlowWatcherParams() {
266
+ return {
267
+ element: this._element,
268
+ callback: this.handleOverFlow.bind(this),
269
+ overFlowDirection: core.OverflowDirection.HORIZONTAL,
270
+ deltaSize: 1,
271
+ notOverFlow: ["moreOptions"]
272
+ };
273
+ }
234
274
  componentDidLoad() {
235
275
  const dataInfo = { dataUnit: this.dataUnit };
236
276
  core.ElementIDUtils.addIDInfo(this._element, null, dataInfo);
277
+ this.handleOverFlowStrategy();
237
278
  }
238
279
  componentDidRender() {
239
280
  this.appendCustomElementsInTaskbar();
240
281
  }
241
282
  disconnectedCallback() {
283
+ var _a;
242
284
  this.unlinkAllCustomElements();
285
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.destroy();
243
286
  }
244
287
  unlinkAllCustomElements() {
245
288
  var _a;
@@ -257,7 +300,7 @@ const SnkTaskbar = class {
257
300
  return undefined;
258
301
  }
259
302
  let index$1 = 0;
260
- return (index.h(index.Host, null, this.removeEmpty(this._definitions.map((elem) => {
303
+ return (index.h(index.Host, { class: this.getHostClasses() }, this.removeEmpty(this._definitions.map((elem) => {
261
304
  var _a;
262
305
  if (elem === taskbarElements.TaskbarElement.DIVIDER) {
263
306
  index$1 = 0;
@@ -275,7 +318,12 @@ const SnkTaskbar = class {
275
318
  return this.addCustomElementContainer(elem);
276
319
  }
277
320
  return index.h("slot", { name: elem });
278
- })), index.h("div", { class: "taskbar-custom-elements-container" }, index.h("slot", { name: this.customSlotId }))));
321
+ })), index.h("div", { class: this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME }, index.h("slot", { name: this.customSlotId }))));
322
+ }
323
+ getHostClasses() {
324
+ if (this.overflowStrategy !== 'hiddenItems')
325
+ return 'no-wrap';
326
+ return `full-width ${this.alignRigth ? 'align-right' : ""}`;
279
327
  }
280
328
  get _element() { return index.getElement(this); }
281
329
  static get watchers() { return {
@@ -0,0 +1,7 @@
1
+ const SnkApplication = jest.fn()
2
+ .mockImplementation(() => {
3
+ return {
4
+ executePreparedSearch: jest.fn(),
5
+ };
6
+ });
7
+ export { SnkApplication };
@@ -30,6 +30,7 @@ export class SnkCrud {
30
30
  this.presentationMode = PresentationMode.PRIMARY;
31
31
  this.messagesBuilder = undefined;
32
32
  this.useEnterLikeTab = false;
33
+ this.disablePersonalizedFilter = undefined;
33
34
  this.customContainerId = `SNK-CRUD-CUSTOM-CONTAINER-${StringUtils.generateUUID()}`;
34
35
  }
35
36
  /**
@@ -162,7 +163,8 @@ export class SnkCrud {
162
163
  window.removeEventListener("keydown", this._keyDownHandler);
163
164
  }
164
165
  async initKeyboardManager() {
165
- const keyboardManager = await this._application.getKeyboardManager();
166
+ var _a;
167
+ const keyboardManager = await ((_a = this._application) === null || _a === void 0 ? void 0 : _a.getKeyboardManager());
166
168
  if (keyboardManager) {
167
169
  const dataUnit = this._dataUnit || await this._snkDataUnit.getDataUnit();
168
170
  async function saveDataUnitHandlingFocus() {
@@ -211,7 +213,8 @@ export class SnkCrud {
211
213
  }
212
214
  }
213
215
  async removeShortcuts() {
214
- const keyboardManager = await this._application.getKeyboardManager();
216
+ var _a;
217
+ const keyboardManager = await ((_a = this._application) === null || _a === void 0 ? void 0 : _a.getKeyboardManager());
215
218
  if (keyboardManager) {
216
219
  keyboardManager
217
220
  .unbind("F6")
@@ -278,7 +281,7 @@ export class SnkCrud {
278
281
  return;
279
282
  }
280
283
  this._snkDataUnit.ignoreSaveMessage = this._currentViewMode === VIEW_MODE.GRID;
281
- return (h(Host, null, h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", null, h("snk-grid", { ref: (ref) => this._snkGrid = ref, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), messagesBuilder: this.messagesBuilder, actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode, recordsValidator: this.recordsValidator, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit, resourceID: this._resourceID }, h("slot", { name: "GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-guides-viewer", { ref: ref => this._guidesViewer = ref, entityPath: this._snkDataUnit.entityName, messagesBuilder: this.messagesBuilder, onExit: () => this.setViewMode(VIEW_MODE.GRID), dataState: this._dataState, dataUnit: this._dataUnit, actionsList: this.actionsList, taskbarManager: this.taskbarManager, configName: this.configName, onActionClick: evt => this.executeAction(evt.detail), presentationMode: this.presentationMode, "data-element-id": "crud_form", canEdit: this._canEdit, recordsValidator: this.recordsValidator, resourceID: this._resourceID, detailTaskbarCustomContainerId: this.customContainerId }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkFormTaskBar" }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.backView.bind(this) })), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showActionButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this._resourceID, customContainerId: this.customContainerId })), h("div", { id: `${this.customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }), h("slot", { name: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))));
284
+ return (h(Host, null, h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", null, h("snk-grid", { ref: (ref) => this._snkGrid = ref, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), messagesBuilder: this.messagesBuilder, actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode, recordsValidator: this.recordsValidator, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit, resourceID: this._resourceID, disablePersonalizedFilter: this.disablePersonalizedFilter }, h("slot", { name: "GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-guides-viewer", { ref: ref => this._guidesViewer = ref, entityPath: this._snkDataUnit.entityName, messagesBuilder: this.messagesBuilder, onExit: () => this.setViewMode(VIEW_MODE.GRID), dataState: this._dataState, dataUnit: this._dataUnit, actionsList: this.actionsList, taskbarManager: this.taskbarManager, configName: this.configName, onActionClick: evt => this.executeAction(evt.detail), presentationMode: this.presentationMode, "data-element-id": "crud_form", canEdit: this._canEdit, recordsValidator: this.recordsValidator, resourceID: this._resourceID, detailTaskbarCustomContainerId: this.customContainerId }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkFormTaskBar" }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.backView.bind(this) })), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showActionButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this._resourceID, customContainerId: this.customContainerId })), h("div", { id: `${this.customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }), h("slot", { name: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))));
282
285
  }
283
286
  static get is() { return "snk-crud"; }
284
287
  static get encapsulation() { return "scoped"; }
@@ -514,6 +517,23 @@ export class SnkCrud {
514
517
  "attribute": "use-enter-like-tab",
515
518
  "reflect": false,
516
519
  "defaultValue": "false"
520
+ },
521
+ "disablePersonalizedFilter": {
522
+ "type": "boolean",
523
+ "mutable": false,
524
+ "complexType": {
525
+ "original": "boolean",
526
+ "resolved": "boolean",
527
+ "references": {}
528
+ },
529
+ "required": false,
530
+ "optional": false,
531
+ "docs": {
532
+ "tags": [],
533
+ "text": "Desabilita a apresenta\u00E7\u00E3o da op\u00E7\u00E3o de filtros personalizados na filter bar (chip de filtros) \ne no modal lateral de filtros (container de filtros personalizados)."
534
+ },
535
+ "attribute": "disable-personalized-filter",
536
+ "reflect": false
517
537
  }
518
538
  };
519
539
  }
@@ -25,7 +25,7 @@ snk-form-view {
25
25
  position: relative;
26
26
  padding-left: 0px;
27
27
  padding-top: 0px;
28
-
28
+
29
29
  /*public*/
30
30
  padding-right: var(--snk-guides-viewer--space-large);
31
31
  padding-bottom: var(--snk-guides-viewer--space-large);
@@ -57,6 +57,15 @@ snk-form-view {
57
57
  margin-bottom: var(--snk-guides-viewer--space-medium);
58
58
  }
59
59
 
60
+ .snk-guides-viewer__header-breadcrumb{
61
+ width: 25%;
62
+ display: flex;
63
+ }
64
+
65
+ .snk-guides-viewer__header-taskbar{
66
+ width: 75%;
67
+ }
68
+
60
69
  .snk-guides-viewer__container {
61
70
  /*private*/
62
71
  display: grid;
@@ -88,4 +97,4 @@ snk-form-view {
88
97
  min-height: 100%;
89
98
  align-items: flex-start;
90
99
  align-content: flex-start;
91
- }
100
+ }
@@ -383,7 +383,7 @@ export class SnkGuidesViewer {
383
383
  }
384
384
  buildTaskBar() {
385
385
  var _a;
386
- return h("div", { class: `ez-col ez-flex-item--align-center ez-col--sd-6 ez-col--tb-6 ${this.presentationMode != PresentationMode.SECONDARY ? 'ez-align--right' : 'ez-padding-bottom--medium'}` }, h("snk-taskbar", { key: "guideViewerTaskbar", "data-element-id": "guideViewer", configName: this.configName, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, actionsList: this.getActionsList(), messagesBuilder: this.messagesBuilder, presentationMode: this.presentationMode, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-taskbar-owner": "master", dataUnit: this.dataUnit, resourceID: this.resourceID, customSlotId: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" })));
386
+ return h("div", { class: `snk-guides-viewer__header-taskbar ${this.presentationMode != PresentationMode.SECONDARY ? 'ez-align--right' : 'ez-padding-bottom--medium'}` }, h("snk-taskbar", { key: "guideViewerTaskbar", "data-element-id": "guideViewer", configName: this.configName, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, actionsList: this.getActionsList(), messagesBuilder: this.messagesBuilder, presentationMode: this.presentationMode, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-taskbar-owner": "master", dataUnit: this.dataUnit, resourceID: this.resourceID, customSlotId: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS", alignRigth: true }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" })));
387
387
  }
388
388
  async dataUnitActionHandler(action) {
389
389
  var _a;
@@ -442,7 +442,7 @@ export class SnkGuidesViewer {
442
442
  }
443
443
  this.loadTaskbarProcessor();
444
444
  const showGuides = this._guides && (this._guides.length > 1);
445
- 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 &&
445
+ return (h("section", { class: "snk-guides-viewer" }, h("div", { class: "ez-row snk-guides-viewer__header" }, h("div", { class: "snk-guides-viewer__header-breadcrumb 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 &&
446
446
  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: "snk-guides-viewer__container" }, showGuides ?
447
447
  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, onEzSelectionChange: evt => this.updateSelectedGuideHandler(evt.detail) })
448
448
  :
@@ -56,16 +56,18 @@ export class SnkEntityList {
56
56
  this.loadListSource();
57
57
  }
58
58
  optionLoader(searchArgument) {
59
- var _a, _b, _c, _d;
59
+ var _a, _b, _c, _d, _e, _f;
60
60
  const { mode, argument } = searchArgument;
61
61
  if (this._application === undefined) {
62
62
  return;
63
63
  }
64
64
  const searchOptions = (_c = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.searchContext) === null || _c === void 0 ? void 0 : _c.searchOptions;
65
+ const criteria = (_e = (_d = this.config) === null || _d === void 0 ? void 0 : _d.props) === null || _e === void 0 ? void 0 : _e.criteria;
65
66
  const options = {
66
- entityDescription: (_d = this.config) === null || _d === void 0 ? void 0 : _d.label,
67
+ entityDescription: (_f = this.config) === null || _f === void 0 ? void 0 : _f.label,
67
68
  entity: this._entityName,
68
- searchOptions: searchOptions
69
+ searchOptions: searchOptions,
70
+ criteria,
69
71
  };
70
72
  return this._application.executePreparedSearch(mode, argument, options);
71
73
  }
@@ -10,7 +10,8 @@ export class SnkFilterMultiSelect {
10
10
  * Emitido quando acontece a alteração de valor do componente snk-filter-multi-select
11
11
  */
12
12
  ezChangeListener(evt) {
13
- this.value = evt.detail.value;
13
+ var _a;
14
+ this.value = (_a = evt.detail) === null || _a === void 0 ? void 0 : _a.value;
14
15
  this.valueChanged.emit(this.value);
15
16
  }
16
17
  /**
@@ -17,6 +17,7 @@ export class SnkFilterModal {
17
17
  this.editPersonalizedFilter = undefined;
18
18
  this.deletePersonalizedFilter = undefined;
19
19
  this.filtersToDelete = [];
20
+ this.disablePersonalizedFilter = undefined;
20
21
  }
21
22
  /**
22
23
  * Emitido quando um filtro personalizado é deletado.
@@ -233,7 +234,7 @@ export class SnkFilterModal {
233
234
  const customFilters = this.filters.filter(filter => filter.filterType === FilterType.CUSTOM_FILTER);
234
235
  const quickFilters = this.filters.filter(filter => filter.filterType === FilterType.QUICK_FILTER);
235
236
  const otherFilters = this.filters.filter(filter => filter.filterType === FilterType.OTHER_FILTERS);
236
- return (h("ez-modal-container", { class: "snk-filter-modal__container", modalTitle: this._modalTitle, cancelButtonLabel: this._cancelButtonLabel, okButtonLabel: this._okButtonLabel, onEzModalAction: this.modalActionListener.bind(this) }, h("div", { class: "snk-filter-modal__content ez-col--sd-12" }, this.renderCollapsibleFilterBox(this.getCustomMessage('customFilters'), customFilters, false, false), this.renderCollapsibleFilterBox(this.getCustomMessage('quickFilters'), quickFilters, false), otherFilters.map(filter => this.renderCollapsibleFilterBox(filter.label, [filter], true)))));
237
+ return (h("ez-modal-container", { class: "snk-filter-modal__container", modalTitle: this._modalTitle, cancelButtonLabel: this._cancelButtonLabel, okButtonLabel: this._okButtonLabel, onEzModalAction: this.modalActionListener.bind(this) }, h("div", { class: "snk-filter-modal__content ez-col--sd-12" }, !this.disablePersonalizedFilter && this.renderCollapsibleFilterBox(this.getCustomMessage('customFilters'), customFilters, false, false), this.renderCollapsibleFilterBox(this.getCustomMessage('quickFilters'), quickFilters, false), otherFilters.map(filter => this.renderCollapsibleFilterBox(filter.label, [filter], true)))));
237
238
  }
238
239
  static get is() { return "snk-filter-modal"; }
239
240
  static get originalStyleUrls() {
@@ -411,6 +412,23 @@ export class SnkFilterModal {
411
412
  "text": "Guarda filtros a serem deletados no Apply do modal"
412
413
  },
413
414
  "defaultValue": "[]"
415
+ },
416
+ "disablePersonalizedFilter": {
417
+ "type": "boolean",
418
+ "mutable": false,
419
+ "complexType": {
420
+ "original": "boolean",
421
+ "resolved": "boolean",
422
+ "references": {}
423
+ },
424
+ "required": false,
425
+ "optional": false,
426
+ "docs": {
427
+ "tags": [],
428
+ "text": "Desabilita a apresenta\u00E7\u00E3o da op\u00E7\u00E3o de filtros personalizados na filter bar (chip de filtros) \ne no modal lateral de filtros (container de filtros personalizados)."
429
+ },
430
+ "attribute": "disable-personalized-filter",
431
+ "reflect": false
414
432
  }
415
433
  };
416
434
  }
@@ -11,6 +11,7 @@ export class SnkFilterBar {
11
11
  this._updateSequence = [];
12
12
  this._loadingPending = false;
13
13
  this._configUpdated = false;
14
+ this._firstLoad = true;
14
15
  this._pendingVariables = false;
15
16
  this._customfiltersToBeUpdated = [];
16
17
  this._calculateSortIndex = (item) => {
@@ -31,6 +32,7 @@ export class SnkFilterBar {
31
32
  this.resourceID = undefined;
32
33
  this.filterConfig = undefined;
33
34
  this.messagesBuilder = undefined;
35
+ this.disablePersonalizedFilter = undefined;
34
36
  this.allowDefault = undefined;
35
37
  this.scrollerLocked = false;
36
38
  this.showPersonalizedFilter = false;
@@ -164,13 +166,27 @@ export class SnkFilterBar {
164
166
  return;
165
167
  }
166
168
  this._loadingPending = false;
167
- this.dataUnit.loadData(undefined, undefined, true);
169
+ this.doLoadData(this.dataUnit.getLastLoadRequest() != undefined);
168
170
  }
169
171
  if (this._configUpdated) {
170
172
  this._configUpdated = false;
171
173
  ConfigStorage.saveFilterBarConfig(this.filterConfig, this.configName, this.resourceID);
172
174
  }
173
175
  }
176
+ async doLoadData(forceReload = false) {
177
+ try {
178
+ if (this._firstLoad && !forceReload) {
179
+ let autoLoad = await this._application.getBooleanParam("global.carregar.registros.iniciar.tela");
180
+ if (!autoLoad) {
181
+ return;
182
+ }
183
+ }
184
+ this.dataUnit.loadData(undefined, undefined, true);
185
+ }
186
+ finally {
187
+ this._firstLoad = false;
188
+ }
189
+ }
174
190
  /**
175
191
  * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
176
192
  * através de um pequeno modulo na estrutura da aplicação:
@@ -179,6 +195,9 @@ export class SnkFilterBar {
179
195
  */
180
196
  getMessage(key, params, defaultValue) {
181
197
  var _a;
198
+ if (this.messagesBuilder == undefined && this._application) {
199
+ this.messagesBuilder = this._application.messagesBuilder;
200
+ }
182
201
  return ((_a = this.messagesBuilder) === null || _a === void 0 ? void 0 : _a.getMessage(key, params)) || defaultValue;
183
202
  }
184
203
  getFilter(_dataUnit) {
@@ -205,7 +224,7 @@ export class SnkFilterBar {
205
224
  registryFilterProvider() {
206
225
  this.dataUnit.addFilterProvider(this);
207
226
  if (this.filterConfig) {
208
- this.dataUnit.loadData(undefined, undefined, true);
227
+ this.doLoadData();
209
228
  }
210
229
  }
211
230
  itemFocused(selectedItem) {
@@ -340,6 +359,7 @@ export class SnkFilterBar {
340
359
  filterConfig: filtersConfigCopy,
341
360
  configName: this.configName,
342
361
  onComplete: callbackOnApplyFilter,
362
+ disablePersonalizedFilter: this.disablePersonalizedFilter,
343
363
  getMessage: (key, props) => this.getMessage(key, props),
344
364
  onAddPersonalizedFilter: () => this.addPersonalizedFilter(),
345
365
  onEditPersonalizedFilter: (id) => this.editPersonalizedFilter(id),
@@ -510,6 +530,23 @@ export class SnkFilterBar {
510
530
  "tags": [],
511
531
  "text": "Respons\u00E1vel por flexibilizar e padronizar o uso de mensagens nos blocos de constru\u00E7\u00E3o."
512
532
  }
533
+ },
534
+ "disablePersonalizedFilter": {
535
+ "type": "boolean",
536
+ "mutable": false,
537
+ "complexType": {
538
+ "original": "boolean",
539
+ "resolved": "boolean",
540
+ "references": {}
541
+ },
542
+ "required": false,
543
+ "optional": false,
544
+ "docs": {
545
+ "tags": [],
546
+ "text": "Desabilita a apresenta\u00E7\u00E3o da op\u00E7\u00E3o de filtros personalizados na filter bar (chip de filtros) \ne no modal lateral de filtros (container de filtros personalizados)."
547
+ },
548
+ "attribute": "disable-personalized-filter",
549
+ "reflect": false
513
550
  }
514
551
  };
515
552
  }
@@ -1,10 +1,11 @@
1
1
  import { ApplicationUtils } from "@sankhyalabs/ezui/dist/collection/utils";
2
2
  class SnkFilterModalFactory {
3
- constructor({ filterConfig, configName, onComplete, getMessage, onAddPersonalizedFilter, onEditPersonalizedFilter, onDeletePersonalizedFilter }) {
3
+ constructor({ filterConfig, configName, onComplete, getMessage, disablePersonalizedFilter, onAddPersonalizedFilter, onEditPersonalizedFilter, onDeletePersonalizedFilter }) {
4
4
  this._filterConfig = filterConfig;
5
5
  this._configName = configName;
6
6
  this._onComplete = onComplete;
7
7
  this._getMessage = getMessage;
8
+ this._disablePersonalizedFilter = disablePersonalizedFilter;
8
9
  this._addPersonalizedFilterFn = onAddPersonalizedFilter;
9
10
  this._editPersonalizedFilterFn = onEditPersonalizedFilter;
10
11
  this._onDeletePersonalizedFilter = onDeletePersonalizedFilter;
@@ -18,6 +19,7 @@ class SnkFilterModalFactory {
18
19
  filterModal.className = "ez-size-height--full";
19
20
  filterModal.filters = this._filterConfig;
20
21
  filterModal.configName = this._configName;
22
+ filterModal.disablePersonalizedFilter = this._disablePersonalizedFilter;
21
23
  filterModal.getMessage = this._getMessage.bind(this);
22
24
  filterModal.applyFilters = this.applyFilters.bind(this);
23
25
  filterModal.closeModal = () => this._closeModal();
@@ -52,6 +52,7 @@ export class SnkGrid {
52
52
  this.taskbarCustomContainerId = undefined;
53
53
  this.gridHeaderCustomSlotId = 'GRID_HEADER_CUSTOM_ELEMENTS';
54
54
  this.topTaskbarCustomSlotId = 'GRID_TASKBAR_CUSTOM_ELEMENTS';
55
+ this.disablePersonalizedFilter = undefined;
55
56
  }
56
57
  /**
57
58
  * Exibe a janela de configurações da grade.
@@ -399,7 +400,7 @@ export class SnkGrid {
399
400
  return undefined;
400
401
  }
401
402
  return (h("div", { class: "snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, h("div", { class: "snk-grid__header ez-margin-bottom--medium" }, this._showSnkFilterBar &&
402
- h(Fragment, null, h("snk-filter-bar", { ref: (ref) => this._snkFilterBar = ref, dataUnit: this._dataUnit, "data-element-id": "gridFilter", class: "snk-grid__filter-bar ez-align--top", configName: this.configName, messagesBuilder: this.messagesBuilder, resourceID: this.resourceID, onConfigUpdated: evt => this.handleFilterConfigUpdated(evt.detail) }), h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" })), h("snk-taskbar", { class: "ez-padding-left--medium", "data-element-id": "grid_top", key: "topTaskbar", configName: this.configName, dataUnit: this._dataUnit, messagesBuilder: this.messagesBuilder, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: this.getPrimaryButton(), resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: this.topTaskbarCustomSlotId }, h("slot", { name: this.topTaskbarCustomSlotId }))), h("ez-grid", { ref: ref => this._grid = ref, class: (this.presentationMode === PresentationMode.SECONDARY ? "snk-grid-container__without-shadow " : "") + "snk-grid__table", "data-element-id": "embedded", dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: (evt) => { this.gridConfigChangeHandler(evt); }, onEzDoubleClick: (evt) => this.gridDoubleClick.emit(evt.detail), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, columnfilterDataSource: this.columnFilterDataSource, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, recordsValidator: this.recordsValidator, canEdit: this.canEdit }, h("snk-taskbar", { dataUnit: this._dataUnit, configName: this.configName, messagesBuilder: this.messagesBuilder, "data-element-id": "grid_left", buttons: this._headerTaskbarProcessor.buttons, presentationMode: this.presentationMode, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.getActionsList(), primaryButton: this.getPrimaryButton(), resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: this.gridHeaderCustomSlotId }, h("slot", { name: this.gridHeaderCustomSlotId }))), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" })), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._popUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this._gridConfig, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), application: this._application, selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resourceID }))));
403
+ h(Fragment, null, h("snk-filter-bar", { ref: (ref) => this._snkFilterBar = ref, dataUnit: this._dataUnit, "data-element-id": "gridFilter", class: "snk-grid__filter-bar ez-align--top", configName: this.configName, messagesBuilder: this.messagesBuilder, resourceID: this.resourceID, onConfigUpdated: evt => this.handleFilterConfigUpdated(evt.detail), disablePersonalizedFilter: this.disablePersonalizedFilter }), h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" })), h("snk-taskbar", { class: "ez-padding-left--medium", "data-element-id": "grid_top", key: "topTaskbar", configName: this.configName, dataUnit: this._dataUnit, messagesBuilder: this.messagesBuilder, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: this.getPrimaryButton(), resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: this.topTaskbarCustomSlotId, overflowStrategy: 'none' }, h("slot", { name: this.topTaskbarCustomSlotId }))), h("ez-grid", { ref: ref => this._grid = ref, class: (this.presentationMode === PresentationMode.SECONDARY ? "snk-grid-container__without-shadow " : "") + "snk-grid__table", "data-element-id": "embedded", dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: (evt) => { this.gridConfigChangeHandler(evt); }, onEzDoubleClick: (evt) => this.gridDoubleClick.emit(evt.detail), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, columnfilterDataSource: this.columnFilterDataSource, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, recordsValidator: this.recordsValidator, canEdit: this.canEdit }, h("snk-taskbar", { id: 'teste', dataUnit: this._dataUnit, configName: this.configName, messagesBuilder: this.messagesBuilder, "data-element-id": "grid_left", buttons: this._headerTaskbarProcessor.buttons, presentationMode: this.presentationMode, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.getActionsList(), primaryButton: this.getPrimaryButton(), resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: this.gridHeaderCustomSlotId }, h("slot", { name: this.gridHeaderCustomSlotId }))), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" })), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._popUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this._gridConfig, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), application: this._application, selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resourceID }))));
403
404
  }
404
405
  static get is() { return "snk-grid"; }
405
406
  static get encapsulation() { return "scoped"; }
@@ -742,6 +743,23 @@ export class SnkGrid {
742
743
  "attribute": "top-taskbar-custom-slot-id",
743
744
  "reflect": false,
744
745
  "defaultValue": "'GRID_TASKBAR_CUSTOM_ELEMENTS'"
746
+ },
747
+ "disablePersonalizedFilter": {
748
+ "type": "boolean",
749
+ "mutable": false,
750
+ "complexType": {
751
+ "original": "boolean",
752
+ "resolved": "boolean",
753
+ "references": {}
754
+ },
755
+ "required": false,
756
+ "optional": false,
757
+ "docs": {
758
+ "tags": [],
759
+ "text": "Desabilita a apresenta\u00E7\u00E3o da op\u00E7\u00E3o de filtros personalizados na filter bar (chip de filtros) \ne no modal lateral de filtros (container de filtros personalizados)."
760
+ },
761
+ "attribute": "disable-personalized-filter",
762
+ "reflect": false
745
763
  }
746
764
  };
747
765
  }