@servicetitan/dte-pdf-editor 1.92.1 → 1.92.2
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/components/field-config-panel/field-sidebar.d.ts.map +1 -1
- package/dist/components/field-config-panel/field-sidebar.js +8 -4
- package/dist/components/field-config-panel/field-sidebar.js.map +1 -1
- package/dist/components/field-sidebar/calculated-field-type-list.d.ts.map +1 -1
- package/dist/components/field-sidebar/calculated-field-type-list.js +1 -1
- package/dist/components/field-sidebar/calculated-field-type-list.js.map +1 -1
- package/dist/components/field-sidebar/data-model-field-type-list.d.ts +15 -1
- package/dist/components/field-sidebar/data-model-field-type-list.d.ts.map +1 -1
- package/dist/components/field-sidebar/data-model-field-type-list.js +54 -10
- package/dist/components/field-sidebar/data-model-field-type-list.js.map +1 -1
- package/dist/components/field-sidebar/e-sign-field-type-list.d.ts.map +1 -1
- package/dist/components/field-sidebar/e-sign-field-type-list.js +1 -1
- package/dist/components/field-sidebar/e-sign-field-type-list.js.map +1 -1
- package/dist/components/field-sidebar/field-sidebar.d.ts +7 -0
- package/dist/components/field-sidebar/field-sidebar.d.ts.map +1 -1
- package/dist/components/field-sidebar/field-sidebar.js +8 -11
- package/dist/components/field-sidebar/field-sidebar.js.map +1 -1
- package/dist/components/field-sidebar/field-type.d.ts +0 -2
- package/dist/components/field-sidebar/field-type.d.ts.map +1 -1
- package/dist/components/field-sidebar/field-type.js +2 -2
- package/dist/components/field-sidebar/field-type.js.map +1 -1
- package/dist/components/field-sidebar/fillable-field-type-list.d.ts.map +1 -1
- package/dist/components/field-sidebar/fillable-field-type-list.js +1 -1
- package/dist/components/field-sidebar/fillable-field-type-list.js.map +1 -1
- package/dist/components/field-sidebar/form-fields-type-list.d.ts +28 -5
- package/dist/components/field-sidebar/form-fields-type-list.d.ts.map +1 -1
- package/dist/components/field-sidebar/form-fields-type-list.js +27 -6
- package/dist/components/field-sidebar/form-fields-type-list.js.map +1 -1
- package/dist/components/field-sidebar/generic-field-type-list.d.ts.map +1 -1
- package/dist/components/field-sidebar/generic-field-type-list.js +1 -1
- package/dist/components/field-sidebar/generic-field-type-list.js.map +1 -1
- package/dist/components/pdf-canvas/canvas-controls.d.ts +15 -9
- package/dist/components/pdf-canvas/canvas-controls.d.ts.map +1 -1
- package/dist/components/pdf-canvas/canvas-controls.js +14 -4
- package/dist/components/pdf-canvas/canvas-controls.js.map +1 -1
- package/dist/components/pdf-canvas/pdf-canvas.d.ts +2 -6
- package/dist/components/pdf-canvas/pdf-canvas.d.ts.map +1 -1
- package/dist/components/pdf-canvas/pdf-canvas.js +5 -11
- package/dist/components/pdf-canvas/pdf-canvas.js.map +1 -1
- package/dist/components/pdf-editor/pdf-editor.d.ts +0 -2
- package/dist/components/pdf-editor/pdf-editor.d.ts.map +1 -1
- package/dist/components/pdf-editor/pdf-editor.js +4 -3
- package/dist/components/pdf-editor/pdf-editor.js.map +1 -1
- package/dist/components/pdf-fields-overlay/pdf-fields-overlay.js +1 -4
- package/dist/components/pdf-fields-overlay/pdf-fields-overlay.js.map +1 -1
- package/dist/components/pdf-fields-overlay/pdf-overlay-field-e-sign.d.ts.map +1 -1
- package/dist/components/pdf-fields-overlay/pdf-overlay-field-e-sign.js +2 -3
- package/dist/components/pdf-fields-overlay/pdf-overlay-field-e-sign.js.map +1 -1
- package/dist/components/pdf-fields-overlay/pdf-overlay-field.d.ts.map +1 -1
- package/dist/components/pdf-fields-overlay/pdf-overlay-field.js +2 -4
- package/dist/components/pdf-fields-overlay/pdf-overlay-field.js.map +1 -1
- package/dist/components/pdf-view/pdf-view-e-sign.d.ts.map +1 -1
- package/dist/components/pdf-view/pdf-view-e-sign.js +2 -3
- package/dist/components/pdf-view/pdf-view-e-sign.js.map +1 -1
- package/dist/components/pdf-view/pdf-view-field-container.d.ts.map +1 -1
- package/dist/components/pdf-view/pdf-view-field-container.js +3 -10
- package/dist/components/pdf-view/pdf-view-field-container.js.map +1 -1
- package/dist/components/pdf-view/pdf-view-fillable.js +1 -1
- package/dist/components/pdf-view/pdf-view-fillable.js.map +1 -1
- package/dist/components/pdf-view/pdf-view.d.ts +0 -5
- package/dist/components/pdf-view/pdf-view.d.ts.map +1 -1
- package/dist/components/pdf-view/pdf-view.js +24 -51
- package/dist/components/pdf-view/pdf-view.js.map +1 -1
- package/dist/constants/field.constants.d.ts.map +1 -1
- package/dist/constants/field.constants.js +6 -27
- package/dist/constants/field.constants.js.map +1 -1
- package/dist/constants/menu-group.d.ts +5 -0
- package/dist/constants/menu-group.d.ts.map +1 -1
- package/dist/constants/menu-group.js +5 -2
- package/dist/constants/menu-group.js.map +1 -1
- package/dist/hooks/index.d.ts +0 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +0 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useFormFields.d.ts +3 -1
- package/dist/hooks/useFormFields.d.ts.map +1 -1
- package/dist/hooks/useFormFields.js +20 -3
- package/dist/hooks/useFormFields.js.map +1 -1
- package/dist/hooks/useZoom.d.ts +0 -2
- package/dist/hooks/useZoom.d.ts.map +1 -1
- package/dist/hooks/useZoom.js +6 -18
- package/dist/hooks/useZoom.js.map +1 -1
- package/dist/interface/types.d.ts +0 -2
- package/dist/interface/types.d.ts.map +1 -1
- package/dist/interface/types.js.map +1 -1
- package/dist/styles/field-type.css +5 -0
- package/dist/styles/formula-modal.css +17 -0
- package/dist/styles/pdf-canvas.css +15 -91
- package/dist/styles/pdf-editor.css +0 -1
- package/dist/styles/pdf-field-overlay.css +78 -109
- package/dist/styles/variables.css +0 -3
- package/dist/utils/field/get-navigable-fields.utils.js +1 -1
- package/dist/utils/field/get-navigable-fields.utils.js.map +1 -1
- package/dist/utils/field/index.d.ts +0 -1
- package/dist/utils/field/index.d.ts.map +1 -1
- package/dist/utils/field/index.js +0 -1
- package/dist/utils/field/index.js.map +1 -1
- package/dist/utils/pdf/index.d.ts +0 -1
- package/dist/utils/pdf/index.d.ts.map +1 -1
- package/dist/utils/pdf/index.js +0 -1
- package/dist/utils/pdf/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/field-config-panel/field-sidebar.tsx +24 -8
- package/src/components/field-sidebar/calculated-field-type-list.tsx +0 -1
- package/src/components/field-sidebar/data-model-field-type-list.tsx +143 -29
- package/src/components/field-sidebar/e-sign-field-type-list.tsx +0 -1
- package/src/components/field-sidebar/field-sidebar.tsx +19 -18
- package/src/components/field-sidebar/field-type.tsx +3 -13
- package/src/components/field-sidebar/fillable-field-type-list.tsx +0 -1
- package/src/components/field-sidebar/form-fields-type-list.tsx +137 -95
- package/src/components/field-sidebar/generic-field-type-list.tsx +0 -1
- package/src/components/pdf-canvas/canvas-controls.tsx +128 -30
- package/src/components/pdf-canvas/pdf-canvas.tsx +8 -18
- package/src/components/pdf-editor/pdf-editor.tsx +5 -7
- package/src/components/pdf-fields-overlay/pdf-fields-overlay.tsx +1 -1
- package/src/components/pdf-fields-overlay/pdf-overlay-field-e-sign.tsx +6 -8
- package/src/components/pdf-fields-overlay/pdf-overlay-field.tsx +1 -17
- package/src/components/pdf-view/pdf-view-e-sign.tsx +6 -8
- package/src/components/pdf-view/pdf-view-field-container.tsx +1 -21
- package/src/components/pdf-view/pdf-view-fillable.tsx +1 -1
- package/src/components/pdf-view/pdf-view.tsx +95 -156
- package/src/constants/field.constants.ts +6 -28
- package/src/constants/menu-group.ts +5 -2
- package/src/hooks/index.ts +0 -1
- package/src/hooks/useFormFields.ts +24 -2
- package/src/hooks/useZoom.ts +8 -20
- package/src/interface/types.ts +0 -3
- package/src/styles/field-type.css +5 -0
- package/src/styles/formula-modal.css +17 -0
- package/src/styles/pdf-canvas.css +15 -91
- package/src/styles/pdf-editor.css +0 -1
- package/src/styles/pdf-field-overlay.css +78 -109
- package/src/styles/variables.css +0 -3
- package/src/utils/field/get-navigable-fields.utils.ts +1 -1
- package/src/utils/field/index.ts +0 -1
- package/src/utils/pdf/index.ts +0 -1
- package/dist/hooks/usePinchZoom.d.ts +0 -14
- package/dist/hooks/usePinchZoom.d.ts.map +0 -1
- package/dist/hooks/usePinchZoom.js +0 -58
- package/dist/hooks/usePinchZoom.js.map +0 -1
- package/dist/utils/field/get-field-type-option.utils.d.ts +0 -3
- package/dist/utils/field/get-field-type-option.utils.d.ts.map +0 -1
- package/dist/utils/field/get-field-type-option.utils.js +0 -10
- package/dist/utils/field/get-field-type-option.utils.js.map +0 -1
- package/dist/utils/pdf/pinch-zoom.utils.d.ts +0 -6
- package/dist/utils/pdf/pinch-zoom.utils.d.ts.map +0 -1
- package/dist/utils/pdf/pinch-zoom.utils.js +0 -18
- package/dist/utils/pdf/pinch-zoom.utils.js.map +0 -1
- package/src/hooks/usePinchZoom.ts +0 -86
- package/src/utils/field/__tests__/get-field-type-option.utils.test.ts +0 -53
- package/src/utils/field/get-field-type-option.utils.ts +0 -16
- package/src/utils/pdf/__tests__/pinch-zoom.utils.test.ts +0 -58
- package/src/utils/pdf/pinch-zoom.utils.ts +0 -30
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-sidebar.d.ts","sourceRoot":"","sources":["../../../src/components/field-config-panel/field-sidebar.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAA+B,MAAM,OAAO,CAAC;AACxD,OAAO,EACH,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EAChB,MAAM,uBAAuB,CAAC;AAO/B,UAAU,iBAAiB;IACvB,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,kBAAkB,CAAC,EAAE,mBAAmB,CAAC;IACzC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"field-sidebar.d.ts","sourceRoot":"","sources":["../../../src/components/field-config-panel/field-sidebar.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAA+B,MAAM,OAAO,CAAC;AACxD,OAAO,EACH,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EAChB,MAAM,uBAAuB,CAAC;AAO/B,UAAU,iBAAiB;IACvB,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,kBAAkB,CAAC,EAAE,mBAAmB,CAAC;IACzC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAwM9C,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Button, Flex, SearchField, Text } from '@servicetitan/anvil2';
|
|
2
|
+
import { Button, Flex, SearchField, Skeleton, Text } from '@servicetitan/anvil2';
|
|
3
3
|
import IconArrowBack from '@servicetitan/anvil2/assets/icons/material/round/keyboard_arrow_left.svg';
|
|
4
4
|
import IconArrowForward from '@servicetitan/anvil2/assets/icons/material/round/keyboard_arrow_right.svg';
|
|
5
5
|
import { Fragment, useMemo, useState } from 'react';
|
|
@@ -71,20 +71,24 @@ export const FieldSidebar = ({ fillableOptions, formFieldsByFormId = {}, forms,
|
|
|
71
71
|
return (_jsx("div", { className: "dte-formula-sidebar", children: _jsx("div", { className: "dte-formula-sidebar-slide-outer", children: _jsxs("div", { className: `dte-formula-sidebar-slide-track${selectedFormId ? ' --detail' : ''}`, children: [_jsxs("div", { className: "dte-formula-sidebar-slide-panel", children: [_jsx(SearchField, { placeholder: "Search", size: "small", style: { marginLeft: '4px', marginTop: '18px' }, value: topSearchValue, onChange: e => { var _a; return setTopSearchValue((_a = e.target.value) !== null && _a !== void 0 ? _a : ''); } }), filteredForms.length > 0 && (_jsxs("div", { className: "dte-formula-sidebar-forms-heading", children: [_jsx(Text, { variant: "headline", el: "h6", size: "small", children: "Forms" }), _jsx("ul", { className: "dte-formula-field-list", role: "listbox", "aria-label": "Forms", children: filteredForms.map(form => (_jsx("li", { role: "option", className: `dte-formula-field-list-item${formIdsReferencedInFormula.has(form.id) ? ' --selected' : ''}`, onMouseDown: e => {
|
|
72
72
|
e.preventDefault();
|
|
73
73
|
onFormClick(form.id);
|
|
74
|
-
}, children: _jsxs(Flex, { justifyContent: "space-between", alignItems: "center", children: [_jsx("
|
|
74
|
+
}, children: _jsxs(Flex, { justifyContent: "space-between", alignItems: "center", children: [_jsx(Text, { size: "small", className: "dte-text-ellipsis", title: form.name, children: form.name }), _jsx(IconArrowForward, {})] }) }, form.id))) })] })), _jsx(FieldOptionList, { title: "Fillable fields", options: fillableOptions, highlightElementPath: highlightElementPath, selectedPaths: selectedPaths, onHover: onHover, onSelect: onSelect }), _jsx(FieldOptionList, { title: "Merge tags", options: filteredMergeTagOptions, highlightElementPath: highlightElementPath, selectedPaths: selectedPaths, onHover: onHover, onSelect: onSelect })] }), _jsx("div", { className: "dte-formula-sidebar-slide-panel --form-fields", children: selectedFormId ? (_jsxs(Fragment, { children: [_jsx(Button, { style: { width: '100%' }, appearance: "ghost", size: "small", icon: IconArrowBack, title: (_a = selectedForm === null || selectedForm === void 0 ? void 0 : selectedForm.name) !== null && _a !== void 0 ? _a : 'Form fields', onClick: onBackToList, children: _jsx(Text, { size: "medium", className: "dte-text-ellipsis", style: { fontWeight: 'bold', width: '100%' }, children: (_b = selectedForm === null || selectedForm === void 0 ? void 0 : selectedForm.name) !== null && _b !== void 0 ? _b : 'Form fields' }) }), _jsx(SearchField, { style: { margin: '4px' }, placeholder: "Search", size: "small", value: formFieldsSearchValue, onChange: e => { var _a; return setFormFieldsSearchValue((_a = e.target.value) !== null && _a !== void 0 ? _a : ''); } }), _jsx(FieldOptionList, { title: "", isLoading: isFormFieldsLoading, options: filteredCalcOptions, highlightElementPath: highlightElementPath, selectedPaths: selectedPaths, onHover: onHover, onSelect: onSelect })] })) : null })] }) }) }));
|
|
75
|
+
};
|
|
76
|
+
/** Placeholder rows while a form's fields are in flight, in place of the rows they become. */
|
|
77
|
+
const FieldOptionSkeletonRows = () => {
|
|
78
|
+
return (_jsx(Fragment, { children: Array.from({ length: 4 }, (_, index) => (_jsx("div", { className: "dte-formula-field-list-item --skeleton", "aria-hidden": true, children: _jsx(Skeleton.Text, {}) }, index))) }));
|
|
75
79
|
};
|
|
76
80
|
const FieldOptionList = ({ highlightElementPath, isLoading, onHover, onSelect, options, selectedPaths, title, }) => {
|
|
77
81
|
if (options.length === 0) {
|
|
78
82
|
return null;
|
|
79
83
|
}
|
|
80
|
-
return (_jsxs("div", { children: [title ? (_jsx(Text, { variant: "headline", el: "h6", size: "small", children: title })) : null, isLoading ? (_jsx(
|
|
84
|
+
return (_jsxs("div", { children: [title ? (_jsx(Text, { variant: "headline", el: "h6", size: "small", children: title })) : null, isLoading ? (_jsx(FieldOptionSkeletonRows, {})) : options.length === 0 ? (_jsx(Text, { size: "small", subdued: true, variant: "body", children: "No fields on this form." })) : (_jsx("ul", { className: "dte-formula-field-list", role: "listbox", "aria-label": title || 'Fields', children: options.map(opt => {
|
|
81
85
|
var _a, _b, _c;
|
|
82
86
|
return (_jsxs("li", { role: "option", "aria-selected": opt.path === highlightElementPath, className: `dte-formula-field-list-item ${opt.path === highlightElementPath ? '--highlight' : ''} ${selectedPaths.has((_a = opt.path) !== null && _a !== void 0 ? _a : '') ? '--selected' : ''}`, onMouseEnter: () => opt.path && onHover(opt.path), onMouseDown: e => {
|
|
83
87
|
e.preventDefault();
|
|
84
88
|
if (opt.path) {
|
|
85
89
|
onSelect(opt.path);
|
|
86
90
|
}
|
|
87
|
-
}, children: [_jsx("
|
|
91
|
+
}, children: [_jsx(Text, { size: "small", className: "dte-text-ellipsis", title: (_b = opt.label) !== null && _b !== void 0 ? _b : opt.path, children: (_c = opt.label) !== null && _c !== void 0 ? _c : opt.path }), _jsxs(Text, { size: "small", subdued: true, style: { fontSize: '12px', marginTop: '-2px' }, className: "ellipsis", children: ["e.g. ", getFieldSampleData(opt.sampleData, opt.fieldType)] })] }, `${opt.path}-${opt.label}`));
|
|
88
92
|
}) }))] }));
|
|
89
93
|
};
|
|
90
94
|
//# sourceMappingURL=field-sidebar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-sidebar.js","sourceRoot":"","sources":["../../../src/components/field-config-panel/field-sidebar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"field-sidebar.js","sourceRoot":"","sources":["../../../src/components/field-config-panel/field-sidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculated-field-type-list.d.ts","sourceRoot":"","sources":["../../../src/components/field-sidebar/calculated-field-type-list.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AAErC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,UAAU,4BAA4B;IAClC,WAAW,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;IAChD,SAAS,IAAI,IAAI,CAAC;CACrB;AACD,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,4BAA4B,
|
|
1
|
+
{"version":3,"file":"calculated-field-type-list.d.ts","sourceRoot":"","sources":["../../../src/components/field-sidebar/calculated-field-type-list.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AAErC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,UAAU,4BAA4B;IAClC,WAAW,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;IAChD,SAAS,IAAI,IAAI,CAAC;CACrB;AACD,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,4BAA4B,CAmBpE,CAAC"}
|
|
@@ -6,7 +6,7 @@ export const CalculatedFieldTypeList = ({ onDragEnd, onDragStart, }) => {
|
|
|
6
6
|
return (_jsx(Fragment, { children: CALCULATED_FIELD_TYPES.map(fieldOption => {
|
|
7
7
|
var _a;
|
|
8
8
|
const key = `${fieldOption.type}-${(_a = fieldOption.path) !== null && _a !== void 0 ? _a : fieldOption.label}`;
|
|
9
|
-
return (_jsx(FieldType, {
|
|
9
|
+
return (_jsx(FieldType, { label: fieldOption.label, onDragEnd: onDragEnd, onDragStart: () => onDragStart(fieldOption) }, key));
|
|
10
10
|
}) }));
|
|
11
11
|
};
|
|
12
12
|
//# sourceMappingURL=calculated-field-type-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculated-field-type-list.js","sourceRoot":"","sources":["../../../src/components/field-sidebar/calculated-field-type-list.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAM,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzC,MAAM,CAAC,MAAM,uBAAuB,GAAqC,CAAC,EACtE,SAAS,EACT,WAAW,GACd,EAAE,EAAE;IACD,OAAO,CACH,KAAC,QAAQ,cACJ,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;;YACtC,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,IAAI,IAAI,MAAA,WAAW,CAAC,IAAI,mCAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YAC3E,OAAO,CACH,KAAC,SAAS,IAEN,
|
|
1
|
+
{"version":3,"file":"calculated-field-type-list.js","sourceRoot":"","sources":["../../../src/components/field-sidebar/calculated-field-type-list.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAM,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzC,MAAM,CAAC,MAAM,uBAAuB,GAAqC,CAAC,EACtE,SAAS,EACT,WAAW,GACd,EAAE,EAAE;IACD,OAAO,CACH,KAAC,QAAQ,cACJ,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;;YACtC,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,IAAI,IAAI,MAAA,WAAW,CAAC,IAAI,mCAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YAC3E,OAAO,CACH,KAAC,SAAS,IAEN,KAAK,EAAE,WAAW,CAAC,KAAK,EACxB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,IAHtC,GAAG,CAIV,CACL,CAAC;QACN,CAAC,CAAC,GACK,CACd,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
|
-
import { type DataModelFieldGroup, type FieldTypeOption } from '../../interface/types';
|
|
2
|
+
import { type DataModelFieldGroup, type FieldTypeOption, type FormInfo } from '../../interface/types';
|
|
3
3
|
interface DataModelFieldTypeListProps {
|
|
4
4
|
dataModelGroups?: DataModelFieldGroup[];
|
|
5
|
+
/**
|
|
6
|
+
* Forms offered as a group after the data model groups, already narrowed to the ones that have
|
|
7
|
+
* fields. Omitted (or empty, with nothing loading) hides the group; `onSelectForm` must be
|
|
8
|
+
* provided for the group to render.
|
|
9
|
+
*/
|
|
10
|
+
forms?: FormInfo[];
|
|
11
|
+
/** The form whose fields are shown in place of the group list; null shows the group list. */
|
|
12
|
+
selectedForm?: FormInfo | null;
|
|
13
|
+
/** Draggable options for `selectedForm`. */
|
|
14
|
+
formFieldOptions?: FieldTypeOption[];
|
|
15
|
+
/** Placeholder rows to draw while it is still unknown which forms have fields. */
|
|
16
|
+
loadingFormsCount?: number;
|
|
17
|
+
isLoadingFormFields?: boolean;
|
|
18
|
+
onSelectForm?(form: FormInfo | null): void;
|
|
5
19
|
onDragStart(fieldOption: FieldTypeOption): void;
|
|
6
20
|
onDragEnd(): void;
|
|
7
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-model-field-type-list.d.ts","sourceRoot":"","sources":["../../../src/components/field-sidebar/data-model-field-type-list.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"data-model-field-type-list.d.ts","sourceRoot":"","sources":["../../../src/components/field-sidebar/data-model-field-type-list.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAwD,MAAM,OAAO,CAAC;AACjF,OAAO,EACH,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,QAAQ,EAChB,MAAM,uBAAuB,CAAC;AAK/B,UAAU,2BAA2B;IACjC,eAAe,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACxC;;;;OAIG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,6FAA6F;IAC7F,YAAY,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC/B,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3C,WAAW,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;IAChD,SAAS,IAAI,IAAI,CAAC;CACrB;AAKD,eAAO,MAAM,sBAAsB,EAAE,EAAE,CAAC,2BAA2B,CAoJlE,CAAC"}
|
|
@@ -1,25 +1,69 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Flex, SearchField, Text } from '@servicetitan/anvil2';
|
|
3
|
-
import { Fragment, useMemo, useState } from 'react';
|
|
3
|
+
import { Fragment, useLayoutEffect, useMemo, useRef, useState } from 'react';
|
|
4
4
|
import { getFieldSampleData } from '../../utils';
|
|
5
5
|
import { FieldType } from './field-type';
|
|
6
|
-
|
|
6
|
+
import { FormFieldsPanel, FormsList } from './form-fields-type-list';
|
|
7
|
+
const matchesSearch = (label, searchLower) => label.toLowerCase().includes(searchLower);
|
|
8
|
+
export const DataModelFieldTypeList = ({ dataModelGroups = [], formFieldOptions = [], forms, isLoadingFormFields = false, loadingFormsCount = 0, onDragEnd, onDragStart, onSelectForm, selectedForm = null, }) => {
|
|
7
9
|
const [searchText, setSearchText] = useState('');
|
|
10
|
+
const searchLower = searchText.trim().toLowerCase();
|
|
11
|
+
const showForms = (!!(forms === null || forms === void 0 ? void 0 : forms.length) || loadingFormsCount > 0) && !!onSelectForm;
|
|
8
12
|
const searchedFieldGroups = useMemo(() => {
|
|
9
|
-
if (!
|
|
13
|
+
if (!searchLower) {
|
|
10
14
|
return dataModelGroups;
|
|
11
15
|
}
|
|
12
|
-
const searchLower = searchText.toLowerCase();
|
|
13
16
|
return dataModelGroups
|
|
14
17
|
.map(group => ({
|
|
15
18
|
...group,
|
|
16
|
-
fields: group.fields.filter(({ label }) => label
|
|
19
|
+
fields: group.fields.filter(({ label }) => matchesSearch(label, searchLower)),
|
|
17
20
|
}))
|
|
18
21
|
.filter(group => group.fields.length > 0);
|
|
19
|
-
}, [dataModelGroups,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
}, [dataModelGroups, searchLower]);
|
|
23
|
+
const searchedForms = useMemo(() => {
|
|
24
|
+
if (!(forms === null || forms === void 0 ? void 0 : forms.length)) {
|
|
25
|
+
return [];
|
|
26
|
+
}
|
|
27
|
+
if (!searchLower) {
|
|
28
|
+
return forms;
|
|
29
|
+
}
|
|
30
|
+
return forms.filter(form => matchesSearch(form.name, searchLower));
|
|
31
|
+
}, [forms, searchLower]);
|
|
32
|
+
const searchedFormFieldOptions = useMemo(() => {
|
|
33
|
+
if (!searchLower) {
|
|
34
|
+
return formFieldOptions;
|
|
35
|
+
}
|
|
36
|
+
return formFieldOptions.filter(option => matchesSearch(option.label, searchLower));
|
|
37
|
+
}, [formFieldOptions, searchLower]);
|
|
38
|
+
const isFormDetail = showForms && !!selectedForm;
|
|
39
|
+
/*
|
|
40
|
+
* Both slide panels share one scroller. The Forms group sits below every data model group, so
|
|
41
|
+
* a form is usually picked with the list scrolled far down — and the fields panel, being much
|
|
42
|
+
* shorter, would then be scrolled clean past its own content. Start the fields panel at the
|
|
43
|
+
* top and hand the list back the offset it was left at.
|
|
44
|
+
*
|
|
45
|
+
* The offset is tracked as the user scrolls rather than read when the panel switches: by then
|
|
46
|
+
* the list has already collapsed (see formula-modal.css) and the browser has clamped the
|
|
47
|
+
* scroller back to 0.
|
|
48
|
+
*/
|
|
49
|
+
const scrollerRef = useRef(null);
|
|
50
|
+
const listScrollTopRef = useRef(0);
|
|
51
|
+
useLayoutEffect(() => {
|
|
52
|
+
const scroller = scrollerRef.current;
|
|
53
|
+
if (!scroller) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
scroller.scrollTop = isFormDetail ? 0 : listScrollTopRef.current;
|
|
57
|
+
}, [isFormDetail]);
|
|
58
|
+
const handleScroll = () => {
|
|
59
|
+
if (!isFormDetail && scrollerRef.current) {
|
|
60
|
+
listScrollTopRef.current = scrollerRef.current.scrollTop;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
return (_jsxs(Fragment, { children: [_jsx(SearchField, { placeholder: "Search", size: "small", className: "dte-field-sidebar-search", onChange: e => { var _a; return setSearchText((_a = e.target.value) !== null && _a !== void 0 ? _a : ''); } }), _jsx("div", { className: "dte-formula-sidebar-slide-outer", ref: scrollerRef, onScroll: handleScroll, children: _jsxs("div", { className: `dte-formula-sidebar-slide-track${isFormDetail ? ' --detail' : ''}`, children: [_jsxs("div", { className: "dte-formula-sidebar-slide-panel", children: [searchedFieldGroups.map(group => (_jsxs("div", { className: "dte-field-type-group", children: [_jsx(Flex, { alignItems: "center", gap: 1, className: "dte-field-type-group-header", children: _jsx(Text, { variant: "headline", el: "h6", size: "small", children: group.groupName }) }), group.fields.map(fieldOption => {
|
|
64
|
+
const key = `${fieldOption.type}-${group.groupName}-${fieldOption.path}`;
|
|
65
|
+
return (_jsx(FieldType, { onDragEnd: onDragEnd, onDragStart: () => onDragStart(fieldOption), label: fieldOption.label, sampleData: getFieldSampleData(fieldOption.sampleData, fieldOption.fieldType) }, key));
|
|
66
|
+
})] }, group.groupName))), showForms && (searchedForms.length > 0 || !searchLower) && (_jsx(FormsList, { forms: searchedForms, loadingCount: loadingFormsCount, onSelectForm: onSelectForm }))] }), _jsx("div", { className: "dte-formula-sidebar-slide-panel --form-fields", children: isFormDetail && (_jsx(FormFieldsPanel, { form: selectedForm, fieldOptions: searchedFormFieldOptions, hasHiddenFields: formFieldOptions.length > 0 &&
|
|
67
|
+
searchedFormFieldOptions.length === 0, isLoading: isLoadingFormFields, onBack: () => onSelectForm(null), onDragEnd: onDragEnd, onDragStart: onDragStart })) })] }) })] }));
|
|
24
68
|
};
|
|
25
69
|
//# sourceMappingURL=data-model-field-type-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-model-field-type-list.js","sourceRoot":"","sources":["../../../src/components/field-sidebar/data-model-field-type-list.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAM,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"data-model-field-type-list.js","sourceRoot":"","sources":["../../../src/components/field-sidebar/data-model-field-type-list.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-sign-field-type-list.d.ts","sourceRoot":"","sources":["../../../src/components/field-sidebar/e-sign-field-type-list.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAE3B,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,UAAU,uBAAuB;IAC7B,WAAW,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;IAChD,SAAS,IAAI,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,
|
|
1
|
+
{"version":3,"file":"e-sign-field-type-list.d.ts","sourceRoot":"","sources":["../../../src/components/field-sidebar/e-sign-field-type-list.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAE3B,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,UAAU,uBAAuB;IAC7B,WAAW,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;IAChD,SAAS,IAAI,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAa1D,CAAC"}
|
|
@@ -2,6 +2,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { E_SIGN_FIELD_TYPES } from '../../constants';
|
|
3
3
|
import { FieldType } from './field-type';
|
|
4
4
|
export const ESignFieldTypeList = ({ onDragEnd, onDragStart }) => {
|
|
5
|
-
return (_jsx("div", { className: "dte-field-type-items-wrapper", children: E_SIGN_FIELD_TYPES.map(fieldOption => (_jsx(FieldType, {
|
|
5
|
+
return (_jsx("div", { className: "dte-field-type-items-wrapper", children: E_SIGN_FIELD_TYPES.map(fieldOption => (_jsx(FieldType, { label: fieldOption.label, onDragEnd: onDragEnd, onDragStart: () => onDragStart(fieldOption) }, fieldOption.subType))) }));
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=e-sign-field-type-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-sign-field-type-list.js","sourceRoot":"","sources":["../../../src/components/field-sidebar/e-sign-field-type-list.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAOzC,MAAM,CAAC,MAAM,kBAAkB,GAAgC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;IAC1F,OAAO,CACH,cAAK,SAAS,EAAC,8BAA8B,YACxC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CACnC,KAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"e-sign-field-type-list.js","sourceRoot":"","sources":["../../../src/components/field-sidebar/e-sign-field-type-list.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAOzC,MAAM,CAAC,MAAM,kBAAkB,GAAgC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;IAC1F,OAAO,CACH,cAAK,SAAS,EAAC,8BAA8B,YACxC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CACnC,KAAC,SAAS,IAEN,KAAK,EAAE,WAAW,CAAC,KAAK,EACxB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,IAHtC,WAAW,CAAC,OAAO,CAI1B,CACL,CAAC,GACA,CACT,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -2,10 +2,17 @@ import { FC } from 'react';
|
|
|
2
2
|
import { type DataModelFieldGroup, FieldTypeEnum, type FieldTypeOption, type FormInfo } from '../../interface/types';
|
|
3
3
|
interface FieldSidebarProps {
|
|
4
4
|
dataModelGroups?: DataModelFieldGroup[];
|
|
5
|
+
/**
|
|
6
|
+
* Forms listed as a group inside the Merge Tags tab (alongside the data model groups).
|
|
7
|
+
* Hidden when empty, when `onSelectForm` is missing, or when `hideFields` names
|
|
8
|
+
* `FieldTypeEnum.forms`.
|
|
9
|
+
*/
|
|
5
10
|
forms?: FormInfo[];
|
|
6
11
|
formFieldOptions?: FieldTypeOption[];
|
|
7
12
|
hideFields?: FieldTypeEnum[];
|
|
8
13
|
selectedForm?: FormInfo | null;
|
|
14
|
+
/** Placeholder rows to draw while it is still unknown which forms have fields. */
|
|
15
|
+
loadingFormsCount?: number;
|
|
9
16
|
isLoadingFormFields?: boolean;
|
|
10
17
|
onDragEnd(): void;
|
|
11
18
|
onDragStart(fieldOption: FieldTypeOption): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-sidebar.d.ts","sourceRoot":"","sources":["../../../src/components/field-sidebar/field-sidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAqB,MAAM,OAAO,CAAC;AAG9C,OAAO,EACH,KAAK,mBAAmB,EACxB,aAAa,EACb,KAAK,eAAe,EACpB,KAAK,QAAQ,EAChB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"field-sidebar.d.ts","sourceRoot":"","sources":["../../../src/components/field-sidebar/field-sidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAqB,MAAM,OAAO,CAAC;AAG9C,OAAO,EACH,KAAK,mBAAmB,EACxB,aAAa,EACb,KAAK,eAAe,EACpB,KAAK,QAAQ,EAChB,MAAM,uBAAuB,CAAC;AAQ/B,UAAU,iBAAiB;IACvB,eAAe,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACxC;;;;OAIG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC/B,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,IAAI,IAAI,CAAC;IAClB,WAAW,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;IAChD,YAAY,CAAC,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;CAC9C;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAoF9C,CAAC"}
|
|
@@ -10,9 +10,8 @@ import { DataModelFieldTypeList } from './data-model-field-type-list';
|
|
|
10
10
|
import { ESignFieldTypeList } from './e-sign-field-type-list';
|
|
11
11
|
import { FieldMenuGroup } from './field-menu-group';
|
|
12
12
|
import { FillableFieldTypeList } from './fillable-field-type-list';
|
|
13
|
-
import { FormFieldsTypeList } from './form-fields-type-list';
|
|
14
13
|
import { GenericFieldTypeList } from './generic-field-type-list';
|
|
15
|
-
export const FieldSidebar = ({ dataModelGroups = [], formFieldOptions = [], forms, hideFields, isLoadingFormFields = false, onDragEnd, onDragStart, onSelectForm, selectedForm = null, }) => {
|
|
14
|
+
export const FieldSidebar = ({ dataModelGroups = [], formFieldOptions = [], forms, hideFields, isLoadingFormFields = false, loadingFormsCount = 0, onDragEnd, onDragStart, onSelectForm, selectedForm = null, }) => {
|
|
16
15
|
var _a;
|
|
17
16
|
const [activeFieldType, setActiveFieldType] = useState(FieldTypeEnum.dataModel);
|
|
18
17
|
const { isOpen, open, toggle } = useToggle(true);
|
|
@@ -21,15 +20,13 @@ export const FieldSidebar = ({ dataModelGroups = [], formFieldOptions = [], form
|
|
|
21
20
|
open();
|
|
22
21
|
};
|
|
23
22
|
const filteredMenuGroups = useMemo(() => {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
groups = groups.filter(menuGroup => !hideFields.includes(menuGroup.key));
|
|
23
|
+
if (!(hideFields === null || hideFields === void 0 ? void 0 : hideFields.length)) {
|
|
24
|
+
return menuGroups;
|
|
27
25
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}, [
|
|
33
|
-
return (_jsxs(Flex, { className: "dte-field-sidebar-container skeleton-item", children: [_jsx(FieldMenuGroup, { menuGroups: filteredMenuGroups, onClickMenu: handleActiveFieldTypeChange, activeFieldKey: activeFieldType }), _jsx(Flex, { className: `dte-field-sidebar-content skeleton-item ${isOpen ? '--open' : ''}`, shrink: 0, children: _jsxs(Flex, { className: "dte-field-sidebar-content-inner", children: [_jsx(Text, { variant: "headline", el: "h1", size: "medium", children: (_a = menuGroups.find(group => group.key === activeFieldType)) === null || _a === void 0 ? void 0 : _a.label }), activeFieldType === FieldTypeEnum.fillable && (_jsx(FillableFieldTypeList, { onDragStart: onDragStart, onDragEnd: onDragEnd })), activeFieldType === FieldTypeEnum.eSign && (_jsx(ESignFieldTypeList, { onDragEnd: onDragEnd, onDragStart: onDragStart })), activeFieldType === FieldTypeEnum.dataModel && (_jsx(DataModelFieldTypeList, { dataModelGroups: dataModelGroups, onDragStart: onDragStart, onDragEnd: onDragEnd })), activeFieldType === FieldTypeEnum.forms && forms && onSelectForm && (_jsx(FormFieldsTypeList, { fieldOptions: formFieldOptions, forms: forms, isLoadingFormFields: isLoadingFormFields, onDragEnd: onDragEnd, onDragStart: onDragStart, onSelectForm: onSelectForm, selectedForm: selectedForm })), activeFieldType === FieldTypeEnum.calculated && (_jsx(CalculatedFieldTypeList, { onDragStart: onDragStart, onDragEnd: onDragEnd })), activeFieldType === FieldTypeEnum.generic && (_jsx(GenericFieldTypeList, { onDragStart: onDragStart, onDragEnd: onDragEnd }))] }) }), _jsx(Button, { size: "small", appearance: "ghost", onClick: toggle, className: "dte-field-sidebar-toggler", children: _jsx(Icon, { svg: IconMenuOpen, size: "medium" }) })] }));
|
|
26
|
+
return menuGroups.filter(menuGroup => !hideFields.includes(menuGroup.key));
|
|
27
|
+
}, [hideFields]);
|
|
28
|
+
// The list itself hides the group when there are no forms or no selection handler.
|
|
29
|
+
const visibleForms = (hideFields === null || hideFields === void 0 ? void 0 : hideFields.includes(FieldTypeEnum.forms)) ? undefined : forms;
|
|
30
|
+
return (_jsxs(Flex, { className: "dte-field-sidebar-container skeleton-item", children: [_jsx(FieldMenuGroup, { menuGroups: filteredMenuGroups, onClickMenu: handleActiveFieldTypeChange, activeFieldKey: activeFieldType }), _jsx(Flex, { className: `dte-field-sidebar-content skeleton-item ${isOpen ? '--open' : ''}`, shrink: 0, children: _jsxs(Flex, { className: "dte-field-sidebar-content-inner", children: [_jsx(Text, { variant: "headline", el: "h1", size: "medium", children: (_a = menuGroups.find(group => group.key === activeFieldType)) === null || _a === void 0 ? void 0 : _a.label }), activeFieldType === FieldTypeEnum.fillable && (_jsx(FillableFieldTypeList, { onDragStart: onDragStart, onDragEnd: onDragEnd })), activeFieldType === FieldTypeEnum.eSign && (_jsx(ESignFieldTypeList, { onDragEnd: onDragEnd, onDragStart: onDragStart })), activeFieldType === FieldTypeEnum.dataModel && (_jsx(DataModelFieldTypeList, { dataModelGroups: dataModelGroups, forms: visibleForms, formFieldOptions: formFieldOptions, loadingFormsCount: visibleForms ? loadingFormsCount : 0, isLoadingFormFields: isLoadingFormFields, onDragStart: onDragStart, onDragEnd: onDragEnd, onSelectForm: onSelectForm, selectedForm: selectedForm })), activeFieldType === FieldTypeEnum.calculated && (_jsx(CalculatedFieldTypeList, { onDragStart: onDragStart, onDragEnd: onDragEnd })), activeFieldType === FieldTypeEnum.generic && (_jsx(GenericFieldTypeList, { onDragStart: onDragStart, onDragEnd: onDragEnd }))] }) }), _jsx(Button, { size: "small", appearance: "ghost", onClick: toggle, className: "dte-field-sidebar-toggler", children: _jsx(Icon, { svg: IconMenuOpen, size: "medium" }) })] }));
|
|
34
31
|
};
|
|
35
32
|
//# sourceMappingURL=field-sidebar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-sidebar.js","sourceRoot":"","sources":["../../../src/components/field-sidebar/field-sidebar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,YAAY,MAAM,gEAAgE,CAAC;AAC1F,OAAO,EAAM,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAEH,aAAa,GAGhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"field-sidebar.js","sourceRoot":"","sources":["../../../src/components/field-sidebar/field-sidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-type.d.ts","sourceRoot":"","sources":["../../../src/components/field-sidebar/field-type.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"field-type.d.ts","sourceRoot":"","sources":["../../../src/components/field-sidebar/field-type.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAE3B,UAAU,cAAc;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,SAAS,IAAI,IAAI,CAAC;IAClB,WAAW,IAAI,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CA6BxC,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Flex, Icon, Text } from '@servicetitan/anvil2';
|
|
3
3
|
import IconDragIndicator from '@servicetitan/anvil2/assets/icons/material/round/drag_indicator.svg';
|
|
4
|
-
export const FieldType = ({
|
|
4
|
+
export const FieldType = ({ label, onDragEnd, onDragStart, sampleData }) => {
|
|
5
5
|
return (_jsxs("div", { draggable: true, onDragStart: e => {
|
|
6
6
|
onDragStart();
|
|
7
7
|
// Mark that we're dragging a new field type, not an existing field
|
|
8
8
|
e.dataTransfer.effectAllowed = 'copy';
|
|
9
9
|
e.dataTransfer.setData('text/plain', 'new-field-type');
|
|
10
|
-
}, onDragEnd: onDragEnd, className: "dte-field-type-item", children: [_jsx(Icon, { svg: IconDragIndicator, size: "medium" }), _jsxs(Flex, { direction: "column", style: { overflow: 'hidden' }, children: [
|
|
10
|
+
}, onDragEnd: onDragEnd, className: "dte-field-type-item", children: [_jsx(Icon, { svg: IconDragIndicator, size: "medium" }), _jsxs(Flex, { direction: "column", style: { overflow: 'hidden' }, children: [_jsx(Text, { size: "small", children: label }), sampleData && (_jsxs(Text, { size: "small", subdued: true, style: { fontSize: '12px', marginTop: '-2px' }, className: "ellipsis", children: ["e.g. ", sampleData] }))] })] }));
|
|
11
11
|
};
|
|
12
12
|
//# sourceMappingURL=field-type.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-type.js","sourceRoot":"","sources":["../../../src/components/field-sidebar/field-type.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"field-type.js","sourceRoot":"","sources":["../../../src/components/field-sidebar/field-type.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,iBAAiB,MAAM,qEAAqE,CAAC;AAUpG,MAAM,CAAC,MAAM,SAAS,GAAuB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE;IAC3F,OAAO,CACH,eACI,SAAS,QACT,WAAW,EAAE,CAAC,CAAC,EAAE;YACb,WAAW,EAAE,CAAC;YACd,mEAAmE;YACnE,CAAC,CAAC,YAAY,CAAC,aAAa,GAAG,MAAM,CAAC;YACtC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAC3D,CAAC,EACD,SAAS,EAAE,SAAS,EACpB,SAAS,EAAC,qBAAqB,aAE/B,KAAC,IAAI,IAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAC,QAAQ,GAAG,EAC9C,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAClD,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,YAAE,KAAK,GAAQ,EAChC,UAAU,IAAI,CACX,MAAC,IAAI,IACD,IAAI,EAAC,OAAO,EACZ,OAAO,QACP,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAC9C,SAAS,EAAC,UAAU,sBAEd,UAAU,IACb,CACV,IACE,IACL,CACT,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fillable-field-type-list.d.ts","sourceRoot":"","sources":["../../../src/components/field-sidebar/fillable-field-type-list.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAA+B,MAAM,OAAO,CAAC;AAExD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,UAAU,0BAA0B;IAChC,WAAW,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;IAChD,SAAS,IAAI,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,
|
|
1
|
+
{"version":3,"file":"fillable-field-type-list.d.ts","sourceRoot":"","sources":["../../../src/components/field-sidebar/fillable-field-type-list.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAA+B,MAAM,OAAO,CAAC;AAExD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,UAAU,0BAA0B;IAChC,WAAW,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;IAChD,SAAS,IAAI,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CAqChE,CAAC"}
|
|
@@ -13,7 +13,7 @@ export const FillableFieldTypeList = ({ onDragEnd, onDragStart, }) => {
|
|
|
13
13
|
return FILLABLE_FIELD_TYPES.filter(({ label }) => label.toLowerCase().includes(searchLower));
|
|
14
14
|
}, [searchText]);
|
|
15
15
|
return (_jsxs(Fragment, { children: [_jsx(SearchField, { placeholder: "Search", size: "small", className: "dte-field-sidebar-search", onChange: e => { var _a; return setSearchText((_a = e.target.value) !== null && _a !== void 0 ? _a : ''); } }), searchedFieldTypes.map(fieldOption => {
|
|
16
|
-
return (_jsx(FieldType, {
|
|
16
|
+
return (_jsx(FieldType, { label: fieldOption.label, onDragEnd: onDragEnd, onDragStart: () => onDragStart(fieldOption) }, fieldOption.subType));
|
|
17
17
|
})] }));
|
|
18
18
|
};
|
|
19
19
|
//# sourceMappingURL=fillable-field-type-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fillable-field-type-list.js","sourceRoot":"","sources":["../../../src/components/field-sidebar/fillable-field-type-list.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAM,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAOzC,MAAM,CAAC,MAAM,qBAAqB,GAAmC,CAAC,EAClE,SAAS,EACT,WAAW,GACd,EAAE,EAAE;IACD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEjD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,EAAE;QACpC,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,oBAAoB,CAAC;QAChC,CAAC;QAED,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAC7C,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAC7C,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC5C,CAAC;IACN,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,OAAO,CACH,MAAC,QAAQ,eACL,KAAC,WAAW,IACR,WAAW,EAAC,QAAQ,EACpB,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,0BAA0B,EACpC,QAAQ,EAAE,CAAC,CAAC,EAAE,WAAC,OAAA,aAAa,CAAC,MAAA,CAAC,CAAC,MAAM,CAAC,KAAK,mCAAI,EAAE,CAAC,CAAA,EAAA,GACpD,EACD,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;gBAClC,OAAO,CACH,KAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"fillable-field-type-list.js","sourceRoot":"","sources":["../../../src/components/field-sidebar/fillable-field-type-list.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAM,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAOzC,MAAM,CAAC,MAAM,qBAAqB,GAAmC,CAAC,EAClE,SAAS,EACT,WAAW,GACd,EAAE,EAAE;IACD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEjD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,EAAE;QACpC,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,oBAAoB,CAAC;QAChC,CAAC;QAED,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAC7C,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAC7C,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC5C,CAAC;IACN,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,OAAO,CACH,MAAC,QAAQ,eACL,KAAC,WAAW,IACR,WAAW,EAAC,QAAQ,EACpB,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,0BAA0B,EACpC,QAAQ,EAAE,CAAC,CAAC,EAAE,WAAC,OAAA,aAAa,CAAC,MAAA,CAAC,CAAC,MAAM,CAAC,KAAK,mCAAI,EAAE,CAAC,CAAA,EAAA,GACpD,EACD,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;gBAClC,OAAO,CACH,KAAC,SAAS,IAEN,KAAK,EAAE,WAAW,CAAC,KAAK,EACxB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,IAHtC,WAAW,CAAC,OAAO,CAI1B,CACL,CAAC;YACN,CAAC,CAAC,IACK,CACd,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1,13 +1,36 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
2
|
import { type FieldTypeOption, type FormInfo } from '../../interface/types';
|
|
3
|
-
|
|
3
|
+
/** Heading of the Forms group inside the Merge Tags tab. */
|
|
4
|
+
export declare const FORMS_GROUP_NAME = "Forms";
|
|
5
|
+
export interface FormsListProps {
|
|
4
6
|
forms: FormInfo[];
|
|
5
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Rows to draw as placeholders instead of the list. Forms are only listed once they are known
|
|
9
|
+
* to have fields, so until the fields arrive there is nothing truthful to show.
|
|
10
|
+
*/
|
|
11
|
+
loadingCount?: number;
|
|
12
|
+
/** Rendered when the (possibly search-filtered) list is empty. */
|
|
13
|
+
emptyText?: string;
|
|
14
|
+
onSelectForm(form: FormInfo): void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Root level of the Forms group: one clickable row per form. Selecting a form hands off to
|
|
18
|
+
* `FormFieldsPanel`, which lists that form's draggable fields.
|
|
19
|
+
*/
|
|
20
|
+
export declare const FormsList: FC<FormsListProps>;
|
|
21
|
+
export interface FormFieldsPanelProps {
|
|
22
|
+
form: FormInfo;
|
|
6
23
|
fieldOptions: FieldTypeOption[];
|
|
7
|
-
|
|
8
|
-
|
|
24
|
+
isLoading?: boolean;
|
|
25
|
+
/** Rendered when the form has fields but none match the current search. */
|
|
26
|
+
hasHiddenFields?: boolean;
|
|
27
|
+
onBack(): void;
|
|
9
28
|
onDragEnd(): void;
|
|
10
29
|
onDragStart(fieldOption: FieldTypeOption): void;
|
|
11
30
|
}
|
|
12
|
-
|
|
31
|
+
/**
|
|
32
|
+
* Detail level of the Forms group: a back button naming the form, then its fields as the same
|
|
33
|
+
* draggable rows the data model groups use, so a form field drops onto the PDF like any merge tag.
|
|
34
|
+
*/
|
|
35
|
+
export declare const FormFieldsPanel: FC<FormFieldsPanelProps>;
|
|
13
36
|
//# sourceMappingURL=form-fields-type-list.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-fields-type-list.d.ts","sourceRoot":"","sources":["../../../src/components/field-sidebar/form-fields-type-list.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAI5E,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"form-fields-type-list.d.ts","sourceRoot":"","sources":["../../../src/components/field-sidebar/form-fields-type-list.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAI5E,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAkBxC,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;CACtC;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAgDxC,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,IAAI,IAAI,CAAC;IACf,SAAS,IAAI,IAAI,CAAC;IAClB,WAAW,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;CACnD;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAkDpD,CAAC"}
|
|
@@ -1,14 +1,35 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Button, Flex, Text } from '@servicetitan/anvil2';
|
|
2
|
+
import { Button, Flex, Skeleton, Text } from '@servicetitan/anvil2';
|
|
3
3
|
import IconArrowBack from '@servicetitan/anvil2/assets/icons/material/round/keyboard_arrow_left.svg';
|
|
4
4
|
import IconArrowForward from '@servicetitan/anvil2/assets/icons/material/round/keyboard_arrow_right.svg';
|
|
5
5
|
import { Fragment } from 'react';
|
|
6
6
|
import { getFieldSampleData } from '../../utils';
|
|
7
7
|
import { FieldType } from './field-type';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
/** Heading of the Forms group inside the Merge Tags tab. */
|
|
9
|
+
export const FORMS_GROUP_NAME = 'Forms';
|
|
10
|
+
/** A form's field count is unknown until it answers, so the placeholder settles on a short list. */
|
|
11
|
+
const FIELD_SKELETON_ROWS = 4;
|
|
12
|
+
/** Placeholder rows, shaped like the real ones, for a list whose contents are still in flight. */
|
|
13
|
+
const SkeletonRows = ({ className, count }) => {
|
|
14
|
+
return (_jsx(Fragment, { children: Array.from({ length: count }, (_, index) => (_jsx("div", { className: `${className} --skeleton`, "aria-hidden": true, children: _jsx(Skeleton.Text, {}) }, index))) }));
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Root level of the Forms group: one clickable row per form. Selecting a form hands off to
|
|
18
|
+
* `FormFieldsPanel`, which lists that form's draggable fields.
|
|
19
|
+
*/
|
|
20
|
+
export const FormsList = ({ emptyText = 'No forms configured.', forms, loadingCount = 0, onSelectForm, }) => {
|
|
21
|
+
return (_jsxs("div", { className: "dte-field-type-group", children: [_jsx(Flex, { alignItems: "center", gap: 1, className: "dte-field-type-group-header", children: _jsx(Text, { variant: "headline", el: "h6", size: "small", children: FORMS_GROUP_NAME }) }), loadingCount > 0 ? (_jsx(SkeletonRows, { count: loadingCount, className: "dte-formula-field-list-item" })) : forms.length > 0 ? (_jsx("ul", { className: "dte-formula-field-list", role: "listbox", "aria-label": FORMS_GROUP_NAME, children: forms.map(form => (_jsx("li", { role: "option", className: "dte-formula-field-list-item", onMouseDown: e => {
|
|
22
|
+
e.preventDefault();
|
|
23
|
+
onSelectForm(form);
|
|
24
|
+
}, children: _jsxs(Flex, { justifyContent: "space-between", alignItems: "center", children: [_jsx(Text, { size: "small", className: "dte-text-ellipsis", title: form.name, children: form.name }), _jsx(IconArrowForward, {})] }) }, form.id))) })) : (_jsx(Text, { size: "small", subdued: true, variant: "body", children: emptyText }))] }));
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Detail level of the Forms group: a back button naming the form, then its fields as the same
|
|
28
|
+
* draggable rows the data model groups use, so a form field drops onto the PDF like any merge tag.
|
|
29
|
+
*/
|
|
30
|
+
export const FormFieldsPanel = ({ fieldOptions, form, hasHiddenFields = false, isLoading = false, onBack, onDragEnd, onDragStart, }) => {
|
|
31
|
+
return (_jsxs(Fragment, { children: [_jsx(Button, { style: { width: '100%' }, appearance: "ghost", size: "small", icon: IconArrowBack, title: form.name, onClick: onBack, children: _jsx(Text, { size: "medium", className: "dte-text-ellipsis", style: { fontWeight: 'bold', width: '100%' }, children: form.name }) }), _jsx("div", { className: "dte-field-type-group", children: isLoading ? (_jsx(SkeletonRows, { count: FIELD_SKELETON_ROWS, className: "dte-field-type-item" })) : fieldOptions.length === 0 ? (_jsx(Text, { size: "small", subdued: true, variant: "body", children: hasHiddenFields
|
|
32
|
+
? 'No fields match the search.'
|
|
33
|
+
: 'No fields on this form.' })) : (fieldOptions.map(option => (_jsx(FieldType, { label: option.label, sampleData: getFieldSampleData(option.sampleData, option.fieldType), onDragEnd: onDragEnd, onDragStart: () => onDragStart(option) }, option.path)))) })] }));
|
|
13
34
|
};
|
|
14
35
|
//# sourceMappingURL=form-fields-type-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-fields-type-list.js","sourceRoot":"","sources":["../../../src/components/field-sidebar/form-fields-type-list.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"form-fields-type-list.js","sourceRoot":"","sources":["../../../src/components/field-sidebar/form-fields-type-list.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic-field-type-list.d.ts","sourceRoot":"","sources":["../../../src/components/field-sidebar/generic-field-type-list.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AAErC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,UAAU,yBAAyB;IAC/B,WAAW,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;IAChD,SAAS,IAAI,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,oBAAoB,EAAE,EAAE,CAAC,yBAAyB,
|
|
1
|
+
{"version":3,"file":"generic-field-type-list.d.ts","sourceRoot":"","sources":["../../../src/components/field-sidebar/generic-field-type-list.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AAErC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,UAAU,yBAAyB;IAC/B,WAAW,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;IAChD,SAAS,IAAI,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,oBAAoB,EAAE,EAAE,CAAC,yBAAyB,CAgB9D,CAAC"}
|
|
@@ -6,7 +6,7 @@ export const GenericFieldTypeList = ({ onDragEnd, onDragStart }) => {
|
|
|
6
6
|
return (_jsx(Fragment, { children: GENERIC_FIELD_TYPES.map(fieldOption => {
|
|
7
7
|
var _a;
|
|
8
8
|
const key = `${fieldOption.type}-${(_a = fieldOption.path) !== null && _a !== void 0 ? _a : fieldOption.label}`;
|
|
9
|
-
return (_jsx(FieldType, {
|
|
9
|
+
return (_jsx(FieldType, { label: fieldOption.label, onDragEnd: onDragEnd, onDragStart: () => onDragStart(fieldOption) }, key));
|
|
10
10
|
}) }));
|
|
11
11
|
};
|
|
12
12
|
//# sourceMappingURL=generic-field-type-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic-field-type-list.js","sourceRoot":"","sources":["../../../src/components/field-sidebar/generic-field-type-list.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAM,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAOzC,MAAM,CAAC,MAAM,oBAAoB,GAAkC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;IAC9F,OAAO,CACH,KAAC,QAAQ,cACJ,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;;YACnC,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,IAAI,IAAI,MAAA,WAAW,CAAC,IAAI,mCAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YAC3E,OAAO,CACH,KAAC,SAAS,IAEN,
|
|
1
|
+
{"version":3,"file":"generic-field-type-list.js","sourceRoot":"","sources":["../../../src/components/field-sidebar/generic-field-type-list.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAM,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAOzC,MAAM,CAAC,MAAM,oBAAoB,GAAkC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;IAC9F,OAAO,CACH,KAAC,QAAQ,cACJ,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;;YACnC,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,IAAI,IAAI,MAAA,WAAW,CAAC,IAAI,mCAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YAC3E,OAAO,CACH,KAAC,SAAS,IAEN,KAAK,EAAE,WAAW,CAAC,KAAK,EACxB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,IAHtC,GAAG,CAIV,CACL,CAAC;QACN,CAAC,CAAC,GACK,CACd,CAAC;AACN,CAAC,CAAC"}
|