@sankhyalabs/sankhyablocks 8.11.0 → 8.12.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/dist/cjs/{ConfigStorage-49d4681c.js → ConfigStorage-0d507a8f.js} +2 -2
  2. package/dist/cjs/{DataFetcher-1b1e9ff0.js → DataFetcher-ba94ed5b.js} +22 -18
  3. package/dist/cjs/{SnkFormConfigManager-d4184bfa.js → SnkFormConfigManager-467907f6.js} +23 -6
  4. package/dist/cjs/{SnkMessageBuilder-fbc33123.js → SnkMessageBuilder-7293d0ad.js} +9 -1
  5. package/dist/cjs/{auth-fetcher-eee6ec18.js → auth-fetcher-c8467c07.js} +1 -1
  6. package/dist/cjs/{dataunit-fetcher-38233d72.js → dataunit-fetcher-529a3866.js} +1 -1
  7. package/dist/cjs/{taskbar-processor-bce3f499.js → field-search-ca27041a.js} +7 -0
  8. package/dist/cjs/{form-config-fetcher-00372ac0.js → form-config-fetcher-df043d3d.js} +1 -1
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/cjs/{pesquisa-fetcher-8bc6d0a5.js → pesquisa-fetcher-ef050a47.js} +1 -1
  11. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  12. package/dist/cjs/snk-actions-button.cjs.entry.js +4 -4
  13. package/dist/cjs/snk-application.cjs.entry.js +8 -8
  14. package/dist/cjs/snk-attach.cjs.entry.js +4 -4
  15. package/dist/cjs/snk-crud.cjs.entry.js +29 -5
  16. package/dist/cjs/snk-data-exporter.cjs.entry.js +4 -4
  17. package/dist/cjs/{snk-data-unit-04d76538.js → snk-data-unit-1bc69073.js} +1 -1
  18. package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
  19. package/dist/cjs/snk-detail-view.cjs.entry.js +9 -9
  20. package/dist/cjs/snk-filter-bar.cjs.entry.js +4 -4
  21. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +4 -4
  22. package/dist/cjs/snk-form-config.cjs.entry.js +3 -3
  23. package/dist/cjs/snk-form-view.cjs.entry.js +14 -0
  24. package/dist/cjs/snk-form.cjs.entry.js +5 -5
  25. package/dist/cjs/snk-grid-config.cjs.entry.js +4 -4
  26. package/dist/cjs/snk-grid.cjs.entry.js +55 -9
  27. package/dist/cjs/{snk-guides-viewer-0d5aad6b.js → snk-guides-viewer-f94f2113.js} +82 -17
  28. package/dist/cjs/snk-guides-viewer.cjs.entry.js +9 -9
  29. package/dist/cjs/snk-personalized-filter.cjs.entry.js +4 -4
  30. package/dist/cjs/snk-simple-crud.cjs.entry.js +137 -10
  31. package/dist/collection/components/snk-attach/snk-attach.js +1 -1
  32. package/dist/collection/components/snk-crud/snk-crud.js +25 -1
  33. package/dist/collection/components/snk-crud/subcomponents/snk-form-view.js +45 -0
  34. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +98 -11
  35. package/dist/collection/components/snk-form/SnkFormConfigManager.js +22 -5
  36. package/dist/collection/components/snk-grid/snk-grid.js +69 -4
  37. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +136 -6
  38. package/dist/collection/components/snk-taskbar/snk-taskbar.js +1 -0
  39. package/dist/collection/components/snk-taskbar/subcomponents/field-search.js +4 -0
  40. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +9 -5
  41. package/dist/collection/lib/message/SnkMessageBuilder.js +2 -0
  42. package/dist/collection/lib/message/resources/snk-crud.msg.js +1 -0
  43. package/dist/collection/lib/message/resources/snk-grid.msg.js +3 -1
  44. package/dist/collection/lib/message/resources/snk-simple-crud.msg.js +4 -0
  45. package/dist/components/DataFetcher.js +22 -18
  46. package/dist/components/SnkFormConfigManager.js +22 -5
  47. package/dist/components/SnkMessageBuilder.js +9 -1
  48. package/dist/components/{SnkMultiSelectionListDataSource.js → field-search.js} +6 -1
  49. package/dist/components/snk-attach2.js +1 -1
  50. package/dist/components/snk-crud.js +25 -1
  51. package/dist/components/snk-detail-view2.js +80 -12
  52. package/dist/components/snk-form-view2.js +15 -0
  53. package/dist/components/snk-grid2.js +52 -5
  54. package/dist/components/snk-simple-crud2.js +135 -6
  55. package/dist/esm/{ConfigStorage-9a086412.js → ConfigStorage-379a9cba.js} +2 -2
  56. package/dist/esm/{DataFetcher-7814568f.js → DataFetcher-aa159c5a.js} +22 -18
  57. package/dist/esm/{SnkFormConfigManager-709e68a2.js → SnkFormConfigManager-587e9030.js} +24 -7
  58. package/dist/esm/{SnkMessageBuilder-f60c5443.js → SnkMessageBuilder-ca843d1b.js} +9 -1
  59. package/dist/esm/{auth-fetcher-06354710.js → auth-fetcher-c05dc474.js} +1 -1
  60. package/dist/esm/{dataunit-fetcher-aa70ea72.js → dataunit-fetcher-fd329839.js} +1 -1
  61. package/dist/esm/{taskbar-processor-94402e6e.js → field-search-c6938ee4.js} +7 -1
  62. package/dist/esm/{form-config-fetcher-24f43afd.js → form-config-fetcher-36219cd3.js} +1 -1
  63. package/dist/esm/loader.js +1 -1
  64. package/dist/esm/{pesquisa-fetcher-f7aaf727.js → pesquisa-fetcher-dd3ca0a5.js} +1 -1
  65. package/dist/esm/sankhyablocks.js +1 -1
  66. package/dist/esm/snk-actions-button.entry.js +4 -4
  67. package/dist/esm/snk-application.entry.js +8 -8
  68. package/dist/esm/snk-attach.entry.js +4 -4
  69. package/dist/esm/snk-crud.entry.js +30 -6
  70. package/dist/esm/snk-data-exporter.entry.js +4 -4
  71. package/dist/esm/{snk-data-unit-ad5cf70c.js → snk-data-unit-6208ebf0.js} +1 -1
  72. package/dist/esm/snk-data-unit.entry.js +2 -2
  73. package/dist/esm/snk-detail-view.entry.js +9 -9
  74. package/dist/esm/snk-filter-bar.entry.js +4 -4
  75. package/dist/esm/snk-filter-modal-item.entry.js +4 -4
  76. package/dist/esm/snk-form-config.entry.js +3 -3
  77. package/dist/esm/snk-form-view.entry.js +14 -0
  78. package/dist/esm/snk-form.entry.js +5 -5
  79. package/dist/esm/snk-grid-config.entry.js +4 -4
  80. package/dist/esm/snk-grid.entry.js +54 -8
  81. package/dist/esm/{snk-guides-viewer-9c50ebea.js → snk-guides-viewer-86171cf4.js} +81 -16
  82. package/dist/esm/snk-guides-viewer.entry.js +9 -9
  83. package/dist/esm/snk-personalized-filter.entry.js +4 -4
  84. package/dist/esm/snk-simple-crud.entry.js +137 -10
  85. package/dist/sankhyablocks/p-03dcc5ff.entry.js +1 -0
  86. package/dist/sankhyablocks/{p-e47d966c.js → p-0d7863ed.js} +1 -1
  87. package/dist/sankhyablocks/p-2028633c.js +1 -0
  88. package/dist/sankhyablocks/{p-117b0848.entry.js → p-257feef3.entry.js} +2 -2
  89. package/dist/sankhyablocks/{p-df841828.entry.js → p-2e963486.entry.js} +1 -1
  90. package/dist/sankhyablocks/{p-cd2a285d.js → p-32f0935f.js} +1 -1
  91. package/dist/sankhyablocks/{p-97277eae.entry.js → p-35fe6e61.entry.js} +1 -1
  92. package/dist/sankhyablocks/{p-ee49df44.js → p-3af0a81e.js} +1 -1
  93. package/dist/sankhyablocks/p-3ecd72a4.js +1 -0
  94. package/dist/sankhyablocks/{p-5cff2f60.js → p-4396d1a6.js} +1 -1
  95. package/dist/sankhyablocks/p-4775a293.entry.js +1 -0
  96. package/dist/sankhyablocks/{p-d05d3e37.entry.js → p-4b0ea83f.entry.js} +1 -1
  97. package/dist/sankhyablocks/p-50734e76.entry.js +1 -0
  98. package/dist/sankhyablocks/p-50e18dee.entry.js +1 -0
  99. package/dist/sankhyablocks/p-672380c5.js +1 -0
  100. package/dist/sankhyablocks/{p-57196255.entry.js → p-729f5f5b.entry.js} +1 -1
  101. package/dist/sankhyablocks/{p-88039a7f.js → p-9695f78b.js} +1 -1
  102. package/dist/sankhyablocks/{p-29ffb7d7.entry.js → p-aaa1438e.entry.js} +1 -1
  103. package/dist/sankhyablocks/{p-1b7105ae.entry.js → p-b542061a.entry.js} +1 -1
  104. package/dist/sankhyablocks/{p-2e1a8609.entry.js → p-c259545b.entry.js} +1 -1
  105. package/dist/sankhyablocks/{p-a3868fbc.entry.js → p-cb7419e0.entry.js} +1 -1
  106. package/dist/sankhyablocks/{p-84a53f61.entry.js → p-d1677df0.entry.js} +1 -1
  107. package/dist/sankhyablocks/p-d2666ae0.entry.js +1 -0
  108. package/dist/sankhyablocks/{p-e38f28ae.js → p-d9bb09b3.js} +2 -2
  109. package/dist/sankhyablocks/{p-809a09ac.entry.js → p-de56f563.entry.js} +1 -1
  110. package/dist/sankhyablocks/{p-3f0fe056.js → p-e6380c60.js} +1 -1
  111. package/dist/sankhyablocks/p-f5059aa8.entry.js +1 -0
  112. package/dist/sankhyablocks/p-ff6064e7.js +1 -0
  113. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  114. package/dist/types/components/snk-crud/snk-crud.d.ts +3 -0
  115. package/dist/types/components/snk-crud/subcomponents/snk-form-view.d.ts +10 -1
  116. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +25 -1
  117. package/dist/types/components/snk-form/SnkFormConfigManager.d.ts +6 -1
  118. package/dist/types/components/snk-grid/snk-grid.d.ts +7 -0
  119. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +23 -2
  120. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +2 -3
  121. package/dist/types/components/snk-taskbar/subcomponents/field-search.d.ts +2 -0
  122. package/dist/types/components.d.ts +20 -0
  123. package/dist/types/lib/message/resources/snk-simple-crud.msg.d.ts +2 -0
  124. package/package.json +1 -1
  125. package/dist/sankhyablocks/p-1626c58f.entry.js +0 -1
  126. package/dist/sankhyablocks/p-3fd145ac.js +0 -1
  127. package/dist/sankhyablocks/p-9be1dfd5.entry.js +0 -1
  128. package/dist/sankhyablocks/p-aa3b0d19.js +0 -1
  129. package/dist/sankhyablocks/p-c2beb95c.js +0 -1
  130. package/dist/sankhyablocks/p-c555075c.entry.js +0 -1
  131. package/dist/sankhyablocks/p-e1aec599.entry.js +0 -1
  132. package/dist/sankhyablocks/p-fab8339c.entry.js +0 -1
  133. package/dist/sankhyablocks/p-fad0a721.js +0 -1
  134. package/dist/sankhyablocks/p-ff90e0e6.entry.js +0 -1
@@ -8,6 +8,7 @@ const SnkFormView = class {
8
8
  constructor(hostRef) {
9
9
  registerInstance(this, hostRef);
10
10
  this.snkContentCardChanged = createEvent(this, "snkContentCardChanged", 7);
11
+ this.snkRequestClearFieldToFocus = createEvent(this, "snkRequestClearFieldToFocus", 7);
11
12
  this.formItemsReady = createEvent(this, "formItemsReady", 7);
12
13
  this.levelPath = undefined;
13
14
  this.label = undefined;
@@ -21,6 +22,7 @@ const SnkFormView = class {
21
22
  this.canExpand = true;
22
23
  this.canFix = true;
23
24
  this.recordsValidator = undefined;
25
+ this.fieldToFocus = undefined;
24
26
  }
25
27
  async showUp() {
26
28
  if (this._formView) {
@@ -85,6 +87,18 @@ const SnkFormView = class {
85
87
  this._dataBinder.onDisconnectedCallback();
86
88
  }
87
89
  }
90
+ componentDidRender() {
91
+ if (this.fieldToFocus == undefined) {
92
+ return;
93
+ }
94
+ if (!this.fields.some(item => item.name === this.fieldToFocus)) {
95
+ return;
96
+ }
97
+ requestAnimationFrame(() => {
98
+ this._dataBinder.setFocus(this.fieldToFocus);
99
+ this.snkRequestClearFieldToFocus.emit();
100
+ });
101
+ }
88
102
  render() {
89
103
  return (h(Host, { class: "ez-box__container" }, h("div", { class: "summary-header ez-flex ez-size-width--full" }, h("div", { class: "ez-flex ez-text ez-title--primary ez-text--bold ez-flex--justify-start ez-flex--align-items-center ez-col--sd-9" }, this.levelPath ? h("span", { class: "level-path" }, this.levelPath + " /") : undefined, this.label), h("div", { class: "ez-flex ez-flex--justify-end ez-col--sd-3" }, this.canFix &&
90
104
  h("ez-button", { class: "ez-padding-left--medium", mode: "icon", size: "small", iconName: this.fixed ? "un-pin" : "push-pin", "data-element-id": ElementIDUtils.getInternalIDInfo("toggleFixed_ezFormCard"), onClick: () => this.changeFix(), title: this.fixed ? "Desafixar" : "Fixar" }), this.canExpand &&
@@ -1,12 +1,12 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { ElementIDUtils } from '@sankhyalabs/core';
3
- import { S as SnkFormConfigManager } from './SnkFormConfigManager-709e68a2.js';
3
+ import { S as SnkFormConfigManager } from './SnkFormConfigManager-587e9030.js';
4
4
  import { R as ResourceIDUtils } from './ResourceIDUtils-a114189a.js';
5
- import './ConfigStorage-9a086412.js';
6
- import './form-config-fetcher-24f43afd.js';
7
- import './DataFetcher-7814568f.js';
8
- import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
5
+ import './ConfigStorage-379a9cba.js';
6
+ import './form-config-fetcher-36219cd3.js';
7
+ import './DataFetcher-aa159c5a.js';
9
8
  import './PrintUtils-3e4ff0f5.js';
9
+ import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
10
10
  import './filter-item-type.enum-d45e026f.js';
11
11
 
12
12
  const snkFormCss = ".sc-snk-form-h{--snk-form__header--min-height:94px;display:block}.snk-form__form--hidden.sc-snk-form{display:none}";
@@ -2,12 +2,12 @@ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement
2
2
  import { StringUtils, ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
4
4
  import { CheckMode } from '@sankhyalabs/ezui/dist/collection/components/ez-check/CheckMode';
5
- import { C as ConfigStorage } from './ConfigStorage-9a086412.js';
5
+ import { C as ConfigStorage } from './ConfigStorage-379a9cba.js';
6
6
  import { O as ORDER_VALUES } from './constants-8457af36.js';
7
- import './form-config-fetcher-24f43afd.js';
8
- import './DataFetcher-7814568f.js';
9
- import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
7
+ import './form-config-fetcher-36219cd3.js';
8
+ import './DataFetcher-aa159c5a.js';
10
9
  import './PrintUtils-3e4ff0f5.js';
10
+ import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
11
11
  import './filter-item-type.enum-d45e026f.js';
12
12
 
13
13
  const snkGridConfigCss = ".sc-snk-grid-config-h{--snk-grid-config__footer--padding-top:var(--space--medium, 12px);--snk-grid-config__main--padding-right:var(--space--medium, 12px);--snk-grid-config__tabselector-container--padding:var(--space--medium, 12px);--snk-grid-config__button-close--padding-left:var(--space--medium, 12px);--snk-grid-config__title--color:var(--title--primary, #2B3A54);--snk-grid-config__title--font-family:var(--font-pattern, \"Roboto\");--snk-grid-config__title--font-size:var(--title--large, 20px);--snk-grid-config__title--font-weight:var(--text-weight--extra-large, 700);--snk-grid-config__subtitle--font-family:var(--font-pattern, \"Roboto\");--snk-grid-config__subtitle--font-size:var(--text--medium, 14px);--snk-grid-config__group--font-family:var(--font-pattern, \"Roboto\");--snk-grid-config__group--font-size:var(--text--medium, 14px);--snk-grid-config__group--font-weight:var(--text-weight--large, 600);--snk-grid-config__group--padding-bottom:var(--space-small, 6px);--snk-grid-config__scrollbar--color-default:var(--scrollbar--default, #626e82);--snk-grid-config__scrollbar--color-background:var(--scrollbar--background, #E5EAF0);--snk-grid-config__scrollbar--color-hover:var(--scrollbar--hover, #2B3A54);--snk-grid-config__scrollbar--color-clicked:var(--scrollbar--clicked, #a2abb9);--snk-grid-config__scrollbar--border-radius:var(--border--radius-small, 6px);--snk-grid-config__scrollbar--width:var(--space--medium, 12px);display:grid;grid-template-rows:auto 1fr auto;max-height:100%;width:100%}@media screen and (min-width: 480px){.sc-snk-grid-config-h{width:359px;max-width:359px}}.padding-right--medium.sc-snk-grid-config{padding-right:var(--space--medium)}ez-list.sc-snk-grid-config{height:100%}.height-calc.sc-snk-grid-config{max-height:calc(100% - 24px)}.grid-config__footer.sc-snk-grid-config{display:flex;justify-content:flex-end;width:100%;padding-top:var(--snk-grid-config__footer--padding-top)}.hidden.sc-snk-grid-config{display:none}.tabselector-container.sc-snk-grid-config{padding:var(--snk-grid-config__tabselector-container--padding) 0}.button-close.sc-snk-grid-config{padding-left:var(--snk-grid-config__button-close--padding-left)}.title-container.sc-snk-grid-config{display:flex;justify-content:space-between;align-items:center;width:100%}.title.sc-snk-grid-config{display:flex;margin:0;line-height:normal;letter-spacing:0em;text-align:left;color:var(--snk-grid-config__title--color);font-size:var(--snk-grid-config__title--font-size);font-family:var(--snk-grid-config__title--font-family);font-weight:var(--snk-grid-config__title--font-weight)}.subtitle.sc-snk-grid-config{color:var(--text--primary);font-size:var(--snk-grid-config__subtitle--font-size);font-family:var(--snk-grid-config__subtitle--font-family)}.grid-config__main.sc-snk-grid-config{overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--snk-grid-config__scrollbar--color-clicked) var(--snk-grid-config__scrollbar--color-background);padding-right:var(--snk-grid-config__main--padding-right)}.grid-config__main.sc-snk-grid-config::-webkit-scrollbar{width:var(--snk-grid-config__scrollbar--width);max-width:var(--snk-grid-config__scrollbar--width);min-width:var(--snk-grid-config__scrollbar--width);background-color:var(--snk-grid-config__scrollbar--color-background)}.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-track{background-color:var(--snk-grid-config__scrollbar--color-background);border-radius:var(--snk-grid-config__scrollbar--border-radius)}.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-thumb{background-color:var(--snk-grid-config__scrollbar--color-default);border-radius:var(--snk-grid-config__scrollbar--border-radius)}.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-thumb:vertical:hover,.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--snk-grid-config__scrollbar--color-hover)}.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-thumb:vertical:active,.grid-config__main.sc-snk-grid-config::-webkit-scrollbar-thumb:horizontal:active{background-color:var(--snk-grid-config__scrollbar--color-clicked)}.group-name.sc-snk-grid-config{font-family:var(--snk-grid-config__group--font-family);font-size:var(--snk-grid-config__group--font-size);font-weight:var(--snk-grid-config__group--font-weight);padding-bottom:var(--snk-grid-config__group--padding-bottom)}";
@@ -1,15 +1,15 @@
1
1
  import { r as registerInstance, c as createEvent, h, F as Fragment, g as getElement } from './index-a7d3d3f1.js';
2
- import { SortMode, ElementIDUtils, ApplicationContext, DataType } from '@sankhyalabs/core';
3
- import { UserInterface } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
2
+ import { ElementIDUtils, ApplicationContext, DataType } from '@sankhyalabs/core';
3
+ import { SortMode, UserInterface } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
4
4
  import { T as TaskbarElement } from './taskbar-elements-0a6b8b95.js';
5
- import { C as ConfigStorage } from './ConfigStorage-9a086412.js';
5
+ import { C as ConfigStorage } from './ConfigStorage-379a9cba.js';
6
6
  import { P as PresentationMode } from './index-1564817d.js';
7
- import { T as TaskbarProcessor } from './taskbar-processor-94402e6e.js';
7
+ import { T as TaskbarProcessor, b as buildFieldSearch } from './field-search-c6938ee4.js';
8
8
  import { s as store } from './index-bdf75557.js';
9
9
  import { S as SnkMultiSelectionListDataSource } from './SnkMultiSelectionListDataSource-44494b0e.js';
10
10
  import { SelectionMode } from '@sankhyalabs/core/dist/dataunit/DataUnit';
11
- import './form-config-fetcher-24f43afd.js';
12
- import './DataFetcher-7814568f.js';
11
+ import './form-config-fetcher-36219cd3.js';
12
+ import './DataFetcher-aa159c5a.js';
13
13
  import './PrintUtils-3e4ff0f5.js';
14
14
  import './filter-item-type.enum-d45e026f.js';
15
15
  import '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils/InMemoryFilterColumnDataSource';
@@ -89,6 +89,22 @@ const SnkGrid = class {
89
89
  var _a;
90
90
  (_a = this._snkFilterBar) === null || _a === void 0 ? void 0 : _a.reload();
91
91
  }
92
+ /**
93
+ * Abre o localizador de colunas
94
+ */
95
+ async findColumn() {
96
+ if (!this._moreOptions) {
97
+ return;
98
+ }
99
+ if (!(await this._moreOptions.isOpened())) {
100
+ this._moreOptions.showActions();
101
+ }
102
+ if (this._columnSearch) {
103
+ const realElement = this._columnSearch["$elm$"];
104
+ realElement.value = null;
105
+ requestAnimationFrame(() => realElement.setFocus());
106
+ }
107
+ }
92
108
  /**
93
109
  * Retorna o elemento da filter-bar da grade.
94
110
  */
@@ -333,12 +349,42 @@ const SnkGrid = class {
333
349
  getPrimaryButton() {
334
350
  return this.presentationMode === PresentationMode.PRIMARY ? "INSERT" : "";
335
351
  }
352
+ getColumnSearch(actionButton, item) {
353
+ if (this._columnSearch != undefined) {
354
+ return this._columnSearch;
355
+ }
356
+ actionButton.addEventListener("ezPopoverOpen", () => {
357
+ if (this._columnSearch) {
358
+ const realElement = this._columnSearch["$elm$"];
359
+ realElement.value = null;
360
+ }
361
+ });
362
+ this._moreOptions = actionButton;
363
+ this._columnSearch = buildFieldSearch(item, ({ argument }) => new Promise(accept => {
364
+ this._grid.filterColumns(argument).then((columns) => {
365
+ accept(columns
366
+ .filter(column => !column.hidden)
367
+ .map(column => ({ label: column.label, value: column.name })));
368
+ });
369
+ }), (option) => {
370
+ if (option != undefined) {
371
+ this._grid.locateColumn(option.value);
372
+ actionButton.hideActions();
373
+ }
374
+ });
375
+ return this._columnSearch;
376
+ }
336
377
  getActionsList() {
378
+ const hardList = [{
379
+ value: "",
380
+ label: this.messagesBuilder.getMessage("snkGrid.findColumn", {}),
381
+ itemBuilder: (actionButton, item) => this.getColumnSearch(actionButton, item)
382
+ }];
337
383
  if (this.taskbarManager != undefined && this.taskbarManager.getMoreOptions != undefined) {
338
384
  const taskbarID = this.getTopTaskBarId();
339
- return this.taskbarManager.getMoreOptions(taskbarID, this.configName, this._dataState, this.actionsList);
385
+ return hardList.concat(this.taskbarManager.getMoreOptions(taskbarID, this.configName, this._dataState, this.actionsList));
340
386
  }
341
- return this.actionsList;
387
+ return hardList.concat(this.actionsList);
342
388
  }
343
389
  handleFilterConfigUpdated(filterConfig) {
344
390
  if (!filterConfig.length) {
@@ -1,20 +1,20 @@
1
1
  import { r as registerInstance, c as createEvent, h, F as Fragment } from './index-a7d3d3f1.js';
2
2
  import { Action, ElementIDUtils } from '@sankhyalabs/core';
3
- import { S as SnkFormConfigManager } from './SnkFormConfigManager-709e68a2.js';
3
+ import { S as SnkFormConfigManager } from './SnkFormConfigManager-587e9030.js';
4
4
  import { buildFormMetadata, FormMetadata } from '@sankhyalabs/ezui/dist/collection/utils/form';
5
- import { T as TaskbarProcessor } from './taskbar-processor-94402e6e.js';
5
+ import { T as TaskbarProcessor, b as buildFieldSearch } from './field-search-c6938ee4.js';
6
6
  import { T as TaskbarElement } from './taskbar-elements-0a6b8b95.js';
7
7
  import { d as VIEW_MODE } from './constants-8457af36.js';
8
- import './DataFetcher-7814568f.js';
9
- import './pesquisa-fetcher-f7aaf727.js';
8
+ import './DataFetcher-aa159c5a.js';
9
+ import './pesquisa-fetcher-dd3ca0a5.js';
10
10
  import { P as PresentationMode } from './index-1564817d.js';
11
11
  import './ISave-4412b20c.js';
12
12
  import '@sankhyalabs/ezui/dist/collection/utils/constants';
13
13
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
14
- import './dataunit-fetcher-aa70ea72.js';
14
+ import './dataunit-fetcher-fd329839.js';
15
15
  import './PreloadManager-c1c2f2b4.js';
16
16
  import './filter-item-type.enum-d45e026f.js';
17
- import './form-config-fetcher-24f43afd.js';
17
+ import './form-config-fetcher-36219cd3.js';
18
18
  import { SelectionMode } from '@sankhyalabs/core/dist/dataunit/DataUnit';
19
19
 
20
20
  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}";
@@ -41,10 +41,12 @@ const SnkGuidesViewer = class {
41
41
  this.presentationMode = undefined;
42
42
  this.resourceID = undefined;
43
43
  this.detailTaskbarCustomContainerId = undefined;
44
+ this._hasToCreateFieldSearch = true;
44
45
  this._breadcrumbItems = [];
45
46
  this._guides = undefined;
46
47
  this._formEditorConfigManager = undefined;
47
48
  this._formEditorDataUnit = undefined;
49
+ this._fieldToGetFocus = undefined;
48
50
  }
49
51
  observeDataUnit() {
50
52
  this.loadGuides(true);
@@ -69,6 +71,23 @@ const SnkGuidesViewer = class {
69
71
  this._formEditorConfigManager = masterConfig ? this._configManager : this._currentDetail.formConfigManager;
70
72
  this._formEditorDataUnit = masterConfig ? this.dataUnit : this._currentDetail.dataUnit;
71
73
  }
74
+ /**
75
+ * Abre o localizador de campos
76
+ */
77
+ async findField() {
78
+ if (!this._moreOptions) {
79
+ return;
80
+ }
81
+ if (!(await this._moreOptions.isOpened())) {
82
+ this._moreOptions.showActions();
83
+ return;
84
+ }
85
+ if (this._fieldSearch) {
86
+ const realElement = this._fieldSearch["$elm$"];
87
+ realElement.value = null;
88
+ requestAnimationFrame(() => realElement.setFocus());
89
+ }
90
+ }
72
91
  exitViewer() {
73
92
  if (this.dataUnit.isDirty()) {
74
93
  this.dataUnit.cancelEdition({ after: () => this.exit.emit() });
@@ -192,25 +211,26 @@ const SnkGuidesViewer = class {
192
211
  static updateContentCard(formName, cardConfig, propertyChanged, configManager) {
193
212
  return configManager.saveCardState(formName, cardConfig, propertyChanged);
194
213
  }
195
- static buildFixedForms(formConfig, formMetadata, selectedForm, dataUnit, recordsValidator, levelPath) {
196
- const cardsState = formConfig === null || formConfig === void 0 ? void 0 : formConfig.cardsState;
214
+ static buildFixedForms(params) {
215
+ var _a;
216
+ const cardsState = (_a = params.formConfig) === null || _a === void 0 ? void 0 : _a.cardsState;
197
217
  if (cardsState == undefined) {
198
218
  return;
199
219
  }
200
220
  return (h(Fragment, null, Array.from(cardsState.entries())
201
- .filter(([formName, cardConfig]) => (cardConfig === null || cardConfig === void 0 ? void 0 : cardConfig.fixed) && formName != selectedForm)
221
+ .filter(([formName, cardConfig]) => (cardConfig === null || cardConfig === void 0 ? void 0 : cardConfig.fixed) && formName != params.selectedForm)
202
222
  .sort(([, cardConfigA], [, cardConfigB]) => {
203
223
  const indexA = (cardConfigA === null || cardConfigA === void 0 ? void 0 : cardConfigA.fixSequence) || 0;
204
224
  const indexB = (cardConfigB === null || cardConfigB === void 0 ? void 0 : cardConfigB.fixSequence) || 0;
205
225
  return indexA - indexB;
206
226
  })
207
227
  .map(([formName, cardConfig]) => {
208
- var _a;
209
- const sheet = formMetadata.getSheet(formName);
228
+ var _a, _b;
229
+ const sheet = params.formMetadata.getSheet(formName);
210
230
  if (sheet == undefined) {
211
231
  return;
212
232
  }
213
- return h("snk-form-view", { levelPath: levelPath, label: sheet.label, name: formName, fields: sheet.fields, formMetadata: formMetadata, dataUnit: dataUnit, recordsValidator: recordsValidator, contracted: (cardConfig === null || cardConfig === void 0 ? void 0 : cardConfig.presentation) === "CONTRACTED", fixed: cardConfig === null || cardConfig === void 0 ? void 0 : cardConfig.fixed, summaryFields: (_a = formConfig === null || formConfig === void 0 ? void 0 : formConfig.summary) === null || _a === void 0 ? void 0 : _a.get(formName), key: formName });
233
+ return h("snk-form-view", { levelPath: params.levelPath, label: sheet.label, name: formName, fields: sheet.fields, formMetadata: params.formMetadata, dataUnit: params.dataUnit, recordsValidator: params.recordsValidator, contracted: (cardConfig === null || cardConfig === void 0 ? void 0 : cardConfig.presentation) === "CONTRACTED", fixed: cardConfig === null || cardConfig === void 0 ? void 0 : cardConfig.fixed, summaryFields: (_b = (_a = params.formConfig) === null || _a === void 0 ? void 0 : _a.summary) === null || _b === void 0 ? void 0 : _b.get(formName), fieldToFocus: params.fieldToFocus, key: formName, onSnkRequestClearFieldToFocus: _ => { var _a; return (_a = params.onRequestClearFieldToFocus) === null || _a === void 0 ? void 0 : _a.call(params); } });
214
234
  })));
215
235
  }
216
236
  wrapDetail(levels, content) {
@@ -259,7 +279,7 @@ const SnkGuidesViewer = class {
259
279
  const sheet = this._masterFormMetadata.getSheet(cardId);
260
280
  if (sheet) {
261
281
  const cardConfig = (_c = (_b = this.masterFormConfig) === null || _b === void 0 ? void 0 : _b.cardsState) === null || _c === void 0 ? void 0 : _c.get(cardId);
262
- content = h("snk-form-view", { ref: ref => this._mainForm = ref, fixed: cardConfig === null || cardConfig === void 0 ? void 0 : cardConfig.fixed, summaryFields: (_e = (_d = this.masterFormConfig) === null || _d === void 0 ? void 0 : _d.summary) === null || _e === void 0 ? void 0 : _e.get(cardId), name: cardId, label: sheet.label, fields: sheet.fields, dataUnit: this.dataUnit, formMetadata: this._masterFormMetadata, recordsValidator: this.recordsValidator, key: guideId }, this.presentationMode == PresentationMode.SECONDARY && this.buildTaskBar());
282
+ content = h("snk-form-view", { ref: ref => this._mainForm = ref, fixed: cardConfig === null || cardConfig === void 0 ? void 0 : cardConfig.fixed, summaryFields: (_e = (_d = this.masterFormConfig) === null || _d === void 0 ? void 0 : _d.summary) === null || _e === void 0 ? void 0 : _e.get(cardId), name: cardId, label: sheet.label, fields: sheet.fields, dataUnit: this.dataUnit, formMetadata: this._masterFormMetadata, recordsValidator: this.recordsValidator, fieldToFocus: this._fieldToGetFocus, key: guideId, onSnkRequestClearFieldToFocus: _ => this.clearFieldToFocusHandler() }, this.presentationMode == PresentationMode.SECONDARY && this.buildTaskBar());
263
283
  }
264
284
  }
265
285
  return content;
@@ -278,6 +298,13 @@ const SnkGuidesViewer = class {
278
298
  });
279
299
  this.resetGuideBadge(currentItem);
280
300
  }
301
+ changeGuideHandler(guideName) {
302
+ var _a;
303
+ (_a = this._guideNavigator) === null || _a === void 0 ? void 0 : _a.selectGuide(guideName);
304
+ }
305
+ clearFieldToFocusHandler() {
306
+ this._fieldToGetFocus = undefined;
307
+ }
281
308
  resetGuideBadge(selectedGuide) {
282
309
  var _a;
283
310
  this._guides = [...(_a = this._guides) === null || _a === void 0 ? void 0 : _a.map(guide => {
@@ -343,11 +370,41 @@ const SnkGuidesViewer = class {
343
370
  }
344
371
  this._guideHasChanged = false;
345
372
  }
373
+ getFieldsSearch(actionButton, item) {
374
+ if (this._fieldSearch == undefined || this._hasToCreateFieldSearch) {
375
+ this._hasToCreateFieldSearch = false;
376
+ this._moreOptions = actionButton;
377
+ actionButton.addEventListener("ezPopoverOpen", () => this.findField());
378
+ actionButton.addEventListener("ezDisconnectedActionButtons", () => this._hasToCreateFieldSearch = true);
379
+ this._fieldSearch = buildFieldSearch(item, ({ argument }) => this.fieldsOptionLoader(argument), (option) => this.onSelectField(option, actionButton));
380
+ }
381
+ return this._fieldSearch;
382
+ }
383
+ fieldsOptionLoader(argument) {
384
+ return Promise.resolve(this._configManager.getFieldsList(this.dataUnit, argument)
385
+ .map(field => ({ value: field.name, label: field.label })));
386
+ }
387
+ onSelectField(option, actionButton) {
388
+ if (option == undefined) {
389
+ return;
390
+ }
391
+ this._fieldToGetFocus = option.value;
392
+ const fieldGuideName = this.getGuideName(option.value);
393
+ if (fieldGuideName !== this.selectedGuide.id) {
394
+ this.changeGuideHandler(fieldGuideName);
395
+ }
396
+ actionButton.hideActions();
397
+ }
346
398
  getActionsList() {
399
+ const hardList = [{
400
+ value: "",
401
+ label: this.getMessage("snkCrud.findColumn"),
402
+ itemBuilder: (actionButton, item) => this.getFieldsSearch(actionButton, item)
403
+ }];
347
404
  if (this.taskbarManager != undefined && this.taskbarManager.getMoreOptions != undefined) {
348
- return this.taskbarManager.getMoreOptions(this.getTaskBarId(), this.configName, this.dataState, this.actionsList);
405
+ return hardList.concat(this.taskbarManager.getMoreOptions(this.getTaskBarId(), this.configName, this.dataState, this.actionsList));
349
406
  }
350
- return this.actionsList;
407
+ return hardList.concat(this.actionsList);
351
408
  }
352
409
  buildTaskBar() {
353
410
  var _a;
@@ -414,7 +471,15 @@ const SnkGuidesViewer = class {
414
471
  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 ?
415
472
  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) })
416
473
  :
417
- h("div", null), h("div", { class: "snk-guides-viewer__detail-container" }, SnkGuidesViewer.buildFixedForms(this.masterFormConfig, this._masterFormMetadata, (_b = this.selectedGuide) === null || _b === void 0 ? void 0 : _b.id, this.dataUnit, this.recordsValidator), this.getContent())), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this.getConfigViewMode(), onConfigSelected: (evt) => this.changeConfigViewMode(evt.detail), messagesBuilder: this.messagesBuilder, onOpenConfig: (evt) => this.openConfig(evt.detail), resourceID: this.resourceID })));
474
+ h("div", null), h("div", { class: "snk-guides-viewer__detail-container" }, SnkGuidesViewer.buildFixedForms({
475
+ formConfig: this.masterFormConfig,
476
+ formMetadata: this._masterFormMetadata,
477
+ selectedForm: (_b = this.selectedGuide) === null || _b === void 0 ? void 0 : _b.id,
478
+ dataUnit: this.dataUnit,
479
+ recordsValidator: this.recordsValidator,
480
+ fieldToFocus: this._fieldToGetFocus,
481
+ onRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this)
482
+ }), this.getContent())), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this.getConfigViewMode(), onConfigSelected: (evt) => this.changeConfigViewMode(evt.detail), messagesBuilder: this.messagesBuilder, onOpenConfig: (evt) => this.openConfig(evt.detail), resourceID: this.resourceID })));
418
483
  }
419
484
  static get watchers() { return {
420
485
  "dataUnit": ["observeDataUnit"],
@@ -1,23 +1,23 @@
1
- export { S as snk_guides_viewer } from './snk-guides-viewer-9c50ebea.js';
1
+ export { S as snk_guides_viewer } from './snk-guides-viewer-86171cf4.js';
2
2
  import './index-a7d3d3f1.js';
3
3
  import '@sankhyalabs/core';
4
- import './SnkFormConfigManager-709e68a2.js';
5
- import './ConfigStorage-9a086412.js';
6
- import './form-config-fetcher-24f43afd.js';
7
- import './DataFetcher-7814568f.js';
8
- import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
4
+ import './SnkFormConfigManager-587e9030.js';
5
+ import './ConfigStorage-379a9cba.js';
6
+ import './form-config-fetcher-36219cd3.js';
7
+ import './DataFetcher-aa159c5a.js';
9
8
  import './PrintUtils-3e4ff0f5.js';
9
+ import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
10
10
  import './filter-item-type.enum-d45e026f.js';
11
11
  import '@sankhyalabs/ezui/dist/collection/utils/form';
12
- import './taskbar-processor-94402e6e.js';
12
+ import './field-search-c6938ee4.js';
13
13
  import './taskbar-elements-0a6b8b95.js';
14
14
  import './index-1564817d.js';
15
15
  import './index-bdf75557.js';
16
16
  import './constants-8457af36.js';
17
- import './pesquisa-fetcher-f7aaf727.js';
17
+ import './pesquisa-fetcher-dd3ca0a5.js';
18
18
  import './ISave-4412b20c.js';
19
19
  import '@sankhyalabs/ezui/dist/collection/utils/constants';
20
- import './dataunit-fetcher-aa70ea72.js';
20
+ import './dataunit-fetcher-fd329839.js';
21
21
  import './PreloadManager-c1c2f2b4.js';
22
22
  import '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils';
23
23
  import './ResourceIDUtils-a114189a.js';
@@ -1,15 +1,15 @@
1
1
  import { r as registerInstance, c as createEvent, h, F as Fragment, H as Host } from './index-a7d3d3f1.js';
2
2
  import { StringUtils, ObjectUtils, ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-e2b38ef7.js';
4
- import { P as PersonalizedFilterFetcher, C as ConfigStorage } from './ConfigStorage-9a086412.js';
4
+ import { P as PersonalizedFilterFetcher, C as ConfigStorage } from './ConfigStorage-379a9cba.js';
5
5
  import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
6
6
  import { a as FilterGroupCondition } from './index-ae591a44.js';
7
7
  import { s as store } from './index-bdf75557.js';
8
8
  import './filter-item-type.enum-d45e026f.js';
9
- import './form-config-fetcher-24f43afd.js';
10
- import './DataFetcher-7814568f.js';
11
- import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
9
+ import './form-config-fetcher-36219cd3.js';
10
+ import './DataFetcher-aa159c5a.js';
12
11
  import './PrintUtils-3e4ff0f5.js';
12
+ import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
13
13
 
14
14
  const snkPersonalizedFilterCss = ".sc-snk-personalized-filter-h{display:flex;height:100%;padding:var(--space--large, 24px);--snk-personalized-filter--width:100%;--snk-personalized-filter--height:100%;--snk-personalized-filter--background-color-line:var(--color--disable-secondary);--snk-personalized-filter--margin-line:var(--border--radius-medium, 12px)}.snk-personalized-filter.sc-snk-personalized-filter{height:var(--snk-personalized-filter--width);width:var(--snk-personalized-filter--height)}.snk-personalized-filter__header-actions.sc-snk-personalized-filter{display:flex;gap:var(--space--medium)}.snk-personalized-filter__group.sc-snk-personalized-filter{flex:1}.snk-personalized-filter__expression-input--line.sc-snk-personalized-filter{width:100%;height:2px;background-color:var(--snk-personalized-filter--background-color-line);margin-top:var(--snk-personalized-filter--margin-line);margin-bottom:var(--snk-personalized-filter--margin-line)}.ez-box__main.sc-snk-personalized-filter{height:90%}.snk-personalized-filter__button-mode.sc-snk-personalized-filter{height:35px}";
15
15
 
@@ -1,18 +1,18 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a7d3d3f1.js';
2
- import { ObjectUtils, ApplicationContext, DataType, UserInterface } from '@sankhyalabs/core';
2
+ import { ObjectUtils, ApplicationContext, DataType, UserInterface, JSUtils, FloatingManager } from '@sankhyalabs/core';
3
3
  import { d as VIEW_MODE, S as SIMPLE_CRUD_MODE } from './constants-8457af36.js';
4
4
  import { T as TaskbarElement } from './taskbar-elements-0a6b8b95.js';
5
- import './DataFetcher-7814568f.js';
6
- import './pesquisa-fetcher-f7aaf727.js';
5
+ import './DataFetcher-aa159c5a.js';
6
+ import './pesquisa-fetcher-dd3ca0a5.js';
7
7
  import { P as PresentationMode } from './index-1564817d.js';
8
8
  import './ISave-4412b20c.js';
9
9
  import '@sankhyalabs/ezui/dist/collection/utils/constants';
10
10
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
11
- import { I as InMemoryLoader } from './dataunit-fetcher-aa70ea72.js';
11
+ import { I as InMemoryLoader } from './dataunit-fetcher-fd329839.js';
12
12
  import './PreloadManager-c1c2f2b4.js';
13
13
  import './filter-item-type.enum-d45e026f.js';
14
- import './form-config-fetcher-24f43afd.js';
15
- import { T as TaskbarProcessor } from './taskbar-processor-94402e6e.js';
14
+ import './form-config-fetcher-36219cd3.js';
15
+ import { T as TaskbarProcessor, b as buildFieldSearch } from './field-search-c6938ee4.js';
16
16
  import { S as SnkMultiSelectionListDataSource } from './SnkMultiSelectionListDataSource-44494b0e.js';
17
17
  import './index-bdf75557.js';
18
18
  import './PrintUtils-3e4ff0f5.js';
@@ -29,9 +29,10 @@ const SnkSimpleCrud = class {
29
29
  this.dataUnitReady = createEvent(this, "dataUnitReady", 3);
30
30
  this.actionClick = createEvent(this, "actionClick", 7);
31
31
  this.formItemsReady = createEvent(this, "formItemsReady", 7);
32
- this.REGULAR_DEFAULT_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER"];
33
- this.REGULAR_SELECTED_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER", "CLONE", "REMOVE", "DIVIDER"];
32
+ this.REGULAR_DEFAULT_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER", "MORE_OPTIONS"];
33
+ this.REGULAR_SELECTED_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER", "CLONE", "REMOVE", "DIVIDER", "MORE_OPTIONS"];
34
34
  this._multiSelectionListDataSource = new SnkMultiSelectionListDataSource();
35
+ this._keyDownHandler = (event) => this.keyDownListener(event);
35
36
  this._taskbarProcessor = new TaskbarProcessor({
36
37
  "snkSimpleCrudTaskbar.form_regular": this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(TaskbarElement.GRID_MODE),
37
38
  "snkSimpleCrudTaskbar.grid_regular": this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(TaskbarElement.FORM_MODE),
@@ -41,11 +42,13 @@ const SnkSimpleCrud = class {
41
42
  });
42
43
  this._currentViewMode = VIEW_MODE.GRID;
43
44
  this._config = undefined;
45
+ this._fieldToGetFocus = undefined;
44
46
  this.dataState = undefined;
45
47
  this.dataUnit = undefined;
46
48
  this.mode = SIMPLE_CRUD_MODE.SERVER;
47
49
  this.gridConfig = undefined;
48
50
  this.formConfig = undefined;
51
+ this._formFields = [];
49
52
  this.multipleSelection = undefined;
50
53
  this.useCancelConfirm = true;
51
54
  this.taskbarManager = undefined;
@@ -193,11 +196,135 @@ const SnkSimpleCrud = class {
193
196
  this.dataUnit.clearSelection();
194
197
  }
195
198
  }
199
+ getColumnSearch(actionButton, item) {
200
+ if (this._columnSearch != undefined) {
201
+ return this._columnSearch;
202
+ }
203
+ actionButton.addEventListener("ezPopoverOpen", () => {
204
+ if (this._columnSearch) {
205
+ const realElement = this._columnSearch["$elm$"];
206
+ realElement.value = null;
207
+ }
208
+ });
209
+ this._moreOptions = actionButton;
210
+ this._columnSearch = buildFieldSearch(item, ({ argument }) => new Promise(accept => {
211
+ this._grid.filterColumns(argument).then((columns) => {
212
+ accept(columns
213
+ .filter(column => !column.hidden)
214
+ .map(column => ({ label: column.label, value: column.name })));
215
+ });
216
+ }), (option) => {
217
+ if (option != undefined) {
218
+ this._grid.locateColumn(option.value);
219
+ actionButton.hideActions();
220
+ }
221
+ });
222
+ return this._columnSearch;
223
+ }
224
+ onSelectField(option, actionButton) {
225
+ if (option == undefined) {
226
+ return;
227
+ }
228
+ this._fieldToGetFocus = option.value;
229
+ actionButton.hideActions();
230
+ }
231
+ getFieldSearch(actionButton, item) {
232
+ if (this._fieldSearch != undefined) {
233
+ return this._fieldSearch;
234
+ }
235
+ this._moreOptions = actionButton;
236
+ actionButton.addEventListener("ezPopoverOpen", () => this.findField());
237
+ this._fieldSearch = buildFieldSearch(item, ({ argument }) => this.fieldsOptionLoader(argument), (option) => this.onSelectField(option, actionButton));
238
+ return this._fieldSearch;
239
+ }
240
+ getFormFields() {
241
+ var _a, _b;
242
+ return (_b = (_a = this.formConfig) === null || _a === void 0 ? void 0 : _a.fields) !== null && _b !== void 0 ? _b : this._formFields;
243
+ }
244
+ handleFormSetFields(fields) {
245
+ this._formFields = fields !== null && fields !== void 0 ? fields : [];
246
+ }
247
+ fieldsOptionLoader(argument) {
248
+ const searchTerm = argument === null || argument === void 0 ? void 0 : argument.toLowerCase();
249
+ const allFields = this.getFormFields().map(field => { var _a; return (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField(field.name); });
250
+ const filteredFields = allFields.filter(field => {
251
+ var _a, _b;
252
+ return ((_a = field.name) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(searchTerm)) ||
253
+ ((_b = field.label) === null || _b === void 0 ? void 0 : _b.toLowerCase().includes(searchTerm));
254
+ });
255
+ const options = filteredFields.map(field => ({ value: field.name, label: field.label }));
256
+ return Promise.resolve(options);
257
+ }
258
+ getActionsList() {
259
+ var _a, _b;
260
+ return [{
261
+ value: "",
262
+ label: (_b = (_a = this.messagesBuilder) === null || _a === void 0 ? void 0 : _a.getMessage("snkSimpleCrud.findColumn", undefined)) !== null && _b !== void 0 ? _b : "Buscar",
263
+ itemBuilder: (actionButton, item) => (this._currentViewMode === VIEW_MODE.GRID)
264
+ ? this.getColumnSearch(actionButton, item)
265
+ : this.getFieldSearch(actionButton, item)
266
+ }];
267
+ }
268
+ keyDownListener(event) {
269
+ if (!event.ctrlKey || event.key == undefined || event.key.toUpperCase() !== "F") {
270
+ return;
271
+ }
272
+ if (this._element == undefined) {
273
+ return;
274
+ }
275
+ if (JSUtils.isHiddenElement(this._element)) {
276
+ return;
277
+ }
278
+ FloatingManager.closeAll();
279
+ if (this._currentViewMode === VIEW_MODE.GRID) {
280
+ this.findColumn();
281
+ }
282
+ else {
283
+ this.findField();
284
+ }
285
+ event.preventDefault();
286
+ }
287
+ async findField() {
288
+ if (!this._moreOptions) {
289
+ return;
290
+ }
291
+ if (!(await this._moreOptions.isOpened())) {
292
+ this._moreOptions.showActions();
293
+ return;
294
+ }
295
+ if (this._fieldSearch) {
296
+ const realElement = this._fieldSearch["$elm$"];
297
+ realElement.value = null;
298
+ requestAnimationFrame(() => realElement.setFocus());
299
+ }
300
+ }
301
+ async findColumn() {
302
+ if (!this._moreOptions) {
303
+ return;
304
+ }
305
+ if (!(await this._moreOptions.isOpened())) {
306
+ this._moreOptions.showActions();
307
+ }
308
+ if (this._columnSearch) {
309
+ const realElement = this._columnSearch["$elm$"];
310
+ realElement.value = null;
311
+ requestAnimationFrame(() => realElement.setFocus());
312
+ }
313
+ }
314
+ clearFieldToFocusHandler() {
315
+ this._fieldToGetFocus = undefined;
316
+ }
317
+ connectedCallback() {
318
+ window.addEventListener("keydown", this._keyDownHandler, { capture: true });
319
+ }
320
+ disconnectedCallback() {
321
+ window.removeEventListener("keydown", this._keyDownHandler);
322
+ }
196
323
  render() {
197
324
  var _a;
198
- return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), ignoreSaveMessage: this._currentViewMode === VIEW_MODE.GRID, onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-box ez-box--shadow simple-crud__container-section" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }, h("slot", { name: "TASKBAR_CUSTOM_ELEMENTS" })), h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), columnfilterDataSource: this.dataUnit.name.includes(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME)
325
+ return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), ignoreSaveMessage: this._currentViewMode === VIEW_MODE.GRID, onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-box ez-box--shadow simple-crud__container-section" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, actionsList: this.getActionsList(), disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }, h("slot", { name: "TASKBAR_CUSTOM_ELEMENTS" })), h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { ref: ref => this._grid = ref, dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), columnfilterDataSource: this.dataUnit.name.includes(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME)
199
326
  ? undefined
200
- : this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
327
+ : this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig, fieldToFocus: this._fieldToGetFocus, onEzFormSetFields: (evt) => this.handleFormSetFields(evt.detail), onEzFormRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this) }))))));
201
328
  }
202
329
  get _element() { return getElement(this); }
203
330
  static get watchers() { return {
@@ -0,0 +1 @@
1
+ import{r as i,c as t,h as e,H as s}from"./p-d2d301a6.js";import{ElementIDUtils as r}from"@sankhyalabs/core";import{DataBinder as o}from"@sankhyalabs/ezui/dist/collection/utils/form";const a=class{constructor(e){i(this,e),this.snkContentCardChanged=t(this,"snkContentCardChanged",7),this.snkRequestClearFieldToFocus=t(this,"snkRequestClearFieldToFocus",7),this.formItemsReady=t(this,"formItemsReady",7),this.levelPath=void 0,this.label=void 0,this.name=void 0,this.fields=void 0,this.formMetadata=void 0,this.dataUnit=void 0,this.contracted=void 0,this.fixed=!1,this.summaryFields=void 0,this.canExpand=!0,this.canFix=!0,this.recordsValidator=void 0,this.fieldToFocus=void 0}async showUp(){this._formView&&this._formView.showUp()}changeFix(){this.fixed=!this.fixed,this.emitEvent("fixed")}changeContracted(){this.contracted=!this.contracted,this.emitEvent("presentation")}emitEvent(i){this.snkContentCardChanged.emit({formName:this.name,cardConfig:{fixed:this.fixed,presentation:this.contracted?"CONTRACTED":"EXPANDED"},propertyChanged:i})}getCardSummary(){const i={};return this.getSummaryFields().forEach((({field:t,label:e})=>{var s;const r=this.dataUnit.getFormattedValue(t);""!==r&&(null==e&&(e=null===(s=this.dataUnit.getField(t))||void 0===s?void 0:s.label),i[e]=r)})),i}getSummaryFields(){return null==this.summaryFields?this.fields.map((i=>{const t=this.dataUnit.getField(i.name);return{field:i.name,label:i.label||(null==t?void 0:t.label)}})):this.summaryFields}bindFields(i){null==this._dataBinder&&null!=this.dataUnit&&(this._dataBinder=new o(this.dataUnit)),this._dataBinder&&this._dataBinder.bind(i,this.dataUnit.dataUnitId,this.formMetadata,this.recordsValidator)}handleFormItemsReady(i){i.stopPropagation(),this.formItemsReady.emit(Object.assign(Object.assign({},i.detail),{formId:this.name}))}disconnectedCallback(){null!=this._dataBinder&&this._dataBinder.onDisconnectedCallback()}componentDidRender(){null!=this.fieldToFocus&&this.fields.some((i=>i.name===this.fieldToFocus))&&requestAnimationFrame((()=>{this._dataBinder.setFocus(this.fieldToFocus),this.snkRequestClearFieldToFocus.emit()}))}render(){return e(s,{class:"ez-box__container"},e("div",{class:"summary-header ez-flex ez-size-width--full"},e("div",{class:"ez-flex ez-text ez-title--primary ez-text--bold ez-flex--justify-start ez-flex--align-items-center ez-col--sd-9"},this.levelPath?e("span",{class:"level-path"},this.levelPath+" /"):void 0,this.label),e("div",{class:"ez-flex ez-flex--justify-end ez-col--sd-3"},this.canFix&&e("ez-button",{class:"ez-padding-left--medium",mode:"icon",size:"small",iconName:this.fixed?"un-pin":"push-pin","data-element-id":r.getInternalIDInfo("toggleFixed_ezFormCard"),onClick:()=>this.changeFix(),title:this.fixed?"Desafixar":"Fixar"}),this.canExpand&&e("ez-button",{class:"ez-padding-left--medium",mode:"icon",size:"small",iconName:this.contracted?"chevron-down":"chevron-up","data-element-id":r.getInternalIDInfo("toggleExpand_ezFormCard"),onClick:()=>this.changeContracted(),title:this.contracted?"Expandir":"Resumir"}))),e("slot",null),this.contracted?e("snk-form-summary",{summary:this.getCardSummary()}):e("ez-form-view",{ref:i=>this._formView=i,fields:this.fields,onEzContentReady:i=>this.bindFields(i.detail),onFormItemsReady:i=>this.handleFormItemsReady(i)}))}};a.style=".sc-snk-form-view-h{display:flex;width:100%;--ez-form-card-summary-field-content-weight:700}.level-path.sc-snk-form-view{color:var(--color--title-primary, #2B3A54);font-weight:var(--text-weight--medium, 400);padding-right:3px}.summary-wrapper.sc-snk-form-view{display:flex;overflow:hidden}.summary-header.sc-snk-form-view{border-bottom:1px solid var(--color--strokes);margin-bottom:var(--space--medium);padding-bottom:var(--space--medium)}.summary-container.sc-snk-form-view{display:flex;flex-direction:column}.summary-container.sc-snk-form-view{padding-right:calc(var(--space--extra-large) / 1.5)}.summary-field.sc-snk-form-view{min-width:30px;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary-field__title.sc-snk-form-view{color:var(--text--primary, #626e82);font-size:var(--title--small);white-space:nowrap;font-weight:var(--text-weight--medium)}.summary-field__content.sc-snk-form-view{color:var(--title--primary, #2b3a54);font-size:var(--text--large);font-weight:var(--ez-form-card-summary-field-content-weight)}";export{a as snk_form_view}
@@ -1,4 +1,4 @@
1
- import{d as e,D as s}from"./p-88039a7f.js";import{ObjectUtils as t}from"@sankhyalabs/core";class r{constructor(){this.templateByQuery=new Map,this.buldTemplates()}buldTemplates(){this.templateByQuery.set("fetchResource",e.gql`query($name: String!) {
1
+ import{d as e,D as s}from"./p-9695f78b.js";import{ObjectUtils as t}from"@sankhyalabs/core";class r{constructor(){this.templateByQuery=new Map,this.buldTemplates()}buldTemplates(){this.templateByQuery.set("fetchResource",e.gql`query($name: String!) {
2
2
  $queryAlias$: fetchResource(name: $name){
3
3
  resource
4
4
  }
@@ -0,0 +1 @@
1
+ import{C as t}from"./p-4396d1a6.js";import{ObjectUtils as e,StringUtils as s}from"@sankhyalabs/core";import{F as i}from"./p-0d7863ed.js";class n{constructor(t,e,s){this._resourceID=e,this._configName=t,this._onConfigChange=s}async loadConfig(){return new Promise((e=>{t.loadFormConfig(this._configName,this._resourceID).then((t=>{this.setConfig(t),e(t)})).catch((t=>{console.warn(t)}))}))}saveConfig(s){const i=e.copy(s);return new Promise((e=>{t.saveFormConfig(s,this._configName,this._resourceID).then((t=>{this.setConfig(Object.assign(Object.assign({},i),t)),e(Object.assign(Object.assign({},i),t))}))}))}saveCardState(e,s,i){return new Promise((n=>{var r;const h=(null===(r=this._config)||void 0===r?void 0:r.cardsState)||new Map,a=h.get(e);h.set(e,"fixed"===i?this.updateFixSequence(Object.assign(Object.assign({},a),{fixed:s.fixed}),h):Object.assign(Object.assign({},a),{[i]:s[i]})),t.saveCardState(h,this._configName,this._resourceID).then((t=>{this._config=Object.assign(Object.assign({},this._config),{cardsState:h}),n(t)}))}))}updateFixSequence(t,e){let s=-1;return Array.from(e.values()).forEach((e=>{e.fixed||delete t.fixSequence,null!=e.fixSequence&&(s=Math.max(s,e.fixSequence))})),t.fixed?t.fixSequence=s+1:delete t.fixSequence,t}getFieldsList(t,e){var s;const i=null===(s=this._config)||void 0===s?void 0:s.fields;return null!=i&&i.length>0?i.map((({label:e,name:s,readOnly:i})=>null==e?t.getField(s):{name:s,label:e,readOnly:i})).filter((t=>this.isFieldVisible(t,e))):null!=t?t.metadata.fields.filter((t=>this.isFieldVisible(t,e))).map((({label:t,name:e,readOnly:s})=>({label:t,name:e,readOnly:s}))):[]}isFieldVisible(t,e){if(!1===t.visible)return!1;if(null==e)return!0;const i=s.replaceAccentuatedCharsLower((t.label||t.name).toLocaleLowerCase()),n=s.replaceAccentuatedCharsLower(e.toLocaleLowerCase());return i.includes(n)}getInsertionConfig(t){const e=this.getFieldsList(t).filter((e=>{if(t){const s=t.getField(e.name);if(s&&s.readOnly)return!1}return!e.readOnly}));return Object.assign(Object.assign({},this._config),{fields:e})}setConfig(t){this.isLoaded=!0;const{cardsState:e,summary:s,defaultVars:i}=this._config||{};this._config=Object.assign({},t),e&&(this._config.cardsState=e),s&&(this._config.summary=s),i&&(this._config.defaultVars=i),this._onConfigChange&&this._onConfigChange(Object.assign({},this._config))}getConfig(t,e){return t?this.getInsertionConfig(e):Object.assign({},this._config)}getFormConfigFetcher(){return null==this._formConfigFetcher&&(this._formConfigFetcher=new i),this._formConfigFetcher}async fetchUserAvailableConfigs(){return null!=this._configName?Promise.resolve(void 0):this.getFormConfigFetcher().fetchUserAvailableConfigs(this._configName,this._resourceID)}async fetchLegacyConfig(){return this.getFormConfigFetcher().fetchLegacyConfig(this._configName,this._resourceID)}async fetchDefaultConfig(){return this.getFormConfigFetcher().fetchDefaultConfig(this._configName,this._resourceID)}}export{n as S}