@sankhyalabs/sankhyablocks 1.4.0-beta.1 → 1.4.0-beta.3

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 (163) hide show
  1. package/dist/cjs/{SnkMessageBuilder-7717f1e4.js → SnkMessageBuilder-d8215915.js} +14 -119
  2. package/dist/cjs/{filter-item-type.enum-e2e1bc5b.js → filter-item-type.enum-3daf58d3.js} +2 -0
  3. package/dist/cjs/{index-b0b676c5.js → index-6fcf07f3.js} +159 -1515
  4. package/dist/cjs/loader.cjs.js +2 -18
  5. package/dist/cjs/sankhyablocks.cjs.js +4 -116
  6. package/dist/cjs/snk-application.cjs.entry.js +84 -230
  7. package/dist/cjs/snk-crud.cjs.entry.js +3 -3
  8. package/dist/cjs/snk-data-unit.cjs.entry.js +24 -32
  9. package/dist/cjs/snk-filter-bar_5.cjs.entry.js +902 -0
  10. package/dist/cjs/snk-filter-binary-select.cjs.entry.js +2 -2
  11. package/dist/cjs/snk-filter-detail.cjs.entry.js +38 -3
  12. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +2 -2
  13. package/dist/cjs/snk-filter-number.cjs.entry.js +2 -2
  14. package/dist/cjs/snk-filter-period.cjs.entry.js +2 -2
  15. package/dist/cjs/snk-filter-personalized.cjs.entry.js +90 -0
  16. package/dist/cjs/snk-filter-search.cjs.entry.js +4 -4
  17. package/dist/cjs/snk-filter-text.cjs.entry.js +1 -1
  18. package/dist/cjs/{snk-form.cjs.entry.js → snk-form_2.cjs.entry.js} +119 -5
  19. package/dist/cjs/snk-pesquisa.cjs.entry.js +5 -5
  20. package/dist/cjs/{taskbar-elements-283c737e.js → taskbar-elements-aedfeae6.js} +1 -1
  21. package/dist/cjs/teste-pesquisa.cjs.entry.js +5 -5
  22. package/dist/collection/collection-manifest.json +2 -0
  23. package/dist/collection/components/snk-application/snk-application.js +54 -7
  24. package/dist/collection/components/snk-crud/snk-crud.js +2 -4
  25. package/dist/collection/components/snk-data-unit/snk-data-unit.js +0 -27
  26. package/dist/collection/components/snk-filter-bar/filter-item/dataunitfilter/data-unit-filter-builder.js +100 -0
  27. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-personalized.js +161 -0
  28. package/dist/collection/components/snk-filter-bar/filter-item/filter-item-type.enum.js +2 -0
  29. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +36 -1
  30. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +32 -9
  31. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +196 -0
  32. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +22 -0
  33. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +238 -139
  34. package/dist/collection/components/snk-grid/snk-grid.js +2 -4
  35. package/dist/collection/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.js +18 -10
  36. package/dist/collection/lib/message/resources/snk-filter-bar.msg.js +14 -2
  37. package/dist/components/SnkMessageBuilder.js +15 -119
  38. package/dist/components/filter-item-type.enum.js +2 -0
  39. package/dist/components/index.d.ts +2 -0
  40. package/dist/components/index.js +2 -4
  41. package/dist/components/snk-application2.js +47 -191
  42. package/dist/components/snk-crud.js +16 -10
  43. package/dist/components/snk-data-unit.js +3 -12
  44. package/dist/components/snk-filter-bar2.js +342 -146
  45. package/dist/components/snk-filter-detail2.js +36 -1
  46. package/dist/components/snk-filter-item2.js +33 -10
  47. package/dist/components/snk-filter-list2.js +1 -1
  48. package/dist/components/snk-filter-modal.d.ts +11 -0
  49. package/dist/components/snk-filter-modal.js +6 -0
  50. package/dist/components/snk-filter-modal2.js +58 -0
  51. package/dist/components/snk-filter-personalized.d.ts +11 -0
  52. package/dist/components/snk-filter-personalized.js +108 -0
  53. package/dist/components/snk-filter-search.js +1 -1
  54. package/dist/components/snk-form2.js +1 -1
  55. package/dist/components/snk-grid2.js +16 -10
  56. package/dist/components/snk-pesquisa2.js +1 -1
  57. package/dist/components/snk-taskbar2.js +1 -1
  58. package/dist/components/teste-pesquisa.js +1 -1
  59. package/dist/{sankhyablocks/SnkMessageBuilder-a7da466b.js → esm/SnkMessageBuilder-35a20271.js} +15 -119
  60. package/dist/esm/{filter-item-type.enum-61fbf80a.js → filter-item-type.enum-a79b2fa8.js} +2 -0
  61. package/dist/{sankhyablocks/index-2b4d2d14.js → esm/index-81dda3cf.js} +160 -1508
  62. package/dist/esm/loader.js +2 -18
  63. package/dist/esm/sankhyablocks.js +4 -116
  64. package/dist/esm/snk-application.entry.js +46 -192
  65. package/dist/esm/snk-crud.entry.js +2 -2
  66. package/dist/esm/snk-data-unit.entry.js +4 -12
  67. package/dist/esm/snk-filter-bar_5.entry.js +894 -0
  68. package/dist/esm/snk-filter-binary-select.entry.js +2 -2
  69. package/dist/esm/snk-filter-detail.entry.js +38 -3
  70. package/dist/esm/snk-filter-multi-select.entry.js +2 -2
  71. package/dist/esm/snk-filter-number.entry.js +2 -2
  72. package/dist/esm/snk-filter-period.entry.js +2 -2
  73. package/dist/esm/snk-filter-personalized.entry.js +86 -0
  74. package/dist/esm/snk-filter-search.entry.js +3 -3
  75. package/dist/esm/snk-filter-text.entry.js +1 -1
  76. package/dist/esm/{snk-form.entry.js → snk-form_2.entry.js} +117 -4
  77. package/dist/esm/snk-pesquisa.entry.js +2 -2
  78. package/dist/{sankhyablocks/taskbar-elements-35d64ff9.js → esm/taskbar-elements-38eb5d51.js} +1 -1
  79. package/dist/esm/teste-pesquisa.entry.js +2 -2
  80. package/dist/sankhyablocks/index.esm.js +0 -1
  81. package/dist/sankhyablocks/p-0352c0e2.entry.js +1 -0
  82. package/dist/sankhyablocks/p-07ebda01.entry.js +1 -0
  83. package/dist/sankhyablocks/p-322c0df2.entry.js +1 -0
  84. package/dist/sankhyablocks/p-46caa101.entry.js +1 -0
  85. package/dist/sankhyablocks/p-473cedf9.entry.js +1 -0
  86. package/dist/sankhyablocks/p-586e2522.js +1 -0
  87. package/dist/sankhyablocks/p-86f15ffe.js +1 -0
  88. package/dist/sankhyablocks/p-8f3c5709.entry.js +1 -0
  89. package/dist/sankhyablocks/p-97009a2c.entry.js +1 -0
  90. package/dist/sankhyablocks/p-9be74b46.entry.js +74 -0
  91. package/dist/sankhyablocks/p-9dd2b8cb.js +1 -0
  92. package/dist/sankhyablocks/p-a8b59c61.entry.js +1 -0
  93. package/dist/sankhyablocks/p-aecf3e0a.entry.js +1 -0
  94. package/dist/sankhyablocks/p-c1c3b5d8.entry.js +1 -0
  95. package/dist/sankhyablocks/p-c78cb79a.entry.js +1 -0
  96. package/dist/sankhyablocks/p-c9eec639.entry.js +1 -0
  97. package/dist/sankhyablocks/p-dc482a42.entry.js +1 -0
  98. package/dist/sankhyablocks/p-fac2b6a9.js +2 -0
  99. package/dist/sankhyablocks/p-fb705f81.entry.js +1 -0
  100. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -129
  101. package/dist/types/components/snk-application/snk-application.d.ts +4 -1
  102. package/dist/types/components/snk-filter-bar/filter-item/dataunitfilter/data-unit-filter-builder.d.ts +4 -0
  103. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-personalized.d.ts +23 -0
  104. package/dist/types/components/snk-filter-bar/filter-item/filter-item-type.enum.d.ts +3 -1
  105. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +2 -0
  106. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +23 -0
  107. package/dist/types/components.d.ts +56 -8
  108. package/package.json +3 -3
  109. package/react/components.d.ts +19 -0
  110. package/react/components.js +19 -0
  111. package/react/components.js.map +1 -1
  112. package/dist/cjs/app-globals-3a1e7e63.js +0 -5
  113. package/dist/cjs/css-shim-b8158822.js +0 -6
  114. package/dist/cjs/dom-36862b77.js +0 -75
  115. package/dist/cjs/index-02201bc9.js +0 -2397
  116. package/dist/cjs/shadow-css-346c0795.js +0 -389
  117. package/dist/cjs/snk-filter-bar.cjs.entry.js +0 -278
  118. package/dist/cjs/snk-filter-item.cjs.entry.js +0 -154
  119. package/dist/cjs/snk-filter-list.cjs.entry.js +0 -91
  120. package/dist/cjs/snk-grid.cjs.entry.js +0 -79
  121. package/dist/cjs/snk-taskbar.cjs.entry.js +0 -160
  122. package/dist/cjs/taskbar-processor-6bd0d35c.js +0 -47
  123. package/dist/components/index2.js +0 -2384
  124. package/dist/esm/SnkMessageBuilder-a7da466b.js +0 -303
  125. package/dist/esm/app-globals-0f993ce5.js +0 -3
  126. package/dist/esm/css-shim-b3f2ee8d.js +0 -4
  127. package/dist/esm/dom-665d6011.js +0 -73
  128. package/dist/esm/index-2b4d2d14.js +0 -3262
  129. package/dist/esm/index-f1d3e4da.js +0 -2384
  130. package/dist/esm/shadow-css-b18e99d7.js +0 -387
  131. package/dist/esm/snk-filter-bar.entry.js +0 -274
  132. package/dist/esm/snk-filter-item.entry.js +0 -150
  133. package/dist/esm/snk-filter-list.entry.js +0 -87
  134. package/dist/esm/snk-grid.entry.js +0 -75
  135. package/dist/esm/snk-taskbar.entry.js +0 -156
  136. package/dist/esm/taskbar-elements-35d64ff9.js +0 -90
  137. package/dist/esm/taskbar-processor-aa6772c9.js +0 -45
  138. package/dist/sankhyablocks/app-globals-0f993ce5.js +0 -3
  139. package/dist/sankhyablocks/css-shim-b3f2ee8d.js +0 -4
  140. package/dist/sankhyablocks/dom-665d6011.js +0 -73
  141. package/dist/sankhyablocks/filter-item-type.enum-61fbf80a.js +0 -12
  142. package/dist/sankhyablocks/index-f1d3e4da.js +0 -2384
  143. package/dist/sankhyablocks/shadow-css-b18e99d7.js +0 -387
  144. package/dist/sankhyablocks/snk-application.entry.js +0 -8148
  145. package/dist/sankhyablocks/snk-crud.entry.js +0 -66
  146. package/dist/sankhyablocks/snk-data-unit.entry.js +0 -276
  147. package/dist/sankhyablocks/snk-filter-bar.entry.js +0 -274
  148. package/dist/sankhyablocks/snk-filter-binary-select.entry.js +0 -43
  149. package/dist/sankhyablocks/snk-filter-detail.entry.js +0 -45
  150. package/dist/sankhyablocks/snk-filter-item.entry.js +0 -150
  151. package/dist/sankhyablocks/snk-filter-list.entry.js +0 -87
  152. package/dist/sankhyablocks/snk-filter-multi-select.entry.js +0 -19
  153. package/dist/sankhyablocks/snk-filter-number.entry.js +0 -20
  154. package/dist/sankhyablocks/snk-filter-period.entry.js +0 -33
  155. package/dist/sankhyablocks/snk-filter-search.entry.js +0 -40
  156. package/dist/sankhyablocks/snk-filter-text.entry.js +0 -18
  157. package/dist/sankhyablocks/snk-form.entry.js +0 -129
  158. package/dist/sankhyablocks/snk-grid.entry.js +0 -75
  159. package/dist/sankhyablocks/snk-pesquisa.entry.js +0 -311
  160. package/dist/sankhyablocks/snk-taskbar.entry.js +0 -156
  161. package/dist/sankhyablocks/taskbar-processor-aa6772c9.js +0 -45
  162. package/dist/sankhyablocks/teste-pesquisa.entry.js +0 -33
  163. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +0 -51
@@ -1,150 +0,0 @@
1
- import { r as registerInstance, e as createEvent, h, f as Host, g as getElement } from './index-2b4d2d14.js';
2
- import { F as FloatingManager } from './index-f1d3e4da.js';
3
- import { F as FilterItemType } from './filter-item-type.enum-61fbf80a.js';
4
-
5
- const SnkFilterItem = class {
6
- constructor(hostRef) {
7
- registerInstance(this, hostRef);
8
- this.filterChange = createEvent(this, "filterChange", 7);
9
- this.innerClickCheck = (floatingContainer, node) => {
10
- if (this._popover.keepOpened) {
11
- return true;
12
- }
13
- if (node && floatingContainer) {
14
- if (!node.offsetParent) {
15
- return true;
16
- }
17
- let current = node;
18
- do {
19
- if (current === floatingContainer) {
20
- return true;
21
- }
22
- } while ((current = current.offsetParent) != null);
23
- }
24
- this.detailIsVisible = false;
25
- return false;
26
- };
27
- }
28
- async showUp(open = false) {
29
- this._filterItemElement.scrollIntoView({ behavior: "auto", block: "nearest", inline: "nearest" });
30
- if (open) {
31
- window.requestAnimationFrame(() => {
32
- this.showDetail();
33
- });
34
- }
35
- }
36
- showDetail() {
37
- this._floatingID = FloatingManager.float(this._popover, this._popoverContainer, { autoClose: true, innerClickTest: this.innerClickCheck, left: this.getScrollOffset() });
38
- this.detailIsVisible = true;
39
- }
40
- getScrollOffset() {
41
- return `${this._filterItemElement.getBoundingClientRect().left + 12}px`;
42
- }
43
- hideDetail() {
44
- if (this._floatingID != undefined) {
45
- FloatingManager.close(this._floatingID);
46
- }
47
- this._floatingID = undefined;
48
- this.detailIsVisible = false;
49
- }
50
- //---------------------------------------------
51
- // Event handlers
52
- //---------------------------------------------
53
- clickListener(evt) {
54
- if ([this._chipElement, this._leftIconElement, this._rightIconElement].includes(evt.target)) {
55
- if (evt.target === this._rightIconElement && this.config.value != undefined) {
56
- this.filterChange.emit(Object.assign(Object.assign({}, this.config), { value: undefined }));
57
- }
58
- else {
59
- if (this.detailIsVisible) {
60
- this.hideDetail();
61
- }
62
- else {
63
- this.showDetail();
64
- }
65
- }
66
- evt.preventDefault();
67
- evt.stopImmediatePropagation();
68
- evt.stopPropagation();
69
- }
70
- }
71
- mouseDownListener(evt) {
72
- if (this.detailIsVisible && [this._chipElement, this._leftIconElement, this._rightIconElement].includes(evt.target)) {
73
- evt.preventDefault();
74
- evt.stopImmediatePropagation();
75
- evt.stopPropagation();
76
- }
77
- }
78
- getLabel() {
79
- const { type, value, label, props } = this.config;
80
- if (value) {
81
- if (type === FilterItemType.BINARY_SELECT) {
82
- const [optOne, optTwo] = props.options;
83
- if (optOne.name === value) {
84
- return optOne.label;
85
- }
86
- if (optTwo.name === value) {
87
- return optTwo.label;
88
- }
89
- }
90
- if (type === FilterItemType.MULTI_SELECT) {
91
- const opt = props.options.find(opt => opt.value === value);
92
- return `${label}: ${opt.label}`;
93
- }
94
- if (type === FilterItemType.PERIOD) {
95
- let { end, start } = value;
96
- if (typeof end === "string") {
97
- end = new Date(end);
98
- end.setMinutes(end.getMinutes() + end.getTimezoneOffset());
99
- }
100
- if (typeof start === "string") {
101
- start = new Date(start);
102
- start.setMinutes(start.getMinutes() + start.getTimezoneOffset());
103
- }
104
- const dateFormater = new Intl.DateTimeFormat("pt-BR");
105
- if (end && start) {
106
- return `${label}: ${dateFormater.format(start)} a ${dateFormater.format(end)}`;
107
- }
108
- else {
109
- if (start) {
110
- return `${label}: A partir de ${dateFormater.format(start)}`;
111
- }
112
- else if (end) {
113
- return `${label}: Até ${dateFormater.format(end)}`;
114
- }
115
- else {
116
- return label;
117
- }
118
- }
119
- }
120
- if (type === FilterItemType.SEARCH) {
121
- return `${label}: ${value.value} - ${value.label}`;
122
- }
123
- return `${label}: ${value}`;
124
- }
125
- return label;
126
- }
127
- componentDidRender() {
128
- if (this._floatingID == undefined) {
129
- if (this._popover) {
130
- this._popover.remove();
131
- }
132
- }
133
- }
134
- filterChangeListener() {
135
- this.hideDetail();
136
- }
137
- getIconName() {
138
- if (this.config.value != undefined) {
139
- return "close";
140
- }
141
- return this.detailIsVisible ? "chevron-up" : "chevron-down";
142
- }
143
- render() {
144
- const leftIcon = this.config.type === FilterItemType.PERIOD ? "calendar" : undefined;
145
- return (h(Host, null, h("ez-chip", { ref: ref => this._chipElement = ref, label: this.getLabel(), value: this.config.value != undefined }, leftIcon ? h("ez-icon", { ref: ref => this._leftIconElement = ref, iconName: leftIcon, class: "ez-padding-right--small", slot: "leftIcon" }) : undefined, h("ez-icon", { ref: ref => this._rightIconElement = ref, iconName: this.getIconName(), class: "ez-padding-left--small", slot: "rightIcon" })), h("section", { class: "ez-margin-top--small sc-snk-filter-bar snk-filter__popover-container", ref: elem => this._popoverContainer = elem }, h("snk-filter-detail", { config: this.config, getMessage: this.getMessage, class: "sc-snk-filter-bar snk-filter__popover ez-padding--small", ref: elem => this._popover = elem, key: this.config.id }))));
146
- }
147
- get _filterItemElement() { return getElement(this); }
148
- };
149
-
150
- export { SnkFilterItem as snk_filter_item };
@@ -1,87 +0,0 @@
1
- import { r as registerInstance, e as createEvent, h, f as Host, g as getElement } from './index-2b4d2d14.js';
2
- import { F as FloatingManager, g as ArrayUtils } from './index-f1d3e4da.js';
3
-
4
- const SHOW_MORE_ITEM_NAME = "__SHOWMORE__";
5
- const MAX_FILTERS = 5;
6
- const SnkFilterList = class {
7
- constructor(hostRef) {
8
- registerInstance(this, hostRef);
9
- this.snkItemSelected = createEvent(this, "snkItemSelected", 7);
10
- this.innerClickCheck = (floatingContainer, node) => {
11
- if (node && floatingContainer) {
12
- if (!node.offsetParent) {
13
- return true;
14
- }
15
- let current = node;
16
- do {
17
- if (current === floatingContainer || current === this._element) {
18
- return true;
19
- }
20
- } while ((current = current.offsetParent) != null);
21
- }
22
- this._detailIsVisible = false;
23
- return false;
24
- };
25
- }
26
- showList() {
27
- this._floatingID = FloatingManager.float(this._popover, this._popoverContainer, { autoClose: true, innerClickTest: this.innerClickCheck });
28
- this._detailIsVisible = true;
29
- this._showAll = false;
30
- this._filterArgument = "";
31
- }
32
- hideList() {
33
- if (this._floatingID != undefined) {
34
- FloatingManager.close(this._floatingID);
35
- }
36
- this._floatingID = undefined;
37
- this._detailIsVisible = false;
38
- }
39
- buttonClick() {
40
- if (this._detailIsVisible) {
41
- this.hideList();
42
- }
43
- else {
44
- this.showList();
45
- }
46
- }
47
- componentDidRender() {
48
- if (this._floatingID == undefined) {
49
- if (this._popover) {
50
- this._popover.remove();
51
- }
52
- }
53
- }
54
- buildItemElement(item) {
55
- return (h("div", { class: "ez-col ez-col--sd-12 ez-align--middle ez-padding--small sc-snk-filter-bar snk-filter-bar__filter-list-item", onClick: () => this.itemSelected(item.name) }, item.iconName ? h("ez-icon", { iconName: item.iconName, size: "small", class: `ez-padding-right--extra-small sc-snk-filter-bar snk-filter-bar__filter-list-item__icon ${item.iconClass || ""}` }) : undefined, h("div", { class: `ez-text ez-text--medium ez-text--primary ez-padding--extra-small sc-snk-filter-bar snk-filter-bar__filter-list-item__label ${item.labelClass || ""}` }, item.label)));
56
- }
57
- itemSelected(itemName) {
58
- if (itemName === SHOW_MORE_ITEM_NAME) {
59
- this._showAll = true;
60
- }
61
- else {
62
- this.hideList();
63
- this.snkItemSelected.emit(itemName);
64
- }
65
- }
66
- getFilterItems() {
67
- const items = this.items ? ArrayUtils.applyStringFilter(this._filterArgument, this.items.filter(item => item.kind === "FILTER")) : [];
68
- if (items.length === 0) {
69
- return h("div", { class: "ez-text ez-text--medium ez-text--primary ez-padding--extra-small sc-snk-filter-bar snk-filter-bar__filter-list-items-container--empty" }, this.emptyText);
70
- }
71
- const hideItems = !this._filterArgument && !this._showAll && (items.length > MAX_FILTERS + 1);
72
- if (hideItems) {
73
- items.splice(MAX_FILTERS);
74
- items.push({ kind: "INTERNAL", label: "Mostrar mais", iconName: "dots-horizontal", name: SHOW_MORE_ITEM_NAME, iconClass: "snk-filter-bar__filter-list-item__icon--secondary", labelClass: "snk-filter-bar__filter-list-item__label--secondary" });
75
- }
76
- return h("div", { class: "sc-snk-filter-bar snk-filter-bar__filter-list-items-container" }, items.map(item => this.buildItemElement(item)));
77
- }
78
- getFooterItems() {
79
- return this.items.filter(item => item.kind === "FOOTER");
80
- }
81
- render() {
82
- return (h(Host, { class: "ez-flex ez-flex--column" }, h("ez-button", { class: this.buttonClass, label: this.label, onClick: () => this.buttonClick(), mode: this.iconName ? "icon" : undefined, iconName: this.iconName, size: "small" }, h("slot", { name: "leftIcon" })), h("section", { class: "ez-margin-top--small sc-snk-filter-bar snk-filter__popover-container", ref: elem => this._popoverContainer = elem }, h("div", { class: "sc-snk-filter-bar snk-filter__popover ez-padding--small", ref: elem => this._popover = elem }, h("ez-filter-input", { ref: ref => this._filterInput = ref, mode: "slim", label: this.findFilterText, value: this._filterArgument, onEzChange: (evt) => this._filterArgument = evt.detail }), this.getFilterItems(), h("hr", { class: "sc-snk-filter-bar snk-filter__popover-rule" }), this.items ? this.getFooterItems().map(item => this.buildItemElement(item)) : undefined))));
83
- }
84
- get _element() { return getElement(this); }
85
- };
86
-
87
- export { SnkFilterList as snk_filter_list };
@@ -1,75 +0,0 @@
1
- import { r as registerInstance, e as createEvent, h, g as getElement } from './index-2b4d2d14.js';
2
- import { A as ApplicationContext } from './index-f1d3e4da.js';
3
- import { T as TaskbarElement } from './taskbar-elements-35d64ff9.js';
4
- import { T as TaskbarProcessor } from './taskbar-processor-aa6772c9.js';
5
-
6
- const snkGridCss = ".snk-grid__container.sc-snk-grid{display:flex;height:100%;width:100%}.snk-grid__header.sc-snk-grid{display:flex;flex-wrap:nowrap;width:100%}.snk-grid__filter-bar.sc-snk-grid{width:100%}.snk-grid__header-divider.sc-snk-grid{margin-bottom:var(--space--small)}";
7
-
8
- const SnkGrid = class {
9
- constructor(hostRef) {
10
- registerInstance(this, hostRef);
11
- this.actionClick = createEvent(this, "actionClick", 7);
12
- this.gridDoubleClick = createEvent(this, "gridDoubleClick", 7);
13
- this._topTaskbarProcessor = new TaskbarProcessor({
14
- "snkGridTopTaskbar": ["FORM_MODE", "CONFIG_GRID", "INSERT"]
15
- });
16
- this._headerTaskbarProcessor = new TaskbarProcessor({
17
- "snkGridHeaderTaskbar.unselected": ["REFRESH"],
18
- "snkGridHeaderTaskbar.selected": ["UPDATE", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "REFRESH"]
19
- });
20
- }
21
- actionClickHandler(evt) {
22
- if (evt.detail === TaskbarElement.CONFIG_GRID && this._grid) {
23
- this._grid.openGridConfig();
24
- }
25
- }
26
- saveConfig(config) {
27
- const snkApplication = ApplicationContext.getContextValue("__SNK__APPLICATION__");
28
- if (snkApplication) {
29
- snkApplication.saveGridConfig(config);
30
- }
31
- }
32
- componentWillLoad() {
33
- const snkApplication = ApplicationContext.getContextValue("__SNK__APPLICATION__");
34
- if (snkApplication) {
35
- snkApplication.loadGridConfig(this.configName).then(cfg => {
36
- this._gridConfig = cfg;
37
- this._configLoaded = true;
38
- });
39
- //Forçamos a carga dos acessos pra aproveitar a request inicial.
40
- snkApplication.getAllAccess();
41
- }
42
- let parent = this._element.parentElement;
43
- while (parent) {
44
- if (parent.tagName.toUpperCase() === "SNK-DATA-UNIT") {
45
- this._snkDataUnit = parent;
46
- this._dataUnit = this._snkDataUnit.dataUnit;
47
- if (!this._dataUnit) {
48
- this._snkDataUnit.addEventListener("dataUnitReady", (evt) => {
49
- this._dataUnit = evt.detail;
50
- });
51
- }
52
- this._snkDataUnit.addEventListener("dataStateChange", (evt) => {
53
- this._dataState = evt.detail;
54
- });
55
- break;
56
- }
57
- parent = parent.parentElement;
58
- }
59
- }
60
- componentWillRender() {
61
- const headerTaskbarId = this._dataState && this._dataState.selectedRecords.length > 0 ? "snkGridHeaderTaskbar.selected" : "snkGridHeaderTaskbar.unselected";
62
- this._headerTaskbarProcessor.process(headerTaskbarId, this.taskbarManager, this._dataState);
63
- this._topTaskbarProcessor.process("snkGridTopTaskbar", this.taskbarManager, this._dataState);
64
- }
65
- render() {
66
- if (!this._configLoaded || !this._dataUnit) {
67
- return undefined;
68
- }
69
- return (h("div", { class: "snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, h("div", { class: "snk-grid__header ez-padding-bottom--medium ez-margin-bottom--medium" }, h("snk-filter-bar", { dataUnit: this._dataUnit, class: "snk-grid__filter-bar ez-align--top", configName: this.configName }), h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" }), h("snk-taskbar", { class: "ez-padding-left--medium", onActionClick: evt => this.actionClickHandler(evt), key: "topTaskbar", dataUnit: this._dataUnit, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: "INSERT" })), 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 }, h("snk-taskbar", { dataUnit: this._dataUnit, buttons: this._headerTaskbarProcessor.buttons, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.actionsList })), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" }))));
70
- }
71
- get _element() { return getElement(this); }
72
- };
73
- SnkGrid.style = snkGridCss;
74
-
75
- export { SnkGrid as snk_grid };
@@ -1,156 +0,0 @@
1
- import { r as registerInstance, e as createEvent, h, f as Host } from './index-2b4d2d14.js';
2
- import { A as ApplicationContext } from './index-f1d3e4da.js';
3
- import { T as TaskbarElement, V as VisibleWhenForbidden, A as AuthorizationElements, b as buildElem, a as buildCustomButton } from './taskbar-elements-35d64ff9.js';
4
-
5
- const snkTaskbarCss = ".sc-snk-taskbar-h{display:flex}";
6
-
7
- const SnkTaskbar = class {
8
- constructor(hostRef) {
9
- registerInstance(this, hostRef);
10
- this.actionClick = createEvent(this, "actionClick", 7);
11
- this._titleKeyByElement = {
12
- [TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
13
- [TaskbarElement.PREVIOUS]: "snkTaskbar.titlePrevious",
14
- [TaskbarElement.NEXT]: "snkTaskbar.titleNext",
15
- [TaskbarElement.REFRESH]: "snkTaskbar.titleRefresh",
16
- [TaskbarElement.CLONE]: "snkTaskbar.titleClone",
17
- [TaskbarElement.REMOVE]: "snkTaskbar.titleRemove",
18
- [TaskbarElement.MORE_OPTIONS]: "snkTaskbar.titleMoreOptions",
19
- [TaskbarElement.INSERT]: "snkTaskbar.titleInsert",
20
- [TaskbarElement.CANCEL]: "snkTaskbar.titleCancel",
21
- [TaskbarElement.SAVE]: "snkTaskbar.titleSave",
22
- [TaskbarElement.GRID_MODE]: "snkTaskbar.titleGridMode",
23
- [TaskbarElement.CONFIG_GRID]: "snkTaskbar.titleConfigGrid",
24
- [TaskbarElement.FORM_MODE]: "snkTaskbar.titleFormMode"
25
- };
26
- }
27
- observeButtons() {
28
- this._definitions = undefined;
29
- }
30
- // Internal methods
31
- elementsFromString(strButtons) {
32
- const elements = [];
33
- if (strButtons) {
34
- strButtons.split(",").forEach(buttonName => {
35
- buttonName = buttonName.trim();
36
- if (VisibleWhenForbidden[buttonName] || this.isAllowed(buttonName)) {
37
- elements.push(buttonName.trim());
38
- }
39
- });
40
- }
41
- return elements;
42
- }
43
- isAllowed(buttonName) {
44
- if (AuthorizationElements[buttonName]) {
45
- return this._permissions ? this._permissions.isSup || this._permissions[buttonName] : false;
46
- }
47
- return true;
48
- }
49
- /**
50
- * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
51
- * através de um pequeno modulo na estrutura da aplicação:
52
- * - Criar um arquivo no seguinte caminho: /messages/appmessages.msg.js.
53
- * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-taskbar.msg.ts"
54
- */
55
- getTitle(element) {
56
- let key;
57
- if (this.isAllowed(element)) {
58
- key = this._titleKeyByElement[element];
59
- }
60
- else {
61
- key = "snkTaskbar.forbidden";
62
- }
63
- return key ? this._application.messagesBuilder.getMessage(key, {}) : "";
64
- }
65
- elementClick(elem) {
66
- if (this.dataUnit) {
67
- switch (elem) {
68
- case TaskbarElement.PREVIOUS:
69
- this.dataUnit.previousRecord();
70
- break;
71
- case TaskbarElement.NEXT:
72
- this.dataUnit.nextRecord();
73
- break;
74
- case TaskbarElement.REFRESH:
75
- this.dataUnit.loadData();
76
- break;
77
- case TaskbarElement.CLONE:
78
- this.dataUnit.copySelected();
79
- break;
80
- case TaskbarElement.REMOVE:
81
- this.dataUnit.removeSelectedRecords();
82
- break;
83
- case TaskbarElement.INSERT:
84
- this.dataUnit.addRecord();
85
- break;
86
- case TaskbarElement.CANCEL:
87
- this.dataUnit.cancelEdition();
88
- break;
89
- case TaskbarElement.SAVE:
90
- this.dataUnit.saveData();
91
- break;
92
- }
93
- }
94
- this.actionClick.emit(elem);
95
- }
96
- isEnabled(elem) {
97
- if (!this.isAllowed(elem)) {
98
- return false;
99
- }
100
- return !(this.disabledButtons && this.disabledButtons.includes(elem));
101
- }
102
- getElement(index, def) {
103
- let className = def === this.primaryButton ? "ez-button--primary " : "";
104
- if (index > 1) {
105
- className += "ez-padding-left--medium";
106
- }
107
- if (TaskbarElement[def.toString()]) {
108
- return buildElem(def, className, elem => this.getTitle(elem), elem => this.elementClick(elem), elem => this.isEnabled(elem), this.actionsList);
109
- }
110
- else {
111
- return buildCustomButton(def, className, elem => this.elementClick(elem), elem => this.isEnabled(elem));
112
- }
113
- }
114
- // Lifecycle
115
- componentWillLoad() {
116
- this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
117
- if (this._application) {
118
- this._application.getAllAccess().then(access => this._permissions = access);
119
- }
120
- else {
121
- this._permissions = {};
122
- }
123
- }
124
- componentWillRender() {
125
- if (this._definitions == undefined && this._permissions) {
126
- this._definitions = this.elementsFromString(this.buttons);
127
- }
128
- }
129
- render() {
130
- if (this._definitions === undefined) {
131
- return undefined;
132
- }
133
- let index = 0;
134
- return (h(Host, null, this._definitions.map((elem) => {
135
- if (elem === TaskbarElement.DIVIDER) {
136
- index = 0;
137
- }
138
- else {
139
- index++;
140
- }
141
- if (TaskbarElement[elem]) {
142
- return this.getElement(index, TaskbarElement[elem]);
143
- }
144
- if (this.customButtons.has(elem)) {
145
- return this.getElement(index, this.customButtons.get(elem));
146
- }
147
- return h("slot", { name: elem });
148
- })));
149
- }
150
- static get watchers() { return {
151
- "buttons": ["observeButtons"]
152
- }; }
153
- };
154
- SnkTaskbar.style = snkTaskbarCss;
155
-
156
- export { SnkTaskbar as snk_taskbar };
@@ -1,90 +0,0 @@
1
- import { h } from './index-2b4d2d14.js';
2
-
3
- var TaskbarElement;
4
- (function (TaskbarElement) {
5
- TaskbarElement["PREVIOUS"] = "PREVIOUS";
6
- TaskbarElement["NEXT"] = "NEXT";
7
- TaskbarElement["REFRESH"] = "REFRESH";
8
- TaskbarElement["UPDATE"] = "UPDATE";
9
- TaskbarElement["CLONE"] = "CLONE";
10
- TaskbarElement["REMOVE"] = "REMOVE";
11
- TaskbarElement["INSERT"] = "INSERT";
12
- TaskbarElement["CANCEL"] = "CANCEL";
13
- TaskbarElement["SAVE"] = "SAVE";
14
- TaskbarElement["GRID_MODE"] = "GRID_MODE";
15
- TaskbarElement["FORM_MODE"] = "FORM_MODE";
16
- TaskbarElement["CONFIG_GRID"] = "CONFIG_GRID";
17
- TaskbarElement["MORE_OPTIONS"] = "MORE_OPTIONS";
18
- TaskbarElement["DIVIDER"] = "DIVIDER";
19
- })(TaskbarElement || (TaskbarElement = {}));
20
- var AuthorizationElements;
21
- (function (AuthorizationElements) {
22
- AuthorizationElements["UPDATE"] = "UPDATE";
23
- AuthorizationElements["CLONE"] = "CLONE";
24
- AuthorizationElements["REMOVE"] = "REMOVE";
25
- AuthorizationElements["INSERT"] = "INSERT";
26
- AuthorizationElements["CONFIG_GRID"] = "CONFIG_GRID";
27
- })(AuthorizationElements || (AuthorizationElements = {}));
28
- var VisibleWhenForbidden;
29
- (function (VisibleWhenForbidden) {
30
- VisibleWhenForbidden["CONFIG_GRID"] = "CONFIG_GRID";
31
- })(VisibleWhenForbidden || (VisibleWhenForbidden = {}));
32
- const buildCustomButton = (def, className, action, isEnabled) => {
33
- const { hint, text, iconName } = def;
34
- if (iconName) {
35
- if (text) {
36
- return iconTextButton(iconName, def.name, className, hint, text, action, isEnabled);
37
- }
38
- else {
39
- return iconButton(iconName, def.name, className, hint, action, isEnabled);
40
- }
41
- }
42
- else {
43
- return textButton(def.name, className, text, hint, action, isEnabled);
44
- }
45
- };
46
- const buildElem = (element, className, getTitle, action, isEnabled, actions) => {
47
- const title = getTitle(element);
48
- switch (element) {
49
- case TaskbarElement.PREVIOUS:
50
- return iconButton("chevron-left", element, className, title, action, isEnabled);
51
- case TaskbarElement.NEXT:
52
- return iconButton("chevron-right", element, className, title, action, isEnabled);
53
- case TaskbarElement.REFRESH:
54
- return iconButton("sync", element, className, title, action, isEnabled);
55
- case TaskbarElement.UPDATE:
56
- return iconButton("edit", element, className, title, action, isEnabled);
57
- case TaskbarElement.CLONE:
58
- return iconButton("copy", element, className, title, action, isEnabled);
59
- case TaskbarElement.REMOVE:
60
- return iconButton("delete", element, className, title, action, isEnabled);
61
- case TaskbarElement.INSERT:
62
- return iconTextButton("plus", element, className, title, title, action, isEnabled);
63
- case TaskbarElement.CANCEL:
64
- return textButton(element, className, title, title, action, isEnabled);
65
- case TaskbarElement.SAVE:
66
- return iconTextButton("save", element, className, title, title, action, isEnabled);
67
- case TaskbarElement.GRID_MODE:
68
- return iconButton("table", element, className, title, action, isEnabled);
69
- case TaskbarElement.FORM_MODE:
70
- return iconButton("list", element, className, title, action, isEnabled);
71
- case TaskbarElement.CONFIG_GRID:
72
- return iconButton("settings-inverted", element, className, title, action, isEnabled);
73
- case TaskbarElement.MORE_OPTIONS:
74
- return actions && actions.length > 0 ? h("ez-actions-button", { title: title, size: "small", class: className, enabled: isEnabled(element), onEzAction: (evt) => action(evt.detail.value), actions: actions }) : undefined;
75
- case TaskbarElement.DIVIDER:
76
- return h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-horizontal--medium" });
77
- }
78
- };
79
- function textButton(name, className, text, title, action, isEnabled) {
80
- return h("ez-button", { title: title, label: text, size: "small", class: className, enabled: isEnabled(name), onClick: () => action(name) });
81
- }
82
- function iconButton(iconName, name, className, title, action, isEnabled) {
83
- return h("ez-button", { name: iconName, title: title, mode: "icon", size: "small", class: className, iconName: iconName, enabled: isEnabled(name), onClick: () => action(name) });
84
- }
85
- function iconTextButton(iconName, name, className, text, title, action, isEnabled) {
86
- return h("ez-button", { name: iconName, title: title, label: text, size: "small", class: className, enabled: isEnabled(name), onClick: () => action(name) },
87
- h("ez-icon", { class: "ez-padding-right--small", slot: "leftIcon", iconName: iconName }));
88
- }
89
-
90
- export { AuthorizationElements as A, TaskbarElement as T, VisibleWhenForbidden as V, buildCustomButton as a, buildElem as b };
@@ -1,45 +0,0 @@
1
- class TaskbarProcessor {
2
- constructor(defaultButtons) {
3
- this._defaultButtons = defaultButtons;
4
- }
5
- process(taskbarId, taskbarManager, dataState, disabledButtons = []) {
6
- var _a;
7
- this.customButtons = new Map();
8
- this.buttons = "";
9
- this.disabledButtons = [];
10
- (_a = this.getButtonsArray(taskbarId, taskbarManager, dataState)) === null || _a === void 0 ? void 0 : _a.forEach(btnDef => {
11
- let buttonName;
12
- if (typeof btnDef === "string") {
13
- buttonName = btnDef;
14
- }
15
- else {
16
- const customBtn = btnDef;
17
- this.customButtons.set(customBtn.name, customBtn);
18
- buttonName = customBtn.name;
19
- }
20
- if (!this.isEnabled(taskbarId, taskbarManager, buttonName, dataState, disabledButtons)) {
21
- this.disabledButtons.push(buttonName);
22
- }
23
- if (this.buttons.length > 0) {
24
- this.buttons += ",";
25
- }
26
- this.buttons += buttonName;
27
- });
28
- }
29
- getButtonsArray(taskbarId, taskbarManager, dataState) {
30
- const defaults = this._defaultButtons[taskbarId];
31
- if (taskbarManager) {
32
- return taskbarManager.getButtons(taskbarId, dataState, [...defaults]);
33
- }
34
- return defaults;
35
- }
36
- isEnabled(taskbarId, taskbarManager, buttonName, dataState, disabled) {
37
- const originalValue = disabled.includes(buttonName) ? false : true;
38
- if (taskbarManager && taskbarManager.isEnabled) {
39
- return taskbarManager.isEnabled(taskbarId, dataState, buttonName, originalValue);
40
- }
41
- return originalValue;
42
- }
43
- }
44
-
45
- export { TaskbarProcessor as T };
@@ -1,3 +0,0 @@
1
- const globalScripts = () => {};
2
-
3
- export { globalScripts as g };
@@ -1,4 +0,0 @@
1
- /*
2
- Stencil Client Patch Esm v2.18.1 | MIT Licensed | https://stenciljs.com
3
- */
4
- var __assign=undefined&&undefined.__assign||function(){return (__assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var s in t=arguments[r])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e}).apply(this,arguments)},StyleNode=function(){this.start=0,this.end=0,this.previous=null,this.parent=null,this.rules=null,this.parsedCssText="",this.cssText="",this.atRule=!1,this.type=0,this.keyframesName="",this.selector="",this.parsedSelector="";};function parse(e){return parseCss(lex(e=clean(e)),e)}function clean(e){return e.replace(RX.comments,"").replace(RX.port,"")}function lex(e){var t=new StyleNode;t.start=0,t.end=e.length;for(var r=t,n=0,s=e.length;n<s;n++)if(e[n]===OPEN_BRACE){r.rules||(r.rules=[]);var o=r,a=o.rules[o.rules.length-1]||null;(r=new StyleNode).start=n+1,r.parent=o,r.previous=a,o.rules.push(r);}else e[n]===CLOSE_BRACE&&(r.end=n+1,r=r.parent||t);return t}function parseCss(e,t){var r=t.substring(e.start,e.end-1);if(e.parsedCssText=e.cssText=r.trim(),e.parent){var n=e.previous?e.previous.end:e.parent.start;r=(r=(r=_expandUnicodeEscapes(r=t.substring(n,e.start-1))).replace(RX.multipleSpaces," ")).substring(r.lastIndexOf(";")+1);var s=e.parsedSelector=e.selector=r.trim();e.atRule=0===s.indexOf(AT_START),e.atRule?0===s.indexOf(MEDIA_START)?e.type=types.MEDIA_RULE:s.match(RX.keyframesRule)&&(e.type=types.KEYFRAMES_RULE,e.keyframesName=e.selector.split(RX.multipleSpaces).pop()):0===s.indexOf(VAR_START)?e.type=types.MIXIN_RULE:e.type=types.STYLE_RULE;}var o=e.rules;if(o)for(var a=0,i=o.length,l=void 0;a<i&&(l=o[a]);a++)parseCss(l,t);return e}function _expandUnicodeEscapes(e){return e.replace(/\\([0-9a-f]{1,6})\s/gi,(function(){for(var e=arguments[1],t=6-e.length;t--;)e="0"+e;return "\\"+e}))}var types={STYLE_RULE:1,KEYFRAMES_RULE:7,MEDIA_RULE:4,MIXIN_RULE:1e3},OPEN_BRACE="{",CLOSE_BRACE="}",RX={comments:/\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,port:/@import[^;]*;/gim,customProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,mixinProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,mixinApply:/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,varApply:/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,keyframesRule:/^@[^\s]*keyframes/,multipleSpaces:/\s+/g},VAR_START="--",MEDIA_START="@media",AT_START="@",VAR_USAGE_START=/\bvar\(/,VAR_ASSIGN_START=/\B--[\w-]+\s*:/,COMMENTS=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,TRAILING_LINES=/^[\t ]+\n/gm;function findRegex(e,t,r){e.lastIndex=0;var n=t.substring(r).match(e);if(n){var s=r+n.index;return {start:s,end:s+n[0].length}}return null}function resolveVar(e,t,r){return e[t]?e[t]:r?executeTemplate(r,e):""}function findVarEndIndex(e,t){for(var r=0,n=t;n<e.length;n++){var s=e[n];if("("===s)r++;else if(")"===s&&--r<=0)return n+1}return n}function parseVar(e,t){var r=findRegex(VAR_USAGE_START,e,t);if(!r)return null;var n=findVarEndIndex(e,r.start),s=e.substring(r.end,n-1).split(","),o=s[0],a=s.slice(1);return {start:r.start,end:n,propName:o.trim(),fallback:a.length>0?a.join(",").trim():void 0}}function compileVar(e,t,r){var n=parseVar(e,r);if(!n)return t.push(e.substring(r,e.length)),e.length;var s=n.propName,o=null!=n.fallback?compileTemplate(n.fallback):void 0;return t.push(e.substring(r,n.start),(function(e){return resolveVar(e,s,o)})),n.end}function executeTemplate(e,t){for(var r="",n=0;n<e.length;n++){var s=e[n];r+="string"==typeof s?s:s(t);}return r}function findEndValue(e,t){for(var r=!1,n=!1,s=t;s<e.length;s++){var o=e[s];if(r)n&&'"'===o&&(r=!1),n||"'"!==o||(r=!1);else if('"'===o)r=!0,n=!0;else if("'"===o)r=!0,n=!1;else {if(";"===o)return s+1;if("}"===o)return s}}return s}function removeCustomAssigns(e){for(var t="",r=0;;){var n=findRegex(VAR_ASSIGN_START,e,r),s=n?n.start:e.length;if(t+=e.substring(r,s),!n)break;r=findEndValue(e,s);}return t}function compileTemplate(e){var t=0;e=removeCustomAssigns(e=e.replace(COMMENTS,"")).replace(TRAILING_LINES,"");for(var r=[];t<e.length;)t=compileVar(e,r,t);return r}function resolveValues(e){var t={};e.forEach((function(e){e.declarations.forEach((function(e){t[e.prop]=e.value;}));}));for(var r={},n=Object.entries(t),s=function(e){var t=!1;if(n.forEach((function(e){var n=e[0],s=executeTemplate(e[1],r);s!==r[n]&&(r[n]=s,t=!0);})),!t)return "break"},o=0;o<10;o++){if("break"===s())break}return r}function getSelectors(e,t){if(void 0===t&&(t=0),!e.rules)return [];var r=[];return e.rules.filter((function(e){return e.type===types.STYLE_RULE})).forEach((function(e){var n=getDeclarations(e.cssText);n.length>0&&e.parsedSelector.split(",").forEach((function(e){e=e.trim(),r.push({selector:e,declarations:n,specificity:computeSpecificity(),nu:t});})),t++;})),r}function computeSpecificity(e){return 1}var IMPORTANT="!important",FIND_DECLARATIONS=/(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};{])+)|\{([^}]*)\}(?:(?=[;\s}])|$))/gm;function getDeclarations(e){for(var t,r=[];t=FIND_DECLARATIONS.exec(e.trim());){var n=normalizeValue(t[2]),s=n.value,o=n.important;r.push({prop:t[1].trim(),value:compileTemplate(s),important:o});}return r}function normalizeValue(e){var t=(e=e.replace(/\s+/gim," ").trim()).endsWith(IMPORTANT);return t&&(e=e.slice(0,e.length-IMPORTANT.length).trim()),{value:e,important:t}}function getActiveSelectors(e,t,r){var n=[],s=getScopesForElement(t,e);return r.forEach((function(e){return n.push(e)})),s.forEach((function(e){return n.push(e)})),sortSelectors(getSelectorsForScopes(n).filter((function(t){return matches(e,t.selector)})))}function getScopesForElement(e,t){for(var r=[];t;){var n=e.get(t);n&&r.push(n),t=t.parentElement;}return r}function getSelectorsForScopes(e){var t=[];return e.forEach((function(e){t.push.apply(t,e.selectors);})),t}function sortSelectors(e){return e.sort((function(e,t){return e.specificity===t.specificity?e.nu-t.nu:e.specificity-t.specificity})),e}function matches(e,t){return ":root"===t||"html"===t||e.matches(t)}function parseCSS(e){var t=parse(e),r=compileTemplate(e);return {original:e,template:r,selectors:getSelectors(t),usesCssVars:r.length>1}}function addGlobalStyle(e,t){if(e.some((function(e){return e.styleEl===t})))return !1;var r=parseCSS(t.textContent);return r.styleEl=t,e.push(r),!0}function updateGlobalScopes(e){var t=resolveValues(getSelectorsForScopes(e));e.forEach((function(e){e.usesCssVars&&(e.styleEl.textContent=executeTemplate(e.template,t));}));}function reScope(e,t){var r=e.template.map((function(r){return "string"==typeof r?replaceScope(r,e.scopeId,t):r})),n=e.selectors.map((function(r){return __assign(__assign({},r),{selector:replaceScope(r.selector,e.scopeId,t)})}));return __assign(__assign({},e),{template:r,selectors:n,scopeId:t})}function replaceScope(e,t,r){return e=replaceAll(e,"\\.".concat(t),".".concat(r))}function replaceAll(e,t,r){return e.replace(new RegExp(t,"g"),r)}function loadDocument(e,t){return loadDocumentStyles(e,t),loadDocumentLinks(e,t).then((function(){updateGlobalScopes(t);}))}function startWatcher(e,t){"undefined"!=typeof MutationObserver&&new MutationObserver((function(){loadDocumentStyles(e,t)&&updateGlobalScopes(t);})).observe(document.head,{childList:!0});}function loadDocumentLinks(e,t){for(var r=[],n=e.querySelectorAll('link[rel="stylesheet"][href]:not([data-no-shim])'),s=0;s<n.length;s++)r.push(addGlobalLink(e,t,n[s]));return Promise.all(r)}function loadDocumentStyles(e,t){return Array.from(e.querySelectorAll("style:not([data-styles]):not([data-no-shim])")).map((function(e){return addGlobalStyle(t,e)})).some(Boolean)}function addGlobalLink(e,t,r){var n=r.href;return fetch(n).then((function(e){return e.text()})).then((function(s){if(hasCssVariables(s)&&r.parentNode){hasRelativeUrls(s)&&(s=fixRelativeUrls(s,n));var o=e.createElement("style");o.setAttribute("data-styles",""),o.textContent=s,addGlobalStyle(t,o),r.parentNode.insertBefore(o,r),r.remove();}})).catch((function(e){console.error(e);}))}var CSS_VARIABLE_REGEXP=/[\s;{]--[-a-zA-Z0-9]+\s*:/m;function hasCssVariables(e){return e.indexOf("var(")>-1||CSS_VARIABLE_REGEXP.test(e)}var CSS_URL_REGEXP=/url[\s]*\([\s]*['"]?(?!(?:https?|data)\:|\/)([^\'\"\)]*)[\s]*['"]?\)[\s]*/gim;function hasRelativeUrls(e){return CSS_URL_REGEXP.lastIndex=0,CSS_URL_REGEXP.test(e)}function fixRelativeUrls(e,t){var r=t.replace(/[^/]*$/,"");return e.replace(CSS_URL_REGEXP,(function(e,t){var n=r+t;return e.replace(t,n)}))}var CustomStyle=function(){function e(e,t){this.win=e,this.doc=t,this.count=0,this.hostStyleMap=new WeakMap,this.hostScopeMap=new WeakMap,this.globalScopes=[],this.scopesMap=new Map,this.didInit=!1;}return e.prototype.i=function(){var e=this;return this.didInit||!this.win.requestAnimationFrame?Promise.resolve():(this.didInit=!0,new Promise((function(t){e.win.requestAnimationFrame((function(){startWatcher(e.doc,e.globalScopes),loadDocument(e.doc,e.globalScopes).then((function(){return t()}));}));})))},e.prototype.addLink=function(e){var t=this;return addGlobalLink(this.doc,this.globalScopes,e).then((function(){t.updateGlobal();}))},e.prototype.addGlobalStyle=function(e){addGlobalStyle(this.globalScopes,e)&&this.updateGlobal();},e.prototype.createHostStyle=function(e,t,r,n){if(this.hostScopeMap.has(e))throw new Error("host style already created");var s=this.registerHostTemplate(r,t,n),o=this.doc.createElement("style");return o.setAttribute("data-no-shim",""),s.usesCssVars?n?(o["s-sc"]=t="".concat(s.scopeId,"-").concat(this.count),o.textContent="/*needs update*/",this.hostStyleMap.set(e,o),this.hostScopeMap.set(e,reScope(s,t)),this.count++):(s.styleEl=o,s.usesCssVars||(o.textContent=executeTemplate(s.template,{})),this.globalScopes.push(s),this.updateGlobal(),this.hostScopeMap.set(e,s)):o.textContent=r,o},e.prototype.removeHost=function(e){var t=this.hostStyleMap.get(e);t&&t.remove(),this.hostStyleMap.delete(e),this.hostScopeMap.delete(e);},e.prototype.updateHost=function(e){var t=this.hostScopeMap.get(e);if(t&&t.usesCssVars&&t.isScoped){var r=this.hostStyleMap.get(e);if(r){var n=resolveValues(getActiveSelectors(e,this.hostScopeMap,this.globalScopes));r.textContent=executeTemplate(t.template,n);}}},e.prototype.updateGlobal=function(){updateGlobalScopes(this.globalScopes);},e.prototype.registerHostTemplate=function(e,t,r){var n=this.scopesMap.get(t);return n||((n=parseCSS(e)).scopeId=t,n.isScoped=r,this.scopesMap.set(t,n)),n},e}();!function(e){!e||e.__cssshim||e.CSS&&e.CSS.supports&&e.CSS.supports("color","var(--c)")||(e.__cssshim=new CustomStyle(e,e.document));}("undefined"!=typeof window&&window);