formio-react-native 1.0.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 +384 -0
- package/lib/commonjs/components/CheckboxField.js +2 -0
- package/lib/commonjs/components/DataGrid.js +2 -0
- package/lib/commonjs/components/DatePicker.js +2 -0
- package/lib/commonjs/components/EditGrid.js +2 -0
- package/lib/commonjs/components/FileUpload.js +2 -0
- package/lib/commonjs/components/FormioField.js +2 -0
- package/lib/commonjs/components/FormioForm.js +2 -0
- package/lib/commonjs/components/ResourceSelect.js +2 -0
- package/lib/commonjs/components/Wizard.js +2 -0
- package/lib/commonjs/components/renderers/CheckboxRenderer.js +2 -0
- package/lib/commonjs/components/renderers/EmailRenderer.js +2 -0
- package/lib/commonjs/components/renderers/FallbackRenderer.js +2 -0
- package/lib/commonjs/components/renderers/NumberRenderer.js +2 -0
- package/lib/commonjs/components/renderers/PasswordRenderer.js +2 -0
- package/lib/commonjs/components/renderers/PhoneNumberRenderer.js +2 -0
- package/lib/commonjs/components/renderers/RadioRenderer.js +2 -0
- package/lib/commonjs/components/renderers/SelectRenderer.js +2 -0
- package/lib/commonjs/components/renderers/SelectboxesRenderer.js +2 -0
- package/lib/commonjs/components/renderers/TextAreaRenderer.js +2 -0
- package/lib/commonjs/components/renderers/TextfieldRenderer.js +2 -0
- package/lib/commonjs/components/renderers/URLRenderer.js +2 -0
- package/lib/commonjs/components/renderers/index.js +2 -0
- package/lib/commonjs/constants/colors.js +2 -0
- package/lib/commonjs/constants/componentTypes.js +2 -0
- package/lib/commonjs/constants/index.js +2 -0
- package/lib/commonjs/constants/spacing.js +2 -0
- package/lib/commonjs/constants/typography.js +2 -0
- package/lib/commonjs/constants/validationMessages.js +2 -0
- package/lib/commonjs/context/FormioContext.js +2 -0
- package/lib/commonjs/errors/ErrorBoundary.js +2 -0
- package/lib/commonjs/errors/FormioError.js +2 -0
- package/lib/commonjs/errors/errorUtils.js +2 -0
- package/lib/commonjs/errors/index.js +2 -0
- package/lib/commonjs/hooks/useTheme.js +2 -0
- package/lib/commonjs/i18n/I18nContext.js +2 -0
- package/lib/commonjs/i18n/locales/ar/index.js +2 -0
- package/lib/commonjs/i18n/locales/fr/index.js +2 -0
- package/lib/commonjs/i18n/messages.js +2 -0
- package/lib/commonjs/i18n/translations/en.js +2 -0
- package/lib/commonjs/i18n/types.js +2 -0
- package/lib/commonjs/index.js +2 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/registry/ComponentRegistry.js +2 -0
- package/lib/commonjs/registry/index.js +2 -0
- package/lib/commonjs/types.js +2 -0
- package/lib/commonjs/utils/a11yUtils.js +2 -0
- package/lib/commonjs/utils/componentUtils.js +2 -0
- package/lib/commonjs/utils/index.js +2 -0
- package/lib/commonjs/utils/logger.js +2 -0
- package/lib/commonjs/utils/performanceUtils.js +2 -0
- package/lib/commonjs/utils/rtlUtils.js +2 -0
- package/lib/commonjs/utils/safeEval.js +21 -0
- package/lib/commonjs/utils/styleUtils.js +2 -0
- package/lib/commonjs/validation.js +2 -0
- package/lib/module/components/CheckboxField.js +2 -0
- package/lib/module/components/DataGrid.js +2 -0
- package/lib/module/components/DatePicker.js +2 -0
- package/lib/module/components/EditGrid.js +2 -0
- package/lib/module/components/FileUpload.js +2 -0
- package/lib/module/components/FormioField.js +2 -0
- package/lib/module/components/FormioForm.js +2 -0
- package/lib/module/components/ResourceSelect.js +2 -0
- package/lib/module/components/Wizard.js +2 -0
- package/lib/module/components/renderers/CheckboxRenderer.js +2 -0
- package/lib/module/components/renderers/EmailRenderer.js +2 -0
- package/lib/module/components/renderers/FallbackRenderer.js +2 -0
- package/lib/module/components/renderers/NumberRenderer.js +2 -0
- package/lib/module/components/renderers/PasswordRenderer.js +2 -0
- package/lib/module/components/renderers/PhoneNumberRenderer.js +2 -0
- package/lib/module/components/renderers/RadioRenderer.js +2 -0
- package/lib/module/components/renderers/SelectRenderer.js +2 -0
- package/lib/module/components/renderers/SelectboxesRenderer.js +2 -0
- package/lib/module/components/renderers/TextAreaRenderer.js +2 -0
- package/lib/module/components/renderers/TextfieldRenderer.js +2 -0
- package/lib/module/components/renderers/URLRenderer.js +2 -0
- package/lib/module/components/renderers/index.js +2 -0
- package/lib/module/constants/colors.js +2 -0
- package/lib/module/constants/componentTypes.js +2 -0
- package/lib/module/constants/index.js +2 -0
- package/lib/module/constants/spacing.js +2 -0
- package/lib/module/constants/typography.js +2 -0
- package/lib/module/constants/validationMessages.js +2 -0
- package/lib/module/context/FormioContext.js +2 -0
- package/lib/module/errors/ErrorBoundary.js +2 -0
- package/lib/module/errors/FormioError.js +2 -0
- package/lib/module/errors/errorUtils.js +2 -0
- package/lib/module/errors/index.js +2 -0
- package/lib/module/hooks/useTheme.js +2 -0
- package/lib/module/i18n/I18nContext.js +2 -0
- package/lib/module/i18n/locales/ar/index.js +2 -0
- package/lib/module/i18n/locales/fr/index.js +2 -0
- package/lib/module/i18n/messages.js +2 -0
- package/lib/module/i18n/translations/en.js +2 -0
- package/lib/module/i18n/types.js +2 -0
- package/lib/module/index.js +2 -0
- package/lib/module/package.json +1 -0
- package/lib/module/registry/ComponentRegistry.js +2 -0
- package/lib/module/registry/index.js +2 -0
- package/lib/module/types.js +2 -0
- package/lib/module/utils/a11yUtils.js +2 -0
- package/lib/module/utils/componentUtils.js +2 -0
- package/lib/module/utils/index.js +2 -0
- package/lib/module/utils/logger.js +2 -0
- package/lib/module/utils/performanceUtils.js +2 -0
- package/lib/module/utils/rtlUtils.js +2 -0
- package/lib/module/utils/safeEval.js +21 -0
- package/lib/module/utils/styleUtils.js +2 -0
- package/lib/module/validation.js +2 -0
- package/lib/typescript/commonjs/components/CheckboxField.d.ts +11 -0
- package/lib/typescript/commonjs/components/DataGrid.d.ts +20 -0
- package/lib/typescript/commonjs/components/DatePicker.d.ts +25 -0
- package/lib/typescript/commonjs/components/EditGrid.d.ts +18 -0
- package/lib/typescript/commonjs/components/FileUpload.d.ts +35 -0
- package/lib/typescript/commonjs/components/FormioField.d.ts +11 -0
- package/lib/typescript/commonjs/components/FormioForm.d.ts +4 -0
- package/lib/typescript/commonjs/components/ResourceSelect.d.ts +38 -0
- package/lib/typescript/commonjs/components/Wizard.d.ts +31 -0
- package/lib/typescript/commonjs/components/renderers/CheckboxRenderer.d.ts +4 -0
- package/lib/typescript/commonjs/components/renderers/EmailRenderer.d.ts +4 -0
- package/lib/typescript/commonjs/components/renderers/FallbackRenderer.d.ts +4 -0
- package/lib/typescript/commonjs/components/renderers/NumberRenderer.d.ts +4 -0
- package/lib/typescript/commonjs/components/renderers/PasswordRenderer.d.ts +4 -0
- package/lib/typescript/commonjs/components/renderers/PhoneNumberRenderer.d.ts +4 -0
- package/lib/typescript/commonjs/components/renderers/RadioRenderer.d.ts +4 -0
- package/lib/typescript/commonjs/components/renderers/SelectRenderer.d.ts +4 -0
- package/lib/typescript/commonjs/components/renderers/SelectboxesRenderer.d.ts +4 -0
- package/lib/typescript/commonjs/components/renderers/TextAreaRenderer.d.ts +4 -0
- package/lib/typescript/commonjs/components/renderers/TextfieldRenderer.d.ts +4 -0
- package/lib/typescript/commonjs/components/renderers/URLRenderer.d.ts +4 -0
- package/lib/typescript/commonjs/components/renderers/index.d.ts +27 -0
- package/lib/typescript/commonjs/constants/colors.d.ts +18 -0
- package/lib/typescript/commonjs/constants/componentTypes.d.ts +42 -0
- package/lib/typescript/commonjs/constants/index.d.ts +53 -0
- package/lib/typescript/commonjs/constants/spacing.d.ts +10 -0
- package/lib/typescript/commonjs/constants/typography.d.ts +24 -0
- package/lib/typescript/commonjs/constants/validationMessages.d.ts +17 -0
- package/lib/typescript/commonjs/context/FormioContext.d.ts +151 -0
- package/lib/typescript/commonjs/errors/ErrorBoundary.d.ts +23 -0
- package/lib/typescript/commonjs/errors/FormioError.d.ts +28 -0
- package/lib/typescript/commonjs/errors/errorUtils.d.ts +8 -0
- package/lib/typescript/commonjs/errors/index.d.ts +5 -0
- package/lib/typescript/commonjs/hooks/useTheme.d.ts +10 -0
- package/lib/typescript/commonjs/i18n/I18nContext.d.ts +10 -0
- package/lib/typescript/commonjs/i18n/locales/ar/index.d.ts +3 -0
- package/lib/typescript/commonjs/i18n/locales/fr/index.d.ts +3 -0
- package/lib/typescript/commonjs/i18n/messages.d.ts +10 -0
- package/lib/typescript/commonjs/i18n/translations/en.d.ts +4 -0
- package/lib/typescript/commonjs/i18n/types.d.ts +12 -0
- package/lib/typescript/commonjs/index.d.ts +35 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/registry/ComponentRegistry.d.ts +32 -0
- package/lib/typescript/commonjs/registry/index.d.ts +3 -0
- package/lib/typescript/commonjs/types.d.ts +142 -0
- package/lib/typescript/commonjs/utils/a11yUtils.d.ts +31 -0
- package/lib/typescript/commonjs/utils/index.d.ts +9 -0
- package/lib/typescript/commonjs/utils/logger.d.ts +25 -0
- package/lib/typescript/commonjs/utils/rtlUtils.d.ts +18 -0
- package/lib/typescript/commonjs/utils/safeEval.d.ts +20 -0
- package/lib/typescript/commonjs/utils/styleUtils.d.ts +13 -0
- package/lib/typescript/commonjs/validation.d.ts +8 -0
- package/package.json +80 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const FR_TRANSLATIONS={'validation.REQUIRED':'Ce champ est obligatoire','validation.MIN_LENGTH':'La longueur minimale est {min}','validation.MAX_LENGTH':'La longueur maximale est {max}','validation.PATTERN':'Format invalide','validation.MIN_VALUE':'La valeur minimale est {min}','validation.MAX_VALUE':'La valeur maximale est {max}','validation.INVALID_EMAIL':'Adresse e-mail invalide','validation.INVALID_URL':'URL invalide','validation.INVALID_PHONE':'Numéro de téléphone invalide','validation.INVALID_DATE':'Date invalide','validation.FILE_TYPE_INVALID':'Type de fichier invalide','validation.FILE_SIZE_TOO_LARGE':'Le fichier est trop volumineux','validation.CUSTOM_ERROR':'Ce champ est invalide','Submit':'Soumettre','Previous':'Précédent','Next':'Suivant','Finish':'Terminer','Loading...':'Chargement...','Search...':'Rechercher...','No options available':'Aucune option disponible','Select...':'Sélectionner...','No wizard pages found':'Aucune page d\'assistant trouvée','First Name':'Prénom','Last Name':'Nom de famille','Email':'E-mail','Phone':'Téléphone','Address':'Adresse','City':'Ville','State':'État','Zip Code':'Code postal','Country':'Pays','Message':'Message','Comments':'Commentaires','Agree':'J\'accepte','Yes':'Oui','No':'Non','OK':'OK','Cancel':'Annuler','Delete':'Supprimer','Edit':'Modifier','Add':'Ajouter','Remove':'Retirer','Save':'Enregistrer','Close':'Fermer','Done':'Fait'};export default FR_TRANSLATIONS;
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{VALIDATION_MESSAGES}from'../constants/validationMessages';function formatMessage(template,params){if(!params)return template;return template.replace(/\{(\w+)\}/g,(_,key)=>{const val=params[key];return val!==undefined&&val!==null?String(val):'';});}export function getValidationMessage(key,params,translate){const templateKey=`validation.${key}`;const translated=translate?translate(templateKey,VALIDATION_MESSAGES[key]):undefined;const template=translated||VALIDATION_MESSAGES[key];return formatMessage(template,params);}export default{formatMessage,getValidationMessage};
|
|
2
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const DEFAULT_EN_TRANSLATIONS={'validation.REQUIRED':'This field is required','validation.MIN_LENGTH':'Minimum length is {min}','validation.MAX_LENGTH':'Maximum length is {max}','validation.PATTERN':'Invalid format','validation.MIN_VALUE':'Minimum value is {min}','validation.MAX_VALUE':'Maximum value is {max}','validation.INVALID_EMAIL':'Invalid email address','validation.INVALID_URL':'Invalid URL','validation.INVALID_PHONE':'Invalid phone number','validation.INVALID_DATE':'Invalid date','validation.FILE_TYPE_INVALID':'Invalid file type','validation.FILE_SIZE_TOO_LARGE':'File is too large','validation.CUSTOM_ERROR':'This field is invalid','Submit':'Submit','Previous':'Previous','Next':'Next','Finish':'Finish','Loading...':'Loading...','Search...':'Search...','No options available':'No options available','Select...':'Select...','No wizard pages found':'No wizard pages found','First Name':'First Name','Last Name':'Last Name','Email':'Email','Phone':'Phone','Address':'Address','City':'City','State':'State','Zip Code':'Zip Code','Country':'Country','Message':'Message','Comments':'Comments','Agree':'I Agree','Yes':'Yes','No':'No','OK':'OK','Cancel':'Cancel','Delete':'Delete','Edit':'Edit','Add':'Add','Remove':'Remove','Save':'Save','Close':'Close','Done':'Done'};import AR_TRANSLATIONS from'../locales/ar';import FR_TRANSLATIONS from'../locales/fr';export const DEFAULT_TRANSLATIONS={en:DEFAULT_EN_TRANSLATIONS,ar:AR_TRANSLATIONS,fr:FR_TRANSLATIONS};export default DEFAULT_TRANSLATIONS;
|
|
2
|
+
//# sourceMappingURL=en.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export{FormioForm}from'./components/FormioForm';export{FormioField}from'./components/FormioField';export{CheckboxField}from'./components/CheckboxField';export{DatePicker}from'./components/DatePicker';export{FileUpload}from'./components/FileUpload';export{ResourceSelect}from'./components/ResourceSelect';export{DataGrid}from'./components/DataGrid';export{EditGrid}from'./components/EditGrid';export{Wizard}from'./components/Wizard';export{TextfieldRenderer}from'./components/renderers/TextfieldRenderer';export{EmailRenderer}from'./components/renderers/EmailRenderer';export{NumberRenderer}from'./components/renderers/NumberRenderer';export{CheckboxRenderer}from'./components/renderers/CheckboxRenderer';export{RadioRenderer}from'./components/renderers/RadioRenderer';export{SelectRenderer}from'./components/renderers/SelectRenderer';export{SelectboxesRenderer}from'./components/renderers/SelectboxesRenderer';export{TextAreaRenderer}from'./components/renderers/TextAreaRenderer';export{PasswordRenderer}from'./components/renderers/PasswordRenderer';export{URLRenderer}from'./components/renderers/URLRenderer';export{PhoneNumberRenderer}from'./components/renderers/PhoneNumberRenderer';export{FallbackRenderer}from'./components/renderers/FallbackRenderer';export{DEFAULT_RENDERERS}from'./components/renderers';export{ComponentRegistry,createDefaultRegistry,createRegistryWithComponents}from'./registry/ComponentRegistry';export{validateForm,validateField}from'./validation';export{FormioProvider,useFormioContext,useRegistry}from'./context/FormioContext';export{useTheme}from'./hooks/useTheme';export{useI18n}from'./i18n/I18nContext';export*from'./types';export*from'./utils';export*from'./constants';export*from'./errors';
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Logger}from'../utils/logger';const logger=new Logger('ComponentRegistry');export class ComponentRegistry{constructor(){this.renderers=new Map();}register(type,renderer){if(!type||typeof type!=='string'){logger.warn('Invalid component type for registration');return;}if(typeof renderer!=='function'){logger.warn(`Invalid renderer for component type: ${type}`);return;}this.renderers.set(type,renderer);logger.debug(`Registered component: ${type}`);}registerBatch(components){Object.entries(components).forEach(([type,renderer])=>{this.register(type,renderer);});logger.debug(`Registered ${Object.keys(components).length} components`);}unregister(type){const existed=this.renderers.has(type);this.renderers.delete(type);if(existed){logger.debug(`Unregistered component: ${type}`);}return existed;}get(type){return this.renderers.get(type)||null;}has(type){return this.renderers.has(type);}list(){return Array.from(this.renderers.keys());}count(){return this.renderers.size;}clear(){this.renderers.clear();logger.debug('Cleared all registered components');}override(type,renderer){if(!this.has(type)){logger.warn(`Cannot override non-existent component: ${type}`);return false;}this.register(type,renderer);logger.debug(`Overrode component: ${type}`);return true;}getStats(){return{totalRegistered:this.renderers.size,types:this.list()};}}export function createDefaultRegistry(){const registry=new ComponentRegistry();logger.debug('Created default registry');return registry;}export function createRegistryWithComponents(components){const registry=createDefaultRegistry();registry.registerBatch(components);return registry;}
|
|
2
|
+
//# sourceMappingURL=ComponentRegistry.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export function getFieldAriaAttributes(label,error,required=false,disabled=false,hint){const attributes={accessible:true,accessibilityRole:'none'};if(label){attributes.accessibilityLabel=label;}if(error){attributes.accessibilityHint=error;}else if(hint){attributes.accessibilityHint=hint;}if(required){attributes.accessibilityHint=(attributes.accessibilityHint||'')+' Required field';}if(disabled){attributes.editable=false;}return attributes;}export function getButtonAriaAttributes(label,disabled=false,hint){return{accessible:true,accessibilityRole:'button',accessibilityLabel:label,accessibilityHint:hint,accessibilityState:{disabled}};}export function getCheckboxAriaAttributes(label,checked,disabled=false,hint){return{accessible:true,accessibilityRole:'checkbox',accessibilityLabel:label,accessibilityHint:hint,accessibilityState:{checked,disabled}};}export function getRadioAriaAttributes(label,selected,disabled=false,hint){return{accessible:true,accessibilityRole:'radio',accessibilityLabel:label,accessibilityHint:hint,accessibilityState:{selected,disabled}};}export function getSelectAriaAttributes(label,selectedValue,disabled=false,error,hint){const attributes={accessible:true,accessibilityRole:'combobox',accessibilityLabel:label,accessibilityState:{disabled,expanded:false}};if(selectedValue){attributes.accessibilityValue={text:selectedValue};}if(error){attributes.accessibilityHint=error;}else if(hint){attributes.accessibilityHint=hint;}return attributes;}export function getTextInputAriaAttributes(label,value,disabled=false,error,hint,required=false){const attributes={accessible:true,accessibilityRole:'none',accessibilityLabel:label};if(value){attributes.accessibilityValue={text:value};}let hintText='';if(error){hintText=error;}else if(hint){hintText=hint;}if(required){hintText+=' Required field';}if(hintText){attributes.accessibilityHint=hintText;}return attributes;}export function getFormAriaAttributes(title,description){return{accessible:true,accessibilityRole:'form',accessibilityLabel:title,accessibilityHint:description};}export function getErrorAriaAttributes(message){return{accessible:true,accessibilityRole:'alert',accessibilityLabel:'Error',accessibilityHint:message,accessibilityLiveRegion:'polite'};}export function getLoadingAriaAttributes(message='Loading'){return{accessible:true,accessibilityRole:'progressbar',accessibilityLabel:message,accessibilityLiveRegion:'polite'};}export function getModalAriaAttributes(title,description){return{accessible:true,accessibilityRole:'dialog',accessibilityLabel:title,accessibilityHint:description};}export function getListItemAriaAttributes(label,index,total){return{accessible:true,accessibilityRole:'option',accessibilityLabel:label,accessibilityHint:`Item ${index+1} of ${total}`};}export function getTabAriaAttributes(label,selected,index){return{accessible:true,accessibilityRole:'tab',accessibilityLabel:label,accessibilityState:{selected},accessibilityHint:`Tab ${index+1}`};}export function combineAriaAttributes(...attributes){const combined={};for(const attr of attributes){Object.assign(combined,attr);}return combined;}export function createAccessibleLabel(label,required=false,error=false){let text=label;if(required)text+=', required';if(error)text+=', error';return text;}export function getKeyboardHint(componentType){const hints={checkbox:'Double tap to toggle',radio:'Double tap to select',button:'Double tap to activate',select:'Double tap to open options',textfield:'Type to enter text',textarea:'Type to enter text, use return for new line'};return hints[componentType]||'Double tap to interact';}export function isAccessibilityEnabled(){return true;}export function announceToScreenReader(message){console.log('[A11y Announcement]:',message);}export function getHeadingAriaAttributes(level,text){return{accessible:true,accessibilityRole:'header',accessibilityLabel:text,accessibilityHint:`Heading level ${level}`};}
|
|
2
|
+
//# sourceMappingURL=a11yUtils.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Logger}from'./logger';const logger=new Logger('componentUtils');export function isEmpty(val){return val===undefined||val===null||val===''||Array.isArray(val)&&val.length===0;}export function traverseComponents(components,callback){const walk=(component,path='')=>{callback(component,undefined,path);if(component.components){component.components.forEach((child,index)=>{walk(child,`${path}[${index}]`);});}if(component.type==='columns'&&Array.isArray(component.columns)){component.columns.forEach((col,colIndex)=>{if(Array.isArray(col.components)){col.components.forEach((child,index)=>{walk(child,`${path}.columns[${colIndex}][${index}]`);});}});}};components.forEach((component,index)=>{walk(component,`[${index}]`);});}export function flattenComponents(components){const flattened=[];traverseComponents(components,component=>{flattened.push(component);});return flattened;}export function findComponentByKey(components,key){let found;traverseComponents(components,component=>{if(component.key===key){found=component;}});return found;}export function filterComponents(components,predicate){const filtered=[];traverseComponents(components,component=>{if(predicate(component)){filtered.push(component);}});return filtered;}export function getInputComponents(components){return filterComponents(components,c=>c.input!==false&&c.key);}export function initializeFormData(components,initialData={}){const data={...initialData};const inputComponents=getInputComponents(components);inputComponents.forEach(component=>{if(component.key&&data[component.key]===undefined){if(component.defaultValue!==undefined){data[component.key]=component.defaultValue;}}});logger.debug('Initialized form data',data);return data;}export function getVisibleComponents(components,data){return filterComponents(components,c=>!c.hidden&&c.type!=='hidden');}export function isComponentHidden(component,data,evaluator){var _component$conditiona;if(component.hidden){return true;}if((_component$conditiona=component.conditional)!=null&&_component$conditiona.when){const{when,eq,show=true}=component.conditional;const whenValue=data[when];const match=whenValue===eq;return show?!match:match;}if(component.customConditional&&evaluator){try{const result=evaluator(component.customConditional,{data,value:data[component.key]});return!result;}catch(error){logger.warn(`Failed to evaluate customConditional for ${component.key}`,error);return false;}}return false;}export function getRequiredFields(components){return filterComponents(components,c=>{var _c$validate;return(c.required||((_c$validate=c.validate)==null?void 0:_c$validate.required))&&c.key&&c.input!==false;}).map(c=>c.key);}export function countComponentsByType(components,type){return filterComponents(components,c=>c.type===type).length;}export function getComponentStats(components){const all=flattenComponents(components);const inputs=getInputComponents(components);const types=new Map();all.forEach(c=>{types.set(c.type,(types.get(c.type)||0)+1);});return{total:all.length,inputCount:inputs.length,typeDistribution:Object.fromEntries(types)};}
|
|
2
|
+
//# sourceMappingURL=componentUtils.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export{safeEval,safeEvalConditional,safeEvalValidation,safeEvalValue}from'./safeEval';export function isEmpty(val){return val===undefined||val===null||val===''||Array.isArray(val)&&val.length===0;}export{Logger,configureLogger,getLoggerConfig,globalLogger}from'./logger';export{LogLevel}from'./logger';export{createStyleUtilities,createPlatformStyles}from'./styleUtils';
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export let LogLevel=function(LogLevel){LogLevel["DEBUG"]="debug";LogLevel["INFO"]="info";LogLevel["WARN"]="warn";LogLevel["ERROR"]="error";return LogLevel;}({});let globalLoggerConfig={enabled:__DEV__||false,level:LogLevel.DEBUG,prefix:true,colors:false};export function configureLogger(config){globalLoggerConfig={...globalLoggerConfig,...config};}export function getLoggerConfig(){return{...globalLoggerConfig};}export class Logger{constructor(namespace){this.namespace=void 0;this.namespace=namespace;}debug(message,...args){this._log(LogLevel.DEBUG,message,args);}info(message,...args){this._log(LogLevel.INFO,message,args);}warn(message,...args){this._log(LogLevel.WARN,message,args);}error(message,error,...args){this._log(LogLevel.ERROR,message,[error,...args]);}_log(level,message,args){const config=globalLoggerConfig;if(!config.enabled){return;}const levelPriority={debug:0,info:1,warn:2,error:3};if(levelPriority[level]<levelPriority[config.level||LogLevel.DEBUG]){return;}const prefix=config.prefix?`[${this.namespace}]`:'';const logFn=console.log;if(args.length>0){logFn(prefix,`[${level.toUpperCase()}]`,message,...args);}else{logFn(prefix,`[${level.toUpperCase()}]`,message);}}}export const globalLogger=new Logger('Formio');
|
|
2
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useCallback,useMemo,useRef,useEffect}from'react';export function debounce(func,wait){let timeout=null;return function executedFunction(...args){const later=()=>{timeout=null;func(...args);};if(timeout){clearTimeout(timeout);}timeout=setTimeout(later,wait);};}export function throttle(func,limit){let inThrottle;return function executedFunction(...args){if(!inThrottle){func(...args);inThrottle=true;setTimeout(()=>inThrottle=false,limit);}};}export function useDebouncedValue(value,delay){const[debouncedValue,setDebouncedValue]=React.useState(value);useEffect(()=>{const handler=setTimeout(()=>{setDebouncedValue(value);},delay);return()=>clearTimeout(handler);},[value,delay]);return debouncedValue;}export function useDebouncedCallback(callback,delay,deps){const timeoutRef=useRef(null);useEffect(()=>{return()=>{if(timeoutRef.current){clearTimeout(timeoutRef.current);}};},[]);return useCallback((...args)=>{if(timeoutRef.current){clearTimeout(timeoutRef.current);}timeoutRef.current=setTimeout(()=>{callback(...args);},delay);},[callback,delay,...deps]);}export function useThrottledCallback(callback,delay,deps){const lastRunRef=useRef(Date.now());return useCallback((...args)=>{const now=Date.now();if(now-lastRunRef.current>=delay){callback(...args);lastRunRef.current=now;}},[callback,delay,...deps]);}export function memoize(func){const cache=new Map();return(...args)=>{const key=JSON.stringify(args);if(cache.has(key)){return cache.get(key);}const result=func(...args);cache.set(key,result);return result;};}export function useMemoizedValue(value,isEqual){const prevRef=useRef(value);const[memoized,setMemoized]=React.useState(value);useEffect(()=>{if(!isEqual(prevRef.current,value)){prevRef.current=value;setMemoized(value);}},[value,isEqual]);return memoized;}export class PerformanceMonitor{constructor(){this.marks=new Map();this.measures=new Map();}start(label){this.marks.set(label,performance.now());}end(label){const startTime=this.marks.get(label);if(!startTime){console.warn(`Performance mark "${label}" not found`);return 0;}const duration=performance.now()-startTime;this.measures.set(label,duration);this.marks.delete(label);return duration;}getMeasure(label){return this.measures.get(label);}getAllMeasures(){return Object.fromEntries(this.measures);}clear(){this.marks.clear();this.measures.clear();}log(){console.log('[Performance Metrics]',this.getAllMeasures());}}export function usePerformanceMonitor(){return useMemo(()=>new PerformanceMonitor(),[]);}export function batchUpdates(callback){callback();}export function lazy(importFunc){return React.lazy(importFunc);}export function getVisibleItems(scrollOffset,containerHeight,itemHeight,items){const startIndex=Math.floor(scrollOffset/itemHeight);const endIndex=Math.ceil((scrollOffset+containerHeight)/itemHeight);return{startIndex,endIndex:Math.min(endIndex,items.length),visibleItems:items.slice(startIndex,endIndex)};}export function measureRenderTime(renderFunc){const start=performance.now();renderFunc();return performance.now()-start;}export function hasSignificantChange(prev,next,threshold=0.1){if(typeof prev!=='number'||typeof next!=='number'){return prev!==next;}const percentChange=Math.abs((next-prev)/prev);return percentChange>threshold;}import React from'react';
|
|
2
|
+
//# sourceMappingURL=performanceUtils.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{I18nManager}from'react-native';export function getTextAlign(isRTL){return isRTL?'right':'left';}export function getFlexDirection(isRTL){return isRTL?'row-reverse':'row';}export function getTextDirection(isRTL){return isRTL?'rtl':'ltr';}export function swapMargins(style,isRTL){if(!isRTL)return style;const swapped={...style};if('marginLeft'in swapped&&'marginRight'in swapped){[swapped.marginLeft,swapped.marginRight]=[swapped.marginRight,swapped.marginLeft];}else if('marginLeft'in swapped){swapped.marginRight=swapped.marginLeft;delete swapped.marginLeft;}else if('marginRight'in swapped){swapped.marginLeft=swapped.marginRight;delete swapped.marginRight;}if('marginStart'in swapped&&'marginEnd'in swapped){[swapped.marginStart,swapped.marginEnd]=[swapped.marginEnd,swapped.marginStart];}return swapped;}export function swapPadding(style,isRTL){if(!isRTL)return style;const swapped={...style};if('paddingLeft'in swapped&&'paddingRight'in swapped){[swapped.paddingLeft,swapped.paddingRight]=[swapped.paddingRight,swapped.paddingLeft];}else if('paddingLeft'in swapped){swapped.paddingRight=swapped.paddingLeft;delete swapped.paddingLeft;}else if('paddingRight'in swapped){swapped.paddingLeft=swapped.paddingRight;delete swapped.paddingRight;}if('paddingStart'in swapped&&'paddingEnd'in swapped){[swapped.paddingStart,swapped.paddingEnd]=[swapped.paddingEnd,swapped.paddingStart];}return swapped;}export function swapBorderRadius(style,isRTL){if(!isRTL)return style;const swapped={...style};if('borderTopLeftRadius'in swapped&&'borderTopRightRadius'in swapped){[swapped.borderTopLeftRadius,swapped.borderTopRightRadius]=[swapped.borderTopRightRadius,swapped.borderTopLeftRadius];}if('borderBottomLeftRadius'in swapped&&'borderBottomRightRadius'in swapped){[swapped.borderBottomLeftRadius,swapped.borderBottomRightRadius]=[swapped.borderBottomRightRadius,swapped.borderBottomLeftRadius];}return swapped;}export function applyRTLStyle(style,isRTL){if(!isRTL)return style;let transformed={...style};transformed=swapMargins(transformed,true);transformed=swapPadding(transformed,true);transformed=swapBorderRadius(transformed,true);if('textAlign'in transformed){if(transformed.textAlign==='left'){transformed.textAlign='right';}else if(transformed.textAlign==='right'){transformed.textAlign='left';}}return transformed;}export function createRTLStyle(ltrStyle,rtlStyle,isRTL){const shouldUseRTL=isRTL!=null?isRTL:I18nManager.isRTL;if(!shouldUseRTL){return ltrStyle;}if(rtlStyle){return{...ltrStyle,...rtlStyle};}return applyRTLStyle(ltrStyle,true);}export function getIconRotation(isRTL,defaultRotation=0){return isRTL?defaultRotation+180:defaultRotation;}export function getIconFlipTransform(isRTL){return[{scaleX:isRTL?-1:1}];}export function isSystemRTL(){return I18nManager.isRTL;}export function getAlignSelf(isRTL,alignment){if(alignment==='center')return'center';if(isRTL){return alignment==='flex-start'?'flex-end':'flex-start';}return alignment;}export function getJustifyContent(isRTL,justify){if(justify==='center'||justify==='space-between'||justify==='space-around'){return justify;}if(isRTL){return justify==='flex-start'?'flex-end':'flex-start';}return justify;}export function createRTLAwareStyle(style,isRTL){return applyRTLStyle(style,isRTL);}
|
|
2
|
+
//# sourceMappingURL=rtlUtils.js.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import{Logger}from'./logger';const logger=new Logger('safeEval');export function safeEval(code,ctx,options={}){if(!code||typeof code!=='string'){logger.debug('Empty or invalid code provided to safeEval');return undefined;}try{const{data,row,value,util,show,valid,input}=ctx;const{debug=false}=options;if(debug){logger.debug('Executing code:',code,'with context:',ctx);}const fn=new Function('data','row','value','input','util','show','valid',`
|
|
2
|
+
var _initialValid = valid;
|
|
3
|
+
var _initialShow = show;
|
|
4
|
+
var _initialValue = value;
|
|
5
|
+
${code}
|
|
6
|
+
// Check if valid was explicitly set (for validation contexts)
|
|
7
|
+
if (typeof valid !== 'undefined' && valid !== _initialValid) {
|
|
8
|
+
return valid;
|
|
9
|
+
}
|
|
10
|
+
// Check if show was explicitly set (for conditional contexts)
|
|
11
|
+
if (typeof show !== 'undefined' && show !== _initialShow) {
|
|
12
|
+
return show;
|
|
13
|
+
}
|
|
14
|
+
// Check if value was modified (for calculated value contexts)
|
|
15
|
+
if (typeof value !== 'undefined' && value !== _initialValue) {
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
// Return undefined if nothing was set
|
|
19
|
+
return undefined;
|
|
20
|
+
`);const result=fn(data,row!=null?row:data,value,input!=null?input:value,util!=null?util:{},show,valid);if(debug){logger.debug('Evaluation result:',result);}return result;}catch(error){const errorMessage=error instanceof Error?error.message:String(error);logger.warn(`Failed to evaluate code: ${errorMessage}\nCode: ${code}`);return undefined;}}export function safeEvalConditional(code,ctx,options={}){const result=safeEval(code,ctx,options);if(typeof result==='boolean'){return result;}if(result!==undefined){return Boolean(result);}return false;}export function safeEvalValidation(code,ctx,options={}){const result=safeEval(code,ctx,options);if(typeof result==='boolean'){return result;}if(typeof result==='string'&&result.length>0){return result;}return true;}export function safeEvalValue(code,ctx,options={}){return safeEval(code,ctx,options);}
|
|
21
|
+
//# sourceMappingURL=safeEval.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{StyleSheet,Platform,I18nManager}from'react-native';export function createStyleUtilities(theme){const isRTL=I18nManager.isRTL;const getColor=(key,fallback)=>{const parts=key.split('.');let value=theme==null?void 0:theme.colors;for(const part of parts){var _value;value=(_value=value)==null?void 0:_value[part];}return value||fallback;};const getSpacing=(key,fallback)=>{const parts=key.split('.');let value=theme==null?void 0:theme.spacing;for(const part of parts){var _value2;value=(_value2=value)==null?void 0:_value2[part];}return value||fallback;};const getFont=(key,fallback)=>{var _theme$typography;const parts=key.split('.');let value=theme==null||(_theme$typography=theme.typography)==null?void 0:_theme$typography.fontSize;for(const part of parts){var _value3;value=(_value3=value)==null?void 0:_value3[part];}return value||fallback;};const getComponentValue=(path,fallback)=>{const parts=path.split('.');let value=theme==null?void 0:theme.components;for(const part of parts){var _value4;value=(_value4=value)==null?void 0:_value4[part];}return value!=null?value:fallback;};const createStyles=callback=>{const styles=callback(theme||{});return StyleSheet.create(styles);};const createRTLStyles=(ltrStyle,rtlStyle)=>{if(!isRTL){return ltrStyle;}if(rtlStyle){return{...ltrStyle,...rtlStyle};}const reversed={...ltrStyle};if(reversed.flexDirection==='row'){reversed.flexDirection='row-reverse';}if(reversed.marginRight!==undefined&&reversed.marginLeft===undefined){reversed.marginLeft=reversed.marginRight;delete reversed.marginRight;}if(reversed.marginLeft!==undefined&&reversed.marginRight===undefined){reversed.marginRight=reversed.marginLeft;delete reversed.marginLeft;}if(reversed.paddingRight!==undefined&&reversed.paddingLeft===undefined){reversed.paddingLeft=reversed.paddingRight;delete reversed.paddingRight;}if(reversed.paddingLeft!==undefined&&reversed.paddingRight===undefined){reversed.paddingRight=reversed.paddingLeft;delete reversed.paddingLeft;}if(reversed.borderTopRightRadius!==undefined){[reversed.borderTopLeftRadius,reversed.borderTopRightRadius]=[reversed.borderTopRightRadius,reversed.borderTopLeftRadius];}if(reversed.borderBottomRightRadius!==undefined){[reversed.borderBottomLeftRadius,reversed.borderBottomRightRadius]=[reversed.borderBottomRightRadius,reversed.borderBottomLeftRadius];}if(reversed.textAlign==='left'){reversed.textAlign='right';}else if(reversed.textAlign==='right'){reversed.textAlign='left';}return reversed;};return{getColor,getSpacing,getFont,getComponentValue,createStyles,createRTLStyles};}export function createPlatformStyles(iosStyle,androidStyle){return Platform.select({ios:iosStyle,android:androidStyle||iosStyle,default:iosStyle});}
|
|
2
|
+
//# sourceMappingURL=styleUtils.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{getValidationMessage}from'./i18n/messages';import{isEmpty,safeEvalValidation}from'./utils';export const validateField=(component,value,fullData={},options)=>{const errors=[];const{key,validate={},required,label}=component;if(required||validate.required){if(isEmpty(value)){const msg=options!=null&&options.translate?options.translate('validation.REQUIRED',`${label||key} is required`):getValidationMessage('REQUIRED');errors.push({field:key,message:msg});return errors;}}if(!isEmpty(value)&&typeof value==='string'){if(validate.minLength!==undefined&&value.length<validate.minLength){errors.push({field:key,message:getValidationMessage('MIN_LENGTH',{min:validate.minLength},options==null?void 0:options.translate)});}if(validate.maxLength!==undefined&&value.length>validate.maxLength){errors.push({field:key,message:getValidationMessage('MAX_LENGTH',{max:validate.maxLength},options==null?void 0:options.translate)});}if(validate.pattern&&!new RegExp(validate.pattern).test(value)){const msg=validate.customMessage||(options!=null&&options.translate?options.translate('validation.PATTERN','Invalid format'):getValidationMessage('PATTERN'));errors.push({field:key,message:msg});}}if(!isEmpty(value)&&typeof value==='number'){if(validate.min!==undefined&&value<validate.min){errors.push({field:key,message:getValidationMessage('MIN_VALUE',{min:validate.min},options==null?void 0:options.translate)});}if(validate.max!==undefined&&value>validate.max){errors.push({field:key,message:getValidationMessage('MAX_VALUE',{max:validate.max},options==null?void 0:options.translate)});}}if(validate&&validate.custom){const res=safeEvalValidation(validate.custom,{value,data:fullData,row:fullData,util:{}});if(res===false){const msg=validate.customMessage||(options!=null&&options.translate?options.translate('validation.CUSTOM_ERROR',`${label||key} is invalid`):getValidationMessage('CUSTOM_ERROR'));errors.push({field:key,message:msg});}else if(typeof res==='string'&&res.length>0){errors.push({field:key,message:res});}}return errors;};export const validateForm=(components,data,options)=>{const errors=[];const traverse=component=>{if(component.input!==false&&!component.hidden){const fieldErrors=validateField(component,data[component.key],data,options);errors.push(...fieldErrors);}if(component.components)component.components.forEach(traverse);if(component.type==='columns'&&Array.isArray(component.columns)){component.columns.forEach(col=>{if(Array.isArray(col.components))col.components.forEach(traverse);});}};components.forEach(traverse);return errors;};
|
|
2
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface CheckboxFieldProps {
|
|
3
|
+
label: string;
|
|
4
|
+
value: boolean;
|
|
5
|
+
onChange: (value: boolean) => void;
|
|
6
|
+
required?: boolean;
|
|
7
|
+
error?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const CheckboxField: React.FC<CheckboxFieldProps>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=CheckboxField.d.ts.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { FormioComponent } from '../types';
|
|
3
|
+
export interface DataGridComponent extends FormioComponent {
|
|
4
|
+
type: 'datagrid';
|
|
5
|
+
components: FormioComponent[];
|
|
6
|
+
minLength?: number;
|
|
7
|
+
maxLength?: number;
|
|
8
|
+
validate?: FormioComponent['validate'];
|
|
9
|
+
}
|
|
10
|
+
interface Props {
|
|
11
|
+
component: DataGridComponent;
|
|
12
|
+
value?: Array<Record<string, any>>;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
readOnly?: boolean;
|
|
15
|
+
error?: string;
|
|
16
|
+
onChange: (value: Array<Record<string, any>>) => void;
|
|
17
|
+
}
|
|
18
|
+
export declare const DataGrid: React.FC<Props>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=DataGrid.d.ts.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { FormioComponent } from '../types';
|
|
3
|
+
export interface DateComponent extends FormioComponent {
|
|
4
|
+
type: 'date' | 'datetime' | 'time';
|
|
5
|
+
format?: string;
|
|
6
|
+
enableTime?: boolean;
|
|
7
|
+
enableDate?: boolean;
|
|
8
|
+
minDate?: string;
|
|
9
|
+
maxDate?: string;
|
|
10
|
+
validate?: FormioComponent['validate'] & {
|
|
11
|
+
min?: string;
|
|
12
|
+
max?: string;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
interface Props {
|
|
16
|
+
component: DateComponent;
|
|
17
|
+
value?: string | null;
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
readOnly?: boolean;
|
|
20
|
+
error?: string;
|
|
21
|
+
onChange: (value: string | null) => void;
|
|
22
|
+
}
|
|
23
|
+
export declare const DatePicker: React.FC<Props>;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=DatePicker.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { FormioComponent } from '../types';
|
|
3
|
+
export interface EditGridComponent extends FormioComponent {
|
|
4
|
+
type: 'editgrid';
|
|
5
|
+
components: FormioComponent[];
|
|
6
|
+
inlineEdit?: boolean;
|
|
7
|
+
}
|
|
8
|
+
interface Props {
|
|
9
|
+
component: EditGridComponent;
|
|
10
|
+
value?: Array<Record<string, any>>;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
readOnly?: boolean;
|
|
13
|
+
error?: string;
|
|
14
|
+
onChange: (value: Array<Record<string, any>>) => void;
|
|
15
|
+
}
|
|
16
|
+
export declare const EditGrid: React.FC<Props>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=EditGrid.d.ts.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { FormioComponent } from '../types';
|
|
3
|
+
export interface FileComponent extends FormioComponent {
|
|
4
|
+
type: 'file';
|
|
5
|
+
storage?: 'base64' | 's3' | 'url' | 'fileSystem';
|
|
6
|
+
fileTypes?: string[];
|
|
7
|
+
multiple?: boolean;
|
|
8
|
+
validate?: FormioComponent['validate'] & {
|
|
9
|
+
maxSize?: string;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
interface Props {
|
|
13
|
+
component: FileComponent;
|
|
14
|
+
value?: Array<{
|
|
15
|
+
name: string;
|
|
16
|
+
url?: string;
|
|
17
|
+
base64?: string;
|
|
18
|
+
}>;
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
readOnly?: boolean;
|
|
21
|
+
error?: string;
|
|
22
|
+
onChange: (value: Array<{
|
|
23
|
+
name: string;
|
|
24
|
+
url?: string;
|
|
25
|
+
base64?: string;
|
|
26
|
+
}>) => void;
|
|
27
|
+
onPickFile?: () => Promise<Array<{
|
|
28
|
+
name: string;
|
|
29
|
+
url?: string;
|
|
30
|
+
base64?: string;
|
|
31
|
+
}>>;
|
|
32
|
+
}
|
|
33
|
+
export declare const FileUpload: React.FC<Props>;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=FileUpload.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FormioComponent } from '../types';
|
|
3
|
+
interface FormioFieldProps {
|
|
4
|
+
component: FormioComponent;
|
|
5
|
+
value: any;
|
|
6
|
+
onChange: (key: string, value: any) => void;
|
|
7
|
+
error?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const FormioField: React.FC<FormioFieldProps>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=FormioField.d.ts.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { FormioComponent } from '../types';
|
|
3
|
+
export interface ResourceSelectComponent extends FormioComponent {
|
|
4
|
+
type: 'select';
|
|
5
|
+
data?: FormioComponent['data'] & {
|
|
6
|
+
dataSrc?: 'url' | 'resource' | 'values' | 'json';
|
|
7
|
+
url?: string;
|
|
8
|
+
resource?: string;
|
|
9
|
+
searchField?: string;
|
|
10
|
+
values?: Array<{
|
|
11
|
+
label: string;
|
|
12
|
+
value: any;
|
|
13
|
+
}>;
|
|
14
|
+
json?: Array<{
|
|
15
|
+
label: string;
|
|
16
|
+
value: any;
|
|
17
|
+
}>;
|
|
18
|
+
labelProperty?: string;
|
|
19
|
+
valueProperty?: string;
|
|
20
|
+
};
|
|
21
|
+
searchEnabled?: boolean;
|
|
22
|
+
debounce?: number;
|
|
23
|
+
placeholder?: string;
|
|
24
|
+
label?: string;
|
|
25
|
+
required?: boolean;
|
|
26
|
+
}
|
|
27
|
+
interface Props {
|
|
28
|
+
component: ResourceSelectComponent;
|
|
29
|
+
value: any;
|
|
30
|
+
disabled?: boolean;
|
|
31
|
+
readOnly?: boolean;
|
|
32
|
+
error?: string;
|
|
33
|
+
onChange: (value: any) => void;
|
|
34
|
+
fetcher?: (url: string) => Promise<any>;
|
|
35
|
+
}
|
|
36
|
+
export declare const ResourceSelect: React.FC<Props>;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=ResourceSelect.d.ts.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { FormioComponent, FormioFormSchema } from '../types';
|
|
3
|
+
export interface WizardPage extends FormioComponent {
|
|
4
|
+
type: 'panel';
|
|
5
|
+
title?: string;
|
|
6
|
+
components: FormioComponent[];
|
|
7
|
+
}
|
|
8
|
+
export interface WizardComponent extends FormioComponent {
|
|
9
|
+
type: 'wizard';
|
|
10
|
+
pages: WizardPage[];
|
|
11
|
+
}
|
|
12
|
+
interface Props {
|
|
13
|
+
form: FormioFormSchema;
|
|
14
|
+
component: WizardComponent;
|
|
15
|
+
data: Record<string, any>;
|
|
16
|
+
setData: (data: Record<string, any>) => void;
|
|
17
|
+
errors: Array<{
|
|
18
|
+
field: string;
|
|
19
|
+
message: string;
|
|
20
|
+
}>;
|
|
21
|
+
onValidation?: (errors: Array<{
|
|
22
|
+
field: string;
|
|
23
|
+
message: string;
|
|
24
|
+
}>) => void;
|
|
25
|
+
onNext?: () => void;
|
|
26
|
+
onPrev?: () => void;
|
|
27
|
+
onFinish?: () => void;
|
|
28
|
+
}
|
|
29
|
+
export declare const Wizard: React.FC<Props>;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=Wizard.d.ts.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export { TextfieldRenderer } from './TextfieldRenderer';
|
|
2
|
+
export { EmailRenderer } from './EmailRenderer';
|
|
3
|
+
export { NumberRenderer } from './NumberRenderer';
|
|
4
|
+
export { CheckboxRenderer } from './CheckboxRenderer';
|
|
5
|
+
export { RadioRenderer } from './RadioRenderer';
|
|
6
|
+
export { SelectRenderer } from './SelectRenderer';
|
|
7
|
+
export { SelectboxesRenderer } from './SelectboxesRenderer';
|
|
8
|
+
export { TextAreaRenderer } from './TextAreaRenderer';
|
|
9
|
+
export { PasswordRenderer } from './PasswordRenderer';
|
|
10
|
+
export { URLRenderer } from './URLRenderer';
|
|
11
|
+
export { PhoneNumberRenderer } from './PhoneNumberRenderer';
|
|
12
|
+
export { FallbackRenderer } from './FallbackRenderer';
|
|
13
|
+
export declare const DEFAULT_RENDERERS: {
|
|
14
|
+
textfield: any;
|
|
15
|
+
text: any;
|
|
16
|
+
email: any;
|
|
17
|
+
number: any;
|
|
18
|
+
checkbox: any;
|
|
19
|
+
radio: any;
|
|
20
|
+
select: any;
|
|
21
|
+
selectboxes: any;
|
|
22
|
+
textarea: any;
|
|
23
|
+
password: any;
|
|
24
|
+
url: any;
|
|
25
|
+
phoneNumber: any;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const DEFAULT_COLORS: {
|
|
2
|
+
readonly PRIMARY: "#007AFF";
|
|
3
|
+
readonly SECONDARY: "#5856D6";
|
|
4
|
+
readonly ERROR: "#FF3B30";
|
|
5
|
+
readonly SUCCESS: "#34C759";
|
|
6
|
+
readonly WARNING: "#FF9500";
|
|
7
|
+
readonly INFO: "#00B0FF";
|
|
8
|
+
readonly BACKGROUND: "#FFFFFF";
|
|
9
|
+
readonly SURFACE: "#F2F2F7";
|
|
10
|
+
readonly TEXT: "#333333";
|
|
11
|
+
readonly TEXT_SECONDARY: "#8E8E93";
|
|
12
|
+
readonly BORDER: "#C7C7CC";
|
|
13
|
+
readonly BORDER_FOCUS: "#007AFF";
|
|
14
|
+
readonly DISABLED: "#F0F0F0";
|
|
15
|
+
readonly PLACEHOLDER: "#C7C7CC";
|
|
16
|
+
};
|
|
17
|
+
export type ColorKey = keyof typeof DEFAULT_COLORS;
|
|
18
|
+
//# sourceMappingURL=colors.d.ts.map
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export declare const COMPONENT_TYPES: {
|
|
2
|
+
readonly TEXTFIELD: "textfield";
|
|
3
|
+
readonly EMAIL: "email";
|
|
4
|
+
readonly PASSWORD: "password";
|
|
5
|
+
readonly NUMBER: "number";
|
|
6
|
+
readonly TEXTAREA: "textarea";
|
|
7
|
+
readonly URL: "url";
|
|
8
|
+
readonly PHONE_NUMBER: "phoneNumber";
|
|
9
|
+
readonly SELECT: "select";
|
|
10
|
+
readonly CHECKBOX: "checkbox";
|
|
11
|
+
readonly RADIO: "radio";
|
|
12
|
+
readonly SELECTBOXES: "selectboxes";
|
|
13
|
+
readonly DATE: "date";
|
|
14
|
+
readonly DATETIME: "datetime";
|
|
15
|
+
readonly TIME: "time";
|
|
16
|
+
readonly DAY: "day";
|
|
17
|
+
readonly FILE: "file";
|
|
18
|
+
readonly PANEL: "panel";
|
|
19
|
+
readonly CONTAINER: "container";
|
|
20
|
+
readonly COLUMNS: "columns";
|
|
21
|
+
readonly FIELDSET: "fieldset";
|
|
22
|
+
readonly WELL: "well";
|
|
23
|
+
readonly TABS: "tabs";
|
|
24
|
+
readonly TABLE: "table";
|
|
25
|
+
readonly BUTTON: "button";
|
|
26
|
+
readonly HTML: "html";
|
|
27
|
+
readonly LABEL: "label";
|
|
28
|
+
readonly HIDDEN: "hidden";
|
|
29
|
+
readonly CONTENT: "content";
|
|
30
|
+
readonly DATAGRID: "datagrid";
|
|
31
|
+
readonly EDITGRID: "editgrid";
|
|
32
|
+
readonly TREE: "tree";
|
|
33
|
+
readonly WIZARD: "wizard";
|
|
34
|
+
readonly SIGNATURE: "signature";
|
|
35
|
+
readonly RESOURCE: "resource";
|
|
36
|
+
readonly CUSTOM: "custom";
|
|
37
|
+
};
|
|
38
|
+
export declare const INPUT_COMPONENT_TYPES: ("number" | "select" | "textarea" | "time" | "url" | "date" | "datetime" | "file" | "datagrid" | "editgrid" | "textfield" | "email" | "password" | "phoneNumber" | "checkbox" | "radio" | "selectboxes" | "day")[];
|
|
39
|
+
export declare const CONTAINER_COMPONENT_TYPES: ("fieldset" | "table" | "columns" | "panel" | "container" | "well" | "tabs")[];
|
|
40
|
+
export declare const DISPLAY_COMPONENT_TYPES: ("button" | "html" | "label" | "hidden" | "content")[];
|
|
41
|
+
export type ComponentType = typeof COMPONENT_TYPES[keyof typeof COMPONENT_TYPES];
|
|
42
|
+
//# sourceMappingURL=componentTypes.d.ts.map
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export { DEFAULT_COLORS } from './colors';
|
|
2
|
+
export type { ColorKey } from './colors';
|
|
3
|
+
export declare const SPACING: {
|
|
4
|
+
xs: number;
|
|
5
|
+
sm: number;
|
|
6
|
+
md: number;
|
|
7
|
+
lg: number;
|
|
8
|
+
xl: number;
|
|
9
|
+
xxl: number;
|
|
10
|
+
};
|
|
11
|
+
export type { SpacingKey } from './spacing';
|
|
12
|
+
export { FONT_SIZES, FONT_WEIGHTS, LINE_HEIGHTS } from './typography';
|
|
13
|
+
export type { FontSizeKey, FontWeightKey, LineHeightKey } from './typography';
|
|
14
|
+
export { COMPONENT_TYPES, INPUT_COMPONENT_TYPES, CONTAINER_COMPONENT_TYPES, DISPLAY_COMPONENT_TYPES, } from './componentTypes';
|
|
15
|
+
export type { ComponentType } from './componentTypes';
|
|
16
|
+
export { VALIDATION_MESSAGES } from './validationMessages';
|
|
17
|
+
export type { ValidationMessageKey } from './validationMessages';
|
|
18
|
+
export declare const COLORS: {
|
|
19
|
+
primary: "#007AFF";
|
|
20
|
+
secondary: "#5856D6";
|
|
21
|
+
error: "#FF3B30";
|
|
22
|
+
success: "#34C759";
|
|
23
|
+
warning: "#FF9500";
|
|
24
|
+
info: "#00B0FF";
|
|
25
|
+
background: "#FFFFFF";
|
|
26
|
+
surface: "#F2F2F7";
|
|
27
|
+
text: "#333333";
|
|
28
|
+
textSecondary: "#8E8E93";
|
|
29
|
+
border: "#C7C7CC";
|
|
30
|
+
borderFocus: "#007AFF";
|
|
31
|
+
disabled: "#F0F0F0";
|
|
32
|
+
placeholder: "#C7C7CC";
|
|
33
|
+
warningLight: string;
|
|
34
|
+
primaryLight: string;
|
|
35
|
+
};
|
|
36
|
+
export declare const TYPOGRAPHY: {
|
|
37
|
+
fontSize: {
|
|
38
|
+
xs: 12;
|
|
39
|
+
sm: 14;
|
|
40
|
+
md: 16;
|
|
41
|
+
lg: 18;
|
|
42
|
+
xl: 20;
|
|
43
|
+
xxl: 24;
|
|
44
|
+
};
|
|
45
|
+
fontWeight: {
|
|
46
|
+
light: "300";
|
|
47
|
+
normal: "400";
|
|
48
|
+
medium: "500";
|
|
49
|
+
semibold: "600";
|
|
50
|
+
bold: "700";
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const FONT_SIZES: {
|
|
2
|
+
readonly XS: 12;
|
|
3
|
+
readonly SM: 14;
|
|
4
|
+
readonly MD: 16;
|
|
5
|
+
readonly LG: 18;
|
|
6
|
+
readonly XL: 20;
|
|
7
|
+
readonly XXL: 24;
|
|
8
|
+
};
|
|
9
|
+
export declare const FONT_WEIGHTS: {
|
|
10
|
+
readonly LIGHT: "300";
|
|
11
|
+
readonly NORMAL: "400";
|
|
12
|
+
readonly MEDIUM: "500";
|
|
13
|
+
readonly SEMI_BOLD: "600";
|
|
14
|
+
readonly BOLD: "700";
|
|
15
|
+
};
|
|
16
|
+
export declare const LINE_HEIGHTS: {
|
|
17
|
+
readonly TIGHT: 1.2;
|
|
18
|
+
readonly NORMAL: 1.5;
|
|
19
|
+
readonly RELAXED: 1.8;
|
|
20
|
+
};
|
|
21
|
+
export type FontSizeKey = keyof typeof FONT_SIZES;
|
|
22
|
+
export type FontWeightKey = keyof typeof FONT_WEIGHTS;
|
|
23
|
+
export type LineHeightKey = keyof typeof LINE_HEIGHTS;
|
|
24
|
+
//# sourceMappingURL=typography.d.ts.map
|