@tsed/schema-formio 6.83.0 → 6.86.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.
@@ -27,3 +27,4 @@ export * from "./suffix";
27
27
  export * from "./textCase";
28
28
  export * from "./conditional";
29
29
  export * from "./customConditional";
30
+ export * from "./openWhenEmpty";
package/lib/index.js CHANGED
@@ -31,7 +31,7 @@ function anyToComponent(schema, options) {
31
31
 
32
32
  switch (schema.type) {
33
33
  case "object":
34
- if (schema.additionalProperties) {
34
+ if (!schema.properties && !schema.$ref) {
35
35
  return execMapper("map", schema, options);
36
36
  }
37
37
 
@@ -229,7 +229,7 @@ function mapToComponent(schema, options) {
229
229
  type: "datamap",
230
230
  tableView: false,
231
231
  input: true,
232
- valueComponent: _extends({}, execMapper("any", schema.additionalProperties, options), {
232
+ valueComponent: _extends({}, schema.additionalProperties ? execMapper("any", schema.additionalProperties, options) : {}, {
233
233
  hideLabel: true,
234
234
  tableView: true
235
235
  })
@@ -967,6 +967,20 @@ function CustomConditional(customConditional) {
967
967
  });
968
968
  }
969
969
 
970
+ /**
971
+ * Open automatically the editgrid when the list is empty.
972
+ * @decorator
973
+ * @formio
974
+ * @property
975
+ * @schema
976
+ */
977
+
978
+ function OpenWhenEmpty(openWhenEmpty = true) {
979
+ return Component({
980
+ openWhenEmpty
981
+ });
982
+ }
983
+
970
984
  async function getFormioSchema(model, options = {}) {
971
985
  if (!model) {
972
986
  return undefined;
@@ -1025,6 +1039,7 @@ exports.MaxWords = MaxWords;
1025
1039
  exports.MinWords = MinWords;
1026
1040
  exports.ModalEdit = ModalEdit;
1027
1041
  exports.Multiple = Multiple;
1042
+ exports.OpenWhenEmpty = OpenWhenEmpty;
1028
1043
  exports.Password = Password;
1029
1044
  exports.Placeholder = Placeholder;
1030
1045
  exports.Prefix = Prefix;
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/registries/FormioMappersContainer.ts","../src/utils/getRef.ts","../src/components/anyToComponent.ts","../src/components/arrayToComponent.ts","../src/components/booleanToComponent.ts","../src/components/dateToComponent.ts","../src/utils/getFormioProps.ts","../src/components/defaultToComponent.ts","../src/components/enumToComponent.ts","../src/components/mapToComponent.ts","../src/components/nestedToComponent.ts","../src/components/numberToComponent.ts","../src/components/objectToEditGrid.ts","../src/components/panelToComponent.ts","../src/components/propertiesToComponents.ts","../src/components/stringToComponent.ts","../src/decorators/component.ts","../src/decorators/currency.ts","../src/decorators/dataSourceJson.ts","../src/decorators/dataSourceUrl.ts","../src/decorators/hidden.ts","../src/decorators/inputTags.ts","../src/decorators/multiple.ts","../src/decorators/password.ts","../src/decorators/select.ts","../src/decorators/tableView.ts","../src/decorators/textarea.ts","../src/decorators/validate.ts","../src/decorators/errorMessage.ts","../src/decorators/errorLabel.ts","../src/decorators/minWords.ts","../src/decorators/maxWords.ts","../src/registries/FormsContainer.ts","../src/decorators/form.ts","../src/decorators/tabs.ts","../src/decorators/placeholder.ts","../src/decorators/tooltip.ts","../src/decorators/label.ts","../src/decorators/customClass.ts","../src/decorators/modalEdit.ts","../src/decorators/mask.ts","../src/decorators/prefix.ts","../src/decorators/suffix.ts","../src/decorators/textCase.ts","../src/decorators/conditional.ts","../src/decorators/customConditional.ts","../src/utils/getFormioSchema.ts"],"sourcesContent":["export interface FormioMapper {\n (schema: any, options: any): any;\n}\n\nconst FormioMappersContainer: Map<string, FormioMapper> = new Map();\n\nexport function registerFormioMapper(type: string, mapper: FormioMapper) {\n return FormioMappersContainer.set(type, mapper);\n}\n\nexport function getFormioMapper(type: string): FormioMapper {\n // istanbul ignore next\n if (!FormioMappersContainer.has(type)) {\n throw new Error(`Formio ${type} mapper doesn't exists`);\n }\n return FormioMappersContainer.get(type)!;\n}\n\nexport function execMapper(type: string, schema: any, options: any): any {\n return getFormioMapper(type)(schema, options);\n}\n","import {getValue} from \"@tsed/core\";\n\nexport function getRef(schema: any, options: any) {\n if (schema.$ref) {\n return getValue(options, schema.$ref.replace(\"#/\", \"\").replace(/\\//g, \".\"));\n }\n return schema;\n}\n","import {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\nimport {getRef} from \"../utils/getRef\";\n\nexport function anyToComponent(schema: any, options: any) {\n schema = getRef(schema, options);\n\n switch (schema.type) {\n case \"object\":\n if (schema.additionalProperties) {\n return execMapper(\"map\", schema, options);\n }\n\n return execMapper(\"nested\", schema, options);\n case \"array\":\n return execMapper(\"array\", schema, options);\n case \"string\":\n return execMapper(\"string\", schema, options);\n case \"boolean\":\n return execMapper(\"boolean\", schema, options);\n case \"integer\":\n case \"number\":\n return execMapper(\"number\", schema, options);\n // default:\n // return execMapper(\"default\", schema, options);\n }\n}\n\nregisterFormioMapper(\"any\", anyToComponent);\n","import {cleanObject} from \"@tsed/core\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\nimport {getRef} from \"../utils/getRef\";\n\nexport function arrayToComponent(schema: any, options: any) {\n const itemSchema = schema.items.$ref ? getRef(schema.items, options) : schema.items;\n\n const {type} = itemSchema;\n\n switch (type) {\n case \"object\": // editgrid\n return {\n ...execMapper(\"default\", schema, options),\n ...execMapper(\"editgrid\", itemSchema, options)\n };\n case \"string\": // tag or enum?\n if (itemSchema.enum) {\n const component = execMapper(\"enum\", itemSchema, options);\n\n return {\n ...component,\n inline: false,\n type: \"selectboxes\"\n };\n }\n\n const component = execMapper(type, itemSchema, options);\n\n return cleanObject({\n ...component,\n multiple: component.type === \"tags\" ? undefined : true\n });\n default:\n case \"number\":\n return {\n ...execMapper(type, itemSchema, options),\n multiple: true\n };\n }\n}\n\nregisterFormioMapper(\"array\", arrayToComponent);\n","import {cleanObject} from \"@tsed/core\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nfunction booleanToComponent(schema: any, options: any) {\n const component = execMapper(\"default\", schema, options);\n\n return cleanObject({\n ...component,\n input: true,\n type: component.type || \"checkbox\"\n });\n}\n\nregisterFormioMapper(\"boolean\", booleanToComponent);\n","import {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nfunction dateToComponent(schema: any, options: any) {\n const component = execMapper(\"default\", schema, options);\n\n const base = {\n ...component,\n enableMinDateInput: false,\n datePicker: {\n disableWeekends: false,\n disableWeekdays: false\n },\n enableMaxDateInput: false,\n enableTime: false,\n type: \"datetime\",\n input: true,\n widget: {\n type: \"calendar\",\n displayInTimezone: \"viewer\",\n locale: \"en\",\n useLocaleSettings: false,\n allowInput: true,\n mode: \"single\",\n noCalendar: false,\n hourIncrement: 1,\n minuteIncrement: 1,\n minDate: null,\n disableWeekends: false,\n disableWeekdays: false,\n maxDate: null\n }\n };\n\n if (schema.format === \"date\") {\n return {\n ...base,\n format: \"yyyy-MM-dd\",\n enableTime: false,\n widget: {\n ...base.widget,\n enableTime: false,\n format: \"yyyy-MM-dd\"\n }\n };\n }\n\n return {\n ...base,\n timePicker: {\n showMeridian: false\n },\n widget: {\n enableTime: true,\n time_24hr: true\n }\n };\n}\n\nregisterFormioMapper(\"date\", dateToComponent);\n","export function getFormioProps(schema: any) {\n const formioProps: any = Object.entries(schema).reduce((props, [key, value]) => {\n if (key.startsWith(\"x-formio-\")) {\n return {\n ...props,\n [key.replace(\"x-formio-\", \"\")]: value\n };\n }\n return props;\n }, {});\n return formioProps;\n}\n","import {cleanObject} from \"@tsed/core\";\nimport {registerFormioMapper} from \"../registries/FormioMappersContainer\";\nimport {getFormioProps} from \"../utils/getFormioProps\";\n\nexport function defaultToComponent(schema: any, options: any): any {\n const formioProps = getFormioProps(schema);\n\n return cleanObject({\n ...formioProps,\n disabled: !!schema.readOnly,\n description: schema.description,\n defaultValue: schema.default\n });\n}\n\nregisterFormioMapper(\"default\", defaultToComponent);\n","import {cleanObject} from \"@tsed/core\";\nimport {sentenceCase} from \"change-case\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function enumToComponent(schema: any, options: any) {\n const component = execMapper(\"default\", schema, options);\n const values = schema.enum.map((value: any) => {\n return {\n label: sentenceCase(value),\n value\n };\n });\n\n if (component.type === \"select\") {\n return cleanObject({\n ...component,\n data: {\n json: JSON.stringify(values)\n },\n dataSrc: \"json\",\n idPath: \"value\",\n valueProperty: \"value\",\n template: \"<span>{{ item.label }}</span>\"\n });\n }\n\n return cleanObject({\n ...component,\n values: schema[\"x-values\"] || values.map((value: any) => ({...value, shortcut: \"\"}))\n });\n}\n\nregisterFormioMapper(\"enum\", enumToComponent);\n","import {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function mapToComponent(schema: any, options: any) {\n return {\n ...execMapper(\"default\", schema, options),\n type: \"datamap\",\n tableView: false,\n input: true,\n valueComponent: {\n ...execMapper(\"any\", schema.additionalProperties, options),\n hideLabel: true,\n tableView: true\n }\n };\n}\n\nregisterFormioMapper(\"map\", mapToComponent);\n","import {sentenceCase} from \"change-case\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function nestedToComponent(schema: any, options: any) {\n return {\n ...execMapper(\"default\", schema, options),\n label: false,\n tableView: false,\n type: \"form\",\n display: \"form\",\n input: true,\n components: [\n {\n key: \"panel\",\n label: options.parentKey && sentenceCase(options.parentKey),\n ...execMapper(\"panel\", schema, options)\n }\n ]\n };\n}\n\nregisterFormioMapper(\"nested\", nestedToComponent);\n","import {cleanObject, getValue} from \"@tsed/core\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function numberToComponent(schema: any, options: any) {\n const component = execMapper(\"default\", schema, options);\n\n return cleanObject({\n ...component,\n input: true,\n delimiter: getValue(component, \"delimiter\", false),\n inputFormat: getValue(component, \"inputFormat\", \"plain\"),\n mask: getValue(component, \"mask\", false),\n requireDecimal: false,\n type: \"number\"\n });\n}\n\nregisterFormioMapper(\"number\", numberToComponent);\nregisterFormioMapper(\"integer\", numberToComponent);\n","import {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function objectToEditGrid(schema: any, options: any) {\n return {\n ...execMapper(\"default\", schema, options),\n rowDrafts: false,\n type: \"editgrid\",\n input: true,\n components: execMapper(\"properties\", schema, options)\n };\n}\n\nregisterFormioMapper(\"editgrid\", objectToEditGrid);\n","import {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function panelToComponent(schema: any, options: any) {\n return {\n ...execMapper(\"default\", schema, options),\n collapsible: false,\n input: false,\n tableView: false,\n components: execMapper(\"properties\", schema, options)\n };\n}\n\nregisterFormioMapper(\"panel\", panelToComponent);\n","import {cleanObject, isFunction} from \"@tsed/core\";\nimport {sentenceCase} from \"change-case\";\nimport {FormioComponent, FormioForm} from \"@tsed/formio-types\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nfunction bindResolvers(component: FormioComponent, options: any) {\n if (component.data) {\n const data = component.data;\n\n Object.entries(data).forEach(([key, resolver]) => {\n if (isFunction(resolver)) {\n options.resolvers.push(async (form: FormioForm) => {\n data[key] = await resolver({...options, component, form});\n });\n }\n });\n }\n}\n\nfunction mapValidation(key: string, base: FormioComponent, schema: any, propSchema: any) {\n const required = (schema.required || []).includes(key);\n const validate = {\n ...(base.validate || {}),\n required,\n pattern: propSchema.pattern,\n minLength: !required || (required && propSchema.minLength > 1) ? propSchema.minLength : undefined,\n maxLength: propSchema.maxLength,\n min: propSchema.minimum,\n max: propSchema.maximum\n };\n\n switch (propSchema.type) {\n case \"string\":\n if (propSchema.minLength === 0 && validate.required) {\n validate.minLength = undefined;\n validate.required = false;\n }\n break;\n case \"boolean\":\n validate.required = false;\n break;\n }\n\n return cleanObject(validate);\n}\n\nexport function propertiesToComponents(schema: any, options: any): any[] {\n const tabs = {\n label: \"Tabs\",\n key: \"tabs\",\n type: \"tabs\",\n input: false,\n tableView: false,\n components: new Map<string, any>(),\n pushed: false\n };\n\n const components: any[] = [];\n\n Object.entries(schema.properties).forEach(([key, propSchema]: [string, any]) => {\n const tabsOptions = propSchema[\"x-formiotabs\"];\n const base = execMapper(\"any\", propSchema, {parentKey: key, ...options});\n\n const component = cleanObject({\n key,\n ...base,\n label: base.label == false ? undefined : base.label || propSchema.title || sentenceCase(key),\n validate: mapValidation(key, base, schema, propSchema)\n });\n\n bindResolvers(component, options);\n\n if (tabsOptions) {\n if (!tabs.pushed) {\n components.push(tabs);\n tabs.pushed = true;\n }\n\n if (!tabs.components.has(tabsOptions.key)) {\n tabs.components.set(tabsOptions.key, {\n ...tabsOptions,\n components: []\n });\n }\n\n tabs.components.get(tabsOptions.key).components.push(component);\n } else {\n components.push(component);\n }\n });\n\n if (tabs.components.size) {\n tabs.components = [...tabs.components.values()] as any;\n }\n\n return components;\n}\n\nregisterFormioMapper(\"properties\", propertiesToComponents);\n","import {cleanObject} from \"@tsed/core\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function stringToComponent(schema: any, options: any) {\n if (schema.format) {\n const component = execMapper(\"default\", schema, options);\n switch (schema.format) {\n case \"date\":\n case \"date-time\":\n return execMapper(\"date\", schema, options);\n case \"uri\":\n return cleanObject({\n input: true,\n ...component,\n type: component.type || \"url\"\n });\n default:\n return cleanObject({\n input: true,\n ...component,\n type: component.type || schema.format\n });\n }\n }\n\n if (schema.enum) {\n const component = execMapper(\"enum\", schema, options);\n\n return {\n ...component,\n type: component.type || \"radio\"\n };\n }\n\n const component = execMapper(\"default\", schema, options);\n return cleanObject({\n input: true,\n type: component.type || \"textfield\",\n ...component\n });\n}\n\nregisterFormioMapper(\"string\", stringToComponent);\n","import {JsonEntityFn, JsonEntityStore} from \"@tsed/schema\";\n\n/**\n * Declare a formio Component schema on the decorated propertyKey.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Component(component: Record<string, any>): PropertyDecorator {\n component = Object.entries(component).reduce((component: Record<string, any>, [key, value]) => {\n if (key === \"validate\") {\n component[\"x-formio-validate\"] = {\n ...(component[\"x-formio-validate\"] || {}),\n ...value\n };\n }\n\n return {\n ...component,\n [`x-formio-${key}`]: value\n };\n }, {});\n\n return JsonEntityFn((store: JsonEntityStore) => {\n Object.entries(component).forEach(([key, value]) => {\n store.itemSchema.customKey(key, value);\n\n if (store.isCollection) {\n store.schema.customKey(key, value);\n }\n });\n });\n}\n","import {Component} from \"./component\";\n/**\n * Configure the property as Currency component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Currency(props: Record<string, any> = {}): PropertyDecorator {\n return Component({\n currency: \"USD\",\n inputFormat: \"plain\",\n mask: false,\n spellcheck: true,\n delimiter: true,\n ...props,\n type: \"currency\"\n });\n}\n","import {Component} from \"./component\";\nimport {FormioDataResolver, FormioDataResolverCtx} from \"../domain/FormioDataResolver\";\nimport {isFunction} from \"@tsed/core\";\n\nconst wrap = (resolver: FormioDataResolver) => async (opts: FormioDataResolverCtx) => {\n const result = await resolver(opts);\n return JSON.stringify(result);\n};\n\n/**\n * Set custom json data source\n * @param data\n * @param props\n * @constructor\n */\nexport function DataSourceJson(data: any | FormioDataResolver, props: Record<string, any> = {}) {\n return Component({\n ...props,\n dataSrc: \"json\",\n data: {\n ...props.data,\n json: isFunction(data) ? wrap(data) : JSON.stringify(data)\n }\n });\n}\n","import {Component} from \"./component\";\nimport {FormioDataResolver} from \"../domain/FormioDataResolver\";\n\n/**\n * Set URL data on the current component.\n * @param url\n * @param props\n * @constructor\n */\nexport function DataSourceUrl(url: string | FormioDataResolver, props: Record<string, any> = {}) {\n return Component({\n ...props,\n dataSrc: \"url\",\n data: {\n ...props.data,\n url\n }\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Set hidden field.\n *\n * A hidden field is still a part of the form, but is hidden from view.\n *\n * @param bool\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Hidden(bool: boolean = true): PropertyDecorator {\n return Component({\n hidden: bool\n });\n}\n","import {useDecorators} from \"@tsed/core\";\nimport {CollectionOf} from \"@tsed/schema\";\nimport {Component} from \"./component\";\n/**\n * Configure the property as Tags component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function InputTags(props: Record<string, any> = {}): PropertyDecorator {\n return useDecorators(\n CollectionOf(String),\n Component({\n ...props,\n tableView: false,\n storeas: \"array\",\n type: \"tags\"\n })\n );\n}\n","import {Component} from \"./component\";\n\n/**\n * Change the multiple value on the decorated property.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Multiple(multiple = false): PropertyDecorator {\n return Component({\n multiple\n });\n}\n","import {Component} from \"./component\";\n\nexport interface PasswordOpts extends Record<string, any> {\n showCharCount?: boolean;\n showWordCount?: boolean;\n}\n/**\n * Configure the property as Password component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Password(props: PasswordOpts = {}): PropertyDecorator {\n return Component({\n ...props,\n type: \"password\",\n protected: true\n });\n}\n","import {Component} from \"./component\";\n\nexport interface SelectOpts extends Record<string, any> {\n idPath?: string;\n valueProperty?: string;\n template?: string;\n multiple?: boolean;\n}\n\n/**\n * Configure the property as Select component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Select(props: SelectOpts = {}): PropertyDecorator {\n return Component({\n selectThreshold: 0.3,\n input: true,\n widget: \"choicesjs\",\n ...props,\n type: \"select\"\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Change the visibility of the current property on a table.\n * @param bool\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function TableView(bool: boolean): PropertyDecorator {\n return Component({\n tableView: bool\n });\n}\n","import {Component} from \"./component\";\n\nexport interface TextareaOpts extends Record<string, any> {\n showCharCount?: boolean;\n showWordCount?: boolean;\n}\n\n/**\n * Configure the property as Textarea component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Textarea(props: TextareaOpts = {}): PropertyDecorator {\n return Component({\n autoExpand: false,\n ...props,\n type: \"textarea\"\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Add validation rules.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param key\n * @param value\n */\nexport function Validate(key: string, value: any) {\n return Component({\n validate: {\n [key]: value\n }\n });\n}\n","import {Validate} from \"./validate\";\n\n/**\n * Add error message when an error occur.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param message\n */\nexport function ErrorMessage(message: string) {\n return Validate(\"customMessage\", message);\n}\n","import {Component} from \"./component\";\n\n/**\n * Set the error label when an error occur.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function ErrorLabel(message: string) {\n return Component({\n errorLabel: message\n });\n}\n","import {Validate} from \"./validate\";\n\n/**\n * Add the maximum amount of words that can be added to this field.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param value\n */\nexport function MinWords(value: number) {\n return Validate(\"minWords\", value);\n}\n","import {Validate} from \"./validate\";\n\n/**\n * Add the minimum amount of words that can be added to this field.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param value\n */\nexport function MaxWords(value: number) {\n return Validate(\"maxWords\", value);\n}\n","import {Type} from \"@tsed/core\";\n\n// tslint:disable-next-line:variable-name\nexport const FormsContainer: Map<string, Type> = new Map();\n","import {nameOf, StoreSet, useDecorators} from \"@tsed/core\";\nimport {Name} from \"@tsed/schema\";\nimport {FormioForm} from \"@tsed/formio-types\";\nimport {paramCase} from \"change-case\";\nimport {FormsContainer} from \"../registries/FormsContainer\";\n\n/**\n * Expose the model as Formio Form.\n * @param form\n */\nexport function Form(form: Partial<Omit<FormioForm, \"components\" | \"_id\">> = {}): ClassDecorator {\n return useDecorators(\n (target: any) => {\n const name = form.name || nameOf(target);\n const machineName = paramCase(name);\n FormsContainer.set(name, target as any);\n FormsContainer.set(machineName, target as any);\n },\n form.name && Name(form.name),\n form && StoreSet(\"formio:form\", form)\n );\n}\n","import {JsonEntityFn, JsonEntityStore} from \"@tsed/schema\";\nimport {camelCase} from \"change-case\";\n\n/**\n * Group the current property in tabs components.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Tabs(label: string) {\n return JsonEntityFn((store: JsonEntityStore) => {\n store.schema.customKey(\"x-formiotabs\", {\n key: camelCase(label),\n label\n });\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * The placeholder text that will appear when this field is empty.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param placeholder\n */\nexport function Placeholder(placeholder: string) {\n return Component({\n placeholder\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Adds a tooltip to the side of this field.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param tooltip\n */\nexport function Tooltip(tooltip: string) {\n return Component({\n tooltip\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Change the label field\n * @decorator\n * @formio\n * @property\n * @schema\n * @param label\n */\nexport function Label(label: string) {\n return Component({\n label\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Add a custom css class.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function CustomClass(customClass: string) {\n return Component({\n customClass\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Opens up a modal to edit the value of this component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function ModalEdit(modalEdit = true) {\n return Component({\n modalEdit\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * An input mask helps the user with input by ensuring a predefined format.\n *\n * - 9: numeric\n * - a: alphabetical\n * - *: alphanumeric\n *\n * Example telephone mask: (999) 999-9999\n *\n * See the [jquery.inputmask](https://github.com/RobinHerbots/Inputmask) documentation for more information.\n *\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Mask(inputMask: string, inputMaskPlaceholderChar: string = \"\") {\n return Component({\n inputMask,\n inputMaskPlaceholderChar\n });\n}\n\n/**\n * An input mask helps the user with input by ensuring a predefined format.\n *\n * - 9: numeric\n * - a: alphabetical\n * - *: alphanumeric\n *\n * Example telephone mask: (999) 999-9999\n *\n * See the [jquery.inputmask](https://github.com/RobinHerbots/Inputmask) documentation for more information.\n *\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Masks(...inputMasks: {label: string; mask: string}[]) {\n return Component({\n inputMasks\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Add prefix word on the decorated field.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Prefix(prefix: string) {\n return Component({\n prefix\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Add suffix word on the decorated field.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Suffix(suffix: string) {\n return Component({\n suffix\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Force the output of this field to be sanitized in a specific format.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param textCase\n */\nexport function TextCase(textCase: \"uppercase\" | \"lowercase\") {\n return Component({\n case: textCase\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Adds a conditional display rule on the input form.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param conditional\n */\nexport function Conditional(conditional: {show: boolean; when: string; eq: any}) {\n return Component({\n conditional\n });\n}\n\n/**\n * Adds a conditional display rule on the input form.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param property\n * @param eq\n */\nexport function ShowWhen(property: string, eq: any) {\n return Conditional({\n show: true,\n when: property,\n eq\n });\n}\n\n/**\n * Adds a conditional display rule on the input form.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param property\n * @param eq\n */\nexport function HideWhen(property: string, eq: any) {\n return Conditional({\n show: false,\n when: property,\n eq\n });\n}\n","import {FormioComponent, FormioForm, FormioSubmission} from \"@tsed/formio-types\";\nimport type {Moment} from \"moment\";\nimport type {LoDashStatic} from \"lodash\";\nimport type {Utils} from \"formiojs\";\nimport {Component} from \"./component\";\nimport {isArrowFn} from \"@tsed/core\";\n\nexport interface CustomConditionalCtx<Value = any, Data = any, Row = any> {\n /**\n * The complete submission object.\n */\n form: FormioForm;\n /**\n * The complete submission object.\n */\n submission: FormioSubmission<Data>;\n /**\n * The complete submission data object.\n */\n data: Data;\n /**\n * Contextual \"row\" data, used within DataGrid, EditGrid, and Container components\n */\n row: Row;\n /**\n * The current component JSON\n */\n component: FormioComponent;\n /**\n * The current component instance.\n */\n instance: any;\n /**\n * The current value of the component.\n */\n value: Value;\n /**\n * The moment.js library for date manipulation.\n */\n moment: Moment;\n /**\n * An instance of Lodash.\n */\n _: LoDashStatic;\n /**\n * An instance of the FormioUtils object.\n */\n utils: typeof Utils;\n /**\n * An alias for \"utils\".\n */\n util: typeof Utils;\n}\n\nfunction sanitize(customConditional: Function) {\n const str = customConditional.toString();\n\n const [signature, ...fn] = str.split(\"=>\");\n let content = fn.join(\"=>\");\n\n if (!signature.includes(\"{\")) {\n const reg = `${signature.trim()}\\.`;\n\n content = content.replace(new RegExp(reg, \"gi\"), \"\");\n }\n\n return `show = ${content.trim()}`;\n}\n\n/**\n * Adds custom conditional rule to display or not the input form.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param customConditional\n */\nexport function CustomConditional(customConditional: string | ((ctx: CustomConditionalCtx) => any)) {\n if (isArrowFn(customConditional)) {\n customConditional = sanitize(customConditional);\n }\n\n return Component({\n customConditional\n });\n}\n","import {isString, Type} from \"@tsed/core\";\nimport {getJsonSchema, JsonEntityStore, JsonSchemaOptions} from \"@tsed/schema\";\nimport {FormioForm} from \"@tsed/formio-types\";\nimport {execMapper} from \"../registries/FormioMappersContainer\";\nimport \"../components\";\nimport {FormsContainer} from \"../registries/FormsContainer\";\nimport {paramCase} from \"change-case\";\n\nexport async function getFormioSchema(\n model: string | any | undefined,\n options: JsonSchemaOptions = {}\n): Promise<Omit<FormioForm, \"components\" | \"_id\" | \"deleted\" | \"owner\"> | undefined> {\n if (!model) {\n return undefined;\n }\n\n if (isString(model)) {\n return getFormioSchema(FormsContainer.get(model) as Type<any>, options);\n }\n\n const entity = JsonEntityStore.from(model);\n const schema = getJsonSchema(entity, {\n ...options,\n customKeys: true\n });\n\n const name = entity.schema.getName();\n const machineName = paramCase(name);\n const resolvers: Promise<any>[] = [];\n const components = execMapper(\"properties\", schema, {...options, definitions: schema.definitions, resolvers});\n const form = {\n title: name,\n type: \"form\",\n display: \"form\",\n tags: [],\n access: [],\n submissionAccess: [],\n ...entity.store.get<any>(\"formio:form\", {}),\n name: machineName,\n machineName,\n components\n };\n\n await Promise.all(resolvers.map((resolver: any) => resolver(form, options)));\n\n return (form as unknown) as FormioForm;\n}\n"],"names":["FormioMappersContainer","Map","registerFormioMapper","type","mapper","set","getFormioMapper","has","Error","get","execMapper","schema","options","getRef","$ref","getValue","replace","anyToComponent","additionalProperties","arrayToComponent","itemSchema","items","enum","component","inline","cleanObject","multiple","undefined","booleanToComponent","input","dateToComponent","base","enableMinDateInput","datePicker","disableWeekends","disableWeekdays","enableMaxDateInput","enableTime","widget","displayInTimezone","locale","useLocaleSettings","allowInput","mode","noCalendar","hourIncrement","minuteIncrement","minDate","maxDate","format","timePicker","showMeridian","time_24hr","getFormioProps","formioProps","Object","entries","reduce","props","key","value","startsWith","defaultToComponent","disabled","readOnly","description","defaultValue","default","enumToComponent","values","map","label","sentenceCase","data","json","JSON","stringify","dataSrc","idPath","valueProperty","template","shortcut","mapToComponent","tableView","valueComponent","hideLabel","nestedToComponent","display","components","parentKey","numberToComponent","delimiter","inputFormat","mask","requireDecimal","objectToEditGrid","rowDrafts","panelToComponent","collapsible","bindResolvers","forEach","resolver","isFunction","resolvers","push","form","mapValidation","propSchema","required","includes","validate","pattern","minLength","maxLength","min","minimum","max","maximum","propertiesToComponents","tabs","pushed","properties","tabsOptions","title","size","stringToComponent","Component","JsonEntityFn","store","customKey","isCollection","Currency","currency","spellcheck","wrap","opts","result","DataSourceJson","DataSourceUrl","url","Hidden","bool","hidden","InputTags","useDecorators","CollectionOf","String","storeas","Multiple","Password","protected","Select","selectThreshold","TableView","Textarea","autoExpand","Validate","ErrorMessage","message","ErrorLabel","errorLabel","MinWords","MaxWords","FormsContainer","Form","target","name","nameOf","machineName","paramCase","Name","StoreSet","Tabs","camelCase","Placeholder","placeholder","Tooltip","tooltip","Label","CustomClass","customClass","ModalEdit","modalEdit","Mask","inputMask","inputMaskPlaceholderChar","Masks","inputMasks","Prefix","prefix","Suffix","suffix","TextCase","textCase","case","Conditional","conditional","ShowWhen","property","eq","show","when","HideWhen","sanitize","customConditional","str","toString","signature","fn","split","content","join","reg","trim","RegExp","CustomConditional","isArrowFn","getFormioSchema","model","isString","entity","JsonEntityStore","from","getJsonSchema","customKeys","getName","definitions","tags","access","submissionAccess","Promise","all"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/registries/FormioMappersContainer.ts","../src/utils/getRef.ts","../src/components/anyToComponent.ts","../src/components/arrayToComponent.ts","../src/components/booleanToComponent.ts","../src/components/dateToComponent.ts","../src/utils/getFormioProps.ts","../src/components/defaultToComponent.ts","../src/components/enumToComponent.ts","../src/components/mapToComponent.ts","../src/components/nestedToComponent.ts","../src/components/numberToComponent.ts","../src/components/objectToEditGrid.ts","../src/components/panelToComponent.ts","../src/components/propertiesToComponents.ts","../src/components/stringToComponent.ts","../src/decorators/component.ts","../src/decorators/currency.ts","../src/decorators/dataSourceJson.ts","../src/decorators/dataSourceUrl.ts","../src/decorators/hidden.ts","../src/decorators/inputTags.ts","../src/decorators/multiple.ts","../src/decorators/password.ts","../src/decorators/select.ts","../src/decorators/tableView.ts","../src/decorators/textarea.ts","../src/decorators/validate.ts","../src/decorators/errorMessage.ts","../src/decorators/errorLabel.ts","../src/decorators/minWords.ts","../src/decorators/maxWords.ts","../src/registries/FormsContainer.ts","../src/decorators/form.ts","../src/decorators/tabs.ts","../src/decorators/placeholder.ts","../src/decorators/tooltip.ts","../src/decorators/label.ts","../src/decorators/customClass.ts","../src/decorators/modalEdit.ts","../src/decorators/mask.ts","../src/decorators/prefix.ts","../src/decorators/suffix.ts","../src/decorators/textCase.ts","../src/decorators/conditional.ts","../src/decorators/customConditional.ts","../src/decorators/openWhenEmpty.ts","../src/utils/getFormioSchema.ts"],"sourcesContent":["export interface FormioMapper {\n (schema: any, options: any): any;\n}\n\nconst FormioMappersContainer: Map<string, FormioMapper> = new Map();\n\nexport function registerFormioMapper(type: string, mapper: FormioMapper) {\n return FormioMappersContainer.set(type, mapper);\n}\n\nexport function getFormioMapper(type: string): FormioMapper {\n // istanbul ignore next\n if (!FormioMappersContainer.has(type)) {\n throw new Error(`Formio ${type} mapper doesn't exists`);\n }\n return FormioMappersContainer.get(type)!;\n}\n\nexport function execMapper(type: string, schema: any, options: any): any {\n return getFormioMapper(type)(schema, options);\n}\n","import {getValue} from \"@tsed/core\";\n\nexport function getRef(schema: any, options: any) {\n if (schema.$ref) {\n return getValue(options, schema.$ref.replace(\"#/\", \"\").replace(/\\//g, \".\"));\n }\n return schema;\n}\n","import {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\nimport {getRef} from \"../utils/getRef\";\n\nexport function anyToComponent(schema: any, options: any) {\n schema = getRef(schema, options);\n\n switch (schema.type) {\n case \"object\":\n if (!schema.properties && !schema.$ref) {\n return execMapper(\"map\", schema, options);\n }\n\n return execMapper(\"nested\", schema, options);\n case \"array\":\n return execMapper(\"array\", schema, options);\n case \"string\":\n return execMapper(\"string\", schema, options);\n case \"boolean\":\n return execMapper(\"boolean\", schema, options);\n case \"integer\":\n case \"number\":\n return execMapper(\"number\", schema, options);\n // default:\n // return execMapper(\"default\", schema, options);\n }\n}\n\nregisterFormioMapper(\"any\", anyToComponent);\n","import {cleanObject} from \"@tsed/core\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\nimport {getRef} from \"../utils/getRef\";\n\nexport function arrayToComponent(schema: any, options: any) {\n const itemSchema = schema.items.$ref ? getRef(schema.items, options) : schema.items;\n\n const {type} = itemSchema;\n\n switch (type) {\n case \"object\": // editgrid\n return {\n ...execMapper(\"default\", schema, options),\n ...execMapper(\"editgrid\", itemSchema, options)\n };\n case \"string\": // tag or enum?\n if (itemSchema.enum) {\n const component = execMapper(\"enum\", itemSchema, options);\n\n return {\n ...component,\n inline: false,\n type: \"selectboxes\"\n };\n }\n\n const component = execMapper(type, itemSchema, options);\n\n return cleanObject({\n ...component,\n multiple: component.type === \"tags\" ? undefined : true\n });\n default:\n case \"number\":\n return {\n ...execMapper(type, itemSchema, options),\n multiple: true\n };\n }\n}\n\nregisterFormioMapper(\"array\", arrayToComponent);\n","import {cleanObject} from \"@tsed/core\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nfunction booleanToComponent(schema: any, options: any) {\n const component = execMapper(\"default\", schema, options);\n\n return cleanObject({\n ...component,\n input: true,\n type: component.type || \"checkbox\"\n });\n}\n\nregisterFormioMapper(\"boolean\", booleanToComponent);\n","import {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nfunction dateToComponent(schema: any, options: any) {\n const component = execMapper(\"default\", schema, options);\n\n const base = {\n ...component,\n enableMinDateInput: false,\n datePicker: {\n disableWeekends: false,\n disableWeekdays: false\n },\n enableMaxDateInput: false,\n enableTime: false,\n type: \"datetime\",\n input: true,\n widget: {\n type: \"calendar\",\n displayInTimezone: \"viewer\",\n locale: \"en\",\n useLocaleSettings: false,\n allowInput: true,\n mode: \"single\",\n noCalendar: false,\n hourIncrement: 1,\n minuteIncrement: 1,\n minDate: null,\n disableWeekends: false,\n disableWeekdays: false,\n maxDate: null\n }\n };\n\n if (schema.format === \"date\") {\n return {\n ...base,\n format: \"yyyy-MM-dd\",\n enableTime: false,\n widget: {\n ...base.widget,\n enableTime: false,\n format: \"yyyy-MM-dd\"\n }\n };\n }\n\n return {\n ...base,\n timePicker: {\n showMeridian: false\n },\n widget: {\n enableTime: true,\n time_24hr: true\n }\n };\n}\n\nregisterFormioMapper(\"date\", dateToComponent);\n","export function getFormioProps(schema: any) {\n const formioProps: any = Object.entries(schema).reduce((props, [key, value]) => {\n if (key.startsWith(\"x-formio-\")) {\n return {\n ...props,\n [key.replace(\"x-formio-\", \"\")]: value\n };\n }\n return props;\n }, {});\n return formioProps;\n}\n","import {cleanObject} from \"@tsed/core\";\nimport {registerFormioMapper} from \"../registries/FormioMappersContainer\";\nimport {getFormioProps} from \"../utils/getFormioProps\";\n\nexport function defaultToComponent(schema: any, options: any): any {\n const formioProps = getFormioProps(schema);\n\n return cleanObject({\n ...formioProps,\n disabled: !!schema.readOnly,\n description: schema.description,\n defaultValue: schema.default\n });\n}\n\nregisterFormioMapper(\"default\", defaultToComponent);\n","import {cleanObject} from \"@tsed/core\";\nimport {sentenceCase} from \"change-case\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function enumToComponent(schema: any, options: any) {\n const component = execMapper(\"default\", schema, options);\n const values = schema.enum.map((value: any) => {\n return {\n label: sentenceCase(value),\n value\n };\n });\n\n if (component.type === \"select\") {\n return cleanObject({\n ...component,\n data: {\n json: JSON.stringify(values)\n },\n dataSrc: \"json\",\n idPath: \"value\",\n valueProperty: \"value\",\n template: \"<span>{{ item.label }}</span>\"\n });\n }\n\n return cleanObject({\n ...component,\n values: schema[\"x-values\"] || values.map((value: any) => ({...value, shortcut: \"\"}))\n });\n}\n\nregisterFormioMapper(\"enum\", enumToComponent);\n","import {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function mapToComponent(schema: any, options: any) {\n return {\n ...execMapper(\"default\", schema, options),\n type: \"datamap\",\n tableView: false,\n input: true,\n valueComponent: {\n ...(schema.additionalProperties ? execMapper(\"any\", schema.additionalProperties, options) : {}),\n hideLabel: true,\n tableView: true\n }\n };\n}\n\nregisterFormioMapper(\"map\", mapToComponent);\n","import {sentenceCase} from \"change-case\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function nestedToComponent(schema: any, options: any) {\n return {\n ...execMapper(\"default\", schema, options),\n label: false,\n tableView: false,\n type: \"form\",\n display: \"form\",\n input: true,\n components: [\n {\n key: \"panel\",\n label: options.parentKey && sentenceCase(options.parentKey),\n ...execMapper(\"panel\", schema, options)\n }\n ]\n };\n}\n\nregisterFormioMapper(\"nested\", nestedToComponent);\n","import {cleanObject, getValue} from \"@tsed/core\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function numberToComponent(schema: any, options: any) {\n const component = execMapper(\"default\", schema, options);\n\n return cleanObject({\n ...component,\n input: true,\n delimiter: getValue(component, \"delimiter\", false),\n inputFormat: getValue(component, \"inputFormat\", \"plain\"),\n mask: getValue(component, \"mask\", false),\n requireDecimal: false,\n type: \"number\"\n });\n}\n\nregisterFormioMapper(\"number\", numberToComponent);\nregisterFormioMapper(\"integer\", numberToComponent);\n","import {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function objectToEditGrid(schema: any, options: any) {\n return {\n ...execMapper(\"default\", schema, options),\n rowDrafts: false,\n type: \"editgrid\",\n input: true,\n components: execMapper(\"properties\", schema, options)\n };\n}\n\nregisterFormioMapper(\"editgrid\", objectToEditGrid);\n","import {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function panelToComponent(schema: any, options: any) {\n return {\n ...execMapper(\"default\", schema, options),\n collapsible: false,\n input: false,\n tableView: false,\n components: execMapper(\"properties\", schema, options)\n };\n}\n\nregisterFormioMapper(\"panel\", panelToComponent);\n","import {cleanObject, isFunction} from \"@tsed/core\";\nimport {sentenceCase} from \"change-case\";\nimport {FormioComponent, FormioForm} from \"@tsed/formio-types\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nfunction bindResolvers(component: FormioComponent, options: any) {\n if (component.data) {\n const data = component.data;\n\n Object.entries(data).forEach(([key, resolver]) => {\n if (isFunction(resolver)) {\n options.resolvers.push(async (form: FormioForm) => {\n data[key] = await resolver({...options, component, form});\n });\n }\n });\n }\n}\n\nfunction mapValidation(key: string, base: FormioComponent, schema: any, propSchema: any) {\n const required = (schema.required || []).includes(key);\n const validate = {\n ...(base.validate || {}),\n required,\n pattern: propSchema.pattern,\n minLength: !required || (required && propSchema.minLength > 1) ? propSchema.minLength : undefined,\n maxLength: propSchema.maxLength,\n min: propSchema.minimum,\n max: propSchema.maximum\n };\n\n switch (propSchema.type) {\n case \"string\":\n if (propSchema.minLength === 0 && validate.required) {\n validate.minLength = undefined;\n validate.required = false;\n }\n break;\n case \"boolean\":\n validate.required = false;\n break;\n }\n\n return cleanObject(validate);\n}\n\nexport function propertiesToComponents(schema: any, options: any): any[] {\n const tabs = {\n label: \"Tabs\",\n key: \"tabs\",\n type: \"tabs\",\n input: false,\n tableView: false,\n components: new Map<string, any>(),\n pushed: false\n };\n const components: any[] = [];\n\n Object.entries(schema.properties).forEach(([key, propSchema]: [string, any]) => {\n const tabsOptions = propSchema[\"x-formiotabs\"];\n const base = execMapper(\"any\", propSchema, {parentKey: key, ...options});\n\n const component = cleanObject({\n key,\n ...base,\n label: base.label == false ? undefined : base.label || propSchema.title || sentenceCase(key),\n validate: mapValidation(key, base, schema, propSchema)\n });\n\n bindResolvers(component, options);\n\n if (tabsOptions) {\n if (!tabs.pushed) {\n components.push(tabs);\n tabs.pushed = true;\n }\n\n if (!tabs.components.has(tabsOptions.key)) {\n tabs.components.set(tabsOptions.key, {\n ...tabsOptions,\n components: []\n });\n }\n\n tabs.components.get(tabsOptions.key).components.push(component);\n } else {\n components.push(component);\n }\n });\n\n if (tabs.components.size) {\n tabs.components = [...tabs.components.values()] as any;\n }\n\n return components;\n}\n\nregisterFormioMapper(\"properties\", propertiesToComponents);\n","import {cleanObject} from \"@tsed/core\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function stringToComponent(schema: any, options: any) {\n if (schema.format) {\n const component = execMapper(\"default\", schema, options);\n switch (schema.format) {\n case \"date\":\n case \"date-time\":\n return execMapper(\"date\", schema, options);\n case \"uri\":\n return cleanObject({\n input: true,\n ...component,\n type: component.type || \"url\"\n });\n default:\n return cleanObject({\n input: true,\n ...component,\n type: component.type || schema.format\n });\n }\n }\n\n if (schema.enum) {\n const component = execMapper(\"enum\", schema, options);\n\n return {\n ...component,\n type: component.type || \"radio\"\n };\n }\n\n const component = execMapper(\"default\", schema, options);\n return cleanObject({\n input: true,\n type: component.type || \"textfield\",\n ...component\n });\n}\n\nregisterFormioMapper(\"string\", stringToComponent);\n","import {JsonEntityFn, JsonEntityStore} from \"@tsed/schema\";\n\n/**\n * Declare a formio Component schema on the decorated propertyKey.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Component(component: Record<string, any>): PropertyDecorator {\n component = Object.entries(component).reduce((component: Record<string, any>, [key, value]) => {\n if (key === \"validate\") {\n component[\"x-formio-validate\"] = {\n ...(component[\"x-formio-validate\"] || {}),\n ...value\n };\n }\n\n return {\n ...component,\n [`x-formio-${key}`]: value\n };\n }, {});\n\n return JsonEntityFn((store: JsonEntityStore) => {\n Object.entries(component).forEach(([key, value]) => {\n store.itemSchema.customKey(key, value);\n\n if (store.isCollection) {\n store.schema.customKey(key, value);\n }\n });\n });\n}\n","import {Component} from \"./component\";\n/**\n * Configure the property as Currency component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Currency(props: Record<string, any> = {}): PropertyDecorator {\n return Component({\n currency: \"USD\",\n inputFormat: \"plain\",\n mask: false,\n spellcheck: true,\n delimiter: true,\n ...props,\n type: \"currency\"\n });\n}\n","import {Component} from \"./component\";\nimport {FormioDataResolver, FormioDataResolverCtx} from \"../domain/FormioDataResolver\";\nimport {isFunction} from \"@tsed/core\";\n\nconst wrap = (resolver: FormioDataResolver) => async (opts: FormioDataResolverCtx) => {\n const result = await resolver(opts);\n return JSON.stringify(result);\n};\n\n/**\n * Set custom json data source\n * @param data\n * @param props\n * @constructor\n */\nexport function DataSourceJson(data: any | FormioDataResolver, props: Record<string, any> = {}) {\n return Component({\n ...props,\n dataSrc: \"json\",\n data: {\n ...props.data,\n json: isFunction(data) ? wrap(data) : JSON.stringify(data)\n }\n });\n}\n","import {Component} from \"./component\";\nimport {FormioDataResolver} from \"../domain/FormioDataResolver\";\n\n/**\n * Set URL data on the current component.\n * @param url\n * @param props\n * @constructor\n */\nexport function DataSourceUrl(url: string | FormioDataResolver, props: Record<string, any> = {}) {\n return Component({\n ...props,\n dataSrc: \"url\",\n data: {\n ...props.data,\n url\n }\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Set hidden field.\n *\n * A hidden field is still a part of the form, but is hidden from view.\n *\n * @param bool\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Hidden(bool: boolean = true): PropertyDecorator {\n return Component({\n hidden: bool\n });\n}\n","import {useDecorators} from \"@tsed/core\";\nimport {CollectionOf} from \"@tsed/schema\";\nimport {Component} from \"./component\";\n/**\n * Configure the property as Tags component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function InputTags(props: Record<string, any> = {}): PropertyDecorator {\n return useDecorators(\n CollectionOf(String),\n Component({\n ...props,\n tableView: false,\n storeas: \"array\",\n type: \"tags\"\n })\n );\n}\n","import {Component} from \"./component\";\n\n/**\n * Change the multiple value on the decorated property.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Multiple(multiple = false): PropertyDecorator {\n return Component({\n multiple\n });\n}\n","import {Component} from \"./component\";\n\nexport interface PasswordOpts extends Record<string, any> {\n showCharCount?: boolean;\n showWordCount?: boolean;\n}\n/**\n * Configure the property as Password component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Password(props: PasswordOpts = {}): PropertyDecorator {\n return Component({\n ...props,\n type: \"password\",\n protected: true\n });\n}\n","import {Component} from \"./component\";\n\nexport interface SelectOpts extends Record<string, any> {\n idPath?: string;\n valueProperty?: string;\n template?: string;\n multiple?: boolean;\n}\n\n/**\n * Configure the property as Select component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Select(props: SelectOpts = {}): PropertyDecorator {\n return Component({\n selectThreshold: 0.3,\n input: true,\n widget: \"choicesjs\",\n ...props,\n type: \"select\"\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Change the visibility of the current property on a table.\n * @param bool\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function TableView(bool: boolean): PropertyDecorator {\n return Component({\n tableView: bool\n });\n}\n","import {Component} from \"./component\";\n\nexport interface TextareaOpts extends Record<string, any> {\n showCharCount?: boolean;\n showWordCount?: boolean;\n}\n\n/**\n * Configure the property as Textarea component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Textarea(props: TextareaOpts = {}): PropertyDecorator {\n return Component({\n autoExpand: false,\n ...props,\n type: \"textarea\"\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Add validation rules.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param key\n * @param value\n */\nexport function Validate(key: string, value: any) {\n return Component({\n validate: {\n [key]: value\n }\n });\n}\n","import {Validate} from \"./validate\";\n\n/**\n * Add error message when an error occur.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param message\n */\nexport function ErrorMessage(message: string) {\n return Validate(\"customMessage\", message);\n}\n","import {Component} from \"./component\";\n\n/**\n * Set the error label when an error occur.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function ErrorLabel(message: string) {\n return Component({\n errorLabel: message\n });\n}\n","import {Validate} from \"./validate\";\n\n/**\n * Add the maximum amount of words that can be added to this field.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param value\n */\nexport function MinWords(value: number) {\n return Validate(\"minWords\", value);\n}\n","import {Validate} from \"./validate\";\n\n/**\n * Add the minimum amount of words that can be added to this field.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param value\n */\nexport function MaxWords(value: number) {\n return Validate(\"maxWords\", value);\n}\n","import {Type} from \"@tsed/core\";\n\n// tslint:disable-next-line:variable-name\nexport const FormsContainer: Map<string, Type> = new Map();\n","import {nameOf, StoreSet, useDecorators} from \"@tsed/core\";\nimport {Name} from \"@tsed/schema\";\nimport {FormioForm} from \"@tsed/formio-types\";\nimport {paramCase} from \"change-case\";\nimport {FormsContainer} from \"../registries/FormsContainer\";\n\n/**\n * Expose the model as Formio Form.\n * @param form\n */\nexport function Form(form: Partial<Omit<FormioForm, \"components\" | \"_id\">> = {}): ClassDecorator {\n return useDecorators(\n (target: any) => {\n const name = form.name || nameOf(target);\n const machineName = paramCase(name);\n FormsContainer.set(name, target as any);\n FormsContainer.set(machineName, target as any);\n },\n form.name && Name(form.name),\n form && StoreSet(\"formio:form\", form)\n );\n}\n","import {JsonEntityFn, JsonEntityStore} from \"@tsed/schema\";\nimport {camelCase} from \"change-case\";\n\n/**\n * Group the current property in tabs components.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Tabs(label: string) {\n return JsonEntityFn((store: JsonEntityStore) => {\n store.schema.customKey(\"x-formiotabs\", {\n key: camelCase(label),\n label\n });\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * The placeholder text that will appear when this field is empty.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param placeholder\n */\nexport function Placeholder(placeholder: string) {\n return Component({\n placeholder\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Adds a tooltip to the side of this field.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param tooltip\n */\nexport function Tooltip(tooltip: string) {\n return Component({\n tooltip\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Change the label field\n * @decorator\n * @formio\n * @property\n * @schema\n * @param label\n */\nexport function Label(label: string) {\n return Component({\n label\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Add a custom css class.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function CustomClass(customClass: string) {\n return Component({\n customClass\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Opens up a modal to edit the value of this component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function ModalEdit(modalEdit = true) {\n return Component({\n modalEdit\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * An input mask helps the user with input by ensuring a predefined format.\n *\n * - 9: numeric\n * - a: alphabetical\n * - *: alphanumeric\n *\n * Example telephone mask: (999) 999-9999\n *\n * See the [jquery.inputmask](https://github.com/RobinHerbots/Inputmask) documentation for more information.\n *\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Mask(inputMask: string, inputMaskPlaceholderChar: string = \"\") {\n return Component({\n inputMask,\n inputMaskPlaceholderChar\n });\n}\n\n/**\n * An input mask helps the user with input by ensuring a predefined format.\n *\n * - 9: numeric\n * - a: alphabetical\n * - *: alphanumeric\n *\n * Example telephone mask: (999) 999-9999\n *\n * See the [jquery.inputmask](https://github.com/RobinHerbots/Inputmask) documentation for more information.\n *\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Masks(...inputMasks: {label: string; mask: string}[]) {\n return Component({\n inputMasks\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Add prefix word on the decorated field.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Prefix(prefix: string) {\n return Component({\n prefix\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Add suffix word on the decorated field.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Suffix(suffix: string) {\n return Component({\n suffix\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Force the output of this field to be sanitized in a specific format.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param textCase\n */\nexport function TextCase(textCase: \"uppercase\" | \"lowercase\") {\n return Component({\n case: textCase\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Adds a conditional display rule on the input form.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param conditional\n */\nexport function Conditional(conditional: {show: boolean; when: string; eq: any}) {\n return Component({\n conditional\n });\n}\n\n/**\n * Adds a conditional display rule on the input form.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param property\n * @param eq\n */\nexport function ShowWhen(property: string, eq: any) {\n return Conditional({\n show: true,\n when: property,\n eq\n });\n}\n\n/**\n * Adds a conditional display rule on the input form.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param property\n * @param eq\n */\nexport function HideWhen(property: string, eq: any) {\n return Conditional({\n show: false,\n when: property,\n eq\n });\n}\n","import {FormioComponent, FormioForm, FormioSubmission} from \"@tsed/formio-types\";\nimport type {Moment} from \"moment\";\nimport type {LoDashStatic} from \"lodash\";\nimport type {Utils} from \"formiojs\";\nimport {Component} from \"./component\";\nimport {isArrowFn} from \"@tsed/core\";\n\nexport interface CustomConditionalCtx<Value = any, Data = any, Row = any> {\n /**\n * The complete submission object.\n */\n form: FormioForm;\n /**\n * The complete submission object.\n */\n submission: FormioSubmission<Data>;\n /**\n * The complete submission data object.\n */\n data: Data;\n /**\n * Contextual \"row\" data, used within DataGrid, EditGrid, and Container components\n */\n row: Row;\n /**\n * The current component JSON\n */\n component: FormioComponent;\n /**\n * The current component instance.\n */\n instance: any;\n /**\n * The current value of the component.\n */\n value: Value;\n /**\n * The moment.js library for date manipulation.\n */\n moment: Moment;\n /**\n * An instance of Lodash.\n */\n _: LoDashStatic;\n /**\n * An instance of the FormioUtils object.\n */\n utils: typeof Utils;\n /**\n * An alias for \"utils\".\n */\n util: typeof Utils;\n}\n\nfunction sanitize(customConditional: Function) {\n const str = customConditional.toString();\n\n const [signature, ...fn] = str.split(\"=>\");\n let content = fn.join(\"=>\");\n\n if (!signature.includes(\"{\")) {\n const reg = `${signature.trim()}\\.`;\n\n content = content.replace(new RegExp(reg, \"gi\"), \"\");\n }\n\n return `show = ${content.trim()}`;\n}\n\n/**\n * Adds custom conditional rule to display or not the input form.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param customConditional\n */\nexport function CustomConditional(customConditional: string | ((ctx: CustomConditionalCtx) => any)) {\n if (isArrowFn(customConditional)) {\n customConditional = sanitize(customConditional);\n }\n\n return Component({\n customConditional\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Open automatically the editgrid when the list is empty.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function OpenWhenEmpty(openWhenEmpty = true): PropertyDecorator {\n return Component({\n openWhenEmpty\n });\n}\n","import {isString, Type} from \"@tsed/core\";\nimport {getJsonSchema, JsonEntityStore, JsonSchemaOptions} from \"@tsed/schema\";\nimport {FormioForm} from \"@tsed/formio-types\";\nimport {execMapper} from \"../registries/FormioMappersContainer\";\nimport \"../components\";\nimport {FormsContainer} from \"../registries/FormsContainer\";\nimport {paramCase} from \"change-case\";\n\nexport async function getFormioSchema(\n model: string | any | undefined,\n options: JsonSchemaOptions = {}\n): Promise<Omit<FormioForm, \"components\" | \"_id\" | \"deleted\" | \"owner\"> | undefined> {\n if (!model) {\n return undefined;\n }\n\n if (isString(model)) {\n return getFormioSchema(FormsContainer.get(model) as Type<any>, options);\n }\n\n const entity = JsonEntityStore.from(model);\n const schema = getJsonSchema(entity, {\n ...options,\n customKeys: true\n });\n\n const name = entity.schema.getName();\n const machineName = paramCase(name);\n const resolvers: Promise<any>[] = [];\n const components = execMapper(\"properties\", schema, {...options, definitions: schema.definitions, resolvers});\n const form = {\n title: name,\n type: \"form\",\n display: \"form\",\n tags: [],\n access: [],\n submissionAccess: [],\n ...entity.store.get<any>(\"formio:form\", {}),\n name: machineName,\n machineName,\n components\n };\n\n await Promise.all(resolvers.map((resolver: any) => resolver(form, options)));\n\n return (form as unknown) as FormioForm;\n}\n"],"names":["FormioMappersContainer","Map","registerFormioMapper","type","mapper","set","getFormioMapper","has","Error","get","execMapper","schema","options","getRef","$ref","getValue","replace","anyToComponent","properties","arrayToComponent","itemSchema","items","enum","component","inline","cleanObject","multiple","undefined","booleanToComponent","input","dateToComponent","base","enableMinDateInput","datePicker","disableWeekends","disableWeekdays","enableMaxDateInput","enableTime","widget","displayInTimezone","locale","useLocaleSettings","allowInput","mode","noCalendar","hourIncrement","minuteIncrement","minDate","maxDate","format","timePicker","showMeridian","time_24hr","getFormioProps","formioProps","Object","entries","reduce","props","key","value","startsWith","defaultToComponent","disabled","readOnly","description","defaultValue","default","enumToComponent","values","map","label","sentenceCase","data","json","JSON","stringify","dataSrc","idPath","valueProperty","template","shortcut","mapToComponent","tableView","valueComponent","additionalProperties","hideLabel","nestedToComponent","display","components","parentKey","numberToComponent","delimiter","inputFormat","mask","requireDecimal","objectToEditGrid","rowDrafts","panelToComponent","collapsible","bindResolvers","forEach","resolver","isFunction","resolvers","push","form","mapValidation","propSchema","required","includes","validate","pattern","minLength","maxLength","min","minimum","max","maximum","propertiesToComponents","tabs","pushed","tabsOptions","title","size","stringToComponent","Component","JsonEntityFn","store","customKey","isCollection","Currency","currency","spellcheck","wrap","opts","result","DataSourceJson","DataSourceUrl","url","Hidden","bool","hidden","InputTags","useDecorators","CollectionOf","String","storeas","Multiple","Password","protected","Select","selectThreshold","TableView","Textarea","autoExpand","Validate","ErrorMessage","message","ErrorLabel","errorLabel","MinWords","MaxWords","FormsContainer","Form","target","name","nameOf","machineName","paramCase","Name","StoreSet","Tabs","camelCase","Placeholder","placeholder","Tooltip","tooltip","Label","CustomClass","customClass","ModalEdit","modalEdit","Mask","inputMask","inputMaskPlaceholderChar","Masks","inputMasks","Prefix","prefix","Suffix","suffix","TextCase","textCase","case","Conditional","conditional","ShowWhen","property","eq","show","when","HideWhen","sanitize","customConditional","str","toString","signature","fn","split","content","join","reg","trim","RegExp","CustomConditional","isArrowFn","OpenWhenEmpty","openWhenEmpty","getFormioSchema","model","isString","entity","JsonEntityStore","from","getJsonSchema","customKeys","getName","definitions","tags","access","submissionAccess","Promise","all"],"mappings":";;;;AAIA,MAAMA,sBAAsB,GAA8B,IAAIC,GAAJ,EAA1D;SAEgBC,qBAAqBC,MAAcC;AACjD,SAAOJ,sBAAsB,CAACK,GAAvB,CAA2BF,IAA3B,EAAiCC,MAAjC,CAAP;AACD;SAEeE,gBAAgBH;AAC9B;AACA,MAAI,CAACH,sBAAsB,CAACO,GAAvB,CAA2BJ,IAA3B,CAAL,EAAuC;AACrC,UAAM,IAAIK,KAAJ,WAAoBL,4BAApB,CAAN;AACD;;AACD,SAAOH,sBAAsB,CAACS,GAAvB,CAA2BN,IAA3B,CAAP;AACD;SAEeO,WAAWP,MAAcQ,QAAaC;AACpD,SAAON,eAAe,CAACH,IAAD,CAAf,CAAsBQ,MAAtB,EAA8BC,OAA9B,CAAP;AACD;;SClBeC,OAAOF,QAAaC;AAClC,MAAID,MAAM,CAACG,IAAX,EAAiB;AACf,WAAOC,aAAQ,CAACH,OAAD,EAAUD,MAAM,CAACG,IAAP,CAAYE,OAAZ,CAAoB,IAApB,EAA0B,EAA1B,EAA8BA,OAA9B,CAAsC,KAAtC,EAA6C,GAA7C,CAAV,CAAf;AACD;;AACD,SAAOL,MAAP;AACD;;SCJeM,eAAeN,QAAaC;AAC1CD,EAAAA,MAAM,GAAGE,MAAM,CAACF,MAAD,EAASC,OAAT,CAAf;;AAEA,UAAQD,MAAM,CAACR,IAAf;AACE,SAAK,QAAL;AACE,UAAI,CAACQ,MAAM,CAACO,UAAR,IAAsB,CAACP,MAAM,CAACG,IAAlC,EAAwC;AACtC,eAAOJ,UAAU,CAAC,KAAD,EAAQC,MAAR,EAAgBC,OAAhB,CAAjB;AACD;;AAED,aAAOF,UAAU,CAAC,QAAD,EAAWC,MAAX,EAAmBC,OAAnB,CAAjB;;AACF,SAAK,OAAL;AACE,aAAOF,UAAU,CAAC,OAAD,EAAUC,MAAV,EAAkBC,OAAlB,CAAjB;;AACF,SAAK,QAAL;AACE,aAAOF,UAAU,CAAC,QAAD,EAAWC,MAAX,EAAmBC,OAAnB,CAAjB;;AACF,SAAK,SAAL;AACE,aAAOF,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CAAjB;;AACF,SAAK,SAAL;AACA,SAAK,QAAL;AACE,aAAOF,UAAU,CAAC,QAAD,EAAWC,MAAX,EAAmBC,OAAnB,CAAjB;AACF;AACA;AAjBF;AAmBD;AAEDV,oBAAoB,CAAC,KAAD,EAAQe,cAAR,CAApB;;;;;;;;;;;;;;;;;;;;SCvBgBE,iBAAiBR,QAAaC;AAC5C,QAAMQ,UAAU,GAAGT,MAAM,CAACU,KAAP,CAAaP,IAAb,GAAoBD,MAAM,CAACF,MAAM,CAACU,KAAR,EAAeT,OAAf,CAA1B,GAAoDD,MAAM,CAACU,KAA9E;AAEA,QAAM;AAAClB,IAAAA;AAAD,MAASiB,UAAf;;AAEA,UAAQjB,IAAR;AACE,SAAK,QAAL;AAAe;AACb,0BACKO,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CADf,EAEKF,UAAU,CAAC,UAAD,EAAaU,UAAb,EAAyBR,OAAzB,CAFf;;AAIF,SAAK,QAAL;AAAe;AACb,UAAIQ,UAAU,CAACE,IAAf,EAAqB;AACnB,cAAMC,SAAS,GAAGb,UAAU,CAAC,MAAD,EAASU,UAAT,EAAqBR,OAArB,CAA5B;AAEA,4BACKW,SADL;AAEEC,UAAAA,MAAM,EAAE,KAFV;AAGErB,UAAAA,IAAI,EAAE;AAHR;AAKD;;AAED,YAAMoB,SAAS,GAAGb,UAAU,CAACP,IAAD,EAAOiB,UAAP,EAAmBR,OAAnB,CAA5B;AAEA,aAAOa,gBAAW,cACbF,SADa;AAEhBG,QAAAA,QAAQ,EAAEH,SAAS,CAACpB,IAAV,KAAmB,MAAnB,GAA4BwB,SAA5B,GAAwC;AAFlC,SAAlB;;AAIF;AACA,SAAK,QAAL;AACE,0BACKjB,UAAU,CAACP,IAAD,EAAOiB,UAAP,EAAmBR,OAAnB,CADf;AAEEc,QAAAA,QAAQ,EAAE;AAFZ;AAzBJ;AA8BD;AAEDxB,oBAAoB,CAAC,OAAD,EAAUiB,gBAAV,CAApB;;ACtCA,SAASS,kBAAT,CAA4BjB,MAA5B,EAAyCC,OAAzC;AACE,QAAMW,SAAS,GAAGb,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CAA5B;AAEA,SAAOa,gBAAW,cACbF,SADa;AAEhBM,IAAAA,KAAK,EAAE,IAFS;AAGhB1B,IAAAA,IAAI,EAAEoB,SAAS,CAACpB,IAAV,IAAkB;AAHR,KAAlB;AAKD;;AAEDD,oBAAoB,CAAC,SAAD,EAAY0B,kBAAZ,CAApB;;ACXA,SAASE,eAAT,CAAyBnB,MAAzB,EAAsCC,OAAtC;AACE,QAAMW,SAAS,GAAGb,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CAA5B;;AAEA,QAAMmB,IAAI,gBACLR,SADK;AAERS,IAAAA,kBAAkB,EAAE,KAFZ;AAGRC,IAAAA,UAAU,EAAE;AACVC,MAAAA,eAAe,EAAE,KADP;AAEVC,MAAAA,eAAe,EAAE;AAFP,KAHJ;AAORC,IAAAA,kBAAkB,EAAE,KAPZ;AAQRC,IAAAA,UAAU,EAAE,KARJ;AASRlC,IAAAA,IAAI,EAAE,UATE;AAUR0B,IAAAA,KAAK,EAAE,IAVC;AAWRS,IAAAA,MAAM,EAAE;AACNnC,MAAAA,IAAI,EAAE,UADA;AAENoC,MAAAA,iBAAiB,EAAE,QAFb;AAGNC,MAAAA,MAAM,EAAE,IAHF;AAINC,MAAAA,iBAAiB,EAAE,KAJb;AAKNC,MAAAA,UAAU,EAAE,IALN;AAMNC,MAAAA,IAAI,EAAE,QANA;AAONC,MAAAA,UAAU,EAAE,KAPN;AAQNC,MAAAA,aAAa,EAAE,CART;AASNC,MAAAA,eAAe,EAAE,CATX;AAUNC,MAAAA,OAAO,EAAE,IAVH;AAWNb,MAAAA,eAAe,EAAE,KAXX;AAYNC,MAAAA,eAAe,EAAE,KAZX;AAaNa,MAAAA,OAAO,EAAE;AAbH;AAXA,IAAV;;AA4BA,MAAIrC,MAAM,CAACsC,MAAP,KAAkB,MAAtB,EAA8B;AAC5B,wBACKlB,IADL;AAEEkB,MAAAA,MAAM,EAAE,YAFV;AAGEZ,MAAAA,UAAU,EAAE,KAHd;AAIEC,MAAAA,MAAM,eACDP,IAAI,CAACO,MADJ;AAEJD,QAAAA,UAAU,EAAE,KAFR;AAGJY,QAAAA,MAAM,EAAE;AAHJ;AAJR;AAUD;;AAED,sBACKlB,IADL;AAEEmB,IAAAA,UAAU,EAAE;AACVC,MAAAA,YAAY,EAAE;AADJ,KAFd;AAKEb,IAAAA,MAAM,EAAE;AACND,MAAAA,UAAU,EAAE,IADN;AAENe,MAAAA,SAAS,EAAE;AAFL;AALV;AAUD;;AAEDlD,oBAAoB,CAAC,MAAD,EAAS4B,eAAT,CAApB;;SC1DgBuB,eAAe1C;AAC7B,QAAM2C,WAAW,GAAQC,MAAM,CAACC,OAAP,CAAe7C,MAAf,EAAuB8C,MAAvB,CAA8B,CAACC,KAAD,EAAQ,CAACC,GAAD,EAAMC,KAAN,CAAR;AACrD,QAAID,GAAG,CAACE,UAAJ,CAAe,WAAf,CAAJ,EAAiC;AAC/B,0BACKH,KADL;AAEE,SAACC,GAAG,CAAC3C,OAAJ,CAAY,WAAZ,EAAyB,EAAzB,CAAD,GAAgC4C;AAFlC;AAID;;AACD,WAAOF,KAAP;AACD,GARwB,EAQtB,EARsB,CAAzB;AASA,SAAOJ,WAAP;AACD;;SCPeQ,mBAAmBnD,QAAaC;AAC9C,QAAM0C,WAAW,GAAGD,cAAc,CAAC1C,MAAD,CAAlC;AAEA,SAAOc,gBAAW,cACb6B,WADa;AAEhBS,IAAAA,QAAQ,EAAE,CAAC,CAACpD,MAAM,CAACqD,QAFH;AAGhBC,IAAAA,WAAW,EAAEtD,MAAM,CAACsD,WAHJ;AAIhBC,IAAAA,YAAY,EAAEvD,MAAM,CAACwD;AAJL,KAAlB;AAMD;AAEDjE,oBAAoB,CAAC,SAAD,EAAY4D,kBAAZ,CAApB;;SCXgBM,gBAAgBzD,QAAaC;AAC3C,QAAMW,SAAS,GAAGb,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CAA5B;AACA,QAAMyD,MAAM,GAAG1D,MAAM,CAACW,IAAP,CAAYgD,GAAZ,CAAiBV,KAAD;AAC7B,WAAO;AACLW,MAAAA,KAAK,EAAEC,uBAAY,CAACZ,KAAD,CADd;AAELA,MAAAA;AAFK,KAAP;AAID,GALc,CAAf;;AAOA,MAAIrC,SAAS,CAACpB,IAAV,KAAmB,QAAvB,EAAiC;AAC/B,WAAOsB,gBAAW,cACbF,SADa;AAEhBkD,MAAAA,IAAI,EAAE;AACJC,QAAAA,IAAI,EAAEC,IAAI,CAACC,SAAL,CAAeP,MAAf;AADF,OAFU;AAKhBQ,MAAAA,OAAO,EAAE,MALO;AAMhBC,MAAAA,MAAM,EAAE,OANQ;AAOhBC,MAAAA,aAAa,EAAE,OAPC;AAQhBC,MAAAA,QAAQ,EAAE;AARM,OAAlB;AAUD;;AAED,SAAOvD,gBAAW,cACbF,SADa;AAEhB8C,IAAAA,MAAM,EAAE1D,MAAM,CAAC,UAAD,CAAN,IAAsB0D,MAAM,CAACC,GAAP,CAAYV,KAAD,iBAAqBA,KAArB;AAA4BqB,MAAAA,QAAQ,EAAE;AAAtC,MAAX;AAFd,KAAlB;AAID;AAED/E,oBAAoB,CAAC,MAAD,EAASkE,eAAT,CAApB;;SC9BgBc,eAAevE,QAAaC;AAC1C,sBACKF,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CADf;AAEET,IAAAA,IAAI,EAAE,SAFR;AAGEgF,IAAAA,SAAS,EAAE,KAHb;AAIEtD,IAAAA,KAAK,EAAE,IAJT;AAKEuD,IAAAA,cAAc,eACRzE,MAAM,CAAC0E,oBAAP,GAA8B3E,UAAU,CAAC,KAAD,EAAQC,MAAM,CAAC0E,oBAAf,EAAqCzE,OAArC,CAAxC,GAAwF,EADhF;AAEZ0E,MAAAA,SAAS,EAAE,IAFC;AAGZH,MAAAA,SAAS,EAAE;AAHC;AALhB;AAWD;AAEDjF,oBAAoB,CAAC,KAAD,EAAQgF,cAAR,CAApB;;SCbgBK,kBAAkB5E,QAAaC;AAC7C,sBACKF,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CADf;AAEE2D,IAAAA,KAAK,EAAE,KAFT;AAGEY,IAAAA,SAAS,EAAE,KAHb;AAIEhF,IAAAA,IAAI,EAAE,MAJR;AAKEqF,IAAAA,OAAO,EAAE,MALX;AAME3D,IAAAA,KAAK,EAAE,IANT;AAOE4D,IAAAA,UAAU,EAAE;AAER9B,MAAAA,GAAG,EAAE,OAFG;AAGRY,MAAAA,KAAK,EAAE3D,OAAO,CAAC8E,SAAR,IAAqBlB,uBAAY,CAAC5D,OAAO,CAAC8E,SAAT;AAHhC,OAILhF,UAAU,CAAC,OAAD,EAAUC,MAAV,EAAkBC,OAAlB,CAJL;AAPd;AAeD;AAEDV,oBAAoB,CAAC,QAAD,EAAWqF,iBAAX,CAApB;;SClBgBI,kBAAkBhF,QAAaC;AAC7C,QAAMW,SAAS,GAAGb,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CAA5B;AAEA,SAAOa,gBAAW,cACbF,SADa;AAEhBM,IAAAA,KAAK,EAAE,IAFS;AAGhB+D,IAAAA,SAAS,EAAE7E,aAAQ,CAACQ,SAAD,EAAY,WAAZ,EAAyB,KAAzB,CAHH;AAIhBsE,IAAAA,WAAW,EAAE9E,aAAQ,CAACQ,SAAD,EAAY,aAAZ,EAA2B,OAA3B,CAJL;AAKhBuE,IAAAA,IAAI,EAAE/E,aAAQ,CAACQ,SAAD,EAAY,MAAZ,EAAoB,KAApB,CALE;AAMhBwE,IAAAA,cAAc,EAAE,KANA;AAOhB5F,IAAAA,IAAI,EAAE;AAPU,KAAlB;AASD;AAEDD,oBAAoB,CAAC,QAAD,EAAWyF,iBAAX,CAApB;AACAzF,oBAAoB,CAAC,SAAD,EAAYyF,iBAAZ,CAApB;;SChBgBK,iBAAiBrF,QAAaC;AAC5C,sBACKF,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CADf;AAEEqF,IAAAA,SAAS,EAAE,KAFb;AAGE9F,IAAAA,IAAI,EAAE,UAHR;AAIE0B,IAAAA,KAAK,EAAE,IAJT;AAKE4D,IAAAA,UAAU,EAAE/E,UAAU,CAAC,YAAD,EAAeC,MAAf,EAAuBC,OAAvB;AALxB;AAOD;AAEDV,oBAAoB,CAAC,UAAD,EAAa8F,gBAAb,CAApB;;SCVgBE,iBAAiBvF,QAAaC;AAC5C,sBACKF,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CADf;AAEEuF,IAAAA,WAAW,EAAE,KAFf;AAGEtE,IAAAA,KAAK,EAAE,KAHT;AAIEsD,IAAAA,SAAS,EAAE,KAJb;AAKEM,IAAAA,UAAU,EAAE/E,UAAU,CAAC,YAAD,EAAeC,MAAf,EAAuBC,OAAvB;AALxB;AAOD;AAEDV,oBAAoB,CAAC,OAAD,EAAUgG,gBAAV,CAApB;;ACPA,SAASE,aAAT,CAAuB7E,SAAvB,EAAmDX,OAAnD;AACE,MAAIW,SAAS,CAACkD,IAAd,EAAoB;AAClB,UAAMA,IAAI,GAAGlD,SAAS,CAACkD,IAAvB;AAEAlB,IAAAA,MAAM,CAACC,OAAP,CAAeiB,IAAf,EAAqB4B,OAArB,CAA6B,CAAC,CAAC1C,GAAD,EAAM2C,QAAN,CAAD;AAC3B,UAAIC,eAAU,CAACD,QAAD,CAAd,EAA0B;AACxB1F,QAAAA,OAAO,CAAC4F,SAAR,CAAkBC,IAAlB,CAAuB,MAAOC,IAAP;AACrBjC,UAAAA,IAAI,CAACd,GAAD,CAAJ,GAAY,MAAM2C,QAAQ,cAAK1F,OAAL;AAAcW,YAAAA,SAAd;AAAyBmF,YAAAA;AAAzB,aAA1B;AACD,SAFD;AAGD;AACF,KAND;AAOD;AACF;;AAED,SAASC,aAAT,CAAuBhD,GAAvB,EAAoC5B,IAApC,EAA2DpB,MAA3D,EAAwEiG,UAAxE;AACE,QAAMC,QAAQ,GAAG,CAAClG,MAAM,CAACkG,QAAP,IAAmB,EAApB,EAAwBC,QAAxB,CAAiCnD,GAAjC,CAAjB;;AACA,QAAMoD,QAAQ,gBACRhF,IAAI,CAACgF,QAAL,IAAiB,EADT;AAEZF,IAAAA,QAFY;AAGZG,IAAAA,OAAO,EAAEJ,UAAU,CAACI,OAHR;AAIZC,IAAAA,SAAS,EAAE,CAACJ,QAAD,IAAcA,QAAQ,IAAID,UAAU,CAACK,SAAX,GAAuB,CAAjD,GAAsDL,UAAU,CAACK,SAAjE,GAA6EtF,SAJ5E;AAKZuF,IAAAA,SAAS,EAAEN,UAAU,CAACM,SALV;AAMZC,IAAAA,GAAG,EAAEP,UAAU,CAACQ,OANJ;AAOZC,IAAAA,GAAG,EAAET,UAAU,CAACU;AAPJ,IAAd;;AAUA,UAAQV,UAAU,CAACzG,IAAnB;AACE,SAAK,QAAL;AACE,UAAIyG,UAAU,CAACK,SAAX,KAAyB,CAAzB,IAA8BF,QAAQ,CAACF,QAA3C,EAAqD;AACnDE,QAAAA,QAAQ,CAACE,SAAT,GAAqBtF,SAArB;AACAoF,QAAAA,QAAQ,CAACF,QAAT,GAAoB,KAApB;AACD;;AACD;;AACF,SAAK,SAAL;AACEE,MAAAA,QAAQ,CAACF,QAAT,GAAoB,KAApB;AACA;AATJ;;AAYA,SAAOpF,gBAAW,CAACsF,QAAD,CAAlB;AACD;;SAEeQ,uBAAuB5G,QAAaC;AAClD,QAAM4G,IAAI,GAAG;AACXjD,IAAAA,KAAK,EAAE,MADI;AAEXZ,IAAAA,GAAG,EAAE,MAFM;AAGXxD,IAAAA,IAAI,EAAE,MAHK;AAIX0B,IAAAA,KAAK,EAAE,KAJI;AAKXsD,IAAAA,SAAS,EAAE,KALA;AAMXM,IAAAA,UAAU,EAAE,IAAIxF,GAAJ,EAND;AAOXwH,IAAAA,MAAM,EAAE;AAPG,GAAb;AASA,QAAMhC,UAAU,GAAU,EAA1B;AAEAlC,EAAAA,MAAM,CAACC,OAAP,CAAe7C,MAAM,CAACO,UAAtB,EAAkCmF,OAAlC,CAA0C,CAAC,CAAC1C,GAAD,EAAMiD,UAAN,CAAD;AACxC,UAAMc,WAAW,GAAGd,UAAU,CAAC,cAAD,CAA9B;AACA,UAAM7E,IAAI,GAAGrB,UAAU,CAAC,KAAD,EAAQkG,UAAR;AAAqBlB,MAAAA,SAAS,EAAE/B;AAAhC,OAAwC/C,OAAxC,EAAvB;AAEA,UAAMW,SAAS,GAAGE,gBAAW;AAC3BkC,MAAAA;AAD2B,OAExB5B,IAFwB;AAG3BwC,MAAAA,KAAK,EAAExC,IAAI,CAACwC,KAAL,IAAc,KAAd,GAAsB5C,SAAtB,GAAkCI,IAAI,CAACwC,KAAL,IAAcqC,UAAU,CAACe,KAAzB,IAAkCnD,uBAAY,CAACb,GAAD,CAH5D;AAI3BoD,MAAAA,QAAQ,EAAEJ,aAAa,CAAChD,GAAD,EAAM5B,IAAN,EAAYpB,MAAZ,EAAoBiG,UAApB;AAJI,OAA7B;AAOAR,IAAAA,aAAa,CAAC7E,SAAD,EAAYX,OAAZ,CAAb;;AAEA,QAAI8G,WAAJ,EAAiB;AACf,UAAI,CAACF,IAAI,CAACC,MAAV,EAAkB;AAChBhC,QAAAA,UAAU,CAACgB,IAAX,CAAgBe,IAAhB;AACAA,QAAAA,IAAI,CAACC,MAAL,GAAc,IAAd;AACD;;AAED,UAAI,CAACD,IAAI,CAAC/B,UAAL,CAAgBlF,GAAhB,CAAoBmH,WAAW,CAAC/D,GAAhC,CAAL,EAA2C;AACzC6D,QAAAA,IAAI,CAAC/B,UAAL,CAAgBpF,GAAhB,CAAoBqH,WAAW,CAAC/D,GAAhC,eACK+D,WADL;AAEEjC,UAAAA,UAAU,EAAE;AAFd;AAID;;AAED+B,MAAAA,IAAI,CAAC/B,UAAL,CAAgBhF,GAAhB,CAAoBiH,WAAW,CAAC/D,GAAhC,EAAqC8B,UAArC,CAAgDgB,IAAhD,CAAqDlF,SAArD;AACD,KAdD,MAcO;AACLkE,MAAAA,UAAU,CAACgB,IAAX,CAAgBlF,SAAhB;AACD;AACF,GA9BD;;AAgCA,MAAIiG,IAAI,CAAC/B,UAAL,CAAgBmC,IAApB,EAA0B;AACxBJ,IAAAA,IAAI,CAAC/B,UAAL,GAAkB,CAAC,GAAG+B,IAAI,CAAC/B,UAAL,CAAgBpB,MAAhB,EAAJ,CAAlB;AACD;;AAED,SAAOoB,UAAP;AACD;AAEDvF,oBAAoB,CAAC,YAAD,EAAeqH,sBAAf,CAApB;;SC9FgBM,kBAAkBlH,QAAaC;AAC7C,MAAID,MAAM,CAACsC,MAAX,EAAmB;AACjB,UAAM1B,SAAS,GAAGb,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CAA5B;;AACA,YAAQD,MAAM,CAACsC,MAAf;AACE,WAAK,MAAL;AACA,WAAK,WAAL;AACE,eAAOvC,UAAU,CAAC,MAAD,EAASC,MAAT,EAAiBC,OAAjB,CAAjB;;AACF,WAAK,KAAL;AACE,eAAOa,gBAAW;AAChBI,UAAAA,KAAK,EAAE;AADS,WAEbN,SAFa;AAGhBpB,UAAAA,IAAI,EAAEoB,SAAS,CAACpB,IAAV,IAAkB;AAHR,WAAlB;;AAKF;AACE,eAAOsB,gBAAW;AAChBI,UAAAA,KAAK,EAAE;AADS,WAEbN,SAFa;AAGhBpB,UAAAA,IAAI,EAAEoB,SAAS,CAACpB,IAAV,IAAkBQ,MAAM,CAACsC;AAHf,WAAlB;AAXJ;AAiBD;;AAED,MAAItC,MAAM,CAACW,IAAX,EAAiB;AACf,UAAMC,SAAS,GAAGb,UAAU,CAAC,MAAD,EAASC,MAAT,EAAiBC,OAAjB,CAA5B;AAEA,wBACKW,SADL;AAEEpB,MAAAA,IAAI,EAAEoB,SAAS,CAACpB,IAAV,IAAkB;AAF1B;AAID;;AAED,QAAMoB,SAAS,GAAGb,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CAA5B;AACA,SAAOa,gBAAW;AAChBI,IAAAA,KAAK,EAAE,IADS;AAEhB1B,IAAAA,IAAI,EAAEoB,SAAS,CAACpB,IAAV,IAAkB;AAFR,KAGboB,SAHa,EAAlB;AAKD;AAEDrB,oBAAoB,CAAC,QAAD,EAAW2H,iBAAX,CAApB;;ACxCA;;;;;;;;SAOgBC,UAAUvG;AACxBA,EAAAA,SAAS,GAAGgC,MAAM,CAACC,OAAP,CAAejC,SAAf,EAA0BkC,MAA1B,CAAiC,CAAClC,SAAD,EAAiC,CAACoC,GAAD,EAAMC,KAAN,CAAjC;AAC3C,QAAID,GAAG,KAAK,UAAZ,EAAwB;AACtBpC,MAAAA,SAAS,CAAC,mBAAD,CAAT,gBACMA,SAAS,CAAC,mBAAD,CAAT,IAAkC,EADxC,EAEKqC,KAFL;AAID;;AAED,wBACKrC,SADL;AAEE,mBAAaoC,KAAb,GAAqBC;AAFvB;AAID,GAZW,EAYT,EAZS,CAAZ;AAcA,SAAOmE,mBAAY,CAAEC,KAAD;AAClBzE,IAAAA,MAAM,CAACC,OAAP,CAAejC,SAAf,EAA0B8E,OAA1B,CAAkC,CAAC,CAAC1C,GAAD,EAAMC,KAAN,CAAD;AAChCoE,MAAAA,KAAK,CAAC5G,UAAN,CAAiB6G,SAAjB,CAA2BtE,GAA3B,EAAgCC,KAAhC;;AAEA,UAAIoE,KAAK,CAACE,YAAV,EAAwB;AACtBF,QAAAA,KAAK,CAACrH,MAAN,CAAasH,SAAb,CAAuBtE,GAAvB,EAA4BC,KAA5B;AACD;AACF,KAND;AAOD,GARkB,CAAnB;AASD;;AChCD;;;;;;;;SAOgBuE,SAASzE,QAA6B;AACpD,SAAOoE,SAAS;AACdM,IAAAA,QAAQ,EAAE,KADI;AAEdvC,IAAAA,WAAW,EAAE,OAFC;AAGdC,IAAAA,IAAI,EAAE,KAHQ;AAIduC,IAAAA,UAAU,EAAE,IAJE;AAKdzC,IAAAA,SAAS,EAAE;AALG,KAMXlC,KANW;AAOdvD,IAAAA,IAAI,EAAE;AAPQ,KAAhB;AASD;;ACdD,MAAMmI,IAAI,GAAIhC,QAAD,IAAkC,MAAOiC,IAAP;AAC7C,QAAMC,MAAM,GAAG,MAAMlC,QAAQ,CAACiC,IAAD,CAA7B;AACA,SAAO5D,IAAI,CAACC,SAAL,CAAe4D,MAAf,CAAP;AACD,CAHD;AAKA;;;;;;;;SAMgBC,eAAehE,MAAgCf,QAA6B;AAC1F,SAAOoE,SAAS,cACXpE,KADW;AAEdmB,IAAAA,OAAO,EAAE,MAFK;AAGdJ,IAAAA,IAAI,eACCf,KAAK,CAACe,IADP;AAEFC,MAAAA,IAAI,EAAE6B,eAAU,CAAC9B,IAAD,CAAV,GAAmB6D,IAAI,CAAC7D,IAAD,CAAvB,GAAgCE,IAAI,CAACC,SAAL,CAAeH,IAAf;AAFpC;AAHU,KAAhB;AAQD;;ACrBD;;;;;;;SAMgBiE,cAAcC,KAAkCjF,QAA6B;AAC3F,SAAOoE,SAAS,cACXpE,KADW;AAEdmB,IAAAA,OAAO,EAAE,KAFK;AAGdJ,IAAAA,IAAI,eACCf,KAAK,CAACe,IADP;AAEFkE,MAAAA;AAFE;AAHU,KAAhB;AAQD;;AChBD;;;;;;;;;;;;SAWgBC,OAAOC,OAAgB;AACrC,SAAOf,SAAS,CAAC;AACfgB,IAAAA,MAAM,EAAED;AADO,GAAD,CAAhB;AAGD;;ACdD;;;;;;;;SAOgBE,UAAUrF,QAA6B;AACrD,SAAOsF,kBAAa,CAClBC,mBAAY,CAACC,MAAD,CADM,EAElBpB,SAAS,cACJpE,KADI;AAEPyB,IAAAA,SAAS,EAAE,KAFJ;AAGPgE,IAAAA,OAAO,EAAE,OAHF;AAIPhJ,IAAAA,IAAI,EAAE;AAJC,KAFS,CAApB;AASD;;AClBD;;;;;;;;SAOgBiJ,SAAS1H,QAAQ,GAAG;AAClC,SAAOoG,SAAS,CAAC;AACfpG,IAAAA;AADe,GAAD,CAAhB;AAGD;;ACPD;;;;;;;;SAOgB2H,SAAS3F,QAAsB;AAC7C,SAAOoE,SAAS,cACXpE,KADW;AAEdvD,IAAAA,IAAI,EAAE,UAFQ;AAGdmJ,IAAAA,SAAS,EAAE;AAHG,KAAhB;AAKD;;ACVD;;;;;;;;SAOgBC,OAAO7F,QAAoB;AACzC,SAAOoE,SAAS;AACd0B,IAAAA,eAAe,EAAE,GADH;AAEd3H,IAAAA,KAAK,EAAE,IAFO;AAGdS,IAAAA,MAAM,EAAE;AAHM,KAIXoB,KAJW;AAKdvD,IAAAA,IAAI,EAAE;AALQ,KAAhB;AAOD;;ACtBD;;;;;;;;;SAQgBsJ,UAAUZ;AACxB,SAAOf,SAAS,CAAC;AACf3C,IAAAA,SAAS,EAAE0D;AADI,GAAD,CAAhB;AAGD;;ACPD;;;;;;;;SAOgBa,SAAShG,QAAsB;AAC7C,SAAOoE,SAAS;AACd6B,IAAAA,UAAU,EAAE;AADE,KAEXjG,KAFW;AAGdvD,IAAAA,IAAI,EAAE;AAHQ,KAAhB;AAKD;;AClBD;;;;;;;;;;SASgByJ,SAASjG,KAAaC;AACpC,SAAOkE,SAAS,CAAC;AACff,IAAAA,QAAQ,EAAE;AACR,OAACpD,GAAD,GAAOC;AADC;AADK,GAAD,CAAhB;AAKD;;ACfD;;;;;;;;;SAQgBiG,aAAaC;AAC3B,SAAOF,QAAQ,CAAC,eAAD,EAAkBE,OAAlB,CAAf;AACD;;ACVD;;;;;;;;SAOgBC,WAAWD;AACzB,SAAOhC,SAAS,CAAC;AACfkC,IAAAA,UAAU,EAAEF;AADG,GAAD,CAAhB;AAGD;;ACXD;;;;;;;;;SAQgBG,SAASrG;AACvB,SAAOgG,QAAQ,CAAC,UAAD,EAAahG,KAAb,CAAf;AACD;;ACVD;;;;;;;;;SAQgBsG,SAAStG;AACvB,SAAOgG,QAAQ,CAAC,UAAD,EAAahG,KAAb,CAAf;AACD;;ACVD;AACO,MAAMuG,cAAc,GAAsB,IAAIlK,GAAJ,EAA1C;;ACGP;;;;;SAIgBmK,KAAK1D,OAAwD;AAC3E,SAAOsC,kBAAa,CACjBqB,MAAD;AACE,UAAMC,IAAI,GAAG5D,IAAI,CAAC4D,IAAL,IAAaC,WAAM,CAACF,MAAD,CAAhC;AACA,UAAMG,WAAW,GAAGC,oBAAS,CAACH,IAAD,CAA7B;AACAH,IAAAA,cAAc,CAAC9J,GAAf,CAAmBiK,IAAnB,EAAyBD,MAAzB;AACAF,IAAAA,cAAc,CAAC9J,GAAf,CAAmBmK,WAAnB,EAAgCH,MAAhC;AACD,GANiB,EAOlB3D,IAAI,CAAC4D,IAAL,IAAaI,WAAI,CAAChE,IAAI,CAAC4D,IAAN,CAPC,EAQlB5D,IAAI,IAAIiE,aAAQ,CAAC,aAAD,EAAgBjE,IAAhB,CARE,CAApB;AAUD;;AClBD;;;;;;;;SAOgBkE,KAAKrG;AACnB,SAAOwD,mBAAY,CAAEC,KAAD;AAClBA,IAAAA,KAAK,CAACrH,MAAN,CAAasH,SAAb,CAAuB,cAAvB,EAAuC;AACrCtE,MAAAA,GAAG,EAAEkH,oBAAS,CAACtG,KAAD,CADuB;AAErCA,MAAAA;AAFqC,KAAvC;AAID,GALkB,CAAnB;AAMD;;ACfD;;;;;;;;;SAQgBuG,YAAYC;AAC1B,SAAOjD,SAAS,CAAC;AACfiD,IAAAA;AADe,GAAD,CAAhB;AAGD;;ACZD;;;;;;;;;SAQgBC,QAAQC;AACtB,SAAOnD,SAAS,CAAC;AACfmD,IAAAA;AADe,GAAD,CAAhB;AAGD;;ACZD;;;;;;;;;SAQgBC,MAAM3G;AACpB,SAAOuD,SAAS,CAAC;AACfvD,IAAAA;AADe,GAAD,CAAhB;AAGD;;ACZD;;;;;;;;SAOgB4G,YAAYC;AAC1B,SAAOtD,SAAS,CAAC;AACfsD,IAAAA;AADe,GAAD,CAAhB;AAGD;;ACXD;;;;;;;;SAOgBC,UAAUC,SAAS,GAAG;AACpC,SAAOxD,SAAS,CAAC;AACfwD,IAAAA;AADe,GAAD,CAAhB;AAGD;;ACXD;;;;;;;;;;;;;;;;;SAgBgBC,KAAKC,WAAmBC,2BAAmC;AACzE,SAAO3D,SAAS,CAAC;AACf0D,IAAAA,SADe;AAEfC,IAAAA;AAFe,GAAD,CAAhB;AAID;AAED;;;;;;;;;;;;;;;;;SAgBgBC,MAAM,GAAGC;AACvB,SAAO7D,SAAS,CAAC;AACf6D,IAAAA;AADe,GAAD,CAAhB;AAGD;;AC3CD;;;;;;;;SAOgBC,OAAOC;AACrB,SAAO/D,SAAS,CAAC;AACf+D,IAAAA;AADe,GAAD,CAAhB;AAGD;;ACXD;;;;;;;;SAOgBC,OAAOC;AACrB,SAAOjE,SAAS,CAAC;AACfiE,IAAAA;AADe,GAAD,CAAhB;AAGD;;ACXD;;;;;;;;;SAQgBC,SAASC;AACvB,SAAOnE,SAAS,CAAC;AACfoE,IAAAA,IAAI,EAAED;AADS,GAAD,CAAhB;AAGD;;ACZD;;;;;;;;;SAQgBE,YAAYC;AAC1B,SAAOtE,SAAS,CAAC;AACfsE,IAAAA;AADe,GAAD,CAAhB;AAGD;AAED;;;;;;;;;;SASgBC,SAASC,UAAkBC;AACzC,SAAOJ,WAAW,CAAC;AACjBK,IAAAA,IAAI,EAAE,IADW;AAEjBC,IAAAA,IAAI,EAAEH,QAFW;AAGjBC,IAAAA;AAHiB,GAAD,CAAlB;AAKD;AAED;;;;;;;;;;SASgBG,SAASJ,UAAkBC;AACzC,SAAOJ,WAAW,CAAC;AACjBK,IAAAA,IAAI,EAAE,KADW;AAEjBC,IAAAA,IAAI,EAAEH,QAFW;AAGjBC,IAAAA;AAHiB,GAAD,CAAlB;AAKD;;ACMD,SAASI,QAAT,CAAkBC,iBAAlB;AACE,QAAMC,GAAG,GAAGD,iBAAiB,CAACE,QAAlB,EAAZ;AAEA,QAAM,CAACC,SAAD,EAAY,GAAGC,EAAf,IAAqBH,GAAG,CAACI,KAAJ,CAAU,IAAV,CAA3B;AACA,MAAIC,OAAO,GAAGF,EAAE,CAACG,IAAH,CAAQ,IAAR,CAAd;;AAEA,MAAI,CAACJ,SAAS,CAACjG,QAAV,CAAmB,GAAnB,CAAL,EAA8B;AAC5B,UAAMsG,GAAG,MAAML,SAAS,CAACM,IAAV,MAAf;AAEAH,IAAAA,OAAO,GAAGA,OAAO,CAAClM,OAAR,CAAgB,IAAIsM,MAAJ,CAAWF,GAAX,EAAgB,IAAhB,CAAhB,EAAuC,EAAvC,CAAV;AACD;;AAED,mBAAiBF,OAAO,CAACG,IAAR,IAAjB;AACD;AAED;;;;;;;;;;SAQgBE,kBAAkBX;AAChC,MAAIY,cAAS,CAACZ,iBAAD,CAAb,EAAkC;AAChCA,IAAAA,iBAAiB,GAAGD,QAAQ,CAACC,iBAAD,CAA5B;AACD;;AAED,SAAO9E,SAAS,CAAC;AACf8E,IAAAA;AADe,GAAD,CAAhB;AAGD;;ACnFD;;;;;;;;SAOgBa,cAAcC,aAAa,GAAG;AAC5C,SAAO5F,SAAS,CAAC;AACf4F,IAAAA;AADe,GAAD,CAAhB;AAGD;;ACLM,eAAeC,eAAf,CACLC,KADK,EAELhN,UAA6B,EAFxB;AAIL,MAAI,CAACgN,KAAL,EAAY;AACV,WAAOjM,SAAP;AACD;;AAED,MAAIkM,aAAQ,CAACD,KAAD,CAAZ,EAAqB;AACnB,WAAOD,eAAe,CAACxD,cAAc,CAAC1J,GAAf,CAAmBmN,KAAnB,CAAD,EAAyChN,OAAzC,CAAtB;AACD;;AAED,QAAMkN,MAAM,GAAGC,sBAAe,CAACC,IAAhB,CAAqBJ,KAArB,CAAf;AACA,QAAMjN,QAAM,GAAGsN,oBAAa,CAACH,MAAD,eACvBlN,OADuB;AAE1BsN,IAAAA,UAAU,EAAE;AAFc,KAA5B;AAKA,QAAM5D,IAAI,GAAGwD,MAAM,CAACnN,MAAP,CAAcwN,OAAd,EAAb;AACA,QAAM3D,WAAW,GAAGC,oBAAS,CAACH,IAAD,CAA7B;AACA,QAAM9D,SAAS,GAAmB,EAAlC;AACA,QAAMf,UAAU,GAAG/E,UAAU,CAAC,YAAD,EAAeC,QAAf,eAA2BC,OAA3B;AAAoCwN,IAAAA,WAAW,EAAEzN,QAAM,CAACyN,WAAxD;AAAqE5H,IAAAA;AAArE,KAA7B;;AACA,QAAME,IAAI;AACRiB,IAAAA,KAAK,EAAE2C,IADC;AAERnK,IAAAA,IAAI,EAAE,MAFE;AAGRqF,IAAAA,OAAO,EAAE,MAHD;AAIR6I,IAAAA,IAAI,EAAE,EAJE;AAKRC,IAAAA,MAAM,EAAE,EALA;AAMRC,IAAAA,gBAAgB,EAAE;AANV,KAOLT,MAAM,CAAC9F,KAAP,CAAavH,GAAb,CAAsB,aAAtB,EAAqC,EAArC,CAPK;AAQR6J,IAAAA,IAAI,EAAEE,WARE;AASRA,IAAAA,WATQ;AAUR/E,IAAAA;AAVQ,IAAV;;AAaA,QAAM+I,OAAO,CAACC,GAAR,CAAYjI,SAAS,CAAClC,GAAV,CAAegC,QAAD,IAAmBA,QAAQ,CAACI,IAAD,EAAO9F,OAAP,CAAzC,CAAZ,CAAN;AAEA,SAAQ8F,IAAR;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -31,7 +31,7 @@ function anyToComponent(schema, options) {
31
31
 
32
32
  switch (schema.type) {
33
33
  case "object":
34
- if (schema.additionalProperties) {
34
+ if (!schema.properties && !schema.$ref) {
35
35
  return execMapper("map", schema, options);
36
36
  }
37
37
 
@@ -230,7 +230,7 @@ function mapToComponent(schema, options) {
230
230
  type: "datamap",
231
231
  tableView: false,
232
232
  input: true,
233
- valueComponent: _extends({}, execMapper("any", schema.additionalProperties, options), {
233
+ valueComponent: _extends({}, schema.additionalProperties ? execMapper("any", schema.additionalProperties, options) : {}, {
234
234
  hideLabel: true,
235
235
  tableView: true
236
236
  })
@@ -969,6 +969,20 @@ function CustomConditional(customConditional) {
969
969
  });
970
970
  }
971
971
 
972
+ /**
973
+ * Open automatically the editgrid when the list is empty.
974
+ * @decorator
975
+ * @formio
976
+ * @property
977
+ * @schema
978
+ */
979
+
980
+ function OpenWhenEmpty(openWhenEmpty = true) {
981
+ return Component({
982
+ openWhenEmpty
983
+ });
984
+ }
985
+
972
986
  async function getFormioSchema(model, options = {}) {
973
987
  if (!model) {
974
988
  return undefined;
@@ -1007,5 +1021,5 @@ async function getFormioSchema(model, options = {}) {
1007
1021
  return form;
1008
1022
  }
1009
1023
 
1010
- export { Component, Conditional, Currency, CustomClass, CustomConditional, DataSourceJson, DataSourceUrl, ErrorLabel, ErrorMessage, Form, Hidden, HideWhen, InputTags, Label, Mask, Masks, MaxWords, MinWords, ModalEdit, Multiple, Password, Placeholder, Prefix, Select, ShowWhen, Suffix, TableView, Tabs, TextCase, Textarea, Tooltip, Validate, anyToComponent, arrayToComponent, defaultToComponent, enumToComponent, execMapper, getFormioMapper, getFormioSchema, mapToComponent, nestedToComponent, numberToComponent, objectToEditGrid, panelToComponent, propertiesToComponents, registerFormioMapper, stringToComponent };
1024
+ export { Component, Conditional, Currency, CustomClass, CustomConditional, DataSourceJson, DataSourceUrl, ErrorLabel, ErrorMessage, Form, Hidden, HideWhen, InputTags, Label, Mask, Masks, MaxWords, MinWords, ModalEdit, Multiple, OpenWhenEmpty, Password, Placeholder, Prefix, Select, ShowWhen, Suffix, TableView, Tabs, TextCase, Textarea, Tooltip, Validate, anyToComponent, arrayToComponent, defaultToComponent, enumToComponent, execMapper, getFormioMapper, getFormioSchema, mapToComponent, nestedToComponent, numberToComponent, objectToEditGrid, panelToComponent, propertiesToComponents, registerFormioMapper, stringToComponent };
1011
1025
  //# sourceMappingURL=index.modern.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.modern.js","sources":["../src/registries/FormioMappersContainer.ts","../src/utils/getRef.ts","../src/components/anyToComponent.ts","../src/components/arrayToComponent.ts","../src/components/booleanToComponent.ts","../src/components/dateToComponent.ts","../src/utils/getFormioProps.ts","../src/components/defaultToComponent.ts","../src/components/enumToComponent.ts","../src/components/mapToComponent.ts","../src/components/nestedToComponent.ts","../src/components/numberToComponent.ts","../src/components/objectToEditGrid.ts","../src/components/panelToComponent.ts","../src/components/propertiesToComponents.ts","../src/components/stringToComponent.ts","../src/decorators/component.ts","../src/decorators/currency.ts","../src/decorators/dataSourceJson.ts","../src/decorators/dataSourceUrl.ts","../src/decorators/hidden.ts","../src/decorators/inputTags.ts","../src/decorators/multiple.ts","../src/decorators/password.ts","../src/decorators/select.ts","../src/decorators/tableView.ts","../src/decorators/textarea.ts","../src/decorators/validate.ts","../src/decorators/errorMessage.ts","../src/decorators/errorLabel.ts","../src/decorators/minWords.ts","../src/decorators/maxWords.ts","../src/registries/FormsContainer.ts","../src/decorators/form.ts","../src/decorators/tabs.ts","../src/decorators/placeholder.ts","../src/decorators/tooltip.ts","../src/decorators/label.ts","../src/decorators/customClass.ts","../src/decorators/modalEdit.ts","../src/decorators/mask.ts","../src/decorators/prefix.ts","../src/decorators/suffix.ts","../src/decorators/textCase.ts","../src/decorators/conditional.ts","../src/decorators/customConditional.ts","../src/utils/getFormioSchema.ts"],"sourcesContent":["export interface FormioMapper {\n (schema: any, options: any): any;\n}\n\nconst FormioMappersContainer: Map<string, FormioMapper> = new Map();\n\nexport function registerFormioMapper(type: string, mapper: FormioMapper) {\n return FormioMappersContainer.set(type, mapper);\n}\n\nexport function getFormioMapper(type: string): FormioMapper {\n // istanbul ignore next\n if (!FormioMappersContainer.has(type)) {\n throw new Error(`Formio ${type} mapper doesn't exists`);\n }\n return FormioMappersContainer.get(type)!;\n}\n\nexport function execMapper(type: string, schema: any, options: any): any {\n return getFormioMapper(type)(schema, options);\n}\n","import {getValue} from \"@tsed/core\";\n\nexport function getRef(schema: any, options: any) {\n if (schema.$ref) {\n return getValue(options, schema.$ref.replace(\"#/\", \"\").replace(/\\//g, \".\"));\n }\n return schema;\n}\n","import {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\nimport {getRef} from \"../utils/getRef\";\n\nexport function anyToComponent(schema: any, options: any) {\n schema = getRef(schema, options);\n\n switch (schema.type) {\n case \"object\":\n if (schema.additionalProperties) {\n return execMapper(\"map\", schema, options);\n }\n\n return execMapper(\"nested\", schema, options);\n case \"array\":\n return execMapper(\"array\", schema, options);\n case \"string\":\n return execMapper(\"string\", schema, options);\n case \"boolean\":\n return execMapper(\"boolean\", schema, options);\n case \"integer\":\n case \"number\":\n return execMapper(\"number\", schema, options);\n // default:\n // return execMapper(\"default\", schema, options);\n }\n}\n\nregisterFormioMapper(\"any\", anyToComponent);\n","import {cleanObject} from \"@tsed/core\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\nimport {getRef} from \"../utils/getRef\";\n\nexport function arrayToComponent(schema: any, options: any) {\n const itemSchema = schema.items.$ref ? getRef(schema.items, options) : schema.items;\n\n const {type} = itemSchema;\n\n switch (type) {\n case \"object\": // editgrid\n return {\n ...execMapper(\"default\", schema, options),\n ...execMapper(\"editgrid\", itemSchema, options)\n };\n case \"string\": // tag or enum?\n if (itemSchema.enum) {\n const component = execMapper(\"enum\", itemSchema, options);\n\n return {\n ...component,\n inline: false,\n type: \"selectboxes\"\n };\n }\n\n const component = execMapper(type, itemSchema, options);\n\n return cleanObject({\n ...component,\n multiple: component.type === \"tags\" ? undefined : true\n });\n default:\n case \"number\":\n return {\n ...execMapper(type, itemSchema, options),\n multiple: true\n };\n }\n}\n\nregisterFormioMapper(\"array\", arrayToComponent);\n","import {cleanObject} from \"@tsed/core\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nfunction booleanToComponent(schema: any, options: any) {\n const component = execMapper(\"default\", schema, options);\n\n return cleanObject({\n ...component,\n input: true,\n type: component.type || \"checkbox\"\n });\n}\n\nregisterFormioMapper(\"boolean\", booleanToComponent);\n","import {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nfunction dateToComponent(schema: any, options: any) {\n const component = execMapper(\"default\", schema, options);\n\n const base = {\n ...component,\n enableMinDateInput: false,\n datePicker: {\n disableWeekends: false,\n disableWeekdays: false\n },\n enableMaxDateInput: false,\n enableTime: false,\n type: \"datetime\",\n input: true,\n widget: {\n type: \"calendar\",\n displayInTimezone: \"viewer\",\n locale: \"en\",\n useLocaleSettings: false,\n allowInput: true,\n mode: \"single\",\n noCalendar: false,\n hourIncrement: 1,\n minuteIncrement: 1,\n minDate: null,\n disableWeekends: false,\n disableWeekdays: false,\n maxDate: null\n }\n };\n\n if (schema.format === \"date\") {\n return {\n ...base,\n format: \"yyyy-MM-dd\",\n enableTime: false,\n widget: {\n ...base.widget,\n enableTime: false,\n format: \"yyyy-MM-dd\"\n }\n };\n }\n\n return {\n ...base,\n timePicker: {\n showMeridian: false\n },\n widget: {\n enableTime: true,\n time_24hr: true\n }\n };\n}\n\nregisterFormioMapper(\"date\", dateToComponent);\n","export function getFormioProps(schema: any) {\n const formioProps: any = Object.entries(schema).reduce((props, [key, value]) => {\n if (key.startsWith(\"x-formio-\")) {\n return {\n ...props,\n [key.replace(\"x-formio-\", \"\")]: value\n };\n }\n return props;\n }, {});\n return formioProps;\n}\n","import {cleanObject} from \"@tsed/core\";\nimport {registerFormioMapper} from \"../registries/FormioMappersContainer\";\nimport {getFormioProps} from \"../utils/getFormioProps\";\n\nexport function defaultToComponent(schema: any, options: any): any {\n const formioProps = getFormioProps(schema);\n\n return cleanObject({\n ...formioProps,\n disabled: !!schema.readOnly,\n description: schema.description,\n defaultValue: schema.default\n });\n}\n\nregisterFormioMapper(\"default\", defaultToComponent);\n","import {cleanObject} from \"@tsed/core\";\nimport {sentenceCase} from \"change-case\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function enumToComponent(schema: any, options: any) {\n const component = execMapper(\"default\", schema, options);\n const values = schema.enum.map((value: any) => {\n return {\n label: sentenceCase(value),\n value\n };\n });\n\n if (component.type === \"select\") {\n return cleanObject({\n ...component,\n data: {\n json: JSON.stringify(values)\n },\n dataSrc: \"json\",\n idPath: \"value\",\n valueProperty: \"value\",\n template: \"<span>{{ item.label }}</span>\"\n });\n }\n\n return cleanObject({\n ...component,\n values: schema[\"x-values\"] || values.map((value: any) => ({...value, shortcut: \"\"}))\n });\n}\n\nregisterFormioMapper(\"enum\", enumToComponent);\n","import {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function mapToComponent(schema: any, options: any) {\n return {\n ...execMapper(\"default\", schema, options),\n type: \"datamap\",\n tableView: false,\n input: true,\n valueComponent: {\n ...execMapper(\"any\", schema.additionalProperties, options),\n hideLabel: true,\n tableView: true\n }\n };\n}\n\nregisterFormioMapper(\"map\", mapToComponent);\n","import {sentenceCase} from \"change-case\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function nestedToComponent(schema: any, options: any) {\n return {\n ...execMapper(\"default\", schema, options),\n label: false,\n tableView: false,\n type: \"form\",\n display: \"form\",\n input: true,\n components: [\n {\n key: \"panel\",\n label: options.parentKey && sentenceCase(options.parentKey),\n ...execMapper(\"panel\", schema, options)\n }\n ]\n };\n}\n\nregisterFormioMapper(\"nested\", nestedToComponent);\n","import {cleanObject, getValue} from \"@tsed/core\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function numberToComponent(schema: any, options: any) {\n const component = execMapper(\"default\", schema, options);\n\n return cleanObject({\n ...component,\n input: true,\n delimiter: getValue(component, \"delimiter\", false),\n inputFormat: getValue(component, \"inputFormat\", \"plain\"),\n mask: getValue(component, \"mask\", false),\n requireDecimal: false,\n type: \"number\"\n });\n}\n\nregisterFormioMapper(\"number\", numberToComponent);\nregisterFormioMapper(\"integer\", numberToComponent);\n","import {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function objectToEditGrid(schema: any, options: any) {\n return {\n ...execMapper(\"default\", schema, options),\n rowDrafts: false,\n type: \"editgrid\",\n input: true,\n components: execMapper(\"properties\", schema, options)\n };\n}\n\nregisterFormioMapper(\"editgrid\", objectToEditGrid);\n","import {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function panelToComponent(schema: any, options: any) {\n return {\n ...execMapper(\"default\", schema, options),\n collapsible: false,\n input: false,\n tableView: false,\n components: execMapper(\"properties\", schema, options)\n };\n}\n\nregisterFormioMapper(\"panel\", panelToComponent);\n","import {cleanObject, isFunction} from \"@tsed/core\";\nimport {sentenceCase} from \"change-case\";\nimport {FormioComponent, FormioForm} from \"@tsed/formio-types\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nfunction bindResolvers(component: FormioComponent, options: any) {\n if (component.data) {\n const data = component.data;\n\n Object.entries(data).forEach(([key, resolver]) => {\n if (isFunction(resolver)) {\n options.resolvers.push(async (form: FormioForm) => {\n data[key] = await resolver({...options, component, form});\n });\n }\n });\n }\n}\n\nfunction mapValidation(key: string, base: FormioComponent, schema: any, propSchema: any) {\n const required = (schema.required || []).includes(key);\n const validate = {\n ...(base.validate || {}),\n required,\n pattern: propSchema.pattern,\n minLength: !required || (required && propSchema.minLength > 1) ? propSchema.minLength : undefined,\n maxLength: propSchema.maxLength,\n min: propSchema.minimum,\n max: propSchema.maximum\n };\n\n switch (propSchema.type) {\n case \"string\":\n if (propSchema.minLength === 0 && validate.required) {\n validate.minLength = undefined;\n validate.required = false;\n }\n break;\n case \"boolean\":\n validate.required = false;\n break;\n }\n\n return cleanObject(validate);\n}\n\nexport function propertiesToComponents(schema: any, options: any): any[] {\n const tabs = {\n label: \"Tabs\",\n key: \"tabs\",\n type: \"tabs\",\n input: false,\n tableView: false,\n components: new Map<string, any>(),\n pushed: false\n };\n\n const components: any[] = [];\n\n Object.entries(schema.properties).forEach(([key, propSchema]: [string, any]) => {\n const tabsOptions = propSchema[\"x-formiotabs\"];\n const base = execMapper(\"any\", propSchema, {parentKey: key, ...options});\n\n const component = cleanObject({\n key,\n ...base,\n label: base.label == false ? undefined : base.label || propSchema.title || sentenceCase(key),\n validate: mapValidation(key, base, schema, propSchema)\n });\n\n bindResolvers(component, options);\n\n if (tabsOptions) {\n if (!tabs.pushed) {\n components.push(tabs);\n tabs.pushed = true;\n }\n\n if (!tabs.components.has(tabsOptions.key)) {\n tabs.components.set(tabsOptions.key, {\n ...tabsOptions,\n components: []\n });\n }\n\n tabs.components.get(tabsOptions.key).components.push(component);\n } else {\n components.push(component);\n }\n });\n\n if (tabs.components.size) {\n tabs.components = [...tabs.components.values()] as any;\n }\n\n return components;\n}\n\nregisterFormioMapper(\"properties\", propertiesToComponents);\n","import {cleanObject} from \"@tsed/core\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function stringToComponent(schema: any, options: any) {\n if (schema.format) {\n const component = execMapper(\"default\", schema, options);\n switch (schema.format) {\n case \"date\":\n case \"date-time\":\n return execMapper(\"date\", schema, options);\n case \"uri\":\n return cleanObject({\n input: true,\n ...component,\n type: component.type || \"url\"\n });\n default:\n return cleanObject({\n input: true,\n ...component,\n type: component.type || schema.format\n });\n }\n }\n\n if (schema.enum) {\n const component = execMapper(\"enum\", schema, options);\n\n return {\n ...component,\n type: component.type || \"radio\"\n };\n }\n\n const component = execMapper(\"default\", schema, options);\n return cleanObject({\n input: true,\n type: component.type || \"textfield\",\n ...component\n });\n}\n\nregisterFormioMapper(\"string\", stringToComponent);\n","import {JsonEntityFn, JsonEntityStore} from \"@tsed/schema\";\n\n/**\n * Declare a formio Component schema on the decorated propertyKey.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Component(component: Record<string, any>): PropertyDecorator {\n component = Object.entries(component).reduce((component: Record<string, any>, [key, value]) => {\n if (key === \"validate\") {\n component[\"x-formio-validate\"] = {\n ...(component[\"x-formio-validate\"] || {}),\n ...value\n };\n }\n\n return {\n ...component,\n [`x-formio-${key}`]: value\n };\n }, {});\n\n return JsonEntityFn((store: JsonEntityStore) => {\n Object.entries(component).forEach(([key, value]) => {\n store.itemSchema.customKey(key, value);\n\n if (store.isCollection) {\n store.schema.customKey(key, value);\n }\n });\n });\n}\n","import {Component} from \"./component\";\n/**\n * Configure the property as Currency component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Currency(props: Record<string, any> = {}): PropertyDecorator {\n return Component({\n currency: \"USD\",\n inputFormat: \"plain\",\n mask: false,\n spellcheck: true,\n delimiter: true,\n ...props,\n type: \"currency\"\n });\n}\n","import {Component} from \"./component\";\nimport {FormioDataResolver, FormioDataResolverCtx} from \"../domain/FormioDataResolver\";\nimport {isFunction} from \"@tsed/core\";\n\nconst wrap = (resolver: FormioDataResolver) => async (opts: FormioDataResolverCtx) => {\n const result = await resolver(opts);\n return JSON.stringify(result);\n};\n\n/**\n * Set custom json data source\n * @param data\n * @param props\n * @constructor\n */\nexport function DataSourceJson(data: any | FormioDataResolver, props: Record<string, any> = {}) {\n return Component({\n ...props,\n dataSrc: \"json\",\n data: {\n ...props.data,\n json: isFunction(data) ? wrap(data) : JSON.stringify(data)\n }\n });\n}\n","import {Component} from \"./component\";\nimport {FormioDataResolver} from \"../domain/FormioDataResolver\";\n\n/**\n * Set URL data on the current component.\n * @param url\n * @param props\n * @constructor\n */\nexport function DataSourceUrl(url: string | FormioDataResolver, props: Record<string, any> = {}) {\n return Component({\n ...props,\n dataSrc: \"url\",\n data: {\n ...props.data,\n url\n }\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Set hidden field.\n *\n * A hidden field is still a part of the form, but is hidden from view.\n *\n * @param bool\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Hidden(bool: boolean = true): PropertyDecorator {\n return Component({\n hidden: bool\n });\n}\n","import {useDecorators} from \"@tsed/core\";\nimport {CollectionOf} from \"@tsed/schema\";\nimport {Component} from \"./component\";\n/**\n * Configure the property as Tags component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function InputTags(props: Record<string, any> = {}): PropertyDecorator {\n return useDecorators(\n CollectionOf(String),\n Component({\n ...props,\n tableView: false,\n storeas: \"array\",\n type: \"tags\"\n })\n );\n}\n","import {Component} from \"./component\";\n\n/**\n * Change the multiple value on the decorated property.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Multiple(multiple = false): PropertyDecorator {\n return Component({\n multiple\n });\n}\n","import {Component} from \"./component\";\n\nexport interface PasswordOpts extends Record<string, any> {\n showCharCount?: boolean;\n showWordCount?: boolean;\n}\n/**\n * Configure the property as Password component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Password(props: PasswordOpts = {}): PropertyDecorator {\n return Component({\n ...props,\n type: \"password\",\n protected: true\n });\n}\n","import {Component} from \"./component\";\n\nexport interface SelectOpts extends Record<string, any> {\n idPath?: string;\n valueProperty?: string;\n template?: string;\n multiple?: boolean;\n}\n\n/**\n * Configure the property as Select component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Select(props: SelectOpts = {}): PropertyDecorator {\n return Component({\n selectThreshold: 0.3,\n input: true,\n widget: \"choicesjs\",\n ...props,\n type: \"select\"\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Change the visibility of the current property on a table.\n * @param bool\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function TableView(bool: boolean): PropertyDecorator {\n return Component({\n tableView: bool\n });\n}\n","import {Component} from \"./component\";\n\nexport interface TextareaOpts extends Record<string, any> {\n showCharCount?: boolean;\n showWordCount?: boolean;\n}\n\n/**\n * Configure the property as Textarea component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Textarea(props: TextareaOpts = {}): PropertyDecorator {\n return Component({\n autoExpand: false,\n ...props,\n type: \"textarea\"\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Add validation rules.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param key\n * @param value\n */\nexport function Validate(key: string, value: any) {\n return Component({\n validate: {\n [key]: value\n }\n });\n}\n","import {Validate} from \"./validate\";\n\n/**\n * Add error message when an error occur.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param message\n */\nexport function ErrorMessage(message: string) {\n return Validate(\"customMessage\", message);\n}\n","import {Component} from \"./component\";\n\n/**\n * Set the error label when an error occur.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function ErrorLabel(message: string) {\n return Component({\n errorLabel: message\n });\n}\n","import {Validate} from \"./validate\";\n\n/**\n * Add the maximum amount of words that can be added to this field.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param value\n */\nexport function MinWords(value: number) {\n return Validate(\"minWords\", value);\n}\n","import {Validate} from \"./validate\";\n\n/**\n * Add the minimum amount of words that can be added to this field.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param value\n */\nexport function MaxWords(value: number) {\n return Validate(\"maxWords\", value);\n}\n","import {Type} from \"@tsed/core\";\n\n// tslint:disable-next-line:variable-name\nexport const FormsContainer: Map<string, Type> = new Map();\n","import {nameOf, StoreSet, useDecorators} from \"@tsed/core\";\nimport {Name} from \"@tsed/schema\";\nimport {FormioForm} from \"@tsed/formio-types\";\nimport {paramCase} from \"change-case\";\nimport {FormsContainer} from \"../registries/FormsContainer\";\n\n/**\n * Expose the model as Formio Form.\n * @param form\n */\nexport function Form(form: Partial<Omit<FormioForm, \"components\" | \"_id\">> = {}): ClassDecorator {\n return useDecorators(\n (target: any) => {\n const name = form.name || nameOf(target);\n const machineName = paramCase(name);\n FormsContainer.set(name, target as any);\n FormsContainer.set(machineName, target as any);\n },\n form.name && Name(form.name),\n form && StoreSet(\"formio:form\", form)\n );\n}\n","import {JsonEntityFn, JsonEntityStore} from \"@tsed/schema\";\nimport {camelCase} from \"change-case\";\n\n/**\n * Group the current property in tabs components.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Tabs(label: string) {\n return JsonEntityFn((store: JsonEntityStore) => {\n store.schema.customKey(\"x-formiotabs\", {\n key: camelCase(label),\n label\n });\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * The placeholder text that will appear when this field is empty.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param placeholder\n */\nexport function Placeholder(placeholder: string) {\n return Component({\n placeholder\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Adds a tooltip to the side of this field.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param tooltip\n */\nexport function Tooltip(tooltip: string) {\n return Component({\n tooltip\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Change the label field\n * @decorator\n * @formio\n * @property\n * @schema\n * @param label\n */\nexport function Label(label: string) {\n return Component({\n label\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Add a custom css class.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function CustomClass(customClass: string) {\n return Component({\n customClass\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Opens up a modal to edit the value of this component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function ModalEdit(modalEdit = true) {\n return Component({\n modalEdit\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * An input mask helps the user with input by ensuring a predefined format.\n *\n * - 9: numeric\n * - a: alphabetical\n * - *: alphanumeric\n *\n * Example telephone mask: (999) 999-9999\n *\n * See the [jquery.inputmask](https://github.com/RobinHerbots/Inputmask) documentation for more information.\n *\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Mask(inputMask: string, inputMaskPlaceholderChar: string = \"\") {\n return Component({\n inputMask,\n inputMaskPlaceholderChar\n });\n}\n\n/**\n * An input mask helps the user with input by ensuring a predefined format.\n *\n * - 9: numeric\n * - a: alphabetical\n * - *: alphanumeric\n *\n * Example telephone mask: (999) 999-9999\n *\n * See the [jquery.inputmask](https://github.com/RobinHerbots/Inputmask) documentation for more information.\n *\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Masks(...inputMasks: {label: string; mask: string}[]) {\n return Component({\n inputMasks\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Add prefix word on the decorated field.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Prefix(prefix: string) {\n return Component({\n prefix\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Add suffix word on the decorated field.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Suffix(suffix: string) {\n return Component({\n suffix\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Force the output of this field to be sanitized in a specific format.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param textCase\n */\nexport function TextCase(textCase: \"uppercase\" | \"lowercase\") {\n return Component({\n case: textCase\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Adds a conditional display rule on the input form.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param conditional\n */\nexport function Conditional(conditional: {show: boolean; when: string; eq: any}) {\n return Component({\n conditional\n });\n}\n\n/**\n * Adds a conditional display rule on the input form.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param property\n * @param eq\n */\nexport function ShowWhen(property: string, eq: any) {\n return Conditional({\n show: true,\n when: property,\n eq\n });\n}\n\n/**\n * Adds a conditional display rule on the input form.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param property\n * @param eq\n */\nexport function HideWhen(property: string, eq: any) {\n return Conditional({\n show: false,\n when: property,\n eq\n });\n}\n","import {FormioComponent, FormioForm, FormioSubmission} from \"@tsed/formio-types\";\nimport type {Moment} from \"moment\";\nimport type {LoDashStatic} from \"lodash\";\nimport type {Utils} from \"formiojs\";\nimport {Component} from \"./component\";\nimport {isArrowFn} from \"@tsed/core\";\n\nexport interface CustomConditionalCtx<Value = any, Data = any, Row = any> {\n /**\n * The complete submission object.\n */\n form: FormioForm;\n /**\n * The complete submission object.\n */\n submission: FormioSubmission<Data>;\n /**\n * The complete submission data object.\n */\n data: Data;\n /**\n * Contextual \"row\" data, used within DataGrid, EditGrid, and Container components\n */\n row: Row;\n /**\n * The current component JSON\n */\n component: FormioComponent;\n /**\n * The current component instance.\n */\n instance: any;\n /**\n * The current value of the component.\n */\n value: Value;\n /**\n * The moment.js library for date manipulation.\n */\n moment: Moment;\n /**\n * An instance of Lodash.\n */\n _: LoDashStatic;\n /**\n * An instance of the FormioUtils object.\n */\n utils: typeof Utils;\n /**\n * An alias for \"utils\".\n */\n util: typeof Utils;\n}\n\nfunction sanitize(customConditional: Function) {\n const str = customConditional.toString();\n\n const [signature, ...fn] = str.split(\"=>\");\n let content = fn.join(\"=>\");\n\n if (!signature.includes(\"{\")) {\n const reg = `${signature.trim()}\\.`;\n\n content = content.replace(new RegExp(reg, \"gi\"), \"\");\n }\n\n return `show = ${content.trim()}`;\n}\n\n/**\n * Adds custom conditional rule to display or not the input form.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param customConditional\n */\nexport function CustomConditional(customConditional: string | ((ctx: CustomConditionalCtx) => any)) {\n if (isArrowFn(customConditional)) {\n customConditional = sanitize(customConditional);\n }\n\n return Component({\n customConditional\n });\n}\n","import {isString, Type} from \"@tsed/core\";\nimport {getJsonSchema, JsonEntityStore, JsonSchemaOptions} from \"@tsed/schema\";\nimport {FormioForm} from \"@tsed/formio-types\";\nimport {execMapper} from \"../registries/FormioMappersContainer\";\nimport \"../components\";\nimport {FormsContainer} from \"../registries/FormsContainer\";\nimport {paramCase} from \"change-case\";\n\nexport async function getFormioSchema(\n model: string | any | undefined,\n options: JsonSchemaOptions = {}\n): Promise<Omit<FormioForm, \"components\" | \"_id\" | \"deleted\" | \"owner\"> | undefined> {\n if (!model) {\n return undefined;\n }\n\n if (isString(model)) {\n return getFormioSchema(FormsContainer.get(model) as Type<any>, options);\n }\n\n const entity = JsonEntityStore.from(model);\n const schema = getJsonSchema(entity, {\n ...options,\n customKeys: true\n });\n\n const name = entity.schema.getName();\n const machineName = paramCase(name);\n const resolvers: Promise<any>[] = [];\n const components = execMapper(\"properties\", schema, {...options, definitions: schema.definitions, resolvers});\n const form = {\n title: name,\n type: \"form\",\n display: \"form\",\n tags: [],\n access: [],\n submissionAccess: [],\n ...entity.store.get<any>(\"formio:form\", {}),\n name: machineName,\n machineName,\n components\n };\n\n await Promise.all(resolvers.map((resolver: any) => resolver(form, options)));\n\n return (form as unknown) as FormioForm;\n}\n"],"names":["FormioMappersContainer","Map","registerFormioMapper","type","mapper","set","getFormioMapper","has","Error","get","execMapper","schema","options","getRef","$ref","getValue","replace","anyToComponent","additionalProperties","arrayToComponent","itemSchema","items","enum","component","inline","cleanObject","multiple","undefined","booleanToComponent","input","dateToComponent","base","enableMinDateInput","datePicker","disableWeekends","disableWeekdays","enableMaxDateInput","enableTime","widget","displayInTimezone","locale","useLocaleSettings","allowInput","mode","noCalendar","hourIncrement","minuteIncrement","minDate","maxDate","format","timePicker","showMeridian","time_24hr","getFormioProps","formioProps","Object","entries","reduce","props","key","value","startsWith","defaultToComponent","disabled","readOnly","description","defaultValue","default","enumToComponent","values","map","label","sentenceCase","data","json","JSON","stringify","dataSrc","idPath","valueProperty","template","shortcut","mapToComponent","tableView","valueComponent","hideLabel","nestedToComponent","display","components","parentKey","numberToComponent","delimiter","inputFormat","mask","requireDecimal","objectToEditGrid","rowDrafts","panelToComponent","collapsible","bindResolvers","forEach","resolver","isFunction","resolvers","push","form","mapValidation","propSchema","required","includes","validate","pattern","minLength","maxLength","min","minimum","max","maximum","propertiesToComponents","tabs","pushed","properties","tabsOptions","title","size","stringToComponent","Component","JsonEntityFn","store","customKey","isCollection","Currency","currency","spellcheck","wrap","opts","result","DataSourceJson","DataSourceUrl","url","Hidden","bool","hidden","InputTags","useDecorators","CollectionOf","String","storeas","Multiple","Password","protected","Select","selectThreshold","TableView","Textarea","autoExpand","Validate","ErrorMessage","message","ErrorLabel","errorLabel","MinWords","MaxWords","FormsContainer","Form","target","name","nameOf","machineName","paramCase","Name","StoreSet","Tabs","camelCase","Placeholder","placeholder","Tooltip","tooltip","Label","CustomClass","customClass","ModalEdit","modalEdit","Mask","inputMask","inputMaskPlaceholderChar","Masks","inputMasks","Prefix","prefix","Suffix","suffix","TextCase","textCase","case","Conditional","conditional","ShowWhen","property","eq","show","when","HideWhen","sanitize","customConditional","str","toString","signature","fn","split","content","join","reg","trim","RegExp","CustomConditional","isArrowFn","getFormioSchema","model","isString","entity","JsonEntityStore","from","getJsonSchema","customKeys","getName","definitions","tags","access","submissionAccess","Promise","all"],"mappings":";;;;AAIA,MAAMA,sBAAsB,GAA8B,IAAIC,GAAJ,EAA1D;SAEgBC,qBAAqBC,MAAcC;AACjD,SAAOJ,sBAAsB,CAACK,GAAvB,CAA2BF,IAA3B,EAAiCC,MAAjC,CAAP;AACD;SAEeE,gBAAgBH;AAC9B;AACA,MAAI,CAACH,sBAAsB,CAACO,GAAvB,CAA2BJ,IAA3B,CAAL,EAAuC;AACrC,UAAM,IAAIK,KAAJ,WAAoBL,4BAApB,CAAN;AACD;;AACD,SAAOH,sBAAsB,CAACS,GAAvB,CAA2BN,IAA3B,CAAP;AACD;SAEeO,WAAWP,MAAcQ,QAAaC;AACpD,SAAON,eAAe,CAACH,IAAD,CAAf,CAAsBQ,MAAtB,EAA8BC,OAA9B,CAAP;AACD;;SClBeC,OAAOF,QAAaC;AAClC,MAAID,MAAM,CAACG,IAAX,EAAiB;AACf,WAAOC,QAAQ,CAACH,OAAD,EAAUD,MAAM,CAACG,IAAP,CAAYE,OAAZ,CAAoB,IAApB,EAA0B,EAA1B,EAA8BA,OAA9B,CAAsC,KAAtC,EAA6C,GAA7C,CAAV,CAAf;AACD;;AACD,SAAOL,MAAP;AACD;;SCJeM,eAAeN,QAAaC;AAC1CD,EAAAA,MAAM,GAAGE,MAAM,CAACF,MAAD,EAASC,OAAT,CAAf;;AAEA,UAAQD,MAAM,CAACR,IAAf;AACE,SAAK,QAAL;AACE,UAAIQ,MAAM,CAACO,oBAAX,EAAiC;AAC/B,eAAOR,UAAU,CAAC,KAAD,EAAQC,MAAR,EAAgBC,OAAhB,CAAjB;AACD;;AAED,aAAOF,UAAU,CAAC,QAAD,EAAWC,MAAX,EAAmBC,OAAnB,CAAjB;;AACF,SAAK,OAAL;AACE,aAAOF,UAAU,CAAC,OAAD,EAAUC,MAAV,EAAkBC,OAAlB,CAAjB;;AACF,SAAK,QAAL;AACE,aAAOF,UAAU,CAAC,QAAD,EAAWC,MAAX,EAAmBC,OAAnB,CAAjB;;AACF,SAAK,SAAL;AACE,aAAOF,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CAAjB;;AACF,SAAK,SAAL;AACA,SAAK,QAAL;AACE,aAAOF,UAAU,CAAC,QAAD,EAAWC,MAAX,EAAmBC,OAAnB,CAAjB;AACF;AACA;AAjBF;AAmBD;AAEDV,oBAAoB,CAAC,KAAD,EAAQe,cAAR,CAApB;;;;;;;;;;;;;;;;;;;;SCvBgBE,iBAAiBR,QAAaC;AAC5C,QAAMQ,UAAU,GAAGT,MAAM,CAACU,KAAP,CAAaP,IAAb,GAAoBD,MAAM,CAACF,MAAM,CAACU,KAAR,EAAeT,OAAf,CAA1B,GAAoDD,MAAM,CAACU,KAA9E;AAEA,QAAM;AAAClB,IAAAA;AAAD,MAASiB,UAAf;;AAEA,UAAQjB,IAAR;AACE,SAAK,QAAL;AAAe;AACb,0BACKO,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CADf,EAEKF,UAAU,CAAC,UAAD,EAAaU,UAAb,EAAyBR,OAAzB,CAFf;;AAIF,SAAK,QAAL;AAAe;AACb,UAAIQ,UAAU,CAACE,IAAf,EAAqB;AACnB,cAAMC,UAAS,GAAGb,UAAU,CAAC,MAAD,EAASU,UAAT,EAAqBR,OAArB,CAA5B;;AAEA,4BACKW,UADL;AAEEC,UAAAA,MAAM,EAAE,KAFV;AAGErB,UAAAA,IAAI,EAAE;AAHR;AAKD;;AAED,YAAMoB,SAAS,GAAGb,UAAU,CAACP,IAAD,EAAOiB,UAAP,EAAmBR,OAAnB,CAA5B;AAEA,aAAOa,WAAW,cACbF,SADa;AAEhBG,QAAAA,QAAQ,EAAEH,SAAS,CAACpB,IAAV,KAAmB,MAAnB,GAA4BwB,SAA5B,GAAwC;AAFlC,SAAlB;;AAIF;AACA,SAAK,QAAL;AACE,0BACKjB,UAAU,CAACP,IAAD,EAAOiB,UAAP,EAAmBR,OAAnB,CADf;AAEEc,QAAAA,QAAQ,EAAE;AAFZ;AAzBJ;AA8BD;AAEDxB,oBAAoB,CAAC,OAAD,EAAUiB,gBAAV,CAApB;;ACtCA,SAASS,kBAAT,CAA4BjB,MAA5B,EAAyCC,OAAzC;AACE,QAAMW,SAAS,GAAGb,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CAA5B;AAEA,SAAOa,WAAW,cACbF,SADa;AAEhBM,IAAAA,KAAK,EAAE,IAFS;AAGhB1B,IAAAA,IAAI,EAAEoB,SAAS,CAACpB,IAAV,IAAkB;AAHR,KAAlB;AAKD;;AAEDD,oBAAoB,CAAC,SAAD,EAAY0B,kBAAZ,CAApB;;ACXA,SAASE,eAAT,CAAyBnB,MAAzB,EAAsCC,OAAtC;AACE,QAAMW,SAAS,GAAGb,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CAA5B;;AAEA,QAAMmB,IAAI,gBACLR,SADK;AAERS,IAAAA,kBAAkB,EAAE,KAFZ;AAGRC,IAAAA,UAAU,EAAE;AACVC,MAAAA,eAAe,EAAE,KADP;AAEVC,MAAAA,eAAe,EAAE;AAFP,KAHJ;AAORC,IAAAA,kBAAkB,EAAE,KAPZ;AAQRC,IAAAA,UAAU,EAAE,KARJ;AASRlC,IAAAA,IAAI,EAAE,UATE;AAUR0B,IAAAA,KAAK,EAAE,IAVC;AAWRS,IAAAA,MAAM,EAAE;AACNnC,MAAAA,IAAI,EAAE,UADA;AAENoC,MAAAA,iBAAiB,EAAE,QAFb;AAGNC,MAAAA,MAAM,EAAE,IAHF;AAINC,MAAAA,iBAAiB,EAAE,KAJb;AAKNC,MAAAA,UAAU,EAAE,IALN;AAMNC,MAAAA,IAAI,EAAE,QANA;AAONC,MAAAA,UAAU,EAAE,KAPN;AAQNC,MAAAA,aAAa,EAAE,CART;AASNC,MAAAA,eAAe,EAAE,CATX;AAUNC,MAAAA,OAAO,EAAE,IAVH;AAWNb,MAAAA,eAAe,EAAE,KAXX;AAYNC,MAAAA,eAAe,EAAE,KAZX;AAaNa,MAAAA,OAAO,EAAE;AAbH;AAXA,IAAV;;AA4BA,MAAIrC,MAAM,CAACsC,MAAP,KAAkB,MAAtB,EAA8B;AAC5B,wBACKlB,IADL;AAEEkB,MAAAA,MAAM,EAAE,YAFV;AAGEZ,MAAAA,UAAU,EAAE,KAHd;AAIEC,MAAAA,MAAM,eACDP,IAAI,CAACO,MADJ;AAEJD,QAAAA,UAAU,EAAE,KAFR;AAGJY,QAAAA,MAAM,EAAE;AAHJ;AAJR;AAUD;;AAED,sBACKlB,IADL;AAEEmB,IAAAA,UAAU,EAAE;AACVC,MAAAA,YAAY,EAAE;AADJ,KAFd;AAKEb,IAAAA,MAAM,EAAE;AACND,MAAAA,UAAU,EAAE,IADN;AAENe,MAAAA,SAAS,EAAE;AAFL;AALV;AAUD;;AAEDlD,oBAAoB,CAAC,MAAD,EAAS4B,eAAT,CAApB;;SC1DgBuB,eAAe1C;AAC7B,QAAM2C,WAAW,GAAQC,MAAM,CAACC,OAAP,CAAe7C,MAAf,EAAuB8C,MAAvB,CAA8B,CAACC,KAAD,EAAQ,CAACC,GAAD,EAAMC,KAAN,CAAR;AACrD,QAAID,GAAG,CAACE,UAAJ,CAAe,WAAf,CAAJ,EAAiC;AAC/B,0BACKH,KADL;AAEE,SAACC,GAAG,CAAC3C,OAAJ,CAAY,WAAZ,EAAyB,EAAzB,CAAD,GAAgC4C;AAFlC;AAID;;AACD,WAAOF,KAAP;AACD,GARwB,EAQtB,EARsB,CAAzB;AASA,SAAOJ,WAAP;AACD;;SCPeQ,mBAAmBnD,QAAaC;AAC9C,QAAM0C,WAAW,GAAGD,cAAc,CAAC1C,MAAD,CAAlC;AAEA,SAAOc,WAAW,cACb6B,WADa;AAEhBS,IAAAA,QAAQ,EAAE,CAAC,CAACpD,MAAM,CAACqD,QAFH;AAGhBC,IAAAA,WAAW,EAAEtD,MAAM,CAACsD,WAHJ;AAIhBC,IAAAA,YAAY,EAAEvD,MAAM,CAACwD;AAJL,KAAlB;AAMD;AAEDjE,oBAAoB,CAAC,SAAD,EAAY4D,kBAAZ,CAApB;;SCXgBM,gBAAgBzD,QAAaC;AAC3C,QAAMW,SAAS,GAAGb,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CAA5B;AACA,QAAMyD,MAAM,GAAG1D,MAAM,CAACW,IAAP,CAAYgD,GAAZ,CAAiBV,KAAD;AAC7B,WAAO;AACLW,MAAAA,KAAK,EAAEC,YAAY,CAACZ,KAAD,CADd;AAELA,MAAAA;AAFK,KAAP;AAID,GALc,CAAf;;AAOA,MAAIrC,SAAS,CAACpB,IAAV,KAAmB,QAAvB,EAAiC;AAC/B,WAAOsB,WAAW,cACbF,SADa;AAEhBkD,MAAAA,IAAI,EAAE;AACJC,QAAAA,IAAI,EAAEC,IAAI,CAACC,SAAL,CAAeP,MAAf;AADF,OAFU;AAKhBQ,MAAAA,OAAO,EAAE,MALO;AAMhBC,MAAAA,MAAM,EAAE,OANQ;AAOhBC,MAAAA,aAAa,EAAE,OAPC;AAQhBC,MAAAA,QAAQ,EAAE;AARM,OAAlB;AAUD;;AAED,SAAOvD,WAAW,cACbF,SADa;AAEhB8C,IAAAA,MAAM,EAAE1D,MAAM,CAAC,UAAD,CAAN,IAAsB0D,MAAM,CAACC,GAAP,CAAYV,KAAD,iBAAqBA,KAArB;AAA4BqB,MAAAA,QAAQ,EAAE;AAAtC,MAAX;AAFd,KAAlB;AAID;AAED/E,oBAAoB,CAAC,MAAD,EAASkE,eAAT,CAApB;;SC9BgBc,eAAevE,QAAaC;AAC1C,sBACKF,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CADf;AAEET,IAAAA,IAAI,EAAE,SAFR;AAGEgF,IAAAA,SAAS,EAAE,KAHb;AAIEtD,IAAAA,KAAK,EAAE,IAJT;AAKEuD,IAAAA,cAAc,eACT1E,UAAU,CAAC,KAAD,EAAQC,MAAM,CAACO,oBAAf,EAAqCN,OAArC,CADD;AAEZyE,MAAAA,SAAS,EAAE,IAFC;AAGZF,MAAAA,SAAS,EAAE;AAHC;AALhB;AAWD;AAEDjF,oBAAoB,CAAC,KAAD,EAAQgF,cAAR,CAApB;;SCbgBI,kBAAkB3E,QAAaC;AAC7C,sBACKF,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CADf;AAEE2D,IAAAA,KAAK,EAAE,KAFT;AAGEY,IAAAA,SAAS,EAAE,KAHb;AAIEhF,IAAAA,IAAI,EAAE,MAJR;AAKEoF,IAAAA,OAAO,EAAE,MALX;AAME1D,IAAAA,KAAK,EAAE,IANT;AAOE2D,IAAAA,UAAU,EAAE;AAER7B,MAAAA,GAAG,EAAE,OAFG;AAGRY,MAAAA,KAAK,EAAE3D,OAAO,CAAC6E,SAAR,IAAqBjB,YAAY,CAAC5D,OAAO,CAAC6E,SAAT;AAHhC,OAIL/E,UAAU,CAAC,OAAD,EAAUC,MAAV,EAAkBC,OAAlB,CAJL;AAPd;AAeD;AAEDV,oBAAoB,CAAC,QAAD,EAAWoF,iBAAX,CAApB;;SClBgBI,kBAAkB/E,QAAaC;AAC7C,QAAMW,SAAS,GAAGb,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CAA5B;AAEA,SAAOa,WAAW,cACbF,SADa;AAEhBM,IAAAA,KAAK,EAAE,IAFS;AAGhB8D,IAAAA,SAAS,EAAE5E,QAAQ,CAACQ,SAAD,EAAY,WAAZ,EAAyB,KAAzB,CAHH;AAIhBqE,IAAAA,WAAW,EAAE7E,QAAQ,CAACQ,SAAD,EAAY,aAAZ,EAA2B,OAA3B,CAJL;AAKhBsE,IAAAA,IAAI,EAAE9E,QAAQ,CAACQ,SAAD,EAAY,MAAZ,EAAoB,KAApB,CALE;AAMhBuE,IAAAA,cAAc,EAAE,KANA;AAOhB3F,IAAAA,IAAI,EAAE;AAPU,KAAlB;AASD;AAEDD,oBAAoB,CAAC,QAAD,EAAWwF,iBAAX,CAApB;AACAxF,oBAAoB,CAAC,SAAD,EAAYwF,iBAAZ,CAApB;;SChBgBK,iBAAiBpF,QAAaC;AAC5C,sBACKF,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CADf;AAEEoF,IAAAA,SAAS,EAAE,KAFb;AAGE7F,IAAAA,IAAI,EAAE,UAHR;AAIE0B,IAAAA,KAAK,EAAE,IAJT;AAKE2D,IAAAA,UAAU,EAAE9E,UAAU,CAAC,YAAD,EAAeC,MAAf,EAAuBC,OAAvB;AALxB;AAOD;AAEDV,oBAAoB,CAAC,UAAD,EAAa6F,gBAAb,CAApB;;SCVgBE,iBAAiBtF,QAAaC;AAC5C,sBACKF,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CADf;AAEEsF,IAAAA,WAAW,EAAE,KAFf;AAGErE,IAAAA,KAAK,EAAE,KAHT;AAIEsD,IAAAA,SAAS,EAAE,KAJb;AAKEK,IAAAA,UAAU,EAAE9E,UAAU,CAAC,YAAD,EAAeC,MAAf,EAAuBC,OAAvB;AALxB;AAOD;AAEDV,oBAAoB,CAAC,OAAD,EAAU+F,gBAAV,CAApB;;ACPA,SAASE,aAAT,CAAuB5E,SAAvB,EAAmDX,OAAnD;AACE,MAAIW,SAAS,CAACkD,IAAd,EAAoB;AAClB,UAAMA,IAAI,GAAGlD,SAAS,CAACkD,IAAvB;AAEAlB,IAAAA,MAAM,CAACC,OAAP,CAAeiB,IAAf,EAAqB2B,OAArB,CAA6B,CAAC,CAACzC,GAAD,EAAM0C,QAAN,CAAD;AAC3B,UAAIC,UAAU,CAACD,QAAD,CAAd,EAA0B;AACxBzF,QAAAA,OAAO,CAAC2F,SAAR,CAAkBC,IAAlB,CAAuB,MAAOC,IAAP;AACrBhC,UAAAA,IAAI,CAACd,GAAD,CAAJ,GAAY,MAAM0C,QAAQ,cAAKzF,OAAL;AAAcW,YAAAA,SAAd;AAAyBkF,YAAAA;AAAzB,aAA1B;AACD,SAFD;AAGD;AACF,KAND;AAOD;AACF;;AAED,SAASC,aAAT,CAAuB/C,GAAvB,EAAoC5B,IAApC,EAA2DpB,MAA3D,EAAwEgG,UAAxE;AACE,QAAMC,QAAQ,GAAG,CAACjG,MAAM,CAACiG,QAAP,IAAmB,EAApB,EAAwBC,QAAxB,CAAiClD,GAAjC,CAAjB;;AACA,QAAMmD,QAAQ,gBACR/E,IAAI,CAAC+E,QAAL,IAAiB,EADT;AAEZF,IAAAA,QAFY;AAGZG,IAAAA,OAAO,EAAEJ,UAAU,CAACI,OAHR;AAIZC,IAAAA,SAAS,EAAE,CAACJ,QAAD,IAAcA,QAAQ,IAAID,UAAU,CAACK,SAAX,GAAuB,CAAjD,GAAsDL,UAAU,CAACK,SAAjE,GAA6ErF,SAJ5E;AAKZsF,IAAAA,SAAS,EAAEN,UAAU,CAACM,SALV;AAMZC,IAAAA,GAAG,EAAEP,UAAU,CAACQ,OANJ;AAOZC,IAAAA,GAAG,EAAET,UAAU,CAACU;AAPJ,IAAd;;AAUA,UAAQV,UAAU,CAACxG,IAAnB;AACE,SAAK,QAAL;AACE,UAAIwG,UAAU,CAACK,SAAX,KAAyB,CAAzB,IAA8BF,QAAQ,CAACF,QAA3C,EAAqD;AACnDE,QAAAA,QAAQ,CAACE,SAAT,GAAqBrF,SAArB;AACAmF,QAAAA,QAAQ,CAACF,QAAT,GAAoB,KAApB;AACD;;AACD;;AACF,SAAK,SAAL;AACEE,MAAAA,QAAQ,CAACF,QAAT,GAAoB,KAApB;AACA;AATJ;;AAYA,SAAOnF,WAAW,CAACqF,QAAD,CAAlB;AACD;;SAEeQ,uBAAuB3G,QAAaC;AAClD,QAAM2G,IAAI,GAAG;AACXhD,IAAAA,KAAK,EAAE,MADI;AAEXZ,IAAAA,GAAG,EAAE,MAFM;AAGXxD,IAAAA,IAAI,EAAE,MAHK;AAIX0B,IAAAA,KAAK,EAAE,KAJI;AAKXsD,IAAAA,SAAS,EAAE,KALA;AAMXK,IAAAA,UAAU,EAAE,IAAIvF,GAAJ,EAND;AAOXuH,IAAAA,MAAM,EAAE;AAPG,GAAb;AAUA,QAAMhC,UAAU,GAAU,EAA1B;AAEAjC,EAAAA,MAAM,CAACC,OAAP,CAAe7C,MAAM,CAAC8G,UAAtB,EAAkCrB,OAAlC,CAA0C,CAAC,CAACzC,GAAD,EAAMgD,UAAN,CAAD;AACxC,UAAMe,WAAW,GAAGf,UAAU,CAAC,cAAD,CAA9B;AACA,UAAM5E,IAAI,GAAGrB,UAAU,CAAC,KAAD,EAAQiG,UAAR;AAAqBlB,MAAAA,SAAS,EAAE9B;AAAhC,OAAwC/C,OAAxC,EAAvB;AAEA,UAAMW,SAAS,GAAGE,WAAW;AAC3BkC,MAAAA;AAD2B,OAExB5B,IAFwB;AAG3BwC,MAAAA,KAAK,EAAExC,IAAI,CAACwC,KAAL,IAAc,KAAd,GAAsB5C,SAAtB,GAAkCI,IAAI,CAACwC,KAAL,IAAcoC,UAAU,CAACgB,KAAzB,IAAkCnD,YAAY,CAACb,GAAD,CAH5D;AAI3BmD,MAAAA,QAAQ,EAAEJ,aAAa,CAAC/C,GAAD,EAAM5B,IAAN,EAAYpB,MAAZ,EAAoBgG,UAApB;AAJI,OAA7B;AAOAR,IAAAA,aAAa,CAAC5E,SAAD,EAAYX,OAAZ,CAAb;;AAEA,QAAI8G,WAAJ,EAAiB;AACf,UAAI,CAACH,IAAI,CAACC,MAAV,EAAkB;AAChBhC,QAAAA,UAAU,CAACgB,IAAX,CAAgBe,IAAhB;AACAA,QAAAA,IAAI,CAACC,MAAL,GAAc,IAAd;AACD;;AAED,UAAI,CAACD,IAAI,CAAC/B,UAAL,CAAgBjF,GAAhB,CAAoBmH,WAAW,CAAC/D,GAAhC,CAAL,EAA2C;AACzC4D,QAAAA,IAAI,CAAC/B,UAAL,CAAgBnF,GAAhB,CAAoBqH,WAAW,CAAC/D,GAAhC,eACK+D,WADL;AAEElC,UAAAA,UAAU,EAAE;AAFd;AAID;;AAED+B,MAAAA,IAAI,CAAC/B,UAAL,CAAgB/E,GAAhB,CAAoBiH,WAAW,CAAC/D,GAAhC,EAAqC6B,UAArC,CAAgDgB,IAAhD,CAAqDjF,SAArD;AACD,KAdD,MAcO;AACLiE,MAAAA,UAAU,CAACgB,IAAX,CAAgBjF,SAAhB;AACD;AACF,GA9BD;;AAgCA,MAAIgG,IAAI,CAAC/B,UAAL,CAAgBoC,IAApB,EAA0B;AACxBL,IAAAA,IAAI,CAAC/B,UAAL,GAAkB,CAAC,GAAG+B,IAAI,CAAC/B,UAAL,CAAgBnB,MAAhB,EAAJ,CAAlB;AACD;;AAED,SAAOmB,UAAP;AACD;AAEDtF,oBAAoB,CAAC,YAAD,EAAeoH,sBAAf,CAApB;;SC/FgBO,kBAAkBlH,QAAaC;AAC7C,MAAID,MAAM,CAACsC,MAAX,EAAmB;AACjB,UAAM1B,UAAS,GAAGb,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CAA5B;;AACA,YAAQD,MAAM,CAACsC,MAAf;AACE,WAAK,MAAL;AACA,WAAK,WAAL;AACE,eAAOvC,UAAU,CAAC,MAAD,EAASC,MAAT,EAAiBC,OAAjB,CAAjB;;AACF,WAAK,KAAL;AACE,eAAOa,WAAW;AAChBI,UAAAA,KAAK,EAAE;AADS,WAEbN,UAFa;AAGhBpB,UAAAA,IAAI,EAAEoB,UAAS,CAACpB,IAAV,IAAkB;AAHR,WAAlB;;AAKF;AACE,eAAOsB,WAAW;AAChBI,UAAAA,KAAK,EAAE;AADS,WAEbN,UAFa;AAGhBpB,UAAAA,IAAI,EAAEoB,UAAS,CAACpB,IAAV,IAAkBQ,MAAM,CAACsC;AAHf,WAAlB;AAXJ;AAiBD;;AAED,MAAItC,MAAM,CAACW,IAAX,EAAiB;AACf,UAAMC,WAAS,GAAGb,UAAU,CAAC,MAAD,EAASC,MAAT,EAAiBC,OAAjB,CAA5B;;AAEA,wBACKW,WADL;AAEEpB,MAAAA,IAAI,EAAEoB,WAAS,CAACpB,IAAV,IAAkB;AAF1B;AAID;;AAED,QAAMoB,SAAS,GAAGb,UAAU,CAAC,SAAD,EAAYC,MAAZ,EAAoBC,OAApB,CAA5B;AACA,SAAOa,WAAW;AAChBI,IAAAA,KAAK,EAAE,IADS;AAEhB1B,IAAAA,IAAI,EAAEoB,SAAS,CAACpB,IAAV,IAAkB;AAFR,KAGboB,SAHa,EAAlB;AAKD;AAEDrB,oBAAoB,CAAC,QAAD,EAAW2H,iBAAX,CAApB;;ACxCA;;;;;;;;SAOgBC,UAAUvG;AACxBA,EAAAA,SAAS,GAAGgC,MAAM,CAACC,OAAP,CAAejC,SAAf,EAA0BkC,MAA1B,CAAiC,CAAClC,SAAD,EAAiC,CAACoC,GAAD,EAAMC,KAAN,CAAjC;AAC3C,QAAID,GAAG,KAAK,UAAZ,EAAwB;AACtBpC,MAAAA,SAAS,CAAC,mBAAD,CAAT,gBACMA,SAAS,CAAC,mBAAD,CAAT,IAAkC,EADxC,EAEKqC,KAFL;AAID;;AAED,wBACKrC,SADL;AAEE,mBAAaoC,KAAb,GAAqBC;AAFvB;AAID,GAZW,EAYT,EAZS,CAAZ;AAcA,SAAOmE,YAAY,CAAEC,KAAD;AAClBzE,IAAAA,MAAM,CAACC,OAAP,CAAejC,SAAf,EAA0B6E,OAA1B,CAAkC,CAAC,CAACzC,GAAD,EAAMC,KAAN,CAAD;AAChCoE,MAAAA,KAAK,CAAC5G,UAAN,CAAiB6G,SAAjB,CAA2BtE,GAA3B,EAAgCC,KAAhC;;AAEA,UAAIoE,KAAK,CAACE,YAAV,EAAwB;AACtBF,QAAAA,KAAK,CAACrH,MAAN,CAAasH,SAAb,CAAuBtE,GAAvB,EAA4BC,KAA5B;AACD;AACF,KAND;AAOD,GARkB,CAAnB;AASD;;AChCD;;;;;;;;SAOgBuE,SAASzE,QAA6B;AACpD,SAAOoE,SAAS;AACdM,IAAAA,QAAQ,EAAE,KADI;AAEdxC,IAAAA,WAAW,EAAE,OAFC;AAGdC,IAAAA,IAAI,EAAE,KAHQ;AAIdwC,IAAAA,UAAU,EAAE,IAJE;AAKd1C,IAAAA,SAAS,EAAE;AALG,KAMXjC,KANW;AAOdvD,IAAAA,IAAI,EAAE;AAPQ,KAAhB;AASD;;ACdD,MAAMmI,IAAI,GAAIjC,QAAD,IAAkC,MAAOkC,IAAP;AAC7C,QAAMC,MAAM,GAAG,MAAMnC,QAAQ,CAACkC,IAAD,CAA7B;AACA,SAAO5D,IAAI,CAACC,SAAL,CAAe4D,MAAf,CAAP;AACD,CAHD;AAKA;;;;;;;;SAMgBC,eAAehE,MAAgCf,QAA6B;AAC1F,SAAOoE,SAAS,cACXpE,KADW;AAEdmB,IAAAA,OAAO,EAAE,MAFK;AAGdJ,IAAAA,IAAI,eACCf,KAAK,CAACe,IADP;AAEFC,MAAAA,IAAI,EAAE4B,UAAU,CAAC7B,IAAD,CAAV,GAAmB6D,IAAI,CAAC7D,IAAD,CAAvB,GAAgCE,IAAI,CAACC,SAAL,CAAeH,IAAf;AAFpC;AAHU,KAAhB;AAQD;;ACrBD;;;;;;;SAMgBiE,cAAcC,KAAkCjF,QAA6B;AAC3F,SAAOoE,SAAS,cACXpE,KADW;AAEdmB,IAAAA,OAAO,EAAE,KAFK;AAGdJ,IAAAA,IAAI,eACCf,KAAK,CAACe,IADP;AAEFkE,MAAAA;AAFE;AAHU,KAAhB;AAQD;;AChBD;;;;;;;;;;;;SAWgBC,OAAOC,OAAgB;AACrC,SAAOf,SAAS,CAAC;AACfgB,IAAAA,MAAM,EAAED;AADO,GAAD,CAAhB;AAGD;;ACdD;;;;;;;;SAOgBE,UAAUrF,QAA6B;AACrD,SAAOsF,aAAa,CAClBC,YAAY,CAACC,MAAD,CADM,EAElBpB,SAAS,cACJpE,KADI;AAEPyB,IAAAA,SAAS,EAAE,KAFJ;AAGPgE,IAAAA,OAAO,EAAE,OAHF;AAIPhJ,IAAAA,IAAI,EAAE;AAJC,KAFS,CAApB;AASD;;AClBD;;;;;;;;SAOgBiJ,SAAS1H,QAAQ,GAAG;AAClC,SAAOoG,SAAS,CAAC;AACfpG,IAAAA;AADe,GAAD,CAAhB;AAGD;;ACPD;;;;;;;;SAOgB2H,SAAS3F,QAAsB;AAC7C,SAAOoE,SAAS,cACXpE,KADW;AAEdvD,IAAAA,IAAI,EAAE,UAFQ;AAGdmJ,IAAAA,SAAS,EAAE;AAHG,KAAhB;AAKD;;ACVD;;;;;;;;SAOgBC,OAAO7F,QAAoB;AACzC,SAAOoE,SAAS;AACd0B,IAAAA,eAAe,EAAE,GADH;AAEd3H,IAAAA,KAAK,EAAE,IAFO;AAGdS,IAAAA,MAAM,EAAE;AAHM,KAIXoB,KAJW;AAKdvD,IAAAA,IAAI,EAAE;AALQ,KAAhB;AAOD;;ACtBD;;;;;;;;;SAQgBsJ,UAAUZ;AACxB,SAAOf,SAAS,CAAC;AACf3C,IAAAA,SAAS,EAAE0D;AADI,GAAD,CAAhB;AAGD;;ACPD;;;;;;;;SAOgBa,SAAShG,QAAsB;AAC7C,SAAOoE,SAAS;AACd6B,IAAAA,UAAU,EAAE;AADE,KAEXjG,KAFW;AAGdvD,IAAAA,IAAI,EAAE;AAHQ,KAAhB;AAKD;;AClBD;;;;;;;;;;SASgByJ,SAASjG,KAAaC;AACpC,SAAOkE,SAAS,CAAC;AACfhB,IAAAA,QAAQ,EAAE;AACR,OAACnD,GAAD,GAAOC;AADC;AADK,GAAD,CAAhB;AAKD;;ACfD;;;;;;;;;SAQgBiG,aAAaC;AAC3B,SAAOF,QAAQ,CAAC,eAAD,EAAkBE,OAAlB,CAAf;AACD;;ACVD;;;;;;;;SAOgBC,WAAWD;AACzB,SAAOhC,SAAS,CAAC;AACfkC,IAAAA,UAAU,EAAEF;AADG,GAAD,CAAhB;AAGD;;ACXD;;;;;;;;;SAQgBG,SAASrG;AACvB,SAAOgG,QAAQ,CAAC,UAAD,EAAahG,KAAb,CAAf;AACD;;ACVD;;;;;;;;;SAQgBsG,SAAStG;AACvB,SAAOgG,QAAQ,CAAC,UAAD,EAAahG,KAAb,CAAf;AACD;;ACVD;AACO,MAAMuG,cAAc,GAAsB,IAAIlK,GAAJ,EAA1C;;ACGP;;;;;SAIgBmK,KAAK3D,OAAwD;AAC3E,SAAOuC,aAAa,CACjBqB,MAAD;AACE,UAAMC,IAAI,GAAG7D,IAAI,CAAC6D,IAAL,IAAaC,MAAM,CAACF,MAAD,CAAhC;AACA,UAAMG,WAAW,GAAGC,SAAS,CAACH,IAAD,CAA7B;AACAH,IAAAA,cAAc,CAAC9J,GAAf,CAAmBiK,IAAnB,EAAyBD,MAAzB;AACAF,IAAAA,cAAc,CAAC9J,GAAf,CAAmBmK,WAAnB,EAAgCH,MAAhC;AACD,GANiB,EAOlB5D,IAAI,CAAC6D,IAAL,IAAaI,IAAI,CAACjE,IAAI,CAAC6D,IAAN,CAPC,EAQlB7D,IAAI,IAAIkE,QAAQ,CAAC,aAAD,EAAgBlE,IAAhB,CARE,CAApB;AAUD;;AClBD;;;;;;;;SAOgBmE,KAAKrG;AACnB,SAAOwD,YAAY,CAAEC,KAAD;AAClBA,IAAAA,KAAK,CAACrH,MAAN,CAAasH,SAAb,CAAuB,cAAvB,EAAuC;AACrCtE,MAAAA,GAAG,EAAEkH,SAAS,CAACtG,KAAD,CADuB;AAErCA,MAAAA;AAFqC,KAAvC;AAID,GALkB,CAAnB;AAMD;;ACfD;;;;;;;;;SAQgBuG,YAAYC;AAC1B,SAAOjD,SAAS,CAAC;AACfiD,IAAAA;AADe,GAAD,CAAhB;AAGD;;ACZD;;;;;;;;;SAQgBC,QAAQC;AACtB,SAAOnD,SAAS,CAAC;AACfmD,IAAAA;AADe,GAAD,CAAhB;AAGD;;ACZD;;;;;;;;;SAQgBC,MAAM3G;AACpB,SAAOuD,SAAS,CAAC;AACfvD,IAAAA;AADe,GAAD,CAAhB;AAGD;;ACZD;;;;;;;;SAOgB4G,YAAYC;AAC1B,SAAOtD,SAAS,CAAC;AACfsD,IAAAA;AADe,GAAD,CAAhB;AAGD;;ACXD;;;;;;;;SAOgBC,UAAUC,SAAS,GAAG;AACpC,SAAOxD,SAAS,CAAC;AACfwD,IAAAA;AADe,GAAD,CAAhB;AAGD;;ACXD;;;;;;;;;;;;;;;;;SAgBgBC,KAAKC,WAAmBC,2BAAmC;AACzE,SAAO3D,SAAS,CAAC;AACf0D,IAAAA,SADe;AAEfC,IAAAA;AAFe,GAAD,CAAhB;AAID;AAED;;;;;;;;;;;;;;;;;SAgBgBC,MAAM,GAAGC;AACvB,SAAO7D,SAAS,CAAC;AACf6D,IAAAA;AADe,GAAD,CAAhB;AAGD;;AC3CD;;;;;;;;SAOgBC,OAAOC;AACrB,SAAO/D,SAAS,CAAC;AACf+D,IAAAA;AADe,GAAD,CAAhB;AAGD;;ACXD;;;;;;;;SAOgBC,OAAOC;AACrB,SAAOjE,SAAS,CAAC;AACfiE,IAAAA;AADe,GAAD,CAAhB;AAGD;;ACXD;;;;;;;;;SAQgBC,SAASC;AACvB,SAAOnE,SAAS,CAAC;AACfoE,IAAAA,IAAI,EAAED;AADS,GAAD,CAAhB;AAGD;;ACZD;;;;;;;;;SAQgBE,YAAYC;AAC1B,SAAOtE,SAAS,CAAC;AACfsE,IAAAA;AADe,GAAD,CAAhB;AAGD;AAED;;;;;;;;;;SASgBC,SAASC,UAAkBC;AACzC,SAAOJ,WAAW,CAAC;AACjBK,IAAAA,IAAI,EAAE,IADW;AAEjBC,IAAAA,IAAI,EAAEH,QAFW;AAGjBC,IAAAA;AAHiB,GAAD,CAAlB;AAKD;AAED;;;;;;;;;;SASgBG,SAASJ,UAAkBC;AACzC,SAAOJ,WAAW,CAAC;AACjBK,IAAAA,IAAI,EAAE,KADW;AAEjBC,IAAAA,IAAI,EAAEH,QAFW;AAGjBC,IAAAA;AAHiB,GAAD,CAAlB;AAKD;;ACMD,SAASI,QAAT,CAAkBC,iBAAlB;AACE,QAAMC,GAAG,GAAGD,iBAAiB,CAACE,QAAlB,EAAZ;AAEA,QAAM,CAACC,SAAD,EAAY,GAAGC,EAAf,IAAqBH,GAAG,CAACI,KAAJ,CAAU,IAAV,CAA3B;AACA,MAAIC,OAAO,GAAGF,EAAE,CAACG,IAAH,CAAQ,IAAR,CAAd;;AAEA,MAAI,CAACJ,SAAS,CAAClG,QAAV,CAAmB,GAAnB,CAAL,EAA8B;AAC5B,UAAMuG,GAAG,MAAML,SAAS,CAACM,IAAV,MAAf;AAEAH,IAAAA,OAAO,GAAGA,OAAO,CAAClM,OAAR,CAAgB,IAAIsM,MAAJ,CAAWF,GAAX,EAAgB,IAAhB,CAAhB,EAAuC,EAAvC,CAAV;AACD;;AAED,mBAAiBF,OAAO,CAACG,IAAR,IAAjB;AACD;AAED;;;;;;;;;;SAQgBE,kBAAkBX;AAChC,MAAIY,SAAS,CAACZ,iBAAD,CAAb,EAAkC;AAChCA,IAAAA,iBAAiB,GAAGD,QAAQ,CAACC,iBAAD,CAA5B;AACD;;AAED,SAAO9E,SAAS,CAAC;AACf8E,IAAAA;AADe,GAAD,CAAhB;AAGD;;AC7EM,eAAea,eAAf,CACLC,KADK,EAEL9M,UAA6B,EAFxB;AAIL,MAAI,CAAC8M,KAAL,EAAY;AACV,WAAO/L,SAAP;AACD;;AAED,MAAIgM,QAAQ,CAACD,KAAD,CAAZ,EAAqB;AACnB,WAAOD,eAAe,CAACtD,cAAc,CAAC1J,GAAf,CAAmBiN,KAAnB,CAAD,EAAyC9M,OAAzC,CAAtB;AACD;;AAED,QAAMgN,MAAM,GAAGC,eAAe,CAACC,IAAhB,CAAqBJ,KAArB,CAAf;AACA,QAAM/M,MAAM,GAAGoN,aAAa,CAACH,MAAD,eACvBhN,OADuB;AAE1BoN,IAAAA,UAAU,EAAE;AAFc,KAA5B;AAKA,QAAM1D,IAAI,GAAGsD,MAAM,CAACjN,MAAP,CAAcsN,OAAd,EAAb;AACA,QAAMzD,WAAW,GAAGC,SAAS,CAACH,IAAD,CAA7B;AACA,QAAM/D,SAAS,GAAmB,EAAlC;AACA,QAAMf,UAAU,GAAG9E,UAAU,CAAC,YAAD,EAAeC,MAAf,eAA2BC,OAA3B;AAAoCsN,IAAAA,WAAW,EAAEvN,MAAM,CAACuN,WAAxD;AAAqE3H,IAAAA;AAArE,KAA7B;;AACA,QAAME,IAAI;AACRkB,IAAAA,KAAK,EAAE2C,IADC;AAERnK,IAAAA,IAAI,EAAE,MAFE;AAGRoF,IAAAA,OAAO,EAAE,MAHD;AAIR4I,IAAAA,IAAI,EAAE,EAJE;AAKRC,IAAAA,MAAM,EAAE,EALA;AAMRC,IAAAA,gBAAgB,EAAE;AANV,KAOLT,MAAM,CAAC5F,KAAP,CAAavH,GAAb,CAAsB,aAAtB,EAAqC,EAArC,CAPK;AAQR6J,IAAAA,IAAI,EAAEE,WARE;AASRA,IAAAA,WATQ;AAURhF,IAAAA;AAVQ,IAAV;;AAaA,QAAM8I,OAAO,CAACC,GAAR,CAAYhI,SAAS,CAACjC,GAAV,CAAe+B,QAAD,IAAmBA,QAAQ,CAACI,IAAD,EAAO7F,OAAP,CAAzC,CAAZ,CAAN;AAEA,SAAQ6F,IAAR;AACD;;;;"}
1
+ {"version":3,"file":"index.modern.js","sources":["../src/registries/FormioMappersContainer.ts","../src/utils/getRef.ts","../src/components/anyToComponent.ts","../src/components/arrayToComponent.ts","../src/components/booleanToComponent.ts","../src/components/dateToComponent.ts","../src/utils/getFormioProps.ts","../src/components/defaultToComponent.ts","../src/components/enumToComponent.ts","../src/components/mapToComponent.ts","../src/components/nestedToComponent.ts","../src/components/numberToComponent.ts","../src/components/objectToEditGrid.ts","../src/components/panelToComponent.ts","../src/components/propertiesToComponents.ts","../src/components/stringToComponent.ts","../src/decorators/component.ts","../src/decorators/currency.ts","../src/decorators/dataSourceJson.ts","../src/decorators/dataSourceUrl.ts","../src/decorators/hidden.ts","../src/decorators/inputTags.ts","../src/decorators/multiple.ts","../src/decorators/password.ts","../src/decorators/select.ts","../src/decorators/tableView.ts","../src/decorators/textarea.ts","../src/decorators/validate.ts","../src/decorators/errorMessage.ts","../src/decorators/errorLabel.ts","../src/decorators/minWords.ts","../src/decorators/maxWords.ts","../src/registries/FormsContainer.ts","../src/decorators/form.ts","../src/decorators/tabs.ts","../src/decorators/placeholder.ts","../src/decorators/tooltip.ts","../src/decorators/label.ts","../src/decorators/customClass.ts","../src/decorators/modalEdit.ts","../src/decorators/mask.ts","../src/decorators/prefix.ts","../src/decorators/suffix.ts","../src/decorators/textCase.ts","../src/decorators/conditional.ts","../src/decorators/customConditional.ts","../src/decorators/openWhenEmpty.ts","../src/utils/getFormioSchema.ts"],"sourcesContent":["export interface FormioMapper {\n (schema: any, options: any): any;\n}\n\nconst FormioMappersContainer: Map<string, FormioMapper> = new Map();\n\nexport function registerFormioMapper(type: string, mapper: FormioMapper) {\n return FormioMappersContainer.set(type, mapper);\n}\n\nexport function getFormioMapper(type: string): FormioMapper {\n // istanbul ignore next\n if (!FormioMappersContainer.has(type)) {\n throw new Error(`Formio ${type} mapper doesn't exists`);\n }\n return FormioMappersContainer.get(type)!;\n}\n\nexport function execMapper(type: string, schema: any, options: any): any {\n return getFormioMapper(type)(schema, options);\n}\n","import {getValue} from \"@tsed/core\";\n\nexport function getRef(schema: any, options: any) {\n if (schema.$ref) {\n return getValue(options, schema.$ref.replace(\"#/\", \"\").replace(/\\//g, \".\"));\n }\n return schema;\n}\n","import {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\nimport {getRef} from \"../utils/getRef\";\n\nexport function anyToComponent(schema: any, options: any) {\n schema = getRef(schema, options);\n\n switch (schema.type) {\n case \"object\":\n if (!schema.properties && !schema.$ref) {\n return execMapper(\"map\", schema, options);\n }\n\n return execMapper(\"nested\", schema, options);\n case \"array\":\n return execMapper(\"array\", schema, options);\n case \"string\":\n return execMapper(\"string\", schema, options);\n case \"boolean\":\n return execMapper(\"boolean\", schema, options);\n case \"integer\":\n case \"number\":\n return execMapper(\"number\", schema, options);\n // default:\n // return execMapper(\"default\", schema, options);\n }\n}\n\nregisterFormioMapper(\"any\", anyToComponent);\n","import {cleanObject} from \"@tsed/core\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\nimport {getRef} from \"../utils/getRef\";\n\nexport function arrayToComponent(schema: any, options: any) {\n const itemSchema = schema.items.$ref ? getRef(schema.items, options) : schema.items;\n\n const {type} = itemSchema;\n\n switch (type) {\n case \"object\": // editgrid\n return {\n ...execMapper(\"default\", schema, options),\n ...execMapper(\"editgrid\", itemSchema, options)\n };\n case \"string\": // tag or enum?\n if (itemSchema.enum) {\n const component = execMapper(\"enum\", itemSchema, options);\n\n return {\n ...component,\n inline: false,\n type: \"selectboxes\"\n };\n }\n\n const component = execMapper(type, itemSchema, options);\n\n return cleanObject({\n ...component,\n multiple: component.type === \"tags\" ? undefined : true\n });\n default:\n case \"number\":\n return {\n ...execMapper(type, itemSchema, options),\n multiple: true\n };\n }\n}\n\nregisterFormioMapper(\"array\", arrayToComponent);\n","import {cleanObject} from \"@tsed/core\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nfunction booleanToComponent(schema: any, options: any) {\n const component = execMapper(\"default\", schema, options);\n\n return cleanObject({\n ...component,\n input: true,\n type: component.type || \"checkbox\"\n });\n}\n\nregisterFormioMapper(\"boolean\", booleanToComponent);\n","import {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nfunction dateToComponent(schema: any, options: any) {\n const component = execMapper(\"default\", schema, options);\n\n const base = {\n ...component,\n enableMinDateInput: false,\n datePicker: {\n disableWeekends: false,\n disableWeekdays: false\n },\n enableMaxDateInput: false,\n enableTime: false,\n type: \"datetime\",\n input: true,\n widget: {\n type: \"calendar\",\n displayInTimezone: \"viewer\",\n locale: \"en\",\n useLocaleSettings: false,\n allowInput: true,\n mode: \"single\",\n noCalendar: false,\n hourIncrement: 1,\n minuteIncrement: 1,\n minDate: null,\n disableWeekends: false,\n disableWeekdays: false,\n maxDate: null\n }\n };\n\n if (schema.format === \"date\") {\n return {\n ...base,\n format: \"yyyy-MM-dd\",\n enableTime: false,\n widget: {\n ...base.widget,\n enableTime: false,\n format: \"yyyy-MM-dd\"\n }\n };\n }\n\n return {\n ...base,\n timePicker: {\n showMeridian: false\n },\n widget: {\n enableTime: true,\n time_24hr: true\n }\n };\n}\n\nregisterFormioMapper(\"date\", dateToComponent);\n","export function getFormioProps(schema: any) {\n const formioProps: any = Object.entries(schema).reduce((props, [key, value]) => {\n if (key.startsWith(\"x-formio-\")) {\n return {\n ...props,\n [key.replace(\"x-formio-\", \"\")]: value\n };\n }\n return props;\n }, {});\n return formioProps;\n}\n","import {cleanObject} from \"@tsed/core\";\nimport {registerFormioMapper} from \"../registries/FormioMappersContainer\";\nimport {getFormioProps} from \"../utils/getFormioProps\";\n\nexport function defaultToComponent(schema: any, options: any): any {\n const formioProps = getFormioProps(schema);\n\n return cleanObject({\n ...formioProps,\n disabled: !!schema.readOnly,\n description: schema.description,\n defaultValue: schema.default\n });\n}\n\nregisterFormioMapper(\"default\", defaultToComponent);\n","import {cleanObject} from \"@tsed/core\";\nimport {sentenceCase} from \"change-case\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function enumToComponent(schema: any, options: any) {\n const component = execMapper(\"default\", schema, options);\n const values = schema.enum.map((value: any) => {\n return {\n label: sentenceCase(value),\n value\n };\n });\n\n if (component.type === \"select\") {\n return cleanObject({\n ...component,\n data: {\n json: JSON.stringify(values)\n },\n dataSrc: \"json\",\n idPath: \"value\",\n valueProperty: \"value\",\n template: \"<span>{{ item.label }}</span>\"\n });\n }\n\n return cleanObject({\n ...component,\n values: schema[\"x-values\"] || values.map((value: any) => ({...value, shortcut: \"\"}))\n });\n}\n\nregisterFormioMapper(\"enum\", enumToComponent);\n","import {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function mapToComponent(schema: any, options: any) {\n return {\n ...execMapper(\"default\", schema, options),\n type: \"datamap\",\n tableView: false,\n input: true,\n valueComponent: {\n ...(schema.additionalProperties ? execMapper(\"any\", schema.additionalProperties, options) : {}),\n hideLabel: true,\n tableView: true\n }\n };\n}\n\nregisterFormioMapper(\"map\", mapToComponent);\n","import {sentenceCase} from \"change-case\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function nestedToComponent(schema: any, options: any) {\n return {\n ...execMapper(\"default\", schema, options),\n label: false,\n tableView: false,\n type: \"form\",\n display: \"form\",\n input: true,\n components: [\n {\n key: \"panel\",\n label: options.parentKey && sentenceCase(options.parentKey),\n ...execMapper(\"panel\", schema, options)\n }\n ]\n };\n}\n\nregisterFormioMapper(\"nested\", nestedToComponent);\n","import {cleanObject, getValue} from \"@tsed/core\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function numberToComponent(schema: any, options: any) {\n const component = execMapper(\"default\", schema, options);\n\n return cleanObject({\n ...component,\n input: true,\n delimiter: getValue(component, \"delimiter\", false),\n inputFormat: getValue(component, \"inputFormat\", \"plain\"),\n mask: getValue(component, \"mask\", false),\n requireDecimal: false,\n type: \"number\"\n });\n}\n\nregisterFormioMapper(\"number\", numberToComponent);\nregisterFormioMapper(\"integer\", numberToComponent);\n","import {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function objectToEditGrid(schema: any, options: any) {\n return {\n ...execMapper(\"default\", schema, options),\n rowDrafts: false,\n type: \"editgrid\",\n input: true,\n components: execMapper(\"properties\", schema, options)\n };\n}\n\nregisterFormioMapper(\"editgrid\", objectToEditGrid);\n","import {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function panelToComponent(schema: any, options: any) {\n return {\n ...execMapper(\"default\", schema, options),\n collapsible: false,\n input: false,\n tableView: false,\n components: execMapper(\"properties\", schema, options)\n };\n}\n\nregisterFormioMapper(\"panel\", panelToComponent);\n","import {cleanObject, isFunction} from \"@tsed/core\";\nimport {sentenceCase} from \"change-case\";\nimport {FormioComponent, FormioForm} from \"@tsed/formio-types\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nfunction bindResolvers(component: FormioComponent, options: any) {\n if (component.data) {\n const data = component.data;\n\n Object.entries(data).forEach(([key, resolver]) => {\n if (isFunction(resolver)) {\n options.resolvers.push(async (form: FormioForm) => {\n data[key] = await resolver({...options, component, form});\n });\n }\n });\n }\n}\n\nfunction mapValidation(key: string, base: FormioComponent, schema: any, propSchema: any) {\n const required = (schema.required || []).includes(key);\n const validate = {\n ...(base.validate || {}),\n required,\n pattern: propSchema.pattern,\n minLength: !required || (required && propSchema.minLength > 1) ? propSchema.minLength : undefined,\n maxLength: propSchema.maxLength,\n min: propSchema.minimum,\n max: propSchema.maximum\n };\n\n switch (propSchema.type) {\n case \"string\":\n if (propSchema.minLength === 0 && validate.required) {\n validate.minLength = undefined;\n validate.required = false;\n }\n break;\n case \"boolean\":\n validate.required = false;\n break;\n }\n\n return cleanObject(validate);\n}\n\nexport function propertiesToComponents(schema: any, options: any): any[] {\n const tabs = {\n label: \"Tabs\",\n key: \"tabs\",\n type: \"tabs\",\n input: false,\n tableView: false,\n components: new Map<string, any>(),\n pushed: false\n };\n const components: any[] = [];\n\n Object.entries(schema.properties).forEach(([key, propSchema]: [string, any]) => {\n const tabsOptions = propSchema[\"x-formiotabs\"];\n const base = execMapper(\"any\", propSchema, {parentKey: key, ...options});\n\n const component = cleanObject({\n key,\n ...base,\n label: base.label == false ? undefined : base.label || propSchema.title || sentenceCase(key),\n validate: mapValidation(key, base, schema, propSchema)\n });\n\n bindResolvers(component, options);\n\n if (tabsOptions) {\n if (!tabs.pushed) {\n components.push(tabs);\n tabs.pushed = true;\n }\n\n if (!tabs.components.has(tabsOptions.key)) {\n tabs.components.set(tabsOptions.key, {\n ...tabsOptions,\n components: []\n });\n }\n\n tabs.components.get(tabsOptions.key).components.push(component);\n } else {\n components.push(component);\n }\n });\n\n if (tabs.components.size) {\n tabs.components = [...tabs.components.values()] as any;\n }\n\n return components;\n}\n\nregisterFormioMapper(\"properties\", propertiesToComponents);\n","import {cleanObject} from \"@tsed/core\";\nimport {execMapper, registerFormioMapper} from \"../registries/FormioMappersContainer\";\n\nexport function stringToComponent(schema: any, options: any) {\n if (schema.format) {\n const component = execMapper(\"default\", schema, options);\n switch (schema.format) {\n case \"date\":\n case \"date-time\":\n return execMapper(\"date\", schema, options);\n case \"uri\":\n return cleanObject({\n input: true,\n ...component,\n type: component.type || \"url\"\n });\n default:\n return cleanObject({\n input: true,\n ...component,\n type: component.type || schema.format\n });\n }\n }\n\n if (schema.enum) {\n const component = execMapper(\"enum\", schema, options);\n\n return {\n ...component,\n type: component.type || \"radio\"\n };\n }\n\n const component = execMapper(\"default\", schema, options);\n return cleanObject({\n input: true,\n type: component.type || \"textfield\",\n ...component\n });\n}\n\nregisterFormioMapper(\"string\", stringToComponent);\n","import {JsonEntityFn, JsonEntityStore} from \"@tsed/schema\";\n\n/**\n * Declare a formio Component schema on the decorated propertyKey.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Component(component: Record<string, any>): PropertyDecorator {\n component = Object.entries(component).reduce((component: Record<string, any>, [key, value]) => {\n if (key === \"validate\") {\n component[\"x-formio-validate\"] = {\n ...(component[\"x-formio-validate\"] || {}),\n ...value\n };\n }\n\n return {\n ...component,\n [`x-formio-${key}`]: value\n };\n }, {});\n\n return JsonEntityFn((store: JsonEntityStore) => {\n Object.entries(component).forEach(([key, value]) => {\n store.itemSchema.customKey(key, value);\n\n if (store.isCollection) {\n store.schema.customKey(key, value);\n }\n });\n });\n}\n","import {Component} from \"./component\";\n/**\n * Configure the property as Currency component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Currency(props: Record<string, any> = {}): PropertyDecorator {\n return Component({\n currency: \"USD\",\n inputFormat: \"plain\",\n mask: false,\n spellcheck: true,\n delimiter: true,\n ...props,\n type: \"currency\"\n });\n}\n","import {Component} from \"./component\";\nimport {FormioDataResolver, FormioDataResolverCtx} from \"../domain/FormioDataResolver\";\nimport {isFunction} from \"@tsed/core\";\n\nconst wrap = (resolver: FormioDataResolver) => async (opts: FormioDataResolverCtx) => {\n const result = await resolver(opts);\n return JSON.stringify(result);\n};\n\n/**\n * Set custom json data source\n * @param data\n * @param props\n * @constructor\n */\nexport function DataSourceJson(data: any | FormioDataResolver, props: Record<string, any> = {}) {\n return Component({\n ...props,\n dataSrc: \"json\",\n data: {\n ...props.data,\n json: isFunction(data) ? wrap(data) : JSON.stringify(data)\n }\n });\n}\n","import {Component} from \"./component\";\nimport {FormioDataResolver} from \"../domain/FormioDataResolver\";\n\n/**\n * Set URL data on the current component.\n * @param url\n * @param props\n * @constructor\n */\nexport function DataSourceUrl(url: string | FormioDataResolver, props: Record<string, any> = {}) {\n return Component({\n ...props,\n dataSrc: \"url\",\n data: {\n ...props.data,\n url\n }\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Set hidden field.\n *\n * A hidden field is still a part of the form, but is hidden from view.\n *\n * @param bool\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Hidden(bool: boolean = true): PropertyDecorator {\n return Component({\n hidden: bool\n });\n}\n","import {useDecorators} from \"@tsed/core\";\nimport {CollectionOf} from \"@tsed/schema\";\nimport {Component} from \"./component\";\n/**\n * Configure the property as Tags component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function InputTags(props: Record<string, any> = {}): PropertyDecorator {\n return useDecorators(\n CollectionOf(String),\n Component({\n ...props,\n tableView: false,\n storeas: \"array\",\n type: \"tags\"\n })\n );\n}\n","import {Component} from \"./component\";\n\n/**\n * Change the multiple value on the decorated property.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Multiple(multiple = false): PropertyDecorator {\n return Component({\n multiple\n });\n}\n","import {Component} from \"./component\";\n\nexport interface PasswordOpts extends Record<string, any> {\n showCharCount?: boolean;\n showWordCount?: boolean;\n}\n/**\n * Configure the property as Password component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Password(props: PasswordOpts = {}): PropertyDecorator {\n return Component({\n ...props,\n type: \"password\",\n protected: true\n });\n}\n","import {Component} from \"./component\";\n\nexport interface SelectOpts extends Record<string, any> {\n idPath?: string;\n valueProperty?: string;\n template?: string;\n multiple?: boolean;\n}\n\n/**\n * Configure the property as Select component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Select(props: SelectOpts = {}): PropertyDecorator {\n return Component({\n selectThreshold: 0.3,\n input: true,\n widget: \"choicesjs\",\n ...props,\n type: \"select\"\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Change the visibility of the current property on a table.\n * @param bool\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function TableView(bool: boolean): PropertyDecorator {\n return Component({\n tableView: bool\n });\n}\n","import {Component} from \"./component\";\n\nexport interface TextareaOpts extends Record<string, any> {\n showCharCount?: boolean;\n showWordCount?: boolean;\n}\n\n/**\n * Configure the property as Textarea component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Textarea(props: TextareaOpts = {}): PropertyDecorator {\n return Component({\n autoExpand: false,\n ...props,\n type: \"textarea\"\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Add validation rules.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param key\n * @param value\n */\nexport function Validate(key: string, value: any) {\n return Component({\n validate: {\n [key]: value\n }\n });\n}\n","import {Validate} from \"./validate\";\n\n/**\n * Add error message when an error occur.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param message\n */\nexport function ErrorMessage(message: string) {\n return Validate(\"customMessage\", message);\n}\n","import {Component} from \"./component\";\n\n/**\n * Set the error label when an error occur.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function ErrorLabel(message: string) {\n return Component({\n errorLabel: message\n });\n}\n","import {Validate} from \"./validate\";\n\n/**\n * Add the maximum amount of words that can be added to this field.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param value\n */\nexport function MinWords(value: number) {\n return Validate(\"minWords\", value);\n}\n","import {Validate} from \"./validate\";\n\n/**\n * Add the minimum amount of words that can be added to this field.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param value\n */\nexport function MaxWords(value: number) {\n return Validate(\"maxWords\", value);\n}\n","import {Type} from \"@tsed/core\";\n\n// tslint:disable-next-line:variable-name\nexport const FormsContainer: Map<string, Type> = new Map();\n","import {nameOf, StoreSet, useDecorators} from \"@tsed/core\";\nimport {Name} from \"@tsed/schema\";\nimport {FormioForm} from \"@tsed/formio-types\";\nimport {paramCase} from \"change-case\";\nimport {FormsContainer} from \"../registries/FormsContainer\";\n\n/**\n * Expose the model as Formio Form.\n * @param form\n */\nexport function Form(form: Partial<Omit<FormioForm, \"components\" | \"_id\">> = {}): ClassDecorator {\n return useDecorators(\n (target: any) => {\n const name = form.name || nameOf(target);\n const machineName = paramCase(name);\n FormsContainer.set(name, target as any);\n FormsContainer.set(machineName, target as any);\n },\n form.name && Name(form.name),\n form && StoreSet(\"formio:form\", form)\n );\n}\n","import {JsonEntityFn, JsonEntityStore} from \"@tsed/schema\";\nimport {camelCase} from \"change-case\";\n\n/**\n * Group the current property in tabs components.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Tabs(label: string) {\n return JsonEntityFn((store: JsonEntityStore) => {\n store.schema.customKey(\"x-formiotabs\", {\n key: camelCase(label),\n label\n });\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * The placeholder text that will appear when this field is empty.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param placeholder\n */\nexport function Placeholder(placeholder: string) {\n return Component({\n placeholder\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Adds a tooltip to the side of this field.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param tooltip\n */\nexport function Tooltip(tooltip: string) {\n return Component({\n tooltip\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Change the label field\n * @decorator\n * @formio\n * @property\n * @schema\n * @param label\n */\nexport function Label(label: string) {\n return Component({\n label\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Add a custom css class.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function CustomClass(customClass: string) {\n return Component({\n customClass\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Opens up a modal to edit the value of this component.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function ModalEdit(modalEdit = true) {\n return Component({\n modalEdit\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * An input mask helps the user with input by ensuring a predefined format.\n *\n * - 9: numeric\n * - a: alphabetical\n * - *: alphanumeric\n *\n * Example telephone mask: (999) 999-9999\n *\n * See the [jquery.inputmask](https://github.com/RobinHerbots/Inputmask) documentation for more information.\n *\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Mask(inputMask: string, inputMaskPlaceholderChar: string = \"\") {\n return Component({\n inputMask,\n inputMaskPlaceholderChar\n });\n}\n\n/**\n * An input mask helps the user with input by ensuring a predefined format.\n *\n * - 9: numeric\n * - a: alphabetical\n * - *: alphanumeric\n *\n * Example telephone mask: (999) 999-9999\n *\n * See the [jquery.inputmask](https://github.com/RobinHerbots/Inputmask) documentation for more information.\n *\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Masks(...inputMasks: {label: string; mask: string}[]) {\n return Component({\n inputMasks\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Add prefix word on the decorated field.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Prefix(prefix: string) {\n return Component({\n prefix\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Add suffix word on the decorated field.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function Suffix(suffix: string) {\n return Component({\n suffix\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Force the output of this field to be sanitized in a specific format.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param textCase\n */\nexport function TextCase(textCase: \"uppercase\" | \"lowercase\") {\n return Component({\n case: textCase\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Adds a conditional display rule on the input form.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param conditional\n */\nexport function Conditional(conditional: {show: boolean; when: string; eq: any}) {\n return Component({\n conditional\n });\n}\n\n/**\n * Adds a conditional display rule on the input form.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param property\n * @param eq\n */\nexport function ShowWhen(property: string, eq: any) {\n return Conditional({\n show: true,\n when: property,\n eq\n });\n}\n\n/**\n * Adds a conditional display rule on the input form.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param property\n * @param eq\n */\nexport function HideWhen(property: string, eq: any) {\n return Conditional({\n show: false,\n when: property,\n eq\n });\n}\n","import {FormioComponent, FormioForm, FormioSubmission} from \"@tsed/formio-types\";\nimport type {Moment} from \"moment\";\nimport type {LoDashStatic} from \"lodash\";\nimport type {Utils} from \"formiojs\";\nimport {Component} from \"./component\";\nimport {isArrowFn} from \"@tsed/core\";\n\nexport interface CustomConditionalCtx<Value = any, Data = any, Row = any> {\n /**\n * The complete submission object.\n */\n form: FormioForm;\n /**\n * The complete submission object.\n */\n submission: FormioSubmission<Data>;\n /**\n * The complete submission data object.\n */\n data: Data;\n /**\n * Contextual \"row\" data, used within DataGrid, EditGrid, and Container components\n */\n row: Row;\n /**\n * The current component JSON\n */\n component: FormioComponent;\n /**\n * The current component instance.\n */\n instance: any;\n /**\n * The current value of the component.\n */\n value: Value;\n /**\n * The moment.js library for date manipulation.\n */\n moment: Moment;\n /**\n * An instance of Lodash.\n */\n _: LoDashStatic;\n /**\n * An instance of the FormioUtils object.\n */\n utils: typeof Utils;\n /**\n * An alias for \"utils\".\n */\n util: typeof Utils;\n}\n\nfunction sanitize(customConditional: Function) {\n const str = customConditional.toString();\n\n const [signature, ...fn] = str.split(\"=>\");\n let content = fn.join(\"=>\");\n\n if (!signature.includes(\"{\")) {\n const reg = `${signature.trim()}\\.`;\n\n content = content.replace(new RegExp(reg, \"gi\"), \"\");\n }\n\n return `show = ${content.trim()}`;\n}\n\n/**\n * Adds custom conditional rule to display or not the input form.\n * @decorator\n * @formio\n * @property\n * @schema\n * @param customConditional\n */\nexport function CustomConditional(customConditional: string | ((ctx: CustomConditionalCtx) => any)) {\n if (isArrowFn(customConditional)) {\n customConditional = sanitize(customConditional);\n }\n\n return Component({\n customConditional\n });\n}\n","import {Component} from \"./component\";\n\n/**\n * Open automatically the editgrid when the list is empty.\n * @decorator\n * @formio\n * @property\n * @schema\n */\nexport function OpenWhenEmpty(openWhenEmpty = true): PropertyDecorator {\n return Component({\n openWhenEmpty\n });\n}\n","import {isString, Type} from \"@tsed/core\";\nimport {getJsonSchema, JsonEntityStore, JsonSchemaOptions} from \"@tsed/schema\";\nimport {FormioForm} from \"@tsed/formio-types\";\nimport {execMapper} from \"../registries/FormioMappersContainer\";\nimport \"../components\";\nimport {FormsContainer} from \"../registries/FormsContainer\";\nimport {paramCase} from \"change-case\";\n\nexport async function getFormioSchema(\n model: string | any | undefined,\n options: JsonSchemaOptions = {}\n): Promise<Omit<FormioForm, \"components\" | \"_id\" | \"deleted\" | \"owner\"> | undefined> {\n if (!model) {\n return undefined;\n }\n\n if (isString(model)) {\n return getFormioSchema(FormsContainer.get(model) as Type<any>, options);\n }\n\n const entity = JsonEntityStore.from(model);\n const schema = getJsonSchema(entity, {\n ...options,\n customKeys: true\n });\n\n const name = entity.schema.getName();\n const machineName = paramCase(name);\n const resolvers: Promise<any>[] = [];\n const components = execMapper(\"properties\", schema, {...options, definitions: schema.definitions, resolvers});\n const form = {\n title: name,\n type: \"form\",\n display: \"form\",\n tags: [],\n access: [],\n submissionAccess: [],\n ...entity.store.get<any>(\"formio:form\", {}),\n name: machineName,\n machineName,\n components\n };\n\n await Promise.all(resolvers.map((resolver: any) => resolver(form, options)));\n\n return (form as unknown) as FormioForm;\n}\n"],"names":["FormioMappersContainer","Map","registerFormioMapper","type","mapper","set","getFormioMapper","has","Error","get","execMapper","schema","options","getRef","$ref","getValue","replace","anyToComponent","properties","arrayToComponent","itemSchema","items","enum","component","inline","cleanObject","multiple","undefined","booleanToComponent","input","dateToComponent","base","enableMinDateInput","datePicker","disableWeekends","disableWeekdays","enableMaxDateInput","enableTime","widget","displayInTimezone","locale","useLocaleSettings","allowInput","mode","noCalendar","hourIncrement","minuteIncrement","minDate","maxDate","format","timePicker","showMeridian","time_24hr","getFormioProps","formioProps","Object","entries","reduce","props","key","value","startsWith","defaultToComponent","disabled","readOnly","description","defaultValue","default","enumToComponent","values","map","label","sentenceCase","data","json","JSON","stringify","dataSrc","idPath","valueProperty","template","shortcut","mapToComponent","tableView","valueComponent","additionalProperties","hideLabel","nestedToComponent","display","components","parentKey","numberToComponent","delimiter","inputFormat","mask","requireDecimal","objectToEditGrid","rowDrafts","panelToComponent","collapsible","bindResolvers","forEach","resolver","isFunction","resolvers","push","form","mapValidation","propSchema","required","includes","validate","pattern","minLength","maxLength","min","minimum","max","maximum","propertiesToComponents","tabs","pushed","tabsOptions","title","size","stringToComponent","Component","JsonEntityFn","store","customKey","isCollection","Currency","currency","spellcheck","wrap","opts","result","DataSourceJson","DataSourceUrl","url","Hidden","bool","hidden","InputTags","useDecorators","CollectionOf","String","storeas","Multiple","Password","protected","Select","selectThreshold","TableView","Textarea","autoExpand","Validate","ErrorMessage","message","ErrorLabel","errorLabel","MinWords","MaxWords","FormsContainer","Form","target","name","nameOf","machineName","paramCase","Name","StoreSet","Tabs","camelCase","Placeholder","placeholder","Tooltip","tooltip","Label","CustomClass","customClass","ModalEdit","modalEdit","Mask","inputMask","inputMaskPlaceholderChar","Masks","inputMasks","Prefix","prefix","Suffix","suffix","TextCase","textCase","case","Conditional","conditional","ShowWhen","property","eq","show","when","HideWhen","sanitize","customConditional","str","toString","signature","fn","split","content","join","reg","trim","RegExp","CustomConditional","isArrowFn","OpenWhenEmpty","openWhenEmpty","getFormioSchema","model","isString","entity","JsonEntityStore","from","getJsonSchema","customKeys","getName","definitions","tags","access","submissionAccess","Promise","all"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsed/schema-formio",
3
- "version": "6.83.0",
3
+ "version": "6.86.0",
4
4
  "description": "Transform Ts.ED Schema & JsonSchema to a valid Formio schema",
5
5
  "private": false,
6
6
  "source": "./src/index.ts",
@@ -27,19 +27,19 @@
27
27
  "test": "cross-env NODE_ENV=test jest"
28
28
  },
29
29
  "dependencies": {
30
- "@tsed/formio-types": "6.83.0",
30
+ "@tsed/formio-types": "6.86.0",
31
31
  "change-case": "4.1.2",
32
32
  "tslib": "2.2.0"
33
33
  },
34
34
  "devDependencies": {
35
- "@tsed/core": "6.83.0",
36
- "@tsed/openspec": "6.83.0",
37
- "@tsed/schema": "6.83.0"
35
+ "@tsed/core": "6.86.0",
36
+ "@tsed/openspec": "6.86.0",
37
+ "@tsed/schema": "6.86.0"
38
38
  },
39
39
  "peerDependencies": {
40
- "@tsed/core": "^6.83.0",
41
- "@tsed/openspec": "^6.83.0",
42
- "@tsed/schema": "^6.83.0",
40
+ "@tsed/core": "^6.86.0",
41
+ "@tsed/openspec": "^6.86.0",
42
+ "@tsed/schema": "^6.86.0",
43
43
  "formiojs": ">=4.0.0",
44
44
  "lodash": ">=4.0.0",
45
45
  "moment": ">=2.0.0"