igniteui-grid-lite 0.0.1 → 0.1.0

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 (200) hide show
  1. package/README.md +233 -8
  2. package/components/cell.d.ts +1 -1
  3. package/components/cell.js +2 -3
  4. package/components/cell.js.map +1 -1
  5. package/components/column.d.ts +39 -0
  6. package/components/column.js +77 -0
  7. package/components/column.js.map +1 -0
  8. package/components/filter-row.d.ts +1 -1
  9. package/components/filter-row.js +45 -33
  10. package/components/filter-row.js.map +1 -1
  11. package/components/grid.d.ts +35 -35
  12. package/components/grid.js +147 -107
  13. package/components/grid.js.map +1 -1
  14. package/components/header-row.d.ts +5 -8
  15. package/components/header-row.js +18 -28
  16. package/components/header-row.js.map +1 -1
  17. package/components/header.d.ts +2 -1
  18. package/components/header.js +13 -11
  19. package/components/header.js.map +1 -1
  20. package/components/row.d.ts +3 -5
  21. package/components/row.js +6 -12
  22. package/components/row.js.map +1 -1
  23. package/components/virtualizer.d.ts +0 -1
  24. package/components/virtualizer.js +0 -5
  25. package/components/virtualizer.js.map +1 -1
  26. package/controllers/data-operation.d.ts +4 -1
  27. package/controllers/data-operation.js +5 -1
  28. package/controllers/data-operation.js.map +1 -1
  29. package/controllers/dom.d.ts +9 -10
  30. package/controllers/dom.js +20 -34
  31. package/controllers/dom.js.map +1 -1
  32. package/controllers/filter.d.ts +7 -4
  33. package/controllers/filter.js +8 -5
  34. package/controllers/filter.js.map +1 -1
  35. package/controllers/navigation.d.ts +8 -8
  36. package/controllers/navigation.js +28 -28
  37. package/controllers/navigation.js.map +1 -1
  38. package/controllers/sort.d.ts +4 -4
  39. package/controllers/sort.js +2 -2
  40. package/controllers/sort.js.map +1 -1
  41. package/controllers/state.d.ts +32 -15
  42. package/controllers/state.js +54 -17
  43. package/controllers/state.js.map +1 -1
  44. package/custom-elements.json +924 -190
  45. package/docs/assets/hierarchy.js +1 -1
  46. package/docs/assets/highlight.css +27 -13
  47. package/docs/assets/main.js +2 -2
  48. package/docs/assets/navigation.js +1 -1
  49. package/docs/assets/search.js +1 -1
  50. package/docs/assets/style.css +3 -3
  51. package/docs/classes/IgcGridLite.html +24 -26
  52. package/docs/classes/IgcGridLiteColumn.html +38 -0
  53. package/docs/hierarchy.html +1 -1
  54. package/docs/index.html +193 -11
  55. package/docs/interfaces/BaseColumnConfiguration.html +11 -11
  56. package/docs/interfaces/BaseColumnSortConfiguration.html +4 -4
  57. package/docs/interfaces/BaseFilterExpression.html +6 -6
  58. package/docs/interfaces/BaseIgcCellContext.html +6 -6
  59. package/docs/interfaces/BaseSortingExpression.html +12 -0
  60. package/docs/interfaces/ColumnFilterConfiguration.html +3 -3
  61. package/docs/interfaces/DataPipelineConfiguration.html +4 -4
  62. package/docs/interfaces/GridLiteSortingOptions.html +4 -0
  63. package/docs/interfaces/IgcFilteredEvent.html +4 -4
  64. package/docs/interfaces/IgcFilteringEvent.html +5 -5
  65. package/docs/interfaces/IgcGridLiteEventMap.html +6 -6
  66. package/docs/interfaces/IgcHeaderContext.html +4 -4
  67. package/docs/media/LICENSE +9 -0
  68. package/docs/modules.html +1 -1
  69. package/docs/types/BasePropertyType.html +2 -2
  70. package/docs/types/BaseSortComparer.html +2 -2
  71. package/docs/types/ColumnConfiguration.html +2 -2
  72. package/docs/types/ColumnSortConfiguration.html +2 -2
  73. package/docs/types/DataPipelineHook.html +2 -2
  74. package/docs/types/DataPipelineParams.html +5 -5
  75. package/docs/types/DataType.html +2 -2
  76. package/docs/types/FilterCriteria.html +2 -2
  77. package/docs/types/FilterExpression.html +2 -2
  78. package/docs/types/IgcCellContext.html +2 -2
  79. package/docs/types/Keys.html +2 -2
  80. package/docs/types/PropertyType.html +2 -2
  81. package/docs/types/SortComparer.html +2 -2
  82. package/docs/types/SortState.html +2 -2
  83. package/docs/types/SortingDirection.html +2 -2
  84. package/docs/types/SortingExpression.html +2 -0
  85. package/index.d.ts +3 -2
  86. package/index.js +1 -0
  87. package/index.js.map +1 -1
  88. package/internal/constants.js +5 -1
  89. package/internal/constants.js.map +1 -1
  90. package/internal/context.d.ts +9 -0
  91. package/internal/context.js +7 -0
  92. package/internal/context.js.map +1 -0
  93. package/internal/element-from-event-path.d.ts +2 -0
  94. package/internal/element-from-event-path.js +12 -0
  95. package/internal/element-from-event-path.js.map +1 -0
  96. package/internal/part-map.d.ts +16 -3
  97. package/internal/part-map.js +44 -4
  98. package/internal/part-map.js.map +1 -1
  99. package/internal/tags.d.ts +1 -0
  100. package/internal/tags.js +1 -0
  101. package/internal/tags.js.map +1 -1
  102. package/internal/theming.js +5 -7
  103. package/internal/theming.js.map +1 -1
  104. package/internal/types.d.ts +3 -7
  105. package/internal/types.js.map +1 -1
  106. package/internal/utils.d.ts +6 -2
  107. package/internal/utils.js +43 -14
  108. package/internal/utils.js.map +1 -1
  109. package/operations/filter/tree.d.ts +1 -1
  110. package/operations/sort/types.d.ts +4 -4
  111. package/operations/sort/types.js.map +1 -1
  112. package/operations/sort.d.ts +2 -2
  113. package/operations/sort.js.map +1 -1
  114. package/package.json +2 -2
  115. package/styles/_common.css.js +1 -1
  116. package/styles/_common.css.js.map +1 -1
  117. package/styles/body-cell/body-cell.css.js +1 -1
  118. package/styles/body-cell/body-cell.css.js.map +1 -1
  119. package/styles/body-row/body-row.css.js +1 -1
  120. package/styles/body-row/body-row.css.js.map +1 -1
  121. package/styles/filter-row/filter-row.css.js +1 -1
  122. package/styles/filter-row/filter-row.css.js.map +1 -1
  123. package/styles/header-cell/header-cell.css.js +1 -1
  124. package/styles/header-cell/header-cell.css.js.map +1 -1
  125. package/styles/header-row/header-row.base.css.js +1 -1
  126. package/styles/header-row/header-row.base.css.js.map +1 -1
  127. package/styles/themes/dark/_themes.css.js +3 -0
  128. package/styles/themes/dark/_themes.css.js.map +1 -0
  129. package/styles/themes/dark/grid.bootstrap.css.js +3 -0
  130. package/styles/themes/dark/grid.bootstrap.css.js.map +1 -0
  131. package/styles/themes/dark/grid.fluent.css.js +3 -0
  132. package/styles/themes/dark/grid.fluent.css.js.map +1 -0
  133. package/styles/themes/dark/grid.indigo.css.js +3 -0
  134. package/styles/themes/dark/grid.indigo.css.js.map +1 -0
  135. package/styles/themes/dark/grid.material.css.js +3 -0
  136. package/styles/themes/dark/grid.material.css.js.map +1 -0
  137. package/styles/themes/grid-header-themes.d.ts +2 -0
  138. package/styles/themes/grid-header-themes.js +21 -0
  139. package/styles/themes/grid-header-themes.js.map +1 -0
  140. package/styles/themes/grid-themes.d.ts +2 -0
  141. package/styles/{grid/themes/themes.js → themes/grid-themes.js} +17 -9
  142. package/styles/themes/grid-themes.js.map +1 -0
  143. package/styles/themes/grid.base.css.js +3 -0
  144. package/styles/themes/grid.base.css.js.map +1 -0
  145. package/styles/themes/light/_themes.css.js +3 -0
  146. package/styles/themes/light/_themes.css.js.map +1 -0
  147. package/styles/themes/light/grid.bootstrap.css.js +3 -0
  148. package/styles/themes/light/grid.bootstrap.css.js.map +1 -0
  149. package/styles/themes/light/grid.fluent.css.js +3 -0
  150. package/styles/themes/light/grid.fluent.css.js.map +1 -0
  151. package/styles/themes/light/grid.indigo.css.d.ts +1 -0
  152. package/styles/themes/light/grid.indigo.css.js +3 -0
  153. package/styles/themes/light/grid.indigo.css.js.map +1 -0
  154. package/styles/themes/light/grid.material.css.d.ts +1 -0
  155. package/styles/themes/light/grid.material.css.js +3 -0
  156. package/styles/themes/light/grid.material.css.js.map +1 -0
  157. package/styles/themes/light/grid.shared.css.d.ts +1 -0
  158. package/styles/themes/light/grid.shared.css.js +3 -0
  159. package/styles/themes/light/grid.shared.css.js.map +1 -0
  160. package/styles/themes/shared/grid.common.css.d.ts +1 -0
  161. package/styles/themes/shared/grid.common.css.js +3 -0
  162. package/styles/themes/shared/grid.common.css.js.map +1 -0
  163. package/styles/themes/shared/header.bootstrap.css.d.ts +1 -0
  164. package/styles/themes/shared/header.bootstrap.css.js +3 -0
  165. package/styles/themes/shared/header.bootstrap.css.js.map +1 -0
  166. package/styles/themes/shared/header.fluent.css.d.ts +1 -0
  167. package/styles/themes/shared/header.fluent.css.js +3 -0
  168. package/styles/themes/shared/header.fluent.css.js.map +1 -0
  169. package/docs/interfaces/BaseSortExpression.html +0 -12
  170. package/docs/interfaces/GridSortConfiguration.html +0 -6
  171. package/docs/types/SortExpression.html +0 -2
  172. package/styles/grid/themes/dark/grid.bootstrap.css.js +0 -3
  173. package/styles/grid/themes/dark/grid.bootstrap.css.js.map +0 -1
  174. package/styles/grid/themes/dark/grid.fluent.css.js +0 -3
  175. package/styles/grid/themes/dark/grid.fluent.css.js.map +0 -1
  176. package/styles/grid/themes/dark/grid.indigo.css.js +0 -3
  177. package/styles/grid/themes/dark/grid.indigo.css.js.map +0 -1
  178. package/styles/grid/themes/dark/grid.material.css.js +0 -3
  179. package/styles/grid/themes/dark/grid.material.css.js.map +0 -1
  180. package/styles/grid/themes/grid.base.css.js +0 -3
  181. package/styles/grid/themes/grid.base.css.js.map +0 -1
  182. package/styles/grid/themes/light/grid.bootstrap.css.js +0 -3
  183. package/styles/grid/themes/light/grid.bootstrap.css.js.map +0 -1
  184. package/styles/grid/themes/light/grid.fluent.css.js +0 -3
  185. package/styles/grid/themes/light/grid.fluent.css.js.map +0 -1
  186. package/styles/grid/themes/light/grid.indigo.css.js +0 -3
  187. package/styles/grid/themes/light/grid.indigo.css.js.map +0 -1
  188. package/styles/grid/themes/light/grid.material.css.js +0 -3
  189. package/styles/grid/themes/light/grid.material.css.js.map +0 -1
  190. package/styles/grid/themes/themes.d.ts +0 -2
  191. package/styles/grid/themes/themes.js.map +0 -1
  192. /package/styles/{grid/themes/dark/grid.bootstrap.css.d.ts → themes/dark/_themes.css.d.ts} +0 -0
  193. /package/styles/{grid/themes/light → themes/dark}/grid.bootstrap.css.d.ts +0 -0
  194. /package/styles/{grid/themes → themes}/dark/grid.fluent.css.d.ts +0 -0
  195. /package/styles/{grid/themes → themes}/dark/grid.indigo.css.d.ts +0 -0
  196. /package/styles/{grid/themes → themes}/dark/grid.material.css.d.ts +0 -0
  197. /package/styles/{grid/themes → themes}/grid.base.css.d.ts +0 -0
  198. /package/styles/{grid/themes/light/grid.fluent.css.d.ts → themes/light/_themes.css.d.ts} +0 -0
  199. /package/styles/{grid/themes/light/grid.indigo.css.d.ts → themes/light/grid.bootstrap.css.d.ts} +0 -0
  200. /package/styles/{grid/themes/light/grid.material.css.d.ts → themes/light/grid.fluent.css.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/controllers/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,MAAM,OAAO,eAAe;IAM1B,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAChC,CAAC;IAED,IAAW,MAAM,CAAC,IAAmB;QACnC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;IAChC,CAAC;IAED,IAAW,SAAS;QAElB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED,IAAW,eAAe;QAExB,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;IACnC,CAAC;IAED,YAAmB,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;QAClC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAES,IAAI;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAEM,aAAa,KAAI,CAAC;IAElB,UAAU;QACf,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC;QAChC,IAAI,CAAC,eAAe,EAAE,aAAa,EAAE,CAAC;IACxC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAuB,qBAAqB,CAAC,CAAC","sourcesContent":["import { createContext } from '@lit/context';\nimport type { ReactiveController } from 'lit';\nimport type { ActiveNode, GridHost } from '../internal/types.js';\nimport { FilterController } from './filter.js';\nimport { NavigationController } from './navigation.js';\nimport { ResizeController } from './resize.js';\nimport { SortController } from './sort.js';\n\nexport class StateController<T extends object> implements ReactiveController {\n public sorting!: SortController<T>;\n public filtering!: FilterController<T>;\n public navigation!: NavigationController<T>;\n public resizing!: ResizeController<T>;\n\n public get active() {\n return this.navigation.active;\n }\n\n public set active(node: ActiveNode<T>) {\n this.navigation.active = node;\n }\n\n public get headerRow() {\n // @ts-expect-error - Protected member access\n return this.host.headerRow;\n }\n\n public get scrollContainer() {\n // @ts-expect-error - Protected member access\n return this.host.scrollContainer;\n }\n\n constructor(public host: GridHost<T>) {\n this.host.addController(this);\n this.init();\n }\n\n protected init() {\n this.sorting = new SortController(this.host);\n this.filtering = new FilterController(this.host);\n this.navigation = new NavigationController(this.host);\n this.resizing = new ResizeController(this.host);\n }\n\n public hostConnected() {}\n\n public hostUpdate(): void {\n this.headerRow?.requestUpdate();\n this.scrollContainer?.requestUpdate();\n }\n}\n\nexport const gridStateContext = createContext<StateController<any>>('gridStateController');\n"]}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/controllers/state.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactiveController } from 'lit';\nimport type IgcFilterRow from '../components/filter-row.js';\nimport type IgcGridLiteHeaderRow from '../components/header-row.js';\nimport type IgcGridLiteRow from '../components/row.js';\nimport type IgcVirtualizer from '../components/virtualizer.js';\nimport { PIPELINE } from '../internal/constants.js';\nimport {\n GRID_BODY,\n GRID_FILTER_ROW_TAG,\n GRID_HEADER_ROW_TAG,\n GRID_ROW_TAG,\n} from '../internal/tags.js';\nimport type { ActiveNode, ColumnConfiguration, GridHost } from '../internal/types.js';\nimport { createColumnConfiguration, setColumnsFromData } from '../internal/utils.js';\nimport { FilterController } from './filter.js';\nimport { NavigationController } from './navigation.js';\nimport { ResizeController } from './resize.js';\nimport { SortController } from './sort.js';\n\nclass StateController<T extends object> implements ReactiveController {\n private _columns: ColumnConfiguration<T>[] = [];\n private readonly _observersCallback: () => void;\n\n /** The grid host element. */\n public readonly host: GridHost<T>;\n\n public readonly sorting: SortController<T>;\n public readonly filtering: FilterController<T>;\n public readonly navigation: NavigationController<T>;\n public readonly resizing: ResizeController<T>;\n\n public get columns(): ColumnConfiguration<T>[] {\n return this._columns;\n }\n\n /** Returns the header row element of the grid. */\n public get headerRow(): IgcGridLiteHeaderRow<T> | null {\n return this.host.renderRoot.querySelector<IgcGridLiteHeaderRow<T>>(GRID_HEADER_ROW_TAG);\n }\n\n /** Returns the filter row element of the grid. */\n public get filterRow(): IgcFilterRow<T> | null {\n return this.host.renderRoot.querySelector<IgcFilterRow<T>>(GRID_FILTER_ROW_TAG);\n }\n\n /** Returns the data row elements of the grid. */\n public get rows(): IgcGridLiteRow<T>[] {\n return Array.from(this.host.renderRoot.querySelectorAll<IgcGridLiteRow<T>>(GRID_ROW_TAG));\n }\n\n /** Returns the virtualizer element of the grid. */\n public get virtualizer(): IgcVirtualizer | null {\n return this.host.renderRoot.querySelector(GRID_BODY);\n }\n\n /** The currently active node in the grid. */\n public get active(): ActiveNode<T> {\n return this.navigation.active;\n }\n\n /** Sets the currently active node in the grid. */\n public set active(node: ActiveNode<T>) {\n this.navigation.active = node;\n }\n\n constructor(host: GridHost<T>, observersCallback: () => void) {\n this._observersCallback = observersCallback;\n this.host = host;\n this.host.addController(this);\n\n this.sorting = new SortController(this.host);\n this.filtering = new FilterController(this);\n this.navigation = new NavigationController(this);\n this.resizing = new ResizeController(this.host);\n }\n\n public hostUpdate(): void {\n this.headerRow?.requestUpdate();\n this.virtualizer?.requestUpdate();\n }\n\n public setColumnConfiguration(columns: ColumnConfiguration<T>[]): void {\n this._columns = columns.map((column) => createColumnConfiguration(column));\n this._observersCallback.call(this.host);\n this.host.requestUpdate(PIPELINE);\n }\n\n public setAutoColumnConfiguration(): void {\n if (this.host.autoGenerate && this.host.data.length > 0) {\n this._columns = setColumnsFromData(this.host.data[0]);\n this.host.requestUpdate(PIPELINE);\n }\n }\n\n public updateColumnsConfiguration(config: ColumnConfiguration<T>[]): void {\n for (const columnConfig of config) {\n const existing = this._columns.findIndex((column) => column.key === columnConfig.key);\n if (existing !== -1) {\n this._columns[existing] = {\n ...this._columns[existing],\n ...createColumnConfiguration(columnConfig),\n };\n }\n }\n\n this._columns = [...this._columns];\n this._observersCallback.call(this.host);\n this.host.requestUpdate(PIPELINE);\n }\n}\n\nfunction createStateController<T extends object>(\n host: GridHost<T>,\n observersCallback: () => void\n): StateController<T> {\n return new StateController<T>(host, observersCallback);\n}\n\nexport { createStateController };\nexport type { StateController };\n"]}