tinybase 9.0.0 → 9.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/@types/common/index.d.ts +17 -2
  2. package/@types/common/with-schemas/index.d.ts +18 -2
  3. package/@types/store/index.d.ts +37 -7
  4. package/@types/store/with-schemas/index.d.ts +38 -7
  5. package/@types/ui-react/index.d.ts +6 -2
  6. package/@types/ui-react/with-schemas/index.d.ts +7 -2
  7. package/@types/ui-react-dom/index.d.ts +10 -10
  8. package/@types/ui-react-dom/with-schemas/index.d.ts +10 -10
  9. package/@types/ui-react-dom-charts/index.d.ts +7 -7
  10. package/@types/ui-react-dom-charts/with-schemas/index.d.ts +7 -7
  11. package/@types/ui-react-inspector/index.d.ts +1 -1
  12. package/@types/ui-react-inspector/with-schemas/index.d.ts +1 -1
  13. package/@types/ui-solid/index.d.ts +9 -2
  14. package/@types/ui-solid/with-schemas/index.d.ts +10 -2
  15. package/@types/ui-solid-dom/index.d.ts +10 -10
  16. package/@types/ui-solid-dom/with-schemas/index.d.ts +10 -10
  17. package/@types/ui-solid-inspector/index.d.ts +1 -1
  18. package/@types/ui-solid-inspector/with-schemas/index.d.ts +1 -1
  19. package/@types/ui-svelte/index.d.ts +50 -2
  20. package/@types/ui-svelte/with-schemas/index.d.ts +88 -25
  21. package/@types/ui-svelte-dom/index.d.ts +10 -10
  22. package/@types/ui-svelte-dom/with-schemas/index.d.ts +10 -10
  23. package/@types/ui-svelte-inspector/index.d.ts +1 -1
  24. package/@types/ui-svelte-inspector/with-schemas/index.d.ts +1 -1
  25. package/index.js +34 -6
  26. package/mergeable-store/index.js +34 -6
  27. package/mergeable-store/with-schemas/index.js +34 -6
  28. package/min/index.js +1 -1
  29. package/min/index.js.gz +0 -0
  30. package/min/mergeable-store/index.js +1 -1
  31. package/min/mergeable-store/index.js.gz +0 -0
  32. package/min/mergeable-store/with-schemas/index.js +1 -1
  33. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  34. package/min/omni/index.js +1 -1
  35. package/min/omni/index.js.gz +0 -0
  36. package/min/omni/with-schemas/index.js +1 -1
  37. package/min/omni/with-schemas/index.js.gz +0 -0
  38. package/min/store/index.js +1 -1
  39. package/min/store/index.js.gz +0 -0
  40. package/min/store/with-schemas/index.js +1 -1
  41. package/min/store/with-schemas/index.js.gz +0 -0
  42. package/min/ui-react/index.js +1 -1
  43. package/min/ui-react/index.js.gz +0 -0
  44. package/min/ui-react/with-schemas/index.js +1 -1
  45. package/min/ui-react/with-schemas/index.js.gz +0 -0
  46. package/min/ui-react-dom/index.js +1 -1
  47. package/min/ui-react-dom/index.js.gz +0 -0
  48. package/min/ui-react-dom/with-schemas/index.js +1 -1
  49. package/min/ui-react-dom/with-schemas/index.js.gz +0 -0
  50. package/min/ui-react-dom-charts/index.js +1 -1
  51. package/min/ui-react-dom-charts/index.js.gz +0 -0
  52. package/min/ui-react-dom-charts/with-schemas/index.js +1 -1
  53. package/min/ui-react-dom-charts/with-schemas/index.js.gz +0 -0
  54. package/min/ui-react-inspector/index.js +1 -1
  55. package/min/ui-react-inspector/index.js.gz +0 -0
  56. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  57. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  58. package/min/ui-solid/index.js +1 -1
  59. package/min/ui-solid/index.js.gz +0 -0
  60. package/min/ui-solid/with-schemas/index.js +1 -1
  61. package/min/ui-solid/with-schemas/index.js.gz +0 -0
  62. package/min/ui-solid-dom/index.js +1 -1
  63. package/min/ui-solid-dom/index.js.gz +0 -0
  64. package/min/ui-solid-dom/with-schemas/index.js +1 -1
  65. package/min/ui-solid-dom/with-schemas/index.js.gz +0 -0
  66. package/min/ui-solid-inspector/index.js +1 -1
  67. package/min/ui-solid-inspector/index.js.gz +0 -0
  68. package/min/ui-solid-inspector/with-schemas/index.js +1 -1
  69. package/min/ui-solid-inspector/with-schemas/index.js.gz +0 -0
  70. package/min/ui-svelte/index.js +1 -1
  71. package/min/ui-svelte/index.js.gz +0 -0
  72. package/min/ui-svelte/with-schemas/index.js +1 -1
  73. package/min/ui-svelte/with-schemas/index.js.gz +0 -0
  74. package/min/ui-svelte-dom/index.js +1 -1
  75. package/min/ui-svelte-dom/index.js.gz +0 -0
  76. package/min/ui-svelte-dom/with-schemas/index.js +1 -1
  77. package/min/ui-svelte-dom/with-schemas/index.js.gz +0 -0
  78. package/min/ui-svelte-inspector/index.js +1 -1
  79. package/min/ui-svelte-inspector/index.js.gz +0 -0
  80. package/min/ui-svelte-inspector/with-schemas/index.js +1 -1
  81. package/min/ui-svelte-inspector/with-schemas/index.js.gz +0 -0
  82. package/min/with-schemas/index.js +1 -1
  83. package/min/with-schemas/index.js.gz +0 -0
  84. package/omni/index.js +34 -6
  85. package/omni/with-schemas/index.js +34 -6
  86. package/package.json +3 -3
  87. package/readme.md +14 -14
  88. package/releases.md +59 -59
  89. package/store/index.js +34 -6
  90. package/store/with-schemas/index.js +34 -6
  91. package/ui-react/index.js +36 -6
  92. package/ui-react/with-schemas/index.js +36 -6
  93. package/ui-react-dom/index.js +24 -4
  94. package/ui-react-dom/with-schemas/index.js +24 -4
  95. package/ui-react-dom-charts/index.js +24 -4
  96. package/ui-react-dom-charts/with-schemas/index.js +24 -4
  97. package/ui-react-inspector/index.js +58 -10
  98. package/ui-react-inspector/with-schemas/index.js +58 -10
  99. package/ui-solid/index.js +32 -2
  100. package/ui-solid/with-schemas/index.js +32 -2
  101. package/ui-solid-dom/index.js +17 -1
  102. package/ui-solid-dom/with-schemas/index.js +17 -1
  103. package/ui-solid-inspector/index.js +51 -7
  104. package/ui-solid-inspector/with-schemas/index.js +51 -7
  105. package/ui-svelte/index.js +73 -31
  106. package/ui-svelte/with-schemas/index.js +73 -31
  107. package/ui-svelte-dom/index.js +35 -14
  108. package/ui-svelte-dom/with-schemas/index.js +35 -14
  109. package/ui-svelte-inspector/index.js +69 -20
  110. package/ui-svelte-inspector/with-schemas/index.js +69 -20
  111. package/with-schemas/index.js +34 -6
@@ -690,7 +690,7 @@ export type SortedTablePaginatorProps = {
690
690
  *
691
691
  * See the <TableInHtmlTable /> (Svelte) demo for this component in action:
692
692
  *
693
- * ![TableInHtmlTable example](https://tinybase.org/shots/tableinhtmltable-svelte-demo.png
693
+ * ![TableInHtmlTable example](https://beta.tinybase.org/shots/tableinhtmltable-svelte-demo.png
694
694
  * "TableInHtmlTable example")
695
695
  *
696
696
  * The component's props identify which Table to render based on Table Id, and
@@ -854,7 +854,7 @@ export const TableInHtmlTable: Component<
854
854
  * See the <SortedTableInHtmlTable /> (Svelte) demo for this component in
855
855
  * action:
856
856
  *
857
- * ![SortedTableInHtmlTable example](https://tinybase.org/shots/sortedtableinhtmltable-svelte-demo.png
857
+ * ![SortedTableInHtmlTable example](https://beta.tinybase.org/shots/sortedtableinhtmltable-svelte-demo.png
858
858
  * "SortedTableInHtmlTable example")
859
859
  *
860
860
  * The component's props identify which Table to render based on Table Id, and
@@ -1042,7 +1042,7 @@ export const SortedTableInHtmlTable: Component<
1042
1042
  *
1043
1043
  * See the <ValuesInHtmlTable /> (Svelte) demo for this component in action:
1044
1044
  *
1045
- * ![ValuesInHtmlTable example](https://tinybase.org/shots/valuesinhtmltable-svelte-demo.png
1045
+ * ![ValuesInHtmlTable example](https://beta.tinybase.org/shots/valuesinhtmltable-svelte-demo.png
1046
1046
  * "ValuesInHtmlTable example")
1047
1047
  *
1048
1048
  * The component's props identify which Row to render based on Table Id, Row Id,
@@ -1185,7 +1185,7 @@ export const ValuesInHtmlTable: Component<
1185
1185
  *
1186
1186
  * See the <SliceInHtmlTable /> (Svelte) demo for this component in action:
1187
1187
  *
1188
- * ![SliceInHtmlTable example](https://tinybase.org/shots/sliceinhtmltable-svelte-demo.png
1188
+ * ![SliceInHtmlTable example](https://beta.tinybase.org/shots/sliceinhtmltable-svelte-demo.png
1189
1189
  * "SliceInHtmlTable example")
1190
1190
  *
1191
1191
  * The component's props identify which Slice to render based on Index Id, Slice
@@ -1357,7 +1357,7 @@ export const SliceInHtmlTable: Component<
1357
1357
  * See the <RelationshipInHtmlTable /> (Svelte) demo for this component in
1358
1358
  * action:
1359
1359
  *
1360
- * ![RelationshipInHtmlTable example](https://tinybase.org/shots/relationshipinhtmltable-svelte-demo.png
1360
+ * ![RelationshipInHtmlTable example](https://beta.tinybase.org/shots/relationshipinhtmltable-svelte-demo.png
1361
1361
  * "RelationshipInHtmlTable example")
1362
1362
  *
1363
1363
  * The component's props identify which Relationship to render based on
@@ -1544,7 +1544,7 @@ export const RelationshipInHtmlTable: Component<
1544
1544
  * See the <ResultTableInHtmlTable /> (Svelte) demo for this component in
1545
1545
  * action:
1546
1546
  *
1547
- * ![ResultTableInHtmlTable example](https://tinybase.org/shots/resulttableinhtmltable-svelte-demo.png
1547
+ * ![ResultTableInHtmlTable example](https://beta.tinybase.org/shots/resulttableinhtmltable-svelte-demo.png
1548
1548
  * "ResultTableInHtmlTable example")
1549
1549
  *
1550
1550
  * The component's props identify which ResultTable to render based on query Id,
@@ -1713,7 +1713,7 @@ export const ResultTableInHtmlTable: Component<
1713
1713
  * See the <ResultSortedTableInHtmlTable /> (Svelte) demo for this component in
1714
1714
  * action:
1715
1715
  *
1716
- * ![ResultSortedTableInHtmlTable example](https://tinybase.org/shots/resultsortedtableinhtmltable-svelte-demo.png
1716
+ * ![ResultSortedTableInHtmlTable example](https://beta.tinybase.org/shots/resultsortedtableinhtmltable-svelte-demo.png
1717
1717
  * "ResultSortedTableInHtmlTable example")
1718
1718
  *
1719
1719
  * The component's props identify which ResultTable to render based on query Id,
@@ -1902,7 +1902,7 @@ export const ResultSortedTableInHtmlTable: Component<
1902
1902
  *
1903
1903
  * See the <EditableCellView /> (Svelte) demo for this component in action:
1904
1904
  *
1905
- * ![EditableCellView example](https://tinybase.org/shots/editablecellview-svelte-demo.png
1905
+ * ![EditableCellView example](https://beta.tinybase.org/shots/editablecellview-svelte-demo.png
1906
1906
  * "EditableCellView example")
1907
1907
  *
1908
1908
  * The component's props identify which Cell to render based on Table Id, Row
@@ -1975,7 +1975,7 @@ export const EditableCellView: Component<
1975
1975
  *
1976
1976
  * See the <EditableValueView /> (Svelte) demo for this component in action:
1977
1977
  *
1978
- * ![EditableValueView example](https://tinybase.org/shots/editablevalueview-svelte-demo.png
1978
+ * ![EditableValueView example](https://beta.tinybase.org/shots/editablevalueview-svelte-demo.png
1979
1979
  * "EditableValueView example")
1980
1980
  *
1981
1981
  * The component's props identify which Value to render based on Table Id, Row
@@ -2050,7 +2050,7 @@ export const EditableValueView: Component<
2050
2050
  * See the <SortedTableInHtmlTable /> (Svelte) demo for this component in
2051
2051
  * action:
2052
2052
  *
2053
- * ![SortedTablePaginator example](https://tinybase.org/shots/sortedtablepaginator-svelte-demo.png
2053
+ * ![SortedTablePaginator example](https://beta.tinybase.org/shots/sortedtablepaginator-svelte-demo.png
2054
2054
  * "SortedTablePaginator example")
2055
2055
  *
2056
2056
  * The component displays 'previous' and 'next' buttons for paging through the
@@ -664,7 +664,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
664
664
  *
665
665
  * See the <TableInHtmlTable /> (Svelte) demo for this component in action:
666
666
  *
667
- * ![TableInHtmlTable example](https://tinybase.org/shots/tableinhtmltable-svelte-demo.png
667
+ * ![TableInHtmlTable example](https://beta.tinybase.org/shots/tableinhtmltable-svelte-demo.png
668
668
  * "TableInHtmlTable example")
669
669
  *
670
670
  * The component's props identify which Table to render based on Table Id, and
@@ -834,7 +834,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
834
834
  * See the <SortedTableInHtmlTable /> (Svelte) demo for this component in
835
835
  * action:
836
836
  *
837
- * ![SortedTableInHtmlTable example](https://tinybase.org/shots/sortedtableinhtmltable-svelte-demo.png
837
+ * ![SortedTableInHtmlTable example](https://beta.tinybase.org/shots/sortedtableinhtmltable-svelte-demo.png
838
838
  * "SortedTableInHtmlTable example")
839
839
  *
840
840
  * The component's props identify which Table to render based on Table Id, and
@@ -1030,7 +1030,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1030
1030
  *
1031
1031
  * See the <ValuesInHtmlTable /> (Svelte) demo for this component in action:
1032
1032
  *
1033
- * ![ValuesInHtmlTable example](https://tinybase.org/shots/valuesinhtmltable-svelte-demo.png
1033
+ * ![ValuesInHtmlTable example](https://beta.tinybase.org/shots/valuesinhtmltable-svelte-demo.png
1034
1034
  * "ValuesInHtmlTable example")
1035
1035
  *
1036
1036
  * The component's props identify which Row to render based on Table Id, Row Id,
@@ -1181,7 +1181,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1181
1181
  *
1182
1182
  * See the <SliceInHtmlTable /> (Svelte) demo for this component in action:
1183
1183
  *
1184
- * ![SliceInHtmlTable example](https://tinybase.org/shots/sliceinhtmltable-svelte-demo.png
1184
+ * ![SliceInHtmlTable example](https://beta.tinybase.org/shots/sliceinhtmltable-svelte-demo.png
1185
1185
  * "SliceInHtmlTable example")
1186
1186
  *
1187
1187
  * The component's props identify which Slice to render based on Index Id, Slice
@@ -1359,7 +1359,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1359
1359
  * See the <RelationshipInHtmlTable /> (Svelte) demo for this component in
1360
1360
  * action:
1361
1361
  *
1362
- * ![RelationshipInHtmlTable example](https://tinybase.org/shots/relationshipinhtmltable-svelte-demo.png
1362
+ * ![RelationshipInHtmlTable example](https://beta.tinybase.org/shots/relationshipinhtmltable-svelte-demo.png
1363
1363
  * "RelationshipInHtmlTable example")
1364
1364
  *
1365
1365
  * The component's props identify which Relationship to render based on
@@ -1554,7 +1554,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1554
1554
  * See the <ResultTableInHtmlTable /> (Svelte) demo for this component in
1555
1555
  * action:
1556
1556
  *
1557
- * ![ResultTableInHtmlTable example](https://tinybase.org/shots/resulttableinhtmltable-svelte-demo.png
1557
+ * ![ResultTableInHtmlTable example](https://beta.tinybase.org/shots/resulttableinhtmltable-svelte-demo.png
1558
1558
  * "ResultTableInHtmlTable example")
1559
1559
  *
1560
1560
  * The component's props identify which ResultTable to render based on query Id,
@@ -1731,7 +1731,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1731
1731
  * See the <ResultSortedTableInHtmlTable /> (Svelte) demo for this component in
1732
1732
  * action:
1733
1733
  *
1734
- * ![ResultSortedTableInHtmlTable example](https://tinybase.org/shots/resultsortedtableinhtmltable-svelte-demo.png
1734
+ * ![ResultSortedTableInHtmlTable example](https://beta.tinybase.org/shots/resultsortedtableinhtmltable-svelte-demo.png
1735
1735
  * "ResultSortedTableInHtmlTable example")
1736
1736
  *
1737
1737
  * The component's props identify which ResultTable to render based on query Id,
@@ -1928,7 +1928,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1928
1928
  *
1929
1929
  * See the <EditableCellView /> (Svelte) demo for this component in action:
1930
1930
  *
1931
- * ![EditableCellView example](https://tinybase.org/shots/editablecellview-svelte-demo.png
1931
+ * ![EditableCellView example](https://beta.tinybase.org/shots/editablecellview-svelte-demo.png
1932
1932
  * "EditableCellView example")
1933
1933
  *
1934
1934
  * The component's props identify which Cell to render based on Table Id, Row
@@ -2015,7 +2015,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
2015
2015
  *
2016
2016
  * See the <EditableValueView /> (Svelte) demo for this component in action:
2017
2017
  *
2018
- * ![EditableValueView example](https://tinybase.org/shots/editablevalueview-svelte-demo.png
2018
+ * ![EditableValueView example](https://beta.tinybase.org/shots/editablevalueview-svelte-demo.png
2019
2019
  * "EditableValueView example")
2020
2020
  *
2021
2021
  * The component's props identify which Value to render based on Table Id, Row
@@ -2090,7 +2090,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
2090
2090
  * See the <SortedTableInHtmlTable /> (Svelte) demo for this component in
2091
2091
  * action:
2092
2092
  *
2093
- * ![SortedTablePaginator example](https://tinybase.org/shots/sortedtablepaginator-svelte-demo.png
2093
+ * ![SortedTablePaginator example](https://beta.tinybase.org/shots/sortedtablepaginator-svelte-demo.png
2094
2094
  * "SortedTablePaginator example")
2095
2095
  *
2096
2096
  * The component displays 'previous' and 'next' buttons for paging through the
@@ -46,7 +46,7 @@ export type InspectorProps = {
46
46
  *
47
47
  * See the <Inspector /> (Svelte) demo for this component in action:
48
48
  *
49
- * ![Inspector example](https://tinybase.org/shots/inspector-svelte-demo.png
49
+ * ![Inspector example](https://beta.tinybase.org/shots/inspector-svelte-demo.png
50
50
  * "Inspector example")
51
51
  *
52
52
  * The component displays a nub in the corner of the screen which you may then
@@ -46,7 +46,7 @@ export type InspectorProps = {
46
46
  *
47
47
  * See the <Inspector /> (Svelte) demo for this component in action:
48
48
  *
49
- * ![Inspector example](https://tinybase.org/shots/inspector-svelte-demo.png
49
+ * ![Inspector example](https://beta.tinybase.org/shots/inspector-svelte-demo.png
50
50
  * "Inspector example")
51
51
  *
52
52
  * The component displays a nub in the corner of the screen which you may then
package/index.js CHANGED
@@ -2153,13 +2153,36 @@ const createStore = () => {
2153
2153
  listener,
2154
2154
  mutator,
2155
2155
  ) => {
2156
- let sortedRowIds = getSortedRowIds(tableId, cellId, ...otherArgs);
2156
+ const [descending, offset, limit, sorter] = otherArgs;
2157
+ let sortedRowIds = getSortedRowIds(
2158
+ tableId,
2159
+ cellId,
2160
+ descending,
2161
+ offset,
2162
+ limit,
2163
+ sorter,
2164
+ );
2157
2165
  return addListener(
2158
2166
  () => {
2159
- const newSortedRowIds = getSortedRowIds(tableId, cellId, ...otherArgs);
2167
+ const newSortedRowIds = getSortedRowIds(
2168
+ tableId,
2169
+ cellId,
2170
+ descending,
2171
+ offset,
2172
+ limit,
2173
+ sorter,
2174
+ );
2160
2175
  if (!arrayIsEqual(newSortedRowIds, sortedRowIds)) {
2161
2176
  sortedRowIds = newSortedRowIds;
2162
- listener(store, tableId, cellId, ...otherArgs, sortedRowIds);
2177
+ listener(
2178
+ store,
2179
+ tableId,
2180
+ cellId,
2181
+ descending,
2182
+ offset,
2183
+ limit,
2184
+ sortedRowIds,
2185
+ );
2163
2186
  }
2164
2187
  },
2165
2188
  sortedRowIdsListeners[mutator ? 1 : 0],
@@ -2213,6 +2236,7 @@ const createStore = () => {
2213
2236
  descending,
2214
2237
  offset = 0,
2215
2238
  limit,
2239
+ sorter = defaultSorter,
2216
2240
  ) =>
2217
2241
  isObject(tableIdOrArgs)
2218
2242
  ? getSortedRowIds(
@@ -2221,16 +2245,19 @@ const createStore = () => {
2221
2245
  tableIdOrArgs.descending,
2222
2246
  tableIdOrArgs.offset,
2223
2247
  tableIdOrArgs.limit,
2248
+ tableIdOrArgs.sorter,
2224
2249
  )
2225
2250
  : arrayMap(
2226
2251
  slice(
2227
2252
  arraySort(
2228
2253
  mapMap(mapGet(tablesMap, id(tableIdOrArgs)), (row, rowId) => [
2229
- isUndefined(cellId) ? rowId : mapGet(row, id(cellId)),
2254
+ isUndefined(cellId)
2255
+ ? rowId
2256
+ : decodeIfJson(mapGet(row, id(cellId))),
2230
2257
  rowId,
2231
2258
  ]),
2232
2259
  ([cell1], [cell2]) =>
2233
- defaultSorter(cell1, cell2) * (descending ? -1 : 1),
2260
+ sorter(cell1, cell2) * (descending ? -1 : 1),
2234
2261
  ),
2235
2262
  offset,
2236
2263
  isUndefined(limit) ? limit : offset + limit,
@@ -2708,6 +2735,7 @@ const createStore = () => {
2708
2735
  tableIdOrArgs.descending ?? false,
2709
2736
  tableIdOrArgs.offset ?? 0,
2710
2737
  tableIdOrArgs.limit,
2738
+ tableIdOrArgs.sorter,
2711
2739
  ],
2712
2740
  cellIdOrListener,
2713
2741
  descendingOrMutator,
@@ -2715,7 +2743,7 @@ const createStore = () => {
2715
2743
  : addSortedRowIdsListenerImpl(
2716
2744
  tableIdOrArgs,
2717
2745
  cellIdOrListener,
2718
- [descendingOrMutator, offset, limit],
2746
+ [descendingOrMutator, offset, limit, void 0],
2719
2747
  listener,
2720
2748
  mutator,
2721
2749
  );
@@ -1485,13 +1485,36 @@ const createStore = () => {
1485
1485
  listener,
1486
1486
  mutator,
1487
1487
  ) => {
1488
- let sortedRowIds = getSortedRowIds(tableId, cellId, ...otherArgs);
1488
+ const [descending, offset, limit, sorter] = otherArgs;
1489
+ let sortedRowIds = getSortedRowIds(
1490
+ tableId,
1491
+ cellId,
1492
+ descending,
1493
+ offset,
1494
+ limit,
1495
+ sorter,
1496
+ );
1489
1497
  return addListener(
1490
1498
  () => {
1491
- const newSortedRowIds = getSortedRowIds(tableId, cellId, ...otherArgs);
1499
+ const newSortedRowIds = getSortedRowIds(
1500
+ tableId,
1501
+ cellId,
1502
+ descending,
1503
+ offset,
1504
+ limit,
1505
+ sorter,
1506
+ );
1492
1507
  if (!arrayIsEqual(newSortedRowIds, sortedRowIds)) {
1493
1508
  sortedRowIds = newSortedRowIds;
1494
- listener(store, tableId, cellId, ...otherArgs, sortedRowIds);
1509
+ listener(
1510
+ store,
1511
+ tableId,
1512
+ cellId,
1513
+ descending,
1514
+ offset,
1515
+ limit,
1516
+ sortedRowIds,
1517
+ );
1495
1518
  }
1496
1519
  },
1497
1520
  sortedRowIdsListeners[mutator ? 1 : 0],
@@ -1545,6 +1568,7 @@ const createStore = () => {
1545
1568
  descending,
1546
1569
  offset = 0,
1547
1570
  limit,
1571
+ sorter = defaultSorter,
1548
1572
  ) =>
1549
1573
  isObject(tableIdOrArgs)
1550
1574
  ? getSortedRowIds(
@@ -1553,16 +1577,19 @@ const createStore = () => {
1553
1577
  tableIdOrArgs.descending,
1554
1578
  tableIdOrArgs.offset,
1555
1579
  tableIdOrArgs.limit,
1580
+ tableIdOrArgs.sorter,
1556
1581
  )
1557
1582
  : arrayMap(
1558
1583
  slice(
1559
1584
  arraySort(
1560
1585
  mapMap(mapGet(tablesMap, id(tableIdOrArgs)), (row, rowId) => [
1561
- isUndefined(cellId) ? rowId : mapGet(row, id(cellId)),
1586
+ isUndefined(cellId)
1587
+ ? rowId
1588
+ : decodeIfJson(mapGet(row, id(cellId))),
1562
1589
  rowId,
1563
1590
  ]),
1564
1591
  ([cell1], [cell2]) =>
1565
- defaultSorter(cell1, cell2) * (descending ? -1 : 1),
1592
+ sorter(cell1, cell2) * (descending ? -1 : 1),
1566
1593
  ),
1567
1594
  offset,
1568
1595
  isUndefined(limit) ? limit : offset + limit,
@@ -2040,6 +2067,7 @@ const createStore = () => {
2040
2067
  tableIdOrArgs.descending ?? false,
2041
2068
  tableIdOrArgs.offset ?? 0,
2042
2069
  tableIdOrArgs.limit,
2070
+ tableIdOrArgs.sorter,
2043
2071
  ],
2044
2072
  cellIdOrListener,
2045
2073
  descendingOrMutator,
@@ -2047,7 +2075,7 @@ const createStore = () => {
2047
2075
  : addSortedRowIdsListenerImpl(
2048
2076
  tableIdOrArgs,
2049
2077
  cellIdOrListener,
2050
- [descendingOrMutator, offset, limit],
2078
+ [descendingOrMutator, offset, limit, void 0],
2051
2079
  listener,
2052
2080
  mutator,
2053
2081
  );
@@ -1485,13 +1485,36 @@ const createStore = () => {
1485
1485
  listener,
1486
1486
  mutator,
1487
1487
  ) => {
1488
- let sortedRowIds = getSortedRowIds(tableId, cellId, ...otherArgs);
1488
+ const [descending, offset, limit, sorter] = otherArgs;
1489
+ let sortedRowIds = getSortedRowIds(
1490
+ tableId,
1491
+ cellId,
1492
+ descending,
1493
+ offset,
1494
+ limit,
1495
+ sorter,
1496
+ );
1489
1497
  return addListener(
1490
1498
  () => {
1491
- const newSortedRowIds = getSortedRowIds(tableId, cellId, ...otherArgs);
1499
+ const newSortedRowIds = getSortedRowIds(
1500
+ tableId,
1501
+ cellId,
1502
+ descending,
1503
+ offset,
1504
+ limit,
1505
+ sorter,
1506
+ );
1492
1507
  if (!arrayIsEqual(newSortedRowIds, sortedRowIds)) {
1493
1508
  sortedRowIds = newSortedRowIds;
1494
- listener(store, tableId, cellId, ...otherArgs, sortedRowIds);
1509
+ listener(
1510
+ store,
1511
+ tableId,
1512
+ cellId,
1513
+ descending,
1514
+ offset,
1515
+ limit,
1516
+ sortedRowIds,
1517
+ );
1495
1518
  }
1496
1519
  },
1497
1520
  sortedRowIdsListeners[mutator ? 1 : 0],
@@ -1545,6 +1568,7 @@ const createStore = () => {
1545
1568
  descending,
1546
1569
  offset = 0,
1547
1570
  limit,
1571
+ sorter = defaultSorter,
1548
1572
  ) =>
1549
1573
  isObject(tableIdOrArgs)
1550
1574
  ? getSortedRowIds(
@@ -1553,16 +1577,19 @@ const createStore = () => {
1553
1577
  tableIdOrArgs.descending,
1554
1578
  tableIdOrArgs.offset,
1555
1579
  tableIdOrArgs.limit,
1580
+ tableIdOrArgs.sorter,
1556
1581
  )
1557
1582
  : arrayMap(
1558
1583
  slice(
1559
1584
  arraySort(
1560
1585
  mapMap(mapGet(tablesMap, id(tableIdOrArgs)), (row, rowId) => [
1561
- isUndefined(cellId) ? rowId : mapGet(row, id(cellId)),
1586
+ isUndefined(cellId)
1587
+ ? rowId
1588
+ : decodeIfJson(mapGet(row, id(cellId))),
1562
1589
  rowId,
1563
1590
  ]),
1564
1591
  ([cell1], [cell2]) =>
1565
- defaultSorter(cell1, cell2) * (descending ? -1 : 1),
1592
+ sorter(cell1, cell2) * (descending ? -1 : 1),
1566
1593
  ),
1567
1594
  offset,
1568
1595
  isUndefined(limit) ? limit : offset + limit,
@@ -2040,6 +2067,7 @@ const createStore = () => {
2040
2067
  tableIdOrArgs.descending ?? false,
2041
2068
  tableIdOrArgs.offset ?? 0,
2042
2069
  tableIdOrArgs.limit,
2070
+ tableIdOrArgs.sorter,
2043
2071
  ],
2044
2072
  cellIdOrListener,
2045
2073
  descendingOrMutator,
@@ -2047,7 +2075,7 @@ const createStore = () => {
2047
2075
  : addSortedRowIdsListenerImpl(
2048
2076
  tableIdOrArgs,
2049
2077
  cellIdOrListener,
2050
- [descendingOrMutator, offset, limit],
2078
+ [descendingOrMutator, offset, limit, void 0],
2051
2079
  listener,
2052
2080
  mutator,
2053
2081
  );
package/min/index.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",s=e(t),n=e(!0),l=e(0),a=e(e),o="object",r="array",i="type",d="default",c="allowNull",u="Listener",g="Result",h="add",f="Has",b="Ids",C="Table",w=C+"s",R=C+b,v="Row",I=v+"Count",L=v+b,T="Sorted"+v+b,p="Cell",S=p+b,V="Value",m=V+"s",y=V+b,k=e=>t+e,M=(e,t)=>e.startsWith(t),D=(e,t)=>e.endsWith(t),E=(e,s=t,n)=>e.split(s,n),W=Math,_=e=>(t,s,n)=>e(t)?n?.():s(t),H=globalThis,J=W.max,x=W.min,P=W.floor,F=W.random,Q=isFinite,N=e=>null==e,O=e=>void 0===e,j=e=>null===e,z=e=>!0===e,A=_(N),B=_(O),U=e=>e==s||e==n,q=t=>e(t)==s,G=t=>e(t)==a,K=e=>Array.isArray(e),X=(e,t,s)=>e.slice(t,s),Y=e=>e.length,Z=()=>{},$=()=>{},ee=H.structuredClone,te=async(e,t,s)=>{try{return await e()}catch(e){t?.(e)}},se=(e,t)=>e.includes(t),ne=(e,t)=>e.every(t),le=(e,t)=>Y(e)===Y(t)&&ne(e,(e,s)=>t[s]===e),ae=(e,t)=>ne(e,(s,n)=>0==n||t(e[n-1],s)<=0),oe=(e,t)=>e.sort(t),re=(e,t)=>e.forEach(t),ie=(e,t)=>e.map(t),de=e=>ue(e,(e,t)=>e+t,0),ce=e=>0==Y(e),ue=(e,t,s)=>e.reduce(t,s),ge=(e,...t)=>e.push(...t),he=e=>e.pop(),fe=e=>e.shift(),be=e=>t=>ue(Te(t),(t,s)=>t+e(s),0),Ce=e=>e?.size??0,we=be(Ce),Re=be(we),ve=be(Re),Ie=(e,t)=>e?.has(t)??!1,Le=e=>O(e)||0==Ce(e),Te=e=>[...e?.values()??[]],pe=e=>e.clear(),Se=(e,t)=>e?.forEach(t),Ve=(e,t)=>e?.delete(t),me=Object,ye=e=>me.getPrototypeOf(e),ke=me.isFrozen,Me=me.entries,De=e=>!N(e)&&A(ye(e),e=>e==me.prototype||N(ye(e)),()=>!0),Ee=me.keys,We=me.freeze,_e=(e=[])=>me.fromEntries(e),He=(e,t)=>t in e,Je=(e,t)=>(delete e[t],e),xe=(e,t)=>re(Me(e),([e,s])=>t(s,e)),Pe=(e,t)=>_e(((e,t)=>ie(Me(e),([e,s])=>t(s,e)))(e,(e,s)=>[s,t(e,s)])),Fe=e=>Y(Ee(e)),Qe=e=>De(e)&&0==Fe(e),Ne=(e,t,s=(e,t)=>e===t)=>{const n=Me(e);return Y(n)===Fe(t)&&ne(n,([e,n])=>De(n)?!!De(t[e])&&Ne(t[e],n,s):s(n,t[e]))},Oe=(e,t,s)=>(He(e,t)||(e[t]=s()),e[t]),je=(e,t,s,n=0)=>N(e)||!De(e)||!n&&Qe(e)||ke(e)?(s?.(),!1):(xe(e,(s,n)=>{t(s,n)||Je(e,n)}),!!n||!Qe(e)),ze=Map,Ae=e=>new ze(e),Be=e=>[...e?.keys()??[]],Ue=(e,t)=>e?.get(t),qe=(e,t)=>Se(e,(e,s)=>t(s,e)),Ge=(e,t,s)=>O(s)?(Ve(e,t),e):e?.set(t,s),Ke=(e,t,s,n)=>(Ie(e,t)?n?.(Ue(e,t)):Ge(e,t,s()),Ue(e,t)),Xe=(e,t,s,n=Ge)=>(Pe(t,(t,n)=>s(e,n,t)),qe(e,s=>He(t,s)?0:n(e,s)),e),Ye=(e,t,s,n)=>{const l={};return Se(e,(e,a)=>{if(!s?.(e,a)){const s=t?t(e,a):e;n?.(s)||(l[a]=s)}}),l},Ze=(e,t,s)=>Ye(e,e=>Ye(e,t,s),Le,Qe),$e=(e,t,s)=>Ye(e,e=>Ze(e,t,s),Le,Qe),et=(e,t)=>{const s=Ae();return Se(e,(e,n)=>s.set(n,t?.(e)??e)),s},tt=e=>et(e,et),st=e=>et(e,tt),nt=(e,t,s,n,l=0)=>B((s?Ke:Ue)(e,t[l],l>Y(t)-2?s:Ae),a=>{if(l>Y(t)-2)return n?.(a)&&Ge(e,t[l]),a;const o=nt(a,t,s,n,l+1);return Le(a)&&Ge(e,t[l]),o}),lt=e=>new Set(K(e)||O(e)?e:[e]),at=(e,t)=>e?.add(t),ot=(e,t,s,n,l)=>{const a=e.hasRow,o=Ae(),r=Ae(),i=Ae(),d=Ae(),c=Ae(),u=Ae(),g=t=>B(Ue(u,t),s=>{re(Te(s),t=>{e.delListener(t),Ve(s,t)}),Ge(u,t)}),h=(e,s)=>{Ge(o,e,s),Ie(r,e)||(Ge(r,e,t()),Ge(d,e,Ae()),Ge(c,e,Ae()),l(i))},f=e=>{Ge(o,e),Ge(r,e),Ge(d,e),Ge(c,e),g(e),l(i)};return[()=>e,()=>Be(o),e=>qe(r,e),e=>Ie(r,e),e=>Ue(o,e),e=>Ue(r,e),(e,t)=>Ge(r,e,t),h,(t,n,l,o,r)=>{h(t,n);const i=Ae(),f=Ae(),b=Ue(d,t),C=Ue(c,t),w=t=>{const l=s=>e.getCell(n,t,s),d=Ue(b,t),c=a(n,t)?s(o(l,t)):void 0;if(d===c||K(d)&&K(c)&&le(d,c)||Ge(i,t,[d,c]),!O(r)){const e=Ue(C,t),s=a(n,t)?r(l,t):void 0;e!=s&&Ge(f,t,s)}},R=e=>{l(()=>{Se(i,([,e],t)=>Ge(b,t,e)),Se(f,(e,t)=>Ge(C,t,e))},i,f,b,C,e),pe(i),pe(f)};qe(b,w),e.hasTable(n)&&re(e.getRowIds(n),e=>{Ie(b,e)||w(e)}),R(!0),g(t),((e,...t)=>{const s=Ke(u,e,lt);re(t,e=>at(s,e))})(t,e.addRowListener(n,null,(e,t,s)=>w(s)),e.addTableListener(n,()=>R()))},f,e=>n(e,i),()=>qe(u,f)]},rt=(e,s)=>q(e)?t=>t(e):e??(()=>s??t),it=(e,t)=>{const s=new WeakMap;return n=>{s.has(n)||s.set(n,e(n));const l=s.get(n);return t?.(l),l}},dt=/^\d+$/,ct=()=>{const e=[];let s=0;return[n=>(n?fe(e):null)??t+s++,t=>{dt.test(t)&&Y(e)<1e3&&ge(e,t)}]},ut=e=>{let s;const[n,l]=ct(),a=Ae();return[(l,o,r,i=[],d=()=>[])=>{s??=e();const c=n(1);return Ge(a,c,[l,o,r,i,d]),at(nt(o,r??[t],lt),c),c},(e,n,...l)=>re(((e,s=[t])=>{const n=[],l=(e,t)=>t==Y(s)?ge(n,e):j(s[t])?Se(e,e=>l(e,t+1)):re([s[t],null],s=>l(Ue(e,s),t+1));return l(e,0),n})(e,n),e=>Se(e,e=>Ue(a,e)[0](s,...n??[],...l))),e=>B(Ue(a,e),([,s,n])=>(nt(s,n??[t],void 0,t=>(Ve(t,e),Le(t)?1:0)),Ge(a,e),l(e),n)),e=>B(Ue(a,e),([e,,t=[],n,l])=>{const a=(...o)=>{const r=Y(o);r==Y(t)?e(s,...o,...l(o)):j(t[r])?re(n[r]?.(...o)??[],e=>a(...o,e)):a(...o,t[r])};a()})]},gt=it(e=>{let s,n,l,a=100,o=Ae(),r=Ae(),i=1;const d=Ae(),c=Ae(),[u,g,h]=ut(()=>_),f=Ae(),b=Ae(),C=[],w=[],R=(t,s)=>{i=0,e.transaction(()=>{const[n,l]=Ue(f,s);Se(n,(s,n)=>Se(s,(s,l)=>Se(s,(s,a)=>e._[5](n,l,a,s[t],!0)))),Se(l,(s,n)=>e._[6](n,s[t],!0))}),i=1},v=e=>{Ge(f,e),Ge(b,e),g(c,[e])},I=(e,t)=>re(((e,t)=>e.splice(0,t))(e,t??Y(e)),v),L=()=>I(C,Y(C)-a),T=()=>B(s,()=>{ge(C,s),L(),I(w),s=void 0,l=1}),p=()=>{s=he(C),l=1};let S,V;const m=(e=t)=>(O(s)&&(s=t+n++,Ge(f,s,[o,r]),E(s,e),o=Ae(),r=Ae(),l=1),s),y=()=>{ce(C)||(((e,...t)=>{e.unshift(...t)})(w,m()),R(0,s),s=he(C),l=1)},k=()=>{ce(w)||(ge(C,s),s=fe(w),R(1,s),l=1)},M=()=>{l&&(g(d),l=0)},D=e=>{const t=m(e);return M(),t},E=(e,t)=>(W(e)&&Ue(b,e)!==t&&(Ge(b,e,t),g(c,[e])),_),W=e=>Ie(f,e),_={setSize:e=>(a=e,L(),_),addCheckpoint:D,setCheckpoint:E,getStore:()=>e,getCheckpointIds:()=>[[...C],s,[...w]],forEachCheckpoint:e=>qe(b,e),hasCheckpoint:W,getCheckpoint:e=>Ue(b,e),goBackward:()=>(y(),M(),_),goForward:()=>(k(),M(),_),goTo:e=>{const t=se(C,e)?y:se(w,e)?k:void 0;for(;!O(t)&&e!=s;)t();return M(),_},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(h(e),_),clear:()=>(I(C),I(w),O(s)||v(s),s=void 0,n=0,D(),_),clearForward:()=>(ce(w)||(I(w),g(d)),_),destroy:()=>{e.delListener(S),e.delListener(V)},getListenerStats:()=>({checkpointIds:we(d),checkpoint:we(c)}),_registerListeners:()=>{S=e.addCellListener(null,null,null,(e,t,s,n,l,a)=>{if(i){T();const e=Ke(o,t,Ae),r=Ke(e,s,Ae),i=Ke(r,n,()=>[a,void 0]);i[1]=l,i[0]===l&&Le(Ge(r,n))&&Le(Ge(e,s))&&Le(Ge(o,t))&&p(),M()}}),V=e.addValueListener(null,(e,t,s,n)=>{if(i){T();const e=Ke(r,t,()=>[n,void 0]);e[1]=s,e[0]===s&&Le(Ge(r,t))&&p(),M()}})}};return We(_.clear())},e=>e._registerListeners()),ht=E("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),ft=Ae(ie(ht,(e,t)=>[e,t])),bt=e=>ht[63&e],Ct=(e,t)=>Ue(ft,e[t])??0,wt=H.crypto?e=>H.crypto.getRandomValues(e):e=>ie(e,()=>P(256*F())),Rt=(e=16)=>ue(wt(new Uint8Array(e)),(e,t)=>e+bt(t),t),vt=JSON.stringify,It=JSON.parse,Lt=e=>vt(e,(e,t)=>t instanceof Map?me.fromEntries([...t]):t),Tt=new H.TextEncoder,pt=e=>{let t=2166136261;return re(Tt.encode(e),e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},St=(e,t)=>(e^t)>>>0,Vt=e=>ue(Me(e),(e,[t,s])=>St(e,mt(t,s)^mt(t,0)),0),mt=(e,t)=>pt(e+":"+t),yt=(e,t)=>pt(Lt(e??null)+":"+t),kt=yt,Mt=mt,Dt=Vt,Et=mt,Wt=e=>ue(Me(e),(e,[t,s])=>St(e,mt(t,s)),0),_t=mt,Ht=Wt,Jt=2**36,xt=2**30,Pt=2**24,Ft=2**18,Qt=4096,Nt=e=>{const t=pt(e);return bt(t/Pt)+bt(t/Ft)+bt(t/Qt)+bt(t/64)+bt(t)},Ot=(e,s=Date.now)=>{let n=0,l=-1;const a=B(e,Nt,()=>Rt(5)),o=e=>{const a=n,[o,r]=O(e)||e==t?[0,0]:i(e);n=J(a,o,s()),l=n==a?n==o?J(l,r):l:n==o?r:-1},r=(e,t,s)=>bt(e/Jt)+bt(e/xt)+bt(e/Pt)+bt(e/Ft)+bt(e/Qt)+bt(e/64)+bt(e)+bt(t/Ft)+bt(t/Qt)+bt(t/64)+bt(t)+(O(s)?a:Nt(s)),i=e=>[Ct(e,0)*Jt+Ct(e,1)*xt+Ct(e,2)*Pt+Ct(e,3)*Ft+Ct(e,4)*Qt+64*Ct(e,5)+Ct(e,6),Ct(e,7)*Ft+Ct(e,8)*Qt+64*Ct(e,9)+Ct(e,10),e.slice(11)];return[()=>(o(),r(n,++l)),o,r,i,()=>n,()=>l,()=>a]},jt=(e,t)=>(e??0)<(t??0)?-1:1,zt=it(e=>{const s=Ae(),n=Ae(),[l,a,o]=ut(()=>v),[r,i,d,c,u,g,h,,f,b,C,w]=ot(e,Ae,e=>O(e)?t:K(e)?ie(e,k):k(e),l,a),R=(t,s,n)=>{const l=u(t);Se(n,(t,n)=>s(n,s=>Se(t,t=>s(t,s=>e.forEachCell(l,t,s)))))},v={setIndexDefinition:(e,t,l,o,r,i=jt)=>{const d=O(r)?void 0:([e],[t])=>r(e,t);return f(e,t,(t,l,r,c,u,f)=>{let b=0;const C=lt(),w=lt(),R=g(e);if(Se(l,([e,t],s)=>{const n=lt(e),l=lt(t);Se(n,e=>Ve(l,e)?Ve(n,e):0),Se(n,e=>{at(C,e),B(Ue(R,e),t=>{Ve(t,s),Le(t)&&(Ge(R,e),b=1)})}),Se(l,e=>{at(C,e),Ie(R,e)||(Ge(R,e,lt()),b=1),at(Ue(R,e),s),O(o)||at(w,e)})}),t(),Le(u)||(f?qe(R,e=>at(w,e)):qe(r,e=>B(Ue(c,e),e=>re(K(e)?e:[e],e=>at(w,e)))),Se(w,e=>{const t=(t,s)=>i(Ue(u,t),Ue(u,s),e),s=[...Ue(R,e)];ae(s,t)||(Ge(R,e,lt(oe(s,t))),at(C,e))})),(b||f)&&!O(d)){const t=[...R];ae(t,d)||(h(e,Ae(oe(t,d))),b=1)}b&&a(s,[e]),Se(C,t=>a(n,[e,t]))},rt(l),B(o,rt)),v},delIndexDefinition:e=>(b(e),v),getStore:r,getIndexIds:i,forEachIndex:e=>d((t,s)=>e(t,e=>R(t,e,s))),forEachSlice:(e,t)=>R(e,t,g(e)),hasIndex:c,hasSlice:(e,t)=>Ie(g(e),t),getTableId:u,getSliceIds:e=>Be(g(e)),getSliceRowIds:(e,t)=>Te(Ue(g(e),t)),addIndexIdsListener:C,addSliceIdsListener:(e,t)=>l(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>l(s,n,[e,t]),delListener:e=>(o(e),v),destroy:w,getListenerStats:()=>({sliceIds:we(s),sliceRowIds:Re(n)})};return We(v)}),At=t=>{if(j(t))return"null";if(K(t))return r;if(De(t))return o;const s=e(t);return U(s)||s==l&&Q(t)?s:void 0},Bt=e=>O(e)||!O(At(e)),Ut=e=>e==o||e==r,qt=e=>De(e)||K(e)?"�"+vt(e):e,Gt=e=>q(e)&&"�"==e[0],Kt=(e,t,s)=>!s&&Gt(e)?It(X(e,1)):e,Xt=([e,t])=>Yt(e,t),Yt=(e,t)=>t?[e,t]:[e],Zt=(e,t,s)=>[e,t,s],$t=e=>e[2],es=(e,t)=>t>e?(e?pt(e):0)^pt(t):0,ts=(e,s)=>((e??t)>(s??t)?e:s)??t,ss=(e,t,s)=>{t>e[1]&&(e[1]=t),e[2]=s>>>0},ns=(e=t)=>Yt(_e(),e),ls=(e=t)=>[Ae(),e,0],as=([e,t,s],n)=>[Ye(e,n),t,s],os=([e,t],s=Xt)=>Yt(Ye(e,s),t),rs=(t,s)=>{return K(t)&&3==Y(t)&&q(t[1])&&(n=t[2],e(n)==l)&&Q(t[2])&&s(t[0]);var n},is=e=>[e,e],ds=(e,t=we)=>t(e[0])+t(e[1]),cs=()=>[Ae(),Ae()],us=e=>[...e],gs=([e,t])=>e===t,hs=(e,t,s)=>Ge(e,t,Ue(e,t)==-s?void 0:s),fs=([e,t],[s,n])=>Ne(e,s)&&Ne(t,n),bs=()=>{let e,t,s=!1,n=!1,a=0,o=[],r=[],g=0;const b=Ae(),T=Ae(),M=Ae(),D=Ae(),E=Ae(),W=Ae(),_=Ae(),H=Ae(),J=Ae(),x=lt(),P=Ae(),F=Ae(),Q=Ae(),N=Ae(),z=Ae(),A=Ae(),q=lt(),Y=Ae(),Z=Ae(),$=Ae(),ne=Ae(),ae=cs(),de=cs(),ce=cs(),ue=cs(),he=cs(),fe=cs(),be=cs(),Te=cs(),me=cs(),ye=cs(),ke=cs(),Me=cs(),Ee=cs(),_e=cs(),xe=cs(),Fe=cs(),Oe=cs(),ze=cs(),nt=cs(),ot=cs(),rt=cs(),it=cs(),dt=Ae(),gt=cs(),[ht,ft,bt,Ct]=ut(()=>dn),wt=e=>{const t=g;g=1;const s=e();return g=t,s},Rt=(e,t,s,n=Object.is)=>B(t(),t=>e===t||n(e,t)?s(t):wt(()=>s(t))),vt=e=>{if(!je(e,(e,t)=>se([i,d,c],t)))return!1;const t=e[i];if(!U(t)&&t!=l&&!Ut(t))return!1;const s=e[d];return!(j(s)&&!e[c]||(j(s)||(At(s)!=t?Je(e,d):e[d]=qt(s)),0))},Tt=K,pt=(t,s)=>(!e||Ie(Q,s)||os(s))&&je(t,(e,t)=>St(s,t,e),()=>os(s)),St=(e,t,s,n)=>je(n?s:kt(s,e,t),(n,l)=>B(Vt(e,t,l,n),e=>(s[l]=e,!0),()=>!1),()=>os(e,t)),Vt=(t,s,n,l)=>e?B(Ue(Ue(Q,t),n),e=>j(l)?e[c]?l:os(t,s,n,l,e[d]):At(l)===e[i]?qt(l):Ut(e[i])&&Gt(l)?l:os(t,s,n,l,e[d]),()=>os(t,s,n,l)):O(At(l))?os(t,s,n,l):qt(l),mt=(e,t)=>je(t?e:Mt(e),(t,s)=>B(yt(s,t),t=>(e[s]=t,!0),()=>!1),()=>rs()),yt=(e,s)=>t?B(Ue(z,e),t=>j(s)?t[c]?s:rs(e,s,t[d]):At(s)===t[i]?qt(s):Ut(t[i])&&Gt(s)?s:rs(e,s,t[d]),()=>rs(e,s)):O(At(s))?rs(e,s):qt(s),kt=(e,t,s)=>(B(Ue(N,t),([n,l])=>{Se(n,(n,l)=>{He(e,l)||(e[l]=n,B(s,e=>at(Ke(Ke(_,t,Ae),e,lt),l)))}),Se(l,n=>{He(e,n)||os(t,s,n)})}),e),Mt=e=>(t&&(Se(A,(t,s)=>{He(e,s)||(e[s]=t,at(x,s))}),Se(q,t=>{He(e,t)||rs(t)})),e),Dt=e=>Xe(Q,e,(e,t,s)=>{const n=Ae(),l=lt();Xe(Ke(Q,t,Ae),s,(e,t,s)=>{Ge(e,t,s),B(s[d],e=>Ge(n,t,e),()=>at(l,t))}),Ge(N,t,[n,l])},(e,t)=>{Ge(Q,t),Ge(N,t)}),Et=e=>Xe(z,e,(e,t,s)=>{Ge(z,t,s),B(s[d],e=>Ge(A,t,e),()=>at(q,t))},(e,t)=>{Ge(z,t),Ge(A,t),Ve(q,t)}),Wt=e=>Qe(e)?Ys():As(e),_t=(e,t,s,n,l,a)=>O(n)?en(e,t,s,!0,l):Bs(e,t,s,n,l,a),Ht=e=>Qe(e)?tn():Us(e),Jt=(e,t,s)=>O(t)?sn(e,s):qs(e,t,s),xt=(e,t)=>Rt(e,()=>t?e:B(o[1],t=>wt(()=>t(ee(e))),()=>e),e=>Xe($,e,(e,t,s)=>Pt(t,s),(e,t)=>Xt(t)),Ne),Pt=(e,t,s)=>Rt(t,()=>s?t:B(o[2],s=>wt(()=>s(e,ee(t))),()=>t),t=>Xe(Ke($,e,()=>(es(e,1),Ge(Y,e,ct()),Ge(Z,e,Ae()),Ae())),t,(t,s,n)=>Ft(e,t,s,n),(t,s)=>Yt(e,t,s)),Ne),Ft=(e,t,s,n,l)=>Rt(n,()=>l?n:B(o[3],t=>wt(()=>t(e,s,ee(n))),()=>n),n=>Xe(Ke(t,s,()=>(ts(e,s,1),Ae())),n,(t,n,l)=>Qt(e,s,t,n,l),(n,a)=>Zt(e,t,s,n,a,l)),Ne),Qt=(e,t,s,n,l,a)=>Rt(l,()=>B(a?void 0:o[4],s=>wt(()=>s(e,t,n,l)),()=>l),l=>{Ie(s,n)||ss(e,t,n,1);const a=Ue(s,n);l!==a&&(ns(e,t,n,a,l),Ge(s,n,l))}),Nt=(e,t,s,n,l,a)=>B(Ue(t,s),t=>Qt(e,s,t,n,l,a),()=>{const o=Ae();Ge(t,s,o),ts(e,s,1),Pe(kt({[n]:l},e,s),(t,n)=>Qt(e,s,o,n,t,a))}),Ot=(e,t)=>Rt(e,()=>t?e:B(o[5],t=>wt(()=>t(ee(e))),()=>e),e=>Xe(ne,e,(e,t,s)=>zt(t,s),(e,t)=>$t(t)),Ne),zt=(e,t,s)=>Rt(t,()=>B(s?void 0:o[6],s=>wt(()=>s(e,t)),()=>t),t=>{Ie(ne,e)||ls(e,1);const s=Ue(ne,e);t!==s&&(as(e,s,t),Ge(ne,e,t))}),Bt=e=>Ke($,e,()=>(es(e,1),Ge(Y,e,ct()),Ge(Z,e,Ae()),Ae())),Xt=e=>wt(()=>o[8]?.(e))??1?Pt(e,{},!0):Ue($,e),Yt=(e,t,s)=>{if(wt(()=>o[9]?.(e,s))??1){const[,n]=Ue(Y,e);n(s),Ft(e,t,s,{},!0)}},Zt=(e,t,s,n,l,a,r)=>{const i=Ue(Ue(N,e)?.[0],l);if(!O(i)&&!a)return Qt(e,s,n,l,i);if(r||(wt(()=>o[10]?.(e,s,l))??1)){const a=t=>{ns(e,s,t,Ue(n,t)),ss(e,s,t,-1),Ge(n,t)};O(i)?a(l):qe(n,a),Le(n)&&(ts(e,s,-1),Le(Ge(t,s))&&(es(e,-1),Ge($,e),Ge(Y,e),Ge(Z,e)))}},$t=(e,t)=>{const s=Ue(A,e);if(!O(s))return zt(e,s);(t||(wt(()=>o[12]?.(e))??1))&&(as(e,Ue(ne,e)),ls(e,-1),Ge(ne,e))},es=(e,t)=>hs(b,e,t),ts=(e,t,s)=>hs(Ke(D,e,Ae),t,s)&&Ge(M,e,Ke(M,e,()=>0)+s),ss=(e,t,s,n)=>{const l=Ue(Z,e),a=Ue(l,s)??0;(0==a&&1==n||1==a&&-1==n)&&hs(Ke(T,e,Ae),s,n),Ge(l,s,a!=-n?a+n:void 0),hs(Ke(Ke(E,e,Ae),t,Ae),s,n)},ns=(e,t,s,n,l)=>{const a=Ie(Ue(Ue(_,e),t),s)&&O(n)?1:0;Ke(Ke(Ke(W,e,Ae),t,Ae),s,()=>[n,0])[1]=l,r[3]?.(e,t,s,l,g,a),Ve(Ue(Ue(_,e),t),s)},ls=(e,t)=>hs(H,e,t),as=(e,t,s)=>{const n=Ie(x,e)&&O(t)?1:0;Ke(J,e,()=>[t,0])[1]=s,r[4]?.(e,s,g,n),Ve(x,e)},os=(e,t,s,n,l)=>(ge(Ke(Ke(Ke(P,e,Ae),t,Ae),s,()=>[]),n),l),rs=(e,t,s)=>(ge(Ke(F,e,()=>[]),t),s),Cs=(e,t,s)=>B(Ue(Ue(Ue(W,e),t),s),([e,t])=>[!0,Kt(e),Kt(t)],()=>[!1,...is(_s(e,t,s))]),ws=e=>B(Ue(J,e),([e,t])=>[!0,Kt(e),Kt(t)],()=>[!1,...is(xs(e))]),Rs=e=>Le(P)||Le(Fe[e])?0:Se(e?st(P):P,(t,s)=>Se(t,(t,n)=>Se(t,(t,l)=>ft(Fe[e],[s,n,l],t)))),vs=e=>Le(F)||Le(Oe[e])?0:Se(e?et(F):F,(t,s)=>ft(Oe[e],[s],t)),Is=(e,t,s,n)=>{if(!Le(e))return ft(t,n,()=>Ye(e)),qe(e,(e,t)=>ft(s,[...n??[],e],1==t)),1},Ls=e=>{const t=!Le(ae[e]),n=!Le(ye[e]),l=!(Le(Ee[e])&&Le(_e[e])&&Le(me[e])&&Le(ke[e])&&Le(fe[e])&&Le(be[e])&&Le(Te[e])&&!n&&Le(ce[e])&&Le(ue[e])),a=!(Le(xe[e])&&Le(Me[e])&&Le(he[e])&&Le(de[e]));if(t||l||a){const r=e?[et(b),tt(T),et(M),tt(D),st(E),(o=W,et(o,e=>et(e,e=>et(e,us))))]:[b,T,M,D,E,W];if(t){const t=Ps();t!=s&&ft(ae[e],void 0,t)}if(l){Is(r[0],ce[e],ue[e]),Se(r[1],(t,s)=>Is(t,fe[e],be[e],[s])),Se(r[2],(t,s)=>{0!=t&&ft(Te[e],[s],Ms(s))});const t=lt();Se(r[3],(s,l)=>{Is(s,me[e],ke[e],[l])&&n&&(ft(ye[e],[l,null]),at(t,l))}),n&&Se(r[5],(s,n)=>{if(!Ie(t,n)){const t=lt();Se(s,e=>Se(e,([s,n],l)=>n!==s?at(t,l):Ve(e,l))),Se(t,t=>ft(ye[e],[n,t]))}}),Se(r[4],(t,s)=>Se(t,(t,n)=>Is(t,Ee[e],_e[e],[s,n])))}if(a){let t;Se(r[5],(s,n)=>{let l;Se(s,(s,a)=>{let o;Se(s,([s,r],i)=>{r!==s&&(ft(xe[e],[n,a,i],Kt(r),Kt(s),Cs),t=l=o=1)}),o&&ft(Me[e],[n,a],Cs)}),l&&ft(he[e],[n],Cs)}),t&&ft(de[e],void 0,Cs)}}var o},Ts=e=>{const t=!Le(ze[e]),s=!Le(ot[e])||!Le(rt[e]),l=!Le(it[e])||!Le(nt[e]);if(t||s||l){const a=e?[et(H),et(J,us)]:[H,J];if(t){const t=js();t!=n&&ft(ze[e],void 0,t)}if(s&&Is(a[0],ot[e],rt[e]),l){let t;Se(a[1],([s,n],l)=>{n!==s&&(ft(it[e],[l],Kt(n),Kt(s),ws),t=1)}),t&&ft(nt[e],void 0,ws)}}},ps=(e,...t)=>(an(()=>e(...ie(t,k))),dn),Ss=(e,t,s,n,l)=>{let a=Es(e,t,...s);return ht(()=>{const l=Es(e,t,...s);le(l,a)||(a=l,n(dn,e,t,...s,a))},ye[l?1:0],[e,t],[ys])},Vs=(e=!1)=>[Ye(W,(t,s)=>-1===Ue(b,s)?void 0:Ye(t,(t,n)=>-1===Ue(Ue(D,s),n)?void 0:Ye(t,([,t])=>Kt(t,0,e),e=>gs(e)),Le,Qe),Le,Qe),Ye(J,([,t])=>Kt(t,0,e),e=>gs(e)),1],ms=()=>$e($,Kt),ys=()=>Be($),ks=e=>Be(Ue(Z,k(e))),Ms=e=>Ce(Ue($,k(e))),Ds=e=>Be(Ue($,k(e))),Es=(e,t,s,n=0,l)=>{return De(e)?Es(e.tableId,e.cellId,e.descending,e.offset,e.limit):ie(X(oe((a=Ue($,k(e)),o=(e,s)=>[O(t)?s:Ue(e,k(t)),s],ie([...a?.entries()??[]],([e,t])=>o(t,e))),([e],[t])=>jt(e,t)*(s?-1:1)),n,O(l)?l:n+l),([,e])=>e);var a,o},Ws=(e,t)=>Be(Ue(Ue($,k(e)),k(t))),_s=(e,t,s)=>Kt(Ue(Ue(Ue($,k(e)),k(t)),k(s))),Hs=()=>Ye(ne,Kt),Js=()=>Be(ne),xs=e=>Kt(Ue(ne,k(e))),Ps=()=>!Le($),Fs=e=>Ie($,k(e)),Qs=(e,t)=>Ie(Ue(Z,k(e)),k(t)),Ns=(e,t)=>Ie(Ue($,k(e)),k(t)),Os=(e,t,s)=>Ie(Ue(Ue($,k(e)),k(t)),k(s)),js=()=>!Le(ne),zs=e=>Ie(ne,k(e)),As=e=>ps(()=>(e=>je(e,pt,os))(e)?xt(e):0),Bs=(e,t,s,n,l,a)=>ps((e,t,s)=>B(Vt(e,t,s,G(n)?n(_s(e,t,s)):n),n=>{const r=Bt(e);B(l||a||!o[14]?.()?void 0:o[3],a=>{const o=Ue(r,t),i={...o?Ye(o):{},[s]:n};B(wt(()=>a(e,t,ee(i))),s=>((e,t,s,n,l)=>{Xe(Ke(t,s,()=>(ts(e,s,1),Ae())),n,(t,n,a)=>B(Vt(e,s,n,a),a=>Qt(e,s,t,n,a,l)),(n,l)=>Zt(e,t,s,n,l,!0))})(e,r,t,s,l))},()=>Nt(e,r,t,s,n,l))}),e,t,s),Us=e=>ps(()=>mt(e)?Ot(e):0),qs=(e,t,s)=>ps(e=>B(yt(e,G(t)?t(xs(e)):t),t=>zt(e,t,s)),e),Gs=e=>(te(()=>Wt(It(e))),dn),Ks=t=>ps(()=>{if((e=je(t,e=>je(e,vt)))&&(Dt(t),!Le($))){const e=ms();Ys(),As(e)}}),Xs=e=>ps(()=>{if(t=(e=>je(e,vt))(e)){const s=Hs();ln(),tn(),t=!0,Et(e),Us(s)}}),Ys=()=>ps(()=>wt(()=>o[7]?.())??1?xt({},!0):0),Zs=e=>ps(e=>Ie($,e)?Xt(e):0,e),$s=(e,t)=>ps((e,t)=>B(Ue($,e),s=>Ie(s,t)?Yt(e,s,t):0),e,t),en=(e,t,s,n,l)=>ps((e,t,s)=>B(Ue($,e),a=>B(Ue(a,t),o=>Ie(o,s)?Zt(e,a,t,o,s,n,l):0)),e,t,s),tn=()=>ps(()=>wt(()=>o[11]?.())??1?Ot({},!0):0),sn=(e,t)=>ps(e=>Ie(ne,e)?$t(e,t):0,e),nn=()=>ps(()=>{Dt({}),e=!1}),ln=()=>ps(()=>{Et({}),t=!1}),an=(e,t)=>{if(-1!=a){on();const s=e();return rn(t),s}},on=()=>(-1!=a&&a++,1==a&&(r[0]?.(),ft(dt)),dn),rn=e=>(a>0&&(a--,0==a&&(a=1,wt(()=>{Rs(1),Le(W)||Ls(1),vs(1),Le(J)||Ts(1)}),e?.(dn)&&(Se(W,(e,t)=>Se(e,(e,s)=>Se(e,([e],n)=>_t(t,s,n,e,!0)))),pe(W),Se(J,([e],t)=>Jt(t,e,!0)),pe(J)),ft(gt[0],void 0),a=-1,Rs(0),Le(W)||Ls(0),vs(0),Le(J)||Ts(0),r[1]?.(),ft(gt[1],void 0),r[2]?.(),a=0,s=Ps(),n=js(),re([b,T,M,D,E,W,_,P,H,J,x,F],pe))),dn),dn={getContent:()=>[ms(),Hs()],getTables:ms,getTableIds:ys,getTable:e=>Ze(Ue($,k(e)),Kt),getTableCellIds:ks,getRowCount:Ms,getRowIds:Ds,getSortedRowIds:Es,getRow:(e,t)=>Ye(Ue(Ue($,k(e)),k(t)),Kt),getCellIds:Ws,getCell:_s,getValues:Hs,getValueIds:Js,getValue:xs,hasTables:Ps,hasTable:Fs,hasTableCell:Qs,hasRow:Ns,hasCell:Os,hasValues:js,hasValue:zs,getTablesJson:()=>Lt($),getValuesJson:()=>Lt(ne),getJson:()=>Lt([$,ne]),getTablesSchemaJson:()=>Lt(Q),getValuesSchemaJson:()=>Lt(z),getSchemaJson:()=>Lt([Q,z]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>ps(()=>{const t=G(e)?e():e;Tt(t)&&(e=>{Rt(e,()=>B(o[0],t=>wt(()=>t(ee(e))),()=>e),([e,t])=>{(Qe(e)?Ys:As)(e),(Qe(t)?tn:Us)(t)},fs)})(t)}),setTables:As,setTable:(e,t)=>ps(e=>pt(t,e)?Pt(e,t):0,e),setRow:(e,t,s)=>ps((e,t)=>St(e,t,s)?Ft(e,Bt(e),t,s):0,e,t),addRow:(e,t,s=!0)=>an(()=>{let n;return St(e,n,t)&&(e=k(e),Ft(e,Bt(e),n=((e,t)=>{const[s]=Ue(Y,e);let n;do{n=s(t)}while(Ie(Ue($,e),n));return n})(e,s?1:0),t)),n}),setPartialRow:(e,t,s)=>ps((e,t)=>{if(St(e,t,s,1)){const n=Bt(e);Pe(s,(s,l)=>Nt(e,n,t,l,s))}},e,t),setCell:Bs,setValues:Us,setPartialValues:e=>ps(()=>mt(e,1)?Pe(e,(e,t)=>zt(t,e)):0),setValue:qs,applyChanges:e=>ps(()=>Rt(e,()=>B(o[13],t=>wt(()=>t(ee(e))),()=>e),e=>{Pe(e[0],(e,t)=>O(e)?Zs(t):Pe(e,(e,s)=>O(e)?$s(t,s):Pe(e,(e,n)=>_t(t,s,n,e,void 0,!0)))),Pe(e[1],(e,t)=>Jt(t,e))},fs)),setTablesJson:Gs,setValuesJson:e=>(te(()=>Ht(It(e))),dn),setJson:e=>ps(()=>te(()=>{const[t,s]=It(e);Wt(t),Ht(s)},()=>Gs(e))),setTablesSchema:Ks,setValuesSchema:Xs,setSchema:(e,t)=>ps(()=>{Ks(e),Xs(t)}),delTables:Ys,delTable:Zs,delRow:$s,delCell:en,delValues:tn,delValue:sn,delTablesSchema:nn,delValuesSchema:ln,delSchema:()=>ps(()=>{nn(),ln()}),transaction:an,startTransaction:on,getTransactionChanges:()=>Vs(),getTransactionLog:()=>[!Le(W),!Le(J),$e(W,us,gs),$e(P),Ye(J,us,gs),Ye(F),Ye(b),Ze(D),$e(E),Ye(H)],finishTransaction:rn,forEachTable:e=>Se($,(t,s)=>e(s,e=>Se(t,(t,s)=>e(s,e=>qe(t,(t,s)=>e(t,Kt(s))))))),forEachTableCell:(e,t)=>qe(Ue(Z,k(e)),t),forEachRow:(e,t)=>Se(Ue($,k(e)),(e,s)=>t(s,t=>qe(e,(e,s)=>t(e,Kt(s))))),forEachCell:(e,t,s)=>qe(Ue(Ue($,k(e)),k(t)),(e,t)=>s(e,Kt(t))),forEachValue:e=>qe(ne,(t,s)=>e(t,Kt(s))),addSortedRowIdsListener:(e,t,s,n,l,a,o)=>De(e)?Ss(e.tableId,e.cellId,[e.descending??!1,e.offset??0,e.limit],t,s):Ss(e,t,[s,n,l],a,o),addStartTransactionListener:e=>ht(e,dt),addWillFinishTransactionListener:e=>ht(e,gt[0]),addDidFinishTransactionListener:e=>ht(e,gt[1]),callListener:e=>(Ct(e),dn),delListener:e=>(bt(e),dn),getListenerStats:()=>({hasTables:ds(ae),tables:ds(de),tableIds:ds(ce),hasTable:ds(ue),table:ds(he),tableCellIds:ds(fe),hasTableCell:ds(be,Re),rowCount:ds(Te),rowIds:ds(me),sortedRowIds:ds(ye),hasRow:ds(ke,Re),row:ds(Me,Re),cellIds:ds(Ee,Re),hasCell:ds(_e,ve),cell:ds(xe,ve),invalidCell:ds(Fe,ve),hasValues:ds(ze),values:ds(nt),valueIds:ds(ot),hasValue:ds(rt),value:ds(it),invalidValue:ds(Oe),transaction:we(dt)+ds(gt)}),isMergeable:()=>!1,_:[bs,ht,ft,(e,t,s,n,l)=>r=[e,t,s,n,l],(e,t,s,n,l,a,r,i,d,c,u,g,h,f,b)=>o=[e,t,s,n,l,a,r,i,d,c,u,g,h,f,b],_t,Jt,()=>[$e($),Ye(ne)],()=>Vs(!0)]};return Pe({[f+w]:[0,ae,[],()=>[Ps()]],[w]:[0,de],[R]:[0,ce],[f+C]:[1,ue,[ys],e=>[Fs(...e)]],[C]:[1,he,[ys]],[C+S]:[1,fe,[ys]],[f+C+p]:[2,be,[ys,ks],e=>[Qs(...e)]],[I]:[1,Te,[ys]],[L]:[1,me,[ys]],[f+v]:[2,ke,[ys,Ds],e=>[Ns(...e)]],[v]:[2,Me,[ys,Ds]],[S]:[2,Ee,[ys,Ds]],[f+p]:[3,_e,[ys,Ds,Ws],e=>[Os(...e)]],[p]:[3,xe,[ys,Ds,Ws],e=>is(_s(...e))],InvalidCell:[3,Fe],[f+m]:[0,ze,[],()=>[js()]],[m]:[0,nt],[y]:[0,ot],[f+V]:[1,rt,[Js],e=>[zs(...e)]],[V]:[1,it,[Js],e=>is(xs(e[0]))],InvalidValue:[1,Oe]},([e,t,s,n],l)=>{dn[h+l+u]=(...l)=>ht(l[e],t[l[e+1]?1:0],e>0?X(l,0,e):void 0,s,n)}),We(dn)},Cs={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},ws=(e=t)=>[ls(e),ls(e)],Rs=(e,s)=>{let n=1,l=ws(),a=0,o=0;const r=Ae(),i=lt(),[d,c]=Ot(e,s),g=bs(),f=e=>{const t=n;return n=0,e(),n=t,p},b=(e,s=0)=>{const n={},a={},[[o,r=t,i=0],d]=e,[u,g]=l,[h,f,b]=u;let w=s?i:b,R=r;xe(o,([e,l=t,a=0],o)=>{const r=Ke(h,o,ls),[i,d,c]=r;let u=s?a:c,g=l;xe(e,(e,t)=>{const[l,a,r]=C(e,Ke(i,t,ls),Oe(Oe(n,o,_e),t,_e),s);u^=s?0:St(a?mt(t,a):0,mt(t,r)),g=ts(g,l)}),u^=s?0:es(d,l),ss(r,l,u),w^=s?0:St(c?mt(o,c):0,mt(o,r[2])),R=ts(R,g)}),w^=s?0:es(f,r),ss(u,r,w);const[v]=C(d,g,a,s);return c(ts(R,v)),[n,a,1]},C=(e,s,n,l)=>{const[a,o=t,r=0]=e,[i,d,c]=s;let u=o,g=l?r:c;return xe(a,([e,s=t,a=0],o)=>{const r=Ke(i,o,()=>[void 0,t,0]),[,d,c]=r;(!d||s>d)&&(ss(r,s,l?a:yt(e,s)),r[0]=e,n[o]=e,g^=l?0:St(mt(o,c),mt(o,r[2])),u=ts(u,s))}),g^=l?0:es(d,o),ss(s,o,g),[u,c,s[2]]},w=$,R=$,v=(e=!1)=>[as(l[0],t=>as(t,t=>as(t,([t,s,n])=>[Kt(t,0,e),s,n]))),as(l[1],([t,s,n])=>[Kt(t,0,e),s,n])],I=(e,t=!1)=>{const[[s,n,a],[o,d,c]]=l,u=e?Zt:Yt,g={};Se(r,(e,n)=>B(Ue(s,n),([s,l,a])=>{const o={};Se(e,(e,n)=>B(Ue(s,n),([s,l,a])=>{const r={};Se(e,e=>{B(Ue(s,e),([s,n,l])=>r[e]=u(t?s:Kt(s),n,l))}),o[n]=u(r,l,a)})),g[n]=u(o,l,a)}));const h={};return Se(i,e=>B(Ue(o,e),([s,n,l])=>h[e]=u(t?s:Kt(s),n,l))),[u(g,n,a),u(h,d,c),1]},L=()=>v(),T=e=>f(()=>g.applyChanges(b(e))),p={getMergeableContent:L,getMergeableContentHashes:()=>[l[0][2],l[1][2]],getMergeableTableHashes:()=>Ye(l[0][0],$t),getMergeableTableDiff:e=>{const t=ns(l[0][1]),s={};return qe(l[0][0],(n,[l,a,o])=>He(e,n)?o!=e[n]?s[n]=o:0:t[0][n]=os([l,a],e=>os(e))),[t,s]},getMergeableRowHashes:e=>{const t={};return xe(e,(e,s)=>B(Ue(l[0][0],s),([n,,l])=>l!=e?qe(n,(e,[,,n])=>Oe(t,s,_e)[e]=n):0)),t},getMergeableRowDiff:e=>{const t=ns(l[0][1]),s={};return xe(e,(e,n)=>qe(Ue(l[0][0],n)?.[0],(l,[a,o,r])=>He(e,l)?r!==e[l]?Oe(s,n,_e)[l]=r:0:Oe(t[0],n,ns)[0][l]=os([a,o]))),[t,s]},getMergeableCellHashes:e=>{const t={};return xe(e,(e,s)=>B(Ue(l[0][0],s),([n])=>xe(e,(e,l)=>B(Ue(n,l),([n,,a])=>a!==e?qe(n,(e,[,,n])=>Oe(Oe(t,s,_e),l,_e)[e]=n):0)))),t},getMergeableCellDiff:e=>{const[[t,s]]=l,n={};return xe(e,(e,s)=>xe(e,(e,l)=>B(Ue(t,s),([t,a])=>B(Ue(t,l),([t,o])=>qe(t,(t,[r,i,d])=>d!==e[t]?Oe(Oe(n,s,()=>ns(a))[0],l,()=>ns(o))[0][t]=[r,i]:0))))),Yt(n,s)},getMergeableValueHashes:()=>Ye(l[1][0],$t),getMergeableValueDiff:e=>{const[,[t,s]]=l,n=Ye(t,Xt,([,,t],s)=>t==e?.[s]);return Yt(n,s)},setMergeableContent:e=>f(()=>(e=>K(e)&&2==Y(e)&&rs(e[0],e=>je(e,e=>rs(e,e=>je(e,e=>rs(e,e=>je(e,e=>rs(e,Bt),void 0,1)),void 0,1)),void 0,1))&&rs(e[1],e=>je(e,e=>rs(e,Bt),void 0,1)))(e)?g.transaction(()=>{g.delTables().delValues(),l=ws(),g.applyChanges(b(e,1))}):0),setDefaultContent:e=>(g.transaction(()=>{a=1,g.setContent(e),a=0}),p),getTransactionMergeableChanges:(e=!1)=>I(e),applyMergeableChanges:T,merge:e=>{const t=L(),s=e.getMergeableContent();return e.applyMergeableChanges(t),T(s)},__:[()=>{const e=o;return o=0,e},()=>v(!0),e=>I(e,!0)]};return g._[3](w,R,()=>{pe(r),pe(i)},(e,s,l,i,c,u)=>{at(Ke(Ke(r,e,Ae),s,lt),l),(n||c)&&(c&&(o=1),b([[{[e]:[{[s]:[{[l]:[i,a||u?t:d()]}]}]}],[{}],1]))},(e,s,l,r)=>{at(i,e),(n||l)&&(l&&(o=1),b([[{}],[{[e]:[s,a||r?t:d()]}],1]))}),Pe(g,(e,t)=>p[t]=M(t,"set")||M(t,"del")||M(t,"apply")||D(t,"Transaction")||t=="call"+u||"use"==t?(...t)=>(e(...t),p):M(t,h)&&D(t,u)?(...s)=>{const n=Cs[X(t,3,-8)]??0,l=s[n];return s[n]=(e,...t)=>l(p,...t),e(...s)}:"isMergeable"==t?()=>!0:e),We(p)},vs=Ae([["avg",[(e,t)=>de(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>J(...e),(e,t)=>J(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:J(t,e)]],["min",[e=>x(...e),(e,t)=>x(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:x(t,e)]],["sum",[e=>de(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Is=(e,t,s,n,l,a=!1)=>{if(Le(s))return;const[o,r,i,d]=l;return a||=O(e),Se(n,([s,n])=>{a||(e=O(s)?r?.(e,n,t++):O(n)?i?.(e,s,t--):d?.(e,n,s,t),a||=O(e))}),a?o(Te(s),Ce(s)):e},Ls=it(e=>{const s=Ae(),[n,l,a]=ut(()=>w),[o,r,i,d,c,u,g,,h,f,b,C]=ot(e,Z,e=>isNaN(e)||O(e)||z(e)||!1===e||e===t?void 0:1*e,n,l),w={setMetricDefinition:(e,t,n,a,o,r,i)=>{const d=G(n)?[n,o,r,i]:Ue(vs,n)??Ue(vs,"sum");return h(e,t,(t,n,a,o,r,i)=>{const c=u(e),h=Ce(o);i||=O(c),t();let f=Is(c,h,o,n,d,i);Q(f)||(f=void 0),f!=c&&(g(e,f),l(s,[e],f,c))},rt(a,1)),w},delMetricDefinition:e=>(f(e),w),getStore:o,getMetricIds:r,forEachMetric:i,hasMetric:d,getTableId:c,getMetric:u,addMetricIdsListener:b,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(a(e),w),destroy:C,getListenerStats:()=>({metric:we(s)})};return We(w)}),Ts=(e,t,...s)=>ue(e,(e,t)=>O(e)?e:t(...s,e),t),ps=(e,...t)=>ne(e,e=>e(...t)),Ss=it(e=>{const t=e=>t=>(ge(e,t),D),s=[],n=[],l=[],a=[],o=[],r=[],i=[],d=[],c=[],u=[],g=[],h=[],f=[],b=[],C=t(s),w=t(n),R=t(l),v=t(a),I=t(o),L=t(r),T=t(i),p=t(d),S=t(c),V=t(u),m=t(g),y=t(h),k=t(f),M=t(b),D=We({getStore:()=>e,addWillSetContentCallback:C,addWillSetTablesCallback:w,addWillSetTableCallback:R,addWillSetRowCallback:v,addWillSetCellCallback:I,addWillSetValuesCallback:L,addWillSetValueCallback:T,addWillDelTablesCallback:p,addWillDelTableCallback:S,addWillDelRowCallback:V,addWillDelCellCallback:m,addWillDelValuesCallback:y,addWillDelValueCallback:k,addWillApplyChangesCallback:M,destroy:()=>{}});return e._[4](e=>Ts(s,e),e=>Ts(n,e),(e,t)=>Ts(l,t,e),(e,t,s)=>Ts(a,s,e,t),(e,t,s,n)=>Ts(o,n,e,t,s),e=>Ts(r,e),(e,t)=>Ts(i,t,e),()=>ps(d),e=>ps(c,e),(e,t)=>ps(u,e,t),(e,t,s)=>ps(g,e,t,s),()=>ps(h),e=>ps(f,e),e=>Ts(b,e),()=>a.length>0),D}),Vs="_",ms=it(e=>{const s=e._[0],n=s(),l=s(),a=Ae(),o=Ae(),r=lt(),i=Ae(),d=Ae(),c={table:0,tableCellIds:0,rowCount:0,rowIds:0,sortedRowIds:0,row:0,cellIds:0,cell:0},f=Ae(),b=Ae(),{_:[,w,R],delListener:V}=l,[m,y,k,M,D,E,W,_,,H,J,x]=ot(e,()=>[],Z,w,R),P=e=>Ke(o,e,s),F=(e,t,...s)=>re(s,s=>at(Ke(Ke(f,t,Ae),e,lt),s)),Q=e=>{B(Ue(f,e),e=>{qe(e,(e,t)=>Se(t,t=>e.delListener(t))),pe(e)}),re([P(e),Ue(a,e)],t=>t?.delTable(e))},N=(e,t,s,...n)=>{const l=Ke(Ke(b,t,Ae),e,lt);return re(n,t=>{at(l,t),s&&e.callListener(t)}),n},j=(e,t,s)=>B(Ue(Ue(b,e),t),n=>{t.delListener(s),Ve(n,s),Le(n)&&Ge(Ue(b,e),t)}),A=e=>B(Ue(b,e),e=>{qe(e,(e,t)=>Se(t,t=>e.delListener(t))),pe(e)}),U=(e,t,s)=>F(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener(()=>s.finishTransaction())),q=(e,t)=>(Qe(t)?n.delRow:n.setRow)(Vs,e,{...t}),K=n=>P(n).transaction(()=>B(E(n),([l,,o])=>{const i=D(n),d=o?P(i):e,c=P(n),u=ee(n);at(r,n),Q(n),A(n);const g=[],h=[[void 0,[i,void 0,void 0,[],Ae(),d]]],f=[],b=[],C=[];l({select:(e,s,n)=>{const l=z(e)?s:e,a=z(e)?n:s,o=G(e)?[Y(g)+t,e]:O(a)?[e,t=>t(e)]:[a,t=>z(e)?t(!0,l,a):t(l,a)];return ge(g,o),{as:e=>o[0]=e}},join:(t,s,n,l)=>{const a=z(t)?s:t,[o,r]=z(t)?O(l)||G(n)?[void 0,n]:[n,l]:O(n)||G(s)?[void 0,s]:[s,n],i=[a,[a,o,G(r)?r:e=>e(r),[],Ae(),z(t)?P(a):e]];return ge(h,i),{as:e=>i[0]=e}},where:(e,t,s,n)=>ge(f,G(e)?e:z(e)?e=>e(!0,t,s)===n:O(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,l)=>{const a=[e,[e,G(t)?[t,s,n,l]:Ue(vs,t)??[(e,t)=>t]]];return ge(b,a),{as:e=>a[0]=e}},having:(e,t)=>ge(C,G(e)?e:s=>s(e)===t),param:e=>((e,t)=>B(e,e=>e[t]))(u,e)});const w=Ae(g);if(Le(w))return Ve(r,n),te;const R=Ae(h);qe(R,(e,[,t])=>B(Ue(R,t),({3:t})=>O(e)?0:ge(t,e)));const v=Ae(b),I=!Le(v)||!ce(C),L=I?(e=>Ke(a,e,s))(n):c;if(I){U(n,L,c);const e=Ae();qe(v,(t,[s,n])=>at(Ke(e,s,lt),[t,n]));const t=lt();qe(w,s=>Ie(e,s)?0:at(t,s));const s=Ae(),l=(t,s,l,a)=>B(t,([o,r,i,d])=>{qe(s,(t,[s])=>{const n=Ke(o,t,Ae),r=Ue(n,l),i=a?void 0:s;if(r!==i){const s=lt([[r,i]]),a=Ce(n);Ge(n,l,i),Se(Ue(e,t),([e,t])=>{const l=Is(d[e],a,n,s,t);d[e]=O(At(l))?void 0:l})}}),Le(r)||!ne(C,e=>e(e=>d[e]))?c.delRow(n,i):O(i)?t[2]=c.addRow(n,d):c.setRow(n,i,d)});F(L,n,L.addRowListener(n,null,(a,o,r,i)=>{const d=[],c=[],u=Ae(),g=L.hasRow(n,r);let h=!g;Se(t,e=>{const[t,s,l]=i(n,r,e);ge(d,s),ge(c,l),h||=t}),qe(e,e=>{const[t,,s]=i(n,r,e);(h||t)&&Ge(u,e,[s])}),h&&l(nt(s,d,void 0,([,e])=>(Ve(e,r),Le(e))),u,r,1),g&&l(nt(s,c,()=>{const e={};return Se(t,t=>e[t]=L.getCell(n,r,t)),[Ae(),lt(),void 0,e]},([,e])=>{at(e,r)}),u,r)}))}U(n,d,L);const T=(e,t,s,l,a)=>{const o=e=>t.getCell(s,l,e);re(a,t=>{const[s,,l,a,r,i]=Ue(R,t),d=l?.(o,e),c=Ue(r,e),u=c?.[0];d!=u&&(B(c,([,e,t])=>j(n,e,t)),Ge(r,e,O(d)?void 0:[d,i,...N(i,n,1,i.addRowListener(s,d,()=>T(e,i,s,d,a)))]))}),(e=>{const t=(t,s,n)=>{const l=z(t)?s:t,a=z(t)?n:s;if(O(a))return d.getCell(i,e,t);if(l===i&&!z(t))return d.getCell(i,e,a);const o=Ue(R,l);return O(o)?void 0:o[5].getCell(o[0],Ue(o[4],e)?.[0],a)};L.transaction(()=>ne(f,e=>e(t))?qe(w,(s,l)=>L._[5](n,e,s,l(t,e))):L.delRow(n,e))})(e)},{3:p}=Ue(R,void 0),S=(e,t,s)=>{d.hasRow(i,s)?T(s,d,i,s,p):(L.delRow(n,s),Se(R,({4:e})=>B(Ue(e,s),([,t,l])=>{j(n,t,l),Ge(e,s)})))};return L.transaction(()=>{re(d.getRowIds(i),e=>S(0,0,e)),N(d,n,0,d.addRowListener(i,null,S))}),Ve(r,n),te})),$=e=>(B(E(e),([,e])=>n.delListener(e)),n.delRow(Vs,e),Q(e),A(e),H(e),te),ee=e=>n.getRow(Vs,e),te={setQueryDefinition:(e,t,s,l,a={})=>{const[o,r,i,d]=z(t)?[s,l,1,a]:[t,s,0,l??{}];return B(E(e),([,e])=>n.delListener(e)),_(e,o),W(e,[r,n.addRowListener(Vs,e,()=>K(e)),i]),q(e,d),K(e),te},delQueryDefinition:$,getParamValues:ee,getParamValue:(e,t)=>n.getCell(Vs,e,t),setParamValues:(e,t)=>(M(e)&&q(e,t),te),setParamValue:(e,t,s)=>(M(e)&&n.setCell(Vs,e,t,s),te),getStore:m,getQueryIds:y,forEachQuery:k,hasQuery:M,getTableId:D,forEachResultTable:e=>k(t=>P(t).hasTable(t)?e(t,e=>te.forEachResultRow(t,e)):0),addQueryIdsListener:e=>J(()=>e(te)),addParamValuesListener:(e,t)=>"p"+n.addRowListener(Vs,e,(e,s,n)=>t(te,n,ee(n))),addParamValueListener:(e,t,s)=>"p"+n.addCellListener(Vs,e,t,(e,t,n,l,a)=>s(te,n,l,a)),delListener:e=>{const t=Ue(i,e);if("p"==e[0])n.delListener(X(e,1));else if(O(t))V(e);else{const[s,n,l]=t;qe(n,(e,[t,s])=>t.delListener(s)),B(l,V),Ge(i,e),V(e),c[s]--}return te},destroy:()=>{re(y(),$),x()},getListenerStats:()=>({...c,paramValues:n.getListenerStats().row-Y(y()),paramValue:n.getListenerStats().cell})};return Pe({[C]:[2,1],[C+S]:[1,1],[I]:[1,1],[L]:[1,1],[T]:[1,5],[v]:[3,2],[S]:[1,2],[p]:[3,3]},([e,t],s)=>{re(X(["get","has","forEach"],0,e),e=>te[e+g+s]=(...t)=>P(t[0])[e+s](...t)),te[h+g+s+u]=(...e)=>((n,l)=>{const a=w(Z,d),o=Ae(),r=()=>{const n=null==l?y():[l];re(n,n=>{return Ie(o,n)?0:Ge(o,n,[P(n),(l=P(n),l[h+s+u](...((e,t)=>5==t?[e[0],e[1]??void 0,e[2],e[3],e[4]]:X(e,0,t))(e,t),(s,...n)=>e[t](te,...n),!0))]);var l}),qe(o,(e,[t,s])=>null==l&&M(e)||e==l?0:(t.delListener(s),void Ge(o,e)))};return r(),Ge(i,a,[n,o,null==l?J(r):void 0]),c[n]++,a})((e=>e[0].toLowerCase()+X(e,1))(s),e[0])}),We(te)}),ys=it(e=>{const s=Ae(),n=Ae(),l=Ae(),a=Ae(),[o,r,i]=ut(()=>T),[d,c,u,g,h,f,,,b,C,w,R]=ot(e,()=>[Ae(),Ae(),Ae(),Ae()],e=>O(e)?void 0:e+t,o,r),v=(e,t,s)=>B(f(e),([n,,l])=>{if(!Ie(l,t)){const a=lt();if(h(e)!=L(e))at(a,t);else{let e=t;for(;!O(e)&&!Ie(a,e);)at(a,e),e=Ue(n,e)}if(s)return a;Ge(l,t,a)}return Ue(l,t)}),I=(e,t)=>B(f(e),([,,e])=>Ge(e,t)),L=e=>Ue(s,e),T={setRelationshipDefinition:(e,t,o,i)=>(Ge(s,e,o),b(e,t,(t,s)=>{const o=lt(),i=lt(),d=lt(),[c,u]=f(e);Se(s,([t,s],n)=>{O(t)||(at(i,t),B(Ue(u,t),e=>{Ve(e,n),Le(e)&&Ge(u,t)})),O(s)||(at(i,s),Ie(u,s)||Ge(u,s,lt()),at(Ue(u,s),n)),at(o,n),Ge(c,n,s),qe(Ue(a,e),t=>{Ie(v(e,t),n)&&at(d,t)})}),t(),Se(o,t=>r(n,[e,t])),Se(i,t=>r(l,[e,t])),Se(d,t=>{I(e,t),r(a,[e,t])})},rt(i)),T),delRelationshipDefinition:e=>(Ge(s,e),C(e),T),getStore:d,getRelationshipIds:c,forEachRelationship:t=>u(s=>t(s,t=>e.forEachRow(h(s),t))),hasRelationship:g,getLocalTableId:h,getRemoteTableId:L,getRemoteRowId:(e,t)=>Ue(f(e)?.[0],t),getLocalRowIds:(e,t)=>Te(Ue(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>O(f(e))?[t]:Te(v(e,t,!0)),addRelationshipIdsListener:w,addRemoteRowIdListener:(e,t,s)=>o(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>o(s,l,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(v(e,t),o(s,a,[e,t])),delListener:e=>(I(...i(e)??[]),T),destroy:R,getListenerStats:()=>({remoteRowId:Re(n),localRowIds:Re(l),linkedRowIds:Re(a)})};return We(T)});export{St as addOrRemoveHash,gt as createCheckpoints,zt as createIndexes,Rs as createMergeableStore,Ls as createMetrics,Ss as createMiddleware,ms as createQueries,ys as createRelationships,bs as createStore,jt as defaultSorter,kt as getCellHash,Mt as getCellInRowHash,pt as getHash,Ot as getHlcFunctions,Dt as getRowHash,Et as getRowInTableHash,Wt as getTableHash,_t as getTableInTablesHash,Ht as getTablesHash,Rt as getUniqueId,yt as getValueHash,mt as getValueInValuesHash,Vt as getValuesHash};
1
+ const e=e=>typeof e,t="",s=e(t),n=e(!0),l=e(0),a=e(e),o="object",r="array",i="type",d="default",c="allowNull",u="Listener",g="Result",h="add",f="Has",b="Ids",C="Table",w=C+"s",v=C+b,R="Row",I=R+"Count",L=R+b,T="Sorted"+R+b,p="Cell",S=p+b,V="Value",m=V+"s",y=V+b,k=e=>t+e,M=(e,t)=>e.startsWith(t),D=(e,t)=>e.endsWith(t),E=(e,s=t,n)=>e.split(s,n),W=Math,_=e=>(t,s,n)=>e(t)?n?.():s(t),H=globalThis,J=W.max,x=W.min,P=W.floor,F=W.random,Q=isFinite,N=e=>null==e,O=e=>void 0===e,j=e=>null===e,z=e=>!0===e,A=_(N),B=_(O),U=e=>e==s||e==n,q=t=>e(t)==s,G=t=>e(t)==a,K=e=>Array.isArray(e),X=(e,t,s)=>e.slice(t,s),Y=e=>e.length,Z=()=>{},$=()=>{},ee=H.structuredClone,te=async(e,t,s)=>{try{return await e()}catch(e){t?.(e)}},se=(e,t)=>e.includes(t),ne=(e,t)=>e.every(t),le=(e,t)=>Y(e)===Y(t)&&ne(e,(e,s)=>t[s]===e),ae=(e,t)=>ne(e,(s,n)=>0==n||t(e[n-1],s)<=0),oe=(e,t)=>e.sort(t),re=(e,t)=>e.forEach(t),ie=(e,t)=>e.map(t),de=e=>ue(e,(e,t)=>e+t,0),ce=e=>0==Y(e),ue=(e,t,s)=>e.reduce(t,s),ge=(e,...t)=>e.push(...t),he=e=>e.pop(),fe=e=>e.shift(),be=e=>t=>ue(Te(t),(t,s)=>t+e(s),0),Ce=e=>e?.size??0,we=be(Ce),ve=be(we),Re=be(ve),Ie=(e,t)=>e?.has(t)??!1,Le=e=>O(e)||0==Ce(e),Te=e=>[...e?.values()??[]],pe=e=>e.clear(),Se=(e,t)=>e?.forEach(t),Ve=(e,t)=>e?.delete(t),me=Object,ye=e=>me.getPrototypeOf(e),ke=me.isFrozen,Me=me.entries,De=e=>!N(e)&&A(ye(e),e=>e==me.prototype||N(ye(e)),()=>!0),Ee=me.keys,We=me.freeze,_e=(e=[])=>me.fromEntries(e),He=(e,t)=>t in e,Je=(e,t)=>(delete e[t],e),xe=(e,t)=>re(Me(e),([e,s])=>t(s,e)),Pe=(e,t)=>_e(((e,t)=>ie(Me(e),([e,s])=>t(s,e)))(e,(e,s)=>[s,t(e,s)])),Fe=e=>Y(Ee(e)),Qe=e=>De(e)&&0==Fe(e),Ne=(e,t,s=(e,t)=>e===t)=>{const n=Me(e);return Y(n)===Fe(t)&&ne(n,([e,n])=>De(n)?!!De(t[e])&&Ne(t[e],n,s):s(n,t[e]))},Oe=(e,t,s)=>(He(e,t)||(e[t]=s()),e[t]),je=(e,t,s,n=0)=>N(e)||!De(e)||!n&&Qe(e)||ke(e)?(s?.(),!1):(xe(e,(s,n)=>{t(s,n)||Je(e,n)}),!!n||!Qe(e)),ze=Map,Ae=e=>new ze(e),Be=e=>[...e?.keys()??[]],Ue=(e,t)=>e?.get(t),qe=(e,t)=>Se(e,(e,s)=>t(s,e)),Ge=(e,t,s)=>O(s)?(Ve(e,t),e):e?.set(t,s),Ke=(e,t,s,n)=>(Ie(e,t)?n?.(Ue(e,t)):Ge(e,t,s()),Ue(e,t)),Xe=(e,t,s,n=Ge)=>(Pe(t,(t,n)=>s(e,n,t)),qe(e,s=>He(t,s)?0:n(e,s)),e),Ye=(e,t,s,n)=>{const l={};return Se(e,(e,a)=>{if(!s?.(e,a)){const s=t?t(e,a):e;n?.(s)||(l[a]=s)}}),l},Ze=(e,t,s)=>Ye(e,e=>Ye(e,t,s),Le,Qe),$e=(e,t,s)=>Ye(e,e=>Ze(e,t,s),Le,Qe),et=(e,t)=>{const s=Ae();return Se(e,(e,n)=>s.set(n,t?.(e)??e)),s},tt=e=>et(e,et),st=e=>et(e,tt),nt=(e,t,s,n,l=0)=>B((s?Ke:Ue)(e,t[l],l>Y(t)-2?s:Ae),a=>{if(l>Y(t)-2)return n?.(a)&&Ge(e,t[l]),a;const o=nt(a,t,s,n,l+1);return Le(a)&&Ge(e,t[l]),o}),lt=e=>new Set(K(e)||O(e)?e:[e]),at=(e,t)=>e?.add(t),ot=(e,t,s,n,l)=>{const a=e.hasRow,o=Ae(),r=Ae(),i=Ae(),d=Ae(),c=Ae(),u=Ae(),g=t=>B(Ue(u,t),s=>{re(Te(s),t=>{e.delListener(t),Ve(s,t)}),Ge(u,t)}),h=(e,s)=>{Ge(o,e,s),Ie(r,e)||(Ge(r,e,t()),Ge(d,e,Ae()),Ge(c,e,Ae()),l(i))},f=e=>{Ge(o,e),Ge(r,e),Ge(d,e),Ge(c,e),g(e),l(i)};return[()=>e,()=>Be(o),e=>qe(r,e),e=>Ie(r,e),e=>Ue(o,e),e=>Ue(r,e),(e,t)=>Ge(r,e,t),h,(t,n,l,o,r)=>{h(t,n);const i=Ae(),f=Ae(),b=Ue(d,t),C=Ue(c,t),w=t=>{const l=s=>e.getCell(n,t,s),d=Ue(b,t),c=a(n,t)?s(o(l,t)):void 0;if(d===c||K(d)&&K(c)&&le(d,c)||Ge(i,t,[d,c]),!O(r)){const e=Ue(C,t),s=a(n,t)?r(l,t):void 0;e!=s&&Ge(f,t,s)}},v=e=>{l(()=>{Se(i,([,e],t)=>Ge(b,t,e)),Se(f,(e,t)=>Ge(C,t,e))},i,f,b,C,e),pe(i),pe(f)};qe(b,w),e.hasTable(n)&&re(e.getRowIds(n),e=>{Ie(b,e)||w(e)}),v(!0),g(t),((e,...t)=>{const s=Ke(u,e,lt);re(t,e=>at(s,e))})(t,e.addRowListener(n,null,(e,t,s)=>w(s)),e.addTableListener(n,()=>v()))},f,e=>n(e,i),()=>qe(u,f)]},rt=(e,s)=>q(e)?t=>t(e):e??(()=>s??t),it=(e,t)=>{const s=new WeakMap;return n=>{s.has(n)||s.set(n,e(n));const l=s.get(n);return t?.(l),l}},dt=/^\d+$/,ct=()=>{const e=[];let s=0;return[n=>(n?fe(e):null)??t+s++,t=>{dt.test(t)&&Y(e)<1e3&&ge(e,t)}]},ut=e=>{let s;const[n,l]=ct(),a=Ae();return[(l,o,r,i=[],d=()=>[])=>{s??=e();const c=n(1);return Ge(a,c,[l,o,r,i,d]),at(nt(o,r??[t],lt),c),c},(e,n,...l)=>re(((e,s=[t])=>{const n=[],l=(e,t)=>t==Y(s)?ge(n,e):j(s[t])?Se(e,e=>l(e,t+1)):re([s[t],null],s=>l(Ue(e,s),t+1));return l(e,0),n})(e,n),e=>Se(e,e=>Ue(a,e)[0](s,...n??[],...l))),e=>B(Ue(a,e),([,s,n])=>(nt(s,n??[t],void 0,t=>(Ve(t,e),Le(t)?1:0)),Ge(a,e),l(e),n)),e=>B(Ue(a,e),([e,,t=[],n,l])=>{const a=(...o)=>{const r=Y(o);r==Y(t)?e(s,...o,...l(o)):j(t[r])?re(n[r]?.(...o)??[],e=>a(...o,e)):a(...o,t[r])};a()})]},gt=it(e=>{let s,n,l,a=100,o=Ae(),r=Ae(),i=1;const d=Ae(),c=Ae(),[u,g,h]=ut(()=>_),f=Ae(),b=Ae(),C=[],w=[],v=(t,s)=>{i=0,e.transaction(()=>{const[n,l]=Ue(f,s);Se(n,(s,n)=>Se(s,(s,l)=>Se(s,(s,a)=>e._[5](n,l,a,s[t],!0)))),Se(l,(s,n)=>e._[6](n,s[t],!0))}),i=1},R=e=>{Ge(f,e),Ge(b,e),g(c,[e])},I=(e,t)=>re(((e,t)=>e.splice(0,t))(e,t??Y(e)),R),L=()=>I(C,Y(C)-a),T=()=>B(s,()=>{ge(C,s),L(),I(w),s=void 0,l=1}),p=()=>{s=he(C),l=1};let S,V;const m=(e=t)=>(O(s)&&(s=t+n++,Ge(f,s,[o,r]),E(s,e),o=Ae(),r=Ae(),l=1),s),y=()=>{ce(C)||(((e,...t)=>{e.unshift(...t)})(w,m()),v(0,s),s=he(C),l=1)},k=()=>{ce(w)||(ge(C,s),s=fe(w),v(1,s),l=1)},M=()=>{l&&(g(d),l=0)},D=e=>{const t=m(e);return M(),t},E=(e,t)=>(W(e)&&Ue(b,e)!==t&&(Ge(b,e,t),g(c,[e])),_),W=e=>Ie(f,e),_={setSize:e=>(a=e,L(),_),addCheckpoint:D,setCheckpoint:E,getStore:()=>e,getCheckpointIds:()=>[[...C],s,[...w]],forEachCheckpoint:e=>qe(b,e),hasCheckpoint:W,getCheckpoint:e=>Ue(b,e),goBackward:()=>(y(),M(),_),goForward:()=>(k(),M(),_),goTo:e=>{const t=se(C,e)?y:se(w,e)?k:void 0;for(;!O(t)&&e!=s;)t();return M(),_},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(h(e),_),clear:()=>(I(C),I(w),O(s)||R(s),s=void 0,n=0,D(),_),clearForward:()=>(ce(w)||(I(w),g(d)),_),destroy:()=>{e.delListener(S),e.delListener(V)},getListenerStats:()=>({checkpointIds:we(d),checkpoint:we(c)}),_registerListeners:()=>{S=e.addCellListener(null,null,null,(e,t,s,n,l,a)=>{if(i){T();const e=Ke(o,t,Ae),r=Ke(e,s,Ae),i=Ke(r,n,()=>[a,void 0]);i[1]=l,i[0]===l&&Le(Ge(r,n))&&Le(Ge(e,s))&&Le(Ge(o,t))&&p(),M()}}),V=e.addValueListener(null,(e,t,s,n)=>{if(i){T();const e=Ke(r,t,()=>[n,void 0]);e[1]=s,e[0]===s&&Le(Ge(r,t))&&p(),M()}})}};return We(_.clear())},e=>e._registerListeners()),ht=E("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),ft=Ae(ie(ht,(e,t)=>[e,t])),bt=e=>ht[63&e],Ct=(e,t)=>Ue(ft,e[t])??0,wt=H.crypto?e=>H.crypto.getRandomValues(e):e=>ie(e,()=>P(256*F())),vt=(e=16)=>ue(wt(new Uint8Array(e)),(e,t)=>e+bt(t),t),Rt=JSON.stringify,It=JSON.parse,Lt=e=>Rt(e,(e,t)=>t instanceof Map?me.fromEntries([...t]):t),Tt=new H.TextEncoder,pt=e=>{let t=2166136261;return re(Tt.encode(e),e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},St=(e,t)=>(e^t)>>>0,Vt=e=>ue(Me(e),(e,[t,s])=>St(e,mt(t,s)^mt(t,0)),0),mt=(e,t)=>pt(e+":"+t),yt=(e,t)=>pt(Lt(e??null)+":"+t),kt=yt,Mt=mt,Dt=Vt,Et=mt,Wt=e=>ue(Me(e),(e,[t,s])=>St(e,mt(t,s)),0),_t=mt,Ht=Wt,Jt=2**36,xt=2**30,Pt=2**24,Ft=2**18,Qt=4096,Nt=e=>{const t=pt(e);return bt(t/Pt)+bt(t/Ft)+bt(t/Qt)+bt(t/64)+bt(t)},Ot=(e,s=Date.now)=>{let n=0,l=-1;const a=B(e,Nt,()=>vt(5)),o=e=>{const a=n,[o,r]=O(e)||e==t?[0,0]:i(e);n=J(a,o,s()),l=n==a?n==o?J(l,r):l:n==o?r:-1},r=(e,t,s)=>bt(e/Jt)+bt(e/xt)+bt(e/Pt)+bt(e/Ft)+bt(e/Qt)+bt(e/64)+bt(e)+bt(t/Ft)+bt(t/Qt)+bt(t/64)+bt(t)+(O(s)?a:Nt(s)),i=e=>[Ct(e,0)*Jt+Ct(e,1)*xt+Ct(e,2)*Pt+Ct(e,3)*Ft+Ct(e,4)*Qt+64*Ct(e,5)+Ct(e,6),Ct(e,7)*Ft+Ct(e,8)*Qt+64*Ct(e,9)+Ct(e,10),e.slice(11)];return[()=>(o(),r(n,++l)),o,r,i,()=>n,()=>l,()=>a]},jt=(e,t)=>(e??0)<(t??0)?-1:1,zt=it(e=>{const s=Ae(),n=Ae(),[l,a,o]=ut(()=>R),[r,i,d,c,u,g,h,,f,b,C,w]=ot(e,Ae,e=>O(e)?t:K(e)?ie(e,k):k(e),l,a),v=(t,s,n)=>{const l=u(t);Se(n,(t,n)=>s(n,s=>Se(t,t=>s(t,s=>e.forEachCell(l,t,s)))))},R={setIndexDefinition:(e,t,l,o,r,i=jt)=>{const d=O(r)?void 0:([e],[t])=>r(e,t);return f(e,t,(t,l,r,c,u,f)=>{let b=0;const C=lt(),w=lt(),v=g(e);if(Se(l,([e,t],s)=>{const n=lt(e),l=lt(t);Se(n,e=>Ve(l,e)?Ve(n,e):0),Se(n,e=>{at(C,e),B(Ue(v,e),t=>{Ve(t,s),Le(t)&&(Ge(v,e),b=1)})}),Se(l,e=>{at(C,e),Ie(v,e)||(Ge(v,e,lt()),b=1),at(Ue(v,e),s),O(o)||at(w,e)})}),t(),Le(u)||(f?qe(v,e=>at(w,e)):qe(r,e=>B(Ue(c,e),e=>re(K(e)?e:[e],e=>at(w,e)))),Se(w,e=>{const t=(t,s)=>i(Ue(u,t),Ue(u,s),e),s=[...Ue(v,e)];ae(s,t)||(Ge(v,e,lt(oe(s,t))),at(C,e))})),(b||f)&&!O(d)){const t=[...v];ae(t,d)||(h(e,Ae(oe(t,d))),b=1)}b&&a(s,[e]),Se(C,t=>a(n,[e,t]))},rt(l),B(o,rt)),R},delIndexDefinition:e=>(b(e),R),getStore:r,getIndexIds:i,forEachIndex:e=>d((t,s)=>e(t,e=>v(t,e,s))),forEachSlice:(e,t)=>v(e,t,g(e)),hasIndex:c,hasSlice:(e,t)=>Ie(g(e),t),getTableId:u,getSliceIds:e=>Be(g(e)),getSliceRowIds:(e,t)=>Te(Ue(g(e),t)),addIndexIdsListener:C,addSliceIdsListener:(e,t)=>l(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>l(s,n,[e,t]),delListener:e=>(o(e),R),destroy:w,getListenerStats:()=>({sliceIds:we(s),sliceRowIds:ve(n)})};return We(R)}),At=t=>{if(j(t))return"null";if(K(t))return r;if(De(t))return o;const s=e(t);return U(s)||s==l&&Q(t)?s:void 0},Bt=e=>O(e)||!O(At(e)),Ut=e=>e==o||e==r,qt=e=>De(e)||K(e)?"�"+Rt(e):e,Gt=e=>q(e)&&"�"==e[0],Kt=(e,t,s)=>!s&&Gt(e)?It(X(e,1)):e,Xt=([e,t])=>Yt(e,t),Yt=(e,t)=>t?[e,t]:[e],Zt=(e,t,s)=>[e,t,s],$t=e=>e[2],es=(e,t)=>t>e?(e?pt(e):0)^pt(t):0,ts=(e,s)=>((e??t)>(s??t)?e:s)??t,ss=(e,t,s)=>{t>e[1]&&(e[1]=t),e[2]=s>>>0},ns=(e=t)=>Yt(_e(),e),ls=(e=t)=>[Ae(),e,0],as=([e,t,s],n)=>[Ye(e,n),t,s],os=([e,t],s=Xt)=>Yt(Ye(e,s),t),rs=(t,s)=>{return K(t)&&3==Y(t)&&q(t[1])&&(n=t[2],e(n)==l)&&Q(t[2])&&s(t[0]);var n},is=e=>[e,e],ds=(e,t=we)=>t(e[0])+t(e[1]),cs=()=>[Ae(),Ae()],us=e=>[...e],gs=([e,t])=>e===t,hs=(e,t,s)=>Ge(e,t,Ue(e,t)==-s?void 0:s),fs=([e,t],[s,n])=>Ne(e,s)&&Ne(t,n),bs=()=>{let e,t,s=!1,n=!1,a=0,o=[],r=[],g=0;const b=Ae(),T=Ae(),M=Ae(),D=Ae(),E=Ae(),W=Ae(),_=Ae(),H=Ae(),J=Ae(),x=lt(),P=Ae(),F=Ae(),Q=Ae(),N=Ae(),z=Ae(),A=Ae(),q=lt(),Y=Ae(),Z=Ae(),$=Ae(),ne=Ae(),ae=cs(),de=cs(),ce=cs(),ue=cs(),he=cs(),fe=cs(),be=cs(),Te=cs(),me=cs(),ye=cs(),ke=cs(),Me=cs(),Ee=cs(),_e=cs(),xe=cs(),Fe=cs(),Oe=cs(),ze=cs(),nt=cs(),ot=cs(),rt=cs(),it=cs(),dt=Ae(),gt=cs(),[ht,ft,bt,Ct]=ut(()=>dn),wt=e=>{const t=g;g=1;const s=e();return g=t,s},vt=(e,t,s,n=Object.is)=>B(t(),t=>e===t||n(e,t)?s(t):wt(()=>s(t))),Rt=e=>{if(!je(e,(e,t)=>se([i,d,c],t)))return!1;const t=e[i];if(!U(t)&&t!=l&&!Ut(t))return!1;const s=e[d];return!(j(s)&&!e[c]||(j(s)||(At(s)!=t?Je(e,d):e[d]=qt(s)),0))},Tt=K,pt=(t,s)=>(!e||Ie(Q,s)||os(s))&&je(t,(e,t)=>St(s,t,e),()=>os(s)),St=(e,t,s,n)=>je(n?s:kt(s,e,t),(n,l)=>B(Vt(e,t,l,n),e=>(s[l]=e,!0),()=>!1),()=>os(e,t)),Vt=(t,s,n,l)=>e?B(Ue(Ue(Q,t),n),e=>j(l)?e[c]?l:os(t,s,n,l,e[d]):At(l)===e[i]?qt(l):Ut(e[i])&&Gt(l)?l:os(t,s,n,l,e[d]),()=>os(t,s,n,l)):O(At(l))?os(t,s,n,l):qt(l),mt=(e,t)=>je(t?e:Mt(e),(t,s)=>B(yt(s,t),t=>(e[s]=t,!0),()=>!1),()=>rs()),yt=(e,s)=>t?B(Ue(z,e),t=>j(s)?t[c]?s:rs(e,s,t[d]):At(s)===t[i]?qt(s):Ut(t[i])&&Gt(s)?s:rs(e,s,t[d]),()=>rs(e,s)):O(At(s))?rs(e,s):qt(s),kt=(e,t,s)=>(B(Ue(N,t),([n,l])=>{Se(n,(n,l)=>{He(e,l)||(e[l]=n,B(s,e=>at(Ke(Ke(_,t,Ae),e,lt),l)))}),Se(l,n=>{He(e,n)||os(t,s,n)})}),e),Mt=e=>(t&&(Se(A,(t,s)=>{He(e,s)||(e[s]=t,at(x,s))}),Se(q,t=>{He(e,t)||rs(t)})),e),Dt=e=>Xe(Q,e,(e,t,s)=>{const n=Ae(),l=lt();Xe(Ke(Q,t,Ae),s,(e,t,s)=>{Ge(e,t,s),B(s[d],e=>Ge(n,t,e),()=>at(l,t))}),Ge(N,t,[n,l])},(e,t)=>{Ge(Q,t),Ge(N,t)}),Et=e=>Xe(z,e,(e,t,s)=>{Ge(z,t,s),B(s[d],e=>Ge(A,t,e),()=>at(q,t))},(e,t)=>{Ge(z,t),Ge(A,t),Ve(q,t)}),Wt=e=>Qe(e)?Ys():As(e),_t=(e,t,s,n,l,a)=>O(n)?en(e,t,s,!0,l):Bs(e,t,s,n,l,a),Ht=e=>Qe(e)?tn():Us(e),Jt=(e,t,s)=>O(t)?sn(e,s):qs(e,t,s),xt=(e,t)=>vt(e,()=>t?e:B(o[1],t=>wt(()=>t(ee(e))),()=>e),e=>Xe($,e,(e,t,s)=>Pt(t,s),(e,t)=>Xt(t)),Ne),Pt=(e,t,s)=>vt(t,()=>s?t:B(o[2],s=>wt(()=>s(e,ee(t))),()=>t),t=>Xe(Ke($,e,()=>(es(e,1),Ge(Y,e,ct()),Ge(Z,e,Ae()),Ae())),t,(t,s,n)=>Ft(e,t,s,n),(t,s)=>Yt(e,t,s)),Ne),Ft=(e,t,s,n,l)=>vt(n,()=>l?n:B(o[3],t=>wt(()=>t(e,s,ee(n))),()=>n),n=>Xe(Ke(t,s,()=>(ts(e,s,1),Ae())),n,(t,n,l)=>Qt(e,s,t,n,l),(n,a)=>Zt(e,t,s,n,a,l)),Ne),Qt=(e,t,s,n,l,a)=>vt(l,()=>B(a?void 0:o[4],s=>wt(()=>s(e,t,n,l)),()=>l),l=>{Ie(s,n)||ss(e,t,n,1);const a=Ue(s,n);l!==a&&(ns(e,t,n,a,l),Ge(s,n,l))}),Nt=(e,t,s,n,l,a)=>B(Ue(t,s),t=>Qt(e,s,t,n,l,a),()=>{const o=Ae();Ge(t,s,o),ts(e,s,1),Pe(kt({[n]:l},e,s),(t,n)=>Qt(e,s,o,n,t,a))}),Ot=(e,t)=>vt(e,()=>t?e:B(o[5],t=>wt(()=>t(ee(e))),()=>e),e=>Xe(ne,e,(e,t,s)=>zt(t,s),(e,t)=>$t(t)),Ne),zt=(e,t,s)=>vt(t,()=>B(s?void 0:o[6],s=>wt(()=>s(e,t)),()=>t),t=>{Ie(ne,e)||ls(e,1);const s=Ue(ne,e);t!==s&&(as(e,s,t),Ge(ne,e,t))}),Bt=e=>Ke($,e,()=>(es(e,1),Ge(Y,e,ct()),Ge(Z,e,Ae()),Ae())),Xt=e=>wt(()=>o[8]?.(e))??1?Pt(e,{},!0):Ue($,e),Yt=(e,t,s)=>{if(wt(()=>o[9]?.(e,s))??1){const[,n]=Ue(Y,e);n(s),Ft(e,t,s,{},!0)}},Zt=(e,t,s,n,l,a,r)=>{const i=Ue(Ue(N,e)?.[0],l);if(!O(i)&&!a)return Qt(e,s,n,l,i);if(r||(wt(()=>o[10]?.(e,s,l))??1)){const a=t=>{ns(e,s,t,Ue(n,t)),ss(e,s,t,-1),Ge(n,t)};O(i)?a(l):qe(n,a),Le(n)&&(ts(e,s,-1),Le(Ge(t,s))&&(es(e,-1),Ge($,e),Ge(Y,e),Ge(Z,e)))}},$t=(e,t)=>{const s=Ue(A,e);if(!O(s))return zt(e,s);(t||(wt(()=>o[12]?.(e))??1))&&(as(e,Ue(ne,e)),ls(e,-1),Ge(ne,e))},es=(e,t)=>hs(b,e,t),ts=(e,t,s)=>hs(Ke(D,e,Ae),t,s)&&Ge(M,e,Ke(M,e,()=>0)+s),ss=(e,t,s,n)=>{const l=Ue(Z,e),a=Ue(l,s)??0;(0==a&&1==n||1==a&&-1==n)&&hs(Ke(T,e,Ae),s,n),Ge(l,s,a!=-n?a+n:void 0),hs(Ke(Ke(E,e,Ae),t,Ae),s,n)},ns=(e,t,s,n,l)=>{const a=Ie(Ue(Ue(_,e),t),s)&&O(n)?1:0;Ke(Ke(Ke(W,e,Ae),t,Ae),s,()=>[n,0])[1]=l,r[3]?.(e,t,s,l,g,a),Ve(Ue(Ue(_,e),t),s)},ls=(e,t)=>hs(H,e,t),as=(e,t,s)=>{const n=Ie(x,e)&&O(t)?1:0;Ke(J,e,()=>[t,0])[1]=s,r[4]?.(e,s,g,n),Ve(x,e)},os=(e,t,s,n,l)=>(ge(Ke(Ke(Ke(P,e,Ae),t,Ae),s,()=>[]),n),l),rs=(e,t,s)=>(ge(Ke(F,e,()=>[]),t),s),Cs=(e,t,s)=>B(Ue(Ue(Ue(W,e),t),s),([e,t])=>[!0,Kt(e),Kt(t)],()=>[!1,...is(_s(e,t,s))]),ws=e=>B(Ue(J,e),([e,t])=>[!0,Kt(e),Kt(t)],()=>[!1,...is(xs(e))]),vs=e=>Le(P)||Le(Fe[e])?0:Se(e?st(P):P,(t,s)=>Se(t,(t,n)=>Se(t,(t,l)=>ft(Fe[e],[s,n,l],t)))),Rs=e=>Le(F)||Le(Oe[e])?0:Se(e?et(F):F,(t,s)=>ft(Oe[e],[s],t)),Is=(e,t,s,n)=>{if(!Le(e))return ft(t,n,()=>Ye(e)),qe(e,(e,t)=>ft(s,[...n??[],e],1==t)),1},Ls=e=>{const t=!Le(ae[e]),n=!Le(ye[e]),l=!(Le(Ee[e])&&Le(_e[e])&&Le(me[e])&&Le(ke[e])&&Le(fe[e])&&Le(be[e])&&Le(Te[e])&&!n&&Le(ce[e])&&Le(ue[e])),a=!(Le(xe[e])&&Le(Me[e])&&Le(he[e])&&Le(de[e]));if(t||l||a){const r=e?[et(b),tt(T),et(M),tt(D),st(E),(o=W,et(o,e=>et(e,e=>et(e,us))))]:[b,T,M,D,E,W];if(t){const t=Ps();t!=s&&ft(ae[e],void 0,t)}if(l){Is(r[0],ce[e],ue[e]),Se(r[1],(t,s)=>Is(t,fe[e],be[e],[s])),Se(r[2],(t,s)=>{0!=t&&ft(Te[e],[s],Ms(s))});const t=lt();Se(r[3],(s,l)=>{Is(s,me[e],ke[e],[l])&&n&&(ft(ye[e],[l,null]),at(t,l))}),n&&Se(r[5],(s,n)=>{if(!Ie(t,n)){const t=lt();Se(s,e=>Se(e,([s,n],l)=>n!==s?at(t,l):Ve(e,l))),Se(t,t=>ft(ye[e],[n,t]))}}),Se(r[4],(t,s)=>Se(t,(t,n)=>Is(t,Ee[e],_e[e],[s,n])))}if(a){let t;Se(r[5],(s,n)=>{let l;Se(s,(s,a)=>{let o;Se(s,([s,r],i)=>{r!==s&&(ft(xe[e],[n,a,i],Kt(r),Kt(s),Cs),t=l=o=1)}),o&&ft(Me[e],[n,a],Cs)}),l&&ft(he[e],[n],Cs)}),t&&ft(de[e],void 0,Cs)}}var o},Ts=e=>{const t=!Le(ze[e]),s=!Le(ot[e])||!Le(rt[e]),l=!Le(it[e])||!Le(nt[e]);if(t||s||l){const a=e?[et(H),et(J,us)]:[H,J];if(t){const t=js();t!=n&&ft(ze[e],void 0,t)}if(s&&Is(a[0],ot[e],rt[e]),l){let t;Se(a[1],([s,n],l)=>{n!==s&&(ft(it[e],[l],Kt(n),Kt(s),ws),t=1)}),t&&ft(nt[e],void 0,ws)}}},ps=(e,...t)=>(an(()=>e(...ie(t,k))),dn),Ss=(e,t,s,n,l)=>{const[a,o,r,i]=s;let d=Es(e,t,a,o,r,i);return ht(()=>{const s=Es(e,t,a,o,r,i);le(s,d)||(d=s,n(dn,e,t,a,o,r,d))},ye[l?1:0],[e,t],[ys])},Vs=(e=!1)=>[Ye(W,(t,s)=>-1===Ue(b,s)?void 0:Ye(t,(t,n)=>-1===Ue(Ue(D,s),n)?void 0:Ye(t,([,t])=>Kt(t,0,e),e=>gs(e)),Le,Qe),Le,Qe),Ye(J,([,t])=>Kt(t,0,e),e=>gs(e)),1],ms=()=>$e($,Kt),ys=()=>Be($),ks=e=>Be(Ue(Z,k(e))),Ms=e=>Ce(Ue($,k(e))),Ds=e=>Be(Ue($,k(e))),Es=(e,t,s,n=0,l,a=jt)=>{return De(e)?Es(e.tableId,e.cellId,e.descending,e.offset,e.limit,e.sorter):ie(X(oe((o=Ue($,k(e)),r=(e,s)=>[O(t)?s:Kt(Ue(e,k(t))),s],ie([...o?.entries()??[]],([e,t])=>r(t,e))),([e],[t])=>a(e,t)*(s?-1:1)),n,O(l)?l:n+l),([,e])=>e);var o,r},Ws=(e,t)=>Be(Ue(Ue($,k(e)),k(t))),_s=(e,t,s)=>Kt(Ue(Ue(Ue($,k(e)),k(t)),k(s))),Hs=()=>Ye(ne,Kt),Js=()=>Be(ne),xs=e=>Kt(Ue(ne,k(e))),Ps=()=>!Le($),Fs=e=>Ie($,k(e)),Qs=(e,t)=>Ie(Ue(Z,k(e)),k(t)),Ns=(e,t)=>Ie(Ue($,k(e)),k(t)),Os=(e,t,s)=>Ie(Ue(Ue($,k(e)),k(t)),k(s)),js=()=>!Le(ne),zs=e=>Ie(ne,k(e)),As=e=>ps(()=>(e=>je(e,pt,os))(e)?xt(e):0),Bs=(e,t,s,n,l,a)=>ps((e,t,s)=>B(Vt(e,t,s,G(n)?n(_s(e,t,s)):n),n=>{const r=Bt(e);B(l||a||!o[14]?.()?void 0:o[3],a=>{const o=Ue(r,t),i={...o?Ye(o):{},[s]:n};B(wt(()=>a(e,t,ee(i))),s=>((e,t,s,n,l)=>{Xe(Ke(t,s,()=>(ts(e,s,1),Ae())),n,(t,n,a)=>B(Vt(e,s,n,a),a=>Qt(e,s,t,n,a,l)),(n,l)=>Zt(e,t,s,n,l,!0))})(e,r,t,s,l))},()=>Nt(e,r,t,s,n,l))}),e,t,s),Us=e=>ps(()=>mt(e)?Ot(e):0),qs=(e,t,s)=>ps(e=>B(yt(e,G(t)?t(xs(e)):t),t=>zt(e,t,s)),e),Gs=e=>(te(()=>Wt(It(e))),dn),Ks=t=>ps(()=>{if((e=je(t,e=>je(e,Rt)))&&(Dt(t),!Le($))){const e=ms();Ys(),As(e)}}),Xs=e=>ps(()=>{if(t=(e=>je(e,Rt))(e)){const s=Hs();ln(),tn(),t=!0,Et(e),Us(s)}}),Ys=()=>ps(()=>wt(()=>o[7]?.())??1?xt({},!0):0),Zs=e=>ps(e=>Ie($,e)?Xt(e):0,e),$s=(e,t)=>ps((e,t)=>B(Ue($,e),s=>Ie(s,t)?Yt(e,s,t):0),e,t),en=(e,t,s,n,l)=>ps((e,t,s)=>B(Ue($,e),a=>B(Ue(a,t),o=>Ie(o,s)?Zt(e,a,t,o,s,n,l):0)),e,t,s),tn=()=>ps(()=>wt(()=>o[11]?.())??1?Ot({},!0):0),sn=(e,t)=>ps(e=>Ie(ne,e)?$t(e,t):0,e),nn=()=>ps(()=>{Dt({}),e=!1}),ln=()=>ps(()=>{Et({}),t=!1}),an=(e,t)=>{if(-1!=a){on();const s=e();return rn(t),s}},on=()=>(-1!=a&&a++,1==a&&(r[0]?.(),ft(dt)),dn),rn=e=>(a>0&&(a--,0==a&&(a=1,wt(()=>{vs(1),Le(W)||Ls(1),Rs(1),Le(J)||Ts(1)}),e?.(dn)&&(Se(W,(e,t)=>Se(e,(e,s)=>Se(e,([e],n)=>_t(t,s,n,e,!0)))),pe(W),Se(J,([e],t)=>Jt(t,e,!0)),pe(J)),ft(gt[0],void 0),a=-1,vs(0),Le(W)||Ls(0),Rs(0),Le(J)||Ts(0),r[1]?.(),ft(gt[1],void 0),r[2]?.(),a=0,s=Ps(),n=js(),re([b,T,M,D,E,W,_,P,H,J,x,F],pe))),dn),dn={getContent:()=>[ms(),Hs()],getTables:ms,getTableIds:ys,getTable:e=>Ze(Ue($,k(e)),Kt),getTableCellIds:ks,getRowCount:Ms,getRowIds:Ds,getSortedRowIds:Es,getRow:(e,t)=>Ye(Ue(Ue($,k(e)),k(t)),Kt),getCellIds:Ws,getCell:_s,getValues:Hs,getValueIds:Js,getValue:xs,hasTables:Ps,hasTable:Fs,hasTableCell:Qs,hasRow:Ns,hasCell:Os,hasValues:js,hasValue:zs,getTablesJson:()=>Lt($),getValuesJson:()=>Lt(ne),getJson:()=>Lt([$,ne]),getTablesSchemaJson:()=>Lt(Q),getValuesSchemaJson:()=>Lt(z),getSchemaJson:()=>Lt([Q,z]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>ps(()=>{const t=G(e)?e():e;Tt(t)&&(e=>{vt(e,()=>B(o[0],t=>wt(()=>t(ee(e))),()=>e),([e,t])=>{(Qe(e)?Ys:As)(e),(Qe(t)?tn:Us)(t)},fs)})(t)}),setTables:As,setTable:(e,t)=>ps(e=>pt(t,e)?Pt(e,t):0,e),setRow:(e,t,s)=>ps((e,t)=>St(e,t,s)?Ft(e,Bt(e),t,s):0,e,t),addRow:(e,t,s=!0)=>an(()=>{let n;return St(e,n,t)&&(e=k(e),Ft(e,Bt(e),n=((e,t)=>{const[s]=Ue(Y,e);let n;do{n=s(t)}while(Ie(Ue($,e),n));return n})(e,s?1:0),t)),n}),setPartialRow:(e,t,s)=>ps((e,t)=>{if(St(e,t,s,1)){const n=Bt(e);Pe(s,(s,l)=>Nt(e,n,t,l,s))}},e,t),setCell:Bs,setValues:Us,setPartialValues:e=>ps(()=>mt(e,1)?Pe(e,(e,t)=>zt(t,e)):0),setValue:qs,applyChanges:e=>ps(()=>vt(e,()=>B(o[13],t=>wt(()=>t(ee(e))),()=>e),e=>{Pe(e[0],(e,t)=>O(e)?Zs(t):Pe(e,(e,s)=>O(e)?$s(t,s):Pe(e,(e,n)=>_t(t,s,n,e,void 0,!0)))),Pe(e[1],(e,t)=>Jt(t,e))},fs)),setTablesJson:Gs,setValuesJson:e=>(te(()=>Ht(It(e))),dn),setJson:e=>ps(()=>te(()=>{const[t,s]=It(e);Wt(t),Ht(s)},()=>Gs(e))),setTablesSchema:Ks,setValuesSchema:Xs,setSchema:(e,t)=>ps(()=>{Ks(e),Xs(t)}),delTables:Ys,delTable:Zs,delRow:$s,delCell:en,delValues:tn,delValue:sn,delTablesSchema:nn,delValuesSchema:ln,delSchema:()=>ps(()=>{nn(),ln()}),transaction:an,startTransaction:on,getTransactionChanges:()=>Vs(),getTransactionLog:()=>[!Le(W),!Le(J),$e(W,us,gs),$e(P),Ye(J,us,gs),Ye(F),Ye(b),Ze(D),$e(E),Ye(H)],finishTransaction:rn,forEachTable:e=>Se($,(t,s)=>e(s,e=>Se(t,(t,s)=>e(s,e=>qe(t,(t,s)=>e(t,Kt(s))))))),forEachTableCell:(e,t)=>qe(Ue(Z,k(e)),t),forEachRow:(e,t)=>Se(Ue($,k(e)),(e,s)=>t(s,t=>qe(e,(e,s)=>t(e,Kt(s))))),forEachCell:(e,t,s)=>qe(Ue(Ue($,k(e)),k(t)),(e,t)=>s(e,Kt(t))),forEachValue:e=>qe(ne,(t,s)=>e(t,Kt(s))),addSortedRowIdsListener:(e,t,s,n,l,a,o)=>De(e)?Ss(e.tableId,e.cellId,[e.descending??!1,e.offset??0,e.limit,e.sorter],t,s):Ss(e,t,[s,n,l,void 0],a,o),addStartTransactionListener:e=>ht(e,dt),addWillFinishTransactionListener:e=>ht(e,gt[0]),addDidFinishTransactionListener:e=>ht(e,gt[1]),callListener:e=>(Ct(e),dn),delListener:e=>(bt(e),dn),getListenerStats:()=>({hasTables:ds(ae),tables:ds(de),tableIds:ds(ce),hasTable:ds(ue),table:ds(he),tableCellIds:ds(fe),hasTableCell:ds(be,ve),rowCount:ds(Te),rowIds:ds(me),sortedRowIds:ds(ye),hasRow:ds(ke,ve),row:ds(Me,ve),cellIds:ds(Ee,ve),hasCell:ds(_e,Re),cell:ds(xe,Re),invalidCell:ds(Fe,Re),hasValues:ds(ze),values:ds(nt),valueIds:ds(ot),hasValue:ds(rt),value:ds(it),invalidValue:ds(Oe),transaction:we(dt)+ds(gt)}),isMergeable:()=>!1,_:[bs,ht,ft,(e,t,s,n,l)=>r=[e,t,s,n,l],(e,t,s,n,l,a,r,i,d,c,u,g,h,f,b)=>o=[e,t,s,n,l,a,r,i,d,c,u,g,h,f,b],_t,Jt,()=>[$e($),Ye(ne)],()=>Vs(!0)]};return Pe({[f+w]:[0,ae,[],()=>[Ps()]],[w]:[0,de],[v]:[0,ce],[f+C]:[1,ue,[ys],e=>[Fs(...e)]],[C]:[1,he,[ys]],[C+S]:[1,fe,[ys]],[f+C+p]:[2,be,[ys,ks],e=>[Qs(...e)]],[I]:[1,Te,[ys]],[L]:[1,me,[ys]],[f+R]:[2,ke,[ys,Ds],e=>[Ns(...e)]],[R]:[2,Me,[ys,Ds]],[S]:[2,Ee,[ys,Ds]],[f+p]:[3,_e,[ys,Ds,Ws],e=>[Os(...e)]],[p]:[3,xe,[ys,Ds,Ws],e=>is(_s(...e))],InvalidCell:[3,Fe],[f+m]:[0,ze,[],()=>[js()]],[m]:[0,nt],[y]:[0,ot],[f+V]:[1,rt,[Js],e=>[zs(...e)]],[V]:[1,it,[Js],e=>is(xs(e[0]))],InvalidValue:[1,Oe]},([e,t,s,n],l)=>{dn[h+l+u]=(...l)=>ht(l[e],t[l[e+1]?1:0],e>0?X(l,0,e):void 0,s,n)}),We(dn)},Cs={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},ws=(e=t)=>[ls(e),ls(e)],vs=(e,s)=>{let n=1,l=ws(),a=0,o=0;const r=Ae(),i=lt(),[d,c]=Ot(e,s),g=bs(),f=e=>{const t=n;return n=0,e(),n=t,p},b=(e,s=0)=>{const n={},a={},[[o,r=t,i=0],d]=e,[u,g]=l,[h,f,b]=u;let w=s?i:b,v=r;xe(o,([e,l=t,a=0],o)=>{const r=Ke(h,o,ls),[i,d,c]=r;let u=s?a:c,g=l;xe(e,(e,t)=>{const[l,a,r]=C(e,Ke(i,t,ls),Oe(Oe(n,o,_e),t,_e),s);u^=s?0:St(a?mt(t,a):0,mt(t,r)),g=ts(g,l)}),u^=s?0:es(d,l),ss(r,l,u),w^=s?0:St(c?mt(o,c):0,mt(o,r[2])),v=ts(v,g)}),w^=s?0:es(f,r),ss(u,r,w);const[R]=C(d,g,a,s);return c(ts(v,R)),[n,a,1]},C=(e,s,n,l)=>{const[a,o=t,r=0]=e,[i,d,c]=s;let u=o,g=l?r:c;return xe(a,([e,s=t,a=0],o)=>{const r=Ke(i,o,()=>[void 0,t,0]),[,d,c]=r;(!d||s>d)&&(ss(r,s,l?a:yt(e,s)),r[0]=e,n[o]=e,g^=l?0:St(mt(o,c),mt(o,r[2])),u=ts(u,s))}),g^=l?0:es(d,o),ss(s,o,g),[u,c,s[2]]},w=$,v=$,R=(e=!1)=>[as(l[0],t=>as(t,t=>as(t,([t,s,n])=>[Kt(t,0,e),s,n]))),as(l[1],([t,s,n])=>[Kt(t,0,e),s,n])],I=(e,t=!1)=>{const[[s,n,a],[o,d,c]]=l,u=e?Zt:Yt,g={};Se(r,(e,n)=>B(Ue(s,n),([s,l,a])=>{const o={};Se(e,(e,n)=>B(Ue(s,n),([s,l,a])=>{const r={};Se(e,e=>{B(Ue(s,e),([s,n,l])=>r[e]=u(t?s:Kt(s),n,l))}),o[n]=u(r,l,a)})),g[n]=u(o,l,a)}));const h={};return Se(i,e=>B(Ue(o,e),([s,n,l])=>h[e]=u(t?s:Kt(s),n,l))),[u(g,n,a),u(h,d,c),1]},L=()=>R(),T=e=>f(()=>g.applyChanges(b(e))),p={getMergeableContent:L,getMergeableContentHashes:()=>[l[0][2],l[1][2]],getMergeableTableHashes:()=>Ye(l[0][0],$t),getMergeableTableDiff:e=>{const t=ns(l[0][1]),s={};return qe(l[0][0],(n,[l,a,o])=>He(e,n)?o!=e[n]?s[n]=o:0:t[0][n]=os([l,a],e=>os(e))),[t,s]},getMergeableRowHashes:e=>{const t={};return xe(e,(e,s)=>B(Ue(l[0][0],s),([n,,l])=>l!=e?qe(n,(e,[,,n])=>Oe(t,s,_e)[e]=n):0)),t},getMergeableRowDiff:e=>{const t=ns(l[0][1]),s={};return xe(e,(e,n)=>qe(Ue(l[0][0],n)?.[0],(l,[a,o,r])=>He(e,l)?r!==e[l]?Oe(s,n,_e)[l]=r:0:Oe(t[0],n,ns)[0][l]=os([a,o]))),[t,s]},getMergeableCellHashes:e=>{const t={};return xe(e,(e,s)=>B(Ue(l[0][0],s),([n])=>xe(e,(e,l)=>B(Ue(n,l),([n,,a])=>a!==e?qe(n,(e,[,,n])=>Oe(Oe(t,s,_e),l,_e)[e]=n):0)))),t},getMergeableCellDiff:e=>{const[[t,s]]=l,n={};return xe(e,(e,s)=>xe(e,(e,l)=>B(Ue(t,s),([t,a])=>B(Ue(t,l),([t,o])=>qe(t,(t,[r,i,d])=>d!==e[t]?Oe(Oe(n,s,()=>ns(a))[0],l,()=>ns(o))[0][t]=[r,i]:0))))),Yt(n,s)},getMergeableValueHashes:()=>Ye(l[1][0],$t),getMergeableValueDiff:e=>{const[,[t,s]]=l,n=Ye(t,Xt,([,,t],s)=>t==e?.[s]);return Yt(n,s)},setMergeableContent:e=>f(()=>(e=>K(e)&&2==Y(e)&&rs(e[0],e=>je(e,e=>rs(e,e=>je(e,e=>rs(e,e=>je(e,e=>rs(e,Bt),void 0,1)),void 0,1)),void 0,1))&&rs(e[1],e=>je(e,e=>rs(e,Bt),void 0,1)))(e)?g.transaction(()=>{g.delTables().delValues(),l=ws(),g.applyChanges(b(e,1))}):0),setDefaultContent:e=>(g.transaction(()=>{a=1,g.setContent(e),a=0}),p),getTransactionMergeableChanges:(e=!1)=>I(e),applyMergeableChanges:T,merge:e=>{const t=L(),s=e.getMergeableContent();return e.applyMergeableChanges(t),T(s)},__:[()=>{const e=o;return o=0,e},()=>R(!0),e=>I(e,!0)]};return g._[3](w,v,()=>{pe(r),pe(i)},(e,s,l,i,c,u)=>{at(Ke(Ke(r,e,Ae),s,lt),l),(n||c)&&(c&&(o=1),b([[{[e]:[{[s]:[{[l]:[i,a||u?t:d()]}]}]}],[{}],1]))},(e,s,l,r)=>{at(i,e),(n||l)&&(l&&(o=1),b([[{}],[{[e]:[s,a||r?t:d()]}],1]))}),Pe(g,(e,t)=>p[t]=M(t,"set")||M(t,"del")||M(t,"apply")||D(t,"Transaction")||t=="call"+u||"use"==t?(...t)=>(e(...t),p):M(t,h)&&D(t,u)?(...s)=>{const n=Cs[X(t,3,-8)]??0,l=s[n];return s[n]=(e,...t)=>l(p,...t),e(...s)}:"isMergeable"==t?()=>!0:e),We(p)},Rs=Ae([["avg",[(e,t)=>de(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>J(...e),(e,t)=>J(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:J(t,e)]],["min",[e=>x(...e),(e,t)=>x(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:x(t,e)]],["sum",[e=>de(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Is=(e,t,s,n,l,a=!1)=>{if(Le(s))return;const[o,r,i,d]=l;return a||=O(e),Se(n,([s,n])=>{a||(e=O(s)?r?.(e,n,t++):O(n)?i?.(e,s,t--):d?.(e,n,s,t),a||=O(e))}),a?o(Te(s),Ce(s)):e},Ls=it(e=>{const s=Ae(),[n,l,a]=ut(()=>w),[o,r,i,d,c,u,g,,h,f,b,C]=ot(e,Z,e=>isNaN(e)||O(e)||z(e)||!1===e||e===t?void 0:1*e,n,l),w={setMetricDefinition:(e,t,n,a,o,r,i)=>{const d=G(n)?[n,o,r,i]:Ue(Rs,n)??Ue(Rs,"sum");return h(e,t,(t,n,a,o,r,i)=>{const c=u(e),h=Ce(o);i||=O(c),t();let f=Is(c,h,o,n,d,i);Q(f)||(f=void 0),f!=c&&(g(e,f),l(s,[e],f,c))},rt(a,1)),w},delMetricDefinition:e=>(f(e),w),getStore:o,getMetricIds:r,forEachMetric:i,hasMetric:d,getTableId:c,getMetric:u,addMetricIdsListener:b,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(a(e),w),destroy:C,getListenerStats:()=>({metric:we(s)})};return We(w)}),Ts=(e,t,...s)=>ue(e,(e,t)=>O(e)?e:t(...s,e),t),ps=(e,...t)=>ne(e,e=>e(...t)),Ss=it(e=>{const t=e=>t=>(ge(e,t),D),s=[],n=[],l=[],a=[],o=[],r=[],i=[],d=[],c=[],u=[],g=[],h=[],f=[],b=[],C=t(s),w=t(n),v=t(l),R=t(a),I=t(o),L=t(r),T=t(i),p=t(d),S=t(c),V=t(u),m=t(g),y=t(h),k=t(f),M=t(b),D=We({getStore:()=>e,addWillSetContentCallback:C,addWillSetTablesCallback:w,addWillSetTableCallback:v,addWillSetRowCallback:R,addWillSetCellCallback:I,addWillSetValuesCallback:L,addWillSetValueCallback:T,addWillDelTablesCallback:p,addWillDelTableCallback:S,addWillDelRowCallback:V,addWillDelCellCallback:m,addWillDelValuesCallback:y,addWillDelValueCallback:k,addWillApplyChangesCallback:M,destroy:()=>{}});return e._[4](e=>Ts(s,e),e=>Ts(n,e),(e,t)=>Ts(l,t,e),(e,t,s)=>Ts(a,s,e,t),(e,t,s,n)=>Ts(o,n,e,t,s),e=>Ts(r,e),(e,t)=>Ts(i,t,e),()=>ps(d),e=>ps(c,e),(e,t)=>ps(u,e,t),(e,t,s)=>ps(g,e,t,s),()=>ps(h),e=>ps(f,e),e=>Ts(b,e),()=>a.length>0),D}),Vs="_",ms=it(e=>{const s=e._[0],n=s(),l=s(),a=Ae(),o=Ae(),r=lt(),i=Ae(),d=Ae(),c={table:0,tableCellIds:0,rowCount:0,rowIds:0,sortedRowIds:0,row:0,cellIds:0,cell:0},f=Ae(),b=Ae(),{_:[,w,v],delListener:V}=l,[m,y,k,M,D,E,W,_,,H,J,x]=ot(e,()=>[],Z,w,v),P=e=>Ke(o,e,s),F=(e,t,...s)=>re(s,s=>at(Ke(Ke(f,t,Ae),e,lt),s)),Q=e=>{B(Ue(f,e),e=>{qe(e,(e,t)=>Se(t,t=>e.delListener(t))),pe(e)}),re([P(e),Ue(a,e)],t=>t?.delTable(e))},N=(e,t,s,...n)=>{const l=Ke(Ke(b,t,Ae),e,lt);return re(n,t=>{at(l,t),s&&e.callListener(t)}),n},j=(e,t,s)=>B(Ue(Ue(b,e),t),n=>{t.delListener(s),Ve(n,s),Le(n)&&Ge(Ue(b,e),t)}),A=e=>B(Ue(b,e),e=>{qe(e,(e,t)=>Se(t,t=>e.delListener(t))),pe(e)}),U=(e,t,s)=>F(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener(()=>s.finishTransaction())),q=(e,t)=>(Qe(t)?n.delRow:n.setRow)(Vs,e,{...t}),K=n=>P(n).transaction(()=>B(E(n),([l,,o])=>{const i=D(n),d=o?P(i):e,c=P(n),u=ee(n);at(r,n),Q(n),A(n);const g=[],h=[[void 0,[i,void 0,void 0,[],Ae(),d]]],f=[],b=[],C=[];l({select:(e,s,n)=>{const l=z(e)?s:e,a=z(e)?n:s,o=G(e)?[Y(g)+t,e]:O(a)?[e,t=>t(e)]:[a,t=>z(e)?t(!0,l,a):t(l,a)];return ge(g,o),{as:e=>o[0]=e}},join:(t,s,n,l)=>{const a=z(t)?s:t,[o,r]=z(t)?O(l)||G(n)?[void 0,n]:[n,l]:O(n)||G(s)?[void 0,s]:[s,n],i=[a,[a,o,G(r)?r:e=>e(r),[],Ae(),z(t)?P(a):e]];return ge(h,i),{as:e=>i[0]=e}},where:(e,t,s,n)=>ge(f,G(e)?e:z(e)?e=>e(!0,t,s)===n:O(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,l)=>{const a=[e,[e,G(t)?[t,s,n,l]:Ue(Rs,t)??[(e,t)=>t]]];return ge(b,a),{as:e=>a[0]=e}},having:(e,t)=>ge(C,G(e)?e:s=>s(e)===t),param:e=>((e,t)=>B(e,e=>e[t]))(u,e)});const w=Ae(g);if(Le(w))return Ve(r,n),te;const v=Ae(h);qe(v,(e,[,t])=>B(Ue(v,t),({3:t})=>O(e)?0:ge(t,e)));const R=Ae(b),I=!Le(R)||!ce(C),L=I?(e=>Ke(a,e,s))(n):c;if(I){U(n,L,c);const e=Ae();qe(R,(t,[s,n])=>at(Ke(e,s,lt),[t,n]));const t=lt();qe(w,s=>Ie(e,s)?0:at(t,s));const s=Ae(),l=(t,s,l,a)=>B(t,([o,r,i,d])=>{qe(s,(t,[s])=>{const n=Ke(o,t,Ae),r=Ue(n,l),i=a?void 0:s;if(r!==i){const s=lt([[r,i]]),a=Ce(n);Ge(n,l,i),Se(Ue(e,t),([e,t])=>{const l=Is(d[e],a,n,s,t);d[e]=O(At(l))?void 0:l})}}),Le(r)||!ne(C,e=>e(e=>d[e]))?c.delRow(n,i):O(i)?t[2]=c.addRow(n,d):c.setRow(n,i,d)});F(L,n,L.addRowListener(n,null,(a,o,r,i)=>{const d=[],c=[],u=Ae(),g=L.hasRow(n,r);let h=!g;Se(t,e=>{const[t,s,l]=i(n,r,e);ge(d,s),ge(c,l),h||=t}),qe(e,e=>{const[t,,s]=i(n,r,e);(h||t)&&Ge(u,e,[s])}),h&&l(nt(s,d,void 0,([,e])=>(Ve(e,r),Le(e))),u,r,1),g&&l(nt(s,c,()=>{const e={};return Se(t,t=>e[t]=L.getCell(n,r,t)),[Ae(),lt(),void 0,e]},([,e])=>{at(e,r)}),u,r)}))}U(n,d,L);const T=(e,t,s,l,a)=>{const o=e=>t.getCell(s,l,e);re(a,t=>{const[s,,l,a,r,i]=Ue(v,t),d=l?.(o,e),c=Ue(r,e),u=c?.[0];d!=u&&(B(c,([,e,t])=>j(n,e,t)),Ge(r,e,O(d)?void 0:[d,i,...N(i,n,1,i.addRowListener(s,d,()=>T(e,i,s,d,a)))]))}),(e=>{const t=(t,s,n)=>{const l=z(t)?s:t,a=z(t)?n:s;if(O(a))return d.getCell(i,e,t);if(l===i&&!z(t))return d.getCell(i,e,a);const o=Ue(v,l);return O(o)?void 0:o[5].getCell(o[0],Ue(o[4],e)?.[0],a)};L.transaction(()=>ne(f,e=>e(t))?qe(w,(s,l)=>L._[5](n,e,s,l(t,e))):L.delRow(n,e))})(e)},{3:p}=Ue(v,void 0),S=(e,t,s)=>{d.hasRow(i,s)?T(s,d,i,s,p):(L.delRow(n,s),Se(v,({4:e})=>B(Ue(e,s),([,t,l])=>{j(n,t,l),Ge(e,s)})))};return L.transaction(()=>{re(d.getRowIds(i),e=>S(0,0,e)),N(d,n,0,d.addRowListener(i,null,S))}),Ve(r,n),te})),$=e=>(B(E(e),([,e])=>n.delListener(e)),n.delRow(Vs,e),Q(e),A(e),H(e),te),ee=e=>n.getRow(Vs,e),te={setQueryDefinition:(e,t,s,l,a={})=>{const[o,r,i,d]=z(t)?[s,l,1,a]:[t,s,0,l??{}];return B(E(e),([,e])=>n.delListener(e)),_(e,o),W(e,[r,n.addRowListener(Vs,e,()=>K(e)),i]),q(e,d),K(e),te},delQueryDefinition:$,getParamValues:ee,getParamValue:(e,t)=>n.getCell(Vs,e,t),setParamValues:(e,t)=>(M(e)&&q(e,t),te),setParamValue:(e,t,s)=>(M(e)&&n.setCell(Vs,e,t,s),te),getStore:m,getQueryIds:y,forEachQuery:k,hasQuery:M,getTableId:D,forEachResultTable:e=>k(t=>P(t).hasTable(t)?e(t,e=>te.forEachResultRow(t,e)):0),addQueryIdsListener:e=>J(()=>e(te)),addParamValuesListener:(e,t)=>"p"+n.addRowListener(Vs,e,(e,s,n)=>t(te,n,ee(n))),addParamValueListener:(e,t,s)=>"p"+n.addCellListener(Vs,e,t,(e,t,n,l,a)=>s(te,n,l,a)),delListener:e=>{const t=Ue(i,e);if("p"==e[0])n.delListener(X(e,1));else if(O(t))V(e);else{const[s,n,l]=t;qe(n,(e,[t,s])=>t.delListener(s)),B(l,V),Ge(i,e),V(e),c[s]--}return te},destroy:()=>{re(y(),$),x()},getListenerStats:()=>({...c,paramValues:n.getListenerStats().row-Y(y()),paramValue:n.getListenerStats().cell})};return Pe({[C]:[2,1],[C+S]:[1,1],[I]:[1,1],[L]:[1,1],[T]:[1,5],[R]:[3,2],[S]:[1,2],[p]:[3,3]},([e,t],s)=>{re(X(["get","has","forEach"],0,e),e=>te[e+g+s]=(...t)=>P(t[0])[e+s](...t)),te[h+g+s+u]=(...e)=>((n,l)=>{const a=w(Z,d),o=Ae(),r=()=>{const n=null==l?y():[l];re(n,n=>{return Ie(o,n)?0:Ge(o,n,[P(n),(l=P(n),l[h+s+u](...((e,t)=>5==t?[e[0],e[1]??void 0,e[2],e[3],e[4]]:X(e,0,t))(e,t),(s,...n)=>e[t](te,...n),!0))]);var l}),qe(o,(e,[t,s])=>null==l&&M(e)||e==l?0:(t.delListener(s),void Ge(o,e)))};return r(),Ge(i,a,[n,o,null==l?J(r):void 0]),c[n]++,a})((e=>e[0].toLowerCase()+X(e,1))(s),e[0])}),We(te)}),ys=it(e=>{const s=Ae(),n=Ae(),l=Ae(),a=Ae(),[o,r,i]=ut(()=>T),[d,c,u,g,h,f,,,b,C,w,v]=ot(e,()=>[Ae(),Ae(),Ae(),Ae()],e=>O(e)?void 0:e+t,o,r),R=(e,t,s)=>B(f(e),([n,,l])=>{if(!Ie(l,t)){const a=lt();if(h(e)!=L(e))at(a,t);else{let e=t;for(;!O(e)&&!Ie(a,e);)at(a,e),e=Ue(n,e)}if(s)return a;Ge(l,t,a)}return Ue(l,t)}),I=(e,t)=>B(f(e),([,,e])=>Ge(e,t)),L=e=>Ue(s,e),T={setRelationshipDefinition:(e,t,o,i)=>(Ge(s,e,o),b(e,t,(t,s)=>{const o=lt(),i=lt(),d=lt(),[c,u]=f(e);Se(s,([t,s],n)=>{O(t)||(at(i,t),B(Ue(u,t),e=>{Ve(e,n),Le(e)&&Ge(u,t)})),O(s)||(at(i,s),Ie(u,s)||Ge(u,s,lt()),at(Ue(u,s),n)),at(o,n),Ge(c,n,s),qe(Ue(a,e),t=>{Ie(R(e,t),n)&&at(d,t)})}),t(),Se(o,t=>r(n,[e,t])),Se(i,t=>r(l,[e,t])),Se(d,t=>{I(e,t),r(a,[e,t])})},rt(i)),T),delRelationshipDefinition:e=>(Ge(s,e),C(e),T),getStore:d,getRelationshipIds:c,forEachRelationship:t=>u(s=>t(s,t=>e.forEachRow(h(s),t))),hasRelationship:g,getLocalTableId:h,getRemoteTableId:L,getRemoteRowId:(e,t)=>Ue(f(e)?.[0],t),getLocalRowIds:(e,t)=>Te(Ue(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>O(f(e))?[t]:Te(R(e,t,!0)),addRelationshipIdsListener:w,addRemoteRowIdListener:(e,t,s)=>o(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>o(s,l,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(R(e,t),o(s,a,[e,t])),delListener:e=>(I(...i(e)??[]),T),destroy:v,getListenerStats:()=>({remoteRowId:ve(n),localRowIds:ve(l),linkedRowIds:ve(a)})};return We(T)});export{St as addOrRemoveHash,gt as createCheckpoints,zt as createIndexes,vs as createMergeableStore,Ls as createMetrics,Ss as createMiddleware,ms as createQueries,ys as createRelationships,bs as createStore,jt as defaultSorter,kt as getCellHash,Mt as getCellInRowHash,pt as getHash,Ot as getHlcFunctions,Dt as getRowHash,Et as getRowInTableHash,Wt as getTableHash,_t as getTableInTablesHash,Ht as getTablesHash,vt as getUniqueId,yt as getValueHash,mt as getValueInValuesHash,Vt as getValuesHash};
package/min/index.js.gz CHANGED
Binary file