@servicetitan/table 41.0.0 → 41.2.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 (221) hide show
  1. package/dist/demo/column-hiding/products.d.ts +1 -1
  2. package/dist/demo/column-hiding/products.d.ts.map +1 -1
  3. package/dist/demo/column-hiding/products.js.map +1 -1
  4. package/dist/demo/column-hiding/table.d.ts +1 -1
  5. package/dist/demo/column-hiding/table.d.ts.map +1 -1
  6. package/dist/demo/column-hiding/table.js.map +1 -1
  7. package/dist/demo/column-hiding/table.store.d.ts +3 -2
  8. package/dist/demo/column-hiding/table.store.d.ts.map +1 -1
  9. package/dist/demo/column-hiding/table.store.js.map +1 -1
  10. package/dist/demo/filters/async-select-filter.d.ts +1 -1
  11. package/dist/demo/filters/async-select-filter.d.ts.map +1 -1
  12. package/dist/demo/filters/async-select-filter.js.map +1 -1
  13. package/dist/demo/filters/categories.d.ts +2 -2
  14. package/dist/demo/filters/categories.d.ts.map +1 -1
  15. package/dist/demo/filters/categories.js.map +1 -1
  16. package/dist/demo/filters/multiselect-filter.d.ts +1 -1
  17. package/dist/demo/filters/multiselect-filter.d.ts.map +1 -1
  18. package/dist/demo/filters/multiselect-filter.js.map +1 -1
  19. package/dist/demo/filters/range-filter.d.ts +1 -1
  20. package/dist/demo/filters/range-filter.d.ts.map +1 -1
  21. package/dist/demo/filters/range-filter.js.map +1 -1
  22. package/dist/demo/filters/select-filter.d.ts +2 -2
  23. package/dist/demo/filters/select-filter.d.ts.map +1 -1
  24. package/dist/demo/filters/select-filter.js.map +1 -1
  25. package/dist/demo/filters/single-select-filter.d.ts +1 -1
  26. package/dist/demo/filters/single-select-filter.d.ts.map +1 -1
  27. package/dist/demo/filters/single-select-filter.js.map +1 -1
  28. package/dist/demo/filters/table.store.d.ts +3 -2
  29. package/dist/demo/filters/table.store.d.ts.map +1 -1
  30. package/dist/demo/filters/table.store.js.map +1 -1
  31. package/dist/demo/footer-page-size/table.d.ts +1 -1
  32. package/dist/demo/footer-page-size/table.d.ts.map +1 -1
  33. package/dist/demo/footer-page-size/table.js.map +1 -1
  34. package/dist/demo/master-detail/detail-table.d.ts +2 -2
  35. package/dist/demo/master-detail/detail-table.d.ts.map +1 -1
  36. package/dist/demo/master-detail/detail-table.js.map +1 -1
  37. package/dist/demo/master-detail/detail-table.store.d.ts.map +1 -1
  38. package/dist/demo/master-detail/detail-table.store.js.map +1 -1
  39. package/dist/demo/master-detail/master-table.store.d.ts +2 -2
  40. package/dist/demo/master-detail/master-table.store.d.ts.map +1 -1
  41. package/dist/demo/master-detail/master-table.store.js.map +1 -1
  42. package/dist/demo/master-detail/product-details.d.ts +1 -1
  43. package/dist/demo/master-detail/product-details.d.ts.map +1 -1
  44. package/dist/demo/master-detail/product-details.js.map +1 -1
  45. package/dist/demo/master-detail/products.d.ts +1 -1
  46. package/dist/demo/master-detail/products.d.ts.map +1 -1
  47. package/dist/demo/master-detail/products.js.map +1 -1
  48. package/dist/demo/master-detail/table-master-detail.d.ts +1 -1
  49. package/dist/demo/master-detail/table-master-detail.d.ts.map +1 -1
  50. package/dist/demo/master-detail/table-master-detail.js.map +1 -1
  51. package/dist/demo/overview/actions-cell.d.ts +2 -2
  52. package/dist/demo/overview/actions-cell.d.ts.map +1 -1
  53. package/dist/demo/overview/actions-cell.js.map +1 -1
  54. package/dist/demo/overview/products.d.ts +1 -1
  55. package/dist/demo/overview/products.d.ts.map +1 -1
  56. package/dist/demo/overview/products.js.map +1 -1
  57. package/dist/demo/overview/table.d.ts +2 -2
  58. package/dist/demo/overview/table.d.ts.map +1 -1
  59. package/dist/demo/overview/table.js.map +1 -1
  60. package/dist/demo/overview/table.store.d.ts +1 -1
  61. package/dist/demo/overview/table.store.d.ts.map +1 -1
  62. package/dist/demo/overview/table.store.js.map +1 -1
  63. package/dist/demo/row-details/row-details-table.d.ts +1 -1
  64. package/dist/demo/row-details/row-details-table.d.ts.map +1 -1
  65. package/dist/demo/row-details/row-details-table.js.map +1 -1
  66. package/dist/demo/row-details/row-details-table.store.d.ts +1 -1
  67. package/dist/demo/row-details/row-details-table.store.d.ts.map +1 -1
  68. package/dist/demo/row-details/row-details-table.store.js.map +1 -1
  69. package/dist/demo/state-caching/beverages.d.ts +1 -1
  70. package/dist/demo/state-caching/beverages.d.ts.map +1 -1
  71. package/dist/demo/state-caching/beverages.js.map +1 -1
  72. package/dist/demo/state-caching/products.d.ts +1 -1
  73. package/dist/demo/state-caching/products.d.ts.map +1 -1
  74. package/dist/demo/state-caching/products.js.map +1 -1
  75. package/dist/demo/state-caching/state-caching-table.d.ts +1 -1
  76. package/dist/demo/state-caching/state-caching-table.d.ts.map +1 -1
  77. package/dist/demo/state-caching/state-caching-table.js.map +1 -1
  78. package/dist/demo/state-caching/state-caching-table.store.d.ts +2 -2
  79. package/dist/demo/state-caching/state-caching-table.store.d.ts.map +1 -1
  80. package/dist/demo/state-caching/state-caching-table.store.js.map +1 -1
  81. package/dist/details/expand-column.d.ts +2 -2
  82. package/dist/details/expand-column.d.ts.map +1 -1
  83. package/dist/details/expand-column.js.map +1 -1
  84. package/dist/editable-cell/boolean-editable-cell.d.ts.map +1 -1
  85. package/dist/editable-cell/boolean-editable-cell.js.map +1 -1
  86. package/dist/editable-cell/get-action-cell.d.ts +3 -3
  87. package/dist/editable-cell/get-action-cell.d.ts.map +1 -1
  88. package/dist/editable-cell/get-action-cell.js.map +1 -1
  89. package/dist/editable-cell/get-editable-cell.d.ts +4 -4
  90. package/dist/editable-cell/get-editable-cell.d.ts.map +1 -1
  91. package/dist/editable-cell/get-editable-cell.js.map +1 -1
  92. package/dist/editable-cell/get-select-editable-cell.d.ts +3 -3
  93. package/dist/editable-cell/get-select-editable-cell.d.ts.map +1 -1
  94. package/dist/editable-cell/get-select-editable-cell.js.map +1 -1
  95. package/dist/editable-cell/text-editable-cell.d.ts.map +1 -1
  96. package/dist/editable-cell/text-editable-cell.js.map +1 -1
  97. package/dist/export/export.d.ts +1 -1
  98. package/dist/export/export.d.ts.map +1 -1
  99. package/dist/export/export.js.map +1 -1
  100. package/dist/filters/async-select/async-select-filter.d.ts +3 -3
  101. package/dist/filters/async-select/async-select-filter.d.ts.map +1 -1
  102. package/dist/filters/async-select/async-select-filter.js.map +1 -1
  103. package/dist/filters/column-menu-filters.d.ts +2 -2
  104. package/dist/filters/column-menu-filters.d.ts.map +1 -1
  105. package/dist/filters/column-menu-filters.js.map +1 -1
  106. package/dist/filters/datetime-filter/datetime-filter.js.map +1 -1
  107. package/dist/filters/field-values-filter.d.ts +1 -1
  108. package/dist/filters/field-values-filter.d.ts.map +1 -1
  109. package/dist/filters/field-values-filter.js.map +1 -1
  110. package/dist/filters/multiselect-filter/multiselect-filter.d.ts +2 -2
  111. package/dist/filters/multiselect-filter/multiselect-filter.d.ts.map +1 -1
  112. package/dist/filters/multiselect-filter/multiselect-filter.js.map +1 -1
  113. package/dist/filters/numeric-filter-extended/numeric-filter-extended.d.ts.map +1 -1
  114. package/dist/filters/numeric-filter-extended/numeric-filter-extended.js.map +1 -1
  115. package/dist/filters/range-filter/range-filter.d.ts.map +1 -1
  116. package/dist/filters/range-filter/range-filter.js.map +1 -1
  117. package/dist/filters/select-filter/operators.d.ts +1 -1
  118. package/dist/filters/select-filter/operators.d.ts.map +1 -1
  119. package/dist/filters/select-filter/operators.js.map +1 -1
  120. package/dist/filters/select-filter/select-filter.d.ts +3 -3
  121. package/dist/filters/select-filter/select-filter.d.ts.map +1 -1
  122. package/dist/filters/select-filter/select-filter.js.map +1 -1
  123. package/dist/filters/select-filter/value-getter.d.ts +1 -1
  124. package/dist/filters/select-filter/value-getter.d.ts.map +1 -1
  125. package/dist/filters/select-filter/value-getter.js.map +1 -1
  126. package/dist/filters/single-select/single-select-filter.d.ts +3 -3
  127. package/dist/filters/single-select/single-select-filter.d.ts.map +1 -1
  128. package/dist/filters/single-select/single-select-filter.js.map +1 -1
  129. package/dist/filters/standard-filter-with-multiselect/filter-cell-ext.d.ts +3 -3
  130. package/dist/filters/standard-filter-with-multiselect/filter-cell-ext.d.ts.map +1 -1
  131. package/dist/filters/standard-filter-with-multiselect/filter-cell-ext.js.map +1 -1
  132. package/dist/filters/standard-filter-with-multiselect/standard-filter-with-multiselect.d.ts +4 -4
  133. package/dist/filters/standard-filter-with-multiselect/standard-filter-with-multiselect.d.ts.map +1 -1
  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.d.ts +1 -1
  136. package/dist/filters/standard-filter-with-multiselect/table-column-menu-filter-ext.d.ts.map +1 -1
  137. package/dist/filters/standard-filter-with-multiselect/table-column-menu-filter-ext.js.map +1 -1
  138. package/dist/filters/time-filter/time-filter.d.ts.map +1 -1
  139. package/dist/filters/time-filter/time-filter.js.map +1 -1
  140. package/dist/select-cell/select-cell.d.ts +2 -2
  141. package/dist/select-cell/select-cell.d.ts.map +1 -1
  142. package/dist/select-cell/select-cell.js.map +1 -1
  143. package/dist/table-state.d.ts +6 -5
  144. package/dist/table-state.d.ts.map +1 -1
  145. package/dist/table-state.js.map +1 -1
  146. package/dist/table.d.ts +5 -4
  147. package/dist/table.d.ts.map +1 -1
  148. package/dist/table.js.map +1 -1
  149. package/dist/use-observing-table-state/demo/components/use-observing-table-state-demo.d.ts +2 -2
  150. package/dist/use-observing-table-state/demo/components/use-observing-table-state-demo.d.ts.map +1 -1
  151. package/dist/use-observing-table-state/demo/components/use-observing-table-state-demo.js.map +1 -1
  152. package/dist/use-observing-table-state/use-observing-table-state.d.ts +3 -2
  153. package/dist/use-observing-table-state/use-observing-table-state.d.ts.map +1 -1
  154. package/dist/use-observing-table-state/use-observing-table-state.js.map +1 -1
  155. package/dist/use-observing-table-state/use-observing-table-state.stories.d.ts +1 -1
  156. package/dist/use-observing-table-state/use-observing-table-state.stories.d.ts.map +1 -1
  157. package/dist/utils/filters.d.ts +1 -1
  158. package/dist/utils/filters.d.ts.map +1 -1
  159. package/dist/utils/filters.js.map +1 -1
  160. package/dist/utils/use-td-props.d.ts +2 -2
  161. package/dist/utils/use-td-props.d.ts.map +1 -1
  162. package/dist/utils/use-td-props.js.map +1 -1
  163. package/package.json +9 -9
  164. package/src/demo/column-hiding/products.ts +2 -1
  165. package/src/demo/column-hiding/table.store.ts +4 -2
  166. package/src/demo/column-hiding/table.tsx +4 -2
  167. package/src/demo/filters/async-select-filter.tsx +2 -1
  168. package/src/demo/filters/categories.tsx +2 -2
  169. package/src/demo/filters/multiselect-filter.tsx +2 -1
  170. package/src/demo/filters/range-filter.tsx +2 -1
  171. package/src/demo/filters/select-filter.tsx +5 -3
  172. package/src/demo/filters/single-select-filter.tsx +2 -1
  173. package/src/demo/filters/table.store.ts +4 -7
  174. package/src/demo/footer-page-size/table.tsx +2 -1
  175. package/src/demo/master-detail/detail-table.store.ts +2 -1
  176. package/src/demo/master-detail/detail-table.tsx +6 -3
  177. package/src/demo/master-detail/master-table.store.ts +4 -3
  178. package/src/demo/master-detail/product-details.ts +1 -1
  179. package/src/demo/master-detail/products.ts +2 -1
  180. package/src/demo/master-detail/table-master-detail.tsx +4 -2
  181. package/src/demo/overview/actions-cell.tsx +4 -3
  182. package/src/demo/overview/products.ts +2 -1
  183. package/src/demo/overview/table.store.ts +2 -1
  184. package/src/demo/overview/table.tsx +5 -4
  185. package/src/demo/row-details/row-details-table.store.ts +1 -1
  186. package/src/demo/row-details/row-details-table.tsx +4 -3
  187. package/src/demo/state-caching/beverages.ts +1 -1
  188. package/src/demo/state-caching/products.ts +1 -1
  189. package/src/demo/state-caching/state-caching-table.store.ts +2 -2
  190. package/src/demo/state-caching/state-caching-table.tsx +2 -1
  191. package/src/details/expand-column.tsx +4 -2
  192. package/src/editable-cell/boolean-editable-cell.tsx +3 -2
  193. package/src/editable-cell/get-action-cell.tsx +3 -3
  194. package/src/editable-cell/get-editable-cell.tsx +4 -4
  195. package/src/editable-cell/get-select-editable-cell.tsx +7 -5
  196. package/src/editable-cell/text-editable-cell.tsx +5 -3
  197. package/src/export/export.tsx +1 -1
  198. package/src/filters/async-select/async-select-filter.tsx +7 -14
  199. package/src/filters/column-menu-filters.tsx +4 -7
  200. package/src/filters/datetime-filter/datetime-filter.tsx +4 -4
  201. package/src/filters/field-values-filter.tsx +5 -3
  202. package/src/filters/multiselect-filter/multiselect-filter.tsx +6 -6
  203. package/src/filters/numeric-filter-extended/numeric-filter-extended.tsx +6 -4
  204. package/src/filters/range-filter/range-filter.tsx +5 -3
  205. package/src/filters/select-filter/operators.ts +1 -1
  206. package/src/filters/select-filter/select-filter.tsx +9 -16
  207. package/src/filters/select-filter/value-getter.ts +1 -1
  208. package/src/filters/single-select/single-select-filter.tsx +7 -7
  209. package/src/filters/standard-filter-with-multiselect/filter-cell-ext.tsx +4 -5
  210. package/src/filters/standard-filter-with-multiselect/standard-filter-with-multiselect.tsx +7 -6
  211. package/src/filters/standard-filter-with-multiselect/table-column-menu-filter-ext.tsx +1 -1
  212. package/src/filters/time-filter/time-filter.tsx +4 -2
  213. package/src/select-cell/select-cell.tsx +3 -3
  214. package/src/table-state.ts +6 -9
  215. package/src/table.tsx +10 -24
  216. package/src/use-observing-table-state/demo/components/use-observing-table-state-demo.tsx +4 -2
  217. package/src/use-observing-table-state/use-observing-table-state.stories.tsx +1 -1
  218. package/src/use-observing-table-state/use-observing-table-state.ts +4 -2
  219. package/src/utils/__tests__/filters.test.ts +1 -1
  220. package/src/utils/filters.ts +2 -6
  221. package/src/utils/use-td-props.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/demo/master-detail/master-table.store.ts"],"sourcesContent":["import { injectable } from '@servicetitan/react-ioc';\n\nimport { computed, observe, Lambda, makeObservable } from 'mobx';\n\nimport { InMemoryDataSource, TableState } from '../..';\n\nimport { Product } from './product';\nimport { products } from './products';\n\nimport { ProductDetail } from './product-detail';\nimport { productDetails } from './product-details';\n\n@injectable()\nexport class MasterTableStore {\n tableState: TableState<Product, number> = new TableState({\n dataSource: new InMemoryDataSource(products, row => row.ProductID),\n getDetailTableState: row => this.getDetailTableState(row),\n });\n\n details = new Map<number, TableState<ProductDetail, string, Product, number>>();\n\n @computed get selectedIds() {\n return Array.from(this.tableState.selectedIds);\n }\n\n private disposeSelectedIdsObserve: Lambda;\n\n constructor() {\n makeObservable(this);\n\n this.disposeSelectedIdsObserve = observe(this, 'selectedIds', change => {\n const { oldValue = [], newValue } = change as {\n oldValue: number[];\n newValue: number[];\n };\n\n const before = new Set(oldValue);\n const after = new Set(newValue);\n\n for (const id of oldValue) {\n if (!after.has(id)) {\n this.setDetailSelection(id, false);\n }\n }\n\n for (const id of newValue) {\n if (!before.has(id)) {\n this.setDetailSelection(id, true);\n }\n }\n });\n }\n\n dispose() {\n this.disposeSelectedIdsObserve();\n }\n\n private getDetailTableState(row: Product) {\n const id = this.tableState.dataSource!.idSelector!(row);\n\n if (this.details.has(id)) {\n return this.details.get(id)!;\n }\n\n const detailTableState = new TableState({\n dataSource: new InMemoryDataSource(\n productDetails.filter(x => x.ProductID === id),\n row => row.Field\n ),\n isRowUnselectable: row => !!row.IsLocked,\n parent: {\n row,\n tableState: this.tableState,\n },\n });\n\n if (this.tableState.selectedIds.has(id)) {\n detailTableState.selectAll();\n }\n\n this.details.set(id, detailTableState);\n\n return detailTableState;\n }\n\n private setDetailSelection(id: number, value: boolean) {\n const detail = this.tableState.getDetailTableState!({ ProductID: id } as Product);\n\n if (!detail?.totalCount) {\n return;\n }\n\n if (value) {\n detail.selectAll({ ignoreUnselectable: false });\n } else if (!detail.isSomePageRowsSelected) {\n detail.deselectAll({ ignoreUnselectable: false });\n }\n }\n}\n"],"names":["injectable","computed","observe","makeObservable","InMemoryDataSource","TableState","products","productDetails","MasterTableStore","selectedIds","Array","from","tableState","dispose","disposeSelectedIdsObserve","getDetailTableState","row","id","dataSource","idSelector","details","has","get","detailTableState","filter","x","ProductID","Field","isRowUnselectable","IsLocked","parent","selectAll","set","setDetailSelection","value","detail","totalCount","ignoreUnselectable","isSomePageRowsSelected","deselectAll","Map","change","oldValue","newValue","before","Set","after"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,UAAU,QAAQ,0BAA0B;AAErD,SAASC,QAAQ,EAAEC,OAAO,EAAUC,cAAc,QAAQ,OAAO;AAEjE,SAASC,kBAAkB,EAAEC,UAAU,QAAQ,QAAQ;AAGvD,SAASC,QAAQ,QAAQ,aAAa;AAGtC,SAASC,cAAc,QAAQ,oBAAoB;AAGnD,OAAO,MAAMC;IAQT,IAAcC,cAAc;QACxB,OAAOC,MAAMC,IAAI,CAAC,IAAI,CAACC,UAAU,CAACH,WAAW;IACjD;IA8BAI,UAAU;QACN,IAAI,CAACC,yBAAyB;IAClC;IAEQC,oBAAoBC,GAAY,EAAE;QACtC,MAAMC,KAAK,IAAI,CAACL,UAAU,CAACM,UAAU,CAAEC,UAAU,CAAEH;QAEnD,IAAI,IAAI,CAACI,OAAO,CAACC,GAAG,CAACJ,KAAK;YACtB,OAAO,IAAI,CAACG,OAAO,CAACE,GAAG,CAACL;QAC5B;QAEA,MAAMM,mBAAmB,IAAIlB,WAAW;YACpCa,YAAY,IAAId,mBACZG,eAAeiB,MAAM,CAACC,CAAAA,IAAKA,EAAEC,SAAS,KAAKT,KAC3CD,CAAAA,MAAOA,IAAIW,KAAK;YAEpBC,mBAAmBZ,CAAAA,MAAO,CAAC,CAACA,IAAIa,QAAQ;YACxCC,QAAQ;gBACJd;gBACAJ,YAAY,IAAI,CAACA,UAAU;YAC/B;QACJ;QAEA,IAAI,IAAI,CAACA,UAAU,CAACH,WAAW,CAACY,GAAG,CAACJ,KAAK;YACrCM,iBAAiBQ,SAAS;QAC9B;QAEA,IAAI,CAACX,OAAO,CAACY,GAAG,CAACf,IAAIM;QAErB,OAAOA;IACX;IAEQU,mBAAmBhB,EAAU,EAAEiB,KAAc,EAAE;QACnD,MAAMC,SAAS,IAAI,CAACvB,UAAU,CAACG,mBAAmB,CAAE;YAAEW,WAAWT;QAAG;QAEpE,IAAI,EAACkB,mBAAAA,6BAAAA,OAAQC,UAAU,GAAE;YACrB;QACJ;QAEA,IAAIF,OAAO;YACPC,OAAOJ,SAAS,CAAC;gBAAEM,oBAAoB;YAAM;QACjD,OAAO,IAAI,CAACF,OAAOG,sBAAsB,EAAE;YACvCH,OAAOI,WAAW,CAAC;gBAAEF,oBAAoB;YAAM;QACnD;IACJ;IAtEA,aAAc;QAbdzB,uBAAAA,cAA0C,IAAIP,WAAW;YACrDa,YAAY,IAAId,mBAAmBE,UAAUU,CAAAA,MAAOA,IAAIU,SAAS;YACjEX,qBAAqBC,CAAAA,MAAO,IAAI,CAACD,mBAAmB,CAACC;QACzD;QAEAI,uBAAAA,WAAU,IAAIoB;QAMd,uBAAQ1B,6BAAR,KAAA;QAGIX,eAAe,IAAI;QAEnB,IAAI,CAACW,yBAAyB,GAAGZ,QAAQ,IAAI,EAAE,eAAeuC,CAAAA;YAC1D,MAAM,EAAEC,WAAW,EAAE,EAAEC,QAAQ,EAAE,GAAGF;YAKpC,MAAMG,SAAS,IAAIC,IAAIH;YACvB,MAAMI,QAAQ,IAAID,IAAIF;YAEtB,KAAK,MAAM1B,MAAMyB,SAAU;gBACvB,IAAI,CAACI,MAAMzB,GAAG,CAACJ,KAAK;oBAChB,IAAI,CAACgB,kBAAkB,CAAChB,IAAI;gBAChC;YACJ;YAEA,KAAK,MAAMA,MAAM0B,SAAU;gBACvB,IAAI,CAACC,OAAOvB,GAAG,CAACJ,KAAK;oBACjB,IAAI,CAACgB,kBAAkB,CAAChB,IAAI;gBAChC;YACJ;QACJ;IACJ;AA+CJ"}
1
+ {"version":3,"sources":["../../../src/demo/master-detail/master-table.store.ts"],"sourcesContent":["import { injectable } from '@servicetitan/react-ioc';\n\nimport type { Lambda } from 'mobx';\nimport { computed, observe, makeObservable } from 'mobx';\n\nimport { InMemoryDataSource, TableState } from '../..';\n\nimport type { Product } from './product';\nimport { products } from './products';\n\nimport type { ProductDetail } from './product-detail';\nimport { productDetails } from './product-details';\n\n@injectable()\nexport class MasterTableStore {\n tableState: TableState<Product, number> = new TableState({\n dataSource: new InMemoryDataSource(products, row => row.ProductID),\n getDetailTableState: row => this.getDetailTableState(row),\n });\n\n details = new Map<number, TableState<ProductDetail, string, Product, number>>();\n\n @computed get selectedIds() {\n return Array.from(this.tableState.selectedIds);\n }\n\n private disposeSelectedIdsObserve: Lambda;\n\n constructor() {\n makeObservable(this);\n\n this.disposeSelectedIdsObserve = observe(this, 'selectedIds', change => {\n const { oldValue = [], newValue } = change as {\n oldValue: number[];\n newValue: number[];\n };\n\n const before = new Set(oldValue);\n const after = new Set(newValue);\n\n for (const id of oldValue) {\n if (!after.has(id)) {\n this.setDetailSelection(id, false);\n }\n }\n\n for (const id of newValue) {\n if (!before.has(id)) {\n this.setDetailSelection(id, true);\n }\n }\n });\n }\n\n dispose() {\n this.disposeSelectedIdsObserve();\n }\n\n private getDetailTableState(row: Product) {\n const id = this.tableState.dataSource!.idSelector!(row);\n\n if (this.details.has(id)) {\n return this.details.get(id)!;\n }\n\n const detailTableState = new TableState({\n dataSource: new InMemoryDataSource(\n productDetails.filter(x => x.ProductID === id),\n row => row.Field\n ),\n isRowUnselectable: row => !!row.IsLocked,\n parent: {\n row,\n tableState: this.tableState,\n },\n });\n\n if (this.tableState.selectedIds.has(id)) {\n detailTableState.selectAll();\n }\n\n this.details.set(id, detailTableState);\n\n return detailTableState;\n }\n\n private setDetailSelection(id: number, value: boolean) {\n const detail = this.tableState.getDetailTableState!({ ProductID: id } as Product);\n\n if (!detail?.totalCount) {\n return;\n }\n\n if (value) {\n detail.selectAll({ ignoreUnselectable: false });\n } else if (!detail.isSomePageRowsSelected) {\n detail.deselectAll({ ignoreUnselectable: false });\n }\n }\n}\n"],"names":["injectable","computed","observe","makeObservable","InMemoryDataSource","TableState","products","productDetails","MasterTableStore","selectedIds","Array","from","tableState","dispose","disposeSelectedIdsObserve","getDetailTableState","row","id","dataSource","idSelector","details","has","get","detailTableState","filter","x","ProductID","Field","isRowUnselectable","IsLocked","parent","selectAll","set","setDetailSelection","value","detail","totalCount","ignoreUnselectable","isSomePageRowsSelected","deselectAll","Map","change","oldValue","newValue","before","Set","after"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,UAAU,QAAQ,0BAA0B;AAGrD,SAASC,QAAQ,EAAEC,OAAO,EAAEC,cAAc,QAAQ,OAAO;AAEzD,SAASC,kBAAkB,EAAEC,UAAU,QAAQ,QAAQ;AAGvD,SAASC,QAAQ,QAAQ,aAAa;AAGtC,SAASC,cAAc,QAAQ,oBAAoB;AAGnD,OAAO,MAAMC;IAQT,IAAcC,cAAc;QACxB,OAAOC,MAAMC,IAAI,CAAC,IAAI,CAACC,UAAU,CAACH,WAAW;IACjD;IA8BAI,UAAU;QACN,IAAI,CAACC,yBAAyB;IAClC;IAEQC,oBAAoBC,GAAY,EAAE;QACtC,MAAMC,KAAK,IAAI,CAACL,UAAU,CAACM,UAAU,CAAEC,UAAU,CAAEH;QAEnD,IAAI,IAAI,CAACI,OAAO,CAACC,GAAG,CAACJ,KAAK;YACtB,OAAO,IAAI,CAACG,OAAO,CAACE,GAAG,CAACL;QAC5B;QAEA,MAAMM,mBAAmB,IAAIlB,WAAW;YACpCa,YAAY,IAAId,mBACZG,eAAeiB,MAAM,CAACC,CAAAA,IAAKA,EAAEC,SAAS,KAAKT,KAC3CD,CAAAA,MAAOA,IAAIW,KAAK;YAEpBC,mBAAmBZ,CAAAA,MAAO,CAAC,CAACA,IAAIa,QAAQ;YACxCC,QAAQ;gBACJd;gBACAJ,YAAY,IAAI,CAACA,UAAU;YAC/B;QACJ;QAEA,IAAI,IAAI,CAACA,UAAU,CAACH,WAAW,CAACY,GAAG,CAACJ,KAAK;YACrCM,iBAAiBQ,SAAS;QAC9B;QAEA,IAAI,CAACX,OAAO,CAACY,GAAG,CAACf,IAAIM;QAErB,OAAOA;IACX;IAEQU,mBAAmBhB,EAAU,EAAEiB,KAAc,EAAE;QACnD,MAAMC,SAAS,IAAI,CAACvB,UAAU,CAACG,mBAAmB,CAAE;YAAEW,WAAWT;QAAG;QAEpE,IAAI,EAACkB,mBAAAA,6BAAAA,OAAQC,UAAU,GAAE;YACrB;QACJ;QAEA,IAAIF,OAAO;YACPC,OAAOJ,SAAS,CAAC;gBAAEM,oBAAoB;YAAM;QACjD,OAAO,IAAI,CAACF,OAAOG,sBAAsB,EAAE;YACvCH,OAAOI,WAAW,CAAC;gBAAEF,oBAAoB;YAAM;QACnD;IACJ;IAtEA,aAAc;QAbdzB,uBAAAA,cAA0C,IAAIP,WAAW;YACrDa,YAAY,IAAId,mBAAmBE,UAAUU,CAAAA,MAAOA,IAAIU,SAAS;YACjEX,qBAAqBC,CAAAA,MAAO,IAAI,CAACD,mBAAmB,CAACC;QACzD;QAEAI,uBAAAA,WAAU,IAAIoB;QAMd,uBAAQ1B,6BAAR,KAAA;QAGIX,eAAe,IAAI;QAEnB,IAAI,CAACW,yBAAyB,GAAGZ,QAAQ,IAAI,EAAE,eAAeuC,CAAAA;YAC1D,MAAM,EAAEC,WAAW,EAAE,EAAEC,QAAQ,EAAE,GAAGF;YAKpC,MAAMG,SAAS,IAAIC,IAAIH;YACvB,MAAMI,QAAQ,IAAID,IAAIF;YAEtB,KAAK,MAAM1B,MAAMyB,SAAU;gBACvB,IAAI,CAACI,MAAMzB,GAAG,CAACJ,KAAK;oBAChB,IAAI,CAACgB,kBAAkB,CAAChB,IAAI;gBAChC;YACJ;YAEA,KAAK,MAAMA,MAAM0B,SAAU;gBACvB,IAAI,CAACC,OAAOvB,GAAG,CAACJ,KAAK;oBACjB,IAAI,CAACgB,kBAAkB,CAAChB,IAAI;gBAChC;YACJ;QACJ;IACJ;AA+CJ"}
@@ -1,3 +1,3 @@
1
- import { ProductDetail } from './product-detail';
1
+ import type { ProductDetail } from './product-detail';
2
2
  export declare const productDetails: ProductDetail[];
3
3
  //# sourceMappingURL=product-details.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"product-details.d.ts","sourceRoot":"","sources":["../../../src/demo/master-detail/product-details.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,eAAO,MAAM,cAAc,EAAE,aAAa,EAqDzC,CAAC"}
1
+ {"version":3,"file":"product-details.d.ts","sourceRoot":"","sources":["../../../src/demo/master-detail/product-details.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,eAAO,MAAM,cAAc,EAAE,aAAa,EAqDzC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/demo/master-detail/product-details.ts"],"sourcesContent":["import { ProductDetail } from './product-detail';\n\nexport const productDetails: ProductDetail[] = [\n {\n ProductID: 1,\n Field: 'QuantityPerUnit',\n OldValue: '12 boxes x 24 bags',\n NewValue: '10 boxes x 20 bags',\n },\n {\n ProductID: 1,\n Field: 'UnitPrice',\n OldValue: '25.0',\n NewValue: '18.0',\n },\n {\n ProductID: 2,\n Field: 'Supplier',\n IsLocked: true,\n OldValue: 'Adam',\n NewValue: 'Dan',\n },\n {\n ProductID: 2,\n Field: 'UnitPrice',\n OldValue: '18.5',\n NewValue: '19.0',\n },\n {\n ProductID: 2,\n Field: 'UnitsInStock',\n OldValue: '5',\n NewValue: '17',\n },\n {\n ProductID: 2,\n Field: 'Discontinued',\n IsLocked: true,\n OldValue: 'true',\n NewValue: 'false',\n },\n {\n ProductID: 3,\n Field: 'Discontinued',\n IsLocked: true,\n OldValue: 'false',\n NewValue: 'true',\n },\n {\n ProductID: 3,\n Field: 'UnitsInStock',\n IsLocked: true,\n OldValue: '7',\n NewValue: '5',\n },\n];\n"],"names":["productDetails","ProductID","Field","OldValue","NewValue","IsLocked"],"mappings":"AAEA,OAAO,MAAMA,iBAAkC;IAC3C;QACIC,WAAW;QACXC,OAAO;QACPC,UAAU;QACVC,UAAU;IACd;IACA;QACIH,WAAW;QACXC,OAAO;QACPC,UAAU;QACVC,UAAU;IACd;IACA;QACIH,WAAW;QACXC,OAAO;QACPG,UAAU;QACVF,UAAU;QACVC,UAAU;IACd;IACA;QACIH,WAAW;QACXC,OAAO;QACPC,UAAU;QACVC,UAAU;IACd;IACA;QACIH,WAAW;QACXC,OAAO;QACPC,UAAU;QACVC,UAAU;IACd;IACA;QACIH,WAAW;QACXC,OAAO;QACPG,UAAU;QACVF,UAAU;QACVC,UAAU;IACd;IACA;QACIH,WAAW;QACXC,OAAO;QACPG,UAAU;QACVF,UAAU;QACVC,UAAU;IACd;IACA;QACIH,WAAW;QACXC,OAAO;QACPG,UAAU;QACVF,UAAU;QACVC,UAAU;IACd;CACH,CAAC"}
1
+ {"version":3,"sources":["../../../src/demo/master-detail/product-details.ts"],"sourcesContent":["import type { ProductDetail } from './product-detail';\n\nexport const productDetails: ProductDetail[] = [\n {\n ProductID: 1,\n Field: 'QuantityPerUnit',\n OldValue: '12 boxes x 24 bags',\n NewValue: '10 boxes x 20 bags',\n },\n {\n ProductID: 1,\n Field: 'UnitPrice',\n OldValue: '25.0',\n NewValue: '18.0',\n },\n {\n ProductID: 2,\n Field: 'Supplier',\n IsLocked: true,\n OldValue: 'Adam',\n NewValue: 'Dan',\n },\n {\n ProductID: 2,\n Field: 'UnitPrice',\n OldValue: '18.5',\n NewValue: '19.0',\n },\n {\n ProductID: 2,\n Field: 'UnitsInStock',\n OldValue: '5',\n NewValue: '17',\n },\n {\n ProductID: 2,\n Field: 'Discontinued',\n IsLocked: true,\n OldValue: 'true',\n NewValue: 'false',\n },\n {\n ProductID: 3,\n Field: 'Discontinued',\n IsLocked: true,\n OldValue: 'false',\n NewValue: 'true',\n },\n {\n ProductID: 3,\n Field: 'UnitsInStock',\n IsLocked: true,\n OldValue: '7',\n NewValue: '5',\n },\n];\n"],"names":["productDetails","ProductID","Field","OldValue","NewValue","IsLocked"],"mappings":"AAEA,OAAO,MAAMA,iBAAkC;IAC3C;QACIC,WAAW;QACXC,OAAO;QACPC,UAAU;QACVC,UAAU;IACd;IACA;QACIH,WAAW;QACXC,OAAO;QACPC,UAAU;QACVC,UAAU;IACd;IACA;QACIH,WAAW;QACXC,OAAO;QACPG,UAAU;QACVF,UAAU;QACVC,UAAU;IACd;IACA;QACIH,WAAW;QACXC,OAAO;QACPC,UAAU;QACVC,UAAU;IACd;IACA;QACIH,WAAW;QACXC,OAAO;QACPC,UAAU;QACVC,UAAU;IACd;IACA;QACIH,WAAW;QACXC,OAAO;QACPG,UAAU;QACVF,UAAU;QACVC,UAAU;IACd;IACA;QACIH,WAAW;QACXC,OAAO;QACPG,UAAU;QACVF,UAAU;QACVC,UAAU;IACd;IACA;QACIH,WAAW;QACXC,OAAO;QACPG,UAAU;QACVF,UAAU;QACVC,UAAU;IACd;CACH,CAAC"}
@@ -1,3 +1,3 @@
1
- import { Product } from './product';
1
+ import type { Product } from './product';
2
2
  export declare const products: Product[];
3
3
  //# sourceMappingURL=products.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../../src/demo/master-detail/products.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAsB,MAAM,WAAW,CAAC;AAExD,eAAO,MAAM,QAAQ,EAAE,OAAO,EAkH7B,CAAC"}
1
+ {"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../../src/demo/master-detail/products.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,eAAO,MAAM,QAAQ,EAAE,OAAO,EAkH7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/demo/master-detail/products.ts"],"sourcesContent":["import { Product, UserRole, Supplier } from './product';\n\nexport const products: Product[] = [\n {\n ProductID: 1,\n ProductName: 'Chai',\n Supplier: Supplier.Dan,\n CategoryID: 1,\n QuantityPerUnit: '10 boxes x 20 bags',\n UnitPrice: 18.0,\n UnitsInStock: 39,\n UnitsOnOrder: new Date('1/11/2019'),\n Discontinued: false,\n AvailableFor: UserRole.Admin,\n },\n {\n ProductID: 2,\n ProductName: 'Chang',\n Supplier: Supplier.Dan,\n CategoryID: 1,\n QuantityPerUnit: '24 - 12 oz bottles',\n UnitPrice: 19.0,\n UnitsInStock: 17,\n UnitsOnOrder: new Date('2/11/2019'),\n Discontinued: false,\n },\n {\n ProductID: 3,\n ProductName: 'Aniseed Syrup',\n Supplier: Supplier.Dan,\n CategoryID: 2,\n QuantityPerUnit: '12 - 550 ml bottles',\n UnitPrice: 10.0,\n UnitsInStock: 13,\n UnitsOnOrder: new Date('3/11/2019'),\n Discontinued: false,\n AvailableFor: UserRole.Owner,\n },\n {\n ProductID: 4,\n ProductName: \"Chef Anton's Cajun Seasoning\",\n Supplier: Supplier.Adam,\n CategoryID: 2,\n QuantityPerUnit: '48 - 6 oz jars',\n UnitPrice: 22.0,\n UnitsInStock: 53,\n UnitsOnOrder: new Date('4/11/2019'),\n Discontinued: false,\n },\n {\n ProductID: 5,\n ProductName: \"Chef Anton's Gumbo Mix\",\n Supplier: Supplier.Adam,\n CategoryID: 2,\n QuantityPerUnit: '36 boxes',\n UnitPrice: 21.35,\n UnitsInStock: 0,\n UnitsOnOrder: new Date('5/11/2019'),\n Discontinued: true,\n AvailableFor: UserRole.GeneralOffice,\n },\n {\n ProductID: 6,\n ProductName: \"Grandma's Boysenberry Spread\",\n Supplier: Supplier.Charlie,\n CategoryID: 2,\n QuantityPerUnit: '12 - 8 oz jars',\n UnitPrice: 25.0,\n UnitsInStock: 120,\n UnitsOnOrder: new Date('6/11/2019'),\n Discontinued: false,\n },\n {\n ProductID: 7,\n ProductName: \"Uncle Bob's Organic Dried Pears\",\n Supplier: Supplier.Charlie,\n CategoryID: 7,\n QuantityPerUnit: '12 - 1 lb pkgs.',\n UnitPrice: 30.0,\n UnitsInStock: 15,\n UnitsOnOrder: new Date('7/11/2019'),\n Discontinued: false,\n },\n {\n ProductID: 8,\n ProductName: 'Northwoods Cranberry Sauce',\n Supplier: Supplier.Charlie,\n CategoryID: 2,\n QuantityPerUnit: '12 - 12 oz jars',\n UnitPrice: 40.0,\n UnitsInStock: 6,\n UnitsOnOrder: new Date('8/11/2019'),\n Discontinued: false,\n },\n {\n ProductID: 9,\n ProductName: 'Mishi Kobe Niku',\n Supplier: Supplier.Benjamin,\n CategoryID: 6,\n QuantityPerUnit: '18 - 500 g pkgs.',\n UnitPrice: 97.0,\n UnitsInStock: 29,\n UnitsOnOrder: new Date('9/11/2019'),\n Discontinued: true,\n },\n {\n ProductID: 10,\n ProductName: 'Ikura',\n Supplier: Supplier.Benjamin,\n CategoryID: 8,\n QuantityPerUnit: '12 - 200 ml jars',\n UnitPrice: 31.0,\n UnitsInStock: 31,\n UnitsOnOrder: new Date('10/11/2019'),\n Discontinued: false,\n },\n];\n"],"names":["UserRole","Supplier","products","ProductID","ProductName","Dan","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","Date","Discontinued","AvailableFor","Admin","Owner","Adam","GeneralOffice","Charlie","Benjamin"],"mappings":"AAAA,SAAkBA,QAAQ,EAAEC,QAAQ,QAAQ,YAAY;AAExD,OAAO,MAAMC,WAAsB;IAC/B;QACIC,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASI,GAAG;QACtBC,YAAY;QACZC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;QACdC,cAAcb,SAASc,KAAK;IAChC;IACA;QACIX,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASI,GAAG;QACtBC,YAAY;QACZC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIT,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASI,GAAG;QACtBC,YAAY;QACZC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;QACdC,cAAcb,SAASe,KAAK;IAChC;IACA;QACIZ,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASe,IAAI;QACvBV,YAAY;QACZC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIT,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASe,IAAI;QACvBV,YAAY;QACZC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;QACdC,cAAcb,SAASiB,aAAa;IACxC;IACA;QACId,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASiB,OAAO;QAC1BZ,YAAY;QACZC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIT,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASiB,OAAO;QAC1BZ,YAAY;QACZC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIT,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASiB,OAAO;QAC1BZ,YAAY;QACZC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIT,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASkB,QAAQ;QAC3Bb,YAAY;QACZC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIT,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASkB,QAAQ;QAC3Bb,YAAY;QACZC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;CACH,CAAC"}
1
+ {"version":3,"sources":["../../../src/demo/master-detail/products.ts"],"sourcesContent":["import type { Product } from './product';\nimport { UserRole, Supplier } from './product';\n\nexport const products: Product[] = [\n {\n ProductID: 1,\n ProductName: 'Chai',\n Supplier: Supplier.Dan,\n CategoryID: 1,\n QuantityPerUnit: '10 boxes x 20 bags',\n UnitPrice: 18.0,\n UnitsInStock: 39,\n UnitsOnOrder: new Date('1/11/2019'),\n Discontinued: false,\n AvailableFor: UserRole.Admin,\n },\n {\n ProductID: 2,\n ProductName: 'Chang',\n Supplier: Supplier.Dan,\n CategoryID: 1,\n QuantityPerUnit: '24 - 12 oz bottles',\n UnitPrice: 19.0,\n UnitsInStock: 17,\n UnitsOnOrder: new Date('2/11/2019'),\n Discontinued: false,\n },\n {\n ProductID: 3,\n ProductName: 'Aniseed Syrup',\n Supplier: Supplier.Dan,\n CategoryID: 2,\n QuantityPerUnit: '12 - 550 ml bottles',\n UnitPrice: 10.0,\n UnitsInStock: 13,\n UnitsOnOrder: new Date('3/11/2019'),\n Discontinued: false,\n AvailableFor: UserRole.Owner,\n },\n {\n ProductID: 4,\n ProductName: \"Chef Anton's Cajun Seasoning\",\n Supplier: Supplier.Adam,\n CategoryID: 2,\n QuantityPerUnit: '48 - 6 oz jars',\n UnitPrice: 22.0,\n UnitsInStock: 53,\n UnitsOnOrder: new Date('4/11/2019'),\n Discontinued: false,\n },\n {\n ProductID: 5,\n ProductName: \"Chef Anton's Gumbo Mix\",\n Supplier: Supplier.Adam,\n CategoryID: 2,\n QuantityPerUnit: '36 boxes',\n UnitPrice: 21.35,\n UnitsInStock: 0,\n UnitsOnOrder: new Date('5/11/2019'),\n Discontinued: true,\n AvailableFor: UserRole.GeneralOffice,\n },\n {\n ProductID: 6,\n ProductName: \"Grandma's Boysenberry Spread\",\n Supplier: Supplier.Charlie,\n CategoryID: 2,\n QuantityPerUnit: '12 - 8 oz jars',\n UnitPrice: 25.0,\n UnitsInStock: 120,\n UnitsOnOrder: new Date('6/11/2019'),\n Discontinued: false,\n },\n {\n ProductID: 7,\n ProductName: \"Uncle Bob's Organic Dried Pears\",\n Supplier: Supplier.Charlie,\n CategoryID: 7,\n QuantityPerUnit: '12 - 1 lb pkgs.',\n UnitPrice: 30.0,\n UnitsInStock: 15,\n UnitsOnOrder: new Date('7/11/2019'),\n Discontinued: false,\n },\n {\n ProductID: 8,\n ProductName: 'Northwoods Cranberry Sauce',\n Supplier: Supplier.Charlie,\n CategoryID: 2,\n QuantityPerUnit: '12 - 12 oz jars',\n UnitPrice: 40.0,\n UnitsInStock: 6,\n UnitsOnOrder: new Date('8/11/2019'),\n Discontinued: false,\n },\n {\n ProductID: 9,\n ProductName: 'Mishi Kobe Niku',\n Supplier: Supplier.Benjamin,\n CategoryID: 6,\n QuantityPerUnit: '18 - 500 g pkgs.',\n UnitPrice: 97.0,\n UnitsInStock: 29,\n UnitsOnOrder: new Date('9/11/2019'),\n Discontinued: true,\n },\n {\n ProductID: 10,\n ProductName: 'Ikura',\n Supplier: Supplier.Benjamin,\n CategoryID: 8,\n QuantityPerUnit: '12 - 200 ml jars',\n UnitPrice: 31.0,\n UnitsInStock: 31,\n UnitsOnOrder: new Date('10/11/2019'),\n Discontinued: false,\n },\n];\n"],"names":["UserRole","Supplier","products","ProductID","ProductName","Dan","CategoryID","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","Date","Discontinued","AvailableFor","Admin","Owner","Adam","GeneralOffice","Charlie","Benjamin"],"mappings":"AACA,SAASA,QAAQ,EAAEC,QAAQ,QAAQ,YAAY;AAE/C,OAAO,MAAMC,WAAsB;IAC/B;QACIC,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASI,GAAG;QACtBC,YAAY;QACZC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;QACdC,cAAcb,SAASc,KAAK;IAChC;IACA;QACIX,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASI,GAAG;QACtBC,YAAY;QACZC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIT,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASI,GAAG;QACtBC,YAAY;QACZC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;QACdC,cAAcb,SAASe,KAAK;IAChC;IACA;QACIZ,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASe,IAAI;QACvBV,YAAY;QACZC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIT,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASe,IAAI;QACvBV,YAAY;QACZC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;QACdC,cAAcb,SAASiB,aAAa;IACxC;IACA;QACId,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASiB,OAAO;QAC1BZ,YAAY;QACZC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIT,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASiB,OAAO;QAC1BZ,YAAY;QACZC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIT,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASiB,OAAO;QAC1BZ,YAAY;QACZC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIT,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASkB,QAAQ;QAC3Bb,YAAY;QACZC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIT,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASkB,QAAQ;QAC3Bb,YAAY;QACZC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;CACH,CAAC"}
@@ -1,3 +1,3 @@
1
- import { FC } from 'react';
1
+ import type { FC } from 'react';
2
2
  export declare const TableMasterDetailExample: FC;
3
3
  //# sourceMappingURL=table-master-detail.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-master-detail.d.ts","sourceRoot":"","sources":["../../../src/demo/master-detail/table-master-detail.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,EAAE,EAAE,MAAM,OAAO,CAAC;AA6BtC,eAAO,MAAM,wBAAwB,EAAE,EAgBrC,CAAC"}
1
+ {"version":3,"file":"table-master-detail.d.ts","sourceRoot":"","sources":["../../../src/demo/master-detail/table-master-detail.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AA+BhC,eAAO,MAAM,wBAAwB,EAAE,EAgBrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/demo/master-detail/table-master-detail.tsx"],"sourcesContent":["import { useEffect, FC } from 'react';\n\nimport { provide, useDependencies } from '@servicetitan/react-ioc';\n\nimport { Button } from '@servicetitan/design-system';\n\nimport { Table, TableColumn, TableCellProps, TableExpandChangeEvent } from '../..';\n\nimport { MasterTableStore } from './master-table.store';\n\nimport { DetailTable } from './detail-table';\n\nconst ExpandCell: FC<TableCellProps> = ({ tableState, dataItem, tdProps }) => {\n const handleExpandChange = () => {\n tableState!.handleExpandChange({\n dataItem,\n value: !dataItem.expanded,\n } as TableExpandChangeEvent);\n };\n\n return (\n <td {...tdProps}>\n <Button full text primary onClick={handleExpandChange}>\n Show / Hide\n </Button>\n </td>\n );\n};\n\nexport const TableMasterDetailExample: FC = provide({\n singletons: [MasterTableStore],\n})(() => {\n const [store] = useDependencies(MasterTableStore);\n\n useEffect(() => () => store.dispose());\n\n return (\n <Table tableState={store.tableState} selectable detail={DetailTable}>\n <TableColumn field=\"ProductID\" title=\"ID\" width=\"100px\" />\n\n <TableColumn field=\"ProductName\" title=\"Product Name\" />\n\n <TableColumn cell={ExpandCell} width=\"150px\" />\n </Table>\n );\n});\n"],"names":["useEffect","provide","useDependencies","Button","Table","TableColumn","MasterTableStore","DetailTable","ExpandCell","tableState","dataItem","tdProps","handleExpandChange","value","expanded","td","full","text","primary","onClick","TableMasterDetailExample","singletons","store","dispose","selectable","detail","field","title","width","cell"],"mappings":";AAAA,SAASA,SAAS,QAAY,QAAQ;AAEtC,SAASC,OAAO,EAAEC,eAAe,QAAQ,0BAA0B;AAEnE,SAASC,MAAM,QAAQ,8BAA8B;AAErD,SAASC,KAAK,EAAEC,WAAW,QAAgD,QAAQ;AAEnF,SAASC,gBAAgB,QAAQ,uBAAuB;AAExD,SAASC,WAAW,QAAQ,iBAAiB;AAE7C,MAAMC,aAAiC,CAAC,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,OAAO,EAAE;IACrE,MAAMC,qBAAqB;QACvBH,WAAYG,kBAAkB,CAAC;YAC3BF;YACAG,OAAO,CAACH,SAASI,QAAQ;QAC7B;IACJ;IAEA,qBACI,KAACC;QAAI,GAAGJ,OAAO;kBACX,cAAA,KAACR;YAAOa,IAAI;YAACC,IAAI;YAACC,OAAO;YAACC,SAASP;sBAAoB;;;AAKnE;AAEA,OAAO,MAAMQ,2BAA+BnB,QAAQ;IAChDoB,YAAY;QAACf;KAAiB;AAClC,GAAG;IACC,MAAM,CAACgB,MAAM,GAAGpB,gBAAgBI;IAEhCN,UAAU,IAAM,IAAMsB,MAAMC,OAAO;IAEnC,qBACI,MAACnB;QAAMK,YAAYa,MAAMb,UAAU;QAAEe,UAAU;QAACC,QAAQlB;;0BACpD,KAACF;gBAAYqB,OAAM;gBAAYC,OAAM;gBAAKC,OAAM;;0BAEhD,KAACvB;gBAAYqB,OAAM;gBAAcC,OAAM;;0BAEvC,KAACtB;gBAAYwB,MAAMrB;gBAAYoB,OAAM;;;;AAGjD,GAAG"}
1
+ {"version":3,"sources":["../../../src/demo/master-detail/table-master-detail.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { useEffect } from 'react';\n\nimport { provide, useDependencies } from '@servicetitan/react-ioc';\n\nimport { Button } from '@servicetitan/design-system';\n\nimport type { TableCellProps, TableExpandChangeEvent } from '../..';\nimport { Table, TableColumn } from '../..';\n\nimport { MasterTableStore } from './master-table.store';\n\nimport { DetailTable } from './detail-table';\n\nconst ExpandCell: FC<TableCellProps> = ({ tableState, dataItem, tdProps }) => {\n const handleExpandChange = () => {\n tableState!.handleExpandChange({\n dataItem,\n value: !dataItem.expanded,\n } as TableExpandChangeEvent);\n };\n\n return (\n <td {...tdProps}>\n <Button full text primary onClick={handleExpandChange}>\n Show / Hide\n </Button>\n </td>\n );\n};\n\nexport const TableMasterDetailExample: FC = provide({\n singletons: [MasterTableStore],\n})(() => {\n const [store] = useDependencies(MasterTableStore);\n\n useEffect(() => () => store.dispose());\n\n return (\n <Table tableState={store.tableState} selectable detail={DetailTable}>\n <TableColumn field=\"ProductID\" title=\"ID\" width=\"100px\" />\n\n <TableColumn field=\"ProductName\" title=\"Product Name\" />\n\n <TableColumn cell={ExpandCell} width=\"150px\" />\n </Table>\n );\n});\n"],"names":["useEffect","provide","useDependencies","Button","Table","TableColumn","MasterTableStore","DetailTable","ExpandCell","tableState","dataItem","tdProps","handleExpandChange","value","expanded","td","full","text","primary","onClick","TableMasterDetailExample","singletons","store","dispose","selectable","detail","field","title","width","cell"],"mappings":";AACA,SAASA,SAAS,QAAQ,QAAQ;AAElC,SAASC,OAAO,EAAEC,eAAe,QAAQ,0BAA0B;AAEnE,SAASC,MAAM,QAAQ,8BAA8B;AAGrD,SAASC,KAAK,EAAEC,WAAW,QAAQ,QAAQ;AAE3C,SAASC,gBAAgB,QAAQ,uBAAuB;AAExD,SAASC,WAAW,QAAQ,iBAAiB;AAE7C,MAAMC,aAAiC,CAAC,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,OAAO,EAAE;IACrE,MAAMC,qBAAqB;QACvBH,WAAYG,kBAAkB,CAAC;YAC3BF;YACAG,OAAO,CAACH,SAASI,QAAQ;QAC7B;IACJ;IAEA,qBACI,KAACC;QAAI,GAAGJ,OAAO;kBACX,cAAA,KAACR;YAAOa,IAAI;YAACC,IAAI;YAACC,OAAO;YAACC,SAASP;sBAAoB;;;AAKnE;AAEA,OAAO,MAAMQ,2BAA+BnB,QAAQ;IAChDoB,YAAY;QAACf;KAAiB;AAClC,GAAG;IACC,MAAM,CAACgB,MAAM,GAAGpB,gBAAgBI;IAEhCN,UAAU,IAAM,IAAMsB,MAAMC,OAAO;IAEnC,qBACI,MAACnB;QAAMK,YAAYa,MAAMb,UAAU;QAAEe,UAAU;QAACC,QAAQlB;;0BACpD,KAACF;gBAAYqB,OAAM;gBAAYC,OAAM;gBAAKC,OAAM;;0BAEhD,KAACvB;gBAAYqB,OAAM;gBAAcC,OAAM;;0BAEvC,KAACtB;gBAAYwB,MAAMrB;gBAAYoB,OAAM;;;;AAGjD,GAAG"}
@@ -1,4 +1,4 @@
1
- import { TableCellProps } from '../..';
2
- import { Product } from './product';
1
+ import type { TableCellProps } from '../..';
2
+ import type { Product } from './product';
3
3
  export declare const ActionsCell: (props: TableCellProps<Product, any, never, never>) => import("react/jsx-runtime").JSX.Element;
4
4
  //# sourceMappingURL=actions-cell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions-cell.d.ts","sourceRoot":"","sources":["../../../src/demo/overview/actions-cell.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAkC,MAAM,OAAO,CAAC;AAEvE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiDpC,eAAO,MAAM,WAAW,gGAGtB,CAAC"}
1
+ {"version":3,"file":"actions-cell.d.ts","sourceRoot":"","sources":["../../../src/demo/overview/actions-cell.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,OAAO,CAAC;AAG7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiDzC,eAAO,MAAM,WAAW,gGAGtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/demo/overview/actions-cell.tsx"],"sourcesContent":["import { FC } from 'react';\n\nimport { Button, Icon, Stack } from '@servicetitan/design-system';\n\nimport { TableCellProps, getActionCell, EditActionProps } from '../..';\n\nimport { Product } from './product';\n\nconst ViewAction: FC<TableCellProps<Product>> = ({ tableState, dataItem, tdProps }) => {\n if (!tableState) {\n return <td {...tdProps} />;\n }\n\n const edit = () => tableState.edit(dataItem);\n\n return (\n <td {...tdProps}>\n <Button text primary onClick={edit}>\n <Icon name=\"edit\" />\n </Button>\n </td>\n );\n};\n\nconst EditAction: FC<EditActionProps<Product>> = ({ tableState, formState, dataItem, tdProps }) => {\n if (!tableState) {\n return <td {...tdProps} />;\n }\n\n const save = async () => {\n const { hasError } = await formState.validate();\n if (hasError) {\n return;\n }\n\n await tableState.saveEdit(dataItem);\n };\n\n const cancel = () => tableState.cancelEdit(dataItem);\n\n return (\n <td {...tdProps}>\n <Stack justifyContent=\"space-between\">\n <Button text onClick={cancel}>\n <Icon name=\"do_not_disturb\" />\n </Button>\n\n <Button text primary onClick={save}>\n <Icon name=\"done\" />\n </Button>\n </Stack>\n </td>\n );\n};\n\nexport const ActionsCell = getActionCell({\n view: ViewAction,\n edit: EditAction,\n});\n"],"names":["Button","Icon","Stack","getActionCell","ViewAction","tableState","dataItem","tdProps","td","edit","text","primary","onClick","name","EditAction","formState","save","hasError","validate","saveEdit","cancel","cancelEdit","justifyContent","ActionsCell","view"],"mappings":";AAEA,SAASA,MAAM,EAAEC,IAAI,EAAEC,KAAK,QAAQ,8BAA8B;AAElE,SAAyBC,aAAa,QAAyB,QAAQ;AAIvE,MAAMC,aAA0C,CAAC,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,OAAO,EAAE;IAC9E,IAAI,CAACF,YAAY;QACb,qBAAO,KAACG;YAAI,GAAGD,OAAO;;IAC1B;IAEA,MAAME,OAAO,IAAMJ,WAAWI,IAAI,CAACH;IAEnC,qBACI,KAACE;QAAI,GAAGD,OAAO;kBACX,cAAA,KAACP;YAAOU,IAAI;YAACC,OAAO;YAACC,SAASH;sBAC1B,cAAA,KAACR;gBAAKY,MAAK;;;;AAI3B;AAEA,MAAMC,aAA2C,CAAC,EAAET,UAAU,EAAEU,SAAS,EAAET,QAAQ,EAAEC,OAAO,EAAE;IAC1F,IAAI,CAACF,YAAY;QACb,qBAAO,KAACG;YAAI,GAAGD,OAAO;;IAC1B;IAEA,MAAMS,OAAO;QACT,MAAM,EAAEC,QAAQ,EAAE,GAAG,MAAMF,UAAUG,QAAQ;QAC7C,IAAID,UAAU;YACV;QACJ;QAEA,MAAMZ,WAAWc,QAAQ,CAACb;IAC9B;IAEA,MAAMc,SAAS,IAAMf,WAAWgB,UAAU,CAACf;IAE3C,qBACI,KAACE;QAAI,GAAGD,OAAO;kBACX,cAAA,MAACL;YAAMoB,gBAAe;;8BAClB,KAACtB;oBAAOU,IAAI;oBAACE,SAASQ;8BAClB,cAAA,KAACnB;wBAAKY,MAAK;;;8BAGf,KAACb;oBAAOU,IAAI;oBAACC,OAAO;oBAACC,SAASI;8BAC1B,cAAA,KAACf;wBAAKY,MAAK;;;;;;AAK/B;AAEA,OAAO,MAAMU,cAAcpB,cAAc;IACrCqB,MAAMpB;IACNK,MAAMK;AACV,GAAG"}
1
+ {"version":3,"sources":["../../../src/demo/overview/actions-cell.tsx"],"sourcesContent":["import type { FC } from 'react';\n\nimport { Button, Icon, Stack } from '@servicetitan/design-system';\n\nimport type { TableCellProps, EditActionProps } from '../..';\nimport { getActionCell } from '../..';\n\nimport type { Product } from './product';\n\nconst ViewAction: FC<TableCellProps<Product>> = ({ tableState, dataItem, tdProps }) => {\n if (!tableState) {\n return <td {...tdProps} />;\n }\n\n const edit = () => tableState.edit(dataItem);\n\n return (\n <td {...tdProps}>\n <Button text primary onClick={edit}>\n <Icon name=\"edit\" />\n </Button>\n </td>\n );\n};\n\nconst EditAction: FC<EditActionProps<Product>> = ({ tableState, formState, dataItem, tdProps }) => {\n if (!tableState) {\n return <td {...tdProps} />;\n }\n\n const save = async () => {\n const { hasError } = await formState.validate();\n if (hasError) {\n return;\n }\n\n await tableState.saveEdit(dataItem);\n };\n\n const cancel = () => tableState.cancelEdit(dataItem);\n\n return (\n <td {...tdProps}>\n <Stack justifyContent=\"space-between\">\n <Button text onClick={cancel}>\n <Icon name=\"do_not_disturb\" />\n </Button>\n\n <Button text primary onClick={save}>\n <Icon name=\"done\" />\n </Button>\n </Stack>\n </td>\n );\n};\n\nexport const ActionsCell = getActionCell({\n view: ViewAction,\n edit: EditAction,\n});\n"],"names":["Button","Icon","Stack","getActionCell","ViewAction","tableState","dataItem","tdProps","td","edit","text","primary","onClick","name","EditAction","formState","save","hasError","validate","saveEdit","cancel","cancelEdit","justifyContent","ActionsCell","view"],"mappings":";AAEA,SAASA,MAAM,EAAEC,IAAI,EAAEC,KAAK,QAAQ,8BAA8B;AAGlE,SAASC,aAAa,QAAQ,QAAQ;AAItC,MAAMC,aAA0C,CAAC,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,OAAO,EAAE;IAC9E,IAAI,CAACF,YAAY;QACb,qBAAO,KAACG;YAAI,GAAGD,OAAO;;IAC1B;IAEA,MAAME,OAAO,IAAMJ,WAAWI,IAAI,CAACH;IAEnC,qBACI,KAACE;QAAI,GAAGD,OAAO;kBACX,cAAA,KAACP;YAAOU,IAAI;YAACC,OAAO;YAACC,SAASH;sBAC1B,cAAA,KAACR;gBAAKY,MAAK;;;;AAI3B;AAEA,MAAMC,aAA2C,CAAC,EAAET,UAAU,EAAEU,SAAS,EAAET,QAAQ,EAAEC,OAAO,EAAE;IAC1F,IAAI,CAACF,YAAY;QACb,qBAAO,KAACG;YAAI,GAAGD,OAAO;;IAC1B;IAEA,MAAMS,OAAO;QACT,MAAM,EAAEC,QAAQ,EAAE,GAAG,MAAMF,UAAUG,QAAQ;QAC7C,IAAID,UAAU;YACV;QACJ;QAEA,MAAMZ,WAAWc,QAAQ,CAACb;IAC9B;IAEA,MAAMc,SAAS,IAAMf,WAAWgB,UAAU,CAACf;IAE3C,qBACI,KAACE;QAAI,GAAGD,OAAO;kBACX,cAAA,MAACL;YAAMoB,gBAAe;;8BAClB,KAACtB;oBAAOU,IAAI;oBAACE,SAASQ;8BAClB,cAAA,KAACnB;wBAAKY,MAAK;;;8BAGf,KAACb;oBAAOU,IAAI;oBAACC,OAAO;oBAACC,SAASI;8BAC1B,cAAA,KAACf;wBAAKY,MAAK;;;;;;AAK/B;AAEA,OAAO,MAAMU,cAAcpB,cAAc;IACrCqB,MAAMpB;IACNK,MAAMK;AACV,GAAG"}
@@ -1,3 +1,3 @@
1
- import { Product } from './product';
1
+ import type { Product } from './product';
2
2
  export declare const products: Product[];
3
3
  //# sourceMappingURL=products.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../../src/demo/overview/products.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAsB,MAAM,WAAW,CAAC;AAExD,eAAO,MAAM,QAAQ,EAAE,OAAO,EAwI7B,CAAC"}
1
+ {"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../../src/demo/overview/products.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,eAAO,MAAM,QAAQ,EAAE,OAAO,EAwI7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/demo/overview/products.ts"],"sourcesContent":["import { Product, UserRole, Supplier } from './product';\n\nexport const products: Product[] = [\n {\n ProductID: 1,\n ProductName: 'Chai',\n Supplier: Supplier.Dan,\n CategoryID: 1,\n MadeIn: 'China',\n QuantityPerUnit: '10 boxes x 20 bags',\n UnitPrice: 18.0,\n UnitsInStock: 39,\n UnitsOnOrder: new Date('1/11/2023'),\n Discontinued: false,\n AvailableFor: UserRole.Admin,\n Package: {\n PackageId: 1,\n PackageName: 'Standard package',\n },\n },\n {\n ProductID: 2,\n ProductName: 'Chang',\n Supplier: Supplier.Dan,\n CategoryID: 1,\n MadeIn: 'Thailand',\n QuantityPerUnit: '24 - 12 oz bottles',\n UnitPrice: 19.0,\n UnitsInStock: 17,\n UnitsOnOrder: new Date('2/11/2023'),\n Discontinued: false,\n Package: {\n PackageId: 1,\n PackageName: 'Standard package',\n },\n },\n {\n ProductID: 3,\n ProductName: 'Aniseed Syrup',\n Supplier: Supplier.Dan,\n CategoryID: 2,\n MadeIn: 'France',\n QuantityPerUnit: '12 - 550 ml bottles',\n UnitPrice: 10.0,\n UnitsInStock: 13,\n UnitsOnOrder: new Date('3/11/2023'),\n Discontinued: false,\n AvailableFor: UserRole.Owner,\n },\n {\n ProductID: 4,\n ProductName: \"Chef Anton's Cajun Seasoning\",\n Supplier: Supplier.Adam,\n CategoryID: 2,\n MadeIn: 'USA',\n QuantityPerUnit: '48 - 6 oz jars',\n UnitPrice: 22.0,\n UnitsInStock: 53,\n UnitsOnOrder: new Date('4/11/2023'),\n Discontinued: false,\n },\n {\n ProductID: 5,\n ProductName: \"Chef Anton's Gumbo Mix\",\n Supplier: Supplier.Adam,\n CategoryID: 2,\n MadeIn: 'USA',\n QuantityPerUnit: '36 boxes',\n UnitPrice: 21.35,\n UnitsInStock: 0,\n UnitsOnOrder: new Date('5/11/2023'),\n Discontinued: true,\n AvailableFor: UserRole.GeneralOffice,\n Package: {\n PackageId: 2,\n PackageName: 'Extended package',\n },\n },\n {\n ProductID: 6,\n ProductName: \"Grandma's Boysenberry Spread\",\n Supplier: Supplier.Charlie,\n CategoryID: 2,\n MadeIn: 'Norway',\n QuantityPerUnit: '12 - 8 oz jars',\n UnitPrice: 25.0,\n UnitsInStock: 120,\n UnitsOnOrder: new Date('6/11/2023'),\n Discontinued: false,\n },\n {\n ProductID: 7,\n ProductName: \"Uncle Bob's Organic Dried Pears\",\n Supplier: Supplier.Charlie,\n CategoryID: 7,\n MadeIn: 'USA',\n QuantityPerUnit: '12 - 1 lb pkgs.',\n UnitPrice: 30.0,\n UnitsInStock: 15,\n UnitsOnOrder: new Date('7/11/2023'),\n Discontinued: false,\n },\n {\n ProductID: 8,\n ProductName: 'Northwoods Cranberry Sauce',\n Supplier: Supplier.Charlie,\n CategoryID: 2,\n MadeIn: 'Norway',\n QuantityPerUnit: '12 - 12 oz jars',\n UnitPrice: 40.0,\n UnitsInStock: 6,\n UnitsOnOrder: new Date('8/11/2023'),\n Discontinued: false,\n },\n {\n ProductID: 9,\n ProductName: 'Mishi Kobe Niku',\n Supplier: Supplier.Benjamin,\n CategoryID: 6,\n MadeIn: 'Japan',\n QuantityPerUnit: '18 - 500 g pkgs.',\n UnitPrice: 97.0,\n UnitsInStock: 29,\n UnitsOnOrder: new Date('9/11/2023'),\n Discontinued: true,\n },\n {\n ProductID: 10,\n ProductName: 'Ikura',\n Supplier: Supplier.Benjamin,\n CategoryID: 8,\n MadeIn: 'Japan',\n QuantityPerUnit: '12 - 200 ml jars',\n UnitPrice: 31.0,\n UnitsInStock: 31,\n UnitsOnOrder: new Date('10/11/2023'),\n Discontinued: false,\n },\n];\n"],"names":["UserRole","Supplier","products","ProductID","ProductName","Dan","CategoryID","MadeIn","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","Date","Discontinued","AvailableFor","Admin","Package","PackageId","PackageName","Owner","Adam","GeneralOffice","Charlie","Benjamin"],"mappings":"AAAA,SAAkBA,QAAQ,EAAEC,QAAQ,QAAQ,YAAY;AAExD,OAAO,MAAMC,WAAsB;IAC/B;QACIC,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASI,GAAG;QACtBC,YAAY;QACZC,QAAQ;QACRC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;QACdC,cAAcd,SAASe,KAAK;QAC5BC,SAAS;YACLC,WAAW;YACXC,aAAa;QACjB;IACJ;IACA;QACIf,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASI,GAAG;QACtBC,YAAY;QACZC,QAAQ;QACRC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;QACdG,SAAS;YACLC,WAAW;YACXC,aAAa;QACjB;IACJ;IACA;QACIf,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASI,GAAG;QACtBC,YAAY;QACZC,QAAQ;QACRC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;QACdC,cAAcd,SAASmB,KAAK;IAChC;IACA;QACIhB,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASmB,IAAI;QACvBd,YAAY;QACZC,QAAQ;QACRC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIV,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASmB,IAAI;QACvBd,YAAY;QACZC,QAAQ;QACRC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;QACdC,cAAcd,SAASqB,aAAa;QACpCL,SAAS;YACLC,WAAW;YACXC,aAAa;QACjB;IACJ;IACA;QACIf,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASqB,OAAO;QAC1BhB,YAAY;QACZC,QAAQ;QACRC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIV,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASqB,OAAO;QAC1BhB,YAAY;QACZC,QAAQ;QACRC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIV,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASqB,OAAO;QAC1BhB,YAAY;QACZC,QAAQ;QACRC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIV,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASsB,QAAQ;QAC3BjB,YAAY;QACZC,QAAQ;QACRC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIV,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASsB,QAAQ;QAC3BjB,YAAY;QACZC,QAAQ;QACRC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;CACH,CAAC"}
1
+ {"version":3,"sources":["../../../src/demo/overview/products.ts"],"sourcesContent":["import type { Product } from './product';\nimport { UserRole, Supplier } from './product';\n\nexport const products: Product[] = [\n {\n ProductID: 1,\n ProductName: 'Chai',\n Supplier: Supplier.Dan,\n CategoryID: 1,\n MadeIn: 'China',\n QuantityPerUnit: '10 boxes x 20 bags',\n UnitPrice: 18.0,\n UnitsInStock: 39,\n UnitsOnOrder: new Date('1/11/2023'),\n Discontinued: false,\n AvailableFor: UserRole.Admin,\n Package: {\n PackageId: 1,\n PackageName: 'Standard package',\n },\n },\n {\n ProductID: 2,\n ProductName: 'Chang',\n Supplier: Supplier.Dan,\n CategoryID: 1,\n MadeIn: 'Thailand',\n QuantityPerUnit: '24 - 12 oz bottles',\n UnitPrice: 19.0,\n UnitsInStock: 17,\n UnitsOnOrder: new Date('2/11/2023'),\n Discontinued: false,\n Package: {\n PackageId: 1,\n PackageName: 'Standard package',\n },\n },\n {\n ProductID: 3,\n ProductName: 'Aniseed Syrup',\n Supplier: Supplier.Dan,\n CategoryID: 2,\n MadeIn: 'France',\n QuantityPerUnit: '12 - 550 ml bottles',\n UnitPrice: 10.0,\n UnitsInStock: 13,\n UnitsOnOrder: new Date('3/11/2023'),\n Discontinued: false,\n AvailableFor: UserRole.Owner,\n },\n {\n ProductID: 4,\n ProductName: \"Chef Anton's Cajun Seasoning\",\n Supplier: Supplier.Adam,\n CategoryID: 2,\n MadeIn: 'USA',\n QuantityPerUnit: '48 - 6 oz jars',\n UnitPrice: 22.0,\n UnitsInStock: 53,\n UnitsOnOrder: new Date('4/11/2023'),\n Discontinued: false,\n },\n {\n ProductID: 5,\n ProductName: \"Chef Anton's Gumbo Mix\",\n Supplier: Supplier.Adam,\n CategoryID: 2,\n MadeIn: 'USA',\n QuantityPerUnit: '36 boxes',\n UnitPrice: 21.35,\n UnitsInStock: 0,\n UnitsOnOrder: new Date('5/11/2023'),\n Discontinued: true,\n AvailableFor: UserRole.GeneralOffice,\n Package: {\n PackageId: 2,\n PackageName: 'Extended package',\n },\n },\n {\n ProductID: 6,\n ProductName: \"Grandma's Boysenberry Spread\",\n Supplier: Supplier.Charlie,\n CategoryID: 2,\n MadeIn: 'Norway',\n QuantityPerUnit: '12 - 8 oz jars',\n UnitPrice: 25.0,\n UnitsInStock: 120,\n UnitsOnOrder: new Date('6/11/2023'),\n Discontinued: false,\n },\n {\n ProductID: 7,\n ProductName: \"Uncle Bob's Organic Dried Pears\",\n Supplier: Supplier.Charlie,\n CategoryID: 7,\n MadeIn: 'USA',\n QuantityPerUnit: '12 - 1 lb pkgs.',\n UnitPrice: 30.0,\n UnitsInStock: 15,\n UnitsOnOrder: new Date('7/11/2023'),\n Discontinued: false,\n },\n {\n ProductID: 8,\n ProductName: 'Northwoods Cranberry Sauce',\n Supplier: Supplier.Charlie,\n CategoryID: 2,\n MadeIn: 'Norway',\n QuantityPerUnit: '12 - 12 oz jars',\n UnitPrice: 40.0,\n UnitsInStock: 6,\n UnitsOnOrder: new Date('8/11/2023'),\n Discontinued: false,\n },\n {\n ProductID: 9,\n ProductName: 'Mishi Kobe Niku',\n Supplier: Supplier.Benjamin,\n CategoryID: 6,\n MadeIn: 'Japan',\n QuantityPerUnit: '18 - 500 g pkgs.',\n UnitPrice: 97.0,\n UnitsInStock: 29,\n UnitsOnOrder: new Date('9/11/2023'),\n Discontinued: true,\n },\n {\n ProductID: 10,\n ProductName: 'Ikura',\n Supplier: Supplier.Benjamin,\n CategoryID: 8,\n MadeIn: 'Japan',\n QuantityPerUnit: '12 - 200 ml jars',\n UnitPrice: 31.0,\n UnitsInStock: 31,\n UnitsOnOrder: new Date('10/11/2023'),\n Discontinued: false,\n },\n];\n"],"names":["UserRole","Supplier","products","ProductID","ProductName","Dan","CategoryID","MadeIn","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","Date","Discontinued","AvailableFor","Admin","Package","PackageId","PackageName","Owner","Adam","GeneralOffice","Charlie","Benjamin"],"mappings":"AACA,SAASA,QAAQ,EAAEC,QAAQ,QAAQ,YAAY;AAE/C,OAAO,MAAMC,WAAsB;IAC/B;QACIC,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASI,GAAG;QACtBC,YAAY;QACZC,QAAQ;QACRC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;QACdC,cAAcd,SAASe,KAAK;QAC5BC,SAAS;YACLC,WAAW;YACXC,aAAa;QACjB;IACJ;IACA;QACIf,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASI,GAAG;QACtBC,YAAY;QACZC,QAAQ;QACRC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;QACdG,SAAS;YACLC,WAAW;YACXC,aAAa;QACjB;IACJ;IACA;QACIf,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASI,GAAG;QACtBC,YAAY;QACZC,QAAQ;QACRC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;QACdC,cAAcd,SAASmB,KAAK;IAChC;IACA;QACIhB,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASmB,IAAI;QACvBd,YAAY;QACZC,QAAQ;QACRC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIV,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASmB,IAAI;QACvBd,YAAY;QACZC,QAAQ;QACRC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;QACdC,cAAcd,SAASqB,aAAa;QACpCL,SAAS;YACLC,WAAW;YACXC,aAAa;QACjB;IACJ;IACA;QACIf,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASqB,OAAO;QAC1BhB,YAAY;QACZC,QAAQ;QACRC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIV,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASqB,OAAO;QAC1BhB,YAAY;QACZC,QAAQ;QACRC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIV,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASqB,OAAO;QAC1BhB,YAAY;QACZC,QAAQ;QACRC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIV,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASsB,QAAQ;QAC3BjB,YAAY;QACZC,QAAQ;QACRC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;IACA;QACIV,WAAW;QACXC,aAAa;QACbH,UAAUA,SAASsB,QAAQ;QAC3BjB,YAAY;QACZC,QAAQ;QACRC,iBAAiB;QACjBC,WAAW;QACXC,cAAc;QACdC,cAAc,IAAIC,KAAK;QACvBC,cAAc;IAClB;CACH,CAAC"}
@@ -1,5 +1,5 @@
1
- import { FC } from 'react';
2
- import { TableCellProps } from '../..';
1
+ import type { FC } from 'react';
2
+ import type { TableCellProps } from '../..';
3
3
  export declare const DateEditableCell: (props: TableCellProps<any>) => import("react/jsx-runtime").JSX.Element;
4
4
  export declare const TableExample: FC;
5
5
  //# sourceMappingURL=table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/demo/overview/table.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmC,EAAE,EAAgB,MAAM,OAAO,CAAC;AAQ1E,OAAO,EAIH,cAAc,EAWjB,MAAM,OAAO,CAAC;AA6Cf,eAAO,MAAM,gBAAgB,yEAE3B,CAAC;AA0BH,eAAO,MAAM,YAAY,EAAE,EA4H1B,CAAC"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/demo/overview/table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAgB,MAAM,OAAO,CAAC;AAS9C,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,OAAO,CAAC;AA4DzD,eAAO,MAAM,gBAAgB,yEAE3B,CAAC;AA0BH,eAAO,MAAM,YAAY,EAAE,EA4H1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/demo/overview/table.tsx"],"sourcesContent":["import { useMemo, cloneElement, Fragment, FC, ReactElement } from 'react';\n\nimport { provide, useDependencies } from '@servicetitan/react-ioc';\n\nimport { observer } from 'mobx-react';\n\nimport { Stack, ButtonGroup, Button, Tag, DatePicker } from '@servicetitan/design-system';\n\nimport {\n Table,\n TableColumn,\n TableCell,\n TableCellProps,\n TextEditableCell,\n BooleanEditableCell,\n getSelectEditableCell,\n DateRangeColumnMenuFilter,\n StandardColumnMenuFilter,\n standardFilterWithMultiselect,\n multiSelectColumnMenuFilter,\n CurrencyRangeColumnMenuFilter,\n getEditableCell,\n EditorProps,\n} from '../..';\nimport { Export } from '../../export';\n\nimport { TableStore } from './table.store';\n\nimport { ActionsCell } from './actions-cell';\n\nimport { NumberInput, enumToOptions, getEnumKeys } from '@servicetitan/form';\nimport { Product, UserRole, Supplier } from './product';\n\nconst UserRoleColumnMenuFilter = multiSelectColumnMenuFilter(getEnumKeys(UserRole), userRole => (\n <Tag compact color={UserRole[userRole] === UserRole.Owner ? 'success' : 'default'}>\n {userRole}\n </Tag>\n));\n\nconst AvailableForEditableCell = getSelectEditableCell({\n options: enumToOptions(UserRole),\n viewer: ({ dataItem, field, tdProps }) => {\n const value = dataItem[field!];\n\n return <td {...tdProps}>{value && UserRole[value]}</td>;\n },\n});\n\nconst SupplierCell: FC<TableCellProps> = props => {\n const { field, dataItem, rowType, tdProps } = props;\n\n if (rowType !== 'data') {\n return <TableCell {...props} />;\n }\n\n return <td {...tdProps}>{Supplier[dataItem[field!]]}</td>;\n};\n\n// Implementation of a date editable cell utilizing getEditableCell\nconst DateEditor = observer<FC<EditorProps<Date | string | undefined>>>(\n ({ fieldState: { value, onChange, hasError }, className, tdProps }) => {\n return (\n <td className={className} {...tdProps}>\n <DatePicker value={value} onChange={onChange} error={hasError} />\n </td>\n );\n }\n);\nexport const DateEditableCell = getEditableCell({\n editor: DateEditor,\n});\n\n// Implementation of a numeric editable cell utilizing getEditableCell\nconst NumberCellEditor: FC<EditorProps<number>> = observer(\n ({ fieldState: { value, hasError, onChange }, tdProps }) => (\n <td {...tdProps}>\n <NumberInput\n onChange={onChange}\n type=\"number\"\n error={hasError}\n value={value}\n emptyValue={0}\n min={0}\n max={1000}\n useEmptyThousandsSeparator\n fluid\n decimalPlaces={2}\n useKeyboardNavigation\n />\n </td>\n )\n);\nconst NumericEditableCell = getEditableCell({\n editor: getEditableCell({ editor: NumberCellEditor }),\n});\n\nexport const TableExample: FC = provide({\n singletons: [TableStore],\n})(\n observer(() => {\n const [{ tableState, inEdit, editAll, cancelAll, saveAll }] = useDependencies(TableStore);\n\n const madeInColumnMenu = useMemo(\n () => standardFilterWithMultiselect({ tableState }),\n [tableState]\n );\n\n const cellRender = (td: ReactElement | null, { dataItem, field }: TableCellProps) => {\n if (!td) {\n return null;\n }\n\n return cloneElement(td, {\n onClick: () => {\n tableState.edit(dataItem, field as keyof Product);\n },\n });\n };\n\n return (\n <Fragment>\n <Stack justifyContent=\"space-between\" alignContent=\"center\" className=\"m-b-2\">\n <Export\n totalCount={tableState.totalCount}\n exportPdf={tableState.exportPdf}\n exportExcel={tableState.exportExcel}\n />\n {inEdit ? (\n <ButtonGroup>\n <Button small onClick={cancelAll} className=\"m-r-2\">\n Cancel All\n </Button>\n\n <Button small primary onClick={saveAll}>\n Save All\n </Button>\n </ButtonGroup>\n ) : (\n <Button small primary onClick={editAll}>\n Edit All\n </Button>\n )}\n </Stack>\n\n <Table\n tableState={tableState}\n striped={false}\n selectable\n groupable\n sortable\n exportable\n exportFileName=\"Table.Export.Test...File.Name.01.01.2020..~!@#$%^(*_+';\"\n cellRender={cellRender}\n navigatable\n >\n <TableColumn field=\"ProductID\" title=\"ID\" editable={false} width=\"100px\" />\n\n <TableColumn\n field=\"ProductName\"\n title=\"Product Name\"\n cell={TextEditableCell}\n columnMenu={StandardColumnMenuFilter}\n width=\"240px\"\n />\n\n <TableColumn\n field=\"Supplier\"\n title=\"Supplier\"\n cell={SupplierCell}\n columnMenu={StandardColumnMenuFilter}\n width=\"150px\"\n />\n\n <TableColumn\n field=\"MadeIn\"\n title=\"Made In\"\n cell={TextEditableCell}\n columnMenu={madeInColumnMenu}\n width=\"175px\"\n />\n\n <TableColumn\n field=\"UnitsOnOrder\"\n title=\"First Ordered On\"\n cell={DateEditableCell}\n columnMenu={DateRangeColumnMenuFilter}\n format=\"{0:MM/dd/yyyy}\"\n width=\"240px\"\n />\n\n <TableColumn\n field=\"UnitPrice\"\n title=\"Unit Price\"\n cell={NumericEditableCell}\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 cell={AvailableForEditableCell}\n columnMenu={UserRoleColumnMenuFilter}\n width=\"240px\"\n />\n\n <TableColumn cell={ActionsCell} sortable={false} width=\"125px\" />\n </Table>\n </Fragment>\n );\n })\n);\n"],"names":["useMemo","cloneElement","Fragment","provide","useDependencies","observer","Stack","ButtonGroup","Button","Tag","DatePicker","Table","TableColumn","TableCell","TextEditableCell","BooleanEditableCell","getSelectEditableCell","DateRangeColumnMenuFilter","StandardColumnMenuFilter","standardFilterWithMultiselect","multiSelectColumnMenuFilter","CurrencyRangeColumnMenuFilter","getEditableCell","Export","TableStore","ActionsCell","NumberInput","enumToOptions","getEnumKeys","UserRole","Supplier","UserRoleColumnMenuFilter","userRole","compact","color","Owner","AvailableForEditableCell","options","viewer","dataItem","field","tdProps","value","td","SupplierCell","props","rowType","DateEditor","fieldState","onChange","hasError","className","error","DateEditableCell","editor","NumberCellEditor","type","emptyValue","min","max","useEmptyThousandsSeparator","fluid","decimalPlaces","useKeyboardNavigation","NumericEditableCell","TableExample","singletons","tableState","inEdit","editAll","cancelAll","saveAll","madeInColumnMenu","cellRender","onClick","edit","justifyContent","alignContent","totalCount","exportPdf","exportExcel","small","primary","striped","selectable","groupable","sortable","exportable","exportFileName","navigatable","title","editable","width","cell","columnMenu","format"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/demo/overview/table.tsx"],"sourcesContent":["import type { FC, ReactElement } from 'react';\nimport { useMemo, cloneElement, Fragment } from 'react';\n\nimport { provide, useDependencies } from '@servicetitan/react-ioc';\n\nimport { observer } from 'mobx-react';\n\nimport { Stack, ButtonGroup, Button, Tag, DatePicker } from '@servicetitan/design-system';\n\nimport type { TableCellProps, EditorProps } from '../..';\nimport {\n Table,\n TableColumn,\n TableCell,\n TextEditableCell,\n BooleanEditableCell,\n getSelectEditableCell,\n DateRangeColumnMenuFilter,\n StandardColumnMenuFilter,\n standardFilterWithMultiselect,\n multiSelectColumnMenuFilter,\n CurrencyRangeColumnMenuFilter,\n getEditableCell,\n} from '../..';\nimport { Export } from '../../export';\n\nimport { TableStore } from './table.store';\n\nimport { ActionsCell } from './actions-cell';\n\nimport { NumberInput, enumToOptions, getEnumKeys } from '@servicetitan/form';\nimport type { Product } from './product';\nimport { UserRole, Supplier } from './product';\n\nconst UserRoleColumnMenuFilter = multiSelectColumnMenuFilter(getEnumKeys(UserRole), userRole => (\n <Tag compact color={UserRole[userRole] === UserRole.Owner ? 'success' : 'default'}>\n {userRole}\n </Tag>\n));\n\nconst AvailableForEditableCell = getSelectEditableCell({\n options: enumToOptions(UserRole),\n viewer: ({ dataItem, field, tdProps }) => {\n const value = dataItem[field!];\n\n return <td {...tdProps}>{value && UserRole[value]}</td>;\n },\n});\n\nconst SupplierCell: FC<TableCellProps> = props => {\n const { field, dataItem, rowType, tdProps } = props;\n\n if (rowType !== 'data') {\n return <TableCell {...props} />;\n }\n\n return <td {...tdProps}>{Supplier[dataItem[field!]]}</td>;\n};\n\n// Implementation of a date editable cell utilizing getEditableCell\nconst DateEditor = observer<FC<EditorProps<Date | string | undefined>>>(\n ({ fieldState: { value, onChange, hasError }, className, tdProps }) => {\n return (\n <td className={className} {...tdProps}>\n <DatePicker value={value} onChange={onChange} error={hasError} />\n </td>\n );\n }\n);\nexport const DateEditableCell = getEditableCell({\n editor: DateEditor,\n});\n\n// Implementation of a numeric editable cell utilizing getEditableCell\nconst NumberCellEditor: FC<EditorProps<number>> = observer(\n ({ fieldState: { value, hasError, onChange }, tdProps }) => (\n <td {...tdProps}>\n <NumberInput\n onChange={onChange}\n type=\"number\"\n error={hasError}\n value={value}\n emptyValue={0}\n min={0}\n max={1000}\n useEmptyThousandsSeparator\n fluid\n decimalPlaces={2}\n useKeyboardNavigation\n />\n </td>\n )\n);\nconst NumericEditableCell = getEditableCell({\n editor: getEditableCell({ editor: NumberCellEditor }),\n});\n\nexport const TableExample: FC = provide({\n singletons: [TableStore],\n})(\n observer(() => {\n const [{ tableState, inEdit, editAll, cancelAll, saveAll }] = useDependencies(TableStore);\n\n const madeInColumnMenu = useMemo(\n () => standardFilterWithMultiselect({ tableState }),\n [tableState]\n );\n\n const cellRender = (td: ReactElement | null, { dataItem, field }: TableCellProps) => {\n if (!td) {\n return null;\n }\n\n return cloneElement(td, {\n onClick: () => {\n tableState.edit(dataItem, field as keyof Product);\n },\n });\n };\n\n return (\n <Fragment>\n <Stack justifyContent=\"space-between\" alignContent=\"center\" className=\"m-b-2\">\n <Export\n totalCount={tableState.totalCount}\n exportPdf={tableState.exportPdf}\n exportExcel={tableState.exportExcel}\n />\n {inEdit ? (\n <ButtonGroup>\n <Button small onClick={cancelAll} className=\"m-r-2\">\n Cancel All\n </Button>\n\n <Button small primary onClick={saveAll}>\n Save All\n </Button>\n </ButtonGroup>\n ) : (\n <Button small primary onClick={editAll}>\n Edit All\n </Button>\n )}\n </Stack>\n\n <Table\n tableState={tableState}\n striped={false}\n selectable\n groupable\n sortable\n exportable\n exportFileName=\"Table.Export.Test...File.Name.01.01.2020..~!@#$%^(*_+';\"\n cellRender={cellRender}\n navigatable\n >\n <TableColumn field=\"ProductID\" title=\"ID\" editable={false} width=\"100px\" />\n\n <TableColumn\n field=\"ProductName\"\n title=\"Product Name\"\n cell={TextEditableCell}\n columnMenu={StandardColumnMenuFilter}\n width=\"240px\"\n />\n\n <TableColumn\n field=\"Supplier\"\n title=\"Supplier\"\n cell={SupplierCell}\n columnMenu={StandardColumnMenuFilter}\n width=\"150px\"\n />\n\n <TableColumn\n field=\"MadeIn\"\n title=\"Made In\"\n cell={TextEditableCell}\n columnMenu={madeInColumnMenu}\n width=\"175px\"\n />\n\n <TableColumn\n field=\"UnitsOnOrder\"\n title=\"First Ordered On\"\n cell={DateEditableCell}\n columnMenu={DateRangeColumnMenuFilter}\n format=\"{0:MM/dd/yyyy}\"\n width=\"240px\"\n />\n\n <TableColumn\n field=\"UnitPrice\"\n title=\"Unit Price\"\n cell={NumericEditableCell}\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 cell={AvailableForEditableCell}\n columnMenu={UserRoleColumnMenuFilter}\n width=\"240px\"\n />\n\n <TableColumn cell={ActionsCell} sortable={false} width=\"125px\" />\n </Table>\n </Fragment>\n );\n })\n);\n"],"names":["useMemo","cloneElement","Fragment","provide","useDependencies","observer","Stack","ButtonGroup","Button","Tag","DatePicker","Table","TableColumn","TableCell","TextEditableCell","BooleanEditableCell","getSelectEditableCell","DateRangeColumnMenuFilter","StandardColumnMenuFilter","standardFilterWithMultiselect","multiSelectColumnMenuFilter","CurrencyRangeColumnMenuFilter","getEditableCell","Export","TableStore","ActionsCell","NumberInput","enumToOptions","getEnumKeys","UserRole","Supplier","UserRoleColumnMenuFilter","userRole","compact","color","Owner","AvailableForEditableCell","options","viewer","dataItem","field","tdProps","value","td","SupplierCell","props","rowType","DateEditor","fieldState","onChange","hasError","className","error","DateEditableCell","editor","NumberCellEditor","type","emptyValue","min","max","useEmptyThousandsSeparator","fluid","decimalPlaces","useKeyboardNavigation","NumericEditableCell","TableExample","singletons","tableState","inEdit","editAll","cancelAll","saveAll","madeInColumnMenu","cellRender","onClick","edit","justifyContent","alignContent","totalCount","exportPdf","exportExcel","small","primary","striped","selectable","groupable","sortable","exportable","exportFileName","navigatable","title","editable","width","cell","columnMenu","format"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { TableState } from '../..';
2
- import { Product } from './product';
2
+ import type { Product } from './product';
3
3
  export declare class TableStore {
4
4
  tableState: TableState<Product, number, never, never>;
5
5
  constructor();
@@ -1 +1 @@
1
- {"version":3,"file":"table.store.d.ts","sourceRoot":"","sources":["../../../src/demo/overview/table.store.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,UAAU,EAAE,MAAM,OAAO,CAAC;AAKvD,OAAO,EAAE,OAAO,EAAsB,MAAM,WAAW,CAAC;AAGxD,qBACa,UAAU;IACnB,UAAU,4CAMP;;IAMH,IAAc,MAAM,YAEnB;IAED,OAAO,sBAAmC;IAC1C,OAAO,sBAAuC;IAC9C,SAAS,aAAyC;IAElD,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,YAAY;CAuBvB"}
1
+ {"version":3,"file":"table.store.d.ts","sourceRoot":"","sources":["../../../src/demo/overview/table.store.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,UAAU,EAAE,MAAM,OAAO,CAAC;AAKvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,qBACa,UAAU;IACnB,UAAU,4CAMP;;IAMH,IAAc,MAAM,YAEnB;IAED,OAAO,sBAAmC;IAC1C,OAAO,sBAAuC;IAC9C,SAAS,aAAyC;IAElD,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,YAAY;CAuBvB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/demo/overview/table.store.ts"],"sourcesContent":["import { injectable } from '@servicetitan/react-ioc';\n\nimport { computed, makeObservable } from 'mobx';\n\nimport { InMemoryDataSource, TableState } from '../..';\n\nimport { setFormStateValues, FormValidators } from '@servicetitan/form';\nimport { FormState, FieldState } from 'formstate';\n\nimport { Product, UserRole, Supplier } from './product';\nimport { products } from './products';\n\n@injectable()\nexport class TableStore {\n tableState = new TableState({\n dataSource: this.getDataSource(),\n isRowUnselectable: this.isRowUnselectable,\n selectionLimit: 3,\n getFormState: this.getFormState,\n pageSize: 5,\n });\n\n constructor() {\n makeObservable(this);\n }\n\n @computed get inEdit() {\n return this.tableState.inEdit.size > 0;\n }\n\n editAll = () => this.tableState.editAll();\n saveAll = () => this.tableState.saveEditAll();\n cancelAll = () => this.tableState.cancelEditAll();\n\n private getDataSource() {\n return new InMemoryDataSource(products, this.idSelector, {\n Supplier: (value: Supplier) => Supplier[value],\n AvailableFor: (value: UserRole | undefined) => value && UserRole[value],\n });\n }\n\n private idSelector(row: Product) {\n return row.ProductID;\n }\n\n private isRowUnselectable(row: Product) {\n return row.Discontinued;\n }\n\n private getFormState(row: Product) {\n return setFormStateValues(\n new FormState({\n ProductID: new FieldState(0),\n ProductName: new FieldState('').validators(FormValidators.required),\n Supplier: new FieldState<Supplier>(Supplier.Adam),\n CategoryID: new FieldState(0),\n MadeIn: new FieldState(''),\n QuantityPerUnit: new FieldState(''),\n UnitPrice: new FieldState(0).validators(\n value => value <= 0 && 'Price must be positive'\n ),\n UnitsInStock: new FieldState(0),\n UnitsOnOrder: new FieldState(new Date()).validators(\n value => value > new Date() && 'Invalid date'\n ),\n Discontinued: new FieldState(false),\n AvailableFor: new FieldState<UserRole | undefined>(undefined),\n Package: new FieldState<Product['Package'] | undefined>(undefined),\n }),\n row\n );\n }\n}\n"],"names":["injectable","computed","makeObservable","InMemoryDataSource","TableState","setFormStateValues","FormValidators","FormState","FieldState","UserRole","Supplier","products","TableStore","inEdit","tableState","size","getDataSource","idSelector","value","AvailableFor","row","ProductID","isRowUnselectable","Discontinued","getFormState","ProductName","validators","required","Adam","CategoryID","MadeIn","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","Date","undefined","Package","dataSource","selectionLimit","pageSize","editAll","saveAll","saveEditAll","cancelAll","cancelEditAll"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,UAAU,QAAQ,0BAA0B;AAErD,SAASC,QAAQ,EAAEC,cAAc,QAAQ,OAAO;AAEhD,SAASC,kBAAkB,EAAEC,UAAU,QAAQ,QAAQ;AAEvD,SAASC,kBAAkB,EAAEC,cAAc,QAAQ,qBAAqB;AACxE,SAASC,SAAS,EAAEC,UAAU,QAAQ,YAAY;AAElD,SAAkBC,QAAQ,EAAEC,QAAQ,QAAQ,YAAY;AACxD,SAASC,QAAQ,QAAQ,aAAa;AAGtC,OAAO,MAAMC;IAaT,IAAcC,SAAS;QACnB,OAAO,IAAI,CAACC,UAAU,CAACD,MAAM,CAACE,IAAI,GAAG;IACzC;IAMQC,gBAAgB;QACpB,OAAO,IAAIb,mBAAmBQ,UAAU,IAAI,CAACM,UAAU,EAAE;YACrDP,UAAU,CAACQ,QAAoBR,QAAQ,CAACQ,MAAM;YAC9CC,cAAc,CAACD,QAAgCA,SAAST,QAAQ,CAACS,MAAM;QAC3E;IACJ;IAEQD,WAAWG,GAAY,EAAE;QAC7B,OAAOA,IAAIC,SAAS;IACxB;IAEQC,kBAAkBF,GAAY,EAAE;QACpC,OAAOA,IAAIG,YAAY;IAC3B;IAEQC,aAAaJ,GAAY,EAAE;QAC/B,OAAOf,mBACH,IAAIE,UAAU;YACVc,WAAW,IAAIb,WAAW;YAC1BiB,aAAa,IAAIjB,WAAW,IAAIkB,UAAU,CAACpB,eAAeqB,QAAQ;YAClEjB,UAAU,IAAIF,WAAqBE,SAASkB,IAAI;YAChDC,YAAY,IAAIrB,WAAW;YAC3BsB,QAAQ,IAAItB,WAAW;YACvBuB,iBAAiB,IAAIvB,WAAW;YAChCwB,WAAW,IAAIxB,WAAW,GAAGkB,UAAU,CACnCR,CAAAA,QAASA,SAAS,KAAK;YAE3Be,cAAc,IAAIzB,WAAW;YAC7B0B,cAAc,IAAI1B,WAAW,IAAI2B,QAAQT,UAAU,CAC/CR,CAAAA,QAASA,QAAQ,IAAIiB,UAAU;YAEnCZ,cAAc,IAAIf,WAAW;YAC7BW,cAAc,IAAIX,WAAiC4B;YACnDC,SAAS,IAAI7B,WAA2C4B;QAC5D,IACAhB;IAER;IAjDA,aAAc;QARdN,uBAAAA,cAAa,IAAIV,WAAW;YACxBkC,YAAY,IAAI,CAACtB,aAAa;YAC9BM,mBAAmB,IAAI,CAACA,iBAAiB;YACzCiB,gBAAgB;YAChBf,cAAc,IAAI,CAACA,YAAY;YAC/BgB,UAAU;QACd;QAUAC,uBAAAA,WAAU,IAAM,IAAI,CAAC3B,UAAU,CAAC2B,OAAO;QACvCC,uBAAAA,WAAU,IAAM,IAAI,CAAC5B,UAAU,CAAC6B,WAAW;QAC3CC,uBAAAA,aAAY,IAAM,IAAI,CAAC9B,UAAU,CAAC+B,aAAa;QAT3C3C,eAAe,IAAI;IACvB;AAgDJ"}
1
+ {"version":3,"sources":["../../../src/demo/overview/table.store.ts"],"sourcesContent":["import { injectable } from '@servicetitan/react-ioc';\n\nimport { computed, makeObservable } from 'mobx';\n\nimport { InMemoryDataSource, TableState } from '../..';\n\nimport { setFormStateValues, FormValidators } from '@servicetitan/form';\nimport { FormState, FieldState } from 'formstate';\n\nimport type { Product } from './product';\nimport { UserRole, Supplier } from './product';\nimport { products } from './products';\n\n@injectable()\nexport class TableStore {\n tableState = new TableState({\n dataSource: this.getDataSource(),\n isRowUnselectable: this.isRowUnselectable,\n selectionLimit: 3,\n getFormState: this.getFormState,\n pageSize: 5,\n });\n\n constructor() {\n makeObservable(this);\n }\n\n @computed get inEdit() {\n return this.tableState.inEdit.size > 0;\n }\n\n editAll = () => this.tableState.editAll();\n saveAll = () => this.tableState.saveEditAll();\n cancelAll = () => this.tableState.cancelEditAll();\n\n private getDataSource() {\n return new InMemoryDataSource(products, this.idSelector, {\n Supplier: (value: Supplier) => Supplier[value],\n AvailableFor: (value: UserRole | undefined) => value && UserRole[value],\n });\n }\n\n private idSelector(row: Product) {\n return row.ProductID;\n }\n\n private isRowUnselectable(row: Product) {\n return row.Discontinued;\n }\n\n private getFormState(row: Product) {\n return setFormStateValues(\n new FormState({\n ProductID: new FieldState(0),\n ProductName: new FieldState('').validators(FormValidators.required),\n Supplier: new FieldState<Supplier>(Supplier.Adam),\n CategoryID: new FieldState(0),\n MadeIn: new FieldState(''),\n QuantityPerUnit: new FieldState(''),\n UnitPrice: new FieldState(0).validators(\n value => value <= 0 && 'Price must be positive'\n ),\n UnitsInStock: new FieldState(0),\n UnitsOnOrder: new FieldState(new Date()).validators(\n value => value > new Date() && 'Invalid date'\n ),\n Discontinued: new FieldState(false),\n AvailableFor: new FieldState<UserRole | undefined>(undefined),\n Package: new FieldState<Product['Package'] | undefined>(undefined),\n }),\n row\n );\n }\n}\n"],"names":["injectable","computed","makeObservable","InMemoryDataSource","TableState","setFormStateValues","FormValidators","FormState","FieldState","UserRole","Supplier","products","TableStore","inEdit","tableState","size","getDataSource","idSelector","value","AvailableFor","row","ProductID","isRowUnselectable","Discontinued","getFormState","ProductName","validators","required","Adam","CategoryID","MadeIn","QuantityPerUnit","UnitPrice","UnitsInStock","UnitsOnOrder","Date","undefined","Package","dataSource","selectionLimit","pageSize","editAll","saveAll","saveEditAll","cancelAll","cancelEditAll"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,UAAU,QAAQ,0BAA0B;AAErD,SAASC,QAAQ,EAAEC,cAAc,QAAQ,OAAO;AAEhD,SAASC,kBAAkB,EAAEC,UAAU,QAAQ,QAAQ;AAEvD,SAASC,kBAAkB,EAAEC,cAAc,QAAQ,qBAAqB;AACxE,SAASC,SAAS,EAAEC,UAAU,QAAQ,YAAY;AAGlD,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,YAAY;AAC/C,SAASC,QAAQ,QAAQ,aAAa;AAGtC,OAAO,MAAMC;IAaT,IAAcC,SAAS;QACnB,OAAO,IAAI,CAACC,UAAU,CAACD,MAAM,CAACE,IAAI,GAAG;IACzC;IAMQC,gBAAgB;QACpB,OAAO,IAAIb,mBAAmBQ,UAAU,IAAI,CAACM,UAAU,EAAE;YACrDP,UAAU,CAACQ,QAAoBR,QAAQ,CAACQ,MAAM;YAC9CC,cAAc,CAACD,QAAgCA,SAAST,QAAQ,CAACS,MAAM;QAC3E;IACJ;IAEQD,WAAWG,GAAY,EAAE;QAC7B,OAAOA,IAAIC,SAAS;IACxB;IAEQC,kBAAkBF,GAAY,EAAE;QACpC,OAAOA,IAAIG,YAAY;IAC3B;IAEQC,aAAaJ,GAAY,EAAE;QAC/B,OAAOf,mBACH,IAAIE,UAAU;YACVc,WAAW,IAAIb,WAAW;YAC1BiB,aAAa,IAAIjB,WAAW,IAAIkB,UAAU,CAACpB,eAAeqB,QAAQ;YAClEjB,UAAU,IAAIF,WAAqBE,SAASkB,IAAI;YAChDC,YAAY,IAAIrB,WAAW;YAC3BsB,QAAQ,IAAItB,WAAW;YACvBuB,iBAAiB,IAAIvB,WAAW;YAChCwB,WAAW,IAAIxB,WAAW,GAAGkB,UAAU,CACnCR,CAAAA,QAASA,SAAS,KAAK;YAE3Be,cAAc,IAAIzB,WAAW;YAC7B0B,cAAc,IAAI1B,WAAW,IAAI2B,QAAQT,UAAU,CAC/CR,CAAAA,QAASA,QAAQ,IAAIiB,UAAU;YAEnCZ,cAAc,IAAIf,WAAW;YAC7BW,cAAc,IAAIX,WAAiC4B;YACnDC,SAAS,IAAI7B,WAA2C4B;QAC5D,IACAhB;IAER;IAjDA,aAAc;QARdN,uBAAAA,cAAa,IAAIV,WAAW;YACxBkC,YAAY,IAAI,CAACtB,aAAa;YAC9BM,mBAAmB,IAAI,CAACA,iBAAiB;YACzCiB,gBAAgB;YAChBf,cAAc,IAAI,CAACA,YAAY;YAC/BgB,UAAU;QACd;QAUAC,uBAAAA,WAAU,IAAM,IAAI,CAAC3B,UAAU,CAAC2B,OAAO;QACvCC,uBAAAA,WAAU,IAAM,IAAI,CAAC5B,UAAU,CAAC6B,WAAW;QAC3CC,uBAAAA,aAAY,IAAM,IAAI,CAAC9B,UAAU,CAAC+B,aAAa;QAT3C3C,eAAe,IAAI;IACvB;AAgDJ"}
@@ -1,3 +1,3 @@
1
- import { FC } from 'react';
1
+ import type { FC } from 'react';
2
2
  export declare const TableDetailedRowExample: FC;
3
3
  //# sourceMappingURL=row-details-table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"row-details-table.d.ts","sourceRoot":"","sources":["../../../src/demo/row-details/row-details-table.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAoB3B,eAAO,MAAM,uBAAuB,EAAE,EAoBrC,CAAC"}
1
+ {"version":3,"file":"row-details-table.d.ts","sourceRoot":"","sources":["../../../src/demo/row-details/row-details-table.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAqBhC,eAAO,MAAM,uBAAuB,EAAE,EAoBrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/demo/row-details/row-details-table.tsx"],"sourcesContent":["import { Stack } from '@servicetitan/design-system';\nimport { provide, useDependencies } from '@servicetitan/react-ioc';\nimport { observer } from 'mobx-react';\nimport { FC } from 'react';\n\nimport { Table, TableColumn, TableDetailRowProps, useRowExpandColumn } from '../..';\n\nimport { Product } from '../overview/product';\nimport { RowDetailsTableStore } from './row-details-table.store';\n\nconst DetailsRow: FC<TableDetailRowProps> = ({ dataItem }) => {\n const product = dataItem as Product;\n\n return (\n <Stack>\n <div style={{ width: '38px' }} />\n <Stack.Item className=\"m-l-1\" fill>\n details for product {product.ProductName}\n </Stack.Item>\n </Stack>\n );\n};\n\nexport const TableDetailedRowExample: FC = provide({\n singletons: [RowDetailsTableStore],\n})(\n observer(() => {\n const [{ tableState }] = useDependencies(RowDetailsTableStore);\n const expandColumn = useRowExpandColumn();\n\n return (\n <Table tableState={tableState} striped={false} sortable={false} detail={DetailsRow}>\n {expandColumn}\n <TableColumn field=\"ProductID\" title=\"ID\" width=\"50px\" />\n\n <TableColumn field=\"ProductName\" title=\"Product Name\" />\n\n <TableColumn field=\"MadeIn\" title=\"Made In\" width=\"175px\" />\n\n <TableColumn field=\"UnitPrice\" title=\"Unit Price\" format=\"{0:c}\" width=\"125px\" />\n </Table>\n );\n })\n);\n"],"names":["Stack","provide","useDependencies","observer","Table","TableColumn","useRowExpandColumn","RowDetailsTableStore","DetailsRow","dataItem","product","div","style","width","Item","className","fill","ProductName","TableDetailedRowExample","singletons","tableState","expandColumn","striped","sortable","detail","field","title","format"],"mappings":";AAAA,SAASA,KAAK,QAAQ,8BAA8B;AACpD,SAASC,OAAO,EAAEC,eAAe,QAAQ,0BAA0B;AACnE,SAASC,QAAQ,QAAQ,aAAa;AAGtC,SAASC,KAAK,EAAEC,WAAW,EAAuBC,kBAAkB,QAAQ,QAAQ;AAGpF,SAASC,oBAAoB,QAAQ,4BAA4B;AAEjE,MAAMC,aAAsC,CAAC,EAAEC,QAAQ,EAAE;IACrD,MAAMC,UAAUD;IAEhB,qBACI,MAACT;;0BACG,KAACW;gBAAIC,OAAO;oBAAEC,OAAO;gBAAO;;0BAC5B,MAACb,MAAMc,IAAI;gBAACC,WAAU;gBAAQC,IAAI;;oBAAC;oBACVN,QAAQO,WAAW;;;;;AAIxD;AAEA,OAAO,MAAMC,0BAA8BjB,QAAQ;IAC/CkB,YAAY;QAACZ;KAAqB;AACtC,GACIJ,SAAS;IACL,MAAM,CAAC,EAAEiB,UAAU,EAAE,CAAC,GAAGlB,gBAAgBK;IACzC,MAAMc,eAAef;IAErB,qBACI,MAACF;QAAMgB,YAAYA;QAAYE,SAAS;QAAOC,UAAU;QAAOC,QAAQhB;;YACnEa;0BACD,KAAChB;gBAAYoB,OAAM;gBAAYC,OAAM;gBAAKb,OAAM;;0BAEhD,KAACR;gBAAYoB,OAAM;gBAAcC,OAAM;;0BAEvC,KAACrB;gBAAYoB,OAAM;gBAASC,OAAM;gBAAUb,OAAM;;0BAElD,KAACR;gBAAYoB,OAAM;gBAAYC,OAAM;gBAAaC,QAAO;gBAAQd,OAAM;;;;AAGnF,IACF"}
1
+ {"version":3,"sources":["../../../src/demo/row-details/row-details-table.tsx"],"sourcesContent":["import { Stack } from '@servicetitan/design-system';\nimport { provide, useDependencies } from '@servicetitan/react-ioc';\nimport { observer } from 'mobx-react';\nimport type { FC } from 'react';\n\nimport type { TableDetailRowProps } from '../..';\nimport { Table, TableColumn, useRowExpandColumn } from '../..';\n\nimport type { Product } from '../overview/product';\nimport { RowDetailsTableStore } from './row-details-table.store';\n\nconst DetailsRow: FC<TableDetailRowProps> = ({ dataItem }) => {\n const product = dataItem as Product;\n\n return (\n <Stack>\n <div style={{ width: '38px' }} />\n <Stack.Item className=\"m-l-1\" fill>\n details for product {product.ProductName}\n </Stack.Item>\n </Stack>\n );\n};\n\nexport const TableDetailedRowExample: FC = provide({\n singletons: [RowDetailsTableStore],\n})(\n observer(() => {\n const [{ tableState }] = useDependencies(RowDetailsTableStore);\n const expandColumn = useRowExpandColumn();\n\n return (\n <Table tableState={tableState} striped={false} sortable={false} detail={DetailsRow}>\n {expandColumn}\n <TableColumn field=\"ProductID\" title=\"ID\" width=\"50px\" />\n\n <TableColumn field=\"ProductName\" title=\"Product Name\" />\n\n <TableColumn field=\"MadeIn\" title=\"Made In\" width=\"175px\" />\n\n <TableColumn field=\"UnitPrice\" title=\"Unit Price\" format=\"{0:c}\" width=\"125px\" />\n </Table>\n );\n })\n);\n"],"names":["Stack","provide","useDependencies","observer","Table","TableColumn","useRowExpandColumn","RowDetailsTableStore","DetailsRow","dataItem","product","div","style","width","Item","className","fill","ProductName","TableDetailedRowExample","singletons","tableState","expandColumn","striped","sortable","detail","field","title","format"],"mappings":";AAAA,SAASA,KAAK,QAAQ,8BAA8B;AACpD,SAASC,OAAO,EAAEC,eAAe,QAAQ,0BAA0B;AACnE,SAASC,QAAQ,QAAQ,aAAa;AAItC,SAASC,KAAK,EAAEC,WAAW,EAAEC,kBAAkB,QAAQ,QAAQ;AAG/D,SAASC,oBAAoB,QAAQ,4BAA4B;AAEjE,MAAMC,aAAsC,CAAC,EAAEC,QAAQ,EAAE;IACrD,MAAMC,UAAUD;IAEhB,qBACI,MAACT;;0BACG,KAACW;gBAAIC,OAAO;oBAAEC,OAAO;gBAAO;;0BAC5B,MAACb,MAAMc,IAAI;gBAACC,WAAU;gBAAQC,IAAI;;oBAAC;oBACVN,QAAQO,WAAW;;;;;AAIxD;AAEA,OAAO,MAAMC,0BAA8BjB,QAAQ;IAC/CkB,YAAY;QAACZ;KAAqB;AACtC,GACIJ,SAAS;IACL,MAAM,CAAC,EAAEiB,UAAU,EAAE,CAAC,GAAGlB,gBAAgBK;IACzC,MAAMc,eAAef;IAErB,qBACI,MAACF;QAAMgB,YAAYA;QAAYE,SAAS;QAAOC,UAAU;QAAOC,QAAQhB;;YACnEa;0BACD,KAAChB;gBAAYoB,OAAM;gBAAYC,OAAM;gBAAKb,OAAM;;0BAEhD,KAACR;gBAAYoB,OAAM;gBAAcC,OAAM;;0BAEvC,KAACrB;gBAAYoB,OAAM;gBAASC,OAAM;gBAAUb,OAAM;;0BAElD,KAACR;gBAAYoB,OAAM;gBAAYC,OAAM;gBAAaC,QAAO;gBAAQd,OAAM;;;;AAGnF,IACF"}
@@ -1,5 +1,5 @@
1
1
  import { TableState } from '../..';
2
- import { Product } from '../overview/product';
2
+ import type { Product } from '../overview/product';
3
3
  export declare class RowDetailsTableStore {
4
4
  tableState: TableState<Product, number, never, never>;
5
5
  private getDataSource;
@@ -1 +1 @@
1
- {"version":3,"file":"row-details-table.store.d.ts","sourceRoot":"","sources":["../../../src/demo/row-details/row-details-table.store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,UAAU,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,qBACa,oBAAoB;IAC7B,UAAU,4CAIP;IAEH,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,UAAU;CAGrB"}
1
+ {"version":3,"file":"row-details-table.store.d.ts","sourceRoot":"","sources":["../../../src/demo/row-details/row-details-table.store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,UAAU,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD,qBACa,oBAAoB;IAC7B,UAAU,4CAIP;IAEH,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,UAAU;CAGrB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/demo/row-details/row-details-table.store.ts"],"sourcesContent":["import { injectable } from '@servicetitan/react-ioc';\n\nimport { InMemoryDataSource, TableState } from '../..';\n\nimport { Product } from '../overview/product';\nimport { products } from '../overview/products';\n\n@injectable()\nexport class RowDetailsTableStore {\n tableState = new TableState({\n dataSource: this.getDataSource(),\n rowDetailsExpandState: 'expanded',\n pageSize: 5,\n });\n\n private getDataSource() {\n return new InMemoryDataSource(products, this.idSelector);\n }\n\n private idSelector(row: Product) {\n return row.ProductID;\n }\n}\n"],"names":["injectable","InMemoryDataSource","TableState","products","RowDetailsTableStore","getDataSource","idSelector","row","ProductID","tableState","dataSource","rowDetailsExpandState","pageSize"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,SAASA,UAAU,QAAQ,0BAA0B;AAErD,SAASC,kBAAkB,EAAEC,UAAU,QAAQ,QAAQ;AAGvD,SAASC,QAAQ,QAAQ,uBAAuB;AAGhD,OAAO,MAAMC;IAODC,gBAAgB;QACpB,OAAO,IAAIJ,mBAAmBE,UAAU,IAAI,CAACG,UAAU;IAC3D;IAEQA,WAAWC,GAAY,EAAE;QAC7B,OAAOA,IAAIC,SAAS;IACxB;;QAZAC,uBAAAA,cAAa,IAAIP,WAAW;YACxBQ,YAAY,IAAI,CAACL,aAAa;YAC9BM,uBAAuB;YACvBC,UAAU;QACd;;AASJ"}
1
+ {"version":3,"sources":["../../../src/demo/row-details/row-details-table.store.ts"],"sourcesContent":["import { injectable } from '@servicetitan/react-ioc';\n\nimport { InMemoryDataSource, TableState } from '../..';\n\nimport type { Product } from '../overview/product';\nimport { products } from '../overview/products';\n\n@injectable()\nexport class RowDetailsTableStore {\n tableState = new TableState({\n dataSource: this.getDataSource(),\n rowDetailsExpandState: 'expanded',\n pageSize: 5,\n });\n\n private getDataSource() {\n return new InMemoryDataSource(products, this.idSelector);\n }\n\n private idSelector(row: Product) {\n return row.ProductID;\n }\n}\n"],"names":["injectable","InMemoryDataSource","TableState","products","RowDetailsTableStore","getDataSource","idSelector","row","ProductID","tableState","dataSource","rowDetailsExpandState","pageSize"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,SAASA,UAAU,QAAQ,0BAA0B;AAErD,SAASC,kBAAkB,EAAEC,UAAU,QAAQ,QAAQ;AAGvD,SAASC,QAAQ,QAAQ,uBAAuB;AAGhD,OAAO,MAAMC;IAODC,gBAAgB;QACpB,OAAO,IAAIJ,mBAAmBE,UAAU,IAAI,CAACG,UAAU;IAC3D;IAEQA,WAAWC,GAAY,EAAE;QAC7B,OAAOA,IAAIC,SAAS;IACxB;;QAZAC,uBAAAA,cAAa,IAAIP,WAAW;YACxBQ,YAAY,IAAI,CAACL,aAAa;YAC9BM,uBAAuB;YACvBC,UAAU;QACd;;AASJ"}
@@ -1,3 +1,3 @@
1
- import { Product } from './product';
1
+ import type { Product } from './product';
2
2
  export declare const beverages: Product[];
3
3
  //# sourceMappingURL=beverages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"beverages.d.ts","sourceRoot":"","sources":["../../../src/demo/state-caching/beverages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,eAAO,MAAM,SAAS,EAAE,OAAO,EA8C9B,CAAC"}
1
+ {"version":3,"file":"beverages.d.ts","sourceRoot":"","sources":["../../../src/demo/state-caching/beverages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,eAAO,MAAM,SAAS,EAAE,OAAO,EA8C9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/demo/state-caching/beverages.ts"],"sourcesContent":["import { Product } from './product';\n\nexport const beverages: Product[] = [\n {\n ProductID: 1,\n ProductName: 'Tea',\n Description: 'Tea is an aromatic beverage...',\n },\n {\n ProductID: 2,\n ProductName: 'Coffee',\n Description: 'Coffee is a brewed drink prepared from roasted coffee beans...',\n },\n {\n ProductID: 3,\n ProductName: 'Liquor',\n Description: 'Liquor is an alcoholic drink...',\n },\n {\n ProductID: 4,\n ProductName: 'Beer',\n Description: 'Beer is one of the oldest and most widely consumed drinks in the world...',\n },\n {\n ProductID: 5,\n ProductName: 'Milk',\n Description: 'Milk is a nutrient-rich, white liquid food produced by...',\n },\n {\n ProductID: 6,\n ProductName: 'Juice',\n Description: 'Juice is a drink made from the extraction...',\n },\n {\n ProductID: 7,\n ProductName: 'Hot chocolate',\n Description: 'Hot chocolate, also known as drinking chocolate, cocoa, and as chocolate...',\n },\n {\n ProductID: 8,\n ProductName: 'Wine',\n Description: 'Wine is an alcoholic drink typically made from fermented grapes...',\n },\n {\n ProductID: 9,\n ProductName: 'Kombucha',\n Description: 'Kombucha is a fermented, slightly alcoholic, lightly effervescent...',\n },\n];\n"],"names":["beverages","ProductID","ProductName","Description"],"mappings":"AAEA,OAAO,MAAMA,YAAuB;IAChC;QACIC,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;CACH,CAAC"}
1
+ {"version":3,"sources":["../../../src/demo/state-caching/beverages.ts"],"sourcesContent":["import type { Product } from './product';\n\nexport const beverages: Product[] = [\n {\n ProductID: 1,\n ProductName: 'Tea',\n Description: 'Tea is an aromatic beverage...',\n },\n {\n ProductID: 2,\n ProductName: 'Coffee',\n Description: 'Coffee is a brewed drink prepared from roasted coffee beans...',\n },\n {\n ProductID: 3,\n ProductName: 'Liquor',\n Description: 'Liquor is an alcoholic drink...',\n },\n {\n ProductID: 4,\n ProductName: 'Beer',\n Description: 'Beer is one of the oldest and most widely consumed drinks in the world...',\n },\n {\n ProductID: 5,\n ProductName: 'Milk',\n Description: 'Milk is a nutrient-rich, white liquid food produced by...',\n },\n {\n ProductID: 6,\n ProductName: 'Juice',\n Description: 'Juice is a drink made from the extraction...',\n },\n {\n ProductID: 7,\n ProductName: 'Hot chocolate',\n Description: 'Hot chocolate, also known as drinking chocolate, cocoa, and as chocolate...',\n },\n {\n ProductID: 8,\n ProductName: 'Wine',\n Description: 'Wine is an alcoholic drink typically made from fermented grapes...',\n },\n {\n ProductID: 9,\n ProductName: 'Kombucha',\n Description: 'Kombucha is a fermented, slightly alcoholic, lightly effervescent...',\n },\n];\n"],"names":["beverages","ProductID","ProductName","Description"],"mappings":"AAEA,OAAO,MAAMA,YAAuB;IAChC;QACIC,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;CACH,CAAC"}
@@ -1,3 +1,3 @@
1
- import { Product } from './product';
1
+ import type { Product } from './product';
2
2
  export declare const products: Product[];
3
3
  //# sourceMappingURL=products.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../../src/demo/state-caching/products.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,eAAO,MAAM,QAAQ,EAAE,OAAO,EAmD7B,CAAC"}
1
+ {"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../../src/demo/state-caching/products.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,eAAO,MAAM,QAAQ,EAAE,OAAO,EAmD7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/demo/state-caching/products.ts"],"sourcesContent":["import { Product } from './product';\n\nexport const products: Product[] = [\n {\n ProductID: 1,\n ProductName: 'Chai',\n Description: '10 boxes x 20 bags',\n },\n {\n ProductID: 2,\n ProductName: 'Chang',\n Description: '24 - 12 oz bottles',\n },\n {\n ProductID: 3,\n ProductName: 'Aniseed Syrup',\n Description: '12 - 550 ml bottles',\n },\n {\n ProductID: 4,\n ProductName: \"Chef Anton's Cajun Seasoning\",\n Description: '48 - 6 oz jars',\n },\n {\n ProductID: 5,\n ProductName: \"Chef Anton's Gumbo Mix\",\n Description: '36 boxes',\n },\n {\n ProductID: 6,\n ProductName: \"Grandma's Boysenberry Spread\",\n Description: '12 - 8 oz jars',\n },\n {\n ProductID: 7,\n ProductName: \"Uncle Bob's Organic Dried Pears\",\n Description: '12 - 1 lb pkgs.',\n },\n {\n ProductID: 8,\n ProductName: 'Northwoods Cranberry Sauce',\n Description: '12 - 12 oz jars',\n },\n {\n ProductID: 9,\n ProductName: 'Mishi Kobe Niku',\n Description: '18 - 500 g pkgs.',\n },\n {\n ProductID: 10,\n ProductName: 'Ikura',\n Description: '12 - 200 ml jars',\n },\n];\n"],"names":["products","ProductID","ProductName","Description"],"mappings":"AAEA,OAAO,MAAMA,WAAsB;IAC/B;QACIC,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;CACH,CAAC"}
1
+ {"version":3,"sources":["../../../src/demo/state-caching/products.ts"],"sourcesContent":["import type { Product } from './product';\n\nexport const products: Product[] = [\n {\n ProductID: 1,\n ProductName: 'Chai',\n Description: '10 boxes x 20 bags',\n },\n {\n ProductID: 2,\n ProductName: 'Chang',\n Description: '24 - 12 oz bottles',\n },\n {\n ProductID: 3,\n ProductName: 'Aniseed Syrup',\n Description: '12 - 550 ml bottles',\n },\n {\n ProductID: 4,\n ProductName: \"Chef Anton's Cajun Seasoning\",\n Description: '48 - 6 oz jars',\n },\n {\n ProductID: 5,\n ProductName: \"Chef Anton's Gumbo Mix\",\n Description: '36 boxes',\n },\n {\n ProductID: 6,\n ProductName: \"Grandma's Boysenberry Spread\",\n Description: '12 - 8 oz jars',\n },\n {\n ProductID: 7,\n ProductName: \"Uncle Bob's Organic Dried Pears\",\n Description: '12 - 1 lb pkgs.',\n },\n {\n ProductID: 8,\n ProductName: 'Northwoods Cranberry Sauce',\n Description: '12 - 12 oz jars',\n },\n {\n ProductID: 9,\n ProductName: 'Mishi Kobe Niku',\n Description: '18 - 500 g pkgs.',\n },\n {\n ProductID: 10,\n ProductName: 'Ikura',\n Description: '12 - 200 ml jars',\n },\n];\n"],"names":["products","ProductID","ProductName","Description"],"mappings":"AAEA,OAAO,MAAMA,WAAsB;IAC/B;QACIC,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;IACA;QACIF,WAAW;QACXC,aAAa;QACbC,aAAa;IACjB;CACH,CAAC"}
@@ -1,3 +1,3 @@
1
- import { FC } from 'react';
1
+ import type { FC } from 'react';
2
2
  export declare const TableStateCachingExample: FC;
3
3
  //# sourceMappingURL=state-caching-table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-caching-table.d.ts","sourceRoot":"","sources":["../../../src/demo/state-caching/state-caching-table.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,EAAE,EAAE,MAAM,OAAO,CAAC;AAOrC,eAAO,MAAM,wBAAwB,EAAE,EA2BtC,CAAC"}
1
+ {"version":3,"file":"state-caching-table.d.ts","sourceRoot":"","sources":["../../../src/demo/state-caching/state-caching-table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAQhC,eAAO,MAAM,wBAAwB,EAAE,EA2BtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/demo/state-caching/state-caching-table.tsx"],"sourcesContent":["import { Fragment, FC } from 'react';\nimport { provide, useDependencies } from '@servicetitan/react-ioc';\nimport { observer } from 'mobx-react';\nimport { ButtonGroup, Button } from '@servicetitan/design-system';\nimport { Table, TableColumn } from '../..';\nimport { TableStore } from './state-caching-table.store';\n\nexport const TableStateCachingExample: FC = provide({\n singletons: [TableStore],\n})(\n observer(() => {\n const [{ tableState, showProducts, showBeverages }] = useDependencies(TableStore);\n\n return (\n <Fragment>\n <ButtonGroup className=\"m-b-2\">\n <Button small onClick={showProducts}>\n Show Products\n </Button>\n <Button small onClick={showBeverages}>\n Show Beverages\n </Button>\n </ButtonGroup>\n\n <Table tableState={tableState} striped sortable>\n <TableColumn field=\"ProductID\" title=\"ID\" width=\"100px\" />\n\n <TableColumn field=\"ProductName\" title=\"Product Name\" />\n\n <TableColumn field=\"Description\" title=\"Product Description\" />\n </Table>\n </Fragment>\n );\n })\n);\n"],"names":["Fragment","provide","useDependencies","observer","ButtonGroup","Button","Table","TableColumn","TableStore","TableStateCachingExample","singletons","tableState","showProducts","showBeverages","className","small","onClick","striped","sortable","field","title","width"],"mappings":";AAAA,SAASA,QAAQ,QAAY,QAAQ;AACrC,SAASC,OAAO,EAAEC,eAAe,QAAQ,0BAA0B;AACnE,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,WAAW,EAAEC,MAAM,QAAQ,8BAA8B;AAClE,SAASC,KAAK,EAAEC,WAAW,QAAQ,QAAQ;AAC3C,SAASC,UAAU,QAAQ,8BAA8B;AAEzD,OAAO,MAAMC,2BAA+BR,QAAQ;IAChDS,YAAY;QAACF;KAAW;AAC5B,GACIL,SAAS;IACL,MAAM,CAAC,EAAEQ,UAAU,EAAEC,YAAY,EAAEC,aAAa,EAAE,CAAC,GAAGX,gBAAgBM;IAEtE,qBACI,MAACR;;0BACG,MAACI;gBAAYU,WAAU;;kCACnB,KAACT;wBAAOU,KAAK;wBAACC,SAASJ;kCAAc;;kCAGrC,KAACP;wBAAOU,KAAK;wBAACC,SAASH;kCAAe;;;;0BAK1C,MAACP;gBAAMK,YAAYA;gBAAYM,OAAO;gBAACC,QAAQ;;kCAC3C,KAACX;wBAAYY,OAAM;wBAAYC,OAAM;wBAAKC,OAAM;;kCAEhD,KAACd;wBAAYY,OAAM;wBAAcC,OAAM;;kCAEvC,KAACb;wBAAYY,OAAM;wBAAcC,OAAM;;;;;;AAIvD,IACF"}
1
+ {"version":3,"sources":["../../../src/demo/state-caching/state-caching-table.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { Fragment } from 'react';\nimport { provide, useDependencies } from '@servicetitan/react-ioc';\nimport { observer } from 'mobx-react';\nimport { ButtonGroup, Button } from '@servicetitan/design-system';\nimport { Table, TableColumn } from '../..';\nimport { TableStore } from './state-caching-table.store';\n\nexport const TableStateCachingExample: FC = provide({\n singletons: [TableStore],\n})(\n observer(() => {\n const [{ tableState, showProducts, showBeverages }] = useDependencies(TableStore);\n\n return (\n <Fragment>\n <ButtonGroup className=\"m-b-2\">\n <Button small onClick={showProducts}>\n Show Products\n </Button>\n <Button small onClick={showBeverages}>\n Show Beverages\n </Button>\n </ButtonGroup>\n\n <Table tableState={tableState} striped sortable>\n <TableColumn field=\"ProductID\" title=\"ID\" width=\"100px\" />\n\n <TableColumn field=\"ProductName\" title=\"Product Name\" />\n\n <TableColumn field=\"Description\" title=\"Product Description\" />\n </Table>\n </Fragment>\n );\n })\n);\n"],"names":["Fragment","provide","useDependencies","observer","ButtonGroup","Button","Table","TableColumn","TableStore","TableStateCachingExample","singletons","tableState","showProducts","showBeverages","className","small","onClick","striped","sortable","field","title","width"],"mappings":";AACA,SAASA,QAAQ,QAAQ,QAAQ;AACjC,SAASC,OAAO,EAAEC,eAAe,QAAQ,0BAA0B;AACnE,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,WAAW,EAAEC,MAAM,QAAQ,8BAA8B;AAClE,SAASC,KAAK,EAAEC,WAAW,QAAQ,QAAQ;AAC3C,SAASC,UAAU,QAAQ,8BAA8B;AAEzD,OAAO,MAAMC,2BAA+BR,QAAQ;IAChDS,YAAY;QAACF;KAAW;AAC5B,GACIL,SAAS;IACL,MAAM,CAAC,EAAEQ,UAAU,EAAEC,YAAY,EAAEC,aAAa,EAAE,CAAC,GAAGX,gBAAgBM;IAEtE,qBACI,MAACR;;0BACG,MAACI;gBAAYU,WAAU;;kCACnB,KAACT;wBAAOU,KAAK;wBAACC,SAASJ;kCAAc;;kCAGrC,KAACP;wBAAOU,KAAK;wBAACC,SAASH;kCAAe;;;;0BAK1C,MAACP;gBAAMK,YAAYA;gBAAYM,OAAO;gBAACC,QAAQ;;kCAC3C,KAACX;wBAAYY,OAAM;wBAAYC,OAAM;wBAAKC,OAAM;;kCAEhD,KAACd;wBAAYY,OAAM;wBAAcC,OAAM;;kCAEvC,KAACb;wBAAYY,OAAM;wBAAcC,OAAM;;;;;;AAIvD,IACF"}
@@ -1,6 +1,6 @@
1
1
  import { TableState } from '../..';
2
- import { Product } from './product';
3
- import { TableStateModel } from '../../table-state';
2
+ import type { Product } from './product';
3
+ import type { TableStateModel } from '../../table-state';
4
4
  export declare class TableStore {
5
5
  productsTableState?: TableStateModel<number>;
6
6
  beveragesTableState?: TableStateModel<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"state-caching-table.store.d.ts","sourceRoot":"","sources":["../../../src/demo/state-caching/state-caching-table.store.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,UAAU,EAAE,MAAM,OAAO,CAAC;AAIvD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBACa,UAAU;IACnB,kBAAkB,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC7C,mBAAmB,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAE9C,UAAU,4CAGP;IAEH,YAAY,aAMV;IAEF,aAAa,aAMX;IAEF,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,sBAAsB;CAGjC"}
1
+ {"version":3,"file":"state-caching-table.store.d.ts","sourceRoot":"","sources":["../../../src/demo/state-caching/state-caching-table.store.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,UAAU,EAAE,MAAM,OAAO,CAAC;AAIvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,qBACa,UAAU;IACnB,kBAAkB,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC7C,mBAAmB,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAE9C,UAAU,4CAGP;IAEH,YAAY,aAMV;IAEF,aAAa,aAMX;IAEF,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,sBAAsB;CAGjC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/demo/state-caching/state-caching-table.store.ts"],"sourcesContent":["import { injectable } from '@servicetitan/react-ioc';\nimport { InMemoryDataSource, TableState } from '../..';\n\nimport { products } from './products';\nimport { beverages } from './beverages';\nimport { Product } from './product';\nimport { TableStateModel } from '../../table-state';\n\n@injectable()\nexport class TableStore {\n productsTableState?: TableStateModel<number>;\n beveragesTableState?: TableStateModel<number>;\n\n tableState = new TableState<Product, number>({\n dataSource: this.getProductsDataSource(),\n pageSize: 5,\n });\n\n showProducts = () => {\n this.beveragesTableState = this.tableState.exportState();\n this.tableState.setDataSource(this.getProductsDataSource(), {\n reset: true,\n initialState: this.productsTableState,\n });\n };\n\n showBeverages = () => {\n this.productsTableState = this.tableState.exportState();\n this.tableState.setDataSource(this.getBeveragesDataSource(), {\n reset: true,\n initialState: this.beveragesTableState,\n });\n };\n\n private getProductsDataSource() {\n return new InMemoryDataSource(products);\n }\n\n private getBeveragesDataSource() {\n return new InMemoryDataSource(beverages);\n }\n}\n"],"names":["injectable","InMemoryDataSource","TableState","products","beverages","TableStore","getProductsDataSource","getBeveragesDataSource","productsTableState","beveragesTableState","tableState","dataSource","pageSize","showProducts","exportState","setDataSource","reset","initialState","showBeverages"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,SAASA,UAAU,QAAQ,0BAA0B;AACrD,SAASC,kBAAkB,EAAEC,UAAU,QAAQ,QAAQ;AAEvD,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,SAAS,QAAQ,cAAc;AAKxC,OAAO,MAAMC;IAyBDC,wBAAwB;QAC5B,OAAO,IAAIL,mBAAmBE;IAClC;IAEQI,yBAAyB;QAC7B,OAAO,IAAIN,mBAAmBG;IAClC;;QA9BAI,uBAAAA,sBAAAA,KAAAA;QACAC,uBAAAA,uBAAAA,KAAAA;QAEAC,uBAAAA,cAAa,IAAIR,WAA4B;YACzCS,YAAY,IAAI,CAACL,qBAAqB;YACtCM,UAAU;QACd;QAEAC,uBAAAA,gBAAe;YACX,IAAI,CAACJ,mBAAmB,GAAG,IAAI,CAACC,UAAU,CAACI,WAAW;YACtD,IAAI,CAACJ,UAAU,CAACK,aAAa,CAAC,IAAI,CAACT,qBAAqB,IAAI;gBACxDU,OAAO;gBACPC,cAAc,IAAI,CAACT,kBAAkB;YACzC;QACJ;QAEAU,uBAAAA,iBAAgB;YACZ,IAAI,CAACV,kBAAkB,GAAG,IAAI,CAACE,UAAU,CAACI,WAAW;YACrD,IAAI,CAACJ,UAAU,CAACK,aAAa,CAAC,IAAI,CAACR,sBAAsB,IAAI;gBACzDS,OAAO;gBACPC,cAAc,IAAI,CAACR,mBAAmB;YAC1C;QACJ;;AASJ"}
1
+ {"version":3,"sources":["../../../src/demo/state-caching/state-caching-table.store.ts"],"sourcesContent":["import { injectable } from '@servicetitan/react-ioc';\nimport { InMemoryDataSource, TableState } from '../..';\n\nimport { products } from './products';\nimport { beverages } from './beverages';\nimport type { Product } from './product';\nimport type { TableStateModel } from '../../table-state';\n\n@injectable()\nexport class TableStore {\n productsTableState?: TableStateModel<number>;\n beveragesTableState?: TableStateModel<number>;\n\n tableState = new TableState<Product, number>({\n dataSource: this.getProductsDataSource(),\n pageSize: 5,\n });\n\n showProducts = () => {\n this.beveragesTableState = this.tableState.exportState();\n this.tableState.setDataSource(this.getProductsDataSource(), {\n reset: true,\n initialState: this.productsTableState,\n });\n };\n\n showBeverages = () => {\n this.productsTableState = this.tableState.exportState();\n this.tableState.setDataSource(this.getBeveragesDataSource(), {\n reset: true,\n initialState: this.beveragesTableState,\n });\n };\n\n private getProductsDataSource() {\n return new InMemoryDataSource(products);\n }\n\n private getBeveragesDataSource() {\n return new InMemoryDataSource(beverages);\n }\n}\n"],"names":["injectable","InMemoryDataSource","TableState","products","beverages","TableStore","getProductsDataSource","getBeveragesDataSource","productsTableState","beveragesTableState","tableState","dataSource","pageSize","showProducts","exportState","setDataSource","reset","initialState","showBeverages"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,SAASA,UAAU,QAAQ,0BAA0B;AACrD,SAASC,kBAAkB,EAAEC,UAAU,QAAQ,QAAQ;AAEvD,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,SAAS,QAAQ,cAAc;AAKxC,OAAO,MAAMC;IAyBDC,wBAAwB;QAC5B,OAAO,IAAIL,mBAAmBE;IAClC;IAEQI,yBAAyB;QAC7B,OAAO,IAAIN,mBAAmBG;IAClC;;QA9BAI,uBAAAA,sBAAAA,KAAAA;QACAC,uBAAAA,uBAAAA,KAAAA;QAEAC,uBAAAA,cAAa,IAAIR,WAA4B;YACzCS,YAAY,IAAI,CAACL,qBAAqB;YACtCM,UAAU;QACd;QAEAC,uBAAAA,gBAAe;YACX,IAAI,CAACJ,mBAAmB,GAAG,IAAI,CAACC,UAAU,CAACI,WAAW;YACtD,IAAI,CAACJ,UAAU,CAACK,aAAa,CAAC,IAAI,CAACT,qBAAqB,IAAI;gBACxDU,OAAO;gBACPC,cAAc,IAAI,CAACT,kBAAkB;YACzC;QACJ;QAEAU,uBAAAA,iBAAgB;YACZ,IAAI,CAACV,kBAAkB,GAAG,IAAI,CAACE,UAAU,CAACI,WAAW;YACrD,IAAI,CAACJ,UAAU,CAACK,aAAa,CAAC,IAAI,CAACR,sBAAsB,IAAI;gBACzDS,OAAO;gBACPC,cAAc,IAAI,CAACR,mBAAmB;YAC1C;QACJ;;AASJ"}
@@ -1,5 +1,5 @@
1
- import { FC } from 'react';
2
- import { TableCellProps } from '../index';
1
+ import type { FC } from 'react';
2
+ import type { TableCellProps } from '../index';
3
3
  export declare const RowExpandCell: FC<TableCellProps>;
4
4
  export declare const getRowExpandColumn: () => import("react/jsx-runtime").JSX.Element;
5
5
  export declare const useRowExpandColumn: () => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"expand-column.d.ts","sourceRoot":"","sources":["../../src/details/expand-column.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAwC,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,cAAc,EAAe,MAAM,UAAU,CAAC;AAEvD,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,cAAc,CAiC5C,CAAC;AAEF,eAAO,MAAM,kBAAkB,+CAU9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,+CAE9B,CAAC"}
1
+ {"version":3,"file":"expand-column.d.ts","sourceRoot":"","sources":["../../src/details/expand-column.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAkB,MAAM,OAAO,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,cAAc,CAiC5C,CAAC;AAEF,eAAO,MAAM,kBAAkB,+CAU9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,+CAE9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/details/expand-column.tsx"],"sourcesContent":["import { Button } from '@servicetitan/design-system';\nimport { FC, SyntheticEvent, useCallback, useMemo } from 'react';\nimport { TableCellProps, TableColumn } from '../index';\n\nexport const RowExpandCell: FC<TableCellProps> = ({\n dataItem,\n dataIndex,\n expanded,\n tableState,\n className,\n tdProps,\n}) => {\n const onCLick = useCallback(\n (e: SyntheticEvent) => {\n tableState?.handleExpandChange({\n dataItem,\n dataIndex,\n value: !expanded,\n syntheticEvent: e,\n nativeEvent: e.nativeEvent,\n target: e.target as never,\n });\n },\n [dataItem, dataIndex, expanded, tableState]\n );\n\n return (\n <td className={className} {...tdProps}>\n <Button\n iconName={expanded ? 'expand_less' : 'expand_more'}\n aria-label=\"expand row\"\n size=\"xsmall\"\n fill=\"subtle\"\n onClick={onCLick}\n />\n </td>\n );\n};\n\nexport const getRowExpandColumn = () => (\n <TableColumn\n field=\"expanded\"\n title=\" \"\n editable={false}\n sortable={false}\n resizable={false}\n cell={RowExpandCell}\n width=\"50px\"\n />\n);\n\nexport const useRowExpandColumn = () => {\n return useMemo(getRowExpandColumn, []);\n};\n"],"names":["Button","useCallback","useMemo","TableColumn","RowExpandCell","dataItem","dataIndex","expanded","tableState","className","tdProps","onCLick","e","handleExpandChange","value","syntheticEvent","nativeEvent","target","td","iconName","aria-label","size","fill","onClick","getRowExpandColumn","field","title","editable","sortable","resizable","cell","width","useRowExpandColumn"],"mappings":";AAAA,SAASA,MAAM,QAAQ,8BAA8B;AACrD,SAA6BC,WAAW,EAAEC,OAAO,QAAQ,QAAQ;AACjE,SAAyBC,WAAW,QAAQ,WAAW;AAEvD,OAAO,MAAMC,gBAAoC,CAAC,EAC9CC,QAAQ,EACRC,SAAS,EACTC,QAAQ,EACRC,UAAU,EACVC,SAAS,EACTC,OAAO,EACV;IACG,MAAMC,UAAUV,YACZ,CAACW;QACGJ,uBAAAA,iCAAAA,WAAYK,kBAAkB,CAAC;YAC3BR;YACAC;YACAQ,OAAO,CAACP;YACRQ,gBAAgBH;YAChBI,aAAaJ,EAAEI,WAAW;YAC1BC,QAAQL,EAAEK,MAAM;QACpB;IACJ,GACA;QAACZ;QAAUC;QAAWC;QAAUC;KAAW;IAG/C,qBACI,KAACU;QAAGT,WAAWA;QAAY,GAAGC,OAAO;kBACjC,cAAA,KAACV;YACGmB,UAAUZ,WAAW,gBAAgB;YACrCa,cAAW;YACXC,MAAK;YACLC,MAAK;YACLC,SAASZ;;;AAIzB,EAAE;AAEF,OAAO,MAAMa,qBAAqB,kBAC9B,KAACrB;QACGsB,OAAM;QACNC,OAAM;QACNC,UAAU;QACVC,UAAU;QACVC,WAAW;QACXC,MAAM1B;QACN2B,OAAM;OAEZ;AAEF,OAAO,MAAMC,qBAAqB;IAC9B,OAAO9B,QAAQsB,oBAAoB,EAAE;AACzC,EAAE"}
1
+ {"version":3,"sources":["../../src/details/expand-column.tsx"],"sourcesContent":["import { Button } from '@servicetitan/design-system';\nimport type { FC, SyntheticEvent } from 'react';\nimport { useCallback, useMemo } from 'react';\nimport type { TableCellProps } from '../index';\nimport { TableColumn } from '../index';\n\nexport const RowExpandCell: FC<TableCellProps> = ({\n dataItem,\n dataIndex,\n expanded,\n tableState,\n className,\n tdProps,\n}) => {\n const onCLick = useCallback(\n (e: SyntheticEvent) => {\n tableState?.handleExpandChange({\n dataItem,\n dataIndex,\n value: !expanded,\n syntheticEvent: e,\n nativeEvent: e.nativeEvent,\n target: e.target as never,\n });\n },\n [dataItem, dataIndex, expanded, tableState]\n );\n\n return (\n <td className={className} {...tdProps}>\n <Button\n iconName={expanded ? 'expand_less' : 'expand_more'}\n aria-label=\"expand row\"\n size=\"xsmall\"\n fill=\"subtle\"\n onClick={onCLick}\n />\n </td>\n );\n};\n\nexport const getRowExpandColumn = () => (\n <TableColumn\n field=\"expanded\"\n title=\" \"\n editable={false}\n sortable={false}\n resizable={false}\n cell={RowExpandCell}\n width=\"50px\"\n />\n);\n\nexport const useRowExpandColumn = () => {\n return useMemo(getRowExpandColumn, []);\n};\n"],"names":["Button","useCallback","useMemo","TableColumn","RowExpandCell","dataItem","dataIndex","expanded","tableState","className","tdProps","onCLick","e","handleExpandChange","value","syntheticEvent","nativeEvent","target","td","iconName","aria-label","size","fill","onClick","getRowExpandColumn","field","title","editable","sortable","resizable","cell","width","useRowExpandColumn"],"mappings":";AAAA,SAASA,MAAM,QAAQ,8BAA8B;AAErD,SAASC,WAAW,EAAEC,OAAO,QAAQ,QAAQ;AAE7C,SAASC,WAAW,QAAQ,WAAW;AAEvC,OAAO,MAAMC,gBAAoC,CAAC,EAC9CC,QAAQ,EACRC,SAAS,EACTC,QAAQ,EACRC,UAAU,EACVC,SAAS,EACTC,OAAO,EACV;IACG,MAAMC,UAAUV,YACZ,CAACW;QACGJ,uBAAAA,iCAAAA,WAAYK,kBAAkB,CAAC;YAC3BR;YACAC;YACAQ,OAAO,CAACP;YACRQ,gBAAgBH;YAChBI,aAAaJ,EAAEI,WAAW;YAC1BC,QAAQL,EAAEK,MAAM;QACpB;IACJ,GACA;QAACZ;QAAUC;QAAWC;QAAUC;KAAW;IAG/C,qBACI,KAACU;QAAGT,WAAWA;QAAY,GAAGC,OAAO;kBACjC,cAAA,KAACV;YACGmB,UAAUZ,WAAW,gBAAgB;YACrCa,cAAW;YACXC,MAAK;YACLC,MAAK;YACLC,SAASZ;;;AAIzB,EAAE;AAEF,OAAO,MAAMa,qBAAqB,kBAC9B,KAACrB;QACGsB,OAAM;QACNC,OAAM;QACNC,UAAU;QACVC,UAAU;QACVC,WAAW;QACXC,MAAM1B;QACN2B,OAAM;OAEZ;AAEF,OAAO,MAAMC,qBAAqB;IAC9B,OAAO9B,QAAQsB,oBAAoB,EAAE;AACzC,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"boolean-editable-cell.d.ts","sourceRoot":"","sources":["../../src/editable-cell/boolean-editable-cell.tsx"],"names":[],"mappings":"AAqBA,eAAO,MAAM,mBAAmB,sFAE9B,CAAC"}
1
+ {"version":3,"file":"boolean-editable-cell.d.ts","sourceRoot":"","sources":["../../src/editable-cell/boolean-editable-cell.tsx"],"names":[],"mappings":"AAsBA,eAAO,MAAM,mBAAmB,sFAE9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/editable-cell/boolean-editable-cell.tsx"],"sourcesContent":["import { FC } from 'react';\nimport { observer } from 'mobx-react';\n\nimport { Checkbox } from '@servicetitan/design-system';\n\nimport { getEditableCell, EditorProps } from './get-editable-cell';\n\nconst Editor = observer<FC<EditorProps<boolean>>>(\n ({ fieldState: { value, onChange }, className, tdProps }) => {\n const handleChange = (_0: never, checked: boolean) => {\n onChange(checked);\n };\n\n return (\n <td className={className} {...tdProps}>\n <Checkbox checked={value} onChange={handleChange} style={{ marginRight: 0 }} />\n </td>\n );\n }\n);\n\nexport const BooleanEditableCell = getEditableCell({\n editor: Editor,\n});\n"],"names":["observer","Checkbox","getEditableCell","Editor","fieldState","value","onChange","className","tdProps","handleChange","_0","checked","td","style","marginRight","BooleanEditableCell","editor"],"mappings":";AACA,SAASA,QAAQ,QAAQ,aAAa;AAEtC,SAASC,QAAQ,QAAQ,8BAA8B;AAEvD,SAASC,eAAe,QAAqB,sBAAsB;AAEnE,MAAMC,SAASH,SACX,CAAC,EAAEI,YAAY,EAAEC,KAAK,EAAEC,QAAQ,EAAE,EAAEC,SAAS,EAAEC,OAAO,EAAE;IACpD,MAAMC,eAAe,CAACC,IAAWC;QAC7BL,SAASK;IACb;IAEA,qBACI,KAACC;QAAGL,WAAWA;QAAY,GAAGC,OAAO;kBACjC,cAAA,KAACP;YAASU,SAASN;YAAOC,UAAUG;YAAcI,OAAO;gBAAEC,aAAa;YAAE;;;AAGtF;AAGJ,OAAO,MAAMC,sBAAsBb,gBAAgB;IAC/Cc,QAAQb;AACZ,GAAG"}
1
+ {"version":3,"sources":["../../src/editable-cell/boolean-editable-cell.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { observer } from 'mobx-react';\n\nimport { Checkbox } from '@servicetitan/design-system';\n\nimport type { EditorProps } from './get-editable-cell';\nimport { getEditableCell } from './get-editable-cell';\n\nconst Editor = observer<FC<EditorProps<boolean>>>(\n ({ fieldState: { value, onChange }, className, tdProps }) => {\n const handleChange = (_0: never, checked: boolean) => {\n onChange(checked);\n };\n\n return (\n <td className={className} {...tdProps}>\n <Checkbox checked={value} onChange={handleChange} style={{ marginRight: 0 }} />\n </td>\n );\n }\n);\n\nexport const BooleanEditableCell = getEditableCell({\n editor: Editor,\n});\n"],"names":["observer","Checkbox","getEditableCell","Editor","fieldState","value","onChange","className","tdProps","handleChange","_0","checked","td","style","marginRight","BooleanEditableCell","editor"],"mappings":";AACA,SAASA,QAAQ,QAAQ,aAAa;AAEtC,SAASC,QAAQ,QAAQ,8BAA8B;AAGvD,SAASC,eAAe,QAAQ,sBAAsB;AAEtD,MAAMC,SAASH,SACX,CAAC,EAAEI,YAAY,EAAEC,KAAK,EAAEC,QAAQ,EAAE,EAAEC,SAAS,EAAEC,OAAO,EAAE;IACpD,MAAMC,eAAe,CAACC,IAAWC;QAC7BL,SAASK;IACb;IAEA,qBACI,KAACC;QAAGL,WAAWA;QAAY,GAAGC,OAAO;kBACjC,cAAA,KAACP;YAASU,SAASN;YAAOC,UAAUG;YAAcI,OAAO;gBAAEC,aAAa;YAAE;;;AAGtF;AAGJ,OAAO,MAAMC,sBAAsBb,gBAAgB;IAC/Cc,QAAQb;AACZ,GAAG"}
@@ -1,6 +1,6 @@
1
- import { ComponentType } from 'react';
2
- import { TableCellProps } from '../table';
3
- import { PossibleFormState } from '../table-state';
1
+ import type { ComponentType } from 'react';
2
+ import type { TableCellProps } from '../table';
3
+ import type { PossibleFormState } from '../table-state';
4
4
  export interface EditActionProps<T> extends TableCellProps<T> {
5
5
  formState: PossibleFormState<T>;
6
6
  }