@kandiforge/kandi-office 0.15.148
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/README.md +82 -0
- package/dist/RustRenderer.d.ts +10 -0
- package/dist/RustRenderer.d.ts.map +1 -0
- package/dist/RustRenderer.js +30 -0
- package/dist/RustRenderer.js.map +1 -0
- package/dist/forms/KandiForm.d.ts +15 -0
- package/dist/forms/KandiForm.d.ts.map +1 -0
- package/dist/forms/KandiForm.js +577 -0
- package/dist/forms/KandiForm.js.map +1 -0
- package/dist/forms/KandiFormProvider.d.ts +17 -0
- package/dist/forms/KandiFormProvider.d.ts.map +1 -0
- package/dist/forms/KandiFormProvider.js +29 -0
- package/dist/forms/KandiFormProvider.js.map +1 -0
- package/dist/forms/core/FormEngine.d.ts +71 -0
- package/dist/forms/core/FormEngine.d.ts.map +1 -0
- package/dist/forms/core/FormEngine.js +463 -0
- package/dist/forms/core/FormEngine.js.map +1 -0
- package/dist/forms/core/index.d.ts +3 -0
- package/dist/forms/core/index.d.ts.map +1 -0
- package/dist/forms/core/index.js +2 -0
- package/dist/forms/core/index.js.map +1 -0
- package/dist/forms/hooks/index.d.ts +5 -0
- package/dist/forms/hooks/index.d.ts.map +1 -0
- package/dist/forms/hooks/index.js +3 -0
- package/dist/forms/hooks/index.js.map +1 -0
- package/dist/forms/hooks/useFormState.d.ts +32 -0
- package/dist/forms/hooks/useFormState.d.ts.map +1 -0
- package/dist/forms/hooks/useFormState.js +77 -0
- package/dist/forms/hooks/useFormState.js.map +1 -0
- package/dist/forms/hooks/useFormStorage.d.ts +28 -0
- package/dist/forms/hooks/useFormStorage.d.ts.map +1 -0
- package/dist/forms/hooks/useFormStorage.js +40 -0
- package/dist/forms/hooks/useFormStorage.js.map +1 -0
- package/dist/forms/index.d.ts +13 -0
- package/dist/forms/index.d.ts.map +1 -0
- package/dist/forms/index.js +7 -0
- package/dist/forms/index.js.map +1 -0
- package/dist/forms/storage/ApiFormStorage.d.ts +31 -0
- package/dist/forms/storage/ApiFormStorage.d.ts.map +1 -0
- package/dist/forms/storage/ApiFormStorage.js +112 -0
- package/dist/forms/storage/ApiFormStorage.js.map +1 -0
- package/dist/forms/storage/TauriFormStorage.d.ts +27 -0
- package/dist/forms/storage/TauriFormStorage.d.ts.map +1 -0
- package/dist/forms/storage/TauriFormStorage.js +82 -0
- package/dist/forms/storage/TauriFormStorage.js.map +1 -0
- package/dist/forms/storage/TauriThemeStorage.d.ts +10 -0
- package/dist/forms/storage/TauriThemeStorage.d.ts.map +1 -0
- package/dist/forms/storage/TauriThemeStorage.js +28 -0
- package/dist/forms/storage/TauriThemeStorage.js.map +1 -0
- package/dist/forms/storage/index.d.ts +9 -0
- package/dist/forms/storage/index.d.ts.map +1 -0
- package/dist/forms/storage/index.js +28 -0
- package/dist/forms/storage/index.js.map +1 -0
- package/dist/forms/storage/types.d.ts +486 -0
- package/dist/forms/storage/types.d.ts.map +1 -0
- package/dist/forms/storage/types.js +2 -0
- package/dist/forms/storage/types.js.map +1 -0
- package/dist/forms/vanilla/KandiForm.d.ts +40 -0
- package/dist/forms/vanilla/KandiForm.d.ts.map +1 -0
- package/dist/forms/vanilla/KandiForm.js +586 -0
- package/dist/forms/vanilla/KandiForm.js.map +1 -0
- package/dist/forms/vanilla/index.d.ts +7 -0
- package/dist/forms/vanilla/index.d.ts.map +1 -0
- package/dist/forms/vanilla/index.js +4 -0
- package/dist/forms/vanilla/index.js.map +1 -0
- package/dist/forms-builder/components/AddFieldForm.d.ts +10 -0
- package/dist/forms-builder/components/AddFieldForm.d.ts.map +1 -0
- package/dist/forms-builder/components/AddFieldForm.js +69 -0
- package/dist/forms-builder/components/AddFieldForm.js.map +1 -0
- package/dist/forms-builder/components/FormCard.d.ts +9 -0
- package/dist/forms-builder/components/FormCard.d.ts.map +1 -0
- package/dist/forms-builder/components/FormCard.js +40 -0
- package/dist/forms-builder/components/FormCard.js.map +1 -0
- package/dist/forms-builder/components/FormDesigner.d.ts +9 -0
- package/dist/forms-builder/components/FormDesigner.d.ts.map +1 -0
- package/dist/forms-builder/components/FormDesigner.js +73 -0
- package/dist/forms-builder/components/FormDesigner.js.map +1 -0
- package/dist/forms-builder/components/FormLibraryDialog.d.ts +11 -0
- package/dist/forms-builder/components/FormLibraryDialog.d.ts.map +1 -0
- package/dist/forms-builder/components/FormLibraryDialog.js +72 -0
- package/dist/forms-builder/components/FormLibraryDialog.js.map +1 -0
- package/dist/forms-builder/components/FormTester.d.ts +10 -0
- package/dist/forms-builder/components/FormTester.d.ts.map +1 -0
- package/dist/forms-builder/components/FormTester.js +147 -0
- package/dist/forms-builder/components/FormTester.js.map +1 -0
- package/dist/forms-builder/components/NewKandiFormDialog.d.ts +11 -0
- package/dist/forms-builder/components/NewKandiFormDialog.d.ts.map +1 -0
- package/dist/forms-builder/components/NewKandiFormDialog.js +82 -0
- package/dist/forms-builder/components/NewKandiFormDialog.js.map +1 -0
- package/dist/forms-builder/components/SchemaBuilder.d.ts +15 -0
- package/dist/forms-builder/components/SchemaBuilder.d.ts.map +1 -0
- package/dist/forms-builder/components/SchemaBuilder.js +62 -0
- package/dist/forms-builder/components/SchemaBuilder.js.map +1 -0
- package/dist/forms-builder/components/index.d.ts +8 -0
- package/dist/forms-builder/components/index.d.ts.map +1 -0
- package/dist/forms-builder/components/index.js +8 -0
- package/dist/forms-builder/components/index.js.map +1 -0
- package/dist/forms-builder/hooks/index.d.ts +3 -0
- package/dist/forms-builder/hooks/index.d.ts.map +1 -0
- package/dist/forms-builder/hooks/index.js +2 -0
- package/dist/forms-builder/hooks/index.js.map +1 -0
- package/dist/forms-builder/hooks/useFormWizard.d.ts +39 -0
- package/dist/forms-builder/hooks/useFormWizard.d.ts.map +1 -0
- package/dist/forms-builder/hooks/useFormWizard.js +268 -0
- package/dist/forms-builder/hooks/useFormWizard.js.map +1 -0
- package/dist/forms-builder/index.d.ts +6 -0
- package/dist/forms-builder/index.d.ts.map +1 -0
- package/dist/forms-builder/index.js +4 -0
- package/dist/forms-builder/index.js.map +1 -0
- package/dist/forms-builder/types/index.d.ts +88 -0
- package/dist/forms-builder/types/index.d.ts.map +1 -0
- package/dist/forms-builder/types/index.js +88 -0
- package/dist/forms-builder/types/index.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +44 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +111 -0
- package/dist/logger.js.map +1 -0
- package/dist/services/IDocumentService.d.ts +48 -0
- package/dist/services/IDocumentService.d.ts.map +1 -0
- package/dist/services/IDocumentService.js +2 -0
- package/dist/services/IDocumentService.js.map +1 -0
- package/dist/services/TauriDocumentService.d.ts +28 -0
- package/dist/services/TauriDocumentService.d.ts.map +1 -0
- package/dist/services/TauriDocumentService.js +109 -0
- package/dist/services/TauriDocumentService.js.map +1 -0
- package/dist/services/WasmDocumentService.d.ts +28 -0
- package/dist/services/WasmDocumentService.d.ts.map +1 -0
- package/dist/services/WasmDocumentService.js +122 -0
- package/dist/services/WasmDocumentService.js.map +1 -0
- package/dist/services/documentServiceRegistry.d.ts +4 -0
- package/dist/services/documentServiceRegistry.d.ts.map +1 -0
- package/dist/services/documentServiceRegistry.js +14 -0
- package/dist/services/documentServiceRegistry.js.map +1 -0
- package/dist/shared/services/FileLogger.d.ts +101 -0
- package/dist/shared/services/FileLogger.d.ts.map +1 -0
- package/dist/shared/services/FileLogger.js +483 -0
- package/dist/shared/services/FileLogger.js.map +1 -0
- package/dist/shared/services/IPlatformService.d.ts +80 -0
- package/dist/shared/services/IPlatformService.d.ts.map +1 -0
- package/dist/shared/services/IPlatformService.js +36 -0
- package/dist/shared/services/IPlatformService.js.map +1 -0
- package/dist/shared/services/Logger.d.ts +82 -0
- package/dist/shared/services/Logger.d.ts.map +1 -0
- package/dist/shared/services/Logger.js +215 -0
- package/dist/shared/services/Logger.js.map +1 -0
- package/dist/shared/services/LoggerAdapter.d.ts +8 -0
- package/dist/shared/services/LoggerAdapter.d.ts.map +1 -0
- package/dist/shared/services/LoggerAdapter.js +31 -0
- package/dist/shared/services/LoggerAdapter.js.map +1 -0
- package/dist/shared/services/platformServiceRegistry.d.ts +6 -0
- package/dist/shared/services/platformServiceRegistry.d.ts.map +1 -0
- package/dist/shared/services/platformServiceRegistry.js +18 -0
- package/dist/shared/services/platformServiceRegistry.js.map +1 -0
- package/dist/shared/theme/ThemeContext.d.ts +7 -0
- package/dist/shared/theme/ThemeContext.d.ts.map +1 -0
- package/dist/shared/theme/ThemeContext.js +134 -0
- package/dist/shared/theme/ThemeContext.js.map +1 -0
- package/dist/shared/theme/index.d.ts +6 -0
- package/dist/shared/theme/index.d.ts.map +1 -0
- package/dist/shared/theme/index.js +4 -0
- package/dist/shared/theme/index.js.map +1 -0
- package/dist/shared/theme/muiTheme.d.ts +3 -0
- package/dist/shared/theme/muiTheme.d.ts.map +1 -0
- package/dist/shared/theme/muiTheme.js +349 -0
- package/dist/shared/theme/muiTheme.js.map +1 -0
- package/dist/shared/theme/tokens.d.ts +252 -0
- package/dist/shared/theme/tokens.d.ts.map +1 -0
- package/dist/shared/theme/tokens.js +180 -0
- package/dist/shared/theme/tokens.js.map +1 -0
- package/dist/shared/theme/types.d.ts +55 -0
- package/dist/shared/theme/types.d.ts.map +1 -0
- package/dist/shared/theme/types.js +144 -0
- package/dist/shared/theme/types.js.map +1 -0
- package/dist/viewers/DocxViewer.d.ts +7 -0
- package/dist/viewers/DocxViewer.d.ts.map +1 -0
- package/dist/viewers/DocxViewer.js +157 -0
- package/dist/viewers/DocxViewer.js.map +1 -0
- package/dist/viewers/MarkdownViewer.d.ts +8 -0
- package/dist/viewers/MarkdownViewer.d.ts.map +1 -0
- package/dist/viewers/MarkdownViewer.js +111 -0
- package/dist/viewers/MarkdownViewer.js.map +1 -0
- package/dist/viewers/pdf/PdfViewer.d.ts +5 -0
- package/dist/viewers/pdf/PdfViewer.d.ts.map +1 -0
- package/dist/viewers/pdf/PdfViewer.js +104 -0
- package/dist/viewers/pdf/PdfViewer.js.map +1 -0
- package/dist/viewers/pdf/components/PdfFilmstrip.d.ts +4 -0
- package/dist/viewers/pdf/components/PdfFilmstrip.d.ts.map +1 -0
- package/dist/viewers/pdf/components/PdfFilmstrip.js +21 -0
- package/dist/viewers/pdf/components/PdfFilmstrip.js.map +1 -0
- package/dist/viewers/pdf/components/PdfToolbar.d.ts +4 -0
- package/dist/viewers/pdf/components/PdfToolbar.d.ts.map +1 -0
- package/dist/viewers/pdf/components/PdfToolbar.js +55 -0
- package/dist/viewers/pdf/components/PdfToolbar.js.map +1 -0
- package/dist/viewers/pdf/components/index.d.ts +4 -0
- package/dist/viewers/pdf/components/index.d.ts.map +1 -0
- package/dist/viewers/pdf/components/index.js +4 -0
- package/dist/viewers/pdf/components/index.js.map +1 -0
- package/dist/viewers/pdf/components/views/BookView.d.ts +4 -0
- package/dist/viewers/pdf/components/views/BookView.d.ts.map +1 -0
- package/dist/viewers/pdf/components/views/BookView.js +67 -0
- package/dist/viewers/pdf/components/views/BookView.js.map +1 -0
- package/dist/viewers/pdf/components/views/ContinuousScrollView.d.ts +4 -0
- package/dist/viewers/pdf/components/views/ContinuousScrollView.d.ts.map +1 -0
- package/dist/viewers/pdf/components/views/ContinuousScrollView.js +98 -0
- package/dist/viewers/pdf/components/views/ContinuousScrollView.js.map +1 -0
- package/dist/viewers/pdf/components/views/SinglePageView.d.ts +4 -0
- package/dist/viewers/pdf/components/views/SinglePageView.d.ts.map +1 -0
- package/dist/viewers/pdf/components/views/SinglePageView.js +27 -0
- package/dist/viewers/pdf/components/views/SinglePageView.js.map +1 -0
- package/dist/viewers/pdf/components/views/ThumbnailGridView.d.ts +8 -0
- package/dist/viewers/pdf/components/views/ThumbnailGridView.d.ts.map +1 -0
- package/dist/viewers/pdf/components/views/ThumbnailGridView.js +37 -0
- package/dist/viewers/pdf/components/views/ThumbnailGridView.js.map +1 -0
- package/dist/viewers/pdf/components/views/index.d.ts +5 -0
- package/dist/viewers/pdf/components/views/index.d.ts.map +1 -0
- package/dist/viewers/pdf/components/views/index.js +5 -0
- package/dist/viewers/pdf/components/views/index.js.map +1 -0
- package/dist/viewers/pdf/hooks/index.d.ts +5 -0
- package/dist/viewers/pdf/hooks/index.d.ts.map +1 -0
- package/dist/viewers/pdf/hooks/index.js +5 -0
- package/dist/viewers/pdf/hooks/index.js.map +1 -0
- package/dist/viewers/pdf/hooks/useFileWatcher.d.ts +15 -0
- package/dist/viewers/pdf/hooks/useFileWatcher.d.ts.map +1 -0
- package/dist/viewers/pdf/hooks/useFileWatcher.js +75 -0
- package/dist/viewers/pdf/hooks/useFileWatcher.js.map +1 -0
- package/dist/viewers/pdf/hooks/usePdfDocument.d.ts +24 -0
- package/dist/viewers/pdf/hooks/usePdfDocument.d.ts.map +1 -0
- package/dist/viewers/pdf/hooks/usePdfDocument.js +176 -0
- package/dist/viewers/pdf/hooks/usePdfDocument.js.map +1 -0
- package/dist/viewers/pdf/hooks/usePdfNavigation.d.ts +19 -0
- package/dist/viewers/pdf/hooks/usePdfNavigation.d.ts.map +1 -0
- package/dist/viewers/pdf/hooks/usePdfNavigation.js +92 -0
- package/dist/viewers/pdf/hooks/usePdfNavigation.js.map +1 -0
- package/dist/viewers/pdf/hooks/useZoom.d.ts +24 -0
- package/dist/viewers/pdf/hooks/useZoom.d.ts.map +1 -0
- package/dist/viewers/pdf/hooks/useZoom.js +136 -0
- package/dist/viewers/pdf/hooks/useZoom.js.map +1 -0
- package/dist/viewers/pdf/index.d.ts +5 -0
- package/dist/viewers/pdf/index.d.ts.map +1 -0
- package/dist/viewers/pdf/index.js +5 -0
- package/dist/viewers/pdf/index.js.map +1 -0
- package/dist/viewers/pdf/types.d.ts +80 -0
- package/dist/viewers/pdf/types.d.ts.map +1 -0
- package/dist/viewers/pdf/types.js +2 -0
- package/dist/viewers/pdf/types.js.map +1 -0
- package/dist/wasm/docx.d.ts +10 -0
- package/dist/wasm/docx.d.ts.map +1 -0
- package/dist/wasm/docx.js +66 -0
- package/dist/wasm/docx.js.map +1 -0
- package/dist/wasm/index.d.ts +6 -0
- package/dist/wasm/index.d.ts.map +1 -0
- package/dist/wasm/index.js +4 -0
- package/dist/wasm/index.js.map +1 -0
- package/dist/wasm/pptx.d.ts +9 -0
- package/dist/wasm/pptx.d.ts.map +1 -0
- package/dist/wasm/pptx.js +225 -0
- package/dist/wasm/pptx.js.map +1 -0
- package/dist/wasm/types.d.ts +266 -0
- package/dist/wasm/types.d.ts.map +1 -0
- package/dist/wasm/types.js +2 -0
- package/dist/wasm/types.js.map +1 -0
- package/dist/wasm/wasm-loader.d.ts +17 -0
- package/dist/wasm/wasm-loader.d.ts.map +1 -0
- package/dist/wasm/wasm-loader.js +23 -0
- package/dist/wasm/wasm-loader.js.map +1 -0
- package/package.json +81 -0
- package/wasm-pkg/LICENSE +37 -0
- package/wasm-pkg/kandi_office_wasm.d.ts +168 -0
- package/wasm-pkg/kandi_office_wasm.js +1008 -0
- package/wasm-pkg/kandi_office_wasm_bg.wasm +0 -0
- package/wasm-pkg/kandi_office_wasm_bg.wasm.d.ts +24 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FieldSchema } from '../types';
|
|
2
|
+
interface AddFieldFormProps {
|
|
3
|
+
initialField?: FieldSchema | null;
|
|
4
|
+
onSave: (field: FieldSchema) => void;
|
|
5
|
+
onCancel: () => void;
|
|
6
|
+
isEditing?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function AddFieldForm({ initialField, onSave, onCancel, isEditing, }: AddFieldFormProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=AddFieldForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddFieldForm.d.ts","sourceRoot":"","sources":["../../../src/forms-builder/components/AddFieldForm.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,UAAU,CAAC;AAI5D,UAAU,iBAAiB;IACzB,YAAY,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACrC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA6BD,wBAAgB,YAAY,CAAC,EAC3B,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,SAAiB,GAClB,EAAE,iBAAiB,2CAiLnB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useMemo } from 'react';
|
|
3
|
+
import { Box, TextField, Button, FormControl, InputLabel, Select, MenuItem, FormControlLabel, Checkbox, Stack, Typography, Divider, ListSubheader, } from '@mui/material';
|
|
4
|
+
import { WIDGET_TYPES, generateFieldId, getWidgetsByCategory } from '../types';
|
|
5
|
+
const CATEGORY_LABELS = {
|
|
6
|
+
text: 'Text',
|
|
7
|
+
number: 'Number',
|
|
8
|
+
selection: 'Selection',
|
|
9
|
+
datetime: 'Date & Time',
|
|
10
|
+
file: 'File Upload',
|
|
11
|
+
layout: 'Layout',
|
|
12
|
+
advanced: 'Advanced',
|
|
13
|
+
};
|
|
14
|
+
const CATEGORY_ORDER = [
|
|
15
|
+
'text',
|
|
16
|
+
'number',
|
|
17
|
+
'selection',
|
|
18
|
+
'datetime',
|
|
19
|
+
'file',
|
|
20
|
+
'layout',
|
|
21
|
+
'advanced',
|
|
22
|
+
];
|
|
23
|
+
export function AddFieldForm({ initialField, onSave, onCancel, isEditing = false, }) {
|
|
24
|
+
const [label, setLabel] = useState(initialField?.label || '');
|
|
25
|
+
const [widgetType, setWidgetType] = useState(initialField?.widgetType || 'textInput');
|
|
26
|
+
const [required, setRequired] = useState(initialField?.required ?? false);
|
|
27
|
+
const [description, setDescription] = useState(initialField?.description || '');
|
|
28
|
+
const [placeholder, setPlaceholder] = useState(initialField?.placeholder || '');
|
|
29
|
+
const [options, setOptions] = useState(initialField?.widgetConfig?.options || []);
|
|
30
|
+
const [optionsText, setOptionsText] = useState(options.map(o => o.label).join('\n'));
|
|
31
|
+
const widgetInfo = useMemo(() => WIDGET_TYPES.find(w => w.type === widgetType), [widgetType]);
|
|
32
|
+
const needsOptions = ['dropdown', 'radio', 'checkbox', 'buttonGroup'].includes(widgetType);
|
|
33
|
+
const handleOptionsChange = (text) => {
|
|
34
|
+
setOptionsText(text);
|
|
35
|
+
const lines = text.split('\n').filter(line => line.trim());
|
|
36
|
+
setOptions(lines.map((line, index) => ({
|
|
37
|
+
value: `option_${index}`,
|
|
38
|
+
label: line.trim(),
|
|
39
|
+
})));
|
|
40
|
+
};
|
|
41
|
+
const handleSave = () => {
|
|
42
|
+
if (!label.trim())
|
|
43
|
+
return;
|
|
44
|
+
const widgetConfig = { ...widgetInfo?.defaultConfig };
|
|
45
|
+
if (needsOptions) {
|
|
46
|
+
widgetConfig.options = options;
|
|
47
|
+
}
|
|
48
|
+
const field = {
|
|
49
|
+
id: initialField?.id || generateFieldId(),
|
|
50
|
+
label: label.trim(),
|
|
51
|
+
widgetType,
|
|
52
|
+
widgetConfig,
|
|
53
|
+
required,
|
|
54
|
+
description: description.trim() || undefined,
|
|
55
|
+
placeholder: placeholder.trim() || undefined,
|
|
56
|
+
};
|
|
57
|
+
onSave(field);
|
|
58
|
+
};
|
|
59
|
+
return (_jsxs(Box, { children: [_jsx(Typography, { variant: "subtitle1", gutterBottom: true, fontWeight: "medium", children: isEditing ? 'Edit Field' : 'Add New Field' }), _jsxs(Stack, { spacing: 2, children: [_jsx(TextField, { label: "Field Label", value: label, onChange: (e) => setLabel(e.target.value), fullWidth: true, required: true, size: "small", placeholder: "e.g., Email Address, Full Name", autoFocus: true }), _jsxs(FormControl, { fullWidth: true, size: "small", children: [_jsx(InputLabel, { children: "Field Type" }), _jsx(Select, { value: widgetType, label: "Field Type", onChange: (e) => setWidgetType(e.target.value), children: CATEGORY_ORDER.map((category) => {
|
|
60
|
+
const widgets = getWidgetsByCategory(category);
|
|
61
|
+
if (widgets.length === 0)
|
|
62
|
+
return null;
|
|
63
|
+
return [
|
|
64
|
+
_jsx(ListSubheader, { children: CATEGORY_LABELS[category] }, category),
|
|
65
|
+
...widgets.map((widget) => (_jsx(MenuItem, { value: widget.type, children: _jsxs(Box, { children: [_jsx(Typography, { variant: "body2", children: widget.label }), _jsx(Typography, { variant: "caption", color: "text.secondary", children: widget.description })] }) }, widget.type))),
|
|
66
|
+
];
|
|
67
|
+
}) })] }), needsOptions && (_jsx(TextField, { label: "Options (one per line)", value: optionsText, onChange: (e) => handleOptionsChange(e.target.value), fullWidth: true, multiline: true, rows: 4, size: "small", placeholder: "Option 1\nOption 2\nOption 3", helperText: `${options.length} option${options.length !== 1 ? 's' : ''}` })), widgetInfo?.isInput && (_jsx(FormControlLabel, { control: _jsx(Checkbox, { checked: required, onChange: (e) => setRequired(e.target.checked) }), label: "Required field" })), _jsx(Divider, {}), _jsx(Typography, { variant: "body2", color: "text.secondary", children: "Optional Settings" }), _jsx(TextField, { label: "Description", value: description, onChange: (e) => setDescription(e.target.value), fullWidth: true, size: "small", placeholder: "Help text shown below the field" }), widgetInfo?.isInput && (_jsx(TextField, { label: "Placeholder", value: placeholder, onChange: (e) => setPlaceholder(e.target.value), fullWidth: true, size: "small", placeholder: "Placeholder text inside the field" })), _jsxs(Stack, { direction: "row", spacing: 1, justifyContent: "flex-end", children: [_jsx(Button, { onClick: onCancel, color: "inherit", children: "Cancel" }), _jsx(Button, { variant: "contained", onClick: handleSave, disabled: !label.trim(), children: isEditing ? 'Update' : 'Add Field' })] })] })] }));
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=AddFieldForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddFieldForm.js","sourceRoot":"","sources":["../../../src/forms-builder/components/AddFieldForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FormMetadata } from '../../forms/storage/types';
|
|
2
|
+
interface FormCardProps {
|
|
3
|
+
form: FormMetadata;
|
|
4
|
+
onOpen: (formId: string, formName: string) => void;
|
|
5
|
+
onDelete: (formId: string) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function FormCard({ form, onOpen, onDelete }: FormCardProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=FormCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormCard.d.ts","sourceRoot":"","sources":["../../../src/forms-builder/components/FormCard.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,UAAU,aAAa;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAOD,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,aAAa,2CAuFjE"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Card, CardContent, CardActions, Typography, Button, IconButton, Box, Chip, } from '@mui/material';
|
|
3
|
+
import DeleteIcon from '@mui/icons-material/Delete';
|
|
4
|
+
import EditIcon from '@mui/icons-material/Edit';
|
|
5
|
+
export function FormCard({ form, onOpen, onDelete }) {
|
|
6
|
+
const formatDate = (dateStr) => {
|
|
7
|
+
try {
|
|
8
|
+
return new Date(dateStr).toLocaleDateString(undefined, {
|
|
9
|
+
year: 'numeric',
|
|
10
|
+
month: 'short',
|
|
11
|
+
day: 'numeric',
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return 'Unknown date';
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
return (_jsxs(Card, { sx: {
|
|
19
|
+
height: '100%',
|
|
20
|
+
display: 'flex',
|
|
21
|
+
flexDirection: 'column',
|
|
22
|
+
transition: 'box-shadow 0.2s',
|
|
23
|
+
'&:hover': {
|
|
24
|
+
boxShadow: 4,
|
|
25
|
+
},
|
|
26
|
+
}, children: [_jsxs(CardContent, { sx: { flex: 1 }, children: [_jsxs(Box, { sx: { display: 'flex', alignItems: 'flex-start', mb: 1 }, children: [_jsx(Typography, { variant: "h6", component: "h3", sx: {
|
|
27
|
+
flex: 1,
|
|
28
|
+
overflow: 'hidden',
|
|
29
|
+
textOverflow: 'ellipsis',
|
|
30
|
+
whiteSpace: 'nowrap',
|
|
31
|
+
}, children: form.name }), _jsx(Chip, { label: form.theme, size: "small", variant: "outlined", sx: { ml: 1, textTransform: 'capitalize' } })] }), _jsx(Typography, { variant: "body2", color: "text.secondary", sx: {
|
|
32
|
+
mb: 2,
|
|
33
|
+
minHeight: 40,
|
|
34
|
+
overflow: 'hidden',
|
|
35
|
+
display: '-webkit-box',
|
|
36
|
+
WebkitLineClamp: 2,
|
|
37
|
+
WebkitBoxOrient: 'vertical',
|
|
38
|
+
}, children: form.description || 'No description' }), _jsxs(Typography, { variant: "caption", color: "text.secondary", display: "block", children: ["Updated: ", formatDate(form.updated_at)] })] }), _jsxs(CardActions, { sx: { justifyContent: 'space-between', px: 2, pb: 2 }, children: [_jsx(Button, { size: "small", variant: "contained", startIcon: _jsx(EditIcon, {}), onClick: () => onOpen(form.id, form.name), children: "Open" }), _jsx(IconButton, { size: "small", color: "error", onClick: () => onDelete(form.id), "aria-label": "Delete form", children: _jsx(DeleteIcon, {}) })] })] }));
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=FormCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormCard.js","sourceRoot":"","sources":["../../../src/forms-builder/components/FormCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FormSchema, FieldSchema } from '../types';
|
|
2
|
+
interface FormDesignerProps {
|
|
3
|
+
formSchema: FormSchema;
|
|
4
|
+
onUpdateField: (field: FieldSchema) => void;
|
|
5
|
+
onReorderFields: (fieldIds: string[]) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function FormDesigner({ formSchema, onUpdateField, onReorderFields, }: FormDesignerProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=FormDesigner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormDesigner.d.ts","sourceRoot":"","sources":["../../../src/forms-builder/components/FormDesigner.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGxD,UAAU,iBAAiB;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC/C;AAOD,wBAAgB,YAAY,CAAC,EAC3B,UAAU,EACV,aAAa,EACb,eAAe,GAChB,EAAE,iBAAiB,2CAyQnB"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { Box, Paper, Typography, List, ListItem, ListItemText, IconButton, Stack, TextField, FormControl, InputLabel, Select, MenuItem, Collapse, Divider, Chip, } from '@mui/material';
|
|
4
|
+
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
|
|
5
|
+
import ExpandLessIcon from '@mui/icons-material/ExpandLess';
|
|
6
|
+
import KeyboardArrowUpIcon from '@mui/icons-material/KeyboardArrowUp';
|
|
7
|
+
import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';
|
|
8
|
+
import DragIndicatorIcon from '@mui/icons-material/DragIndicator';
|
|
9
|
+
import { getWidgetTypeInfo } from '../types';
|
|
10
|
+
export function FormDesigner({ formSchema, onUpdateField, onReorderFields, }) {
|
|
11
|
+
const [expandedField, setExpandedField] = useState(null);
|
|
12
|
+
const handleToggleExpand = (fieldId) => {
|
|
13
|
+
setExpandedField(expandedField === fieldId ? null : fieldId);
|
|
14
|
+
};
|
|
15
|
+
const handleMoveUp = (index) => {
|
|
16
|
+
if (index === 0)
|
|
17
|
+
return;
|
|
18
|
+
const newOrder = [...formSchema.fields.map(f => f.id)];
|
|
19
|
+
[newOrder[index - 1], newOrder[index]] = [newOrder[index], newOrder[index - 1]];
|
|
20
|
+
onReorderFields(newOrder);
|
|
21
|
+
};
|
|
22
|
+
const handleMoveDown = (index) => {
|
|
23
|
+
if (index === formSchema.fields.length - 1)
|
|
24
|
+
return;
|
|
25
|
+
const newOrder = [...formSchema.fields.map(f => f.id)];
|
|
26
|
+
[newOrder[index], newOrder[index + 1]] = [newOrder[index + 1], newOrder[index]];
|
|
27
|
+
onReorderFields(newOrder);
|
|
28
|
+
};
|
|
29
|
+
const handleUpdateStyle = (field, key, value) => {
|
|
30
|
+
onUpdateField({
|
|
31
|
+
...field,
|
|
32
|
+
style: {
|
|
33
|
+
...field.style,
|
|
34
|
+
[key]: value,
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
const handleUpdateLabel = (field, label) => {
|
|
39
|
+
onUpdateField({ ...field, label });
|
|
40
|
+
};
|
|
41
|
+
const handleUpdatePlaceholder = (field, placeholder) => {
|
|
42
|
+
onUpdateField({ ...field, placeholder: placeholder || undefined });
|
|
43
|
+
};
|
|
44
|
+
const handleUpdateDescription = (field, description) => {
|
|
45
|
+
onUpdateField({ ...field, description: description || undefined });
|
|
46
|
+
};
|
|
47
|
+
return (_jsxs(Box, { sx: { display: 'flex', gap: 3 }, children: [_jsx(Box, { sx: { flex: 1 }, children: _jsxs(Paper, { sx: { p: 2 }, children: [_jsx(Typography, { variant: "h6", gutterBottom: true, children: "Field Layout & Styling" }), _jsx(Typography, { variant: "body2", color: "text.secondary", sx: { mb: 2 }, children: "Drag to reorder fields and customize their appearance." }), _jsx(List, { disablePadding: true, children: formSchema.fields.map((field, index) => {
|
|
48
|
+
const widgetInfo = getWidgetTypeInfo(field.widgetType);
|
|
49
|
+
const isExpanded = expandedField === field.id;
|
|
50
|
+
return (_jsxs(Paper, { variant: "outlined", sx: { mb: 1 }, children: [_jsxs(ListItem, { sx: {
|
|
51
|
+
'&:hover': { bgcolor: 'action.hover' },
|
|
52
|
+
}, children: [_jsxs(Box, { sx: { display: 'flex', alignItems: 'center', mr: 1 }, children: [_jsx(DragIndicatorIcon, { sx: { color: 'text.disabled', mr: 1 } }), _jsxs(Stack, { spacing: 0, children: [_jsx(IconButton, { size: "small", onClick: () => handleMoveUp(index), disabled: index === 0, children: _jsx(KeyboardArrowUpIcon, { fontSize: "small" }) }), _jsx(IconButton, { size: "small", onClick: () => handleMoveDown(index), disabled: index === formSchema.fields.length - 1, children: _jsx(KeyboardArrowDownIcon, { fontSize: "small" }) })] })] }), _jsx(ListItemText, { primary: _jsxs(Box, { sx: { display: 'flex', alignItems: 'center', gap: 1 }, children: [_jsx(Typography, { variant: "body1", children: field.label }), _jsx(Chip, { label: widgetInfo?.label || field.widgetType, size: "small", variant: "outlined" })] }), secondary: `Column span: ${field.style?.columnSpan || 'Auto'}` }), _jsx(IconButton, { onClick: () => handleToggleExpand(field.id), children: isExpanded ? _jsx(ExpandLessIcon, {}) : _jsx(ExpandMoreIcon, {}) })] }), _jsx(Collapse, { in: isExpanded, children: _jsxs(Box, { sx: { p: 2, pt: 0 }, children: [_jsx(Divider, { sx: { mb: 2 } }), _jsxs(Stack, { spacing: 2, children: [_jsx(TextField, { label: "Label Text", value: field.label, onChange: (e) => handleUpdateLabel(field, e.target.value), fullWidth: true, size: "small" }), widgetInfo?.isInput && (_jsx(TextField, { label: "Placeholder", value: field.placeholder || '', onChange: (e) => handleUpdatePlaceholder(field, e.target.value), fullWidth: true, size: "small" })), _jsx(TextField, { label: "Help Text", value: field.description || '', onChange: (e) => handleUpdateDescription(field, e.target.value), fullWidth: true, size: "small" }), _jsxs(FormControl, { fullWidth: true, size: "small", children: [_jsx(InputLabel, { children: "Column Span" }), _jsxs(Select, { value: field.style?.columnSpan || 0, label: "Column Span", onChange: (e) => handleUpdateStyle(field, 'columnSpan', e.target.value), children: [_jsx(MenuItem, { value: 0, children: "Auto (Full Width)" }), _jsx(MenuItem, { value: 1, children: "1 Column (25%)" }), _jsx(MenuItem, { value: 2, children: "2 Columns (50%)" }), _jsx(MenuItem, { value: 3, children: "3 Columns (75%)" }), _jsx(MenuItem, { value: 4, children: "4 Columns (100%)" })] })] }), _jsxs(FormControl, { fullWidth: true, size: "small", children: [_jsx(InputLabel, { children: "Label Position" }), _jsxs(Select, { value: field.style?.labelPosition || 'top', label: "Label Position", onChange: (e) => handleUpdateStyle(field, 'labelPosition', e.target.value), children: [_jsx(MenuItem, { value: "top", children: "Top" }), _jsx(MenuItem, { value: "left", children: "Left" }), _jsx(MenuItem, { value: "floating", children: "Floating" })] })] })] })] }) })] }, field.id));
|
|
53
|
+
}) })] }) }), _jsx(Box, { sx: { width: 400 }, children: _jsxs(Paper, { sx: { p: 2, position: 'sticky', top: 16 }, children: [_jsx(Typography, { variant: "h6", gutterBottom: true, children: "Preview" }), _jsx(Typography, { variant: "body2", color: "text.secondary", sx: { mb: 2 }, children: "Live preview of your form layout." }), _jsxs(Box, { sx: {
|
|
54
|
+
p: 2,
|
|
55
|
+
border: 1,
|
|
56
|
+
borderColor: 'divider',
|
|
57
|
+
borderRadius: 1,
|
|
58
|
+
bgcolor: 'grey.50',
|
|
59
|
+
minHeight: 300,
|
|
60
|
+
}, children: [_jsx(Typography, { variant: "h6", gutterBottom: true, children: formSchema.name || 'Untitled Form' }), formSchema.description && (_jsx(Typography, { variant: "body2", color: "text.secondary", sx: { mb: 2 }, children: formSchema.description })), _jsx(Stack, { spacing: 2, children: formSchema.fields.map((field) => {
|
|
61
|
+
const widgetInfo = getWidgetTypeInfo(field.widgetType);
|
|
62
|
+
return (_jsxs(Box, { children: [_jsxs(Typography, { variant: "body2", fontWeight: "medium", children: [field.label, field.required && (_jsx(Typography, { component: "span", color: "error.main", children: ' *' }))] }), _jsx(Box, { sx: {
|
|
63
|
+
mt: 0.5,
|
|
64
|
+
p: 1.5,
|
|
65
|
+
border: 1,
|
|
66
|
+
borderColor: 'divider',
|
|
67
|
+
borderRadius: 1,
|
|
68
|
+
bgcolor: 'background.paper',
|
|
69
|
+
color: 'text.secondary',
|
|
70
|
+
}, children: _jsxs(Typography, { variant: "caption", children: ["[", widgetInfo?.label || field.widgetType, "]", field.placeholder && ` - "${field.placeholder}"`] }) }), field.description && (_jsx(Typography, { variant: "caption", color: "text.secondary", children: field.description }))] }, field.id));
|
|
71
|
+
}) })] })] }) })] }));
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=FormDesigner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormDesigner.js","sourceRoot":"","sources":["../../../src/forms-builder/components/FormDesigner.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IFormStorage } from '../../forms/storage/types';
|
|
2
|
+
interface FormLibraryDialogProps {
|
|
3
|
+
open: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
onOpenForm: (formId: string, formName: string) => void;
|
|
6
|
+
onCreateNew: () => void;
|
|
7
|
+
storage: IFormStorage;
|
|
8
|
+
}
|
|
9
|
+
export declare function FormLibraryDialog({ open, onClose, onOpenForm, onCreateNew, storage, }: FormLibraryDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=FormLibraryDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormLibraryDialog.d.ts","sourceRoot":"","sources":["../../../src/forms-builder/components/FormLibraryDialog.tsx"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,2BAA2B,CAAC;AAE5E,UAAU,sBAAsB;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;CACvB;AAOD,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,OAAO,EACP,UAAU,EACV,WAAW,EACX,OAAO,GACR,EAAE,sBAAsB,2CA4LxB"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect, useCallback } from 'react';
|
|
3
|
+
import { Dialog, DialogTitle, DialogContent, DialogActions, Button, TextField, Typography, IconButton, Box, CircularProgress, Alert, InputAdornment, Grid, } from '@mui/material';
|
|
4
|
+
import CloseIcon from '@mui/icons-material/Close';
|
|
5
|
+
import SearchIcon from '@mui/icons-material/Search';
|
|
6
|
+
import RefreshIcon from '@mui/icons-material/Refresh';
|
|
7
|
+
import AddIcon from '@mui/icons-material/Add';
|
|
8
|
+
import { FormCard } from './FormCard';
|
|
9
|
+
export function FormLibraryDialog({ open, onClose, onOpenForm, onCreateNew, storage, }) {
|
|
10
|
+
const [forms, setForms] = useState([]);
|
|
11
|
+
const [searchQuery, setSearchQuery] = useState('');
|
|
12
|
+
const [loading, setLoading] = useState(true);
|
|
13
|
+
const [error, setError] = useState(null);
|
|
14
|
+
const [deleteConfirm, setDeleteConfirm] = useState(null);
|
|
15
|
+
const loadForms = useCallback(async () => {
|
|
16
|
+
setLoading(true);
|
|
17
|
+
setError(null);
|
|
18
|
+
try {
|
|
19
|
+
const list = await storage.list();
|
|
20
|
+
list.sort((a, b) => new Date(b.updated_at).getTime() - new Date(a.updated_at).getTime());
|
|
21
|
+
setForms(list);
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
setError(err instanceof Error ? err.message : 'Failed to load forms');
|
|
25
|
+
}
|
|
26
|
+
finally {
|
|
27
|
+
setLoading(false);
|
|
28
|
+
}
|
|
29
|
+
}, [storage]);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
if (open) {
|
|
32
|
+
loadForms();
|
|
33
|
+
setSearchQuery('');
|
|
34
|
+
setDeleteConfirm(null);
|
|
35
|
+
}
|
|
36
|
+
}, [open, loadForms]);
|
|
37
|
+
const handleDelete = async (formId) => {
|
|
38
|
+
if (deleteConfirm !== formId) {
|
|
39
|
+
setDeleteConfirm(formId);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
await storage.delete(formId);
|
|
44
|
+
setDeleteConfirm(null);
|
|
45
|
+
loadForms();
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
setError(err instanceof Error ? err.message : 'Failed to delete form');
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
const handleOpen = (formId, formName) => {
|
|
52
|
+
onOpenForm(formId, formName);
|
|
53
|
+
onClose();
|
|
54
|
+
};
|
|
55
|
+
const handleCreateNew = () => {
|
|
56
|
+
onCreateNew();
|
|
57
|
+
onClose();
|
|
58
|
+
};
|
|
59
|
+
const filteredForms = forms.filter((f) => f.name.toLowerCase().includes(searchQuery.toLowerCase()) ||
|
|
60
|
+
(f.description?.toLowerCase().includes(searchQuery.toLowerCase()) ?? false));
|
|
61
|
+
return (_jsxs(Dialog, { open: open, onClose: onClose, maxWidth: "md", fullWidth: true, PaperProps: {
|
|
62
|
+
sx: {
|
|
63
|
+
height: '80vh',
|
|
64
|
+
maxHeight: 700,
|
|
65
|
+
},
|
|
66
|
+
}, children: [_jsxs(DialogTitle, { sx: { m: 0, p: 2, display: 'flex', alignItems: 'center' }, children: [_jsx(Typography, { variant: "h6", component: "span", sx: { flex: 1 }, children: "Form Library" }), _jsx(IconButton, { "aria-label": "refresh", onClick: loadForms, sx: { mr: 1 }, disabled: loading, children: _jsx(RefreshIcon, {}) }), _jsx(IconButton, { "aria-label": "close", onClick: onClose, sx: { color: 'grey.500' }, children: _jsx(CloseIcon, {}) })] }), _jsxs(DialogContent, { dividers: true, sx: { p: 0, display: 'flex', flexDirection: 'column' }, children: [_jsx(Box, { sx: { p: 2, borderBottom: 1, borderColor: 'divider' }, children: _jsx(TextField, { placeholder: "Search forms...", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), fullWidth: true, size: "small", slotProps: {
|
|
67
|
+
input: {
|
|
68
|
+
startAdornment: (_jsx(InputAdornment, { position: "start", children: _jsx(SearchIcon, { color: "action" }) })),
|
|
69
|
+
},
|
|
70
|
+
} }) }), error && (_jsx(Alert, { severity: "error", sx: { m: 2 }, onClose: () => setError(null), children: error })), deleteConfirm && (_jsx(Alert, { severity: "warning", sx: { m: 2 }, onClose: () => setDeleteConfirm(null), children: "Click delete again to confirm deletion, or click X to cancel." })), _jsx(Box, { sx: { flex: 1, overflow: 'auto', p: 2 }, children: loading ? (_jsx(Box, { sx: { display: 'flex', justifyContent: 'center', py: 4 }, children: _jsx(CircularProgress, {}) })) : filteredForms.length === 0 ? (_jsxs(Box, { sx: { textAlign: 'center', py: 4 }, children: [_jsx(Typography, { color: "text.secondary", gutterBottom: true, children: searchQuery ? 'No forms match your search' : 'No forms saved yet' }), !searchQuery && (_jsx(Button, { variant: "contained", startIcon: _jsx(AddIcon, {}), onClick: handleCreateNew, sx: { mt: 2 }, children: "Create Your First Form" }))] })) : (_jsx(Grid, { container: true, spacing: 2, children: filteredForms.map((form) => (_jsx(Grid, { size: { xs: 12, sm: 6, md: 4 }, children: _jsx(FormCard, { form: form, onOpen: handleOpen, onDelete: handleDelete }) }, form.id))) })) })] }), _jsxs(DialogActions, { sx: { px: 3, py: 2 }, children: [_jsxs(Typography, { variant: "body2", color: "text.secondary", sx: { flex: 1 }, children: [forms.length, " form", forms.length !== 1 ? 's' : '', " saved"] }), _jsx(Button, { onClick: onClose, color: "inherit", children: "Close" }), _jsx(Button, { variant: "contained", startIcon: _jsx(AddIcon, {}), onClick: handleCreateNew, children: "New Form" })] })] }));
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=FormLibraryDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormLibraryDialog.js","sourceRoot":"","sources":["../../../src/forms-builder/components/FormLibraryDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FormSchema } from '../types';
|
|
2
|
+
import type { IFormStorage } from '../../forms/storage/types';
|
|
3
|
+
interface FormTesterProps {
|
|
4
|
+
formId?: string;
|
|
5
|
+
formSchema: FormSchema;
|
|
6
|
+
storage?: IFormStorage;
|
|
7
|
+
}
|
|
8
|
+
export declare function FormTester({ formId, formSchema, storage, }: FormTesterProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=FormTester.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormTester.d.ts","sourceRoot":"","sources":["../../../src/forms-builder/components/FormTester.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,2BAA2B,CAAC;AAEhF,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAOD,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,UAAU,EACV,OAAO,GACR,EAAE,eAAe,2CA8KjB"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React, { useState, useEffect } from 'react';
|
|
3
|
+
import { Box, Paper, Typography, Button, Alert, Divider, Stack, CircularProgress, } from '@mui/material';
|
|
4
|
+
import PlayArrowIcon from '@mui/icons-material/PlayArrow';
|
|
5
|
+
import RefreshIcon from '@mui/icons-material/Refresh';
|
|
6
|
+
import CodeIcon from '@mui/icons-material/Code';
|
|
7
|
+
export function FormTester({ formId, formSchema, storage, }) {
|
|
8
|
+
const [form, setForm] = useState(null);
|
|
9
|
+
const [loading, setLoading] = useState(false);
|
|
10
|
+
const [error, setError] = useState(null);
|
|
11
|
+
const [formData, setFormData] = useState({});
|
|
12
|
+
const [submitted, setSubmitted] = useState(false);
|
|
13
|
+
const [showJson, setShowJson] = useState(false);
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
if (formId && storage) {
|
|
16
|
+
setLoading(true);
|
|
17
|
+
setError(null);
|
|
18
|
+
storage
|
|
19
|
+
.get(formId)
|
|
20
|
+
.then(setForm)
|
|
21
|
+
.catch((err) => setError(String(err)))
|
|
22
|
+
.finally(() => setLoading(false));
|
|
23
|
+
}
|
|
24
|
+
}, [formId, storage]);
|
|
25
|
+
const handleReset = () => {
|
|
26
|
+
setFormData({});
|
|
27
|
+
setSubmitted(false);
|
|
28
|
+
};
|
|
29
|
+
const handleSubmit = (e) => {
|
|
30
|
+
e.preventDefault();
|
|
31
|
+
setSubmitted(true);
|
|
32
|
+
};
|
|
33
|
+
const handleFieldChange = (fieldId, value) => {
|
|
34
|
+
setFormData((prev) => ({ ...prev, [fieldId]: value }));
|
|
35
|
+
setSubmitted(false);
|
|
36
|
+
};
|
|
37
|
+
if (loading) {
|
|
38
|
+
return (_jsx(Box, { sx: { display: 'flex', justifyContent: 'center', p: 4 }, children: _jsx(CircularProgress, {}) }));
|
|
39
|
+
}
|
|
40
|
+
if (error) {
|
|
41
|
+
return (_jsxs(Alert, { severity: "error", children: ["Failed to load form: ", error] }));
|
|
42
|
+
}
|
|
43
|
+
return (_jsxs(Box, { sx: { display: 'flex', gap: 3 }, children: [_jsx(Box, { sx: { flex: 1 }, children: _jsxs(Paper, { sx: { p: 3 }, children: [_jsxs(Box, { sx: { display: 'flex', alignItems: 'center', mb: 2 }, children: [_jsx(PlayArrowIcon, { sx: { mr: 1, color: 'primary.main' } }), _jsx(Typography, { variant: "h6", children: "Test Your Form" }), _jsx(Box, { sx: { flex: 1 } }), _jsx(Button, { startIcon: _jsx(RefreshIcon, {}), onClick: handleReset, size: "small", children: "Reset" })] }), _jsx(Divider, { sx: { mb: 3 } }), _jsx(Typography, { variant: "h5", gutterBottom: true, children: formSchema.name || 'Untitled Form' }), formSchema.description && (_jsx(Typography, { variant: "body1", color: "text.secondary", sx: { mb: 3 }, children: formSchema.description })), _jsx("form", { onSubmit: handleSubmit, children: _jsxs(Stack, { spacing: 3, children: [formSchema.fields.map((field) => (_jsx(FormField, { field: field, value: formData[field.id], onChange: (value) => handleFieldChange(field.id, value) }, field.id))), _jsx(Button, { type: "submit", variant: "contained", size: "large", sx: { mt: 2 }, children: "Submit Form" })] }) }), submitted && (_jsx(Alert, { severity: "success", sx: { mt: 3 }, children: "Form submitted successfully! See the captured data on the right." }))] }) }), _jsx(Box, { sx: { width: 350 }, children: _jsxs(Paper, { sx: { p: 2, position: 'sticky', top: 16 }, children: [_jsxs(Box, { sx: { display: 'flex', alignItems: 'center', mb: 2 }, children: [_jsx(CodeIcon, { sx: { mr: 1, color: 'text.secondary' } }), _jsx(Typography, { variant: "h6", children: "Captured Data" }), _jsx(Box, { sx: { flex: 1 } }), _jsx(Button, { size: "small", onClick: () => setShowJson(!showJson), children: showJson ? 'Table' : 'JSON' })] }), _jsx(Divider, { sx: { mb: 2 } }), Object.keys(formData).length === 0 ? (_jsx(Typography, { variant: "body2", color: "text.secondary", children: "Fill out the form to see captured data here." })) : showJson ? (_jsx(Box, { component: "pre", sx: {
|
|
44
|
+
p: 2,
|
|
45
|
+
bgcolor: 'grey.100',
|
|
46
|
+
borderRadius: 1,
|
|
47
|
+
overflow: 'auto',
|
|
48
|
+
fontSize: '0.75rem',
|
|
49
|
+
maxHeight: 400,
|
|
50
|
+
}, children: JSON.stringify(formData, null, 2) })) : (_jsx(Stack, { spacing: 1, children: Object.entries(formData).map(([fieldId, value]) => {
|
|
51
|
+
const field = formSchema.fields.find((f) => f.id === fieldId);
|
|
52
|
+
return (_jsxs(Box, { children: [_jsx(Typography, { variant: "caption", color: "text.secondary", children: field?.label || fieldId }), _jsx(Typography, { variant: "body2", children: formatValue(value) })] }, fieldId));
|
|
53
|
+
}) }))] }) })] }));
|
|
54
|
+
}
|
|
55
|
+
function formatValue(value) {
|
|
56
|
+
if (value === null || value === undefined)
|
|
57
|
+
return '(empty)';
|
|
58
|
+
if (typeof value === 'boolean')
|
|
59
|
+
return value ? 'Yes' : 'No';
|
|
60
|
+
if (Array.isArray(value))
|
|
61
|
+
return value.join(', ') || '(empty)';
|
|
62
|
+
return String(value) || '(empty)';
|
|
63
|
+
}
|
|
64
|
+
function FormField({ field, value, onChange }) {
|
|
65
|
+
const { id, label, widgetType, required, description, placeholder, widgetConfig } = field;
|
|
66
|
+
switch (widgetType) {
|
|
67
|
+
case 'textInput':
|
|
68
|
+
case 'email':
|
|
69
|
+
case 'phone':
|
|
70
|
+
case 'url':
|
|
71
|
+
return (_jsxs(Box, { children: [_jsx("label", { htmlFor: id, children: _jsxs(Typography, { variant: "body2", fontWeight: "medium", sx: { mb: 0.5 }, children: [label, required && _jsx("span", { style: { color: 'red' }, children: " *" })] }) }), _jsx("input", { id: id, type: widgetType === 'email' ? 'email' : widgetType === 'url' ? 'url' : 'text', value: value || '', onChange: (e) => onChange(e.target.value), placeholder: placeholder, required: required, style: {
|
|
72
|
+
width: '100%',
|
|
73
|
+
padding: '8px 12px',
|
|
74
|
+
border: '1px solid #ccc',
|
|
75
|
+
borderRadius: 4,
|
|
76
|
+
fontSize: 14,
|
|
77
|
+
} }), description && (_jsx(Typography, { variant: "caption", color: "text.secondary", children: description }))] }));
|
|
78
|
+
case 'textArea':
|
|
79
|
+
return (_jsxs(Box, { children: [_jsx("label", { htmlFor: id, children: _jsxs(Typography, { variant: "body2", fontWeight: "medium", sx: { mb: 0.5 }, children: [label, required && _jsx("span", { style: { color: 'red' }, children: " *" })] }) }), _jsx("textarea", { id: id, value: value || '', onChange: (e) => onChange(e.target.value), placeholder: placeholder, required: required, rows: 4, style: {
|
|
80
|
+
width: '100%',
|
|
81
|
+
padding: '8px 12px',
|
|
82
|
+
border: '1px solid #ccc',
|
|
83
|
+
borderRadius: 4,
|
|
84
|
+
fontSize: 14,
|
|
85
|
+
resize: 'vertical',
|
|
86
|
+
} }), description && (_jsx(Typography, { variant: "caption", color: "text.secondary", children: description }))] }));
|
|
87
|
+
case 'number':
|
|
88
|
+
return (_jsxs(Box, { children: [_jsx("label", { htmlFor: id, children: _jsxs(Typography, { variant: "body2", fontWeight: "medium", sx: { mb: 0.5 }, children: [label, required && _jsx("span", { style: { color: 'red' }, children: " *" })] }) }), _jsx("input", { id: id, type: "number", value: value ?? '', onChange: (e) => onChange(e.target.value ? Number(e.target.value) : null), placeholder: placeholder, required: required, style: {
|
|
89
|
+
width: '100%',
|
|
90
|
+
padding: '8px 12px',
|
|
91
|
+
border: '1px solid #ccc',
|
|
92
|
+
borderRadius: 4,
|
|
93
|
+
fontSize: 14,
|
|
94
|
+
} }), description && (_jsx(Typography, { variant: "caption", color: "text.secondary", children: description }))] }));
|
|
95
|
+
case 'toggle':
|
|
96
|
+
return (_jsxs(Box, { children: [_jsxs("label", { style: { display: 'flex', alignItems: 'center', cursor: 'pointer' }, children: [_jsx("input", { type: "checkbox", checked: value || false, onChange: (e) => onChange(e.target.checked), style: { marginRight: 8 } }), _jsxs(Typography, { variant: "body2", fontWeight: "medium", children: [label, required && _jsx("span", { style: { color: 'red' }, children: " *" })] })] }), description && (_jsx(Typography, { variant: "caption", color: "text.secondary", sx: { ml: 3 }, children: description }))] }));
|
|
97
|
+
case 'dropdown':
|
|
98
|
+
case 'radio':
|
|
99
|
+
const options = widgetConfig?.options || [];
|
|
100
|
+
return (_jsxs(Box, { children: [_jsxs(Typography, { variant: "body2", fontWeight: "medium", sx: { mb: 0.5 }, children: [label, required && _jsx("span", { style: { color: 'red' }, children: " *" })] }), widgetType === 'dropdown' ? (_jsxs("select", { value: value || '', onChange: (e) => onChange(e.target.value), required: required, style: {
|
|
101
|
+
width: '100%',
|
|
102
|
+
padding: '8px 12px',
|
|
103
|
+
border: '1px solid #ccc',
|
|
104
|
+
borderRadius: 4,
|
|
105
|
+
fontSize: 14,
|
|
106
|
+
}, children: [_jsx("option", { value: "", children: placeholder || 'Select an option' }), options.map((opt) => (_jsx("option", { value: opt.value, children: opt.label }, opt.value)))] })) : (_jsx(Stack, { spacing: 0.5, children: options.map((opt) => (_jsxs("label", { style: { display: 'flex', alignItems: 'center', cursor: 'pointer' }, children: [_jsx("input", { type: "radio", name: id, value: opt.value, checked: value === opt.value, onChange: (e) => onChange(e.target.value), required: required, style: { marginRight: 8 } }), opt.label] }, opt.value))) })), description && (_jsx(Typography, { variant: "caption", color: "text.secondary", children: description }))] }));
|
|
107
|
+
case 'checkbox':
|
|
108
|
+
const checkboxOptions = widgetConfig?.options || [];
|
|
109
|
+
const selectedValues = value || [];
|
|
110
|
+
return (_jsxs(Box, { children: [_jsxs(Typography, { variant: "body2", fontWeight: "medium", sx: { mb: 0.5 }, children: [label, required && _jsx("span", { style: { color: 'red' }, children: " *" })] }), _jsx(Stack, { spacing: 0.5, children: checkboxOptions.map((opt) => (_jsxs("label", { style: { display: 'flex', alignItems: 'center', cursor: 'pointer' }, children: [_jsx("input", { type: "checkbox", value: opt.value, checked: selectedValues.includes(opt.value), onChange: (e) => {
|
|
111
|
+
if (e.target.checked) {
|
|
112
|
+
onChange([...selectedValues, opt.value]);
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
onChange(selectedValues.filter((v) => v !== opt.value));
|
|
116
|
+
}
|
|
117
|
+
}, style: { marginRight: 8 } }), opt.label] }, opt.value))) }), description && (_jsx(Typography, { variant: "caption", color: "text.secondary", children: description }))] }));
|
|
118
|
+
case 'date':
|
|
119
|
+
return (_jsxs(Box, { children: [_jsx("label", { htmlFor: id, children: _jsxs(Typography, { variant: "body2", fontWeight: "medium", sx: { mb: 0.5 }, children: [label, required && _jsx("span", { style: { color: 'red' }, children: " *" })] }) }), _jsx("input", { id: id, type: "date", value: value || '', onChange: (e) => onChange(e.target.value), required: required, style: {
|
|
120
|
+
width: '100%',
|
|
121
|
+
padding: '8px 12px',
|
|
122
|
+
border: '1px solid #ccc',
|
|
123
|
+
borderRadius: 4,
|
|
124
|
+
fontSize: 14,
|
|
125
|
+
} }), description && (_jsx(Typography, { variant: "caption", color: "text.secondary", children: description }))] }));
|
|
126
|
+
case 'heading':
|
|
127
|
+
const level = widgetConfig?.level || 2;
|
|
128
|
+
const text = widgetConfig?.text || label;
|
|
129
|
+
const HeadingTag = `h${level}`;
|
|
130
|
+
return React.createElement(HeadingTag, { style: { margin: '16px 0 8px' } }, text);
|
|
131
|
+
case 'paragraph':
|
|
132
|
+
return (_jsx(Typography, { variant: "body1", color: "text.secondary", children: widgetConfig?.text || label }));
|
|
133
|
+
case 'divider':
|
|
134
|
+
return _jsx(Divider, { sx: { my: 2 } });
|
|
135
|
+
case 'spacer':
|
|
136
|
+
return _jsx(Box, { sx: { height: widgetConfig?.height || 24 } });
|
|
137
|
+
default:
|
|
138
|
+
return (_jsxs(Box, { children: [_jsxs(Typography, { variant: "body2", fontWeight: "medium", sx: { mb: 0.5 }, children: [label, required && _jsx("span", { style: { color: 'red' }, children: " *" })] }), _jsxs(Typography, { variant: "caption", color: "text.secondary", children: ["Widget type \"", widgetType, "\" not yet implemented in tester."] }), _jsx("input", { type: "text", value: value || '', onChange: (e) => onChange(e.target.value), placeholder: placeholder || `Enter ${label}`, style: {
|
|
139
|
+
width: '100%',
|
|
140
|
+
padding: '8px 12px',
|
|
141
|
+
border: '1px solid #ccc',
|
|
142
|
+
borderRadius: 4,
|
|
143
|
+
fontSize: 14,
|
|
144
|
+
} })] }));
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=FormTester.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormTester.js","sourceRoot":"","sources":["../../../src/forms-builder/components/FormTester.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IFormStorage } from '../../forms/storage/types';
|
|
2
|
+
interface NewKandiFormDialogProps {
|
|
3
|
+
open: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
onComplete?: (formId: string) => void;
|
|
6
|
+
storage?: IFormStorage;
|
|
7
|
+
editFormId?: string | null;
|
|
8
|
+
}
|
|
9
|
+
export declare function NewKandiFormDialog({ open, onClose, onComplete, storage, editFormId, }: NewKandiFormDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=NewKandiFormDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NewKandiFormDialog.d.ts","sourceRoot":"","sources":["../../../src/forms-builder/components/NewKandiFormDialog.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAS9D,UAAU,uBAAuB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAQD,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,UAAU,EACV,OAAO,EACP,UAAU,GACX,EAAE,uBAAuB,2CAsMzB"}
|