@servicetitan/table 31.2.0 → 32.0.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 (181) hide show
  1. package/dist/demo/column-hiding/index.js +1 -0
  2. package/dist/demo/column-hiding/index.js.map +1 -1
  3. package/dist/demo/column-hiding/product.js +7 -6
  4. package/dist/demo/column-hiding/product.js.map +1 -1
  5. package/dist/demo/column-hiding/products.js +12 -11
  6. package/dist/demo/column-hiding/products.js.map +1 -1
  7. package/dist/demo/column-hiding/table.js +126 -32
  8. package/dist/demo/column-hiding/table.js.map +1 -1
  9. package/dist/demo/column-hiding/table.store.js +30 -27
  10. package/dist/demo/column-hiding/table.store.js.map +1 -1
  11. package/dist/demo/filters/async-select-filter.js +59 -12
  12. package/dist/demo/filters/async-select-filter.js.map +1 -1
  13. package/dist/demo/filters/categories.js +20 -16
  14. package/dist/demo/filters/categories.js.map +1 -1
  15. package/dist/demo/filters/multiselect-filter.js +37 -5
  16. package/dist/demo/filters/multiselect-filter.js.map +1 -1
  17. package/dist/demo/filters/range-filter.js +104 -10
  18. package/dist/demo/filters/range-filter.js.map +1 -1
  19. package/dist/demo/filters/select-filter.js +139 -41
  20. package/dist/demo/filters/select-filter.js.map +1 -1
  21. package/dist/demo/filters/single-select-filter.js +109 -18
  22. package/dist/demo/filters/single-select-filter.js.map +1 -1
  23. package/dist/demo/filters/table.store.js +77 -86
  24. package/dist/demo/filters/table.store.js.map +1 -1
  25. package/dist/demo/footer-page-size/index.js +1 -0
  26. package/dist/demo/footer-page-size/index.js.map +1 -1
  27. package/dist/demo/footer-page-size/table.js +82 -6
  28. package/dist/demo/footer-page-size/table.js.map +1 -1
  29. package/dist/demo/index.js +1 -0
  30. package/dist/demo/index.js.map +1 -1
  31. package/dist/demo/master-detail/detail-table.js +41 -9
  32. package/dist/demo/master-detail/detail-table.js.map +1 -1
  33. package/dist/demo/master-detail/detail-table.store.js +60 -56
  34. package/dist/demo/master-detail/detail-table.store.js.map +1 -1
  35. package/dist/demo/master-detail/index.js +1 -0
  36. package/dist/demo/master-detail/index.js.map +1 -1
  37. package/dist/demo/master-detail/master-table.store.js +65 -61
  38. package/dist/demo/master-detail/master-table.store.js.map +1 -1
  39. package/dist/demo/master-detail/product-detail.js +2 -1
  40. package/dist/demo/master-detail/product-detail.js.map +1 -1
  41. package/dist/demo/master-detail/product-details.js +10 -9
  42. package/dist/demo/master-detail/product-details.js.map +1 -1
  43. package/dist/demo/master-detail/product.js +7 -6
  44. package/dist/demo/master-detail/product.js.map +1 -1
  45. package/dist/demo/master-detail/products.js +12 -11
  46. package/dist/demo/master-detail/products.js.map +1 -1
  47. package/dist/demo/master-detail/table-master-detail.js +39 -8
  48. package/dist/demo/master-detail/table-master-detail.js.map +1 -1
  49. package/dist/demo/overview/actions-cell.js +47 -10
  50. package/dist/demo/overview/actions-cell.js.map +1 -1
  51. package/dist/demo/overview/index.js +1 -0
  52. package/dist/demo/overview/index.js.map +1 -1
  53. package/dist/demo/overview/product.js +7 -6
  54. package/dist/demo/overview/product.js.map +1 -1
  55. package/dist/demo/overview/products.js +15 -14
  56. package/dist/demo/overview/products.js.map +1 -1
  57. package/dist/demo/overview/table.js +176 -21
  58. package/dist/demo/overview/table.js.map +1 -1
  59. package/dist/demo/overview/table.store.js +45 -51
  60. package/dist/demo/overview/table.store.js.map +1 -1
  61. package/dist/demo/row-details/index.js +1 -0
  62. package/dist/demo/row-details/index.js.map +1 -1
  63. package/dist/demo/row-details/row-details-table.js +52 -5
  64. package/dist/demo/row-details/row-details-table.js.map +1 -1
  65. package/dist/demo/row-details/row-details-table.store.js +27 -19
  66. package/dist/demo/row-details/row-details-table.store.js.map +1 -1
  67. package/dist/demo/state-caching/beverages.js +11 -10
  68. package/dist/demo/state-caching/beverages.js.map +1 -1
  69. package/dist/demo/state-caching/index.js +1 -0
  70. package/dist/demo/state-caching/index.js.map +1 -1
  71. package/dist/demo/state-caching/product.js +2 -1
  72. package/dist/demo/state-caching/product.js.map +1 -1
  73. package/dist/demo/state-caching/products.js +12 -11
  74. package/dist/demo/state-caching/products.js.map +1 -1
  75. package/dist/demo/state-caching/state-caching-table.js +44 -3
  76. package/dist/demo/state-caching/state-caching-table.js.map +1 -1
  77. package/dist/demo/state-caching/state-caching-table.store.js +42 -54
  78. package/dist/demo/state-caching/state-caching-table.store.js.map +1 -1
  79. package/dist/details/expand-column.js +31 -7
  80. package/dist/details/expand-column.js.map +1 -1
  81. package/dist/details/index.js +1 -0
  82. package/dist/details/index.js.map +1 -1
  83. package/dist/editable-cell/boolean-editable-cell.js +15 -4
  84. package/dist/editable-cell/boolean-editable-cell.js.map +1 -1
  85. package/dist/editable-cell/get-action-cell.js +14 -7
  86. package/dist/editable-cell/get-action-cell.js.map +1 -1
  87. package/dist/editable-cell/get-editable-cell.js +16 -8
  88. package/dist/editable-cell/get-editable-cell.js.map +1 -1
  89. package/dist/editable-cell/get-select-editable-cell.js +19 -5
  90. package/dist/editable-cell/get-select-editable-cell.js.map +1 -1
  91. package/dist/editable-cell/index.js +1 -0
  92. package/dist/editable-cell/index.js.map +1 -1
  93. package/dist/editable-cell/text-editable-cell.js +23 -5
  94. package/dist/editable-cell/text-editable-cell.js.map +1 -1
  95. package/dist/export/export.js +38 -1
  96. package/dist/export/export.js.map +1 -1
  97. package/dist/export/export.module.css.d.ts +3 -0
  98. package/dist/export/index.js +1 -0
  99. package/dist/export/index.js.map +1 -1
  100. package/dist/filters/async-select/async-select-filter.js +167 -132
  101. package/dist/filters/async-select/async-select-filter.js.map +1 -1
  102. package/dist/filters/column-menu-filters.js +39 -8
  103. package/dist/filters/column-menu-filters.js.map +1 -1
  104. package/dist/filters/datetime-filter/datetime-filter.js +73 -50
  105. package/dist/filters/datetime-filter/datetime-filter.js.map +1 -1
  106. package/dist/filters/field-values-filter.js +80 -72
  107. package/dist/filters/field-values-filter.js.map +1 -1
  108. package/dist/filters/index.js +1 -0
  109. package/dist/filters/index.js.map +1 -1
  110. package/dist/filters/multiselect-filter/multiselect-filter.js +77 -73
  111. package/dist/filters/multiselect-filter/multiselect-filter.js.map +1 -1
  112. package/dist/filters/numeric-filter-extended/numeric-extended-operators.js +10 -3
  113. package/dist/filters/numeric-filter-extended/numeric-extended-operators.js.map +1 -1
  114. package/dist/filters/numeric-filter-extended/numeric-filter-extended.js +39 -16
  115. package/dist/filters/numeric-filter-extended/numeric-filter-extended.js.map +1 -1
  116. package/dist/filters/range-filter/range-filter.js +76 -72
  117. package/dist/filters/range-filter/range-filter.js.map +1 -1
  118. package/dist/filters/select-filter/object-search.js +4 -3
  119. package/dist/filters/select-filter/object-search.js.map +1 -1
  120. package/dist/filters/select-filter/operators.js +6 -5
  121. package/dist/filters/select-filter/operators.js.map +1 -1
  122. package/dist/filters/select-filter/select-filter.js +180 -145
  123. package/dist/filters/select-filter/select-filter.js.map +1 -1
  124. package/dist/filters/select-filter/value-getter.js +2 -1
  125. package/dist/filters/select-filter/value-getter.js.map +1 -1
  126. package/dist/filters/single-select/single-select-filter.js +29 -15
  127. package/dist/filters/single-select/single-select-filter.js.map +1 -1
  128. package/dist/filters/standard-filter-with-multiselect/filter-cell-ext.js +114 -67
  129. package/dist/filters/standard-filter-with-multiselect/filter-cell-ext.js.map +1 -1
  130. package/dist/filters/standard-filter-with-multiselect/filter-cell-ext.module.css.d.ts +7 -0
  131. package/dist/filters/standard-filter-with-multiselect/multiselect-operators.js +10 -3
  132. package/dist/filters/standard-filter-with-multiselect/multiselect-operators.js.map +1 -1
  133. package/dist/filters/standard-filter-with-multiselect/standard-filter-with-multiselect.js +77 -55
  134. package/dist/filters/standard-filter-with-multiselect/standard-filter-with-multiselect.js.map +1 -1
  135. package/dist/filters/standard-filter-with-multiselect/table-column-menu-filter-ext.js +23 -10
  136. package/dist/filters/standard-filter-with-multiselect/table-column-menu-filter-ext.js.map +1 -1
  137. package/dist/filters/time-filter/time-filter.js +63 -49
  138. package/dist/filters/time-filter/time-filter.js.map +1 -1
  139. package/dist/index.js +4 -2
  140. package/dist/index.js.map +1 -1
  141. package/dist/select-cell/index.js +1 -0
  142. package/dist/select-cell/index.js.map +1 -1
  143. package/dist/select-cell/select-cell.js +36 -11
  144. package/dist/select-cell/select-cell.js.map +1 -1
  145. package/dist/select-cell/select-cell.module.css.d.ts +3 -0
  146. package/dist/table-state.js +479 -660
  147. package/dist/table-state.js.map +1 -1
  148. package/dist/table.js +235 -250
  149. package/dist/table.js.map +1 -1
  150. package/dist/table.module.css.d.ts +5 -0
  151. package/dist/use-observing-table-state/demo/components/use-observing-table-state-demo.js +97 -5
  152. package/dist/use-observing-table-state/demo/components/use-observing-table-state-demo.js.map +1 -1
  153. package/dist/use-observing-table-state/demo/stores/use-observing-table-state-demo.store.js +71 -97
  154. package/dist/use-observing-table-state/demo/stores/use-observing-table-state-demo.store.js.map +1 -1
  155. package/dist/use-observing-table-state/index.js +1 -0
  156. package/dist/use-observing-table-state/index.js.map +1 -1
  157. package/dist/use-observing-table-state/use-observing-table-state.js +26 -20
  158. package/dist/use-observing-table-state/use-observing-table-state.js.map +1 -1
  159. package/dist/utils/filters.js +14 -9
  160. package/dist/utils/filters.js.map +1 -1
  161. package/dist/utils/use-td-props.js +3 -2
  162. package/dist/utils/use-td-props.js.map +1 -1
  163. package/package.json +13 -13
  164. package/dist/filters/async-select/async-select-filter.stories.js +0 -7
  165. package/dist/filters/async-select/async-select-filter.stories.js.map +0 -1
  166. package/dist/filters/multiselect-filter/multiselect-filter.stories.js +0 -7
  167. package/dist/filters/multiselect-filter/multiselect-filter.stories.js.map +0 -1
  168. package/dist/filters/range-filter/range-filter.stories.js +0 -9
  169. package/dist/filters/range-filter/range-filter.stories.js.map +0 -1
  170. package/dist/filters/select-filter/__tests__/object-search.test.js +0 -28
  171. package/dist/filters/select-filter/__tests__/object-search.test.js.map +0 -1
  172. package/dist/filters/select-filter/select-filter.stories.js +0 -8
  173. package/dist/filters/select-filter/select-filter.stories.js.map +0 -1
  174. package/dist/filters/single-select/single-select-filter.stories.js +0 -8
  175. package/dist/filters/single-select/single-select-filter.stories.js.map +0 -1
  176. package/dist/table.stories.js +0 -12
  177. package/dist/table.stories.js.map +0 -1
  178. package/dist/use-observing-table-state/use-observing-table-state.stories.js +0 -11
  179. package/dist/use-observing-table-state/use-observing-table-state.stories.js.map +0 -1
  180. package/dist/utils/__tests__/filters.test.js +0 -24
  181. package/dist/utils/__tests__/filters.test.js.map +0 -1
@@ -2,55 +2,59 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  export const categories = [
3
3
  {
4
4
  CategoryID: 1,
5
- CategoryName: 'Wok',
5
+ CategoryName: 'Wok'
6
6
  },
7
7
  {
8
8
  CategoryID: 2,
9
- CategoryName: 'Sushi',
9
+ CategoryName: 'Sushi'
10
10
  },
11
11
  {
12
12
  CategoryID: 6,
13
- CategoryName: 'Gunkan',
13
+ CategoryName: 'Gunkan'
14
14
  },
15
15
  {
16
16
  CategoryID: 7,
17
- CategoryName: 'Miso',
17
+ CategoryName: 'Miso'
18
18
  },
19
19
  {
20
20
  CategoryID: 8,
21
- CategoryName: 'Roll',
21
+ CategoryName: 'Roll'
22
22
  },
23
23
  {
24
24
  CategoryID: 10,
25
- CategoryName: 'Sashimi',
25
+ CategoryName: 'Sashimi'
26
26
  },
27
27
  {
28
28
  CategoryID: 21,
29
- CategoryName: 'Borsh',
29
+ CategoryName: 'Borsh'
30
30
  },
31
31
  {
32
32
  CategoryID: 22,
33
- CategoryName: 'Pasta Carbonara',
33
+ CategoryName: 'Pasta Carbonara'
34
34
  },
35
35
  {
36
36
  CategoryID: 23,
37
- CategoryName: 'Caesar salad',
37
+ CategoryName: 'Caesar salad'
38
38
  },
39
39
  {
40
40
  CategoryID: 24,
41
- CategoryName: 'Ravioli',
41
+ CategoryName: 'Ravioli'
42
42
  },
43
43
  {
44
44
  CategoryID: 25,
45
- CategoryName: 'Pizza',
45
+ CategoryName: 'Pizza'
46
46
  },
47
47
  {
48
48
  CategoryID: 26,
49
- CategoryName: 'Steak',
50
- },
49
+ CategoryName: 'Steak'
50
+ }
51
51
  ];
52
- export const CategoryCell = ({ field, dataItem, tdProps }) => {
53
- var _a;
54
- return (_jsx("td", { ...tdProps, children: (_a = categories.find(c => c.CategoryID === dataItem[field])) === null || _a === void 0 ? void 0 : _a.CategoryName }));
52
+ export const CategoryCell = ({ field, dataItem, tdProps })=>{
53
+ var _categories_find;
54
+ return /*#__PURE__*/ _jsx("td", {
55
+ ...tdProps,
56
+ children: (_categories_find = categories.find((c)=>c.CategoryID === dataItem[field])) === null || _categories_find === void 0 ? void 0 : _categories_find.CategoryName
57
+ });
55
58
  };
59
+
56
60
  //# sourceMappingURL=categories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"categories.js","sourceRoot":"","sources":["../../../src/demo/filters/categories.tsx"],"names":[],"mappings":";AAQA,MAAM,CAAC,MAAM,UAAU,GAAe;IAClC;QACI,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,KAAK;KACtB;IACD;QACI,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,OAAO;KACxB;IACD;QACI,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,QAAQ;KACzB;IACD;QACI,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,MAAM;KACvB;IACD;QACI,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,MAAM;KACvB;IACD;QACI,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,SAAS;KAC1B;IACD;QACI,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,OAAO;KACxB;IACD;QACI,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,iBAAiB;KAClC;IACD;QACI,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,cAAc;KAC/B;IACD;QACI,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,SAAS;KAC1B;IACD;QACI,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,OAAO;KACxB;IACD;QACI,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,OAAO;KACxB;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAuB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;;IAAC,OAAA,CAC9E,gBAAQ,OAAO,YAAG,MAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,KAAM,CAAC,CAAC,0CAAE,YAAY,GAAM,CAChG,CAAA;CAAA,CAAC"}
1
+ {"version":3,"sources":["../../../src/demo/filters/categories.tsx"],"sourcesContent":["import { FC } from 'react';\nimport { TableCellProps } from '../../table';\n\nexport interface Category {\n CategoryID: number;\n CategoryName: string;\n}\n\nexport const categories: Category[] = [\n {\n CategoryID: 1,\n CategoryName: 'Wok',\n },\n {\n CategoryID: 2,\n CategoryName: 'Sushi',\n },\n {\n CategoryID: 6,\n CategoryName: 'Gunkan',\n },\n {\n CategoryID: 7,\n CategoryName: 'Miso',\n },\n {\n CategoryID: 8,\n CategoryName: 'Roll',\n },\n {\n CategoryID: 10,\n CategoryName: 'Sashimi',\n },\n {\n CategoryID: 21,\n CategoryName: 'Borsh',\n },\n {\n CategoryID: 22,\n CategoryName: 'Pasta Carbonara',\n },\n {\n CategoryID: 23,\n CategoryName: 'Caesar salad',\n },\n {\n CategoryID: 24,\n CategoryName: 'Ravioli',\n },\n {\n CategoryID: 25,\n CategoryName: 'Pizza',\n },\n {\n CategoryID: 26,\n CategoryName: 'Steak',\n },\n];\n\nexport const CategoryCell: FC<TableCellProps> = ({ field, dataItem, tdProps }) => (\n <td {...tdProps}>{categories.find(c => c.CategoryID === dataItem[field!])?.CategoryName}</td>\n);\n"],"names":["categories","CategoryID","CategoryName","CategoryCell","field","dataItem","tdProps","td","find","c"],"mappings":";AAQA,OAAO,MAAMA,aAAyB;IAClC;QACIC,YAAY;QACZC,cAAc;IAClB;IACA;QACID,YAAY;QACZC,cAAc;IAClB;IACA;QACID,YAAY;QACZC,cAAc;IAClB;IACA;QACID,YAAY;QACZC,cAAc;IAClB;IACA;QACID,YAAY;QACZC,cAAc;IAClB;IACA;QACID,YAAY;QACZC,cAAc;IAClB;IACA;QACID,YAAY;QACZC,cAAc;IAClB;IACA;QACID,YAAY;QACZC,cAAc;IAClB;IACA;QACID,YAAY;QACZC,cAAc;IAClB;IACA;QACID,YAAY;QACZC,cAAc;IAClB;IACA;QACID,YAAY;QACZC,cAAc;IAClB;IACA;QACID,YAAY;QACZC,cAAc;IAClB;CACH,CAAC;AAEF,OAAO,MAAMC,eAAmC,CAAC,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,OAAO,EAAE;QACvDN;yBAAlB,KAACO;QAAI,GAAGD,OAAO;mBAAGN,mBAAAA,WAAWQ,IAAI,CAACC,CAAAA,IAAKA,EAAER,UAAU,KAAKI,QAAQ,CAACD,MAAO,eAAtDJ,uCAAAA,iBAAyDE,YAAY;;EACzF"}
@@ -5,11 +5,43 @@ import { observer } from 'mobx-react';
5
5
  import { Table, TableColumn, multiSelectColumnMenuFilter } from '../..';
6
6
  import { TableStore } from './table.store';
7
7
  export const MultiSelectDefaultExample = provide({
8
- singletons: [TableStore],
9
- })(observer(() => {
8
+ singletons: [
9
+ TableStore
10
+ ]
11
+ })(observer(()=>{
10
12
  const [{ tableState, madeInOptions }] = useDependencies(TableStore);
11
- const madeInColumnMenu = useMemo(() => multiSelectColumnMenuFilter(madeInOptions), [madeInOptions]);
12
- const categoryColumnMenu = useMemo(() => multiSelectColumnMenuFilter(new Array(20).fill(0).map((_, index) => index), undefined, { contentMaxHeight: '250px' }), []);
13
- return (_jsxs(Table, { tableState: tableState, children: [_jsx(TableColumn, { field: "ProductID", title: "ID", editable: false, width: "100px" }), _jsx(TableColumn, { field: "ProductName", title: "Product Name", width: "240px" }), _jsx(TableColumn, { field: "MadeIn", title: "Made In", columnMenu: madeInColumnMenu }), _jsx(TableColumn, { field: "CategoryID", title: "CategoryID", columnMenu: categoryColumnMenu })] }));
13
+ const madeInColumnMenu = useMemo(()=>multiSelectColumnMenuFilter(madeInOptions), [
14
+ madeInOptions
15
+ ]);
16
+ const categoryColumnMenu = useMemo(()=>multiSelectColumnMenuFilter(new Array(20).fill(0).map((_, index)=>index), undefined, {
17
+ contentMaxHeight: '250px'
18
+ }), []);
19
+ return /*#__PURE__*/ _jsxs(Table, {
20
+ tableState: tableState,
21
+ children: [
22
+ /*#__PURE__*/ _jsx(TableColumn, {
23
+ field: "ProductID",
24
+ title: "ID",
25
+ editable: false,
26
+ width: "100px"
27
+ }),
28
+ /*#__PURE__*/ _jsx(TableColumn, {
29
+ field: "ProductName",
30
+ title: "Product Name",
31
+ width: "240px"
32
+ }),
33
+ /*#__PURE__*/ _jsx(TableColumn, {
34
+ field: "MadeIn",
35
+ title: "Made In",
36
+ columnMenu: madeInColumnMenu
37
+ }),
38
+ /*#__PURE__*/ _jsx(TableColumn, {
39
+ field: "CategoryID",
40
+ title: "CategoryID",
41
+ columnMenu: categoryColumnMenu
42
+ })
43
+ ]
44
+ });
14
45
  }));
46
+
15
47
  //# sourceMappingURL=multiselect-filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"multiselect-filter.js","sourceRoot":"","sources":["../../../src/demo/filters/multiselect-filter.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAM,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,OAAO,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,CAAC,MAAM,yBAAyB,GAAO,OAAO,CAAC;IACjD,UAAU,EAAE,CAAC,UAAU,CAAC;CAC3B,CAAC,CACE,QAAQ,CAAC,GAAG,EAAE;IACV,MAAM,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAEpE,MAAM,gBAAgB,GAAG,OAAO,CAC5B,GAAG,EAAE,CAAC,2BAA2B,CAAC,aAAa,CAAC,EAChD,CAAC,aAAa,CAAC,CAClB,CAAC;IAEF,MAAM,kBAAkB,GAAG,OAAO,CAC9B,GAAG,EAAE,CACD,2BAA2B,CACvB,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAC9C,SAAS,EACT,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAChC,EACL,EAAE,CACL,CAAC;IAEF,OAAO,CACH,MAAC,KAAK,IAAC,UAAU,EAAE,UAAU,aACzB,KAAC,WAAW,IAAC,KAAK,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAC,OAAO,GAAG,EAE3E,KAAC,WAAW,IAAC,KAAK,EAAC,aAAa,EAAC,KAAK,EAAC,cAAc,EAAC,KAAK,EAAC,OAAO,GAAG,EAEtE,KAAC,WAAW,IAAC,KAAK,EAAC,QAAQ,EAAC,KAAK,EAAC,SAAS,EAAC,UAAU,EAAE,gBAAgB,GAAI,EAC5E,KAAC,WAAW,IACR,KAAK,EAAC,YAAY,EAClB,KAAK,EAAC,YAAY,EAClB,UAAU,EAAE,kBAAkB,GAChC,IACE,CACX,CAAC;AACN,CAAC,CAAC,CACL,CAAC"}
1
+ {"version":3,"sources":["../../../src/demo/filters/multiselect-filter.tsx"],"sourcesContent":["import { useMemo, FC } from 'react';\n\nimport { provide, useDependencies } from '@servicetitan/react-ioc';\n\nimport { observer } from 'mobx-react';\n\nimport { Table, TableColumn, multiSelectColumnMenuFilter } from '../..';\n\nimport { TableStore } from './table.store';\n\nexport const MultiSelectDefaultExample: FC = provide({\n singletons: [TableStore],\n})(\n observer(() => {\n const [{ tableState, madeInOptions }] = useDependencies(TableStore);\n\n const madeInColumnMenu = useMemo(\n () => multiSelectColumnMenuFilter(madeInOptions),\n [madeInOptions]\n );\n\n const categoryColumnMenu = useMemo(\n () =>\n multiSelectColumnMenuFilter(\n new Array(20).fill(0).map((_, index) => index),\n undefined,\n { contentMaxHeight: '250px' }\n ),\n []\n );\n\n return (\n <Table tableState={tableState}>\n <TableColumn field=\"ProductID\" title=\"ID\" editable={false} width=\"100px\" />\n\n <TableColumn field=\"ProductName\" title=\"Product Name\" width=\"240px\" />\n\n <TableColumn field=\"MadeIn\" title=\"Made In\" columnMenu={madeInColumnMenu} />\n <TableColumn\n field=\"CategoryID\"\n title=\"CategoryID\"\n columnMenu={categoryColumnMenu}\n />\n </Table>\n );\n })\n);\n"],"names":["useMemo","provide","useDependencies","observer","Table","TableColumn","multiSelectColumnMenuFilter","TableStore","MultiSelectDefaultExample","singletons","tableState","madeInOptions","madeInColumnMenu","categoryColumnMenu","Array","fill","map","_","index","undefined","contentMaxHeight","field","title","editable","width","columnMenu"],"mappings":";AAAA,SAASA,OAAO,QAAY,QAAQ;AAEpC,SAASC,OAAO,EAAEC,eAAe,QAAQ,0BAA0B;AAEnE,SAASC,QAAQ,QAAQ,aAAa;AAEtC,SAASC,KAAK,EAAEC,WAAW,EAAEC,2BAA2B,QAAQ,QAAQ;AAExE,SAASC,UAAU,QAAQ,gBAAgB;AAE3C,OAAO,MAAMC,4BAAgCP,QAAQ;IACjDQ,YAAY;QAACF;KAAW;AAC5B,GACIJ,SAAS;IACL,MAAM,CAAC,EAAEO,UAAU,EAAEC,aAAa,EAAE,CAAC,GAAGT,gBAAgBK;IAExD,MAAMK,mBAAmBZ,QACrB,IAAMM,4BAA4BK,gBAClC;QAACA;KAAc;IAGnB,MAAME,qBAAqBb,QACvB,IACIM,4BACI,IAAIQ,MAAM,IAAIC,IAAI,CAAC,GAAGC,GAAG,CAAC,CAACC,GAAGC,QAAUA,QACxCC,WACA;YAAEC,kBAAkB;QAAQ,IAEpC,EAAE;IAGN,qBACI,MAAChB;QAAMM,YAAYA;;0BACf,KAACL;gBAAYgB,OAAM;gBAAYC,OAAM;gBAAKC,UAAU;gBAAOC,OAAM;;0BAEjE,KAACnB;gBAAYgB,OAAM;gBAAcC,OAAM;gBAAeE,OAAM;;0BAE5D,KAACnB;gBAAYgB,OAAM;gBAASC,OAAM;gBAAUG,YAAYb;;0BACxD,KAACP;gBACGgB,OAAM;gBACNC,OAAM;gBACNG,YAAYZ;;;;AAI5B,IACF"}
@@ -2,25 +2,119 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Fragment } from 'react';
3
3
  import { observer } from 'mobx-react';
4
4
  import { provide, useDependencies } from '@servicetitan/react-ioc';
5
- import { Table, TableColumn, DateRangeColumnMenuFilter, NumericRangeColumnMenuFilter, CurrencyRangeColumnMenuFilter, } from '../..';
5
+ import { Table, TableColumn, DateRangeColumnMenuFilter, NumericRangeColumnMenuFilter, CurrencyRangeColumnMenuFilter } from '../..';
6
6
  import { TableStore } from './table.store';
7
7
  import { Banner } from '@servicetitan/design-system';
8
8
  export const RangeSelectDateExample = provide({
9
- singletons: [TableStore],
10
- })(observer(() => {
9
+ singletons: [
10
+ TableStore
11
+ ]
12
+ })(observer(()=>{
11
13
  const [{ tableState }] = useDependencies(TableStore);
12
- return (_jsxs(Fragment, { children: [_jsx(Banner, { title: "Date range filter", className: "m-b-2", children: "Allows to choose date range" }), _jsxs(Table, { tableState: tableState, children: [_jsx(TableColumn, { field: "ProductID", title: "ID", editable: false, width: "100px" }), _jsx(TableColumn, { field: "ProductName", title: "Product Name", width: "240px" }), _jsx(TableColumn, { field: "UnitsOnOrder", title: "Units On Order", columnMenu: DateRangeColumnMenuFilter })] })] }));
14
+ return /*#__PURE__*/ _jsxs(Fragment, {
15
+ children: [
16
+ /*#__PURE__*/ _jsx(Banner, {
17
+ title: "Date range filter",
18
+ className: "m-b-2",
19
+ children: "Allows to choose date range"
20
+ }),
21
+ /*#__PURE__*/ _jsxs(Table, {
22
+ tableState: tableState,
23
+ children: [
24
+ /*#__PURE__*/ _jsx(TableColumn, {
25
+ field: "ProductID",
26
+ title: "ID",
27
+ editable: false,
28
+ width: "100px"
29
+ }),
30
+ /*#__PURE__*/ _jsx(TableColumn, {
31
+ field: "ProductName",
32
+ title: "Product Name",
33
+ width: "240px"
34
+ }),
35
+ /*#__PURE__*/ _jsx(TableColumn, {
36
+ field: "UnitsOnOrder",
37
+ title: "Units On Order",
38
+ columnMenu: DateRangeColumnMenuFilter
39
+ })
40
+ ]
41
+ })
42
+ ]
43
+ });
13
44
  }));
14
45
  export const RangeSelectNumberExample = provide({
15
- singletons: [TableStore],
16
- })(observer(() => {
46
+ singletons: [
47
+ TableStore
48
+ ]
49
+ })(observer(()=>{
17
50
  const [{ tableState }] = useDependencies(TableStore);
18
- return (_jsxs(Fragment, { children: [_jsx(Banner, { title: "Numeric range filter", className: "m-b-2", children: "Allows to choose numeric range" }), _jsxs(Table, { tableState: tableState, children: [_jsx(TableColumn, { field: "ProductID", title: "ID", editable: false, width: "100px" }), _jsx(TableColumn, { field: "ProductName", title: "Product Name", width: "240px" }), _jsx(TableColumn, { field: "UnitsInStock", title: "Units In Stock", columnMenu: NumericRangeColumnMenuFilter })] })] }));
51
+ return /*#__PURE__*/ _jsxs(Fragment, {
52
+ children: [
53
+ /*#__PURE__*/ _jsx(Banner, {
54
+ title: "Numeric range filter",
55
+ className: "m-b-2",
56
+ children: "Allows to choose numeric range"
57
+ }),
58
+ /*#__PURE__*/ _jsxs(Table, {
59
+ tableState: tableState,
60
+ children: [
61
+ /*#__PURE__*/ _jsx(TableColumn, {
62
+ field: "ProductID",
63
+ title: "ID",
64
+ editable: false,
65
+ width: "100px"
66
+ }),
67
+ /*#__PURE__*/ _jsx(TableColumn, {
68
+ field: "ProductName",
69
+ title: "Product Name",
70
+ width: "240px"
71
+ }),
72
+ /*#__PURE__*/ _jsx(TableColumn, {
73
+ field: "UnitsInStock",
74
+ title: "Units In Stock",
75
+ columnMenu: NumericRangeColumnMenuFilter
76
+ })
77
+ ]
78
+ })
79
+ ]
80
+ });
19
81
  }));
20
82
  export const RangeSelectCurrencyExample = provide({
21
- singletons: [TableStore],
22
- })(observer(() => {
83
+ singletons: [
84
+ TableStore
85
+ ]
86
+ })(observer(()=>{
23
87
  const [{ tableState }] = useDependencies(TableStore);
24
- return (_jsxs(Fragment, { children: [_jsx(Banner, { title: "Currency range filter", className: "m-b-2", children: "Allows to choose currency range" }), _jsxs(Table, { tableState: tableState, children: [_jsx(TableColumn, { field: "ProductID", title: "ID", editable: false, width: "100px" }), _jsx(TableColumn, { field: "ProductName", title: "Product Name", width: "240px" }), _jsx(TableColumn, { field: "UnitPrice", title: "Unit Price", columnMenu: CurrencyRangeColumnMenuFilter })] })] }));
88
+ return /*#__PURE__*/ _jsxs(Fragment, {
89
+ children: [
90
+ /*#__PURE__*/ _jsx(Banner, {
91
+ title: "Currency range filter",
92
+ className: "m-b-2",
93
+ children: "Allows to choose currency range"
94
+ }),
95
+ /*#__PURE__*/ _jsxs(Table, {
96
+ tableState: tableState,
97
+ children: [
98
+ /*#__PURE__*/ _jsx(TableColumn, {
99
+ field: "ProductID",
100
+ title: "ID",
101
+ editable: false,
102
+ width: "100px"
103
+ }),
104
+ /*#__PURE__*/ _jsx(TableColumn, {
105
+ field: "ProductName",
106
+ title: "Product Name",
107
+ width: "240px"
108
+ }),
109
+ /*#__PURE__*/ _jsx(TableColumn, {
110
+ field: "UnitPrice",
111
+ title: "Unit Price",
112
+ columnMenu: CurrencyRangeColumnMenuFilter
113
+ })
114
+ ]
115
+ })
116
+ ]
117
+ });
25
118
  }));
119
+
26
120
  //# sourceMappingURL=range-filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"range-filter.js","sourceRoot":"","sources":["../../../src/demo/filters/range-filter.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/demo/filters/range-filter.tsx"],"sourcesContent":["import { FC, Fragment } from 'react';\nimport { observer } from 'mobx-react';\nimport { provide, useDependencies } from '@servicetitan/react-ioc';\n\nimport {\n Table,\n TableColumn,\n DateRangeColumnMenuFilter,\n NumericRangeColumnMenuFilter,\n CurrencyRangeColumnMenuFilter,\n} from '../..';\nimport { TableStore } from './table.store';\nimport { Banner } from '@servicetitan/design-system';\n\nexport const RangeSelectDateExample: FC = provide({\n singletons: [TableStore],\n})(\n observer(() => {\n const [{ tableState }] = useDependencies(TableStore);\n\n return (\n <Fragment>\n <Banner title=\"Date range filter\" className=\"m-b-2\">\n Allows to choose date range\n </Banner>\n <Table tableState={tableState}>\n <TableColumn field=\"ProductID\" title=\"ID\" editable={false} width=\"100px\" />\n <TableColumn field=\"ProductName\" title=\"Product Name\" width=\"240px\" />\n <TableColumn\n field=\"UnitsOnOrder\"\n title=\"Units On Order\"\n columnMenu={DateRangeColumnMenuFilter}\n />\n </Table>\n </Fragment>\n );\n })\n);\n\nexport const RangeSelectNumberExample: FC = provide({\n singletons: [TableStore],\n})(\n observer(() => {\n const [{ tableState }] = useDependencies(TableStore);\n\n return (\n <Fragment>\n <Banner title=\"Numeric range filter\" className=\"m-b-2\">\n Allows to choose numeric range\n </Banner>\n <Table tableState={tableState}>\n <TableColumn field=\"ProductID\" title=\"ID\" editable={false} width=\"100px\" />\n <TableColumn field=\"ProductName\" title=\"Product Name\" width=\"240px\" />\n <TableColumn\n field=\"UnitsInStock\"\n title=\"Units In Stock\"\n columnMenu={NumericRangeColumnMenuFilter}\n />\n </Table>\n </Fragment>\n );\n })\n);\n\nexport const RangeSelectCurrencyExample: FC = provide({\n singletons: [TableStore],\n})(\n observer(() => {\n const [{ tableState }] = useDependencies(TableStore);\n\n return (\n <Fragment>\n <Banner title=\"Currency range filter\" className=\"m-b-2\">\n Allows to choose currency range\n </Banner>\n <Table tableState={tableState}>\n <TableColumn field=\"ProductID\" title=\"ID\" editable={false} width=\"100px\" />\n <TableColumn field=\"ProductName\" title=\"Product Name\" width=\"240px\" />\n <TableColumn\n field=\"UnitPrice\"\n title=\"Unit Price\"\n columnMenu={CurrencyRangeColumnMenuFilter}\n />\n </Table>\n </Fragment>\n );\n })\n);\n"],"names":["Fragment","observer","provide","useDependencies","Table","TableColumn","DateRangeColumnMenuFilter","NumericRangeColumnMenuFilter","CurrencyRangeColumnMenuFilter","TableStore","Banner","RangeSelectDateExample","singletons","tableState","title","className","field","editable","width","columnMenu","RangeSelectNumberExample","RangeSelectCurrencyExample"],"mappings":";AAAA,SAAaA,QAAQ,QAAQ,QAAQ;AACrC,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,OAAO,EAAEC,eAAe,QAAQ,0BAA0B;AAEnE,SACIC,KAAK,EACLC,WAAW,EACXC,yBAAyB,EACzBC,4BAA4B,EAC5BC,6BAA6B,QAC1B,QAAQ;AACf,SAASC,UAAU,QAAQ,gBAAgB;AAC3C,SAASC,MAAM,QAAQ,8BAA8B;AAErD,OAAO,MAAMC,yBAA6BT,QAAQ;IAC9CU,YAAY;QAACH;KAAW;AAC5B,GACIR,SAAS;IACL,MAAM,CAAC,EAAEY,UAAU,EAAE,CAAC,GAAGV,gBAAgBM;IAEzC,qBACI,MAACT;;0BACG,KAACU;gBAAOI,OAAM;gBAAoBC,WAAU;0BAAQ;;0BAGpD,MAACX;gBAAMS,YAAYA;;kCACf,KAACR;wBAAYW,OAAM;wBAAYF,OAAM;wBAAKG,UAAU;wBAAOC,OAAM;;kCACjE,KAACb;wBAAYW,OAAM;wBAAcF,OAAM;wBAAeI,OAAM;;kCAC5D,KAACb;wBACGW,OAAM;wBACNF,OAAM;wBACNK,YAAYb;;;;;;AAKhC,IACF;AAEF,OAAO,MAAMc,2BAA+BlB,QAAQ;IAChDU,YAAY;QAACH;KAAW;AAC5B,GACIR,SAAS;IACL,MAAM,CAAC,EAAEY,UAAU,EAAE,CAAC,GAAGV,gBAAgBM;IAEzC,qBACI,MAACT;;0BACG,KAACU;gBAAOI,OAAM;gBAAuBC,WAAU;0BAAQ;;0BAGvD,MAACX;gBAAMS,YAAYA;;kCACf,KAACR;wBAAYW,OAAM;wBAAYF,OAAM;wBAAKG,UAAU;wBAAOC,OAAM;;kCACjE,KAACb;wBAAYW,OAAM;wBAAcF,OAAM;wBAAeI,OAAM;;kCAC5D,KAACb;wBACGW,OAAM;wBACNF,OAAM;wBACNK,YAAYZ;;;;;;AAKhC,IACF;AAEF,OAAO,MAAMc,6BAAiCnB,QAAQ;IAClDU,YAAY;QAACH;KAAW;AAC5B,GACIR,SAAS;IACL,MAAM,CAAC,EAAEY,UAAU,EAAE,CAAC,GAAGV,gBAAgBM;IAEzC,qBACI,MAACT;;0BACG,KAACU;gBAAOI,OAAM;gBAAwBC,WAAU;0BAAQ;;0BAGxD,MAACX;gBAAMS,YAAYA;;kCACf,KAACR;wBAAYW,OAAM;wBAAYF,OAAM;wBAAKG,UAAU;wBAAOC,OAAM;;kCACjE,KAACb;wBAAYW,OAAM;wBAAcF,OAAM;wBAAeI,OAAM;;kCAC5D,KAACb;wBACGW,OAAM;wBACNF,OAAM;wBACNK,YAAYX;;;;;;AAKhC,IACF"}
@@ -6,52 +6,150 @@ import { provide, useDependencies } from '@servicetitan/react-ioc';
6
6
  import { Table, TableColumn, selectColumnMenuFilter } from '../..';
7
7
  import { TableStore } from './table.store';
8
8
  import { categories, CategoryCell } from './categories';
9
- export const PackageCell = ({ dataItem, tdProps }) => {
10
- var _a;
11
- return (_jsx("td", { ...tdProps, children: (_a = dataItem === null || dataItem === void 0 ? void 0 : dataItem.Package) === null || _a === void 0 ? void 0 : _a.PackageName }));
9
+ export const PackageCell = ({ dataItem, tdProps })=>{
10
+ var _dataItem_Package;
11
+ return /*#__PURE__*/ _jsx("td", {
12
+ ...tdProps,
13
+ children: dataItem === null || dataItem === void 0 ? void 0 : (_dataItem_Package = dataItem.Package) === null || _dataItem_Package === void 0 ? void 0 : _dataItem_Package.PackageName
14
+ });
12
15
  };
13
16
  export const SelectAsyncExample = provide({
14
- singletons: [TableStore],
15
- })(observer(() => {
17
+ singletons: [
18
+ TableStore
19
+ ]
20
+ })(observer(()=>{
16
21
  const [{ categoryFetcherClean, madeInFetcherClean, tableState }] = useDependencies(TableStore);
17
- const madeInColumnMenu = useMemo(() => selectColumnMenuFilter({
18
- dataFetcher: madeInFetcherClean,
19
- search: true,
20
- }), [madeInFetcherClean]);
21
- const categoryColumnMenu = useMemo(() => selectColumnMenuFilter({
22
- dataFetcher: categoryFetcherClean,
23
- multiple: true,
24
- contentMaxHeight: '250px',
25
- valueSelector: item => item.CategoryID,
26
- }), [categoryFetcherClean]);
27
- return (_jsxs(Fragment, { children: [_jsxs(Banner, { title: "Default filter with async select", className: "m-b-2", children: ["Async select filter allows to choose one or several option from the list that will be fetched from BE. The list size is not limited, so you can also use search to find desired option.", _jsx("br", {}), "Use it when there can be greater than 20 possible options"] }), _jsxs(Table, { tableState: tableState, striped: false, children: [_jsx(TableColumn, { field: "ProductID", title: "ID", editable: false, width: "100px" }), _jsx(TableColumn, { field: "ProductName", title: "Product Name", width: "240px" }), _jsx(TableColumn, { field: "MadeIn", title: "Made In (async single-select filter)", columnMenu: madeInColumnMenu }), _jsx(TableColumn, { field: "CategoryID", title: "Category (async multi-select filter)", columnMenu: categoryColumnMenu, cell: CategoryCell })] })] }));
22
+ const madeInColumnMenu = useMemo(()=>selectColumnMenuFilter({
23
+ dataFetcher: madeInFetcherClean,
24
+ search: true
25
+ }), [
26
+ madeInFetcherClean
27
+ ]);
28
+ const categoryColumnMenu = useMemo(()=>selectColumnMenuFilter({
29
+ dataFetcher: categoryFetcherClean,
30
+ multiple: true,
31
+ contentMaxHeight: '250px',
32
+ valueSelector: (item)=>item.CategoryID
33
+ }), [
34
+ categoryFetcherClean
35
+ ]);
36
+ return /*#__PURE__*/ _jsxs(Fragment, {
37
+ children: [
38
+ /*#__PURE__*/ _jsxs(Banner, {
39
+ title: "Default filter with async select",
40
+ className: "m-b-2",
41
+ children: [
42
+ "Async select filter allows to choose one or several option from the list that will be fetched from BE. The list size is not limited, so you can also use search to find desired option.",
43
+ /*#__PURE__*/ _jsx("br", {}),
44
+ "Use it when there can be greater than 20 possible options"
45
+ ]
46
+ }),
47
+ /*#__PURE__*/ _jsxs(Table, {
48
+ tableState: tableState,
49
+ striped: false,
50
+ children: [
51
+ /*#__PURE__*/ _jsx(TableColumn, {
52
+ field: "ProductID",
53
+ title: "ID",
54
+ editable: false,
55
+ width: "100px"
56
+ }),
57
+ /*#__PURE__*/ _jsx(TableColumn, {
58
+ field: "ProductName",
59
+ title: "Product Name",
60
+ width: "240px"
61
+ }),
62
+ /*#__PURE__*/ _jsx(TableColumn, {
63
+ field: "MadeIn",
64
+ title: "Made In (async single-select filter)",
65
+ columnMenu: madeInColumnMenu
66
+ }),
67
+ /*#__PURE__*/ _jsx(TableColumn, {
68
+ field: "CategoryID",
69
+ title: "Category (async multi-select filter)",
70
+ columnMenu: categoryColumnMenu,
71
+ cell: CategoryCell
72
+ })
73
+ ]
74
+ })
75
+ ]
76
+ });
28
77
  }));
29
78
  export const SelectSyncExample = provide({
30
- singletons: [TableStore],
31
- })(observer(() => {
79
+ singletons: [
80
+ TableStore
81
+ ]
82
+ })(observer(()=>{
32
83
  const [{ madeInOptions, packageOptions, tableState }] = useDependencies(TableStore);
33
- const madeInColumnMenu = useMemo(() => selectColumnMenuFilter({
34
- data: madeInOptions,
35
- search: {
36
- placeholder: 'Search for made-ins',
37
- filter: search => item => item.toLowerCase().includes(search),
38
- },
39
- }), [madeInOptions]);
40
- const categoryColumnMenu = useMemo(() => selectColumnMenuFilter({
41
- data: categories,
42
- multiple: true,
43
- contentMaxHeight: '250px',
44
- valueSelector: item => item.CategoryID,
45
- renderItem: item => item.CategoryName,
46
- search: true,
47
- }), []);
48
- const packageColumnMenu = useMemo(() => selectColumnMenuFilter({
49
- data: packageOptions,
50
- multiple: false,
51
- valueSelector: item => item.Id,
52
- renderItem: item => item.Name,
53
- rowValueSelector: (item) => item === null || item === void 0 ? void 0 : item.PackageId,
54
- }), [packageOptions]);
55
- return (_jsxs(Fragment, { children: [_jsx(Banner, { title: "Default filter with sync select", className: "m-b-2", children: "Select filter allows to choose one or multiple option(s) from the provided list. You can pass simple options (string or number) or complex objects" }), _jsxs(Table, { tableState: tableState, striped: false, children: [_jsx(TableColumn, { field: "ProductID", title: "ID", editable: false, width: "100px" }), _jsx(TableColumn, { field: "ProductName", title: "Product Name", width: "240px" }), _jsx(TableColumn, { field: "MadeIn", title: "Made In (sync single-select filter)", columnMenu: madeInColumnMenu }), _jsx(TableColumn, { field: "CategoryID", title: "Category (sync multi-select filter)", columnMenu: categoryColumnMenu, cell: CategoryCell }), _jsx(TableColumn, { field: "Package", title: "Package (sync single-select filter)", columnMenu: packageColumnMenu, cell: PackageCell })] })] }));
84
+ const madeInColumnMenu = useMemo(()=>selectColumnMenuFilter({
85
+ data: madeInOptions,
86
+ search: {
87
+ placeholder: 'Search for made-ins',
88
+ filter: (search)=>(item)=>item.toLowerCase().includes(search)
89
+ }
90
+ }), [
91
+ madeInOptions
92
+ ]);
93
+ const categoryColumnMenu = useMemo(()=>selectColumnMenuFilter({
94
+ data: categories,
95
+ multiple: true,
96
+ contentMaxHeight: '250px',
97
+ valueSelector: (item)=>item.CategoryID,
98
+ renderItem: (item)=>item.CategoryName,
99
+ search: true
100
+ }), []);
101
+ const packageColumnMenu = useMemo(()=>selectColumnMenuFilter({
102
+ data: packageOptions,
103
+ multiple: false,
104
+ valueSelector: (item)=>item.Id,
105
+ renderItem: (item)=>item.Name,
106
+ rowValueSelector: (item)=>item === null || item === void 0 ? void 0 : item.PackageId
107
+ }), [
108
+ packageOptions
109
+ ]);
110
+ return /*#__PURE__*/ _jsxs(Fragment, {
111
+ children: [
112
+ /*#__PURE__*/ _jsx(Banner, {
113
+ title: "Default filter with sync select",
114
+ className: "m-b-2",
115
+ children: "Select filter allows to choose one or multiple option(s) from the provided list. You can pass simple options (string or number) or complex objects"
116
+ }),
117
+ /*#__PURE__*/ _jsxs(Table, {
118
+ tableState: tableState,
119
+ striped: false,
120
+ children: [
121
+ /*#__PURE__*/ _jsx(TableColumn, {
122
+ field: "ProductID",
123
+ title: "ID",
124
+ editable: false,
125
+ width: "100px"
126
+ }),
127
+ /*#__PURE__*/ _jsx(TableColumn, {
128
+ field: "ProductName",
129
+ title: "Product Name",
130
+ width: "240px"
131
+ }),
132
+ /*#__PURE__*/ _jsx(TableColumn, {
133
+ field: "MadeIn",
134
+ title: "Made In (sync single-select filter)",
135
+ columnMenu: madeInColumnMenu
136
+ }),
137
+ /*#__PURE__*/ _jsx(TableColumn, {
138
+ field: "CategoryID",
139
+ title: "Category (sync multi-select filter)",
140
+ columnMenu: categoryColumnMenu,
141
+ cell: CategoryCell
142
+ }),
143
+ /*#__PURE__*/ _jsx(TableColumn, {
144
+ field: "Package",
145
+ title: "Package (sync single-select filter)",
146
+ columnMenu: packageColumnMenu,
147
+ cell: PackageCell
148
+ })
149
+ ]
150
+ })
151
+ ]
152
+ });
56
153
  }));
154
+
57
155
  //# sourceMappingURL=select-filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-filter.js","sourceRoot":"","sources":["../../../src/demo/filters/select-filter.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/demo/filters/select-filter.tsx"],"sourcesContent":["import { useMemo, FC, Fragment } from 'react';\nimport { observer } from 'mobx-react';\nimport { Banner } from '@servicetitan/design-system';\nimport { provide, useDependencies } from '@servicetitan/react-ioc';\n\nimport { Table, TableColumn, selectColumnMenuFilter, TableCellProps } from '../..';\n\nimport { TableStore } from './table.store';\nimport { categories, CategoryCell } from './categories';\nimport { Product } from '../overview/product';\n\nexport const PackageCell: FC<TableCellProps> = ({ dataItem, tdProps }) => (\n <td {...tdProps}>{dataItem?.Package?.PackageName}</td>\n);\n\nexport const SelectAsyncExample: FC = provide({\n singletons: [TableStore],\n})(\n observer(() => {\n const [{ categoryFetcherClean, madeInFetcherClean, tableState }] =\n useDependencies(TableStore);\n\n const madeInColumnMenu = useMemo(\n () =>\n selectColumnMenuFilter({\n dataFetcher: madeInFetcherClean,\n search: true,\n }),\n [madeInFetcherClean]\n );\n\n const categoryColumnMenu = useMemo(\n () =>\n selectColumnMenuFilter({\n dataFetcher: categoryFetcherClean,\n multiple: true,\n contentMaxHeight: '250px',\n valueSelector: item => item.CategoryID,\n }),\n [categoryFetcherClean]\n );\n\n return (\n <Fragment>\n <Banner title=\"Default filter with async select\" className=\"m-b-2\">\n Async select filter allows to choose one or several option from the list that\n will be fetched from BE. The list size is not limited, so you can also use\n search to find desired option.\n <br />\n Use it when there can be greater than 20 possible options\n </Banner>\n <Table tableState={tableState} striped={false}>\n <TableColumn field=\"ProductID\" title=\"ID\" editable={false} width=\"100px\" />\n <TableColumn field=\"ProductName\" title=\"Product Name\" width=\"240px\" />\n <TableColumn\n field=\"MadeIn\"\n title=\"Made In (async single-select filter)\"\n columnMenu={madeInColumnMenu}\n />\n <TableColumn\n field=\"CategoryID\"\n title=\"Category (async multi-select filter)\"\n columnMenu={categoryColumnMenu}\n cell={CategoryCell}\n />\n </Table>\n </Fragment>\n );\n })\n);\n\nexport const SelectSyncExample: FC = provide({\n singletons: [TableStore],\n})(\n observer(() => {\n const [{ madeInOptions, packageOptions, tableState }] = useDependencies(TableStore);\n\n const madeInColumnMenu = useMemo(\n () =>\n selectColumnMenuFilter({\n data: madeInOptions,\n search: {\n placeholder: 'Search for made-ins',\n filter: search => item => item.toLowerCase().includes(search),\n },\n }),\n [madeInOptions]\n );\n\n const categoryColumnMenu = useMemo(\n () =>\n selectColumnMenuFilter({\n data: categories,\n multiple: true,\n contentMaxHeight: '250px',\n valueSelector: item => item.CategoryID,\n renderItem: item => item.CategoryName,\n search: true,\n }),\n []\n );\n\n const packageColumnMenu = useMemo(\n () =>\n selectColumnMenuFilter({\n data: packageOptions,\n multiple: false,\n valueSelector: item => item.Id,\n renderItem: item => item.Name,\n rowValueSelector: (item: Product['Package']) => item?.PackageId,\n }),\n [packageOptions]\n );\n\n return (\n <Fragment>\n <Banner title=\"Default filter with sync select\" className=\"m-b-2\">\n Select filter allows to choose one or multiple option(s) from the provided list.\n You can pass simple options (string or number) or complex objects\n </Banner>\n <Table tableState={tableState} striped={false}>\n <TableColumn field=\"ProductID\" title=\"ID\" editable={false} width=\"100px\" />\n <TableColumn field=\"ProductName\" title=\"Product Name\" width=\"240px\" />\n <TableColumn\n field=\"MadeIn\"\n title=\"Made In (sync single-select filter)\"\n columnMenu={madeInColumnMenu}\n />\n <TableColumn\n field=\"CategoryID\"\n title=\"Category (sync multi-select filter)\"\n columnMenu={categoryColumnMenu}\n cell={CategoryCell}\n />\n <TableColumn\n field=\"Package\"\n title=\"Package (sync single-select filter)\"\n columnMenu={packageColumnMenu}\n cell={PackageCell}\n />\n </Table>\n </Fragment>\n );\n })\n);\n"],"names":["useMemo","Fragment","observer","Banner","provide","useDependencies","Table","TableColumn","selectColumnMenuFilter","TableStore","categories","CategoryCell","PackageCell","dataItem","tdProps","td","Package","PackageName","SelectAsyncExample","singletons","categoryFetcherClean","madeInFetcherClean","tableState","madeInColumnMenu","dataFetcher","search","categoryColumnMenu","multiple","contentMaxHeight","valueSelector","item","CategoryID","title","className","br","striped","field","editable","width","columnMenu","cell","SelectSyncExample","madeInOptions","packageOptions","data","placeholder","filter","toLowerCase","includes","renderItem","CategoryName","packageColumnMenu","Id","Name","rowValueSelector","PackageId"],"mappings":"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"}