igniteui-grid-lite 1.0.0-alpha.9

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 (207) hide show
  1. package/LICENSE +9 -0
  2. package/README.md +17 -0
  3. package/components/cell.d.ts +35 -0
  4. package/components/cell.js +47 -0
  5. package/components/cell.js.map +1 -0
  6. package/components/filter-row.d.ts +47 -0
  7. package/components/filter-row.js +313 -0
  8. package/components/filter-row.js.map +1 -0
  9. package/components/grid.d.ts +226 -0
  10. package/components/grid.js +227 -0
  11. package/components/grid.js.map +1 -0
  12. package/components/header-row.d.ts +23 -0
  13. package/components/header-row.js +72 -0
  14. package/components/header-row.js.map +1 -0
  15. package/components/header.d.ts +23 -0
  16. package/components/header.js +137 -0
  17. package/components/header.js.map +1 -0
  18. package/components/row.d.ts +24 -0
  19. package/components/row.js +64 -0
  20. package/components/row.js.map +1 -0
  21. package/components/virtualizer.d.ts +12 -0
  22. package/components/virtualizer.js +21 -0
  23. package/components/virtualizer.js.map +1 -0
  24. package/controllers/data-operation.d.ts +17 -0
  25. package/controllers/data-operation.js +36 -0
  26. package/controllers/data-operation.js.map +1 -0
  27. package/controllers/dom.d.ts +19 -0
  28. package/controllers/dom.js +54 -0
  29. package/controllers/dom.js.map +1 -0
  30. package/controllers/filter.d.ts +21 -0
  31. package/controllers/filter.js +105 -0
  32. package/controllers/filter.js.map +1 -0
  33. package/controllers/navigation.d.ts +27 -0
  34. package/controllers/navigation.js +98 -0
  35. package/controllers/navigation.js.map +1 -0
  36. package/controllers/resize.d.ts +27 -0
  37. package/controllers/resize.js +52 -0
  38. package/controllers/resize.js.map +1 -0
  39. package/controllers/sort.d.ts +15 -0
  40. package/controllers/sort.js +94 -0
  41. package/controllers/sort.js.map +1 -0
  42. package/controllers/state.d.ts +24 -0
  43. package/controllers/state.js +37 -0
  44. package/controllers/state.js.map +1 -0
  45. package/custom-elements.json +4166 -0
  46. package/define.d.ts +2 -0
  47. package/define.js +4 -0
  48. package/define.js.map +1 -0
  49. package/docs/.nojekyll +1 -0
  50. package/docs/assets/hierarchy.js +1 -0
  51. package/docs/assets/highlight.css +71 -0
  52. package/docs/assets/icons.js +18 -0
  53. package/docs/assets/icons.svg +1 -0
  54. package/docs/assets/main.js +60 -0
  55. package/docs/assets/navigation.js +1 -0
  56. package/docs/assets/search.js +1 -0
  57. package/docs/assets/style.css +1633 -0
  58. package/docs/classes/IgcGridLite.html +74 -0
  59. package/docs/hierarchy.html +1 -0
  60. package/docs/index.html +11 -0
  61. package/docs/interfaces/BaseColumnConfiguration.html +28 -0
  62. package/docs/interfaces/BaseColumnSortConfiguration.html +6 -0
  63. package/docs/interfaces/BaseFilterExpression.html +15 -0
  64. package/docs/interfaces/BaseIgcCellContext.html +10 -0
  65. package/docs/interfaces/BaseSortExpression.html +12 -0
  66. package/docs/interfaces/ColumnFilterConfiguration.html +4 -0
  67. package/docs/interfaces/DataPipelineConfiguration.html +6 -0
  68. package/docs/interfaces/GridSortConfiguration.html +6 -0
  69. package/docs/interfaces/IgcFilteredEvent.html +6 -0
  70. package/docs/interfaces/IgcFilteringEvent.html +12 -0
  71. package/docs/interfaces/IgcGridLiteEventMap.html +17 -0
  72. package/docs/interfaces/IgcHeaderContext.html +6 -0
  73. package/docs/modules.html +1 -0
  74. package/docs/types/BasePropertyType.html +2 -0
  75. package/docs/types/BaseSortComparer.html +2 -0
  76. package/docs/types/ColumnConfiguration.html +2 -0
  77. package/docs/types/ColumnSortConfiguration.html +2 -0
  78. package/docs/types/DataPipelineHook.html +2 -0
  79. package/docs/types/DataPipelineParams.html +8 -0
  80. package/docs/types/DataType.html +2 -0
  81. package/docs/types/FilterCriteria.html +6 -0
  82. package/docs/types/FilterExpression.html +2 -0
  83. package/docs/types/IgcCellContext.html +2 -0
  84. package/docs/types/Keys.html +2 -0
  85. package/docs/types/PropertyType.html +2 -0
  86. package/docs/types/SortComparer.html +2 -0
  87. package/docs/types/SortExpression.html +2 -0
  88. package/docs/types/SortState.html +2 -0
  89. package/docs/types/SortingDirection.html +3 -0
  90. package/index.d.ts +8 -0
  91. package/index.js +5 -0
  92. package/index.js.map +1 -0
  93. package/internal/constants.d.ts +8 -0
  94. package/internal/constants.js +19 -0
  95. package/internal/constants.js.map +1 -0
  96. package/internal/icon-registry.d.ts +1 -0
  97. package/internal/icon-registry.js +29 -0
  98. package/internal/icon-registry.js.map +1 -0
  99. package/internal/is-defined.d.ts +1 -0
  100. package/internal/is-defined.js +4 -0
  101. package/internal/is-defined.js.map +1 -0
  102. package/internal/mixins/event-emitter.d.ts +7 -0
  103. package/internal/mixins/event-emitter.js +18 -0
  104. package/internal/mixins/event-emitter.js.map +1 -0
  105. package/internal/normalize-case.d.ts +1 -0
  106. package/internal/normalize-case.js +4 -0
  107. package/internal/normalize-case.js.map +1 -0
  108. package/internal/part-map.d.ts +4 -0
  109. package/internal/part-map.js +6 -0
  110. package/internal/part-map.js.map +1 -0
  111. package/internal/register.d.ts +6 -0
  112. package/internal/register.js +9 -0
  113. package/internal/register.js.map +1 -0
  114. package/internal/tags.d.ts +7 -0
  115. package/internal/tags.js +8 -0
  116. package/internal/tags.js.map +1 -0
  117. package/internal/theming.d.ts +34 -0
  118. package/internal/theming.js +123 -0
  119. package/internal/theming.js.map +1 -0
  120. package/internal/types.d.ts +198 -0
  121. package/internal/types.js +2 -0
  122. package/internal/types.js.map +1 -0
  123. package/internal/utils.d.ts +6 -0
  124. package/internal/utils.js +34 -0
  125. package/internal/utils.js.map +1 -0
  126. package/internal/watch.d.ts +5 -0
  127. package/internal/watch.js +19 -0
  128. package/internal/watch.js.map +1 -0
  129. package/operations/base.d.ts +6 -0
  130. package/operations/base.js +9 -0
  131. package/operations/base.js.map +1 -0
  132. package/operations/filter/operands/boolean.d.ts +3 -0
  133. package/operations/filter/operands/boolean.js +34 -0
  134. package/operations/filter/operands/boolean.js.map +1 -0
  135. package/operations/filter/operands/number.d.ts +3 -0
  136. package/operations/filter/operands/number.js +52 -0
  137. package/operations/filter/operands/number.js.map +1 -0
  138. package/operations/filter/operands/string.d.ts +3 -0
  139. package/operations/filter/operands/string.js +53 -0
  140. package/operations/filter/operands/string.js.map +1 -0
  141. package/operations/filter/state.d.ts +16 -0
  142. package/operations/filter/state.js +41 -0
  143. package/operations/filter/state.js.map +1 -0
  144. package/operations/filter/tree.d.ts +17 -0
  145. package/operations/filter/tree.js +46 -0
  146. package/operations/filter/tree.js.map +1 -0
  147. package/operations/filter/types.d.ts +57 -0
  148. package/operations/filter/types.js +2 -0
  149. package/operations/filter/types.js.map +1 -0
  150. package/operations/filter.d.ts +8 -0
  151. package/operations/filter.js +22 -0
  152. package/operations/filter.js.map +1 -0
  153. package/operations/sort/types.d.ts +49 -0
  154. package/operations/sort/types.js +2 -0
  155. package/operations/sort/types.js.map +1 -0
  156. package/operations/sort.d.ts +8 -0
  157. package/operations/sort.js +37 -0
  158. package/operations/sort.js.map +1 -0
  159. package/package.json +41 -0
  160. package/styles/_common.css.d.ts +1 -0
  161. package/styles/_common.css.js +3 -0
  162. package/styles/_common.css.js.map +1 -0
  163. package/styles/body-cell/body-cell.css.d.ts +1 -0
  164. package/styles/body-cell/body-cell.css.js +3 -0
  165. package/styles/body-cell/body-cell.css.js.map +1 -0
  166. package/styles/body-row/body-row.css.d.ts +1 -0
  167. package/styles/body-row/body-row.css.js +3 -0
  168. package/styles/body-row/body-row.css.js.map +1 -0
  169. package/styles/filter-row/filter-row.css.d.ts +1 -0
  170. package/styles/filter-row/filter-row.css.js +3 -0
  171. package/styles/filter-row/filter-row.css.js.map +1 -0
  172. package/styles/grid/themes/dark/grid.bootstrap.css.d.ts +1 -0
  173. package/styles/grid/themes/dark/grid.bootstrap.css.js +3 -0
  174. package/styles/grid/themes/dark/grid.bootstrap.css.js.map +1 -0
  175. package/styles/grid/themes/dark/grid.fluent.css.d.ts +1 -0
  176. package/styles/grid/themes/dark/grid.fluent.css.js +3 -0
  177. package/styles/grid/themes/dark/grid.fluent.css.js.map +1 -0
  178. package/styles/grid/themes/dark/grid.indigo.css.d.ts +1 -0
  179. package/styles/grid/themes/dark/grid.indigo.css.js +3 -0
  180. package/styles/grid/themes/dark/grid.indigo.css.js.map +1 -0
  181. package/styles/grid/themes/dark/grid.material.css.d.ts +1 -0
  182. package/styles/grid/themes/dark/grid.material.css.js +3 -0
  183. package/styles/grid/themes/dark/grid.material.css.js.map +1 -0
  184. package/styles/grid/themes/grid.base.css.d.ts +1 -0
  185. package/styles/grid/themes/grid.base.css.js +3 -0
  186. package/styles/grid/themes/grid.base.css.js.map +1 -0
  187. package/styles/grid/themes/light/grid.bootstrap.css.d.ts +1 -0
  188. package/styles/grid/themes/light/grid.bootstrap.css.js +3 -0
  189. package/styles/grid/themes/light/grid.bootstrap.css.js.map +1 -0
  190. package/styles/grid/themes/light/grid.fluent.css.d.ts +1 -0
  191. package/styles/grid/themes/light/grid.fluent.css.js +3 -0
  192. package/styles/grid/themes/light/grid.fluent.css.js.map +1 -0
  193. package/styles/grid/themes/light/grid.indigo.css.d.ts +1 -0
  194. package/styles/grid/themes/light/grid.indigo.css.js +3 -0
  195. package/styles/grid/themes/light/grid.indigo.css.js.map +1 -0
  196. package/styles/grid/themes/light/grid.material.css.d.ts +1 -0
  197. package/styles/grid/themes/light/grid.material.css.js +3 -0
  198. package/styles/grid/themes/light/grid.material.css.js.map +1 -0
  199. package/styles/grid/themes/themes.d.ts +2 -0
  200. package/styles/grid/themes/themes.js +39 -0
  201. package/styles/grid/themes/themes.js.map +1 -0
  202. package/styles/header-cell/header-cell.css.d.ts +1 -0
  203. package/styles/header-cell/header-cell.css.js +3 -0
  204. package/styles/header-cell/header-cell.css.js.map +1 -0
  205. package/styles/header-row/header-row.base.css.d.ts +1 -0
  206. package/styles/header-row/header-row.base.css.js +3 -0
  207. package/styles/header-row/header-row.base.css.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../../../src/operations/filter/operands/number.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAa5D,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAqC;IAC9E,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI;KACzC;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,gBAAgB;QACvB,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI;KACzC;IACD,WAAW,EAAE;QACX,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,GAAG,IAAI;KACvC;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,GAAG,IAAI;KACvC;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,uBAAuB;QAC9B,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,IAAI,IAAI;KACxC;IACD,eAAe,EAAE;QACf,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,oBAAoB;QAC3B,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,IAAI,IAAI;KACxC;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;KAC9D;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;KAC9D;CACF,CAAC,CAAC","sourcesContent":["import { isDefined } from '../../../internal/is-defined.js';\nimport type { FilterOperands } from '../types.js';\n\nexport type NumberKeys =\n | 'equals'\n | 'doesNotEqual'\n | 'greaterThan'\n | 'lessThan'\n | 'greaterThanOrEqual'\n | 'lessThanOrEqual'\n | 'empty'\n | 'notEmpty';\n\nexport const NumberOperands = Object.freeze<FilterOperands<number, NumberKeys>>({\n equals: {\n name: 'equals',\n label: 'Equals',\n unary: false,\n logic: (target, term) => target === term,\n },\n doesNotEqual: {\n name: 'doesNotEqual',\n label: 'Does not equal',\n unary: false,\n logic: (target, term) => target !== term,\n },\n greaterThan: {\n name: 'greaterThan',\n label: 'Greater than',\n unary: false,\n logic: (target, term) => target > term,\n },\n lessThan: {\n name: 'lessThan',\n label: 'Less than',\n unary: false,\n logic: (target, term) => target < term,\n },\n greaterThanOrEqual: {\n name: 'greaterThanOrEqual',\n label: 'Greater than or equal',\n unary: false,\n logic: (target, term) => target >= term,\n },\n lessThanOrEqual: {\n name: 'lessThanOrEqual',\n label: 'Less than or equal',\n unary: false,\n logic: (target, term) => target <= term,\n },\n empty: {\n name: 'empty',\n label: 'Empty',\n unary: true,\n logic: (target) => !isDefined(target) || Number.isNaN(target),\n },\n notEmpty: {\n name: 'notEmpty',\n label: 'Not empty',\n unary: true,\n logic: (target) => isDefined(target) && !Number.isNaN(target),\n },\n});\n"]}
@@ -0,0 +1,3 @@
1
+ import type { FilterOperands } from '../types.js';
2
+ export type StringKeys = 'contains' | 'doesNotContain' | 'startsWith' | 'endsWith' | 'equals' | 'doesNotEqual' | 'empty' | 'notEmpty';
3
+ export declare const StringOperands: Readonly<FilterOperands<string, StringKeys>>;
@@ -0,0 +1,53 @@
1
+ import { isDefined } from '../../../internal/is-defined.js';
2
+ import { normalizeCase } from '../../../internal/normalize-case.js';
3
+ export const StringOperands = Object.freeze({
4
+ contains: {
5
+ name: 'contains',
6
+ label: 'Contains',
7
+ unary: false,
8
+ logic: (target, term, caseSensitive) => normalizeCase(target, caseSensitive).includes(normalizeCase(term, caseSensitive)),
9
+ },
10
+ doesNotContain: {
11
+ name: 'doesNotContain',
12
+ label: 'Does not contain',
13
+ unary: false,
14
+ logic: (target, term, caseSensitive) => !normalizeCase(target, caseSensitive).includes(normalizeCase(term, caseSensitive)),
15
+ },
16
+ startsWith: {
17
+ name: 'startsWith',
18
+ label: 'Starts with',
19
+ unary: false,
20
+ logic: (target, searchTerm, caseSensitive) => normalizeCase(target, caseSensitive).startsWith(normalizeCase(searchTerm, caseSensitive)),
21
+ },
22
+ endsWith: {
23
+ name: 'endsWith',
24
+ label: 'Ends with',
25
+ unary: false,
26
+ logic: (target, searchTerm, caseSensitive) => normalizeCase(target, caseSensitive).endsWith(normalizeCase(searchTerm, caseSensitive)),
27
+ },
28
+ equals: {
29
+ name: 'equals',
30
+ label: 'Equals',
31
+ unary: false,
32
+ logic: (target, searchTerm, caseSensitive) => normalizeCase(target, caseSensitive) === normalizeCase(searchTerm, caseSensitive),
33
+ },
34
+ doesNotEqual: {
35
+ name: 'doesNotEqual',
36
+ label: 'Does not equal',
37
+ unary: false,
38
+ logic: (target, searchTerm, caseSensitive) => normalizeCase(target, caseSensitive) !== normalizeCase(searchTerm, caseSensitive),
39
+ },
40
+ empty: {
41
+ name: 'empty',
42
+ label: 'Empty',
43
+ unary: true,
44
+ logic: (target) => !isDefined(target) || target.length < 1,
45
+ },
46
+ notEmpty: {
47
+ name: 'notEmpty',
48
+ label: 'Not empty',
49
+ unary: true,
50
+ logic: (target) => isDefined(target) && target.length > 0,
51
+ },
52
+ });
53
+ //# sourceMappingURL=string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.js","sourceRoot":"","sources":["../../../../src/operations/filter/operands/string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAapE,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAqC;IAC9E,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,aAAc,EAAE,EAAE,CACtC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;KACpF;IACD,cAAc,EAAE;QACd,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,aAAc,EAAE,EAAE,CACtC,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;KACrF;IACD,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,aAAc,EAAE,EAAE,CAC5C,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;KAC5F;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,aAAc,EAAE,EAAE,CAC5C,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;KAC1F;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,CAC3C,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC;KACpF;IAED,YAAY,EAAE;QACZ,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,gBAAgB;QACvB,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,CAC3C,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC;KACpF;IAED,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;KAC3D;IAED,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;KAC1D;CACF,CAAC,CAAC","sourcesContent":["import { isDefined } from '../../../internal/is-defined.js';\nimport { normalizeCase } from '../../../internal/normalize-case.js';\nimport type { FilterOperands } from '../types.js';\n\nexport type StringKeys =\n | 'contains'\n | 'doesNotContain'\n | 'startsWith'\n | 'endsWith'\n | 'equals'\n | 'doesNotEqual'\n | 'empty'\n | 'notEmpty';\n\nexport const StringOperands = Object.freeze<FilterOperands<string, StringKeys>>({\n contains: {\n name: 'contains',\n label: 'Contains',\n unary: false,\n logic: (target, term, caseSensitive?) =>\n normalizeCase(target, caseSensitive).includes(normalizeCase(term, caseSensitive)),\n },\n doesNotContain: {\n name: 'doesNotContain',\n label: 'Does not contain',\n unary: false,\n logic: (target, term, caseSensitive?) =>\n !normalizeCase(target, caseSensitive).includes(normalizeCase(term, caseSensitive)),\n },\n startsWith: {\n name: 'startsWith',\n label: 'Starts with',\n unary: false,\n logic: (target, searchTerm, caseSensitive?) =>\n normalizeCase(target, caseSensitive).startsWith(normalizeCase(searchTerm, caseSensitive)),\n },\n endsWith: {\n name: 'endsWith',\n label: 'Ends with',\n unary: false,\n logic: (target, searchTerm, caseSensitive?) =>\n normalizeCase(target, caseSensitive).endsWith(normalizeCase(searchTerm, caseSensitive)),\n },\n equals: {\n name: 'equals',\n label: 'Equals',\n unary: false,\n logic: (target, searchTerm, caseSensitive) =>\n normalizeCase(target, caseSensitive) === normalizeCase(searchTerm, caseSensitive),\n },\n\n doesNotEqual: {\n name: 'doesNotEqual',\n label: 'Does not equal',\n unary: false,\n logic: (target, searchTerm, caseSensitive) =>\n normalizeCase(target, caseSensitive) !== normalizeCase(searchTerm, caseSensitive),\n },\n\n empty: {\n name: 'empty',\n label: 'Empty',\n unary: true,\n logic: (target) => !isDefined(target) || target.length < 1,\n },\n\n notEmpty: {\n name: 'notEmpty',\n label: 'Not empty',\n unary: true,\n logic: (target) => isDefined(target) && target.length > 0,\n },\n});\n"]}
@@ -0,0 +1,16 @@
1
+ import type { Keys } from '../../internal/types.js';
2
+ import { FilterExpressionTree } from './tree.js';
3
+ import type { FilterExpression } from './types.js';
4
+ export declare class FilterState<T> {
5
+ protected state: Map<Keys<T>, FilterExpressionTree<T>>;
6
+ get empty(): boolean;
7
+ get keys(): (keyof T)[];
8
+ get values(): FilterExpressionTree<T>[];
9
+ get ands(): FilterExpression<T, keyof T>[];
10
+ get ors(): FilterExpression<T, keyof T>[];
11
+ has(key: Keys<T>): boolean;
12
+ get(key: Keys<T>): FilterExpressionTree<T> | undefined;
13
+ delete(key: Keys<T>): boolean;
14
+ clear(): void;
15
+ set(expression: FilterExpression<T>): void;
16
+ }
@@ -0,0 +1,41 @@
1
+ import { FilterExpressionTree } from './tree.js';
2
+ export class FilterState {
3
+ constructor() {
4
+ this.state = new Map();
5
+ }
6
+ get empty() {
7
+ return this.state.size < 1;
8
+ }
9
+ get keys() {
10
+ return Array.from(this.state.keys());
11
+ }
12
+ get values() {
13
+ return Array.from(this.state.values());
14
+ }
15
+ get ands() {
16
+ return this.values.flatMap((each) => each.ands);
17
+ }
18
+ get ors() {
19
+ return this.values.flatMap((each) => each.ors);
20
+ }
21
+ has(key) {
22
+ return this.state.has(key);
23
+ }
24
+ get(key) {
25
+ return this.state.get(key);
26
+ }
27
+ delete(key) {
28
+ return this.state.delete(key);
29
+ }
30
+ clear() {
31
+ this.state.clear();
32
+ }
33
+ set(expression) {
34
+ if (this.has(expression.key)) {
35
+ this.get(expression.key)?.add(expression);
36
+ return;
37
+ }
38
+ this.state.set(expression.key, new FilterExpressionTree(expression.key).add(expression));
39
+ }
40
+ }
41
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/operations/filter/state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAGjD,MAAM,OAAO,WAAW;IAAxB;QACY,UAAK,GAA0C,IAAI,GAAG,EAAE,CAAC;IA8CrE,CAAC;IA5CC,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,IAAW,IAAI;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,IAAW,MAAM;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,IAAW,GAAG;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;IAEM,GAAG,CAAC,GAAY;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAEM,GAAG,CAAC,GAAY;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAEM,MAAM,CAAC,GAAY;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAEM,GAAG,CAAC,UAA+B;QACxC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,oBAAoB,CAAI,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9F,CAAC;CACF","sourcesContent":["import type { Keys } from '../../internal/types.js';\nimport { FilterExpressionTree } from './tree.js';\nimport type { FilterExpression } from './types.js';\n\nexport class FilterState<T> {\n protected state: Map<Keys<T>, FilterExpressionTree<T>> = new Map();\n\n public get empty() {\n return this.state.size < 1;\n }\n\n public get keys() {\n return Array.from(this.state.keys());\n }\n\n public get values() {\n return Array.from(this.state.values());\n }\n\n public get ands() {\n return this.values.flatMap((each) => each.ands);\n }\n\n public get ors() {\n return this.values.flatMap((each) => each.ors);\n }\n\n public has(key: Keys<T>) {\n return this.state.has(key);\n }\n\n public get(key: Keys<T>) {\n return this.state.get(key);\n }\n\n public delete(key: Keys<T>) {\n return this.state.delete(key);\n }\n\n public clear() {\n this.state.clear();\n }\n\n public set(expression: FilterExpression<T>) {\n if (this.has(expression.key)) {\n this.get(expression.key)?.add(expression);\n return;\n }\n\n this.state.set(expression.key, new FilterExpressionTree<T>(expression.key).add(expression));\n }\n}\n"]}
@@ -0,0 +1,17 @@
1
+ import type { Keys } from '../../internal/types.js';
2
+ import type { FilterExpression } from './types.js';
3
+ export declare class FilterExpressionTree<T> {
4
+ key: Keys<T>;
5
+ protected operands: Array<FilterExpression<T>>;
6
+ constructor(key: Keys<T>);
7
+ get empty(): boolean;
8
+ get length(): number;
9
+ get all(): FilterExpression<T, keyof T>[];
10
+ get ands(): FilterExpression<T>[];
11
+ get ors(): FilterExpression<T>[];
12
+ has(expression: FilterExpression<T>): boolean;
13
+ add(expression: FilterExpression<T>): this;
14
+ remove(expression: FilterExpression<T>): this;
15
+ protected iterator(): Generator<FilterExpression<T>, void, unknown>;
16
+ [Symbol.iterator](): Generator<FilterExpression<T>, void, unknown>;
17
+ }
@@ -0,0 +1,46 @@
1
+ export class FilterExpressionTree {
2
+ constructor(key) {
3
+ this.key = key;
4
+ this.operands = [];
5
+ }
6
+ get empty() {
7
+ return this.operands.length < 1;
8
+ }
9
+ get length() {
10
+ return this.operands.length;
11
+ }
12
+ get all() {
13
+ return Array.from(this.iterator());
14
+ }
15
+ get ands() {
16
+ return this.operands.filter((each) => each.criteria === 'and');
17
+ }
18
+ get ors() {
19
+ return this.operands.filter((each) => each.criteria === 'or');
20
+ }
21
+ has(expression) {
22
+ return this.operands.includes(expression);
23
+ }
24
+ add(expression) {
25
+ if (!expression.criteria) {
26
+ expression.criteria = 'and';
27
+ }
28
+ if (!this.has(expression)) {
29
+ this.operands.push(expression);
30
+ }
31
+ return this;
32
+ }
33
+ remove(expression) {
34
+ this.operands = this.operands.filter((each) => each !== expression);
35
+ return this;
36
+ }
37
+ *iterator() {
38
+ for (const operand of this.operands) {
39
+ yield operand;
40
+ }
41
+ }
42
+ [Symbol.iterator]() {
43
+ return this.iterator();
44
+ }
45
+ }
46
+ //# sourceMappingURL=tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../src/operations/filter/tree.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,oBAAoB;IAG/B,YAAmB,GAAY;QAAZ,QAAG,GAAH,GAAG,CAAS;QAFrB,aAAQ,GAA+B,EAAE,CAAC;IAElB,CAAC;IAEnC,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAW,GAAG;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC;IACjE,CAAC;IAED,IAAW,GAAG;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;IAChE,CAAC;IAEM,GAAG,CAAC,UAA+B;QACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IAEM,GAAG,CAAC,UAA+B;QACxC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YACzB,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,UAA+B;QAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;IAES,CAAC,QAAQ;QACjB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,OAAO,CAAC;QAChB,CAAC;IACH,CAAC;IAEM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;CACF","sourcesContent":["import type { Keys } from '../../internal/types.js';\nimport type { FilterExpression } from './types.js';\n\nexport class FilterExpressionTree<T> {\n protected operands: Array<FilterExpression<T>> = [];\n\n constructor(public key: Keys<T>) {}\n\n public get empty() {\n return this.operands.length < 1;\n }\n\n public get length() {\n return this.operands.length;\n }\n\n public get all() {\n return Array.from(this.iterator());\n }\n\n public get ands() {\n return this.operands.filter((each) => each.criteria === 'and');\n }\n\n public get ors() {\n return this.operands.filter((each) => each.criteria === 'or');\n }\n\n public has(expression: FilterExpression<T>) {\n return this.operands.includes(expression);\n }\n\n public add(expression: FilterExpression<T>) {\n if (!expression.criteria) {\n expression.criteria = 'and';\n }\n\n if (!this.has(expression)) {\n this.operands.push(expression);\n }\n\n return this;\n }\n\n public remove(expression: FilterExpression<T>) {\n this.operands = this.operands.filter((each) => each !== expression);\n return this;\n }\n\n protected *iterator() {\n for (const operand of this.operands) {\n yield operand;\n }\n }\n\n public [Symbol.iterator]() {\n return this.iterator();\n }\n}\n"]}
@@ -0,0 +1,57 @@
1
+ import type { Keys } from '../../internal/types.js';
2
+ import type { BooleanOperands } from './operands/boolean.js';
3
+ import type { NumberOperands } from './operands/number.js';
4
+ import type { StringOperands } from './operands/string.js';
5
+ /**
6
+ * Controls how a data record should resolve in a filter operation:
7
+ * - `'and'` - the record must pass all the conditions.
8
+ * - `'or'` - the record must pass at least one condition.
9
+ */
10
+ export type FilterCriteria = 'and' | 'or';
11
+ export type FilterOperationLogic<T> = (target: T, searchTerm: T, caseSensitive?: boolean) => boolean;
12
+ export interface FilterOperation<T> {
13
+ name: string;
14
+ label?: string;
15
+ unary: boolean;
16
+ logic: FilterOperationLogic<T>;
17
+ }
18
+ export type FilterOperands<DataType, Operands extends string> = {
19
+ [key in Operands]: FilterOperation<DataType>;
20
+ };
21
+ /**
22
+ * Represents a filter operation for a given column.
23
+ */
24
+ export interface BaseFilterExpression<T, K extends Keys<T> = Keys<T>> {
25
+ /**
26
+ * The target column for the filter operation.
27
+ */
28
+ key: K;
29
+ /**
30
+ * The filter function which will be executed against the data records.
31
+ */
32
+ condition: FilterOperation<T[K]> | OperandKeys<T[K]>;
33
+ /**
34
+ * The filtering value used in the filter condition function.
35
+ *
36
+ * @remarks
37
+ * Optional for unary conditions.
38
+ */
39
+ searchTerm?: T[K];
40
+ /**
41
+ * Dictates how this expression should resolve in the filter operation in relation to
42
+ * other expressions.
43
+ */
44
+ criteria?: FilterCriteria;
45
+ /**
46
+ * Whether the sort operation should be case sensitive.
47
+ *
48
+ * @remarks
49
+ * If not provided, the value is resolved based on the column filter configuration (if any).
50
+ */
51
+ caseSensitive?: boolean;
52
+ }
53
+ /**
54
+ * See {@link BaseFilterExpression} for the full documentation.
55
+ */
56
+ export type FilterExpression<T, K extends Keys<T> = Keys<T>> = K extends Keys<T> ? BaseFilterExpression<T, K> : never;
57
+ export type OperandKeys<Type> = Type extends number ? keyof typeof NumberOperands : Type extends string ? keyof typeof StringOperands : Type extends boolean ? keyof typeof BooleanOperands : Type;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/operations/filter/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Keys } from '../../internal/types.js';\nimport type { BooleanOperands } from './operands/boolean.js';\nimport type { NumberOperands } from './operands/number.js';\nimport type { StringOperands } from './operands/string.js';\n\n/**\n * Controls how a data record should resolve in a filter operation:\n * - `'and'` - the record must pass all the conditions.\n * - `'or'` - the record must pass at least one condition.\n */\nexport type FilterCriteria = 'and' | 'or';\n\nexport type FilterOperationLogic<T> = (\n target: T,\n searchTerm: T,\n caseSensitive?: boolean\n) => boolean;\n\nexport interface FilterOperation<T> {\n name: string;\n label?: string;\n unary: boolean;\n logic: FilterOperationLogic<T>;\n}\n\nexport type FilterOperands<DataType, Operands extends string> = {\n [key in Operands]: FilterOperation<DataType>;\n};\n\n/**\n * Represents a filter operation for a given column.\n */\nexport interface BaseFilterExpression<T, K extends Keys<T> = Keys<T>> {\n /**\n * The target column for the filter operation.\n */\n key: K;\n /**\n * The filter function which will be executed against the data records.\n */\n condition: FilterOperation<T[K]> | OperandKeys<T[K]>;\n\n /**\n * The filtering value used in the filter condition function.\n *\n * @remarks\n * Optional for unary conditions.\n */\n searchTerm?: T[K];\n /**\n * Dictates how this expression should resolve in the filter operation in relation to\n * other expressions.\n */\n criteria?: FilterCriteria;\n /**\n * Whether the sort operation should be case sensitive.\n *\n * @remarks\n * If not provided, the value is resolved based on the column filter configuration (if any).\n */\n caseSensitive?: boolean;\n}\n\n/**\n * See {@link BaseFilterExpression} for the full documentation.\n */\nexport type FilterExpression<T, K extends Keys<T> = Keys<T>> = K extends Keys<T>\n ? BaseFilterExpression<T, K>\n : never;\n\nexport type OperandKeys<Type> = Type extends number\n ? keyof typeof NumberOperands\n : Type extends string\n ? keyof typeof StringOperands\n : Type extends boolean\n ? keyof typeof BooleanOperands\n : Type;\n"]}
@@ -0,0 +1,8 @@
1
+ import DataOperation from './base.js';
2
+ import type { FilterState } from './filter/state.js';
3
+ import type { FilterExpression } from './filter/types.js';
4
+ export default class FilterDataOperation<T extends object> extends DataOperation<T> {
5
+ protected resolveFilter(record: T, expr: FilterExpression<T>): boolean;
6
+ protected match(record: T, ands: FilterExpression<T>[], ors: FilterExpression<T>[]): boolean;
7
+ apply(data: T[], state: FilterState<T>): T[];
8
+ }
@@ -0,0 +1,22 @@
1
+ import DataOperation from './base.js';
2
+ export default class FilterDataOperation extends DataOperation {
3
+ resolveFilter(record, expr) {
4
+ const condition = expr.condition;
5
+ return condition.logic(this.resolveValue(record, expr.key), expr.searchTerm, expr.caseSensitive);
6
+ }
7
+ match(record, ands, ors) {
8
+ for (const or of ors) {
9
+ if (this.resolveFilter(record, or)) {
10
+ return this.match(record, ands.filter((f) => f.key !== or.key), []);
11
+ }
12
+ }
13
+ return ands.every((f) => this.resolveFilter(record, f));
14
+ }
15
+ apply(data, state) {
16
+ if (state.empty)
17
+ return data;
18
+ const { ands, ors } = state;
19
+ return data.filter((record) => this.match(record, ands, ors));
20
+ }
21
+ }
22
+ //# sourceMappingURL=filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/operations/filter.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,WAAW,CAAC;AAItC,MAAM,CAAC,OAAO,OAAO,mBAAsC,SAAQ,aAAgB;IACvE,aAAa,CAAC,MAAS,EAAE,IAAyB;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,SAA+B,CAAC;QACvD,OAAO,SAAS,CAAC,KAAK,CAEpB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAM,EACxC,IAAI,CAAC,UAAe,EACpB,IAAI,CAAC,aAAa,CACnB,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,MAAS,EAAE,IAA2B,EAAE,GAA0B;QAChF,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC,KAAK,CACf,MAAM,EACN,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,EACpC,EAAE,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,IAAS,EAAE,KAAqB;QAC3C,IAAI,KAAK,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;CACF","sourcesContent":["import DataOperation from './base.js';\nimport type { FilterState } from './filter/state.js';\nimport type { FilterExpression, FilterOperation } from './filter/types.js';\n\nexport default class FilterDataOperation<T extends object> extends DataOperation<T> {\n protected resolveFilter(record: T, expr: FilterExpression<T>) {\n const condition = expr.condition as FilterOperation<T>;\n return condition.logic(\n // XXX: Types\n this.resolveValue(record, expr.key) as T,\n expr.searchTerm as T,\n expr.caseSensitive\n );\n }\n\n protected match(record: T, ands: FilterExpression<T>[], ors: FilterExpression<T>[]): boolean {\n for (const or of ors) {\n if (this.resolveFilter(record, or)) {\n return this.match(\n record,\n ands.filter((f) => f.key !== or.key),\n []\n );\n }\n }\n return ands.every((f) => this.resolveFilter(record, f));\n }\n\n public apply(data: T[], state: FilterState<T>): T[] {\n if (state.empty) return data;\n\n const { ands, ors } = state;\n return data.filter((record) => this.match(record, ands, ors));\n }\n}\n"]}
@@ -0,0 +1,49 @@
1
+ import type { Keys } from '../../internal/types.js';
2
+ /**
3
+ * Sort direction for a given sort expression.
4
+ *
5
+ * @remarks
6
+ * `none` is used
7
+ */
8
+ export type SortingDirection = 'ascending' | 'descending' | 'none';
9
+ /**
10
+ * Custom comparer function for a given column used when sorting is performed.
11
+ */
12
+ export type BaseSortComparer<T, K extends Keys<T> = Keys<T>> = (a: T[K], b: T[K]) => number;
13
+ /**
14
+ * See {@link BaseSortComparer} for the full documentation.
15
+ */
16
+ export type SortComparer<T, K extends Keys<T> = Keys<T>> = K extends Keys<T> ? BaseSortComparer<T, K> : never;
17
+ /**
18
+ * Represents a sort operation for a given column.
19
+ */
20
+ export interface BaseSortExpression<T, K extends Keys<T> = Keys<T>> {
21
+ /**
22
+ * The target column.
23
+ */
24
+ key: K;
25
+ /**
26
+ * Sort direction for this operation.
27
+ */
28
+ direction: SortingDirection;
29
+ /**
30
+ * Whether the sort operation should be case sensitive.
31
+ *
32
+ * @remarks
33
+ * If not provided, the value is resolved based on the column sort configuration (if any).
34
+ */
35
+ caseSensitive?: boolean;
36
+ /**
37
+ * Custom comparer function for this operation.
38
+ *
39
+ * @remarks
40
+ * If not provided, the value is resolved based on the column sort configuration (if any).
41
+ */
42
+ comparer?: SortComparer<T, K>;
43
+ }
44
+ /**
45
+ * See {@link BaseSortExpression} for the full documentation.
46
+ */
47
+ export type SortExpression<T, K extends Keys<T> = Keys<T>> = K extends Keys<T> ? BaseSortExpression<T, K> : never;
48
+ /** Represents the sort state of the grid. */
49
+ export type SortState<T> = Map<Keys<T>, SortExpression<T>>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/operations/sort/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Keys } from '../../internal/types.js';\n\n/**\n * Sort direction for a given sort expression.\n *\n * @remarks\n * `none` is used\n */\nexport type SortingDirection = 'ascending' | 'descending' | 'none';\n\n/**\n * Custom comparer function for a given column used when sorting is performed.\n */\nexport type BaseSortComparer<T, K extends Keys<T> = Keys<T>> = (a: T[K], b: T[K]) => number;\n\n/**\n * See {@link BaseSortComparer} for the full documentation.\n */\nexport type SortComparer<T, K extends Keys<T> = Keys<T>> = K extends Keys<T>\n ? BaseSortComparer<T, K>\n : never;\n\n/**\n * Represents a sort operation for a given column.\n */\nexport interface BaseSortExpression<T, K extends Keys<T> = Keys<T>> {\n /**\n * The target column.\n */\n key: K;\n /**\n * Sort direction for this operation.\n */\n direction: SortingDirection;\n /**\n * Whether the sort operation should be case sensitive.\n *\n * @remarks\n * If not provided, the value is resolved based on the column sort configuration (if any).\n */\n caseSensitive?: boolean;\n /**\n * Custom comparer function for this operation.\n *\n * @remarks\n * If not provided, the value is resolved based on the column sort configuration (if any).\n */\n comparer?: SortComparer<T, K>;\n}\n\n/**\n * See {@link BaseSortExpression} for the full documentation.\n */\nexport type SortExpression<T, K extends Keys<T> = Keys<T>> = K extends Keys<T>\n ? BaseSortExpression<T, K>\n : never;\n\n/** Represents the sort state of the grid. */\nexport type SortState<T> = Map<Keys<T>, SortExpression<T>>;\n"]}
@@ -0,0 +1,8 @@
1
+ import DataOperation from './base.js';
2
+ import type { SortExpression, SortState } from './sort/types.js';
3
+ export default class SortDataOperation<T> extends DataOperation<T> {
4
+ protected orderBy: Map<string, number>;
5
+ protected compareValues<U>(first: U, second: U): number;
6
+ protected compareObjects(first: T, second: T, expression: SortExpression<T>): number;
7
+ apply(data: T[], state: SortState<T>): T[];
8
+ }
@@ -0,0 +1,37 @@
1
+ import DataOperation from './base.js';
2
+ export default class SortDataOperation extends DataOperation {
3
+ constructor() {
4
+ super(...arguments);
5
+ this.orderBy = new Map(Object.entries({
6
+ ascending: 1,
7
+ descending: -1,
8
+ }));
9
+ }
10
+ compareValues(first, second) {
11
+ if (typeof first === 'string' && typeof second === 'string') {
12
+ return first.localeCompare(second);
13
+ }
14
+ return first > second ? 1 : first < second ? -1 : 0;
15
+ }
16
+ compareObjects(first, second, expression) {
17
+ const { direction, key, caseSensitive, comparer } = expression;
18
+ const a = this.resolveCase(this.resolveValue(first, key), caseSensitive);
19
+ const b = this.resolveCase(this.resolveValue(second, key), caseSensitive);
20
+ return (this.orderBy.get(direction) * (comparer?.(a, b) ?? this.compareValues(a, b)));
21
+ }
22
+ apply(data, state) {
23
+ const expressions = Array.from(state.values());
24
+ const length = expressions.length;
25
+ data.sort((a, b) => {
26
+ let i = 0;
27
+ let result = 0;
28
+ while (i < length && !result) {
29
+ result = this.compareObjects(a, b, expressions[i]);
30
+ i++;
31
+ }
32
+ return result;
33
+ });
34
+ return data;
35
+ }
36
+ }
37
+ //# sourceMappingURL=sort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sort.js","sourceRoot":"","sources":["../../src/operations/sort.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,WAAW,CAAC;AAGtC,MAAM,CAAC,OAAO,OAAO,iBAAqB,SAAQ,aAAgB;IAAlE;;QACY,YAAO,GAAG,IAAI,GAAG,CACzB,MAAM,CAAC,OAAO,CAAC;YACb,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC,CAAC;SACf,CAAC,CACH,CAAC;IAuCJ,CAAC;IArCW,aAAa,CAAI,KAAQ,EAAE,MAAS;QAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC5D,OAAO,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAES,cAAc,CAAC,KAAQ,EAAE,MAAS,EAAE,UAA6B;QACzE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC;QAE/D,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC;QACzE,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC;QAG1E,OAAO,CACL,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAQ,EAAE,CAAQ,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAC5F,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAS,EAAE,KAAmB;QACzC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;QAElC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACjB,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,MAAM,GAAG,CAAC,CAAC;YAEf,OAAO,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnD,CAAC,EAAE,CAAC;YACN,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;CACF","sourcesContent":["import DataOperation from './base.js';\nimport type { SortExpression, SortState } from './sort/types.js';\n\nexport default class SortDataOperation<T> extends DataOperation<T> {\n protected orderBy = new Map(\n Object.entries({\n ascending: 1,\n descending: -1,\n })\n );\n\n protected compareValues<U>(first: U, second: U) {\n if (typeof first === 'string' && typeof second === 'string') {\n return first.localeCompare(second);\n }\n return first > second ? 1 : first < second ? -1 : 0;\n }\n\n protected compareObjects(first: T, second: T, expression: SortExpression<T>) {\n const { direction, key, caseSensitive, comparer } = expression;\n\n const a = this.resolveCase(this.resolveValue(first, key), caseSensitive);\n const b = this.resolveCase(this.resolveValue(second, key), caseSensitive);\n\n // TODO: Remove casting as any\n return (\n this.orderBy.get(direction)! * (comparer?.(a as any, b as any) ?? this.compareValues(a, b))\n );\n }\n\n public apply(data: T[], state: SortState<T>) {\n const expressions = Array.from(state.values());\n const length = expressions.length;\n\n data.sort((a, b) => {\n let i = 0;\n let result = 0;\n\n while (i < length && !result) {\n result = this.compareObjects(a, b, expressions[i]);\n i++;\n }\n\n return result;\n });\n\n return data;\n }\n}\n"]}
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "igniteui-grid-lite",
3
+ "version": "1.0.0-alpha.9",
4
+ "description": "Web component data grid following open-wc recommendations",
5
+ "keywords": [
6
+ "lit",
7
+ "web-component",
8
+ "lit-element"
9
+ ],
10
+ "license": "MIT",
11
+ "author": "Infragistics",
12
+ "exports": {
13
+ ".": {
14
+ "types": "./index.d.ts",
15
+ "default": "./index.js"
16
+ },
17
+ "./define": {
18
+ "types": "./define.d.ts",
19
+ "default": "./define.js"
20
+ }
21
+ },
22
+ "type": "module",
23
+ "sideEffects": false,
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "git+https://github.com/igniteui/igniteui-grid-lite.git"
27
+ },
28
+ "bugs": {
29
+ "url": "https://github.com/igniteui/igniteui-grid-lite/issues"
30
+ },
31
+ "engines": {
32
+ "node": ">=20"
33
+ },
34
+ "customElements": "custom-elements.json",
35
+ "dependencies": {
36
+ "@lit-labs/virtualizer": "~2.1.0",
37
+ "@lit/context": "~1.1.5",
38
+ "igniteui-webcomponents": "~6.1.0",
39
+ "lit": "^3.3.0"
40
+ }
41
+ }
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,3 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}`;
3
+ //# sourceMappingURL=_common.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_common.css.js","sourceRoot":"","sources":["../../src/styles/_common.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,oVAAoV,CAAC","sourcesContent":["import { css } from 'lit';\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}`;"]}
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,3 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}:host{position:relative;display:inline-flex;flex:1 0 0;align-items:center;padding:0 max(var(--is-large, 1)*max(1.5rem, -1 * 1.5rem),var(--is-medium, 1)*max(1rem, -1 * 1rem),var(--is-small, 1)*max(0.5rem, -1 * 0.5rem));color:inherit;border-right:var(--igx-row-border-width, var(--row-border-width)) solid rgba(0,0,0,0);font-size:0.8125rem;overflow-wrap:anywhere}:host:last-of-type{border-right:0}:host([active]){outline:none;box-shadow:inset 0 0 0 0.0625rem var(--igx-cell-active-border-color, var(--cell-active-border-color))}:host(:last-child){border-inline-end:none}igc-input{position:absolute;left:0;height:calc(100% - 0.0625rem*2);width:100%}igc-input::part(container),igc-input::part(input){border-color:rgba(0,0,0,0);box-shadow:none;height:100%}igc-input::part(container),igc-input::part(input),igc-select::part(container),igc-select::part(input){background:inherit;color:inherit;font-size:0.8125rem}igc-input::part(helper-text)::after,igc-input::part(container)::after,igc-select::part(helper-text)::after,igc-select::part(container)::after{display:none}`;
3
+ //# sourceMappingURL=body-cell.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"body-cell.css.js","sourceRoot":"","sources":["../../../src/styles/body-cell/body-cell.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,y3CAAy3C,CAAC","sourcesContent":["import { css } from 'lit';\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}:host{position:relative;display:inline-flex;flex:1 0 0;align-items:center;padding:0 max(var(--is-large, 1)*max(1.5rem, -1 * 1.5rem),var(--is-medium, 1)*max(1rem, -1 * 1rem),var(--is-small, 1)*max(0.5rem, -1 * 0.5rem));color:inherit;border-right:var(--igx-row-border-width, var(--row-border-width)) solid rgba(0,0,0,0);font-size:0.8125rem;overflow-wrap:anywhere}:host:last-of-type{border-right:0}:host([active]){outline:none;box-shadow:inset 0 0 0 0.0625rem var(--igx-cell-active-border-color, var(--cell-active-border-color))}:host(:last-child){border-inline-end:none}igc-input{position:absolute;left:0;height:calc(100% - 0.0625rem*2);width:100%}igc-input::part(container),igc-input::part(input){border-color:rgba(0,0,0,0);box-shadow:none;height:100%}igc-input::part(container),igc-input::part(input),igc-select::part(container),igc-select::part(input){background:inherit;color:inherit;font-size:0.8125rem}igc-input::part(helper-text)::after,igc-input::part(container)::after,igc-select::part(helper-text)::after,igc-select::part(container)::after{display:none}`;"]}
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,3 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}:host{display:grid;width:100%;min-height:max(var(--is-large, 1)*max(3.125rem, -1 * 3.125rem),var(--is-medium, 1)*max(2.125rem, -1 * 2.125rem),var(--is-small, 1)*max(1.5rem, -1 * 1.5rem));border-block-end:var(--igx-row-border-width, var(--header-border-width)) var(--igx-row-border-style, var(--header-border-style)) var(--igx-row-border-color, var(--header-border-color));background:var(--igx-row-odd-background, var(--row-odd-background));color:var(--igx-row-odd-text-color, var(--row-odd-text-color));z-index:var(--z-index-base)}:host(:last-of-type){border-bottom:0}:host(:nth-of-type(even)){background:var(--igx-row-even-background, var(--row-even-background));color:var(--igx-row-even-text-color, var(--row-even-text-color))}:host(:hover){background:var(--igx-row-hover-background, var(--row-hover-background));color:var(--igx-row-hover-text-color, var(--row-hover-text-color))}`;
3
+ //# sourceMappingURL=body-row.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"body-row.css.js","sourceRoot":"","sources":["../../../src/styles/body-row/body-row.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,ssCAAssC,CAAC","sourcesContent":["import { css } from 'lit';\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}:host{display:grid;width:100%;min-height:max(var(--is-large, 1)*max(3.125rem, -1 * 3.125rem),var(--is-medium, 1)*max(2.125rem, -1 * 2.125rem),var(--is-small, 1)*max(1.5rem, -1 * 1.5rem));border-block-end:var(--igx-row-border-width, var(--header-border-width)) var(--igx-row-border-style, var(--header-border-style)) var(--igx-row-border-color, var(--header-border-color));background:var(--igx-row-odd-background, var(--row-odd-background));color:var(--igx-row-odd-text-color, var(--row-odd-text-color));z-index:var(--z-index-base)}:host(:last-of-type){border-bottom:0}:host(:nth-of-type(even)){background:var(--igx-row-even-background, var(--row-even-background));color:var(--igx-row-even-text-color, var(--row-even-text-color))}:host(:hover){background:var(--igx-row-hover-background, var(--row-hover-background));color:var(--igx-row-hover-text-color, var(--row-hover-text-color))}`;"]}
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,3 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}:host{--ig-size: 1;display:grid;grid-row:filter-row;min-height:max(var(--is-large, 1)*max(3.125rem, -1 * 3.125rem),var(--is-medium, 1)*max(2.125rem, -1 * 2.125rem),var(--is-small, 1)*max(1.5rem, -1 * 1.5rem));background:var(--igx-header-background, var(--header-background));color:var(--igx-header-text-color, var(--header-text-color));border-block-end:var(--igx-header-border-width, var(--header-border-width)) var(--igx-header-border-style, var(--header-border-style)) var(--igx-header-border-color, var(--header-border-color));z-index:var(--z-index-base);padding-inline-end:var(--scrollbar-offset)}[part=filter-row-preview]{display:flex;align-items:center;overflow:hidden;padding:0 max(var(--is-large, 1)*max(1.5rem, -1 * 1.5rem),var(--is-medium, 1)*max(1rem, -1 * 1rem),var(--is-small, 1)*max(0.5rem, -1 * 0.5rem));background:var(--igx-filtering-row-background, var(--filtering-row-background));color:var(--igx-filtering-row-text-color, var(--filtering-row-text-color));border-inline-end:var(--igx-header-border-width, var(--header-border-width)) var(--igx-header-border-style, var(--header-border-style)) var(--igx-header-border-color, var(--header-border-color))}[part~=active-state]{background:var(--igx-filtering-row-background, var(--filtering-row-background));color:var(--igx-filtering-row-text-color, var(--filtering-row-text-color));min-height:max(var(--is-large, 1)*max(3.125rem, -1 * 3.125rem),var(--is-medium, 1)*max(2.125rem, -1 * 2.125rem),var(--is-small, 1)*max(1.5rem, -1 * 1.5rem));min-width:100%;display:flex;align-items:center;gap:.5rem;position:relative;inset-block-start:-0.0625rem}[part=filter-row-preview]:last-of-type{border-inline-end:none}[part~=filter-row-input]{padding-inline-start:max(var(--is-large, 1)*max(1.5rem, -1 * 1.5rem),var(--is-medium, 1)*max(1rem, -1 * 1rem),var(--is-small, 1)*max(0.5rem, -1 * 0.5rem))}[part~=filter-row-actions]{padding-inline-end:max(var(--is-large, 1)*max(1.5rem, -1 * 1.5rem),var(--is-medium, 1)*max(1rem, -1 * 1rem),var(--is-small, 1)*max(0.5rem, -1 * 0.5rem))}[part~=filter-row-input],[part~=filter-row-filters],[part~=filter-row-actions]{display:flex;align-items:center}[part~=filter-row-filters]{flex:1;overflow:hidden}igc-input::part(container),igc-input::part(input){background:inherit;color:inherit}`;
3
+ //# sourceMappingURL=filter-row.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-row.css.js","sourceRoot":"","sources":["../../../src/styles/filter-row/filter-row.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,ojFAAojF,CAAC","sourcesContent":["import { css } from 'lit';\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}:host{--ig-size: 1;display:grid;grid-row:filter-row;min-height:max(var(--is-large, 1)*max(3.125rem, -1 * 3.125rem),var(--is-medium, 1)*max(2.125rem, -1 * 2.125rem),var(--is-small, 1)*max(1.5rem, -1 * 1.5rem));background:var(--igx-header-background, var(--header-background));color:var(--igx-header-text-color, var(--header-text-color));border-block-end:var(--igx-header-border-width, var(--header-border-width)) var(--igx-header-border-style, var(--header-border-style)) var(--igx-header-border-color, var(--header-border-color));z-index:var(--z-index-base);padding-inline-end:var(--scrollbar-offset)}[part=filter-row-preview]{display:flex;align-items:center;overflow:hidden;padding:0 max(var(--is-large, 1)*max(1.5rem, -1 * 1.5rem),var(--is-medium, 1)*max(1rem, -1 * 1rem),var(--is-small, 1)*max(0.5rem, -1 * 0.5rem));background:var(--igx-filtering-row-background, var(--filtering-row-background));color:var(--igx-filtering-row-text-color, var(--filtering-row-text-color));border-inline-end:var(--igx-header-border-width, var(--header-border-width)) var(--igx-header-border-style, var(--header-border-style)) var(--igx-header-border-color, var(--header-border-color))}[part~=active-state]{background:var(--igx-filtering-row-background, var(--filtering-row-background));color:var(--igx-filtering-row-text-color, var(--filtering-row-text-color));min-height:max(var(--is-large, 1)*max(3.125rem, -1 * 3.125rem),var(--is-medium, 1)*max(2.125rem, -1 * 2.125rem),var(--is-small, 1)*max(1.5rem, -1 * 1.5rem));min-width:100%;display:flex;align-items:center;gap:.5rem;position:relative;inset-block-start:-0.0625rem}[part=filter-row-preview]:last-of-type{border-inline-end:none}[part~=filter-row-input]{padding-inline-start:max(var(--is-large, 1)*max(1.5rem, -1 * 1.5rem),var(--is-medium, 1)*max(1rem, -1 * 1rem),var(--is-small, 1)*max(0.5rem, -1 * 0.5rem))}[part~=filter-row-actions]{padding-inline-end:max(var(--is-large, 1)*max(1.5rem, -1 * 1.5rem),var(--is-medium, 1)*max(1rem, -1 * 1rem),var(--is-small, 1)*max(0.5rem, -1 * 0.5rem))}[part~=filter-row-input],[part~=filter-row-filters],[part~=filter-row-actions]{display:flex;align-items:center}[part~=filter-row-filters]{flex:1;overflow:hidden}igc-input::part(container),igc-input::part(input){background:inherit;color:inherit}`;"]}
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,3 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `:host{--header-border-color: hsl(from var(--ig-gray-200) h s l/0.28);--row-hover-background: var(--ig-gray-100);--row-hover-text-color: var(--ig-gray-100-contrast);--row-border-color: hsl(from var(--ig-gray-200) h s l/0.24);--cell-active-border-color: var(--ig-primary-500);--content-background: var(--ig-gray-50);--content-text-color: var(--ig-gray-50-contrast);--header-background: var(--ig-surface-500);--header-text-color: var(--ig-surface-500-contrast);--header-border-width: 0.0625rem;--header-border-style: solid;--filtering-header-background: var(--ig-gray-50);--filtering-row-background: var(--ig-gray-50);--filtering-row-text-color: var(--ig-gray-50-contrast);--sorted-header-icon-color: var(--ig-primary-500);--icon-color: "currentColor";--row-even-background: var(--ig-gray-50);--row-even-text-color: var(--ig-gray-50-contrast);--row-odd-background: var(--ig-gray-50);--row-odd-text-color: var(--ig-gray-50-contrast);--row-border-style: solid;--row-border-width: 0.0625rem;--grid-resize-line-color: var(--ig-primary-500)}`;
3
+ //# sourceMappingURL=grid.bootstrap.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/styles/grid/themes/dark/grid.bootstrap.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,2gCAA2gC,CAAC","sourcesContent":["import { css } from 'lit';\nexport const styles = css`:host{--header-border-color: hsl(from var(--ig-gray-200) h s l/0.28);--row-hover-background: var(--ig-gray-100);--row-hover-text-color: var(--ig-gray-100-contrast);--row-border-color: hsl(from var(--ig-gray-200) h s l/0.24);--cell-active-border-color: var(--ig-primary-500);--content-background: var(--ig-gray-50);--content-text-color: var(--ig-gray-50-contrast);--header-background: var(--ig-surface-500);--header-text-color: var(--ig-surface-500-contrast);--header-border-width: 0.0625rem;--header-border-style: solid;--filtering-header-background: var(--ig-gray-50);--filtering-row-background: var(--ig-gray-50);--filtering-row-text-color: var(--ig-gray-50-contrast);--sorted-header-icon-color: var(--ig-primary-500);--icon-color: \"currentColor\";--row-even-background: var(--ig-gray-50);--row-even-text-color: var(--ig-gray-50-contrast);--row-odd-background: var(--ig-gray-50);--row-odd-text-color: var(--ig-gray-50-contrast);--row-border-style: solid;--row-border-width: 0.0625rem;--grid-resize-line-color: var(--ig-primary-500)}`;"]}
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,3 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `:host{--header-background: var(--ig-gray-100);--header-text-color: var(--ig-gray-100-contrast);--header-border-color: hsl(from var(--ig-gray-200) h s l/0.24);--row-hover-background: var(--ig-gray-100);--row-hover-text-color: var(--ig-gray-100-contrast);--row-border-color: hsl(from var(--ig-gray-200) h s l/0.24);--cell-active-border-color: var(--ig-primary-100);--content-background: var(var(--ig-gray-50));--content-text-color: var(var(--ig-gray-50-contrast));--header-border-width: 0.0625rem;--header-border-style: solid;--filtering-header-background: var(--ig-gray-50);--filtering-row-background: var(--ig-gray-50);--filtering-row-text-color: var(--ig-gray-50-contrast);--sorted-header-icon-color: var(--ig-secondary-500);--icon-color: "currentColor";--row-even-background: var(--ig-gray-50);--row-even-text-color: var(--ig-gray-50-contrast);--row-odd-background: var(--ig-gray-50);--row-odd-text-color: var(--ig-gray-50-contrast);--row-border-style: var(--header-border-style);--row-border-width: var(--header-border-width);--grid-resize-line-color: var(--ig-primary-500)}`;
3
+ //# sourceMappingURL=grid.fluent.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.fluent.css.js","sourceRoot":"","sources":["../../../../../src/styles/grid/themes/dark/grid.fluent.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,ujCAAujC,CAAC","sourcesContent":["import { css } from 'lit';\nexport const styles = css`:host{--header-background: var(--ig-gray-100);--header-text-color: var(--ig-gray-100-contrast);--header-border-color: hsl(from var(--ig-gray-200) h s l/0.24);--row-hover-background: var(--ig-gray-100);--row-hover-text-color: var(--ig-gray-100-contrast);--row-border-color: hsl(from var(--ig-gray-200) h s l/0.24);--cell-active-border-color: var(--ig-primary-100);--content-background: var(var(--ig-gray-50));--content-text-color: var(var(--ig-gray-50-contrast));--header-border-width: 0.0625rem;--header-border-style: solid;--filtering-header-background: var(--ig-gray-50);--filtering-row-background: var(--ig-gray-50);--filtering-row-text-color: var(--ig-gray-50-contrast);--sorted-header-icon-color: var(--ig-secondary-500);--icon-color: \"currentColor\";--row-even-background: var(--ig-gray-50);--row-even-text-color: var(--ig-gray-50-contrast);--row-odd-background: var(--ig-gray-50);--row-odd-text-color: var(--ig-gray-50-contrast);--row-border-style: var(--header-border-style);--row-border-width: var(--header-border-width);--grid-resize-line-color: var(--ig-primary-500)}`;"]}
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,3 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `:host{--content-background: var(--ig-gray-50);--content-text-color: var(--ig-gray-50-contrast);--header-background: var(--ig-surface-500);--header-text-color: var(--ig-surface-500-contrast);--header-border-color: hsl(from var(--ig-gray-100) h s l/0.24);--sorted-header-icon-color: var(--ig-surface-500-contrast);--row-hover-background: var(--ig-gray-200);--row-even-background: var(--ig-gray-100);--row-even-text-color: var(--ig-gray-100-contrast);--row-odd-background: var(--ig-gray-100);--row-odd-text-color: var(--ig-gray-100-contrast);--row-border-color: hsl(from var(--ig-gray-50) h s l/0.24);--cell-active-border-color: var(--ig-surface-500-contrast);--header-border-width: 0.0625rem;--header-border-style: solid;--filtering-header-background: var(--ig-gray-50);--filtering-row-background: var(--ig-gray-50);--filtering-row-text-color: var(--ig-gray-50-contrast);--icon-color: "currentColor";--row-hover-text-color: var(--ig-gray-200-contrast);--row-border-style: var(--header-border-style);--row-border-width: var(--header-border-width);--grid-resize-line-color: var(--ig-primary-500)}`;
3
+ //# sourceMappingURL=grid.indigo.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.indigo.css.js","sourceRoot":"","sources":["../../../../../src/styles/grid/themes/dark/grid.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,skCAAskC,CAAC","sourcesContent":["import { css } from 'lit';\nexport const styles = css`:host{--content-background: var(--ig-gray-50);--content-text-color: var(--ig-gray-50-contrast);--header-background: var(--ig-surface-500);--header-text-color: var(--ig-surface-500-contrast);--header-border-color: hsl(from var(--ig-gray-100) h s l/0.24);--sorted-header-icon-color: var(--ig-surface-500-contrast);--row-hover-background: var(--ig-gray-200);--row-even-background: var(--ig-gray-100);--row-even-text-color: var(--ig-gray-100-contrast);--row-odd-background: var(--ig-gray-100);--row-odd-text-color: var(--ig-gray-100-contrast);--row-border-color: hsl(from var(--ig-gray-50) h s l/0.24);--cell-active-border-color: var(--ig-surface-500-contrast);--header-border-width: 0.0625rem;--header-border-style: solid;--filtering-header-background: var(--ig-gray-50);--filtering-row-background: var(--ig-gray-50);--filtering-row-text-color: var(--ig-gray-50-contrast);--icon-color: \"currentColor\";--row-hover-text-color: var(--ig-gray-200-contrast);--row-border-style: var(--header-border-style);--row-border-width: var(--header-border-width);--grid-resize-line-color: var(--ig-primary-500)}`;"]}
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;