@servicetitan/table 22.0.1 → 22.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (203) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/demo/index.d.ts +4 -0
  3. package/dist/demo/index.d.ts.map +1 -0
  4. package/dist/demo/index.js +4 -0
  5. package/dist/demo/index.js.map +1 -0
  6. package/dist/demo/master-detail/detail-table.d.ts +4 -0
  7. package/dist/demo/master-detail/detail-table.d.ts.map +1 -0
  8. package/dist/demo/master-detail/detail-table.js +28 -0
  9. package/dist/demo/master-detail/detail-table.js.map +1 -0
  10. package/dist/demo/master-detail/detail-table.store.d.ts +14 -0
  11. package/dist/demo/master-detail/detail-table.store.d.ts.map +1 -0
  12. package/dist/demo/master-detail/detail-table.store.js +104 -0
  13. package/dist/demo/master-detail/detail-table.store.js.map +1 -0
  14. package/dist/demo/master-detail/index.d.ts +2 -0
  15. package/dist/demo/master-detail/index.d.ts.map +1 -0
  16. package/dist/demo/master-detail/index.js +2 -0
  17. package/dist/demo/master-detail/index.js.map +1 -0
  18. package/dist/demo/master-detail/master-table.store.d.ts +14 -0
  19. package/dist/demo/master-detail/master-table.store.d.ts.map +1 -0
  20. package/dist/demo/master-detail/master-table.store.js +103 -0
  21. package/dist/demo/master-detail/master-table.store.js.map +1 -0
  22. package/dist/demo/master-detail/product-detail.d.ts +8 -0
  23. package/dist/demo/master-detail/product-detail.d.ts.map +1 -0
  24. package/dist/demo/master-detail/product-detail.js +2 -0
  25. package/dist/demo/master-detail/product-detail.js.map +1 -0
  26. package/dist/demo/master-detail/product-details.d.ts +3 -0
  27. package/dist/demo/master-detail/product-details.d.ts.map +1 -0
  28. package/dist/demo/master-detail/product-details.js +55 -0
  29. package/dist/demo/master-detail/product-details.js.map +1 -0
  30. package/dist/demo/master-detail/product.d.ts +26 -0
  31. package/dist/demo/master-detail/product.d.ts.map +1 -0
  32. package/dist/demo/master-detail/product.js +16 -0
  33. package/dist/demo/master-detail/product.js.map +1 -0
  34. package/dist/demo/master-detail/products.d.ts +3 -0
  35. package/dist/demo/master-detail/products.d.ts.map +1 -0
  36. package/dist/demo/master-detail/products.js +117 -0
  37. package/dist/demo/master-detail/products.js.map +1 -0
  38. package/dist/demo/master-detail/table-master-detail.d.ts +3 -0
  39. package/dist/demo/master-detail/table-master-detail.d.ts.map +1 -0
  40. package/dist/demo/master-detail/table-master-detail.js +24 -0
  41. package/dist/demo/master-detail/table-master-detail.js.map +1 -0
  42. package/dist/demo/overview/actions-cell.d.ts +5 -0
  43. package/dist/demo/overview/actions-cell.d.ts.map +1 -0
  44. package/dist/demo/overview/actions-cell.js +38 -0
  45. package/dist/demo/overview/actions-cell.js.map +1 -0
  46. package/dist/demo/overview/index.d.ts +2 -0
  47. package/dist/demo/overview/index.d.ts.map +1 -0
  48. package/dist/demo/overview/index.js +2 -0
  49. package/dist/demo/overview/index.js.map +1 -0
  50. package/dist/demo/overview/product.d.ts +27 -0
  51. package/dist/demo/overview/product.d.ts.map +1 -0
  52. package/dist/demo/overview/product.js +16 -0
  53. package/dist/demo/overview/product.js.map +1 -0
  54. package/dist/demo/overview/products.d.ts +3 -0
  55. package/dist/demo/overview/products.d.ts.map +1 -0
  56. package/dist/demo/overview/products.js +127 -0
  57. package/dist/demo/overview/products.js.map +1 -0
  58. package/dist/demo/overview/table.d.ts +6 -0
  59. package/dist/demo/overview/table.d.ts.map +1 -0
  60. package/dist/demo/overview/table.js +44 -0
  61. package/dist/demo/overview/table.js.map +1 -0
  62. package/dist/demo/overview/table.store.d.ts +15 -0
  63. package/dist/demo/overview/table.store.d.ts.map +1 -0
  64. package/dist/demo/overview/table.store.js +92 -0
  65. package/dist/demo/overview/table.store.js.map +1 -0
  66. package/dist/demo/state-caching/beverages.d.ts +3 -0
  67. package/dist/demo/state-caching/beverages.d.ts.map +1 -0
  68. package/dist/demo/state-caching/beverages.js +48 -0
  69. package/dist/demo/state-caching/beverages.js.map +1 -0
  70. package/dist/demo/state-caching/index.d.ts +2 -0
  71. package/dist/demo/state-caching/index.d.ts.map +1 -0
  72. package/dist/demo/state-caching/index.js +2 -0
  73. package/dist/demo/state-caching/index.js.map +1 -0
  74. package/dist/demo/state-caching/product.d.ts +6 -0
  75. package/dist/demo/state-caching/product.d.ts.map +1 -0
  76. package/dist/demo/state-caching/product.js +2 -0
  77. package/dist/demo/state-caching/product.js.map +1 -0
  78. package/dist/demo/state-caching/products.d.ts +3 -0
  79. package/dist/demo/state-caching/products.d.ts.map +1 -0
  80. package/dist/demo/state-caching/products.js +53 -0
  81. package/dist/demo/state-caching/products.js.map +1 -0
  82. package/dist/demo/state-caching/state-caching-table.d.ts +3 -0
  83. package/dist/demo/state-caching/state-caching-table.d.ts.map +1 -0
  84. package/dist/demo/state-caching/state-caching-table.js +14 -0
  85. package/dist/demo/state-caching/state-caching-table.js.map +1 -0
  86. package/dist/demo/state-caching/state-caching-table.store.d.ts +13 -0
  87. package/dist/demo/state-caching/state-caching-table.store.d.ts.map +1 -0
  88. package/dist/demo/state-caching/state-caching-table.store.js +70 -0
  89. package/dist/demo/state-caching/state-caching-table.store.js.map +1 -0
  90. package/dist/editable-cell/boolean-editable-cell.d.ts +3 -0
  91. package/dist/editable-cell/boolean-editable-cell.d.ts.map +1 -0
  92. package/dist/editable-cell/boolean-editable-cell.js +14 -0
  93. package/dist/editable-cell/boolean-editable-cell.js.map +1 -0
  94. package/dist/editable-cell/date-editable-cell.d.ts +3 -0
  95. package/dist/editable-cell/date-editable-cell.d.ts.map +1 -0
  96. package/dist/editable-cell/date-editable-cell.js +14 -0
  97. package/dist/editable-cell/date-editable-cell.js.map +1 -0
  98. package/dist/editable-cell/get-action-cell.d.ts +13 -0
  99. package/dist/editable-cell/get-action-cell.d.ts.map +1 -0
  100. package/dist/editable-cell/get-action-cell.js +18 -0
  101. package/dist/editable-cell/get-action-cell.js.map +1 -0
  102. package/dist/editable-cell/get-editable-cell.d.ts +13 -0
  103. package/dist/editable-cell/get-editable-cell.d.ts.map +1 -0
  104. package/dist/editable-cell/get-editable-cell.js +18 -0
  105. package/dist/editable-cell/get-editable-cell.js.map +1 -0
  106. package/dist/editable-cell/get-select-editable-cell.d.ts +10 -0
  107. package/dist/editable-cell/get-select-editable-cell.d.ts.map +1 -0
  108. package/dist/editable-cell/get-select-editable-cell.js +19 -0
  109. package/dist/editable-cell/get-select-editable-cell.js.map +1 -0
  110. package/dist/editable-cell/index.d.ts +8 -0
  111. package/dist/editable-cell/index.d.ts.map +1 -0
  112. package/dist/editable-cell/index.js +8 -0
  113. package/dist/editable-cell/index.js.map +1 -0
  114. package/dist/editable-cell/numeric-editable-cell.d.ts +3 -0
  115. package/dist/editable-cell/numeric-editable-cell.d.ts.map +1 -0
  116. package/dist/editable-cell/numeric-editable-cell.js +15 -0
  117. package/dist/editable-cell/numeric-editable-cell.js.map +1 -0
  118. package/dist/editable-cell/text-editable-cell.d.ts +9 -0
  119. package/dist/editable-cell/text-editable-cell.d.ts.map +1 -0
  120. package/dist/editable-cell/text-editable-cell.js +20 -0
  121. package/dist/editable-cell/text-editable-cell.js.map +1 -0
  122. package/dist/export/export.d.ts +10 -0
  123. package/dist/export/export.d.ts.map +1 -0
  124. package/dist/export/export.js +6 -0
  125. package/dist/export/export.js.map +1 -0
  126. package/dist/export/index.d.ts +2 -0
  127. package/dist/export/index.d.ts.map +1 -0
  128. package/dist/export/index.js +2 -0
  129. package/dist/export/index.js.map +1 -0
  130. package/dist/filters/column-menu-filters.d.ts +5 -0
  131. package/dist/filters/column-menu-filters.d.ts.map +1 -0
  132. package/dist/filters/column-menu-filters.js +9 -0
  133. package/dist/filters/column-menu-filters.js.map +1 -0
  134. package/dist/filters/datetime-filter/datetime-filter.d.ts +3 -0
  135. package/dist/filters/datetime-filter/datetime-filter.d.ts.map +1 -0
  136. package/dist/filters/datetime-filter/datetime-filter.js +71 -0
  137. package/dist/filters/datetime-filter/datetime-filter.js.map +1 -0
  138. package/dist/filters/field-values-filter.d.ts +6 -0
  139. package/dist/filters/field-values-filter.d.ts.map +1 -0
  140. package/dist/filters/field-values-filter.js +155 -0
  141. package/dist/filters/field-values-filter.js.map +1 -0
  142. package/dist/filters/index.d.ts +9 -0
  143. package/dist/filters/index.d.ts.map +1 -0
  144. package/dist/filters/index.js +9 -0
  145. package/dist/filters/index.js.map +1 -0
  146. package/dist/filters/multiselect-filter.d.ts +5 -0
  147. package/dist/filters/multiselect-filter.d.ts.map +1 -0
  148. package/dist/filters/multiselect-filter.js +107 -0
  149. package/dist/filters/multiselect-filter.js.map +1 -0
  150. package/dist/filters/numeric-filter-extended/numeric-extended-operators.d.ts +6 -0
  151. package/dist/filters/numeric-filter-extended/numeric-extended-operators.d.ts.map +1 -0
  152. package/dist/filters/numeric-filter-extended/numeric-extended-operators.js +6 -0
  153. package/dist/filters/numeric-filter-extended/numeric-extended-operators.js.map +1 -0
  154. package/dist/filters/numeric-filter-extended/numeric-filter-extended.d.ts +3 -0
  155. package/dist/filters/numeric-filter-extended/numeric-filter-extended.d.ts.map +1 -0
  156. package/dist/filters/numeric-filter-extended/numeric-filter-extended.js +27 -0
  157. package/dist/filters/numeric-filter-extended/numeric-filter-extended.js.map +1 -0
  158. package/dist/filters/range-filter/range-filter.d.ts +6 -0
  159. package/dist/filters/range-filter/range-filter.d.ts.map +1 -0
  160. package/dist/filters/range-filter/range-filter.js +117 -0
  161. package/dist/filters/range-filter/range-filter.js.map +1 -0
  162. package/dist/filters/standard-filter-with-multiselect/filter-cell-ext.d.ts +21 -0
  163. package/dist/filters/standard-filter-with-multiselect/filter-cell-ext.d.ts.map +1 -0
  164. package/dist/filters/standard-filter-with-multiselect/filter-cell-ext.js +82 -0
  165. package/dist/filters/standard-filter-with-multiselect/filter-cell-ext.js.map +1 -0
  166. package/dist/filters/standard-filter-with-multiselect/multiselect-operators.d.ts +6 -0
  167. package/dist/filters/standard-filter-with-multiselect/multiselect-operators.d.ts.map +1 -0
  168. package/dist/filters/standard-filter-with-multiselect/multiselect-operators.js +6 -0
  169. package/dist/filters/standard-filter-with-multiselect/multiselect-operators.js.map +1 -0
  170. package/dist/filters/standard-filter-with-multiselect/standard-filter-with-multiselect.d.ts +26 -0
  171. package/dist/filters/standard-filter-with-multiselect/standard-filter-with-multiselect.d.ts.map +1 -0
  172. package/dist/filters/standard-filter-with-multiselect/standard-filter-with-multiselect.js +69 -0
  173. package/dist/filters/standard-filter-with-multiselect/standard-filter-with-multiselect.js.map +1 -0
  174. package/dist/filters/standard-filter-with-multiselect/table-column-menu-filter-ext.d.ts +6 -0
  175. package/dist/filters/standard-filter-with-multiselect/table-column-menu-filter-ext.d.ts.map +1 -0
  176. package/dist/filters/standard-filter-with-multiselect/table-column-menu-filter-ext.js +30 -0
  177. package/dist/filters/standard-filter-with-multiselect/table-column-menu-filter-ext.js.map +1 -0
  178. package/dist/filters/time-filter/time-filter.d.ts +3 -0
  179. package/dist/filters/time-filter/time-filter.d.ts.map +1 -0
  180. package/dist/filters/time-filter/time-filter.js +71 -0
  181. package/dist/filters/time-filter/time-filter.js.map +1 -0
  182. package/dist/index.d.ts +10 -0
  183. package/dist/index.d.ts.map +1 -0
  184. package/dist/index.js +9 -0
  185. package/dist/index.js.map +1 -0
  186. package/dist/select-cell/index.d.ts +2 -0
  187. package/dist/select-cell/index.d.ts.map +1 -0
  188. package/dist/select-cell/index.js +2 -0
  189. package/dist/select-cell/index.js.map +1 -0
  190. package/dist/select-cell/select-cell.d.ts +25 -0
  191. package/dist/select-cell/select-cell.d.ts.map +1 -0
  192. package/dist/select-cell/select-cell.js +42 -0
  193. package/dist/select-cell/select-cell.js.map +1 -0
  194. package/dist/table-state.d.ts +161 -0
  195. package/dist/table-state.d.ts.map +1 -0
  196. package/dist/table-state.js +1106 -0
  197. package/dist/table-state.js.map +1 -0
  198. package/dist/table.d.ts +40 -0
  199. package/dist/table.d.ts.map +1 -0
  200. package/dist/table.js +231 -0
  201. package/dist/table.js.map +1 -0
  202. package/package.json +6 -6
  203. package/src/select-cell/select-cell.tsx +43 -16
@@ -0,0 +1,161 @@
1
+ import { ReactElement } from 'react';
2
+ import { AggregateDescriptor, CompositeFilterDescriptor, GroupDescriptor, SortDescriptor, DataResult, GroupResult, DataSource, IdType } from '@servicetitan/data-query';
3
+ import { ExcelExport, ExcelExportData, ExcelExportColumnProps } from '@progress/kendo-react-excel-export';
4
+ import { TableExpandChangeEvent, TableFilterChangeEvent, TableGroupChangeEvent, TablePageChangeEvent, TableSortChangeEvent } from '@servicetitan/design-system';
5
+ import { GridPDFExport as TablePDFExport } from '@progress/kendo-react-pdf';
6
+ import { WorkbookOptions } from '@progress/kendo-ooxml';
7
+ import { FormState, FieldState } from 'formstate';
8
+ export declare type Selectable<T> = {
9
+ readonly selected: boolean | undefined;
10
+ } & T;
11
+ export declare type Editable<T> = {
12
+ readonly inEdit: boolean | undefined;
13
+ } & T;
14
+ export declare type Expandable<T> = {
15
+ readonly expanded: boolean | undefined;
16
+ } & T;
17
+ export declare type Materialized<T> = {
18
+ readonly materializedPath: string;
19
+ } & T;
20
+ declare type Data<T> = DataResult<T>['data'];
21
+ export declare function isGroupItem<T>(item: T | GroupResult<T>, groups: GroupDescriptor[]): item is GroupResult<T>;
22
+ export declare type PossibleFormState<T> = FormState<{
23
+ [P in keyof T]-?: FieldState<T[P]>;
24
+ }>;
25
+ export interface TableStateModel<TId extends IdType = never> {
26
+ skip: number;
27
+ selectedIds: TId[];
28
+ expandedIds: TId[];
29
+ collapsedGroups: string[];
30
+ sort: SortDescriptor[];
31
+ filter?: CompositeFilterDescriptor;
32
+ aggregates: AggregateDescriptor[];
33
+ group: GroupDescriptor[];
34
+ }
35
+ interface TableStateConstructorParams<T, TId extends IdType = never, P = never, PId extends IdType = never> {
36
+ dataSource?: DataSource<T, TId> | null;
37
+ pageSize?: number;
38
+ /** For use with tables that enable selection only. Specifies if the item is selectable in the checkbox */
39
+ isRowUnselectable?: (row: T) => boolean;
40
+ selectionLimit?: number;
41
+ getFormState?(row: T): PossibleFormState<T>;
42
+ parent?: {
43
+ row: P;
44
+ tableState: TableState<P, PId>;
45
+ };
46
+ getDetailTableState?: (row: T) => TableState<any, any, any, any> | undefined;
47
+ initialState?: TableStateModel<TId>;
48
+ alwaysEditable?: boolean;
49
+ }
50
+ interface FetchDataParams {
51
+ newSkip?: number;
52
+ newSort?: SortDescriptor[];
53
+ newFilter?: CompositeFilterDescriptor | null;
54
+ newAggregates?: AggregateDescriptor[];
55
+ newGroup?: GroupDescriptor[];
56
+ }
57
+ interface SelectionOptions {
58
+ ignoreUnselectable?: boolean;
59
+ recursive?: boolean;
60
+ }
61
+ interface SetDataSourceParams<TId extends IdType = never> {
62
+ reset?: boolean;
63
+ initialState?: TableStateModel<TId>;
64
+ }
65
+ interface EditingForm<T> {
66
+ form: PossibleFormState<T>;
67
+ field?: keyof T;
68
+ }
69
+ /** Interface for unit testing purposes.*/
70
+ export interface ITableState<T, TId extends IdType = never> {
71
+ totalCount?: number;
72
+ selectedCount?: number;
73
+ addToDataSource?: (row: T, select?: boolean | undefined) => Promise<void>;
74
+ removeFromDataSource?: (id: TId) => Promise<T | undefined>;
75
+ selectAll?: () => Promise<void>;
76
+ deselectAll?: () => void;
77
+ setDataSource?: (dataSource: DataSource<T, TId> | null, setDataSourceParams?: boolean | SetDataSourceParams<TId>) => Promise<void>;
78
+ isRowUnselectable?: (row: T) => boolean;
79
+ }
80
+ export declare class TableState<T, TId extends IdType = never, P = never, PId extends IdType = never> {
81
+ private innerDataSource;
82
+ get dataSource(): DataSource<T, TId> | null;
83
+ private traverse;
84
+ private get originalData();
85
+ parent?: {
86
+ row: P;
87
+ tableState: TableState<P, PId>;
88
+ };
89
+ getDetailTableState?: (row: T) => TableState<any, any, any, any> | undefined;
90
+ selectedIds: Set<TId>;
91
+ inEdit: Map<TId, EditingForm<T>>;
92
+ expandedIds: Set<TId>;
93
+ collapsedGroups: Set<string>;
94
+ isRowUnselectable: (row: T) => boolean;
95
+ selectionLimit: number;
96
+ getFormState?(row: T): PossibleFormState<T>;
97
+ data: Data<Selectable<T>>;
98
+ totalCount: number;
99
+ filteredCount: number;
100
+ selectedCount: number;
101
+ unselectableCount: number;
102
+ get unselectedCount(): number;
103
+ get selectableCount(): number;
104
+ get filteredUnselectableCount(): number;
105
+ get filteredSelectableCount(): number;
106
+ private get totalFilteredSelectableCountPromise();
107
+ get totalFilteredSelectableCount(): number;
108
+ sort: SortDescriptor[];
109
+ filter: CompositeFilterDescriptor | undefined;
110
+ aggregates: AggregateDescriptor[];
111
+ innerGroup: GroupDescriptor[];
112
+ get group(): GroupDescriptor[];
113
+ set group(value: GroupDescriptor[]);
114
+ skip: number;
115
+ pageSize?: number;
116
+ private tablePdfExport;
117
+ private tableExcelExport;
118
+ alwaysEditable: boolean;
119
+ constructor({ dataSource, pageSize, isRowUnselectable, selectionLimit, getFormState, parent, getDetailTableState, initialState, alwaysEditable, }?: TableStateConstructorParams<T, TId, P, PId>);
120
+ addToDataSource(row: T, select?: boolean, index?: number): Promise<void>;
121
+ removeFromDataSource(id: TId): Promise<T | undefined>;
122
+ setRowsSelection(rows: T[], value: boolean, { ignoreUnselectable, recursive }?: SelectionOptions): Promise<void>;
123
+ selectPage(options?: SelectionOptions): Promise<void>;
124
+ deselectPage(options?: SelectionOptions): Promise<void>;
125
+ private setAllSelection;
126
+ selectAll(options?: SelectionOptions): Promise<void>;
127
+ deselectAll(options?: SelectionOptions): Promise<void>;
128
+ edit(row: T, field?: keyof T): void;
129
+ saveEdit(row: T, beforeSave?: (changed: T, field?: keyof T) => Promise<void>): Promise<void>;
130
+ cancelEdit(row: T): void;
131
+ editAll(): Promise<void>;
132
+ saveEditAll(beforeSave?: (changed: T[]) => Promise<void>): Promise<void>;
133
+ cancelEditAll(): void;
134
+ reset(): void;
135
+ setDataSource(dataSource: DataSource<T, TId> | null, setDataSourceParams?: SetDataSourceParams<TId> | boolean): Promise<void>;
136
+ private fetchInitialData;
137
+ private addPropertiesToRows;
138
+ handleFilterChange: (ev: TableFilterChangeEvent) => void;
139
+ handleGroupChange: (ev: TableGroupChangeEvent) => void;
140
+ handleExpandChange: ({ dataItem, value }: TableExpandChangeEvent) => void;
141
+ handleSortChange: (ev: TableSortChangeEvent) => void;
142
+ handlePageChange: (ev: TablePageChangeEvent) => void;
143
+ /** Call without params if unchanged */
144
+ fetchData: ({ newSkip, newSort, newFilter, newAggregates, newGroup, }?: FetchDataParams) => Promise<void>;
145
+ isRowSelectable: (row: Selectable<T>) => boolean;
146
+ toggleRowSelection(row: T, options?: SelectionOptions): Promise<void>;
147
+ get isAllPageRowsSelected(): boolean;
148
+ get isSomePageRowsSelected(): boolean;
149
+ get isAllRowsSelected(): boolean;
150
+ get isSomeRowsSelected(): boolean;
151
+ setTablePdfExportRef: (el: TablePDFExport | null) => TablePDFExport | null;
152
+ setTableExcelExportRef: (el: ExcelExport | null) => ExcelExport | null;
153
+ exportPdf: () => Promise<void>;
154
+ exportExcel: (data?: any[] | WorkbookOptions | ExcelExportData | undefined, columns?: ExcelExportColumnProps[] | ReactElement<ExcelExportColumnProps, string | import("react").JSXElementConstructor<any>>[] | undefined) => Promise<void>;
155
+ filteredSortedUnpaginatedData: () => Promise<DataResult<T>>;
156
+ getRowsBetween: (start: Selectable<T>, end: Selectable<T>) => Selectable<T>[];
157
+ exportState(): TableStateModel<TId>;
158
+ importState(data: TableStateModel<TId>): void;
159
+ }
160
+ export {};
161
+ //# sourceMappingURL=table-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-state.d.ts","sourceRoot":"","sources":["../src/table-state.ts"],"names":[],"mappings":"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"}