@sankhyalabs/sankhyablocks 2.1.2 → 2.1.4

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 (129) hide show
  1. package/dist/cjs/AuthorizationConfig-79ffae4b.js +7 -0
  2. package/dist/cjs/{form-config-fetcher-2de7c16a.js → ConfigStorage-c112de1d.js} +101 -1
  3. package/dist/cjs/{SnkMessageBuilder-89482d28.js → SnkMessageBuilder-61f00e7f.js} +33 -5
  4. package/dist/cjs/{constants-9056ca9e.js → constants-a47a5190.js} +15 -0
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  7. package/dist/cjs/snk-application.cjs.entry.js +32 -65
  8. package/dist/cjs/snk-config-options.cjs.entry.js +1 -1
  9. package/dist/cjs/{snk-field-config_2.cjs.entry.js → snk-configurator_3.cjs.entry.js} +134 -13
  10. package/dist/cjs/snk-crud.cjs.entry.js +23 -6
  11. package/dist/cjs/snk-data-unit.cjs.entry.js +1 -1
  12. package/dist/cjs/{snk-configurator_6.cjs.entry.js → snk-filter-bar_7.cjs.entry.js} +528 -198
  13. package/dist/cjs/snk-form-config.cjs.entry.js +30 -24
  14. package/dist/cjs/snk-form.cjs.entry.js +30 -17
  15. package/dist/cjs/snk-tab-config.cjs.entry.js +1 -1
  16. package/dist/cjs/{taskbar-elements-90350a55.js → taskbar-elements-a0b857c0.js} +5 -9
  17. package/dist/collection/collection-manifest.json +3 -2
  18. package/dist/collection/components/snk-application/snk-application.js +4 -3
  19. package/dist/collection/components/snk-configurator/AuthorizationConfig.js +5 -0
  20. package/dist/collection/components/snk-configurator/snk-configurator.css +124 -0
  21. package/dist/collection/components/snk-configurator/snk-configurator.js +126 -181
  22. package/dist/collection/components/snk-crud/snk-crud.js +23 -5
  23. package/dist/collection/components/snk-form/snk-form.js +37 -54
  24. package/dist/collection/components/snk-form/subcomponents/snk-form-config/snk-form-config.js +47 -28
  25. package/dist/collection/components/snk-grid/snk-grid.js +69 -20
  26. package/dist/collection/components/snk-grid/subcomponents/snk-grid-config/snk-grid-config.css +166 -0
  27. package/dist/collection/components/snk-grid/subcomponents/snk-grid-config/snk-grid-config.js +605 -0
  28. package/dist/collection/components/snk-grid/subcomponents/snk-select-box/snk-select-box.css +9 -0
  29. package/dist/collection/components/snk-grid/subcomponents/snk-select-box/snk-select-box.js +70 -0
  30. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +5 -9
  31. package/dist/collection/components/snk-taskbar/snk-taskbar.js +39 -11
  32. package/dist/collection/lib/configs/ConfigStorage.js +15 -15
  33. package/dist/collection/lib/http/data-fetcher/fetchers/dataunit-fetcher.js +1 -0
  34. package/dist/collection/lib/message/SnkMessageBuilder.js +5 -3
  35. package/dist/collection/lib/message/resources/snk-configurator.msg.js +0 -3
  36. package/dist/collection/lib/message/resources/snk-form.msg.js +3 -0
  37. package/dist/collection/lib/message/resources/snk-grid.msg.js +26 -0
  38. package/dist/collection/lib/utils/constants.js +14 -0
  39. package/dist/components/AuthorizationConfig.js +7 -0
  40. package/dist/components/{form-config-fetcher.js → ConfigStorage.js} +100 -2
  41. package/dist/components/SnkMessageBuilder.js +33 -5
  42. package/dist/components/constants.js +15 -1
  43. package/dist/components/index.d.ts +2 -1
  44. package/dist/components/index.js +2 -1
  45. package/dist/components/snk-application2.js +4 -37
  46. package/dist/components/snk-configurator2.js +63 -165
  47. package/dist/components/snk-crud.js +53 -29
  48. package/dist/components/snk-form-config2.js +25 -19
  49. package/dist/components/snk-form2.js +33 -32
  50. package/dist/components/{snk-config-modal.d.ts → snk-grid-config.d.ts} +4 -4
  51. package/dist/components/snk-grid-config.js +6 -0
  52. package/dist/components/snk-grid-config2.js +497 -0
  53. package/dist/components/snk-grid2.js +65 -27
  54. package/dist/components/snk-select-box.d.ts +11 -0
  55. package/dist/components/snk-select-box.js +6 -0
  56. package/dist/components/snk-select-box2.js +38 -0
  57. package/dist/components/snk-taskbar2.js +45 -33
  58. package/dist/esm/AuthorizationConfig-dcbd207a.js +7 -0
  59. package/dist/esm/{form-config-fetcher-96c6c2dc.js → ConfigStorage-99025655.js} +100 -2
  60. package/dist/esm/{SnkMessageBuilder-a27fc561.js → SnkMessageBuilder-f5ef87df.js} +33 -5
  61. package/dist/esm/{constants-c6039d3d.js → constants-babe1a08.js} +15 -1
  62. package/dist/esm/loader.js +1 -1
  63. package/dist/esm/sankhyablocks.js +1 -1
  64. package/dist/esm/snk-application.entry.js +5 -38
  65. package/dist/esm/snk-config-options.entry.js +1 -1
  66. package/dist/esm/{snk-field-config_2.entry.js → snk-configurator_3.entry.js} +134 -14
  67. package/dist/esm/snk-crud.entry.js +23 -6
  68. package/dist/esm/snk-data-unit.entry.js +1 -1
  69. package/dist/esm/{snk-configurator_6.entry.js → snk-filter-bar_7.entry.js} +529 -200
  70. package/dist/esm/snk-form-config.entry.js +25 -19
  71. package/dist/esm/snk-form.entry.js +30 -17
  72. package/dist/esm/snk-tab-config.entry.js +1 -1
  73. package/dist/esm/{taskbar-elements-0f41cd77.js → taskbar-elements-4d6584cd.js} +5 -9
  74. package/dist/sankhyablocks/p-105cd4a8.entry.js +1 -0
  75. package/dist/sankhyablocks/p-4131d41e.entry.js +1 -0
  76. package/dist/sankhyablocks/{p-8706fe65.entry.js → p-43aff8f5.entry.js} +1 -1
  77. package/dist/sankhyablocks/p-53f33e9d.entry.js +1 -0
  78. package/dist/sankhyablocks/p-639b8f6e.entry.js +76 -0
  79. package/dist/sankhyablocks/{p-a5b26df2.js → p-6673c77c.js} +1 -1
  80. package/dist/sankhyablocks/p-6ba8f415.js +26 -0
  81. package/dist/sankhyablocks/{p-2517529d.js → p-877bd6cf.js} +1 -1
  82. package/dist/sankhyablocks/p-87896198.entry.js +1 -0
  83. package/dist/sankhyablocks/p-bd6d4a83.js +1 -0
  84. package/dist/sankhyablocks/p-cae38f51.entry.js +1 -0
  85. package/dist/sankhyablocks/{p-f37cdeb5.entry.js → p-cd03ea9e.entry.js} +1 -1
  86. package/dist/sankhyablocks/p-dc36cfbf.js +1 -0
  87. package/dist/sankhyablocks/{p-92782503.entry.js → p-eb94df0b.entry.js} +1 -1
  88. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  89. package/dist/types/components/snk-application/snk-application.d.ts +0 -1
  90. package/dist/types/components/snk-configurator/AuthorizationConfig.d.ts +4 -0
  91. package/dist/types/components/snk-configurator/snk-configurator.d.ts +21 -24
  92. package/dist/types/components/snk-crud/snk-crud.d.ts +6 -0
  93. package/dist/types/components/snk-form/snk-form.d.ts +6 -9
  94. package/dist/types/components/snk-form/subcomponents/snk-form-config/snk-form-config.d.ts +7 -3
  95. package/dist/types/components/snk-grid/snk-grid.d.ts +13 -3
  96. package/dist/types/components/snk-grid/subcomponents/snk-grid-config/snk-grid-config.d.ts +66 -0
  97. package/dist/types/components/snk-grid/subcomponents/snk-select-box/snk-select-box.d.ts +7 -0
  98. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +3 -4
  99. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +3 -1
  100. package/dist/types/components.d.ts +104 -74
  101. package/dist/types/lib/configs/ConfigStorage.d.ts +3 -3
  102. package/dist/types/lib/message/resources/snk-configurator.msg.d.ts +0 -1
  103. package/dist/types/lib/message/resources/snk-grid.msg.d.ts +2 -0
  104. package/dist/types/lib/utils/constants.d.ts +14 -0
  105. package/package.json +1 -1
  106. package/react/components.d.ts +2 -1
  107. package/react/components.js +2 -1
  108. package/react/components.js.map +1 -1
  109. package/dist/cjs/configurableElementsStorage-93459c72.js +0 -20
  110. package/dist/cjs/snk-config-modal.cjs.entry.js +0 -62
  111. package/dist/collection/components/snk-configurator/subcomponents/configModalProvider/configurableElementsStorage.js +0 -16
  112. package/dist/collection/components/snk-configurator/subcomponents/snk-config-modal/snk-config-modal.css +0 -122
  113. package/dist/collection/components/snk-configurator/subcomponents/snk-config-modal/snk-config-modal.js +0 -137
  114. package/dist/components/snk-config-modal.js +0 -6
  115. package/dist/components/snk-config-modal2.js +0 -91
  116. package/dist/esm/configurableElementsStorage-cdc144b5.js +0 -18
  117. package/dist/esm/snk-config-modal.entry.js +0 -58
  118. package/dist/sankhyablocks/p-361299e8.js +0 -26
  119. package/dist/sankhyablocks/p-599846fb.entry.js +0 -75
  120. package/dist/sankhyablocks/p-59d8c47a.js +0 -1
  121. package/dist/sankhyablocks/p-60eef7cd.entry.js +0 -1
  122. package/dist/sankhyablocks/p-626cf022.entry.js +0 -1
  123. package/dist/sankhyablocks/p-6511d132.entry.js +0 -1
  124. package/dist/sankhyablocks/p-cb8d71ba.entry.js +0 -1
  125. package/dist/sankhyablocks/p-ce7c38a1.entry.js +0 -1
  126. package/dist/sankhyablocks/p-d50651a3.js +0 -1
  127. package/dist/sankhyablocks/p-e8591491.entry.js +0 -1
  128. package/dist/types/components/snk-configurator/subcomponents/configModalProvider/configurableElementsStorage.d.ts +0 -8
  129. package/dist/types/components/snk-configurator/subcomponents/snk-config-modal/snk-config-modal.d.ts +0 -38
@@ -4,9 +4,94 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-20e8b68a.js');
6
6
  const core = require('@sankhyalabs/core');
7
- const constants = require('./constants-9056ca9e.js');
7
+ const constants = require('./constants-a47a5190.js');
8
+ const AuthorizationConfig = require('./AuthorizationConfig-79ffae4b.js');
8
9
  const taskbarProcessor = require('./taskbar-processor-6bd0d35c.js');
9
- const configurableElementsStorage = require('./configurableElementsStorage-93459c72.js');
10
+ const ConfigStorage = require('./ConfigStorage-c112de1d.js');
11
+ require('./_commonjsHelpers-537d719a.js');
12
+
13
+ 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--border-radius:var(--border--radius-small, 6px);--snk-configurator__scrollbar--width:var(--space--medium, 12px);--snk-configurator__scrollbar--background-color-primary:var(--scrollbar--primary, #2B3A54);--snk-configurator__scrollbar--background-color-secondary:var(--scrollbar--secondary, #E5EAF0)}.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--background-color-primary) var(--snk-configurator__scrollbar--background-color-secondary)}.snk-configurator__main.sc-snk-configurator::-webkit-scrollbar-track{background-color:var(--snk-configurator__scrollbar--background-color-secondary)}.snk-configurator__main.sc-snk-configurator::-webkit-scrollbar-thumb{background-color:var(--snk-configurator__scrollbar--background-color-primary);border-radius:var(--snk-configurator__scrollbar--border-radius)}.snk-configurator__main.sc-snk-configurator::-webkit-scrollbar{background-color:var(--snk-configurator__scrollbar--background-color-secondary);width:var(--snk-configurator__scrollbar--width);max-width:var(--snk-configurator__scrollbar--width);min-width:var(--snk-configurator__scrollbar--width)}";
14
+
15
+ const GRID_MODE = constants.VIEW_MODE.grid;
16
+ const FORM_MODE = constants.VIEW_MODE.form;
17
+ const SnkConfigurator = class {
18
+ constructor(hostRef) {
19
+ index.registerInstance(this, hostRef);
20
+ this.configSelected = index.createEvent(this, "configSelected", 7);
21
+ this.openConfig = index.createEvent(this, "openConfig", 7);
22
+ this._opened = false;
23
+ /**
24
+ * Define qual modo de visualização está ativo.
25
+ */
26
+ this.viewMode = GRID_MODE.name;
27
+ }
28
+ async open() {
29
+ this._opened = true;
30
+ this.configSelected.emit(this.getViewModeValue());
31
+ }
32
+ async close() {
33
+ this.closeConfig();
34
+ }
35
+ closeConfig() {
36
+ this._opened = false;
37
+ }
38
+ onViewModeChanged(evt) {
39
+ const value = evt === null || evt === void 0 ? void 0 : evt.detail;
40
+ this.viewMode = value;
41
+ this.configSelected.emit(value);
42
+ }
43
+ onClickOpenConfig() {
44
+ this.openConfig.emit(this.viewMode);
45
+ }
46
+ isAllowed(configName) {
47
+ if (AuthorizationConfig.AuthorizationConfig[configName]) {
48
+ return this._permissions ? this._permissions.isSup || this._permissions[configName] : false;
49
+ }
50
+ return true;
51
+ }
52
+ enableModeConfig() {
53
+ if (!this.isAllowed(AuthorizationConfig.AuthorizationConfig.CONFIG_GRID) || !this.isAllowed(AuthorizationConfig.AuthorizationConfig.CONFIG)) {
54
+ return false;
55
+ }
56
+ return true;
57
+ }
58
+ getViewModeValue() {
59
+ if (this._permissions != undefined) {
60
+ if (!this.isAllowed(AuthorizationConfig.AuthorizationConfig.CONFIG_GRID)) {
61
+ this.viewMode = FORM_MODE.name;
62
+ }
63
+ else if (!this.isAllowed(AuthorizationConfig.AuthorizationConfig.CONFIG)) {
64
+ this.viewMode = GRID_MODE.name;
65
+ }
66
+ }
67
+ return this.viewMode;
68
+ }
69
+ /**
70
+ * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
71
+ * através de um pequeno modulo na estrutura da aplicação:
72
+ * - Criar um arquivo no seguinte caminho: /messages/appmessages.msg.js.
73
+ * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-configurator.msg.ts"
74
+ */
75
+ getMessage(key) {
76
+ var _a, _b;
77
+ return (_b = (_a = this._application) === null || _a === void 0 ? void 0 : _a.messagesBuilder) === null || _b === void 0 ? void 0 : _b.getMessage(key, {});
78
+ }
79
+ componentWillLoad() {
80
+ this._application = core.ApplicationContext.getContextValue("__SNK__APPLICATION__");
81
+ if (this._application) {
82
+ this._application.getAllAccess().then(access => this._permissions = access);
83
+ }
84
+ else {
85
+ this._permissions = {};
86
+ }
87
+ }
88
+ render() {
89
+ return (index.h("ez-modal", { opened: this._opened, "close-esc": false, "close-outside-click": false, "modal-size": "small" }, index.h("div", { class: "snk-configurator" }, index.h("div", { class: "snk-configurator__header" }, index.h("label", { class: "snk-configurator__title" }, this.getMessage("snkConfigurator.titleConfigurations")), index.h("div", { class: "snk-configurator__button-close" }, index.h("ez-button", { mode: 'icon', iconName: "close", size: 'medium', onClick: () => this.closeConfig() }))), index.h("div", { class: "snk-configurator__main" }, index.h("ez-radio-button", { class: "ez-margin-top--medium", label: this.getMessage("snkConfigurator.subTitleModeConfig"), value: this.getViewModeValue(), onEzChange: (evt) => this.onViewModeChanged(evt), enabled: this.enableModeConfig() }, index.h("ez-radio-button-option", { label: this.getMessage("snkConfigurator.labelGrid"), value: GRID_MODE.name }), index.h("ez-radio-button-option", { label: this.getMessage("snkConfigurator.labelForm"), value: FORM_MODE.name })), index.h("ez-button", { mode: "slim", label: this.viewMode === GRID_MODE.name
90
+ ? this.getMessage("snkConfigurator.labelConfigGrid")
91
+ : this.getMessage("snkConfigurator.labelConfigForm"), class: "snk-configurator__button-config ez-button--primary", onClick: () => this.onClickOpenConfig() }), index.h("hr", { class: "ez-divider-horizontal ez-margin-vertical--medium" })))));
92
+ }
93
+ };
94
+ SnkConfigurator.style = snkConfiguratorCss;
10
95
 
11
96
  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--height--slim: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__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__transition--visibility:var(--transition, 0.2s linear);--snk-field-config__transition--opacity:var(--transition, 0.15s linear);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(--space--medium, 6px);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(--more-visible, 2)}.field-config__required-label.sc-snk-field-config{padding-left:var(--space--extra-small, 3px);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(--space--small, 6px)}.field-config__config-outer-arrow.sc-snk-field-config{background-color:var(--color--secondary-200);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}.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}";
12
97
 
@@ -75,33 +160,67 @@ const SnkGrid = class {
75
160
  "snkGridHeaderTaskbar.unselected": ["REFRESH"],
76
161
  "snkGridHeaderTaskbar.selected": ["UPDATE", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "REFRESH"]
77
162
  });
163
+ this._popUpGridConfig = false;
78
164
  }
79
165
  /**
80
- * Método responsável em abrir ou fechar o modal de configurações da grade.
166
+ * Método responsável em abrir o modal de configurações da grade.
81
167
  */
82
- async setShowGridConfig(value) {
168
+ async showConfig() {
83
169
  if (this._grid == undefined) {
84
170
  return;
85
171
  }
86
- if (value === true) {
87
- this._grid.openGridConfig();
88
- }
89
- else {
90
- this._grid.closeGridConfig();
172
+ this.openGridConfig();
173
+ }
174
+ /**
175
+ * Método responsável em fechar o modal de configurações da grade.
176
+ */
177
+ async hideConfig() {
178
+ if (this._grid == undefined) {
179
+ return;
91
180
  }
181
+ this.closeGridConfig();
92
182
  }
93
183
  /**
94
184
  * Método responsável por setar as configurações da grade.
95
185
  */
96
186
  async setConfig(config) {
187
+ this.setGridConfig(config);
188
+ }
189
+ openGridConfig() {
190
+ this._grid.getColumnsState()
191
+ .then((gridColumns) => {
192
+ this._snkGridConfig.columns = gridColumns.filter(c => c.name);
193
+ this._snkGridConfig.selectedIndex = 0;
194
+ this._popUpGridConfig = true;
195
+ });
196
+ }
197
+ closeGridConfig() {
198
+ this._popUpGridConfig = false;
199
+ }
200
+ setGridConfig(config) {
97
201
  this._gridConfig = config;
98
202
  }
203
+ loadConfig() {
204
+ ConfigStorage.ConfigStorage.get()
205
+ .loadGridConfig(this.configName)
206
+ .then((config) => {
207
+ this.setGridConfig(config);
208
+ })
209
+ .catch((error) => {
210
+ console.warn(error);
211
+ });
212
+ }
213
+ saveConfig(config) {
214
+ this._snkGridConfig.saveConfig(config)
215
+ .then(() => {
216
+ this.changeConfig(config);
217
+ });
218
+ }
99
219
  changeConfig(config) {
220
+ this._grid.setColumnsState(config.columns);
221
+ this.closeGridConfig();
100
222
  this.configChanged.emit(config);
101
223
  }
102
- componentDidRender() {
103
- configurableElementsStorage.ConfigurableElementsStorage.setGrid(this.configName, this._element);
104
- }
105
224
  componentWillLoad() {
106
225
  let parent = this._element.parentElement;
107
226
  while (parent) {
@@ -120,6 +239,7 @@ const SnkGrid = class {
120
239
  }
121
240
  parent = parent.parentElement;
122
241
  }
242
+ this.loadConfig();
123
243
  }
124
244
  componentWillRender() {
125
245
  const headerTaskbarId = this._dataState && this._dataState.selectedRecords.length > 0 ? "snkGridHeaderTaskbar.selected" : "snkGridHeaderTaskbar.unselected";
@@ -130,11 +250,12 @@ const SnkGrid = class {
130
250
  if (!this._dataUnit) {
131
251
  return undefined;
132
252
  }
133
- 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-padding-bottom--medium ez-margin-bottom--medium" }, index.h("snk-filter-bar", { dataUnit: this._dataUnit, class: "snk-grid__filter-bar ez-align--top", configName: this.configName }), 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", key: "topTaskbar", configName: this.configName, dataUnit: this._dataUnit, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: "INSERT" })), index.h("ez-grid", { ref: ref => this._grid = ref, dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: (evt) => { this.changeConfig(evt.detail); }, onEzDoubleClick: () => this.gridDoubleClick.emit(), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection }, index.h("snk-taskbar", { dataUnit: this._dataUnit, buttons: this._headerTaskbarProcessor.buttons, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.actionsList })), index.h("div", { class: "ez-col ez-col--sd-12" }, index.h("slot", { name: "SnkGridFooter" }))));
253
+ 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-padding-bottom--medium ez-margin-bottom--medium" }, index.h("snk-filter-bar", { dataUnit: this._dataUnit, class: "snk-grid__filter-bar ez-align--top", configName: this.configName }), 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", key: "topTaskbar", configName: this.configName, dataUnit: this._dataUnit, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: "INSERT" })), index.h("ez-grid", { ref: ref => this._grid = ref, dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: (evt) => { this.saveConfig(evt.detail); }, onEzDoubleClick: () => this.gridDoubleClick.emit(), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection }, index.h("snk-taskbar", { dataUnit: this._dataUnit, buttons: this._headerTaskbarProcessor.buttons, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.actionsList })), 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, selectedIndex: 0, onConfigChange: (evt) => this.changeConfig(evt.detail), onConfigCancel: () => this.closeGridConfig() }))));
134
254
  }
135
255
  get _element() { return index.getElement(this); }
136
256
  };
137
257
  SnkGrid.style = snkGridCss;
138
258
 
259
+ exports.snk_configurator = SnkConfigurator;
139
260
  exports.snk_field_config = SnkFieldConfig;
140
261
  exports.snk_grid = SnkGrid;
@@ -4,8 +4,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-20e8b68a.js');
6
6
  const core = require('@sankhyalabs/core');
7
- const constants = require('./constants-9056ca9e.js');
8
- const taskbarElements = require('./taskbar-elements-90350a55.js');
7
+ const constants = require('./constants-a47a5190.js');
8
+ const taskbarElements = require('./taskbar-elements-a0b857c0.js');
9
9
 
10
10
  const snkCrudCss = ".sc-snk-crud-h{display:flex;flex-direction:column;height:100%;width:100%}";
11
11
 
@@ -15,6 +15,7 @@ const SnkCrud = class {
15
15
  constructor(hostRef) {
16
16
  index.registerInstance(this, hostRef);
17
17
  this.actionClick = index.createEvent(this, "actionClick", 7);
18
+ this._viewMode = GRID_MODE.name;
18
19
  /**
19
20
  * Determina se pode haver mais de uma linha selecionada na grade
20
21
  */
@@ -28,22 +29,38 @@ const SnkCrud = class {
28
29
  }
29
30
  async gridToForm(keepFormMode = false) {
30
31
  this._backToGrid = !keepFormMode && await this._viewStack.getSelectedIndex() === GRID_MODE.index;
31
- this._viewStack.show(FORM_MODE.index);
32
+ this.setViewMode(FORM_MODE);
32
33
  }
33
34
  async executeAction(act) {
34
35
  if (act === taskbarElements.TaskbarElement.GRID_MODE) {
35
- this._viewStack.show(GRID_MODE.index);
36
+ this.setViewMode(GRID_MODE);
36
37
  }
37
38
  else if (act === taskbarElements.TaskbarElement.FORM_MODE || act === taskbarElements.TaskbarElement.UPDATE) {
38
39
  this.gridToForm(act !== taskbarElements.TaskbarElement.UPDATE);
39
40
  }
41
+ else if (act === taskbarElements.TaskbarElement.CONFIGURATOR) {
42
+ this._snkConfigurator.open();
43
+ }
44
+ }
45
+ setViewMode(viewMode) {
46
+ this._viewStack.show(viewMode.index);
47
+ this._viewMode = viewMode.name;
48
+ }
49
+ openConfig(viewMode) {
50
+ this._snkConfigurator.close();
51
+ if (viewMode === GRID_MODE.name) {
52
+ this._snkGrid.showConfig();
53
+ }
54
+ else if (viewMode === FORM_MODE.name) {
55
+ this._snkForm.showConfig();
56
+ }
40
57
  }
41
58
  insertionModeHandler() {
42
59
  this.gridToForm();
43
60
  }
44
61
  cancelHandler() {
45
62
  if (this._backToGrid) {
46
- this._viewStack.show(GRID_MODE.index);
63
+ this.setViewMode(GRID_MODE);
47
64
  }
48
65
  }
49
66
  componentWillLoad() {
@@ -73,7 +90,7 @@ const SnkCrud = class {
73
90
  }
74
91
  }
75
92
  render() {
76
- return (index.h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-configurator-parent": "snkConfigurator" }, index.h("stack-item", null, index.h("snk-grid", { configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection }, index.h("slot", { name: "SnkGridHeader" }), index.h("slot", { name: "SnkGridFooter" }), index.h("slot", { name: "SnkGridTaskBar" }))), index.h("stack-item", null, index.h("snk-form", { configName: this.configName, actionsList: this.actionsList, onExit: () => this._viewStack.show(GRID_MODE.index), recordsValidator: this.recordsValidator, taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail) }, index.h("slot", { name: "SnkFormTaskBar" })))));
93
+ return (index.h("ez-view-stack", { ref: (ref) => this._viewStack = ref }, index.h("stack-item", null, index.h("snk-grid", { ref: (ref) => this._snkGrid = ref, configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection }, index.h("slot", { name: "SnkGridHeader" }), index.h("slot", { name: "SnkGridFooter" }), index.h("slot", { name: "SnkGridTaskBar" }))), index.h("stack-item", null, index.h("snk-form", { ref: (ref) => this._snkForm = ref, configName: this.configName, actionsList: this.actionsList, onExit: () => this.setViewMode(GRID_MODE), recordsValidator: this.recordsValidator, taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail) }, index.h("slot", { name: "SnkFormTaskBar" }))), index.h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._viewMode, onConfigSelected: (evt) => this.executeAction(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail) })));
77
94
  }
78
95
  get _element() { return index.getElement(this); }
79
96
  };
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-20e8b68a.js');
6
6
  const core = require('@sankhyalabs/core');
7
7
  const utils = require('@sankhyalabs/ezui/dist/collection/utils');
8
- const SnkMessageBuilder = require('./SnkMessageBuilder-89482d28.js');
8
+ const SnkMessageBuilder = require('./SnkMessageBuilder-61f00e7f.js');
9
9
 
10
10
  const snkDataUnitCss = ".sc-snk-data-unit-h{display:flex;flex-direction:column;height:100%}";
11
11