@universal-ember/table 3.6.0 → 3.6.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 (224) hide show
  1. package/package.json +1 -1
  2. package/src/plugins/column-reordering/plugin.ts +4 -6
  3. package/declarations/-private/-type-tests/plugin-properties.test.d.ts +0 -2
  4. package/declarations/-private/-type-tests/plugin-properties.test.d.ts.map +0 -1
  5. package/declarations/-private/-type-tests/plugin-with.test.d.ts +0 -2
  6. package/declarations/-private/-type-tests/plugin-with.test.d.ts.map +0 -1
  7. package/declarations/-private/-type-tests/plugins-accessors.test.d.ts +0 -2
  8. package/declarations/-private/-type-tests/plugins-accessors.test.d.ts.map +0 -1
  9. package/declarations/-private/-type-tests/plugins-signature-from.test.d.ts +0 -2
  10. package/declarations/-private/-type-tests/plugins-signature-from.test.d.ts.map +0 -1
  11. package/declarations/-private/-type-tests/plugins-signature-utils.test.d.ts +0 -2
  12. package/declarations/-private/-type-tests/plugins-signature-utils.test.d.ts.map +0 -1
  13. package/declarations/-private/-type-tests/table-api.test.d.ts +0 -2
  14. package/declarations/-private/-type-tests/table-api.test.d.ts.map +0 -1
  15. package/declarations/-private/-type-tests/table-config.test.d.ts +0 -2
  16. package/declarations/-private/-type-tests/table-config.test.d.ts.map +0 -1
  17. package/declarations/-private/column.d.ts +0 -18
  18. package/declarations/-private/column.d.ts.map +0 -1
  19. package/declarations/-private/ember-compat.d.ts +0 -8
  20. package/declarations/-private/ember-compat.d.ts.map +0 -1
  21. package/declarations/-private/interfaces/column.d.ts +0 -63
  22. package/declarations/-private/interfaces/column.d.ts.map +0 -1
  23. package/declarations/-private/interfaces/index.d.ts +0 -8
  24. package/declarations/-private/interfaces/index.d.ts.map +0 -1
  25. package/declarations/-private/interfaces/modifier.d.ts +0 -7
  26. package/declarations/-private/interfaces/modifier.d.ts.map +0 -1
  27. package/declarations/-private/interfaces/pagination.d.ts +0 -17
  28. package/declarations/-private/interfaces/pagination.d.ts.map +0 -1
  29. package/declarations/-private/interfaces/plugins.d.ts +0 -315
  30. package/declarations/-private/interfaces/plugins.d.ts.map +0 -1
  31. package/declarations/-private/interfaces/preferences.d.ts +0 -74
  32. package/declarations/-private/interfaces/preferences.d.ts.map +0 -1
  33. package/declarations/-private/interfaces/selection.d.ts +0 -36
  34. package/declarations/-private/interfaces/selection.d.ts.map +0 -1
  35. package/declarations/-private/interfaces/table.d.ts +0 -127
  36. package/declarations/-private/interfaces/table.d.ts.map +0 -1
  37. package/declarations/-private/js-helper.d.ts +0 -39
  38. package/declarations/-private/js-helper.d.ts.map +0 -1
  39. package/declarations/-private/preferences.d.ts +0 -47
  40. package/declarations/-private/preferences.d.ts.map +0 -1
  41. package/declarations/-private/private-types.d.ts +0 -6
  42. package/declarations/-private/private-types.d.ts.map +0 -1
  43. package/declarations/-private/row.d.ts +0 -12
  44. package/declarations/-private/row.d.ts.map +0 -1
  45. package/declarations/-private/table.d.ts +0 -136
  46. package/declarations/-private/table.d.ts.map +0 -1
  47. package/declarations/-private/utils.d.ts +0 -3
  48. package/declarations/-private/utils.d.ts.map +0 -1
  49. package/declarations/index.d.ts +0 -14
  50. package/declarations/index.d.ts.map +0 -1
  51. package/declarations/plugins/-private/base.d.ts +0 -281
  52. package/declarations/plugins/-private/base.d.ts.map +0 -1
  53. package/declarations/plugins/-private/utils.d.ts +0 -22
  54. package/declarations/plugins/-private/utils.d.ts.map +0 -1
  55. package/declarations/plugins/column-reordering/helpers.d.ts +0 -54
  56. package/declarations/plugins/column-reordering/helpers.d.ts.map +0 -1
  57. package/declarations/plugins/column-reordering/index.d.ts +0 -5
  58. package/declarations/plugins/column-reordering/index.d.ts.map +0 -1
  59. package/declarations/plugins/column-reordering/plugin.d.ts +0 -196
  60. package/declarations/plugins/column-reordering/plugin.d.ts.map +0 -1
  61. package/declarations/plugins/column-reordering/utils.d.ts +0 -8
  62. package/declarations/plugins/column-reordering/utils.d.ts.map +0 -1
  63. package/declarations/plugins/column-resizing/handle.d.ts +0 -128
  64. package/declarations/plugins/column-resizing/handle.d.ts.map +0 -1
  65. package/declarations/plugins/column-resizing/helpers.d.ts +0 -40
  66. package/declarations/plugins/column-resizing/helpers.d.ts.map +0 -1
  67. package/declarations/plugins/column-resizing/index.d.ts +0 -6
  68. package/declarations/plugins/column-resizing/index.d.ts.map +0 -1
  69. package/declarations/plugins/column-resizing/plugin.d.ts +0 -172
  70. package/declarations/plugins/column-resizing/plugin.d.ts.map +0 -1
  71. package/declarations/plugins/column-resizing/resize-observer.d.ts +0 -14
  72. package/declarations/plugins/column-resizing/resize-observer.d.ts.map +0 -1
  73. package/declarations/plugins/column-resizing/utils.d.ts +0 -22
  74. package/declarations/plugins/column-resizing/utils.d.ts.map +0 -1
  75. package/declarations/plugins/column-visibility/helpers.d.ts +0 -18
  76. package/declarations/plugins/column-visibility/helpers.d.ts.map +0 -1
  77. package/declarations/plugins/column-visibility/index.d.ts +0 -5
  78. package/declarations/plugins/column-visibility/index.d.ts.map +0 -1
  79. package/declarations/plugins/column-visibility/plugin.d.ts +0 -64
  80. package/declarations/plugins/column-visibility/plugin.d.ts.map +0 -1
  81. package/declarations/plugins/data-sorting/helpers.d.ts +0 -38
  82. package/declarations/plugins/data-sorting/helpers.d.ts.map +0 -1
  83. package/declarations/plugins/data-sorting/index.d.ts +0 -7
  84. package/declarations/plugins/data-sorting/index.d.ts.map +0 -1
  85. package/declarations/plugins/data-sorting/plugin.d.ts +0 -102
  86. package/declarations/plugins/data-sorting/plugin.d.ts.map +0 -1
  87. package/declarations/plugins/data-sorting/types.d.ts +0 -23
  88. package/declarations/plugins/data-sorting/types.d.ts.map +0 -1
  89. package/declarations/plugins/index.d.ts +0 -6
  90. package/declarations/plugins/index.d.ts.map +0 -1
  91. package/declarations/plugins/metadata/helpers.d.ts +0 -4
  92. package/declarations/plugins/metadata/helpers.d.ts.map +0 -1
  93. package/declarations/plugins/metadata/index.d.ts +0 -5
  94. package/declarations/plugins/metadata/index.d.ts.map +0 -1
  95. package/declarations/plugins/metadata/plugin.d.ts +0 -25
  96. package/declarations/plugins/metadata/plugin.d.ts.map +0 -1
  97. package/declarations/plugins/row-selection/helpers.d.ts +0 -6
  98. package/declarations/plugins/row-selection/helpers.d.ts.map +0 -1
  99. package/declarations/plugins/row-selection/index.d.ts +0 -5
  100. package/declarations/plugins/row-selection/index.d.ts.map +0 -1
  101. package/declarations/plugins/row-selection/plugin.d.ts +0 -80
  102. package/declarations/plugins/row-selection/plugin.d.ts.map +0 -1
  103. package/declarations/plugins/sticky-columns/helpers.d.ts +0 -17
  104. package/declarations/plugins/sticky-columns/helpers.d.ts.map +0 -1
  105. package/declarations/plugins/sticky-columns/index.d.ts +0 -5
  106. package/declarations/plugins/sticky-columns/index.d.ts.map +0 -1
  107. package/declarations/plugins/sticky-columns/plugin.d.ts +0 -70
  108. package/declarations/plugins/sticky-columns/plugin.d.ts.map +0 -1
  109. package/declarations/test-support/index.d.ts +0 -15
  110. package/declarations/test-support/index.d.ts.map +0 -1
  111. package/declarations/utils.d.ts +0 -26
  112. package/declarations/utils.d.ts.map +0 -1
  113. package/dist/-private/-type-tests/plugin-properties.test.js +0 -27
  114. package/dist/-private/-type-tests/plugin-properties.test.js.map +0 -1
  115. package/dist/-private/-type-tests/plugin-with.test.js +0 -20
  116. package/dist/-private/-type-tests/plugin-with.test.js.map +0 -1
  117. package/dist/-private/-type-tests/plugins-accessors.test.js +0 -36
  118. package/dist/-private/-type-tests/plugins-accessors.test.js.map +0 -1
  119. package/dist/-private/-type-tests/plugins-signature-from.test.js +0 -15
  120. package/dist/-private/-type-tests/plugins-signature-from.test.js.map +0 -1
  121. package/dist/-private/-type-tests/plugins-signature-utils.test.js +0 -36
  122. package/dist/-private/-type-tests/plugins-signature-utils.test.js.map +0 -1
  123. package/dist/-private/-type-tests/table-api.test.js +0 -17
  124. package/dist/-private/-type-tests/table-api.test.js.map +0 -1
  125. package/dist/-private/-type-tests/table-config.test.js +0 -55
  126. package/dist/-private/-type-tests/table-config.test.js.map +0 -1
  127. package/dist/-private/column.js +0 -62
  128. package/dist/-private/column.js.map +0 -1
  129. package/dist/-private/ember-compat.js +0 -17
  130. package/dist/-private/ember-compat.js.map +0 -1
  131. package/dist/-private/interfaces/column.js +0 -2
  132. package/dist/-private/interfaces/column.js.map +0 -1
  133. package/dist/-private/interfaces/index.js +0 -2
  134. package/dist/-private/interfaces/index.js.map +0 -1
  135. package/dist/-private/interfaces/modifier.js +0 -2
  136. package/dist/-private/interfaces/modifier.js.map +0 -1
  137. package/dist/-private/interfaces/pagination.js +0 -2
  138. package/dist/-private/interfaces/pagination.js.map +0 -1
  139. package/dist/-private/interfaces/plugins.js +0 -2
  140. package/dist/-private/interfaces/plugins.js.map +0 -1
  141. package/dist/-private/interfaces/preferences.js +0 -2
  142. package/dist/-private/interfaces/preferences.js.map +0 -1
  143. package/dist/-private/interfaces/selection.js +0 -2
  144. package/dist/-private/interfaces/selection.js.map +0 -1
  145. package/dist/-private/interfaces/table.js +0 -2
  146. package/dist/-private/interfaces/table.js.map +0 -1
  147. package/dist/-private/js-helper.js +0 -55
  148. package/dist/-private/js-helper.js.map +0 -1
  149. package/dist/-private/preferences.js +0 -149
  150. package/dist/-private/preferences.js.map +0 -1
  151. package/dist/-private/private-types.js +0 -2
  152. package/dist/-private/private-types.js.map +0 -1
  153. package/dist/-private/row.js +0 -51
  154. package/dist/-private/row.js.map +0 -1
  155. package/dist/-private/table.js +0 -276
  156. package/dist/-private/table.js.map +0 -1
  157. package/dist/-private/utils.js +0 -15
  158. package/dist/-private/utils.js.map +0 -1
  159. package/dist/_rollupPluginBabelHelpers-CjaRjJZX.js +0 -63
  160. package/dist/_rollupPluginBabelHelpers-CjaRjJZX.js.map +0 -1
  161. package/dist/index.js +0 -4
  162. package/dist/index.js.map +0 -1
  163. package/dist/plugins/-private/base.js +0 -532
  164. package/dist/plugins/-private/base.js.map +0 -1
  165. package/dist/plugins/-private/utils.js +0 -103
  166. package/dist/plugins/-private/utils.js.map +0 -1
  167. package/dist/plugins/column-reordering/helpers.js +0 -81
  168. package/dist/plugins/column-reordering/helpers.js.map +0 -1
  169. package/dist/plugins/column-reordering/index.js +0 -3
  170. package/dist/plugins/column-reordering/index.js.map +0 -1
  171. package/dist/plugins/column-reordering/plugin.js +0 -453
  172. package/dist/plugins/column-reordering/plugin.js.map +0 -1
  173. package/dist/plugins/column-reordering/utils.js +0 -34
  174. package/dist/plugins/column-reordering/utils.js.map +0 -1
  175. package/dist/plugins/column-resizing/handle.js +0 -243
  176. package/dist/plugins/column-resizing/handle.js.map +0 -1
  177. package/dist/plugins/column-resizing/helpers.js +0 -77
  178. package/dist/plugins/column-resizing/helpers.js.map +0 -1
  179. package/dist/plugins/column-resizing/index.js +0 -4
  180. package/dist/plugins/column-resizing/index.js.map +0 -1
  181. package/dist/plugins/column-resizing/plugin.js +0 -365
  182. package/dist/plugins/column-resizing/plugin.js.map +0 -1
  183. package/dist/plugins/column-resizing/resize-observer.js +0 -44
  184. package/dist/plugins/column-resizing/resize-observer.js.map +0 -1
  185. package/dist/plugins/column-resizing/utils.js +0 -44
  186. package/dist/plugins/column-resizing/utils.js.map +0 -1
  187. package/dist/plugins/column-visibility/helpers.js +0 -25
  188. package/dist/plugins/column-visibility/helpers.js.map +0 -1
  189. package/dist/plugins/column-visibility/index.js +0 -3
  190. package/dist/plugins/column-visibility/index.js.map +0 -1
  191. package/dist/plugins/column-visibility/plugin.js +0 -92
  192. package/dist/plugins/column-visibility/plugin.js.map +0 -1
  193. package/dist/plugins/data-sorting/helpers.js +0 -49
  194. package/dist/plugins/data-sorting/helpers.js.map +0 -1
  195. package/dist/plugins/data-sorting/index.js +0 -4
  196. package/dist/plugins/data-sorting/index.js.map +0 -1
  197. package/dist/plugins/data-sorting/plugin.js +0 -132
  198. package/dist/plugins/data-sorting/plugin.js.map +0 -1
  199. package/dist/plugins/data-sorting/types.js +0 -14
  200. package/dist/plugins/data-sorting/types.js.map +0 -1
  201. package/dist/plugins/index.js +0 -3
  202. package/dist/plugins/index.js.map +0 -1
  203. package/dist/plugins/metadata/helpers.js +0 -12
  204. package/dist/plugins/metadata/helpers.js.map +0 -1
  205. package/dist/plugins/metadata/index.js +0 -3
  206. package/dist/plugins/metadata/index.js.map +0 -1
  207. package/dist/plugins/metadata/plugin.js +0 -25
  208. package/dist/plugins/metadata/plugin.js.map +0 -1
  209. package/dist/plugins/row-selection/helpers.js +0 -10
  210. package/dist/plugins/row-selection/helpers.js.map +0 -1
  211. package/dist/plugins/row-selection/index.js +0 -3
  212. package/dist/plugins/row-selection/index.js.map +0 -1
  213. package/dist/plugins/row-selection/plugin.js +0 -118
  214. package/dist/plugins/row-selection/plugin.js.map +0 -1
  215. package/dist/plugins/sticky-columns/helpers.js +0 -49
  216. package/dist/plugins/sticky-columns/helpers.js.map +0 -1
  217. package/dist/plugins/sticky-columns/index.js +0 -3
  218. package/dist/plugins/sticky-columns/index.js.map +0 -1
  219. package/dist/plugins/sticky-columns/plugin.js +0 -139
  220. package/dist/plugins/sticky-columns/plugin.js.map +0 -1
  221. package/dist/test-support/index.js +0 -62
  222. package/dist/test-support/index.js.map +0 -1
  223. package/dist/utils.js +0 -77
  224. package/dist/utils.js.map +0 -1
@@ -1,49 +0,0 @@
1
- import { htmlSafe } from '@ember/template';
2
- import { meta } from '../-private/base.js';
3
- import { StickyColumns } from './plugin.js';
4
-
5
- const isSticky = column => meta.forColumn(column, StickyColumns).isSticky;
6
- const styleFor = column => meta.forColumn(column, StickyColumns).style;
7
-
8
- /**
9
- * In this plugin, both header and cells have the same styles,
10
- * if applicable.
11
- *
12
- * Until this RFC https://github.com/emberjs/rfcs/pull/883
13
- * is merged and implemented, we can't performantly
14
- * use modifiers for apply styles.
15
- *
16
- * In the mean time, we'll need to append style strings, which is more work
17
- * for consumers, but is a reasonable trade-off for now.
18
- */
19
- const styleStringFor = column => {
20
- const columnMeta = meta.forColumn(column, StickyColumns);
21
- let result = '';
22
- if (columnMeta.isSticky) {
23
- for (const [key, value] of Object.entries(columnMeta.style)) {
24
- result += `${toStyle(key)}:${value};`;
25
- }
26
- result = ';' + result;
27
- }
28
- return htmlSafe(result);
29
- };
30
-
31
- /**
32
- * the JS API for styles is camel case,
33
- * but CSS is kebab-case. To save on complexity and
34
- * amount of code, we have a super small conversion function
35
- * for only the properties relevant to the sticky plugin.
36
- */
37
- const toStyle = key => {
38
- switch (key) {
39
- case 'zIndex':
40
- return 'z-index';
41
- case 'minWidth':
42
- return 'min-width';
43
- default:
44
- return key;
45
- }
46
- };
47
-
48
- export { isSticky, styleFor, styleStringFor };
49
- //# sourceMappingURL=helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../src/plugins/sticky-columns/helpers.ts"],"sourcesContent":["import { htmlSafe } from '@ember/template';\n\nimport { meta } from '../-private/base.ts';\nimport { StickyColumns } from './plugin.ts';\n\nimport type { Column } from '../../index.ts';\n\nexport const isSticky = <DataType = unknown>(column: Column<DataType>) =>\n meta.forColumn(column, StickyColumns).isSticky;\n\nexport const styleFor = <DataType = unknown>(\n column: Column<DataType>,\n): Partial<CSSStyleDeclaration> => meta.forColumn(column, StickyColumns).style;\n\n/**\n * In this plugin, both header and cells have the same styles,\n * if applicable.\n *\n * Until this RFC https://github.com/emberjs/rfcs/pull/883\n * is merged and implemented, we can't performantly\n * use modifiers for apply styles.\n *\n * In the mean time, we'll need to append style strings, which is more work\n * for consumers, but is a reasonable trade-off for now.\n */\nexport const styleStringFor = <DataType = unknown>(\n column: Column<DataType>,\n): ReturnType<typeof htmlSafe> => {\n const columnMeta = meta.forColumn(column, StickyColumns);\n\n let result = '';\n\n if (columnMeta.isSticky) {\n for (const [key, value] of Object.entries(columnMeta.style)) {\n result += `${toStyle(key)}:${value};`;\n }\n\n result = ';' + result;\n }\n\n return htmlSafe(result);\n};\n\n/**\n * the JS API for styles is camel case,\n * but CSS is kebab-case. To save on complexity and\n * amount of code, we have a super small conversion function\n * for only the properties relevant to the sticky plugin.\n */\nconst toStyle = (key: string): string => {\n switch (key) {\n case 'zIndex':\n return 'z-index';\n case 'minWidth':\n return 'min-width';\n default:\n return key;\n }\n};\n"],"names":["isSticky","column","meta","forColumn","StickyColumns","styleFor","style","styleStringFor","columnMeta","result","key","value","Object","entries","toStyle","htmlSafe"],"mappings":";;;;AAOaA,MAAAA,QAAQ,GAAwBC,MAAwB,IACnEC,IAAI,CAACC,SAAS,CAACF,MAAM,EAAEG,aAAa,CAAC,CAACJ;AAE3BK,MAAAA,QAAQ,GACnBJ,MAAwB,IACSC,IAAI,CAACC,SAAS,CAACF,MAAM,EAAEG,aAAa,CAAC,CAACE;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACaC,MAAAA,cAAc,GACzBN,MAAwB,IACQ;EAChC,MAAMO,UAAU,GAAGN,IAAI,CAACC,SAAS,CAACF,MAAM,EAAEG,aAAa,CAAC;EAExD,IAAIK,MAAM,GAAG,EAAE;EAEf,IAAID,UAAU,CAACR,QAAQ,EAAE;AACvB,IAAA,KAAK,MAAM,CAACU,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,UAAU,CAACF,KAAK,CAAC,EAAE;MAC3DG,MAAM,IAAI,GAAGK,OAAO,CAACJ,GAAG,CAAC,CAAA,CAAA,EAAIC,KAAK,CAAG,CAAA,CAAA;AACvC;IAEAF,MAAM,GAAG,GAAG,GAAGA,MAAM;AACvB;EAEA,OAAOM,QAAQ,CAACN,MAAM,CAAC;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMK,OAAO,GAAIJ,GAAW,IAAa;AACvC,EAAA,QAAQA,GAAG;AACT,IAAA,KAAK,QAAQ;AACX,MAAA,OAAO,SAAS;AAClB,IAAA,KAAK,UAAU;AACb,MAAA,OAAO,WAAW;AACpB,IAAA;AACE,MAAA,OAAOA,GAAG;AACd;AACF,CAAC;;;;"}
@@ -1,3 +0,0 @@
1
- export { isSticky, styleFor, styleStringFor } from './helpers.js';
2
- export { StickyColumns as Plugin, StickyColumns } from './plugin.js';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,139 +0,0 @@
1
- import { _ as _defineProperty, a as _applyDecoratedDescriptor } from '../../_rollupPluginBabelHelpers-CjaRjJZX.js';
2
- import { cached } from '@glimmer/tracking';
3
- import { assert } from '@ember/debug';
4
- import { BasePlugin, options, meta, columns } from '../-private/base.js';
5
- import { applyStyles } from '../-private/utils.js';
6
-
7
- var _class;
8
- const DEFAULT_Z_INDEX = '8';
9
- class StickyColumns extends BasePlugin {
10
- constructor(...args) {
11
- super(...args);
12
- _defineProperty(this, "name", 'sticky-columns');
13
- _defineProperty(this, "meta", {
14
- table: TableMeta,
15
- column: ColumnMeta
16
- });
17
- _defineProperty(this, "conditionallyRemoveStyles", element => {
18
- if (element.style.getPropertyValue('position') === 'sticky') {
19
- element.style.removeProperty('position');
20
- }
21
- if (element.style.getPropertyValue('left')) {
22
- element.style.left = '';
23
- }
24
- if (element.style.getPropertyValue('right')) {
25
- element.style.right = '';
26
- }
27
- if (element.style.zIndex === DEFAULT_Z_INDEX) {
28
- element.style.zIndex = '';
29
- }
30
- });
31
- _defineProperty(this, "headerCellModifier", (element, {
32
- column,
33
- table
34
- }) => {
35
- if (options.forTable(table, StickyColumns).workaroundForModifierTimingUpdateRFC883) {
36
- return;
37
- }
38
- const columnMeta = meta.forColumn(column, StickyColumns);
39
- if (columnMeta.isSticky) {
40
- applyStyles(element, columnMeta.style);
41
- } else {
42
- this.conditionallyRemoveStyles(element);
43
- }
44
- });
45
- /**
46
- * Not yet supported. Pending Ember RFC #883
47
- *
48
- * TODO: switch ColumnApi to "RowApi", add the row's data
49
- */
50
- _defineProperty(this, "cellModifier", (element, {
51
- column,
52
- table
53
- }) => {
54
- if (options.forTable(table, StickyColumns).workaroundForModifierTimingUpdateRFC883) {
55
- return;
56
- }
57
- const columnMeta = meta.forColumn(column, StickyColumns);
58
- if (columnMeta.isSticky) {
59
- applyStyles(element, columnMeta.style);
60
- } else {
61
- this.conditionallyRemoveStyles(element);
62
- }
63
- });
64
- }
65
- }
66
-
67
- /**
68
- * @private
69
- *
70
- * Contains state and behaviors for the sticiness
71
- */
72
- /**
73
- * This plugin requires that the resizing plugin be present, because the resizing plugin is
74
- * what manages the base width of the columns.
75
- *
76
- * Other width-management plugins can be used instead of ColumnResizing, but they must declare
77
- * that they manage the width of the columns.
78
- */
79
- _defineProperty(StickyColumns, "requires", ['columnWidth']);
80
- let ColumnMeta = (_class = class ColumnMeta {
81
- constructor(column) {
82
- this.column = column;
83
- }
84
- get isSticky() {
85
- return this.position !== 'none';
86
- }
87
- get position() {
88
- const sticky = options.forColumn(this.column, StickyColumns)?.sticky;
89
- assert(`Invalid sticky value, ${sticky}. Valid values: 'left', 'right', false`, sticky === 'left' || sticky === 'right' || sticky === false || sticky === undefined);
90
- return sticky || 'none';
91
- }
92
- get offset() {
93
- if (!this.isSticky) {
94
- return;
95
- }
96
- if (this.position === 'left') {
97
- const leftColumns = columns.before(this.column);
98
- const left = leftColumns.reduce((acc, column) => {
99
- const columnMeta = meta.withFeature.forColumn(column, 'columnWidth');
100
- if (hasWidth(columnMeta)) {
101
- return acc + (columnMeta.width ?? 0);
102
- }
103
- return acc;
104
- }, 0);
105
- return `${left}px`;
106
- }
107
- if (this.position === 'right') {
108
- const rightColumns = columns.after(this.column);
109
- const right = rightColumns.reduce((acc, column) => {
110
- const columnMeta = meta.withFeature.forColumn(column, 'columnWidth');
111
- if (hasWidth(columnMeta)) {
112
- return acc + (columnMeta.width ?? 0);
113
- }
114
- return acc;
115
- }, 0);
116
- return `${right}px`;
117
- }
118
- return;
119
- }
120
- get style() {
121
- if (this.isSticky) {
122
- return {
123
- position: 'sticky',
124
- [this.position]: this.offset,
125
- zIndex: DEFAULT_Z_INDEX
126
- };
127
- }
128
- return {};
129
- }
130
- }, _applyDecoratedDescriptor(_class.prototype, "offset", [cached], Object.getOwnPropertyDescriptor(_class.prototype, "offset"), _class.prototype), _class);
131
- function hasWidth(obj) {
132
- return typeof obj === 'object' && obj && 'width' in obj;
133
- }
134
-
135
- /* This Plugin does not need table state */
136
- class TableMeta {}
137
-
138
- export { ColumnMeta, StickyColumns, TableMeta };
139
- //# sourceMappingURL=plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sources":["../../../src/plugins/sticky-columns/plugin.ts"],"sourcesContent":["import { cached } from '@glimmer/tracking';\nimport { assert } from '@ember/debug';\n\nimport { BasePlugin, columns, meta, options } from '../-private/base.ts';\nimport { applyStyles } from '../-private/utils.ts';\n\nimport type { ColumnApi } from '../../plugins/index.ts';\nimport type { Column } from '../../index.ts';\n\nconst DEFAULT_Z_INDEX = '8';\n\ninterface ColumnOptions {\n /**\n * Whether or not to enable stickiness on the column\n * (default is false)\n *\n * valid values: 'left', 'right', false\n */\n sticky?: boolean | string;\n}\n\nexport interface Signature {\n Options: {\n Column: ColumnOptions;\n Plugin: {\n /**\n * Opts this plugin out of engaging in the modifier system\n * and instead requires setting a `style` attribute on\n * th / td tags for getting the \"position: sticky\" behovior\n * on columns.\n */\n workaroundForModifierTimingUpdateRFC883?: boolean;\n };\n };\n Meta: {\n Table: TableMeta;\n Column: ColumnMeta;\n };\n}\n\nexport class StickyColumns extends BasePlugin<Signature> {\n name = 'sticky-columns';\n\n /**\n * This plugin requires that the resizing plugin be present, because the resizing plugin is\n * what manages the base width of the columns.\n *\n * Other width-management plugins can be used instead of ColumnResizing, but they must declare\n * that they manage the width of the columns.\n */\n static requires = ['columnWidth'];\n\n meta = {\n table: TableMeta,\n column: ColumnMeta,\n };\n\n conditionallyRemoveStyles = (element: HTMLElement) => {\n if (element.style.getPropertyValue('position') === 'sticky') {\n element.style.removeProperty('position');\n }\n\n if (element.style.getPropertyValue('left')) {\n element.style.left = '';\n }\n\n if (element.style.getPropertyValue('right')) {\n element.style.right = '';\n }\n\n if (element.style.zIndex === DEFAULT_Z_INDEX) {\n element.style.zIndex = '';\n }\n };\n\n headerCellModifier = (element: HTMLElement, { column, table }: ColumnApi) => {\n if (\n options.forTable(table, StickyColumns)\n .workaroundForModifierTimingUpdateRFC883\n ) {\n return;\n }\n\n const columnMeta = meta.forColumn(column, StickyColumns);\n\n if (columnMeta.isSticky) {\n applyStyles(element, columnMeta.style);\n } else {\n this.conditionallyRemoveStyles(element);\n }\n };\n\n /**\n * Not yet supported. Pending Ember RFC #883\n *\n * TODO: switch ColumnApi to \"RowApi\", add the row's data\n */\n cellModifier = (element: HTMLElement, { column, table }: ColumnApi) => {\n if (\n options.forTable(table, StickyColumns)\n .workaroundForModifierTimingUpdateRFC883\n ) {\n return;\n }\n\n const columnMeta = meta.forColumn(column, StickyColumns);\n\n if (columnMeta.isSticky) {\n applyStyles(element, columnMeta.style);\n } else {\n this.conditionallyRemoveStyles(element);\n }\n };\n}\n\n/**\n * @private\n *\n * Contains state and behaviors for the sticiness\n */\nexport class ColumnMeta {\n constructor(private column: Column) {}\n\n get isSticky() {\n return this.position !== 'none';\n }\n\n get position(): 'left' | 'right' | 'none' {\n const sticky = options.forColumn(this.column, StickyColumns)?.sticky;\n\n assert(\n `Invalid sticky value, ${sticky}. Valid values: 'left', 'right', false`,\n sticky === 'left' ||\n sticky === 'right' ||\n sticky === false ||\n sticky === undefined,\n );\n\n return sticky || 'none';\n }\n\n @cached\n get offset() {\n if (!this.isSticky) {\n return;\n }\n\n if (this.position === 'left') {\n const leftColumns = columns.before(this.column);\n const left = leftColumns.reduce((acc, column) => {\n const columnMeta = meta.withFeature.forColumn(column, 'columnWidth');\n\n if (hasWidth(columnMeta)) {\n return acc + (columnMeta.width ?? 0);\n }\n\n return acc;\n }, 0);\n\n return `${left}px`;\n }\n\n if (this.position === 'right') {\n const rightColumns = columns.after(this.column);\n const right = rightColumns.reduce((acc, column) => {\n const columnMeta = meta.withFeature.forColumn(column, 'columnWidth');\n\n if (hasWidth(columnMeta)) {\n return acc + (columnMeta.width ?? 0);\n }\n\n return acc;\n }, 0);\n\n return `${right}px`;\n }\n\n return;\n }\n\n get style(): Partial<\n Pick<CSSStyleDeclaration, 'position' | 'left' | 'right' | 'zIndex'>\n > {\n if (this.isSticky) {\n return {\n position: 'sticky',\n [this.position]: this.offset,\n zIndex: DEFAULT_Z_INDEX,\n };\n }\n\n return {};\n }\n}\n\nfunction hasWidth(obj: any): obj is { width?: number } {\n return typeof obj === 'object' && obj && 'width' in obj;\n}\n\n/* This Plugin does not need table state */\nexport class TableMeta {}\n"],"names":["DEFAULT_Z_INDEX","StickyColumns","BasePlugin","constructor","args","_defineProperty","table","TableMeta","column","ColumnMeta","element","style","getPropertyValue","removeProperty","left","right","zIndex","options","forTable","workaroundForModifierTimingUpdateRFC883","columnMeta","meta","forColumn","isSticky","applyStyles","conditionallyRemoveStyles","_class","position","sticky","assert","undefined","offset","leftColumns","columns","before","reduce","acc","withFeature","hasWidth","width","rightColumns","after","_applyDecoratedDescriptor","prototype","cached","Object","getOwnPropertyDescriptor","obj"],"mappings":";;;;;;;AASA,MAAMA,eAAe,GAAG,GAAG;AA+BpB,MAAMC,aAAa,SAASC,UAAU,CAAY;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;AAAAC,IAAAA,eAAA,eAChD,gBAAgB,CAAA;AAAAA,IAAAA,eAAA,CAWhB,IAAA,EAAA,MAAA,EAAA;AACLC,MAAAA,KAAK,EAAEC,SAAS;AAChBC,MAAAA,MAAM,EAAEC;KACT,CAAA;IAAAJ,eAAA,CAAA,IAAA,EAAA,2BAAA,EAE4BK,OAAoB,IAAK;MACpD,IAAIA,OAAO,CAACC,KAAK,CAACC,gBAAgB,CAAC,UAAU,CAAC,KAAK,QAAQ,EAAE;AAC3DF,QAAAA,OAAO,CAACC,KAAK,CAACE,cAAc,CAAC,UAAU,CAAC;AAC1C;MAEA,IAAIH,OAAO,CAACC,KAAK,CAACC,gBAAgB,CAAC,MAAM,CAAC,EAAE;AAC1CF,QAAAA,OAAO,CAACC,KAAK,CAACG,IAAI,GAAG,EAAE;AACzB;MAEA,IAAIJ,OAAO,CAACC,KAAK,CAACC,gBAAgB,CAAC,OAAO,CAAC,EAAE;AAC3CF,QAAAA,OAAO,CAACC,KAAK,CAACI,KAAK,GAAG,EAAE;AAC1B;AAEA,MAAA,IAAIL,OAAO,CAACC,KAAK,CAACK,MAAM,KAAKhB,eAAe,EAAE;AAC5CU,QAAAA,OAAO,CAACC,KAAK,CAACK,MAAM,GAAG,EAAE;AAC3B;KACD,CAAA;IAAAX,eAAA,CAAA,IAAA,EAAA,oBAAA,EAEoB,CAACK,OAAoB,EAAE;MAAEF,MAAM;AAAEF,MAAAA;AAAiB,KAAC,KAAK;MAC3E,IACEW,OAAO,CAACC,QAAQ,CAACZ,KAAK,EAAEL,aAAa,CAAC,CACnCkB,uCAAuC,EAC1C;AACA,QAAA;AACF;MAEA,MAAMC,UAAU,GAAGC,IAAI,CAACC,SAAS,CAACd,MAAM,EAAEP,aAAa,CAAC;MAExD,IAAImB,UAAU,CAACG,QAAQ,EAAE;AACvBC,QAAAA,WAAW,CAACd,OAAO,EAAEU,UAAU,CAACT,KAAK,CAAC;AACxC,OAAC,MAAM;AACL,QAAA,IAAI,CAACc,yBAAyB,CAACf,OAAO,CAAC;AACzC;KACD,CAAA;AAED;AACF;AACA;AACA;AACA;IAJEL,eAAA,CAAA,IAAA,EAAA,cAAA,EAKe,CAACK,OAAoB,EAAE;MAAEF,MAAM;AAAEF,MAAAA;AAAiB,KAAC,KAAK;MACrE,IACEW,OAAO,CAACC,QAAQ,CAACZ,KAAK,EAAEL,aAAa,CAAC,CACnCkB,uCAAuC,EAC1C;AACA,QAAA;AACF;MAEA,MAAMC,UAAU,GAAGC,IAAI,CAACC,SAAS,CAACd,MAAM,EAAEP,aAAa,CAAC;MAExD,IAAImB,UAAU,CAACG,QAAQ,EAAE;AACvBC,QAAAA,WAAW,CAACd,OAAO,EAAEU,UAAU,CAACT,KAAK,CAAC;AACxC,OAAC,MAAM;AACL,QAAA,IAAI,CAACc,yBAAyB,CAACf,OAAO,CAAC;AACzC;KACD,CAAA;AAAA;AACH;;AAEA;AACA;AACA;AACA;AACA;AA5EE;AACF;AACA;AACA;AACA;AACA;AACA;AANEL,eAAA,CAHWJ,aAAa,EAUN,UAAA,EAAA,CAAC,aAAa,CAAC,CAAA;AAsEnC,IAAaQ,UAAU,IAAAiB,MAAA,GAAhB,MAAMjB,UAAU,CAAC;EACtBN,WAAWA,CAASK,MAAc,EAAE;IAAA,IAAhBA,CAAAA,MAAc,GAAdA,MAAc;AAAG;EAErC,IAAIe,QAAQA,GAAG;AACb,IAAA,OAAO,IAAI,CAACI,QAAQ,KAAK,MAAM;AACjC;EAEA,IAAIA,QAAQA,GAA8B;AACxC,IAAA,MAAMC,MAAM,GAAGX,OAAO,CAACK,SAAS,CAAC,IAAI,CAACd,MAAM,EAAEP,aAAa,CAAC,EAAE2B,MAAM;IAEpEC,MAAM,CACJ,yBAAyBD,MAAM,CAAA,sCAAA,CAAwC,EACvEA,MAAM,KAAK,MAAM,IACfA,MAAM,KAAK,OAAO,IAClBA,MAAM,KAAK,KAAK,IAChBA,MAAM,KAAKE,SACf,CAAC;IAED,OAAOF,MAAM,IAAI,MAAM;AACzB;EAEA,IACIG,MAAMA,GAAG;AACX,IAAA,IAAI,CAAC,IAAI,CAACR,QAAQ,EAAE;AAClB,MAAA;AACF;AAEA,IAAA,IAAI,IAAI,CAACI,QAAQ,KAAK,MAAM,EAAE;MAC5B,MAAMK,WAAW,GAAGC,OAAO,CAACC,MAAM,CAAC,IAAI,CAAC1B,MAAM,CAAC;MAC/C,MAAMM,IAAI,GAAGkB,WAAW,CAACG,MAAM,CAAC,CAACC,GAAG,EAAE5B,MAAM,KAAK;QAC/C,MAAMY,UAAU,GAAGC,IAAI,CAACgB,WAAW,CAACf,SAAS,CAACd,MAAM,EAAE,aAAa,CAAC;AAEpE,QAAA,IAAI8B,QAAQ,CAAClB,UAAU,CAAC,EAAE;AACxB,UAAA,OAAOgB,GAAG,IAAIhB,UAAU,CAACmB,KAAK,IAAI,CAAC,CAAC;AACtC;AAEA,QAAA,OAAOH,GAAG;OACX,EAAE,CAAC,CAAC;MAEL,OAAO,CAAA,EAAGtB,IAAI,CAAI,EAAA,CAAA;AACpB;AAEA,IAAA,IAAI,IAAI,CAACa,QAAQ,KAAK,OAAO,EAAE;MAC7B,MAAMa,YAAY,GAAGP,OAAO,CAACQ,KAAK,CAAC,IAAI,CAACjC,MAAM,CAAC;MAC/C,MAAMO,KAAK,GAAGyB,YAAY,CAACL,MAAM,CAAC,CAACC,GAAG,EAAE5B,MAAM,KAAK;QACjD,MAAMY,UAAU,GAAGC,IAAI,CAACgB,WAAW,CAACf,SAAS,CAACd,MAAM,EAAE,aAAa,CAAC;AAEpE,QAAA,IAAI8B,QAAQ,CAAClB,UAAU,CAAC,EAAE;AACxB,UAAA,OAAOgB,GAAG,IAAIhB,UAAU,CAACmB,KAAK,IAAI,CAAC,CAAC;AACtC;AAEA,QAAA,OAAOH,GAAG;OACX,EAAE,CAAC,CAAC;MAEL,OAAO,CAAA,EAAGrB,KAAK,CAAI,EAAA,CAAA;AACrB;AAEA,IAAA;AACF;EAEA,IAAIJ,KAAKA,GAEP;IACA,IAAI,IAAI,CAACY,QAAQ,EAAE;MACjB,OAAO;AACLI,QAAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,CAAC,IAAI,CAACA,QAAQ,GAAG,IAAI,CAACI,MAAM;AAC5Bf,QAAAA,MAAM,EAAEhB;OACT;AACH;AAEA,IAAA,OAAO,EAAE;AACX;AACF,CAAC,EAAA0C,yBAAA,CAAAhB,MAAA,CAAAiB,SAAA,EAAA,QAAA,EAAA,CApDEC,MAAM,CAAAC,EAAAA,MAAA,CAAAC,wBAAA,CAAApB,MAAA,CAAAiB,SAAA,aAAAjB,MAAA,CAAAiB,SAAA,CAAA,EAAAjB,MAAA;AAsDT,SAASY,QAAQA,CAACS,GAAQ,EAA6B;EACrD,OAAO,OAAOA,GAAG,KAAK,QAAQ,IAAIA,GAAG,IAAI,OAAO,IAAIA,GAAG;AACzD;;AAEA;AACO,MAAMxC,SAAS,CAAC;;;;"}
@@ -1,62 +0,0 @@
1
- import { assert } from '@ember/debug';
2
- import { settled, triggerEvent, find } from '@ember/test-helpers';
3
-
4
- function createHelpers(selectors) {
5
- async function resize(parent, delta) {
6
- assert(`Can't use the dragLeft/dragRight/resize helpers without a \`resizeHandle\` selector`, selectors.resizeHandle);
7
- const element = parent.querySelector(selectors.resizeHandle);
8
- assert(`Can't resize without a handle`, element);
9
-
10
- /**
11
- * Start the click in exactly the middle of the element.
12
- * "startX" is the horizontal middle of "element"
13
- */
14
- const rect = element.getBoundingClientRect();
15
- const startX = (rect.right + rect.left) / 2;
16
- const targetX = startX + delta;
17
- triggerEvent(element, 'mousedown', {
18
- clientX: startX,
19
- button: 0
20
- });
21
- triggerEvent(element, 'mousemove', {
22
- clientX: targetX,
23
- button: 0
24
- });
25
- triggerEvent(element, 'mouseup', {
26
- clientX: targetX,
27
- button: 0
28
- });
29
- await settled();
30
- }
31
- function horizontalScrollElement() {
32
- assert(`Can't use scrollRight/swipeLeft helpers without a \`scrollContainer\` selector`, selectors.scrollContainer);
33
- const element = find(selectors.scrollContainer);
34
- assert(`scroll container not found`, element instanceof HTMLElement);
35
- return element;
36
- }
37
- async function scrollRight(distance) {
38
- const element = horizontalScrollElement();
39
- element.scrollLeft += distance;
40
- await requestAnimationFrameSettled();
41
- }
42
- async function scrollLeft(distance) {
43
- const element = horizontalScrollElement();
44
- element.scrollLeft -= distance;
45
- await requestAnimationFrameSettled();
46
- }
47
- return {
48
- dragLeft: (column, amount) => resize(column, -amount),
49
- dragRight: (column, amount) => resize(column, amount),
50
- scrollLeft,
51
- scrollRight,
52
- swipeLeft: scrollRight,
53
- swipeRight: scrollLeft
54
- };
55
- }
56
- async function requestAnimationFrameSettled() {
57
- await new Promise(requestAnimationFrame);
58
- await settled();
59
- }
60
-
61
- export { createHelpers, requestAnimationFrameSettled };
62
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../src/test-support/index.ts"],"sourcesContent":["import { assert } from '@ember/debug';\nimport { find, settled, triggerEvent } from '@ember/test-helpers';\n\ninterface Selectors {\n resizeHandle?: string;\n scrollContainer?: string;\n}\n\nexport function createHelpers(selectors: Selectors) {\n async function resize(parent: Element, delta: number) {\n assert(\n `Can't use the dragLeft/dragRight/resize helpers without a \\`resizeHandle\\` selector`,\n selectors.resizeHandle,\n );\n\n const element = parent.querySelector(selectors.resizeHandle);\n\n assert(`Can't resize without a handle`, element);\n\n /**\n * Start the click in exactly the middle of the element.\n * \"startX\" is the horizontal middle of \"element\"\n */\n const rect = element.getBoundingClientRect();\n const startX = (rect.right + rect.left) / 2;\n\n const targetX = startX + delta;\n\n triggerEvent(element, 'mousedown', { clientX: startX, button: 0 });\n triggerEvent(element, 'mousemove', { clientX: targetX, button: 0 });\n triggerEvent(element, 'mouseup', { clientX: targetX, button: 0 });\n\n await settled();\n }\n\n function horizontalScrollElement() {\n assert(\n `Can't use scrollRight/swipeLeft helpers without a \\`scrollContainer\\` selector`,\n selectors.scrollContainer,\n );\n\n const element = find(selectors.scrollContainer);\n\n assert(`scroll container not found`, element instanceof HTMLElement);\n\n return element;\n }\n\n async function scrollRight(distance: number) {\n const element = horizontalScrollElement();\n\n element.scrollLeft += distance;\n await requestAnimationFrameSettled();\n }\n\n async function scrollLeft(distance: number) {\n const element = horizontalScrollElement();\n\n element.scrollLeft -= distance;\n await requestAnimationFrameSettled();\n }\n\n return {\n dragLeft: (column: Element, amount: number) => resize(column, -amount),\n dragRight: (column: Element, amount: number) => resize(column, amount),\n scrollLeft,\n scrollRight,\n swipeLeft: scrollRight,\n swipeRight: scrollLeft,\n };\n}\n\nexport async function requestAnimationFrameSettled() {\n await new Promise(requestAnimationFrame);\n await settled();\n}\n"],"names":["createHelpers","selectors","resize","parent","delta","assert","resizeHandle","element","querySelector","rect","getBoundingClientRect","startX","right","left","targetX","triggerEvent","clientX","button","settled","horizontalScrollElement","scrollContainer","find","HTMLElement","scrollRight","distance","scrollLeft","requestAnimationFrameSettled","dragLeft","column","amount","dragRight","swipeLeft","swipeRight","Promise","requestAnimationFrame"],"mappings":";;;AAQO,SAASA,aAAaA,CAACC,SAAoB,EAAE;AAClD,EAAA,eAAeC,MAAMA,CAACC,MAAe,EAAEC,KAAa,EAAE;AACpDC,IAAAA,MAAM,CACJ,CAAqF,mFAAA,CAAA,EACrFJ,SAAS,CAACK,YACZ,CAAC;IAED,MAAMC,OAAO,GAAGJ,MAAM,CAACK,aAAa,CAACP,SAAS,CAACK,YAAY,CAAC;AAE5DD,IAAAA,MAAM,CAAC,CAAA,6BAAA,CAA+B,EAAEE,OAAO,CAAC;;AAEhD;AACJ;AACA;AACA;AACI,IAAA,MAAME,IAAI,GAAGF,OAAO,CAACG,qBAAqB,EAAE;IAC5C,MAAMC,MAAM,GAAG,CAACF,IAAI,CAACG,KAAK,GAAGH,IAAI,CAACI,IAAI,IAAI,CAAC;AAE3C,IAAA,MAAMC,OAAO,GAAGH,MAAM,GAAGP,KAAK;AAE9BW,IAAAA,YAAY,CAACR,OAAO,EAAE,WAAW,EAAE;AAAES,MAAAA,OAAO,EAAEL,MAAM;AAAEM,MAAAA,MAAM,EAAE;AAAE,KAAC,CAAC;AAClEF,IAAAA,YAAY,CAACR,OAAO,EAAE,WAAW,EAAE;AAAES,MAAAA,OAAO,EAAEF,OAAO;AAAEG,MAAAA,MAAM,EAAE;AAAE,KAAC,CAAC;AACnEF,IAAAA,YAAY,CAACR,OAAO,EAAE,SAAS,EAAE;AAAES,MAAAA,OAAO,EAAEF,OAAO;AAAEG,MAAAA,MAAM,EAAE;AAAE,KAAC,CAAC;IAEjE,MAAMC,OAAO,EAAE;AACjB;EAEA,SAASC,uBAAuBA,GAAG;AACjCd,IAAAA,MAAM,CACJ,CAAgF,8EAAA,CAAA,EAChFJ,SAAS,CAACmB,eACZ,CAAC;AAED,IAAA,MAAMb,OAAO,GAAGc,IAAI,CAACpB,SAAS,CAACmB,eAAe,CAAC;AAE/Cf,IAAAA,MAAM,CAAC,CAA4B,0BAAA,CAAA,EAAEE,OAAO,YAAYe,WAAW,CAAC;AAEpE,IAAA,OAAOf,OAAO;AAChB;EAEA,eAAegB,WAAWA,CAACC,QAAgB,EAAE;AAC3C,IAAA,MAAMjB,OAAO,GAAGY,uBAAuB,EAAE;IAEzCZ,OAAO,CAACkB,UAAU,IAAID,QAAQ;IAC9B,MAAME,4BAA4B,EAAE;AACtC;EAEA,eAAeD,UAAUA,CAACD,QAAgB,EAAE;AAC1C,IAAA,MAAMjB,OAAO,GAAGY,uBAAuB,EAAE;IAEzCZ,OAAO,CAACkB,UAAU,IAAID,QAAQ;IAC9B,MAAME,4BAA4B,EAAE;AACtC;EAEA,OAAO;AACLC,IAAAA,QAAQ,EAAEA,CAACC,MAAe,EAAEC,MAAc,KAAK3B,MAAM,CAAC0B,MAAM,EAAE,CAACC,MAAM,CAAC;IACtEC,SAAS,EAAEA,CAACF,MAAe,EAAEC,MAAc,KAAK3B,MAAM,CAAC0B,MAAM,EAAEC,MAAM,CAAC;IACtEJ,UAAU;IACVF,WAAW;AACXQ,IAAAA,SAAS,EAAER,WAAW;AACtBS,IAAAA,UAAU,EAAEP;GACb;AACH;AAEO,eAAeC,4BAA4BA,GAAG;AACnD,EAAA,MAAM,IAAIO,OAAO,CAACC,qBAAqB,CAAC;EACxC,MAAMhB,OAAO,EAAE;AACjB;;;;"}
package/dist/utils.js DELETED
@@ -1,77 +0,0 @@
1
- import { assert } from '@ember/debug';
2
- import { camelize, underscore } from '@ember/string';
3
- import { SortDirection } from './plugins/data-sorting/types.js';
4
-
5
- /**
6
- * @example
7
- *
8
- * ```ts
9
- * deserializeSorts('first_name.asc', { separator: '.', transform: 'camelize' });
10
- * // => [{ property: 'firstName', direction: 'ascending' }]
11
- *
12
- * deserializeSorts('last_name.desc', { separator: '.', transform: 'camelize' });
13
- * // => [{ property: 'lastName', direction: 'descending' }]
14
- * ```
15
- */
16
-
17
- const deserializeSorts = (sortString, options = {
18
- separator: '.',
19
- transform: 'camelize'
20
- }) => {
21
- if (!sortString) {
22
- return [];
23
- }
24
- const {
25
- transform,
26
- separator
27
- } = options;
28
- let [key, direction] = sortString.split(separator);
29
- assert(`No key found for input: \`${sortString}\` using \`${separator}\` as a separator`, key);
30
- if (transform === 'camelize') {
31
- key = camelize(key);
32
- } else if (transform === 'underscore') {
33
- key = underscore(key);
34
- }
35
- return [{
36
- property: key,
37
- direction: direction === 'asc' ? SortDirection.Ascending : SortDirection.Descending
38
- }];
39
- };
40
-
41
- /**
42
- * @example
43
- *
44
- * ```ts
45
- * serializeSorts([{ property: 'firstName', direction: 'ascending' }],{ separator: '.', transform: 'camelize' });
46
- * // => 'first_name.asc'
47
- *
48
- * serializeSorts([{ property: 'lastName', direction: 'descending' }],{ separator: '.', transform: 'camelize' });
49
- * // => 'last_name.desc'
50
- * ```
51
- */
52
- function serializeSorts(sorts, options = {
53
- separator: '.',
54
- transform: 'underscore'
55
- }) {
56
- const {
57
- transform,
58
- separator
59
- } = options;
60
- const sortParameters = sorts.map(({
61
- direction,
62
- property
63
- }) => {
64
- const shortDirection = direction === 'ascending' ? 'asc' : 'desc';
65
- let sortField = property;
66
- if (transform === 'underscore') {
67
- sortField = underscore(property);
68
- } else if (transform === 'camelize') {
69
- sortField = camelize(property);
70
- }
71
- return `${sortField}${separator}${shortDirection}`;
72
- });
73
- return sortParameters.join('+');
74
- }
75
-
76
- export { deserializeSorts, serializeSorts };
77
- //# sourceMappingURL=utils.js.map
package/dist/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":["import { assert } from '@ember/debug';\nimport { camelize, underscore } from '@ember/string';\n\nimport { SortDirection } from './plugins/data-sorting/types.ts';\n\nimport type { Sort, SortsOptions } from './plugins/data-sorting/types.ts';\n\n/**\n * @example\n *\n * ```ts\n * deserializeSorts('first_name.asc', { separator: '.', transform: 'camelize' });\n * // => [{ property: 'firstName', direction: 'ascending' }]\n *\n * deserializeSorts('last_name.desc', { separator: '.', transform: 'camelize' });\n * // => [{ property: 'lastName', direction: 'descending' }]\n * ```\n */\n\nexport const deserializeSorts = (\n sortString: string,\n options: SortsOptions = { separator: '.', transform: 'camelize' },\n): Sort[] => {\n if (!sortString) {\n return [];\n }\n\n const { transform, separator } = options;\n let [key, direction] = sortString.split(separator);\n\n assert(\n `No key found for input: \\`${sortString}\\` using \\`${separator}\\` as a separator`,\n key,\n );\n\n if (transform === 'camelize') {\n key = camelize(key);\n } else if (transform === 'underscore') {\n key = underscore(key);\n }\n\n return [\n {\n property: key,\n direction:\n direction === 'asc'\n ? SortDirection.Ascending\n : SortDirection.Descending,\n },\n ];\n};\n\n/**\n * @example\n *\n * ```ts\n * serializeSorts([{ property: 'firstName', direction: 'ascending' }],{ separator: '.', transform: 'camelize' });\n * // => 'first_name.asc'\n *\n * serializeSorts([{ property: 'lastName', direction: 'descending' }],{ separator: '.', transform: 'camelize' });\n * // => 'last_name.desc'\n * ```\n */\nexport function serializeSorts(\n sorts: Sort[],\n options: SortsOptions = { separator: '.', transform: 'underscore' },\n): string {\n const { transform, separator } = options;\n\n const sortParameters = sorts.map(({ direction, property }) => {\n const shortDirection = direction === 'ascending' ? 'asc' : 'desc';\n\n let sortField = property;\n\n if (transform === 'underscore') {\n sortField = underscore(property);\n } else if (transform === 'camelize') {\n sortField = camelize(property);\n }\n\n return `${sortField}${separator}${shortDirection}`;\n });\n\n return sortParameters.join('+');\n}\n"],"names":["deserializeSorts","sortString","options","separator","transform","key","direction","split","assert","camelize","underscore","property","SortDirection","Ascending","Descending","serializeSorts","sorts","sortParameters","map","shortDirection","sortField","join"],"mappings":";;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;MAEaA,gBAAgB,GAAGA,CAC9BC,UAAkB,EAClBC,OAAqB,GAAG;AAAEC,EAAAA,SAAS,EAAE,GAAG;AAAEC,EAAAA,SAAS,EAAE;AAAW,CAAC,KACtD;EACX,IAAI,CAACH,UAAU,EAAE;AACf,IAAA,OAAO,EAAE;AACX;EAEA,MAAM;IAAEG,SAAS;AAAED,IAAAA;AAAU,GAAC,GAAGD,OAAO;EACxC,IAAI,CAACG,GAAG,EAAEC,SAAS,CAAC,GAAGL,UAAU,CAACM,KAAK,CAACJ,SAAS,CAAC;EAElDK,MAAM,CACJ,6BAA6BP,UAAU,CAAA,WAAA,EAAcE,SAAS,CAAmB,iBAAA,CAAA,EACjFE,GACF,CAAC;EAED,IAAID,SAAS,KAAK,UAAU,EAAE;AAC5BC,IAAAA,GAAG,GAAGI,QAAQ,CAACJ,GAAG,CAAC;AACrB,GAAC,MAAM,IAAID,SAAS,KAAK,YAAY,EAAE;AACrCC,IAAAA,GAAG,GAAGK,UAAU,CAACL,GAAG,CAAC;AACvB;AAEA,EAAA,OAAO,CACL;AACEM,IAAAA,QAAQ,EAAEN,GAAG;IACbC,SAAS,EACPA,SAAS,KAAK,KAAK,GACfM,aAAa,CAACC,SAAS,GACvBD,aAAa,CAACE;AACtB,GAAC,CACF;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,cAAcA,CAC5BC,KAAa,EACbd,OAAqB,GAAG;AAAEC,EAAAA,SAAS,EAAE,GAAG;AAAEC,EAAAA,SAAS,EAAE;AAAa,CAAC,EAC3D;EACR,MAAM;IAAEA,SAAS;AAAED,IAAAA;AAAU,GAAC,GAAGD,OAAO;AAExC,EAAA,MAAMe,cAAc,GAAGD,KAAK,CAACE,GAAG,CAAC,CAAC;IAAEZ,SAAS;AAAEK,IAAAA;AAAS,GAAC,KAAK;IAC5D,MAAMQ,cAAc,GAAGb,SAAS,KAAK,WAAW,GAAG,KAAK,GAAG,MAAM;IAEjE,IAAIc,SAAS,GAAGT,QAAQ;IAExB,IAAIP,SAAS,KAAK,YAAY,EAAE;AAC9BgB,MAAAA,SAAS,GAAGV,UAAU,CAACC,QAAQ,CAAC;AAClC,KAAC,MAAM,IAAIP,SAAS,KAAK,UAAU,EAAE;AACnCgB,MAAAA,SAAS,GAAGX,QAAQ,CAACE,QAAQ,CAAC;AAChC;AAEA,IAAA,OAAO,GAAGS,SAAS,CAAA,EAAGjB,SAAS,CAAA,EAAGgB,cAAc,CAAE,CAAA;AACpD,GAAC,CAAC;AAEF,EAAA,OAAOF,cAAc,CAACI,IAAI,CAAC,GAAG,CAAC;AACjC;;;;"}