@revolist/revogrid 4.0.29 → 4.0.31

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 (211) hide show
  1. package/dist/cjs/{app-globals-53fde1aa.js → app-globals-067b9262.js} +2 -2
  2. package/dist/cjs/{app-globals-53fde1aa.js.map → app-globals-067b9262.js.map} +1 -1
  3. package/dist/cjs/{base.plugin-32f80cb5.js → base.plugin-75fc9e81.js} +3 -4
  4. package/dist/cjs/base.plugin-75fc9e81.js.map +1 -0
  5. package/dist/cjs/{column.service-52b4cac9.js → column.service-b3b5a4ee.js} +4 -4
  6. package/dist/cjs/{column.service-52b4cac9.js.map → column.service-b3b5a4ee.js.map} +1 -1
  7. package/dist/cjs/{dimension.helpers-ee39d6c4.js → dimension.helpers-8e234f00.js} +193 -193
  8. package/dist/cjs/dimension.helpers-8e234f00.js.map +1 -0
  9. package/dist/cjs/{filter.button-db6cbd2e.js → filter.button-147884a8.js} +2 -2
  10. package/dist/cjs/{filter.button-db6cbd2e.js.map → filter.button-147884a8.js.map} +1 -1
  11. package/dist/cjs/{header-cell-renderer-a3f202a1.js → header-cell-renderer-96a37624.js} +3 -3
  12. package/dist/cjs/{header-cell-renderer-a3f202a1.js.map → header-cell-renderer-96a37624.js.map} +1 -1
  13. package/dist/cjs/{index-84e32c2a.js → index-feb2edd5.js} +193 -185
  14. package/dist/cjs/index-feb2edd5.js.map +1 -0
  15. package/dist/cjs/index.cjs.js +5 -5
  16. package/dist/cjs/{key.utils-ee3d9eab.js → key.utils-be4d0b46.js} +2 -2
  17. package/dist/cjs/{key.utils-ee3d9eab.js.map → key.utils-be4d0b46.js.map} +1 -1
  18. package/dist/cjs/loader.cjs.js +2 -2
  19. package/dist/cjs/revo-grid.cjs.entry.js +11 -11
  20. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
  21. package/dist/cjs/revo-grid.cjs.js +3 -3
  22. package/dist/cjs/revo-grid.cjs.js.map +1 -1
  23. package/dist/cjs/revogr-attribution_6.cjs.entry.js +8 -8
  24. package/dist/cjs/revogr-attribution_6.cjs.entry.js.map +1 -1
  25. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +4 -4
  26. package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -1
  27. package/dist/cjs/revogr-data_4.cjs.entry.js +8 -8
  28. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
  29. package/dist/cjs/revogr-filter-panel.cjs.entry.js +2 -2
  30. package/dist/cjs/{selection.helpers-32abb2a9.js → selection.helpers-032d7192.js} +3 -3
  31. package/dist/cjs/selection.helpers-032d7192.js.map +1 -0
  32. package/dist/cjs/{viewport.store-2ab4e166.js → viewport.store-c4b986f9.js} +2 -2
  33. package/dist/cjs/{viewport.store-2ab4e166.js.map → viewport.store-c4b986f9.js.map} +1 -1
  34. package/dist/collection/collection-manifest.json +1 -1
  35. package/dist/collection/components/data/column.service.js +1 -1
  36. package/dist/collection/components/data/column.service.js.map +1 -1
  37. package/dist/collection/components/data/revogr-data.js +13 -13
  38. package/dist/collection/components/data/revogr-data.js.map +1 -1
  39. package/dist/collection/components/editors/text-editor.js +1 -1
  40. package/dist/collection/components/editors/text-editor.js.map +1 -1
  41. package/dist/collection/components/header/revogr-header.js +8 -8
  42. package/dist/collection/components/header/revogr-header.js.map +1 -1
  43. package/dist/collection/components/order/revogr-order-editor.js +6 -6
  44. package/dist/collection/components/order/revogr-order-editor.js.map +1 -1
  45. package/dist/collection/components/overlay/autofill.service.js.map +1 -1
  46. package/dist/collection/components/overlay/keyboard.service.js.map +1 -1
  47. package/dist/collection/components/overlay/revogr-overlay-selection.js +1 -1
  48. package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -1
  49. package/dist/collection/components/revoGrid/revo-grid.js +9 -9
  50. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
  51. package/dist/collection/components/revoGrid/viewport.service.js.map +1 -1
  52. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +5 -5
  53. package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +1 -1
  54. package/dist/collection/components/selectionFocus/revogr-focus.js +10 -10
  55. package/dist/collection/components/selectionFocus/revogr-focus.js.map +1 -1
  56. package/dist/collection/components/selectionTempRange/revogr-temp-range.js +6 -6
  57. package/dist/collection/components/selectionTempRange/revogr-temp-range.js.map +1 -1
  58. package/dist/collection/components/vnode/vnode-converter.js +2 -2
  59. package/dist/collection/components/vnode/vnode.utils.js.map +1 -1
  60. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -1
  61. package/dist/collection/store/dataSource/data.proxy.js.map +1 -1
  62. package/dist/collection/store/dataSource/data.store.js +1 -1
  63. package/dist/collection/store/dataSource/data.store.js.map +1 -1
  64. package/dist/collection/store/dataSource/trimmed.plugin.js.map +1 -1
  65. package/dist/collection/store/dimension/dimension.store.js +1 -2
  66. package/dist/collection/store/dimension/dimension.store.js.map +1 -1
  67. package/dist/collection/store/selection/selection.store.js +1 -1
  68. package/dist/collection/store/selection/selection.store.js.map +1 -1
  69. package/dist/collection/store/vp/viewport.store.js +1 -1
  70. package/dist/collection/store/vp/viewport.store.js.map +1 -1
  71. package/dist/collection/types/interfaces.js.map +1 -1
  72. package/dist/collection/types/viewport.interfaces.js.map +1 -1
  73. package/dist/collection/utils/store.types.js +2 -0
  74. package/dist/collection/utils/store.types.js.map +1 -0
  75. package/dist/collection/utils/store.utils.js +1 -2
  76. package/dist/collection/utils/store.utils.js.map +1 -1
  77. package/dist/esm/{app-globals-ef1fca59.js → app-globals-c0b06b03.js} +2 -2
  78. package/dist/esm/{app-globals-ef1fca59.js.map → app-globals-c0b06b03.js.map} +1 -1
  79. package/dist/esm/{base.plugin-d0e589d8.js → base.plugin-e6e2bac2.js} +3 -4
  80. package/dist/esm/base.plugin-e6e2bac2.js.map +1 -0
  81. package/dist/esm/{column.service-a826bbd6.js → column.service-ffe99cfc.js} +4 -4
  82. package/dist/esm/{column.service-a826bbd6.js.map → column.service-ffe99cfc.js.map} +1 -1
  83. package/dist/esm/{dimension.helpers-a3065cb1.js → dimension.helpers-c0c2888f.js} +193 -193
  84. package/dist/esm/dimension.helpers-c0c2888f.js.map +1 -0
  85. package/dist/esm/{filter.button-46ce4f80.js → filter.button-f132c10a.js} +2 -2
  86. package/dist/esm/{filter.button-46ce4f80.js.map → filter.button-f132c10a.js.map} +1 -1
  87. package/dist/esm/{header-cell-renderer-19738045.js → header-cell-renderer-cac333a3.js} +3 -3
  88. package/dist/esm/{header-cell-renderer-19738045.js.map → header-cell-renderer-cac333a3.js.map} +1 -1
  89. package/dist/esm/{index-21436631.js → index-e661aeb5.js} +193 -185
  90. package/dist/esm/index-e661aeb5.js.map +1 -0
  91. package/dist/esm/index.js +5 -5
  92. package/dist/esm/{key.utils-7c5d91dd.js → key.utils-9120fde7.js} +2 -2
  93. package/dist/esm/{key.utils-7c5d91dd.js.map → key.utils-9120fde7.js.map} +1 -1
  94. package/dist/esm/loader.js +3 -3
  95. package/dist/esm/revo-grid.entry.js +11 -11
  96. package/dist/esm/revo-grid.entry.js.map +1 -1
  97. package/dist/esm/revo-grid.js +4 -4
  98. package/dist/esm/revo-grid.js.map +1 -1
  99. package/dist/esm/revogr-attribution_6.entry.js +8 -8
  100. package/dist/esm/revogr-attribution_6.entry.js.map +1 -1
  101. package/dist/esm/revogr-clipboard_3.entry.js +4 -4
  102. package/dist/esm/revogr-clipboard_3.entry.js.map +1 -1
  103. package/dist/esm/revogr-data_4.entry.js +8 -8
  104. package/dist/esm/revogr-data_4.entry.js.map +1 -1
  105. package/dist/esm/revogr-filter-panel.entry.js +2 -2
  106. package/dist/esm/{selection.helpers-883ce6bc.js → selection.helpers-0f3ed629.js} +3 -3
  107. package/dist/esm/selection.helpers-0f3ed629.js.map +1 -0
  108. package/dist/esm/{viewport.store-d9e291c5.js → viewport.store-2dc172be.js} +2 -2
  109. package/dist/esm/{viewport.store-d9e291c5.js.map → viewport.store-2dc172be.js.map} +1 -1
  110. package/dist/revo-grid/app-globals-c0b06b03.js +5 -0
  111. package/dist/revo-grid/base.plugin-e6e2bac2.js +5 -0
  112. package/dist/revo-grid/base.plugin-e6e2bac2.js.map +1 -0
  113. package/dist/revo-grid/{column.service-a826bbd6.js → column.service-ffe99cfc.js} +2 -2
  114. package/dist/revo-grid/column.service-ffe99cfc.js.map +1 -0
  115. package/dist/revo-grid/dimension.helpers-c0c2888f.js +5 -0
  116. package/dist/revo-grid/dimension.helpers-c0c2888f.js.map +1 -0
  117. package/dist/revo-grid/{filter.button-46ce4f80.js → filter.button-f132c10a.js} +2 -2
  118. package/dist/revo-grid/{header-cell-renderer-19738045.js → header-cell-renderer-cac333a3.js} +2 -2
  119. package/dist/revo-grid/index-e661aeb5.js +6 -0
  120. package/dist/revo-grid/index-e661aeb5.js.map +1 -0
  121. package/dist/revo-grid/index.esm.js +1 -1
  122. package/dist/revo-grid/{key.utils-7c5d91dd.js → key.utils-9120fde7.js} +2 -2
  123. package/dist/revo-grid/revo-grid.entry.js +1 -1
  124. package/dist/revo-grid/revo-grid.entry.js.map +1 -1
  125. package/dist/revo-grid/revo-grid.esm.js +1 -1
  126. package/dist/revo-grid/revo-grid.esm.js.map +1 -1
  127. package/dist/revo-grid/revogr-attribution_6.entry.js +1 -1
  128. package/dist/revo-grid/revogr-attribution_6.entry.js.map +1 -1
  129. package/dist/revo-grid/revogr-clipboard_3.entry.js +1 -1
  130. package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -1
  131. package/dist/revo-grid/revogr-data_4.entry.js +1 -1
  132. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
  133. package/dist/revo-grid/revogr-filter-panel.entry.js +1 -1
  134. package/dist/revo-grid/{selection.helpers-883ce6bc.js → selection.helpers-0f3ed629.js} +2 -2
  135. package/dist/revo-grid/selection.helpers-0f3ed629.js.map +1 -0
  136. package/dist/revo-grid/{viewport.store-d9e291c5.js → viewport.store-2dc172be.js} +2 -2
  137. package/dist/revo-grid/viewport.store-2dc172be.js.map +1 -0
  138. package/dist/types/components/data/column.service.d.ts +2 -3
  139. package/dist/types/components/data/revogr-data.d.ts +2 -2
  140. package/dist/types/components/editors/text-editor.d.ts +3 -3
  141. package/dist/types/components/header/revogr-header.d.ts +5 -6
  142. package/dist/types/components/order/revogr-order-editor.d.ts +2 -3
  143. package/dist/types/components/overlay/autofill.service.d.ts +2 -1
  144. package/dist/types/components/overlay/keyboard.service.d.ts +1 -1
  145. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +2 -2
  146. package/dist/types/components/revoGrid/revo-grid.d.ts +2 -5
  147. package/dist/types/components/scrollable/revogr-scroll-virtual.d.ts +2 -1
  148. package/dist/types/components/selectionFocus/revogr-focus.d.ts +2 -1
  149. package/dist/types/components/selectionTempRange/revogr-temp-range.d.ts +2 -1
  150. package/dist/types/components/vnode/vnode.utils.d.ts +2 -1
  151. package/dist/types/components.d.ts +4 -2
  152. package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +4 -2
  153. package/dist/types/stencil-public-runtime.d.ts +0 -2
  154. package/dist/types/store/dataSource/data.proxy.d.ts +1 -1
  155. package/dist/types/store/dataSource/data.store.d.ts +2 -1
  156. package/dist/types/store/dataSource/trimmed.plugin.d.ts +1 -1
  157. package/dist/types/store/dimension/dimension.store.d.ts +3 -18
  158. package/dist/types/store/selection/selection.store.d.ts +1 -1
  159. package/dist/types/store/vp/viewport.store.d.ts +2 -1
  160. package/dist/types/types/interfaces.d.ts +2 -4
  161. package/dist/types/types/viewport.interfaces.d.ts +2 -1
  162. package/dist/types/utils/store.types.d.ts +97 -0
  163. package/dist/types/utils/store.utils.d.ts +4 -3
  164. package/hydrate/index.d.ts +29 -11
  165. package/hydrate/index.js +547 -544
  166. package/hydrate/index.mjs +32501 -0
  167. package/hydrate/package.json +7 -1
  168. package/loader/index.d.ts +3 -0
  169. package/package.json +3 -3
  170. package/standalone/column.service.js +1 -1
  171. package/standalone/column.service.js.map +1 -1
  172. package/standalone/data.store.js +192 -192
  173. package/standalone/data.store.js.map +1 -1
  174. package/standalone/revo-grid.js +3 -4
  175. package/standalone/revo-grid.js.map +1 -1
  176. package/standalone/revogr-data2.js.map +1 -1
  177. package/standalone/revogr-edit2.js +1 -1
  178. package/standalone/revogr-edit2.js.map +1 -1
  179. package/standalone/revogr-focus2.js.map +1 -1
  180. package/standalone/revogr-header2.js +2 -2
  181. package/standalone/revogr-header2.js.map +1 -1
  182. package/standalone/revogr-order-editor2.js.map +1 -1
  183. package/standalone/revogr-overlay-selection2.js +1 -1
  184. package/standalone/revogr-overlay-selection2.js.map +1 -1
  185. package/standalone/revogr-row-headers2.js.map +1 -1
  186. package/standalone/revogr-scroll-virtual2.js +1 -1
  187. package/standalone/revogr-scroll-virtual2.js.map +1 -1
  188. package/standalone/revogr-temp-range2.js.map +1 -1
  189. package/standalone/selection.utils.js +1 -1
  190. package/dist/cjs/base.plugin-32f80cb5.js.map +0 -1
  191. package/dist/cjs/dimension.helpers-ee39d6c4.js.map +0 -1
  192. package/dist/cjs/index-84e32c2a.js.map +0 -1
  193. package/dist/cjs/selection.helpers-32abb2a9.js.map +0 -1
  194. package/dist/esm/base.plugin-d0e589d8.js.map +0 -1
  195. package/dist/esm/dimension.helpers-a3065cb1.js.map +0 -1
  196. package/dist/esm/index-21436631.js.map +0 -1
  197. package/dist/esm/selection.helpers-883ce6bc.js.map +0 -1
  198. package/dist/revo-grid/app-globals-ef1fca59.js +0 -5
  199. package/dist/revo-grid/base.plugin-d0e589d8.js +0 -5
  200. package/dist/revo-grid/base.plugin-d0e589d8.js.map +0 -1
  201. package/dist/revo-grid/column.service-a826bbd6.js.map +0 -1
  202. package/dist/revo-grid/dimension.helpers-a3065cb1.js +0 -5
  203. package/dist/revo-grid/dimension.helpers-a3065cb1.js.map +0 -1
  204. package/dist/revo-grid/index-21436631.js +0 -6
  205. package/dist/revo-grid/index-21436631.js.map +0 -1
  206. package/dist/revo-grid/selection.helpers-883ce6bc.js.map +0 -1
  207. package/dist/revo-grid/viewport.store-d9e291c5.js.map +0 -1
  208. /package/dist/revo-grid/{app-globals-ef1fca59.js.map → app-globals-c0b06b03.js.map} +0 -0
  209. /package/dist/revo-grid/{filter.button-46ce4f80.js.map → filter.button-f132c10a.js.map} +0 -0
  210. /package/dist/revo-grid/{header-cell-renderer-19738045.js.map → header-cell-renderer-cac333a3.js.map} +0 -0
  211. /package/dist/revo-grid/{key.utils-7c5d91dd.js.map → key.utils-9120fde7.js.map} +0 -0
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import { g as getRenderingRef, f as forceUpdate } from './index-21436631.js';
5
4
  import { _ as _baseGetTag, i as isObject_1, a as _root, b as _Symbol, c as isObjectLike_1, d as _freeGlobal, e as isSymbol_1, t as toNumber_1 } from './toNumber-8de324a7.js';
5
+ import { g as getRenderingRef, f as forceUpdate } from './index-e661aeb5.js';
6
6
 
7
7
  /**
8
8
  * All items
@@ -39,197 +39,6 @@ function isProxy(k) {
39
39
  return k === 'proxyItems';
40
40
  }
41
41
 
42
- const appendToMap = (map, propName, value) => {
43
- const items = map.get(propName);
44
- if (!items) {
45
- map.set(propName, [value]);
46
- }
47
- else if (!items.includes(value)) {
48
- items.push(value);
49
- }
50
- };
51
- const debounce = (fn, ms) => {
52
- let timeoutId;
53
- return (...args) => {
54
- if (timeoutId) {
55
- clearTimeout(timeoutId);
56
- }
57
- timeoutId = setTimeout(() => {
58
- timeoutId = 0;
59
- fn(...args);
60
- }, ms);
61
- };
62
- };
63
-
64
- /**
65
- * Check if a possible element isConnected.
66
- * The property might not be there, so we check for it.
67
- *
68
- * We want it to return true if isConnected is not a property,
69
- * otherwise we would remove these elements and would not update.
70
- *
71
- * Better leak in Edge than to be useless.
72
- */
73
- const isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;
74
- const cleanupElements = debounce((map) => {
75
- for (let key of map.keys()) {
76
- map.set(key, map.get(key).filter(isConnected));
77
- }
78
- }, 2000);
79
- const stencilSubscription = () => {
80
- if (typeof getRenderingRef !== 'function') {
81
- // If we are not in a stencil project, we do nothing.
82
- // This function is not really exported by @stencil/core.
83
- return {};
84
- }
85
- const elmsToUpdate = new Map();
86
- return {
87
- dispose: () => elmsToUpdate.clear(),
88
- get: (propName) => {
89
- const elm = getRenderingRef();
90
- if (elm) {
91
- appendToMap(elmsToUpdate, propName, elm);
92
- }
93
- },
94
- set: (propName) => {
95
- const elements = elmsToUpdate.get(propName);
96
- if (elements) {
97
- elmsToUpdate.set(propName, elements.filter(forceUpdate));
98
- }
99
- cleanupElements(elmsToUpdate);
100
- },
101
- reset: () => {
102
- elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));
103
- cleanupElements(elmsToUpdate);
104
- },
105
- };
106
- };
107
-
108
- const unwrap = (val) => (typeof val === 'function' ? val() : val);
109
- const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {
110
- const unwrappedState = unwrap(defaultState);
111
- let states = new Map(Object.entries(unwrappedState !== null && unwrappedState !== void 0 ? unwrappedState : {}));
112
- const handlers = {
113
- dispose: [],
114
- get: [],
115
- set: [],
116
- reset: [],
117
- };
118
- const reset = () => {
119
- var _a;
120
- // When resetting the state, the default state may be a function - unwrap it to invoke it.
121
- // otherwise, the state won't be properly reset
122
- states = new Map(Object.entries((_a = unwrap(defaultState)) !== null && _a !== void 0 ? _a : {}));
123
- handlers.reset.forEach((cb) => cb());
124
- };
125
- const dispose = () => {
126
- // Call first dispose as resetting the state would
127
- // cause less updates ;)
128
- handlers.dispose.forEach((cb) => cb());
129
- reset();
130
- };
131
- const get = (propName) => {
132
- handlers.get.forEach((cb) => cb(propName));
133
- return states.get(propName);
134
- };
135
- const set = (propName, value) => {
136
- const oldValue = states.get(propName);
137
- if (shouldUpdate(value, oldValue, propName)) {
138
- states.set(propName, value);
139
- handlers.set.forEach((cb) => cb(propName, value, oldValue));
140
- }
141
- };
142
- const state = (typeof Proxy === 'undefined'
143
- ? {}
144
- : new Proxy(unwrappedState, {
145
- get(_, propName) {
146
- return get(propName);
147
- },
148
- ownKeys(_) {
149
- return Array.from(states.keys());
150
- },
151
- getOwnPropertyDescriptor() {
152
- return {
153
- enumerable: true,
154
- configurable: true,
155
- };
156
- },
157
- has(_, propName) {
158
- return states.has(propName);
159
- },
160
- set(_, propName, value) {
161
- set(propName, value);
162
- return true;
163
- },
164
- }));
165
- const on = (eventName, callback) => {
166
- handlers[eventName].push(callback);
167
- return () => {
168
- removeFromArray(handlers[eventName], callback);
169
- };
170
- };
171
- const onChange = (propName, cb) => {
172
- const unSet = on('set', (key, newValue) => {
173
- if (key === propName) {
174
- cb(newValue);
175
- }
176
- });
177
- // We need to unwrap the defaultState because it might be a function.
178
- // Otherwise we might not be sending the right reset value.
179
- const unReset = on('reset', () => cb(unwrap(defaultState)[propName]));
180
- return () => {
181
- unSet();
182
- unReset();
183
- };
184
- };
185
- const use = (...subscriptions) => {
186
- const unsubs = subscriptions.reduce((unsubs, subscription) => {
187
- if (subscription.set) {
188
- unsubs.push(on('set', subscription.set));
189
- }
190
- if (subscription.get) {
191
- unsubs.push(on('get', subscription.get));
192
- }
193
- if (subscription.reset) {
194
- unsubs.push(on('reset', subscription.reset));
195
- }
196
- if (subscription.dispose) {
197
- unsubs.push(on('dispose', subscription.dispose));
198
- }
199
- return unsubs;
200
- }, []);
201
- return () => unsubs.forEach((unsub) => unsub());
202
- };
203
- const forceUpdate = (key) => {
204
- const oldValue = states.get(key);
205
- handlers.set.forEach((cb) => cb(key, oldValue, oldValue));
206
- };
207
- return {
208
- state,
209
- get,
210
- set,
211
- on,
212
- onChange,
213
- use,
214
- dispose,
215
- reset,
216
- forceUpdate,
217
- };
218
- };
219
- const removeFromArray = (array, item) => {
220
- const index = array.indexOf(item);
221
- if (index >= 0) {
222
- array[index] = array[array.length - 1];
223
- array.length--;
224
- }
225
- };
226
-
227
- const createStore = (defaultState, shouldUpdate) => {
228
- const map = createObservableMap(defaultState, shouldUpdate);
229
- map.use(stencilSubscription());
230
- return map;
231
- };
232
-
233
42
  /**
234
43
  * The base implementation of `_.findIndex` and `_.findLastIndex` without
235
44
  * support for iteratee shorthands.
@@ -3479,6 +3288,197 @@ var range = createRange();
3479
3288
 
3480
3289
  var range_1 = range;
3481
3290
 
3291
+ const appendToMap = (map, propName, value) => {
3292
+ const items = map.get(propName);
3293
+ if (!items) {
3294
+ map.set(propName, [value]);
3295
+ }
3296
+ else if (!items.includes(value)) {
3297
+ items.push(value);
3298
+ }
3299
+ };
3300
+ const debounce = (fn, ms) => {
3301
+ let timeoutId;
3302
+ return (...args) => {
3303
+ if (timeoutId) {
3304
+ clearTimeout(timeoutId);
3305
+ }
3306
+ timeoutId = setTimeout(() => {
3307
+ timeoutId = 0;
3308
+ fn(...args);
3309
+ }, ms);
3310
+ };
3311
+ };
3312
+
3313
+ /**
3314
+ * Check if a possible element isConnected.
3315
+ * The property might not be there, so we check for it.
3316
+ *
3317
+ * We want it to return true if isConnected is not a property,
3318
+ * otherwise we would remove these elements and would not update.
3319
+ *
3320
+ * Better leak in Edge than to be useless.
3321
+ */
3322
+ const isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;
3323
+ const cleanupElements = debounce((map) => {
3324
+ for (let key of map.keys()) {
3325
+ map.set(key, map.get(key).filter(isConnected));
3326
+ }
3327
+ }, 2000);
3328
+ const stencilSubscription = () => {
3329
+ if (typeof getRenderingRef !== 'function') {
3330
+ // If we are not in a stencil project, we do nothing.
3331
+ // This function is not really exported by @stencil/core.
3332
+ return {};
3333
+ }
3334
+ const elmsToUpdate = new Map();
3335
+ return {
3336
+ dispose: () => elmsToUpdate.clear(),
3337
+ get: (propName) => {
3338
+ const elm = getRenderingRef();
3339
+ if (elm) {
3340
+ appendToMap(elmsToUpdate, propName, elm);
3341
+ }
3342
+ },
3343
+ set: (propName) => {
3344
+ const elements = elmsToUpdate.get(propName);
3345
+ if (elements) {
3346
+ elmsToUpdate.set(propName, elements.filter(forceUpdate));
3347
+ }
3348
+ cleanupElements(elmsToUpdate);
3349
+ },
3350
+ reset: () => {
3351
+ elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));
3352
+ cleanupElements(elmsToUpdate);
3353
+ },
3354
+ };
3355
+ };
3356
+
3357
+ const unwrap = (val) => (typeof val === 'function' ? val() : val);
3358
+ const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {
3359
+ const unwrappedState = unwrap(defaultState);
3360
+ let states = new Map(Object.entries(unwrappedState !== null && unwrappedState !== void 0 ? unwrappedState : {}));
3361
+ const handlers = {
3362
+ dispose: [],
3363
+ get: [],
3364
+ set: [],
3365
+ reset: [],
3366
+ };
3367
+ const reset = () => {
3368
+ var _a;
3369
+ // When resetting the state, the default state may be a function - unwrap it to invoke it.
3370
+ // otherwise, the state won't be properly reset
3371
+ states = new Map(Object.entries((_a = unwrap(defaultState)) !== null && _a !== void 0 ? _a : {}));
3372
+ handlers.reset.forEach((cb) => cb());
3373
+ };
3374
+ const dispose = () => {
3375
+ // Call first dispose as resetting the state would
3376
+ // cause less updates ;)
3377
+ handlers.dispose.forEach((cb) => cb());
3378
+ reset();
3379
+ };
3380
+ const get = (propName) => {
3381
+ handlers.get.forEach((cb) => cb(propName));
3382
+ return states.get(propName);
3383
+ };
3384
+ const set = (propName, value) => {
3385
+ const oldValue = states.get(propName);
3386
+ if (shouldUpdate(value, oldValue, propName)) {
3387
+ states.set(propName, value);
3388
+ handlers.set.forEach((cb) => cb(propName, value, oldValue));
3389
+ }
3390
+ };
3391
+ const state = (typeof Proxy === 'undefined'
3392
+ ? {}
3393
+ : new Proxy(unwrappedState, {
3394
+ get(_, propName) {
3395
+ return get(propName);
3396
+ },
3397
+ ownKeys(_) {
3398
+ return Array.from(states.keys());
3399
+ },
3400
+ getOwnPropertyDescriptor() {
3401
+ return {
3402
+ enumerable: true,
3403
+ configurable: true,
3404
+ };
3405
+ },
3406
+ has(_, propName) {
3407
+ return states.has(propName);
3408
+ },
3409
+ set(_, propName, value) {
3410
+ set(propName, value);
3411
+ return true;
3412
+ },
3413
+ }));
3414
+ const on = (eventName, callback) => {
3415
+ handlers[eventName].push(callback);
3416
+ return () => {
3417
+ removeFromArray(handlers[eventName], callback);
3418
+ };
3419
+ };
3420
+ const onChange = (propName, cb) => {
3421
+ const unSet = on('set', (key, newValue) => {
3422
+ if (key === propName) {
3423
+ cb(newValue);
3424
+ }
3425
+ });
3426
+ // We need to unwrap the defaultState because it might be a function.
3427
+ // Otherwise we might not be sending the right reset value.
3428
+ const unReset = on('reset', () => cb(unwrap(defaultState)[propName]));
3429
+ return () => {
3430
+ unSet();
3431
+ unReset();
3432
+ };
3433
+ };
3434
+ const use = (...subscriptions) => {
3435
+ const unsubs = subscriptions.reduce((unsubs, subscription) => {
3436
+ if (subscription.set) {
3437
+ unsubs.push(on('set', subscription.set));
3438
+ }
3439
+ if (subscription.get) {
3440
+ unsubs.push(on('get', subscription.get));
3441
+ }
3442
+ if (subscription.reset) {
3443
+ unsubs.push(on('reset', subscription.reset));
3444
+ }
3445
+ if (subscription.dispose) {
3446
+ unsubs.push(on('dispose', subscription.dispose));
3447
+ }
3448
+ return unsubs;
3449
+ }, []);
3450
+ return () => unsubs.forEach((unsub) => unsub());
3451
+ };
3452
+ const forceUpdate = (key) => {
3453
+ const oldValue = states.get(key);
3454
+ handlers.set.forEach((cb) => cb(key, oldValue, oldValue));
3455
+ };
3456
+ return {
3457
+ state,
3458
+ get,
3459
+ set,
3460
+ on,
3461
+ onChange,
3462
+ use,
3463
+ dispose,
3464
+ reset,
3465
+ forceUpdate,
3466
+ };
3467
+ };
3468
+ const removeFromArray = (array, item) => {
3469
+ const index = array.indexOf(item);
3470
+ if (index >= 0) {
3471
+ array[index] = array[array.length - 1];
3472
+ array.length--;
3473
+ }
3474
+ };
3475
+
3476
+ const createStore = (defaultState, shouldUpdate) => {
3477
+ const map = createObservableMap(defaultState, shouldUpdate);
3478
+ map.use(stencilSubscription());
3479
+ return map;
3480
+ };
3481
+
3482
3482
  /**
3483
3483
  * Hide items from main collection
3484
3484
  * But keep them in store
@@ -4182,4 +4182,4 @@ function getItemByIndex(dimension, index) {
4182
4182
 
4183
4183
  export { range_1 as A, toInteger_1 as B, _isIterateeCall as C, DataStore as D, _getNative as E, _baseIteratee as _, getVisibleSourceItem as a, getSourceItem as b, setSourceByPhysicalIndex as c, setItems as d, getSourceItemVirtualIndexByProp as e, gatherTrimmedItems as f, getPhysical as g, calculateDimensionData as h, getItemByPosition as i, getItemByIndex as j, createStore as k, setStore as l, each as m, isArrayLike_1 as n, keys_1 as o, proxyPlugin as p, findIndex_1 as q, reduce_1 as r, setSourceByVirtualIndex as s, trimmedPlugin as t, _baseEach as u, _arrayMap as v, isArray_1 as w, _baseProperty as x, _baseKeys as y, _getTag as z };
4184
4184
 
4185
- //# sourceMappingURL=dimension.helpers-a3065cb1.js.map
4185
+ //# sourceMappingURL=dimension.helpers-c0c2888f.js.map