@stackcraftmx/calcita 0.52.0 → 0.54.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +109 -4
- package/dist/datePickers/DateInput.js +5 -3
- package/dist/datePickers/DateInput.js.map +1 -1
- package/dist/datePickers/DateTimeInput.js +6 -4
- package/dist/datePickers/DateTimeInput.js.map +1 -1
- package/dist/datePickers/FormDateField.js +1 -1
- package/dist/datePickers/FormDateField.js.map +1 -1
- package/dist/datePickers/FormDateTimeField.js +1 -1
- package/dist/datePickers/FormDateTimeField.js.map +1 -1
- package/dist/datePickers/FormMonthField.js +1 -1
- package/dist/datePickers/FormMonthField.js.map +1 -1
- package/dist/datePickers/FormTimeField.js +1 -1
- package/dist/datePickers/FormTimeField.js.map +1 -1
- package/dist/datePickers/MonthInput.js +5 -3
- package/dist/datePickers/MonthInput.js.map +1 -1
- package/dist/datePickers/PickerFrame.js +2 -2
- package/dist/datePickers/PickerFrame.js.map +1 -1
- package/dist/datePickers/TimeInput.js +6 -4
- package/dist/datePickers/TimeInput.js.map +1 -1
- package/dist/feedback/Toaster.js +11 -2
- package/dist/feedback/Toaster.js.map +1 -1
- package/dist/filepond/FileDropzone.js +60 -19
- package/dist/filepond/FileDropzone.js.map +1 -1
- package/dist/filepond/pondServer.js +86 -27
- package/dist/filepond/pondServer.js.map +1 -1
- package/dist/forms/CalcitaFormik.js +11 -0
- package/dist/forms/CalcitaFormik.js.map +1 -0
- package/dist/forms/FormAttachmentsField.js +1 -1
- package/dist/forms/FormAttachmentsField.js.map +1 -1
- package/dist/forms/FormCatalogField.js +1 -1
- package/dist/forms/FormCatalogField.js.map +1 -1
- package/dist/forms/FormCheckboxGroupField.js +1 -1
- package/dist/forms/FormCheckboxGroupField.js.map +1 -1
- package/dist/forms/FormColorField.js +1 -1
- package/dist/forms/FormColorField.js.map +1 -1
- package/dist/forms/FormFileField.js +1 -1
- package/dist/forms/FormFileField.js.map +1 -1
- package/dist/forms/FormFileUploadField.js +1 -1
- package/dist/forms/FormFileUploadField.js.map +1 -1
- package/dist/forms/FormImageField.js +1 -1
- package/dist/forms/FormImageField.js.map +1 -1
- package/dist/forms/FormMaskedField.js +1 -1
- package/dist/forms/FormMaskedField.js.map +1 -1
- package/dist/forms/FormNumberField.js +1 -1
- package/dist/forms/FormNumberField.js.map +1 -1
- package/dist/forms/FormSchemaProvider.js +17 -0
- package/dist/forms/FormSchemaProvider.js.map +1 -0
- package/dist/forms/FormSelectField.js +1 -1
- package/dist/forms/FormSelectField.js.map +1 -1
- package/dist/forms/FormTextField.js +1 -1
- package/dist/forms/FormTextField.js.map +1 -1
- package/dist/forms/FormTransferListField.js +1 -1
- package/dist/forms/FormTransferListField.js.map +1 -1
- package/dist/forms/FormWizard.js +2 -0
- package/dist/forms/FormWizard.js.map +1 -1
- package/dist/forms/schemaRequired.js +33 -0
- package/dist/forms/schemaRequired.js.map +1 -0
- package/dist/forms/useFormikField.js +18 -5
- package/dist/forms/useFormikField.js.map +1 -1
- package/dist/forms.js +52 -46
- package/dist/forms.js.map +1 -1
- package/dist/hookForm/FormAttachmentsField.js +1 -1
- package/dist/hookForm/FormAttachmentsField.js.map +1 -1
- package/dist/hookForm/FormCatalogField.js +1 -1
- package/dist/hookForm/FormCatalogField.js.map +1 -1
- package/dist/hookForm/FormCheckboxGroupField.js +1 -1
- package/dist/hookForm/FormCheckboxGroupField.js.map +1 -1
- package/dist/hookForm/FormColorField.js +1 -1
- package/dist/hookForm/FormColorField.js.map +1 -1
- package/dist/hookForm/FormFileField.js +1 -1
- package/dist/hookForm/FormFileField.js.map +1 -1
- package/dist/hookForm/FormFileUploadField.js +1 -1
- package/dist/hookForm/FormFileUploadField.js.map +1 -1
- package/dist/hookForm/FormImageField.js +1 -1
- package/dist/hookForm/FormImageField.js.map +1 -1
- package/dist/hookForm/FormMaskedField.js +1 -1
- package/dist/hookForm/FormMaskedField.js.map +1 -1
- package/dist/hookForm/FormNumberField.js +1 -1
- package/dist/hookForm/FormNumberField.js.map +1 -1
- package/dist/hookForm/FormSelectField.js +1 -1
- package/dist/hookForm/FormSelectField.js.map +1 -1
- package/dist/hookForm/FormTextField.js +1 -1
- package/dist/hookForm/FormTextField.js.map +1 -1
- package/dist/hookForm/FormTransferListField.js +1 -1
- package/dist/hookForm/FormTransferListField.js.map +1 -1
- package/dist/hookForm/FormWizard.js +2 -0
- package/dist/hookForm/FormWizard.js.map +1 -1
- package/dist/hookForm/useHookFormField.js +9 -3
- package/dist/hookForm/useHookFormField.js.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/inputs/CatalogInput.js +3 -2
- package/dist/inputs/CatalogInput.js.map +1 -1
- package/dist/inputs/CheckboxGroupInput.js +2 -1
- package/dist/inputs/CheckboxGroupInput.js.map +1 -1
- package/dist/inputs/ColorInput.js +3 -1
- package/dist/inputs/ColorInput.js.map +1 -1
- package/dist/inputs/FieldFrame.js +18 -3
- package/dist/inputs/FieldFrame.js.map +1 -1
- package/dist/inputs/FormSection.js +42 -11
- package/dist/inputs/FormSection.js.map +1 -1
- package/dist/inputs/NumberInput.js +3 -1
- package/dist/inputs/NumberInput.js.map +1 -1
- package/dist/inputs/SelectInput.js +3 -1
- package/dist/inputs/SelectInput.js.map +1 -1
- package/dist/inputs/TextInput.js +1 -1
- package/dist/inputs/TextInput.js.map +1 -1
- package/dist/inputs/TransferListInput.js +2 -1
- package/dist/inputs/TransferListInput.js.map +1 -1
- package/dist/inputs/WizardLayout.js +12 -6
- package/dist/inputs/WizardLayout.js.map +1 -1
- package/dist/inputs/formLayoutContext.js +7 -2
- package/dist/inputs/formLayoutContext.js.map +1 -1
- package/dist/inputs/requiredMark.js +17 -0
- package/dist/inputs/requiredMark.js.map +1 -0
- package/dist/locales/en.js +2 -0
- package/dist/locales/en.js.map +1 -1
- package/dist/locales/es.js +2 -0
- package/dist/locales/es.js.map +1 -1
- package/dist/richText/FormRichTextField.js +1 -1
- package/dist/richText/FormRichTextField.js.map +1 -1
- package/dist/richText/RichTextEditor.js +4 -3
- package/dist/richText/RichTextEditor.js.map +1 -1
- package/dist/toolkit/ToolkitProvider.js +3 -0
- package/dist/toolkit/ToolkitProvider.js.map +1 -1
- package/dist/toolkit/toolkitContext.js.map +1 -1
- package/dist/types/datePickers/DateInput.d.ts +2 -0
- package/dist/types/datePickers/DateTimeInput.d.ts +2 -0
- package/dist/types/datePickers/FormDateField.d.ts +3 -3
- package/dist/types/datePickers/FormDateTimeField.d.ts +3 -3
- package/dist/types/datePickers/FormMonthField.d.ts +3 -3
- package/dist/types/datePickers/FormTimeField.d.ts +3 -3
- package/dist/types/datePickers/MonthInput.d.ts +2 -0
- package/dist/types/datePickers/PickerFrame.d.ts +3 -1
- package/dist/types/datePickers/TimeInput.d.ts +2 -0
- package/dist/types/feedback/Toaster.d.ts +15 -1
- package/dist/types/feedback/index.d.ts +1 -1
- package/dist/types/filepond/FileDropzone.d.ts +5 -0
- package/dist/types/filepond/chunkedUpload.d.ts +122 -0
- package/dist/types/filepond/pondServer.d.ts +25 -3
- package/dist/types/forms/CalcitaFormik.d.ts +6 -0
- package/dist/types/forms/FormAttachmentsField.d.ts +3 -3
- package/dist/types/forms/FormCatalogField.d.ts +2 -2
- package/dist/types/forms/FormCheckboxGroupField.d.ts +3 -3
- package/dist/types/forms/FormColorField.d.ts +2 -2
- package/dist/types/forms/FormFileField.d.ts +3 -3
- package/dist/types/forms/FormFileUploadField.d.ts +3 -3
- package/dist/types/forms/FormImageField.d.ts +3 -3
- package/dist/types/forms/FormMaskedField.d.ts +2 -2
- package/dist/types/forms/FormNumberField.d.ts +2 -2
- package/dist/types/forms/FormSchemaProvider.d.ts +13 -0
- package/dist/types/forms/FormSelectField.d.ts +2 -2
- package/dist/types/forms/FormTextField.d.ts +2 -2
- package/dist/types/forms/FormTransferListField.d.ts +3 -3
- package/dist/types/forms/FormWizard.d.ts +3 -1
- package/dist/types/forms/index.d.ts +1 -0
- package/dist/types/forms/schemaRequired.d.ts +14 -0
- package/dist/types/forms/useFormikField.d.ts +10 -4
- package/dist/types/forms.d.ts +4 -2
- package/dist/types/hookForm/FormAttachmentsField.d.ts +3 -3
- package/dist/types/hookForm/FormCatalogField.d.ts +3 -3
- package/dist/types/hookForm/FormCheckboxGroupField.d.ts +3 -3
- package/dist/types/hookForm/FormColorField.d.ts +3 -3
- package/dist/types/hookForm/FormFileField.d.ts +3 -3
- package/dist/types/hookForm/FormFileUploadField.d.ts +3 -3
- package/dist/types/hookForm/FormImageField.d.ts +3 -3
- package/dist/types/hookForm/FormMaskedField.d.ts +3 -3
- package/dist/types/hookForm/FormNumberField.d.ts +3 -3
- package/dist/types/hookForm/FormSelectField.d.ts +3 -3
- package/dist/types/hookForm/FormTextField.d.ts +3 -3
- package/dist/types/hookForm/FormTransferListField.d.ts +3 -3
- package/dist/types/hookForm/FormWizard.d.ts +3 -1
- package/dist/types/hookForm/useHookFormField.d.ts +8 -4
- package/dist/types/index.d.ts +3 -2
- package/dist/types/inputs/CatalogInput.d.ts +1 -0
- package/dist/types/inputs/CheckboxGroupInput.d.ts +1 -0
- package/dist/types/inputs/ColorInput.d.ts +1 -0
- package/dist/types/inputs/FieldFrame.d.ts +1 -0
- package/dist/types/inputs/FormSection.d.ts +13 -0
- package/dist/types/inputs/NumberInput.d.ts +1 -0
- package/dist/types/inputs/SelectInput.d.ts +1 -0
- package/dist/types/inputs/TextInput.d.ts +1 -1
- package/dist/types/inputs/TransferListInput.d.ts +1 -0
- package/dist/types/inputs/WizardLayout.d.ts +1 -0
- package/dist/types/inputs/formLayoutContext.d.ts +8 -1
- package/dist/types/inputs/requiredMark.d.ts +9 -0
- package/dist/types/locales/en.d.ts +2 -0
- package/dist/types/locales/es.d.ts +2 -0
- package/dist/types/richText/FormRichTextField.d.ts +3 -3
- package/dist/types/richText/RichTextEditor.d.ts +1 -0
- package/dist/types/toolkit/ToolkitProvider.d.ts +5 -1
- package/dist/types/toolkit/toolkitContext.d.ts +2 -1
- package/dist/types/upload/AttachmentsInput.d.ts +2 -0
- package/dist/types/upload/FileInput.d.ts +1 -0
- package/dist/types/upload/FileUploadInput.d.ts +1 -0
- package/dist/types/upload/ImageInput.d.ts +1 -0
- package/dist/types/upload/chunkedUpload.d.ts +189 -0
- package/dist/types/upload/uploadWithProgress.d.ts +4 -2
- package/dist/upload/AttachmentsInput.js +2 -1
- package/dist/upload/AttachmentsInput.js.map +1 -1
- package/dist/upload/FileInput.js +2 -1
- package/dist/upload/FileInput.js.map +1 -1
- package/dist/upload/FileUploadInput.js +2 -1
- package/dist/upload/FileUploadInput.js.map +1 -1
- package/dist/upload/ImageInput.js +2 -1
- package/dist/upload/ImageInput.js.map +1 -1
- package/dist/upload/chunkedUpload.js +261 -0
- package/dist/upload/chunkedUpload.js.map +1 -0
- package/dist/upload/uploadWithProgress.js +8 -3
- package/dist/upload/uploadWithProgress.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolkitContext.js","sources":["../../src/toolkit/toolkitContext.js"],"sourcesContent":["// El contexto de ToolkitProvider y los hooks que lo leen. Vive aparte del proveedor (que es .jsx) para que los hooks se\n// importen desde archivos .js sin arrastrar JSX.\n//\n// Hooks genéricos: function (regla de la casa).\nimport {createContext, useContext} from 'react';\nimport {allowOnlyUnrestricted} from '@/access/accessRules.js';\nimport {browserNavigation} from '@/toolkit/browserNavigation.js';\nimport {toolkitSettings} from '@/toolkit/toolkitSettings.js';\n\nexport const ToolkitContext = createContext(null);\n\n/**\n * La configuración del proveedor; sin proveedor, la vigente con la navegación del navegador.\n *\n * @returns {{language: string, onLanguageChange: Function|null, texts: object, translate: Function|null, timeZone: string, currency: string, hourCycle: 'h23'|'h12', appName: string, buildId: string, navigation: object, canAccess: Function}}\n */\nexport function useToolkitSettings() {\n const settings = useContext(ToolkitContext);\n\n return settings ?? {...toolkitSettings(), onLanguageChange: null, navigation: browserNavigation, canAccess: allowOnlyUnrestricted};\n}\n\n/**\n * La navegación que conectó el proyecto: {useNavigate, useLocation, Link}.\n *\n * @returns {{useNavigate: Function, useLocation: Function, Link: import('react').ElementType}}\n */\nexport function useToolkitNavigation() {\n return useToolkitSettings().navigation;\n}\n"],"names":[],"mappings":";;;;;AASY,MAAC,iBAAiB,cAAc,IAAI;AAOzC,SAAS,qBAAqB;AACjC,QAAM,WAAW,WAAW,cAAc;AAE1C,SAAO,YAAY,EAAC,GAAG,mBAAmB,kBAAkB,MAAM,YAAY,mBAAmB,WAAW,sBAAqB;AACrI;AAOO,SAAS,uBAAuB;AACnC,SAAO,mBAAkB,EAAG;AAChC;"}
|
|
1
|
+
{"version":3,"file":"toolkitContext.js","sources":["../../src/toolkit/toolkitContext.js"],"sourcesContent":["// El contexto de ToolkitProvider y los hooks que lo leen. Vive aparte del proveedor (que es .jsx) para que los hooks se\n// importen desde archivos .js sin arrastrar JSX.\n//\n// Hooks genéricos: function (regla de la casa).\nimport {createContext, useContext} from 'react';\nimport {allowOnlyUnrestricted} from '@/access/accessRules.js';\nimport {browserNavigation} from '@/toolkit/browserNavigation.js';\nimport {toolkitSettings} from '@/toolkit/toolkitSettings.js';\n\nexport const ToolkitContext = createContext(null);\n\n/**\n * La configuración del proveedor; sin proveedor, la vigente con la navegación del navegador.\n *\n * @returns {{language: string, onLanguageChange: Function|null, requiredFromSchema?: boolean, texts: object, translate: Function|null, timeZone: string, currency: string, hourCycle: 'h23'|'h12', appName: string, buildId: string, navigation: object, canAccess: Function}}\n */\nexport function useToolkitSettings() {\n const settings = useContext(ToolkitContext);\n\n return settings ?? {...toolkitSettings(), onLanguageChange: null, navigation: browserNavigation, canAccess: allowOnlyUnrestricted};\n}\n\n/**\n * La navegación que conectó el proyecto: {useNavigate, useLocation, Link}.\n *\n * @returns {{useNavigate: Function, useLocation: Function, Link: import('react').ElementType}}\n */\nexport function useToolkitNavigation() {\n return useToolkitSettings().navigation;\n}\n"],"names":[],"mappings":";;;;;AASY,MAAC,iBAAiB,cAAc,IAAI;AAOzC,SAAS,qBAAqB;AACjC,QAAM,WAAW,WAAW,cAAc;AAE1C,SAAO,YAAY,EAAC,GAAG,mBAAmB,kBAAkB,MAAM,YAAY,mBAAmB,WAAW,sBAAqB;AACrI;AAOO,SAAS,uBAAuB;AACnC,SAAO,mBAAkB,EAAG;AAChC;"}
|
|
@@ -17,6 +17,8 @@ declare const DateInput: (props: {
|
|
|
17
17
|
disablePast?: boolean;
|
|
18
18
|
openTo?: 'day' | 'month' | 'year';
|
|
19
19
|
disabled?: boolean;
|
|
20
|
+
format?: string;
|
|
21
|
+
required?: boolean;
|
|
20
22
|
inputRef?: import('react').Ref<HTMLInputElement>;
|
|
21
23
|
pickerProps?: object;
|
|
22
24
|
messages?: Record<string, string | object>;
|
|
@@ -19,6 +19,8 @@ declare const DateTimeInput: (props: {
|
|
|
19
19
|
showTimeZone?: boolean;
|
|
20
20
|
timeZoneLabel?: string;
|
|
21
21
|
disabled?: boolean;
|
|
22
|
+
format?: string;
|
|
23
|
+
required?: boolean;
|
|
22
24
|
inputRef?: import('react').Ref<HTMLInputElement>;
|
|
23
25
|
pickerProps?: object;
|
|
24
26
|
messages?: Record<string, string | object>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {{name: string} & Omit<Parameters<typeof import('./DateInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
|
|
3
|
-
* DateInput (minDate, maxDate, disableFuture, openTo…), sin value
|
|
2
|
+
* @param {{name: string} & Omit<Parameters<typeof import('./DateInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('./DateInput.js').default>[0], 'onChange'|'onBlur'>>} props las de
|
|
3
|
+
* DateInput (minDate, maxDate, disableFuture, openTo…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
|
|
4
4
|
*/
|
|
5
5
|
export default function FormDateField({ name, ...dateInputProps }: {
|
|
6
6
|
name: string;
|
|
7
|
-
} & Omit<Parameters<typeof import('./DateInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
|
|
7
|
+
} & Omit<Parameters<typeof import('./DateInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('./DateInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {{name: string} & Omit<Parameters<typeof import('./DateTimeInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
|
|
3
|
-
* DateTimeInput (minDateTime, minimumMinutesFromNow, disablePast, minutesStep, timeZone…), sin value
|
|
2
|
+
* @param {{name: string} & Omit<Parameters<typeof import('./DateTimeInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('./DateTimeInput.js').default>[0], 'onChange'|'onBlur'>>} props las de
|
|
3
|
+
* DateTimeInput (minDateTime, minimumMinutesFromNow, disablePast, minutesStep, timeZone…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
|
|
4
4
|
*/
|
|
5
5
|
export default function FormDateTimeField({ name, ...inputProps }: {
|
|
6
6
|
name: string;
|
|
7
|
-
} & Omit<Parameters<typeof import('./DateTimeInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
|
|
7
|
+
} & Omit<Parameters<typeof import('./DateTimeInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('./DateTimeInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {{name: string} & Omit<Parameters<typeof import('./MonthInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
|
|
3
|
-
* MonthInput (minMonth, maxMonth, disableFuture…), sin value
|
|
2
|
+
* @param {{name: string} & Omit<Parameters<typeof import('./MonthInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('./MonthInput.js').default>[0], 'onChange'|'onBlur'>>} props las de
|
|
3
|
+
* MonthInput (minMonth, maxMonth, disableFuture…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
|
|
4
4
|
*/
|
|
5
5
|
export default function FormMonthField({ name, ...inputProps }: {
|
|
6
6
|
name: string;
|
|
7
|
-
} & Omit<Parameters<typeof import('./MonthInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
|
|
7
|
+
} & Omit<Parameters<typeof import('./MonthInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('./MonthInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {{name: string} & Omit<Parameters<typeof import('./TimeInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
|
|
3
|
-
* TimeInput (minTime, maxTime, minutesStep…), sin value
|
|
2
|
+
* @param {{name: string} & Omit<Parameters<typeof import('./TimeInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('./TimeInput.js').default>[0], 'onChange'|'onBlur'>>} props las de
|
|
3
|
+
* TimeInput (minTime, maxTime, minutesStep…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
|
|
4
4
|
*/
|
|
5
5
|
export default function FormTimeField({ name, ...inputProps }: {
|
|
6
6
|
name: string;
|
|
7
|
-
} & Omit<Parameters<typeof import('./TimeInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
|
|
7
|
+
} & Omit<Parameters<typeof import('./TimeInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('./TimeInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
|
|
@@ -14,6 +14,8 @@ declare const MonthInput: (props: {
|
|
|
14
14
|
disableFuture?: boolean;
|
|
15
15
|
disablePast?: boolean;
|
|
16
16
|
disabled?: boolean;
|
|
17
|
+
format?: string;
|
|
18
|
+
required?: boolean;
|
|
17
19
|
inputRef?: import('react').Ref<HTMLInputElement>;
|
|
18
20
|
pickerProps?: object;
|
|
19
21
|
messages?: Record<string, string | object>;
|
|
@@ -12,11 +12,13 @@ export declare function textFieldSlotPropsOf(textField: object, pickerProps?: ob
|
|
|
12
12
|
* @param {string} props.inputId
|
|
13
13
|
* @param {import('react').ReactNode} props.label ya traducida
|
|
14
14
|
* @param {string} props.language el del proveedor más cercano
|
|
15
|
+
* @param {boolean} [props.required] el asterisco en la etiqueta
|
|
15
16
|
* @param {import('react').ReactNode} props.children el selector de MUI X
|
|
16
17
|
*/
|
|
17
|
-
export default function PickerFrame({ inputId, label, language, children }: {
|
|
18
|
+
export default function PickerFrame({ inputId, label, language, required, children }: {
|
|
18
19
|
inputId: string;
|
|
19
20
|
label: import('react').ReactNode;
|
|
20
21
|
language: string;
|
|
22
|
+
required?: boolean;
|
|
21
23
|
children: import('react').ReactNode;
|
|
22
24
|
}): import("react").JSX.Element;
|
|
@@ -13,6 +13,8 @@ declare const TimeInput: (props: {
|
|
|
13
13
|
maxTime?: string;
|
|
14
14
|
minutesStep?: number;
|
|
15
15
|
disabled?: boolean;
|
|
16
|
+
format?: string;
|
|
17
|
+
required?: boolean;
|
|
16
18
|
inputRef?: import('react').Ref<HTMLInputElement>;
|
|
17
19
|
pickerProps?: object;
|
|
18
20
|
messages?: Record<string, string | object>;
|
|
@@ -1 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
/** Dónde salen los avisos (los nombres de sonner). */
|
|
2
|
+
export declare const TOASTER_POSITION: Readonly<{
|
|
3
|
+
topLeft: "top-left";
|
|
4
|
+
topCenter: "top-center";
|
|
5
|
+
topRight: "top-right";
|
|
6
|
+
bottomLeft: "bottom-left";
|
|
7
|
+
bottomCenter: "bottom-center";
|
|
8
|
+
bottomRight: "bottom-right";
|
|
9
|
+
}>;
|
|
10
|
+
/**
|
|
11
|
+
* @param {import('sonner').ToasterProps} props lo de sonner, tal cual (https://sonner.emilkowal.ski/toaster: duration,
|
|
12
|
+
* offset, mobileOffset, visibleToasts, toastOptions…). Por omisión: position abajo a la izquierda (uno de
|
|
13
|
+
* TOASTER_POSITION), richColors y closeButton sí, y theme el modo de MUI que se ve en pantalla
|
|
14
|
+
*/
|
|
15
|
+
export default function Toaster({ position, richColors, closeButton, ...sonnerProps }: import('sonner').ToasterProps): import("react").JSX.Element;
|
|
@@ -2,7 +2,7 @@ export { default as ConfirmDialog } from './ConfirmDialog.js';
|
|
|
2
2
|
export { default as ModalWaiting } from './ModalWaiting.js';
|
|
3
3
|
export { NEW_BUILD_NOTICE_VARIANT, default as NewBuildNotice } from './NewBuildNotice.js';
|
|
4
4
|
export { default as StaleBuildBoundary } from './StaleBuildBoundary.js';
|
|
5
|
-
export { default as Toaster } from './Toaster.js';
|
|
5
|
+
export { TOASTER_POSITION, default as Toaster } from './Toaster.js';
|
|
6
6
|
export { confirmActionMachine } from './confirmActionMachine.js';
|
|
7
7
|
export { TOAST_DEFAULT_OPTIONS, dismissToast, errorsObjectToMessage, toastDefault, toastError, toastInfo, toastLoading, toastProblem, toastPromise, toastSuccess, toastWarn, } from './toast.js';
|
|
8
8
|
export { useConfirmAction } from './useConfirmAction.js';
|
|
@@ -27,6 +27,11 @@ declare const FileDropzone: (props: {
|
|
|
27
27
|
total: number;
|
|
28
28
|
}) => void;
|
|
29
29
|
onReject?: (file: File | null, reason: string, message?: string) => void;
|
|
30
|
+
chunkUploads?: boolean;
|
|
31
|
+
chunkForce?: boolean;
|
|
32
|
+
chunkSize?: number | string;
|
|
33
|
+
chunkRetryDelays?: number[] | null;
|
|
34
|
+
pondProps?: Partial<import('filepond').FilePondOptions> | null;
|
|
30
35
|
actions?: import('react').ReactNode;
|
|
31
36
|
children?: import('react').ReactNode;
|
|
32
37
|
sx?: object;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/** Los headers del protocolo de trozos de FilePond. */
|
|
2
|
+
export declare const CHUNK_HEADER: Readonly<{
|
|
3
|
+
length: "Upload-Length";
|
|
4
|
+
offset: "Upload-Offset";
|
|
5
|
+
name: "Upload-Name";
|
|
6
|
+
contentType: "Content-Type";
|
|
7
|
+
}>;
|
|
8
|
+
/** Por qué no se pudo subir: el servidor dijo que no, no contestó, o no dio el folio de la subida. */
|
|
9
|
+
export declare const UPLOAD_FAILURE: Readonly<{
|
|
10
|
+
rejected: "rejected";
|
|
11
|
+
noResponse: "noResponse";
|
|
12
|
+
noTransferId: "noTransferId";
|
|
13
|
+
}>;
|
|
14
|
+
/** Una subida que no salió: el motivo (UPLOAD_FAILURE) y la respuesta del servidor, si la hubo. */
|
|
15
|
+
export declare class UploadFailure extends Error {
|
|
16
|
+
reason: string;
|
|
17
|
+
response: Response | null;
|
|
18
|
+
/**
|
|
19
|
+
* @param {string} reason de UPLOAD_FAILURE
|
|
20
|
+
* @param {Response|null} [response]
|
|
21
|
+
*/
|
|
22
|
+
constructor(reason: string, response?: Response | null);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Los trozos de un archivo: dónde empieza y dónde acaba cada uno. Un archivo vacío es un trozo vacío: el servidor igual
|
|
26
|
+
* necesita saber que el archivo llegó completo.
|
|
27
|
+
*
|
|
28
|
+
* @param {number} fileSize en bytes
|
|
29
|
+
* @param {number} chunkSize en bytes
|
|
30
|
+
* @returns {{index: number, offset: number, end: number}[]}
|
|
31
|
+
*/
|
|
32
|
+
export declare function chunkPiecesOf(fileSize: number, chunkSize: number): {
|
|
33
|
+
index: number;
|
|
34
|
+
offset: number;
|
|
35
|
+
end: number;
|
|
36
|
+
}[];
|
|
37
|
+
/**
|
|
38
|
+
* Lo que la barra puede decir que ya subió: lo que el servidor confirmó más lo que va en camino del trozo de ahora, sin
|
|
39
|
+
* llegar al final hasta que el servidor confirma el último trozo.
|
|
40
|
+
*
|
|
41
|
+
* @param {{confirmedBytes: number, sendingBytes: number, totalBytes: number}} transfer
|
|
42
|
+
* @returns {number} bytes
|
|
43
|
+
*/
|
|
44
|
+
export declare function honestLoadedOf({ confirmedBytes, sendingBytes, totalBytes }: {
|
|
45
|
+
confirmedBytes: number;
|
|
46
|
+
sendingBytes: number;
|
|
47
|
+
totalBytes: number;
|
|
48
|
+
}): number;
|
|
49
|
+
/**
|
|
50
|
+
* Hasta dónde ya está guardado el archivo cuando el servidor dice su Upload-Offset: el final del último trozo COMPLETO antes
|
|
51
|
+
* de ese punto. Un trozo que quedó a medias se vuelve a mandar entero.
|
|
52
|
+
*
|
|
53
|
+
* @param {{offset: number, end: number}[]} pieces
|
|
54
|
+
* @param {number} serverOffset
|
|
55
|
+
* @returns {number}
|
|
56
|
+
*/
|
|
57
|
+
export declare function storedBytesOf(pieces: {
|
|
58
|
+
offset: number;
|
|
59
|
+
end: number;
|
|
60
|
+
}[], serverOffset: number): number;
|
|
61
|
+
/**
|
|
62
|
+
* Un texto listo para viajar en un header. Los headers solo llevan bytes: el texto va en UTF-8 byte por byte (lo mismo que
|
|
63
|
+
* FilePond hace con los suyos). Sin esto, un nombre con «–» o con un emoji tumba la petición y uno con acentos llega roto.
|
|
64
|
+
*
|
|
65
|
+
* @param {unknown} value
|
|
66
|
+
* @returns {string}
|
|
67
|
+
*/
|
|
68
|
+
export declare function headerTextOf(value: unknown): string;
|
|
69
|
+
export type PondSendRequest = (url: string, body: FormData | Blob | null, options: {
|
|
70
|
+
method: string;
|
|
71
|
+
headers: Record<string, string>;
|
|
72
|
+
withCredentials: boolean;
|
|
73
|
+
signal: AbortSignal;
|
|
74
|
+
onProgress?: (percent: number, transfer: {
|
|
75
|
+
loaded: number;
|
|
76
|
+
total: number;
|
|
77
|
+
}) => void;
|
|
78
|
+
}) => Promise<Response>;
|
|
79
|
+
/**
|
|
80
|
+
* @typedef {(url: string, body: FormData|Blob|null, options: {method: string, headers: Record<string, string>, withCredentials: boolean, signal: AbortSignal, onProgress?: (percent: number, transfer: {loaded: number, total: number}) => void}) => Promise<Response>} PondSendRequest
|
|
81
|
+
* cómo viaja cada petición: la misma forma que uploadWithProgress de la casa
|
|
82
|
+
*/
|
|
83
|
+
/**
|
|
84
|
+
* Sube un archivo por trozos (ver el encabezado). Regresa la subida en curso: done termina con el folio que dio el servidor
|
|
85
|
+
* y abort la cancela de verdad (la petición de ahora y los reintentos que esperaban).
|
|
86
|
+
*
|
|
87
|
+
* @param {object} options
|
|
88
|
+
* @param {Blob} options.file
|
|
89
|
+
* @param {string} options.fileName el que viaja en Upload-Name
|
|
90
|
+
* @param {string} options.fieldName el campo del primer POST: lleva los metadatos en JSON, como FilePond
|
|
91
|
+
* @param {object|null} [options.metadata]
|
|
92
|
+
* @param {string} options.url a dónde va el POST que pide el folio
|
|
93
|
+
* @param {string} options.patchUrl a dónde va cada trozo: el folio va pegado al final ('/subidas?patch=')
|
|
94
|
+
* @param {Record<string, unknown>} [options.headers] van en las tres peticiones (Authorization, los datos de la pantalla)
|
|
95
|
+
* @param {boolean} [options.withCredentials]
|
|
96
|
+
* @param {number} options.chunkSize en bytes
|
|
97
|
+
* @param {number[]|null} [options.retryDelays] las esperas entre reintentos, en milisegundos; null o [] = sin reintentos
|
|
98
|
+
* @param {string|null} [options.transferId] el folio de un intento anterior: se sigue desde donde se quedó
|
|
99
|
+
* @param {(transferId: string) => void} [options.onTransferId] el folio nuevo, para retomar si algo falla
|
|
100
|
+
* @param {(loaded: number, total: number) => void} [options.onProgress] lo honesto (ver honestLoadedOf), en bytes
|
|
101
|
+
* @param {PondSendRequest} options.sendRequest
|
|
102
|
+
* @returns {{done: Promise<string>, abort: () => void}}
|
|
103
|
+
*/
|
|
104
|
+
export declare function startChunkedUpload(options: {
|
|
105
|
+
file: Blob;
|
|
106
|
+
fileName: string;
|
|
107
|
+
fieldName: string;
|
|
108
|
+
metadata?: object | null;
|
|
109
|
+
url: string;
|
|
110
|
+
patchUrl: string;
|
|
111
|
+
headers?: Record<string, unknown>;
|
|
112
|
+
withCredentials?: boolean;
|
|
113
|
+
chunkSize: number;
|
|
114
|
+
retryDelays?: number[] | null;
|
|
115
|
+
transferId?: string | null;
|
|
116
|
+
onTransferId?: (transferId: string) => void;
|
|
117
|
+
onProgress?: (loaded: number, total: number) => void;
|
|
118
|
+
sendRequest: PondSendRequest;
|
|
119
|
+
}): {
|
|
120
|
+
done: Promise<string>;
|
|
121
|
+
abort: () => void;
|
|
122
|
+
};
|
|
@@ -1,16 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ¿Este archivo va por trozos? La regla de FilePond: la zona los pidió y el archivo pasa del tamaño del trozo, o la zona los
|
|
3
|
+
* fuerza para todos (hay servidores que solo reciben por trozos).
|
|
4
|
+
*
|
|
5
|
+
* @param {Blob} file
|
|
6
|
+
* @param {{chunkUploads?: boolean, chunkForce?: boolean, chunkSize?: number}} options lo que FilePond le pasa al server
|
|
7
|
+
* @returns {boolean}
|
|
8
|
+
*/
|
|
9
|
+
export declare function usesChunks(file: Blob, options: {
|
|
10
|
+
chunkUploads?: boolean;
|
|
11
|
+
chunkForce?: boolean;
|
|
12
|
+
chunkSize?: number;
|
|
13
|
+
}): boolean;
|
|
1
14
|
/**
|
|
2
15
|
* @param {object} options
|
|
3
|
-
* @param {string} options.url a dónde va cada archivo
|
|
16
|
+
* @param {string} options.url a dónde va cada archivo (por trozos: el POST que pide el folio)
|
|
4
17
|
* @param {string} [options.fieldName] el campo del archivo en el FormData; por omisión el name de la zona
|
|
5
|
-
* @param {Record<string, string>} [options.headers] p. ej. Authorization
|
|
18
|
+
* @param {Record<string, string>} [options.headers] p. ej. Authorization; por trozos van en las tres peticiones
|
|
6
19
|
* @param {boolean} [options.withCredentials] manda las cookies a otro dominio
|
|
20
|
+
* @param {string} [options.patchUrl] por trozos: a dónde va cada trozo, con el folio pegado al final. Por omisión, el de
|
|
21
|
+
* FilePond: url + '?patch='
|
|
22
|
+
* @param {(body: any, response: Response) => any} [options.toProblem] el error del backend a la forma RFC 9457 (Laravel:
|
|
23
|
+
* body => ({title: body.message}))
|
|
24
|
+
* @param {import('../upload/chunkedUpload.js').UploadSendRequest} [options.sendRequest] cómo viaja cada petición; por omisión
|
|
25
|
+
* uploadWithProgress de la casa
|
|
7
26
|
* @returns {{process: (...args: any[]) => any, revert: (...args: any[]) => any}} lo que recibe la prop server de FileDropzone
|
|
8
27
|
*/
|
|
9
|
-
export declare function createPondServer({ url, fieldName, headers, withCredentials }: {
|
|
28
|
+
export declare function createPondServer({ url, fieldName, headers, withCredentials, patchUrl, toProblem, sendRequest }: {
|
|
10
29
|
url: string;
|
|
11
30
|
fieldName?: string;
|
|
12
31
|
headers?: Record<string, string>;
|
|
13
32
|
withCredentials?: boolean;
|
|
33
|
+
patchUrl?: string;
|
|
34
|
+
toProblem?: (body: any, response: Response) => any;
|
|
35
|
+
sendRequest?: import('../upload/chunkedUpload.js').UploadSendRequest;
|
|
14
36
|
}): {
|
|
15
37
|
process: (...args: any[]) => any;
|
|
16
38
|
revert: (...args: any[]) => any;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @template {import('formik').FormikValues} Values
|
|
3
|
+
* @param {import('formik').FormikConfig<Values>} props las de Formik de formik
|
|
4
|
+
* @returns {import('react').JSX.Element}
|
|
5
|
+
*/
|
|
6
|
+
export default function Formik<Values extends import('formik').FormikValues>(props: import('formik').FormikConfig<Values>): import('react').JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {{name: string} & Omit<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
|
|
3
|
-
* AttachmentsInput (accept, maxFiles, maxTotalSize, template…), sin value
|
|
2
|
+
* @param {{name: string} & Omit<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'onChange'|'onBlur'>>} props las de
|
|
3
|
+
* AttachmentsInput (accept, maxFiles, maxTotalSize, template…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
|
|
4
4
|
*/
|
|
5
5
|
export default function FormAttachmentsField({ name, ...inputProps }: {
|
|
6
6
|
name: string;
|
|
7
|
-
} & Omit<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
|
|
7
|
+
} & Omit<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {{name: string} & Omit<Parameters<typeof import('../inputs/CatalogInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de CatalogInput (options, formatLabel, loading…), sin value
|
|
2
|
+
* @param {{name: string} & Omit<Parameters<typeof import('../inputs/CatalogInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/CatalogInput.js').default>[0], 'onChange'|'onBlur'>>} props las de CatalogInput (options, formatLabel, loading…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
|
|
3
3
|
*/
|
|
4
4
|
export default function FormCatalogField({ name, ...catalogInputProps }: {
|
|
5
5
|
name: string;
|
|
6
|
-
} & Omit<Parameters<typeof import('../inputs/CatalogInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
|
|
6
|
+
} & Omit<Parameters<typeof import('../inputs/CatalogInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/CatalogInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {{name: string} & Omit<Parameters<typeof import('../inputs/CheckboxGroupInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
|
|
3
|
-
* CheckboxGroupInput, sin value
|
|
2
|
+
* @param {{name: string} & Omit<Parameters<typeof import('../inputs/CheckboxGroupInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/CheckboxGroupInput.js').default>[0], 'onChange'|'onBlur'>>} props las de
|
|
3
|
+
* CheckboxGroupInput, sin value ni error (su onChange y su onBlur corren después de los del formulario)
|
|
4
4
|
*/
|
|
5
5
|
export default function FormCheckboxGroupField({ name, ...inputProps }: {
|
|
6
6
|
name: string;
|
|
7
|
-
} & Omit<Parameters<typeof import('../inputs/CheckboxGroupInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
|
|
7
|
+
} & Omit<Parameters<typeof import('../inputs/CheckboxGroupInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/CheckboxGroupInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {{name: string} & Omit<Parameters<typeof import('../inputs/ColorInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de ColorInput (checkContrast…), sin value
|
|
2
|
+
* @param {{name: string} & Omit<Parameters<typeof import('../inputs/ColorInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/ColorInput.js').default>[0], 'onChange'|'onBlur'>>} props las de ColorInput (checkContrast…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
|
|
3
3
|
*/
|
|
4
4
|
export default function FormColorField({ name, ...colorInputProps }: {
|
|
5
5
|
name: string;
|
|
6
|
-
} & Omit<Parameters<typeof import('../inputs/ColorInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
|
|
6
|
+
} & Omit<Parameters<typeof import('../inputs/ColorInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/ColorInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {{name: string} & Omit<Parameters<typeof import('../upload/FileInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
|
|
3
|
-
* FileInput (accept, maxSize, template…), sin value
|
|
2
|
+
* @param {{name: string} & Omit<Parameters<typeof import('../upload/FileInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../upload/FileInput.js').default>[0], 'onChange'|'onBlur'>>} props las de
|
|
3
|
+
* FileInput (accept, maxSize, template…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
|
|
4
4
|
*/
|
|
5
5
|
export default function FormFileField({ name, ...inputProps }: {
|
|
6
6
|
name: string;
|
|
7
|
-
} & Omit<Parameters<typeof import('../upload/FileInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
|
|
7
|
+
} & Omit<Parameters<typeof import('../upload/FileInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../upload/FileInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {{name: string} & Omit<Parameters<typeof import('../upload/FileUploadInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
|
|
3
|
-
* FileUploadInput (upload, accept, maxSize, download…), sin value
|
|
2
|
+
* @param {{name: string} & Omit<Parameters<typeof import('../upload/FileUploadInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../upload/FileUploadInput.js').default>[0], 'onChange'|'onBlur'>>} props las de
|
|
3
|
+
* FileUploadInput (upload, accept, maxSize, download…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
|
|
4
4
|
*/
|
|
5
5
|
export default function FormFileUploadField({ name, ...inputProps }: {
|
|
6
6
|
name: string;
|
|
7
|
-
} & Omit<Parameters<typeof import('../upload/FileUploadInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
|
|
7
|
+
} & Omit<Parameters<typeof import('../upload/FileUploadInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../upload/FileUploadInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {{name: string} & Omit<Parameters<typeof import('../upload/ImageInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
|
|
3
|
-
* ImageInput (shape, size, maxSize…), sin value
|
|
2
|
+
* @param {{name: string} & Omit<Parameters<typeof import('../upload/ImageInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../upload/ImageInput.js').default>[0], 'onChange'|'onBlur'>>} props las de
|
|
3
|
+
* ImageInput (shape, size, maxSize…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
|
|
4
4
|
*/
|
|
5
5
|
export default function FormImageField({ name, ...inputProps }: {
|
|
6
6
|
name: string;
|
|
7
|
-
} & Omit<Parameters<typeof import('../upload/ImageInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
|
|
7
|
+
} & Omit<Parameters<typeof import('../upload/ImageInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../upload/ImageInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {{name: string} & Omit<Parameters<typeof import('../inputs/MaskedInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props
|
|
2
|
+
* @param {{name: string} & Omit<Parameters<typeof import('../inputs/MaskedInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/MaskedInput.js').default>[0], 'onChange'|'onBlur'>>} props
|
|
3
3
|
* las de MaskedInput (mask, label, helperText, placeholder…)
|
|
4
4
|
*/
|
|
5
5
|
export default function FormMaskedField({ name, ...inputProps }: {
|
|
6
6
|
name: string;
|
|
7
|
-
} & Omit<Parameters<typeof import('../inputs/MaskedInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
|
|
7
|
+
} & Omit<Parameters<typeof import('../inputs/MaskedInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/MaskedInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {{name: string} & Omit<Parameters<typeof import('../inputs/NumberInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de NumberInput (decimals, prefix, suffix, allowNegative…), sin value
|
|
2
|
+
* @param {{name: string} & Omit<Parameters<typeof import('../inputs/NumberInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/NumberInput.js').default>[0], 'onChange'|'onBlur'>>} props las de NumberInput (decimals, prefix, suffix, allowNegative…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
|
|
3
3
|
*/
|
|
4
4
|
export default function FormNumberField({ name, ...numberInputProps }: {
|
|
5
5
|
name: string;
|
|
6
|
-
} & Omit<Parameters<typeof import('../inputs/NumberInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
|
|
6
|
+
} & Omit<Parameters<typeof import('../inputs/NumberInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/NumberInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** El esquema del formulario más cercano (o la función que lo da, como en formik); null sin él. */
|
|
2
|
+
export declare const FormSchemaContext: import("react").Context<unknown>;
|
|
3
|
+
/** El esquema del formulario más cercano; null sin él. */
|
|
4
|
+
export declare const useFormSchema: () => unknown;
|
|
5
|
+
/**
|
|
6
|
+
* @param {object} props
|
|
7
|
+
* @param {unknown} props.schema el mismo validationSchema que recibe Formik
|
|
8
|
+
* @param {import('react').ReactNode} props.children los campos
|
|
9
|
+
*/
|
|
10
|
+
export declare function FormSchemaProvider({ schema, children }: {
|
|
11
|
+
schema: unknown;
|
|
12
|
+
children: import('react').ReactNode;
|
|
13
|
+
}): import("react").JSX.Element;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {{name: string} & Omit<Parameters<typeof import('../inputs/SelectInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de SelectInput, sin value
|
|
2
|
+
* @param {{name: string} & Omit<Parameters<typeof import('../inputs/SelectInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/SelectInput.js').default>[0], 'onChange'|'onBlur'>>} props las de SelectInput, sin value ni error (su onChange y su onBlur corren después de los del formulario)
|
|
3
3
|
*/
|
|
4
4
|
export default function FormSelectField({ name, ...selectInputProps }: {
|
|
5
5
|
name: string;
|
|
6
|
-
} & Omit<Parameters<typeof import('../inputs/SelectInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
|
|
6
|
+
} & Omit<Parameters<typeof import('../inputs/SelectInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/SelectInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {{name: string} & Omit<Parameters<typeof import('../inputs/TextInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de TextInput, sin value
|
|
2
|
+
* @param {{name: string} & Omit<Parameters<typeof import('../inputs/TextInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/TextInput.js').default>[0], 'onChange'|'onBlur'>>} props las de TextInput, sin value ni error (su onChange y su onBlur corren después de los del formulario)
|
|
3
3
|
*/
|
|
4
4
|
export default function FormTextField({ name, ...textInputProps }: {
|
|
5
5
|
name: string;
|
|
6
|
-
} & Omit<Parameters<typeof import('../inputs/TextInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
|
|
6
|
+
} & Omit<Parameters<typeof import('../inputs/TextInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/TextInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {{name: string} & Omit<Parameters<typeof import('../inputs/TransferListInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
|
|
3
|
-
* TransferListInput, sin value
|
|
2
|
+
* @param {{name: string} & Omit<Parameters<typeof import('../inputs/TransferListInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/TransferListInput.js').default>[0], 'onChange'|'onBlur'>>} props las de
|
|
3
|
+
* TransferListInput, sin value ni error (su onChange y su onBlur corren después de los del formulario)
|
|
4
4
|
*/
|
|
5
5
|
export default function FormTransferListField({ name, ...inputProps }: {
|
|
6
6
|
name: string;
|
|
7
|
-
} & Omit<Parameters<typeof import('../inputs/TransferListInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
|
|
7
|
+
} & Omit<Parameters<typeof import('../inputs/TransferListInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/TransferListInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
|
|
@@ -9,13 +9,14 @@
|
|
|
9
9
|
* @param {boolean} [props.steps[].completed] lleva la palomita (cuando los títulos se pulsan, solo si la pantalla lo dice)
|
|
10
10
|
* @param {string} props.submitLabel ya traducido: el botón del último paso
|
|
11
11
|
* @param {'horizontal'|'vertical'} [props.orientation] uno de WIZARD_ORIENTATION; por omisión horizontal
|
|
12
|
+
* @param {boolean} [props.hideBackOnFirstStep] en el primer paso no se pinta «Anterior»; por omisión sale apagado, como antes
|
|
12
13
|
* @param {string} [props.initialStepKey] la llave del paso en el que se abre (la que diga el servidor); por omisión el primero
|
|
13
14
|
* @param {'none'|'free'|'checked'} [props.stepSelection] uno de WIZARD_STEP_SELECTION: si el título de otro paso se pulsa y qué
|
|
14
15
|
* revisa antes; por omisión none (se avanza con «Siguiente», como siempre)
|
|
15
16
|
* @param {(stepKey: string, index: number) => void} [props.onStepChange] cada vez que cambia el paso abierto
|
|
16
17
|
* @param {object} [props.texts] los textos que cambian, con la forma de `common`: {wizard: {next, back, skip, optional, skipped, stepOf}}
|
|
17
18
|
*/
|
|
18
|
-
export default function FormWizard({ steps, submitLabel, orientation, initialStepKey, stepSelection, onStepChange, texts, ...unknownProps }: {
|
|
19
|
+
export default function FormWizard({ steps, submitLabel, orientation, hideBackOnFirstStep, initialStepKey, stepSelection, onStepChange, texts, ...unknownProps }: {
|
|
19
20
|
steps: {
|
|
20
21
|
key: string;
|
|
21
22
|
label: string;
|
|
@@ -26,6 +27,7 @@ export default function FormWizard({ steps, submitLabel, orientation, initialSte
|
|
|
26
27
|
}[];
|
|
27
28
|
submitLabel: string;
|
|
28
29
|
orientation?: 'horizontal' | 'vertical';
|
|
30
|
+
hideBackOnFirstStep?: boolean;
|
|
29
31
|
initialStepKey?: string;
|
|
30
32
|
stepSelection?: 'none' | 'free' | 'checked';
|
|
31
33
|
onStepChange?: (stepKey: string, index: number) => void;
|
|
@@ -25,5 +25,6 @@ export { RECOVERY_CODE_PATTERN, TOTP_CODE_PATTERN, normalizeRecoveryCode, normal
|
|
|
25
25
|
export { default as SubmitButton } from './SubmitButton.js';
|
|
26
26
|
export { applyServerProblem } from './applyServerProblem.js';
|
|
27
27
|
export { formLevelMessageOf, splitRowFieldErrors, splitServerFieldErrors } from './serverProblemFields.js';
|
|
28
|
+
export { isRequiredInSchema } from './schemaRequired.js';
|
|
28
29
|
export { useFormikField } from './useFormikField.js';
|
|
29
30
|
export { Yup, buildYupLocale, translateValidationMessage } from './validation.js';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Las partes de un nombre de campo de formik: 'contacts.2.email' y 'contacts[2].email' dan ['contacts', '2', 'email'].
|
|
3
|
+
*
|
|
4
|
+
* @param {string} name
|
|
5
|
+
* @returns {string[]}
|
|
6
|
+
*/
|
|
7
|
+
export declare function fieldPathOf(name: string): string[];
|
|
8
|
+
/**
|
|
9
|
+
* @param {unknown} schema el validationSchema del formulario (un esquema de yup o una función que lo da, como en formik)
|
|
10
|
+
* @param {string} name el campo, con la forma de formik ('contacts.2.email')
|
|
11
|
+
* @param {object} [values] los valores del formulario, para las condiciones (.when)
|
|
12
|
+
* @returns {boolean} false si no hay esquema, si no es de yup o si el campo no está en él
|
|
13
|
+
*/
|
|
14
|
+
export declare function isRequiredInSchema(schema: unknown, name: string, values?: object): boolean;
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @param {string} name el campo del formulario
|
|
3
|
-
* @
|
|
3
|
+
* @param {{required?: boolean, onChange?: Function, onBlur?: Function}} [screen] lo que la pantalla le dijo al campo
|
|
4
|
+
* @returns {{name: string, value: unknown, onChange: (value: unknown, ...rest: unknown[]) => void, onBlur: (...args: unknown[]) => void, error: unknown, required: boolean}}
|
|
4
5
|
*/
|
|
5
|
-
export declare function useFormikField(name: string
|
|
6
|
+
export declare function useFormikField(name: string, screen?: {
|
|
7
|
+
required?: boolean;
|
|
8
|
+
onChange?: Function;
|
|
9
|
+
onBlur?: Function;
|
|
10
|
+
}): {
|
|
6
11
|
name: string;
|
|
7
12
|
value: unknown;
|
|
8
|
-
onChange: (value: unknown) => void;
|
|
9
|
-
onBlur: () => void;
|
|
13
|
+
onChange: (value: unknown, ...rest: unknown[]) => void;
|
|
14
|
+
onBlur: (...args: unknown[]) => void;
|
|
10
15
|
error: unknown;
|
|
16
|
+
required: boolean;
|
|
11
17
|
};
|
package/dist/types/forms.d.ts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export { FieldArray, Form,
|
|
2
|
-
export {
|
|
1
|
+
export { FieldArray, Form, useField, useFormikContext } from 'formik';
|
|
2
|
+
export { default as Formik } from './forms/CalcitaFormik.js';
|
|
3
|
+
export { FormSchemaProvider, useFormSchema } from './forms/FormSchemaProvider.js';
|
|
4
|
+
export { ChangePasswordForm, ForgotPasswordForm, FormAttachmentsField, FormCatalogField, FormCheckboxGroupField, FormColorField, FormFileField, FormFileUploadField, FormImageField, FormMaskedField, FormNumberField, FormProblemAlert, FormRepeatingFields, FormSelectField, FormServerProblem, FormTransferListField, FormTextField, FormWizard, RECOVERY_CODE_PATTERN, SECOND_STEP_METHOD, SecondStepForm, SignInForm, SubmitButton, TOTP_CODE_PATTERN, TwoStepVerificationCard, Yup, applyServerProblem, buildYupLocale, formLevelMessageOf, isRequiredInSchema, normalizeRecoveryCode, normalizeTotpCode, listTotalAtMostRule, listTotalOf, orderedInListRule, percentRule, sameAsFieldRule, splitRowFieldErrors, splitServerFieldErrors, translateValidationMessage, uniqueInListRule, useFormikField, } from './forms/index.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {{name: string, control?: object} & Omit<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las del campo de la casa, sin
|
|
3
|
-
* value
|
|
2
|
+
* @param {{name: string, control?: object} & Omit<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'onChange'|'onBlur'>>} props las del campo de la casa, sin
|
|
3
|
+
* value ni error (su onChange y su onBlur corren después de los del formulario); control: el de useForm, si la pantalla no usa FormProvider
|
|
4
4
|
*/
|
|
5
5
|
export default function FormAttachmentsField({ name, control, ...inputProps }: {
|
|
6
6
|
name: string;
|
|
7
7
|
control?: object;
|
|
8
|
-
} & Omit<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
|
|
8
|
+
} & Omit<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
|