@servicetitan/table 31.1.0 → 31.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/demo/column-hiding/index.js +1 -0
- package/dist/demo/column-hiding/index.js.map +1 -1
- package/dist/demo/column-hiding/product.js +7 -6
- package/dist/demo/column-hiding/product.js.map +1 -1
- package/dist/demo/column-hiding/products.js +12 -11
- package/dist/demo/column-hiding/products.js.map +1 -1
- package/dist/demo/column-hiding/table.js +126 -32
- package/dist/demo/column-hiding/table.js.map +1 -1
- package/dist/demo/column-hiding/table.store.js +30 -27
- package/dist/demo/column-hiding/table.store.js.map +1 -1
- package/dist/demo/filters/async-select-filter.js +59 -12
- package/dist/demo/filters/async-select-filter.js.map +1 -1
- package/dist/demo/filters/categories.js +20 -16
- package/dist/demo/filters/categories.js.map +1 -1
- package/dist/demo/filters/multiselect-filter.js +37 -5
- package/dist/demo/filters/multiselect-filter.js.map +1 -1
- package/dist/demo/filters/range-filter.js +104 -10
- package/dist/demo/filters/range-filter.js.map +1 -1
- package/dist/demo/filters/select-filter.js +139 -41
- package/dist/demo/filters/select-filter.js.map +1 -1
- package/dist/demo/filters/single-select-filter.js +109 -18
- package/dist/demo/filters/single-select-filter.js.map +1 -1
- package/dist/demo/filters/table.store.js +77 -86
- package/dist/demo/filters/table.store.js.map +1 -1
- package/dist/demo/footer-page-size/index.js +1 -0
- package/dist/demo/footer-page-size/index.js.map +1 -1
- package/dist/demo/footer-page-size/table.js +82 -6
- package/dist/demo/footer-page-size/table.js.map +1 -1
- package/dist/demo/index.js +1 -0
- package/dist/demo/index.js.map +1 -1
- package/dist/demo/master-detail/detail-table.js +41 -9
- package/dist/demo/master-detail/detail-table.js.map +1 -1
- package/dist/demo/master-detail/detail-table.store.js +60 -56
- package/dist/demo/master-detail/detail-table.store.js.map +1 -1
- package/dist/demo/master-detail/index.js +1 -0
- package/dist/demo/master-detail/index.js.map +1 -1
- package/dist/demo/master-detail/master-table.store.js +65 -61
- package/dist/demo/master-detail/master-table.store.js.map +1 -1
- package/dist/demo/master-detail/product-detail.js +2 -1
- package/dist/demo/master-detail/product-detail.js.map +1 -1
- package/dist/demo/master-detail/product-details.js +10 -9
- package/dist/demo/master-detail/product-details.js.map +1 -1
- package/dist/demo/master-detail/product.js +7 -6
- package/dist/demo/master-detail/product.js.map +1 -1
- package/dist/demo/master-detail/products.js +12 -11
- package/dist/demo/master-detail/products.js.map +1 -1
- package/dist/demo/master-detail/table-master-detail.js +39 -8
- package/dist/demo/master-detail/table-master-detail.js.map +1 -1
- package/dist/demo/overview/actions-cell.js +47 -10
- package/dist/demo/overview/actions-cell.js.map +1 -1
- package/dist/demo/overview/index.js +1 -0
- package/dist/demo/overview/index.js.map +1 -1
- package/dist/demo/overview/product.js +7 -6
- package/dist/demo/overview/product.js.map +1 -1
- package/dist/demo/overview/products.js +15 -14
- package/dist/demo/overview/products.js.map +1 -1
- package/dist/demo/overview/table.js +176 -21
- package/dist/demo/overview/table.js.map +1 -1
- package/dist/demo/overview/table.store.js +45 -51
- package/dist/demo/overview/table.store.js.map +1 -1
- package/dist/demo/row-details/index.js +1 -0
- package/dist/demo/row-details/index.js.map +1 -1
- package/dist/demo/row-details/row-details-table.js +52 -5
- package/dist/demo/row-details/row-details-table.js.map +1 -1
- package/dist/demo/row-details/row-details-table.store.js +27 -19
- package/dist/demo/row-details/row-details-table.store.js.map +1 -1
- package/dist/demo/state-caching/beverages.js +11 -10
- package/dist/demo/state-caching/beverages.js.map +1 -1
- package/dist/demo/state-caching/index.js +1 -0
- package/dist/demo/state-caching/index.js.map +1 -1
- package/dist/demo/state-caching/product.js +2 -1
- package/dist/demo/state-caching/product.js.map +1 -1
- package/dist/demo/state-caching/products.js +12 -11
- package/dist/demo/state-caching/products.js.map +1 -1
- package/dist/demo/state-caching/state-caching-table.js +44 -3
- package/dist/demo/state-caching/state-caching-table.js.map +1 -1
- package/dist/demo/state-caching/state-caching-table.store.js +42 -54
- package/dist/demo/state-caching/state-caching-table.store.js.map +1 -1
- package/dist/details/expand-column.js +31 -7
- package/dist/details/expand-column.js.map +1 -1
- package/dist/details/index.js +1 -0
- package/dist/details/index.js.map +1 -1
- package/dist/editable-cell/boolean-editable-cell.js +15 -4
- package/dist/editable-cell/boolean-editable-cell.js.map +1 -1
- package/dist/editable-cell/get-action-cell.js +14 -7
- package/dist/editable-cell/get-action-cell.js.map +1 -1
- package/dist/editable-cell/get-editable-cell.js +16 -8
- package/dist/editable-cell/get-editable-cell.js.map +1 -1
- package/dist/editable-cell/get-select-editable-cell.js +19 -5
- package/dist/editable-cell/get-select-editable-cell.js.map +1 -1
- package/dist/editable-cell/index.js +1 -0
- package/dist/editable-cell/index.js.map +1 -1
- package/dist/editable-cell/text-editable-cell.js +23 -5
- package/dist/editable-cell/text-editable-cell.js.map +1 -1
- package/dist/export/export.js +38 -1
- package/dist/export/export.js.map +1 -1
- package/dist/export/export.module.css.d.ts +3 -0
- package/dist/export/index.js +1 -0
- package/dist/export/index.js.map +1 -1
- package/dist/filters/async-select/async-select-filter.js +167 -132
- package/dist/filters/async-select/async-select-filter.js.map +1 -1
- package/dist/filters/column-menu-filters.js +39 -8
- package/dist/filters/column-menu-filters.js.map +1 -1
- package/dist/filters/datetime-filter/datetime-filter.js +73 -50
- package/dist/filters/datetime-filter/datetime-filter.js.map +1 -1
- package/dist/filters/field-values-filter.js +80 -72
- package/dist/filters/field-values-filter.js.map +1 -1
- package/dist/filters/index.js +1 -0
- package/dist/filters/index.js.map +1 -1
- package/dist/filters/multiselect-filter/multiselect-filter.js +77 -73
- package/dist/filters/multiselect-filter/multiselect-filter.js.map +1 -1
- package/dist/filters/numeric-filter-extended/numeric-extended-operators.js +10 -3
- package/dist/filters/numeric-filter-extended/numeric-extended-operators.js.map +1 -1
- package/dist/filters/numeric-filter-extended/numeric-filter-extended.js +39 -16
- package/dist/filters/numeric-filter-extended/numeric-filter-extended.js.map +1 -1
- package/dist/filters/range-filter/range-filter.js +76 -72
- package/dist/filters/range-filter/range-filter.js.map +1 -1
- package/dist/filters/select-filter/object-search.js +4 -3
- package/dist/filters/select-filter/object-search.js.map +1 -1
- package/dist/filters/select-filter/operators.js +6 -5
- package/dist/filters/select-filter/operators.js.map +1 -1
- package/dist/filters/select-filter/select-filter.js +180 -145
- package/dist/filters/select-filter/select-filter.js.map +1 -1
- package/dist/filters/select-filter/value-getter.js +2 -1
- package/dist/filters/select-filter/value-getter.js.map +1 -1
- package/dist/filters/single-select/single-select-filter.js +29 -15
- package/dist/filters/single-select/single-select-filter.js.map +1 -1
- package/dist/filters/standard-filter-with-multiselect/filter-cell-ext.js +114 -67
- package/dist/filters/standard-filter-with-multiselect/filter-cell-ext.js.map +1 -1
- package/dist/filters/standard-filter-with-multiselect/filter-cell-ext.module.css.d.ts +7 -0
- package/dist/filters/standard-filter-with-multiselect/multiselect-operators.js +10 -3
- package/dist/filters/standard-filter-with-multiselect/multiselect-operators.js.map +1 -1
- package/dist/filters/standard-filter-with-multiselect/standard-filter-with-multiselect.js +77 -55
- package/dist/filters/standard-filter-with-multiselect/standard-filter-with-multiselect.js.map +1 -1
- package/dist/filters/standard-filter-with-multiselect/table-column-menu-filter-ext.js +23 -10
- package/dist/filters/standard-filter-with-multiselect/table-column-menu-filter-ext.js.map +1 -1
- package/dist/filters/time-filter/time-filter.js +63 -49
- package/dist/filters/time-filter/time-filter.js.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/select-cell/index.js +1 -0
- package/dist/select-cell/index.js.map +1 -1
- package/dist/select-cell/select-cell.js +36 -11
- package/dist/select-cell/select-cell.js.map +1 -1
- package/dist/select-cell/select-cell.module.css.d.ts +3 -0
- package/dist/table-state.js +479 -660
- package/dist/table-state.js.map +1 -1
- package/dist/table.js +235 -250
- package/dist/table.js.map +1 -1
- package/dist/table.module.css.d.ts +5 -0
- package/dist/use-observing-table-state/demo/components/use-observing-table-state-demo.js +97 -5
- package/dist/use-observing-table-state/demo/components/use-observing-table-state-demo.js.map +1 -1
- package/dist/use-observing-table-state/demo/stores/use-observing-table-state-demo.store.js +71 -97
- package/dist/use-observing-table-state/demo/stores/use-observing-table-state-demo.store.js.map +1 -1
- package/dist/use-observing-table-state/index.js +1 -0
- package/dist/use-observing-table-state/index.js.map +1 -1
- package/dist/use-observing-table-state/use-observing-table-state.js +26 -20
- package/dist/use-observing-table-state/use-observing-table-state.js.map +1 -1
- package/dist/utils/filters.js +14 -9
- package/dist/utils/filters.js.map +1 -1
- package/dist/utils/use-td-props.js +3 -2
- package/dist/utils/use-td-props.js.map +1 -1
- package/package.json +13 -13
- package/dist/filters/async-select/async-select-filter.stories.js +0 -7
- package/dist/filters/async-select/async-select-filter.stories.js.map +0 -1
- package/dist/filters/multiselect-filter/multiselect-filter.stories.js +0 -7
- package/dist/filters/multiselect-filter/multiselect-filter.stories.js.map +0 -1
- package/dist/filters/range-filter/range-filter.stories.js +0 -9
- package/dist/filters/range-filter/range-filter.stories.js.map +0 -1
- package/dist/filters/select-filter/__tests__/object-search.test.js +0 -28
- package/dist/filters/select-filter/__tests__/object-search.test.js.map +0 -1
- package/dist/filters/select-filter/select-filter.stories.js +0 -8
- package/dist/filters/select-filter/select-filter.stories.js.map +0 -1
- package/dist/filters/single-select/single-select-filter.stories.js +0 -8
- package/dist/filters/single-select/single-select-filter.stories.js.map +0 -1
- package/dist/table.stories.js +0 -12
- package/dist/table.stories.js.map +0 -1
- package/dist/use-observing-table-state/use-observing-table-state.stories.js +0 -11
- package/dist/use-observing-table-state/use-observing-table-state.stories.js.map +0 -1
- package/dist/utils/__tests__/filters.test.js +0 -24
- package/dist/utils/__tests__/filters.test.js.map +0 -1
@@ -1,70 +1,58 @@
|
|
1
|
-
|
1
|
+
function _define_property(obj, key, value) {
|
2
|
+
if (key in obj) {
|
3
|
+
Object.defineProperty(obj, key, {
|
4
|
+
value: value,
|
5
|
+
enumerable: true,
|
6
|
+
configurable: true,
|
7
|
+
writable: true
|
8
|
+
});
|
9
|
+
} else {
|
10
|
+
obj[key] = value;
|
11
|
+
}
|
12
|
+
return obj;
|
13
|
+
}
|
14
|
+
function _ts_decorate(decorators, target, key, desc) {
|
2
15
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
3
16
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
4
|
-
else for
|
17
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
5
18
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
6
|
-
}
|
19
|
+
}
|
7
20
|
import { injectable } from '@servicetitan/react-ioc';
|
8
21
|
import { InMemoryDataSource, TableState } from '../..';
|
9
22
|
import { products } from './products';
|
10
23
|
import { beverages } from './beverages';
|
11
|
-
|
12
|
-
constructor() {
|
13
|
-
Object.defineProperty(this, "productsTableState", {
|
14
|
-
enumerable: true,
|
15
|
-
configurable: true,
|
16
|
-
writable: true,
|
17
|
-
value: void 0
|
18
|
-
});
|
19
|
-
Object.defineProperty(this, "beveragesTableState", {
|
20
|
-
enumerable: true,
|
21
|
-
configurable: true,
|
22
|
-
writable: true,
|
23
|
-
value: void 0
|
24
|
-
});
|
25
|
-
Object.defineProperty(this, "tableState", {
|
26
|
-
enumerable: true,
|
27
|
-
configurable: true,
|
28
|
-
writable: true,
|
29
|
-
value: new TableState({
|
30
|
-
dataSource: this.getProductsDataSource(),
|
31
|
-
pageSize: 5,
|
32
|
-
})
|
33
|
-
});
|
34
|
-
Object.defineProperty(this, "showProducts", {
|
35
|
-
enumerable: true,
|
36
|
-
configurable: true,
|
37
|
-
writable: true,
|
38
|
-
value: () => {
|
39
|
-
this.beveragesTableState = this.tableState.exportState();
|
40
|
-
this.tableState.setDataSource(this.getProductsDataSource(), {
|
41
|
-
reset: true,
|
42
|
-
initialState: this.productsTableState,
|
43
|
-
});
|
44
|
-
}
|
45
|
-
});
|
46
|
-
Object.defineProperty(this, "showBeverages", {
|
47
|
-
enumerable: true,
|
48
|
-
configurable: true,
|
49
|
-
writable: true,
|
50
|
-
value: () => {
|
51
|
-
this.productsTableState = this.tableState.exportState();
|
52
|
-
this.tableState.setDataSource(this.getBeveragesDataSource(), {
|
53
|
-
reset: true,
|
54
|
-
initialState: this.beveragesTableState,
|
55
|
-
});
|
56
|
-
}
|
57
|
-
});
|
58
|
-
}
|
24
|
+
export class TableStore {
|
59
25
|
getProductsDataSource() {
|
60
26
|
return new InMemoryDataSource(products);
|
61
27
|
}
|
62
28
|
getBeveragesDataSource() {
|
63
29
|
return new InMemoryDataSource(beverages);
|
64
30
|
}
|
65
|
-
|
66
|
-
|
31
|
+
constructor(){
|
32
|
+
_define_property(this, "productsTableState", void 0);
|
33
|
+
_define_property(this, "beveragesTableState", void 0);
|
34
|
+
_define_property(this, "tableState", new TableState({
|
35
|
+
dataSource: this.getProductsDataSource(),
|
36
|
+
pageSize: 5
|
37
|
+
}));
|
38
|
+
_define_property(this, "showProducts", ()=>{
|
39
|
+
this.beveragesTableState = this.tableState.exportState();
|
40
|
+
this.tableState.setDataSource(this.getProductsDataSource(), {
|
41
|
+
reset: true,
|
42
|
+
initialState: this.productsTableState
|
43
|
+
});
|
44
|
+
});
|
45
|
+
_define_property(this, "showBeverages", ()=>{
|
46
|
+
this.productsTableState = this.tableState.exportState();
|
47
|
+
this.tableState.setDataSource(this.getBeveragesDataSource(), {
|
48
|
+
reset: true,
|
49
|
+
initialState: this.beveragesTableState
|
50
|
+
});
|
51
|
+
});
|
52
|
+
}
|
53
|
+
}
|
54
|
+
TableStore = _ts_decorate([
|
67
55
|
injectable()
|
68
56
|
], TableStore);
|
69
|
-
|
57
|
+
|
70
58
|
//# sourceMappingURL=state-caching-table.store.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
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"}
|
@@ -2,21 +2,45 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Button } from '@servicetitan/design-system';
|
3
3
|
import { useCallback, useMemo } from 'react';
|
4
4
|
import { TableColumn } from '../index';
|
5
|
-
export const RowExpandCell = ({ dataItem, dataIndex, expanded, tableState, className, tdProps
|
6
|
-
const onCLick = useCallback((e)
|
5
|
+
export const RowExpandCell = ({ dataItem, dataIndex, expanded, tableState, className, tdProps })=>{
|
6
|
+
const onCLick = useCallback((e)=>{
|
7
7
|
tableState === null || tableState === void 0 ? void 0 : tableState.handleExpandChange({
|
8
8
|
dataItem,
|
9
9
|
dataIndex,
|
10
10
|
value: !expanded,
|
11
11
|
syntheticEvent: e,
|
12
12
|
nativeEvent: e.nativeEvent,
|
13
|
-
target: e.target
|
13
|
+
target: e.target
|
14
14
|
});
|
15
|
-
}, [
|
16
|
-
|
15
|
+
}, [
|
16
|
+
dataItem,
|
17
|
+
dataIndex,
|
18
|
+
expanded,
|
19
|
+
tableState
|
20
|
+
]);
|
21
|
+
return /*#__PURE__*/ _jsx("td", {
|
22
|
+
className: className,
|
23
|
+
...tdProps,
|
24
|
+
children: /*#__PURE__*/ _jsx(Button, {
|
25
|
+
iconName: expanded ? 'expand_less' : 'expand_more',
|
26
|
+
"aria-label": "expand row",
|
27
|
+
size: "xsmall",
|
28
|
+
fill: "subtle",
|
29
|
+
onClick: onCLick
|
30
|
+
})
|
31
|
+
});
|
17
32
|
};
|
18
|
-
export const getRowExpandColumn = ()
|
19
|
-
|
33
|
+
export const getRowExpandColumn = ()=>/*#__PURE__*/ _jsx(TableColumn, {
|
34
|
+
field: "expanded",
|
35
|
+
title: " ",
|
36
|
+
editable: false,
|
37
|
+
sortable: false,
|
38
|
+
resizable: false,
|
39
|
+
cell: RowExpandCell,
|
40
|
+
width: "50px"
|
41
|
+
});
|
42
|
+
export const useRowExpandColumn = ()=>{
|
20
43
|
return useMemo(getRowExpandColumn, []);
|
21
44
|
};
|
45
|
+
|
22
46
|
//# sourceMappingURL=expand-column.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
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"}
|
package/dist/details/index.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../src/details/index.ts"],"sourcesContent":["export * from './expand-column';\n"],"names":[],"mappings":"AAAA,cAAc,kBAAkB"}
|
@@ -2,13 +2,24 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { observer } from 'mobx-react';
|
3
3
|
import { Checkbox } from '@servicetitan/design-system';
|
4
4
|
import { getEditableCell } from './get-editable-cell';
|
5
|
-
const Editor = observer(({ fieldState: { value, onChange }, className, tdProps })
|
6
|
-
const handleChange = (_0, checked)
|
5
|
+
const Editor = observer(({ fieldState: { value, onChange }, className, tdProps })=>{
|
6
|
+
const handleChange = (_0, checked)=>{
|
7
7
|
onChange(checked);
|
8
8
|
};
|
9
|
-
return
|
9
|
+
return /*#__PURE__*/ _jsx("td", {
|
10
|
+
className: className,
|
11
|
+
...tdProps,
|
12
|
+
children: /*#__PURE__*/ _jsx(Checkbox, {
|
13
|
+
checked: value,
|
14
|
+
onChange: handleChange,
|
15
|
+
style: {
|
16
|
+
marginRight: 0
|
17
|
+
}
|
18
|
+
})
|
19
|
+
});
|
10
20
|
});
|
11
21
|
export const BooleanEditableCell = getEditableCell({
|
12
|
-
editor: Editor
|
22
|
+
editor: Editor
|
13
23
|
});
|
24
|
+
|
14
25
|
//# sourceMappingURL=boolean-editable-cell.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
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,18 +1,25 @@
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
2
2
|
import { TableCell } from '@servicetitan/design-system';
|
3
3
|
export function getActionCell({ view: ViewAction, edit: EditAction }) {
|
4
|
-
return (props)
|
5
|
-
var
|
4
|
+
return (props)=>{
|
5
|
+
var _tableState_dataSource;
|
6
6
|
const { tableState, dataItem, rowType } = props;
|
7
7
|
if (rowType !== 'data') {
|
8
|
-
return _jsx(TableCell, {
|
8
|
+
return /*#__PURE__*/ _jsx(TableCell, {
|
9
|
+
...props
|
10
|
+
});
|
9
11
|
}
|
10
|
-
const editingForm = (
|
11
|
-
tableState.inEdit.get(tableState.dataSource.idSelector(dataItem));
|
12
|
+
const editingForm = (tableState === null || tableState === void 0 ? void 0 : (_tableState_dataSource = tableState.dataSource) === null || _tableState_dataSource === void 0 ? void 0 : _tableState_dataSource.idSelector) && tableState.inEdit.get(tableState.dataSource.idSelector(dataItem));
|
12
13
|
if (editingForm) {
|
13
|
-
return _jsx(EditAction, {
|
14
|
+
return /*#__PURE__*/ _jsx(EditAction, {
|
15
|
+
...props,
|
16
|
+
formState: editingForm.form
|
17
|
+
});
|
14
18
|
}
|
15
|
-
return _jsx(ViewAction, {
|
19
|
+
return /*#__PURE__*/ _jsx(ViewAction, {
|
20
|
+
...props
|
21
|
+
});
|
16
22
|
};
|
17
23
|
}
|
24
|
+
|
18
25
|
//# sourceMappingURL=get-action-cell.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../src/editable-cell/get-action-cell.tsx"],"sourcesContent":["import { ComponentType } from 'react';\n\nimport { TableCell } from '@servicetitan/design-system';\nimport { TableCellProps } from '../table';\n\nimport { PossibleFormState } from '../table-state';\n\nexport interface EditActionProps<T> extends TableCellProps<T> {\n formState: PossibleFormState<T>;\n}\n\ninterface GetActionCellParams<T> {\n view: ComponentType<TableCellProps<T>>;\n edit: ComponentType<EditActionProps<T>>;\n}\n\nexport function getActionCell<T>({ view: ViewAction, edit: EditAction }: GetActionCellParams<T>) {\n return (props: TableCellProps<T>) => {\n const { tableState, dataItem, rowType } = props;\n\n if (rowType !== 'data') {\n return <TableCell {...props} />;\n }\n\n const editingForm =\n tableState?.dataSource?.idSelector &&\n tableState.inEdit.get(tableState.dataSource.idSelector(dataItem));\n\n if (editingForm) {\n return <EditAction {...props} formState={editingForm.form} />;\n }\n\n return <ViewAction {...props} />;\n };\n}\n"],"names":["TableCell","getActionCell","view","ViewAction","edit","EditAction","props","tableState","dataItem","rowType","editingForm","dataSource","idSelector","inEdit","get","formState","form"],"mappings":";AAEA,SAASA,SAAS,QAAQ,8BAA8B;AAcxD,OAAO,SAASC,cAAiB,EAAEC,MAAMC,UAAU,EAAEC,MAAMC,UAAU,EAA0B;IAC3F,OAAO,CAACC;YAQAC;QAPJ,MAAM,EAAEA,UAAU,EAAEC,QAAQ,EAAEC,OAAO,EAAE,GAAGH;QAE1C,IAAIG,YAAY,QAAQ;YACpB,qBAAO,KAACT;gBAAW,GAAGM,KAAK;;QAC/B;QAEA,MAAMI,cACFH,CAAAA,uBAAAA,kCAAAA,yBAAAA,WAAYI,UAAU,cAAtBJ,6CAAAA,uBAAwBK,UAAU,KAClCL,WAAWM,MAAM,CAACC,GAAG,CAACP,WAAWI,UAAU,CAACC,UAAU,CAACJ;QAE3D,IAAIE,aAAa;YACb,qBAAO,KAACL;gBAAY,GAAGC,KAAK;gBAAES,WAAWL,YAAYM,IAAI;;QAC7D;QAEA,qBAAO,KAACb;YAAY,GAAGG,KAAK;;IAChC;AACJ"}
|
@@ -1,18 +1,26 @@
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
2
2
|
import { TableCell } from '@servicetitan/design-system';
|
3
|
-
export function getEditableCell({ viewer: Viewer = TableCell, editor: Editor
|
4
|
-
return (props)
|
5
|
-
var
|
3
|
+
export function getEditableCell({ viewer: Viewer = TableCell, editor: Editor }) {
|
4
|
+
return (props)=>{
|
5
|
+
var _tableState_dataSource;
|
6
6
|
const { tableState, field, dataItem, rowType } = props;
|
7
7
|
if (rowType !== 'data') {
|
8
|
-
return _jsx(TableCell, {
|
8
|
+
return /*#__PURE__*/ _jsx(TableCell, {
|
9
|
+
...props
|
10
|
+
});
|
9
11
|
}
|
10
|
-
const editingForm = (
|
11
|
-
tableState.inEdit.get(tableState.dataSource.idSelector(dataItem));
|
12
|
+
const editingForm = (tableState === null || tableState === void 0 ? void 0 : (_tableState_dataSource = tableState.dataSource) === null || _tableState_dataSource === void 0 ? void 0 : _tableState_dataSource.idSelector) && tableState.inEdit.get(tableState.dataSource.idSelector(dataItem));
|
12
13
|
if (field && editingForm && (!editingForm.field || editingForm.field === field)) {
|
13
|
-
return
|
14
|
+
return /*#__PURE__*/ _jsx(Editor, {
|
15
|
+
...props,
|
16
|
+
formState: editingForm.form,
|
17
|
+
fieldState: editingForm.form.$[field]
|
18
|
+
});
|
14
19
|
}
|
15
|
-
return _jsx(Viewer, {
|
20
|
+
return /*#__PURE__*/ _jsx(Viewer, {
|
21
|
+
...props
|
22
|
+
});
|
16
23
|
};
|
17
24
|
}
|
25
|
+
|
18
26
|
//# sourceMappingURL=get-editable-cell.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../src/editable-cell/get-editable-cell.tsx"],"sourcesContent":["import { ComponentType } from 'react';\n\nimport { FieldState } from 'formstate';\n\nimport { TableCell } from '@servicetitan/design-system';\nimport { TableCellProps } from '../table';\nimport { PossibleFormState } from '../table-state';\n\nexport interface EditorProps<T, TRow = unknown> extends TableCellProps<any> {\n fieldState: FieldState<T>;\n formState: PossibleFormState<TRow>;\n}\n\ninterface GetEditableCellParams<T> {\n viewer?: ComponentType<TableCellProps<any>>;\n editor: ComponentType<EditorProps<T>>;\n}\n\nexport function getEditableCell<T>({\n viewer: Viewer = TableCell,\n editor: Editor,\n}: GetEditableCellParams<T>) {\n return (props: TableCellProps<any>) => {\n const { tableState, field, dataItem, rowType } = props;\n\n if (rowType !== 'data') {\n return <TableCell {...props} />;\n }\n\n const editingForm =\n tableState?.dataSource?.idSelector &&\n tableState.inEdit.get(tableState.dataSource.idSelector(dataItem));\n\n if (field && editingForm && (!editingForm.field || editingForm.field === field)) {\n return (\n <Editor\n {...props}\n formState={editingForm.form}\n fieldState={editingForm.form.$[field]}\n />\n );\n }\n\n return <Viewer {...props} />;\n };\n}\n"],"names":["TableCell","getEditableCell","viewer","Viewer","editor","Editor","props","tableState","field","dataItem","rowType","editingForm","dataSource","idSelector","inEdit","get","formState","form","fieldState","$"],"mappings":";AAIA,SAASA,SAAS,QAAQ,8BAA8B;AAcxD,OAAO,SAASC,gBAAmB,EAC/BC,QAAQC,SAASH,SAAS,EAC1BI,QAAQC,MAAM,EACS;IACvB,OAAO,CAACC;YAQAC;QAPJ,MAAM,EAAEA,UAAU,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,OAAO,EAAE,GAAGJ;QAEjD,IAAII,YAAY,QAAQ;YACpB,qBAAO,KAACV;gBAAW,GAAGM,KAAK;;QAC/B;QAEA,MAAMK,cACFJ,CAAAA,uBAAAA,kCAAAA,yBAAAA,WAAYK,UAAU,cAAtBL,6CAAAA,uBAAwBM,UAAU,KAClCN,WAAWO,MAAM,CAACC,GAAG,CAACR,WAAWK,UAAU,CAACC,UAAU,CAACJ;QAE3D,IAAID,SAASG,eAAgB,CAAA,CAACA,YAAYH,KAAK,IAAIG,YAAYH,KAAK,KAAKA,KAAI,GAAI;YAC7E,qBACI,KAACH;gBACI,GAAGC,KAAK;gBACTU,WAAWL,YAAYM,IAAI;gBAC3BC,YAAYP,YAAYM,IAAI,CAACE,CAAC,CAACX,MAAM;;QAGjD;QAEA,qBAAO,KAACL;YAAQ,GAAGG,KAAK;;IAC5B;AACJ"}
|
@@ -4,16 +4,30 @@ import { DropDownList } from '@progress/kendo-react-dropdowns';
|
|
4
4
|
import { getEditableCell } from './get-editable-cell';
|
5
5
|
import classNames from 'classnames';
|
6
6
|
export function getSelectEditableCell({ options, viewer }) {
|
7
|
-
const Editor = observer(({ fieldState: { value, onChange, hasError, error }, className, tdProps })
|
8
|
-
const selected = options.find(option
|
9
|
-
const handleChange = (event)
|
7
|
+
const Editor = observer(({ fieldState: { value, onChange, hasError, error }, className, tdProps })=>{
|
8
|
+
const selected = options.find((option)=>option.value === value);
|
9
|
+
const handleChange = (event)=>{
|
10
10
|
onChange(event.target.value.value);
|
11
11
|
};
|
12
|
-
return
|
12
|
+
return /*#__PURE__*/ _jsx("td", {
|
13
|
+
className: classNames('of-visible', className),
|
14
|
+
...tdProps,
|
15
|
+
children: /*#__PURE__*/ _jsx(DropDownList, {
|
16
|
+
data: options,
|
17
|
+
value: selected,
|
18
|
+
onChange: handleChange,
|
19
|
+
dataItemKey: "value",
|
20
|
+
textField: "text",
|
21
|
+
valid: !hasError,
|
22
|
+
validationMessage: error,
|
23
|
+
className: "w-100"
|
24
|
+
})
|
25
|
+
});
|
13
26
|
});
|
14
27
|
return getEditableCell({
|
15
28
|
viewer,
|
16
|
-
editor: Editor
|
29
|
+
editor: Editor
|
17
30
|
});
|
18
31
|
}
|
32
|
+
|
19
33
|
//# sourceMappingURL=get-select-editable-cell.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../src/editable-cell/get-select-editable-cell.tsx"],"sourcesContent":["import { ComponentType, FC } from 'react';\n\nimport { observer } from 'mobx-react';\n\nimport { DropDownList, DropDownListChangeEvent } from '@progress/kendo-react-dropdowns';\n\nimport { TableCellProps } from '../table';\nimport { getEditableCell, EditorProps } from './get-editable-cell';\n\nimport { Option } from '@servicetitan/form';\n\nimport classNames from 'classnames';\n\ninterface GetSelectEditableCellParams<T> {\n options: Option<T>[];\n viewer?: ComponentType<TableCellProps<any>>;\n}\n\nexport function getSelectEditableCell<T>({ options, viewer }: GetSelectEditableCellParams<T>) {\n const Editor = observer<FC<EditorProps<T>>>(\n ({ fieldState: { value, onChange, hasError, error }, className, tdProps }) => {\n const selected = options.find(option => option.value === value);\n\n const handleChange = (event: DropDownListChangeEvent) => {\n onChange(event.target.value.value);\n };\n\n return (\n <td className={classNames('of-visible', className)} {...tdProps}>\n <DropDownList\n data={options}\n value={selected}\n onChange={handleChange}\n dataItemKey=\"value\"\n textField=\"text\"\n valid={!hasError}\n validationMessage={error}\n className=\"w-100\"\n />\n </td>\n );\n }\n );\n\n return getEditableCell({\n viewer,\n editor: Editor,\n });\n}\n"],"names":["observer","DropDownList","getEditableCell","classNames","getSelectEditableCell","options","viewer","Editor","fieldState","value","onChange","hasError","error","className","tdProps","selected","find","option","handleChange","event","target","td","data","dataItemKey","textField","valid","validationMessage","editor"],"mappings":";AAEA,SAASA,QAAQ,QAAQ,aAAa;AAEtC,SAASC,YAAY,QAAiC,kCAAkC;AAGxF,SAASC,eAAe,QAAqB,sBAAsB;AAInE,OAAOC,gBAAgB,aAAa;AAOpC,OAAO,SAASC,sBAAyB,EAAEC,OAAO,EAAEC,MAAM,EAAkC;IACxF,MAAMC,SAASP,SACX,CAAC,EAAEQ,YAAY,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,KAAK,EAAE,EAAEC,SAAS,EAAEC,OAAO,EAAE;QACrE,MAAMC,WAAWV,QAAQW,IAAI,CAACC,CAAAA,SAAUA,OAAOR,KAAK,KAAKA;QAEzD,MAAMS,eAAe,CAACC;YAClBT,SAASS,MAAMC,MAAM,CAACX,KAAK,CAACA,KAAK;QACrC;QAEA,qBACI,KAACY;YAAGR,WAAWV,WAAW,cAAcU;YAAa,GAAGC,OAAO;sBAC3D,cAAA,KAACb;gBACGqB,MAAMjB;gBACNI,OAAOM;gBACPL,UAAUQ;gBACVK,aAAY;gBACZC,WAAU;gBACVC,OAAO,CAACd;gBACRe,mBAAmBd;gBACnBC,WAAU;;;IAI1B;IAGJ,OAAOX,gBAAgB;QACnBI;QACAqB,QAAQpB;IACZ;AACJ"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../src/editable-cell/index.ts"],"sourcesContent":["export * from './get-action-cell';\nexport * from './get-editable-cell';\nexport * from './text-editable-cell';\nexport * from './boolean-editable-cell';\nexport * from './get-select-editable-cell';\n"],"names":[],"mappings":"AAAA,cAAc,oBAAoB;AAClC,cAAc,sBAAsB;AACpC,cAAc,uBAAuB;AACrC,cAAc,0BAA0B;AACxC,cAAc,6BAA6B"}
|
@@ -3,18 +3,36 @@ import { observer } from 'mobx-react';
|
|
3
3
|
import { Input } from '@progress/kendo-react-inputs';
|
4
4
|
import { getEditableCell } from './get-editable-cell';
|
5
5
|
import { Label } from '@servicetitan/form';
|
6
|
-
export function getTextEditableCell({ placeholder, isDisabled
|
7
|
-
const Editor = observer(({ fieldState: { value, onChange, hasError, error }, dataItem, className, tdProps })
|
8
|
-
const handleChange = (event)
|
6
|
+
export function getTextEditableCell({ placeholder, isDisabled } = {}) {
|
7
|
+
const Editor = observer(({ fieldState: { value, onChange, hasError, error }, dataItem, className, tdProps })=>{
|
8
|
+
const handleChange = (event)=>{
|
9
9
|
if (typeof event.target.value === 'string') {
|
10
10
|
onChange(event.target.value);
|
11
11
|
}
|
12
12
|
};
|
13
|
-
return
|
13
|
+
return /*#__PURE__*/ _jsxs("td", {
|
14
|
+
className: className,
|
15
|
+
...tdProps,
|
16
|
+
children: [
|
17
|
+
/*#__PURE__*/ _jsx(Input, {
|
18
|
+
value: value,
|
19
|
+
onChange: handleChange,
|
20
|
+
valid: !hasError,
|
21
|
+
placeholder: placeholder,
|
22
|
+
disabled: isDisabled === null || isDisabled === void 0 ? void 0 : isDisabled(dataItem)
|
23
|
+
}),
|
24
|
+
hasError && /*#__PURE__*/ _jsx(Label, {
|
25
|
+
label: "",
|
26
|
+
hasError: true,
|
27
|
+
error: error
|
28
|
+
})
|
29
|
+
]
|
30
|
+
});
|
14
31
|
});
|
15
32
|
return getEditableCell({
|
16
|
-
editor: Editor
|
33
|
+
editor: Editor
|
17
34
|
});
|
18
35
|
}
|
19
36
|
export const TextEditableCell = getTextEditableCell();
|
37
|
+
|
20
38
|
//# sourceMappingURL=text-editable-cell.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../src/editable-cell/text-editable-cell.tsx"],"sourcesContent":["import { FC } from 'react';\n\nimport { observer } from 'mobx-react';\n\nimport { Input, InputChangeEvent } from '@progress/kendo-react-inputs';\n\nimport { getEditableCell, EditorProps } from './get-editable-cell';\n\nimport { Label } from '@servicetitan/form';\n\ninterface GetTextEditableCellParams<T> {\n placeholder?: string;\n isDisabled?(dataItem: T): boolean;\n}\n\nexport function getTextEditableCell<T>({\n placeholder,\n isDisabled,\n}: GetTextEditableCellParams<T> = {}) {\n const Editor = observer<FC<EditorProps<string>>>(\n ({ fieldState: { value, onChange, hasError, error }, dataItem, className, tdProps }) => {\n const handleChange = (event: InputChangeEvent) => {\n if (typeof event.target.value === 'string') {\n onChange(event.target.value);\n }\n };\n\n return (\n <td className={className} {...tdProps}>\n <Input\n value={value}\n onChange={handleChange}\n valid={!hasError}\n placeholder={placeholder}\n disabled={isDisabled?.(dataItem)}\n />\n {hasError && <Label label=\"\" hasError error={error} />}\n </td>\n );\n }\n );\n\n return getEditableCell({\n editor: Editor,\n });\n}\n\nexport const TextEditableCell = getTextEditableCell();\n"],"names":["observer","Input","getEditableCell","Label","getTextEditableCell","placeholder","isDisabled","Editor","fieldState","value","onChange","hasError","error","dataItem","className","tdProps","handleChange","event","target","td","valid","disabled","label","editor","TextEditableCell"],"mappings":";AAEA,SAASA,QAAQ,QAAQ,aAAa;AAEtC,SAASC,KAAK,QAA0B,+BAA+B;AAEvE,SAASC,eAAe,QAAqB,sBAAsB;AAEnE,SAASC,KAAK,QAAQ,qBAAqB;AAO3C,OAAO,SAASC,oBAAuB,EACnCC,WAAW,EACXC,UAAU,EACiB,GAAG,CAAC,CAAC;IAChC,MAAMC,SAASP,SACX,CAAC,EAAEQ,YAAY,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,KAAK,EAAE,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAE;QAC/E,MAAMC,eAAe,CAACC;YAClB,IAAI,OAAOA,MAAMC,MAAM,CAACT,KAAK,KAAK,UAAU;gBACxCC,SAASO,MAAMC,MAAM,CAACT,KAAK;YAC/B;QACJ;QAEA,qBACI,MAACU;YAAGL,WAAWA;YAAY,GAAGC,OAAO;;8BACjC,KAACd;oBACGQ,OAAOA;oBACPC,UAAUM;oBACVI,OAAO,CAACT;oBACRN,aAAaA;oBACbgB,QAAQ,EAAEf,uBAAAA,iCAAAA,WAAaO;;gBAE1BF,0BAAY,KAACR;oBAAMmB,OAAM;oBAAGX,QAAQ;oBAACC,OAAOA;;;;IAGzD;IAGJ,OAAOV,gBAAgB;QACnBqB,QAAQhB;IACZ;AACJ;AAEA,OAAO,MAAMiB,mBAAmBpB,sBAAsB"}
|
package/dist/export/export.js
CHANGED
@@ -2,5 +2,42 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Button, Dropdown, Icon } from '@servicetitan/design-system';
|
3
3
|
import { formatNumber } from 'accounting';
|
4
4
|
import * as Styles from './export.module.css';
|
5
|
-
export const Export = ({ className, totalCount, exportPdf, exportExcel })
|
5
|
+
export const Export = ({ className, totalCount, exportPdf, exportExcel })=>/*#__PURE__*/ _jsx("div", {
|
6
|
+
className: className,
|
7
|
+
children: /*#__PURE__*/ _jsx(Dropdown, {
|
8
|
+
trigger: /*#__PURE__*/ _jsxs(Button, {
|
9
|
+
className: "qa-export-dropdown",
|
10
|
+
iconName: "expand_more",
|
11
|
+
iconPosition: "right",
|
12
|
+
children: [
|
13
|
+
/*#__PURE__*/ _jsx(Icon, {
|
14
|
+
name: "file_download"
|
15
|
+
}),
|
16
|
+
/*#__PURE__*/ _jsxs("span", {
|
17
|
+
children: [
|
18
|
+
"Download",
|
19
|
+
!!totalCount && ` (${formatNumber(totalCount, 0)})`
|
20
|
+
]
|
21
|
+
})
|
22
|
+
]
|
23
|
+
}),
|
24
|
+
icon: null,
|
25
|
+
children: /*#__PURE__*/ _jsxs(Dropdown.Menu, {
|
26
|
+
className: Styles.dropdown,
|
27
|
+
children: [
|
28
|
+
exportPdf && /*#__PURE__*/ _jsx(Dropdown.Item, {
|
29
|
+
className: "qa-export-pdf",
|
30
|
+
text: ".PDF",
|
31
|
+
onClick: exportPdf
|
32
|
+
}),
|
33
|
+
exportExcel && /*#__PURE__*/ _jsx(Dropdown.Item, {
|
34
|
+
className: "qa-export-excel",
|
35
|
+
text: ".XLSX",
|
36
|
+
onClick: exportExcel
|
37
|
+
})
|
38
|
+
]
|
39
|
+
})
|
40
|
+
})
|
41
|
+
});
|
42
|
+
|
6
43
|
//# sourceMappingURL=export.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../src/export/export.tsx"],"sourcesContent":["import { FC } from 'react';\nimport { Button, Dropdown, Icon } from '@servicetitan/design-system';\nimport { formatNumber } from 'accounting';\n\nimport * as Styles from './export.module.css';\n\ninterface ExportProps {\n className?: string;\n totalCount?: number;\n exportPdf?: () => void;\n exportExcel?: () => void;\n}\n\nexport const Export: FC<ExportProps> = ({ className, totalCount, exportPdf, exportExcel }) => (\n <div className={className}>\n <Dropdown\n trigger={\n <Button className=\"qa-export-dropdown\" iconName=\"expand_more\" iconPosition=\"right\">\n <Icon name=\"file_download\" />\n <span>Download{!!totalCount && ` (${formatNumber(totalCount, 0)})`}</span>\n </Button>\n }\n icon={null}\n >\n <Dropdown.Menu className={Styles.dropdown}>\n {exportPdf && (\n <Dropdown.Item className=\"qa-export-pdf\" text=\".PDF\" onClick={exportPdf} />\n )}\n {exportExcel && (\n <Dropdown.Item className=\"qa-export-excel\" text=\".XLSX\" onClick={exportExcel} />\n )}\n </Dropdown.Menu>\n </Dropdown>\n </div>\n);\n"],"names":["Button","Dropdown","Icon","formatNumber","Styles","Export","className","totalCount","exportPdf","exportExcel","div","trigger","iconName","iconPosition","name","span","icon","Menu","dropdown","Item","text","onClick"],"mappings":";AACA,SAASA,MAAM,EAAEC,QAAQ,EAAEC,IAAI,QAAQ,8BAA8B;AACrE,SAASC,YAAY,QAAQ,aAAa;AAE1C,YAAYC,YAAY,sBAAsB;AAS9C,OAAO,MAAMC,SAA0B,CAAC,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,EAAEC,WAAW,EAAE,iBACrF,KAACC;QAAIJ,WAAWA;kBACZ,cAAA,KAACL;YACGU,uBACI,MAACX;gBAAOM,WAAU;gBAAqBM,UAAS;gBAAcC,cAAa;;kCACvE,KAACX;wBAAKY,MAAK;;kCACX,MAACC;;4BAAK;4BAAS,CAAC,CAACR,cAAc,CAAC,EAAE,EAAEJ,aAAaI,YAAY,GAAG,CAAC,CAAC;;;;;YAG1ES,MAAM;sBAEN,cAAA,MAACf,SAASgB,IAAI;gBAACX,WAAWF,OAAOc,QAAQ;;oBACpCV,2BACG,KAACP,SAASkB,IAAI;wBAACb,WAAU;wBAAgBc,MAAK;wBAAOC,SAASb;;oBAEjEC,6BACG,KAACR,SAASkB,IAAI;wBAACb,WAAU;wBAAkBc,MAAK;wBAAQC,SAASZ;;;;;OAKnF"}
|
package/dist/export/index.js
CHANGED
package/dist/export/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../src/export/index.ts"],"sourcesContent":["export * from './export';\n"],"names":[],"mappings":"AAAA,cAAc,WAAW"}
|