@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.mjs CHANGED
@@ -136,90 +136,8 @@ const NAMESPACE = 'revo-grid';
136
136
  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 };
137
137
  const Env = /* revo-grid */ {};
138
138
 
139
- class ThemeCompact {
140
- constructor() {
141
- this.defaultRowSize = 32;
142
- }
143
- }
144
-
145
- class ThemeDefault {
146
- constructor() {
147
- this.defaultRowSize = 27;
148
- }
149
- }
150
-
151
- class ThemeMaterial {
152
- constructor() {
153
- this.defaultRowSize = 42;
154
- }
155
- }
156
-
157
- const DEFAULT_THEME = 'default';
158
- const allowedThemes = [
159
- DEFAULT_THEME,
160
- 'material',
161
- 'compact',
162
- 'darkMaterial',
163
- 'darkCompact',
164
- ];
165
- class ThemeService {
166
- get theme() {
167
- return this.currentTheme;
168
- }
169
- get rowSize() {
170
- return this.customRowSize || this.currentTheme.defaultRowSize;
171
- }
172
- set rowSize(size) {
173
- this.customRowSize = size;
174
- }
175
- constructor(cfg) {
176
- this.customRowSize = 0;
177
- this.customRowSize = cfg.rowSize;
178
- this.register('default');
179
- }
180
- register(theme) {
181
- const parsedTheme = getTheme(theme);
182
- switch (parsedTheme) {
183
- case 'material':
184
- case 'darkMaterial':
185
- this.currentTheme = new ThemeMaterial();
186
- break;
187
- case 'compact':
188
- case 'darkCompact':
189
- this.currentTheme = new ThemeCompact();
190
- break;
191
- default:
192
- this.currentTheme = new ThemeDefault();
193
- break;
194
- }
195
- }
196
- }
197
- function getTheme(theme) {
198
- if (theme && allowedThemes.indexOf(theme) > -1) {
199
- return theme;
200
- }
201
- return DEFAULT_THEME;
202
- }
203
-
204
- function global$1 () {
205
- setMode(elm => {
206
- let theme = elm.theme || elm.getAttribute('theme');
207
- if (typeof theme === 'string') {
208
- theme = theme.trim();
209
- }
210
- const parsedTheme = getTheme(theme);
211
- if (parsedTheme !== theme) {
212
- elm.setAttribute('theme', parsedTheme);
213
- }
214
- return parsedTheme;
215
- });
216
- }
217
-
218
- const appGlobalScript = global$1 || (() => {});
219
- const globalScripts = appGlobalScript;
220
-
221
139
  /*
222
- Stencil Hydrate Platform v4.43.2 | MIT Licensed | https://stenciljs.com
140
+ Stencil Hydrate Platform v4.43.5 | MIT Licensed | https://stenciljs.com
223
141
  */
224
142
  var __create = Object.create;
225
143
  var __defProp = Object.defineProperty;
@@ -254,7 +172,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
254
172
  __defProp(target, "default", { value: mod, enumerable: true }) ,
255
173
  mod
256
174
  ));
257
- var __publicField = (obj, key, value) => __defNormalProp(obj, key + "" , value);
175
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
258
176
  var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
259
177
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
260
178
  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);
@@ -509,9 +427,9 @@ function getPropertyDescriptor(obj, memberName, getOnly) {
509
427
 
510
428
  // src/utils/es2022-rewire-class-members.ts
511
429
  var reWireGetterSetter = (instance, hostRef) => {
512
- var _a;
430
+ var _a2;
513
431
  const cmpMeta = hostRef.$cmpMeta$;
514
- const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
432
+ const members = Object.entries((_a2 = cmpMeta.$members$) != null ? _a2 : {});
515
433
  members.map(([memberName, [memberFlags]]) => {
516
434
  if ((BUILD.state || BUILD.prop) && (memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {
517
435
  const ogValue = instance[memberName];
@@ -577,7 +495,7 @@ function createStyleSheetIfNeededAndSupported(styles2) {
577
495
  // src/utils/shadow-root.ts
578
496
  var globalStyleSheet;
579
497
  function createShadowRoot(cmpMeta) {
580
- var _a;
498
+ var _a2;
581
499
  const opts = { mode: "open" };
582
500
  if (BUILD.shadowDelegatesFocus) {
583
501
  opts.delegatesFocus = !!(cmpMeta.$flags$ & 16 /* shadowDelegatesFocus */);
@@ -589,7 +507,7 @@ function createShadowRoot(cmpMeta) {
589
507
  }
590
508
  }
591
509
  const shadowRoot = this.attachShadow(opts);
592
- if (globalStyleSheet === void 0) globalStyleSheet = (_a = createStyleSheetIfNeededAndSupported()) != null ? _a : null;
510
+ if (globalStyleSheet === void 0) globalStyleSheet = (_a2 = createStyleSheetIfNeededAndSupported()) != null ? _a2 : null;
593
511
  if (globalStyleSheet) {
594
512
  {
595
513
  shadowRoot.adoptedStyleSheets = [...shadowRoot.adoptedStyleSheets, globalStyleSheet];
@@ -725,8 +643,8 @@ function dispatchSlotChangeEvent(elm) {
725
643
  elm.dispatchEvent(new CustomEvent("slotchange", { bubbles: false, cancelable: false, composed: false }));
726
644
  }
727
645
  function findSlotFromSlottedNode(slottedNode, parentHost) {
728
- var _a;
729
- parentHost = parentHost || ((_a = slottedNode["s-ol"]) == null ? void 0 : _a.parentElement);
646
+ var _a2;
647
+ parentHost = parentHost || ((_a2 = slottedNode["s-ol"]) == null ? void 0 : _a2.parentElement);
730
648
  if (!parentHost) return { slotNode: null, slotName: "" };
731
649
  const slotName = slottedNode["s-sn"] = getSlotName(slottedNode) || "";
732
650
  const childNodes = internalCall(parentHost, "childNodes");
@@ -1017,8 +935,8 @@ var patchNextSibling = (node) => {
1017
935
  patchHostOriginalAccessor("nextSibling", node);
1018
936
  Object.defineProperty(node, "nextSibling", {
1019
937
  get: function() {
1020
- var _a;
1021
- const parentNodes = (_a = this["s-ol"]) == null ? void 0 : _a.parentNode.childNodes;
938
+ var _a2;
939
+ const parentNodes = (_a2 = this["s-ol"]) == null ? void 0 : _a2.parentNode.childNodes;
1022
940
  const index = parentNodes == null ? void 0 : parentNodes.indexOf(this);
1023
941
  if (parentNodes && index > -1) {
1024
942
  return parentNodes[index + 1];
@@ -1032,8 +950,8 @@ var patchNextElementSibling = (element) => {
1032
950
  patchHostOriginalAccessor("nextElementSibling", element);
1033
951
  Object.defineProperty(element, "nextElementSibling", {
1034
952
  get: function() {
1035
- var _a;
1036
- const parentEles = (_a = this["s-ol"]) == null ? void 0 : _a.parentNode.children;
953
+ var _a2;
954
+ const parentEles = (_a2 = this["s-ol"]) == null ? void 0 : _a2.parentNode.children;
1037
955
  const index = parentEles == null ? void 0 : parentEles.indexOf(this);
1038
956
  if (parentEles && index > -1) {
1039
957
  return parentEles[index + 1];
@@ -1047,8 +965,8 @@ var patchPreviousSibling = (node) => {
1047
965
  patchHostOriginalAccessor("previousSibling", node);
1048
966
  Object.defineProperty(node, "previousSibling", {
1049
967
  get: function() {
1050
- var _a;
1051
- const parentNodes = (_a = this["s-ol"]) == null ? void 0 : _a.parentNode.childNodes;
968
+ var _a2;
969
+ const parentNodes = (_a2 = this["s-ol"]) == null ? void 0 : _a2.parentNode.childNodes;
1052
970
  const index = parentNodes == null ? void 0 : parentNodes.indexOf(this);
1053
971
  if (parentNodes && index > -1) {
1054
972
  return parentNodes[index - 1];
@@ -1062,8 +980,8 @@ var patchPreviousElementSibling = (element) => {
1062
980
  patchHostOriginalAccessor("previousElementSibling", element);
1063
981
  Object.defineProperty(element, "previousElementSibling", {
1064
982
  get: function() {
1065
- var _a;
1066
- const parentNodes = (_a = this["s-ol"]) == null ? void 0 : _a.parentNode.children;
983
+ var _a2;
984
+ const parentNodes = (_a2 = this["s-ol"]) == null ? void 0 : _a2.parentNode.children;
1067
985
  const index = parentNodes == null ? void 0 : parentNodes.indexOf(this);
1068
986
  if (parentNodes && index > -1) {
1069
987
  return parentNodes[index - 1];
@@ -1077,8 +995,8 @@ var patchParentNode = (node) => {
1077
995
  patchHostOriginalAccessor("parentNode", node);
1078
996
  Object.defineProperty(node, "parentNode", {
1079
997
  get: function() {
1080
- var _a;
1081
- return ((_a = this["s-ol"]) == null ? void 0 : _a.parentNode) || this.__parentNode;
998
+ var _a2;
999
+ return ((_a2 = this["s-ol"]) == null ? void 0 : _a2.parentNode) || this.__parentNode;
1082
1000
  },
1083
1001
  set: function(value) {
1084
1002
  this.__parentNode = value;
@@ -1208,8 +1126,8 @@ var installDevTools = () => {
1208
1126
 
1209
1127
  // src/utils/query-nonce-meta-tag-content.ts
1210
1128
  function queryNonceMetaTagContent(doc) {
1211
- var _a, _b, _c;
1212
- 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;
1129
+ var _a2, _b, _c;
1130
+ 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;
1213
1131
  }
1214
1132
 
1215
1133
  // src/runtime/styles.ts
@@ -1222,7 +1140,7 @@ var registerStyle = (scopeId2, cssText, allowCS) => {
1222
1140
  styles.set(scopeId2, style);
1223
1141
  };
1224
1142
  var addStyle = (styleContainerNode, cmpMeta, mode) => {
1225
- var _a, _c;
1143
+ var _a2, _c;
1226
1144
  const scopeId2 = getScopeId(cmpMeta, mode);
1227
1145
  const style = styles.get(scopeId2);
1228
1146
  if (!BUILD.attachStyles || !win.document) {
@@ -1243,7 +1161,7 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
1243
1161
  } else if (!appliedStyles.has(scopeId2)) {
1244
1162
  styleElm = win.document.createElement("style");
1245
1163
  styleElm.textContent = style;
1246
- const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(win.document);
1164
+ const nonce = (_a2 = plt.$nonce$) != null ? _a2 : queryNonceMetaTagContent(win.document);
1247
1165
  if (nonce != null) {
1248
1166
  styleElm.setAttribute("nonce", nonce);
1249
1167
  }
@@ -1482,7 +1400,7 @@ var validateInputProperties = (inputElm) => {
1482
1400
 
1483
1401
  // src/runtime/client-hydrate.ts
1484
1402
  var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1485
- var _a, _b, _c, _d;
1403
+ var _a2, _b, _c, _d;
1486
1404
  const endHydrate = createTime("hydrateClient", tagName);
1487
1405
  const shadowRoot = hostElm.shadowRoot;
1488
1406
  const childRenderNodes = [];
@@ -1529,7 +1447,7 @@ var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1529
1447
  if (childRenderNode.$tag$ === "slot") {
1530
1448
  node["s-cr"] = hostElm["s-cr"];
1531
1449
  }
1532
- } else if (((_a = childRenderNode.$tag$) == null ? void 0 : _a.toString().includes("-")) && childRenderNode.$tag$ !== "slot-fb" && !childRenderNode.$elm$.shadowRoot) {
1450
+ } else if (((_a2 = childRenderNode.$tag$) == null ? void 0 : _a2.toString().includes("-")) && childRenderNode.$tag$ !== "slot-fb" && !childRenderNode.$elm$.shadowRoot) {
1533
1451
  const cmpMeta = getHostRef(childRenderNode.$elm$);
1534
1452
  if (cmpMeta) {
1535
1453
  const scopeId3 = getScopeId(
@@ -1879,10 +1797,10 @@ function addSlot(slotName, slotId, childVNode, node, parentVNode, childRenderNod
1879
1797
  parentVNode.$children$[childVNode.$index$] = childVNode;
1880
1798
  }
1881
1799
  var addSlottedNodes = (slottedNodes, slotNodeId, slotName, slotNode, hostId) => {
1882
- var _a, _b;
1800
+ var _a2, _b;
1883
1801
  let slottedNode = slotNode.nextSibling;
1884
1802
  slottedNodes[slotNodeId] = slottedNodes[slotNodeId] || [];
1885
- if (!slottedNode || ((_a = slottedNode.nodeValue) == null ? void 0 : _a.startsWith(SLOT_NODE_ID + "."))) return;
1803
+ if (!slottedNode || ((_a2 = slottedNode.nodeValue) == null ? void 0 : _a2.startsWith(SLOT_NODE_ID + "."))) return;
1886
1804
  do {
1887
1805
  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 */))) {
1888
1806
  slottedNode["s-sn"] = slotName;
@@ -2314,8 +2232,33 @@ var scopeCss = (cssText, scopeId2, commentOriginalSelector) => {
2314
2232
  var computeMode = (elm) => modeResolutionChain.map((h2) => h2(elm)).find((m) => !!m);
2315
2233
  var setMode = (handler) => modeResolutionChain.push(handler);
2316
2234
  var getMode = (ref) => {
2317
- var _a;
2318
- return (_a = getHostRef(ref)) == null ? void 0 : _a.$modeName$;
2235
+ var _a2;
2236
+ return (_a2 = getHostRef(ref)) == null ? void 0 : _a2.$modeName$;
2237
+ };
2238
+
2239
+ // src/runtime/normalize-watchers.ts
2240
+ var normalizeWatchers = (raw) => {
2241
+ if (!raw) return void 0;
2242
+ const keys = Object.keys(raw);
2243
+ if (keys.length === 0) return void 0;
2244
+ let hasLegacy = false;
2245
+ for (const propName of keys) {
2246
+ if (hasLegacy) break;
2247
+ for (const h2 of raw[propName]) {
2248
+ if (typeof h2 === "string") {
2249
+ hasLegacy = true;
2250
+ break;
2251
+ }
2252
+ }
2253
+ }
2254
+ if (!hasLegacy) return raw;
2255
+ const out = {};
2256
+ for (const propName of keys) {
2257
+ out[propName] = raw[propName].map(
2258
+ (h2) => typeof h2 === "string" ? { [h2]: 0 } : h2
2259
+ );
2260
+ }
2261
+ return out;
2319
2262
  };
2320
2263
 
2321
2264
  // src/utils/remote-value.ts
@@ -2414,11 +2357,19 @@ var RemoteValue = class _RemoteValue {
2414
2357
  };
2415
2358
 
2416
2359
  // src/utils/serialize.ts
2360
+ function decodeBase64Unicode(base64) {
2361
+ const binary = atob(base64);
2362
+ const bytes = new Uint8Array(binary.length);
2363
+ for (let i2 = 0; i2 < binary.length; i2++) {
2364
+ bytes[i2] = binary.charCodeAt(i2);
2365
+ }
2366
+ return new TextDecoder().decode(bytes);
2367
+ }
2417
2368
  function deserializeProperty(value) {
2418
2369
  if (typeof value !== "string" || !value.startsWith(SERIALIZED_PREFIX)) {
2419
2370
  return value;
2420
2371
  }
2421
- return RemoteValue.fromLocalValue(JSON.parse(atob(value.slice(SERIALIZED_PREFIX.length))));
2372
+ return RemoteValue.fromLocalValue(JSON.parse(decodeBase64Unicode(value.slice(SERIALIZED_PREFIX.length))));
2422
2373
  }
2423
2374
 
2424
2375
  // src/runtime/parse-property-value.ts
@@ -2446,8 +2397,8 @@ var parsePropertyValue = (propValue, propType, isFormAssociated) => {
2446
2397
  return propValue;
2447
2398
  };
2448
2399
  var getElement = (ref) => {
2449
- var _a;
2450
- return BUILD.lazyLoad ? (_a = getHostRef(ref)) == null ? void 0 : _a.$hostElement$ : ref;
2400
+ var _a2;
2401
+ return BUILD.lazyLoad ? (_a2 = getHostRef(ref)) == null ? void 0 : _a2.$hostElement$ : ref;
2451
2402
  };
2452
2403
 
2453
2404
  // src/runtime/event-emitter.ts
@@ -2676,7 +2627,7 @@ var isSvgMode = false;
2676
2627
  var refCallbacksToRemove = [];
2677
2628
  var refCallbacksToAttach = [];
2678
2629
  var createElm = (oldParentVNode, newParentVNode, childIndex) => {
2679
- var _a;
2630
+ var _a2;
2680
2631
  const newVNode2 = newParentVNode.$children$[childIndex];
2681
2632
  let i2 = 0;
2682
2633
  let elm;
@@ -2749,7 +2700,7 @@ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
2749
2700
  elm["s-sr"] = true;
2750
2701
  elm["s-cr"] = contentRef;
2751
2702
  elm["s-sn"] = newVNode2.$name$ || "";
2752
- elm["s-rf"] = (_a = newVNode2.$attrs$) == null ? void 0 : _a.ref;
2703
+ elm["s-rf"] = (_a2 = newVNode2.$attrs$) == null ? void 0 : _a2.ref;
2753
2704
  patchSlotNode(elm);
2754
2705
  oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
2755
2706
  if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {
@@ -3096,12 +3047,12 @@ var insertBefore = (parent, newNode, reference, isInitialLoad) => {
3096
3047
  }
3097
3048
  };
3098
3049
  function addRemoveSlotScopedClass(reference, slotNode, newParent, oldParent) {
3099
- var _a, _b;
3050
+ var _a2, _b;
3100
3051
  let scopeId2;
3101
3052
  if (reference && typeof slotNode["s-sn"] === "string" && !!slotNode["s-sr"] && reference.parentNode && reference.parentNode["s-sc"] && (scopeId2 = slotNode["s-si"] || reference.parentNode["s-sc"])) {
3102
3053
  const scopeName = slotNode["s-sn"];
3103
3054
  const hostName = slotNode["s-hn"];
3104
- (_a = newParent.classList) == null ? void 0 : _a.add(scopeId2 + "-s");
3055
+ (_a2 = newParent.classList) == null ? void 0 : _a2.add(scopeId2 + "-s");
3105
3056
  if (oldParent && ((_b = oldParent.classList) == null ? void 0 : _b.contains(scopeId2 + "-s"))) {
3106
3057
  let child = (oldParent.__childNodes || oldParent.childNodes)[0];
3107
3058
  let found = false;
@@ -3117,7 +3068,7 @@ function addRemoveSlotScopedClass(reference, slotNode, newParent, oldParent) {
3117
3068
  }
3118
3069
  }
3119
3070
  var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
3120
- var _a, _b, _c, _d, _e;
3071
+ var _a2, _b, _c, _d, _e;
3121
3072
  const hostElm = hostRef.$hostElement$;
3122
3073
  const cmpMeta = hostRef.$cmpMeta$;
3123
3074
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -3189,7 +3140,7 @@ render() {
3189
3140
  const nodeToRelocate = relocateData.$nodeToRelocate$;
3190
3141
  const slotRefNode = relocateData.$slotRefNode$;
3191
3142
  if (nodeToRelocate.nodeType === 1 /* ElementNode */ && isInitialLoad) {
3192
- nodeToRelocate["s-ih"] = (_a = nodeToRelocate.hidden) != null ? _a : false;
3143
+ nodeToRelocate["s-ih"] = (_a2 = nodeToRelocate.hidden) != null ? _a2 : false;
3193
3144
  }
3194
3145
  if (slotRefNode) {
3195
3146
  const parentNodeRef = slotRefNode.parentNode;
@@ -3266,14 +3217,14 @@ render() {
3266
3217
  flushQueuedRefCallbacks();
3267
3218
  };
3268
3219
  var slotReferenceDebugNode = (slotVNode) => {
3269
- var _a;
3270
- return (_a = win.document) == null ? void 0 : _a.createComment(
3220
+ var _a2;
3221
+ return (_a2 = win.document) == null ? void 0 : _a2.createComment(
3271
3222
  `<slot${slotVNode.$name$ ? ' name="' + slotVNode.$name$ + '"' : ""}> (host=${hostTagName.toLowerCase()})`
3272
3223
  );
3273
3224
  };
3274
3225
  var originalLocationDebugNode = (nodeToRelocate) => {
3275
- var _a;
3276
- return (_a = win.document) == null ? void 0 : _a.createComment(
3226
+ var _a2;
3227
+ return (_a2 = win.document) == null ? void 0 : _a2.createComment(
3277
3228
  `org-location for ` + (nodeToRelocate.localName ? `<${nodeToRelocate.localName}> (host=${nodeToRelocate["s-hn"]})` : `[${nodeToRelocate.textContent}]`)
3278
3229
  );
3279
3230
  };
@@ -3353,7 +3304,7 @@ var enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.then
3353
3304
  }) : fn();
3354
3305
  var isPromisey = (maybePromise) => maybePromise instanceof Promise || maybePromise && maybePromise.then && typeof maybePromise.then === "function";
3355
3306
  var updateComponent = async (hostRef, instance, isInitialLoad) => {
3356
- var _a;
3307
+ var _a2;
3357
3308
  const elm = hostRef.$hostElement$;
3358
3309
  const endUpdate = createTime("update", hostRef.$cmpMeta$.$tagName$);
3359
3310
  const rc = elm["s-rc"];
@@ -3394,7 +3345,7 @@ var updateComponent = async (hostRef, instance, isInitialLoad) => {
3394
3345
  endRender();
3395
3346
  endUpdate();
3396
3347
  if (BUILD.asyncLoading) {
3397
- const childrenPromises = (_a = elm["s-p"]) != null ? _a : [];
3348
+ const childrenPromises = (_a2 = elm["s-p"]) != null ? _a2 : [];
3398
3349
  const postUpdate = () => postUpdateComponent(hostRef);
3399
3350
  if (childrenPromises.length === 0) {
3400
3351
  postUpdate();
@@ -3505,10 +3456,10 @@ var postUpdateComponent = (hostRef) => {
3505
3456
  }
3506
3457
  };
3507
3458
  var forceUpdate$1 = (ref) => {
3508
- var _a;
3459
+ var _a2;
3509
3460
  if (BUILD.updatable && (Build.isBrowser || Build.isTesting)) {
3510
3461
  const hostRef = getHostRef(ref);
3511
- const isConnected = (_a = hostRef == null ? void 0 : hostRef.$hostElement$) == null ? void 0 : _a.isConnected;
3462
+ const isConnected = (_a2 = hostRef == null ? void 0 : hostRef.$hostElement$) == null ? void 0 : _a2.isConnected;
3512
3463
  if (isConnected && (hostRef.$flags$ & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
3513
3464
  scheduleUpdate(hostRef, false);
3514
3465
  }
@@ -3517,13 +3468,13 @@ var forceUpdate$1 = (ref) => {
3517
3468
  return false;
3518
3469
  };
3519
3470
  var appDidLoad = (who) => {
3520
- var _a;
3471
+ var _a2;
3521
3472
  if (BUILD.asyncQueue) {
3522
3473
  plt.$flags$ |= 2 /* appLoaded */;
3523
3474
  }
3524
3475
  nextTick(() => emitEvent(win, "appload", { detail: { namespace: NAMESPACE } }));
3525
3476
  if (BUILD.hydrateClientSide) {
3526
- if ((_a = plt.$orgLocNodes$) == null ? void 0 : _a.size) {
3477
+ if ((_a2 = plt.$orgLocNodes$) == null ? void 0 : _a2.size) {
3527
3478
  plt.$orgLocNodes$.clear();
3528
3479
  }
3529
3480
  }
@@ -3553,8 +3504,8 @@ var emitLifecycleEvent = (elm, lifecycleName) => {
3553
3504
  }
3554
3505
  };
3555
3506
  var addHydratedFlag = (elm) => {
3556
- var _a, _b;
3557
- return BUILD.hydratedClass ? elm.classList.add((_a = BUILD.hydratedSelectorName) != null ? _a : "hydrated") : BUILD.hydratedAttribute ? elm.setAttribute((_b = BUILD.hydratedSelectorName) != null ? _b : "hydrated", "") : void 0;
3507
+ var _a2, _b;
3508
+ return BUILD.hydratedClass ? elm.classList.add((_a2 = BUILD.hydratedSelectorName) != null ? _a2 : "hydrated") : BUILD.hydratedAttribute ? elm.setAttribute((_b = BUILD.hydratedSelectorName) != null ? _b : "hydrated", "") : void 0;
3558
3509
  };
3559
3510
  var serverSideConnected = (elm) => {
3560
3511
  const children = elm.children;
@@ -3653,7 +3604,7 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
3653
3604
 
3654
3605
  // src/runtime/proxy-component.ts
3655
3606
  var proxyComponent = (Cstr, cmpMeta, flags) => {
3656
- var _a, _b;
3607
+ var _a2, _b;
3657
3608
  const prototype = Cstr.prototype;
3658
3609
  if (BUILD.isTesting) {
3659
3610
  if (prototype.__stencilAugmented) {
@@ -3666,11 +3617,11 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3666
3617
  const originalFormAssociatedCallback = prototype[cbName];
3667
3618
  Object.defineProperty(prototype, cbName, {
3668
3619
  value(...args) {
3669
- var _a2;
3620
+ var _a3;
3670
3621
  const hostRef = getHostRef(this);
3671
3622
  const instance = BUILD.lazyLoad ? hostRef == null ? void 0 : hostRef.$lazyInstance$ : this;
3672
3623
  if (!instance) {
3673
- (_a2 = hostRef == null ? void 0 : hostRef.$onReadyPromise$) == null ? void 0 : _a2.then((asyncInstance) => {
3624
+ (_a3 = hostRef == null ? void 0 : hostRef.$onReadyPromise$) == null ? void 0 : _a3.then((asyncInstance) => {
3674
3625
  const cb = asyncInstance[cbName];
3675
3626
  typeof cb === "function" && cb.call(asyncInstance, ...args);
3676
3627
  });
@@ -3685,7 +3636,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3685
3636
  if (BUILD.member && cmpMeta.$members$ || BUILD.propChangeCallback) {
3686
3637
  if (BUILD.propChangeCallback) {
3687
3638
  if (Cstr.watchers && !cmpMeta.$watchers$) {
3688
- cmpMeta.$watchers$ = Cstr.watchers;
3639
+ cmpMeta.$watchers$ = normalizeWatchers(Cstr.watchers);
3689
3640
  }
3690
3641
  if (Cstr.deserializers && !cmpMeta.$deserializers$) {
3691
3642
  cmpMeta.$deserializers$ = Cstr.deserializers;
@@ -3694,7 +3645,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3694
3645
  cmpMeta.$serializers$ = Cstr.serializers;
3695
3646
  }
3696
3647
  }
3697
- const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
3648
+ const members = Object.entries((_a2 = cmpMeta.$members$) != null ? _a2 : {});
3698
3649
  members.map(([memberName, [memberFlags]]) => {
3699
3650
  if ((BUILD.prop || BUILD.state) && (memberFlags & 31 /* Prop */ || (!BUILD.lazyLoad || flags & 2 /* proxyState */) && memberFlags & 32 /* State */)) {
3700
3651
  const { get: origGetter, set: origSetter } = getPropertyDescriptor(prototype, memberName) || {};
@@ -3783,11 +3734,11 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3783
3734
  } else if (BUILD.lazyLoad && BUILD.method && flags & 1 /* isElementConstructor */ && memberFlags & 64 /* Method */) {
3784
3735
  Object.defineProperty(prototype, memberName, {
3785
3736
  value(...args) {
3786
- var _a2;
3737
+ var _a3;
3787
3738
  const ref = getHostRef(this);
3788
- return (_a2 = ref == null ? void 0 : ref.$onInstancePromise$) == null ? void 0 : _a2.then(() => {
3789
- var _a3;
3790
- return (_a3 = ref.$lazyInstance$) == null ? void 0 : _a3[memberName](...args);
3739
+ return (_a3 = ref == null ? void 0 : ref.$onInstancePromise$) == null ? void 0 : _a3.then(() => {
3740
+ var _a4;
3741
+ return (_a4 = ref.$lazyInstance$) == null ? void 0 : _a4[memberName](...args);
3791
3742
  });
3792
3743
  }
3793
3744
  });
@@ -3797,7 +3748,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3797
3748
  const attrNameToPropName = /* @__PURE__ */ new Map();
3798
3749
  prototype.attributeChangedCallback = function(attrName, oldValue, newValue) {
3799
3750
  plt.jmp(() => {
3800
- var _a2;
3751
+ var _a3;
3801
3752
  const propName = attrNameToPropName.get(attrName);
3802
3753
  const hostRef = getHostRef(this);
3803
3754
  if (BUILD.serializer && hostRef.$serializerValues$.has(propName) && hostRef.$serializerValues$.get(propName) === newValue) {
@@ -3837,7 +3788,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3837
3788
  if (hostRef && flags2 && !(flags2 & 8 /* isConstructingInstance */) && newValue !== oldValue) {
3838
3789
  const elm = BUILD.lazyLoad ? hostRef.$hostElement$ : this;
3839
3790
  const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;
3840
- const entry = (_a2 = cmpMeta.$watchers$) == null ? void 0 : _a2[attrName];
3791
+ const entry = (_a3 = cmpMeta.$watchers$) == null ? void 0 : _a3[attrName];
3841
3792
  entry == null ? void 0 : entry.forEach((watcher) => {
3842
3793
  const [[watchMethodName, watcherFlags]] = Object.entries(watcher);
3843
3794
  if (instance[watchMethodName] != null && (flags2 & 128 /* isWatchReady */ || watcherFlags & 1 /* Immediate */)) {
@@ -3848,11 +3799,13 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3848
3799
  return;
3849
3800
  }
3850
3801
  const propFlags = members.find(([m]) => m === propName);
3851
- if (propFlags && propFlags[1][0] & 4 /* Boolean */) {
3802
+ const isBooleanTarget = propFlags && propFlags[1][0] & 4 /* Boolean */;
3803
+ const isSpuriousBooleanRemoval = isBooleanTarget && newValue === null && this[propName] === void 0;
3804
+ if (isBooleanTarget) {
3852
3805
  newValue = newValue === null || newValue === "false" ? false : true;
3853
3806
  }
3854
3807
  const propDesc = Object.getOwnPropertyDescriptor(prototype, propName);
3855
- if (newValue != this[propName] && (!propDesc.get || !!propDesc.set)) {
3808
+ if (!isSpuriousBooleanRemoval && newValue != this[propName] && (!propDesc.get || !!propDesc.set)) {
3856
3809
  this[propName] = newValue;
3857
3810
  }
3858
3811
  });
@@ -3861,11 +3814,11 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
3861
3814
  /* @__PURE__ */ new Set([
3862
3815
  ...Object.keys((_b = cmpMeta.$watchers$) != null ? _b : {}),
3863
3816
  ...members.filter(([_, m]) => m[0] & 31 /* HasAttribute */).map(([propName, m]) => {
3864
- var _a2;
3817
+ var _a3;
3865
3818
  const attrName = m[1] || propName;
3866
3819
  attrNameToPropName.set(attrName, propName);
3867
3820
  if (BUILD.reflect && m[0] & 512 /* ReflectAttr */) {
3868
- (_a2 = cmpMeta.$attrsToReflect$) == null ? void 0 : _a2.push([propName, attrName]);
3821
+ (_a3 = cmpMeta.$attrsToReflect$) == null ? void 0 : _a3.push([propName, attrName]);
3869
3822
  }
3870
3823
  return attrName;
3871
3824
  })
@@ -3900,7 +3853,7 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
3900
3853
  }
3901
3854
  if (BUILD.member && !Cstr.isProxied) {
3902
3855
  if (BUILD.propChangeCallback) {
3903
- cmpMeta.$watchers$ = Cstr.watchers;
3856
+ cmpMeta.$watchers$ = normalizeWatchers(Cstr.watchers);
3904
3857
  cmpMeta.$serializers$ = Cstr.serializers;
3905
3858
  cmpMeta.$deserializers$ = Cstr.deserializers;
3906
3859
  }
@@ -4114,7 +4067,7 @@ var proxyCustomElement = (Cstr, compactMeta) => {
4114
4067
  cmpMeta.$listeners$ = compactMeta[3];
4115
4068
  }
4116
4069
  if (BUILD.propChangeCallback) {
4117
- cmpMeta.$watchers$ = Cstr.$watchers$;
4070
+ cmpMeta.$watchers$ = normalizeWatchers(Cstr.$watchers$);
4118
4071
  cmpMeta.$deserializers$ = Cstr.$deserializers$;
4119
4072
  cmpMeta.$serializers$ = Cstr.$serializers$;
4120
4073
  }
@@ -4234,7 +4187,7 @@ var hmrStart = (hostElement, cmpMeta, hmrVersionId) => {
4234
4187
 
4235
4188
  // src/runtime/bootstrap-lazy.ts
4236
4189
  var bootstrapLazy = (lazyBundles, options = {}) => {
4237
- var _a;
4190
+ var _a2;
4238
4191
  if (BUILD.profile && performance.mark) {
4239
4192
  performance.mark("st:app:start");
4240
4193
  }
@@ -4269,7 +4222,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
4269
4222
  let hasSlotRelocation = false;
4270
4223
  lazyBundles.map((lazyBundle) => {
4271
4224
  lazyBundle[1].map((compactMeta) => {
4272
- var _a2, _b, _c;
4225
+ var _a3, _b;
4273
4226
  const cmpMeta = {
4274
4227
  $flags$: compactMeta[0],
4275
4228
  $tagName$: compactMeta[1],
@@ -4289,9 +4242,9 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
4289
4242
  cmpMeta.$attrsToReflect$ = [];
4290
4243
  }
4291
4244
  if (BUILD.propChangeCallback) {
4292
- cmpMeta.$watchers$ = (_a2 = compactMeta[4]) != null ? _a2 : {};
4293
- cmpMeta.$serializers$ = (_b = compactMeta[5]) != null ? _b : {};
4294
- cmpMeta.$deserializers$ = (_c = compactMeta[6]) != null ? _c : {};
4245
+ cmpMeta.$watchers$ = normalizeWatchers(compactMeta[4]);
4246
+ cmpMeta.$serializers$ = (_a3 = compactMeta[5]) != null ? _a3 : {};
4247
+ cmpMeta.$deserializers$ = (_b = compactMeta[6]) != null ? _b : {};
4295
4248
  }
4296
4249
  if (BUILD.shadowDom && !supportsShadow && cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {
4297
4250
  cmpMeta.$flags$ |= 8 /* needsShadowDomShim */;
@@ -4344,7 +4297,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
4344
4297
  disconnectedCallback() {
4345
4298
  plt.jmp(() => disconnectedCallback(this));
4346
4299
  plt.raf(() => {
4347
- var _a3;
4300
+ var _a4;
4348
4301
  const hostRef = getHostRef(this);
4349
4302
  if (!hostRef) {
4350
4303
  return;
@@ -4353,14 +4306,14 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
4353
4306
  if (i2 > -1) {
4354
4307
  deferredConnectedCallbacks.splice(i2, 1);
4355
4308
  }
4356
- if (((_a3 = hostRef == null ? void 0 : hostRef.$vnode$) == null ? void 0 : _a3.$elm$) instanceof Node && !hostRef.$vnode$.$elm$.isConnected) {
4309
+ if (((_a4 = hostRef == null ? void 0 : hostRef.$vnode$) == null ? void 0 : _a4.$elm$) instanceof Node && !hostRef.$vnode$.$elm$.isConnected) {
4357
4310
  delete hostRef.$vnode$.$elm$;
4358
4311
  }
4359
4312
  });
4360
4313
  }
4361
4314
  componentOnReady() {
4362
- var _a3;
4363
- return (_a3 = getHostRef(this)) == null ? void 0 : _a3.$onReadyPromise$;
4315
+ var _a4;
4316
+ return (_a4 = getHostRef(this)) == null ? void 0 : _a4.$onReadyPromise$;
4364
4317
  }
4365
4318
  };
4366
4319
  if (!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) && cmpMeta.$flags$ & 256 /* hasSlot */) {
@@ -4410,7 +4363,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
4410
4363
  }
4411
4364
  if (dataStyles.innerHTML.length) {
4412
4365
  dataStyles.setAttribute("data-styles", "");
4413
- const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(win.document);
4366
+ const nonce = (_a2 = plt.$nonce$) != null ? _a2 : queryNonceMetaTagContent(win.document);
4414
4367
  if (nonce != null) {
4415
4368
  dataStyles.setAttribute("nonce", nonce);
4416
4369
  }
@@ -4451,11 +4404,11 @@ var addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) =>
4451
4404
  }
4452
4405
  };
4453
4406
  var hostListenerProxy = (hostRef, methodName) => (ev) => {
4454
- var _a;
4407
+ var _a2;
4455
4408
  try {
4456
4409
  if (BUILD.lazyLoad) {
4457
4410
  if (hostRef.$flags$ & 256 /* isListenReady */) {
4458
- (_a = hostRef.$lazyInstance$) == null ? void 0 : _a[methodName](ev);
4411
+ (_a2 = hostRef.$lazyInstance$) == null ? void 0 : _a2[methodName](ev);
4459
4412
  } else {
4460
4413
  (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);
4461
4414
  }
@@ -4565,7 +4518,7 @@ var insertVdomAnnotations = (doc, staticComponents) => {
4565
4518
  const orgLocationNodes = [];
4566
4519
  parseVNodeAnnotations(doc, doc.body, docData, orgLocationNodes);
4567
4520
  orgLocationNodes.forEach((orgLocationNode) => {
4568
- var _a;
4521
+ var _a2;
4569
4522
  if (orgLocationNode != null && orgLocationNode["s-nr"]) {
4570
4523
  const nodeRef = orgLocationNode["s-nr"];
4571
4524
  let hostId = nodeRef["s-host-id"];
@@ -4583,7 +4536,7 @@ var insertVdomAnnotations = (doc, staticComponents) => {
4583
4536
  }
4584
4537
  } else if (nodeRef.nodeType === 3 /* TextNode */) {
4585
4538
  if (hostId === 0) {
4586
- const textContent = (_a = nodeRef.nodeValue) == null ? void 0 : _a.trim();
4539
+ const textContent = (_a2 = nodeRef.nodeValue) == null ? void 0 : _a2.trim();
4587
4540
  if (textContent === "") {
4588
4541
  orgLocationNode.remove();
4589
4542
  return;
@@ -4613,7 +4566,7 @@ var insertVdomAnnotations = (doc, staticComponents) => {
4613
4566
  }
4614
4567
  };
4615
4568
  var parseVNodeAnnotations = (doc, node, docData, orgLocationNodes) => {
4616
- var _a;
4569
+ var _a2;
4617
4570
  if (node == null) {
4618
4571
  return;
4619
4572
  }
@@ -4621,7 +4574,7 @@ var parseVNodeAnnotations = (doc, node, docData, orgLocationNodes) => {
4621
4574
  orgLocationNodes.push(node);
4622
4575
  }
4623
4576
  if (node.nodeType === 1 /* ElementNode */) {
4624
- const childNodes = [...Array.from(node.childNodes), ...Array.from(((_a = node.shadowRoot) == null ? void 0 : _a.childNodes) || [])];
4577
+ const childNodes = [...Array.from(node.childNodes), ...Array.from(((_a2 = node.shadowRoot) == null ? void 0 : _a2.childNodes) || [])];
4625
4578
  childNodes.forEach((childNode) => {
4626
4579
  const hostRef = getHostRef(childNode);
4627
4580
  if (hostRef != null && !docData.staticComponents.has(childNode.nodeName.toLowerCase())) {
@@ -4847,8 +4800,35 @@ var unescape = (s, { windowsPathsNoEscape = false } = {}) => {
4847
4800
  };
4848
4801
 
4849
4802
  // node_modules/minimatch/dist/esm/ast.js
4803
+ var _a;
4850
4804
  var types = /* @__PURE__ */ new Set(["!", "?", "+", "*", "@"]);
4851
4805
  var isExtglobType = (c) => types.has(c);
4806
+ var isExtglobAST = (c) => isExtglobType(c.type);
4807
+ var adoptionMap = /* @__PURE__ */ new Map([
4808
+ ["!", ["@"]],
4809
+ ["?", ["?", "@"]],
4810
+ ["@", ["@"]],
4811
+ ["*", ["*", "+", "?", "@"]],
4812
+ ["+", ["+", "@"]]
4813
+ ]);
4814
+ var adoptionWithSpaceMap = /* @__PURE__ */ new Map([
4815
+ ["!", ["?"]],
4816
+ ["@", ["?"]],
4817
+ ["+", ["?", "*"]]
4818
+ ]);
4819
+ var adoptionAnyMap = /* @__PURE__ */ new Map([
4820
+ ["!", ["?", "@"]],
4821
+ ["?", ["?", "@"]],
4822
+ ["@", ["?", "@"]],
4823
+ ["*", ["*", "+", "?", "@"]],
4824
+ ["+", ["+", "@", "?", "*"]]
4825
+ ]);
4826
+ var usurpMap = /* @__PURE__ */ new Map([
4827
+ ["!", /* @__PURE__ */ new Map([["!", "@"]])],
4828
+ ["?", /* @__PURE__ */ new Map([["*", "*"], ["+", "*"]])],
4829
+ ["@", /* @__PURE__ */ new Map([["!", "!"], ["?", "?"], ["@", "@"], ["*", "*"], ["+", "+"]])],
4830
+ ["+", /* @__PURE__ */ new Map([["?", "*"], ["*", "*"]])]
4831
+ ]);
4852
4832
  var startNoTraversal = "(?!(?:^|/)\\.\\.?(?:$|/))";
4853
4833
  var startNoDot = "(?!\\.)";
4854
4834
  var addPatternStart = /* @__PURE__ */ new Set(["[", "."]);
@@ -4858,8 +4838,8 @@ var regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
4858
4838
  var qmark = "[^/]";
4859
4839
  var star = qmark + "*?";
4860
4840
  var starNoEmpty = qmark + "+?";
4861
- var _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, partsToRegExp_fn, parseGlob_fn;
4862
- var _AST = class _AST {
4841
+ 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;
4842
+ var AST = class {
4863
4843
  constructor(type, parent, options = {}) {
4864
4844
  __privateAdd(this, _AST_instances);
4865
4845
  __publicField(this, "type");
@@ -4912,44 +4892,44 @@ var _AST = class _AST {
4912
4892
  for (const p of parts) {
4913
4893
  if (p === "")
4914
4894
  continue;
4915
- if (typeof p !== "string" && !(p instanceof _AST && __privateGet(p, _parent) === this)) {
4895
+ if (typeof p !== "string" && !(p instanceof _a && __privateGet(p, _parent) === this)) {
4916
4896
  throw new Error("invalid part: " + p);
4917
4897
  }
4918
4898
  __privateGet(this, _parts).push(p);
4919
4899
  }
4920
4900
  }
4921
4901
  toJSON() {
4922
- var _a;
4902
+ var _a2;
4923
4903
  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())];
4924
4904
  if (this.isStart() && !this.type)
4925
4905
  ret.unshift([]);
4926
- if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === "!")) {
4906
+ if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")) {
4927
4907
  ret.push({});
4928
4908
  }
4929
4909
  return ret;
4930
4910
  }
4931
4911
  isStart() {
4932
- var _a;
4912
+ var _a2;
4933
4913
  if (__privateGet(this, _root) === this)
4934
4914
  return true;
4935
- if (!((_a = __privateGet(this, _parent)) == null ? void 0 : _a.isStart()))
4915
+ if (!((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.isStart()))
4936
4916
  return false;
4937
4917
  if (__privateGet(this, _parentIndex) === 0)
4938
4918
  return true;
4939
4919
  const p = __privateGet(this, _parent);
4940
4920
  for (let i2 = 0; i2 < __privateGet(this, _parentIndex); i2++) {
4941
4921
  const pp = __privateGet(p, _parts)[i2];
4942
- if (!(pp instanceof _AST && pp.type === "!")) {
4922
+ if (!(pp instanceof _a && pp.type === "!")) {
4943
4923
  return false;
4944
4924
  }
4945
4925
  }
4946
4926
  return true;
4947
4927
  }
4948
4928
  isEnd() {
4949
- var _a, _b, _c;
4929
+ var _a2, _b, _c;
4950
4930
  if (__privateGet(this, _root) === this)
4951
4931
  return true;
4952
- if (((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === "!")
4932
+ if (((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")
4953
4933
  return true;
4954
4934
  if (!((_b = __privateGet(this, _parent)) == null ? void 0 : _b.isEnd()))
4955
4935
  return false;
@@ -4965,16 +4945,16 @@ var _AST = class _AST {
4965
4945
  this.push(part.clone(this));
4966
4946
  }
4967
4947
  clone(parent) {
4968
- const c = new _AST(this.type, parent);
4948
+ const c = new _a(this.type, parent);
4969
4949
  for (const p of __privateGet(this, _parts)) {
4970
4950
  c.copyIn(p);
4971
4951
  }
4972
4952
  return c;
4973
4953
  }
4974
4954
  static fromGlob(pattern, options = {}) {
4975
- var _a;
4976
- const ast = new _AST(null, void 0, options);
4977
- __privateMethod(_a = _AST, _AST_static, parseAST_fn).call(_a, pattern, ast, 0, options);
4955
+ var _a2;
4956
+ const ast = new _a(null, void 0, options);
4957
+ __privateMethod(_a2 = _a, _AST_static, parseAST_fn).call(_a2, pattern, ast, 0, options, 0);
4978
4958
  return ast;
4979
4959
  }
4980
4960
  // returns the regular expression if there's magic, or the unescaped
@@ -5067,15 +5047,17 @@ var _AST = class _AST {
5067
5047
  // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root
5068
5048
  // or start or whatever) and prepend ^ or / at the Regexp construction.
5069
5049
  toRegExpSource(allowDot) {
5070
- var _a;
5050
+ var _a2;
5071
5051
  const dot = allowDot != null ? allowDot : !!__privateGet(this, _options).dot;
5072
- if (__privateGet(this, _root) === this)
5052
+ if (__privateGet(this, _root) === this) {
5053
+ __privateMethod(this, _AST_instances, flatten_fn).call(this);
5073
5054
  __privateMethod(this, _AST_instances, fillNegs_fn).call(this);
5074
- if (!this.type) {
5055
+ }
5056
+ if (!isExtglobAST(this)) {
5075
5057
  const noEmpty = this.isStart() && this.isEnd();
5076
5058
  const src = __privateGet(this, _parts).map((p) => {
5077
- var _a2;
5078
- const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a2 = _AST, _AST_static, parseGlob_fn).call(_a2, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
5059
+ var _a3;
5060
+ const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a3 = _a, _AST_static, parseGlob_fn).call(_a3, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
5079
5061
  __privateSet(this, _hasMagic, __privateGet(this, _hasMagic) || hasMagic);
5080
5062
  __privateSet(this, _uflag, __privateGet(this, _uflag) || uflag);
5081
5063
  return re;
@@ -5098,7 +5080,7 @@ var _AST = class _AST {
5098
5080
  }
5099
5081
  }
5100
5082
  let end = "";
5101
- if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === "!") {
5083
+ if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!") {
5102
5084
  end = "(?:$|\\/)";
5103
5085
  }
5104
5086
  const final2 = start2 + src + end;
@@ -5114,9 +5096,10 @@ var _AST = class _AST {
5114
5096
  let body = __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, dot);
5115
5097
  if (this.isStart() && this.isEnd() && !body && this.type !== "!") {
5116
5098
  const s = this.toString();
5117
- __privateSet(this, _parts, [s]);
5118
- this.type = null;
5119
- __privateSet(this, _hasMagic, void 0);
5099
+ const me = this;
5100
+ __privateSet(me, _parts, [s]);
5101
+ me.type = null;
5102
+ __privateSet(me, _hasMagic, void 0);
5120
5103
  return [s, unescape(this.toString()), false, false];
5121
5104
  }
5122
5105
  let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ? "" : __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, true);
@@ -5185,8 +5168,9 @@ fillNegs_fn = function() {
5185
5168
  return this;
5186
5169
  };
5187
5170
  _AST_static = new WeakSet();
5188
- parseAST_fn = function(str, ast, pos, opt) {
5189
- var _a, _b;
5171
+ parseAST_fn = function(str, ast, pos, opt, extDepth) {
5172
+ var _a2, _b, _c, _d, _e;
5173
+ const maxDepth = (_a2 = opt.maxExtglobRecursion) != null ? _a2 : 2;
5190
5174
  let escaping = false;
5191
5175
  let inBrace = false;
5192
5176
  let braceStart = -1;
@@ -5218,11 +5202,12 @@ parseAST_fn = function(str, ast, pos, opt) {
5218
5202
  acc2 += c;
5219
5203
  continue;
5220
5204
  }
5221
- if (!opt.noext && isExtglobType(c) && str.charAt(i3) === "(") {
5205
+ const doRecurse = !opt.noext && isExtglobType(c) && str.charAt(i3) === "(" && extDepth <= maxDepth;
5206
+ if (doRecurse) {
5222
5207
  ast.push(acc2);
5223
5208
  acc2 = "";
5224
- const ext2 = new _AST(c, ast);
5225
- i3 = __privateMethod(_a = _AST, _AST_static, parseAST_fn).call(_a, str, ext2, i3, opt);
5209
+ const ext2 = new _a(c, ast);
5210
+ i3 = __privateMethod(_b = _a, _AST_static, parseAST_fn).call(_b, str, ext2, i3, opt, extDepth + 1);
5226
5211
  ast.push(ext2);
5227
5212
  continue;
5228
5213
  }
@@ -5232,7 +5217,7 @@ parseAST_fn = function(str, ast, pos, opt) {
5232
5217
  return i3;
5233
5218
  }
5234
5219
  let i2 = pos + 1;
5235
- let part = new _AST(null, ast);
5220
+ let part = new _a(null, ast);
5236
5221
  const parts = [];
5237
5222
  let acc = "";
5238
5223
  while (i2 < str.length) {
@@ -5259,19 +5244,22 @@ parseAST_fn = function(str, ast, pos, opt) {
5259
5244
  acc += c;
5260
5245
  continue;
5261
5246
  }
5262
- if (isExtglobType(c) && str.charAt(i2) === "(") {
5247
+ const doRecurse = isExtglobType(c) && str.charAt(i2) === "(" && /* c8 ignore start - the maxDepth is sufficient here */
5248
+ (extDepth <= maxDepth || ast && __privateMethod(_c = ast, _AST_instances, canAdoptType_fn).call(_c, c));
5249
+ if (doRecurse) {
5250
+ const depthAdd = ast && __privateMethod(_d = ast, _AST_instances, canAdoptType_fn).call(_d, c) ? 0 : 1;
5263
5251
  part.push(acc);
5264
5252
  acc = "";
5265
- const ext2 = new _AST(c, part);
5253
+ const ext2 = new _a(c, part);
5266
5254
  part.push(ext2);
5267
- i2 = __privateMethod(_b = _AST, _AST_static, parseAST_fn).call(_b, str, ext2, i2, opt);
5255
+ i2 = __privateMethod(_e = _a, _AST_static, parseAST_fn).call(_e, str, ext2, i2, opt, extDepth + depthAdd);
5268
5256
  continue;
5269
5257
  }
5270
5258
  if (c === "|") {
5271
5259
  part.push(acc);
5272
5260
  acc = "";
5273
5261
  parts.push(part);
5274
- part = new _AST(null, ast);
5262
+ part = new _a(null, ast);
5275
5263
  continue;
5276
5264
  }
5277
5265
  if (c === ")") {
@@ -5290,6 +5278,100 @@ parseAST_fn = function(str, ast, pos, opt) {
5290
5278
  __privateSet(ast, _parts, [str.substring(pos - 1)]);
5291
5279
  return i2;
5292
5280
  };
5281
+ canAdoptWithSpace_fn = function(child) {
5282
+ return __privateMethod(this, _AST_instances, canAdopt_fn).call(this, child, adoptionWithSpaceMap);
5283
+ };
5284
+ canAdopt_fn = function(child, map2 = adoptionMap) {
5285
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null) {
5286
+ return false;
5287
+ }
5288
+ const gc = __privateGet(child, _parts)[0];
5289
+ if (!gc || typeof gc !== "object" || gc.type === null) {
5290
+ return false;
5291
+ }
5292
+ return __privateMethod(this, _AST_instances, canAdoptType_fn).call(this, gc.type, map2);
5293
+ };
5294
+ canAdoptType_fn = function(c, map2 = adoptionAnyMap) {
5295
+ var _a2;
5296
+ return !!((_a2 = map2.get(this.type)) == null ? void 0 : _a2.includes(c));
5297
+ };
5298
+ adoptWithSpace_fn = function(child, index) {
5299
+ const gc = __privateGet(child, _parts)[0];
5300
+ const blank = new _a(null, gc, this.options);
5301
+ __privateGet(blank, _parts).push("");
5302
+ gc.push(blank);
5303
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, child, index);
5304
+ };
5305
+ adopt_fn = function(child, index) {
5306
+ const gc = __privateGet(child, _parts)[0];
5307
+ __privateGet(this, _parts).splice(index, 1, ...__privateGet(gc, _parts));
5308
+ for (const p of __privateGet(gc, _parts)) {
5309
+ if (typeof p === "object")
5310
+ __privateSet(p, _parent, this);
5311
+ }
5312
+ __privateSet(this, _toString, void 0);
5313
+ };
5314
+ canUsurpType_fn = function(c) {
5315
+ const m = usurpMap.get(this.type);
5316
+ return !!(m == null ? void 0 : m.has(c));
5317
+ };
5318
+ canUsurp_fn = function(child) {
5319
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null || __privateGet(this, _parts).length !== 1) {
5320
+ return false;
5321
+ }
5322
+ const gc = __privateGet(child, _parts)[0];
5323
+ if (!gc || typeof gc !== "object" || gc.type === null) {
5324
+ return false;
5325
+ }
5326
+ return __privateMethod(this, _AST_instances, canUsurpType_fn).call(this, gc.type);
5327
+ };
5328
+ usurp_fn = function(child) {
5329
+ const m = usurpMap.get(this.type);
5330
+ const gc = __privateGet(child, _parts)[0];
5331
+ const nt = m == null ? void 0 : m.get(gc.type);
5332
+ if (!nt)
5333
+ return false;
5334
+ __privateSet(this, _parts, __privateGet(gc, _parts));
5335
+ for (const p of __privateGet(this, _parts)) {
5336
+ if (typeof p === "object")
5337
+ __privateSet(p, _parent, this);
5338
+ }
5339
+ this.type = nt;
5340
+ __privateSet(this, _toString, void 0);
5341
+ __privateSet(this, _emptyExt, false);
5342
+ };
5343
+ flatten_fn = function() {
5344
+ var _a2, _b;
5345
+ if (!isExtglobAST(this)) {
5346
+ for (const p of __privateGet(this, _parts)) {
5347
+ if (typeof p === "object")
5348
+ __privateMethod(_a2 = p, _AST_instances, flatten_fn).call(_a2);
5349
+ }
5350
+ } else {
5351
+ let iterations = 0;
5352
+ let done = false;
5353
+ do {
5354
+ done = true;
5355
+ for (let i2 = 0; i2 < __privateGet(this, _parts).length; i2++) {
5356
+ const c = __privateGet(this, _parts)[i2];
5357
+ if (typeof c === "object") {
5358
+ __privateMethod(_b = c, _AST_instances, flatten_fn).call(_b);
5359
+ if (__privateMethod(this, _AST_instances, canAdopt_fn).call(this, c)) {
5360
+ done = false;
5361
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, c, i2);
5362
+ } else if (__privateMethod(this, _AST_instances, canAdoptWithSpace_fn).call(this, c)) {
5363
+ done = false;
5364
+ __privateMethod(this, _AST_instances, adoptWithSpace_fn).call(this, c, i2);
5365
+ } else if (__privateMethod(this, _AST_instances, canUsurp_fn).call(this, c)) {
5366
+ done = false;
5367
+ __privateMethod(this, _AST_instances, usurp_fn).call(this, c);
5368
+ }
5369
+ }
5370
+ }
5371
+ } while (!done && ++iterations < 10);
5372
+ }
5373
+ __privateSet(this, _toString, void 0);
5374
+ };
5293
5375
  partsToRegExp_fn = function(dot) {
5294
5376
  return __privateGet(this, _parts).map((p) => {
5295
5377
  if (typeof p === "string") {
@@ -5304,11 +5386,13 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
5304
5386
  let escaping = false;
5305
5387
  let re = "";
5306
5388
  let uflag = false;
5389
+ let inStar = false;
5307
5390
  for (let i2 = 0; i2 < glob.length; i2++) {
5308
5391
  const c = glob.charAt(i2);
5309
5392
  if (escaping) {
5310
5393
  escaping = false;
5311
5394
  re += (reSpecials.has(c) ? "\\" : "") + c;
5395
+ inStar = false;
5312
5396
  continue;
5313
5397
  }
5314
5398
  if (c === "\\") {
@@ -5326,16 +5410,19 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
5326
5410
  uflag = uflag || needUflag;
5327
5411
  i2 += consumed - 1;
5328
5412
  hasMagic = hasMagic || magic;
5413
+ inStar = false;
5329
5414
  continue;
5330
5415
  }
5331
5416
  }
5332
5417
  if (c === "*") {
5333
- if (noEmpty && glob === "*")
5334
- re += starNoEmpty;
5335
- else
5336
- re += star;
5418
+ if (inStar)
5419
+ continue;
5420
+ inStar = true;
5421
+ re += noEmpty && /^[*]+$/.test(glob) ? starNoEmpty : star;
5337
5422
  hasMagic = true;
5338
5423
  continue;
5424
+ } else {
5425
+ inStar = false;
5339
5426
  }
5340
5427
  if (c === "?") {
5341
5428
  re += qmark;
@@ -5346,8 +5433,8 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
5346
5433
  }
5347
5434
  return [re, unescape(glob), !!hasMagic, uflag];
5348
5435
  };
5349
- __privateAdd(_AST, _AST_static);
5350
- var AST = _AST;
5436
+ __privateAdd(AST, _AST_static);
5437
+ _a = AST;
5351
5438
 
5352
5439
  // node_modules/minimatch/dist/esm/escape.js
5353
5440
  var escape = (s, { windowsPathsNoEscape = false } = {}) => {
@@ -5486,28 +5573,33 @@ var match = (list, pattern, options = {}) => {
5486
5573
  minimatch.match = match;
5487
5574
  var globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/;
5488
5575
  var regExpEscape2 = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
5576
+ var _Minimatch_instances, matchGlobstar_fn, matchGlobStarBodySections_fn, matchOne_fn;
5489
5577
  var Minimatch = class {
5490
- options;
5491
- set;
5492
- pattern;
5493
- windowsPathsNoEscape;
5494
- nonegate;
5495
- negate;
5496
- comment;
5497
- empty;
5498
- preserveMultipleSlashes;
5499
- partial;
5500
- globSet;
5501
- globParts;
5502
- nocase;
5503
- isWindows;
5504
- platform;
5505
- windowsNoMagicRoot;
5506
- regexp;
5507
5578
  constructor(pattern, options = {}) {
5579
+ __privateAdd(this, _Minimatch_instances);
5580
+ __publicField(this, "options");
5581
+ __publicField(this, "set");
5582
+ __publicField(this, "pattern");
5583
+ __publicField(this, "windowsPathsNoEscape");
5584
+ __publicField(this, "nonegate");
5585
+ __publicField(this, "negate");
5586
+ __publicField(this, "comment");
5587
+ __publicField(this, "empty");
5588
+ __publicField(this, "preserveMultipleSlashes");
5589
+ __publicField(this, "partial");
5590
+ __publicField(this, "globSet");
5591
+ __publicField(this, "globParts");
5592
+ __publicField(this, "nocase");
5593
+ __publicField(this, "isWindows");
5594
+ __publicField(this, "platform");
5595
+ __publicField(this, "windowsNoMagicRoot");
5596
+ __publicField(this, "maxGlobstarRecursion");
5597
+ __publicField(this, "regexp");
5598
+ var _a2;
5508
5599
  assertValidPattern(pattern);
5509
5600
  options = options || {};
5510
5601
  this.options = options;
5602
+ this.maxGlobstarRecursion = (_a2 = options.maxGlobstarRecursion) != null ? _a2 : 200;
5511
5603
  this.pattern = pattern;
5512
5604
  this.platform = options.platform || defaultPlatform;
5513
5605
  this.isWindows = this.platform === "win32";
@@ -5775,10 +5867,11 @@ var Minimatch = class {
5775
5867
  for (let i2 = 0; i2 < globParts.length - 1; i2++) {
5776
5868
  for (let j = i2 + 1; j < globParts.length; j++) {
5777
5869
  const matched = this.partsMatch(globParts[i2], globParts[j], !this.preserveMultipleSlashes);
5778
- if (!matched)
5779
- continue;
5780
- globParts[i2] = matched;
5781
- globParts[j] = [];
5870
+ if (matched) {
5871
+ globParts[i2] = [];
5872
+ globParts[j] = matched;
5873
+ break;
5874
+ }
5782
5875
  }
5783
5876
  }
5784
5877
  return globParts.filter((gs) => gs.length);
@@ -5839,7 +5932,8 @@ var Minimatch = class {
5839
5932
  // out of pattern, then that's fine, as long as all
5840
5933
  // the parts match.
5841
5934
  matchOne(file, pattern, partial = false) {
5842
- const options = this.options;
5935
+ let fileStartIndex = 0;
5936
+ let patternStartIndex = 0;
5843
5937
  if (this.isWindows) {
5844
5938
  const fileDrive = typeof file[0] === "string" && /^[a-z]:$/i.test(file[0]);
5845
5939
  const fileUNC = !fileDrive && file[0] === "" && file[1] === "" && file[2] === "?" && /^[a-z]:$/i.test(file[3]);
@@ -5848,14 +5942,14 @@ var Minimatch = class {
5848
5942
  const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;
5849
5943
  const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;
5850
5944
  if (typeof fdi === "number" && typeof pdi === "number") {
5851
- const [fd, pd] = [file[fdi], pattern[pdi]];
5945
+ const [fd, pd] = [
5946
+ file[fdi],
5947
+ pattern[pdi]
5948
+ ];
5852
5949
  if (fd.toLowerCase() === pd.toLowerCase()) {
5853
5950
  pattern[pdi] = fd;
5854
- if (pdi > fdi) {
5855
- pattern = pattern.slice(pdi);
5856
- } else if (fdi > pdi) {
5857
- file = file.slice(fdi);
5858
- }
5951
+ patternStartIndex = pdi;
5952
+ fileStartIndex = fdi;
5859
5953
  }
5860
5954
  }
5861
5955
  }
@@ -5863,71 +5957,10 @@ var Minimatch = class {
5863
5957
  if (optimizationLevel >= 2) {
5864
5958
  file = this.levelTwoFileOptimize(file);
5865
5959
  }
5866
- this.debug("matchOne", this, { file, pattern });
5867
- this.debug("matchOne", file.length, pattern.length);
5868
- for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
5869
- this.debug("matchOne loop");
5870
- var p = pattern[pi];
5871
- var f = file[fi];
5872
- this.debug(pattern, p, f);
5873
- if (p === false) {
5874
- return false;
5875
- }
5876
- if (p === GLOBSTAR) {
5877
- this.debug("GLOBSTAR", [pattern, p, f]);
5878
- var fr = fi;
5879
- var pr = pi + 1;
5880
- if (pr === pl) {
5881
- this.debug("** at the end");
5882
- for (; fi < fl; fi++) {
5883
- if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".")
5884
- return false;
5885
- }
5886
- return true;
5887
- }
5888
- while (fr < fl) {
5889
- var swallowee = file[fr];
5890
- this.debug("\nglobstar while", file, fr, pattern, pr, swallowee);
5891
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
5892
- this.debug("globstar found match!", fr, fl, swallowee);
5893
- return true;
5894
- } else {
5895
- if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") {
5896
- this.debug("dot detected!", file, fr, pattern, pr);
5897
- break;
5898
- }
5899
- this.debug("globstar swallow a segment, and continue");
5900
- fr++;
5901
- }
5902
- }
5903
- if (partial) {
5904
- this.debug("\n>>> no match, partial?", file, fr, pattern, pr);
5905
- if (fr === fl) {
5906
- return true;
5907
- }
5908
- }
5909
- return false;
5910
- }
5911
- let hit;
5912
- if (typeof p === "string") {
5913
- hit = f === p;
5914
- this.debug("string match", p, f, hit);
5915
- } else {
5916
- hit = p.test(f);
5917
- this.debug("pattern match", p, f, hit);
5918
- }
5919
- if (!hit)
5920
- return false;
5921
- }
5922
- if (fi === fl && pi === pl) {
5923
- return true;
5924
- } else if (fi === fl) {
5925
- return partial;
5926
- } else if (pi === pl) {
5927
- return fi === fl - 1 && file[fi] === "";
5928
- } else {
5929
- throw new Error("wtf?");
5960
+ if (pattern.includes(GLOBSTAR)) {
5961
+ return __privateMethod(this, _Minimatch_instances, matchGlobstar_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
5930
5962
  }
5963
+ return __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
5931
5964
  }
5932
5965
  braceExpand() {
5933
5966
  return braceExpand(this.pattern, this.options);
@@ -6066,6 +6099,135 @@ var Minimatch = class {
6066
6099
  return minimatch.defaults(def).Minimatch;
6067
6100
  }
6068
6101
  };
6102
+ _Minimatch_instances = new WeakSet();
6103
+ matchGlobstar_fn = function(file, pattern, partial, fileIndex, patternIndex) {
6104
+ const firstgs = pattern.indexOf(GLOBSTAR, patternIndex);
6105
+ const lastgs = pattern.lastIndexOf(GLOBSTAR);
6106
+ const [head, body, tail] = partial ? [
6107
+ pattern.slice(patternIndex, firstgs),
6108
+ pattern.slice(firstgs + 1),
6109
+ []
6110
+ ] : [
6111
+ pattern.slice(patternIndex, firstgs),
6112
+ pattern.slice(firstgs + 1, lastgs),
6113
+ pattern.slice(lastgs + 1)
6114
+ ];
6115
+ if (head.length) {
6116
+ const fileHead = file.slice(fileIndex, fileIndex + head.length);
6117
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, fileHead, head, partial, 0, 0))
6118
+ return false;
6119
+ fileIndex += head.length;
6120
+ }
6121
+ let fileTailMatch = 0;
6122
+ if (tail.length) {
6123
+ if (tail.length + fileIndex > file.length)
6124
+ return false;
6125
+ let tailStart = file.length - tail.length;
6126
+ if (__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0)) {
6127
+ fileTailMatch = tail.length;
6128
+ } else {
6129
+ if (file[file.length - 1] !== "" || fileIndex + tail.length === file.length) {
6130
+ return false;
6131
+ }
6132
+ tailStart--;
6133
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0))
6134
+ return false;
6135
+ fileTailMatch = tail.length + 1;
6136
+ }
6137
+ }
6138
+ if (!body.length) {
6139
+ let sawSome = !!fileTailMatch;
6140
+ for (let i3 = fileIndex; i3 < file.length - fileTailMatch; i3++) {
6141
+ const f = String(file[i3]);
6142
+ sawSome = true;
6143
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
6144
+ return false;
6145
+ }
6146
+ }
6147
+ return partial || sawSome;
6148
+ }
6149
+ const bodySegments = [[[], 0]];
6150
+ let currentBody = bodySegments[0];
6151
+ let nonGsParts = 0;
6152
+ const nonGsPartsSums = [0];
6153
+ for (const b of body) {
6154
+ if (b === GLOBSTAR) {
6155
+ nonGsPartsSums.push(nonGsParts);
6156
+ currentBody = [[], 0];
6157
+ bodySegments.push(currentBody);
6158
+ } else {
6159
+ currentBody[0].push(b);
6160
+ nonGsParts++;
6161
+ }
6162
+ }
6163
+ let i2 = bodySegments.length - 1;
6164
+ const fileLength = file.length - fileTailMatch;
6165
+ for (const b of bodySegments) {
6166
+ b[1] = fileLength - (nonGsPartsSums[i2--] + b[0].length);
6167
+ }
6168
+ return !!__privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex, 0, partial, 0, !!fileTailMatch);
6169
+ };
6170
+ matchGlobStarBodySections_fn = function(file, bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail) {
6171
+ const bs = bodySegments[bodyIndex];
6172
+ if (!bs) {
6173
+ for (let i2 = fileIndex; i2 < file.length; i2++) {
6174
+ sawTail = true;
6175
+ const f = file[i2];
6176
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
6177
+ return false;
6178
+ }
6179
+ }
6180
+ return sawTail;
6181
+ }
6182
+ const [body, after] = bs;
6183
+ while (fileIndex <= after) {
6184
+ const m = __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file.slice(0, fileIndex + body.length), body, partial, fileIndex, 0);
6185
+ if (m && globStarDepth < this.maxGlobstarRecursion) {
6186
+ const sub = __privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex + body.length, bodyIndex + 1, partial, globStarDepth + 1, sawTail);
6187
+ if (sub !== false)
6188
+ return sub;
6189
+ }
6190
+ const f = file[fileIndex];
6191
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
6192
+ return false;
6193
+ }
6194
+ fileIndex++;
6195
+ }
6196
+ return partial || null;
6197
+ };
6198
+ matchOne_fn = function(file, pattern, partial, fileIndex, patternIndex) {
6199
+ let fi;
6200
+ let pi;
6201
+ let pl;
6202
+ let fl;
6203
+ for (fi = fileIndex, pi = patternIndex, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
6204
+ this.debug("matchOne loop");
6205
+ let p = pattern[pi];
6206
+ let f = file[fi];
6207
+ this.debug(pattern, p, f);
6208
+ if (p === false || p === GLOBSTAR)
6209
+ return false;
6210
+ let hit;
6211
+ if (typeof p === "string") {
6212
+ hit = f === p;
6213
+ this.debug("string match", p, f, hit);
6214
+ } else {
6215
+ hit = p.test(f);
6216
+ this.debug("pattern match", p, f, hit);
6217
+ }
6218
+ if (!hit)
6219
+ return false;
6220
+ }
6221
+ if (fi === fl && pi === pl) {
6222
+ return true;
6223
+ } else if (fi === fl) {
6224
+ return partial;
6225
+ } else if (pi === pl) {
6226
+ return fi === fl - 1 && file[fi] === "";
6227
+ } else {
6228
+ throw new Error("wtf?");
6229
+ }
6230
+ };
6069
6231
  minimatch.AST = AST;
6070
6232
  minimatch.Minimatch = Minimatch;
6071
6233
  minimatch.escape = escape;
@@ -6139,7 +6301,7 @@ function proxyHostElement(elm, cstr) {
6139
6301
  const hostRef = getHostRef(elm);
6140
6302
  const members = Object.entries(cmpMeta.$members$);
6141
6303
  members.forEach(([memberName, [memberFlags, metaAttributeName]]) => {
6142
- var _a, _b;
6304
+ var _a2, _b;
6143
6305
  if (memberFlags & 31 /* Prop */) {
6144
6306
  const attributeName = metaAttributeName || memberName;
6145
6307
  const attrValue = elm.getAttribute(attributeName);
@@ -6147,7 +6309,7 @@ function proxyHostElement(elm, cstr) {
6147
6309
  let attrPropVal;
6148
6310
  const { get: origGetter, set: origSetter } = Object.getOwnPropertyDescriptor(cstr.prototype, memberName) || {};
6149
6311
  if (attrValue != null) {
6150
- if ((_a = cmpMeta.$deserializers$) == null ? void 0 : _a[memberName]) {
6312
+ if ((_a2 = cmpMeta.$deserializers$) == null ? void 0 : _a2[memberName]) {
6151
6313
  for (const deserializer of cmpMeta.$deserializers$[memberName]) {
6152
6314
  const [[methodName]] = Object.entries(deserializer);
6153
6315
  attrPropVal = cstr.prototype[methodName](attrValue, memberName);
@@ -6180,8 +6342,8 @@ function proxyHostElement(elm, cstr) {
6180
6342
  Object.defineProperty(elm, memberName, getterSetterDescriptor);
6181
6343
  Object.defineProperty(elm, metaAttributeName, getterSetterDescriptor);
6182
6344
  hostRef.$fetchedCbList$.push(() => {
6183
- var _a2;
6184
- if (!((_a2 = hostRef == null ? void 0 : hostRef.$instanceValues$) == null ? void 0 : _a2.has(memberName))) {
6345
+ var _a3;
6346
+ if (!((_a3 = hostRef == null ? void 0 : hostRef.$instanceValues$) == null ? void 0 : _a3.has(memberName))) {
6185
6347
  setValue(
6186
6348
  elm,
6187
6349
  memberName,
@@ -6194,11 +6356,11 @@ function proxyHostElement(elm, cstr) {
6194
6356
  } else if (memberFlags & 64 /* Method */) {
6195
6357
  Object.defineProperty(elm, memberName, {
6196
6358
  value(...args) {
6197
- var _a2;
6359
+ var _a3;
6198
6360
  const ref = getHostRef(this);
6199
- return (_a2 = ref == null ? void 0 : ref.$onInstancePromise$) == null ? void 0 : _a2.then(() => {
6200
- var _a3;
6201
- return (_a3 = ref == null ? void 0 : ref.$lazyInstance$) == null ? void 0 : _a3[memberName](...args);
6361
+ return (_a3 = ref == null ? void 0 : ref.$onInstancePromise$) == null ? void 0 : _a3.then(() => {
6362
+ var _a4;
6363
+ return (_a4 = ref == null ? void 0 : ref.$lazyInstance$) == null ? void 0 : _a4[memberName](...args);
6202
6364
  }).catch((e) => {
6203
6365
  consoleError(e, this);
6204
6366
  });
@@ -6209,8 +6371,8 @@ function proxyHostElement(elm, cstr) {
6209
6371
  }
6210
6372
  }
6211
6373
  function componentOnReady() {
6212
- var _a;
6213
- return (_a = getHostRef(this)) == null ? void 0 : _a.$onReadyPromise$;
6374
+ var _a2;
6375
+ return (_a2 = getHostRef(this)) == null ? void 0 : _a2.$onReadyPromise$;
6214
6376
  }
6215
6377
  function forceUpdate2() {
6216
6378
  }
@@ -6315,7 +6477,6 @@ function hydrateApp(win2, opts, results, afterHydrate, resolve) {
6315
6477
  };
6316
6478
  tmrId = globalThis.setTimeout(timeoutExceeded, opts.timeout);
6317
6479
  plt.$resourcesUrl$ = new URL(opts.resourcesUrl || "./", win2.document.baseURI).href;
6318
- globalScripts();
6319
6480
  patchChild2(win2.document.body);
6320
6481
  waitLoop2().then(hydratedComplete).catch(hydratedError);
6321
6482
  } catch (e) {
@@ -6626,70 +6787,70 @@ var needsScopedSSR = () => scopedSSR;
6626
6787
  var scopedSSR = false;
6627
6788
 
6628
6789
  var StencilCore = /*#__PURE__*/Object.freeze({
6629
- __proto__: null,
6630
- BUILD: BUILD,
6631
- Build: Build,
6632
- Env: Env,
6633
- Fragment: Fragment,
6634
- Host: Host,
6635
- Mixin: Mixin,
6636
- NAMESPACE: NAMESPACE,
6637
- addHostEventListeners: addHostEventListeners,
6638
- bootstrapLazy: bootstrapLazy,
6639
- cmpModules: cmpModules,
6640
- connectedCallback: connectedCallback,
6641
- consoleDevError: consoleDevError,
6642
- consoleDevInfo: consoleDevInfo,
6643
- consoleDevWarn: consoleDevWarn,
6644
- consoleError: consoleError,
6645
- createEvent: createEvent,
6646
- defineCustomElement: defineCustomElement,
6647
- disconnectedCallback: disconnectedCallback,
6648
- forceModeUpdate: forceModeUpdate,
6649
- forceUpdate: forceUpdate$1,
6650
- getAssetPath: getAssetPath,
6651
- getElement: getElement,
6652
- getHostRef: getHostRef,
6653
- getMode: getMode,
6654
- getRenderingRef: getRenderingRef$1,
6655
- getValue: getValue$1,
6656
- h: hAsync,
6657
- hydrateApp: hydrateApp,
6658
- insertVdomAnnotations: insertVdomAnnotations,
6659
- isMemberInElement: isMemberInElement,
6660
- jsx: jsx,
6661
- jsxDEV: jsxDEV,
6662
- jsxs: jsxs,
6663
- loadModule: loadModule,
6664
- modeResolutionChain: modeResolutionChain,
6665
- needsScopedSSR: needsScopedSSR,
6666
- nextTick: nextTick,
6667
- parsePropertyValue: parsePropertyValue,
6668
- plt: plt,
6669
- postUpdateComponent: postUpdateComponent,
6670
- proxyComponent: proxyComponent,
6671
- proxyCustomElement: proxyCustomElement,
6672
- readTask: readTask,
6673
- registerComponents: registerComponents,
6674
- registerHost: registerHost,
6675
- registerInstance: registerInstance,
6676
- renderVdom: renderVdom,
6677
- setAssetPath: setAssetPath,
6678
- setErrorHandler: setErrorHandler,
6679
- setMode: setMode,
6680
- setNonce: setNonce,
6681
- setPlatformHelpers: setPlatformHelpers,
6682
- setScopedSSR: setScopedSSR,
6683
- setTagTransformer: setTagTransformer,
6684
- setValue: setValue,
6685
- styles: styles,
6686
- supportsConstructableStylesheets: supportsConstructableStylesheets,
6687
- supportsListenerOptions: supportsListenerOptions,
6688
- supportsMutableAdoptedStyleSheets: supportsMutableAdoptedStyleSheets,
6689
- supportsShadow: supportsShadow,
6690
- transformTag: transformTag,
6691
- win: win,
6692
- writeTask: writeTask
6790
+ __proto__: null,
6791
+ BUILD: BUILD,
6792
+ Build: Build,
6793
+ Env: Env,
6794
+ Fragment: Fragment,
6795
+ Host: Host,
6796
+ Mixin: Mixin,
6797
+ NAMESPACE: NAMESPACE,
6798
+ addHostEventListeners: addHostEventListeners,
6799
+ bootstrapLazy: bootstrapLazy,
6800
+ cmpModules: cmpModules,
6801
+ connectedCallback: connectedCallback,
6802
+ consoleDevError: consoleDevError,
6803
+ consoleDevInfo: consoleDevInfo,
6804
+ consoleDevWarn: consoleDevWarn,
6805
+ consoleError: consoleError,
6806
+ createEvent: createEvent,
6807
+ defineCustomElement: defineCustomElement,
6808
+ disconnectedCallback: disconnectedCallback,
6809
+ forceModeUpdate: forceModeUpdate,
6810
+ forceUpdate: forceUpdate$1,
6811
+ getAssetPath: getAssetPath,
6812
+ getElement: getElement,
6813
+ getHostRef: getHostRef,
6814
+ getMode: getMode,
6815
+ getRenderingRef: getRenderingRef$1,
6816
+ getValue: getValue$1,
6817
+ h: hAsync,
6818
+ hydrateApp: hydrateApp,
6819
+ insertVdomAnnotations: insertVdomAnnotations,
6820
+ isMemberInElement: isMemberInElement,
6821
+ jsx: jsx,
6822
+ jsxDEV: jsxDEV,
6823
+ jsxs: jsxs,
6824
+ loadModule: loadModule,
6825
+ modeResolutionChain: modeResolutionChain,
6826
+ needsScopedSSR: needsScopedSSR,
6827
+ nextTick: nextTick,
6828
+ parsePropertyValue: parsePropertyValue,
6829
+ plt: plt,
6830
+ postUpdateComponent: postUpdateComponent,
6831
+ proxyComponent: proxyComponent,
6832
+ proxyCustomElement: proxyCustomElement,
6833
+ readTask: readTask,
6834
+ registerComponents: registerComponents,
6835
+ registerHost: registerHost,
6836
+ registerInstance: registerInstance,
6837
+ renderVdom: renderVdom,
6838
+ setAssetPath: setAssetPath,
6839
+ setErrorHandler: setErrorHandler,
6840
+ setMode: setMode,
6841
+ setNonce: setNonce,
6842
+ setPlatformHelpers: setPlatformHelpers,
6843
+ setScopedSSR: setScopedSSR,
6844
+ setTagTransformer: setTagTransformer,
6845
+ setValue: setValue,
6846
+ styles: styles,
6847
+ supportsConstructableStylesheets: supportsConstructableStylesheets,
6848
+ supportsListenerOptions: supportsListenerOptions,
6849
+ supportsMutableAdoptedStyleSheets: supportsMutableAdoptedStyleSheets,
6850
+ supportsShadow: supportsShadow,
6851
+ transformTag: transformTag,
6852
+ win: win,
6853
+ writeTask: writeTask
6693
6854
  });
6694
6855
 
6695
6856
  /**
@@ -7445,7 +7606,7 @@ function moveFilterItem(items, sourceId, targetId) {
7445
7606
  return true;
7446
7607
  }
7447
7608
 
7448
- 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}`;
7609
+ 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}`;
7449
7610
 
7450
7611
  const defaultType = 'none';
7451
7612
  const FILTER_LIST_CLASS = 'multi-filter-list';
@@ -7493,6 +7654,10 @@ class FilterPanel {
7493
7654
  * If true, closes the filter panel when clicking outside
7494
7655
  */
7495
7656
  this.closeOnOutsideClick = true;
7657
+ /**
7658
+ * Whether the filter panel allows the same operator more than once per column.
7659
+ */
7660
+ this.allowDuplicateOperators = true;
7496
7661
  this.debouncedApplyFilter = debounce$1(() => {
7497
7662
  this.filterChange.emit(this.filterItems);
7498
7663
  }, 400);
@@ -7806,11 +7971,15 @@ class FilterPanel {
7806
7971
  }
7807
7972
  }
7808
7973
  renderSelectOptions(type, isDefaultTypeRemoved = false) {
7974
+ var _a;
7809
7975
  if (!this.changes) {
7810
7976
  return;
7811
7977
  }
7812
7978
  const options = [];
7813
7979
  const prop = this.changes.prop;
7980
+ if (prop === undefined) {
7981
+ return;
7982
+ }
7814
7983
  const hidden = new Set();
7815
7984
  Object.keys(this.filterItems).forEach((prop) => {
7816
7985
  const values = this.filterItems[prop];
@@ -7820,6 +7989,9 @@ class FilterPanel {
7820
7989
  }
7821
7990
  });
7822
7991
  });
7992
+ const selectedTypes = new Set(((_a = this.filterItems[prop]) !== null && _a !== void 0 ? _a : [])
7993
+ .filter(filter => !filter.hidden)
7994
+ .map(filter => filter.type));
7823
7995
  if (!isDefaultTypeRemoved) {
7824
7996
  const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
7825
7997
  options.push(hAsync("option", { selected: this.currentFilterType === defaultType, value: defaultType }, prop && this.filterItems[prop] && this.filterItems[prop].length > 0
@@ -7827,7 +7999,9 @@ class FilterPanel {
7827
7999
  : this.filterNames[defaultType]));
7828
8000
  }
7829
8001
  for (let gIndex in this.changes.filterTypes) {
7830
- const group = this.changes.filterTypes[gIndex].filter(k => !hidden.has(k));
8002
+ const group = this.changes.filterTypes[gIndex].filter(k => !hidden.has(k) && (this.allowDuplicateOperators ||
8003
+ !selectedTypes.has(k) ||
8004
+ (isDefaultTypeRemoved && type === k)));
7831
8005
  if (group.length) {
7832
8006
  options.push(...group.map(k => (hAsync("option", { value: k, selected: type === k }, this.filterNames[k]))));
7833
8007
  options.push(hAsync("option", { disabled: true }));
@@ -7922,7 +8096,7 @@ class FilterPanel {
7922
8096
  top: `${(_d = (_c = this.changes) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0}px`,
7923
8097
  };
7924
8098
  const capts = Object.assign(Object.assign({}, this.filterCaptionsInternal), this.filterCaptions);
7925
- return (hAsync(Host, { key: '2a19b35adb56fb7d23385fffebc768838edee162' }, hAsync("dialog", { key: '94386d7cbc4bd9c631f72928938b1d1550a3de82', class: "filter-panel-dialog", style: style, ref: el => (this.dialog = el), onCancel: e => {
8099
+ return (hAsync(Host, { key: '8859c452eb08838f65f18efecbdde7f65fda2b49' }, hAsync("dialog", { key: 'f603067ff0986a9f344cbbf816388d2bbac198bb', class: "filter-panel-dialog", style: style, ref: el => (this.dialog = el), onCancel: e => {
7926
8100
  e.preventDefault();
7927
8101
  this.onCancel();
7928
8102
  } }, this.changes && [
@@ -7931,7 +8105,7 @@ class FilterPanel {
7931
8105
  ((_g = this.changes) === null || _g === void 0 ? void 0 : _g.hideDefaultFilters) !== true && [
7932
8106
  hAsync("label", { key: "filter-title" }, capts.title),
7933
8107
  hAsync("div", { key: "filter-holder", class: "filter-holder" }, this.getFilterItemsList()),
7934
- 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))),
8108
+ 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))),
7935
8109
  ],
7936
8110
  hAsync("slot", { key: "default-slot" }),
7937
8111
  ((_j = (_h = this.changes).extraBottomContent) === null || _j === void 0 ? void 0 : _j.call(_h, this.changes)) || '',
@@ -7956,6 +8130,7 @@ class FilterPanel {
7956
8130
  "filterCaptions": [16],
7957
8131
  "disableDynamicFiltering": [4, "disable-dynamic-filtering"],
7958
8132
  "closeOnOutsideClick": [4, "close-on-outside-click"],
8133
+ "allowDuplicateOperators": [4, "allow-duplicate-operators"],
7959
8134
  "isFilterIdSet": [32],
7960
8135
  "filterId": [32],
7961
8136
  "currentFilterId": [32],
@@ -8883,7 +9058,7 @@ function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
8883
9058
  }
8884
9059
 
8885
9060
  /** Built-in value references. */
8886
- var Uint8Array = root.Uint8Array;
9061
+ var Uint8Array$1 = root.Uint8Array;
8887
9062
 
8888
9063
  /**
8889
9064
  * Converts `map` to its key-value pairs.
@@ -8970,7 +9145,7 @@ function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
8970
9145
 
8971
9146
  case arrayBufferTag$1:
8972
9147
  if ((object.byteLength != other.byteLength) ||
8973
- !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
9148
+ !equalFunc(new Uint8Array$1(object), new Uint8Array$1(other))) {
8974
9149
  return false;
8975
9150
  }
8976
9151
  return true;
@@ -14018,7 +14193,7 @@ function isEmptyClipboardRow(row) {
14018
14193
  return !row || row.every(cell => cell === '');
14019
14194
  }
14020
14195
 
14021
- 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}`;
14196
+ 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}`;
14022
14197
 
14023
14198
  /**
14024
14199
  * Component for overlaying the grid with the selection.
@@ -14647,7 +14822,7 @@ class TextEditor {
14647
14822
  }
14648
14823
  }
14649
14824
 
14650
- 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}`;
14825
+ 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}`;
14651
14826
 
14652
14827
  /**
14653
14828
  * Represents a cell editor in a grid.
@@ -15314,6 +15489,243 @@ class ViewportProvider {
15314
15489
  }
15315
15490
  }
15316
15491
 
15492
+ /**
15493
+ * Public theme tokens and their CSS custom-property counterparts.
15494
+ * Keep this map as the single source of truth for typed theme definitions.
15495
+ */
15496
+ const themeTokenCssVariables = {
15497
+ primary: '--revo-grid-primary',
15498
+ primaryTransparent: '--revo-grid-primary-transparent',
15499
+ background: '--revo-grid-background',
15500
+ foreground: '--revo-grid-foreground',
15501
+ divider: '--revo-grid-divider',
15502
+ shadow: '--revo-grid-shadow',
15503
+ text: '--revo-grid-text',
15504
+ border: '--revo-grid-border',
15505
+ headerBg: '--revo-grid-header-bg',
15506
+ headerColor: '--revo-grid-header-color',
15507
+ headerBorder: '--revo-grid-header-border',
15508
+ headerFocusedBg: '--revo-grid-header-focused-bg',
15509
+ headerHoverBg: '--revo-grid-header-hover-bg',
15510
+ cellBorder: '--revo-grid-cell-border',
15511
+ cellVerticalBorder: '--revo-grid-cell-vertical-border',
15512
+ focusedBg: '--revo-grid-focused-bg',
15513
+ rowHover: '--revo-grid-row-hover',
15514
+ rowHeadersBg: '--revo-grid-row-headers-bg',
15515
+ rowHeadersColor: '--revo-grid-row-headers-color',
15516
+ cellDisabledBg: '--revo-grid-cell-disabled-bg',
15517
+ filterPanelBg: '--revo-grid-filter-panel-bg',
15518
+ filterPanelBorder: '--revo-grid-filter-panel-border',
15519
+ filterPanelShadow: '--revo-grid-filter-panel-shadow',
15520
+ filterPanelInputBg: '--revo-grid-filter-panel-input-bg',
15521
+ filterPanelDivider: '--revo-grid-filter-panel-divider',
15522
+ filterPanelSelectBorder: '--revo-grid-filter-panel-select-border',
15523
+ filterPanelSelectBorderHover: '--revo-grid-filter-panel-select-border-hover',
15524
+ filterPanelReorderAccent: '--revo-grid-filter-panel-reorder-accent',
15525
+ filterPanelReorderColor: '--revo-grid-filter-panel-reorder-color',
15526
+ filterPanelText: '--revo-grid-filter-panel-text',
15527
+ filterPanelMutedText: '--revo-grid-filter-panel-muted-text',
15528
+ filterPanelFocusRing: '--revo-grid-filter-panel-focus-ring',
15529
+ filterPanelIcon: '--revo-grid-filter-panel-icon',
15530
+ filterPanelIconActive: '--revo-grid-filter-panel-icon-active',
15531
+ filterPanelSelectArrow: '--revo-grid-filter-panel-select-arrow',
15532
+ filterPanelSelectArrowDisabled: '--revo-grid-filter-panel-select-arrow-disabled',
15533
+ fontFamily: '--revo-grid-font-family',
15534
+ fontSize: '--revo-grid-font-size',
15535
+ headerHeight: '--revo-grid-header-height',
15536
+ headerFontSize: '--revo-grid-header-font-size',
15537
+ headerFontWeight: '--revo-grid-header-font-weight',
15538
+ headerTextTransform: '--revo-grid-header-text-transform',
15539
+ headerTextAlign: '--revo-grid-header-text-align',
15540
+ cellTextAlign: '--revo-grid-cell-text-align',
15541
+ headerPadding: '--revo-grid-header-padding',
15542
+ cellPadding: '--revo-grid-cell-padding',
15543
+ selectionBorder: '--revo-grid-selection-border',
15544
+ selectionBg: '--revo-grid-selection-bg',
15545
+ autofillHandleBg: '--revo-grid-autofill-handle-bg',
15546
+ autofillHandleBorder: '--revo-grid-autofill-handle-border',
15547
+ rangeHandleBg: '--revo-grid-range-handle-bg',
15548
+ temporaryRangeBorder: '--revo-grid-temporary-range-border',
15549
+ temporarySelectionBorder: '--revo-grid-temporary-selection-border',
15550
+ headerResizeHover: '--revo-grid-header-resize-hover',
15551
+ buttonText: '--revo-grid-button-text',
15552
+ buttonBg: '--revo-grid-button-bg',
15553
+ buttonSuccessBg: '--revo-grid-button-success-bg',
15554
+ buttonDangerBg: '--revo-grid-button-danger-bg',
15555
+ buttonOutlineBorder: '--revo-grid-button-outline-border',
15556
+ buttonOutlineText: '--revo-grid-button-outline-text',
15557
+ };
15558
+
15559
+ const DEFAULT_THEME = 'default';
15560
+ const allowedThemes = [
15561
+ DEFAULT_THEME,
15562
+ 'material',
15563
+ 'compact',
15564
+ 'darkMaterial',
15565
+ 'darkCompact',
15566
+ ];
15567
+ const builtInThemeNames = new Set(allowedThemes);
15568
+ const builtInThemes = Object.freeze({
15569
+ default: Object.freeze({
15570
+ name: 'default',
15571
+ base: 'default',
15572
+ colorScheme: 'light',
15573
+ defaultRowSize: 27,
15574
+ tokens: Object.freeze({}),
15575
+ custom: false,
15576
+ }),
15577
+ material: Object.freeze({
15578
+ name: 'material',
15579
+ base: 'material',
15580
+ colorScheme: 'light',
15581
+ defaultRowSize: 42,
15582
+ tokens: Object.freeze({}),
15583
+ custom: false,
15584
+ }),
15585
+ compact: Object.freeze({
15586
+ name: 'compact',
15587
+ base: 'compact',
15588
+ colorScheme: 'light',
15589
+ defaultRowSize: 32,
15590
+ tokens: Object.freeze({}),
15591
+ custom: false,
15592
+ }),
15593
+ darkMaterial: Object.freeze({
15594
+ name: 'darkMaterial',
15595
+ base: 'material',
15596
+ colorScheme: 'dark',
15597
+ defaultRowSize: 42,
15598
+ tokens: Object.freeze({}),
15599
+ custom: false,
15600
+ }),
15601
+ darkCompact: Object.freeze({
15602
+ name: 'darkCompact',
15603
+ base: 'compact',
15604
+ colorScheme: 'dark',
15605
+ defaultRowSize: 32,
15606
+ tokens: Object.freeze({}),
15607
+ custom: false,
15608
+ }),
15609
+ });
15610
+ function isBuiltInTheme(theme) {
15611
+ return builtInThemeNames.has(theme);
15612
+ }
15613
+ function isPositiveSize(size) {
15614
+ return typeof size === 'number' && Number.isFinite(size) && size > 0;
15615
+ }
15616
+ function getColorScheme(scheme, fallback) {
15617
+ return scheme === 'light' || scheme === 'dark' ? scheme : fallback;
15618
+ }
15619
+ function getThemeTokens(tokens) {
15620
+ if (!tokens || typeof tokens !== 'object') {
15621
+ return {};
15622
+ }
15623
+ const result = {};
15624
+ for (const [name, value] of Object.entries(tokens)) {
15625
+ if (Object.hasOwn(themeTokenCssVariables, name) &&
15626
+ typeof value === 'string' &&
15627
+ value.trim()) {
15628
+ result[name] = value;
15629
+ }
15630
+ }
15631
+ return result;
15632
+ }
15633
+ class ThemeService {
15634
+ get theme() {
15635
+ return this.currentTheme;
15636
+ }
15637
+ get rowSize() {
15638
+ return this.customRowSize || this.currentTheme.defaultRowSize;
15639
+ }
15640
+ set rowSize(size) {
15641
+ this.customRowSize = isPositiveSize(size) ? size : 0;
15642
+ }
15643
+ constructor(cfg) {
15644
+ this.currentTheme = Object.assign({}, builtInThemes.default);
15645
+ this.customThemes = new Map();
15646
+ this.customRowSize = 0;
15647
+ this.rowSize = cfg.rowSize;
15648
+ this.register('default');
15649
+ }
15650
+ setDefinitions(definitions = []) {
15651
+ const customThemes = new Map();
15652
+ if (Array.isArray(definitions)) {
15653
+ for (const definition of definitions) {
15654
+ if (!definition || typeof definition !== 'object') {
15655
+ continue;
15656
+ }
15657
+ if (typeof definition.name !== 'string' || !definition.name.trim()) {
15658
+ continue;
15659
+ }
15660
+ const name = getTheme(definition.name);
15661
+ if (isBuiltInTheme(name)) {
15662
+ continue;
15663
+ }
15664
+ customThemes.set(name, Object.assign(Object.assign({}, definition), { name }));
15665
+ }
15666
+ }
15667
+ this.customThemes = customThemes;
15668
+ }
15669
+ register(theme) {
15670
+ const name = getTheme(theme);
15671
+ if (isBuiltInTheme(name)) {
15672
+ this.currentTheme = Object.assign(Object.assign({}, builtInThemes[name]), { tokens: {} });
15673
+ return this.currentTheme;
15674
+ }
15675
+ const definition = this.customThemes.get(name);
15676
+ if (!definition) {
15677
+ this.currentTheme = Object.assign(Object.assign({}, builtInThemes.default), { name, tokens: {}, custom: true });
15678
+ return this.currentTheme;
15679
+ }
15680
+ this.currentTheme = this.resolveDefinition(name);
15681
+ return this.currentTheme;
15682
+ }
15683
+ resolveDefinition(name) {
15684
+ const chain = [];
15685
+ const visited = new Set();
15686
+ let parentName = name;
15687
+ let validChain = true;
15688
+ while (!isBuiltInTheme(parentName)) {
15689
+ if (visited.has(parentName)) {
15690
+ validChain = false;
15691
+ break;
15692
+ }
15693
+ visited.add(parentName);
15694
+ const definition = this.customThemes.get(parentName);
15695
+ if (!definition) {
15696
+ validChain = false;
15697
+ break;
15698
+ }
15699
+ chain.push(definition);
15700
+ parentName = getTheme(definition.extends);
15701
+ }
15702
+ let resolved = Object.assign(Object.assign({}, (validChain && isBuiltInTheme(parentName)
15703
+ ? builtInThemes[parentName]
15704
+ : builtInThemes.default)), { tokens: {} });
15705
+ if (validChain) {
15706
+ chain.reverse();
15707
+ }
15708
+ const definitions = validChain ? chain : chain.slice(0, 1);
15709
+ for (const definition of definitions) {
15710
+ resolved = {
15711
+ name: definition.name,
15712
+ base: resolved.base,
15713
+ colorScheme: getColorScheme(definition.colorScheme, resolved.colorScheme),
15714
+ defaultRowSize: isPositiveSize(definition.defaultRowSize)
15715
+ ? definition.defaultRowSize
15716
+ : resolved.defaultRowSize,
15717
+ tokens: Object.assign(Object.assign({}, resolved.tokens), getThemeTokens(definition.tokens)),
15718
+ custom: true,
15719
+ };
15720
+ }
15721
+ return resolved;
15722
+ }
15723
+ }
15724
+ function getTheme(theme) {
15725
+ const normalizedTheme = typeof theme === 'string' ? theme.trim() : '';
15726
+ return normalizedTheme || DEFAULT_THEME;
15727
+ }
15728
+
15317
15729
  /**
15318
15730
  * A specialized version of `_.forEach` for arrays without support for
15319
15731
  * iteratee shorthands.
@@ -15867,13 +16279,14 @@ class FilterPlugin extends BasePlugin {
15867
16279
  this.filterNameIndexByType = Object.assign({}, filterNames);
15868
16280
  this.filterFunctionsIndexedByType = Object.assign({}, filterCoreFunctionsIndexedByType);
15869
16281
  this.filterProp = FILTER_PROP;
16282
+ this.allowDuplicateOperators = true;
15870
16283
  if (config) {
15871
16284
  this.initConfig(config);
15872
16285
  }
15873
16286
  const existingNodes = this.revogrid.registerVNode.filter(n => typeof n === 'object' && n.$tag$ !== FILTE_PANEL);
15874
16287
  this.revogrid.registerVNode = [
15875
16288
  ...existingNodes,
15876
- 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()),
16289
+ 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()),
15877
16290
  ];
15878
16291
  const aftersourceset = async () => {
15879
16292
  const filterCollectionProps = Object.keys(this.filterCollection);
@@ -15900,15 +16313,24 @@ class FilterPlugin extends BasePlugin {
15900
16313
  };
15901
16314
  this.addEventListener('headerclick', e => this.headerclick(e));
15902
16315
  this.addEventListener(FILTER_CONFIG_CHANGED_EVENT, ({ detail }) => {
15903
- if (!detail ||
15904
- (typeof detail === 'object' &&
15905
- (!detail.multiFilterItems ||
15906
- !Object.keys(detail.multiFilterItems).length))) {
16316
+ if (!detail) {
15907
16317
  this.clearFiltering();
15908
16318
  return;
15909
16319
  }
15910
16320
  if (typeof detail === 'object') {
15911
- this.initConfig(detail);
16321
+ const detailKeys = Object.keys(detail);
16322
+ const preserveCurrentFilters = !detailKeys.includes('multiFilterItems') &&
16323
+ detailKeys.includes('allowDuplicateOperators');
16324
+ this.initConfig(preserveCurrentFilters
16325
+ ? Object.assign(Object.assign({}, detail), { multiFilterItems: this.multiFilterItems }) : detail);
16326
+ if (!detail.multiFilterItems || !Object.keys(detail.multiFilterItems).length) {
16327
+ if (preserveCurrentFilters) {
16328
+ aftersourceset();
16329
+ return;
16330
+ }
16331
+ this.clearFiltering();
16332
+ return;
16333
+ }
15912
16334
  }
15913
16335
  aftersourceset();
15914
16336
  });
@@ -15922,6 +16344,11 @@ class FilterPlugin extends BasePlugin {
15922
16344
  return null;
15923
16345
  }
15924
16346
  initConfig(config) {
16347
+ var _a;
16348
+ this.allowDuplicateOperators = (_a = config.allowDuplicateOperators) !== null && _a !== void 0 ? _a : true;
16349
+ if (this.pop) {
16350
+ this.pop.allowDuplicateOperators = this.allowDuplicateOperators;
16351
+ }
15925
16352
  if (config.multiFilterItems) {
15926
16353
  this.multiFilterItems = Object.assign({}, config.multiFilterItems);
15927
16354
  }
@@ -19311,8 +19738,12 @@ class RTLPlugin extends BasePlugin {
19311
19738
  }
19312
19739
  }
19313
19740
 
19314
- 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}`;
19741
+ 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}`;
19315
19742
 
19743
+ const DEFAULT_COLUMN_SIZE = 100;
19744
+ function getColumnSize(size) {
19745
+ return Number.isFinite(size) && size > 0 ? size : DEFAULT_COLUMN_SIZE;
19746
+ }
19316
19747
  /**
19317
19748
  * Revogrid - High-performance, customizable grid library for managing large datasets.
19318
19749
  * ### Events guide
@@ -19447,6 +19878,11 @@ class RevoGridComponent {
19447
19878
  this.columnTypes = {};
19448
19879
  /** Theme name. */
19449
19880
  this.theme = 'default';
19881
+ /**
19882
+ * Per-grid custom theme definitions.
19883
+ * Assign as a JavaScript property; complex values cannot be serialized as HTML attributes.
19884
+ */
19885
+ this.themeDefinitions = [];
19450
19886
  /**
19451
19887
  * Row class property mapping.
19452
19888
  * Map custom classes to rows from row object data.
@@ -19546,6 +19982,7 @@ class RevoGridComponent {
19546
19982
  this.pluginService = new PluginService();
19547
19983
  this.viewport = null;
19548
19984
  this.isInited = false;
19985
+ this.themeStyles = {};
19549
19986
  }
19550
19987
  // #endregion
19551
19988
  // #region Methods
@@ -20044,29 +20481,70 @@ class RevoGridComponent {
20044
20481
  this.refreshColumnsOnConfigChange(newVal, prevVal);
20045
20482
  }
20046
20483
  rowSizeChanged(s) {
20047
- if (!this.dimensionProvider) {
20484
+ if (!this.themeService || !this.dimensionProvider) {
20485
+ return;
20486
+ }
20487
+ this.themeService.rowSize = s;
20488
+ this.applyTheme(this.theme, false, false, 'rowSize');
20489
+ }
20490
+ colSizeChanged(s) {
20491
+ if (!this.dimensionProvider || !this.columnProvider) {
20048
20492
  return;
20049
20493
  }
20050
- // clear existing data
20051
- this.dimensionProvider.setSettings({ originItemSize: s }, 'rgRow');
20052
- this.rowDefChanged(this.rowDefinitions, this.rowDefinitions, 'rowSize', true);
20494
+ this.dimensionProvider.setSettings({ originItemSize: getColumnSize(s) }, 'rgCol');
20495
+ this.columnChanged(this.columns);
20053
20496
  }
20054
20497
  themeChanged(t, _, __ = 'theme', init = false) {
20055
- if (!this.dimensionProvider) {
20498
+ if (!this.themeService || !this.dimensionProvider) {
20499
+ return;
20500
+ }
20501
+ if (this.pendingNormalizedTheme === t) {
20502
+ this.pendingNormalizedTheme = undefined;
20503
+ return;
20504
+ }
20505
+ const normalizedTheme = getTheme(t);
20506
+ if (normalizedTheme !== t) {
20507
+ this.pendingNormalizedTheme = normalizedTheme;
20508
+ this.theme = normalizedTheme;
20509
+ }
20510
+ this.applyTheme(normalizedTheme, init, true, 'theme');
20511
+ }
20512
+ themeDefinitionsChanged(definitions = []) {
20513
+ if (!this.themeService || !this.dimensionProvider) {
20056
20514
  return;
20057
20515
  }
20058
- this.themeService.register(t);
20059
- this.dimensionProvider.setSettings({ originItemSize: this.themeService.rowSize }, 'rgRow');
20060
- this.dimensionProvider.setSettings({ originItemSize: this.colSize }, 'rgCol');
20061
- // if theme change we need to reapply row size and reset viewport
20062
- if (!init) {
20063
- // clear existing data
20064
- this.dimensionProvider.setSettings({ originItemSize: this.themeService.rowSize }, 'rgRow');
20065
- this.rowDefChanged(
20066
- // for cases when some custom size present and not
20067
- this.rowDefinitions, this.rowDefinitions, 'theme', true);
20516
+ this.themeService.setDefinitions(definitions);
20517
+ this.applyTheme(this.theme, false, true, 'themeDefinitions');
20518
+ }
20519
+ applyTheme(theme, init, emitEvent, reason) {
20520
+ var _a;
20521
+ const resolvedTheme = this.themeService.register(theme);
20522
+ const rowSize = this.themeService.rowSize;
20523
+ const densityChanged = this.appliedThemeRowSize !== rowSize;
20524
+ const hadAppliedTheme = this.appliedThemeRowSize !== undefined;
20525
+ this.appliedThemeRowSize = rowSize;
20526
+ this.themeStyles = this.getThemeStyles();
20527
+ if (densityChanged) {
20528
+ (_a = this.dimensionProvider) === null || _a === void 0 ? void 0 : _a.setSettings({ originItemSize: rowSize }, 'rgRow');
20529
+ if (!init && hadAppliedTheme) {
20530
+ this.rowDefChanged(this.rowDefinitions, this.rowDefinitions, reason, true);
20531
+ }
20532
+ }
20533
+ if (emitEvent) {
20534
+ this.afterthemechanged.emit(resolvedTheme.name);
20068
20535
  }
20069
- this.afterthemechanged.emit(t);
20536
+ }
20537
+ getThemeStyles() {
20538
+ const styles = {
20539
+ '--rg-theme-row-size': `${this.themeService.rowSize}px`,
20540
+ };
20541
+ for (const [name, value] of Object.entries(this.themeService.theme.tokens)) {
20542
+ const cssVariable = themeTokenCssVariables[name];
20543
+ if (cssVariable && value) {
20544
+ styles[cssVariable] = value;
20545
+ }
20546
+ }
20547
+ return styles;
20070
20548
  }
20071
20549
  dataSourceChanged(newVal = [], _, watchName) {
20072
20550
  if (!this.dataProvider) {
@@ -20303,9 +20781,11 @@ class RevoGridComponent {
20303
20781
  this.themeService = new ThemeService({
20304
20782
  rowSize: this.rowSize,
20305
20783
  });
20784
+ this.themeService.setDefinitions(this.themeDefinitions);
20306
20785
  this.dimensionProvider = new DimensionProvider(this.viewportProvider, {
20307
20786
  realSizeChanged: (k) => this.contentsizechanged.emit(k),
20308
20787
  });
20788
+ this.dimensionProvider.setSettings({ originItemSize: getColumnSize(this.colSize) }, 'rgCol');
20309
20789
  this.columnProvider = new ColumnDataProvider();
20310
20790
  this.selectionStoreConnector = new SelectionStoreConnector();
20311
20791
  this.dataProvider = new DataProvider(this.dimensionProvider);
@@ -20423,7 +20903,7 @@ class RevoGridComponent {
20423
20903
  const dimensions = this.dimensionProvider.stores;
20424
20904
  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) }));
20425
20905
  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) }));
20426
- 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) => {
20906
+ 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) => {
20427
20907
  var _a;
20428
20908
  if (e.currentTarget === e.target) {
20429
20909
  (_a = this.viewport) === null || _a === void 0 ? void 0 : _a.clearEdit();
@@ -20452,9 +20932,15 @@ class RevoGridComponent {
20452
20932
  "rowSize": [{
20453
20933
  "rowSizeChanged": 0
20454
20934
  }],
20935
+ "colSize": [{
20936
+ "colSizeChanged": 0
20937
+ }],
20455
20938
  "theme": [{
20456
20939
  "themeChanged": 0
20457
20940
  }],
20941
+ "themeDefinitions": [{
20942
+ "themeDefinitionsChanged": 0
20943
+ }],
20458
20944
  "source": [{
20459
20945
  "dataSourceChanged": 0
20460
20946
  }],
@@ -20526,6 +21012,7 @@ class RevoGridComponent {
20526
21012
  "plugins": [16],
20527
21013
  "columnTypes": [16],
20528
21014
  "theme": [1537],
21015
+ "themeDefinitions": [16],
20529
21016
  "rowClass": [513, "row-class"],
20530
21017
  "autoSizeColumn": [4, "auto-size-column"],
20531
21018
  "filter": [4],
@@ -20968,7 +21455,7 @@ class RevogrData {
20968
21455
  }; }
20969
21456
  }
20970
21457
 
20971
- 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}`;
21458
+ 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}`;
20972
21459
 
20973
21460
  /**
20974
21461
  * Focus component. Shows focus layer around the cell that is currently in focus.
@@ -21130,7 +21617,7 @@ function throttle(func, wait, options) {
21130
21617
  });
21131
21618
  }
21132
21619
 
21133
- 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}`;
21620
+ 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}`;
21134
21621
 
21135
21622
  /**
21136
21623
  * Temporary range selection component. Shows temporary range selection.
@@ -21283,7 +21770,7 @@ const HeaderGroupRenderer = (p) => {
21283
21770
  return (hAsync(HeaderCellRenderer, { data: Object.assign(Object.assign({}, p.group), { prop: '', providers: p.providers, index: p.start }), props: groupProps, additionalData: p.additionalData }));
21284
21771
  };
21285
21772
 
21286
- 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}`;
21773
+ 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}`;
21287
21774
 
21288
21775
  class RevogrHeaderComponent {
21289
21776
  constructor(hostRef) {
@@ -22066,7 +22553,7 @@ class GridResizeService {
22066
22553
  }
22067
22554
  }
22068
22555
 
22069
- 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%}`;
22556
+ 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%}`;
22070
22557
 
22071
22558
  /**
22072
22559
  * Viewport scroll component for RevoGrid
@@ -22570,7 +23057,7 @@ var NAMESPACE = (
22570
23057
  );
22571
23058
 
22572
23059
  /*
22573
- Stencil Hydrate Runner v4.43.2 | MIT Licensed | https://stenciljs.com
23060
+ Stencil Hydrate Runner v4.43.5 | MIT Licensed | https://stenciljs.com
22574
23061
  */
22575
23062
  var __create = Object.create;
22576
23063
  var __defProp = Object.defineProperty;
@@ -23901,11 +24388,11 @@ var fromCodePoint = (
23901
24388
  }
23902
24389
  );
23903
24390
  function replaceCodePoint(codePoint) {
23904
- var _a2;
24391
+ var _a3;
23905
24392
  if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
23906
24393
  return 65533;
23907
24394
  }
23908
- return (_a2 = decodeMap.get(codePoint)) !== null && _a2 !== void 0 ? _a2 : codePoint;
24395
+ return (_a3 = decodeMap.get(codePoint)) !== null && _a3 !== void 0 ? _a3 : codePoint;
23909
24396
  }
23910
24397
 
23911
24398
  // node_modules/entities/lib/esm/decode.js
@@ -24102,9 +24589,9 @@ var EntityDecoder = class {
24102
24589
  * @returns The number of characters that were consumed.
24103
24590
  */
24104
24591
  emitNumericEntity(lastCp, expectedLength) {
24105
- var _a2;
24592
+ var _a3;
24106
24593
  if (this.consumed <= expectedLength) {
24107
- (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.absenceOfDigitsInNumericCharacterReference(this.consumed);
24594
+ (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.absenceOfDigitsInNumericCharacterReference(this.consumed);
24108
24595
  return 0;
24109
24596
  }
24110
24597
  if (lastCp === CharCodes.SEMI) {
@@ -24164,11 +24651,11 @@ var EntityDecoder = class {
24164
24651
  * @returns The number of characters consumed.
24165
24652
  */
24166
24653
  emitNotTerminatedNamedEntity() {
24167
- var _a2;
24654
+ var _a3;
24168
24655
  const { result, decodeTree } = this;
24169
24656
  const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;
24170
24657
  this.emitNamedEntityData(result, valueLength, this.consumed);
24171
- (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.missingSemicolonAfterCharacterReference();
24658
+ (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.missingSemicolonAfterCharacterReference();
24172
24659
  return this.consumed;
24173
24660
  }
24174
24661
  /**
@@ -24196,7 +24683,7 @@ var EntityDecoder = class {
24196
24683
  * @returns The number of characters consumed.
24197
24684
  */
24198
24685
  end() {
24199
- var _a2;
24686
+ var _a3;
24200
24687
  switch (this.state) {
24201
24688
  case EntityDecoderState.NamedEntity: {
24202
24689
  return this.result !== 0 && (this.decodeMode !== DecodingMode.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
@@ -24209,7 +24696,7 @@ var EntityDecoder = class {
24209
24696
  return this.emitNumericEntity(0, 3);
24210
24697
  }
24211
24698
  case EntityDecoderState.NumericStart: {
24212
- (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.absenceOfDigitsInNumericCharacterReference(this.consumed);
24699
+ (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.absenceOfDigitsInNumericCharacterReference(this.consumed);
24213
24700
  return 0;
24214
24701
  }
24215
24702
  case EntityDecoderState.EntityStart: {
@@ -24690,8 +25177,8 @@ var TAG_NAME_TO_ID = /* @__PURE__ */ new Map([
24690
25177
  [TAG_NAMES.XMP, TAG_ID.XMP]
24691
25178
  ]);
24692
25179
  function getTagID(tagName) {
24693
- var _a2;
24694
- return (_a2 = TAG_NAME_TO_ID.get(tagName)) !== null && _a2 !== void 0 ? _a2 : TAG_ID.UNKNOWN;
25180
+ var _a3;
25181
+ return (_a3 = TAG_NAME_TO_ID.get(tagName)) !== null && _a3 !== void 0 ? _a3 : TAG_ID.UNKNOWN;
24695
25182
  }
24696
25183
  var $ = TAG_ID;
24697
25184
  var SPECIAL_ELEMENTS = {
@@ -24958,8 +25445,8 @@ var Tokenizer = class {
24958
25445
  }
24959
25446
  //Errors
24960
25447
  _err(code, cpOffset = 0) {
24961
- var _a2, _b;
24962
- (_b = (_a2 = this.handler).onParseError) === null || _b === void 0 ? void 0 : _b.call(_a2, this.preprocessor.getError(code, cpOffset));
25448
+ var _a3, _b;
25449
+ (_b = (_a3 = this.handler).onParseError) === null || _b === void 0 ? void 0 : _b.call(_a3, this.preprocessor.getError(code, cpOffset));
24963
25450
  }
24964
25451
  // NOTE: `offset` may never run across line boundaries.
24965
25452
  getCurrentLocation(offset) {
@@ -25101,13 +25588,13 @@ var Tokenizer = class {
25101
25588
  this.currentLocation = this.getCurrentLocation(0);
25102
25589
  }
25103
25590
  _leaveAttrName() {
25104
- var _a2;
25591
+ var _a3;
25105
25592
  var _b;
25106
25593
  const token = this.currentToken;
25107
25594
  if (getTokenAttr(token, this.currentAttr.name) === null) {
25108
25595
  token.attrs.push(this.currentAttr);
25109
25596
  if (token.location && this.currentLocation) {
25110
- const attrLocations = (_a2 = (_b = token.location).attrs) !== null && _a2 !== void 0 ? _a2 : _b.attrs = /* @__PURE__ */ Object.create(null);
25597
+ const attrLocations = (_a3 = (_b = token.location).attrs) !== null && _a3 !== void 0 ? _a3 : _b.attrs = /* @__PURE__ */ Object.create(null);
25111
25598
  attrLocations[this.currentAttr.name] = this.currentLocation;
25112
25599
  this._leaveAttrValue();
25113
25600
  }
@@ -28455,10 +28942,10 @@ var Parser = class {
28455
28942
  //Errors
28456
28943
  /** @internal */
28457
28944
  _err(token, code, beforeToken) {
28458
- var _a2;
28945
+ var _a3;
28459
28946
  if (!this.onParseError)
28460
28947
  return;
28461
- const loc = (_a2 = token.location) !== null && _a2 !== void 0 ? _a2 : BASE_LOC;
28948
+ const loc = (_a3 = token.location) !== null && _a3 !== void 0 ? _a3 : BASE_LOC;
28462
28949
  const err2 = {
28463
28950
  code,
28464
28951
  startLine: loc.startLine,
@@ -28473,18 +28960,18 @@ var Parser = class {
28473
28960
  //Stack events
28474
28961
  /** @internal */
28475
28962
  onItemPush(node, tid, isTop) {
28476
- var _a2, _b;
28477
- (_b = (_a2 = this.treeAdapter).onItemPush) === null || _b === void 0 ? void 0 : _b.call(_a2, node);
28963
+ var _a3, _b;
28964
+ (_b = (_a3 = this.treeAdapter).onItemPush) === null || _b === void 0 ? void 0 : _b.call(_a3, node);
28478
28965
  if (isTop && this.openElements.stackTop > 0)
28479
28966
  this._setContextModes(node, tid);
28480
28967
  }
28481
28968
  /** @internal */
28482
28969
  onItemPop(node, isTop) {
28483
- var _a2, _b;
28970
+ var _a3, _b;
28484
28971
  if (this.options.sourceCodeLocationInfo) {
28485
28972
  this._setEndLocation(node, this.currentToken);
28486
28973
  }
28487
- (_b = (_a2 = this.treeAdapter).onItemPop) === null || _b === void 0 ? void 0 : _b.call(_a2, node, this.openElements.current);
28974
+ (_b = (_a3 = this.treeAdapter).onItemPop) === null || _b === void 0 ? void 0 : _b.call(_a3, node, this.openElements.current);
28488
28975
  if (isTop) {
28489
28976
  let current;
28490
28977
  let currentTagId;
@@ -30558,9 +31045,9 @@ function eofInBody(p, token) {
30558
31045
  }
30559
31046
  }
30560
31047
  function endTagInText(p, token) {
30561
- var _a2;
31048
+ var _a3;
30562
31049
  if (token.tagID === TAG_ID.SCRIPT) {
30563
- (_a2 = p.scriptHandler) === null || _a2 === void 0 ? void 0 : _a2.call(p, p.openElements.current);
31050
+ (_a3 = p.scriptHandler) === null || _a3 === void 0 ? void 0 : _a3.call(p, p.openElements.current);
30564
31051
  }
30565
31052
  p.openElements.pop();
30566
31053
  p.insertionMode = p.originalInsertionMode;
@@ -31222,7 +31709,7 @@ function startTagAfterBody(p, token) {
31222
31709
  }
31223
31710
  }
31224
31711
  function endTagAfterBody(p, token) {
31225
- var _a2;
31712
+ var _a3;
31226
31713
  if (token.tagID === TAG_ID.HTML) {
31227
31714
  if (!p.fragmentContext) {
31228
31715
  p.insertionMode = InsertionMode.AFTER_AFTER_BODY;
@@ -31230,7 +31717,7 @@ function endTagAfterBody(p, token) {
31230
31717
  if (p.options.sourceCodeLocationInfo && p.openElements.tagIDs[0] === TAG_ID.HTML) {
31231
31718
  p._setEndLocation(p.openElements.items[0], token);
31232
31719
  const bodyElement = p.openElements.items[1];
31233
- if (bodyElement && !((_a2 = p.treeAdapter.getNodeSourceCodeLocation(bodyElement)) === null || _a2 === void 0 ? void 0 : _a2.endTag)) {
31720
+ if (bodyElement && !((_a3 = p.treeAdapter.getNodeSourceCodeLocation(bodyElement)) === null || _a3 === void 0 ? void 0 : _a3.endTag)) {
31234
31721
  p._setEndLocation(bodyElement, token);
31235
31722
  }
31236
31723
  }
@@ -33094,7 +33581,7 @@ function serializeNodeToHtml(elm, serializationOptions = {}) {
33094
33581
  }
33095
33582
  var shadowRootTag = "mock:shadow-root";
33096
33583
  function* streamToHtml(node, opts, output) {
33097
- var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
33584
+ var _a3, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
33098
33585
  const isShadowRoot = node.nodeType === 11 /* DOCUMENT_FRAGMENT_NODE */;
33099
33586
  if (node.nodeType === 1 /* ELEMENT_NODE */ || isShadowRoot) {
33100
33587
  const tagName = isShadowRoot ? shadowRootTag : getTagName(node);
@@ -33103,7 +33590,7 @@ function* streamToHtml(node, opts, output) {
33103
33590
  }
33104
33591
  const ignoreTag = opts.excludeTags != null && opts.excludeTags.includes(tagName);
33105
33592
  if (ignoreTag === false) {
33106
- const isWithinWhitespaceSensitiveNode = opts.newLines || ((_a2 = opts.indentSpaces) != null ? _a2 : 0) > 0 ? isWithinWhitespaceSensitive(node) : false;
33593
+ const isWithinWhitespaceSensitiveNode = opts.newLines || ((_a3 = opts.indentSpaces) != null ? _a3 : 0) > 0 ? isWithinWhitespaceSensitive(node) : false;
33107
33594
  if (opts.newLines && !isWithinWhitespaceSensitiveNode) {
33108
33595
  yield "\n";
33109
33596
  output.currentLineWidth = 0;
@@ -33622,9 +34109,7 @@ var MockNode2 = class {
33622
34109
  const firstChild = this.firstChild;
33623
34110
  items.forEach((item) => {
33624
34111
  const isNode = typeof item === "object" && item !== null && "nodeType" in item;
33625
- if (firstChild) {
33626
- this.insertBefore(isNode ? item : this.ownerDocument.createTextNode(String(item)), firstChild);
33627
- }
34112
+ this.insertBefore(isNode ? item : this.ownerDocument.createTextNode(String(item)), firstChild);
33628
34113
  });
33629
34114
  }
33630
34115
  cloneNode(deep) {
@@ -33673,8 +34158,8 @@ var MockNode2 = class {
33673
34158
  return null;
33674
34159
  }
33675
34160
  get nodeValue() {
33676
- var _a2;
33677
- return (_a2 = this._nodeValue) != null ? _a2 : "";
34161
+ var _a3;
34162
+ return (_a3 = this._nodeValue) != null ? _a3 : "";
33678
34163
  }
33679
34164
  set nodeValue(value) {
33680
34165
  this._nodeValue = value;
@@ -33734,8 +34219,8 @@ var MockNode2 = class {
33734
34219
  return null;
33735
34220
  }
33736
34221
  get textContent() {
33737
- var _a2;
33738
- return (_a2 = this._nodeValue) != null ? _a2 : "";
34222
+ var _a3;
34223
+ return (_a3 = this._nodeValue) != null ? _a3 : "";
33739
34224
  }
33740
34225
  set textContent(value) {
33741
34226
  this._nodeValue = String(value);
@@ -33794,9 +34279,9 @@ var MockElement = class extends MockNode2 {
33794
34279
  addEventListener(this, type, handler);
33795
34280
  }
33796
34281
  attachShadow(_opts) {
33797
- var _a2;
34282
+ var _a3;
33798
34283
  const shadowRoot = this.ownerDocument.createDocumentFragment();
33799
- shadowRoot.delegatesFocus = (_a2 = _opts.delegatesFocus) != null ? _a2 : false;
34284
+ shadowRoot.delegatesFocus = (_a3 = _opts.delegatesFocus) != null ? _a3 : false;
33800
34285
  this.shadowRoot = shadowRoot;
33801
34286
  return shadowRoot;
33802
34287
  }
@@ -33972,8 +34457,8 @@ var MockElement = class extends MockNode2 {
33972
34457
  });
33973
34458
  }
33974
34459
  set innerHTML(html) {
33975
- var _a2;
33976
- if (NON_ESCAPABLE_CONTENT.has((_a2 = this.nodeName) != null ? _a2 : "") === true) {
34460
+ var _a3;
34461
+ if (NON_ESCAPABLE_CONTENT.has((_a3 = this.nodeName) != null ? _a3 : "") === true) {
33977
34462
  setTextContent(this, html);
33978
34463
  } else {
33979
34464
  for (let i = this.childNodes.length - 1; i >= 0; i--) {
@@ -34216,8 +34701,8 @@ var MockElement = class extends MockNode2 {
34216
34701
  this.setAttributeNS(null, "tabindex", value);
34217
34702
  }
34218
34703
  get tagName() {
34219
- var _a2;
34220
- return (_a2 = this.nodeName) != null ? _a2 : "";
34704
+ var _a3;
34705
+ return (_a3 = this.nodeName) != null ? _a3 : "";
34221
34706
  }
34222
34707
  set tagName(value) {
34223
34708
  this.nodeName = value;
@@ -34439,11 +34924,11 @@ function getElementsByClassName(elm, classNames, foundElms) {
34439
34924
  }
34440
34925
  }
34441
34926
  function getElementsByTagName(elm, tagName, foundElms) {
34442
- var _a2;
34927
+ var _a3;
34443
34928
  const children = elm.children;
34444
34929
  for (let i = 0, ii = children.length; i < ii; i++) {
34445
34930
  const childElm = children[i];
34446
- if (tagName === "*" || ((_a2 = childElm.nodeName) != null ? _a2 : "").toLowerCase() === tagName) {
34931
+ if (tagName === "*" || ((_a3 = childElm.nodeName) != null ? _a3 : "").toLowerCase() === tagName) {
34447
34932
  foundElms.push(childElm);
34448
34933
  }
34449
34934
  getElementsByTagName(childElm, tagName, foundElms);
@@ -34480,8 +34965,8 @@ var MockHTMLElement = class extends MockElement {
34480
34965
  super(ownerDocument, typeof nodeName === "string" ? nodeName.toUpperCase() : null);
34481
34966
  }
34482
34967
  get tagName() {
34483
- var _a2;
34484
- return (_a2 = this.nodeName) != null ? _a2 : "";
34968
+ var _a3;
34969
+ return (_a3 = this.nodeName) != null ? _a3 : "";
34485
34970
  }
34486
34971
  set tagName(value) {
34487
34972
  this.nodeName = value;
@@ -34939,10 +35424,10 @@ var MockLabelElement = class extends MockHTMLElement {
34939
35424
  this.setAttributeNS(null, "for", value);
34940
35425
  }
34941
35426
  get control() {
34942
- var _a2, _b;
35427
+ var _a3, _b;
34943
35428
  const forAttr = this.htmlFor;
34944
35429
  if (forAttr) {
34945
- return (_b = (_a2 = this.ownerDocument) == null ? void 0 : _a2.getElementById(forAttr)) != null ? _b : null;
35430
+ return (_b = (_a3 = this.ownerDocument) == null ? void 0 : _a3.getElementById(forAttr)) != null ? _b : null;
34946
35431
  }
34947
35432
  const labelableSelector = 'button, input:not([type="hidden"]), meter, output, progress, select, textarea';
34948
35433
  return this.querySelector(labelableSelector);
@@ -37450,18 +37935,34 @@ var RemoteValue = class _RemoteValue {
37450
37935
  };
37451
37936
 
37452
37937
  // src/utils/serialize.ts
37938
+ function encodeBase64Unicode(str) {
37939
+ const utf8Bytes = new TextEncoder().encode(str);
37940
+ let binary = "";
37941
+ for (let i = 0; i < utf8Bytes.length; i++) {
37942
+ binary += String.fromCharCode(utf8Bytes[i]);
37943
+ }
37944
+ return btoa(binary);
37945
+ }
37946
+ function decodeBase64Unicode(base64) {
37947
+ const binary = atob(base64);
37948
+ const bytes = new Uint8Array(binary.length);
37949
+ for (let i = 0; i < binary.length; i++) {
37950
+ bytes[i] = binary.charCodeAt(i);
37951
+ }
37952
+ return new TextDecoder().decode(bytes);
37953
+ }
37453
37954
  function serializeProperty(value) {
37454
37955
  if (["string", "boolean", "undefined"].includes(typeof value) || typeof value === "number" && value !== Infinity && value !== -Infinity && !isNaN(value)) {
37455
37956
  return value;
37456
37957
  }
37457
37958
  const arg = LocalValue.getArgument(value);
37458
- return SERIALIZED_PREFIX + btoa(JSON.stringify(arg));
37959
+ return SERIALIZED_PREFIX + encodeBase64Unicode(JSON.stringify(arg));
37459
37960
  }
37460
37961
  function deserializeProperty(value) {
37461
37962
  if (typeof value !== "string" || !value.startsWith(SERIALIZED_PREFIX)) {
37462
37963
  return value;
37463
37964
  }
37464
- return RemoteValue.fromLocalValue(JSON.parse(atob(value.slice(SERIALIZED_PREFIX.length))));
37965
+ return RemoteValue.fromLocalValue(JSON.parse(decodeBase64Unicode(value.slice(SERIALIZED_PREFIX.length))));
37465
37966
  }
37466
37967
  var CAPTURE_EVENT_SUFFIX = "Capture";
37467
37968
  var CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + "$");
@@ -37655,8 +38156,35 @@ var unescape = (s, { windowsPathsNoEscape = false } = {}) => {
37655
38156
  };
37656
38157
 
37657
38158
  // node_modules/minimatch/dist/esm/ast.js
38159
+ var _a2;
37658
38160
  var types = /* @__PURE__ */ new Set(["!", "?", "+", "*", "@"]);
37659
38161
  var isExtglobType = (c) => types.has(c);
38162
+ var isExtglobAST = (c) => isExtglobType(c.type);
38163
+ var adoptionMap = /* @__PURE__ */ new Map([
38164
+ ["!", ["@"]],
38165
+ ["?", ["?", "@"]],
38166
+ ["@", ["@"]],
38167
+ ["*", ["*", "+", "?", "@"]],
38168
+ ["+", ["+", "@"]]
38169
+ ]);
38170
+ var adoptionWithSpaceMap = /* @__PURE__ */ new Map([
38171
+ ["!", ["?"]],
38172
+ ["@", ["?"]],
38173
+ ["+", ["?", "*"]]
38174
+ ]);
38175
+ var adoptionAnyMap = /* @__PURE__ */ new Map([
38176
+ ["!", ["?", "@"]],
38177
+ ["?", ["?", "@"]],
38178
+ ["@", ["?", "@"]],
38179
+ ["*", ["*", "+", "?", "@"]],
38180
+ ["+", ["+", "@", "?", "*"]]
38181
+ ]);
38182
+ var usurpMap = /* @__PURE__ */ new Map([
38183
+ ["!", /* @__PURE__ */ new Map([["!", "@"]])],
38184
+ ["?", /* @__PURE__ */ new Map([["*", "*"], ["+", "*"]])],
38185
+ ["@", /* @__PURE__ */ new Map([["!", "!"], ["?", "?"], ["@", "@"], ["*", "*"], ["+", "+"]])],
38186
+ ["+", /* @__PURE__ */ new Map([["?", "*"], ["*", "*"]])]
38187
+ ]);
37660
38188
  var startNoTraversal = "(?!(?:^|/)\\.\\.?(?:$|/))";
37661
38189
  var startNoDot = "(?!\\.)";
37662
38190
  var addPatternStart = /* @__PURE__ */ new Set(["[", "."]);
@@ -37666,8 +38194,8 @@ var regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
37666
38194
  var qmark = "[^/]";
37667
38195
  var star = qmark + "*?";
37668
38196
  var starNoEmpty = qmark + "+?";
37669
- var _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, partsToRegExp_fn, parseGlob_fn;
37670
- var _AST = class _AST {
38197
+ 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;
38198
+ var AST = class {
37671
38199
  constructor(type, parent, options = {}) {
37672
38200
  __privateAdd(this, _AST_instances);
37673
38201
  __publicField(this, "type");
@@ -37720,44 +38248,44 @@ var _AST = class _AST {
37720
38248
  for (const p of parts) {
37721
38249
  if (p === "")
37722
38250
  continue;
37723
- if (typeof p !== "string" && !(p instanceof _AST && __privateGet(p, _parent) === this)) {
38251
+ if (typeof p !== "string" && !(p instanceof _a2 && __privateGet(p, _parent) === this)) {
37724
38252
  throw new Error("invalid part: " + p);
37725
38253
  }
37726
38254
  __privateGet(this, _parts).push(p);
37727
38255
  }
37728
38256
  }
37729
38257
  toJSON() {
37730
- var _a2;
38258
+ var _a3;
37731
38259
  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())];
37732
38260
  if (this.isStart() && !this.type)
37733
38261
  ret.unshift([]);
37734
- if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")) {
38262
+ if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.type) === "!")) {
37735
38263
  ret.push({});
37736
38264
  }
37737
38265
  return ret;
37738
38266
  }
37739
38267
  isStart() {
37740
- var _a2;
38268
+ var _a3;
37741
38269
  if (__privateGet(this, _root) === this)
37742
38270
  return true;
37743
- if (!((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.isStart()))
38271
+ if (!((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.isStart()))
37744
38272
  return false;
37745
38273
  if (__privateGet(this, _parentIndex) === 0)
37746
38274
  return true;
37747
38275
  const p = __privateGet(this, _parent);
37748
38276
  for (let i = 0; i < __privateGet(this, _parentIndex); i++) {
37749
38277
  const pp = __privateGet(p, _parts)[i];
37750
- if (!(pp instanceof _AST && pp.type === "!")) {
38278
+ if (!(pp instanceof _a2 && pp.type === "!")) {
37751
38279
  return false;
37752
38280
  }
37753
38281
  }
37754
38282
  return true;
37755
38283
  }
37756
38284
  isEnd() {
37757
- var _a2, _b, _c;
38285
+ var _a3, _b, _c;
37758
38286
  if (__privateGet(this, _root) === this)
37759
38287
  return true;
37760
- if (((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!")
38288
+ if (((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.type) === "!")
37761
38289
  return true;
37762
38290
  if (!((_b = __privateGet(this, _parent)) == null ? void 0 : _b.isEnd()))
37763
38291
  return false;
@@ -37773,16 +38301,16 @@ var _AST = class _AST {
37773
38301
  this.push(part.clone(this));
37774
38302
  }
37775
38303
  clone(parent) {
37776
- const c = new _AST(this.type, parent);
38304
+ const c = new _a2(this.type, parent);
37777
38305
  for (const p of __privateGet(this, _parts)) {
37778
38306
  c.copyIn(p);
37779
38307
  }
37780
38308
  return c;
37781
38309
  }
37782
38310
  static fromGlob(pattern, options = {}) {
37783
- var _a2;
37784
- const ast = new _AST(null, void 0, options);
37785
- __privateMethod(_a2 = _AST, _AST_static, parseAST_fn).call(_a2, pattern, ast, 0, options);
38311
+ var _a3;
38312
+ const ast = new _a2(null, void 0, options);
38313
+ __privateMethod(_a3 = _a2, _AST_static, parseAST_fn).call(_a3, pattern, ast, 0, options, 0);
37786
38314
  return ast;
37787
38315
  }
37788
38316
  // returns the regular expression if there's magic, or the unescaped
@@ -37875,15 +38403,17 @@ var _AST = class _AST {
37875
38403
  // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root
37876
38404
  // or start or whatever) and prepend ^ or / at the Regexp construction.
37877
38405
  toRegExpSource(allowDot) {
37878
- var _a2;
38406
+ var _a3;
37879
38407
  const dot = allowDot != null ? allowDot : !!__privateGet(this, _options).dot;
37880
- if (__privateGet(this, _root) === this)
38408
+ if (__privateGet(this, _root) === this) {
38409
+ __privateMethod(this, _AST_instances, flatten_fn).call(this);
37881
38410
  __privateMethod(this, _AST_instances, fillNegs_fn).call(this);
37882
- if (!this.type) {
38411
+ }
38412
+ if (!isExtglobAST(this)) {
37883
38413
  const noEmpty = this.isStart() && this.isEnd();
37884
38414
  const src = __privateGet(this, _parts).map((p) => {
37885
- var _a3;
37886
- const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a3 = _AST, _AST_static, parseGlob_fn).call(_a3, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
38415
+ var _a4;
38416
+ const [re, _, hasMagic, uflag] = typeof p === "string" ? __privateMethod(_a4 = _a2, _AST_static, parseGlob_fn).call(_a4, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);
37887
38417
  __privateSet(this, _hasMagic, __privateGet(this, _hasMagic) || hasMagic);
37888
38418
  __privateSet(this, _uflag, __privateGet(this, _uflag) || uflag);
37889
38419
  return re;
@@ -37906,7 +38436,7 @@ var _AST = class _AST {
37906
38436
  }
37907
38437
  }
37908
38438
  let end = "";
37909
- if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a2 = __privateGet(this, _parent)) == null ? void 0 : _a2.type) === "!") {
38439
+ if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a3 = __privateGet(this, _parent)) == null ? void 0 : _a3.type) === "!") {
37910
38440
  end = "(?:$|\\/)";
37911
38441
  }
37912
38442
  const final2 = start2 + src + end;
@@ -37922,9 +38452,10 @@ var _AST = class _AST {
37922
38452
  let body = __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, dot);
37923
38453
  if (this.isStart() && this.isEnd() && !body && this.type !== "!") {
37924
38454
  const s = this.toString();
37925
- __privateSet(this, _parts, [s]);
37926
- this.type = null;
37927
- __privateSet(this, _hasMagic, void 0);
38455
+ const me = this;
38456
+ __privateSet(me, _parts, [s]);
38457
+ me.type = null;
38458
+ __privateSet(me, _hasMagic, void 0);
37928
38459
  return [s, unescape(this.toString()), false, false];
37929
38460
  }
37930
38461
  let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ? "" : __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, true);
@@ -37993,8 +38524,9 @@ fillNegs_fn = function() {
37993
38524
  return this;
37994
38525
  };
37995
38526
  _AST_static = new WeakSet();
37996
- parseAST_fn = function(str, ast, pos, opt) {
37997
- var _a2, _b;
38527
+ parseAST_fn = function(str, ast, pos, opt, extDepth) {
38528
+ var _a3, _b, _c, _d, _e;
38529
+ const maxDepth = (_a3 = opt.maxExtglobRecursion) != null ? _a3 : 2;
37998
38530
  let escaping = false;
37999
38531
  let inBrace = false;
38000
38532
  let braceStart = -1;
@@ -38026,11 +38558,12 @@ parseAST_fn = function(str, ast, pos, opt) {
38026
38558
  acc2 += c;
38027
38559
  continue;
38028
38560
  }
38029
- if (!opt.noext && isExtglobType(c) && str.charAt(i2) === "(") {
38561
+ const doRecurse = !opt.noext && isExtglobType(c) && str.charAt(i2) === "(" && extDepth <= maxDepth;
38562
+ if (doRecurse) {
38030
38563
  ast.push(acc2);
38031
38564
  acc2 = "";
38032
- const ext2 = new _AST(c, ast);
38033
- i2 = __privateMethod(_a2 = _AST, _AST_static, parseAST_fn).call(_a2, str, ext2, i2, opt);
38565
+ const ext2 = new _a2(c, ast);
38566
+ i2 = __privateMethod(_b = _a2, _AST_static, parseAST_fn).call(_b, str, ext2, i2, opt, extDepth + 1);
38034
38567
  ast.push(ext2);
38035
38568
  continue;
38036
38569
  }
@@ -38040,7 +38573,7 @@ parseAST_fn = function(str, ast, pos, opt) {
38040
38573
  return i2;
38041
38574
  }
38042
38575
  let i = pos + 1;
38043
- let part = new _AST(null, ast);
38576
+ let part = new _a2(null, ast);
38044
38577
  const parts = [];
38045
38578
  let acc = "";
38046
38579
  while (i < str.length) {
@@ -38067,19 +38600,22 @@ parseAST_fn = function(str, ast, pos, opt) {
38067
38600
  acc += c;
38068
38601
  continue;
38069
38602
  }
38070
- if (isExtglobType(c) && str.charAt(i) === "(") {
38603
+ const doRecurse = isExtglobType(c) && str.charAt(i) === "(" && /* c8 ignore start - the maxDepth is sufficient here */
38604
+ (extDepth <= maxDepth || ast && __privateMethod(_c = ast, _AST_instances, canAdoptType_fn).call(_c, c));
38605
+ if (doRecurse) {
38606
+ const depthAdd = ast && __privateMethod(_d = ast, _AST_instances, canAdoptType_fn).call(_d, c) ? 0 : 1;
38071
38607
  part.push(acc);
38072
38608
  acc = "";
38073
- const ext2 = new _AST(c, part);
38609
+ const ext2 = new _a2(c, part);
38074
38610
  part.push(ext2);
38075
- i = __privateMethod(_b = _AST, _AST_static, parseAST_fn).call(_b, str, ext2, i, opt);
38611
+ i = __privateMethod(_e = _a2, _AST_static, parseAST_fn).call(_e, str, ext2, i, opt, extDepth + depthAdd);
38076
38612
  continue;
38077
38613
  }
38078
38614
  if (c === "|") {
38079
38615
  part.push(acc);
38080
38616
  acc = "";
38081
38617
  parts.push(part);
38082
- part = new _AST(null, ast);
38618
+ part = new _a2(null, ast);
38083
38619
  continue;
38084
38620
  }
38085
38621
  if (c === ")") {
@@ -38098,6 +38634,100 @@ parseAST_fn = function(str, ast, pos, opt) {
38098
38634
  __privateSet(ast, _parts, [str.substring(pos - 1)]);
38099
38635
  return i;
38100
38636
  };
38637
+ canAdoptWithSpace_fn = function(child) {
38638
+ return __privateMethod(this, _AST_instances, canAdopt_fn).call(this, child, adoptionWithSpaceMap);
38639
+ };
38640
+ canAdopt_fn = function(child, map2 = adoptionMap) {
38641
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null) {
38642
+ return false;
38643
+ }
38644
+ const gc = __privateGet(child, _parts)[0];
38645
+ if (!gc || typeof gc !== "object" || gc.type === null) {
38646
+ return false;
38647
+ }
38648
+ return __privateMethod(this, _AST_instances, canAdoptType_fn).call(this, gc.type, map2);
38649
+ };
38650
+ canAdoptType_fn = function(c, map2 = adoptionAnyMap) {
38651
+ var _a3;
38652
+ return !!((_a3 = map2.get(this.type)) == null ? void 0 : _a3.includes(c));
38653
+ };
38654
+ adoptWithSpace_fn = function(child, index) {
38655
+ const gc = __privateGet(child, _parts)[0];
38656
+ const blank = new _a2(null, gc, this.options);
38657
+ __privateGet(blank, _parts).push("");
38658
+ gc.push(blank);
38659
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, child, index);
38660
+ };
38661
+ adopt_fn = function(child, index) {
38662
+ const gc = __privateGet(child, _parts)[0];
38663
+ __privateGet(this, _parts).splice(index, 1, ...__privateGet(gc, _parts));
38664
+ for (const p of __privateGet(gc, _parts)) {
38665
+ if (typeof p === "object")
38666
+ __privateSet(p, _parent, this);
38667
+ }
38668
+ __privateSet(this, _toString, void 0);
38669
+ };
38670
+ canUsurpType_fn = function(c) {
38671
+ const m = usurpMap.get(this.type);
38672
+ return !!(m == null ? void 0 : m.has(c));
38673
+ };
38674
+ canUsurp_fn = function(child) {
38675
+ if (!child || typeof child !== "object" || child.type !== null || __privateGet(child, _parts).length !== 1 || this.type === null || __privateGet(this, _parts).length !== 1) {
38676
+ return false;
38677
+ }
38678
+ const gc = __privateGet(child, _parts)[0];
38679
+ if (!gc || typeof gc !== "object" || gc.type === null) {
38680
+ return false;
38681
+ }
38682
+ return __privateMethod(this, _AST_instances, canUsurpType_fn).call(this, gc.type);
38683
+ };
38684
+ usurp_fn = function(child) {
38685
+ const m = usurpMap.get(this.type);
38686
+ const gc = __privateGet(child, _parts)[0];
38687
+ const nt = m == null ? void 0 : m.get(gc.type);
38688
+ if (!nt)
38689
+ return false;
38690
+ __privateSet(this, _parts, __privateGet(gc, _parts));
38691
+ for (const p of __privateGet(this, _parts)) {
38692
+ if (typeof p === "object")
38693
+ __privateSet(p, _parent, this);
38694
+ }
38695
+ this.type = nt;
38696
+ __privateSet(this, _toString, void 0);
38697
+ __privateSet(this, _emptyExt, false);
38698
+ };
38699
+ flatten_fn = function() {
38700
+ var _a3, _b;
38701
+ if (!isExtglobAST(this)) {
38702
+ for (const p of __privateGet(this, _parts)) {
38703
+ if (typeof p === "object")
38704
+ __privateMethod(_a3 = p, _AST_instances, flatten_fn).call(_a3);
38705
+ }
38706
+ } else {
38707
+ let iterations = 0;
38708
+ let done = false;
38709
+ do {
38710
+ done = true;
38711
+ for (let i = 0; i < __privateGet(this, _parts).length; i++) {
38712
+ const c = __privateGet(this, _parts)[i];
38713
+ if (typeof c === "object") {
38714
+ __privateMethod(_b = c, _AST_instances, flatten_fn).call(_b);
38715
+ if (__privateMethod(this, _AST_instances, canAdopt_fn).call(this, c)) {
38716
+ done = false;
38717
+ __privateMethod(this, _AST_instances, adopt_fn).call(this, c, i);
38718
+ } else if (__privateMethod(this, _AST_instances, canAdoptWithSpace_fn).call(this, c)) {
38719
+ done = false;
38720
+ __privateMethod(this, _AST_instances, adoptWithSpace_fn).call(this, c, i);
38721
+ } else if (__privateMethod(this, _AST_instances, canUsurp_fn).call(this, c)) {
38722
+ done = false;
38723
+ __privateMethod(this, _AST_instances, usurp_fn).call(this, c);
38724
+ }
38725
+ }
38726
+ }
38727
+ } while (!done && ++iterations < 10);
38728
+ }
38729
+ __privateSet(this, _toString, void 0);
38730
+ };
38101
38731
  partsToRegExp_fn = function(dot) {
38102
38732
  return __privateGet(this, _parts).map((p) => {
38103
38733
  if (typeof p === "string") {
@@ -38112,11 +38742,13 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
38112
38742
  let escaping = false;
38113
38743
  let re = "";
38114
38744
  let uflag = false;
38745
+ let inStar = false;
38115
38746
  for (let i = 0; i < glob.length; i++) {
38116
38747
  const c = glob.charAt(i);
38117
38748
  if (escaping) {
38118
38749
  escaping = false;
38119
38750
  re += (reSpecials.has(c) ? "\\" : "") + c;
38751
+ inStar = false;
38120
38752
  continue;
38121
38753
  }
38122
38754
  if (c === "\\") {
@@ -38134,16 +38766,19 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
38134
38766
  uflag = uflag || needUflag;
38135
38767
  i += consumed - 1;
38136
38768
  hasMagic = hasMagic || magic;
38769
+ inStar = false;
38137
38770
  continue;
38138
38771
  }
38139
38772
  }
38140
38773
  if (c === "*") {
38141
- if (noEmpty && glob === "*")
38142
- re += starNoEmpty;
38143
- else
38144
- re += star;
38774
+ if (inStar)
38775
+ continue;
38776
+ inStar = true;
38777
+ re += noEmpty && /^[*]+$/.test(glob) ? starNoEmpty : star;
38145
38778
  hasMagic = true;
38146
38779
  continue;
38780
+ } else {
38781
+ inStar = false;
38147
38782
  }
38148
38783
  if (c === "?") {
38149
38784
  re += qmark;
@@ -38154,8 +38789,8 @@ parseGlob_fn = function(glob, hasMagic, noEmpty = false) {
38154
38789
  }
38155
38790
  return [re, unescape(glob), !!hasMagic, uflag];
38156
38791
  };
38157
- __privateAdd(_AST, _AST_static);
38158
- var AST = _AST;
38792
+ __privateAdd(AST, _AST_static);
38793
+ _a2 = AST;
38159
38794
 
38160
38795
  // node_modules/minimatch/dist/esm/escape.js
38161
38796
  var escape = (s, { windowsPathsNoEscape = false } = {}) => {
@@ -38294,28 +38929,33 @@ var match = (list, pattern, options = {}) => {
38294
38929
  minimatch.match = match;
38295
38930
  var globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/;
38296
38931
  var regExpEscape2 = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
38932
+ var _Minimatch_instances, matchGlobstar_fn, matchGlobStarBodySections_fn, matchOne_fn;
38297
38933
  var Minimatch = class {
38298
- options;
38299
- set;
38300
- pattern;
38301
- windowsPathsNoEscape;
38302
- nonegate;
38303
- negate;
38304
- comment;
38305
- empty;
38306
- preserveMultipleSlashes;
38307
- partial;
38308
- globSet;
38309
- globParts;
38310
- nocase;
38311
- isWindows;
38312
- platform;
38313
- windowsNoMagicRoot;
38314
- regexp;
38315
38934
  constructor(pattern, options = {}) {
38935
+ __privateAdd(this, _Minimatch_instances);
38936
+ __publicField(this, "options");
38937
+ __publicField(this, "set");
38938
+ __publicField(this, "pattern");
38939
+ __publicField(this, "windowsPathsNoEscape");
38940
+ __publicField(this, "nonegate");
38941
+ __publicField(this, "negate");
38942
+ __publicField(this, "comment");
38943
+ __publicField(this, "empty");
38944
+ __publicField(this, "preserveMultipleSlashes");
38945
+ __publicField(this, "partial");
38946
+ __publicField(this, "globSet");
38947
+ __publicField(this, "globParts");
38948
+ __publicField(this, "nocase");
38949
+ __publicField(this, "isWindows");
38950
+ __publicField(this, "platform");
38951
+ __publicField(this, "windowsNoMagicRoot");
38952
+ __publicField(this, "maxGlobstarRecursion");
38953
+ __publicField(this, "regexp");
38954
+ var _a3;
38316
38955
  assertValidPattern(pattern);
38317
38956
  options = options || {};
38318
38957
  this.options = options;
38958
+ this.maxGlobstarRecursion = (_a3 = options.maxGlobstarRecursion) != null ? _a3 : 200;
38319
38959
  this.pattern = pattern;
38320
38960
  this.platform = options.platform || defaultPlatform;
38321
38961
  this.isWindows = this.platform === "win32";
@@ -38583,10 +39223,11 @@ var Minimatch = class {
38583
39223
  for (let i = 0; i < globParts.length - 1; i++) {
38584
39224
  for (let j = i + 1; j < globParts.length; j++) {
38585
39225
  const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);
38586
- if (!matched)
38587
- continue;
38588
- globParts[i] = matched;
38589
- globParts[j] = [];
39226
+ if (matched) {
39227
+ globParts[i] = [];
39228
+ globParts[j] = matched;
39229
+ break;
39230
+ }
38590
39231
  }
38591
39232
  }
38592
39233
  return globParts.filter((gs) => gs.length);
@@ -38647,7 +39288,8 @@ var Minimatch = class {
38647
39288
  // out of pattern, then that's fine, as long as all
38648
39289
  // the parts match.
38649
39290
  matchOne(file, pattern, partial = false) {
38650
- const options = this.options;
39291
+ let fileStartIndex = 0;
39292
+ let patternStartIndex = 0;
38651
39293
  if (this.isWindows) {
38652
39294
  const fileDrive = typeof file[0] === "string" && /^[a-z]:$/i.test(file[0]);
38653
39295
  const fileUNC = !fileDrive && file[0] === "" && file[1] === "" && file[2] === "?" && /^[a-z]:$/i.test(file[3]);
@@ -38656,14 +39298,14 @@ var Minimatch = class {
38656
39298
  const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;
38657
39299
  const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;
38658
39300
  if (typeof fdi === "number" && typeof pdi === "number") {
38659
- const [fd, pd] = [file[fdi], pattern[pdi]];
39301
+ const [fd, pd] = [
39302
+ file[fdi],
39303
+ pattern[pdi]
39304
+ ];
38660
39305
  if (fd.toLowerCase() === pd.toLowerCase()) {
38661
39306
  pattern[pdi] = fd;
38662
- if (pdi > fdi) {
38663
- pattern = pattern.slice(pdi);
38664
- } else if (fdi > pdi) {
38665
- file = file.slice(fdi);
38666
- }
39307
+ patternStartIndex = pdi;
39308
+ fileStartIndex = fdi;
38667
39309
  }
38668
39310
  }
38669
39311
  }
@@ -38671,71 +39313,10 @@ var Minimatch = class {
38671
39313
  if (optimizationLevel >= 2) {
38672
39314
  file = this.levelTwoFileOptimize(file);
38673
39315
  }
38674
- this.debug("matchOne", this, { file, pattern });
38675
- this.debug("matchOne", file.length, pattern.length);
38676
- for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
38677
- this.debug("matchOne loop");
38678
- var p = pattern[pi];
38679
- var f = file[fi];
38680
- this.debug(pattern, p, f);
38681
- if (p === false) {
38682
- return false;
38683
- }
38684
- if (p === GLOBSTAR) {
38685
- this.debug("GLOBSTAR", [pattern, p, f]);
38686
- var fr = fi;
38687
- var pr = pi + 1;
38688
- if (pr === pl) {
38689
- this.debug("** at the end");
38690
- for (; fi < fl; fi++) {
38691
- if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".")
38692
- return false;
38693
- }
38694
- return true;
38695
- }
38696
- while (fr < fl) {
38697
- var swallowee = file[fr];
38698
- this.debug("\nglobstar while", file, fr, pattern, pr, swallowee);
38699
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
38700
- this.debug("globstar found match!", fr, fl, swallowee);
38701
- return true;
38702
- } else {
38703
- if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") {
38704
- this.debug("dot detected!", file, fr, pattern, pr);
38705
- break;
38706
- }
38707
- this.debug("globstar swallow a segment, and continue");
38708
- fr++;
38709
- }
38710
- }
38711
- if (partial) {
38712
- this.debug("\n>>> no match, partial?", file, fr, pattern, pr);
38713
- if (fr === fl) {
38714
- return true;
38715
- }
38716
- }
38717
- return false;
38718
- }
38719
- let hit;
38720
- if (typeof p === "string") {
38721
- hit = f === p;
38722
- this.debug("string match", p, f, hit);
38723
- } else {
38724
- hit = p.test(f);
38725
- this.debug("pattern match", p, f, hit);
38726
- }
38727
- if (!hit)
38728
- return false;
38729
- }
38730
- if (fi === fl && pi === pl) {
38731
- return true;
38732
- } else if (fi === fl) {
38733
- return partial;
38734
- } else if (pi === pl) {
38735
- return fi === fl - 1 && file[fi] === "";
38736
- } else {
38737
- throw new Error("wtf?");
39316
+ if (pattern.includes(GLOBSTAR)) {
39317
+ return __privateMethod(this, _Minimatch_instances, matchGlobstar_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
38738
39318
  }
39319
+ return __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, pattern, partial, fileStartIndex, patternStartIndex);
38739
39320
  }
38740
39321
  braceExpand() {
38741
39322
  return braceExpand(this.pattern, this.options);
@@ -38874,6 +39455,135 @@ var Minimatch = class {
38874
39455
  return minimatch.defaults(def).Minimatch;
38875
39456
  }
38876
39457
  };
39458
+ _Minimatch_instances = new WeakSet();
39459
+ matchGlobstar_fn = function(file, pattern, partial, fileIndex, patternIndex) {
39460
+ const firstgs = pattern.indexOf(GLOBSTAR, patternIndex);
39461
+ const lastgs = pattern.lastIndexOf(GLOBSTAR);
39462
+ const [head, body, tail] = partial ? [
39463
+ pattern.slice(patternIndex, firstgs),
39464
+ pattern.slice(firstgs + 1),
39465
+ []
39466
+ ] : [
39467
+ pattern.slice(patternIndex, firstgs),
39468
+ pattern.slice(firstgs + 1, lastgs),
39469
+ pattern.slice(lastgs + 1)
39470
+ ];
39471
+ if (head.length) {
39472
+ const fileHead = file.slice(fileIndex, fileIndex + head.length);
39473
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, fileHead, head, partial, 0, 0))
39474
+ return false;
39475
+ fileIndex += head.length;
39476
+ }
39477
+ let fileTailMatch = 0;
39478
+ if (tail.length) {
39479
+ if (tail.length + fileIndex > file.length)
39480
+ return false;
39481
+ let tailStart = file.length - tail.length;
39482
+ if (__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0)) {
39483
+ fileTailMatch = tail.length;
39484
+ } else {
39485
+ if (file[file.length - 1] !== "" || fileIndex + tail.length === file.length) {
39486
+ return false;
39487
+ }
39488
+ tailStart--;
39489
+ if (!__privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file, tail, partial, tailStart, 0))
39490
+ return false;
39491
+ fileTailMatch = tail.length + 1;
39492
+ }
39493
+ }
39494
+ if (!body.length) {
39495
+ let sawSome = !!fileTailMatch;
39496
+ for (let i2 = fileIndex; i2 < file.length - fileTailMatch; i2++) {
39497
+ const f = String(file[i2]);
39498
+ sawSome = true;
39499
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
39500
+ return false;
39501
+ }
39502
+ }
39503
+ return partial || sawSome;
39504
+ }
39505
+ const bodySegments = [[[], 0]];
39506
+ let currentBody = bodySegments[0];
39507
+ let nonGsParts = 0;
39508
+ const nonGsPartsSums = [0];
39509
+ for (const b of body) {
39510
+ if (b === GLOBSTAR) {
39511
+ nonGsPartsSums.push(nonGsParts);
39512
+ currentBody = [[], 0];
39513
+ bodySegments.push(currentBody);
39514
+ } else {
39515
+ currentBody[0].push(b);
39516
+ nonGsParts++;
39517
+ }
39518
+ }
39519
+ let i = bodySegments.length - 1;
39520
+ const fileLength = file.length - fileTailMatch;
39521
+ for (const b of bodySegments) {
39522
+ b[1] = fileLength - (nonGsPartsSums[i--] + b[0].length);
39523
+ }
39524
+ return !!__privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex, 0, partial, 0, !!fileTailMatch);
39525
+ };
39526
+ matchGlobStarBodySections_fn = function(file, bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail) {
39527
+ const bs = bodySegments[bodyIndex];
39528
+ if (!bs) {
39529
+ for (let i = fileIndex; i < file.length; i++) {
39530
+ sawTail = true;
39531
+ const f = file[i];
39532
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
39533
+ return false;
39534
+ }
39535
+ }
39536
+ return sawTail;
39537
+ }
39538
+ const [body, after] = bs;
39539
+ while (fileIndex <= after) {
39540
+ const m = __privateMethod(this, _Minimatch_instances, matchOne_fn).call(this, file.slice(0, fileIndex + body.length), body, partial, fileIndex, 0);
39541
+ if (m && globStarDepth < this.maxGlobstarRecursion) {
39542
+ const sub = __privateMethod(this, _Minimatch_instances, matchGlobStarBodySections_fn).call(this, file, bodySegments, fileIndex + body.length, bodyIndex + 1, partial, globStarDepth + 1, sawTail);
39543
+ if (sub !== false)
39544
+ return sub;
39545
+ }
39546
+ const f = file[fileIndex];
39547
+ if (f === "." || f === ".." || !this.options.dot && f.startsWith(".")) {
39548
+ return false;
39549
+ }
39550
+ fileIndex++;
39551
+ }
39552
+ return partial || null;
39553
+ };
39554
+ matchOne_fn = function(file, pattern, partial, fileIndex, patternIndex) {
39555
+ let fi;
39556
+ let pi;
39557
+ let pl;
39558
+ let fl;
39559
+ for (fi = fileIndex, pi = patternIndex, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
39560
+ this.debug("matchOne loop");
39561
+ let p = pattern[pi];
39562
+ let f = file[fi];
39563
+ this.debug(pattern, p, f);
39564
+ if (p === false || p === GLOBSTAR)
39565
+ return false;
39566
+ let hit;
39567
+ if (typeof p === "string") {
39568
+ hit = f === p;
39569
+ this.debug("string match", p, f, hit);
39570
+ } else {
39571
+ hit = p.test(f);
39572
+ this.debug("pattern match", p, f, hit);
39573
+ }
39574
+ if (!hit)
39575
+ return false;
39576
+ }
39577
+ if (fi === fl && pi === pl) {
39578
+ return true;
39579
+ } else if (fi === fl) {
39580
+ return partial;
39581
+ } else if (pi === pl) {
39582
+ return fi === fl - 1 && file[fi] === "";
39583
+ } else {
39584
+ throw new Error("wtf?");
39585
+ }
39586
+ };
38877
39587
  minimatch.AST = AST;
38878
39588
  minimatch.Minimatch = Minimatch;
38879
39589
  minimatch.escape = escape;
@@ -38944,7 +39654,7 @@ var isJsFile = lowerPathParam((p) => p.endsWith(".js") || p.endsWith(".mjs") ||
38944
39654
 
38945
39655
  // src/compiler/html/canonical-link.ts
38946
39656
  var updateCanonicalLink = (doc, href) => {
38947
- var _a2;
39657
+ var _a3;
38948
39658
  let canonicalLinkElm = doc.head.querySelector('link[rel="canonical"]');
38949
39659
  if (typeof href === "string") {
38950
39660
  if (canonicalLinkElm == null) {
@@ -38957,7 +39667,7 @@ var updateCanonicalLink = (doc, href) => {
38957
39667
  if (canonicalLinkElm != null) {
38958
39668
  const existingHref = canonicalLinkElm.getAttribute("href");
38959
39669
  if (!existingHref) {
38960
- (_a2 = canonicalLinkElm.parentNode) == null ? void 0 : _a2.removeChild(canonicalLinkElm);
39670
+ (_a3 = canonicalLinkElm.parentNode) == null ? void 0 : _a3.removeChild(canonicalLinkElm);
38961
39671
  }
38962
39672
  }
38963
39673
  }
@@ -39469,7 +40179,7 @@ var serializeCss = (stylesheet, serializeOpts) => {
39469
40179
  return out.join("");
39470
40180
  };
39471
40181
  var serializeCssVisitNode = (opts, node, index, len) => {
39472
- var _a2;
40182
+ var _a3;
39473
40183
  const nodeType = node.type;
39474
40184
  if (nodeType === 4 /* Declaration */) {
39475
40185
  return serializeCssDeclaration(node, index, len);
@@ -39478,7 +40188,7 @@ var serializeCssVisitNode = (opts, node, index, len) => {
39478
40188
  return serializeCssRule(opts, node);
39479
40189
  }
39480
40190
  if (nodeType === 1 /* Comment */) {
39481
- if (((_a2 = node.comment) == null ? void 0 : _a2[0]) === "!") {
40191
+ if (((_a3 = node.comment) == null ? void 0 : _a3[0]) === "!") {
39482
40192
  return `/*${node.comment}*/`;
39483
40193
  } else {
39484
40194
  return "";
@@ -39526,10 +40236,10 @@ var serializeCssVisitNode = (opts, node, index, len) => {
39526
40236
  return "";
39527
40237
  };
39528
40238
  var serializeCssRule = (opts, node) => {
39529
- var _a2, _b;
40239
+ var _a3, _b;
39530
40240
  const decls = node.declarations;
39531
40241
  const usedSelectors = opts.usedSelectors;
39532
- const selectors = (_b = (_a2 = node.selectors) == null ? void 0 : _a2.slice()) != null ? _b : [];
40242
+ const selectors = (_b = (_a3 = node.selectors) == null ? void 0 : _a3.slice()) != null ? _b : [];
39533
40243
  const hasDecls = decls != null && decls.length > 0;
39534
40244
  const hasNestedRules = node.rules != null && node.rules.length > 0;
39535
40245
  if (!hasDecls && !hasNestedRules) {
@@ -39633,8 +40343,8 @@ var serializeCssKeyframes = (opts, node) => {
39633
40343
  return "@" + (node.vendor || "") + "keyframes " + node.name + "{" + keyframesCss + "}";
39634
40344
  };
39635
40345
  var serializeCssKeyframe = (opts, node) => {
39636
- var _a2, _b;
39637
- return ((_b = (_a2 = node.values) == null ? void 0 : _a2.join(",")) != null ? _b : "") + "{" + serializeCssMapVisit(opts, node.declarations) + "}";
40346
+ var _a3, _b;
40347
+ return ((_b = (_a3 = node.values) == null ? void 0 : _a3.join(",")) != null ? _b : "") + "{" + serializeCssMapVisit(opts, node.declarations) + "}";
39638
40348
  };
39639
40349
  var serializeCssFontFace = (opts, node) => {
39640
40350
  const fontCss = serializeCssMapVisit(opts, node.declarations);
@@ -39658,8 +40368,8 @@ var serializeCssContainer = (opts, node) => {
39658
40368
  return "@container " + removeMediaWhitespace(node.media) + "{" + containerCss + "}";
39659
40369
  };
39660
40370
  var serializeCssPage = (opts, node) => {
39661
- var _a2, _b;
39662
- const sel = (_b = (_a2 = node.selectors) == null ? void 0 : _a2.join(", ")) != null ? _b : "";
40371
+ var _a3, _b;
40372
+ const sel = (_b = (_a3 = node.selectors) == null ? void 0 : _a3.join(", ")) != null ? _b : "";
39663
40373
  return "@page " + sel + "{" + serializeCssMapVisit(opts, node.declarations) + "}";
39664
40374
  };
39665
40375
  var serializeCssDocument = (opts, node) => {
@@ -39706,10 +40416,10 @@ var removeSelectorWhitespace = (selector) => {
39706
40416
  return rtn;
39707
40417
  };
39708
40418
  var removeMediaWhitespace = (media) => {
39709
- var _a2;
40419
+ var _a3;
39710
40420
  let rtn = "";
39711
40421
  let char = "";
39712
- media = (_a2 = media == null ? void 0 : media.trim()) != null ? _a2 : "";
40422
+ media = (_a3 = media == null ? void 0 : media.trim()) != null ? _a3 : "";
39713
40423
  for (let i = 0, l = media.length; i < l; i++) {
39714
40424
  char = media[i];
39715
40425
  if (CSS_WS_REG.test(char)) {