@servicetitan/table 31.1.0 → 31.3.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
@@ -7,30 +7,121 @@ import { TableStore } from './table.store';
7
7
  import { categories, CategoryCell } from './categories';
8
8
  import { Banner, BodyText } from '@servicetitan/design-system';
9
9
  export const SingleSelectDefaultExample = provide({
10
- singletons: [TableStore],
11
- })(observer(() => {
10
+ singletons: [
11
+ TableStore
12
+ ]
13
+ })(observer(()=>{
12
14
  const [{ tableState, madeInOptions }] = useDependencies(TableStore);
13
- const madeInColumnMenu = useMemo(() => singleSelectColumnMenuFilter({ options: madeInOptions }), [madeInOptions]);
14
- const categoryColumnMenu = useMemo(() => singleSelectColumnMenuFilter({
15
- options: categories,
16
- renderItem: cat => (_jsxs(BodyText, { children: [_jsx("span", { className: "fw-bold", children: cat.CategoryName }), " (#", cat.CategoryID, ")"] })),
17
- valueSelector: cat => cat.CategoryID,
18
- contentMaxHeight: '200px',
19
- }), []);
20
- return (_jsxs(Fragment, { children: [_jsxs(Banner, { title: "Default filter with single select", className: "m-b-2", children: ["Single select filter allows to choose one option from the provided list. You can pass simple options (string or number) or complex objects", _jsx("br", {}), "Use it when options list is fixed and less than 20 items"] }), _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 (simple single-select filter)", columnMenu: madeInColumnMenu }), _jsx(TableColumn, { field: "CategoryID", title: "Category (simple single-select filter)", columnMenu: categoryColumnMenu, cell: CategoryCell })] })] }));
15
+ const madeInColumnMenu = useMemo(()=>singleSelectColumnMenuFilter({
16
+ options: madeInOptions
17
+ }), [
18
+ madeInOptions
19
+ ]);
20
+ const categoryColumnMenu = useMemo(()=>singleSelectColumnMenuFilter({
21
+ options: categories,
22
+ renderItem: (cat)=>/*#__PURE__*/ _jsxs(BodyText, {
23
+ children: [
24
+ /*#__PURE__*/ _jsx("span", {
25
+ className: "fw-bold",
26
+ children: cat.CategoryName
27
+ }),
28
+ " (#",
29
+ cat.CategoryID,
30
+ ")"
31
+ ]
32
+ }),
33
+ valueSelector: (cat)=>cat.CategoryID,
34
+ contentMaxHeight: '200px'
35
+ }), []);
36
+ return /*#__PURE__*/ _jsxs(Fragment, {
37
+ children: [
38
+ /*#__PURE__*/ _jsxs(Banner, {
39
+ title: "Default filter with single select",
40
+ className: "m-b-2",
41
+ children: [
42
+ "Single select filter allows to choose one option from the provided list. You can pass simple options (string or number) or complex objects",
43
+ /*#__PURE__*/ _jsx("br", {}),
44
+ "Use it when options list is fixed and less than 20 items"
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 (simple single-select filter)",
65
+ columnMenu: madeInColumnMenu
66
+ }),
67
+ /*#__PURE__*/ _jsx(TableColumn, {
68
+ field: "CategoryID",
69
+ title: "Category (simple single-select filter)",
70
+ columnMenu: categoryColumnMenu,
71
+ cell: CategoryCell
72
+ })
73
+ ]
74
+ })
75
+ ]
76
+ });
21
77
  }));
22
78
  export const SingleSelectCustomFilterExample = provide({
23
- singletons: [TableStore],
24
- })(observer(() => {
79
+ singletons: [
80
+ TableStore
81
+ ]
82
+ })(observer(()=>{
25
83
  const [{ tableState }] = useDependencies(TableStore);
26
- const productNameCustomFilter = useMemo(() => {
27
- const isVowel = (str) => /[aeiou]/i.test(str[0]);
84
+ const productNameCustomFilter = useMemo(()=>{
85
+ const isVowel = (str)=>/[aeiou]/i.test(str[0]);
28
86
  return singleSelectColumnMenuFilter({
29
- options: [0, 1],
30
- renderItem: item => (item ? 'Start with Vowel' : 'Start with Consonants'),
31
- filterOperator: (madeIn, value) => madeIn ? (value ? isVowel(madeIn) : !isVowel(madeIn)) : false,
87
+ options: [
88
+ 0,
89
+ 1
90
+ ],
91
+ renderItem: (item)=>item ? 'Start with Vowel' : 'Start with Consonants',
92
+ filterOperator: (madeIn, value)=>madeIn ? value ? isVowel(madeIn) : !isVowel(madeIn) : false
32
93
  });
33
94
  }, []);
34
- return (_jsxs(Fragment, { children: [_jsxs(Banner, { title: "Default filter with single select", className: "m-b-2", children: ["Single select filter allows to choose one option from the provided list. You can pass simple options (string or number) or complex objects", _jsx("br", {}), "Custom filter allows you to provide custom filtering 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 (custom single-select filter)", columnMenu: productNameCustomFilter })] })] }));
95
+ return /*#__PURE__*/ _jsxs(Fragment, {
96
+ children: [
97
+ /*#__PURE__*/ _jsxs(Banner, {
98
+ title: "Default filter with single select",
99
+ className: "m-b-2",
100
+ children: [
101
+ "Single select filter allows to choose one option from the provided list. You can pass simple options (string or number) or complex objects",
102
+ /*#__PURE__*/ _jsx("br", {}),
103
+ "Custom filter allows you to provide custom filtering options"
104
+ ]
105
+ }),
106
+ /*#__PURE__*/ _jsxs(Table, {
107
+ tableState: tableState,
108
+ striped: false,
109
+ children: [
110
+ /*#__PURE__*/ _jsx(TableColumn, {
111
+ field: "ProductID",
112
+ title: "ID",
113
+ editable: false,
114
+ width: "100px"
115
+ }),
116
+ /*#__PURE__*/ _jsx(TableColumn, {
117
+ field: "ProductName",
118
+ title: "Product Name (custom single-select filter)",
119
+ columnMenu: productNameCustomFilter
120
+ })
121
+ ]
122
+ })
123
+ ]
124
+ });
35
125
  }));
126
+
36
127
  //# sourceMappingURL=single-select-filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"single-select-filter.js","sourceRoot":"","sources":["../../../src/demo/filters/single-select-filter.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/demo/filters/single-select-filter.tsx"],"sourcesContent":["import { useMemo, FC, Fragment } from 'react';\n\nimport { provide, useDependencies } from '@servicetitan/react-ioc';\n\nimport { observer } from 'mobx-react';\n\nimport { Table, TableColumn, singleSelectColumnMenuFilter } from '../..';\n\nimport { TableStore } from './table.store';\nimport { categories, CategoryCell } from './categories';\nimport { Banner, BodyText } from '@servicetitan/design-system';\n\nexport const SingleSelectDefaultExample: FC = provide({\n singletons: [TableStore],\n})(\n observer(() => {\n const [{ tableState, madeInOptions }] = useDependencies(TableStore);\n\n const madeInColumnMenu = useMemo(\n () => singleSelectColumnMenuFilter({ options: madeInOptions }),\n [madeInOptions]\n );\n\n const categoryColumnMenu = useMemo(\n () =>\n singleSelectColumnMenuFilter({\n options: categories,\n renderItem: cat => (\n <BodyText>\n <span className=\"fw-bold\">{cat.CategoryName}</span> (#{cat.CategoryID})\n </BodyText>\n ),\n valueSelector: cat => cat.CategoryID,\n contentMaxHeight: '200px',\n }),\n []\n );\n\n return (\n <Fragment>\n <Banner title=\"Default filter with single select\" className=\"m-b-2\">\n Single select filter allows to choose one option from the provided list. You can\n pass simple options (string or number) or complex objects\n <br />\n Use it when options list is fixed and less than 20 items\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 (simple single-select filter)\"\n columnMenu={madeInColumnMenu}\n />\n <TableColumn\n field=\"CategoryID\"\n title=\"Category (simple single-select filter)\"\n columnMenu={categoryColumnMenu}\n cell={CategoryCell}\n />\n </Table>\n </Fragment>\n );\n })\n);\n\nexport const SingleSelectCustomFilterExample: FC = provide({\n singletons: [TableStore],\n})(\n observer(() => {\n const [{ tableState }] = useDependencies(TableStore);\n\n const productNameCustomFilter = useMemo(() => {\n const isVowel = (str: string) => /[aeiou]/i.test(str[0]);\n\n return singleSelectColumnMenuFilter({\n options: [0, 1],\n renderItem: item => (item ? 'Start with Vowel' : 'Start with Consonants'),\n filterOperator: (madeIn: string, value: number) =>\n madeIn ? (value ? isVowel(madeIn) : !isVowel(madeIn)) : false,\n });\n }, []);\n\n return (\n <Fragment>\n <Banner title=\"Default filter with single select\" className=\"m-b-2\">\n Single select filter allows to choose one option from the provided list. You can\n pass simple options (string or number) or complex objects\n <br />\n Custom filter allows you to provide custom filtering options\n </Banner>\n <Table tableState={tableState} striped={false}>\n <TableColumn field=\"ProductID\" title=\"ID\" editable={false} width=\"100px\" />\n <TableColumn\n field=\"ProductName\"\n title=\"Product Name (custom single-select filter)\"\n columnMenu={productNameCustomFilter}\n />\n </Table>\n </Fragment>\n );\n })\n);\n"],"names":["useMemo","Fragment","provide","useDependencies","observer","Table","TableColumn","singleSelectColumnMenuFilter","TableStore","categories","CategoryCell","Banner","BodyText","SingleSelectDefaultExample","singletons","tableState","madeInOptions","madeInColumnMenu","options","categoryColumnMenu","renderItem","cat","span","className","CategoryName","CategoryID","valueSelector","contentMaxHeight","title","br","striped","field","editable","width","columnMenu","cell","SingleSelectCustomFilterExample","productNameCustomFilter","isVowel","str","test","item","filterOperator","madeIn","value"],"mappings":";AAAA,SAASA,OAAO,EAAMC,QAAQ,QAAQ,QAAQ;AAE9C,SAASC,OAAO,EAAEC,eAAe,QAAQ,0BAA0B;AAEnE,SAASC,QAAQ,QAAQ,aAAa;AAEtC,SAASC,KAAK,EAAEC,WAAW,EAAEC,4BAA4B,QAAQ,QAAQ;AAEzE,SAASC,UAAU,QAAQ,gBAAgB;AAC3C,SAASC,UAAU,EAAEC,YAAY,QAAQ,eAAe;AACxD,SAASC,MAAM,EAAEC,QAAQ,QAAQ,8BAA8B;AAE/D,OAAO,MAAMC,6BAAiCX,QAAQ;IAClDY,YAAY;QAACN;KAAW;AAC5B,GACIJ,SAAS;IACL,MAAM,CAAC,EAAEW,UAAU,EAAEC,aAAa,EAAE,CAAC,GAAGb,gBAAgBK;IAExD,MAAMS,mBAAmBjB,QACrB,IAAMO,6BAA6B;YAAEW,SAASF;QAAc,IAC5D;QAACA;KAAc;IAGnB,MAAMG,qBAAqBnB,QACvB,IACIO,6BAA6B;YACzBW,SAAST;YACTW,YAAYC,CAAAA,oBACR,MAACT;;sCACG,KAACU;4BAAKC,WAAU;sCAAWF,IAAIG,YAAY;;wBAAQ;wBAAIH,IAAII,UAAU;wBAAC;;;YAG9EC,eAAeL,CAAAA,MAAOA,IAAII,UAAU;YACpCE,kBAAkB;QACtB,IACJ,EAAE;IAGN,qBACI,MAAC1B;;0BACG,MAACU;gBAAOiB,OAAM;gBAAoCL,WAAU;;oBAAQ;kCAGhE,KAACM;oBAAK;;;0BAGV,MAACxB;gBAAMU,YAAYA;gBAAYe,SAAS;;kCACpC,KAACxB;wBAAYyB,OAAM;wBAAYH,OAAM;wBAAKI,UAAU;wBAAOC,OAAM;;kCACjE,KAAC3B;wBAAYyB,OAAM;wBAAcH,OAAM;wBAAeK,OAAM;;kCAC5D,KAAC3B;wBACGyB,OAAM;wBACNH,OAAM;wBACNM,YAAYjB;;kCAEhB,KAACX;wBACGyB,OAAM;wBACNH,OAAM;wBACNM,YAAYf;wBACZgB,MAAMzB;;;;;;AAK1B,IACF;AAEF,OAAO,MAAM0B,kCAAsClC,QAAQ;IACvDY,YAAY;QAACN;KAAW;AAC5B,GACIJ,SAAS;IACL,MAAM,CAAC,EAAEW,UAAU,EAAE,CAAC,GAAGZ,gBAAgBK;IAEzC,MAAM6B,0BAA0BrC,QAAQ;QACpC,MAAMsC,UAAU,CAACC,MAAgB,WAAWC,IAAI,CAACD,GAAG,CAAC,EAAE;QAEvD,OAAOhC,6BAA6B;YAChCW,SAAS;gBAAC;gBAAG;aAAE;YACfE,YAAYqB,CAAAA,OAASA,OAAO,qBAAqB;YACjDC,gBAAgB,CAACC,QAAgBC,QAC7BD,SAAUC,QAAQN,QAAQK,UAAU,CAACL,QAAQK,UAAW;QAChE;IACJ,GAAG,EAAE;IAEL,qBACI,MAAC1C;;0BACG,MAACU;gBAAOiB,OAAM;gBAAoCL,WAAU;;oBAAQ;kCAGhE,KAACM;oBAAK;;;0BAGV,MAACxB;gBAAMU,YAAYA;gBAAYe,SAAS;;kCACpC,KAACxB;wBAAYyB,OAAM;wBAAYH,OAAM;wBAAKI,UAAU;wBAAOC,OAAM;;kCACjE,KAAC3B;wBACGyB,OAAM;wBACNH,OAAM;wBACNM,YAAYG;;;;;;AAKhC,IACF"}
@@ -1,101 +1,92 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
14
+ function _ts_decorate(decorators, target, key, desc) {
2
15
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
16
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
18
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
19
+ }
7
20
  import { injectable } from '@servicetitan/react-ioc';
8
- import { InMemoryDataSource, TableState, } from '../..';
21
+ import { InMemoryDataSource, TableState } from '../..';
9
22
  import { products } from '../overview/products';
10
23
  import { categories } from './categories';
11
- let TableStore = class TableStore {
12
- constructor() {
13
- Object.defineProperty(this, "tableState", {
14
- enumerable: true,
15
- configurable: true,
16
- writable: true,
17
- value: new TableState({
18
- dataSource: this.getDataSource(),
19
- pageSize: 5,
20
- })
21
- });
22
- Object.defineProperty(this, "categoryFetcher", {
23
- enumerable: true,
24
- configurable: true,
25
- writable: true,
26
- value: async (opts) => {
27
- var _a;
28
- await new Promise(resolve => setTimeout(resolve, 1500));
29
- const sv = (_a = opts.search) === null || _a === void 0 ? void 0 : _a.trim().toLowerCase();
30
- return {
31
- data: categories
32
- .filter(cat => (sv ? cat.CategoryName.toLowerCase().includes(sv) : true))
33
- .map(cat => ({ value: cat.CategoryID, text: cat.CategoryName })),
34
- };
35
- }
36
- });
37
- Object.defineProperty(this, "madeInFetcher", {
38
- enumerable: true,
39
- configurable: true,
40
- writable: true,
41
- value: async (opts) => {
42
- var _a;
43
- await new Promise(resolve => setTimeout(resolve, 1500));
44
- const sv = (_a = opts.search) === null || _a === void 0 ? void 0 : _a.trim().toLowerCase();
45
- return {
46
- data: this.madeInOptions
47
- .filter(opt => (sv ? opt.toLowerCase().includes(sv) : true))
48
- .map(opt => ({ value: opt, text: opt })),
49
- };
50
- }
51
- });
52
- Object.defineProperty(this, "categoryFetcherClean", {
53
- enumerable: true,
54
- configurable: true,
55
- writable: true,
56
- value: async (opts) => {
57
- var _a;
58
- await new Promise(resolve => setTimeout(resolve, 1500));
59
- const sv = (_a = opts.search) === null || _a === void 0 ? void 0 : _a.trim().toLowerCase();
60
- return {
61
- data: categories.filter(cat => sv ? cat.CategoryName.toLowerCase().includes(sv) : true),
62
- };
63
- }
64
- });
65
- Object.defineProperty(this, "madeInFetcherClean", {
66
- enumerable: true,
67
- configurable: true,
68
- writable: true,
69
- value: async (opts) => {
70
- var _a;
71
- await new Promise(resolve => setTimeout(resolve, 1500));
72
- const sv = (_a = opts.search) === null || _a === void 0 ? void 0 : _a.trim().toLowerCase();
73
- return {
74
- data: this.madeInOptions.filter(opt => (sv ? opt.toLowerCase().includes(sv) : true)),
75
- };
76
- }
77
- });
78
- }
24
+ export class TableStore {
79
25
  get madeInOptions() {
80
- return Array.from(new Set(products.map(p => p.MadeIn)));
26
+ return Array.from(new Set(products.map((p)=>p.MadeIn)));
81
27
  }
82
28
  get packageOptions() {
83
- const map = products.reduce((out, product) => ({
84
- ...out,
85
- ...(product.Package
86
- ? { [product.Package.PackageId]: product.Package.PackageName }
87
- : {}),
88
- }), {});
89
- return Object.keys(map)
90
- .map(Number)
91
- .map(id => ({ Id: id, Name: map[id] }));
29
+ const map = products.reduce((out, product)=>({
30
+ ...out,
31
+ ...product.Package ? {
32
+ [product.Package.PackageId]: product.Package.PackageName
33
+ } : {}
34
+ }), {});
35
+ return Object.keys(map).map(Number).map((id)=>({
36
+ Id: id,
37
+ Name: map[id]
38
+ }));
92
39
  }
93
40
  getDataSource() {
94
- return new InMemoryDataSource(products, row => row.ProductID);
41
+ return new InMemoryDataSource(products, (row)=>row.ProductID);
42
+ }
43
+ constructor(){
44
+ _define_property(this, "tableState", new TableState({
45
+ dataSource: this.getDataSource(),
46
+ pageSize: 5
47
+ }));
48
+ _define_property(this, "categoryFetcher", async (opts)=>{
49
+ var _opts_search;
50
+ await new Promise((resolve)=>setTimeout(resolve, 1500));
51
+ const sv = (_opts_search = opts.search) === null || _opts_search === void 0 ? void 0 : _opts_search.trim().toLowerCase();
52
+ return {
53
+ data: categories.filter((cat)=>sv ? cat.CategoryName.toLowerCase().includes(sv) : true).map((cat)=>({
54
+ value: cat.CategoryID,
55
+ text: cat.CategoryName
56
+ }))
57
+ };
58
+ });
59
+ _define_property(this, "madeInFetcher", async (opts)=>{
60
+ var _opts_search;
61
+ await new Promise((resolve)=>setTimeout(resolve, 1500));
62
+ const sv = (_opts_search = opts.search) === null || _opts_search === void 0 ? void 0 : _opts_search.trim().toLowerCase();
63
+ return {
64
+ data: this.madeInOptions.filter((opt)=>sv ? opt.toLowerCase().includes(sv) : true).map((opt)=>({
65
+ value: opt,
66
+ text: opt
67
+ }))
68
+ };
69
+ });
70
+ _define_property(this, "categoryFetcherClean", async (opts)=>{
71
+ var _opts_search;
72
+ await new Promise((resolve)=>setTimeout(resolve, 1500));
73
+ const sv = (_opts_search = opts.search) === null || _opts_search === void 0 ? void 0 : _opts_search.trim().toLowerCase();
74
+ return {
75
+ data: categories.filter((cat)=>sv ? cat.CategoryName.toLowerCase().includes(sv) : true)
76
+ };
77
+ });
78
+ _define_property(this, "madeInFetcherClean", async (opts)=>{
79
+ var _opts_search;
80
+ await new Promise((resolve)=>setTimeout(resolve, 1500));
81
+ const sv = (_opts_search = opts.search) === null || _opts_search === void 0 ? void 0 : _opts_search.trim().toLowerCase();
82
+ return {
83
+ data: this.madeInOptions.filter((opt)=>sv ? opt.toLowerCase().includes(sv) : true)
84
+ };
85
+ });
95
86
  }
96
- };
97
- TableStore = __decorate([
87
+ }
88
+ TableStore = _ts_decorate([
98
89
  injectable()
99
90
  ], TableStore);
100
- export { TableStore };
91
+
101
92
  //# sourceMappingURL=table.store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.store.js","sourceRoot":"","sources":["../../../src/demo/filters/table.store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/demo/filters/table.store.ts"],"sourcesContent":["import { injectable } from '@servicetitan/react-ioc';\n\nimport {\n InMemoryDataSource,\n TableState,\n AsyncSelectFilterDataFetcher,\n SelectFilterDataFetcher,\n} from '../..';\nimport { products } from '../overview/products';\nimport { categories, Category } from './categories';\n\n@injectable()\nexport class TableStore {\n tableState = new TableState({\n dataSource: this.getDataSource(),\n pageSize: 5,\n });\n\n get madeInOptions() {\n return Array.from(new Set(products.map(p => p.MadeIn)));\n }\n\n get packageOptions() {\n const map = products.reduce(\n (out, product) => ({\n ...out,\n ...(product.Package\n ? { [product.Package.PackageId]: product.Package.PackageName }\n : {}),\n }),\n {} as Record<number, string>\n );\n\n return Object.keys(map)\n .map(Number)\n .map(id => ({ Id: id, Name: map[id] }));\n }\n\n categoryFetcher: AsyncSelectFilterDataFetcher<number> = async opts => {\n await new Promise(resolve => setTimeout(resolve, 1500));\n\n const sv = opts.search?.trim().toLowerCase();\n\n return {\n data: categories\n .filter(cat => (sv ? cat.CategoryName.toLowerCase().includes(sv) : true))\n .map(cat => ({ value: cat.CategoryID, text: cat.CategoryName })),\n };\n };\n\n madeInFetcher: AsyncSelectFilterDataFetcher<string> = async opts => {\n await new Promise(resolve => setTimeout(resolve, 1500));\n\n const sv = opts.search?.trim().toLowerCase();\n\n return {\n data: this.madeInOptions\n .filter(opt => (sv ? opt.toLowerCase().includes(sv) : true))\n .map(opt => ({ value: opt, text: opt })),\n };\n };\n\n categoryFetcherClean: SelectFilterDataFetcher<Category> = async opts => {\n await new Promise(resolve => setTimeout(resolve, 1500));\n\n const sv = opts.search?.trim().toLowerCase();\n\n return {\n data: categories.filter(cat =>\n sv ? cat.CategoryName.toLowerCase().includes(sv) : true\n ),\n };\n };\n\n madeInFetcherClean: SelectFilterDataFetcher<string> = async opts => {\n await new Promise(resolve => setTimeout(resolve, 1500));\n\n const sv = opts.search?.trim().toLowerCase();\n\n return {\n data: this.madeInOptions.filter(opt => (sv ? opt.toLowerCase().includes(sv) : true)),\n };\n };\n\n private getDataSource() {\n return new InMemoryDataSource(products, row => row.ProductID);\n }\n}\n"],"names":["injectable","InMemoryDataSource","TableState","products","categories","TableStore","madeInOptions","Array","from","Set","map","p","MadeIn","packageOptions","reduce","out","product","Package","PackageId","PackageName","Object","keys","Number","id","Id","Name","getDataSource","row","ProductID","tableState","dataSource","pageSize","categoryFetcher","opts","Promise","resolve","setTimeout","sv","search","trim","toLowerCase","data","filter","cat","CategoryName","includes","value","CategoryID","text","madeInFetcher","opt","categoryFetcherClean","madeInFetcherClean"],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export * from './table';
2
+
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/demo/footer-page-size/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
1
+ {"version":3,"sources":["../../../src/demo/footer-page-size/index.ts"],"sourcesContent":["export * from './table';\n"],"names":[],"mappings":"AAAA,cAAc,UAAU"}
@@ -4,15 +4,91 @@ import { provide, useDependencies } from '@servicetitan/react-ioc';
4
4
  import { observer } from 'mobx-react';
5
5
  import { Tag } from '@servicetitan/design-system';
6
6
  import { getEnumKeys } from '@servicetitan/form';
7
- import { Table, TableColumn, BooleanEditableCell, DateRangeColumnMenuFilter, StandardColumnMenuFilter, standardFilterWithMultiselect, multiSelectColumnMenuFilter, CurrencyRangeColumnMenuFilter, } from '../..';
7
+ import { Table, TableColumn, BooleanEditableCell, DateRangeColumnMenuFilter, StandardColumnMenuFilter, standardFilterWithMultiselect, multiSelectColumnMenuFilter, CurrencyRangeColumnMenuFilter } from '../..';
8
8
  import { TableStore } from '../overview/table.store';
9
9
  import { UserRole } from '../overview/product';
10
- const UserRoleColumnMenuFilter = multiSelectColumnMenuFilter(getEnumKeys(UserRole), userRole => (_jsx(Tag, { compact: true, color: UserRole[userRole] === UserRole.Owner ? 'success' : 'default', children: userRole })));
10
+ const UserRoleColumnMenuFilter = multiSelectColumnMenuFilter(getEnumKeys(UserRole), (userRole)=>/*#__PURE__*/ _jsx(Tag, {
11
+ compact: true,
12
+ color: UserRole[userRole] === UserRole.Owner ? 'success' : 'default',
13
+ children: userRole
14
+ }));
11
15
  export const TableFooterPageSizeExample = provide({
12
- singletons: [TableStore],
13
- })(observer(() => {
16
+ singletons: [
17
+ TableStore
18
+ ]
19
+ })(observer(()=>{
14
20
  const [{ tableState }] = useDependencies(TableStore);
15
- const madeInColumnMenu = useMemo(() => standardFilterWithMultiselect({ tableState }), [tableState]);
16
- return (_jsxs(Table, { tableState: tableState, striped: false, sortable: true, pager: { pageSizes: [3, 5, 7, 10] }, children: [_jsx(TableColumn, { field: "ProductID", title: "ID", editable: false, width: "100px" }), _jsx(TableColumn, { field: "ProductName", title: "Product Name", columnMenu: StandardColumnMenuFilter, width: "240px" }), _jsx(TableColumn, { field: "Supplier", title: "Supplier", columnMenu: StandardColumnMenuFilter, width: "150px" }), _jsx(TableColumn, { field: "MadeIn", title: "Made In", columnMenu: madeInColumnMenu, width: "175px" }), _jsx(TableColumn, { field: "UnitsOnOrder", title: "First Ordered On", columnMenu: DateRangeColumnMenuFilter, format: "{0:MM/dd/yyyy}", width: "240px" }), _jsx(TableColumn, { field: "UnitPrice", title: "Unit Price", columnMenu: CurrencyRangeColumnMenuFilter, format: "{0:c}", width: "125px" }), _jsx(TableColumn, { field: "Discontinued", title: "Discontinued", cell: BooleanEditableCell, sortable: false, width: "125px" }), _jsx(TableColumn, { field: "AvailableFor", title: "Available For", columnMenu: UserRoleColumnMenuFilter, width: "240px" })] }));
21
+ const madeInColumnMenu = useMemo(()=>standardFilterWithMultiselect({
22
+ tableState
23
+ }), [
24
+ tableState
25
+ ]);
26
+ return /*#__PURE__*/ _jsxs(Table, {
27
+ tableState: tableState,
28
+ striped: false,
29
+ sortable: true,
30
+ pager: {
31
+ pageSizes: [
32
+ 3,
33
+ 5,
34
+ 7,
35
+ 10
36
+ ]
37
+ },
38
+ children: [
39
+ /*#__PURE__*/ _jsx(TableColumn, {
40
+ field: "ProductID",
41
+ title: "ID",
42
+ editable: false,
43
+ width: "100px"
44
+ }),
45
+ /*#__PURE__*/ _jsx(TableColumn, {
46
+ field: "ProductName",
47
+ title: "Product Name",
48
+ columnMenu: StandardColumnMenuFilter,
49
+ width: "240px"
50
+ }),
51
+ /*#__PURE__*/ _jsx(TableColumn, {
52
+ field: "Supplier",
53
+ title: "Supplier",
54
+ columnMenu: StandardColumnMenuFilter,
55
+ width: "150px"
56
+ }),
57
+ /*#__PURE__*/ _jsx(TableColumn, {
58
+ field: "MadeIn",
59
+ title: "Made In",
60
+ columnMenu: madeInColumnMenu,
61
+ width: "175px"
62
+ }),
63
+ /*#__PURE__*/ _jsx(TableColumn, {
64
+ field: "UnitsOnOrder",
65
+ title: "First Ordered On",
66
+ columnMenu: DateRangeColumnMenuFilter,
67
+ format: "{0:MM/dd/yyyy}",
68
+ width: "240px"
69
+ }),
70
+ /*#__PURE__*/ _jsx(TableColumn, {
71
+ field: "UnitPrice",
72
+ title: "Unit Price",
73
+ columnMenu: CurrencyRangeColumnMenuFilter,
74
+ format: "{0:c}",
75
+ width: "125px"
76
+ }),
77
+ /*#__PURE__*/ _jsx(TableColumn, {
78
+ field: "Discontinued",
79
+ title: "Discontinued",
80
+ cell: BooleanEditableCell,
81
+ sortable: false,
82
+ width: "125px"
83
+ }),
84
+ /*#__PURE__*/ _jsx(TableColumn, {
85
+ field: "AvailableFor",
86
+ title: "Available For",
87
+ columnMenu: UserRoleColumnMenuFilter,
88
+ width: "240px"
89
+ })
90
+ ]
91
+ });
17
92
  }));
93
+
18
94
  //# sourceMappingURL=table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sourceRoot":"","sources":["../../../src/demo/footer-page-size/table.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/demo/footer-page-size/table.tsx"],"sourcesContent":["import { useMemo, FC } from 'react';\n\nimport { provide, useDependencies } from '@servicetitan/react-ioc';\n\nimport { observer } from 'mobx-react';\n\nimport { Tag } from '@servicetitan/design-system';\nimport { getEnumKeys } from '@servicetitan/form';\n\nimport {\n Table,\n TableColumn,\n BooleanEditableCell,\n DateRangeColumnMenuFilter,\n StandardColumnMenuFilter,\n standardFilterWithMultiselect,\n multiSelectColumnMenuFilter,\n CurrencyRangeColumnMenuFilter,\n} from '../..';\n\nimport { TableStore } from '../overview/table.store';\nimport { UserRole } from '../overview/product';\n\nconst UserRoleColumnMenuFilter = multiSelectColumnMenuFilter(getEnumKeys(UserRole), userRole => (\n <Tag compact color={UserRole[userRole] === UserRole.Owner ? 'success' : 'default'}>\n {userRole}\n </Tag>\n));\n\nexport const TableFooterPageSizeExample: FC = provide({\n singletons: [TableStore],\n})(\n observer(() => {\n const [{ tableState }] = useDependencies(TableStore);\n\n const madeInColumnMenu = useMemo(\n () => standardFilterWithMultiselect({ tableState }),\n [tableState]\n );\n\n return (\n <Table\n tableState={tableState}\n striped={false}\n sortable\n pager={{ pageSizes: [3, 5, 7, 10] }}\n >\n <TableColumn field=\"ProductID\" title=\"ID\" editable={false} width=\"100px\" />\n\n <TableColumn\n field=\"ProductName\"\n title=\"Product Name\"\n columnMenu={StandardColumnMenuFilter}\n width=\"240px\"\n />\n\n <TableColumn\n field=\"Supplier\"\n title=\"Supplier\"\n columnMenu={StandardColumnMenuFilter}\n width=\"150px\"\n />\n\n <TableColumn\n field=\"MadeIn\"\n title=\"Made In\"\n columnMenu={madeInColumnMenu}\n width=\"175px\"\n />\n\n <TableColumn\n field=\"UnitsOnOrder\"\n title=\"First Ordered On\"\n columnMenu={DateRangeColumnMenuFilter}\n format=\"{0:MM/dd/yyyy}\"\n width=\"240px\"\n />\n\n <TableColumn\n field=\"UnitPrice\"\n title=\"Unit Price\"\n columnMenu={CurrencyRangeColumnMenuFilter}\n format=\"{0:c}\"\n width=\"125px\"\n />\n\n <TableColumn\n field=\"Discontinued\"\n title=\"Discontinued\"\n cell={BooleanEditableCell}\n sortable={false}\n width=\"125px\"\n />\n\n <TableColumn\n field=\"AvailableFor\"\n title=\"Available For\"\n columnMenu={UserRoleColumnMenuFilter}\n width=\"240px\"\n />\n </Table>\n );\n })\n);\n"],"names":["useMemo","provide","useDependencies","observer","Tag","getEnumKeys","Table","TableColumn","BooleanEditableCell","DateRangeColumnMenuFilter","StandardColumnMenuFilter","standardFilterWithMultiselect","multiSelectColumnMenuFilter","CurrencyRangeColumnMenuFilter","TableStore","UserRole","UserRoleColumnMenuFilter","userRole","compact","color","Owner","TableFooterPageSizeExample","singletons","tableState","madeInColumnMenu","striped","sortable","pager","pageSizes","field","title","editable","width","columnMenu","format","cell"],"mappings":";AAAA,SAASA,OAAO,QAAY,QAAQ;AAEpC,SAASC,OAAO,EAAEC,eAAe,QAAQ,0BAA0B;AAEnE,SAASC,QAAQ,QAAQ,aAAa;AAEtC,SAASC,GAAG,QAAQ,8BAA8B;AAClD,SAASC,WAAW,QAAQ,qBAAqB;AAEjD,SACIC,KAAK,EACLC,WAAW,EACXC,mBAAmB,EACnBC,yBAAyB,EACzBC,wBAAwB,EACxBC,6BAA6B,EAC7BC,2BAA2B,EAC3BC,6BAA6B,QAC1B,QAAQ;AAEf,SAASC,UAAU,QAAQ,0BAA0B;AACrD,SAASC,QAAQ,QAAQ,sBAAsB;AAE/C,MAAMC,2BAA2BJ,4BAA4BP,YAAYU,WAAWE,CAAAA,yBAChF,KAACb;QAAIc,OAAO;QAACC,OAAOJ,QAAQ,CAACE,SAAS,KAAKF,SAASK,KAAK,GAAG,YAAY;kBACnEH;;AAIT,OAAO,MAAMI,6BAAiCpB,QAAQ;IAClDqB,YAAY;QAACR;KAAW;AAC5B,GACIX,SAAS;IACL,MAAM,CAAC,EAAEoB,UAAU,EAAE,CAAC,GAAGrB,gBAAgBY;IAEzC,MAAMU,mBAAmBxB,QACrB,IAAMW,8BAA8B;YAAEY;QAAW,IACjD;QAACA;KAAW;IAGhB,qBACI,MAACjB;QACGiB,YAAYA;QACZE,SAAS;QACTC,QAAQ;QACRC,OAAO;YAAEC,WAAW;gBAAC;gBAAG;gBAAG;gBAAG;aAAG;QAAC;;0BAElC,KAACrB;gBAAYsB,OAAM;gBAAYC,OAAM;gBAAKC,UAAU;gBAAOC,OAAM;;0BAEjE,KAACzB;gBACGsB,OAAM;gBACNC,OAAM;gBACNG,YAAYvB;gBACZsB,OAAM;;0BAGV,KAACzB;gBACGsB,OAAM;gBACNC,OAAM;gBACNG,YAAYvB;gBACZsB,OAAM;;0BAGV,KAACzB;gBACGsB,OAAM;gBACNC,OAAM;gBACNG,YAAYT;gBACZQ,OAAM;;0BAGV,KAACzB;gBACGsB,OAAM;gBACNC,OAAM;gBACNG,YAAYxB;gBACZyB,QAAO;gBACPF,OAAM;;0BAGV,KAACzB;gBACGsB,OAAM;gBACNC,OAAM;gBACNG,YAAYpB;gBACZqB,QAAO;gBACPF,OAAM;;0BAGV,KAACzB;gBACGsB,OAAM;gBACNC,OAAM;gBACNK,MAAM3B;gBACNkB,UAAU;gBACVM,OAAM;;0BAGV,KAACzB;gBACGsB,OAAM;gBACNC,OAAM;gBACNG,YAAYjB;gBACZgB,OAAM;;;;AAItB,IACF"}
@@ -4,4 +4,5 @@ export * from './state-caching';
4
4
  export * from './column-hiding';
5
5
  export * from './footer-page-size';
6
6
  export * from './row-details';
7
+
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/demo/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"sources":["../../src/demo/index.ts"],"sourcesContent":["export * from './overview';\nexport * from './master-detail';\nexport * from './state-caching';\nexport * from './column-hiding';\nexport * from './footer-page-size';\nexport * from './row-details';\n"],"names":[],"mappings":"AAAA,cAAc,aAAa;AAC3B,cAAc,kBAAkB;AAChC,cAAc,kBAAkB;AAChC,cAAc,kBAAkB;AAChC,cAAc,qBAAqB;AACnC,cAAc,gBAAgB"}
@@ -6,23 +6,55 @@ import { Icon, Checkbox } from '@servicetitan/design-system';
6
6
  import { Table, TableColumn } from '../..';
7
7
  import { DetailTableStore } from './detail-table.store';
8
8
  export const DetailTable = provide({
9
- singletons: [DetailTableStore],
10
- })(observer(({ dataItem }) => {
9
+ singletons: [
10
+ DetailTableStore
11
+ ]
12
+ })(observer(({ dataItem })=>{
11
13
  const [store] = useDependencies(DetailTableStore);
12
- useEffect(() => {
14
+ useEffect(()=>{
13
15
  store.initialize(dataItem);
14
- return () => store.dispose();
15
- }, [store, dataItem]);
16
+ return ()=>store.dispose();
17
+ }, [
18
+ store,
19
+ dataItem
20
+ ]);
16
21
  if (!store.tableState) {
17
22
  return null;
18
23
  }
19
- return (_jsxs(Table, { selectable: true, hideSelectAll: true, tableState: store.tableState, selectionControl: LockFieldIcon, children: [_jsx(TableColumn, { field: "Field" }), _jsx(TableColumn, { field: "OldValue" }), _jsx(TableColumn, { field: "NewValue" })] }));
24
+ return /*#__PURE__*/ _jsxs(Table, {
25
+ selectable: true,
26
+ hideSelectAll: true,
27
+ tableState: store.tableState,
28
+ selectionControl: LockFieldIcon,
29
+ children: [
30
+ /*#__PURE__*/ _jsx(TableColumn, {
31
+ field: "Field"
32
+ }),
33
+ /*#__PURE__*/ _jsx(TableColumn, {
34
+ field: "OldValue"
35
+ }),
36
+ /*#__PURE__*/ _jsx(TableColumn, {
37
+ field: "NewValue"
38
+ })
39
+ ]
40
+ });
20
41
  }));
21
- const LockFieldIcon = props => {
42
+ const LockFieldIcon = (props)=>{
22
43
  const { checked, disabled } = props;
23
44
  if (!disabled) {
24
- return _jsx(Checkbox, { ...props });
45
+ return /*#__PURE__*/ _jsx(Checkbox, {
46
+ ...props
47
+ });
25
48
  }
26
- return (_jsx("div", { children: checked ? (_jsx(Icon, { name: "check", className: "c-blue-300" })) : (_jsx(Icon, { name: "remove", className: "c-neutral-70" })) }));
49
+ return /*#__PURE__*/ _jsx("div", {
50
+ children: checked ? /*#__PURE__*/ _jsx(Icon, {
51
+ name: "check",
52
+ className: "c-blue-300"
53
+ }) : /*#__PURE__*/ _jsx(Icon, {
54
+ name: "remove",
55
+ className: "c-neutral-70"
56
+ })
57
+ });
27
58
  };
59
+
28
60
  //# sourceMappingURL=detail-table.js.map