@revolist/revogrid 4.24.2 → 4.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/dist/cjs/app-globals-Dmf-wvGw.js +8 -0
  2. package/dist/cjs/{cell-renderer-DnOCJ9ge.js → cell-renderer-Cf2Pu4S0.js} +3 -3
  3. package/dist/cjs/{column.drag.plugin-DSiFObaj.js → column.drag.plugin-E_K6cIAy.js} +101 -13
  4. package/dist/cjs/{column.service-CD70rNL2.js → column.service-C7p5eC5V.js} +1 -1
  5. package/dist/cjs/{dimension.helpers-CB5sNw5J.js → dimension.helpers-CgHhnN1d.js} +1 -1
  6. package/dist/cjs/{edit.utils-DDxnq9lw.js → edit.utils-rAcGublN.js} +1 -1
  7. package/dist/cjs/{filter.button-C4xpvyyE.js → filter.button-F2Bw3UAd.js} +1 -1
  8. package/dist/cjs/{header-cell-renderer-JXYFwayd.js → header-cell-renderer-DHClfIto.js} +2 -2
  9. package/dist/cjs/{index-BF6JDcMr.js → index--FdNLz1Z.js} +1 -1
  10. package/dist/cjs/{index-Dq8Xzj5l.js → index-DRvxCueo.js} +61 -20
  11. package/dist/cjs/index.cjs.js +556 -47
  12. package/dist/cjs/loader.cjs.js +3 -4
  13. package/dist/cjs/revo-grid.cjs.entry.js +256 -28
  14. package/dist/cjs/revo-grid.cjs.js +4 -5
  15. package/dist/cjs/revogr-attribution_7.cjs.entry.js +9 -9
  16. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +6 -6
  17. package/dist/cjs/revogr-data_4.cjs.entry.js +8 -8
  18. package/dist/cjs/revogr-filter-panel.cjs.entry.js +19 -6
  19. package/dist/cjs/{text-editor-CvgloQdG.js → text-editor-F04kTx53.js} +2 -2
  20. package/dist/cjs/{viewport.store-Ci8H1bI9.js → viewport.store-B4Clk4m9.js} +1 -1
  21. package/dist/collection/collection-manifest.json +2 -3
  22. package/dist/collection/components/editors/revogr-edit-style.css +2 -2
  23. package/dist/collection/components/header/revogr-header-style.css +2 -2
  24. package/dist/collection/components/overlay/revogr-overlay-style.css +9 -6
  25. package/dist/collection/components/revoGrid/revo-grid-style.css +451 -276
  26. package/dist/collection/components/revoGrid/revo-grid.js +106 -35
  27. package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +6 -4
  28. package/dist/collection/components/selectionFocus/revogr-focus-style.css +1 -1
  29. package/dist/collection/components/selectionTempRange/revogr-temp-range-style.css +2 -2
  30. package/dist/collection/index.js +1 -0
  31. package/dist/collection/plugins/filter/filter.panel.js +36 -3
  32. package/dist/collection/plugins/filter/filter.plugin.js +21 -6
  33. package/dist/collection/plugins/filter/filter.style.css +43 -38
  34. package/dist/collection/serve/controller.js +18 -2
  35. package/dist/collection/themeManager/presets/aurora.js +89 -0
  36. package/dist/collection/themeManager/presets/high-contrast-dark.js +89 -0
  37. package/dist/collection/themeManager/presets/high-contrast.js +89 -0
  38. package/dist/collection/themeManager/presets/index.js +25 -0
  39. package/dist/collection/themeManager/presets/midnight.js +89 -0
  40. package/dist/collection/themeManager/presets/ocean.js +89 -0
  41. package/dist/collection/themeManager/presets/shared.js +64 -0
  42. package/dist/collection/themeManager/theme.service.js +141 -20
  43. package/dist/collection/types/theme.js +73 -1
  44. package/dist/esm/app-globals-CA4dvSNd.js +6 -0
  45. package/dist/{revo-grid/cell-renderer-BQjko1zB.js → esm/cell-renderer-11cf-lu3.js} +3 -3
  46. package/dist/{revo-grid/column.drag.plugin-Cf9DYdQj.js → esm/column.drag.plugin-DKgC_0I1.js} +100 -14
  47. package/dist/esm/{column.service-BnFqXqQG.js → column.service-Cfw3L0PN.js} +1 -1
  48. package/dist/esm/{dimension.helpers-CXrsUc6f.js → dimension.helpers-fl4HSSK9.js} +1 -1
  49. package/dist/esm/{edit.utils-CXmmCnxE.js → edit.utils-4e9fsqOR.js} +1 -1
  50. package/dist/esm/{filter.button-B-RBiF67.js → filter.button-DMhpuAiw.js} +1 -1
  51. package/dist/esm/{header-cell-renderer-B3mYpZD3.js → header-cell-renderer-Cqtg1ETB.js} +2 -2
  52. package/dist/esm/{index-Chp_81rd.js → index-CtimkLsB.js} +62 -20
  53. package/dist/esm/{index-DBqlJITb.js → index-D24ku9ej.js} +1 -1
  54. package/dist/esm/index.js +513 -13
  55. package/dist/esm/loader.js +4 -5
  56. package/dist/esm/revo-grid.entry.js +255 -27
  57. package/dist/esm/revo-grid.js +5 -6
  58. package/dist/esm/revogr-attribution_7.entry.js +9 -9
  59. package/dist/esm/revogr-clipboard_3.entry.js +6 -6
  60. package/dist/esm/revogr-data_4.entry.js +8 -8
  61. package/dist/esm/revogr-filter-panel.entry.js +19 -6
  62. package/dist/{revo-grid/text-editor-DQtz2Y7B.js → esm/text-editor-DlMnLkRK.js} +2 -2
  63. package/dist/{revo-grid/viewport.store-D5jEuhLq.js → esm/viewport.store-BSXmsiZc.js} +1 -1
  64. package/dist/revo-grid/app-globals-CA4dvSNd.js +6 -0
  65. package/dist/{esm/cell-renderer-BQjko1zB.js → revo-grid/cell-renderer-11cf-lu3.js} +3 -3
  66. package/dist/{esm/column.drag.plugin-Cf9DYdQj.js → revo-grid/column.drag.plugin-DKgC_0I1.js} +100 -14
  67. package/dist/revo-grid/{column.service-BnFqXqQG.js → column.service-Cfw3L0PN.js} +1 -1
  68. package/dist/revo-grid/{dimension.helpers-CXrsUc6f.js → dimension.helpers-fl4HSSK9.js} +1 -1
  69. package/dist/revo-grid/{edit.utils-CXmmCnxE.js → edit.utils-4e9fsqOR.js} +1 -1
  70. package/dist/revo-grid/{filter.button-B-RBiF67.js → filter.button-DMhpuAiw.js} +1 -1
  71. package/dist/revo-grid/{header-cell-renderer-B3mYpZD3.js → header-cell-renderer-Cqtg1ETB.js} +2 -2
  72. package/dist/revo-grid/{index-Chp_81rd.js → index-CtimkLsB.js} +62 -20
  73. package/dist/revo-grid/{index-DBqlJITb.js → index-D24ku9ej.js} +1 -1
  74. package/dist/revo-grid/index.esm.js +513 -13
  75. package/dist/revo-grid/revo-grid.entry.js +255 -27
  76. package/dist/revo-grid/revo-grid.esm.js +5 -6
  77. package/dist/revo-grid/revogr-attribution_7.entry.js +9 -9
  78. package/dist/revo-grid/revogr-clipboard_3.entry.js +6 -6
  79. package/dist/revo-grid/revogr-data_4.entry.js +8 -8
  80. package/dist/revo-grid/revogr-filter-panel.entry.js +19 -6
  81. package/dist/{esm/text-editor-DQtz2Y7B.js → revo-grid/text-editor-DlMnLkRK.js} +2 -2
  82. package/dist/{esm/viewport.store-D5jEuhLq.js → revo-grid/viewport.store-BSXmsiZc.js} +1 -1
  83. package/dist/types/components/revoGrid/revo-grid.d.ts +16 -4
  84. package/dist/types/components.d.ts +28 -7
  85. package/dist/types/index.d.ts +1 -0
  86. package/dist/types/plugins/filter/filter.panel.d.ts +4 -0
  87. package/dist/types/plugins/filter/filter.plugin.d.ts +1 -0
  88. package/dist/types/plugins/filter/filter.types.d.ts +5 -0
  89. package/dist/types/stencil-public-runtime.d.ts +1 -0
  90. package/dist/types/themeManager/presets/aurora.d.ts +8 -0
  91. package/dist/types/themeManager/presets/high-contrast-dark.d.ts +8 -0
  92. package/dist/types/themeManager/presets/high-contrast.d.ts +8 -0
  93. package/dist/types/themeManager/presets/index.d.ts +33 -0
  94. package/dist/types/themeManager/presets/midnight.d.ts +8 -0
  95. package/dist/types/themeManager/presets/ocean.d.ts +8 -0
  96. package/dist/types/themeManager/presets/shared.d.ts +81 -0
  97. package/dist/types/themeManager/theme.service.d.ts +9 -6
  98. package/dist/types/types/theme.d.ts +88 -1
  99. package/hydrate/index.js +1307 -597
  100. package/hydrate/index.mjs +1307 -597
  101. package/package.json +4 -4
  102. package/standalone/index.js +1 -1
  103. package/standalone/revo-grid.js +1 -1
  104. package/standalone/revogr-edit2.js +1 -1
  105. package/standalone/revogr-filter-panel.js +1 -1
  106. package/standalone/revogr-focus2.js +1 -1
  107. package/standalone/revogr-header2.js +1 -1
  108. package/standalone/revogr-overlay-selection2.js +1 -1
  109. package/standalone/revogr-temp-range2.js +1 -1
  110. package/standalone/revogr-viewport-scroll2.js +1 -1
  111. package/dist/cjs/app-globals-CPPhEXmy.js +0 -26
  112. package/dist/cjs/theme.service-BgnxGIjK.js +0 -72
  113. package/dist/collection/global/global.js +0 -18
  114. package/dist/collection/themeManager/theme.compact.js +0 -8
  115. package/dist/collection/themeManager/theme.default.js +0 -8
  116. package/dist/collection/themeManager/theme.material.js +0 -8
  117. package/dist/esm/app-globals-B_B_OtEa.js +0 -24
  118. package/dist/esm/theme.service-BmnDvr6P.js +0 -69
  119. package/dist/revo-grid/app-globals-B_B_OtEa.js +0 -24
  120. package/dist/revo-grid/theme.service-BmnDvr6P.js +0 -69
  121. package/dist/types/global/global.d.ts +0 -1
  122. package/dist/types/themeManager/theme.compact.d.ts +0 -4
  123. package/dist/types/themeManager/theme.default.d.ts +0 -4
  124. package/dist/types/themeManager/theme.material.d.ts +0 -4
package/hydrate/index.js CHANGED
@@ -138,90 +138,8 @@ const NAMESPACE = 'revo-grid';
138
138
  const BUILD = /* revo-grid */ { allRenderFn: false, appendChildSlotFix: false, asyncLoading: true, attachStyles: true, cloneNodeFix: false, constructableCSS: false, cssAnnotations: true, deserializer: false, devTools: false, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: true, hostListenerTarget: true, hostListenerTargetBody: false, hostListenerTargetDocument: true, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: true, hydrateServerSide: true, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", invisiblePrehydration: false, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propChangeCallback: true, propMutable: true, propNumber: true, propString: true, reflect: true, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, serializer: false, shadowDelegatesFocus: false, shadowDom: false, shadowDomShim: true, shadowSlotAssignmentManual: false, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: true, svg: true, taskQueue: true, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: true };
139
139
  const Env = /* revo-grid */ {};
140
140
 
141
- class ThemeCompact {
142
- constructor() {
143
- this.defaultRowSize = 32;
144
- }
145
- }
146
-
147
- class ThemeDefault {
148
- constructor() {
149
- this.defaultRowSize = 27;
150
- }
151
- }
152
-
153
- class ThemeMaterial {
154
- constructor() {
155
- this.defaultRowSize = 42;
156
- }
157
- }
158
-
159
- const DEFAULT_THEME = 'default';
160
- const allowedThemes = [
161
- DEFAULT_THEME,
162
- 'material',
163
- 'compact',
164
- 'darkMaterial',
165
- 'darkCompact',
166
- ];
167
- class ThemeService {
168
- get theme() {
169
- return this.currentTheme;
170
- }
171
- get rowSize() {
172
- return this.customRowSize || this.currentTheme.defaultRowSize;
173
- }
174
- set rowSize(size) {
175
- this.customRowSize = size;
176
- }
177
- constructor(cfg) {
178
- this.customRowSize = 0;
179
- this.customRowSize = cfg.rowSize;
180
- this.register('default');
181
- }
182
- register(theme) {
183
- const parsedTheme = getTheme(theme);
184
- switch (parsedTheme) {
185
- case 'material':
186
- case 'darkMaterial':
187
- this.currentTheme = new ThemeMaterial();
188
- break;
189
- case 'compact':
190
- case 'darkCompact':
191
- this.currentTheme = new ThemeCompact();
192
- break;
193
- default:
194
- this.currentTheme = new ThemeDefault();
195
- break;
196
- }
197
- }
198
- }
199
- function getTheme(theme) {
200
- if (theme && allowedThemes.indexOf(theme) > -1) {
201
- return theme;
202
- }
203
- return DEFAULT_THEME;
204
- }
205
-
206
- function global$1 () {
207
- setMode(elm => {
208
- let theme = elm.theme || elm.getAttribute('theme');
209
- if (typeof theme === 'string') {
210
- theme = theme.trim();
211
- }
212
- const parsedTheme = getTheme(theme);
213
- if (parsedTheme !== theme) {
214
- elm.setAttribute('theme', parsedTheme);
215
- }
216
- return parsedTheme;
217
- });
218
- }
219
-
220
- const appGlobalScript = global$1 || (() => {});
221
- const globalScripts = appGlobalScript;
222
-
223
141
  /*
224
- Stencil Hydrate Platform v4.43.2 | MIT Licensed | https://stenciljs.com
142
+ Stencil Hydrate Platform v4.43.5 | MIT Licensed | https://stenciljs.com
225
143
  */
226
144
  var __create = Object.create;
227
145
  var __defProp = Object.defineProperty;
@@ -256,7 +174,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
256
174
  __defProp(target, "default", { value: mod, enumerable: true }) ,
257
175
  mod
258
176
  ));
259
- var __publicField = (obj, key, value) => __defNormalProp(obj, key + "" , value);
177
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
260
178
  var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
261
179
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
262
180
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
@@ -511,9 +429,9 @@ function getPropertyDescriptor(obj, memberName, getOnly) {
511
429
 
512
430
  // src/utils/es2022-rewire-class-members.ts
513
431
  var reWireGetterSetter = (instance, hostRef) => {
514
- var _a;
432
+ var _a2;
515
433
  const cmpMeta = hostRef.$cmpMeta$;
516
- const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
434
+ const members = Object.entries((_a2 = cmpMeta.$members$) != null ? _a2 : {});
517
435
  members.map(([memberName, [memberFlags]]) => {
518
436
  if ((BUILD.state || BUILD.prop) && (memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {
519
437
  const ogValue = instance[memberName];
@@ -579,7 +497,7 @@ function createStyleSheetIfNeededAndSupported(styles2) {
579
497
  // src/utils/shadow-root.ts
580
498
  var globalStyleSheet;
581
499
  function createShadowRoot(cmpMeta) {
582
- var _a;
500
+ var _a2;
583
501
  const opts = { mode: "open" };
584
502
  if (BUILD.shadowDelegatesFocus) {
585
503
  opts.delegatesFocus = !!(cmpMeta.$flags$ & 16 /* shadowDelegatesFocus */);
@@ -591,7 +509,7 @@ function createShadowRoot(cmpMeta) {
591
509
  }
592
510
  }
593
511
  const shadowRoot = this.attachShadow(opts);
594
- if (globalStyleSheet === void 0) globalStyleSheet = (_a = createStyleSheetIfNeededAndSupported()) != null ? _a : null;
512
+ if (globalStyleSheet === void 0) globalStyleSheet = (_a2 = createStyleSheetIfNeededAndSupported()) != null ? _a2 : null;
595
513
  if (globalStyleSheet) {
596
514
  {
597
515
  shadowRoot.adoptedStyleSheets = [...shadowRoot.adoptedStyleSheets, globalStyleSheet];
@@ -727,8 +645,8 @@ function dispatchSlotChangeEvent(elm) {
727
645
  elm.dispatchEvent(new CustomEvent("slotchange", { bubbles: false, cancelable: false, composed: false }));
728
646
  }
729
647
  function findSlotFromSlottedNode(slottedNode, parentHost) {
730
- var _a;
731
- parentHost = parentHost || ((_a = slottedNode["s-ol"]) == null ? void 0 : _a.parentElement);
648
+ var _a2;
649
+ parentHost = parentHost || ((_a2 = slottedNode["s-ol"]) == null ? void 0 : _a2.parentElement);
732
650
  if (!parentHost) return { slotNode: null, slotName: "" };
733
651
  const slotName = slottedNode["s-sn"] = getSlotName(slottedNode) || "";
734
652
  const childNodes = internalCall(parentHost, "childNodes");
@@ -1019,8 +937,8 @@ var patchNextSibling = (node) => {
1019
937
  patchHostOriginalAccessor("nextSibling", node);
1020
938
  Object.defineProperty(node, "nextSibling", {
1021
939
  get: function() {
1022
- var _a;
1023
- const parentNodes = (_a = this["s-ol"]) == null ? void 0 : _a.parentNode.childNodes;
940
+ var _a2;
941
+ const parentNodes = (_a2 = this["s-ol"]) == null ? void 0 : _a2.parentNode.childNodes;
1024
942
  const index = parentNodes == null ? void 0 : parentNodes.indexOf(this);
1025
943
  if (parentNodes && index > -1) {
1026
944
  return parentNodes[index + 1];
@@ -1034,8 +952,8 @@ var patchNextElementSibling = (element) => {
1034
952
  patchHostOriginalAccessor("nextElementSibling", element);
1035
953
  Object.defineProperty(element, "nextElementSibling", {
1036
954
  get: function() {
1037
- var _a;
1038
- const parentEles = (_a = this["s-ol"]) == null ? void 0 : _a.parentNode.children;
955
+ var _a2;
956
+ const parentEles = (_a2 = this["s-ol"]) == null ? void 0 : _a2.parentNode.children;
1039
957
  const index = parentEles == null ? void 0 : parentEles.indexOf(this);
1040
958
  if (parentEles && index > -1) {
1041
959
  return parentEles[index + 1];
@@ -1049,8 +967,8 @@ var patchPreviousSibling = (node) => {
1049
967
  patchHostOriginalAccessor("previousSibling", node);
1050
968
  Object.defineProperty(node, "previousSibling", {
1051
969
  get: function() {
1052
- var _a;
1053
- const parentNodes = (_a = this["s-ol"]) == null ? void 0 : _a.parentNode.childNodes;
970
+ var _a2;
971
+ const parentNodes = (_a2 = this["s-ol"]) == null ? void 0 : _a2.parentNode.childNodes;
1054
972
  const index = parentNodes == null ? void 0 : parentNodes.indexOf(this);
1055
973
  if (parentNodes && index > -1) {
1056
974
  return parentNodes[index - 1];
@@ -1064,8 +982,8 @@ var patchPreviousElementSibling = (element) => {
1064
982
  patchHostOriginalAccessor("previousElementSibling", element);
1065
983
  Object.defineProperty(element, "previousElementSibling", {
1066
984
  get: function() {
1067
- var _a;
1068
- const parentNodes = (_a = this["s-ol"]) == null ? void 0 : _a.parentNode.children;
985
+ var _a2;
986
+ const parentNodes = (_a2 = this["s-ol"]) == null ? void 0 : _a2.parentNode.children;
1069
987
  const index = parentNodes == null ? void 0 : parentNodes.indexOf(this);
1070
988
  if (parentNodes && index > -1) {
1071
989
  return parentNodes[index - 1];
@@ -1079,8 +997,8 @@ var patchParentNode = (node) => {
1079
997
  patchHostOriginalAccessor("parentNode", node);
1080
998
  Object.defineProperty(node, "parentNode", {
1081
999
  get: function() {
1082
- var _a;
1083
- return ((_a = this["s-ol"]) == null ? void 0 : _a.parentNode) || this.__parentNode;
1000
+ var _a2;
1001
+ return ((_a2 = this["s-ol"]) == null ? void 0 : _a2.parentNode) || this.__parentNode;
1084
1002
  },
1085
1003
  set: function(value) {
1086
1004
  this.__parentNode = value;
@@ -1210,8 +1128,8 @@ var installDevTools = () => {
1210
1128
 
1211
1129
  // src/utils/query-nonce-meta-tag-content.ts
1212
1130
  function queryNonceMetaTagContent(doc) {
1213
- var _a, _b, _c;
1214
- return (_c = (_b = (_a = doc.head) == null ? void 0 : _a.querySelector('meta[name="csp-nonce"]')) == null ? void 0 : _b.getAttribute("content")) != null ? _c : void 0;
1131
+ var _a2, _b, _c;
1132
+ return (_c = (_b = (_a2 = doc.head) == null ? void 0 : _a2.querySelector('meta[name="csp-nonce"]')) == null ? void 0 : _b.getAttribute("content")) != null ? _c : void 0;
1215
1133
  }
1216
1134
 
1217
1135
  // src/runtime/styles.ts
@@ -1224,7 +1142,7 @@ var registerStyle = (scopeId2, cssText, allowCS) => {
1224
1142
  styles.set(scopeId2, style);
1225
1143
  };
1226
1144
  var addStyle = (styleContainerNode, cmpMeta, mode) => {
1227
- var _a, _c;
1145
+ var _a2, _c;
1228
1146
  const scopeId2 = getScopeId(cmpMeta, mode);
1229
1147
  const style = styles.get(scopeId2);
1230
1148
  if (!BUILD.attachStyles || !win.document) {
@@ -1245,7 +1163,7 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
1245
1163
  } else if (!appliedStyles.has(scopeId2)) {
1246
1164
  styleElm = win.document.createElement("style");
1247
1165
  styleElm.textContent = style;
1248
- const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(win.document);
1166
+ const nonce = (_a2 = plt.$nonce$) != null ? _a2 : queryNonceMetaTagContent(win.document);
1249
1167
  if (nonce != null) {
1250
1168
  styleElm.setAttribute("nonce", nonce);
1251
1169
  }
@@ -1484,7 +1402,7 @@ var validateInputProperties = (inputElm) => {
1484
1402
 
1485
1403
  // src/runtime/client-hydrate.ts
1486
1404
  var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1487
- var _a, _b, _c, _d;
1405
+ var _a2, _b, _c, _d;
1488
1406
  const endHydrate = createTime("hydrateClient", tagName);
1489
1407
  const shadowRoot = hostElm.shadowRoot;
1490
1408
  const childRenderNodes = [];
@@ -1531,7 +1449,7 @@ var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1531
1449
  if (childRenderNode.$tag$ === "slot") {
1532
1450
  node["s-cr"] = hostElm["s-cr"];
1533
1451
  }
1534
- } else if (((_a = childRenderNode.$tag$) == null ? void 0 : _a.toString().includes("-")) && childRenderNode.$tag$ !== "slot-fb" && !childRenderNode.$elm$.shadowRoot) {
1452
+ } else if (((_a2 = childRenderNode.$tag$) == null ? void 0 : _a2.toString().includes("-")) && childRenderNode.$tag$ !== "slot-fb" && !childRenderNode.$elm$.shadowRoot) {
1535
1453
  const cmpMeta = getHostRef(childRenderNode.$elm$);
1536
1454
  if (cmpMeta) {
1537
1455
  const scopeId3 = getScopeId(
@@ -1881,10 +1799,10 @@ function addSlot(slotName, slotId, childVNode, node, parentVNode, childRenderNod
1881
1799
  parentVNode.$children$[childVNode.$index$] = childVNode;
1882
1800
  }
1883
1801
  var addSlottedNodes = (slottedNodes, slotNodeId, slotName, slotNode, hostId) => {
1884
- var _a, _b;
1802
+ var _a2, _b;
1885
1803
  let slottedNode = slotNode.nextSibling;
1886
1804
  slottedNodes[slotNodeId] = slottedNodes[slotNodeId] || [];
1887
- if (!slottedNode || ((_a = slottedNode.nodeValue) == null ? void 0 : _a.startsWith(SLOT_NODE_ID + "."))) return;
1805
+ if (!slottedNode || ((_a2 = slottedNode.nodeValue) == null ? void 0 : _a2.startsWith(SLOT_NODE_ID + "."))) return;
1888
1806
  do {
1889
1807
  if (slottedNode && ((slottedNode["getAttribute"] && slottedNode.getAttribute("slot") || slottedNode["s-sn"]) === slotName || slotName === "" && !slottedNode["s-sn"] && (!slottedNode["getAttribute"] || !slottedNode.getAttribute("slot")) && (slottedNode.nodeType === 8 /* CommentNode */ || slottedNode.nodeType === 3 /* TextNode */))) {
1890
1808
  slottedNode["s-sn"] = slotName;
@@ -2316,8 +2234,33 @@ var scopeCss = (cssText, scopeId2, commentOriginalSelector) => {
2316
2234
  var computeMode = (elm) => modeResolutionChain.map((h2) => h2(elm)).find((m) => !!m);
2317
2235
  var setMode = (handler) => modeResolutionChain.push(handler);
2318
2236
  var getMode = (ref) => {
2319
- var _a;
2320
- return (_a = getHostRef(ref)) == null ? void 0 : _a.$modeName$;
2237
+ var _a2;
2238
+ return (_a2 = getHostRef(ref)) == null ? void 0 : _a2.$modeName$;
2239
+ };
2240
+
2241
+ // src/runtime/normalize-watchers.ts
2242
+ var normalizeWatchers = (raw) => {
2243
+ if (!raw) return void 0;
2244
+ const keys = Object.keys(raw);
2245
+ if (keys.length === 0) return void 0;
2246
+ let hasLegacy = false;
2247
+ for (const propName of keys) {
2248
+ if (hasLegacy) break;
2249
+ for (const h2 of raw[propName]) {
2250
+ if (typeof h2 === "string") {
2251
+ hasLegacy = true;
2252
+ break;
2253
+ }
2254
+ }
2255
+ }
2256
+ if (!hasLegacy) return raw;
2257
+ const out = {};
2258
+ for (const propName of keys) {
2259
+ out[propName] = raw[propName].map(
2260
+ (h2) => typeof h2 === "string" ? { [h2]: 0 } : h2
2261
+ );
2262
+ }
2263
+ return out;
2321
2264
  };
2322
2265
 
2323
2266
  // src/utils/remote-value.ts
@@ -2416,11 +2359,19 @@ var RemoteValue = class _RemoteValue {
2416
2359
  };
2417
2360
 
2418
2361
  // src/utils/serialize.ts
2362
+ function decodeBase64Unicode(base64) {
2363
+ const binary = atob(base64);
2364
+ const bytes = new Uint8Array(binary.length);
2365
+ for (let i2 = 0; i2 < binary.length; i2++) {
2366
+ bytes[i2] = binary.charCodeAt(i2);
2367
+ }
2368
+ return new TextDecoder().decode(bytes);
2369
+ }
2419
2370
  function deserializeProperty(value) {
2420
2371
  if (typeof value !== "string" || !value.startsWith(SERIALIZED_PREFIX)) {
2421
2372
  return value;
2422
2373
  }
2423
- return RemoteValue.fromLocalValue(JSON.parse(atob(value.slice(SERIALIZED_PREFIX.length))));
2374
+ return RemoteValue.fromLocalValue(JSON.parse(decodeBase64Unicode(value.slice(SERIALIZED_PREFIX.length))));
2424
2375
  }
2425
2376
 
2426
2377
  // src/runtime/parse-property-value.ts
@@ -2448,8 +2399,8 @@ var parsePropertyValue = (propValue, propType, isFormAssociated) => {
2448
2399
  return propValue;
2449
2400
  };
2450
2401
  var getElement = (ref) => {
2451
- var _a;
2452
- return BUILD.lazyLoad ? (_a = getHostRef(ref)) == null ? void 0 : _a.$hostElement$ : ref;
2402
+ var _a2;
2403
+ return BUILD.lazyLoad ? (_a2 = getHostRef(ref)) == null ? void 0 : _a2.$hostElement$ : ref;
2453
2404
  };
2454
2405
 
2455
2406
  // src/runtime/event-emitter.ts
@@ -2678,7 +2629,7 @@ var isSvgMode = false;
2678
2629
  var refCallbacksToRemove = [];
2679
2630
  var refCallbacksToAttach = [];
2680
2631
  var createElm = (oldParentVNode, newParentVNode, childIndex) => {
2681
- var _a;
2632
+ var _a2;
2682
2633
  const newVNode2 = newParentVNode.$children$[childIndex];
2683
2634
  let i2 = 0;
2684
2635
  let elm;
@@ -2751,7 +2702,7 @@ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
2751
2702
  elm["s-sr"] = true;
2752
2703
  elm["s-cr"] = contentRef;
2753
2704
  elm["s-sn"] = newVNode2.$name$ || "";
2754
- elm["s-rf"] = (_a = newVNode2.$attrs$) == null ? void 0 : _a.ref;
2705
+ elm["s-rf"] = (_a2 = newVNode2.$attrs$) == null ? void 0 : _a2.ref;
2755
2706
  patchSlotNode(elm);
2756
2707
  oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
2757
2708
  if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {
@@ -3098,12 +3049,12 @@ var insertBefore = (parent, newNode, reference, isInitialLoad) => {
3098
3049
  }
3099
3050
  };
3100
3051
  function addRemoveSlotScopedClass(reference, slotNode, newParent, oldParent) {
3101
- var _a, _b;
3052
+ var _a2, _b;
3102
3053
  let scopeId2;
3103
3054
  if (reference && typeof slotNode["s-sn"] === "string" && !!slotNode["s-sr"] && reference.parentNode && reference.parentNode["s-sc"] && (scopeId2 = slotNode["s-si"] || reference.parentNode["s-sc"])) {
3104
3055
  const scopeName = slotNode["s-sn"];
3105
3056
  const hostName = slotNode["s-hn"];
3106
- (_a = newParent.classList) == null ? void 0 : _a.add(scopeId2 + "-s");
3057
+ (_a2 = newParent.classList) == null ? void 0 : _a2.add(scopeId2 + "-s");
3107
3058
  if (oldParent && ((_b = oldParent.classList) == null ? void 0 : _b.contains(scopeId2 + "-s"))) {
3108
3059
  let child = (oldParent.__childNodes || oldParent.childNodes)[0];
3109
3060
  let found = false;
@@ -3119,7 +3070,7 @@ function addRemoveSlotScopedClass(reference, slotNode, newParent, oldParent) {
3119
3070
  }
3120
3071
  }
3121
3072
  var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
3122
- var _a, _b, _c, _d, _e;
3073
+ var _a2, _b, _c, _d, _e;
3123
3074
  const hostElm = hostRef.$hostElement$;
3124
3075
  const cmpMeta = hostRef.$cmpMeta$;
3125
3076
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -3191,7 +3142,7 @@ render() {
3191
3142
  const nodeToRelocate = relocateData.$nodeToRelocate$;
3192
3143
  const slotRefNode = relocateData.$slotRefNode$;
3193
3144
  if (nodeToRelocate.nodeType === 1 /* ElementNode */ && isInitialLoad) {
3194
- nodeToRelocate["s-ih"] = (_a = nodeToRelocate.hidden) != null ? _a : false;
3145
+ nodeToRelocate["s-ih"] = (_a2 = nodeToRelocate.hidden) != null ? _a2 : false;
3195
3146
  }
3196
3147
  if (slotRefNode) {
3197
3148
  const parentNodeRef = slotRefNode.parentNode;
@@ -3268,14 +3219,14 @@ render() {
3268
3219
  flushQueuedRefCallbacks();
3269
3220
  };
3270
3221
  var slotReferenceDebugNode = (slotVNode) => {
3271
- var _a;
3272
- return (_a = win.document) == null ? void 0 : _a.createComment(
3222
+ var _a2;
3223
+ return (_a2 = win.document) == null ? void 0 : _a2.createComment(
3273
3224
  `<slot${slotVNode.$name$ ? ' name="' + slotVNode.$name$ + '"' : ""}> (host=${hostTagName.toLowerCase()})`
3274
3225
  );
3275
3226
  };
3276
3227
  var originalLocationDebugNode = (nodeToRelocate) => {
3277
- var _a;
3278
- return (_a = win.document) == null ? void 0 : _a.createComment(
3228
+ var _a2;
3229
+ return (_a2 = win.document) == null ? void 0 : _a2.createComment(
3279
3230
  `org-location for ` + (nodeToRelocate.localName ? `<${nodeToRelocate.localName}> (host=${nodeToRelocate["s-hn"]})` : `[${nodeToRelocate.textContent}]`)
3280
3231
  );
3281
3232
  };
@@ -3355,7 +3306,7 @@ var enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.then
3355
3306
  }) : fn();
3356
3307
  var isPromisey = (maybePromise) => maybePromise instanceof Promise || maybePromise && maybePromise.then && typeof maybePromise.then === "function";
3357
3308
  var updateComponent = async (hostRef, instance, isInitialLoad) => {
3358
- var _a;
3309
+ var _a2;
3359
3310
  const elm = hostRef.$hostElement$;
3360
3311
  const endUpdate = createTime("update", hostRef.$cmpMeta$.$tagName$);
3361
3312
  const rc = elm["s-rc"];
@@ -3396,7 +3347,7 @@ var updateComponent = async (hostRef, instance, isInitialLoad) => {
3396
3347
  endRender();
3397
3348
  endUpdate();
3398
3349
  if (BUILD.asyncLoading) {
3399
- const childrenPromises = (_a = elm["s-p"]) != null ? _a : [];
3350
+ const childrenPromises = (_a2 = elm["s-p"]) != null ? _a2 : [];
3400
3351
  const postUpdate = () => postUpdateComponent(hostRef);
3401
3352
  if (childrenPromises.length === 0) {
3402
3353
  postUpdate();
@@ -3507,10 +3458,10 @@ var postUpdateComponent = (hostRef) => {
3507
3458
  }
3508
3459
  };
3509
3460
  var forceUpdate$1 = (ref) => {
3510
- var _a;
3461
+ var _a2;
3511
3462
  if (BUILD.updatable && (Build.isBrowser || Build.isTesting)) {
3512
3463
  const hostRef = getHostRef(ref);
3513
- const isConnected = (_a = hostRef == null ? void 0 : hostRef.$hostElement$) == null ? void 0 : _a.isConnected;
3464
+ const isConnected = (_a2 = hostRef == null ? void 0 : hostRef.$hostElement$) == null ? void 0 : _a2.isConnected;
3514
3465
  if (isConnected && (hostRef.$flags$ & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
3515
3466
  scheduleUpdate(hostRef, false);
3516
3467
  }
@@ -3519,13 +3470,13 @@ var forceUpdate$1 = (ref) => {
3519
3470
  return false;
3520
3471
  };
3521
3472
  var appDidLoad = (who) => {
3522
- var _a;
3473
+ var _a2;
3523
3474
  if (BUILD.asyncQueue) {
3524
3475
  plt.$flags$ |= 2 /* appLoaded */;
3525
3476
  }
3526
3477
  nextTick(() => emitEvent(win, "appload", { detail: { namespace: NAMESPACE } }));
3527
3478
  if (BUILD.hydrateClientSide) {
3528
- if ((_a = plt.$orgLocNodes$) == null ? void 0 : _a.size) {
3479
+ if ((_a2 = plt.$orgLocNodes$) == null ? void 0 : _a2.size) {
3529
3480
  plt.$orgLocNodes$.clear();
3530
3481
  }
3531
3482
  }
@@ -3555,8 +3506,8 @@ var emitLifecycleEvent = (elm, lifecycleName) => {
3555
3506
  }
3556
3507
  };
3557
3508
  var addHydratedFlag = (elm) => {
3558
- var _a, _b;
3559
- return BUILD.hydratedClass ? elm.classList.add((_a = BUILD.hydratedSelectorName) != null ? _a : "hydrated") : BUILD.hydratedAttribute ? elm.setAttribute((_b = BUILD.hydratedSelectorName) != null ? _b : "hydrated", "") : void 0;
3509
+ var _a2, _b;
3510
+ return BUILD.hydratedClass ? elm.classList.add((_a2 = BUILD.hydratedSelectorName) != null ? _a2 : "hydrated") : BUILD.hydratedAttribute ? elm.setAttribute((_b = BUILD.hydratedSelectorName) != null ? _b : "hydrated", "") : void 0;
3560
3511
  };
3561
3512
  var serverSideConnected = (elm) => {
3562
3513
  const children = elm.children;
@@ -3655,7 +3606,7 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
3655
3606
 
3656
3607
  // src/runtime/proxy-component.ts
3657
3608
  var proxyComponent = (Cstr, cmpMeta, flags) => {
3658
- var _a, _b;
3609
+ var _a2, _b;
3659
3610
  const prototype = Cstr.prototype;
3660
3611
  if (BUILD.isTesting) {
3661
3612
  if (prototype.__stencilAugmented) {
@@ -3668,11 +3619,11 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3668
3619
  const originalFormAssociatedCallback = prototype[cbName];
3669
3620
  Object.defineProperty(prototype, cbName, {
3670
3621
  value(...args) {
3671
- var _a2;
3622
+ var _a3;
3672
3623
  const hostRef = getHostRef(this);
3673
3624
  const instance = BUILD.lazyLoad ? hostRef == null ? void 0 : hostRef.$lazyInstance$ : this;
3674
3625
  if (!instance) {
3675
- (_a2 = hostRef == null ? void 0 : hostRef.$onReadyPromise$) == null ? void 0 : _a2.then((asyncInstance) => {
3626
+ (_a3 = hostRef == null ? void 0 : hostRef.$onReadyPromise$) == null ? void 0 : _a3.then((asyncInstance) => {
3676
3627
  const cb = asyncInstance[cbName];
3677
3628
  typeof cb === "function" && cb.call(asyncInstance, ...args);
3678
3629
  });
@@ -3687,7 +3638,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3687
3638
  if (BUILD.member && cmpMeta.$members$ || BUILD.propChangeCallback) {
3688
3639
  if (BUILD.propChangeCallback) {
3689
3640
  if (Cstr.watchers && !cmpMeta.$watchers$) {
3690
- cmpMeta.$watchers$ = Cstr.watchers;
3641
+ cmpMeta.$watchers$ = normalizeWatchers(Cstr.watchers);
3691
3642
  }
3692
3643
  if (Cstr.deserializers && !cmpMeta.$deserializers$) {
3693
3644
  cmpMeta.$deserializers$ = Cstr.deserializers;
@@ -3696,7 +3647,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3696
3647
  cmpMeta.$serializers$ = Cstr.serializers;
3697
3648
  }
3698
3649
  }
3699
- const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
3650
+ const members = Object.entries((_a2 = cmpMeta.$members$) != null ? _a2 : {});
3700
3651
  members.map(([memberName, [memberFlags]]) => {
3701
3652
  if ((BUILD.prop || BUILD.state) && (memberFlags & 31 /* Prop */ || (!BUILD.lazyLoad || flags & 2 /* proxyState */) && memberFlags & 32 /* State */)) {
3702
3653
  const { get: origGetter, set: origSetter } = getPropertyDescriptor(prototype, memberName) || {};
@@ -3785,11 +3736,11 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3785
3736
  } else if (BUILD.lazyLoad && BUILD.method && flags & 1 /* isElementConstructor */ && memberFlags & 64 /* Method */) {
3786
3737
  Object.defineProperty(prototype, memberName, {
3787
3738
  value(...args) {
3788
- var _a2;
3739
+ var _a3;
3789
3740
  const ref = getHostRef(this);
3790
- return (_a2 = ref == null ? void 0 : ref.$onInstancePromise$) == null ? void 0 : _a2.then(() => {
3791
- var _a3;
3792
- return (_a3 = ref.$lazyInstance$) == null ? void 0 : _a3[memberName](...args);
3741
+ return (_a3 = ref == null ? void 0 : ref.$onInstancePromise$) == null ? void 0 : _a3.then(() => {
3742
+ var _a4;
3743
+ return (_a4 = ref.$lazyInstance$) == null ? void 0 : _a4[memberName](...args);
3793
3744
  });
3794
3745
  }
3795
3746
  });
@@ -3799,7 +3750,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3799
3750
  const attrNameToPropName = /* @__PURE__ */ new Map();
3800
3751
  prototype.attributeChangedCallback = function(attrName, oldValue, newValue) {
3801
3752
  plt.jmp(() => {
3802
- var _a2;
3753
+ var _a3;
3803
3754
  const propName = attrNameToPropName.get(attrName);
3804
3755
  const hostRef = getHostRef(this);
3805
3756
  if (BUILD.serializer && hostRef.$serializerValues$.has(propName) && hostRef.$serializerValues$.get(propName) === newValue) {
@@ -3839,7 +3790,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3839
3790
  if (hostRef && flags2 && !(flags2 & 8 /* isConstructingInstance */) && newValue !== oldValue) {
3840
3791
  const elm = BUILD.lazyLoad ? hostRef.$hostElement$ : this;
3841
3792
  const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;
3842
- const entry = (_a2 = cmpMeta.$watchers$) == null ? void 0 : _a2[attrName];
3793
+ const entry = (_a3 = cmpMeta.$watchers$) == null ? void 0 : _a3[attrName];
3843
3794
  entry == null ? void 0 : entry.forEach((watcher) => {
3844
3795
  const [[watchMethodName, watcherFlags]] = Object.entries(watcher);
3845
3796
  if (instance[watchMethodName] != null && (flags2 & 128 /* isWatchReady */ || watcherFlags & 1 /* Immediate */)) {
@@ -3850,11 +3801,13 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3850
3801
  return;
3851
3802
  }
3852
3803
  const propFlags = members.find(([m]) => m === propName);
3853
- if (propFlags && propFlags[1][0] & 4 /* Boolean */) {
3804
+ const isBooleanTarget = propFlags && propFlags[1][0] & 4 /* Boolean */;
3805
+ const isSpuriousBooleanRemoval = isBooleanTarget && newValue === null && this[propName] === void 0;
3806
+ if (isBooleanTarget) {
3854
3807
  newValue = newValue === null || newValue === "false" ? false : true;
3855
3808
  }
3856
3809
  const propDesc = Object.getOwnPropertyDescriptor(prototype, propName);
3857
- if (newValue != this[propName] && (!propDesc.get || !!propDesc.set)) {
3810
+ if (!isSpuriousBooleanRemoval && newValue != this[propName] && (!propDesc.get || !!propDesc.set)) {
3858
3811
  this[propName] = newValue;
3859
3812
  }
3860
3813
  });
@@ -3863,11 +3816,11 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3863
3816
  /* @__PURE__ */ new Set([
3864
3817
  ...Object.keys((_b = cmpMeta.$watchers$) != null ? _b : {}),
3865
3818
  ...members.filter(([_, m]) => m[0] & 31 /* HasAttribute */).map(([propName, m]) => {
3866
- var _a2;
3819
+ var _a3;
3867
3820
  const attrName = m[1] || propName;
3868
3821
  attrNameToPropName.set(attrName, propName);
3869
3822
  if (BUILD.reflect && m[0] & 512 /* ReflectAttr */) {
3870
- (_a2 = cmpMeta.$attrsToReflect$) == null ? void 0 : _a2.push([propName, attrName]);
3823
+ (_a3 = cmpMeta.$attrsToReflect$) == null ? void 0 : _a3.push([propName, attrName]);
3871
3824
  }
3872
3825
  return attrName;
3873
3826
  })
@@ -3902,7 +3855,7 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
3902
3855
  }
3903
3856
  if (BUILD.member && !Cstr.isProxied) {
3904
3857
  if (BUILD.propChangeCallback) {
3905
- cmpMeta.$watchers$ = Cstr.watchers;
3858
+ cmpMeta.$watchers$ = normalizeWatchers(Cstr.watchers);
3906
3859
  cmpMeta.$serializers$ = Cstr.serializers;
3907
3860
  cmpMeta.$deserializers$ = Cstr.deserializers;
3908
3861
  }
@@ -4116,7 +4069,7 @@ var proxyCustomElement = (Cstr, compactMeta) => {
4116
4069
  cmpMeta.$listeners$ = compactMeta[3];
4117
4070
  }
4118
4071
  if (BUILD.propChangeCallback) {
4119
- cmpMeta.$watchers$ = Cstr.$watchers$;
4072
+ cmpMeta.$watchers$ = normalizeWatchers(Cstr.$watchers$);
4120
4073
  cmpMeta.$deserializers$ = Cstr.$deserializers$;
4121
4074
  cmpMeta.$serializers$ = Cstr.$serializers$;
4122
4075
  }
@@ -4236,7 +4189,7 @@ var hmrStart = (hostElement, cmpMeta, hmrVersionId) => {
4236
4189
 
4237
4190
  // src/runtime/bootstrap-lazy.ts
4238
4191
  var bootstrapLazy = (lazyBundles, options = {}) => {
4239
- var _a;
4192
+ var _a2;
4240
4193
  if (BUILD.profile && performance.mark) {
4241
4194
  performance.mark("st:app:start");
4242
4195
  }
@@ -4271,7 +4224,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
4271
4224
  let hasSlotRelocation = false;
4272
4225
  lazyBundles.map((lazyBundle) => {
4273
4226
  lazyBundle[1].map((compactMeta) => {
4274
- var _a2, _b, _c;
4227
+ var _a3, _b;
4275
4228
  const cmpMeta = {
4276
4229
  $flags$: compactMeta[0],
4277
4230
  $tagName$: compactMeta[1],
@@ -4291,9 +4244,9 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
4291
4244
  cmpMeta.$attrsToReflect$ = [];
4292
4245
  }
4293
4246
  if (BUILD.propChangeCallback) {
4294
- cmpMeta.$watchers$ = (_a2 = compactMeta[4]) != null ? _a2 : {};
4295
- cmpMeta.$serializers$ = (_b = compactMeta[5]) != null ? _b : {};
4296
- cmpMeta.$deserializers$ = (_c = compactMeta[6]) != null ? _c : {};
4247
+ cmpMeta.$watchers$ = normalizeWatchers(compactMeta[4]);
4248
+ cmpMeta.$serializers$ = (_a3 = compactMeta[5]) != null ? _a3 : {};
4249
+ cmpMeta.$deserializers$ = (_b = compactMeta[6]) != null ? _b : {};
4297
4250
  }
4298
4251
  if (BUILD.shadowDom && !supportsShadow && cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {
4299
4252
  cmpMeta.$flags$ |= 8 /* needsShadowDomShim */;
@@ -4346,7 +4299,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
4346
4299
  disconnectedCallback() {
4347
4300
  plt.jmp(() => disconnectedCallback(this));
4348
4301
  plt.raf(() => {
4349
- var _a3;
4302
+ var _a4;
4350
4303
  const hostRef = getHostRef(this);
4351
4304
  if (!hostRef) {
4352
4305
  return;
@@ -4355,14 +4308,14 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
4355
4308
  if (i2 > -1) {
4356
4309
  deferredConnectedCallbacks.splice(i2, 1);
4357
4310
  }
4358
- if (((_a3 = hostRef == null ? void 0 : hostRef.$vnode$) == null ? void 0 : _a3.$elm$) instanceof Node && !hostRef.$vnode$.$elm$.isConnected) {
4311
+ if (((_a4 = hostRef == null ? void 0 : hostRef.$vnode$) == null ? void 0 : _a4.$elm$) instanceof Node && !hostRef.$vnode$.$elm$.isConnected) {
4359
4312
  delete hostRef.$vnode$.$elm$;
4360
4313
  }
4361
4314
  });
4362
4315
  }
4363
4316
  componentOnReady() {
4364
- var _a3;
4365
- return (_a3 = getHostRef(this)) == null ? void 0 : _a3.$onReadyPromise$;
4317
+ var _a4;
4318
+ return (_a4 = getHostRef(this)) == null ? void 0 : _a4.$onReadyPromise$;
4366
4319
  }
4367
4320
  };
4368
4321
  if (!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) && cmpMeta.$flags$ & 256 /* hasSlot */) {
@@ -4412,7 +4365,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
4412
4365
  }
4413
4366
  if (dataStyles.innerHTML.length) {
4414
4367
  dataStyles.setAttribute("data-styles", "");
4415
- const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(win.document);
4368
+ const nonce = (_a2 = plt.$nonce$) != null ? _a2 : queryNonceMetaTagContent(win.document);
4416
4369
  if (nonce != null) {
4417
4370
  dataStyles.setAttribute("nonce", nonce);
4418
4371
  }
@@ -4453,11 +4406,11 @@ var addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) =>
4453
4406
  }
4454
4407
  };
4455
4408
  var hostListenerProxy = (hostRef, methodName) => (ev) => {
4456
- var _a;
4409
+ var _a2;
4457
4410
  try {
4458
4411
  if (BUILD.lazyLoad) {
4459
4412
  if (hostRef.$flags$ & 256 /* isListenReady */) {
4460
- (_a = hostRef.$lazyInstance$) == null ? void 0 : _a[methodName](ev);
4413
+ (_a2 = hostRef.$lazyInstance$) == null ? void 0 : _a2[methodName](ev);
4461
4414
  } else {
4462
4415
  (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);
4463
4416
  }
@@ -4567,7 +4520,7 @@ var insertVdomAnnotations = (doc, staticComponents) => {
4567
4520
  const orgLocationNodes = [];
4568
4521
  parseVNodeAnnotations(doc, doc.body, docData, orgLocationNodes);
4569
4522
  orgLocationNodes.forEach((orgLocationNode) => {
4570
- var _a;
4523
+ var _a2;
4571
4524
  if (orgLocationNode != null && orgLocationNode["s-nr"]) {
4572
4525
  const nodeRef = orgLocationNode["s-nr"];
4573
4526
  let hostId = nodeRef["s-host-id"];
@@ -4585,7 +4538,7 @@ var insertVdomAnnotations = (doc, staticComponents) => {
4585
4538
  }
4586
4539
  } else if (nodeRef.nodeType === 3 /* TextNode */) {
4587
4540
  if (hostId === 0) {
4588
- const textContent = (_a = nodeRef.nodeValue) == null ? void 0 : _a.trim();
4541
+ const textContent = (_a2 = nodeRef.nodeValue) == null ? void 0 : _a2.trim();
4589
4542
  if (textContent === "") {
4590
4543
  orgLocationNode.remove();
4591
4544
  return;
@@ -4615,7 +4568,7 @@ var insertVdomAnnotations = (doc, staticComponents) => {
4615
4568
  }
4616
4569
  };
4617
4570
  var parseVNodeAnnotations = (doc, node, docData, orgLocationNodes) => {
4618
- var _a;
4571
+ var _a2;
4619
4572
  if (node == null) {
4620
4573
  return;
4621
4574
  }
@@ -4623,7 +4576,7 @@ var parseVNodeAnnotations = (doc, node, docData, orgLocationNodes) => {
4623
4576
  orgLocationNodes.push(node);
4624
4577
  }
4625
4578
  if (node.nodeType === 1 /* ElementNode */) {
4626
- const childNodes = [...Array.from(node.childNodes), ...Array.from(((_a = node.shadowRoot) == null ? void 0 : _a.childNodes) || [])];
4579
+ const childNodes = [...Array.from(node.childNodes), ...Array.from(((_a2 = node.shadowRoot) == null ? void 0 : _a2.childNodes) || [])];
4627
4580
  childNodes.forEach((childNode) => {
4628
4581
  const hostRef = getHostRef(childNode);
4629
4582
  if (hostRef != null && !docData.staticComponents.has(childNode.nodeName.toLowerCase())) {
@@ -4849,8 +4802,35 @@ var unescape = (s, { windowsPathsNoEscape = false } = {}) => {
4849
4802
  };
4850
4803
 
4851
4804
  // node_modules/minimatch/dist/esm/ast.js
4805
+ var _a;
4852
4806
  var types = /* @__PURE__ */ new Set(["!", "?", "+", "*", "@"]);
4853
4807
  var isExtglobType = (c) => types.has(c);
4808
+ var isExtglobAST = (c) => isExtglobType(c.type);
4809
+ var adoptionMap = /* @__PURE__ */ new Map([
4810
+ ["!", ["@"]],
4811
+ ["?", ["?", "@"]],
4812
+ ["@", ["@"]],
4813
+ ["*", ["*", "+", "?", "@"]],
4814
+ ["+", ["+", "@"]]
4815
+ ]);
4816
+ var adoptionWithSpaceMap = /* @__PURE__ */ new Map([
4817
+ ["!", ["?"]],
4818
+ ["@", ["?"]],
4819
+ ["+", ["?", "*"]]
4820
+ ]);
4821
+ var adoptionAnyMap = /* @__PURE__ */ new Map([
4822
+ ["!", ["?", "@"]],
4823
+ ["?", ["?", "@"]],
4824
+ ["@", ["?", "@"]],
4825
+ ["*", ["*", "+", "?", "@"]],
4826
+ ["+", ["+", "@", "?", "*"]]
4827
+ ]);
4828
+ var usurpMap = /* @__PURE__ */ new Map([
4829
+ ["!", /* @__PURE__ */ new Map([["!", "@"]])],
4830
+ ["?", /* @__PURE__ */ new Map([["*", "*"], ["+", "*"]])],
4831
+ ["@", /* @__PURE__ */ new Map([["!", "!"], ["?", "?"], ["@", "@"], ["*", "*"], ["+", "+"]])],
4832
+ ["+", /* @__PURE__ */ new Map([["?", "*"], ["*", "*"]])]
4833
+ ]);
4854
4834
  var startNoTraversal = "(?!(?:^|/)\\.\\.?(?:$|/))";
4855
4835
  var startNoDot = "(?!\\.)";
4856
4836
  var addPatternStart = /* @__PURE__ */ new Set(["[", "."]);
@@ -4860,8 +4840,8 @@ var regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
4860
4840
  var qmark = "[^/]";
4861
4841
  var star = qmark + "*?";
4862
4842
  var starNoEmpty = qmark + "+?";
4863
- var _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, partsToRegExp_fn, parseGlob_fn;
4864
- var _AST = class _AST {
4843
+ var _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, canAdoptWithSpace_fn, canAdopt_fn, canAdoptType_fn, adoptWithSpace_fn, adopt_fn, canUsurpType_fn, canUsurp_fn, usurp_fn, flatten_fn, partsToRegExp_fn, parseGlob_fn;
4844
+ var AST = class {
4865
4845
  constructor(type, parent, options = {}) {
4866
4846
  __privateAdd(this, _AST_instances);
4867
4847
  __publicField(this, "type");
@@ -4914,44 +4894,44 @@ var _AST = class _AST {
4914
4894
  for (const p of parts) {
4915
4895
  if (p === "")
4916
4896
  continue;
4917
- if (typeof p !== "string" && !(p instanceof _AST && __privateGet(p, _parent) === this)) {
4897
+ if (typeof p !== "string" && !(p instanceof _a && __privateGet(p, _parent) === this)) {
4918
4898
  throw new Error("invalid part: " + p);
4919
4899
  }
4920
4900
  __privateGet(this, _parts).push(p);
4921
4901
  }
4922
4902
  }
4923
4903
  toJSON() {
4924
- var _a;
4904
+ var _a2;
4925
4905
  const ret = this.type === null ? __privateGet(this, _parts).slice().map((p) => typeof p === "string" ? p : p.toJSON()) : [this.type, ...__privateGet(this, _parts).map((p) => p.toJSON())];
4926
4906
  if (this.isStart() && !this.type)
4927
4907
  ret.unshift([]);
4928
- if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === "!")) {
4908
+ if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")) {
4929
4909
  ret.push({});
4930
4910
  }
4931
4911
  return ret;
4932
4912
  }
4933
4913
  isStart() {
4934
- var _a;
4914
+ var _a2;
4935
4915
  if (__privateGet(this, _root) === this)
4936
4916
  return true;
4937
- if (!((_a = __privateGet(this, _parent)) == null ? void 0 : _a.isStart()))
4917
+ if (!((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.isStart()))
4938
4918
  return false;
4939
4919
  if (__privateGet(this, _parentIndex) === 0)
4940
4920
  return true;
4941
4921
  const p = __privateGet(this, _parent);
4942
4922
  for (let i2 = 0; i2 < __privateGet(this, _parentIndex); i2++) {
4943
4923
  const pp = __privateGet(p, _parts)[i2];
4944
- if (!(pp instanceof _AST && pp.type === "!")) {
4924
+ if (!(pp instanceof _a && pp.type === "!")) {
4945
4925
  return false;
4946
4926
  }
4947
4927
  }
4948
4928
  return true;
4949
4929
  }
4950
4930
  isEnd() {
4951
- var _a, _b, _c;
4931
+ var _a2, _b, _c;
4952
4932
  if (__privateGet(this, _root) === this)
4953
4933
  return true;
4954
- if (((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === "!")
4934
+ if (((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")
4955
4935
  return true;
4956
4936
  if (!((_b = __privateGet(this, _parent)) == null ? void 0 : _b.isEnd()))
4957
4937
  return false;
@@ -4967,16 +4947,16 @@ var _AST = class _AST {
4967
4947
  this.push(part.clone(this));
4968
4948
  }
4969
4949
  clone(parent) {
4970
- const c = new _AST(this.type, parent);
4950
+ const c = new _a(this.type, parent);
4971
4951
  for (const p of __privateGet(this, _parts)) {
4972
4952
  c.copyIn(p);
4973
4953
  }
4974
4954
  return c;
4975
4955
  }
4976
4956
  static fromGlob(pattern, options = {}) {
4977
- var _a;
4978
- const ast = new _AST(null, void 0, options);
4979
- __privateMethod(_a = _AST, _AST_static, parseAST_fn).call(_a, pattern, ast, 0, options);
4957
+ var _a2;
4958
+ const ast = new _a(null, void 0, options);
4959
+ __privateMethod(_a2 = _a, _AST_static, parseAST_fn).call(_a2, pattern, ast, 0, options, 0);
4980
4960
  return ast;
4981
4961
  }
4982
4962
  // returns the regular expression if there's magic, or the unescaped
@@ -5069,15 +5049,17 @@ var _AST = class _AST {
5069
5049
  // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root
5070
5050
  // or start or whatever) and prepend ^ or / at the Regexp construction.
5071
5051
  toRegExpSource(allowDot) {
5072
- var _a;
5052
+ var _a2;
5073
5053
  const dot = allowDot != null ? allowDot : !!__privateGet(this, _options).dot;
5074
- if (__privateGet(this, _root) === this)
5054
+ if (__privateGet(this, _root) === this) {
5055
+ __privateMethod(this, _AST_instances, flatten_fn).call(this);
5075
5056
  __privateMethod(this, _AST_instances, fillNegs_fn).call(this);
5076
- if (!this.type) {
5057
+ }
5058
+ if (!isExtglobAST(this)) {
5077
5059
  const noEmpty = this.isStart() && this.isEnd();
5078
5060
  const src = __privateGet(this, _parts).map((p) => {
5079
- var _a2;
5080
- const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a2 = _AST, _AST_static, parseGlob_fn).call(_a2, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
5061
+ var _a3;
5062
+ const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a3 = _a, _AST_static, parseGlob_fn).call(_a3, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
5081
5063
  __privateSet(this, _hasMagic, __privateGet(this, _hasMagic) || hasMagic);
5082
5064
  __privateSet(this, _uflag, __privateGet(this, _uflag) || uflag);
5083
5065
  return re;
@@ -5100,7 +5082,7 @@ var _AST = class _AST {
5100
5082
  }
5101
5083
  }
5102
5084
  let end = "";
5103
- if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === "!") {
5085
+ if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!") {
5104
5086
  end = "(?:$|\\/)";
5105
5087
  }
5106
5088
  const final2 = start2 + src + end;
@@ -5116,9 +5098,10 @@ var _AST = class _AST {
5116
5098
  let body = __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, dot);
5117
5099
  if (this.isStart() && this.isEnd() && !body && this.type !== "!") {
5118
5100
  const s = this.toString();
5119
- __privateSet(this, _parts, [s]);
5120
- this.type = null;
5121
- __privateSet(this, _hasMagic, void 0);
5101
+ const me = this;
5102
+ __privateSet(me, _parts, [s]);
5103
+ me.type = null;
5104
+ __privateSet(me, _hasMagic, void 0);
5122
5105
  return [s, unescape(this.toString()), false, false];
5123
5106
  }
5124
5107
  let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ? "" : __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, true);
@@ -5187,8 +5170,9 @@ fillNegs_fn = function() {
5187
5170
  return this;
5188
5171
  };
5189
5172
  _AST_static = new WeakSet();
5190
- parseAST_fn = function(str, ast, pos, opt) {
5191
- var _a, _b;
5173
+ parseAST_fn = function(str, ast, pos, opt, extDepth) {
5174
+ var _a2, _b, _c, _d, _e;
5175
+ const maxDepth = (_a2 = opt.maxExtglobRecursion) != null ? _a2 : 2;
5192
5176
  let escaping = false;
5193
5177
  let inBrace = false;
5194
5178
  let braceStart = -1;
@@ -5220,11 +5204,12 @@ parseAST_fn = function(str, ast, pos, opt) {
5220
5204
  acc2 += c;
5221
5205
  continue;
5222
5206
  }
5223
- if (!opt.noext && isExtglobType(c) && str.charAt(i3) === "(") {
5207
+ const doRecurse = !opt.noext && isExtglobType(c) && str.charAt(i3) === "(" && extDepth <= maxDepth;
5208
+ if (doRecurse) {
5224
5209
  ast.push(acc2);
5225
5210
  acc2 = "";
5226
- const ext2 = new _AST(c, ast);
5227
- i3 = __privateMethod(_a = _AST, _AST_static, parseAST_fn).call(_a, str, ext2, i3, opt);
5211
+ const ext2 = new _a(c, ast);
5212
+ i3 = __privateMethod(_b = _a, _AST_static, parseAST_fn).call(_b, str, ext2, i3, opt, extDepth + 1);
5228
5213
  ast.push(ext2);
5229
5214
  continue;
5230
5215
  }
@@ -5234,7 +5219,7 @@ parseAST_fn = function(str, ast, pos, opt) {
5234
5219
  return i3;
5235
5220
  }
5236
5221
  let i2 = pos + 1;
5237
- let part = new _AST(null, ast);
5222
+ let part = new _a(null, ast);
5238
5223
  const parts = [];
5239
5224
  let acc = "";
5240
5225
  while (i2 < str.length) {
@@ -5261,19 +5246,22 @@ parseAST_fn = function(str, ast, pos, opt) {
5261
5246
  acc += c;
5262
5247
  continue;
5263
5248
  }
5264
- if (isExtglobType(c) && str.charAt(i2) === "(") {
5249
+ const doRecurse = isExtglobType(c) && str.charAt(i2) === "(" && /* c8 ignore start - the maxDepth is sufficient here */
5250
+ (extDepth <= maxDepth || ast && __privateMethod(_c = ast, _AST_instances, canAdoptType_fn).call(_c, c));
5251
+ if (doRecurse) {
5252
+ const depthAdd = ast && __privateMethod(_d = ast, _AST_instances, canAdoptType_fn).call(_d, c) ? 0 : 1;
5265
5253
  part.push(acc);
5266
5254
  acc = "";
5267
- const ext2 = new _AST(c, part);
5255
+ const ext2 = new _a(c, part);
5268
5256
  part.push(ext2);
5269
- i2 = __privateMethod(_b = _AST, _AST_static, parseAST_fn).call(_b, str, ext2, i2, opt);
5257
+ i2 = __privateMethod(_e = _a, _AST_static, parseAST_fn).call(_e, str, ext2, i2, opt, extDepth + depthAdd);
5270
5258
  continue;
5271
5259
  }
5272
5260
  if (c === "|") {
5273
5261
  part.push(acc);
5274
5262
  acc = "";
5275
5263
  parts.push(part);
5276
- part = new _AST(null, ast);
5264
+ part = new _a(null, ast);
5277
5265
  continue;
5278
5266
  }
5279
5267
  if (c === ")") {
@@ -5292,6 +5280,100 @@ parseAST_fn = function(str, ast, pos, opt) {
5292
5280
  __privateSet(ast, _parts, [str.substring(pos - 1)]);
5293
5281
  return i2;
5294
5282
  };
5283
+ canAdoptWithSpace_fn = function(child) {
5284
+ return __privateMethod(this, _AST_instances, canAdopt_fn).call(this, child, adoptionWithSpaceMap);
5285
+ };
5286
+ canAdopt_fn = function(child, map2 = adoptionMap) {
5287
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null) {
5288
+ return false;
5289
+ }
5290
+ const gc = __privateGet(child, _parts)[0];
5291
+ if (!gc || typeof gc !== "object" || gc.type === null) {
5292
+ return false;
5293
+ }
5294
+ return __privateMethod(this, _AST_instances, canAdoptType_fn).call(this, gc.type, map2);
5295
+ };
5296
+ canAdoptType_fn = function(c, map2 = adoptionAnyMap) {
5297
+ var _a2;
5298
+ return !!((_a2 = map2.get(this.type)) == null ? void 0 : _a2.includes(c));
5299
+ };
5300
+ adoptWithSpace_fn = function(child, index) {
5301
+ const gc = __privateGet(child, _parts)[0];
5302
+ const blank = new _a(null, gc, this.options);
5303
+ __privateGet(blank, _parts).push("");
5304
+ gc.push(blank);
5305
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, child, index);
5306
+ };
5307
+ adopt_fn = function(child, index) {
5308
+ const gc = __privateGet(child, _parts)[0];
5309
+ __privateGet(this, _parts).splice(index, 1, ...__privateGet(gc, _parts));
5310
+ for (const p of __privateGet(gc, _parts)) {
5311
+ if (typeof p === "object")
5312
+ __privateSet(p, _parent, this);
5313
+ }
5314
+ __privateSet(this, _toString, void 0);
5315
+ };
5316
+ canUsurpType_fn = function(c) {
5317
+ const m = usurpMap.get(this.type);
5318
+ return !!(m == null ? void 0 : m.has(c));
5319
+ };
5320
+ canUsurp_fn = function(child) {
5321
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null || __privateGet(this, _parts).length !== 1) {
5322
+ return false;
5323
+ }
5324
+ const gc = __privateGet(child, _parts)[0];
5325
+ if (!gc || typeof gc !== "object" || gc.type === null) {
5326
+ return false;
5327
+ }
5328
+ return __privateMethod(this, _AST_instances, canUsurpType_fn).call(this, gc.type);
5329
+ };
5330
+ usurp_fn = function(child) {
5331
+ const m = usurpMap.get(this.type);
5332
+ const gc = __privateGet(child, _parts)[0];
5333
+ const nt = m == null ? void 0 : m.get(gc.type);
5334
+ if (!nt)
5335
+ return false;
5336
+ __privateSet(this, _parts, __privateGet(gc, _parts));
5337
+ for (const p of __privateGet(this, _parts)) {
5338
+ if (typeof p === "object")
5339
+ __privateSet(p, _parent, this);
5340
+ }
5341
+ this.type = nt;
5342
+ __privateSet(this, _toString, void 0);
5343
+ __privateSet(this, _emptyExt, false);
5344
+ };
5345
+ flatten_fn = function() {
5346
+ var _a2, _b;
5347
+ if (!isExtglobAST(this)) {
5348
+ for (const p of __privateGet(this, _parts)) {
5349
+ if (typeof p === "object")
5350
+ __privateMethod(_a2 = p, _AST_instances, flatten_fn).call(_a2);
5351
+ }
5352
+ } else {
5353
+ let iterations = 0;
5354
+ let done = false;
5355
+ do {
5356
+ done = true;
5357
+ for (let i2 = 0; i2 < __privateGet(this, _parts).length; i2++) {
5358
+ const c = __privateGet(this, _parts)[i2];
5359
+ if (typeof c === "object") {
5360
+ __privateMethod(_b = c, _AST_instances, flatten_fn).call(_b);
5361
+ if (__privateMethod(this, _AST_instances, canAdopt_fn).call(this, c)) {
5362
+ done = false;
5363
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, c, i2);
5364
+ } else if (__privateMethod(this, _AST_instances, canAdoptWithSpace_fn).call(this, c)) {
5365
+ done = false;
5366
+ __privateMethod(this, _AST_instances, adoptWithSpace_fn).call(this, c, i2);
5367
+ } else if (__privateMethod(this, _AST_instances, canUsurp_fn).call(this, c)) {
5368
+ done = false;
5369
+ __privateMethod(this, _AST_instances, usurp_fn).call(this, c);
5370
+ }
5371
+ }
5372
+ }
5373
+ } while (!done && ++iterations < 10);
5374
+ }
5375
+ __privateSet(this, _toString, void 0);
5376
+ };
5295
5377
  partsToRegExp_fn = function(dot) {
5296
5378
  return __privateGet(this, _parts).map((p) => {
5297
5379
  if (typeof p === "string") {
@@ -5306,11 +5388,13 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
5306
5388
  let escaping = false;
5307
5389
  let re = "";
5308
5390
  let uflag = false;
5391
+ let inStar = false;
5309
5392
  for (let i2 = 0; i2 < glob.length; i2++) {
5310
5393
  const c = glob.charAt(i2);
5311
5394
  if (escaping) {
5312
5395
  escaping = false;
5313
5396
  re += (reSpecials.has(c) ? "\\" : "") + c;
5397
+ inStar = false;
5314
5398
  continue;
5315
5399
  }
5316
5400
  if (c === "\\") {
@@ -5328,16 +5412,19 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
5328
5412
  uflag = uflag || needUflag;
5329
5413
  i2 += consumed - 1;
5330
5414
  hasMagic = hasMagic || magic;
5415
+ inStar = false;
5331
5416
  continue;
5332
5417
  }
5333
5418
  }
5334
5419
  if (c === "*") {
5335
- if (noEmpty && glob === "*")
5336
- re += starNoEmpty;
5337
- else
5338
- re += star;
5420
+ if (inStar)
5421
+ continue;
5422
+ inStar = true;
5423
+ re += noEmpty && /^[*]+$/.test(glob) ? starNoEmpty : star;
5339
5424
  hasMagic = true;
5340
5425
  continue;
5426
+ } else {
5427
+ inStar = false;
5341
5428
  }
5342
5429
  if (c === "?") {
5343
5430
  re += qmark;
@@ -5348,8 +5435,8 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
5348
5435
  }
5349
5436
  return [re, unescape(glob), !!hasMagic, uflag];
5350
5437
  };
5351
- __privateAdd(_AST, _AST_static);
5352
- var AST = _AST;
5438
+ __privateAdd(AST, _AST_static);
5439
+ _a = AST;
5353
5440
 
5354
5441
  // node_modules/minimatch/dist/esm/escape.js
5355
5442
  var escape = (s, { windowsPathsNoEscape = false } = {}) => {
@@ -5488,28 +5575,33 @@ var match = (list, pattern, options = {}) => {
5488
5575
  minimatch.match = match;
5489
5576
  var globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/;
5490
5577
  var regExpEscape2 = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
5578
+ var _Minimatch_instances, matchGlobstar_fn, matchGlobStarBodySections_fn, matchOne_fn;
5491
5579
  var Minimatch = class {
5492
- options;
5493
- set;
5494
- pattern;
5495
- windowsPathsNoEscape;
5496
- nonegate;
5497
- negate;
5498
- comment;
5499
- empty;
5500
- preserveMultipleSlashes;
5501
- partial;
5502
- globSet;
5503
- globParts;
5504
- nocase;
5505
- isWindows;
5506
- platform;
5507
- windowsNoMagicRoot;
5508
- regexp;
5509
5580
  constructor(pattern, options = {}) {
5581
+ __privateAdd(this, _Minimatch_instances);
5582
+ __publicField(this, "options");
5583
+ __publicField(this, "set");
5584
+ __publicField(this, "pattern");
5585
+ __publicField(this, "windowsPathsNoEscape");
5586
+ __publicField(this, "nonegate");
5587
+ __publicField(this, "negate");
5588
+ __publicField(this, "comment");
5589
+ __publicField(this, "empty");
5590
+ __publicField(this, "preserveMultipleSlashes");
5591
+ __publicField(this, "partial");
5592
+ __publicField(this, "globSet");
5593
+ __publicField(this, "globParts");
5594
+ __publicField(this, "nocase");
5595
+ __publicField(this, "isWindows");
5596
+ __publicField(this, "platform");
5597
+ __publicField(this, "windowsNoMagicRoot");
5598
+ __publicField(this, "maxGlobstarRecursion");
5599
+ __publicField(this, "regexp");
5600
+ var _a2;
5510
5601
  assertValidPattern(pattern);
5511
5602
  options = options || {};
5512
5603
  this.options = options;
5604
+ this.maxGlobstarRecursion = (_a2 = options.maxGlobstarRecursion) != null ? _a2 : 200;
5513
5605
  this.pattern = pattern;
5514
5606
  this.platform = options.platform || defaultPlatform;
5515
5607
  this.isWindows = this.platform === "win32";
@@ -5777,10 +5869,11 @@ var Minimatch = class {
5777
5869
  for (let i2 = 0; i2 < globParts.length - 1; i2++) {
5778
5870
  for (let j = i2 + 1; j < globParts.length; j++) {
5779
5871
  const matched = this.partsMatch(globParts[i2], globParts[j], !this.preserveMultipleSlashes);
5780
- if (!matched)
5781
- continue;
5782
- globParts[i2] = matched;
5783
- globParts[j] = [];
5872
+ if (matched) {
5873
+ globParts[i2] = [];
5874
+ globParts[j] = matched;
5875
+ break;
5876
+ }
5784
5877
  }
5785
5878
  }
5786
5879
  return globParts.filter((gs) => gs.length);
@@ -5841,7 +5934,8 @@ var Minimatch = class {
5841
5934
  // out of pattern, then that's fine, as long as all
5842
5935
  // the parts match.
5843
5936
  matchOne(file, pattern, partial = false) {
5844
- const options = this.options;
5937
+ let fileStartIndex = 0;
5938
+ let patternStartIndex = 0;
5845
5939
  if (this.isWindows) {
5846
5940
  const fileDrive = typeof file[0] === "string" && /^[a-z]:$/i.test(file[0]);
5847
5941
  const fileUNC = !fileDrive && file[0] === "" && file[1] === "" && file[2] === "?" && /^[a-z]:$/i.test(file[3]);
@@ -5850,14 +5944,14 @@ var Minimatch = class {
5850
5944
  const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;
5851
5945
  const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;
5852
5946
  if (typeof fdi === "number" && typeof pdi === "number") {
5853
- const [fd, pd] = [file[fdi], pattern[pdi]];
5947
+ const [fd, pd] = [
5948
+ file[fdi],
5949
+ pattern[pdi]
5950
+ ];
5854
5951
  if (fd.toLowerCase() === pd.toLowerCase()) {
5855
5952
  pattern[pdi] = fd;
5856
- if (pdi > fdi) {
5857
- pattern = pattern.slice(pdi);
5858
- } else if (fdi > pdi) {
5859
- file = file.slice(fdi);
5860
- }
5953
+ patternStartIndex = pdi;
5954
+ fileStartIndex = fdi;
5861
5955
  }
5862
5956
  }
5863
5957
  }
@@ -5865,71 +5959,10 @@ var Minimatch = class {
5865
5959
  if (optimizationLevel >= 2) {
5866
5960
  file = this.levelTwoFileOptimize(file);
5867
5961
  }
5868
- this.debug("matchOne", this, { file, pattern });
5869
- this.debug("matchOne", file.length, pattern.length);
5870
- for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
5871
- this.debug("matchOne loop");
5872
- var p = pattern[pi];
5873
- var f = file[fi];
5874
- this.debug(pattern, p, f);
5875
- if (p === false) {
5876
- return false;
5877
- }
5878
- if (p === GLOBSTAR) {
5879
- this.debug("GLOBSTAR", [pattern, p, f]);
5880
- var fr = fi;
5881
- var pr = pi + 1;
5882
- if (pr === pl) {
5883
- this.debug("** at the end");
5884
- for (; fi < fl; fi++) {
5885
- if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".")
5886
- return false;
5887
- }
5888
- return true;
5889
- }
5890
- while (fr < fl) {
5891
- var swallowee = file[fr];
5892
- this.debug("\nglobstar while", file, fr, pattern, pr, swallowee);
5893
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
5894
- this.debug("globstar found match!", fr, fl, swallowee);
5895
- return true;
5896
- } else {
5897
- if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") {
5898
- this.debug("dot detected!", file, fr, pattern, pr);
5899
- break;
5900
- }
5901
- this.debug("globstar swallow a segment, and continue");
5902
- fr++;
5903
- }
5904
- }
5905
- if (partial) {
5906
- this.debug("\n>>> no match, partial?", file, fr, pattern, pr);
5907
- if (fr === fl) {
5908
- return true;
5909
- }
5910
- }
5911
- return false;
5912
- }
5913
- let hit;
5914
- if (typeof p === "string") {
5915
- hit = f === p;
5916
- this.debug("string match", p, f, hit);
5917
- } else {
5918
- hit = p.test(f);
5919
- this.debug("pattern match", p, f, hit);
5920
- }
5921
- if (!hit)
5922
- return false;
5923
- }
5924
- if (fi === fl && pi === pl) {
5925
- return true;
5926
- } else if (fi === fl) {
5927
- return partial;
5928
- } else if (pi === pl) {
5929
- return fi === fl - 1 && file[fi] === "";
5930
- } else {
5931
- throw new Error("wtf?");
5962
+ if (pattern.includes(GLOBSTAR)) {
5963
+ return __privateMethod(this, _Minimatch_instances, matchGlobstar_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
5932
5964
  }
5965
+ return __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
5933
5966
  }
5934
5967
  braceExpand() {
5935
5968
  return braceExpand(this.pattern, this.options);
@@ -6068,6 +6101,135 @@ var Minimatch = class {
6068
6101
  return minimatch.defaults(def).Minimatch;
6069
6102
  }
6070
6103
  };
6104
+ _Minimatch_instances = new WeakSet();
6105
+ matchGlobstar_fn = function(file, pattern, partial, fileIndex, patternIndex) {
6106
+ const firstgs = pattern.indexOf(GLOBSTAR, patternIndex);
6107
+ const lastgs = pattern.lastIndexOf(GLOBSTAR);
6108
+ const [head, body, tail] = partial ? [
6109
+ pattern.slice(patternIndex, firstgs),
6110
+ pattern.slice(firstgs + 1),
6111
+ []
6112
+ ] : [
6113
+ pattern.slice(patternIndex, firstgs),
6114
+ pattern.slice(firstgs + 1, lastgs),
6115
+ pattern.slice(lastgs + 1)
6116
+ ];
6117
+ if (head.length) {
6118
+ const fileHead = file.slice(fileIndex, fileIndex + head.length);
6119
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, fileHead, head, partial, 0, 0))
6120
+ return false;
6121
+ fileIndex += head.length;
6122
+ }
6123
+ let fileTailMatch = 0;
6124
+ if (tail.length) {
6125
+ if (tail.length + fileIndex > file.length)
6126
+ return false;
6127
+ let tailStart = file.length - tail.length;
6128
+ if (__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0)) {
6129
+ fileTailMatch = tail.length;
6130
+ } else {
6131
+ if (file[file.length - 1] !== "" || fileIndex + tail.length === file.length) {
6132
+ return false;
6133
+ }
6134
+ tailStart--;
6135
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0))
6136
+ return false;
6137
+ fileTailMatch = tail.length + 1;
6138
+ }
6139
+ }
6140
+ if (!body.length) {
6141
+ let sawSome = !!fileTailMatch;
6142
+ for (let i3 = fileIndex; i3 < file.length - fileTailMatch; i3++) {
6143
+ const f = String(file[i3]);
6144
+ sawSome = true;
6145
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
6146
+ return false;
6147
+ }
6148
+ }
6149
+ return partial || sawSome;
6150
+ }
6151
+ const bodySegments = [[[], 0]];
6152
+ let currentBody = bodySegments[0];
6153
+ let nonGsParts = 0;
6154
+ const nonGsPartsSums = [0];
6155
+ for (const b of body) {
6156
+ if (b === GLOBSTAR) {
6157
+ nonGsPartsSums.push(nonGsParts);
6158
+ currentBody = [[], 0];
6159
+ bodySegments.push(currentBody);
6160
+ } else {
6161
+ currentBody[0].push(b);
6162
+ nonGsParts++;
6163
+ }
6164
+ }
6165
+ let i2 = bodySegments.length - 1;
6166
+ const fileLength = file.length - fileTailMatch;
6167
+ for (const b of bodySegments) {
6168
+ b[1] = fileLength - (nonGsPartsSums[i2--] + b[0].length);
6169
+ }
6170
+ return !!__privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex, 0, partial, 0, !!fileTailMatch);
6171
+ };
6172
+ matchGlobStarBodySections_fn = function(file, bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail) {
6173
+ const bs = bodySegments[bodyIndex];
6174
+ if (!bs) {
6175
+ for (let i2 = fileIndex; i2 < file.length; i2++) {
6176
+ sawTail = true;
6177
+ const f = file[i2];
6178
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
6179
+ return false;
6180
+ }
6181
+ }
6182
+ return sawTail;
6183
+ }
6184
+ const [body, after] = bs;
6185
+ while (fileIndex <= after) {
6186
+ const m = __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file.slice(0, fileIndex + body.length), body, partial, fileIndex, 0);
6187
+ if (m && globStarDepth < this.maxGlobstarRecursion) {
6188
+ const sub = __privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex + body.length, bodyIndex + 1, partial, globStarDepth + 1, sawTail);
6189
+ if (sub !== false)
6190
+ return sub;
6191
+ }
6192
+ const f = file[fileIndex];
6193
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
6194
+ return false;
6195
+ }
6196
+ fileIndex++;
6197
+ }
6198
+ return partial || null;
6199
+ };
6200
+ matchOne_fn = function(file, pattern, partial, fileIndex, patternIndex) {
6201
+ let fi;
6202
+ let pi;
6203
+ let pl;
6204
+ let fl;
6205
+ for (fi = fileIndex, pi = patternIndex, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
6206
+ this.debug("matchOne loop");
6207
+ let p = pattern[pi];
6208
+ let f = file[fi];
6209
+ this.debug(pattern, p, f);
6210
+ if (p === false || p === GLOBSTAR)
6211
+ return false;
6212
+ let hit;
6213
+ if (typeof p === "string") {
6214
+ hit = f === p;
6215
+ this.debug("string match", p, f, hit);
6216
+ } else {
6217
+ hit = p.test(f);
6218
+ this.debug("pattern match", p, f, hit);
6219
+ }
6220
+ if (!hit)
6221
+ return false;
6222
+ }
6223
+ if (fi === fl && pi === pl) {
6224
+ return true;
6225
+ } else if (fi === fl) {
6226
+ return partial;
6227
+ } else if (pi === pl) {
6228
+ return fi === fl - 1 && file[fi] === "";
6229
+ } else {
6230
+ throw new Error("wtf?");
6231
+ }
6232
+ };
6071
6233
  minimatch.AST = AST;
6072
6234
  minimatch.Minimatch = Minimatch;
6073
6235
  minimatch.escape = escape;
@@ -6141,7 +6303,7 @@ function proxyHostElement(elm, cstr) {
6141
6303
  const hostRef = getHostRef(elm);
6142
6304
  const members = Object.entries(cmpMeta.$members$);
6143
6305
  members.forEach(([memberName, [memberFlags, metaAttributeName]]) => {
6144
- var _a, _b;
6306
+ var _a2, _b;
6145
6307
  if (memberFlags & 31 /* Prop */) {
6146
6308
  const attributeName = metaAttributeName || memberName;
6147
6309
  const attrValue = elm.getAttribute(attributeName);
@@ -6149,7 +6311,7 @@ function proxyHostElement(elm, cstr) {
6149
6311
  let attrPropVal;
6150
6312
  const { get: origGetter, set: origSetter } = Object.getOwnPropertyDescriptor(cstr.prototype, memberName) || {};
6151
6313
  if (attrValue != null) {
6152
- if ((_a = cmpMeta.$deserializers$) == null ? void 0 : _a[memberName]) {
6314
+ if ((_a2 = cmpMeta.$deserializers$) == null ? void 0 : _a2[memberName]) {
6153
6315
  for (const deserializer of cmpMeta.$deserializers$[memberName]) {
6154
6316
  const [[methodName]] = Object.entries(deserializer);
6155
6317
  attrPropVal = cstr.prototype[methodName](attrValue, memberName);
@@ -6182,8 +6344,8 @@ function proxyHostElement(elm, cstr) {
6182
6344
  Object.defineProperty(elm, memberName, getterSetterDescriptor);
6183
6345
  Object.defineProperty(elm, metaAttributeName, getterSetterDescriptor);
6184
6346
  hostRef.$fetchedCbList$.push(() => {
6185
- var _a2;
6186
- if (!((_a2 = hostRef == null ? void 0 : hostRef.$instanceValues$) == null ? void 0 : _a2.has(memberName))) {
6347
+ var _a3;
6348
+ if (!((_a3 = hostRef == null ? void 0 : hostRef.$instanceValues$) == null ? void 0 : _a3.has(memberName))) {
6187
6349
  setValue(
6188
6350
  elm,
6189
6351
  memberName,
@@ -6196,11 +6358,11 @@ function proxyHostElement(elm, cstr) {
6196
6358
  } else if (memberFlags & 64 /* Method */) {
6197
6359
  Object.defineProperty(elm, memberName, {
6198
6360
  value(...args) {
6199
- var _a2;
6361
+ var _a3;
6200
6362
  const ref = getHostRef(this);
6201
- return (_a2 = ref == null ? void 0 : ref.$onInstancePromise$) == null ? void 0 : _a2.then(() => {
6202
- var _a3;
6203
- return (_a3 = ref == null ? void 0 : ref.$lazyInstance$) == null ? void 0 : _a3[memberName](...args);
6363
+ return (_a3 = ref == null ? void 0 : ref.$onInstancePromise$) == null ? void 0 : _a3.then(() => {
6364
+ var _a4;
6365
+ return (_a4 = ref == null ? void 0 : ref.$lazyInstance$) == null ? void 0 : _a4[memberName](...args);
6204
6366
  }).catch((e) => {
6205
6367
  consoleError(e, this);
6206
6368
  });
@@ -6211,8 +6373,8 @@ function proxyHostElement(elm, cstr) {
6211
6373
  }
6212
6374
  }
6213
6375
  function componentOnReady() {
6214
- var _a;
6215
- return (_a = getHostRef(this)) == null ? void 0 : _a.$onReadyPromise$;
6376
+ var _a2;
6377
+ return (_a2 = getHostRef(this)) == null ? void 0 : _a2.$onReadyPromise$;
6216
6378
  }
6217
6379
  function forceUpdate2() {
6218
6380
  }
@@ -6317,7 +6479,6 @@ function hydrateApp(win2, opts, results, afterHydrate, resolve) {
6317
6479
  };
6318
6480
  tmrId = globalThis.setTimeout(timeoutExceeded, opts.timeout);
6319
6481
  plt.$resourcesUrl$ = new URL(opts.resourcesUrl || "./", win2.document.baseURI).href;
6320
- globalScripts();
6321
6482
  patchChild2(win2.document.body);
6322
6483
  waitLoop2().then(hydratedComplete).catch(hydratedError);
6323
6484
  } catch (e) {
@@ -6628,70 +6789,70 @@ var needsScopedSSR = () => scopedSSR;
6628
6789
  var scopedSSR = false;
6629
6790
 
6630
6791
  var StencilCore = /*#__PURE__*/Object.freeze({
6631
- __proto__: null,
6632
- BUILD: BUILD,
6633
- Build: Build,
6634
- Env: Env,
6635
- Fragment: Fragment,
6636
- Host: Host,
6637
- Mixin: Mixin,
6638
- NAMESPACE: NAMESPACE,
6639
- addHostEventListeners: addHostEventListeners,
6640
- bootstrapLazy: bootstrapLazy,
6641
- cmpModules: cmpModules,
6642
- connectedCallback: connectedCallback,
6643
- consoleDevError: consoleDevError,
6644
- consoleDevInfo: consoleDevInfo,
6645
- consoleDevWarn: consoleDevWarn,
6646
- consoleError: consoleError,
6647
- createEvent: createEvent,
6648
- defineCustomElement: defineCustomElement,
6649
- disconnectedCallback: disconnectedCallback,
6650
- forceModeUpdate: forceModeUpdate,
6651
- forceUpdate: forceUpdate$1,
6652
- getAssetPath: getAssetPath,
6653
- getElement: getElement,
6654
- getHostRef: getHostRef,
6655
- getMode: getMode,
6656
- getRenderingRef: getRenderingRef$1,
6657
- getValue: getValue$1,
6658
- h: hAsync,
6659
- hydrateApp: hydrateApp,
6660
- insertVdomAnnotations: insertVdomAnnotations,
6661
- isMemberInElement: isMemberInElement,
6662
- jsx: jsx,
6663
- jsxDEV: jsxDEV,
6664
- jsxs: jsxs,
6665
- loadModule: loadModule,
6666
- modeResolutionChain: modeResolutionChain,
6667
- needsScopedSSR: needsScopedSSR,
6668
- nextTick: nextTick,
6669
- parsePropertyValue: parsePropertyValue,
6670
- plt: plt,
6671
- postUpdateComponent: postUpdateComponent,
6672
- proxyComponent: proxyComponent,
6673
- proxyCustomElement: proxyCustomElement,
6674
- readTask: readTask,
6675
- registerComponents: registerComponents,
6676
- registerHost: registerHost,
6677
- registerInstance: registerInstance,
6678
- renderVdom: renderVdom,
6679
- setAssetPath: setAssetPath,
6680
- setErrorHandler: setErrorHandler,
6681
- setMode: setMode,
6682
- setNonce: setNonce,
6683
- setPlatformHelpers: setPlatformHelpers,
6684
- setScopedSSR: setScopedSSR,
6685
- setTagTransformer: setTagTransformer,
6686
- setValue: setValue,
6687
- styles: styles,
6688
- supportsConstructableStylesheets: supportsConstructableStylesheets,
6689
- supportsListenerOptions: supportsListenerOptions,
6690
- supportsMutableAdoptedStyleSheets: supportsMutableAdoptedStyleSheets,
6691
- supportsShadow: supportsShadow,
6692
- transformTag: transformTag,
6693
- win: win,
6694
- writeTask: writeTask
6792
+ __proto__: null,
6793
+ BUILD: BUILD,
6794
+ Build: Build,
6795
+ Env: Env,
6796
+ Fragment: Fragment,
6797
+ Host: Host,
6798
+ Mixin: Mixin,
6799
+ NAMESPACE: NAMESPACE,
6800
+ addHostEventListeners: addHostEventListeners,
6801
+ bootstrapLazy: bootstrapLazy,
6802
+ cmpModules: cmpModules,
6803
+ connectedCallback: connectedCallback,
6804
+ consoleDevError: consoleDevError,
6805
+ consoleDevInfo: consoleDevInfo,
6806
+ consoleDevWarn: consoleDevWarn,
6807
+ consoleError: consoleError,
6808
+ createEvent: createEvent,
6809
+ defineCustomElement: defineCustomElement,
6810
+ disconnectedCallback: disconnectedCallback,
6811
+ forceModeUpdate: forceModeUpdate,
6812
+ forceUpdate: forceUpdate$1,
6813
+ getAssetPath: getAssetPath,
6814
+ getElement: getElement,
6815
+ getHostRef: getHostRef,
6816
+ getMode: getMode,
6817
+ getRenderingRef: getRenderingRef$1,
6818
+ getValue: getValue$1,
6819
+ h: hAsync,
6820
+ hydrateApp: hydrateApp,
6821
+ insertVdomAnnotations: insertVdomAnnotations,
6822
+ isMemberInElement: isMemberInElement,
6823
+ jsx: jsx,
6824
+ jsxDEV: jsxDEV,
6825
+ jsxs: jsxs,
6826
+ loadModule: loadModule,
6827
+ modeResolutionChain: modeResolutionChain,
6828
+ needsScopedSSR: needsScopedSSR,
6829
+ nextTick: nextTick,
6830
+ parsePropertyValue: parsePropertyValue,
6831
+ plt: plt,
6832
+ postUpdateComponent: postUpdateComponent,
6833
+ proxyComponent: proxyComponent,
6834
+ proxyCustomElement: proxyCustomElement,
6835
+ readTask: readTask,
6836
+ registerComponents: registerComponents,
6837
+ registerHost: registerHost,
6838
+ registerInstance: registerInstance,
6839
+ renderVdom: renderVdom,
6840
+ setAssetPath: setAssetPath,
6841
+ setErrorHandler: setErrorHandler,
6842
+ setMode: setMode,
6843
+ setNonce: setNonce,
6844
+ setPlatformHelpers: setPlatformHelpers,
6845
+ setScopedSSR: setScopedSSR,
6846
+ setTagTransformer: setTagTransformer,
6847
+ setValue: setValue,
6848
+ styles: styles,
6849
+ supportsConstructableStylesheets: supportsConstructableStylesheets,
6850
+ supportsListenerOptions: supportsListenerOptions,
6851
+ supportsMutableAdoptedStyleSheets: supportsMutableAdoptedStyleSheets,
6852
+ supportsShadow: supportsShadow,
6853
+ transformTag: transformTag,
6854
+ win: win,
6855
+ writeTask: writeTask
6695
6856
  });
6696
6857
 
6697
6858
  /**
@@ -7447,7 +7608,7 @@ function moveFilterItem(items, sourceId, targetId) {
7447
7608
  return true;
7448
7609
  }
7449
7610
 
7450
- const filterStyleCss = () => `.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#4545ff;height:32px;line-height:32px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:#009037}.revo-button.red{background-color:#E0662E}.revo-button:disabled,.revo-button[disabled]{cursor:not-allowed !important;filter:opacity(0.35) !important}.revo-button.outline{border:1px solid #dbdbdb;line-height:30px;background:none;color:#000;box-shadow:none}revo-grid[theme^=dark] .revo-button.outline{border:1px solid #404040;color:#d8d8d8}revogr-filter-panel{display:block}revogr-filter-panel .filter-panel-dialog{position:fixed;top:0;left:0;z-index:100;max-height:calc(100vh - 16px);overflow:auto;opacity:1;transform:none;background-color:var(--revo-grid-filter-panel-bg, #fff);border:1px solid var(--revo-grid-filter-panel-border, #cecece);transform-origin:62px 0px;box-shadow:0 5px 18px -2px var(--revo-grid-filter-panel-shadow, rgba(0, 0, 0, 0.15));box-sizing:border-box;padding:10px;border-radius:8px;margin:0;min-width:220px;text-align:left;animation:revogr-filter-panel-open 140ms cubic-bezier(0.2, 0, 0, 1)}revogr-filter-panel .filter-panel-dialog .filter-holder>div{display:flex;flex-direction:column}revogr-filter-panel .filter-panel-dialog label{font-size:13px;display:block;padding:8px 0}revogr-filter-panel .filter-panel-dialog select{width:100%}revogr-filter-panel .filter-panel-dialog input[type=text]{border:0;min-height:34px;margin:5px 0;background:var(--revo-grid-filter-panel-input-bg, #f3f3f3);border-radius:5px;padding:0 10px;box-sizing:border-box;width:100%}revogr-filter-panel .filter-panel-dialog .filter-actions{position:sticky;right:0;bottom:-10px;left:0;z-index:1;text-align:right;margin:10px -10px -10px;padding:0 5px 10px 10px;background:var(--revo-grid-filter-panel-bg, #fff);border-top:1px solid var(--revo-grid-filter-panel-divider, #d9d9d9)}revogr-filter-panel .filter-panel-dialog .filter-actions button{margin-top:10px;margin-right:5px}@keyframes revogr-filter-panel-open{from{opacity:0;transform:translateY(-4px) scale(0.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){revogr-filter-panel .filter-panel-dialog{animation:none}}.rgHeaderCell:hover .rv-filter{transition:opacity 267ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 178ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.rgHeaderCell:hover .rv-filter,.rgHeaderCell .rv-filter.active{opacity:1}.rgHeaderCell .rv-filter{height:24px;width:24px;background:none;border:0;opacity:0;visibility:visible;cursor:pointer;border-radius:4px}.rgHeaderCell .rv-filter.active{color:#10224a}.rgHeaderCell .rv-filter .filter-img{color:gray;width:11px}.select-css{display:block;font-family:sans-serif;line-height:1.3;padding:0.6em 1.4em 0.5em 0.8em;width:100%;max-width:100%;box-sizing:border-box;margin:0;border:1px solid var(--revo-grid-filter-panel-select-border, #d9d9d9);box-shadow:transparent;border-radius:0.5em;appearance:none;background-color:var(--revo-grid-filter-panel-input-bg, #f3f3f3);background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat, repeat;background-position:right 0.7em top 50%, 0 0;background-size:0.65em auto, 100%;}.select-css::-ms-expand{display:none}.select-css:hover{border-color:var(--revo-grid-filter-panel-select-border, #d9d9d9)}.select-css:focus{border-color:var(--revo-grid-filter-panel-select-border-hover, #d9d9d9);box-shadow:0 0 1px 3px rgba(59, 153, 252, 0.7);box-shadow:0 0 0 3px -moz-mac-focusring;outline:none}.select-css option{font-weight:normal}.select-css:disabled,.select-css[aria-disabled=true]{color:gray;background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22graytext%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"), linear-gradient(to bottom, #ffffff 0%, #ffffff 100%)}.select-css:disabled:hover,.select-css[aria-disabled=true]{border-color:var(--revo-grid-filter-panel-select-border, #d9d9d9)}.multi-filter-list{margin-top:5px;margin-bottom:5px}.multi-filter-list div{white-space:nowrap}.multi-filter-list .multi-filter-list-row{display:flex;align-items:center;gap:6px;position:relative}.multi-filter-list .multi-filter-list-row.filter-row-dragging{opacity:0.65}.multi-filter-list .multi-filter-list-row.filter-row-drag-over::before{content:"";position:absolute;top:-4px;right:0;left:0;z-index:2;height:2px;background:var(--revo-grid-filter-panel-reorder-accent, #007cb2);border-radius:999px;box-shadow:0 0 0 2px var(--revo-grid-filter-panel-bg, #fff)}.multi-filter-list .multi-filter-list-row.filter-row-drop-active .filter-row-drop-target{pointer-events:auto}.multi-filter-list .filter-row-drop-target{position:absolute;inset:0;z-index:1;padding:0;pointer-events:none;background:transparent;border:0}.multi-filter-list .multi-filter-list-action{display:flex;align-self:stretch;flex:0 0 auto;justify-content:flex-end;align-items:center}.multi-filter-list .and-or-button{margin:0 0 0 10px;min-width:58px;cursor:pointer}.multi-filter-list .trash-button{margin:0 0 -2px 6px;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;width:22px;height:100%;font-size:16px}.multi-filter-list .trash-button .trash-img{width:1em}.multi-filter-list .reorder-button{border:0;background:transparent;color:var(--revo-grid-filter-panel-reorder-color, #6b7280);cursor:grab;font-family:monospace;font-size:12px;letter-spacing:0;line-height:1;padding:6px 2px;transform:scaleX(0.8);width:16px}.multi-filter-list .reorder-button.filter-row-drag-over{color:var(--revo-grid-filter-panel-reorder-accent, #007cb2)}.multi-filter-list .reorder-button:active{cursor:grabbing}.multi-filter-list-container{padding:0;margin:0;list-style:none}.add-filter-divider{display:block;margin:0 -10px 10px -10px;border-bottom:1px solid var(--revo-grid-filter-panel-divider, #d9d9d9);height:10px}.select-input{display:flex;align-items:center;flex:1 1 auto;gap:6px;min-width:0}.select-input .select-filter,.select-input .filter-extra{flex:1 1 0;min-width:0}.select-input .select-filter{width:auto}.select-input .filter-extra{display:flex}.select-input .filter-extra>*{width:100%}.select-input input[type=text],.select-input input[type=date]{margin:0}`;
7611
+ const filterStyleCss = () => `.revo-button{position:relative;overflow:hidden;color:var(--rg-theme-button-text);background-color:var(--rg-theme-button-bg);height:32px;line-height:32px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:var(--rg-theme-button-success-bg)}.revo-button.red{background-color:var(--rg-theme-button-danger-bg)}.revo-button:disabled,.revo-button[disabled]{cursor:not-allowed !important;filter:opacity(0.35) !important}.revo-button.outline{border:1px solid var(--rg-theme-button-outline-border);line-height:30px;background:none;color:var(--rg-theme-button-outline-text);box-shadow:none}revogr-filter-panel{display:block}revogr-filter-panel .filter-panel-dialog{position:fixed;top:0;left:0;z-index:100;max-height:calc(100vh - 16px);overflow:auto;opacity:1;transform:none;color:var(--rg-theme-filter-panel-text);background-color:var(--rg-theme-filter-panel-bg);border:1px solid var(--rg-theme-filter-panel-border);transform-origin:62px 0px;box-shadow:0 5px 18px -2px var(--rg-theme-filter-panel-shadow);box-sizing:border-box;padding:10px;border-radius:8px;margin:0;min-width:220px;text-align:left;animation:revogr-filter-panel-open 140ms cubic-bezier(0.2, 0, 0, 1)}revogr-filter-panel .filter-panel-dialog .filter-holder>div{display:flex;flex-direction:column}revogr-filter-panel .filter-panel-dialog label{font-size:13px;display:block;padding:8px 0}revogr-filter-panel .filter-panel-dialog select{width:100%}revogr-filter-panel .filter-panel-dialog input[type=text]{border:0;min-height:34px;margin:5px 0;color:var(--rg-theme-filter-panel-text);background:var(--rg-theme-filter-panel-input-bg);border-radius:5px;padding:0 10px;box-sizing:border-box;width:100%}revogr-filter-panel .filter-panel-dialog .filter-actions{position:sticky;right:0;bottom:-10px;left:0;z-index:1;text-align:right;margin:10px -10px -10px;padding:0 5px 10px 10px;background:var(--rg-theme-filter-panel-bg);border-top:1px solid var(--rg-theme-filter-panel-divider)}revogr-filter-panel .filter-panel-dialog .filter-actions button{margin-top:10px;margin-right:5px}@keyframes revogr-filter-panel-open{from{opacity:0;transform:translateY(-4px) scale(0.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){revogr-filter-panel .filter-panel-dialog{animation:none}}.rgHeaderCell:hover .rv-filter{transition:opacity 267ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 178ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.rgHeaderCell:hover .rv-filter,.rgHeaderCell .rv-filter.active{opacity:1}.rgHeaderCell .rv-filter{height:24px;width:24px;background:none;border:0;opacity:0;visibility:visible;cursor:pointer;border-radius:4px}.rgHeaderCell .rv-filter.active{color:var(--rg-theme-filter-panel-icon-active)}.rgHeaderCell .rv-filter .filter-img{color:var(--rg-theme-filter-panel-icon);width:11px}.select-css{display:block;font-family:sans-serif;line-height:1.3;padding:0.6em 1.4em 0.5em 0.8em;width:100%;max-width:100%;box-sizing:border-box;margin:0;color:var(--rg-theme-filter-panel-text);border:1px solid var(--rg-theme-filter-panel-select-border);box-shadow:transparent;border-radius:0.5em;appearance:none;background-color:var(--rg-theme-filter-panel-input-bg);background-image:var(--revo-grid-filter-panel-select-arrow, url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"));background-repeat:no-repeat, repeat;background-position:right 0.7em top 50%, 0 0;background-size:0.65em auto, 100%;}.select-css::-ms-expand{display:none}.select-css{}.select-css:hover{border-color:var(--rg-theme-filter-panel-select-border)}.select-css{}.select-css:focus{border-color:var(--rg-theme-filter-panel-select-border-hover);box-shadow:var(--rg-theme-filter-panel-focus-ring);outline:none}.select-css{}.select-css option{font-weight:normal}.select-css{}.select-css:disabled,.select-css[aria-disabled=true]{color:var(--rg-theme-filter-panel-muted-text);background-image:var(--revo-grid-filter-panel-select-arrow-disabled, url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22graytext%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"))}.select-css:disabled:hover,.select-css[aria-disabled=true]{border-color:var(--rg-theme-filter-panel-select-border)}.multi-filter-list{margin-top:5px;margin-bottom:5px}.multi-filter-list div{white-space:nowrap}.multi-filter-list .multi-filter-list-row{display:flex;align-items:center;gap:6px;position:relative}.multi-filter-list .multi-filter-list-row.filter-row-dragging{opacity:0.65}.multi-filter-list .multi-filter-list-row.filter-row-drag-over::before{content:"";position:absolute;top:-4px;right:0;left:0;z-index:2;height:2px;background:var(--rg-theme-filter-panel-reorder-accent);border-radius:999px;box-shadow:0 0 0 2px var(--rg-theme-filter-panel-bg)}.multi-filter-list .multi-filter-list-row.filter-row-drop-active .filter-row-drop-target{pointer-events:auto}.multi-filter-list .filter-row-drop-target{position:absolute;inset:0;z-index:1;padding:0;pointer-events:none;background:transparent;border:0}.multi-filter-list .multi-filter-list-action{display:flex;align-self:stretch;flex:0 0 auto;justify-content:flex-end;align-items:center}.multi-filter-list .and-or-button{margin:0 0 0 10px;min-width:58px;cursor:pointer}.multi-filter-list .trash-button{margin:0 0 -2px 6px;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;width:22px;height:100%;font-size:16px}.multi-filter-list .trash-button .trash-img{width:1em}.multi-filter-list .reorder-button{border:0;background:transparent;color:var(--rg-theme-filter-panel-reorder-color);cursor:grab;font-family:monospace;font-size:12px;letter-spacing:0;line-height:1;padding:6px 2px;transform:scaleX(0.8);width:16px}.multi-filter-list .reorder-button.filter-row-drag-over{color:var(--rg-theme-filter-panel-reorder-accent)}.multi-filter-list .reorder-button:active{cursor:grabbing}.multi-filter-list-container{padding:0;margin:0;list-style:none}.add-filter-divider{display:block;margin:0 -10px 10px -10px;border-bottom:1px solid var(--rg-theme-filter-panel-divider);height:10px}.select-input{display:flex;align-items:center;flex:1 1 auto;gap:6px;min-width:0}.select-input .select-filter,.select-input .filter-extra{flex:1 1 0;min-width:0}.select-input .select-filter{width:auto}.select-input .filter-extra{display:flex}.select-input .filter-extra>*{width:100%}.select-input input[type=text],.select-input input[type=date]{margin:0}`;
7451
7612
 
7452
7613
  const defaultType = 'none';
7453
7614
  const FILTER_LIST_CLASS = 'multi-filter-list';
@@ -7495,6 +7656,10 @@ class FilterPanel {
7495
7656
  * If true, closes the filter panel when clicking outside
7496
7657
  */
7497
7658
  this.closeOnOutsideClick = true;
7659
+ /**
7660
+ * Whether the filter panel allows the same operator more than once per column.
7661
+ */
7662
+ this.allowDuplicateOperators = true;
7498
7663
  this.debouncedApplyFilter = debounce$1(() => {
7499
7664
  this.filterChange.emit(this.filterItems);
7500
7665
  }, 400);
@@ -7808,11 +7973,15 @@ class FilterPanel {
7808
7973
  }
7809
7974
  }
7810
7975
  renderSelectOptions(type, isDefaultTypeRemoved = false) {
7976
+ var _a;
7811
7977
  if (!this.changes) {
7812
7978
  return;
7813
7979
  }
7814
7980
  const options = [];
7815
7981
  const prop = this.changes.prop;
7982
+ if (prop === undefined) {
7983
+ return;
7984
+ }
7816
7985
  const hidden = new Set();
7817
7986
  Object.keys(this.filterItems).forEach((prop) => {
7818
7987
  const values = this.filterItems[prop];
@@ -7822,6 +7991,9 @@ class FilterPanel {
7822
7991
  }
7823
7992
  });
7824
7993
  });
7994
+ const selectedTypes = new Set(((_a = this.filterItems[prop]) !== null && _a !== void 0 ? _a : [])
7995
+ .filter(filter => !filter.hidden)
7996
+ .map(filter => filter.type));
7825
7997
  if (!isDefaultTypeRemoved) {
7826
7998
  const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
7827
7999
  options.push(hAsync("option", { selected: this.currentFilterType === defaultType, value: defaultType }, prop && this.filterItems[prop] && this.filterItems[prop].length > 0
@@ -7829,7 +8001,9 @@ class FilterPanel {
7829
8001
  : this.filterNames[defaultType]));
7830
8002
  }
7831
8003
  for (let gIndex in this.changes.filterTypes) {
7832
- const group = this.changes.filterTypes[gIndex].filter(k => !hidden.has(k));
8004
+ const group = this.changes.filterTypes[gIndex].filter(k => !hidden.has(k) && (this.allowDuplicateOperators ||
8005
+ !selectedTypes.has(k) ||
8006
+ (isDefaultTypeRemoved && type === k)));
7833
8007
  if (group.length) {
7834
8008
  options.push(...group.map(k => (hAsync("option", { value: k, selected: type === k }, this.filterNames[k]))));
7835
8009
  options.push(hAsync("option", { disabled: true }));
@@ -7924,7 +8098,7 @@ class FilterPanel {
7924
8098
  top: `${(_d = (_c = this.changes) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0}px`,
7925
8099
  };
7926
8100
  const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
7927
- return (hAsync(Host, { key: '2a19b35adb56fb7d23385fffebc768838edee162' }, hAsync("dialog", { key: '94386d7cbc4bd9c631f72928938b1d1550a3de82', class: "filter-panel-dialog", style: style, ref: el => (this.dialog = el), onCancel: e => {
8101
+ return (hAsync(Host, { key: '8859c452eb08838f65f18efecbdde7f65fda2b49' }, hAsync("dialog", { key: 'f603067ff0986a9f344cbbf816388d2bbac198bb', class: "filter-panel-dialog", style: style, ref: el => (this.dialog = el), onCancel: e => {
7928
8102
  e.preventDefault();
7929
8103
  this.onCancel();
7930
8104
  } }, this.changes && [
@@ -7933,7 +8107,7 @@ class FilterPanel {
7933
8107
  ((_g = this.changes) === null || _g === void 0 ? void 0 : _g.hideDefaultFilters) !== true && [
7934
8108
  hAsync("label", { key: "filter-title" }, capts.title),
7935
8109
  hAsync("div", { key: "filter-holder", class: "filter-holder" }, this.getFilterItemsList()),
7936
- hAsync("div", { key: "add-filter", class: "add-filter" }, hAsync("select", { key: '4f7354e39d8e5cf9ae7b735290eff18d105ab87e', id: FILTER_ID, class: "select-css", onChange: e => this.onAddNewFilter(e) }, this.renderSelectOptions(this.currentFilterType))),
8110
+ hAsync("div", { key: "add-filter", class: "add-filter" }, hAsync("select", { key: '2ec0a66918edf91bdde3962b6ec84c89f6f1c8f1', id: FILTER_ID, class: "select-css", onChange: e => this.onAddNewFilter(e) }, this.renderSelectOptions(this.currentFilterType))),
7937
8111
  ],
7938
8112
  hAsync("slot", { key: "default-slot" }),
7939
8113
  ((_j = (_h = this.changes).extraBottomContent) === null || _j === void 0 ? void 0 : _j.call(_h, this.changes)) || '',
@@ -7958,6 +8132,7 @@ class FilterPanel {
7958
8132
  "filterCaptions": [16],
7959
8133
  "disableDynamicFiltering": [4, "disable-dynamic-filtering"],
7960
8134
  "closeOnOutsideClick": [4, "close-on-outside-click"],
8135
+ "allowDuplicateOperators": [4, "allow-duplicate-operators"],
7961
8136
  "isFilterIdSet": [32],
7962
8137
  "filterId": [32],
7963
8138
  "currentFilterId": [32],
@@ -8885,7 +9060,7 @@ function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
8885
9060
  }
8886
9061
 
8887
9062
  /** Built-in value references. */
8888
- var Uint8Array = root.Uint8Array;
9063
+ var Uint8Array$1 = root.Uint8Array;
8889
9064
 
8890
9065
  /**
8891
9066
  * Converts `map` to its key-value pairs.
@@ -8972,7 +9147,7 @@ function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
8972
9147
 
8973
9148
  case arrayBufferTag$1:
8974
9149
  if ((object.byteLength != other.byteLength) ||
8975
- !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
9150
+ !equalFunc(new Uint8Array$1(object), new Uint8Array$1(other))) {
8976
9151
  return false;
8977
9152
  }
8978
9153
  return true;
@@ -14020,7 +14195,7 @@ function isEmptyClipboardRow(row) {
14020
14195
  return !row || row.every(cell => cell === '');
14021
14196
  }
14022
14197
 
14023
- const revogrOverlayStyleCss = () => `revogr-overlay-selection{display:block;position:relative;width:100%}revogr-overlay-selection .autofill-handle{position:absolute;width:14px;height:14px;margin-left:-13px;margin-top:-13px;z-index:10;cursor:crosshair}revogr-overlay-selection .autofill-handle::before{content:"";position:absolute;right:0;bottom:0;width:10px;height:10px;background:#0d63e8;border:1px solid white;box-sizing:border-box}revogr-overlay-selection.mobile .autofill-handle{position:absolute;width:30px;height:30px;margin-left:-29px;margin-top:-29px;z-index:10;cursor:crosshair}revogr-overlay-selection.mobile .autofill-handle::before{content:"";position:absolute;right:0;bottom:0;width:12px;height:12px;background:#0d63e8;border:1px solid white;box-sizing:border-box}revogr-overlay-selection .selection-border-range{position:absolute;pointer-events:none;z-index:9;box-shadow:-1px 0 0 #0d63e8 inset, 1px 0 0 #0d63e8 inset, 0 -1px 0 #0d63e8 inset, 0 1px 0 #0d63e8 inset}revogr-overlay-selection .selection-border-range .range-handlers{height:100%;background-color:transparent;width:75%;max-width:50px;min-width:20px;left:50%;transform:translateX(-50%);position:absolute}revogr-overlay-selection .selection-border-range .range-handlers>span{pointer-events:auto;height:20px;width:20px;position:absolute;left:50%;transform:translateX(-50%)}revogr-overlay-selection .selection-border-range .range-handlers>span:before,revogr-overlay-selection .selection-border-range .range-handlers>span:after{position:absolute;border-radius:5px;width:15px;height:5px;left:50%;transform:translateX(-50%);background-color:rgba(0, 0, 0, 0.2)}revogr-overlay-selection .selection-border-range .range-handlers>span:first-child{top:-7px}revogr-overlay-selection .selection-border-range .range-handlers>span:first-child:before{content:"";top:0}revogr-overlay-selection .selection-border-range .range-handlers>span:last-child{bottom:-7px}revogr-overlay-selection .selection-border-range .range-handlers>span:last-child:after{content:"";bottom:0}revogr-overlay-selection revogr-edit{z-index:10}`;
14198
+ const revogrOverlayStyleCss = () => `revogr-overlay-selection{display:block;position:relative;width:100%}revogr-overlay-selection .autofill-handle{position:absolute;width:14px;height:14px;margin-left:-13px;margin-top:-13px;z-index:10;cursor:crosshair}revogr-overlay-selection .autofill-handle::before{content:"";position:absolute;right:0;bottom:0;width:10px;height:10px;background:var(--rg-theme-autofill-handle-bg);border:1px solid var(--rg-theme-autofill-handle-border);box-sizing:border-box}revogr-overlay-selection.mobile .autofill-handle{position:absolute;width:30px;height:30px;margin-left:-29px;margin-top:-29px;z-index:10;cursor:crosshair}revogr-overlay-selection.mobile .autofill-handle::before{content:"";position:absolute;right:0;bottom:0;width:12px;height:12px;background:var(--rg-theme-autofill-handle-bg);border:1px solid var(--rg-theme-autofill-handle-border);box-sizing:border-box}revogr-overlay-selection .selection-border-range{position:absolute;pointer-events:none;z-index:9;background-color:var(--rg-theme-selection-bg)}revogr-overlay-selection .selection-border-range .range-handlers{height:100%;background-color:transparent;width:75%;max-width:50px;min-width:20px;left:50%;transform:translateX(-50%);position:absolute}revogr-overlay-selection .selection-border-range .range-handlers>span{pointer-events:auto;height:20px;width:20px;position:absolute;left:50%;transform:translateX(-50%)}revogr-overlay-selection .selection-border-range .range-handlers>span:before,revogr-overlay-selection .selection-border-range .range-handlers>span:after{position:absolute;border-radius:5px;width:15px;height:5px;left:50%;transform:translateX(-50%);background-color:var(--rg-theme-range-handle-bg)}revogr-overlay-selection .selection-border-range .range-handlers>span:first-child{top:-7px}revogr-overlay-selection .selection-border-range .range-handlers>span:first-child:before{content:"";top:0}revogr-overlay-selection .selection-border-range .range-handlers>span:last-child{bottom:-7px}revogr-overlay-selection .selection-border-range .range-handlers>span:last-child:after{content:"";bottom:0}revogr-overlay-selection .selection-border-range{box-shadow:-1px 0 0 var(--rg-theme-selection-border) inset, 1px 0 0 var(--rg-theme-selection-border) inset, 0 -1px 0 var(--rg-theme-selection-border) inset, 0 1px 0 var(--rg-theme-selection-border) inset}revogr-overlay-selection revogr-edit{z-index:10}`;
14024
14199
 
14025
14200
  /**
14026
14201
  * Component for overlaying the grid with the selection.
@@ -14649,7 +14824,7 @@ class TextEditor {
14649
14824
  }
14650
14825
  }
14651
14826
 
14652
- const revogrEditStyleCss = () => `revogr-edit{display:block;position:absolute;background-color:var(--revo-grid-background, #fff)}revogr-edit input{height:100%;width:100%;box-sizing:border-box;background-color:var(--revo-grid-background, transparent)}revogr-edit revo-dropdown{height:100%}revogr-edit revo-dropdown.shrink fieldset legend>span{display:none}`;
14827
+ const revogrEditStyleCss = () => `revogr-edit{display:block;position:absolute;background-color:var(--rg-theme-background)}revogr-edit input{height:100%;width:100%;box-sizing:border-box;background-color:var(--rg-theme-background)}revogr-edit revo-dropdown{height:100%}revogr-edit revo-dropdown.shrink fieldset legend>span{display:none}`;
14653
14828
 
14654
14829
  /**
14655
14830
  * Represents a cell editor in a grid.
@@ -15316,6 +15491,243 @@ class ViewportProvider {
15316
15491
  }
15317
15492
  }
15318
15493
 
15494
+ /**
15495
+ * Public theme tokens and their CSS custom-property counterparts.
15496
+ * Keep this map as the single source of truth for typed theme definitions.
15497
+ */
15498
+ const themeTokenCssVariables = {
15499
+ primary: '--revo-grid-primary',
15500
+ primaryTransparent: '--revo-grid-primary-transparent',
15501
+ background: '--revo-grid-background',
15502
+ foreground: '--revo-grid-foreground',
15503
+ divider: '--revo-grid-divider',
15504
+ shadow: '--revo-grid-shadow',
15505
+ text: '--revo-grid-text',
15506
+ border: '--revo-grid-border',
15507
+ headerBg: '--revo-grid-header-bg',
15508
+ headerColor: '--revo-grid-header-color',
15509
+ headerBorder: '--revo-grid-header-border',
15510
+ headerFocusedBg: '--revo-grid-header-focused-bg',
15511
+ headerHoverBg: '--revo-grid-header-hover-bg',
15512
+ cellBorder: '--revo-grid-cell-border',
15513
+ cellVerticalBorder: '--revo-grid-cell-vertical-border',
15514
+ focusedBg: '--revo-grid-focused-bg',
15515
+ rowHover: '--revo-grid-row-hover',
15516
+ rowHeadersBg: '--revo-grid-row-headers-bg',
15517
+ rowHeadersColor: '--revo-grid-row-headers-color',
15518
+ cellDisabledBg: '--revo-grid-cell-disabled-bg',
15519
+ filterPanelBg: '--revo-grid-filter-panel-bg',
15520
+ filterPanelBorder: '--revo-grid-filter-panel-border',
15521
+ filterPanelShadow: '--revo-grid-filter-panel-shadow',
15522
+ filterPanelInputBg: '--revo-grid-filter-panel-input-bg',
15523
+ filterPanelDivider: '--revo-grid-filter-panel-divider',
15524
+ filterPanelSelectBorder: '--revo-grid-filter-panel-select-border',
15525
+ filterPanelSelectBorderHover: '--revo-grid-filter-panel-select-border-hover',
15526
+ filterPanelReorderAccent: '--revo-grid-filter-panel-reorder-accent',
15527
+ filterPanelReorderColor: '--revo-grid-filter-panel-reorder-color',
15528
+ filterPanelText: '--revo-grid-filter-panel-text',
15529
+ filterPanelMutedText: '--revo-grid-filter-panel-muted-text',
15530
+ filterPanelFocusRing: '--revo-grid-filter-panel-focus-ring',
15531
+ filterPanelIcon: '--revo-grid-filter-panel-icon',
15532
+ filterPanelIconActive: '--revo-grid-filter-panel-icon-active',
15533
+ filterPanelSelectArrow: '--revo-grid-filter-panel-select-arrow',
15534
+ filterPanelSelectArrowDisabled: '--revo-grid-filter-panel-select-arrow-disabled',
15535
+ fontFamily: '--revo-grid-font-family',
15536
+ fontSize: '--revo-grid-font-size',
15537
+ headerHeight: '--revo-grid-header-height',
15538
+ headerFontSize: '--revo-grid-header-font-size',
15539
+ headerFontWeight: '--revo-grid-header-font-weight',
15540
+ headerTextTransform: '--revo-grid-header-text-transform',
15541
+ headerTextAlign: '--revo-grid-header-text-align',
15542
+ cellTextAlign: '--revo-grid-cell-text-align',
15543
+ headerPadding: '--revo-grid-header-padding',
15544
+ cellPadding: '--revo-grid-cell-padding',
15545
+ selectionBorder: '--revo-grid-selection-border',
15546
+ selectionBg: '--revo-grid-selection-bg',
15547
+ autofillHandleBg: '--revo-grid-autofill-handle-bg',
15548
+ autofillHandleBorder: '--revo-grid-autofill-handle-border',
15549
+ rangeHandleBg: '--revo-grid-range-handle-bg',
15550
+ temporaryRangeBorder: '--revo-grid-temporary-range-border',
15551
+ temporarySelectionBorder: '--revo-grid-temporary-selection-border',
15552
+ headerResizeHover: '--revo-grid-header-resize-hover',
15553
+ buttonText: '--revo-grid-button-text',
15554
+ buttonBg: '--revo-grid-button-bg',
15555
+ buttonSuccessBg: '--revo-grid-button-success-bg',
15556
+ buttonDangerBg: '--revo-grid-button-danger-bg',
15557
+ buttonOutlineBorder: '--revo-grid-button-outline-border',
15558
+ buttonOutlineText: '--revo-grid-button-outline-text',
15559
+ };
15560
+
15561
+ const DEFAULT_THEME = 'default';
15562
+ const allowedThemes = [
15563
+ DEFAULT_THEME,
15564
+ 'material',
15565
+ 'compact',
15566
+ 'darkMaterial',
15567
+ 'darkCompact',
15568
+ ];
15569
+ const builtInThemeNames = new Set(allowedThemes);
15570
+ const builtInThemes = Object.freeze({
15571
+ default: Object.freeze({
15572
+ name: 'default',
15573
+ base: 'default',
15574
+ colorScheme: 'light',
15575
+ defaultRowSize: 27,
15576
+ tokens: Object.freeze({}),
15577
+ custom: false,
15578
+ }),
15579
+ material: Object.freeze({
15580
+ name: 'material',
15581
+ base: 'material',
15582
+ colorScheme: 'light',
15583
+ defaultRowSize: 42,
15584
+ tokens: Object.freeze({}),
15585
+ custom: false,
15586
+ }),
15587
+ compact: Object.freeze({
15588
+ name: 'compact',
15589
+ base: 'compact',
15590
+ colorScheme: 'light',
15591
+ defaultRowSize: 32,
15592
+ tokens: Object.freeze({}),
15593
+ custom: false,
15594
+ }),
15595
+ darkMaterial: Object.freeze({
15596
+ name: 'darkMaterial',
15597
+ base: 'material',
15598
+ colorScheme: 'dark',
15599
+ defaultRowSize: 42,
15600
+ tokens: Object.freeze({}),
15601
+ custom: false,
15602
+ }),
15603
+ darkCompact: Object.freeze({
15604
+ name: 'darkCompact',
15605
+ base: 'compact',
15606
+ colorScheme: 'dark',
15607
+ defaultRowSize: 32,
15608
+ tokens: Object.freeze({}),
15609
+ custom: false,
15610
+ }),
15611
+ });
15612
+ function isBuiltInTheme(theme) {
15613
+ return builtInThemeNames.has(theme);
15614
+ }
15615
+ function isPositiveSize(size) {
15616
+ return typeof size === 'number' && Number.isFinite(size) && size > 0;
15617
+ }
15618
+ function getColorScheme(scheme, fallback) {
15619
+ return scheme === 'light' || scheme === 'dark' ? scheme : fallback;
15620
+ }
15621
+ function getThemeTokens(tokens) {
15622
+ if (!tokens || typeof tokens !== 'object') {
15623
+ return {};
15624
+ }
15625
+ const result = {};
15626
+ for (const [name, value] of Object.entries(tokens)) {
15627
+ if (Object.hasOwn(themeTokenCssVariables, name) &&
15628
+ typeof value === 'string' &&
15629
+ value.trim()) {
15630
+ result[name] = value;
15631
+ }
15632
+ }
15633
+ return result;
15634
+ }
15635
+ class ThemeService {
15636
+ get theme() {
15637
+ return this.currentTheme;
15638
+ }
15639
+ get rowSize() {
15640
+ return this.customRowSize || this.currentTheme.defaultRowSize;
15641
+ }
15642
+ set rowSize(size) {
15643
+ this.customRowSize = isPositiveSize(size) ? size : 0;
15644
+ }
15645
+ constructor(cfg) {
15646
+ this.currentTheme = Object.assign({}, builtInThemes.default);
15647
+ this.customThemes = new Map();
15648
+ this.customRowSize = 0;
15649
+ this.rowSize = cfg.rowSize;
15650
+ this.register('default');
15651
+ }
15652
+ setDefinitions(definitions = []) {
15653
+ const customThemes = new Map();
15654
+ if (Array.isArray(definitions)) {
15655
+ for (const definition of definitions) {
15656
+ if (!definition || typeof definition !== 'object') {
15657
+ continue;
15658
+ }
15659
+ if (typeof definition.name !== 'string' || !definition.name.trim()) {
15660
+ continue;
15661
+ }
15662
+ const name = getTheme(definition.name);
15663
+ if (isBuiltInTheme(name)) {
15664
+ continue;
15665
+ }
15666
+ customThemes.set(name, Object.assign(Object.assign({}, definition), { name }));
15667
+ }
15668
+ }
15669
+ this.customThemes = customThemes;
15670
+ }
15671
+ register(theme) {
15672
+ const name = getTheme(theme);
15673
+ if (isBuiltInTheme(name)) {
15674
+ this.currentTheme = Object.assign(Object.assign({}, builtInThemes[name]), { tokens: {} });
15675
+ return this.currentTheme;
15676
+ }
15677
+ const definition = this.customThemes.get(name);
15678
+ if (!definition) {
15679
+ this.currentTheme = Object.assign(Object.assign({}, builtInThemes.default), { name, tokens: {}, custom: true });
15680
+ return this.currentTheme;
15681
+ }
15682
+ this.currentTheme = this.resolveDefinition(name);
15683
+ return this.currentTheme;
15684
+ }
15685
+ resolveDefinition(name) {
15686
+ const chain = [];
15687
+ const visited = new Set();
15688
+ let parentName = name;
15689
+ let validChain = true;
15690
+ while (!isBuiltInTheme(parentName)) {
15691
+ if (visited.has(parentName)) {
15692
+ validChain = false;
15693
+ break;
15694
+ }
15695
+ visited.add(parentName);
15696
+ const definition = this.customThemes.get(parentName);
15697
+ if (!definition) {
15698
+ validChain = false;
15699
+ break;
15700
+ }
15701
+ chain.push(definition);
15702
+ parentName = getTheme(definition.extends);
15703
+ }
15704
+ let resolved = Object.assign(Object.assign({}, (validChain && isBuiltInTheme(parentName)
15705
+ ? builtInThemes[parentName]
15706
+ : builtInThemes.default)), { tokens: {} });
15707
+ if (validChain) {
15708
+ chain.reverse();
15709
+ }
15710
+ const definitions = validChain ? chain : chain.slice(0, 1);
15711
+ for (const definition of definitions) {
15712
+ resolved = {
15713
+ name: definition.name,
15714
+ base: resolved.base,
15715
+ colorScheme: getColorScheme(definition.colorScheme, resolved.colorScheme),
15716
+ defaultRowSize: isPositiveSize(definition.defaultRowSize)
15717
+ ? definition.defaultRowSize
15718
+ : resolved.defaultRowSize,
15719
+ tokens: Object.assign(Object.assign({}, resolved.tokens), getThemeTokens(definition.tokens)),
15720
+ custom: true,
15721
+ };
15722
+ }
15723
+ return resolved;
15724
+ }
15725
+ }
15726
+ function getTheme(theme) {
15727
+ const normalizedTheme = typeof theme === 'string' ? theme.trim() : '';
15728
+ return normalizedTheme || DEFAULT_THEME;
15729
+ }
15730
+
15319
15731
  /**
15320
15732
  * A specialized version of `_.forEach` for arrays without support for
15321
15733
  * iteratee shorthands.
@@ -15869,13 +16281,14 @@ class FilterPlugin extends BasePlugin {
15869
16281
  this.filterNameIndexByType = Object.assign({}, filterNames);
15870
16282
  this.filterFunctionsIndexedByType = Object.assign({}, filterCoreFunctionsIndexedByType);
15871
16283
  this.filterProp = FILTER_PROP;
16284
+ this.allowDuplicateOperators = true;
15872
16285
  if (config) {
15873
16286
  this.initConfig(config);
15874
16287
  }
15875
16288
  const existingNodes = this.revogrid.registerVNode.filter(n => typeof n === 'object' && n.$tag$ !== FILTE_PANEL);
15876
16289
  this.revogrid.registerVNode = [
15877
16290
  ...existingNodes,
15878
- hAsync("revogr-filter-panel", { filterNames: this.filterNameIndexByType, filterEntities: this.filterFunctionsIndexedByType, filterCaptions: (_a = config === null || config === void 0 ? void 0 : config.localization) === null || _a === void 0 ? void 0 : _a.captions, onFilterChange: e => this.onFilterChange(e.detail), onResetChange: e => this.onFilterReset(e.detail), disableDynamicFiltering: config === null || config === void 0 ? void 0 : config.disableDynamicFiltering, closeOnOutsideClick: config === null || config === void 0 ? void 0 : config.closeFilterPanelOnOutsideClick, ref: e => (this.pop = e) }, ' ', this.extraContent()),
16291
+ hAsync("revogr-filter-panel", { filterNames: this.filterNameIndexByType, filterEntities: this.filterFunctionsIndexedByType, filterCaptions: (_a = config === null || config === void 0 ? void 0 : config.localization) === null || _a === void 0 ? void 0 : _a.captions, onFilterChange: e => this.onFilterChange(e.detail), onResetChange: e => this.onFilterReset(e.detail), disableDynamicFiltering: config === null || config === void 0 ? void 0 : config.disableDynamicFiltering, closeOnOutsideClick: config === null || config === void 0 ? void 0 : config.closeFilterPanelOnOutsideClick, allowDuplicateOperators: this.allowDuplicateOperators, ref: e => (this.pop = e) }, ' ', this.extraContent()),
15879
16292
  ];
15880
16293
  const aftersourceset = async () => {
15881
16294
  const filterCollectionProps = Object.keys(this.filterCollection);
@@ -15902,15 +16315,24 @@ class FilterPlugin extends BasePlugin {
15902
16315
  };
15903
16316
  this.addEventListener('headerclick', e => this.headerclick(e));
15904
16317
  this.addEventListener(FILTER_CONFIG_CHANGED_EVENT, ({ detail }) => {
15905
- if (!detail ||
15906
- (typeof detail === 'object' &&
15907
- (!detail.multiFilterItems ||
15908
- !Object.keys(detail.multiFilterItems).length))) {
16318
+ if (!detail) {
15909
16319
  this.clearFiltering();
15910
16320
  return;
15911
16321
  }
15912
16322
  if (typeof detail === 'object') {
15913
- this.initConfig(detail);
16323
+ const detailKeys = Object.keys(detail);
16324
+ const preserveCurrentFilters = !detailKeys.includes('multiFilterItems') &&
16325
+ detailKeys.includes('allowDuplicateOperators');
16326
+ this.initConfig(preserveCurrentFilters
16327
+ ? Object.assign(Object.assign({}, detail), { multiFilterItems: this.multiFilterItems }) : detail);
16328
+ if (!detail.multiFilterItems || !Object.keys(detail.multiFilterItems).length) {
16329
+ if (preserveCurrentFilters) {
16330
+ aftersourceset();
16331
+ return;
16332
+ }
16333
+ this.clearFiltering();
16334
+ return;
16335
+ }
15914
16336
  }
15915
16337
  aftersourceset();
15916
16338
  });
@@ -15924,6 +16346,11 @@ class FilterPlugin extends BasePlugin {
15924
16346
  return null;
15925
16347
  }
15926
16348
  initConfig(config) {
16349
+ var _a;
16350
+ this.allowDuplicateOperators = (_a = config.allowDuplicateOperators) !== null && _a !== void 0 ? _a : true;
16351
+ if (this.pop) {
16352
+ this.pop.allowDuplicateOperators = this.allowDuplicateOperators;
16353
+ }
15927
16354
  if (config.multiFilterItems) {
15928
16355
  this.multiFilterItems = Object.assign({}, config.multiFilterItems);
15929
16356
  }
@@ -19313,8 +19740,12 @@ class RTLPlugin extends BasePlugin {
19313
19740
  }
19314
19741
  }
19315
19742
 
19316
- const revoGridStyleCss = () => `revo-grid[theme=default],revo-grid:not([theme]){border:1px solid var(--revo-grid-header-border);font-size:12px}revo-grid[theme=default] .rowHeaders revogr-header,revo-grid:not([theme]) .rowHeaders revogr-header{box-shadow:-1px 0 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] revogr-header,revo-grid:not([theme]) revogr-header{text-align:center;line-height:30px;background-color:var(--revo-grid-header-bg)}revo-grid[theme=default] revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{box-shadow:none}revo-grid[theme=default] revogr-header .group-rgRow .rgHeaderCell,revo-grid:not([theme]) revogr-header .group-rgRow .rgHeaderCell{box-shadow:-1px 0 0 0 var(--revo-grid-header-border), -1px 0 0 0 var(--revo-grid-header-border) inset, 0 -1px 0 0 var(--revo-grid-header-border), 0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] revogr-header .header-rgRow,revo-grid[theme=default] revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{text-transform:uppercase;font-size:12px;color:var(--revo-grid-header-color)}revo-grid[theme=default] revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow{height:30px;box-shadow:0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] revogr-header .rgHeaderCell,revo-grid:not([theme]) revogr-header .rgHeaderCell{box-shadow:-1px 0 0 0 var(--revo-grid-header-border) inset, 0 -1px 0 0 var(--revo-grid-header-border), 0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] .rowHeaders,revo-grid:not([theme]) .rowHeaders{background-color:var(--revo-grid-header-bg)}revo-grid[theme=default] .rowHeaders revogr-data .rgCell,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell{color:var(--revo-grid-header-color)}revo-grid[theme=default] .rowHeaders revogr-data .rgCell:first-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:first-child{box-shadow:0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] .rowHeaders revogr-data .rgCell:not(:first-child),revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child){box-shadow:0 -1px 0 0 var(--revo-grid-header-border) inset, 1px 0 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] .rowHeaders revogr-data .rgCell:last-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:last-child{border-right:1px solid var(--revo-grid-header-border)}revo-grid[theme=default] .rowHeaders revogr-data revogr-header,revo-grid:not([theme]) .rowHeaders revogr-data revogr-header{box-shadow:0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child{box-shadow:0 -1px 0 0 var(--revo-grid-cell-border) inset, -1px 0 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 var(--revo-grid-header-border) inset, -1px 0 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] revogr-viewport-scroll.colPinEnd,revo-grid[theme=default] revogr-viewport-scroll.colPinEnd revogr-header,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd revogr-header{box-shadow:1px 0 0 var(--revo-grid-header-border) inset}revo-grid[theme=default] .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 var(--revo-grid-cell-border) inset, -1px 0 0 0 var(--revo-grid-cell-border) inset, 0 -1px 0 0 var(--revo-grid-cell-border) inset}revo-grid[theme=default] revogr-data,revo-grid:not([theme]) revogr-data{text-align:center}revo-grid[theme=default] revogr-data .revo-draggable,revo-grid:not([theme]) revogr-data .revo-draggable{float:left}revo-grid[theme=default] revogr-data .rgRow,revo-grid:not([theme]) revogr-data .rgRow{line-height:27px}revo-grid[theme=default] revogr-data .rgCell,revo-grid:not([theme]) revogr-data .rgCell{box-shadow:0 -1px 0 0 var(--revo-grid-cell-border) inset, -1px 0 0 0 var(--revo-grid-cell-border) inset}revo-grid[theme=material]{font-family:Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"}revo-grid[theme=material] revogr-header{line-height:50px;font-weight:600;text-align:left}revo-grid[theme=material] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=material] revogr-header .header-rgRow{height:50px}revo-grid[theme=material] revogr-data{text-align:left}revo-grid[theme=material] revogr-data .rgRow{line-height:42px}revo-grid[theme=material] revogr-data .rgCell{padding:0 15px}revo-grid[theme=darkMaterial]{font-family:Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"}revo-grid[theme=darkMaterial] revogr-header{line-height:50px;font-weight:600;text-align:left}revo-grid[theme=darkMaterial] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=darkMaterial] revogr-header .header-rgRow{height:50px}revo-grid[theme=darkMaterial] revogr-data{text-align:left}revo-grid[theme=darkMaterial] revogr-data .rgRow{line-height:42px}revo-grid[theme=darkMaterial] revogr-data .rgCell{padding:0 15px}revo-grid[theme=darkCompact]{font-family:Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"}revo-grid[theme=darkCompact] revogr-header{line-height:45px;font-weight:600;text-align:left}revo-grid[theme=darkCompact] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=darkCompact] revogr-header .header-rgRow{height:45px}revo-grid[theme=darkCompact] revogr-data{text-align:left}revo-grid[theme=darkCompact] revogr-data .rgRow{line-height:32px}revo-grid[theme=darkCompact] revogr-data .rgCell{padding:0 15px}revo-grid[theme=compact]{font-family:Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"}revo-grid[theme=compact] revogr-header{line-height:45px;font-weight:600;text-align:left}revo-grid[theme=compact] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=compact] revogr-header .header-rgRow{height:45px}revo-grid[theme=compact] revogr-data{text-align:left}revo-grid[theme=compact] revogr-data .rgRow{line-height:32px}revo-grid[theme=compact] revogr-data .rgCell{padding:0 15px}revo-grid[theme=compact] revo-dropdown .rv-dr-root{padding:0px 9px}revo-grid[dir=rtl] .viewports{flex-direction:row-reverse}revo-grid[dir=rtl] revogr-header .rgHeaderCell{text-align:right}revo-grid[dir=rtl] revogr-data .rgCell{text-align:right}revo-grid[dir=rtl] .rowHeaders revogr-data .rgCell{text-align:right}revo-grid[dir=rtl] revogr-filter-panel{direction:rtl}revo-grid[dir=rtl] revo-dropdown .rv-dr-root{text-align:right}revo-grid[dir=rtl] .drag-position{right:0;left:auto}revo-grid[dir=rtl] .drag-auto-scroll-y{right:0;left:auto}revo-grid[dir=rtl] .clipboard{right:0;left:auto}revo-grid[dir=rtl] .draggable{margin-left:-20px;margin-right:0;padding-right:20px;padding-left:5px}revo-grid[dir=rtl] .draggable .revo-alt-icon{right:5px;left:auto}revo-grid[dir=rtl] .focused-cell{border-right:2px solid var(--revo-grid-primary);border-left:none}revo-grid[dir=rtl] .selection-range{border-right:2px solid var(--revo-grid-primary);border-left:none}revo-grid[dir=rtl] .resize-handle{right:0;left:auto}revo-grid[dir=rtl] .sort-indicator{margin-left:0;margin-right:5px}revo-grid[dir=rtl] .filter-button{margin-left:0;margin-right:5px}revo-grid[dir=rtl] .group-expand{margin-right:0;margin-left:2px;padding-right:5px;padding-left:0}revo-grid[dir=rtl] .rgCell,revo-grid[dir=rtl] .rgHeaderCell{padding-left:5px;padding-right:5px}revo-grid[dir=rtl] revogr-edit{direction:rtl}revo-grid[dir=rtl] .rgHeaderCell{direction:rtl}revo-grid[dir=rtl][theme=material] revogr-header,revo-grid[dir=rtl][theme=darkMaterial] revogr-header{text-align:right}revo-grid[dir=rtl][theme=material] revogr-data,revo-grid[dir=rtl][theme=darkMaterial] revogr-data{text-align:right}revo-grid[dir=rtl][theme=default] .rowHeaders,revo-grid[dir=rtl]:not([theme]) .rowHeaders{background-color:var(--revo-grid-header-bg)}revo-grid[dir=rtl][theme=default] .rowHeaders revogr-data .rgCell,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell{color:var(--revo-grid-header-color)}revo-grid[dir=rtl][theme=default] .rowHeaders revogr-data .rgCell:first-child,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:first-child{box-shadow:0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid[dir=rtl][theme=default] .rowHeaders revogr-data .rgCell:not(:first-child),revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child){box-shadow:0 -1px 0 0 var(--revo-grid-header-border) inset, 1px 0 0 0 var(--revo-grid-header-border) inset}revo-grid[dir=rtl][theme=default] .rowHeaders revogr-data .rgCell:last-child,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data .rgCell:last-child{border-left:1px solid var(--revo-grid-header-border);border-right:none}revo-grid[dir=rtl][theme=default] .rowHeaders revogr-data revogr-header,revo-grid[dir=rtl]:not([theme]) .rowHeaders revogr-data revogr-header{box-shadow:0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid[dir=rtl][theme=default] revogr-header,revo-grid[dir=rtl]:not([theme]) revogr-header{text-align:right}revo-grid[dir=rtl][theme=default] revogr-data,revo-grid[dir=rtl]:not([theme]) revogr-data{text-align:right}revo-grid[dir=rtl][theme=compact] revogr-header,revo-grid[dir=rtl][theme=darkCompact] revogr-header{text-align:right}revo-grid[dir=rtl][theme=compact] revogr-data,revo-grid[dir=rtl][theme=darkCompact] revogr-data{text-align:right}.revo-drag-icon{width:11px;opacity:0.8}.revo-drag-icon::before{content:"::";display:inline-block}.revo-alt-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}revo-grid{--revo-grid-primary:#266ae8;--revo-grid-primary-transparent:rgba(38, 106, 232, 0.9);--revo-grid-background:#fff;--revo-grid-foreground:black;--revo-grid-divider:gray;--revo-grid-shadow:rgba(0, 0, 0, 0.15);--revo-grid-text:black;--revo-grid-border:rgba(0, 0, 0, 0.2);--revo-grid-filter-panel-bg:#fff;--revo-grid-filter-panel-border:#d9d9d9;--revo-grid-filter-panel-shadow:rgba(0, 0, 0, 0.15);--revo-grid-filter-panel-input-bg:#eaeaeb;--revo-grid-filter-panel-divider:#d9d9d9;--revo-grid-filter-panel-select-border:transparent;--revo-grid-filter-panel-select-border-hover:transparent;--revo-grid-header-bg:#f8f9fa;--revo-grid-header-color:#000;--revo-grid-header-border:#cecece;--revo-grid-cell-border:#e2e3e3;--revo-grid-focused-bg:rgba(233, 234, 237, 0.5);--revo-grid-row-hover:#f1f1f1;--revo-grid-row-headers-bg:#f7faff;--revo-grid-row-headers-color:#757a82;--revo-grid-cell-disabled-bg:rgba(0, 0, 0, 0.07);direction:ltr !important;display:flex !important;height:100%;min-height:300px;font-family:Helvetica, Arial, Sans-Serif, serif;font-size:14px;position:relative;color:var(--revo-grid-text);-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;width:100%;height:100%}revo-grid[theme*=dark]{--revo-grid-background:#212529;--revo-grid-foreground:#fff;--revo-grid-text:rgba(255, 255, 255, 0.9);--revo-grid-divider:#505050;--revo-grid-border:rgba(255, 255, 255, 0.2);--revo-grid-filter-panel-bg:#212529;--revo-grid-filter-panel-border:#505050;--revo-grid-filter-panel-input-bg:#343a40;--revo-grid-filter-panel-divider:#505050;--revo-grid-header-bg:#343a40;--revo-grid-header-color:#fff;--revo-grid-header-border:#505050;--revo-grid-cell-border:#424242;--revo-grid-focused-bg:rgba(52, 58, 64, 0.5);--revo-grid-row-hover:rgba(80, 80, 80, 0.5);--revo-grid-row-headers-bg:rgba(52, 58, 64, 0.8);--revo-grid-row-headers-color:rgba(255, 255, 255, 0.8);--revo-grid-cell-disabled-bg:rgba(255, 255, 255, 0.07)}revo-grid revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 var(--revo-grid-header-border), 0 -1px 0 0 var(--revo-grid-header-border) inset}revo-grid revogr-header .rgHeaderCell.sortable:hover{background-color:var(--revo-grid-row-hover)}revo-grid revogr-header .rgHeaderCell.focused-cell{background:var(--revo-grid-focused-bg)}revo-grid .footer-wrapper revogr-data{box-shadow:0 -1px 0 var(--revo-grid-cell-border)}revo-grid revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 var(--revo-grid-cell-border) inset}revo-grid revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 var(--revo-grid-cell-border)}revo-grid revogr-data .rgRow{box-shadow:0 -1px 0 0 var(--revo-grid-cell-border) inset}revo-grid revogr-data .rgRow.focused-rgRow{background-color:var(--revo-grid-focused-bg)}revo-grid revogr-data .rgCell{color:var(--revo-grid-text)}revo-grid revogr-data .rgCell.disabled{background-color:var(--revo-grid-cell-disabled-bg)}revo-grid .attribution{position:absolute;bottom:0;left:0;right:0;z-index:1000;width:0;height:0;border-left:4px solid var(--revo-grid-primary-transparent);border-bottom:4px solid var(--revo-grid-primary-transparent);border-top:4px solid transparent;border-right:4px solid transparent;cursor:pointer}revo-grid .attribution .value{position:absolute;bottom:0;left:0;background-color:var(--revo-grid-background);padding:4px;border-radius:4px;box-shadow:0 1px 10px var(--revo-grid-border);white-space:nowrap;text-decoration:none;color:var(--revo-grid-text);letter-spacing:0.3px;font-size:11px;opacity:0;width:4px;overflow:hidden;transition:opacity 0.5s ease-in-out, width 0.3s ease-in-out}revo-grid .attribution:hover .value{width:63px;opacity:1}revo-grid.column-draggable.column-drag-start:hover,revo-grid.column-draggable.column-drag-start *:hover{cursor:grabbing}revo-grid .footer-wrapper,revo-grid .header-wrapper{width:100%}revo-grid .footer-wrapper revogr-data,revo-grid .header-wrapper revogr-data{z-index:3}revo-grid revo-dropdown{width:100%}revo-grid revo-dropdown .rv-dr-root{max-height:100%}revo-grid revo-dropdown.shrink label{opacity:0}revo-grid .viewports{max-width:100%;display:flex;flex-direction:row;align-items:flex-start;flex-grow:1}revo-grid .main-viewport{flex-grow:1;height:0;display:flex;justify-content:space-between;flex-direction:row}revo-grid .draggable{position:fixed;height:30px;line-height:30px;background:var(--revo-grid-background);border-radius:3px;display:block;z-index:100;margin-top:5px;margin-right:-20px;box-shadow:0 4px 20px 0 var(--revo-grid-shadow);padding-left:20px;padding-right:5px}revo-grid .draggable.hidden{display:none}revo-grid .draggable .revo-alt-icon{background-color:var(--revo-grid-foreground);position:absolute;left:5px;top:10px}revo-grid .draggable-wrapper.hidden{display:none}revo-grid .drag-position{position:absolute;left:0;right:0;height:1px;z-index:2;background:var(--revo-grid-divider);pointer-events:none}revo-grid .drag-position-y{position:absolute;top:0;left:0;bottom:0;width:1px;z-index:2;background:var(--revo-grid-divider);pointer-events:none}revo-grid .drag-auto-scroll-y{pointer-events:none;position:absolute;left:0;top:0;height:50px;width:1px}revo-grid .clipboard{position:absolute;left:0;top:0}revo-grid revogr-scroll-virtual{position:relative}revo-grid revogr-scroll-virtual.vertical,revo-grid revogr-scroll-virtual.horizontal{z-index:3}`;
19743
+ const revoGridStyleCss = () => `revo-grid[data-rg-theme-base=default]{--rg-theme-font-family:var( --revo-grid-font-family, Helvetica, Arial, Sans-Serif, serif );--rg-theme-font-size:var(--revo-grid-font-size, 12px);--rg-theme-header-height:var(--revo-grid-header-height, 30px);--rg-theme-header-font-size:var(--revo-grid-header-font-size, 12px);--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, normal);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, uppercase );--rg-theme-header-text-align:var(--revo-grid-header-text-align, center);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, center);--rg-theme-header-padding:var(--revo-grid-header-padding, 0);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0);border:1px solid var(--rg-theme-header-border);font-size:var(--rg-theme-font-size)}revo-grid[data-rg-theme-base=default] .rowHeaders revogr-header{box-shadow:-1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid[data-rg-theme-base=default] revogr-header{text-align:var(--rg-theme-header-text-align);line-height:var(--rg-theme-header-height);background-color:var(--rg-theme-header-bg)}revo-grid[data-rg-theme-base=default] revogr-header .group-rgRow{box-shadow:none}revo-grid[data-rg-theme-base=default] revogr-header .group-rgRow .rgHeaderCell{box-shadow:-1px 0 0 0 var(--rg-theme-header-border), -1px 0 0 0 var(--rg-theme-header-border) inset, 0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid[data-rg-theme-base=default] revogr-header .header-rgRow,revo-grid[data-rg-theme-base=default] revogr-header .group-rgRow{text-transform:var(--rg-theme-header-text-transform);font-size:var(--rg-theme-header-font-size);font-weight:var(--rg-theme-header-font-weight);color:var(--rg-theme-header-color)}revo-grid[data-rg-theme-base=default] revogr-header .header-rgRow{height:var(--rg-theme-header-height);box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid[data-rg-theme-base=default] revogr-header .rgHeaderCell{box-shadow:-1px 0 0 0 var(--rg-theme-header-border) inset, 0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid[data-rg-theme-base=default] .rowHeaders{background-color:var(--rg-theme-row-headers-bg)}revo-grid[data-rg-theme-base=default] .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid[data-rg-theme-base=default] .rowHeaders revogr-data .rgCell:first-child{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid[data-rg-theme-base=default] .rowHeaders revogr-data .rgCell:not(:first-child){box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid[data-rg-theme-base=default] .rowHeaders revogr-data .rgCell:last-child{border-right:1px solid var(--rg-theme-header-border)}revo-grid[data-rg-theme-base=default] .rowHeaders revogr-data revogr-header{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid[data-rg-theme-base=default] revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child{box-shadow:0 -1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid[data-rg-theme-base=default] revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 var(--rg-theme-header-border) inset, -1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid[data-rg-theme-base=default] revogr-viewport-scroll.colPinEnd,revo-grid[data-rg-theme-base=default] revogr-viewport-scroll.colPinEnd revogr-header{box-shadow:1px 0 0 var(--rg-theme-header-border) inset}revo-grid[data-rg-theme-base=default] .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-cell-border) inset, 0 -1px 0 0 var(--rg-theme-cell-border) inset}revo-grid[data-rg-theme-base=default] revogr-data{text-align:var(--rg-theme-cell-text-align)}revo-grid[data-rg-theme-base=default] revogr-data .revo-draggable{float:left}revo-grid[data-rg-theme-base=default] revogr-data .rgRow{line-height:var(--rg-theme-row-size, 27px)}revo-grid[data-rg-theme-base=default] revogr-data .rgCell{padding:var(--rg-theme-cell-padding);box-shadow:0 -1px 0 0 var(--rg-theme-cell-border) inset, -1px 0 0 0 var(--rg-theme-cell-border) inset}revo-grid[data-rg-theme-base=material]{--rg-theme-font-family:var( --revo-grid-font-family, Nunito, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol' );--rg-theme-header-height:var(--revo-grid-header-height, 50px);--rg-theme-header-font-size:var( --revo-grid-header-font-size, var(--rg-theme-font-size) );--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, 600);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, none );--rg-theme-header-text-align:var(--revo-grid-header-text-align, left);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, left);--rg-theme-header-padding:var(--revo-grid-header-padding, 0 15px);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0 15px);font-family:var(--rg-theme-font-family)}revo-grid[data-rg-theme-base=material] revogr-header{color:var(--rg-theme-header-color);background-color:var(--rg-theme-header-bg);line-height:var(--rg-theme-header-height);font-size:var(--rg-theme-header-font-size);font-weight:var(--rg-theme-header-font-weight);text-transform:var(--rg-theme-header-text-transform);text-align:var(--rg-theme-header-text-align)}revo-grid[data-rg-theme-base=material] revogr-header .rgHeaderCell{padding:var(--rg-theme-header-padding);text-overflow:ellipsis}revo-grid[data-rg-theme-base=material] revogr-header .header-rgRow{height:var(--rg-theme-header-height)}revo-grid[data-rg-theme-base=material] .rowHeaders{color:var(--rg-theme-row-headers-color);background-color:var(--rg-theme-row-headers-bg)}revo-grid[data-rg-theme-base=material] .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid[data-rg-theme-base=material] revogr-data{text-align:var(--rg-theme-cell-text-align)}revo-grid[data-rg-theme-base=material] revogr-data .rgRow{line-height:var(--rg-theme-row-size, 42px)}revo-grid[data-rg-theme-base=material] revogr-data .rgCell{padding:var(--rg-theme-cell-padding);box-shadow:-1px 0 0 0 var(--rg-theme-cell-vertical-border) inset}revo-grid[data-rg-theme-base=compact]{--rg-theme-font-family:var( --revo-grid-font-family, Nunito, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol' );--rg-theme-header-height:var(--revo-grid-header-height, 45px);--rg-theme-header-font-size:var( --revo-grid-header-font-size, var(--rg-theme-font-size) );--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, 600);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, none );--rg-theme-header-text-align:var(--revo-grid-header-text-align, left);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, left);--rg-theme-header-padding:var(--revo-grid-header-padding, 0 15px);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0 15px);font-family:var(--rg-theme-font-family)}revo-grid[data-rg-theme-base=compact] revogr-header{color:var(--rg-theme-header-color);background-color:var(--rg-theme-header-bg);line-height:var(--rg-theme-header-height);font-size:var(--rg-theme-header-font-size);font-weight:var(--rg-theme-header-font-weight);text-transform:var(--rg-theme-header-text-transform);text-align:var(--rg-theme-header-text-align)}revo-grid[data-rg-theme-base=compact] revogr-header .rgHeaderCell{padding:var(--rg-theme-header-padding);text-overflow:ellipsis}revo-grid[data-rg-theme-base=compact] revogr-header .header-rgRow{height:var(--rg-theme-header-height)}revo-grid[data-rg-theme-base=compact] .rowHeaders{color:var(--rg-theme-row-headers-color);background-color:var(--rg-theme-row-headers-bg)}revo-grid[data-rg-theme-base=compact] .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid[data-rg-theme-base=compact] revogr-data{text-align:var(--rg-theme-cell-text-align)}revo-grid[data-rg-theme-base=compact] revogr-data .rgRow{line-height:var(--rg-theme-row-size, 32px)}revo-grid[data-rg-theme-base=compact] revogr-data .rgCell{padding:var(--rg-theme-cell-padding);box-shadow:-1px 0 0 0 var(--rg-theme-cell-vertical-border) inset}revo-grid[data-rg-theme-base=compact] revo-dropdown .rv-dr-root{padding:0px 9px}revo-grid[dir=rtl] .viewports{flex-direction:row-reverse}revo-grid[dir=rtl] revogr-header .rgHeaderCell{text-align:right}revo-grid[dir=rtl] revogr-data .rgCell{text-align:right}revo-grid[dir=rtl] .rowHeaders revogr-data .rgCell{text-align:right}revo-grid[dir=rtl] revogr-filter-panel{direction:rtl}revo-grid[dir=rtl] revo-dropdown .rv-dr-root{text-align:right}revo-grid[dir=rtl] .drag-position{right:0;left:auto}revo-grid[dir=rtl] .drag-auto-scroll-y{right:0;left:auto}revo-grid[dir=rtl] .clipboard{right:0;left:auto}revo-grid[dir=rtl] .draggable{margin-left:-20px;margin-right:0;padding-right:20px;padding-left:5px}revo-grid[dir=rtl] .draggable .revo-alt-icon{right:5px;left:auto}revo-grid[dir=rtl] .focused-cell{border-right:2px solid var(--rg-theme-primary);border-left:none}revo-grid[dir=rtl] .selection-range{border-right:2px solid var(--rg-theme-primary);border-left:none}revo-grid[dir=rtl] .resize-handle{right:0;left:auto}revo-grid[dir=rtl] .sort-indicator{margin-left:0;margin-right:5px}revo-grid[dir=rtl] .filter-button{margin-left:0;margin-right:5px}revo-grid[dir=rtl] .group-expand{margin-right:0;margin-left:2px;padding-right:5px;padding-left:0}revo-grid[dir=rtl] .rgCell,revo-grid[dir=rtl] .rgHeaderCell{padding-left:5px;padding-right:5px}revo-grid[dir=rtl] revogr-edit{direction:rtl}revo-grid[dir=rtl] .rgHeaderCell{direction:rtl}revo-grid[dir=rtl][data-rg-theme-base=material] revogr-header{text-align:right}revo-grid[dir=rtl][data-rg-theme-base=material] revogr-data{text-align:right}revo-grid[dir=rtl][data-rg-theme-base=default] .rowHeaders{background-color:var(--rg-theme-row-headers-bg)}revo-grid[dir=rtl][data-rg-theme-base=default] .rowHeaders revogr-data .rgCell{color:var(--rg-theme-row-headers-color)}revo-grid[dir=rtl][data-rg-theme-base=default] .rowHeaders revogr-data .rgCell:first-child{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid[dir=rtl][data-rg-theme-base=default] .rowHeaders revogr-data .rgCell:not(:first-child){box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset, 1px 0 0 0 var(--rg-theme-header-border) inset}revo-grid[dir=rtl][data-rg-theme-base=default] .rowHeaders revogr-data .rgCell:last-child{border-left:1px solid var(--rg-theme-header-border);border-right:none}revo-grid[dir=rtl][data-rg-theme-base=default] .rowHeaders revogr-data revogr-header{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid[dir=rtl][data-rg-theme-base=default] revogr-header{text-align:right}revo-grid[dir=rtl][data-rg-theme-base=default] revogr-data{text-align:right}revo-grid[dir=rtl][data-rg-theme-base=compact] revogr-header{text-align:right}revo-grid[dir=rtl][data-rg-theme-base=compact] revogr-data{text-align:right}.revo-drag-icon{width:11px;opacity:0.8}.revo-drag-icon::before{content:"::";display:inline-block}.revo-alt-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}revo-grid{--rg-theme-primary:var(--revo-grid-primary, #266ae8);--rg-theme-primary-transparent:var( --revo-grid-primary-transparent, rgba(38, 106, 232, 0.9) );--rg-theme-background:var(--revo-grid-background, #fff);--rg-theme-foreground:var(--revo-grid-foreground, black);--rg-theme-divider:var(--revo-grid-divider, gray);--rg-theme-shadow:var(--revo-grid-shadow, rgba(0, 0, 0, 0.15));--rg-theme-text:var(--revo-grid-text, black);--rg-theme-border:var(--revo-grid-border, rgba(0, 0, 0, 0.2));--rg-theme-header-bg:var(--revo-grid-header-bg, #f8f9fa);--rg-theme-header-color:var(--revo-grid-header-color, #000);--rg-theme-header-border:var(--revo-grid-header-border, #cecece);--rg-theme-header-focused-bg:var( --revo-grid-header-focused-bg, var(--rg-theme-focused-bg) );--rg-theme-header-hover-bg:var( --revo-grid-header-hover-bg, var(--rg-theme-row-hover) );--rg-theme-cell-border:var(--revo-grid-cell-border, #e2e3e3);--rg-theme-cell-vertical-border:var( --revo-grid-cell-vertical-border, transparent );--rg-theme-focused-bg:var(--revo-grid-focused-bg, rgba(233, 234, 237, 0.5));--rg-theme-row-hover:var(--revo-grid-row-hover, #f1f1f1);--rg-theme-row-headers-bg:var( --revo-grid-row-headers-bg, var(--rg-theme-header-bg) );--rg-theme-row-headers-color:var( --revo-grid-row-headers-color, var(--rg-theme-header-color) );--rg-theme-cell-disabled-bg:var( --revo-grid-cell-disabled-bg, rgba(0, 0, 0, 0.07) );--rg-theme-filter-panel-bg:var(--revo-grid-filter-panel-bg, #fff);--rg-theme-filter-panel-border:var(--revo-grid-filter-panel-border, #d9d9d9);--rg-theme-filter-panel-shadow:var( --revo-grid-filter-panel-shadow, rgba(0, 0, 0, 0.15) );--rg-theme-filter-panel-input-bg:var( --revo-grid-filter-panel-input-bg, #eaeaeb );--rg-theme-filter-panel-divider:var( --revo-grid-filter-panel-divider, #d9d9d9 );--rg-theme-filter-panel-select-border:var( --revo-grid-filter-panel-select-border, transparent );--rg-theme-filter-panel-select-border-hover:var( --revo-grid-filter-panel-select-border-hover, transparent );--rg-theme-filter-panel-reorder-accent:var( --revo-grid-filter-panel-reorder-accent, #007cb2 );--rg-theme-filter-panel-reorder-color:var( --revo-grid-filter-panel-reorder-color, #6b7280 );--rg-theme-filter-panel-text:var( --revo-grid-filter-panel-text, var(--rg-theme-text) );--rg-theme-filter-panel-muted-text:var( --revo-grid-filter-panel-muted-text, gray );--rg-theme-filter-panel-focus-ring:var( --revo-grid-filter-panel-focus-ring, 0 0 1px 3px rgba(59, 153, 252, 0.7) );--rg-theme-filter-panel-icon:var(--revo-grid-filter-panel-icon, gray);--rg-theme-filter-panel-icon-active:var( --revo-grid-filter-panel-icon-active, #10224a );--rg-theme-font-family:var( --revo-grid-font-family, Helvetica, Arial, Sans-Serif, serif );--rg-theme-font-size:var(--revo-grid-font-size, 14px);--rg-theme-header-height:var(--revo-grid-header-height, 30px);--rg-theme-header-font-size:var(--revo-grid-header-font-size, 12px);--rg-theme-header-font-weight:var(--revo-grid-header-font-weight, normal);--rg-theme-header-text-transform:var( --revo-grid-header-text-transform, uppercase );--rg-theme-header-text-align:var(--revo-grid-header-text-align, center);--rg-theme-cell-text-align:var(--revo-grid-cell-text-align, center);--rg-theme-header-padding:var(--revo-grid-header-padding, 0);--rg-theme-cell-padding:var(--revo-grid-cell-padding, 0);--rg-theme-selection-border:var(--revo-grid-selection-border, #0d63e8);--rg-theme-selection-bg:var(--revo-grid-selection-bg, transparent);--rg-theme-autofill-handle-bg:var( --revo-grid-autofill-handle-bg, var(--rg-theme-selection-border) );--rg-theme-autofill-handle-border:var( --revo-grid-autofill-handle-border, white );--rg-theme-range-handle-bg:var( --revo-grid-range-handle-bg, rgba(0, 0, 0, 0.2) );--rg-theme-temporary-range-border:var( --revo-grid-temporary-range-border, rgb(255, 94, 0) );--rg-theme-temporary-selection-border:var( --revo-grid-temporary-selection-border, gray );--rg-theme-header-resize-hover:var( --revo-grid-header-resize-hover, deepskyblue );--rg-theme-button-text:var(--revo-grid-button-text, #fff);--rg-theme-button-bg:var(--revo-grid-button-bg, #4545ff);--rg-theme-button-success-bg:var(--revo-grid-button-success-bg, #009037);--rg-theme-button-danger-bg:var(--revo-grid-button-danger-bg, #e0662e);--rg-theme-button-outline-border:var( --revo-grid-button-outline-border, #dbdbdb );--rg-theme-button-outline-text:var(--revo-grid-button-outline-text, #000)}revo-grid[data-rg-theme-scheme=dark]{color-scheme:dark;--rg-theme-background:var(--revo-grid-background, #212529);--rg-theme-foreground:var(--revo-grid-foreground, #fff);--rg-theme-text:var(--revo-grid-text, rgba(255, 255, 255, 0.9));--rg-theme-divider:var(--revo-grid-divider, #505050);--rg-theme-border:var(--revo-grid-border, rgba(255, 255, 255, 0.2));--rg-theme-filter-panel-bg:var(--revo-grid-filter-panel-bg, #212529);--rg-theme-filter-panel-border:var( --revo-grid-filter-panel-border, #505050 );--rg-theme-filter-panel-input-bg:var( --revo-grid-filter-panel-input-bg, #343a40 );--rg-theme-filter-panel-divider:var( --revo-grid-filter-panel-divider, #505050 );--rg-theme-filter-panel-icon-active:var( --revo-grid-filter-panel-icon-active, #fff );--rg-theme-header-bg:var(--revo-grid-header-bg, #343a40);--rg-theme-header-color:var(--revo-grid-header-color, #fff);--rg-theme-header-border:var(--revo-grid-header-border, #505050);--rg-theme-cell-border:var(--revo-grid-cell-border, #424242);--rg-theme-focused-bg:var(--revo-grid-focused-bg, rgba(52, 58, 64, 0.5));--rg-theme-row-hover:var(--revo-grid-row-hover, rgba(80, 80, 80, 0.5));--rg-theme-cell-disabled-bg:var( --revo-grid-cell-disabled-bg, rgba(255, 255, 255, 0.07) );--rg-theme-button-outline-border:var( --revo-grid-button-outline-border, #404040 );--rg-theme-button-outline-text:var( --revo-grid-button-outline-text, #d8d8d8 )}revo-grid[data-rg-theme-scheme=light]{color-scheme:light}revo-grid{direction:ltr !important}revo-grid revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 var(--rg-theme-header-border), 0 -1px 0 0 var(--rg-theme-header-border) inset}revo-grid revogr-header .rgHeaderCell.sortable:hover{background-color:var(--rg-theme-header-hover-bg)}revo-grid revogr-header .rgHeaderCell.focused-cell{background:var(--rg-theme-header-focused-bg)}revo-grid .footer-wrapper revogr-data{box-shadow:0 -1px 0 var(--rg-theme-cell-border)}revo-grid revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 var(--rg-theme-cell-border) inset}revo-grid revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 var(--rg-theme-cell-border)}revo-grid revogr-data .rgRow{box-shadow:0 -1px 0 0 var(--rg-theme-cell-border) inset}revo-grid revogr-data .rgRow.focused-rgRow{background-color:var(--rg-theme-focused-bg)}revo-grid revogr-data .rgCell{color:var(--rg-theme-text)}revo-grid revogr-data .rgCell.disabled{background-color:var(--rg-theme-cell-disabled-bg)}revo-grid{display:flex !important;height:100%;min-height:300px;background-color:var(--rg-theme-background);font-family:var(--rg-theme-font-family);font-size:var(--rg-theme-font-size);position:relative;color:var(--rg-theme-text);-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}revo-grid .attribution{position:absolute;bottom:0;left:0;right:0;z-index:1000;width:0;height:0;border-left:4px solid var(--rg-theme-primary-transparent);border-bottom:4px solid var(--rg-theme-primary-transparent);border-top:4px solid transparent;border-right:4px solid transparent;cursor:pointer}revo-grid .attribution .value{position:absolute;bottom:0;left:0;background-color:var(--rg-theme-background);padding:4px;border-radius:4px;box-shadow:0 1px 10px var(--rg-theme-border);white-space:nowrap;text-decoration:none;color:var(--rg-theme-text);letter-spacing:0.3px;font-size:11px;opacity:0;width:4px;overflow:hidden;transition:opacity 0.5s ease-in-out, width 0.3s ease-in-out}revo-grid .attribution:hover .value{width:63px;opacity:1}revo-grid.column-draggable.column-drag-start:hover,revo-grid.column-draggable.column-drag-start *:hover{cursor:grabbing}revo-grid .footer-wrapper,revo-grid .header-wrapper{width:100%}revo-grid .footer-wrapper revogr-data,revo-grid .header-wrapper revogr-data{z-index:3}revo-grid revo-dropdown{width:100%}revo-grid revo-dropdown .rv-dr-root{max-height:100%}revo-grid revo-dropdown.shrink label{opacity:0}revo-grid .viewports{max-width:100%;display:flex;flex-direction:row;align-items:flex-start;flex-grow:1}revo-grid{display:flex;flex-direction:column;width:100%;height:100%}revo-grid .main-viewport{flex-grow:1;height:0;display:flex;justify-content:space-between;flex-direction:row}revo-grid .draggable{position:fixed;height:30px;line-height:30px;background:var(--rg-theme-background);border-radius:3px;display:block;z-index:100;margin-top:5px;margin-right:-20px;box-shadow:0 4px 20px 0 var(--rg-theme-shadow);padding-left:20px;padding-right:5px}revo-grid .draggable.hidden{display:none}revo-grid .draggable .revo-alt-icon{background-color:var(--rg-theme-foreground);position:absolute;left:5px;top:10px}revo-grid .draggable-wrapper.hidden{display:none}revo-grid .drag-position{position:absolute;left:0;right:0;height:1px;z-index:2;background:var(--rg-theme-divider);pointer-events:none}revo-grid .drag-position-y{position:absolute;top:0;left:0;bottom:0;width:1px;z-index:2;background:var(--rg-theme-divider);pointer-events:none}revo-grid .drag-auto-scroll-y{pointer-events:none;position:absolute;left:0;top:0;height:50px;width:1px}revo-grid .clipboard{position:absolute;left:0;top:0}revo-grid revogr-scroll-virtual{position:relative}revo-grid revogr-scroll-virtual.vertical,revo-grid revogr-scroll-virtual.horizontal{z-index:3}`;
19317
19744
 
19745
+ const DEFAULT_COLUMN_SIZE = 100;
19746
+ function getColumnSize(size) {
19747
+ return Number.isFinite(size) && size > 0 ? size : DEFAULT_COLUMN_SIZE;
19748
+ }
19318
19749
  /**
19319
19750
  * Revogrid - High-performance, customizable grid library for managing large datasets.
19320
19751
  * ### Events guide
@@ -19449,6 +19880,11 @@ class RevoGridComponent {
19449
19880
  this.columnTypes = {};
19450
19881
  /** Theme name. */
19451
19882
  this.theme = 'default';
19883
+ /**
19884
+ * Per-grid custom theme definitions.
19885
+ * Assign as a JavaScript property; complex values cannot be serialized as HTML attributes.
19886
+ */
19887
+ this.themeDefinitions = [];
19452
19888
  /**
19453
19889
  * Row class property mapping.
19454
19890
  * Map custom classes to rows from row object data.
@@ -19548,6 +19984,7 @@ class RevoGridComponent {
19548
19984
  this.pluginService = new PluginService();
19549
19985
  this.viewport = null;
19550
19986
  this.isInited = false;
19987
+ this.themeStyles = {};
19551
19988
  }
19552
19989
  // #endregion
19553
19990
  // #region Methods
@@ -20046,29 +20483,70 @@ class RevoGridComponent {
20046
20483
  this.refreshColumnsOnConfigChange(newVal, prevVal);
20047
20484
  }
20048
20485
  rowSizeChanged(s) {
20049
- if (!this.dimensionProvider) {
20486
+ if (!this.themeService || !this.dimensionProvider) {
20487
+ return;
20488
+ }
20489
+ this.themeService.rowSize = s;
20490
+ this.applyTheme(this.theme, false, false, 'rowSize');
20491
+ }
20492
+ colSizeChanged(s) {
20493
+ if (!this.dimensionProvider || !this.columnProvider) {
20050
20494
  return;
20051
20495
  }
20052
- // clear existing data
20053
- this.dimensionProvider.setSettings({ originItemSize: s }, 'rgRow');
20054
- this.rowDefChanged(this.rowDefinitions, this.rowDefinitions, 'rowSize', true);
20496
+ this.dimensionProvider.setSettings({ originItemSize: getColumnSize(s) }, 'rgCol');
20497
+ this.columnChanged(this.columns);
20055
20498
  }
20056
20499
  themeChanged(t, _, __ = 'theme', init = false) {
20057
- if (!this.dimensionProvider) {
20500
+ if (!this.themeService || !this.dimensionProvider) {
20501
+ return;
20502
+ }
20503
+ if (this.pendingNormalizedTheme === t) {
20504
+ this.pendingNormalizedTheme = undefined;
20505
+ return;
20506
+ }
20507
+ const normalizedTheme = getTheme(t);
20508
+ if (normalizedTheme !== t) {
20509
+ this.pendingNormalizedTheme = normalizedTheme;
20510
+ this.theme = normalizedTheme;
20511
+ }
20512
+ this.applyTheme(normalizedTheme, init, true, 'theme');
20513
+ }
20514
+ themeDefinitionsChanged(definitions = []) {
20515
+ if (!this.themeService || !this.dimensionProvider) {
20058
20516
  return;
20059
20517
  }
20060
- this.themeService.register(t);
20061
- this.dimensionProvider.setSettings({ originItemSize: this.themeService.rowSize }, 'rgRow');
20062
- this.dimensionProvider.setSettings({ originItemSize: this.colSize }, 'rgCol');
20063
- // if theme change we need to reapply row size and reset viewport
20064
- if (!init) {
20065
- // clear existing data
20066
- this.dimensionProvider.setSettings({ originItemSize: this.themeService.rowSize }, 'rgRow');
20067
- this.rowDefChanged(
20068
- // for cases when some custom size present and not
20069
- this.rowDefinitions, this.rowDefinitions, 'theme', true);
20518
+ this.themeService.setDefinitions(definitions);
20519
+ this.applyTheme(this.theme, false, true, 'themeDefinitions');
20520
+ }
20521
+ applyTheme(theme, init, emitEvent, reason) {
20522
+ var _a;
20523
+ const resolvedTheme = this.themeService.register(theme);
20524
+ const rowSize = this.themeService.rowSize;
20525
+ const densityChanged = this.appliedThemeRowSize !== rowSize;
20526
+ const hadAppliedTheme = this.appliedThemeRowSize !== undefined;
20527
+ this.appliedThemeRowSize = rowSize;
20528
+ this.themeStyles = this.getThemeStyles();
20529
+ if (densityChanged) {
20530
+ (_a = this.dimensionProvider) === null || _a === void 0 ? void 0 : _a.setSettings({ originItemSize: rowSize }, 'rgRow');
20531
+ if (!init && hadAppliedTheme) {
20532
+ this.rowDefChanged(this.rowDefinitions, this.rowDefinitions, reason, true);
20533
+ }
20534
+ }
20535
+ if (emitEvent) {
20536
+ this.afterthemechanged.emit(resolvedTheme.name);
20070
20537
  }
20071
- this.afterthemechanged.emit(t);
20538
+ }
20539
+ getThemeStyles() {
20540
+ const styles = {
20541
+ '--rg-theme-row-size': `${this.themeService.rowSize}px`,
20542
+ };
20543
+ for (const [name, value] of Object.entries(this.themeService.theme.tokens)) {
20544
+ const cssVariable = themeTokenCssVariables[name];
20545
+ if (cssVariable && value) {
20546
+ styles[cssVariable] = value;
20547
+ }
20548
+ }
20549
+ return styles;
20072
20550
  }
20073
20551
  dataSourceChanged(newVal = [], _, watchName) {
20074
20552
  if (!this.dataProvider) {
@@ -20305,9 +20783,11 @@ class RevoGridComponent {
20305
20783
  this.themeService = new ThemeService({
20306
20784
  rowSize: this.rowSize,
20307
20785
  });
20786
+ this.themeService.setDefinitions(this.themeDefinitions);
20308
20787
  this.dimensionProvider = new DimensionProvider(this.viewportProvider, {
20309
20788
  realSizeChanged: (k) => this.contentsizechanged.emit(k),
20310
20789
  });
20790
+ this.dimensionProvider.setSettings({ originItemSize: getColumnSize(this.colSize) }, 'rgCol');
20311
20791
  this.columnProvider = new ColumnDataProvider();
20312
20792
  this.selectionStoreConnector = new SelectionStoreConnector();
20313
20793
  this.dataProvider = new DataProvider(this.dimensionProvider);
@@ -20425,7 +20905,7 @@ class RevoGridComponent {
20425
20905
  const dimensions = this.dimensionProvider.stores;
20426
20906
  const verticalScroll = (hAsync("revogr-scroll-virtual", { class: "vertical", dimension: typeRow, clientSize: viewports[typeRow].store.get('clientSize'), virtualSize: viewports[typeRow].store.get('virtualSize'), realSize: dimensions[typeRow].store.get('realSize'), ref: el => this.scrollingService.registerElement(el, 'rowScroll'), onScrollvirtual: e => this.scrollingService.proxyScroll(e.detail) }));
20427
20907
  const horizontalScroll = (hAsync("revogr-scroll-virtual", { class: "horizontal", dimension: typeCol, clientSize: viewports[typeCol].store.get('clientSize'), virtualSize: viewports[typeCol].store.get('virtualSize'), realSize: dimensions[typeCol].store.get('realSize'), ref: el => this.scrollingService.registerElement(el, 'colScroll'), onScrollvirtual: e => this.scrollingService.proxyScroll(e.detail) }));
20428
- return (hAsync(Host, { dir: this.rtl ? 'rtl' : 'ltr' }, this.hideAttribution ? null : (hAsync("revogr-attribution", { class: "attribution" })), hAsync("slot", { name: "header" }), hAsync("div", { class: "main-viewport", onClick: (e) => {
20908
+ return (hAsync(Host, { dir: this.rtl ? 'rtl' : 'ltr', "data-rg-theme-base": this.themeService.theme.base, "data-rg-theme-scheme": this.themeService.theme.colorScheme, style: this.themeStyles }, this.hideAttribution ? null : (hAsync("revogr-attribution", { class: "attribution" })), hAsync("slot", { name: "header" }), hAsync("div", { class: "main-viewport", onClick: (e) => {
20429
20909
  var _a;
20430
20910
  if (e.currentTarget === e.target) {
20431
20911
  (_a = this.viewport) === null || _a === void 0 ? void 0 : _a.clearEdit();
@@ -20454,9 +20934,15 @@ class RevoGridComponent {
20454
20934
  "rowSize": [{
20455
20935
  "rowSizeChanged": 0
20456
20936
  }],
20937
+ "colSize": [{
20938
+ "colSizeChanged": 0
20939
+ }],
20457
20940
  "theme": [{
20458
20941
  "themeChanged": 0
20459
20942
  }],
20943
+ "themeDefinitions": [{
20944
+ "themeDefinitionsChanged": 0
20945
+ }],
20460
20946
  "source": [{
20461
20947
  "dataSourceChanged": 0
20462
20948
  }],
@@ -20528,6 +21014,7 @@ class RevoGridComponent {
20528
21014
  "plugins": [16],
20529
21015
  "columnTypes": [16],
20530
21016
  "theme": [1537],
21017
+ "themeDefinitions": [16],
20531
21018
  "rowClass": [513, "row-class"],
20532
21019
  "autoSizeColumn": [4, "auto-size-column"],
20533
21020
  "filter": [4],
@@ -20970,7 +21457,7 @@ class RevogrData {
20970
21457
  }; }
20971
21458
  }
20972
21459
 
20973
- const revogrFocusStyleCss = () => `revogr-focus.focused-cell{box-shadow:-1px 0 0 #0d63e8 inset, 1px 0 0 #0d63e8 inset, 0 -1px 0 #0d63e8 inset, 0 1px 0 #0d63e8 inset;position:absolute;pointer-events:none;z-index:9;display:block !important}`;
21460
+ const revogrFocusStyleCss = () => `revogr-focus.focused-cell{box-shadow:-1px 0 0 var(--rg-theme-selection-border) inset, 1px 0 0 var(--rg-theme-selection-border) inset, 0 -1px 0 var(--rg-theme-selection-border) inset, 0 1px 0 var(--rg-theme-selection-border) inset;position:absolute;pointer-events:none;z-index:9;display:block !important}`;
20974
21461
 
20975
21462
  /**
20976
21463
  * Focus component. Shows focus layer around the cell that is currently in focus.
@@ -21132,7 +21619,7 @@ function throttle(func, wait, options) {
21132
21619
  });
21133
21620
  }
21134
21621
 
21135
- const revogrTempRangeStyleCss = () => `.temp-bg-range{display:block !important;position:absolute;pointer-events:none;z-index:9;border:1px solid rgb(255, 94, 0);box-sizing:border-box}.temp-bg-range.Selection{border:1px dashed gray}.temp-bg-range>div{width:1px;height:1px;position:absolute}.temp-bg-range>div.top{top:-1px}.temp-bg-range>div.bottom{bottom:-1px}.temp-bg-range>div.left{left:-1px}.temp-bg-range>div.right{right:-1px}`;
21622
+ const revogrTempRangeStyleCss = () => `.temp-bg-range{display:block !important;position:absolute;pointer-events:none;z-index:9;border:1px solid var(--rg-theme-temporary-range-border);box-sizing:border-box}.temp-bg-range.Selection{border:1px dashed var(--rg-theme-temporary-selection-border)}.temp-bg-range>div{width:1px;height:1px;position:absolute}.temp-bg-range>div.top{top:-1px}.temp-bg-range>div.bottom{bottom:-1px}.temp-bg-range>div.left{left:-1px}.temp-bg-range>div.right{right:-1px}`;
21136
21623
 
21137
21624
  /**
21138
21625
  * Temporary range selection component. Shows temporary range selection.
@@ -21285,7 +21772,7 @@ const HeaderGroupRenderer = (p) => {
21285
21772
  return (hAsync(HeaderCellRenderer, { data: Object.assign(Object.assign({}, p.group), { prop: '', providers: p.providers, index: p.start }), props: groupProps, additionalData: p.additionalData }));
21286
21773
  };
21287
21774
 
21288
- const revogrHeaderStyleCss = () => `@charset "UTF-8";revogr-header{position:relative;z-index:5;display:block}revogr-header .header-rgRow{display:block;position:relative}revogr-header .header-rgRow.group{z-index:0}revogr-header .group-rgRow{position:relative;overflow:hidden}revogr-header .rgHeaderCell{position:absolute;box-sizing:border-box;height:100%;z-index:1;display:flex}revogr-header .rgHeaderCell.align-center{text-align:center}revogr-header .rgHeaderCell.align-left{text-align:left}revogr-header .rgHeaderCell.align-right{text-align:right}revogr-header .rgHeaderCell.sortable{cursor:pointer}revogr-header .rgHeaderCell .sort-indicator{display:inline-flex;align-items:flex-start;gap:1px}revogr-header .rgHeaderCell .sort-indicator i.asc:after,revogr-header .rgHeaderCell .sort-indicator i.desc:after{font-size:13px}revogr-header .rgHeaderCell .sort-indicator i.asc:after{content:"↑"}revogr-header .rgHeaderCell .sort-indicator i.desc:after{content:"↓"}revogr-header .rgHeaderCell .sort-indicator .sort-order-index{font-size:10px;line-height:1;top:0}revogr-header .rgHeaderCell.active{z-index:10}revogr-header .rgHeaderCell.active .resizable{background-color:deepskyblue}revogr-header .rgHeaderCell .header-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1}revogr-header .rgHeaderCell .resizable{display:block;position:absolute;z-index:90;touch-action:none;user-select:none}revogr-header .rgHeaderCell .resizable:hover{background-color:deepskyblue}revogr-header .rgHeaderCell>.resizable-r{cursor:ew-resize;width:6px;right:0;top:0;height:100%}revogr-header .rgHeaderCell>.resizable-rb{cursor:se-resize;width:6px;height:6px;right:0;bottom:0}revogr-header .rgHeaderCell>.resizable-b{cursor:s-resize;height:6px;bottom:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-lb{cursor:sw-resize;width:6px;height:6px;left:0;bottom:0}revogr-header .rgHeaderCell>.resizable-l{cursor:w-resize;width:6px;left:0;height:100%;top:0}revogr-header .rgHeaderCell>.resizable-lt{cursor:nw-resize;width:6px;height:6px;left:0;top:0}revogr-header .rgHeaderCell>.resizable-t{cursor:n-resize;height:6px;top:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-rt{cursor:ne-resize;width:6px;height:6px;right:0;top:0}revogr-header .rv-filter{visibility:hidden}`;
21775
+ const revogrHeaderStyleCss = () => `@charset "UTF-8";revogr-header{position:relative;z-index:5;display:block}revogr-header .header-rgRow{display:block;position:relative}revogr-header .header-rgRow.group{z-index:0}revogr-header .group-rgRow{position:relative;overflow:hidden}revogr-header .rgHeaderCell{position:absolute;box-sizing:border-box;height:100%;z-index:1;display:flex}revogr-header .rgHeaderCell.align-center{text-align:center}revogr-header .rgHeaderCell.align-left{text-align:left}revogr-header .rgHeaderCell.align-right{text-align:right}revogr-header .rgHeaderCell.sortable{cursor:pointer}revogr-header .rgHeaderCell .sort-indicator{display:inline-flex;align-items:flex-start;gap:1px}revogr-header .rgHeaderCell .sort-indicator i.asc:after,revogr-header .rgHeaderCell .sort-indicator i.desc:after{font-size:13px}revogr-header .rgHeaderCell .sort-indicator i.asc:after{content:"↑"}revogr-header .rgHeaderCell .sort-indicator i.desc:after{content:"↓"}revogr-header .rgHeaderCell .sort-indicator .sort-order-index{font-size:10px;line-height:1;top:0}revogr-header .rgHeaderCell.active{z-index:10}revogr-header .rgHeaderCell.active .resizable{background-color:var(--rg-theme-header-resize-hover)}revogr-header .rgHeaderCell .header-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1}revogr-header .rgHeaderCell .resizable{display:block;position:absolute;z-index:90;touch-action:none;user-select:none}revogr-header .rgHeaderCell .resizable:hover{background-color:var(--rg-theme-header-resize-hover)}revogr-header .rgHeaderCell>.resizable-r{cursor:ew-resize;width:6px;right:0;top:0;height:100%}revogr-header .rgHeaderCell>.resizable-rb{cursor:se-resize;width:6px;height:6px;right:0;bottom:0}revogr-header .rgHeaderCell>.resizable-b{cursor:s-resize;height:6px;bottom:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-lb{cursor:sw-resize;width:6px;height:6px;left:0;bottom:0}revogr-header .rgHeaderCell>.resizable-l{cursor:w-resize;width:6px;left:0;height:100%;top:0}revogr-header .rgHeaderCell>.resizable-lt{cursor:nw-resize;width:6px;height:6px;left:0;top:0}revogr-header .rgHeaderCell>.resizable-t{cursor:n-resize;height:6px;top:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-rt{cursor:ne-resize;width:6px;height:6px;right:0;top:0}revogr-header .rv-filter{visibility:hidden}`;
21289
21776
 
21290
21777
  class RevogrHeaderComponent {
21291
21778
  constructor(hostRef) {
@@ -22068,7 +22555,7 @@ class GridResizeService {
22068
22555
  }
22069
22556
  }
22070
22557
 
22071
- const revogrViewportScrollStyleCss = () => `.rowHeaders{z-index:2;font-size:10px;display:flex;height:100%}.rowHeaders revogr-data .rgCell{text-align:center}.rowHeaders .rgCell{padding:0 1em !important;min-width:100%}revogr-viewport-scroll{-ms-overflow-style:none;scrollbar-width:none;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;position:relative;z-index:1;height:100%}revogr-viewport-scroll::-webkit-scrollbar{display:none;-webkit-appearance:none}revogr-viewport-scroll.colPinStart,revogr-viewport-scroll.colPinEnd{z-index:2}revogr-viewport-scroll.colPinEnd:has(.active){overflow:visible}revogr-viewport-scroll.rgCol{flex-grow:1}revogr-viewport-scroll .content-wrapper{overflow:hidden}revogr-viewport-scroll .inner-content-table{display:flex;flex-direction:column;max-height:100%;width:100%;min-width:100%;position:relative;z-index:0}revogr-viewport-scroll .vertical-inner{overflow-y:auto;position:relative;width:100%;flex-grow:1;outline:none;-ms-overflow-style:none;scrollbar-width:none;}revogr-viewport-scroll .vertical-inner::-webkit-scrollbar{display:none;-webkit-appearance:none}revogr-viewport-scroll .vertical-inner revogr-data,revogr-viewport-scroll .vertical-inner revogr-overlay-selection{height:100%}`;
22558
+ const revogrViewportScrollStyleCss = () => `.rowHeaders{z-index:2;font-size:10px;display:flex;height:100%}.rowHeaders revogr-data .rgCell{text-align:center}.rowHeaders .rgCell{padding:0 1em !important;min-width:100%}revogr-viewport-scroll{-ms-overflow-style:none;scrollbar-width:none;}revogr-viewport-scroll::-webkit-scrollbar{display:none;-webkit-appearance:none}revogr-viewport-scroll{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;position:relative;z-index:1;height:100%}revogr-viewport-scroll.colPinStart,revogr-viewport-scroll.colPinEnd{z-index:2}revogr-viewport-scroll.colPinEnd:has(.active){overflow:visible}revogr-viewport-scroll.rgCol{flex-grow:1}revogr-viewport-scroll .content-wrapper{overflow:hidden}revogr-viewport-scroll .inner-content-table{display:flex;flex-direction:column;max-height:100%;width:100%;min-width:100%;position:relative;z-index:0}revogr-viewport-scroll .vertical-inner{overflow-y:auto;position:relative;width:100%;flex-grow:1;outline:none;-ms-overflow-style:none;scrollbar-width:none;}revogr-viewport-scroll .vertical-inner::-webkit-scrollbar{display:none;-webkit-appearance:none}revogr-viewport-scroll .vertical-inner revogr-data,revogr-viewport-scroll .vertical-inner revogr-overlay-selection{height:100%}`;
22072
22559
 
22073
22560
  /**
22074
22561
  * Viewport scroll component for RevoGrid
@@ -22572,7 +23059,7 @@ var NAMESPACE = (
22572
23059
  );
22573
23060
 
22574
23061
  /*
22575
- Stencil Hydrate Runner v4.43.2 | MIT Licensed | https://stenciljs.com
23062
+ Stencil Hydrate Runner v4.43.5 | MIT Licensed | https://stenciljs.com
22576
23063
  */
22577
23064
  var __create = Object.create;
22578
23065
  var __defProp = Object.defineProperty;
@@ -23903,11 +24390,11 @@ var fromCodePoint = (
23903
24390
  }
23904
24391
  );
23905
24392
  function replaceCodePoint(codePoint) {
23906
- var _a2;
24393
+ var _a3;
23907
24394
  if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
23908
24395
  return 65533;
23909
24396
  }
23910
- return (_a2 = decodeMap.get(codePoint)) !== null && _a2 !== void 0 ? _a2 : codePoint;
24397
+ return (_a3 = decodeMap.get(codePoint)) !== null && _a3 !== void 0 ? _a3 : codePoint;
23911
24398
  }
23912
24399
 
23913
24400
  // node_modules/entities/lib/esm/decode.js
@@ -24104,9 +24591,9 @@ var EntityDecoder = class {
24104
24591
  * @returns The number of characters that were consumed.
24105
24592
  */
24106
24593
  emitNumericEntity(lastCp, expectedLength) {
24107
- var _a2;
24594
+ var _a3;
24108
24595
  if (this.consumed <= expectedLength) {
24109
- (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.absenceOfDigitsInNumericCharacterReference(this.consumed);
24596
+ (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.absenceOfDigitsInNumericCharacterReference(this.consumed);
24110
24597
  return 0;
24111
24598
  }
24112
24599
  if (lastCp === CharCodes.SEMI) {
@@ -24166,11 +24653,11 @@ var EntityDecoder = class {
24166
24653
  * @returns The number of characters consumed.
24167
24654
  */
24168
24655
  emitNotTerminatedNamedEntity() {
24169
- var _a2;
24656
+ var _a3;
24170
24657
  const { result, decodeTree } = this;
24171
24658
  const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;
24172
24659
  this.emitNamedEntityData(result, valueLength, this.consumed);
24173
- (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.missingSemicolonAfterCharacterReference();
24660
+ (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.missingSemicolonAfterCharacterReference();
24174
24661
  return this.consumed;
24175
24662
  }
24176
24663
  /**
@@ -24198,7 +24685,7 @@ var EntityDecoder = class {
24198
24685
  * @returns The number of characters consumed.
24199
24686
  */
24200
24687
  end() {
24201
- var _a2;
24688
+ var _a3;
24202
24689
  switch (this.state) {
24203
24690
  case EntityDecoderState.NamedEntity: {
24204
24691
  return this.result !== 0 && (this.decodeMode !== DecodingMode.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
@@ -24211,7 +24698,7 @@ var EntityDecoder = class {
24211
24698
  return this.emitNumericEntity(0, 3);
24212
24699
  }
24213
24700
  case EntityDecoderState.NumericStart: {
24214
- (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.absenceOfDigitsInNumericCharacterReference(this.consumed);
24701
+ (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.absenceOfDigitsInNumericCharacterReference(this.consumed);
24215
24702
  return 0;
24216
24703
  }
24217
24704
  case EntityDecoderState.EntityStart: {
@@ -24692,8 +25179,8 @@ var TAG_NAME_TO_ID = /* @__PURE__ */ new Map([
24692
25179
  [TAG_NAMES.XMP, TAG_ID.XMP]
24693
25180
  ]);
24694
25181
  function getTagID(tagName) {
24695
- var _a2;
24696
- return (_a2 = TAG_NAME_TO_ID.get(tagName)) !== null && _a2 !== void 0 ? _a2 : TAG_ID.UNKNOWN;
25182
+ var _a3;
25183
+ return (_a3 = TAG_NAME_TO_ID.get(tagName)) !== null && _a3 !== void 0 ? _a3 : TAG_ID.UNKNOWN;
24697
25184
  }
24698
25185
  var $ = TAG_ID;
24699
25186
  var SPECIAL_ELEMENTS = {
@@ -24960,8 +25447,8 @@ var Tokenizer = class {
24960
25447
  }
24961
25448
  //Errors
24962
25449
  _err(code, cpOffset = 0) {
24963
- var _a2, _b;
24964
- (_b = (_a2 = this.handler).onParseError) === null || _b === void 0 ? void 0 : _b.call(_a2, this.preprocessor.getError(code, cpOffset));
25450
+ var _a3, _b;
25451
+ (_b = (_a3 = this.handler).onParseError) === null || _b === void 0 ? void 0 : _b.call(_a3, this.preprocessor.getError(code, cpOffset));
24965
25452
  }
24966
25453
  // NOTE: `offset` may never run across line boundaries.
24967
25454
  getCurrentLocation(offset) {
@@ -25103,13 +25590,13 @@ var Tokenizer = class {
25103
25590
  this.currentLocation = this.getCurrentLocation(0);
25104
25591
  }
25105
25592
  _leaveAttrName() {
25106
- var _a2;
25593
+ var _a3;
25107
25594
  var _b;
25108
25595
  const token = this.currentToken;
25109
25596
  if (getTokenAttr(token, this.currentAttr.name) === null) {
25110
25597
  token.attrs.push(this.currentAttr);
25111
25598
  if (token.location && this.currentLocation) {
25112
- const attrLocations = (_a2 = (_b = token.location).attrs) !== null && _a2 !== void 0 ? _a2 : _b.attrs = /* @__PURE__ */ Object.create(null);
25599
+ const attrLocations = (_a3 = (_b = token.location).attrs) !== null && _a3 !== void 0 ? _a3 : _b.attrs = /* @__PURE__ */ Object.create(null);
25113
25600
  attrLocations[this.currentAttr.name] = this.currentLocation;
25114
25601
  this._leaveAttrValue();
25115
25602
  }
@@ -28457,10 +28944,10 @@ var Parser = class {
28457
28944
  //Errors
28458
28945
  /** @internal */
28459
28946
  _err(token, code, beforeToken) {
28460
- var _a2;
28947
+ var _a3;
28461
28948
  if (!this.onParseError)
28462
28949
  return;
28463
- const loc = (_a2 = token.location) !== null && _a2 !== void 0 ? _a2 : BASE_LOC;
28950
+ const loc = (_a3 = token.location) !== null && _a3 !== void 0 ? _a3 : BASE_LOC;
28464
28951
  const err2 = {
28465
28952
  code,
28466
28953
  startLine: loc.startLine,
@@ -28475,18 +28962,18 @@ var Parser = class {
28475
28962
  //Stack events
28476
28963
  /** @internal */
28477
28964
  onItemPush(node, tid, isTop) {
28478
- var _a2, _b;
28479
- (_b = (_a2 = this.treeAdapter).onItemPush) === null || _b === void 0 ? void 0 : _b.call(_a2, node);
28965
+ var _a3, _b;
28966
+ (_b = (_a3 = this.treeAdapter).onItemPush) === null || _b === void 0 ? void 0 : _b.call(_a3, node);
28480
28967
  if (isTop && this.openElements.stackTop > 0)
28481
28968
  this._setContextModes(node, tid);
28482
28969
  }
28483
28970
  /** @internal */
28484
28971
  onItemPop(node, isTop) {
28485
- var _a2, _b;
28972
+ var _a3, _b;
28486
28973
  if (this.options.sourceCodeLocationInfo) {
28487
28974
  this._setEndLocation(node, this.currentToken);
28488
28975
  }
28489
- (_b = (_a2 = this.treeAdapter).onItemPop) === null || _b === void 0 ? void 0 : _b.call(_a2, node, this.openElements.current);
28976
+ (_b = (_a3 = this.treeAdapter).onItemPop) === null || _b === void 0 ? void 0 : _b.call(_a3, node, this.openElements.current);
28490
28977
  if (isTop) {
28491
28978
  let current;
28492
28979
  let currentTagId;
@@ -30560,9 +31047,9 @@ function eofInBody(p, token) {
30560
31047
  }
30561
31048
  }
30562
31049
  function endTagInText(p, token) {
30563
- var _a2;
31050
+ var _a3;
30564
31051
  if (token.tagID === TAG_ID.SCRIPT) {
30565
- (_a2 = p.scriptHandler) === null || _a2 === void 0 ? void 0 : _a2.call(p, p.openElements.current);
31052
+ (_a3 = p.scriptHandler) === null || _a3 === void 0 ? void 0 : _a3.call(p, p.openElements.current);
30566
31053
  }
30567
31054
  p.openElements.pop();
30568
31055
  p.insertionMode = p.originalInsertionMode;
@@ -31224,7 +31711,7 @@ function startTagAfterBody(p, token) {
31224
31711
  }
31225
31712
  }
31226
31713
  function endTagAfterBody(p, token) {
31227
- var _a2;
31714
+ var _a3;
31228
31715
  if (token.tagID === TAG_ID.HTML) {
31229
31716
  if (!p.fragmentContext) {
31230
31717
  p.insertionMode = InsertionMode.AFTER_AFTER_BODY;
@@ -31232,7 +31719,7 @@ function endTagAfterBody(p, token) {
31232
31719
  if (p.options.sourceCodeLocationInfo && p.openElements.tagIDs[0] === TAG_ID.HTML) {
31233
31720
  p._setEndLocation(p.openElements.items[0], token);
31234
31721
  const bodyElement = p.openElements.items[1];
31235
- if (bodyElement && !((_a2 = p.treeAdapter.getNodeSourceCodeLocation(bodyElement)) === null || _a2 === void 0 ? void 0 : _a2.endTag)) {
31722
+ if (bodyElement && !((_a3 = p.treeAdapter.getNodeSourceCodeLocation(bodyElement)) === null || _a3 === void 0 ? void 0 : _a3.endTag)) {
31236
31723
  p._setEndLocation(bodyElement, token);
31237
31724
  }
31238
31725
  }
@@ -33096,7 +33583,7 @@ function serializeNodeToHtml(elm, serializationOptions = {}) {
33096
33583
  }
33097
33584
  var shadowRootTag = "mock:shadow-root";
33098
33585
  function* streamToHtml(node, opts, output) {
33099
- var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
33586
+ var _a3, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
33100
33587
  const isShadowRoot = node.nodeType === 11 /* DOCUMENT_FRAGMENT_NODE */;
33101
33588
  if (node.nodeType === 1 /* ELEMENT_NODE */ || isShadowRoot) {
33102
33589
  const tagName = isShadowRoot ? shadowRootTag : getTagName(node);
@@ -33105,7 +33592,7 @@ function* streamToHtml(node, opts, output) {
33105
33592
  }
33106
33593
  const ignoreTag = opts.excludeTags != null && opts.excludeTags.includes(tagName);
33107
33594
  if (ignoreTag === false) {
33108
- const isWithinWhitespaceSensitiveNode = opts.newLines || ((_a2 = opts.indentSpaces) != null ? _a2 : 0) > 0 ? isWithinWhitespaceSensitive(node) : false;
33595
+ const isWithinWhitespaceSensitiveNode = opts.newLines || ((_a3 = opts.indentSpaces) != null ? _a3 : 0) > 0 ? isWithinWhitespaceSensitive(node) : false;
33109
33596
  if (opts.newLines && !isWithinWhitespaceSensitiveNode) {
33110
33597
  yield "\n";
33111
33598
  output.currentLineWidth = 0;
@@ -33624,9 +34111,7 @@ var MockNode2 = class {
33624
34111
  const firstChild = this.firstChild;
33625
34112
  items.forEach((item) => {
33626
34113
  const isNode = typeof item === "object" && item !== null && "nodeType" in item;
33627
- if (firstChild) {
33628
- this.insertBefore(isNode ? item : this.ownerDocument.createTextNode(String(item)), firstChild);
33629
- }
34114
+ this.insertBefore(isNode ? item : this.ownerDocument.createTextNode(String(item)), firstChild);
33630
34115
  });
33631
34116
  }
33632
34117
  cloneNode(deep) {
@@ -33675,8 +34160,8 @@ var MockNode2 = class {
33675
34160
  return null;
33676
34161
  }
33677
34162
  get nodeValue() {
33678
- var _a2;
33679
- return (_a2 = this._nodeValue) != null ? _a2 : "";
34163
+ var _a3;
34164
+ return (_a3 = this._nodeValue) != null ? _a3 : "";
33680
34165
  }
33681
34166
  set nodeValue(value) {
33682
34167
  this._nodeValue = value;
@@ -33736,8 +34221,8 @@ var MockNode2 = class {
33736
34221
  return null;
33737
34222
  }
33738
34223
  get textContent() {
33739
- var _a2;
33740
- return (_a2 = this._nodeValue) != null ? _a2 : "";
34224
+ var _a3;
34225
+ return (_a3 = this._nodeValue) != null ? _a3 : "";
33741
34226
  }
33742
34227
  set textContent(value) {
33743
34228
  this._nodeValue = String(value);
@@ -33796,9 +34281,9 @@ var MockElement = class extends MockNode2 {
33796
34281
  addEventListener(this, type, handler);
33797
34282
  }
33798
34283
  attachShadow(_opts) {
33799
- var _a2;
34284
+ var _a3;
33800
34285
  const shadowRoot = this.ownerDocument.createDocumentFragment();
33801
- shadowRoot.delegatesFocus = (_a2 = _opts.delegatesFocus) != null ? _a2 : false;
34286
+ shadowRoot.delegatesFocus = (_a3 = _opts.delegatesFocus) != null ? _a3 : false;
33802
34287
  this.shadowRoot = shadowRoot;
33803
34288
  return shadowRoot;
33804
34289
  }
@@ -33974,8 +34459,8 @@ var MockElement = class extends MockNode2 {
33974
34459
  });
33975
34460
  }
33976
34461
  set innerHTML(html) {
33977
- var _a2;
33978
- if (NON_ESCAPABLE_CONTENT.has((_a2 = this.nodeName) != null ? _a2 : "") === true) {
34462
+ var _a3;
34463
+ if (NON_ESCAPABLE_CONTENT.has((_a3 = this.nodeName) != null ? _a3 : "") === true) {
33979
34464
  setTextContent(this, html);
33980
34465
  } else {
33981
34466
  for (let i = this.childNodes.length - 1; i >= 0; i--) {
@@ -34218,8 +34703,8 @@ var MockElement = class extends MockNode2 {
34218
34703
  this.setAttributeNS(null, "tabindex", value);
34219
34704
  }
34220
34705
  get tagName() {
34221
- var _a2;
34222
- return (_a2 = this.nodeName) != null ? _a2 : "";
34706
+ var _a3;
34707
+ return (_a3 = this.nodeName) != null ? _a3 : "";
34223
34708
  }
34224
34709
  set tagName(value) {
34225
34710
  this.nodeName = value;
@@ -34441,11 +34926,11 @@ function getElementsByClassName(elm, classNames, foundElms) {
34441
34926
  }
34442
34927
  }
34443
34928
  function getElementsByTagName(elm, tagName, foundElms) {
34444
- var _a2;
34929
+ var _a3;
34445
34930
  const children = elm.children;
34446
34931
  for (let i = 0, ii = children.length; i < ii; i++) {
34447
34932
  const childElm = children[i];
34448
- if (tagName === "*" || ((_a2 = childElm.nodeName) != null ? _a2 : "").toLowerCase() === tagName) {
34933
+ if (tagName === "*" || ((_a3 = childElm.nodeName) != null ? _a3 : "").toLowerCase() === tagName) {
34449
34934
  foundElms.push(childElm);
34450
34935
  }
34451
34936
  getElementsByTagName(childElm, tagName, foundElms);
@@ -34482,8 +34967,8 @@ var MockHTMLElement = class extends MockElement {
34482
34967
  super(ownerDocument, typeof nodeName === "string" ? nodeName.toUpperCase() : null);
34483
34968
  }
34484
34969
  get tagName() {
34485
- var _a2;
34486
- return (_a2 = this.nodeName) != null ? _a2 : "";
34970
+ var _a3;
34971
+ return (_a3 = this.nodeName) != null ? _a3 : "";
34487
34972
  }
34488
34973
  set tagName(value) {
34489
34974
  this.nodeName = value;
@@ -34941,10 +35426,10 @@ var MockLabelElement = class extends MockHTMLElement {
34941
35426
  this.setAttributeNS(null, "for", value);
34942
35427
  }
34943
35428
  get control() {
34944
- var _a2, _b;
35429
+ var _a3, _b;
34945
35430
  const forAttr = this.htmlFor;
34946
35431
  if (forAttr) {
34947
- return (_b = (_a2 = this.ownerDocument) == null ? void 0 : _a2.getElementById(forAttr)) != null ? _b : null;
35432
+ return (_b = (_a3 = this.ownerDocument) == null ? void 0 : _a3.getElementById(forAttr)) != null ? _b : null;
34948
35433
  }
34949
35434
  const labelableSelector = 'button, input:not([type="hidden"]), meter, output, progress, select, textarea';
34950
35435
  return this.querySelector(labelableSelector);
@@ -37452,18 +37937,34 @@ var RemoteValue = class _RemoteValue {
37452
37937
  };
37453
37938
 
37454
37939
  // src/utils/serialize.ts
37940
+ function encodeBase64Unicode(str) {
37941
+ const utf8Bytes = new TextEncoder().encode(str);
37942
+ let binary = "";
37943
+ for (let i = 0; i < utf8Bytes.length; i++) {
37944
+ binary += String.fromCharCode(utf8Bytes[i]);
37945
+ }
37946
+ return btoa(binary);
37947
+ }
37948
+ function decodeBase64Unicode(base64) {
37949
+ const binary = atob(base64);
37950
+ const bytes = new Uint8Array(binary.length);
37951
+ for (let i = 0; i < binary.length; i++) {
37952
+ bytes[i] = binary.charCodeAt(i);
37953
+ }
37954
+ return new TextDecoder().decode(bytes);
37955
+ }
37455
37956
  function serializeProperty(value) {
37456
37957
  if (["string", "boolean", "undefined"].includes(typeof value) || typeof value === "number" && value !== Infinity && value !== -Infinity && !isNaN(value)) {
37457
37958
  return value;
37458
37959
  }
37459
37960
  const arg = LocalValue.getArgument(value);
37460
- return SERIALIZED_PREFIX + btoa(JSON.stringify(arg));
37961
+ return SERIALIZED_PREFIX + encodeBase64Unicode(JSON.stringify(arg));
37461
37962
  }
37462
37963
  function deserializeProperty(value) {
37463
37964
  if (typeof value !== "string" || !value.startsWith(SERIALIZED_PREFIX)) {
37464
37965
  return value;
37465
37966
  }
37466
- return RemoteValue.fromLocalValue(JSON.parse(atob(value.slice(SERIALIZED_PREFIX.length))));
37967
+ return RemoteValue.fromLocalValue(JSON.parse(decodeBase64Unicode(value.slice(SERIALIZED_PREFIX.length))));
37467
37968
  }
37468
37969
  var CAPTURE_EVENT_SUFFIX = "Capture";
37469
37970
  var CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + "$");
@@ -37657,8 +38158,35 @@ var unescape = (s, { windowsPathsNoEscape = false } = {}) => {
37657
38158
  };
37658
38159
 
37659
38160
  // node_modules/minimatch/dist/esm/ast.js
38161
+ var _a2;
37660
38162
  var types = /* @__PURE__ */ new Set(["!", "?", "+", "*", "@"]);
37661
38163
  var isExtglobType = (c) => types.has(c);
38164
+ var isExtglobAST = (c) => isExtglobType(c.type);
38165
+ var adoptionMap = /* @__PURE__ */ new Map([
38166
+ ["!", ["@"]],
38167
+ ["?", ["?", "@"]],
38168
+ ["@", ["@"]],
38169
+ ["*", ["*", "+", "?", "@"]],
38170
+ ["+", ["+", "@"]]
38171
+ ]);
38172
+ var adoptionWithSpaceMap = /* @__PURE__ */ new Map([
38173
+ ["!", ["?"]],
38174
+ ["@", ["?"]],
38175
+ ["+", ["?", "*"]]
38176
+ ]);
38177
+ var adoptionAnyMap = /* @__PURE__ */ new Map([
38178
+ ["!", ["?", "@"]],
38179
+ ["?", ["?", "@"]],
38180
+ ["@", ["?", "@"]],
38181
+ ["*", ["*", "+", "?", "@"]],
38182
+ ["+", ["+", "@", "?", "*"]]
38183
+ ]);
38184
+ var usurpMap = /* @__PURE__ */ new Map([
38185
+ ["!", /* @__PURE__ */ new Map([["!", "@"]])],
38186
+ ["?", /* @__PURE__ */ new Map([["*", "*"], ["+", "*"]])],
38187
+ ["@", /* @__PURE__ */ new Map([["!", "!"], ["?", "?"], ["@", "@"], ["*", "*"], ["+", "+"]])],
38188
+ ["+", /* @__PURE__ */ new Map([["?", "*"], ["*", "*"]])]
38189
+ ]);
37662
38190
  var startNoTraversal = "(?!(?:^|/)\\.\\.?(?:$|/))";
37663
38191
  var startNoDot = "(?!\\.)";
37664
38192
  var addPatternStart = /* @__PURE__ */ new Set(["[", "."]);
@@ -37668,8 +38196,8 @@ var regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
37668
38196
  var qmark = "[^/]";
37669
38197
  var star = qmark + "*?";
37670
38198
  var starNoEmpty = qmark + "+?";
37671
- var _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, partsToRegExp_fn, parseGlob_fn;
37672
- var _AST = class _AST {
38199
+ var _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, canAdoptWithSpace_fn, canAdopt_fn, canAdoptType_fn, adoptWithSpace_fn, adopt_fn, canUsurpType_fn, canUsurp_fn, usurp_fn, flatten_fn, partsToRegExp_fn, parseGlob_fn;
38200
+ var AST = class {
37673
38201
  constructor(type, parent, options = {}) {
37674
38202
  __privateAdd(this, _AST_instances);
37675
38203
  __publicField(this, "type");
@@ -37722,44 +38250,44 @@ var _AST = class _AST {
37722
38250
  for (const p of parts) {
37723
38251
  if (p === "")
37724
38252
  continue;
37725
- if (typeof p !== "string" && !(p instanceof _AST && __privateGet(p, _parent) === this)) {
38253
+ if (typeof p !== "string" && !(p instanceof _a2 && __privateGet(p, _parent) === this)) {
37726
38254
  throw new Error("invalid part: " + p);
37727
38255
  }
37728
38256
  __privateGet(this, _parts).push(p);
37729
38257
  }
37730
38258
  }
37731
38259
  toJSON() {
37732
- var _a2;
38260
+ var _a3;
37733
38261
  const ret = this.type === null ? __privateGet(this, _parts).slice().map((p) => typeof p === "string" ? p : p.toJSON()) : [this.type, ...__privateGet(this, _parts).map((p) => p.toJSON())];
37734
38262
  if (this.isStart() && !this.type)
37735
38263
  ret.unshift([]);
37736
- if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")) {
38264
+ if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.type) === "!")) {
37737
38265
  ret.push({});
37738
38266
  }
37739
38267
  return ret;
37740
38268
  }
37741
38269
  isStart() {
37742
- var _a2;
38270
+ var _a3;
37743
38271
  if (__privateGet(this, _root) === this)
37744
38272
  return true;
37745
- if (!((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.isStart()))
38273
+ if (!((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.isStart()))
37746
38274
  return false;
37747
38275
  if (__privateGet(this, _parentIndex) === 0)
37748
38276
  return true;
37749
38277
  const p = __privateGet(this, _parent);
37750
38278
  for (let i = 0; i < __privateGet(this, _parentIndex); i++) {
37751
38279
  const pp = __privateGet(p, _parts)[i];
37752
- if (!(pp instanceof _AST && pp.type === "!")) {
38280
+ if (!(pp instanceof _a2 && pp.type === "!")) {
37753
38281
  return false;
37754
38282
  }
37755
38283
  }
37756
38284
  return true;
37757
38285
  }
37758
38286
  isEnd() {
37759
- var _a2, _b, _c;
38287
+ var _a3, _b, _c;
37760
38288
  if (__privateGet(this, _root) === this)
37761
38289
  return true;
37762
- if (((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")
38290
+ if (((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.type) === "!")
37763
38291
  return true;
37764
38292
  if (!((_b = __privateGet(this, _parent)) == null ? void 0 : _b.isEnd()))
37765
38293
  return false;
@@ -37775,16 +38303,16 @@ var _AST = class _AST {
37775
38303
  this.push(part.clone(this));
37776
38304
  }
37777
38305
  clone(parent) {
37778
- const c = new _AST(this.type, parent);
38306
+ const c = new _a2(this.type, parent);
37779
38307
  for (const p of __privateGet(this, _parts)) {
37780
38308
  c.copyIn(p);
37781
38309
  }
37782
38310
  return c;
37783
38311
  }
37784
38312
  static fromGlob(pattern, options = {}) {
37785
- var _a2;
37786
- const ast = new _AST(null, void 0, options);
37787
- __privateMethod(_a2 = _AST, _AST_static, parseAST_fn).call(_a2, pattern, ast, 0, options);
38313
+ var _a3;
38314
+ const ast = new _a2(null, void 0, options);
38315
+ __privateMethod(_a3 = _a2, _AST_static, parseAST_fn).call(_a3, pattern, ast, 0, options, 0);
37788
38316
  return ast;
37789
38317
  }
37790
38318
  // returns the regular expression if there's magic, or the unescaped
@@ -37877,15 +38405,17 @@ var _AST = class _AST {
37877
38405
  // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root
37878
38406
  // or start or whatever) and prepend ^ or / at the Regexp construction.
37879
38407
  toRegExpSource(allowDot) {
37880
- var _a2;
38408
+ var _a3;
37881
38409
  const dot = allowDot != null ? allowDot : !!__privateGet(this, _options).dot;
37882
- if (__privateGet(this, _root) === this)
38410
+ if (__privateGet(this, _root) === this) {
38411
+ __privateMethod(this, _AST_instances, flatten_fn).call(this);
37883
38412
  __privateMethod(this, _AST_instances, fillNegs_fn).call(this);
37884
- if (!this.type) {
38413
+ }
38414
+ if (!isExtglobAST(this)) {
37885
38415
  const noEmpty = this.isStart() && this.isEnd();
37886
38416
  const src = __privateGet(this, _parts).map((p) => {
37887
- var _a3;
37888
- const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a3 = _AST, _AST_static, parseGlob_fn).call(_a3, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
38417
+ var _a4;
38418
+ const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a4 = _a2, _AST_static, parseGlob_fn).call(_a4, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
37889
38419
  __privateSet(this, _hasMagic, __privateGet(this, _hasMagic) || hasMagic);
37890
38420
  __privateSet(this, _uflag, __privateGet(this, _uflag) || uflag);
37891
38421
  return re;
@@ -37908,7 +38438,7 @@ var _AST = class _AST {
37908
38438
  }
37909
38439
  }
37910
38440
  let end = "";
37911
- if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!") {
38441
+ if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.type) === "!") {
37912
38442
  end = "(?:$|\\/)";
37913
38443
  }
37914
38444
  const final2 = start2 + src + end;
@@ -37924,9 +38454,10 @@ var _AST = class _AST {
37924
38454
  let body = __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, dot);
37925
38455
  if (this.isStart() && this.isEnd() && !body && this.type !== "!") {
37926
38456
  const s = this.toString();
37927
- __privateSet(this, _parts, [s]);
37928
- this.type = null;
37929
- __privateSet(this, _hasMagic, void 0);
38457
+ const me = this;
38458
+ __privateSet(me, _parts, [s]);
38459
+ me.type = null;
38460
+ __privateSet(me, _hasMagic, void 0);
37930
38461
  return [s, unescape(this.toString()), false, false];
37931
38462
  }
37932
38463
  let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ? "" : __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, true);
@@ -37995,8 +38526,9 @@ fillNegs_fn = function() {
37995
38526
  return this;
37996
38527
  };
37997
38528
  _AST_static = new WeakSet();
37998
- parseAST_fn = function(str, ast, pos, opt) {
37999
- var _a2, _b;
38529
+ parseAST_fn = function(str, ast, pos, opt, extDepth) {
38530
+ var _a3, _b, _c, _d, _e;
38531
+ const maxDepth = (_a3 = opt.maxExtglobRecursion) != null ? _a3 : 2;
38000
38532
  let escaping = false;
38001
38533
  let inBrace = false;
38002
38534
  let braceStart = -1;
@@ -38028,11 +38560,12 @@ parseAST_fn = function(str, ast, pos, opt) {
38028
38560
  acc2 += c;
38029
38561
  continue;
38030
38562
  }
38031
- if (!opt.noext && isExtglobType(c) && str.charAt(i2) === "(") {
38563
+ const doRecurse = !opt.noext && isExtglobType(c) && str.charAt(i2) === "(" && extDepth <= maxDepth;
38564
+ if (doRecurse) {
38032
38565
  ast.push(acc2);
38033
38566
  acc2 = "";
38034
- const ext2 = new _AST(c, ast);
38035
- i2 = __privateMethod(_a2 = _AST, _AST_static, parseAST_fn).call(_a2, str, ext2, i2, opt);
38567
+ const ext2 = new _a2(c, ast);
38568
+ i2 = __privateMethod(_b = _a2, _AST_static, parseAST_fn).call(_b, str, ext2, i2, opt, extDepth + 1);
38036
38569
  ast.push(ext2);
38037
38570
  continue;
38038
38571
  }
@@ -38042,7 +38575,7 @@ parseAST_fn = function(str, ast, pos, opt) {
38042
38575
  return i2;
38043
38576
  }
38044
38577
  let i = pos + 1;
38045
- let part = new _AST(null, ast);
38578
+ let part = new _a2(null, ast);
38046
38579
  const parts = [];
38047
38580
  let acc = "";
38048
38581
  while (i < str.length) {
@@ -38069,19 +38602,22 @@ parseAST_fn = function(str, ast, pos, opt) {
38069
38602
  acc += c;
38070
38603
  continue;
38071
38604
  }
38072
- if (isExtglobType(c) && str.charAt(i) === "(") {
38605
+ const doRecurse = isExtglobType(c) && str.charAt(i) === "(" && /* c8 ignore start - the maxDepth is sufficient here */
38606
+ (extDepth <= maxDepth || ast && __privateMethod(_c = ast, _AST_instances, canAdoptType_fn).call(_c, c));
38607
+ if (doRecurse) {
38608
+ const depthAdd = ast && __privateMethod(_d = ast, _AST_instances, canAdoptType_fn).call(_d, c) ? 0 : 1;
38073
38609
  part.push(acc);
38074
38610
  acc = "";
38075
- const ext2 = new _AST(c, part);
38611
+ const ext2 = new _a2(c, part);
38076
38612
  part.push(ext2);
38077
- i = __privateMethod(_b = _AST, _AST_static, parseAST_fn).call(_b, str, ext2, i, opt);
38613
+ i = __privateMethod(_e = _a2, _AST_static, parseAST_fn).call(_e, str, ext2, i, opt, extDepth + depthAdd);
38078
38614
  continue;
38079
38615
  }
38080
38616
  if (c === "|") {
38081
38617
  part.push(acc);
38082
38618
  acc = "";
38083
38619
  parts.push(part);
38084
- part = new _AST(null, ast);
38620
+ part = new _a2(null, ast);
38085
38621
  continue;
38086
38622
  }
38087
38623
  if (c === ")") {
@@ -38100,6 +38636,100 @@ parseAST_fn = function(str, ast, pos, opt) {
38100
38636
  __privateSet(ast, _parts, [str.substring(pos - 1)]);
38101
38637
  return i;
38102
38638
  };
38639
+ canAdoptWithSpace_fn = function(child) {
38640
+ return __privateMethod(this, _AST_instances, canAdopt_fn).call(this, child, adoptionWithSpaceMap);
38641
+ };
38642
+ canAdopt_fn = function(child, map2 = adoptionMap) {
38643
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null) {
38644
+ return false;
38645
+ }
38646
+ const gc = __privateGet(child, _parts)[0];
38647
+ if (!gc || typeof gc !== "object" || gc.type === null) {
38648
+ return false;
38649
+ }
38650
+ return __privateMethod(this, _AST_instances, canAdoptType_fn).call(this, gc.type, map2);
38651
+ };
38652
+ canAdoptType_fn = function(c, map2 = adoptionAnyMap) {
38653
+ var _a3;
38654
+ return !!((_a3 = map2.get(this.type)) == null ? void 0 : _a3.includes(c));
38655
+ };
38656
+ adoptWithSpace_fn = function(child, index) {
38657
+ const gc = __privateGet(child, _parts)[0];
38658
+ const blank = new _a2(null, gc, this.options);
38659
+ __privateGet(blank, _parts).push("");
38660
+ gc.push(blank);
38661
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, child, index);
38662
+ };
38663
+ adopt_fn = function(child, index) {
38664
+ const gc = __privateGet(child, _parts)[0];
38665
+ __privateGet(this, _parts).splice(index, 1, ...__privateGet(gc, _parts));
38666
+ for (const p of __privateGet(gc, _parts)) {
38667
+ if (typeof p === "object")
38668
+ __privateSet(p, _parent, this);
38669
+ }
38670
+ __privateSet(this, _toString, void 0);
38671
+ };
38672
+ canUsurpType_fn = function(c) {
38673
+ const m = usurpMap.get(this.type);
38674
+ return !!(m == null ? void 0 : m.has(c));
38675
+ };
38676
+ canUsurp_fn = function(child) {
38677
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null || __privateGet(this, _parts).length !== 1) {
38678
+ return false;
38679
+ }
38680
+ const gc = __privateGet(child, _parts)[0];
38681
+ if (!gc || typeof gc !== "object" || gc.type === null) {
38682
+ return false;
38683
+ }
38684
+ return __privateMethod(this, _AST_instances, canUsurpType_fn).call(this, gc.type);
38685
+ };
38686
+ usurp_fn = function(child) {
38687
+ const m = usurpMap.get(this.type);
38688
+ const gc = __privateGet(child, _parts)[0];
38689
+ const nt = m == null ? void 0 : m.get(gc.type);
38690
+ if (!nt)
38691
+ return false;
38692
+ __privateSet(this, _parts, __privateGet(gc, _parts));
38693
+ for (const p of __privateGet(this, _parts)) {
38694
+ if (typeof p === "object")
38695
+ __privateSet(p, _parent, this);
38696
+ }
38697
+ this.type = nt;
38698
+ __privateSet(this, _toString, void 0);
38699
+ __privateSet(this, _emptyExt, false);
38700
+ };
38701
+ flatten_fn = function() {
38702
+ var _a3, _b;
38703
+ if (!isExtglobAST(this)) {
38704
+ for (const p of __privateGet(this, _parts)) {
38705
+ if (typeof p === "object")
38706
+ __privateMethod(_a3 = p, _AST_instances, flatten_fn).call(_a3);
38707
+ }
38708
+ } else {
38709
+ let iterations = 0;
38710
+ let done = false;
38711
+ do {
38712
+ done = true;
38713
+ for (let i = 0; i < __privateGet(this, _parts).length; i++) {
38714
+ const c = __privateGet(this, _parts)[i];
38715
+ if (typeof c === "object") {
38716
+ __privateMethod(_b = c, _AST_instances, flatten_fn).call(_b);
38717
+ if (__privateMethod(this, _AST_instances, canAdopt_fn).call(this, c)) {
38718
+ done = false;
38719
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, c, i);
38720
+ } else if (__privateMethod(this, _AST_instances, canAdoptWithSpace_fn).call(this, c)) {
38721
+ done = false;
38722
+ __privateMethod(this, _AST_instances, adoptWithSpace_fn).call(this, c, i);
38723
+ } else if (__privateMethod(this, _AST_instances, canUsurp_fn).call(this, c)) {
38724
+ done = false;
38725
+ __privateMethod(this, _AST_instances, usurp_fn).call(this, c);
38726
+ }
38727
+ }
38728
+ }
38729
+ } while (!done && ++iterations < 10);
38730
+ }
38731
+ __privateSet(this, _toString, void 0);
38732
+ };
38103
38733
  partsToRegExp_fn = function(dot) {
38104
38734
  return __privateGet(this, _parts).map((p) => {
38105
38735
  if (typeof p === "string") {
@@ -38114,11 +38744,13 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
38114
38744
  let escaping = false;
38115
38745
  let re = "";
38116
38746
  let uflag = false;
38747
+ let inStar = false;
38117
38748
  for (let i = 0; i < glob.length; i++) {
38118
38749
  const c = glob.charAt(i);
38119
38750
  if (escaping) {
38120
38751
  escaping = false;
38121
38752
  re += (reSpecials.has(c) ? "\\" : "") + c;
38753
+ inStar = false;
38122
38754
  continue;
38123
38755
  }
38124
38756
  if (c === "\\") {
@@ -38136,16 +38768,19 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
38136
38768
  uflag = uflag || needUflag;
38137
38769
  i += consumed - 1;
38138
38770
  hasMagic = hasMagic || magic;
38771
+ inStar = false;
38139
38772
  continue;
38140
38773
  }
38141
38774
  }
38142
38775
  if (c === "*") {
38143
- if (noEmpty && glob === "*")
38144
- re += starNoEmpty;
38145
- else
38146
- re += star;
38776
+ if (inStar)
38777
+ continue;
38778
+ inStar = true;
38779
+ re += noEmpty && /^[*]+$/.test(glob) ? starNoEmpty : star;
38147
38780
  hasMagic = true;
38148
38781
  continue;
38782
+ } else {
38783
+ inStar = false;
38149
38784
  }
38150
38785
  if (c === "?") {
38151
38786
  re += qmark;
@@ -38156,8 +38791,8 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
38156
38791
  }
38157
38792
  return [re, unescape(glob), !!hasMagic, uflag];
38158
38793
  };
38159
- __privateAdd(_AST, _AST_static);
38160
- var AST = _AST;
38794
+ __privateAdd(AST, _AST_static);
38795
+ _a2 = AST;
38161
38796
 
38162
38797
  // node_modules/minimatch/dist/esm/escape.js
38163
38798
  var escape = (s, { windowsPathsNoEscape = false } = {}) => {
@@ -38296,28 +38931,33 @@ var match = (list, pattern, options = {}) => {
38296
38931
  minimatch.match = match;
38297
38932
  var globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/;
38298
38933
  var regExpEscape2 = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
38934
+ var _Minimatch_instances, matchGlobstar_fn, matchGlobStarBodySections_fn, matchOne_fn;
38299
38935
  var Minimatch = class {
38300
- options;
38301
- set;
38302
- pattern;
38303
- windowsPathsNoEscape;
38304
- nonegate;
38305
- negate;
38306
- comment;
38307
- empty;
38308
- preserveMultipleSlashes;
38309
- partial;
38310
- globSet;
38311
- globParts;
38312
- nocase;
38313
- isWindows;
38314
- platform;
38315
- windowsNoMagicRoot;
38316
- regexp;
38317
38936
  constructor(pattern, options = {}) {
38937
+ __privateAdd(this, _Minimatch_instances);
38938
+ __publicField(this, "options");
38939
+ __publicField(this, "set");
38940
+ __publicField(this, "pattern");
38941
+ __publicField(this, "windowsPathsNoEscape");
38942
+ __publicField(this, "nonegate");
38943
+ __publicField(this, "negate");
38944
+ __publicField(this, "comment");
38945
+ __publicField(this, "empty");
38946
+ __publicField(this, "preserveMultipleSlashes");
38947
+ __publicField(this, "partial");
38948
+ __publicField(this, "globSet");
38949
+ __publicField(this, "globParts");
38950
+ __publicField(this, "nocase");
38951
+ __publicField(this, "isWindows");
38952
+ __publicField(this, "platform");
38953
+ __publicField(this, "windowsNoMagicRoot");
38954
+ __publicField(this, "maxGlobstarRecursion");
38955
+ __publicField(this, "regexp");
38956
+ var _a3;
38318
38957
  assertValidPattern(pattern);
38319
38958
  options = options || {};
38320
38959
  this.options = options;
38960
+ this.maxGlobstarRecursion = (_a3 = options.maxGlobstarRecursion) != null ? _a3 : 200;
38321
38961
  this.pattern = pattern;
38322
38962
  this.platform = options.platform || defaultPlatform;
38323
38963
  this.isWindows = this.platform === "win32";
@@ -38585,10 +39225,11 @@ var Minimatch = class {
38585
39225
  for (let i = 0; i < globParts.length - 1; i++) {
38586
39226
  for (let j = i + 1; j < globParts.length; j++) {
38587
39227
  const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);
38588
- if (!matched)
38589
- continue;
38590
- globParts[i] = matched;
38591
- globParts[j] = [];
39228
+ if (matched) {
39229
+ globParts[i] = [];
39230
+ globParts[j] = matched;
39231
+ break;
39232
+ }
38592
39233
  }
38593
39234
  }
38594
39235
  return globParts.filter((gs) => gs.length);
@@ -38649,7 +39290,8 @@ var Minimatch = class {
38649
39290
  // out of pattern, then that's fine, as long as all
38650
39291
  // the parts match.
38651
39292
  matchOne(file, pattern, partial = false) {
38652
- const options = this.options;
39293
+ let fileStartIndex = 0;
39294
+ let patternStartIndex = 0;
38653
39295
  if (this.isWindows) {
38654
39296
  const fileDrive = typeof file[0] === "string" && /^[a-z]:$/i.test(file[0]);
38655
39297
  const fileUNC = !fileDrive && file[0] === "" && file[1] === "" && file[2] === "?" && /^[a-z]:$/i.test(file[3]);
@@ -38658,14 +39300,14 @@ var Minimatch = class {
38658
39300
  const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;
38659
39301
  const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;
38660
39302
  if (typeof fdi === "number" && typeof pdi === "number") {
38661
- const [fd, pd] = [file[fdi], pattern[pdi]];
39303
+ const [fd, pd] = [
39304
+ file[fdi],
39305
+ pattern[pdi]
39306
+ ];
38662
39307
  if (fd.toLowerCase() === pd.toLowerCase()) {
38663
39308
  pattern[pdi] = fd;
38664
- if (pdi > fdi) {
38665
- pattern = pattern.slice(pdi);
38666
- } else if (fdi > pdi) {
38667
- file = file.slice(fdi);
38668
- }
39309
+ patternStartIndex = pdi;
39310
+ fileStartIndex = fdi;
38669
39311
  }
38670
39312
  }
38671
39313
  }
@@ -38673,71 +39315,10 @@ var Minimatch = class {
38673
39315
  if (optimizationLevel >= 2) {
38674
39316
  file = this.levelTwoFileOptimize(file);
38675
39317
  }
38676
- this.debug("matchOne", this, { file, pattern });
38677
- this.debug("matchOne", file.length, pattern.length);
38678
- for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
38679
- this.debug("matchOne loop");
38680
- var p = pattern[pi];
38681
- var f = file[fi];
38682
- this.debug(pattern, p, f);
38683
- if (p === false) {
38684
- return false;
38685
- }
38686
- if (p === GLOBSTAR) {
38687
- this.debug("GLOBSTAR", [pattern, p, f]);
38688
- var fr = fi;
38689
- var pr = pi + 1;
38690
- if (pr === pl) {
38691
- this.debug("** at the end");
38692
- for (; fi < fl; fi++) {
38693
- if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".")
38694
- return false;
38695
- }
38696
- return true;
38697
- }
38698
- while (fr < fl) {
38699
- var swallowee = file[fr];
38700
- this.debug("\nglobstar while", file, fr, pattern, pr, swallowee);
38701
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
38702
- this.debug("globstar found match!", fr, fl, swallowee);
38703
- return true;
38704
- } else {
38705
- if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") {
38706
- this.debug("dot detected!", file, fr, pattern, pr);
38707
- break;
38708
- }
38709
- this.debug("globstar swallow a segment, and continue");
38710
- fr++;
38711
- }
38712
- }
38713
- if (partial) {
38714
- this.debug("\n>>> no match, partial?", file, fr, pattern, pr);
38715
- if (fr === fl) {
38716
- return true;
38717
- }
38718
- }
38719
- return false;
38720
- }
38721
- let hit;
38722
- if (typeof p === "string") {
38723
- hit = f === p;
38724
- this.debug("string match", p, f, hit);
38725
- } else {
38726
- hit = p.test(f);
38727
- this.debug("pattern match", p, f, hit);
38728
- }
38729
- if (!hit)
38730
- return false;
38731
- }
38732
- if (fi === fl && pi === pl) {
38733
- return true;
38734
- } else if (fi === fl) {
38735
- return partial;
38736
- } else if (pi === pl) {
38737
- return fi === fl - 1 && file[fi] === "";
38738
- } else {
38739
- throw new Error("wtf?");
39318
+ if (pattern.includes(GLOBSTAR)) {
39319
+ return __privateMethod(this, _Minimatch_instances, matchGlobstar_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
38740
39320
  }
39321
+ return __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
38741
39322
  }
38742
39323
  braceExpand() {
38743
39324
  return braceExpand(this.pattern, this.options);
@@ -38876,6 +39457,135 @@ var Minimatch = class {
38876
39457
  return minimatch.defaults(def).Minimatch;
38877
39458
  }
38878
39459
  };
39460
+ _Minimatch_instances = new WeakSet();
39461
+ matchGlobstar_fn = function(file, pattern, partial, fileIndex, patternIndex) {
39462
+ const firstgs = pattern.indexOf(GLOBSTAR, patternIndex);
39463
+ const lastgs = pattern.lastIndexOf(GLOBSTAR);
39464
+ const [head, body, tail] = partial ? [
39465
+ pattern.slice(patternIndex, firstgs),
39466
+ pattern.slice(firstgs + 1),
39467
+ []
39468
+ ] : [
39469
+ pattern.slice(patternIndex, firstgs),
39470
+ pattern.slice(firstgs + 1, lastgs),
39471
+ pattern.slice(lastgs + 1)
39472
+ ];
39473
+ if (head.length) {
39474
+ const fileHead = file.slice(fileIndex, fileIndex + head.length);
39475
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, fileHead, head, partial, 0, 0))
39476
+ return false;
39477
+ fileIndex += head.length;
39478
+ }
39479
+ let fileTailMatch = 0;
39480
+ if (tail.length) {
39481
+ if (tail.length + fileIndex > file.length)
39482
+ return false;
39483
+ let tailStart = file.length - tail.length;
39484
+ if (__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0)) {
39485
+ fileTailMatch = tail.length;
39486
+ } else {
39487
+ if (file[file.length - 1] !== "" || fileIndex + tail.length === file.length) {
39488
+ return false;
39489
+ }
39490
+ tailStart--;
39491
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0))
39492
+ return false;
39493
+ fileTailMatch = tail.length + 1;
39494
+ }
39495
+ }
39496
+ if (!body.length) {
39497
+ let sawSome = !!fileTailMatch;
39498
+ for (let i2 = fileIndex; i2 < file.length - fileTailMatch; i2++) {
39499
+ const f = String(file[i2]);
39500
+ sawSome = true;
39501
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
39502
+ return false;
39503
+ }
39504
+ }
39505
+ return partial || sawSome;
39506
+ }
39507
+ const bodySegments = [[[], 0]];
39508
+ let currentBody = bodySegments[0];
39509
+ let nonGsParts = 0;
39510
+ const nonGsPartsSums = [0];
39511
+ for (const b of body) {
39512
+ if (b === GLOBSTAR) {
39513
+ nonGsPartsSums.push(nonGsParts);
39514
+ currentBody = [[], 0];
39515
+ bodySegments.push(currentBody);
39516
+ } else {
39517
+ currentBody[0].push(b);
39518
+ nonGsParts++;
39519
+ }
39520
+ }
39521
+ let i = bodySegments.length - 1;
39522
+ const fileLength = file.length - fileTailMatch;
39523
+ for (const b of bodySegments) {
39524
+ b[1] = fileLength - (nonGsPartsSums[i--] + b[0].length);
39525
+ }
39526
+ return !!__privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex, 0, partial, 0, !!fileTailMatch);
39527
+ };
39528
+ matchGlobStarBodySections_fn = function(file, bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail) {
39529
+ const bs = bodySegments[bodyIndex];
39530
+ if (!bs) {
39531
+ for (let i = fileIndex; i < file.length; i++) {
39532
+ sawTail = true;
39533
+ const f = file[i];
39534
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
39535
+ return false;
39536
+ }
39537
+ }
39538
+ return sawTail;
39539
+ }
39540
+ const [body, after] = bs;
39541
+ while (fileIndex <= after) {
39542
+ const m = __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file.slice(0, fileIndex + body.length), body, partial, fileIndex, 0);
39543
+ if (m && globStarDepth < this.maxGlobstarRecursion) {
39544
+ const sub = __privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex + body.length, bodyIndex + 1, partial, globStarDepth + 1, sawTail);
39545
+ if (sub !== false)
39546
+ return sub;
39547
+ }
39548
+ const f = file[fileIndex];
39549
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
39550
+ return false;
39551
+ }
39552
+ fileIndex++;
39553
+ }
39554
+ return partial || null;
39555
+ };
39556
+ matchOne_fn = function(file, pattern, partial, fileIndex, patternIndex) {
39557
+ let fi;
39558
+ let pi;
39559
+ let pl;
39560
+ let fl;
39561
+ for (fi = fileIndex, pi = patternIndex, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
39562
+ this.debug("matchOne loop");
39563
+ let p = pattern[pi];
39564
+ let f = file[fi];
39565
+ this.debug(pattern, p, f);
39566
+ if (p === false || p === GLOBSTAR)
39567
+ return false;
39568
+ let hit;
39569
+ if (typeof p === "string") {
39570
+ hit = f === p;
39571
+ this.debug("string match", p, f, hit);
39572
+ } else {
39573
+ hit = p.test(f);
39574
+ this.debug("pattern match", p, f, hit);
39575
+ }
39576
+ if (!hit)
39577
+ return false;
39578
+ }
39579
+ if (fi === fl && pi === pl) {
39580
+ return true;
39581
+ } else if (fi === fl) {
39582
+ return partial;
39583
+ } else if (pi === pl) {
39584
+ return fi === fl - 1 && file[fi] === "";
39585
+ } else {
39586
+ throw new Error("wtf?");
39587
+ }
39588
+ };
38879
39589
  minimatch.AST = AST;
38880
39590
  minimatch.Minimatch = Minimatch;
38881
39591
  minimatch.escape = escape;
@@ -38946,7 +39656,7 @@ var isJsFile = lowerPathParam((p) => p.endsWith(".js") || p.endsWith(".mjs") ||
38946
39656
 
38947
39657
  // src/compiler/html/canonical-link.ts
38948
39658
  var updateCanonicalLink = (doc, href) => {
38949
- var _a2;
39659
+ var _a3;
38950
39660
  let canonicalLinkElm = doc.head.querySelector('link[rel="canonical"]');
38951
39661
  if (typeof href === "string") {
38952
39662
  if (canonicalLinkElm == null) {
@@ -38959,7 +39669,7 @@ var updateCanonicalLink = (doc, href) => {
38959
39669
  if (canonicalLinkElm != null) {
38960
39670
  const existingHref = canonicalLinkElm.getAttribute("href");
38961
39671
  if (!existingHref) {
38962
- (_a2 = canonicalLinkElm.parentNode) == null ? void 0 : _a2.removeChild(canonicalLinkElm);
39672
+ (_a3 = canonicalLinkElm.parentNode) == null ? void 0 : _a3.removeChild(canonicalLinkElm);
38963
39673
  }
38964
39674
  }
38965
39675
  }
@@ -39471,7 +40181,7 @@ var serializeCss = (stylesheet, serializeOpts) => {
39471
40181
  return out.join("");
39472
40182
  };
39473
40183
  var serializeCssVisitNode = (opts, node, index, len) => {
39474
- var _a2;
40184
+ var _a3;
39475
40185
  const nodeType = node.type;
39476
40186
  if (nodeType === 4 /* Declaration */) {
39477
40187
  return serializeCssDeclaration(node, index, len);
@@ -39480,7 +40190,7 @@ var serializeCssVisitNode = (opts, node, index, len) => {
39480
40190
  return serializeCssRule(opts, node);
39481
40191
  }
39482
40192
  if (nodeType === 1 /* Comment */) {
39483
- if (((_a2 = node.comment) == null ? void 0 : _a2[0]) === "!") {
40193
+ if (((_a3 = node.comment) == null ? void 0 : _a3[0]) === "!") {
39484
40194
  return `/*${node.comment}*/`;
39485
40195
  } else {
39486
40196
  return "";
@@ -39528,10 +40238,10 @@ var serializeCssVisitNode = (opts, node, index, len) => {
39528
40238
  return "";
39529
40239
  };
39530
40240
  var serializeCssRule = (opts, node) => {
39531
- var _a2, _b;
40241
+ var _a3, _b;
39532
40242
  const decls = node.declarations;
39533
40243
  const usedSelectors = opts.usedSelectors;
39534
- const selectors = (_b = (_a2 = node.selectors) == null ? void 0 : _a2.slice()) != null ? _b : [];
40244
+ const selectors = (_b = (_a3 = node.selectors) == null ? void 0 : _a3.slice()) != null ? _b : [];
39535
40245
  const hasDecls = decls != null && decls.length > 0;
39536
40246
  const hasNestedRules = node.rules != null && node.rules.length > 0;
39537
40247
  if (!hasDecls && !hasNestedRules) {
@@ -39635,8 +40345,8 @@ var serializeCssKeyframes = (opts, node) => {
39635
40345
  return "@" + (node.vendor || "") + "keyframes " + node.name + "{" + keyframesCss + "}";
39636
40346
  };
39637
40347
  var serializeCssKeyframe = (opts, node) => {
39638
- var _a2, _b;
39639
- return ((_b = (_a2 = node.values) == null ? void 0 : _a2.join(",")) != null ? _b : "") + "{" + serializeCssMapVisit(opts, node.declarations) + "}";
40348
+ var _a3, _b;
40349
+ return ((_b = (_a3 = node.values) == null ? void 0 : _a3.join(",")) != null ? _b : "") + "{" + serializeCssMapVisit(opts, node.declarations) + "}";
39640
40350
  };
39641
40351
  var serializeCssFontFace = (opts, node) => {
39642
40352
  const fontCss = serializeCssMapVisit(opts, node.declarations);
@@ -39660,8 +40370,8 @@ var serializeCssContainer = (opts, node) => {
39660
40370
  return "@container " + removeMediaWhitespace(node.media) + "{" + containerCss + "}";
39661
40371
  };
39662
40372
  var serializeCssPage = (opts, node) => {
39663
- var _a2, _b;
39664
- const sel = (_b = (_a2 = node.selectors) == null ? void 0 : _a2.join(", ")) != null ? _b : "";
40373
+ var _a3, _b;
40374
+ const sel = (_b = (_a3 = node.selectors) == null ? void 0 : _a3.join(", ")) != null ? _b : "";
39665
40375
  return "@page " + sel + "{" + serializeCssMapVisit(opts, node.declarations) + "}";
39666
40376
  };
39667
40377
  var serializeCssDocument = (opts, node) => {
@@ -39708,10 +40418,10 @@ var removeSelectorWhitespace = (selector) => {
39708
40418
  return rtn;
39709
40419
  };
39710
40420
  var removeMediaWhitespace = (media) => {
39711
- var _a2;
40421
+ var _a3;
39712
40422
  let rtn = "";
39713
40423
  let char = "";
39714
- media = (_a2 = media == null ? void 0 : media.trim()) != null ? _a2 : "";
40424
+ media = (_a3 = media == null ? void 0 : media.trim()) != null ? _a3 : "";
39715
40425
  for (let i = 0, l = media.length; i < l; i++) {
39716
40426
  char = media[i];
39717
40427
  if (CSS_WS_REG.test(char)) {