ember-headless-table 0.0.0 → 1.0.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 (169) hide show
  1. package/addon-main.js +5 -0
  2. package/dist/-private/-type-tests/plugin-properties.test.d.ts +2 -0
  3. package/dist/-private/-type-tests/plugin-properties.test.d.ts.map +1 -0
  4. package/dist/-private/-type-tests/plugin-properties.test.js +31 -0
  5. package/dist/-private/-type-tests/plugin-properties.test.js.map +1 -0
  6. package/dist/-private/-type-tests/plugin-with.test.d.ts +1 -0
  7. package/dist/-private/-type-tests/plugin-with.test.js +21 -0
  8. package/dist/-private/-type-tests/plugin-with.test.js.map +1 -0
  9. package/dist/-private/-type-tests/plugins-accessors.test.d.ts +1 -0
  10. package/dist/-private/-type-tests/plugins-accessors.test.js +36 -0
  11. package/dist/-private/-type-tests/plugins-accessors.test.js.map +1 -0
  12. package/dist/-private/-type-tests/plugins-signature-from.test.d.ts +1 -0
  13. package/dist/-private/-type-tests/plugins-signature-from.test.js +14 -0
  14. package/dist/-private/-type-tests/plugins-signature-from.test.js.map +1 -0
  15. package/dist/-private/-type-tests/plugins-signature-utils.test.d.ts +1 -0
  16. package/dist/-private/-type-tests/plugins-signature-utils.test.js +36 -0
  17. package/dist/-private/-type-tests/plugins-signature-utils.test.js.map +1 -0
  18. package/dist/-private/-type-tests/table-api.test.d.ts +1 -0
  19. package/dist/-private/-type-tests/table-api.test.js +16 -0
  20. package/dist/-private/-type-tests/table-api.test.js.map +1 -0
  21. package/dist/-private/-type-tests/table-config.test.d.ts +1 -0
  22. package/dist/-private/-type-tests/table-config.test.js +58 -0
  23. package/dist/-private/-type-tests/table-config.test.js.map +1 -0
  24. package/dist/-private/column.d.ts +18 -0
  25. package/dist/-private/column.js +70 -0
  26. package/dist/-private/column.js.map +1 -0
  27. package/dist/-private/interfaces/column.d.ts +57 -0
  28. package/dist/-private/interfaces/column.js +2 -0
  29. package/dist/-private/interfaces/column.js.map +1 -0
  30. package/dist/-private/interfaces/index.d.ts +7 -0
  31. package/dist/-private/interfaces/index.js +2 -0
  32. package/dist/-private/interfaces/index.js.map +1 -0
  33. package/dist/-private/interfaces/modifier.d.ts +7 -0
  34. package/dist/-private/interfaces/modifier.js +2 -0
  35. package/dist/-private/interfaces/modifier.js.map +1 -0
  36. package/dist/-private/interfaces/pagination.d.ts +17 -0
  37. package/dist/-private/interfaces/pagination.js +2 -0
  38. package/dist/-private/interfaces/pagination.js.map +1 -0
  39. package/dist/-private/interfaces/plugins.d.ts +314 -0
  40. package/dist/-private/interfaces/plugins.js +2 -0
  41. package/dist/-private/interfaces/plugins.js.map +1 -0
  42. package/dist/-private/interfaces/preferences.d.ts +74 -0
  43. package/dist/-private/interfaces/preferences.js +2 -0
  44. package/dist/-private/interfaces/preferences.js.map +1 -0
  45. package/dist/-private/interfaces/selection.d.ts +35 -0
  46. package/dist/-private/interfaces/selection.js +2 -0
  47. package/dist/-private/interfaces/selection.js.map +1 -0
  48. package/dist/-private/interfaces/table.d.ts +109 -0
  49. package/dist/-private/interfaces/table.js +2 -0
  50. package/dist/-private/interfaces/table.js.map +1 -0
  51. package/dist/-private/js-helper.d.ts +39 -0
  52. package/dist/-private/js-helper.js +20 -0
  53. package/dist/-private/js-helper.js.map +1 -0
  54. package/dist/-private/preferences.d.ts +56 -0
  55. package/dist/-private/preferences.js +175 -0
  56. package/dist/-private/preferences.js.map +1 -0
  57. package/dist/-private/private-types.d.ts +6 -0
  58. package/dist/-private/private-types.js +2 -0
  59. package/dist/-private/private-types.js.map +1 -0
  60. package/dist/-private/row.d.ts +12 -0
  61. package/dist/-private/row.js +63 -0
  62. package/dist/-private/row.js.map +1 -0
  63. package/dist/-private/table.d.ts +0 -0
  64. package/dist/-private/table.js +18 -0
  65. package/dist/-private/table.js.map +1 -0
  66. package/dist/-private/utils.d.ts +3 -0
  67. package/dist/-private/utils.js +17 -0
  68. package/dist/-private/utils.js.map +1 -0
  69. package/dist/applyDecoratedDescriptor-e0489e2f.js +31 -0
  70. package/dist/applyDecoratedDescriptor-e0489e2f.js.map +1 -0
  71. package/dist/classPrivateFieldGet-af59a8ea.js +23 -0
  72. package/dist/classPrivateFieldGet-af59a8ea.js.map +1 -0
  73. package/dist/defineProperty-a0196711.js +17 -0
  74. package/dist/defineProperty-a0196711.js.map +1 -0
  75. package/dist/index.d.ts +13 -0
  76. package/dist/index.js +4 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/plugins/-private/base.d.ts +267 -0
  79. package/dist/plugins/-private/base.js +486 -0
  80. package/dist/plugins/-private/base.js.map +1 -0
  81. package/dist/plugins/-private/utils.d.ts +21 -0
  82. package/dist/plugins/-private/utils.js +118 -0
  83. package/dist/plugins/-private/utils.js.map +1 -0
  84. package/dist/plugins/column-reordering/helpers.d.ts +28 -0
  85. package/dist/plugins/column-reordering/helpers.js +37 -0
  86. package/dist/plugins/column-reordering/helpers.js.map +1 -0
  87. package/dist/plugins/column-reordering/index.d.ts +3 -0
  88. package/dist/plugins/column-reordering/index.js +3 -0
  89. package/dist/plugins/column-reordering/index.js.map +1 -0
  90. package/dist/plugins/column-reordering/plugin.d.ts +133 -0
  91. package/dist/plugins/column-reordering/plugin.js +392 -0
  92. package/dist/plugins/column-reordering/plugin.js.map +1 -0
  93. package/dist/plugins/column-reordering/utils.d.ts +7 -0
  94. package/dist/plugins/column-reordering/utils.js +41 -0
  95. package/dist/plugins/column-reordering/utils.js.map +1 -0
  96. package/dist/plugins/column-resizing/handle.d.ts +116 -0
  97. package/dist/plugins/column-resizing/handle.js +251 -0
  98. package/dist/plugins/column-resizing/handle.js.map +1 -0
  99. package/dist/plugins/column-resizing/helpers.d.ts +17 -0
  100. package/dist/plugins/column-resizing/helpers.js +22 -0
  101. package/dist/plugins/column-resizing/helpers.js.map +1 -0
  102. package/dist/plugins/column-resizing/index.d.ts +4 -0
  103. package/dist/plugins/column-resizing/index.js +4 -0
  104. package/dist/plugins/column-resizing/index.js.map +1 -0
  105. package/dist/plugins/column-resizing/plugin.d.ts +144 -0
  106. package/dist/plugins/column-resizing/plugin.js +352 -0
  107. package/dist/plugins/column-resizing/plugin.js.map +1 -0
  108. package/dist/plugins/column-resizing/resize-observer.d.ts +14 -0
  109. package/dist/plugins/column-resizing/resize-observer.js +46 -0
  110. package/dist/plugins/column-resizing/resize-observer.js.map +1 -0
  111. package/dist/plugins/column-resizing/utils.d.ts +22 -0
  112. package/dist/plugins/column-resizing/utils.js +46 -0
  113. package/dist/plugins/column-resizing/utils.js.map +1 -0
  114. package/dist/plugins/column-visibility/helpers.d.ts +18 -0
  115. package/dist/plugins/column-visibility/helpers.js +25 -0
  116. package/dist/plugins/column-visibility/helpers.js.map +1 -0
  117. package/dist/plugins/column-visibility/index.d.ts +3 -0
  118. package/dist/plugins/column-visibility/index.js +3 -0
  119. package/dist/plugins/column-visibility/index.js.map +1 -0
  120. package/dist/plugins/column-visibility/plugin.d.ts +62 -0
  121. package/dist/plugins/column-visibility/plugin.js +124 -0
  122. package/dist/plugins/column-visibility/plugin.js.map +1 -0
  123. package/dist/plugins/data-sorting/helpers.d.ts +38 -0
  124. package/dist/plugins/data-sorting/helpers.js +49 -0
  125. package/dist/plugins/data-sorting/helpers.js.map +1 -0
  126. package/dist/plugins/data-sorting/index.d.ts +5 -0
  127. package/dist/plugins/data-sorting/index.js +4 -0
  128. package/dist/plugins/data-sorting/index.js.map +1 -0
  129. package/dist/plugins/data-sorting/plugin.d.ts +99 -0
  130. package/dist/plugins/data-sorting/plugin.js +165 -0
  131. package/dist/plugins/data-sorting/plugin.js.map +1 -0
  132. package/dist/plugins/data-sorting/types.d.ts +23 -0
  133. package/dist/plugins/data-sorting/types.js +17 -0
  134. package/dist/plugins/data-sorting/types.js.map +1 -0
  135. package/dist/plugins/index.d.ts +5 -0
  136. package/dist/plugins/index.js +3 -0
  137. package/dist/plugins/index.js.map +1 -0
  138. package/dist/plugins/row-selection/helpers.d.ts +6 -0
  139. package/dist/plugins/row-selection/helpers.js +10 -0
  140. package/dist/plugins/row-selection/helpers.js.map +1 -0
  141. package/dist/plugins/row-selection/index.d.ts +3 -0
  142. package/dist/plugins/row-selection/index.js +3 -0
  143. package/dist/plugins/row-selection/index.js.map +1 -0
  144. package/dist/plugins/row-selection/plugin.d.ts +79 -0
  145. package/dist/plugins/row-selection/plugin.js +187 -0
  146. package/dist/plugins/row-selection/plugin.js.map +1 -0
  147. package/dist/plugins/sticky-columns/helpers.d.ts +4 -0
  148. package/dist/plugins/sticky-columns/helpers.js +8 -0
  149. package/dist/plugins/sticky-columns/helpers.js.map +1 -0
  150. package/dist/plugins/sticky-columns/index.d.ts +3 -0
  151. package/dist/plugins/sticky-columns/index.js +3 -0
  152. package/dist/plugins/sticky-columns/index.js.map +1 -0
  153. package/dist/plugins/sticky-columns/plugin.d.ts +53 -0
  154. package/dist/plugins/sticky-columns/plugin.js +132 -0
  155. package/dist/plugins/sticky-columns/plugin.js.map +1 -0
  156. package/dist/table-8e46554b.d.ts +127 -0
  157. package/dist/table-8e46554b.js +249 -0
  158. package/dist/table-8e46554b.js.map +1 -0
  159. package/dist/test-support/index.d.ts +14 -0
  160. package/dist/test-support/index.js +72 -0
  161. package/dist/test-support/index.js.map +1 -0
  162. package/dist/utils.d.ts +26 -0
  163. package/dist/utils.js +77 -0
  164. package/dist/utils.js.map +1 -0
  165. package/package.json +147 -51
  166. package/LICENSE.md +0 -9
  167. package/README.md +0 -38
  168. package/config/environment.js +0 -5
  169. package/index.js +0 -5
package/addon-main.js ADDED
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+
3
+ const { addonV1Shim } = require('@embroider/addon-shim');
4
+
5
+ module.exports = addonV1Shim(__dirname);
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=-private/-type-tests/plugin-properties.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"-private/-type-tests/plugin-properties.test.d.ts","sourceRoot":"","sources":["../src/-private/-type-tests/plugin-properties.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,31 @@
1
+ import { _ as _defineProperty } from '../../defineProperty-a0196711.js';
2
+ import { expectTypeOf } from 'expect-type';
3
+ import { BasePlugin } from '../../plugins/-private/base.js';
4
+ import '@ember/debug';
5
+
6
+ class A extends BasePlugin {
7
+ constructor(...args) {
8
+ super(...args);
9
+
10
+ _defineProperty(this, "name", 'a plugin');
11
+ }
12
+
13
+ }
14
+
15
+ let x = 0;
16
+ let a = new A(x); ///////////////////////////////////////////////////
17
+ // Meta instantiation
18
+ ///////////////////////////////////////////////////
19
+
20
+ if (a.meta?.table) {
21
+ expectTypeOf(new a.meta.table()).toEqualTypeOf();
22
+ }
23
+
24
+ if (a.meta?.column) {
25
+ expectTypeOf(new a.meta.column()).toEqualTypeOf();
26
+ }
27
+
28
+ if (a.meta?.row) {
29
+ expectTypeOf(new a.meta.row()).toEqualTypeOf();
30
+ }
31
+ //# sourceMappingURL=plugin-properties.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-properties.test.js","sources":["../../../src/-private/-type-tests/plugin-properties.test.ts"],"sourcesContent":["import { expectTypeOf } from 'expect-type';\n\nimport { BasePlugin } from '../../plugins';\n\nimport type { Table } from '[public-types]';\n\nclass TableMeta {\n a = 'a';\n}\nclass ColumnMeta {\n b = 'b';\n}\nclass RowMeta {\n c = 'c';\n}\nclass A extends BasePlugin<{ Meta: { Table: TableMeta; Column: ColumnMeta; Row: RowMeta } }> {\n name = 'a plugin';\n}\n\nlet x = 0 as unknown as Table;\nlet a = new A(x);\n\n///////////////////////////////////////////////////\n// Meta instantiation\n///////////////////////////////////////////////////\nif (a.meta?.table) {\n expectTypeOf(new a.meta.table()).toEqualTypeOf<TableMeta>();\n}\n\nif (a.meta?.column) {\n expectTypeOf(new a.meta.column()).toEqualTypeOf<ColumnMeta>();\n}\n\nif (a.meta?.row) {\n expectTypeOf(new a.meta.row()).toEqualTypeOf<RowMeta>();\n}\n"],"names":["A","BasePlugin","x","a","meta","table","expectTypeOf","toEqualTypeOf","column","row"],"mappings":";;;;;AAeA,MAAMA,CAAN,SAAgBC,UAAhB,CAA6F;AAAA,EAAA,WAAA,CAAA,GAAA,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAA,IAAA,CAAA,CAAA;;AAAA,IAAA,eAAA,CAAA,IAAA,EAAA,MAAA,EACpF,UADoF,CAAA,CAAA;AAAA,GAAA;;AAAA,CAAA;;AAI7F,IAAIC,CAAC,GAAG,CAAR,CAAA;AACA,IAAIC,CAAC,GAAG,IAAIH,CAAJ,CAAME,CAAN,CAAR;AAGA;AACA;;AACA,IAAIC,CAAC,CAACC,IAAF,EAAQC,KAAZ,EAAmB;EACjBC,YAAY,CAAC,IAAIH,CAAC,CAACC,IAAF,CAAOC,KAAX,EAAD,CAAZ,CAAiCE,aAAjC,EAAA,CAAA;AACD,CAAA;;AAED,IAAIJ,CAAC,CAACC,IAAF,EAAQI,MAAZ,EAAoB;EAClBF,YAAY,CAAC,IAAIH,CAAC,CAACC,IAAF,CAAOI,MAAX,EAAD,CAAZ,CAAkCD,aAAlC,EAAA,CAAA;AACD,CAAA;;AAED,IAAIJ,CAAC,CAACC,IAAF,EAAQK,GAAZ,EAAiB;EACfH,YAAY,CAAC,IAAIH,CAAC,CAACC,IAAF,CAAOK,GAAX,EAAD,CAAZ,CAA+BF,aAA/B,EAAA,CAAA;AACD"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ import '../../plugins/-private/base.js';
2
+ import { Sorting } from '../../plugins/data-sorting/plugin.js';
3
+ import '../../plugins/data-sorting/types.js';
4
+ import { RowSelection } from '../../plugins/row-selection/plugin.js';
5
+
6
+ RowSelection.with(() => {
7
+ let simpleOptions = {
8
+ selection: new Set(),
9
+ onSelect: item => console.debug(item),
10
+ onDeselect: item => console.debug(item)
11
+ };
12
+ return simpleOptions;
13
+ });
14
+ Sorting.with(() => {
15
+ let simpleOptions = {
16
+ onSort: sorts => console.debug(sorts),
17
+ sorts: []
18
+ };
19
+ return simpleOptions;
20
+ });
21
+ //# sourceMappingURL=plugin-with.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-with.test.js","sources":["../../../src/-private/-type-tests/plugin-with.test.ts"],"sourcesContent":["import { DataSorting } from '../../plugins/data-sorting';\nimport { RowSelection } from '../../plugins/row-selection';\n\nimport type { SortItem } from '../../plugins/data-sorting';\n\nRowSelection.with(() => {\n let simpleOptions = {\n selection: new Set<number>(),\n onSelect: (item: number) => console.debug(item),\n onDeselect: (item: number) => console.debug(item),\n };\n\n return simpleOptions;\n});\n\nDataSorting.with(() => {\n let simpleOptions = {\n onSort: (sorts: SortItem<number>[]) => console.debug(sorts),\n sorts: [] as unknown as SortItem<number>[],\n };\n\n return simpleOptions;\n});\n"],"names":["RowSelection","with","simpleOptions","selection","Set","onSelect","item","console","debug","onDeselect","DataSorting","onSort","sorts"],"mappings":";;;;;AAKAA,YAAY,CAACC,IAAb,CAAkB,MAAM;AACtB,EAAA,IAAIC,aAAa,GAAG;IAClBC,SAAS,EAAE,IAAIC,GAAJ,EADO;IAElBC,QAAQ,EAAGC,IAAD,IAAkBC,OAAO,CAACC,KAAR,CAAcF,IAAd,CAFV;AAGlBG,IAAAA,UAAU,EAAGH,IAAD,IAAkBC,OAAO,CAACC,KAAR,CAAcF,IAAd,CAAA;GAHhC,CAAA;AAMA,EAAA,OAAOJ,aAAP,CAAA;AACD,CARD,CAAA,CAAA;AAUAQ,OAAW,CAACT,IAAZ,CAAiB,MAAM;AACrB,EAAA,IAAIC,aAAa,GAAG;IAClBS,MAAM,EAAGC,KAAD,IAA+BL,OAAO,CAACC,KAAR,CAAcI,KAAd,CADrB;AAElBA,IAAAA,KAAK,EAAE,EAAA;GAFT,CAAA;AAKA,EAAA,OAAOV,aAAP,CAAA;AACD,CAPD,CAAA"}
@@ -0,0 +1,36 @@
1
+ import { _ as _defineProperty } from '../../defineProperty-a0196711.js';
2
+ import { options, meta, preferences, BasePlugin } from '../../plugins/-private/base.js';
3
+ import '@ember/debug';
4
+ import { expectTypeOf } from 'expect-type';
5
+ import { Sorting } from '../../plugins/data-sorting/plugin.js';
6
+ import '../../plugins/data-sorting/types.js';
7
+
8
+ // This value is irrelevant for the tests it's used in
9
+ const x = 0;
10
+ const y = 0; //////////////////////////////////////////////
11
+
12
+ class SimplePlugin extends BasePlugin {
13
+ constructor(...args) {
14
+ super(...args);
15
+
16
+ _defineProperty(this, "name", 'my-test-plugin');
17
+ }
18
+
19
+ } // Options
20
+
21
+
22
+ expectTypeOf(options.forTable(x, SimplePlugin)).toEqualTypeOf();
23
+ expectTypeOf(options.forColumn(y, SimplePlugin)).toEqualTypeOf(); // Meta
24
+
25
+ expectTypeOf(meta.forTable(x, SimplePlugin)).toEqualTypeOf();
26
+ expectTypeOf(meta.forColumn(y, SimplePlugin)).toEqualTypeOf(); // Preferences
27
+
28
+ expectTypeOf(preferences.forTable(x, SimplePlugin)).toEqualTypeOf();
29
+ expectTypeOf(preferences.forColumn(y, SimplePlugin)).toEqualTypeOf(); //////////////////////////////////////////////
30
+ // Options
31
+ expectTypeOf(options.forTable(x, Sorting)).toEqualTypeOf();
32
+ expectTypeOf(options.forColumn(y, Sorting)).toEqualTypeOf(); // Meta
33
+
34
+ expectTypeOf(meta.forTable(x, Sorting)).toEqualTypeOf();
35
+ expectTypeOf(meta.forColumn(y, Sorting)).toEqualTypeOf();
36
+ //# sourceMappingURL=plugins-accessors.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins-accessors.test.js","sources":["../../../src/-private/-type-tests/plugins-accessors.test.ts"],"sourcesContent":["import { BasePlugin, meta, options, preferences } from 'ember-headless-table/plugins';\nimport { expectTypeOf } from 'expect-type';\n\nimport type { Column, Table } from '[public-types]';\n\n// This value is irrelevant for the tests it's used in\nconst x = 0 as unknown as Table<unknown>;\nconst y = 0 as unknown as Column<unknown>;\n\n//////////////////////////////////////////////\n// A SimplePlugin\n//////////////////////////////////////////////\nclass ATableMeta {\n isEnabled = true;\n}\nclass AColumnMeta {\n isPinned = 1;\n}\nclass ARowMeta {\n isARow = true;\n}\ninterface AOptions {\n enabled?: boolean;\n}\ninterface AColumnOptions {\n isPinned?: boolean;\n}\n\ninterface SignatureA {\n Meta: {\n Table: ATableMeta;\n Column: AColumnMeta;\n Row: ARowMeta;\n };\n Options: {\n Plugin: AOptions;\n Column: AColumnOptions;\n };\n}\n\nclass SimplePlugin<Signature = SignatureA> extends BasePlugin<Signature> {\n name = 'my-test-plugin';\n}\n\n// Options\nexpectTypeOf(options.forTable(x, SimplePlugin)).toEqualTypeOf<AOptions>();\nexpectTypeOf(options.forColumn(y, SimplePlugin)).toEqualTypeOf<AColumnOptions>();\n\n// Meta\nexpectTypeOf(meta.forTable(x, SimplePlugin)).toEqualTypeOf<ATableMeta>();\nexpectTypeOf(meta.forColumn(y, SimplePlugin)).toEqualTypeOf<AColumnMeta>();\n\n// Preferences\ninterface MapLite {\n get(key: string): unknown;\n set(key: string, value: unknown): void | undefined;\n delete(key: string): void | undefined;\n}\nexpectTypeOf(preferences.forTable(x, SimplePlugin)).toEqualTypeOf<MapLite>();\nexpectTypeOf(preferences.forColumn(y, SimplePlugin)).toEqualTypeOf<MapLite>();\n\n//////////////////////////////////////////////\n// A Real plugin\n//////////////////////////////////////////////\n\nimport { DataSorting } from '../../plugins/data-sorting';\n\nimport type { Signature as DataSortingSignature } from '../../plugins/data-sorting';\n\n// Options\nexpectTypeOf(options.forTable(x, DataSorting)).toEqualTypeOf<\n DataSortingSignature['Options']['Plugin']\n>();\nexpectTypeOf(options.forColumn(y, DataSorting)).toEqualTypeOf<\n DataSortingSignature['Options']['Column']\n>();\n\n// Meta\nexpectTypeOf(meta.forTable(x, DataSorting)).toEqualTypeOf<DataSortingSignature['Meta']['Table']>();\nexpectTypeOf(meta.forColumn(y, DataSorting)).toEqualTypeOf<\n DataSortingSignature['Meta']['Column']\n>();\n"],"names":["x","y","SimplePlugin","BasePlugin","expectTypeOf","options","forTable","toEqualTypeOf","forColumn","meta","preferences","DataSorting"],"mappings":";;;;;;;AAKA;AACA,MAAMA,CAAC,GAAG,CAAV,CAAA;AACA,MAAMC,CAAC,GAAG,CAAV;;AAiCA,MAAMC,YAAN,SAAmDC,UAAnD,CAAyE;AAAA,EAAA,WAAA,CAAA,GAAA,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAA,IAAA,CAAA,CAAA;;AAAA,IAAA,eAAA,CAAA,IAAA,EAAA,MAAA,EAChE,gBADgE,CAAA,CAAA;AAAA,GAAA;;AAAA;;;AAKzEC,YAAY,CAACC,OAAO,CAACC,QAAR,CAAiBN,CAAjB,EAAoBE,YAApB,CAAD,CAAZ,CAAgDK,aAAhD,EAAA,CAAA;AACAH,YAAY,CAACC,OAAO,CAACG,SAAR,CAAkBP,CAAlB,EAAqBC,YAArB,CAAD,CAAZ,CAAiDK,aAAjD;;AAGAH,YAAY,CAACK,IAAI,CAACH,QAAL,CAAcN,CAAd,EAAiBE,YAAjB,CAAD,CAAZ,CAA6CK,aAA7C,EAAA,CAAA;AACAH,YAAY,CAACK,IAAI,CAACD,SAAL,CAAeP,CAAf,EAAkBC,YAAlB,CAAD,CAAZ,CAA8CK,aAA9C;;AAQAH,YAAY,CAACM,WAAW,CAACJ,QAAZ,CAAqBN,CAArB,EAAwBE,YAAxB,CAAD,CAAZ,CAAoDK,aAApD,EAAA,CAAA;AACAH,YAAY,CAACM,WAAW,CAACF,SAAZ,CAAsBP,CAAtB,EAAyBC,YAAzB,CAAD,CAAZ,CAAqDK,aAArD;AAUA;AACAH,YAAY,CAACC,OAAO,CAACC,QAAR,CAAiBN,CAAjB,EAAoBW,OAApB,CAAD,CAAZ,CAA+CJ,aAA/C,EAAA,CAAA;AAGAH,YAAY,CAACC,OAAO,CAACG,SAAR,CAAkBP,CAAlB,EAAqBU,OAArB,CAAD,CAAZ,CAAgDJ,aAAhD;;AAKAH,YAAY,CAACK,IAAI,CAACH,QAAL,CAAcN,CAAd,EAAiBW,OAAjB,CAAD,CAAZ,CAA4CJ,aAA5C,EAAA,CAAA;AACAH,YAAY,CAACK,IAAI,CAACD,SAAL,CAAeP,CAAf,EAAkBU,OAAlB,CAAD,CAAZ,CAA6CJ,aAA7C,EAAA"}
@@ -0,0 +1,14 @@
1
+ import { expectTypeOf } from 'expect-type';
2
+ import '../../plugins/-private/base.js';
3
+ import '@ember/debug';
4
+
5
+ expectTypeOf().toEqualTypeOf(); // Tests that we can pluck the generic off of BasePlugin
6
+
7
+ expectTypeOf().toEqualTypeOf(); // Tests that we can get the generic type off of a sub-type of BasePlugin
8
+
9
+ expectTypeOf().toEqualTypeOf(); // Tests that we can get the generic off of a sub-type passed to BasePlugin
10
+
11
+ expectTypeOf().toEqualTypeOf(); ///////////////////////////////////////////
12
+
13
+ expectTypeOf().toEqualTypeOf();
14
+ //# sourceMappingURL=plugins-signature-from.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins-signature-from.test.js","sources":["../../../src/-private/-type-tests/plugins-signature-from.test.ts"],"sourcesContent":["import { expectTypeOf } from 'expect-type';\n\nimport { BasePlugin } from '../../plugins';\n\nimport type { SignatureFrom } from '../../plugins/-private/base';\n\nclass ATableMeta {\n a = 1;\n}\nclass AColumnMeta {\n ac = 1;\n}\nclass ARowMeta {\n ar = 1;\n}\nclass AOptions {\n ao = 1;\n}\nclass AColumnOptions {\n aco = 1;\n}\n\ninterface SignatureA {\n Meta: {\n Table: ATableMeta;\n Column: AColumnMeta;\n Row: ARowMeta;\n };\n Options: {\n Plugin: AOptions;\n Column: AColumnOptions;\n };\n}\n\nclass PluginA<Signature = SignatureA> extends BasePlugin<Signature> {\n name = 'my-test-plugin';\n}\n\n// Test the tests\nexpectTypeOf<SignatureA>().toEqualTypeOf<SignatureA>();\n\n// Tests that we can pluck the generic off of BasePlugin\nexpectTypeOf<SignatureFrom<BasePlugin<SignatureA>>>().toEqualTypeOf<SignatureA>();\n\n// Tests that we can get the generic type off of a sub-type of BasePlugin\nexpectTypeOf<SignatureFrom<PluginA>>().toEqualTypeOf<SignatureA>();\n\n// Tests that we can get the generic off of a sub-type passed to BasePlugin\nclass PluginC extends BasePlugin<SignatureA> {\n name = 'plugin-c';\n}\nexpectTypeOf<SignatureFrom<PluginC>>().toEqualTypeOf<SignatureA>();\n\n///////////////////////////////////////////\n\nclass PluginB extends BasePlugin<{ Meta: { Table: ATableMeta } }> {\n name = 'plugin-b';\n}\n\nexpectTypeOf<SignatureFrom<PluginB>>().toEqualTypeOf<{\n Meta: {\n Table: ATableMeta;\n };\n}>();\n"],"names":["expectTypeOf","toEqualTypeOf"],"mappings":";;;;AAuCAA,YAAY,EAAA,CAAeC,aAA3B,EAAA;;AAGAD,YAAY,EAAA,CAA0CC,aAAtD,EAAA;;AAGAD,YAAY,EAAA,CAA2BC,aAAvC,EAAA;;AAMAD,YAAY,EAAA,CAA2BC,aAAvC,EAAA;;AAQAD,YAAY,GAA2BC,aAAvC,EAAA"}
@@ -0,0 +1,36 @@
1
+ import { expectTypeOf } from 'expect-type';
2
+
3
+ expectTypeOf().toEqualTypeOf();
4
+ expectTypeOf().toEqualTypeOf();
5
+ expectTypeOf().toEqualTypeOf();
6
+ expectTypeOf().toEqualTypeOf();
7
+ expectTypeOf().toEqualTypeOf();
8
+ expectTypeOf().toEqualTypeOf();
9
+ expectTypeOf().toEqualTypeOf();
10
+ expectTypeOf().toEqualTypeOf();
11
+ expectTypeOf().toEqualTypeOf();
12
+ expectTypeOf().toEqualTypeOf();
13
+ expectTypeOf().toEqualTypeOf();
14
+ expectTypeOf().toEqualTypeOf();
15
+ expectTypeOf().toEqualTypeOf();
16
+ expectTypeOf().toEqualTypeOf();
17
+ expectTypeOf().toEqualTypeOf();
18
+ expectTypeOf().toEqualTypeOf();
19
+ expectTypeOf().toEqualTypeOf();
20
+ expectTypeOf().toEqualTypeOf();
21
+ expectTypeOf().toEqualTypeOf();
22
+ expectTypeOf().toEqualTypeOf();
23
+ expectTypeOf().toEqualTypeOf();
24
+ expectTypeOf().toEqualTypeOf();
25
+ expectTypeOf().toEqualTypeOf();
26
+ expectTypeOf().toEqualTypeOf();
27
+ expectTypeOf().toEqualTypeOf();
28
+ expectTypeOf().toEqualTypeOf();
29
+ expectTypeOf().toEqualTypeOf();
30
+ expectTypeOf().toEqualTypeOf();
31
+ expectTypeOf().toEqualTypeOf();
32
+ expectTypeOf().toEqualTypeOf();
33
+ expectTypeOf().toEqualTypeOf();
34
+ expectTypeOf().toEqualTypeOf();
35
+ expectTypeOf().toEqualTypeOf();
36
+ //# sourceMappingURL=plugins-signature-utils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins-signature-utils.test.js","sources":["../../../src/-private/-type-tests/plugins-signature-utils.test.ts"],"sourcesContent":["import { expectTypeOf } from 'expect-type';\n\nimport type {\n ColumnMetaFor,\n ColumnOptionsFor,\n EmptyObject,\n OptionsFor,\n PluginSignature,\n RowMetaFor,\n TableMetaFor,\n} from '#interfaces/plugins';\n\nclass ATableMeta {\n a = 1;\n}\nclass AColumnMeta {\n ac = 1;\n}\nclass ARowMeta {\n ar = 1;\n}\ninterface AOptions {\n ao: number;\n}\ninterface AColumnOptions {\n aco: number;\n}\n\ninterface FullExtendedSignature extends PluginSignature {\n Meta: {\n Table: ATableMeta;\n Column: AColumnMeta;\n Row: ARowMeta;\n };\n Options: {\n Plugin: AOptions;\n Column: AColumnOptions;\n };\n}\n\nexpectTypeOf<ColumnOptionsFor<FullExtendedSignature>>().toEqualTypeOf<AColumnOptions>();\nexpectTypeOf<OptionsFor<FullExtendedSignature>>().toEqualTypeOf<AOptions>();\nexpectTypeOf<TableMetaFor<FullExtendedSignature>>().toEqualTypeOf<ATableMeta>();\nexpectTypeOf<ColumnMetaFor<FullExtendedSignature>>().toEqualTypeOf<AColumnMeta>();\nexpectTypeOf<RowMetaFor<FullExtendedSignature>>().toEqualTypeOf<ARowMeta>();\n\ninterface FullFreeformSignature {\n Meta: {\n Table: ATableMeta;\n Column: AColumnMeta;\n Row: ARowMeta;\n };\n Options: {\n Plugin: AOptions;\n Column: AColumnOptions;\n };\n}\n\nexpectTypeOf<ColumnOptionsFor<FullFreeformSignature>>().toEqualTypeOf<AColumnOptions>();\nexpectTypeOf<OptionsFor<FullFreeformSignature>>().toEqualTypeOf<AOptions>();\nexpectTypeOf<TableMetaFor<FullFreeformSignature>>().toEqualTypeOf<ATableMeta>();\nexpectTypeOf<ColumnMetaFor<FullFreeformSignature>>().toEqualTypeOf<AColumnMeta>();\nexpectTypeOf<RowMetaFor<FullFreeformSignature>>().toEqualTypeOf<ARowMeta>();\n\ninterface WithoutOptions {\n Meta: {\n Table: ATableMeta;\n Column: AColumnMeta;\n Row: ARowMeta;\n };\n}\n\nexpectTypeOf<ColumnOptionsFor<WithoutOptions>>().toEqualTypeOf<EmptyObject>();\nexpectTypeOf<OptionsFor<WithoutOptions>>().toEqualTypeOf<EmptyObject>();\nexpectTypeOf<TableMetaFor<WithoutOptions>>().toEqualTypeOf<ATableMeta>();\nexpectTypeOf<ColumnMetaFor<WithoutOptions>>().toEqualTypeOf<AColumnMeta>();\nexpectTypeOf<RowMetaFor<WithoutOptions>>().toEqualTypeOf<ARowMeta>();\n\ninterface WithoutMeta {\n Options: {\n Plugin: AOptions;\n Column: AColumnOptions;\n };\n}\n\nexpectTypeOf<ColumnOptionsFor<WithoutMeta>>().toEqualTypeOf<AColumnOptions>();\nexpectTypeOf<OptionsFor<WithoutMeta>>().toEqualTypeOf<AOptions>();\nexpectTypeOf<TableMetaFor<WithoutMeta>>().toEqualTypeOf<never>();\nexpectTypeOf<ColumnMetaFor<WithoutMeta>>().toEqualTypeOf<never>();\nexpectTypeOf<RowMetaFor<WithoutMeta>>().toEqualTypeOf<never>();\n\nexpectTypeOf<\n ColumnOptionsFor<{ Options: { Column: AColumnOptions } }>\n>().toEqualTypeOf<AColumnOptions>();\nexpectTypeOf<ColumnOptionsFor<{ Options: { Plugin: AOptions } }>>().toEqualTypeOf<EmptyObject>();\n\nexpectTypeOf<OptionsFor<{ Options: { Plugin: AOptions } }>>().toEqualTypeOf<AOptions>();\nexpectTypeOf<OptionsFor<{ Options: { Column: AColumnOptions } }>>().toEqualTypeOf<EmptyObject>();\n\nexpectTypeOf<\n TableMetaFor<{\n Meta: {\n Table: ATableMeta;\n };\n }>\n>().toEqualTypeOf<ATableMeta>();\nexpectTypeOf<TableMetaFor<{ Meta: { Column: AColumnMeta } }>>().toEqualTypeOf<never>();\nexpectTypeOf<TableMetaFor<{ Meta: { Row: ARowMeta } }>>().toEqualTypeOf<never>();\n\nexpectTypeOf<\n ColumnMetaFor<{\n Meta: {\n Table: ATableMeta;\n };\n }>\n>().toEqualTypeOf<never>();\nexpectTypeOf<ColumnMetaFor<{ Meta: { Column: AColumnMeta } }>>().toEqualTypeOf<AColumnMeta>();\nexpectTypeOf<ColumnMetaFor<{ Meta: { Row: ARowMeta } }>>().toEqualTypeOf<never>();\n\nexpectTypeOf<\n RowMetaFor<{\n Meta: {\n Table: ATableMeta;\n };\n }>\n>().toEqualTypeOf<never>();\nexpectTypeOf<RowMetaFor<{ Meta: { Column: AColumnMeta } }>>().toEqualTypeOf<never>();\nexpectTypeOf<RowMetaFor<{ Meta: { Row: ARowMeta } }>>().toEqualTypeOf<ARowMeta>();\n"],"names":["expectTypeOf","toEqualTypeOf"],"mappings":";;AAwCAA,YAAY,GAA4CC,aAAxD,EAAA,CAAA;AACAD,YAAY,GAAsCC,aAAlD,EAAA,CAAA;AACAD,YAAY,GAAwCC,aAApD,EAAA,CAAA;AACAD,YAAY,GAAyCC,aAArD,EAAA,CAAA;AACAD,YAAY,GAAsCC,aAAlD,EAAA,CAAA;AAcAD,YAAY,GAA4CC,aAAxD,EAAA,CAAA;AACAD,YAAY,GAAsCC,aAAlD,EAAA,CAAA;AACAD,YAAY,GAAwCC,aAApD,EAAA,CAAA;AACAD,YAAY,GAAyCC,aAArD,EAAA,CAAA;AACAD,YAAY,GAAsCC,aAAlD,EAAA,CAAA;AAUAD,YAAY,GAAqCC,aAAjD,EAAA,CAAA;AACAD,YAAY,GAA+BC,aAA3C,EAAA,CAAA;AACAD,YAAY,GAAiCC,aAA7C,EAAA,CAAA;AACAD,YAAY,GAAkCC,aAA9C,EAAA,CAAA;AACAD,YAAY,GAA+BC,aAA3C,EAAA,CAAA;AASAD,YAAY,GAAkCC,aAA9C,EAAA,CAAA;AACAD,YAAY,GAA4BC,aAAxC,EAAA,CAAA;AACAD,YAAY,GAA8BC,aAA1C,EAAA,CAAA;AACAD,YAAY,GAA+BC,aAA3C,EAAA,CAAA;AACAD,YAAY,GAA4BC,aAAxC,EAAA,CAAA;AAEAD,YAAY,GAERC,aAFJ,EAAA,CAAA;AAGAD,YAAY,GAAwDC,aAApE,EAAA,CAAA;AAEAD,YAAY,GAAkDC,aAA9D,EAAA,CAAA;AACAD,YAAY,GAAwDC,aAApE,EAAA,CAAA;AAEAD,YAAY,GAMRC,aANJ,EAAA,CAAA;AAOAD,YAAY,GAAoDC,aAAhE,EAAA,CAAA;AACAD,YAAY,GAA8CC,aAA1D,EAAA,CAAA;AAEAD,YAAY,GAMRC,aANJ,EAAA,CAAA;AAOAD,YAAY,GAAqDC,aAAjE,EAAA,CAAA;AACAD,YAAY,GAA+CC,aAA3D,EAAA,CAAA;AAEAD,YAAY,GAMRC,aANJ,EAAA,CAAA;AAOAD,YAAY,GAAkDC,aAA9D,EAAA,CAAA;AACAD,YAAY,GAA4CC,aAAxD,EAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,16 @@
1
+ import { expectTypeOf } from 'expect-type';
2
+ import '../../plugins/-private/base.js';
3
+ import { ColumnReordering } from '../../plugins/column-reordering/plugin.js';
4
+ import '../../plugins/column-resizing/handle.js';
5
+ import { ColumnResizing } from '../../plugins/column-resizing/plugin.js';
6
+ import { Sorting } from '../../plugins/data-sorting/plugin.js';
7
+ import '../../plugins/data-sorting/types.js';
8
+
9
+ // We're testing types, not behaviors
10
+ const x = 0; //////////////////////////////
11
+ // <Table>#pluginOf
12
+
13
+ expectTypeOf(x.pluginOf(Sorting)).toEqualTypeOf();
14
+ expectTypeOf(x.pluginOf(ColumnReordering)).toEqualTypeOf();
15
+ expectTypeOf(x.pluginOf(ColumnResizing)).toEqualTypeOf();
16
+ //# sourceMappingURL=table-api.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-api.test.js","sources":["../../../src/-private/-type-tests/table-api.test.ts"],"sourcesContent":["import { expectTypeOf } from 'expect-type';\n\nimport { ColumnReordering } from '../../plugins/column-reordering';\nimport { ColumnResizing } from '../../plugins/column-resizing';\nimport { DataSorting } from '../../plugins/data-sorting';\n\nimport type { Table } from '[public-types]';\n\n// We're testing types, not behaviors\nconst x = 0 as unknown as Table<{ x: number }>;\n\n//////////////////////////////\n// <Table>#pluginOf\nexpectTypeOf(x.pluginOf(DataSorting)).toEqualTypeOf<DataSorting | undefined>();\nexpectTypeOf(x.pluginOf(ColumnReordering)).toEqualTypeOf<ColumnReordering | undefined>();\nexpectTypeOf(x.pluginOf(ColumnResizing)).toEqualTypeOf<ColumnResizing | undefined>();\n"],"names":["x","expectTypeOf","pluginOf","DataSorting","toEqualTypeOf","ColumnReordering","ColumnResizing"],"mappings":";;;;;;;;AAQA;AACA,MAAMA,CAAC,GAAG,CAAV;AAGA;;AACAC,YAAY,CAACD,CAAC,CAACE,QAAF,CAAWC,OAAX,CAAD,CAAZ,CAAsCC,aAAtC,EAAA,CAAA;AACAH,YAAY,CAACD,CAAC,CAACE,QAAF,CAAWG,gBAAX,CAAD,CAAZ,CAA2CD,aAA3C,EAAA,CAAA;AACAH,YAAY,CAACD,CAAC,CAACE,QAAF,CAAWI,cAAX,CAAD,CAAZ,CAAyCF,aAAzC,EAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,58 @@
1
+ import { _ as _defineProperty } from '../../defineProperty-a0196711.js';
2
+ import { expectTypeOf } from 'expect-type';
3
+ import { BasePlugin } from '../../plugins/-private/base.js';
4
+ import { ColumnReordering } from '../../plugins/column-reordering/plugin.js';
5
+ import '../../plugins/column-resizing/handle.js';
6
+ import { ColumnResizing } from '../../plugins/column-resizing/plugin.js';
7
+ import { ColumnVisibility } from '../../plugins/column-visibility/plugin.js';
8
+ import { Sorting } from '../../plugins/data-sorting/plugin.js';
9
+ import '../../plugins/data-sorting/types.js';
10
+ import { StickyColumns } from '../../plugins/sticky-columns/plugin.js';
11
+
12
+ /////////////////////////////////////////////
13
+ // Sanity checks
14
+ expectTypeOf().toMatchTypeOf();
15
+ expectTypeOf().toMatchTypeOf();
16
+ expectTypeOf().toMatchTypeOf();
17
+ expectTypeOf().toMatchTypeOf();
18
+ expectTypeOf().toMatchTypeOf();
19
+ expectTypeOf().toMatchTypeOf();
20
+ expectTypeOf().toMatchTypeOf();
21
+
22
+ class LocalPlugin extends BasePlugin {
23
+ constructor(...args) {
24
+ super(...args);
25
+
26
+ _defineProperty(this, "name", 'local-plugin');
27
+ }
28
+
29
+ }
30
+
31
+ expectTypeOf([LocalPlugin]).toMatchTypeOf(); /////////////////////////////////////////////
32
+ // Making sure all plugins are subclassed appropriately
33
+
34
+ expectTypeOf(LocalPlugin).toMatchTypeOf();
35
+ expectTypeOf(ColumnReordering).toMatchTypeOf();
36
+ expectTypeOf(LocalPlugin).toMatchTypeOf();
37
+ expectTypeOf(ColumnReordering).toMatchTypeOf(); // Actual plugins match the actual table config
38
+
39
+ expectTypeOf([Sorting]).toMatchTypeOf();
40
+ expectTypeOf([ColumnReordering]).toMatchTypeOf();
41
+ expectTypeOf([ColumnResizing]).toMatchTypeOf();
42
+ expectTypeOf([ColumnVisibility]).toMatchTypeOf();
43
+ expectTypeOf([StickyColumns]).toMatchTypeOf(); /////////////////////////////////////////////
44
+ // The various ways to define plugins
45
+
46
+ expectTypeOf([Sorting, ColumnReordering]).toMatchTypeOf();
47
+
48
+ const onSort = _sorts => {
49
+ /* intentionally empty */
50
+ };
51
+
52
+ const sorts = [];
53
+ expectTypeOf([Sorting.with(() => ({}))]).toMatchTypeOf();
54
+ expectTypeOf([Sorting.with(() => ({
55
+ onSort,
56
+ sorts
57
+ }))]).toMatchTypeOf();
58
+ //# sourceMappingURL=table-config.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-config.test.js","sources":["../../../src/-private/-type-tests/table-config.test.ts"],"sourcesContent":["import { expectTypeOf } from 'expect-type';\n\nimport { BasePlugin } from '../../plugins/-private/base';\nimport { ColumnReordering } from '../../plugins/column-reordering';\nimport { ColumnResizing } from '../../plugins/column-resizing';\nimport { ColumnVisibility } from '../../plugins/column-visibility';\nimport { DataSorting } from '../../plugins/data-sorting';\nimport { StickyColumns } from '../../plugins/sticky-columns';\n\nimport type { Plugins } from '../../plugins/-private/utils';\nimport type { SortItem } from '../../plugins/data-sorting';\nimport type { Plugin } from '[public-plugin-types]';\nimport type { TableConfig } from '[public-types]';\nimport type { Constructor } from '#private-types';\n\ntype TablePluginConfig = NonNullable<TableConfig<unknown>['plugins']>;\n\n/////////////////////////////////////////////\n// Sanity checks\nexpectTypeOf<Plugins>().toMatchTypeOf<TablePluginConfig>();\nexpectTypeOf<Constructor<Plugin>[]>().toMatchTypeOf<TablePluginConfig>();\nexpectTypeOf<[Constructor<Plugin>]>().toMatchTypeOf<TablePluginConfig>();\nexpectTypeOf<[Constructor<Plugin>, Constructor<Plugin>]>().toMatchTypeOf<TablePluginConfig>();\nexpectTypeOf<Constructor<BasePlugin>[]>().toMatchTypeOf<TablePluginConfig>();\nexpectTypeOf<[Constructor<BasePlugin>]>().toMatchTypeOf<TablePluginConfig>();\nexpectTypeOf<\n [Constructor<BasePlugin>, Constructor<BasePlugin>]\n>().toMatchTypeOf<TablePluginConfig>();\n\nclass SomeClass {\n foo = 'bar';\n}\nclass LocalPlugin extends BasePlugin<{ Meta: { Table: SomeClass } }> {\n name = 'local-plugin';\n}\n\nexpectTypeOf([LocalPlugin]).toMatchTypeOf<TablePluginConfig>();\n\n/////////////////////////////////////////////\n// Making sure all plugins are subclassed appropriately\nexpectTypeOf(LocalPlugin).toMatchTypeOf<Constructor<BasePlugin<any>>>();\nexpectTypeOf(ColumnReordering).toMatchTypeOf<Constructor<BasePlugin<any>>>();\nexpectTypeOf(LocalPlugin).toMatchTypeOf<Constructor<Plugin<any>>>();\nexpectTypeOf(ColumnReordering).toMatchTypeOf<Constructor<Plugin<any>>>();\n\n// Actual plugins match the actual table config\nexpectTypeOf([DataSorting]).toMatchTypeOf<TablePluginConfig>();\nexpectTypeOf([ColumnReordering]).toMatchTypeOf<TablePluginConfig>();\nexpectTypeOf([ColumnResizing]).toMatchTypeOf<TablePluginConfig>();\nexpectTypeOf([ColumnVisibility]).toMatchTypeOf<TablePluginConfig>();\nexpectTypeOf([StickyColumns]).toMatchTypeOf<TablePluginConfig>();\n\n/////////////////////////////////////////////\n// The various ways to define plugins\nexpectTypeOf([DataSorting, ColumnReordering]).toMatchTypeOf<TablePluginConfig>();\n\nconst onSort = (_sorts: SortItem<number>[]) => {\n /* intentionally empty */\n};\nconst sorts: SortItem<number>[] = [];\n\nexpectTypeOf([DataSorting.with(() => ({}))]).toMatchTypeOf<TablePluginConfig>();\nexpectTypeOf([DataSorting.with(() => ({ onSort, sorts }))]).toMatchTypeOf<TablePluginConfig>();\n"],"names":["expectTypeOf","toMatchTypeOf","LocalPlugin","BasePlugin","ColumnReordering","DataSorting","ColumnResizing","ColumnVisibility","StickyColumns","onSort","_sorts","sorts","with"],"mappings":";;;;;;;;;;;AAiBA;AACA;AACAA,YAAY,GAAYC,aAAxB,EAAA,CAAA;AACAD,YAAY,GAA0BC,aAAtC,EAAA,CAAA;AACAD,YAAY,GAA0BC,aAAtC,EAAA,CAAA;AACAD,YAAY,GAA+CC,aAA3D,EAAA,CAAA;AACAD,YAAY,GAA8BC,aAA1C,EAAA,CAAA;AACAD,YAAY,GAA8BC,aAA1C,EAAA,CAAA;AACAD,YAAY,GAERC,aAFJ,EAAA,CAAA;;AAOA,MAAMC,WAAN,SAA0BC,UAA1B,CAAqE;AAAA,EAAA,WAAA,CAAA,GAAA,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAA,IAAA,CAAA,CAAA;;AAAA,IAAA,eAAA,CAAA,IAAA,EAAA,MAAA,EAC5D,cAD4D,CAAA,CAAA;AAAA,GAAA;;AAAA,CAAA;;AAIrEH,YAAY,CAAC,CAACE,WAAD,CAAD,CAAZ,CAA4BD,aAA5B;AAGA;;AACAD,YAAY,CAACE,WAAD,CAAZ,CAA0BD,aAA1B,EAAA,CAAA;AACAD,YAAY,CAACI,gBAAD,CAAZ,CAA+BH,aAA/B,EAAA,CAAA;AACAD,YAAY,CAACE,WAAD,CAAZ,CAA0BD,aAA1B,EAAA,CAAA;AACAD,YAAY,CAACI,gBAAD,CAAZ,CAA+BH,aAA/B;;AAGAD,YAAY,CAAC,CAACK,OAAD,CAAD,CAAZ,CAA4BJ,aAA5B,EAAA,CAAA;AACAD,YAAY,CAAC,CAACI,gBAAD,CAAD,CAAZ,CAAiCH,aAAjC,EAAA,CAAA;AACAD,YAAY,CAAC,CAACM,cAAD,CAAD,CAAZ,CAA+BL,aAA/B,EAAA,CAAA;AACAD,YAAY,CAAC,CAACO,gBAAD,CAAD,CAAZ,CAAiCN,aAAjC,EAAA,CAAA;AACAD,YAAY,CAAC,CAACQ,aAAD,CAAD,CAAZ,CAA8BP,aAA9B;AAGA;;AACAD,YAAY,CAAC,CAACK,OAAD,EAAcD,gBAAd,CAAD,CAAZ,CAA8CH,aAA9C,EAAA,CAAA;;AAEA,MAAMQ,MAAM,GAAIC,MAAD,IAAgC;AAC7C;AACD,CAFD,CAAA;;AAGA,MAAMC,KAAyB,GAAG,EAAlC,CAAA;AAEAX,YAAY,CAAC,CAACK,OAAW,CAACO,IAAZ,CAAiB,OAAO,EAAP,CAAjB,CAAD,CAAD,CAAZ,CAA6CX,aAA7C,EAAA,CAAA;AACAD,YAAY,CAAC,CAACK,OAAW,CAACO,IAAZ,CAAiB,OAAO;EAAEH,MAAF;AAAUE,EAAAA,KAAAA;AAAV,CAAP,CAAjB,CAAD,CAAD,CAAZ,CAA4DV,aAA5D,EAAA"}
@@ -0,0 +1,18 @@
1
+ import { Row } from "./row";
2
+ import { Table } from "../table-8e46554b";
3
+ import { ContentValue } from '@glint/template';
4
+ import { ColumnConfig } from "./interfaces/index";
5
+ declare class Column<T = unknown> {
6
+ table: Table<T>;
7
+ config: ColumnConfig<T>;
8
+ get Cell(): import("@glint/template").ComponentLike<unknown> | undefined;
9
+ get key(): string;
10
+ get name(): string | undefined;
11
+ constructor(table: Table<T>, config: ColumnConfig<T>);
12
+ getValueForRow(row: Row<T>): ContentValue;
13
+ private getDefaultValue;
14
+ getOptionsForRow(row: Row<T>): {
15
+ defaultValue: string;
16
+ };
17
+ }
18
+ export { Column };
@@ -0,0 +1,70 @@
1
+ import { _ as _applyDecoratedDescriptor } from '../applyDecoratedDescriptor-e0489e2f.js';
2
+ import { action, get } from '@ember/object';
3
+ import { isEmpty } from '@ember/utils';
4
+
5
+ var _class;
6
+ const DEFAULT_VALUE = '--';
7
+ const DEFAULT_VALUE_KEY = 'defaultValue';
8
+ const DEFAULT_OPTIONS = {
9
+ [DEFAULT_VALUE_KEY]: DEFAULT_VALUE
10
+ };
11
+ let Column = (_class = class Column {
12
+ get Cell() {
13
+ return this.config.Cell;
14
+ }
15
+
16
+ get key() {
17
+ return this.config.key;
18
+ }
19
+
20
+ get name() {
21
+ return this.config.name;
22
+ }
23
+
24
+ constructor(table, config) {
25
+ this.table = table;
26
+ this.config = config;
27
+ }
28
+
29
+ getValueForRow(row) {
30
+ if (this.config.value) {
31
+ return this.config.value({
32
+ column: this,
33
+ row
34
+ });
35
+ } // Cast here, because ember get's types do not support nested keys
36
+ // even though the real implementation does
37
+
38
+
39
+ let value = get(row.data, this.config.key);
40
+
41
+ if (isEmpty(value)) {
42
+ return this.getDefaultValue(row);
43
+ }
44
+ /**
45
+ * UNSAFE: casting to ContentValue is incorrect, because we have not
46
+ * properly constrained the type of value, (isEmpty doesn't narrow types either)
47
+ */
48
+
49
+
50
+ return value;
51
+ }
52
+
53
+ getDefaultValue(row) {
54
+ return this.getOptionsForRow(row)[DEFAULT_VALUE_KEY];
55
+ }
56
+
57
+ getOptionsForRow(row) {
58
+ let defaults = DEFAULT_OPTIONS;
59
+ return { ...defaults,
60
+ ...this.config.options?.({
61
+ column: this,
62
+ row
63
+ })
64
+ };
65
+ }
66
+
67
+ }, (_applyDecoratedDescriptor(_class.prototype, "getValueForRow", [action], Object.getOwnPropertyDescriptor(_class.prototype, "getValueForRow"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "getOptionsForRow", [action], Object.getOwnPropertyDescriptor(_class.prototype, "getOptionsForRow"), _class.prototype)), _class);
68
+
69
+ export { Column };
70
+ //# sourceMappingURL=column.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column.js","sources":["../../src/-private/column.ts"],"sourcesContent":["import { action, get } from '@ember/object';\nimport { isEmpty } from '@ember/utils';\n\nimport type { Row } from './row';\nimport type { Table } from './table';\nimport type { ContentValue } from '@glint/template';\nimport type { ColumnConfig } from '#interfaces';\n\nconst DEFAULT_VALUE = '--';\nconst DEFAULT_VALUE_KEY = 'defaultValue';\nconst DEFAULT_OPTIONS = {\n [DEFAULT_VALUE_KEY]: DEFAULT_VALUE,\n};\n\nexport class Column<T = unknown> {\n get Cell() {\n return this.config.Cell;\n }\n\n get key() {\n return this.config.key;\n }\n\n get name() {\n return this.config.name;\n }\n\n constructor(public table: Table<T>, public config: ColumnConfig<T>) {}\n\n @action\n getValueForRow(row: Row<T>): ContentValue {\n if (this.config.value) {\n return this.config.value({ column: this, row });\n }\n\n // Cast here, because ember get's types do not support nested keys\n // even though the real implementation does\n let value = get(row.data, this.config.key as keyof typeof row.data);\n\n if (isEmpty(value)) {\n return this.getDefaultValue(row);\n }\n\n /**\n * UNSAFE: casting to ContentValue is incorrect, because we have not\n * properly constrained the type of value, (isEmpty doesn't narrow types either)\n */\n return value as ContentValue;\n }\n\n private getDefaultValue(row: Row<T>) {\n return this.getOptionsForRow(row)[DEFAULT_VALUE_KEY];\n }\n\n @action\n getOptionsForRow(row: Row<T>) {\n let defaults = DEFAULT_OPTIONS;\n\n return {\n ...defaults,\n ...this.config.options?.({ column: this, row }),\n };\n }\n}\n"],"names":["DEFAULT_VALUE","DEFAULT_VALUE_KEY","DEFAULT_OPTIONS","Column","Cell","config","key","name","constructor","table","getValueForRow","row","value","column","get","data","isEmpty","getDefaultValue","getOptionsForRow","defaults","options","action"],"mappings":";;;;;AAQA,MAAMA,aAAa,GAAG,IAAtB,CAAA;AACA,MAAMC,iBAAiB,GAAG,cAA1B,CAAA;AACA,MAAMC,eAAe,GAAG;AACtB,EAAA,CAACD,iBAAD,GAAqBD,aAAAA;AADC,CAAxB,CAAA;AAIA,IAAaG,MAAb,IAAA,MAAA,GAAO,MAAMA,MAAN,CAA0B;AACvB,EAAA,IAAJC,IAAI,GAAG;IACT,OAAO,IAAA,CAAKC,MAAL,CAAYD,IAAnB,CAAA;AACD,GAAA;;AAEM,EAAA,IAAHE,GAAG,GAAG;IACR,OAAO,IAAA,CAAKD,MAAL,CAAYC,GAAnB,CAAA;AACD,GAAA;;AAEO,EAAA,IAAJC,IAAI,GAAG;IACT,OAAO,IAAA,CAAKF,MAAL,CAAYE,IAAnB,CAAA;AACD,GAAA;;AAEDC,EAAAA,WAAW,CAAQC,KAAR,EAAgCJ,MAAhC,EAAyD;IAAA,IAAjDI,CAAAA,KAAiD,GAAjDA,KAAiD,CAAA;IAAA,IAAzBJ,CAAAA,MAAyB,GAAzBA,MAAyB,CAAA;AAAE,GAAA;;EAGtEK,cAAc,CAACC,GAAD,EAA4B;AACxC,IAAA,IAAI,IAAKN,CAAAA,MAAL,CAAYO,KAAhB,EAAuB;AACrB,MAAA,OAAO,IAAKP,CAAAA,MAAL,CAAYO,KAAZ,CAAkB;AAAEC,QAAAA,MAAM,EAAE,IAAV;AAAgBF,QAAAA,GAAAA;AAAhB,OAAlB,CAAP,CAAA;AACD,KAHuC;AAMxC;;;AACA,IAAA,IAAIC,KAAK,GAAGE,GAAG,CAACH,GAAG,CAACI,IAAL,EAAW,IAAKV,CAAAA,MAAL,CAAYC,GAAvB,CAAf,CAAA;;AAEA,IAAA,IAAIU,OAAO,CAACJ,KAAD,CAAX,EAAoB;AAClB,MAAA,OAAO,IAAKK,CAAAA,eAAL,CAAqBN,GAArB,CAAP,CAAA;AACD,KAAA;AAED;AACJ;AACA;AACA;;;AACI,IAAA,OAAOC,KAAP,CAAA;AACD,GAAA;;EAEOK,eAAe,CAACN,GAAD,EAAc;AACnC,IAAA,OAAO,KAAKO,gBAAL,CAAsBP,GAAtB,CAAA,CAA2BV,iBAA3B,CAAP,CAAA;AACD,GAAA;;EAGDiB,gBAAgB,CAACP,GAAD,EAAc;IAC5B,IAAIQ,QAAQ,GAAGjB,eAAf,CAAA;IAEA,OAAO,EACL,GAAGiB,QADE;AAEL,MAAA,GAAG,IAAKd,CAAAA,MAAL,CAAYe,OAAZ,GAAsB;AAAEP,QAAAA,MAAM,EAAE,IAAV;AAAgBF,QAAAA,GAAAA;OAAtC,CAAA;KAFL,CAAA;AAID,GAAA;;AAhD8B,CAAjC,GAAA,yBAAA,CAAA,MAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,CAeGU,MAfH,CAAA,EAAA,MAAA,CAAA,wBAAA,CAAA,MAAA,CAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,MAAA,CAAA,SAAA,CAAA,EAAA,yBAAA,CAAA,MAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,CAwCGA,MAxCH,CAAA,EAAA,MAAA,CAAA,wBAAA,CAAA,MAAA,CAAA,SAAA,EAAA,kBAAA,CAAA,EAAA,MAAA,CAAA,SAAA,CAAA,GAAA,MAAA;;;;"}
@@ -0,0 +1,57 @@
1
+ import { BasePlugin, Plugin } from "../../plugins/index";
2
+ import { Column } from "../column";
3
+ import { Row } from "../row";
4
+ import { ColumnOptionsFor, SignatureFrom } from "./plugins";
5
+ import { Constructor } from "../private-types";
6
+ import { ComponentLike, ContentValue } from '@glint/template';
7
+ interface CellContext<T> {
8
+ column: Column<T>;
9
+ row: Row<T>;
10
+ }
11
+ type ColumnPluginOption<P = Plugin> = P extends BasePlugin ? [Constructor<P>, () => ColumnOptionsFor<SignatureFrom<P>>] : [P | Constructor<P>, () => unknown];
12
+ type CellOptions = Record<string, unknown>;
13
+ interface ColumnConfig<T = unknown> {
14
+ /**
15
+ * the `key` is required for preferences storage, as well as
16
+ * managing uniqueness of the columns in an easy-to-understand way.
17
+ *
18
+ * key may be anything if a `value` is provided, but _should_
19
+ * be a property-path on each data object passed to the table.
20
+ *
21
+ * @example `someObj.property.path`
22
+ * @example `someProperty`
23
+ */
24
+ key: string;
25
+ /**
26
+ * Optionally provide a function to determine the value of a row at this column
27
+ */
28
+ value?: (context: CellContext<T>) => ContentValue;
29
+ /**
30
+ * Recommended property to use for custom components for each cell per column.
31
+ * Out-of-the-box, this property isn't used, but the provided type may be
32
+ * a convenience for consumers of the headless table
33
+ */
34
+ Cell?: ComponentLike;
35
+ /**
36
+ * The name or title of the column, shown in the column heading / th
37
+ */
38
+ name?: string;
39
+ /**
40
+ * Bag of extra properties to pass to Cell via `@options`, if desired
41
+ */
42
+ options?: (context: CellContext<T>) => CellOptions;
43
+ /**
44
+ * Each plugin may provide column options, and provides similar syntax to how
45
+ * options for the table are specified in the plugins entry,
46
+ *
47
+ * ```js
48
+ * pluginOptions: [
49
+ * ColumnVisibility.forColumn(() => ({ isVisible: false })),
50
+ * StickyColumns.forColumn(() => ({ sticky: 'right' })),
51
+ * ],
52
+ * ```
53
+ */
54
+ pluginOptions?: ColumnPluginOption[];
55
+ }
56
+ type ColumnKey<T> = NonNullable<ColumnConfig<T>['key']>;
57
+ export { CellContext, CellOptions, ColumnConfig, ColumnKey };
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=column.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export * from "./column";
2
+ export * from "./modifier";
3
+ export * from "./pagination";
4
+ export * from "./plugins";
5
+ export * from "./preferences";
6
+ export * from "./selection";
7
+ export * from "./table";
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ interface Destructor {
2
+ (): void;
3
+ }
4
+ interface FunctionModifier<Args extends unknown[]> {
5
+ (element: HTMLElement, ...args: Args): void | Destructor;
6
+ }
7
+ export { Destructor, FunctionModifier };
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=modifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modifier.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ interface Pagination {
2
+ formatItemSummary?: (data: {
3
+ end: number;
4
+ start: number;
5
+ totalItems: number;
6
+ }) => string;
7
+ onChange: (value: {
8
+ page: number;
9
+ pageSize: number;
10
+ }) => Promise<void> | void;
11
+ page: number;
12
+ pageSize: number;
13
+ pageSizeLabel?: string;
14
+ pageSizes?: number[];
15
+ totalItems: number;
16
+ }
17
+ export { Pagination };
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}