@socotra/ec-react-utils 2.3.0-next.1 → 2.3.0-next.11

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../lib/utils/data-model-to-JSON-schema.ts","../lib/utils/get-quote-element-request.ts","../../../node_modules/.pnpm/dayjs@1.11.12/node_modules/dayjs/dayjs.min.js","../lib/utils/get-quote-request.ts","../lib/utils/parse-element-type-and-scope-by-element-type.ts","../lib/utils/retrieve-element-from-quote-by-locator.ts","../lib/utils/retrieve-data-model-from-element.ts","../lib/utils/transform-errors.ts","../lib/utils/get-default-quote-values.ts","../lib/utils/get-default-element-values.ts","../lib/utils/extract-element-from-quote.ts","../lib/utils/extract-product-data-model.ts","../lib/utils/split-input-and-quantifier.ts","../lib/utils/extract-product-elements.ts","../lib/utils/extract-element-data-model.ts"],"sourcesContent":["import { JsonSchema7 } from '@jsonforms/core';\nimport {\n\tAccountResponse,\n\tDataTypeConfigRecord,\n\tElementResponse,\n\tFieldConfigRecord,\n\tQuoteResponse,\n} from '@socotra/ec-react-schemas';\n\ninterface DataModelToJsonSchemaProps {\n\tdata: FieldConfigRecord;\n\tdataTypes?: DataTypeConfigRecord;\n\tscope: 'P' | 'Q';\n\trootDisplayName: string;\n\taccount?: AccountResponse;\n\tquote?: QuoteResponse;\n\telement?: ElementResponse;\n}\n\nexport const dataModelToJSONSchema = (args: DataModelToJsonSchemaProps) => {\n\tconst { data, scope, dataTypes, rootDisplayName, account, quote, element } =\n\t\targs;\n\n\tconst requiredFields: string[] = [];\n\tlet definitions = {};\n\tconst properties = Object.fromEntries(\n\t\tObject.entries(data ?? {})\n\t\t\t.filter(([, value]) => {\n\t\t\t\tconst dataScope = value.scope?.split(',').map((s) => s.trim());\n\n\t\t\t\tif (!dataScope) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\t(scope === 'P' && dataScope?.includes('P')) ||\n\t\t\t\t\tdataScope?.includes('Q')\n\t\t\t\t) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (scope === 'Q' && dataScope?.includes('Q')) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t})\n\t\t\t.map(([key, value]) => {\n\t\t\t\tlet isOptional = false;\n\t\t\t\tlet isArray = false;\n\t\t\t\tlet isCustomDataType = false;\n\t\t\t\tconst displayName = value.displayName ?? key;\n\t\t\t\tconst quantifier = value.type?.slice(-1);\n\t\t\t\tconst maxLength = value.maxLength;\n\t\t\t\tconst minLength = value.minLength;\n\t\t\t\tconst max = value.max;\n\t\t\t\tconst min = value.min;\n\t\t\t\tconst regex = value.regex;\n\t\t\t\tlet type: string = value.type ?? '';\n\t\t\t\tlet format: string | undefined;\n\n\t\t\t\tswitch (quantifier) {\n\t\t\t\t\tcase '*':\n\t\t\t\t\t\tisArray = true;\n\t\t\t\t\t\tisOptional = true;\n\t\t\t\t\t\ttype = type?.split('*')[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '?':\n\t\t\t\t\t\ttype = type?.split('?')[0];\n\t\t\t\t\t\tisOptional = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '+':\n\t\t\t\t\t\tisArray = true;\n\t\t\t\t\t\ttype = type?.split('+')[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '!':\n\t\t\t\t\t\ttype = type?.split('!')[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tswitch (type) {\n\t\t\t\t\t// fields can be either 'string', 'int', 'long', 'decimal', 'dateTime', 'date', 'boolean' in kernel\n\t\t\t\t\t// JSON schema supports 'string', 'integer', 'number', 'boolean', 'null'\n\t\t\t\t\tcase 'string':\n\t\t\t\t\t\ttype = 'string';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'int':\n\t\t\t\t\tcase 'long':\n\t\t\t\t\t\ttype = 'integer';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'decimal':\n\t\t\t\t\t\ttype = 'number';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'dateTime':\n\t\t\t\t\tcase 'datetime':\n\t\t\t\t\t\ttype = 'string';\n\t\t\t\t\t\tformat = 'date-time';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'date':\n\t\t\t\t\t\ttype = 'string';\n\t\t\t\t\t\tformat = 'date';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'boolean':\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\ttype = 'boolean';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tisCustomDataType = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (!isOptional && !isCustomDataType && !isArray) {\n\t\t\t\t\trequiredFields.push(key);\n\t\t\t\t}\n\n\t\t\t\tif (isCustomDataType) {\n\t\t\t\t\tconst customDataType = dataTypes?.[type];\n\t\t\t\t\tif (customDataType) {\n\t\t\t\t\t\tlet defaultValues = isArray ? [] : {};\n\t\t\t\t\t\tconst referenceSchema = dataModelToJSONSchema({\n\t\t\t\t\t\t\tdata: customDataType.data ?? {},\n\t\t\t\t\t\t\tscope,\n\t\t\t\t\t\t\tdataTypes,\n\t\t\t\t\t\t\trootDisplayName: customDataType.displayName ?? key,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t// find any preset quote or account data for this custom data type\n\t\t\t\t\t\tif (quote) {\n\t\t\t\t\t\t\tif (quote.element?.data?.[key]) {\n\t\t\t\t\t\t\t\tdefaultValues = quote.element?.data?.[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (element) {\n\t\t\t\t\t\t\tif (element?.data?.[key]) {\n\t\t\t\t\t\t\t\tdefaultValues = element?.data?.[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (account) {\n\t\t\t\t\t\t\tif (account?.data?.[key]) {\n\t\t\t\t\t\t\t\tdefaultValues = account?.data?.[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdefinitions = {\n\t\t\t\t\t\t\t...definitions,\n\t\t\t\t\t\t\t[`${type}`]: referenceSchema,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif (isArray) {\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttitle: customDataType.displayName ?? key,\n\t\t\t\t\t\t\t\t\ttype: 'array',\n\t\t\t\t\t\t\t\t\tdefault: defaultValues,\n\t\t\t\t\t\t\t\t\titems: {\n\t\t\t\t\t\t\t\t\t\t['$ref']: `#/definitions/${type}`,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t...(!isOptional && { minItems: 1 }),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: customDataType.displayName ?? key,\n\t\t\t\t\t\t\t\tdefault: defaultValues,\n\t\t\t\t\t\t\t\t['$ref']: `#/definitions/${type}`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlet defaultValue: string | boolean | object | undefined = '';\n\n\t\t\t\tif (account) {\n\t\t\t\t\t// An account in draft state will always have keys in the same casing as the data model\n\t\t\t\t\t// An account in validated state will have keys in camelCase, so we need to convert the keys to match the way the kernel sets them\n\t\t\t\t\tconst dataKey =\n\t\t\t\t\t\taccount?.state === 'validated'\n\t\t\t\t\t\t\t? key.charAt(0).toLowerCase() + key.slice(1)\n\t\t\t\t\t\t\t: key;\n\n\t\t\t\t\tdefaultValue = account?.data?.[dataKey]\n\t\t\t\t\t\t? account?.data?.[dataKey]\n\t\t\t\t\t\t: type === 'boolean'\n\t\t\t\t\t\t\t? Boolean(value.defaultValue)\n\t\t\t\t\t\t\t: value.defaultValue;\n\t\t\t\t}\n\n\t\t\t\tif (quote) {\n\t\t\t\t\tdefaultValue = quote.element?.data?.[key]\n\t\t\t\t\t\t? quote.element?.data?.[key]\n\t\t\t\t\t\t: type === 'boolean'\n\t\t\t\t\t\t\t? Boolean(value.defaultValue)\n\t\t\t\t\t\t\t: value.defaultValue;\n\t\t\t\t}\n\n\t\t\t\tif (element) {\n\t\t\t\t\tdefaultValue = element?.data?.[key]\n\t\t\t\t\t\t? element?.data?.[key]\n\t\t\t\t\t\t: type === 'boolean'\n\t\t\t\t\t\t\t? Boolean(value.defaultValue)\n\t\t\t\t\t\t\t: value.defaultValue;\n\t\t\t\t}\n\n\t\t\t\tif (isArray) {\n\t\t\t\t\t// if the field is an array, we need to set the type to 'array' and set the items to the type of the array\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: displayName,\n\t\t\t\t\t\t\ttype: 'array',\n\t\t\t\t\t\t\tdefault: defaultValue,\n\t\t\t\t\t\t\titems: {\n\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\t...(maxLength && { maxLength }),\n\t\t\t\t\t\t\t\t...(minLength && { minLength }),\n\t\t\t\t\t\t\t\t...(min && { min }),\n\t\t\t\t\t\t\t\t...(max && { max }),\n\t\t\t\t\t\t\t\t...(format && { format }),\n\t\t\t\t\t\t\t\t...(regex && { pattern: value.regex }),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t...(!isOptional && { minItems: 1 }),\n\t\t\t\t\t\t},\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\tconst property = [\n\t\t\t\t\tkey,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: displayName,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\t...(defaultValue && { default: defaultValue }),\n\t\t\t\t\t\t...(minLength && { minLength }),\n\t\t\t\t\t\t...(maxLength && { maxLength }),\n\t\t\t\t\t\t...(min && { minimum: parseInt(min) }),\n\t\t\t\t\t\t...(max && { maximum: parseInt(max) }),\n\t\t\t\t\t\t...(format && { format }),\n\t\t\t\t\t\t...(value.options && { enum: value.options }),\n\t\t\t\t\t\t...(regex && { pattern: value.regex }),\n\t\t\t\t\t},\n\t\t\t\t];\n\t\t\t\treturn property;\n\t\t\t}),\n\t);\n\n\tconst schema: JsonSchema7 = {\n\t\ttitle: rootDisplayName,\n\t\ttype: 'object',\n\t\tdefinitions,\n\t\trequired: requiredFields,\n\t\tproperties,\n\t};\n\n\treturn schema;\n};\n","import { ElementRequest, QuoteRequest } from '@socotra/ec-react-schemas';\n\ntype GetQuoteElementRequestAttributes = {\n\tformData: { [key: string]: unknown };\n\tlocator: string;\n};\n\nexport const getQuoteElementRequest = ({\n\tformData,\n\tlocator,\n}: GetQuoteElementRequestAttributes): QuoteRequest => {\n\tconst elementRequest: ElementRequest = {\n\t\tlocator,\n\t\tsetData: formData,\n\t};\n\n\tconst request: QuoteRequest = {\n\t\telements: [elementRequest],\n\t};\n\n\treturn request;\n};\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","import { QuoteRequest } from '@socotra/ec-react-schemas';\nimport dayjs from 'dayjs';\n\ninterface QuoteFormData {\n\tdata: {\n\t\tdefault?: {\n\t\t\tstartTime?: string;\n\t\t\tendTime?: string;\n\t\t\texpirationTime?: string;\n\t\t};\n\t\tadvanced?: {\n\t\t\tcurrency?: string;\n\t\t\ttimezone?: string;\n\t\t\tbillingPlan?: string;\n\t\t\tdefaultTermDuration?: string;\n\t\t\tinstallmentPlan?: string;\n\t\t\tdurationBasis?: string;\n\t\t\tdelinquencyPlanName?: string;\n\t\t};\n\t\t[key: string]: any;\n\t};\n}\n\nexport const getQuoteRequest = ({ data }: QuoteFormData): QuoteRequest => {\n\tconst request: QuoteRequest = {};\n\n\t// copy formData into a new object\n\tconst formData = { ...data };\n\n\tif (formData.default) {\n\t\tif (formData.default.startTime) {\n\t\t\trequest.startTime = dayjs(formData.default.startTime).format();\n\t\t}\n\t\tif (formData.default.endTime) {\n\t\t\trequest.endTime = dayjs(formData.default.endTime).format();\n\t\t}\n\t\tif (formData.default.expirationTime) {\n\t\t\trequest.expirationTime = dayjs(formData.default.expirationTime).format();\n\t\t}\n\t}\n\n\tif (formData.advanced) {\n\t\tif (formData.advanced.currency) {\n\t\t\trequest.currency = formData.advanced.currency;\n\t\t}\n\t\tif (formData.advanced.timezone) {\n\t\t\trequest.timezone = formData.advanced.timezone;\n\t\t}\n\t\tif (formData.advanced.billingPlan) {\n\t\t\trequest.billingPlan = formData.advanced.billingPlan;\n\t\t}\n\t\tif (formData.advanced.defaultTermDuration) {\n\t\t\trequest.defaultTermDuration = formData.advanced.defaultTermDuration;\n\t\t}\n\t\tif (formData.advanced.installmentPlan) {\n\t\t\trequest.installmentPlan = formData.advanced.installmentPlan;\n\t\t}\n\t\tif (formData.advanced.durationBasis) {\n\t\t\trequest.durationBasis = formData.advanced.durationBasis;\n\t\t}\n\t\tif (formData.advanced.delinquencyPlanName) {\n\t\t\trequest.delinquencyPlanName = formData.advanced.delinquencyPlanName;\n\t\t}\n\t}\n\n\tdelete formData.default;\n\tdelete formData.advanced;\n\n\trequest.setData = formData;\n\n\treturn request;\n};\n","/**\n * Takes an element type and splits the postfix scope from the base model name. E.g., 'PersonalAutoQuote' becomes ['PersonalAuto', 'Quote']\n * @param elementType The element type to parse, e.g. `element.type` from an `ElementResponse`\n * @returns [elementName: string, scope: 'Quote' | 'QuickQuote' | 'Policy' | null]\n */\nexport const parseElementTypeAndScopeByElementType = (\n\telementType: string,\n): [elementName: string, scope: 'Quote' | 'QuickQuote' | 'Policy' | null] => {\n\tconst regex = /^(.*?)(Quote|QuickQuote|Policy)$/;\n\tconst match = elementType.match(regex);\n\tif (\n\t\tmatch &&\n\t\t(match[2] === 'Quote' || match[2] === 'QuickQuote' || match[2] === 'Policy')\n\t) {\n\t\treturn [match[1], match[2]]; // match[1] is the base model name, match[2] is the scope\n\t}\n\n\t// Return the original key and null for the scope if no match found\n\treturn [elementType, null];\n};\n","import { ElementResponse } from '@socotra/ec-react-schemas';\n\n/**\n * Takes the root element of a quote and a locator and returns the element with the matching locator\n * @param quoteElement The root element from the QuoteResponse\n * @param locator The locator of the element to retrieve\n * @returns ElementResponse | undefined\n */\nexport function retrieveElementFromQuoteByLocator(\n\tquoteElement: ElementResponse,\n\tlocator: string,\n): ElementResponse | undefined {\n\tif (quoteElement.locator === locator) {\n\t\treturn quoteElement;\n\t}\n\n\tif (quoteElement.elements) {\n\t\tfor (const element of quoteElement.elements) {\n\t\t\tconst foundElement = retrieveElementFromQuoteByLocator(element, locator);\n\t\t\tif (foundElement) {\n\t\t\t\treturn foundElement;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn undefined;\n}\n","import {\n\tDataModel,\n\tElementConfig,\n\tElementResponse,\n} from '@socotra/ec-react-schemas';\n\nimport { parseElementTypeAndScopeByElementType } from './parse-element-type-and-scope-by-element-type';\n\n/**\n * Looks through a data model for a matching element type and returns the element model\n * @param element The element to retrieve the data model for\n * @param dataModel The full resolved data model to search\n * @returns ElementConfig\n */\nexport function retrieveDataModelFromElement(\n\telement: ElementResponse,\n\tdataModel: DataModel,\n) {\n\tconst [elementType] = parseElementTypeAndScopeByElementType(\n\t\telement.type ?? '',\n\t);\n\n\tlet elementModel: ElementConfig = {};\n\n\t// Look in exposures\n\tif (dataModel.exposures) {\n\t\tObject.keys(dataModel.exposures).forEach((exposureName) => {\n\t\t\tif (exposureName === elementType && dataModel.exposures) {\n\t\t\t\telementModel = dataModel.exposures[exposureName];\n\t\t\t}\n\t\t});\n\t}\n\n\t// Look in coverages\n\tif (dataModel.coverages) {\n\t\tObject.keys(dataModel.coverages).forEach((coverageName) => {\n\t\t\tif (coverageName === elementType && dataModel.coverages) {\n\t\t\t\telementModel = dataModel.coverages[coverageName];\n\t\t\t}\n\t\t});\n\t}\n\n\t// Look in policyLines\n\tif (dataModel.policyLines) {\n\t\tObject.keys(dataModel.policyLines).forEach((policyLineName) => {\n\t\t\tif (policyLineName === elementType && dataModel.policyLines) {\n\t\t\t\telementModel = dataModel.policyLines[policyLineName];\n\t\t\t}\n\t\t});\n\t}\n\n\t// look in ExposureGroups\n\tif (dataModel.exposureGroups) {\n\t\tObject.keys(dataModel.exposureGroups).forEach((exposureGroupName) => {\n\t\t\tif (exposureGroupName === elementType && dataModel.exposureGroups) {\n\t\t\t\telementModel = dataModel.exposureGroups[exposureGroupName];\n\t\t\t}\n\t\t});\n\t}\n\n\treturn elementModel;\n}\n","import { ErrorObject } from 'ajv';\n\nexport function transformErrors(\n\terrors:\n\t\t| ErrorObject<string, Record<string, any>, unknown>[]\n\t\t| null\n\t\t| undefined,\n) {\n\treturn errors?.map((error) => {\n\t\tif (error.keyword === 'pattern') {\n\t\t\terror.message = `Invalid format, must match pattern ${error.params.pattern}`;\n\t\t}\n\t\tif (error.keyword === 'format') {\n\t\t\terror.message = 'Invalid format';\n\t\t}\n\t\tif (error.keyword === 'required') {\n\t\t\terror.message = 'Required';\n\t\t}\n\t\tif (error.keyword === 'minItems') {\n\t\t\terror.message = `Must have at least ${error.params.limit} item${\n\t\t\t\terror.params.limit !== 1 ? 's' : ''\n\t\t\t}`;\n\t\t}\n\t\tif (error.keyword === 'maxItems') {\n\t\t\terror.message = `Must have at most ${error.params.limit} item${\n\t\t\t\terror.params.limit !== 1 ? 's' : ''\n\t\t\t}`;\n\t\t}\n\t\tif (error.keyword === 'type') {\n\t\t\terror.message = 'Invalid format';\n\t\t}\n\t\tif (error.keyword === 'maxLength') {\n\t\t\terror.message = `Must be at most ${error.params.limit} character${\n\t\t\t\terror.params.limit !== 1 ? 's' : ''\n\t\t\t}`;\n\t\t}\n\t\tif (error.keyword === 'minLength') {\n\t\t\terror.message = `Must be at least ${error.params.limit} character${\n\t\t\t\terror.params.limit !== 1 ? 's' : ''\n\t\t\t}`;\n\t\t}\n\t\tif (error.keyword === 'minimum') {\n\t\t\terror.message = `Must be greater than or equal to ${error.params.limit}`;\n\t\t}\n\t\tif (error.keyword === 'maximum') {\n\t\t\terror.message = `Must be less than or equal to ${error.params.limit}`;\n\t\t}\n\t\tif (error.keyword === 'enum') {\n\t\t\terror.message = 'Invalid value';\n\t\t}\n\t\treturn error;\n\t});\n}\n","import {\n\tDataModel,\n\tProductConfig,\n\tQuoteResponse,\n} from '@socotra/ec-react-schemas';\nimport dayjs from 'dayjs';\n\nexport const getDefaultQuoteValues = (\n\tquote: QuoteResponse,\n\tproductModel: ProductConfig,\n\tdataModel: DataModel,\n) => {\n\treturn {\n\t\t...(quote?.element?.data && {\n\t\t\t...quote?.element?.data,\n\t\t}),\n\t\tdefault: {\n\t\t\t// set date to yyyy-MM-dd format if it exists\n\t\t\t...(quote?.startTime && {\n\t\t\t\t...{\n\t\t\t\t\tstartTime: dayjs(quote.startTime).format('YYYY-MM-DD'),\n\t\t\t\t},\n\t\t\t}),\n\t\t\t...(quote?.endTime && {\n\t\t\t\t...{\n\t\t\t\t\tendTime: dayjs(quote.endTime).format('YYYY-MM-DD'),\n\t\t\t\t},\n\t\t\t}),\n\t\t\t...(quote?.expirationTime && {\n\t\t\t\t...{\n\t\t\t\t\texpirationTime: dayjs(quote.expirationTime).format('YYYY-MM-DD'),\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t\tadvanced: {\n\t\t\tcurrency:\n\t\t\t\tquote?.currency ??\n\t\t\t\tproductModel.defaultCurrency ??\n\t\t\t\tdataModel.defaultCurrency ??\n\t\t\t\tundefined,\n\t\t\ttimezone:\n\t\t\t\tquote?.timezone ??\n\t\t\t\tproductModel.defaultTimeZone ??\n\t\t\t\tdataModel.defaultTimeZone ??\n\t\t\t\tundefined,\n\t\t\tbillingLevel:\n\t\t\t\tquote?.billingLevel ??\n\t\t\t\tproductModel.defaultBillingLevel ??\n\t\t\t\tdataModel.defaultBillingLevel ??\n\t\t\t\tundefined,\n\t\t\tbillingTrigger:\n\t\t\t\tquote?.billingTrigger ?? productModel.defaultBillingTrigger,\n\t\t\tdurationBasis:\n\t\t\t\tquote?.durationBasis ?? productModel.defaultDurationBasis ?? undefined,\n\t\t\tdelinquencyPlanName:\n\t\t\t\tquote?.delinquencyPlanName ??\n\t\t\t\tproductModel?.defaultDelinquencyPlan ??\n\t\t\t\tundefined,\n\t\t\tautoRenewalPlanName:\n\t\t\t\tquote?.autoRenewalPlanName ??\n\t\t\t\tproductModel?.defaultAutoRenewalPlan ??\n\t\t\t\tundefined,\n\t\t},\n\t};\n};\n","import { ElementResponse } from '@socotra/ec-react-schemas';\n\nexport const getDefaultElementValues = (\n\telement: ElementResponse,\n): Partial<ElementResponse> => {\n\treturn {\n\t\t...element.data,\n\t\tcoverageTerms: element.coverageTerms ?? {},\n\t};\n};\n","import { ElementResponse, QuoteResponse } from '@socotra/ec-react-schemas';\n\nconst findElementInElementArray = (\n\telements: ElementResponse[],\n\telementLocator: string,\n): ElementResponse | false => {\n\tfor (const element of elements) {\n\t\tif (element.locator === elementLocator) {\n\t\t\treturn element;\n\t\t}\n\n\t\tconst foundElement = findElementInElementArray(\n\t\t\telement.elements ?? [],\n\t\t\telementLocator,\n\t\t);\n\t\tif (foundElement) {\n\t\t\treturn foundElement;\n\t\t}\n\t}\n\n\treturn false;\n};\n\nexport const extractElementFromQuote = (\n\tquote: QuoteResponse,\n\telementLocator: string,\n) => {\n\tif (quote.element?.locator === elementLocator) {\n\t\treturn quote.element;\n\t}\n\n\treturn findElementInElementArray(\n\t\tquote.element?.elements ?? [],\n\t\telementLocator,\n\t);\n};\n","import {\n\tDataModel,\n\tProductConfig,\n\tProductConfigRecord,\n} from '@socotra/ec-react-schemas';\n\nexport const extractProductDataModel = ({\n\tdataModel,\n\telement: { productName },\n}: {\n\telement: {\n\t\tproductName: string;\n\t};\n\tdataModel: DataModel;\n}): ProductConfig => {\n\tconst currProductDataModel =\n\t\tdataModel.products[productName as keyof ProductConfigRecord] ?? {};\n\n\treturn currProductDataModel;\n};\n","import { Quantifiers } from '@socotra/ec-react-schemas';\n\nexport const splitInputAndQuantifier = (input: string | undefined) => {\n\tinput = input ?? '';\n\tconst name = input.replace(/\\?|\\*|!|\\+/g, '');\n\tconst quantifier = input.match(/\\?|\\*|!|\\+/g)?.pop() as\n\t\t| Quantifiers\n\t\t| undefined;\n\treturn {\n\t\tname,\n\t\tquantifier: quantifier ?? '',\n\t};\n};\n","import {\n\tDataModel,\n\tElementConfig,\n\tProductConfig,\n} from '@socotra/ec-react-schemas';\n\nimport { splitInputAndQuantifier } from './split-input-and-quantifier';\n\ntype ProductElement = Record<string, ElementConfig>;\n\nexport interface ProductElementMap {\n\tcoverages: ProductElement;\n\texposures: ProductElement;\n\tpolicyLines: ProductElement;\n\texposureGroups: ProductElement;\n}\n\nexport const extractProductElements = ({\n\tdataModel,\n\tproductDataModel,\n}: {\n\tdataModel: DataModel;\n\tproductDataModel: ProductConfig;\n}): ProductElementMap => {\n\tconst dataModelExposures = dataModel.exposures ?? {};\n\tconst dataModelCoverages = dataModel.coverages ?? {};\n\tconst dataModelPolicyLines = dataModel.policyLines ?? {};\n\tconst dataModelExposureGroups = dataModel.exposureGroups ?? {};\n\tconst currProductModelElements = productDataModel.contents ?? [];\n\tconst currProductModelElementsWithoutQuantifiers =\n\t\tcurrProductModelElements.map((element) => {\n\t\t\tconst { name } = splitInputAndQuantifier(element);\n\t\t\treturn name;\n\t\t});\n\n\tconst availableExposureKeys = Object.keys(dataModelExposures).filter(\n\t\t(exposure) => {\n\t\t\treturn currProductModelElementsWithoutQuantifiers.includes(exposure);\n\t\t},\n\t);\n\n\tconst availableCoverageKeys = Object.keys(dataModelCoverages).filter(\n\t\t(coverage) => {\n\t\t\treturn currProductModelElementsWithoutQuantifiers.includes(coverage);\n\t\t},\n\t);\n\n\tconst availablePolicyLineKeys = Object.keys(dataModelPolicyLines).filter(\n\t\t(policyLine) => {\n\t\t\treturn currProductModelElementsWithoutQuantifiers.includes(policyLine);\n\t\t},\n\t);\n\n\tconst availableExposureGroupKeys = Object.keys(\n\t\tdataModelExposureGroups,\n\t).filter((exposureGroup) => {\n\t\treturn currProductModelElementsWithoutQuantifiers.includes(exposureGroup);\n\t});\n\n\tconst elementModels: ProductElementMap = {\n\t\tcoverages: {},\n\t\texposures: {},\n\t\tpolicyLines: {},\n\t\texposureGroups: {},\n\t};\n\n\tfor (const key of availableExposureKeys) {\n\t\telementModels.exposures[key] = dataModelExposures[key];\n\t}\n\n\tfor (const key of availableCoverageKeys) {\n\t\telementModels.coverages[key] = dataModelCoverages[key];\n\t}\n\n\tfor (const key of availablePolicyLineKeys) {\n\t\telementModels.policyLines[key] = dataModelPolicyLines[key];\n\t}\n\n\tfor (const key of availableExposureGroupKeys) {\n\t\telementModels.exposureGroups[key] = dataModelExposureGroups[key];\n\t}\n\n\treturn elementModels;\n};\n","import {\n\tDataModel,\n\tElementConfig,\n\tQuoteResponse,\n} from '@socotra/ec-react-schemas';\n\nimport { extractElementFromQuote } from './extract-element-from-quote';\nimport { extractProductDataModel } from './extract-product-data-model';\nimport { extractProductElements } from './extract-product-elements';\n\nexport const extractElementDataModel = ({\n\tdataModel,\n\tquote,\n\telementLocator,\n}: {\n\tquote: QuoteResponse;\n\tdataModel: DataModel;\n\telementLocator: string;\n}): ElementConfig | false => {\n\tconst element = extractElementFromQuote(quote, elementLocator);\n\n\tif (!element) {\n\t\treturn {};\n\t}\n\n\tconst productDataModel = extractProductDataModel({\n\t\telement: quote,\n\t\tdataModel,\n\t});\n\n\tconst productElements = extractProductElements({\n\t\tdataModel,\n\t\tproductDataModel,\n\t});\n\n\tlet elementDataModel: ElementConfig | false = false;\n\n\t// elements on a quote have type {elementType}Quote, we have to split this\n\tconst elementType = element.type.split('Quote')[0];\n\n\t// Check exposures\n\tObject.keys(productElements.exposures).forEach((exposureKey) => {\n\t\tif (exposureKey === elementType) {\n\t\t\telementDataModel = productElements.exposures[exposureKey];\n\t\t}\n\t});\n\n\t// Check coverages\n\tif (!elementDataModel) {\n\t\tObject.keys(productElements.coverages).forEach((coverageKey) => {\n\t\t\tif (coverageKey === elementType) {\n\t\t\t\telementDataModel = productElements.coverages[coverageKey];\n\t\t\t}\n\t\t});\n\t}\n\n\t// Check policyLines\n\tif (!elementDataModel) {\n\t\tObject.keys(productElements.policyLines).forEach((policyLineKey) => {\n\t\t\tif (policyLineKey === elementType) {\n\t\t\t\telementDataModel = productElements.policyLines[policyLineKey];\n\t\t\t}\n\t\t});\n\t}\n\n\t// Check exposureGroups\n\tif (!elementDataModel) {\n\t\tObject.keys(productElements.exposureGroups).forEach((exposureGroupKey) => {\n\t\t\tif (exposureGroupKey === elementType) {\n\t\t\t\telementDataModel = productElements.exposureGroups[exposureGroupKey];\n\t\t\t}\n\t\t});\n\t}\n\n\treturn elementDataModel;\n};\n"],"names":["dataModelToJSONSchema","args","data","scope","dataTypes","rootDisplayName","account","quote","element","requiredFields","definitions","properties","value","_a","dataScope","s","key","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","isOptional","isArray","isCustomDataType","displayName","quantifier","maxLength","minLength","max","min","regex","type","format","customDataType","defaultValues","referenceSchema","defaultValue","dataKey","getQuoteElementRequest","formData","locator","t","e","module","this","n","r","i","u","a","o","c","f","h","d","l","$","y","M","m","v","g","D","p","S","_","w","O","b","k","getQuoteRequest","request","dayjs","parseElementTypeAndScopeByElementType","elementType","match","retrieveElementFromQuoteByLocator","quoteElement","foundElement","retrieveDataModelFromElement","dataModel","elementModel","exposureName","coverageName","policyLineName","exposureGroupName","transformErrors","errors","error","getDefaultQuoteValues","productModel","getDefaultElementValues","findElementInElementArray","elements","elementLocator","extractElementFromQuote","extractProductDataModel","productName","splitInputAndQuantifier","input","name","extractProductElements","productDataModel","dataModelExposures","dataModelCoverages","dataModelPolicyLines","dataModelExposureGroups","currProductModelElementsWithoutQuantifiers","availableExposureKeys","exposure","availableCoverageKeys","coverage","availablePolicyLineKeys","policyLine","availableExposureGroupKeys","exposureGroup","elementModels","extractElementDataModel","productElements","elementDataModel","exposureKey","coverageKey","policyLineKey","exposureGroupKey"],"mappings":"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","x_google_ignoreList":[2]}
1
+ {"version":3,"file":"index.es.js","sources":["../lib/utils/data-model-to-JSON-schema.ts","../../../node_modules/.pnpm/dayjs@1.11.12/node_modules/dayjs/dayjs.min.js","../lib/utils/get-quote-request.ts","../lib/utils/transform-errors.ts","../lib/utils/get-coverage-terms-default-values.ts","../lib/utils/get-default-quote-values.ts","../lib/utils/get-default-element-values.ts","../lib/utils/extract-element-data-model-from-type.ts","../lib/utils/extract-element-from-quote.ts","../lib/utils/extract-element-data-model.ts","../lib/utils/extract-elements-from-quote.ts","../lib/utils/extract-product-data-model.ts","../lib/utils/split-input-and-quantifier.ts","../lib/utils/extract-product-elements.ts"],"sourcesContent":["import { JsonSchema7 } from '@jsonforms/core';\nimport {\n\tAccountResponse,\n\tDataTypeConfigRecord,\n\tElementResponse,\n\tFieldConfigRecord,\n\tQuoteResponse,\n} from '@socotra/ec-react-schemas';\n\ninterface DataModelToJsonSchemaProps {\n\tdata: FieldConfigRecord;\n\tdataTypes?: DataTypeConfigRecord;\n\tscope: Array<'P' | 'Q' | 'QQ'>;\n\trootDisplayName?: string;\n\taccount?: AccountResponse;\n\tquote?: QuoteResponse;\n\telement?: ElementResponse;\n}\n\n/**\n * The function `dataModelToJSONSchema` converts a data model to a JSON schema based on specified\n * criteria and data types.\n * @param {DataModelToJsonSchemaProps} args - The `dataModelToJSONSchema` function takes in an object\n * `args` with the following properties:\n * @returns The function `dataModelToJSONSchema` returns a JSON schema object based on the provided\n * arguments `args`. The JSON schema object includes properties, definitions, required fields, and\n * other schema details based on the input data model and configuration.\n */\nexport const dataModelToJSONSchema = (args: DataModelToJsonSchemaProps) => {\n\tconst { data, scope, dataTypes, rootDisplayName, account, quote, element } =\n\t\targs;\n\n\tconst requiredFields: string[] = [];\n\tlet definitions = {};\n\tconst properties = Object.fromEntries(\n\t\tObject.entries(data ?? {})\n\t\t\t.filter(([, value]) => {\n\t\t\t\tconst dataScope = value.scope?.split(',').map((s) => s.trim());\n\n\t\t\t\tif (!dataScope) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tif (scope.some((s) => dataScope.includes(s))) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t})\n\t\t\t.map(([key, value]) => {\n\t\t\t\tlet isOptional = false;\n\t\t\t\tlet isArray = false;\n\t\t\t\tlet isCustomDataType = false;\n\t\t\t\tconst displayName = value.displayName ?? key;\n\t\t\t\tconst quantifier = value.type?.slice(-1);\n\t\t\t\tconst maxLength = value.maxLength;\n\t\t\t\tconst minLength = value.minLength;\n\t\t\t\tconst max = value.max;\n\t\t\t\tconst min = value.min;\n\t\t\t\tconst regex = value.regex;\n\t\t\t\tlet type: string = value.type ?? '';\n\t\t\t\tlet format: string | undefined;\n\n\t\t\t\tswitch (quantifier) {\n\t\t\t\t\tcase '*':\n\t\t\t\t\t\tisArray = true;\n\t\t\t\t\t\tisOptional = true;\n\t\t\t\t\t\ttype = type?.split('*')[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '?':\n\t\t\t\t\t\ttype = type?.split('?')[0];\n\t\t\t\t\t\tisOptional = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '+':\n\t\t\t\t\t\tisArray = true;\n\t\t\t\t\t\ttype = type?.split('+')[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '!':\n\t\t\t\t\t\ttype = type?.split('!')[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tswitch (type) {\n\t\t\t\t\t// fields can be either 'string', 'int', 'long', 'decimal', 'dateTime', 'date', 'boolean' in kernel\n\t\t\t\t\t// JSON schema supports 'string', 'integer', 'number', 'boolean', 'null'\n\t\t\t\t\tcase 'string':\n\t\t\t\t\t\ttype = 'string';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'int':\n\t\t\t\t\tcase 'long':\n\t\t\t\t\t\ttype = 'integer';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'decimal':\n\t\t\t\t\t\ttype = 'number';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'dateTime':\n\t\t\t\t\tcase 'datetime':\n\t\t\t\t\t\ttype = 'string';\n\t\t\t\t\t\tformat = 'date-time';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'date':\n\t\t\t\t\t\ttype = 'string';\n\t\t\t\t\t\tformat = 'date';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'boolean':\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\ttype = 'boolean';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tisCustomDataType = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (!isOptional && !isCustomDataType && !isArray) {\n\t\t\t\t\trequiredFields.push(key);\n\t\t\t\t}\n\n\t\t\t\tif (isCustomDataType) {\n\t\t\t\t\tconst customDataType = dataTypes?.[type];\n\t\t\t\t\tif (customDataType) {\n\t\t\t\t\t\tlet defaultValues = isArray ? [] : {};\n\t\t\t\t\t\tconst referenceSchema = dataModelToJSONSchema({\n\t\t\t\t\t\t\tdata: customDataType.data ?? {},\n\t\t\t\t\t\t\tscope,\n\t\t\t\t\t\t\tdataTypes,\n\t\t\t\t\t\t\trootDisplayName: customDataType.displayName ?? key,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t// find any preset quote or account data for this custom data type\n\t\t\t\t\t\tif (quote) {\n\t\t\t\t\t\t\tif (quote.element?.data?.[key]) {\n\t\t\t\t\t\t\t\tdefaultValues = quote.element?.data?.[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (element) {\n\t\t\t\t\t\t\tif (element?.data?.[key]) {\n\t\t\t\t\t\t\t\tdefaultValues = element?.data?.[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (account) {\n\t\t\t\t\t\t\tif (account?.data?.[key]) {\n\t\t\t\t\t\t\t\tdefaultValues = account?.data?.[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdefinitions = {\n\t\t\t\t\t\t\t...definitions,\n\t\t\t\t\t\t\t[`${type}`]: referenceSchema,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif (isArray) {\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttitle: customDataType.displayName ?? key,\n\t\t\t\t\t\t\t\t\ttype: 'array',\n\t\t\t\t\t\t\t\t\tdefault: defaultValues,\n\t\t\t\t\t\t\t\t\titems: {\n\t\t\t\t\t\t\t\t\t\t['$ref']: `#/definitions/${type}`,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t...(!isOptional && { minItems: 1 }),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttitle: customDataType.displayName ?? key,\n\t\t\t\t\t\t\t\tdefault: defaultValues,\n\t\t\t\t\t\t\t\t['$ref']: `#/definitions/${type}`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlet defaultValue: string | boolean | object | undefined = '';\n\n\t\t\t\tif (account) {\n\t\t\t\t\t// An account in draft state will always have keys in the same casing as the data model\n\t\t\t\t\t// An account in validated state will have keys in camelCase, so we need to convert the keys to match the way the kernel sets them\n\t\t\t\t\tconst dataKey =\n\t\t\t\t\t\taccount?.state === 'validated'\n\t\t\t\t\t\t\t? key.charAt(0).toLowerCase() + key.slice(1)\n\t\t\t\t\t\t\t: key;\n\n\t\t\t\t\tdefaultValue = account?.data?.[dataKey]\n\t\t\t\t\t\t? account?.data?.[dataKey]\n\t\t\t\t\t\t: type === 'boolean'\n\t\t\t\t\t\t\t? Boolean(value.defaultValue)\n\t\t\t\t\t\t\t: value.defaultValue;\n\t\t\t\t}\n\n\t\t\t\tif (quote) {\n\t\t\t\t\tdefaultValue = quote.element?.data?.[key]\n\t\t\t\t\t\t? quote.element?.data?.[key]\n\t\t\t\t\t\t: type === 'boolean'\n\t\t\t\t\t\t\t? Boolean(value.defaultValue)\n\t\t\t\t\t\t\t: value.defaultValue;\n\t\t\t\t}\n\n\t\t\t\tif (element) {\n\t\t\t\t\tdefaultValue = element?.data?.[key]\n\t\t\t\t\t\t? element?.data?.[key]\n\t\t\t\t\t\t: type === 'boolean'\n\t\t\t\t\t\t\t? Boolean(value.defaultValue)\n\t\t\t\t\t\t\t: value.defaultValue;\n\t\t\t\t}\n\n\t\t\t\tif (isArray) {\n\t\t\t\t\t// if the field is an array, we need to set the type to 'array' and set the items to the type of the array\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: displayName,\n\t\t\t\t\t\t\ttype: 'array',\n\t\t\t\t\t\t\tdefault: defaultValue,\n\t\t\t\t\t\t\titems: {\n\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\t...(maxLength && { maxLength }),\n\t\t\t\t\t\t\t\t...(minLength && { minLength }),\n\t\t\t\t\t\t\t\t...(min && { min }),\n\t\t\t\t\t\t\t\t...(max && { max }),\n\t\t\t\t\t\t\t\t...(format && { format }),\n\t\t\t\t\t\t\t\t...(regex && { pattern: value.regex }),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t...(!isOptional && { minItems: 1 }),\n\t\t\t\t\t\t},\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\tconst property = [\n\t\t\t\t\tkey,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: displayName,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\t...(defaultValue && { default: defaultValue }),\n\t\t\t\t\t\t...(minLength && { minLength }),\n\t\t\t\t\t\t...(maxLength && { maxLength }),\n\t\t\t\t\t\t...(min && { minimum: parseInt(min) }),\n\t\t\t\t\t\t...(max && { maximum: parseInt(max) }),\n\t\t\t\t\t\t...(format && { format }),\n\t\t\t\t\t\t...(value.options && { enum: value.options }),\n\t\t\t\t\t\t...(regex && { pattern: value.regex }),\n\t\t\t\t\t},\n\t\t\t\t];\n\t\t\t\treturn property;\n\t\t\t}),\n\t);\n\n\tconst schema: JsonSchema7 = {\n\t\ttitle: rootDisplayName || '',\n\t\ttype: 'object',\n\t\tdefinitions,\n\t\trequired: requiredFields,\n\t\tproperties,\n\t};\n\n\treturn schema;\n};\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","import { QuoteRequest } from '@socotra/ec-react-schemas';\nimport dayjs from 'dayjs';\n\ninterface QuoteFormData {\n\tdata: {\n\t\tdefault?: {\n\t\t\tstartTime?: string;\n\t\t\tendTime?: string;\n\t\t\texpirationTime?: string;\n\t\t};\n\t\tadvanced?: {\n\t\t\tcurrency?: string;\n\t\t\ttimezone?: string;\n\t\t\tbillingPlan?: string;\n\t\t\tdefaultTermDuration?: string;\n\t\t\tinstallmentPlan?: string;\n\t\t\tdurationBasis?: string;\n\t\t\tdelinquencyPlanName?: string;\n\t\t};\n\t\tcoverageTerms?: {\n\t\t\t[key: string]: string;\n\t\t};\n\t\t[key: string]: any;\n\t};\n}\n\n/**\n * The function `getQuoteRequest` processes form data to create a `QuoteRequest` object.\n * @param {QuoteFormData} - The `getQuoteRequest` function takes in a parameter `data` of type\n * `QuoteFormData` and returns a `QuoteRequest` object.\n * @returns The function `getQuoteRequest` returns a `QuoteRequest` object based on the provided\n * `QuoteFormData` data.\n */\nexport const getQuoteRequest = ({ data }: QuoteFormData): QuoteRequest => {\n\tconst request: QuoteRequest = {};\n\n\t// copy formData into a new object\n\tconst formData = structuredClone(data);\n\n\tif (formData.default) {\n\t\tif (formData.default.startTime) {\n\t\t\trequest.startTime = dayjs(formData.default.startTime).format();\n\t\t}\n\t\tif (formData.default.endTime) {\n\t\t\trequest.endTime = dayjs(formData.default.endTime).format();\n\t\t}\n\t\tif (formData.default.expirationTime) {\n\t\t\trequest.expirationTime = dayjs(formData.default.expirationTime).format();\n\t\t}\n\t}\n\n\tif (formData.advanced) {\n\t\tif (formData.advanced.currency) {\n\t\t\trequest.currency = formData.advanced.currency;\n\t\t}\n\t\tif (formData.advanced.timezone) {\n\t\t\trequest.timezone = formData.advanced.timezone;\n\t\t}\n\t\tif (formData.advanced.billingPlan) {\n\t\t\trequest.billingPlan = formData.advanced.billingPlan;\n\t\t}\n\t\tif (formData.advanced.defaultTermDuration) {\n\t\t\trequest.defaultTermDuration = formData.advanced.defaultTermDuration;\n\t\t}\n\t\tif (formData.advanced.installmentPlan) {\n\t\t\trequest.installmentPlan = formData.advanced.installmentPlan;\n\t\t}\n\t\tif (formData.advanced.durationBasis) {\n\t\t\trequest.durationBasis = formData.advanced.durationBasis;\n\t\t}\n\t\tif (formData.advanced.delinquencyPlanName) {\n\t\t\trequest.delinquencyPlanName = formData.advanced.delinquencyPlanName;\n\t\t}\n\t}\n\n\tif (formData.coverageTerms) {\n\t\trequest.setCoverageTerms = data.coverageTerms;\n\t}\n\n\tdelete formData.coverageTerms;\n\tdelete formData.default;\n\tdelete formData.advanced;\n\n\trequest.setData = formData;\n\n\treturn request;\n};\n","import { ErrorObject } from 'ajv';\n\nexport function transformErrors(\n\terrors:\n\t\t| ErrorObject<string, Record<string, any>, unknown>[]\n\t\t| null\n\t\t| undefined,\n) {\n\treturn errors?.map((error) => {\n\t\tif (error.keyword === 'pattern') {\n\t\t\terror.message = `Invalid format, must match pattern ${error.params.pattern}`;\n\t\t}\n\t\tif (error.keyword === 'format') {\n\t\t\terror.message = 'Invalid format';\n\t\t}\n\t\tif (error.keyword === 'required') {\n\t\t\terror.message = 'Required';\n\t\t}\n\t\tif (error.keyword === 'minItems') {\n\t\t\terror.message = `Must have at least ${error.params.limit} item${\n\t\t\t\terror.params.limit !== 1 ? 's' : ''\n\t\t\t}`;\n\t\t}\n\t\tif (error.keyword === 'maxItems') {\n\t\t\terror.message = `Must have at most ${error.params.limit} item${\n\t\t\t\terror.params.limit !== 1 ? 's' : ''\n\t\t\t}`;\n\t\t}\n\t\tif (error.keyword === 'type') {\n\t\t\terror.message = 'Invalid format';\n\t\t}\n\t\tif (error.keyword === 'maxLength') {\n\t\t\terror.message = `Must be at most ${error.params.limit} character${\n\t\t\t\terror.params.limit !== 1 ? 's' : ''\n\t\t\t}`;\n\t\t}\n\t\tif (error.keyword === 'minLength') {\n\t\t\terror.message = `Must be at least ${error.params.limit} character${\n\t\t\t\terror.params.limit !== 1 ? 's' : ''\n\t\t\t}`;\n\t\t}\n\t\tif (error.keyword === 'minimum') {\n\t\t\terror.message = `Must be greater than or equal to ${error.params.limit}`;\n\t\t}\n\t\tif (error.keyword === 'maximum') {\n\t\t\terror.message = `Must be less than or equal to ${error.params.limit}`;\n\t\t}\n\t\tif (error.keyword === 'enum') {\n\t\t\terror.message = 'Invalid value';\n\t\t}\n\t\treturn error;\n\t});\n}\n","import { CoverageTermsConfigRecord } from '@socotra/ec-react-schemas';\n\n/**\n * The `getCoverageTermsDefaultValues` function extracts default coverage terms values from a\n * `CoverageTermsConfigRecord` object and sets them based on certain conditions.\n * @param {Record<string, string>} coverageTermOptions - The `coverageTermOptions` parameter in the\n * `getCoverageTermsDefaultValues` function represents the options for coverage terms.\n * @param {CoverageTermsConfigRecord} coverageTermDataModel - The `coverageTermDataModel` parameter in the\n * `getCoverageTermsDefaultValues` function represents the configuration settings for coverage terms.\n * @returns The `getCoverageTermsDefaultValues` function returns an object with default values for\n * coverage terms.\n */\nexport const getCoverageTermsDefaultValues = ({\n\tcoverageTermOptions,\n\tcoverageTermDataModel,\n}: {\n\tcoverageTermOptions: Record<string, string>;\n\tcoverageTermDataModel: CoverageTermsConfigRecord;\n}) => {\n\tconst coverageTermsDefaultValues = structuredClone(coverageTermOptions) ?? {};\n\n\tconst coverageTermsDataModel = coverageTermDataModel;\n\n\tObject.keys(coverageTermsDataModel).forEach((coverageTermKey) => {\n\t\t// Check if it's already set by the quote\n\t\tif (coverageTermsDefaultValues[coverageTermKey]) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst options = Object.keys(\n\t\t\tcoverageTermsDataModel[coverageTermKey].options,\n\t\t);\n\n\t\toptions.forEach((option) => {\n\t\t\tif (option.startsWith('*')) {\n\t\t\t\t// Remove the * and set the default value\n\t\t\t\tconst defaultValue = option.substring(1);\n\t\t\t\tcoverageTermsDefaultValues[coverageTermKey] = defaultValue;\n\t\t\t}\n\t\t});\n\t});\n\n\treturn coverageTermsDefaultValues;\n};\n","import {\n\tDataModel,\n\tProductConfig,\n\tQuoteResponse,\n} from '@socotra/ec-react-schemas';\nimport dayjs from 'dayjs';\n\nimport { getCoverageTermsDefaultValues } from './get-coverage-terms-default-values';\n\n/**\n * The `getDefaultQuoteValues` function extracts default values from a `QuoteResponse`\n * object and sets them based on certain conditions.\n * @param {QuoteResponse} quote - The `getDefaultQuoteValues` function takes in three parameters:\n * @param {ProductConfig} productModel - The `productModel` parameter in the `getDefaultQuoteValues`\n * function represents the configuration settings for a specific product.\n * @param {DataModel} dataModel - The `dataModel` parameter in the `getDefaultQuoteValues` function\n * represents the data model used in the context of generating default values for a quote.\n * @returns The `getDefaultQuoteValues` function returns an object with properties `default` and\n * `advanced`.\n */\nexport const getDefaultQuoteValues = (\n\tquote: QuoteResponse,\n\tproductModel: ProductConfig,\n\tdataModel: DataModel,\n) => {\n\treturn {\n\t\t...(quote?.element?.data && {\n\t\t\t...quote?.element?.data,\n\t\t}),\n\t\tdefault: {\n\t\t\t// set date to yyyy-MM-dd format if it exists\n\t\t\t...(quote?.startTime && {\n\t\t\t\t...{\n\t\t\t\t\tstartTime: dayjs(quote.startTime).format('YYYY-MM-DD'),\n\t\t\t\t},\n\t\t\t}),\n\t\t\t...(quote?.endTime && {\n\t\t\t\t...{\n\t\t\t\t\tendTime: dayjs(quote.endTime).format('YYYY-MM-DD'),\n\t\t\t\t},\n\t\t\t}),\n\t\t\t...(quote?.expirationTime && {\n\t\t\t\t...{\n\t\t\t\t\texpirationTime: dayjs(quote.expirationTime).format('YYYY-MM-DD'),\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t\tadvanced: {\n\t\t\tcurrency:\n\t\t\t\tquote?.currency ??\n\t\t\t\tproductModel.defaultCurrency ??\n\t\t\t\tdataModel.defaultCurrency ??\n\t\t\t\tundefined,\n\t\t\ttimezone:\n\t\t\t\tquote?.timezone ??\n\t\t\t\tproductModel.defaultTimeZone ??\n\t\t\t\tdataModel.defaultTimeZone ??\n\t\t\t\tundefined,\n\t\t\tbillingLevel:\n\t\t\t\tquote?.billingLevel ??\n\t\t\t\tproductModel.defaultBillingLevel ??\n\t\t\t\tdataModel.defaultBillingLevel ??\n\t\t\t\tundefined,\n\t\t\tbillingTrigger:\n\t\t\t\tquote?.billingTrigger ?? productModel.defaultBillingTrigger,\n\t\t\tdurationBasis:\n\t\t\t\tquote?.durationBasis ?? productModel.defaultDurationBasis ?? undefined,\n\t\t\tdelinquencyPlanName:\n\t\t\t\tquote?.delinquencyPlanName ??\n\t\t\t\tproductModel?.defaultDelinquencyPlan ??\n\t\t\t\tundefined,\n\t\t\tautoRenewalPlanName:\n\t\t\t\tquote?.autoRenewalPlanName ??\n\t\t\t\tproductModel?.defaultAutoRenewalPlan ??\n\t\t\t\tundefined,\n\t\t},\n\t\tcoverageTerms: getCoverageTermsDefaultValues({\n\t\t\tcoverageTermDataModel: dataModel.coverageTerms,\n\t\t\tcoverageTermOptions: quote?.element?.coverageTerms ?? {},\n\t\t}),\n\t};\n};\n","import {\n\tCoverageTermsConfigRecord,\n\tElementResponse,\n} from '@socotra/ec-react-schemas';\n\nimport { getCoverageTermsDefaultValues } from './get-coverage-terms-default-values';\n\n/**\n * The function `getDefaultElementValues` returns a partial copy of an ElementResponse object with\n * default values for coverageTerms if not provided.\n * @param {ElementResponse} element - The `element` parameter in the `getDefaultElementValues` function\n * is of type `ElementResponse`, which contains data related to an element in a system or\n * application.\n * @returns A partial ElementResponse object is being returned, with the data from the input element\n * and the coverageTerms property set to element.coverageTerms if it exists, otherwise an empty object.\n */\nexport const getDefaultElementValues = (\n\telement: ElementResponse,\n\tcoverageTermDataModel: CoverageTermsConfigRecord,\n): Partial<ElementResponse> => {\n\treturn {\n\t\t...element.data,\n\t\tcoverageTerms: getCoverageTermsDefaultValues({\n\t\t\tcoverageTermOptions: element.coverageTerms ?? {},\n\t\t\tcoverageTermDataModel: coverageTermDataModel,\n\t\t}),\n\t};\n};\n","import { DataModel, ElementConfig } from '@socotra/ec-react-schemas';\n\n/**\n * The function `extractElementDataModelFromType` extracts element data model given a data model and\n * element type.\n * @param - - `dataModel`: A DataModel object containing information about a data model.\n * @param - - `elementType`: A string containing the element type.\n * @returns The function `extractElementDataModelFromType` returns either an `ElementConfig` object or `false`\n * based on the provided parameters and data model.\n */\nexport const extractElementDataModelFromType = ({\n\tdataModel,\n\telementType,\n}: {\n\tdataModel: DataModel;\n\telementType: string;\n}): ElementConfig | false => {\n\tlet elementDataModel: ElementConfig | false = false;\n\n\t// elements on a quote have type {elementType}Quote, we have to split this\n\tconst splitElementType = elementType.split('Quote')[0];\n\n\t// Check exposures\n\tObject.keys(dataModel.exposures ?? {}).forEach((exposureKey) => {\n\t\tif (exposureKey === splitElementType) {\n\t\t\telementDataModel = dataModel.exposures\n\t\t\t\t? dataModel.exposures[exposureKey]\n\t\t\t\t: {};\n\t\t}\n\t});\n\n\t// Check coverages\n\tif (!elementDataModel) {\n\t\tObject.keys(dataModel.coverages ?? {}).forEach((coverageKey) => {\n\t\t\tif (coverageKey === splitElementType) {\n\t\t\t\telementDataModel = dataModel.coverages\n\t\t\t\t\t? dataModel.coverages[coverageKey]\n\t\t\t\t\t: {};\n\t\t\t}\n\t\t});\n\t}\n\n\t// Check policyLines\n\tif (!elementDataModel) {\n\t\tObject.keys(dataModel.policyLines ?? {}).forEach((policyLineKey) => {\n\t\t\tif (policyLineKey === splitElementType) {\n\t\t\t\telementDataModel = dataModel.policyLines\n\t\t\t\t\t? dataModel.policyLines[policyLineKey]\n\t\t\t\t\t: {};\n\t\t\t}\n\t\t});\n\t}\n\n\t// Check exposureGroups\n\tif (!elementDataModel) {\n\t\tObject.keys(dataModel.exposureGroups ?? {}).forEach((exposureGroupKey) => {\n\t\t\tif (exposureGroupKey === splitElementType) {\n\t\t\t\telementDataModel = dataModel.exposureGroups\n\t\t\t\t\t? dataModel.exposureGroups[exposureGroupKey]\n\t\t\t\t\t: {};\n\t\t\t}\n\t\t});\n\t}\n\n\treturn elementDataModel;\n};\n","import { ElementResponse, QuoteResponse } from '@socotra/ec-react-schemas';\n\nconst findElementInElementArray = (\n\telements: ElementResponse[],\n\telementLocator: string,\n): ElementResponse | false => {\n\tfor (const element of elements) {\n\t\tif (element.locator === elementLocator) {\n\t\t\treturn element;\n\t\t}\n\n\t\tconst foundElement = findElementInElementArray(\n\t\t\telement.elements ?? [],\n\t\t\telementLocator,\n\t\t);\n\t\tif (foundElement) {\n\t\t\treturn foundElement;\n\t\t}\n\t}\n\n\treturn false;\n};\n\n/**\n * The function `extractElementFromQuote` takes a `QuoteResponse` object and an element locator string,\n * and returns the element with the matching locator from the quote or its nested elements.\n * @param {QuoteResponse} quote - The `quote` parameter is of type `QuoteResponse`, which is an object\n * containing information about a quote.\n * @param {string} elementLocator - The `elementLocator` parameter is a string that represents the\n * locator of the element you want to extract from the `quote` object.\n * @returns The function `extractElementFromQuote` returns the element from the `QuoteResponse` object\n * that matches the provided `elementLocator`.\n */\nexport const extractElementFromQuote = (\n\tquote: QuoteResponse,\n\telementLocator: string,\n) => {\n\tif (quote.element?.locator === elementLocator) {\n\t\treturn quote.element;\n\t}\n\n\treturn findElementInElementArray(\n\t\tquote.element?.elements ?? [],\n\t\telementLocator,\n\t);\n};\n","import {\n\tDataModel,\n\tElementConfig,\n\tQuoteResponse,\n} from '@socotra/ec-react-schemas';\n\nimport { extractElementDataModelFromType } from './extract-element-data-model-from-type';\nimport { extractElementFromQuote } from './extract-element-from-quote';\n\n/**\n * The function `extractElementDataModel` extracts element data model based on a given quote, data\n * model, and element locator.\n * @param - - `quote`: A QuoteResponse object containing information about a quote.\n * @param - - `dataModel`: A DataModel object containing information about a data model.\n * @param - - `elementLocator`: A string containing the element locator.\n * @returns The function `extractElementDataModel` returns either an `ElementConfig` object or `false`\n * based on the provided parameters and data model.\n */\nexport const extractElementDataModel = ({\n\tdataModel,\n\tquote,\n\telementLocator,\n}: {\n\tquote: QuoteResponse;\n\tdataModel: DataModel;\n\telementLocator: string;\n}): ElementConfig | false => {\n\tconst element = extractElementFromQuote(quote, elementLocator);\n\n\tif (!element) {\n\t\treturn {};\n\t}\n\n\tconst elementDataModel = extractElementDataModelFromType({\n\t\tdataModel,\n\t\telementType: element.type,\n\t});\n\n\treturn elementDataModel;\n};\n","import { ElementResponse } from '@socotra/ec-react-schemas';\n\nexport const extractElementsFromQuote = (\n\telements: Array<ElementResponse>,\n\telementType: string,\n) => {\n\tconst filteredElements = elements.filter(\n\t\t(element) => element.type === `${elementType}Quote`,\n\t);\n\n\treturn filteredElements;\n};\n","import {\n\tDataModel,\n\tProductConfig,\n\tProductConfigRecord,\n} from '@socotra/ec-react-schemas';\n\n/**\n * The function `extractProductDataModel` extracts product data model based on the product name from a\n * given data model.\n * @param - The `extractProductDataModel` function takes in two parameters:\n * @returns The function `extractProductDataModel` returns the product configuration data for the\n * specified product name from the provided data model.\n */\nexport const extractProductDataModel = ({\n\tdataModel,\n\telement: { productName },\n}: {\n\telement: {\n\t\tproductName: string;\n\t};\n\tdataModel: DataModel;\n}): ProductConfig => {\n\tconst currProductDataModel =\n\t\tdataModel.products[productName as keyof ProductConfigRecord] ?? {};\n\n\treturn currProductDataModel;\n};\n","import { Quantifiers } from '@socotra/ec-react-schemas';\n\n/**\n * The function `splitInputAndQuantifier` takes a string input, removes certain characters from it, and\n * extracts a quantifier if present.\n * @param {string | undefined} input - The `splitInputAndQuantifier` function takes a string input and\n * splits it into two parts: the name and the quantifier. The quantifier is extracted from the end of\n * the input string, while the name is the input string with certain characters (? * ! +) removed.\n * @returns The function `splitInputAndQuantifier` returns an object with two properties:\n * - `name`: a string that is the input with any of the characters '?', '*', '!', or '+' removed\n * - `quantifier`: a string that represents the quantifier found at the end of the input string, or an\n * empty string if no quantifier is found\n */\nexport const splitInputAndQuantifier = (input: string | undefined) => {\n\tinput = input ?? '';\n\tconst name = input.replace(/\\?|\\*|!|\\+/g, '');\n\tconst quantifier = input.match(/\\?|\\*|!|\\+/g)?.pop() as\n\t\t| Quantifiers\n\t\t| undefined;\n\treturn {\n\t\tname,\n\t\tquantifier: quantifier ?? '',\n\t};\n};\n","import { DataModel, ElementConfig } from '@socotra/ec-react-schemas';\n\nimport { splitInputAndQuantifier } from './split-input-and-quantifier';\n\ntype ProductElement = Record<string, ElementConfig>;\n\nexport interface ProductElementMap {\n\tcoverages: ProductElement;\n\texposures: ProductElement;\n\tpolicyLines: ProductElement;\n\texposureGroups: ProductElement;\n}\n\n/**\n * The function `extractProductElements` extracts specific elements from a data model based on a\n * product data model configuration.\n * @param - The `extractProductElements` function takes in two parameters:\n * @returns The function `extractProductElements` returns a `ProductElementMap` object containing\n * elements related to coverages, exposures, policy lines, and exposure groups that are available based\n * on the provided `dataModel` and `productDataModel`.\n */\nexport const extractProductElements = ({\n\tdataModel,\n\tcontents,\n}: {\n\tdataModel: DataModel;\n\tcontents: string[];\n}): ProductElementMap => {\n\tconst dataModelExposures = dataModel.exposures ?? {};\n\tconst dataModelCoverages = dataModel.coverages ?? {};\n\tconst dataModelPolicyLines = dataModel.policyLines ?? {};\n\tconst dataModelExposureGroups = dataModel.exposureGroups ?? {};\n\tconst currProductModelElements = contents ?? [];\n\tconst currProductModelElementsWithoutQuantifiers =\n\t\tcurrProductModelElements.map((element) => {\n\t\t\tconst { name } = splitInputAndQuantifier(element);\n\t\t\treturn name;\n\t\t});\n\n\tconst availableExposureKeys = Object.keys(dataModelExposures).filter(\n\t\t(exposure) => {\n\t\t\treturn currProductModelElementsWithoutQuantifiers.includes(exposure);\n\t\t},\n\t);\n\n\tconst availableCoverageKeys = Object.keys(dataModelCoverages).filter(\n\t\t(coverage) => {\n\t\t\treturn currProductModelElementsWithoutQuantifiers.includes(coverage);\n\t\t},\n\t);\n\n\tconst availablePolicyLineKeys = Object.keys(dataModelPolicyLines).filter(\n\t\t(policyLine) => {\n\t\t\treturn currProductModelElementsWithoutQuantifiers.includes(policyLine);\n\t\t},\n\t);\n\n\tconst availableExposureGroupKeys = Object.keys(\n\t\tdataModelExposureGroups,\n\t).filter((exposureGroup) => {\n\t\treturn currProductModelElementsWithoutQuantifiers.includes(exposureGroup);\n\t});\n\n\tconst elementModels: ProductElementMap = {\n\t\tcoverages: {},\n\t\texposures: {},\n\t\tpolicyLines: {},\n\t\texposureGroups: {},\n\t};\n\n\tfor (const key of availableExposureKeys) {\n\t\telementModels.exposures[key] = dataModelExposures[key];\n\t}\n\n\tfor (const key of availableCoverageKeys) {\n\t\telementModels.coverages[key] = dataModelCoverages[key];\n\t}\n\n\tfor (const key of availablePolicyLineKeys) {\n\t\telementModels.policyLines[key] = dataModelPolicyLines[key];\n\t}\n\n\tfor (const key of availableExposureGroupKeys) {\n\t\telementModels.exposureGroups[key] = dataModelExposureGroups[key];\n\t}\n\n\treturn elementModels;\n};\n"],"names":["dataModelToJSONSchema","args","data","scope","dataTypes","rootDisplayName","account","quote","element","requiredFields","definitions","properties","value","_a","dataScope","s","key","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","isOptional","isArray","isCustomDataType","displayName","quantifier","maxLength","minLength","max","min","regex","type","format","customDataType","defaultValues","referenceSchema","defaultValue","dataKey","t","e","module","this","n","r","i","u","a","o","c","f","h","d","l","$","y","M","m","v","g","D","p","S","_","w","O","b","k","getQuoteRequest","request","formData","dayjs","transformErrors","errors","error","getCoverageTermsDefaultValues","coverageTermOptions","coverageTermDataModel","coverageTermsDefaultValues","coverageTermsDataModel","coverageTermKey","option","getDefaultQuoteValues","productModel","dataModel","getDefaultElementValues","extractElementDataModelFromType","elementType","elementDataModel","splitElementType","exposureKey","coverageKey","policyLineKey","exposureGroupKey","findElementInElementArray","elements","elementLocator","foundElement","extractElementFromQuote","extractElementDataModel","extractElementsFromQuote","extractProductDataModel","productName","splitInputAndQuantifier","input","name","extractProductElements","contents","dataModelExposures","dataModelCoverages","dataModelPolicyLines","dataModelExposureGroups","currProductModelElementsWithoutQuantifiers","availableExposureKeys","exposure","availableCoverageKeys","coverage","availablePolicyLineKeys","policyLine","availableExposureGroupKeys","exposureGroup","elementModels"],"mappings":"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","x_google_ignoreList":[1]}
package/dist/index.umd.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(x,H){typeof exports=="object"&&typeof module<"u"?H(exports):typeof define=="function"&&define.amd?define(["exports"],H):(x=typeof globalThis<"u"?globalThis:x||self,H(x.schemas={}))})(this,function(x){"use strict";const H=t=>{const{data:e,scope:a,dataTypes:f,rootDisplayName:v,account:d,quote:D,element:p}=t,T=[];let P={};const A=Object.fromEntries(Object.entries(e??{}).filter(([,h])=>{var E;const r=(E=h.scope)==null?void 0:E.split(",").map(Y=>Y.trim());return!!(!r||a==="P"&&(r!=null&&r.includes("P"))||r!=null&&r.includes("Q")||a==="Q"&&(r!=null&&r.includes("Q")))}).map(([h,r])=>{var F,J,c,s,n,u,i,l,o,y,b,w,O,k,N,I,V;let E=!1,Y=!1,W=!1;const U=r.displayName??h,X=(F=r.type)==null?void 0:F.slice(-1),C=r.maxLength,R=r.minLength,_=r.max,j=r.min,z=r.regex;let m=r.type??"",Q;switch(X){case"*":Y=!0,E=!0,m=m==null?void 0:m.split("*")[0];break;case"?":m=m==null?void 0:m.split("?")[0],E=!0;break;case"+":Y=!0,m=m==null?void 0:m.split("+")[0];break;case"!":m=m==null?void 0:m.split("!")[0];break}switch(m){case"string":m="string";break;case"int":case"long":m="integer";break;case"decimal":m="number";break;case"dateTime":case"datetime":m="string",Q="date-time";break;case"date":m="string",Q="date";break;case"boolean":case"bool":m="boolean";break;default:W=!0;break}if(!E&&!W&&!Y&&T.push(h),W){const S=f==null?void 0:f[m];if(S){let M=Y?[]:{};const B=H({data:S.data??{},scope:a,dataTypes:f,rootDisplayName:S.displayName??h});return D&&(c=(J=D.element)==null?void 0:J.data)!=null&&c[h]&&(M=(n=(s=D.element)==null?void 0:s.data)==null?void 0:n[h]),p&&(u=p==null?void 0:p.data)!=null&&u[h]&&(M=(i=p==null?void 0:p.data)==null?void 0:i[h]),d&&(l=d==null?void 0:d.data)!=null&&l[h]&&(M=(o=d==null?void 0:d.data)==null?void 0:o[h]),P={...P,[`${m}`]:B},Y?[h,{title:S.displayName??h,type:"array",default:M,items:{$ref:`#/definitions/${m}`},...!E&&{minItems:1}}]:[h,{title:S.displayName??h,default:M,$ref:`#/definitions/${m}`}]}}let $="";if(d){const S=(d==null?void 0:d.state)==="validated"?h.charAt(0).toLowerCase()+h.slice(1):h;$=(y=d==null?void 0:d.data)!=null&&y[S]?(b=d==null?void 0:d.data)==null?void 0:b[S]:m==="boolean"?!!r.defaultValue:r.defaultValue}return D&&($=(O=(w=D.element)==null?void 0:w.data)!=null&&O[h]?(N=(k=D.element)==null?void 0:k.data)==null?void 0:N[h]:m==="boolean"?!!r.defaultValue:r.defaultValue),p&&($=(I=p==null?void 0:p.data)!=null&&I[h]?(V=p==null?void 0:p.data)==null?void 0:V[h]:m==="boolean"?!!r.defaultValue:r.defaultValue),Y?[h,{title:U,type:"array",default:$,items:{type:m,...C&&{maxLength:C},...R&&{minLength:R},...j&&{min:j},..._&&{max:_},...Q&&{format:Q},...z&&{pattern:r.regex}},...!E&&{minItems:1}}]:[h,{title:U,type:m,...$&&{default:$},...R&&{minLength:R},...C&&{maxLength:C},...j&&{minimum:parseInt(j)},..._&&{maximum:parseInt(_)},...Q&&{format:Q},...r.options&&{enum:r.options},...z&&{pattern:r.regex}}]}));return{title:v,type:"object",definitions:P,required:T,properties:A}},ue=({formData:t,locator:e})=>({elements:[{locator:e,setData:t}]});var ce=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function le(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var q={exports:{}};(function(t,e){(function(a,f){t.exports=f()})(ce,function(){var a=1e3,f=6e4,v=36e5,d="millisecond",D="second",p="minute",T="hour",P="day",A="week",L="month",h="quarter",r="year",E="date",Y="Invalid Date",W=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,U=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,X={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(c){var s=["th","st","nd","rd"],n=c%100;return"["+c+(s[(n-20)%10]||s[n]||s[0])+"]"}},C=function(c,s,n){var u=String(c);return!u||u.length>=s?c:""+Array(s+1-u.length).join(n)+c},R={s:C,z:function(c){var s=-c.utcOffset(),n=Math.abs(s),u=Math.floor(n/60),i=n%60;return(s<=0?"+":"-")+C(u,2,"0")+":"+C(i,2,"0")},m:function c(s,n){if(s.date()<n.date())return-c(n,s);var u=12*(n.year()-s.year())+(n.month()-s.month()),i=s.clone().add(u,L),l=n-i<0,o=s.clone().add(u+(l?-1:1),L);return+(-(u+(n-i)/(l?i-o:o-i))||0)},a:function(c){return c<0?Math.ceil(c)||0:Math.floor(c)},p:function(c){return{M:L,y:r,w:A,d:P,D:E,h:T,m:p,s:D,ms:d,Q:h}[c]||String(c||"").toLowerCase().replace(/s$/,"")},u:function(c){return c===void 0}},_="en",j={};j[_]=X;var z="$isDayjsObject",m=function(c){return c instanceof F||!(!c||!c[z])},Q=function c(s,n,u){var i;if(!s)return _;if(typeof s=="string"){var l=s.toLowerCase();j[l]&&(i=l),n&&(j[l]=n,i=l);var o=s.split("-");if(!i&&o.length>1)return c(o[0])}else{var y=s.name;j[y]=s,i=y}return!u&&i&&(_=i),i||!u&&_},$=function(c,s){if(m(c))return c.clone();var n=typeof s=="object"?s:{};return n.date=c,n.args=arguments,new F(n)},g=R;g.l=Q,g.i=m,g.w=function(c,s){return $(c,{locale:s.$L,utc:s.$u,x:s.$x,$offset:s.$offset})};var F=function(){function c(n){this.$L=Q(n.locale,null,!0),this.parse(n),this.$x=this.$x||n.x||{},this[z]=!0}var s=c.prototype;return s.parse=function(n){this.$d=function(u){var i=u.date,l=u.utc;if(i===null)return new Date(NaN);if(g.u(i))return new Date;if(i instanceof Date)return new Date(i);if(typeof i=="string"&&!/Z$/i.test(i)){var o=i.match(W);if(o){var y=o[2]-1||0,b=(o[7]||"0").substring(0,3);return l?new Date(Date.UTC(o[1],y,o[3]||1,o[4]||0,o[5]||0,o[6]||0,b)):new Date(o[1],y,o[3]||1,o[4]||0,o[5]||0,o[6]||0,b)}}return new Date(i)}(n),this.init()},s.init=function(){var n=this.$d;this.$y=n.getFullYear(),this.$M=n.getMonth(),this.$D=n.getDate(),this.$W=n.getDay(),this.$H=n.getHours(),this.$m=n.getMinutes(),this.$s=n.getSeconds(),this.$ms=n.getMilliseconds()},s.$utils=function(){return g},s.isValid=function(){return this.$d.toString()!==Y},s.isSame=function(n,u){var i=$(n);return this.startOf(u)<=i&&i<=this.endOf(u)},s.isAfter=function(n,u){return $(n)<this.startOf(u)},s.isBefore=function(n,u){return this.endOf(u)<$(n)},s.$g=function(n,u,i){return g.u(n)?this[u]:this.set(i,n)},s.unix=function(){return Math.floor(this.valueOf()/1e3)},s.valueOf=function(){return this.$d.getTime()},s.startOf=function(n,u){var i=this,l=!!g.u(u)||u,o=g.p(n),y=function(S,M){var B=g.w(i.$u?Date.UTC(i.$y,M,S):new Date(i.$y,M,S),i);return l?B:B.endOf(P)},b=function(S,M){return g.w(i.toDate()[S].apply(i.toDate("s"),(l?[0,0,0,0]:[23,59,59,999]).slice(M)),i)},w=this.$W,O=this.$M,k=this.$D,N="set"+(this.$u?"UTC":"");switch(o){case r:return l?y(1,0):y(31,11);case L:return l?y(1,O):y(0,O+1);case A:var I=this.$locale().weekStart||0,V=(w<I?w+7:w)-I;return y(l?k-V:k+(6-V),O);case P:case E:return b(N+"Hours",0);case T:return b(N+"Minutes",1);case p:return b(N+"Seconds",2);case D:return b(N+"Milliseconds",3);default:return this.clone()}},s.endOf=function(n){return this.startOf(n,!1)},s.$set=function(n,u){var i,l=g.p(n),o="set"+(this.$u?"UTC":""),y=(i={},i[P]=o+"Date",i[E]=o+"Date",i[L]=o+"Month",i[r]=o+"FullYear",i[T]=o+"Hours",i[p]=o+"Minutes",i[D]=o+"Seconds",i[d]=o+"Milliseconds",i)[l],b=l===P?this.$D+(u-this.$W):u;if(l===L||l===r){var w=this.clone().set(E,1);w.$d[y](b),w.init(),this.$d=w.set(E,Math.min(this.$D,w.daysInMonth())).$d}else y&&this.$d[y](b);return this.init(),this},s.set=function(n,u){return this.clone().$set(n,u)},s.get=function(n){return this[g.p(n)]()},s.add=function(n,u){var i,l=this;n=Number(n);var o=g.p(u),y=function(O){var k=$(l);return g.w(k.date(k.date()+Math.round(O*n)),l)};if(o===L)return this.set(L,this.$M+n);if(o===r)return this.set(r,this.$y+n);if(o===P)return y(1);if(o===A)return y(7);var b=(i={},i[p]=f,i[T]=v,i[D]=a,i)[o]||1,w=this.$d.getTime()+n*b;return g.w(w,this)},s.subtract=function(n,u){return this.add(-1*n,u)},s.format=function(n){var u=this,i=this.$locale();if(!this.isValid())return i.invalidDate||Y;var l=n||"YYYY-MM-DDTHH:mm:ssZ",o=g.z(this),y=this.$H,b=this.$m,w=this.$M,O=i.weekdays,k=i.months,N=i.meridiem,I=function(M,B,Z,K){return M&&(M[B]||M(u,l))||Z[B].slice(0,K)},V=function(M){return g.s(y%12||12,M,"0")},S=N||function(M,B,Z){var K=M<12?"AM":"PM";return Z?K.toLowerCase():K};return l.replace(U,function(M,B){return B||function(Z){switch(Z){case"YY":return String(u.$y).slice(-2);case"YYYY":return g.s(u.$y,4,"0");case"M":return w+1;case"MM":return g.s(w+1,2,"0");case"MMM":return I(i.monthsShort,w,k,3);case"MMMM":return I(k,w);case"D":return u.$D;case"DD":return g.s(u.$D,2,"0");case"d":return String(u.$W);case"dd":return I(i.weekdaysMin,u.$W,O,2);case"ddd":return I(i.weekdaysShort,u.$W,O,3);case"dddd":return O[u.$W];case"H":return String(y);case"HH":return g.s(y,2,"0");case"h":return V(1);case"hh":return V(2);case"a":return S(y,b,!0);case"A":return S(y,b,!1);case"m":return String(b);case"mm":return g.s(b,2,"0");case"s":return String(u.$s);case"ss":return g.s(u.$s,2,"0");case"SSS":return g.s(u.$ms,3,"0");case"Z":return o}return null}(M)||o.replace(":","")})},s.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},s.diff=function(n,u,i){var l,o=this,y=g.p(u),b=$(n),w=(b.utcOffset()-this.utcOffset())*f,O=this-b,k=function(){return g.m(o,b)};switch(y){case r:l=k()/12;break;case L:l=k();break;case h:l=k()/3;break;case A:l=(O-w)/6048e5;break;case P:l=(O-w)/864e5;break;case T:l=O/v;break;case p:l=O/f;break;case D:l=O/a;break;default:l=O}return i?l:g.a(l)},s.daysInMonth=function(){return this.endOf(L).$D},s.$locale=function(){return j[this.$L]},s.locale=function(n,u){if(!n)return this.$L;var i=this.clone(),l=Q(n,u,!0);return l&&(i.$L=l),i},s.clone=function(){return g.w(this.$d,this)},s.toDate=function(){return new Date(this.valueOf())},s.toJSON=function(){return this.isValid()?this.toISOString():null},s.toISOString=function(){return this.$d.toISOString()},s.toString=function(){return this.$d.toUTCString()},c}(),J=F.prototype;return $.prototype=J,[["$ms",d],["$s",D],["$m",p],["$H",T],["$W",P],["$M",L],["$y",r],["$D",E]].forEach(function(c){J[c[1]]=function(s){return this.$g(s,c[0],c[1])}}),$.extend=function(c,s){return c.$i||(c(s,F,$),c.$i=!0),$},$.locale=Q,$.isDayjs=m,$.unix=function(c){return $(1e3*c)},$.en=j[_],$.Ls=j,$.p={},$})})(q);var oe=q.exports;const G=le(oe),fe=({data:t})=>{const e={},a={...t};return a.default&&(a.default.startTime&&(e.startTime=G(a.default.startTime).format()),a.default.endTime&&(e.endTime=G(a.default.endTime).format()),a.default.expirationTime&&(e.expirationTime=G(a.default.expirationTime).format())),a.advanced&&(a.advanced.currency&&(e.currency=a.advanced.currency),a.advanced.timezone&&(e.timezone=a.advanced.timezone),a.advanced.billingPlan&&(e.billingPlan=a.advanced.billingPlan),a.advanced.defaultTermDuration&&(e.defaultTermDuration=a.advanced.defaultTermDuration),a.advanced.installmentPlan&&(e.installmentPlan=a.advanced.installmentPlan),a.advanced.durationBasis&&(e.durationBasis=a.advanced.durationBasis),a.advanced.delinquencyPlanName&&(e.delinquencyPlanName=a.advanced.delinquencyPlanName)),delete a.default,delete a.advanced,e.setData=a,e},ee=t=>{const e=/^(.*?)(Quote|QuickQuote|Policy)$/,a=t.match(e);return a&&(a[2]==="Quote"||a[2]==="QuickQuote"||a[2]==="Policy")?[a[1],a[2]]:[t,null]};function te(t,e){if(t.locator===e)return t;if(t.elements)for(const a of t.elements){const f=te(a,e);if(f)return f}}function me(t,e){const[a]=ee(t.type??"");let f={};return e.exposures&&Object.keys(e.exposures).forEach(v=>{v===a&&e.exposures&&(f=e.exposures[v])}),e.coverages&&Object.keys(e.coverages).forEach(v=>{v===a&&e.coverages&&(f=e.coverages[v])}),e.policyLines&&Object.keys(e.policyLines).forEach(v=>{v===a&&e.policyLines&&(f=e.policyLines[v])}),e.exposureGroups&&Object.keys(e.exposureGroups).forEach(v=>{v===a&&e.exposureGroups&&(f=e.exposureGroups[v])}),f}function de(t){return t==null?void 0:t.map(e=>(e.keyword==="pattern"&&(e.message=`Invalid format, must match pattern ${e.params.pattern}`),e.keyword==="format"&&(e.message="Invalid format"),e.keyword==="required"&&(e.message="Required"),e.keyword==="minItems"&&(e.message=`Must have at least ${e.params.limit} item${e.params.limit!==1?"s":""}`),e.keyword==="maxItems"&&(e.message=`Must have at most ${e.params.limit} item${e.params.limit!==1?"s":""}`),e.keyword==="type"&&(e.message="Invalid format"),e.keyword==="maxLength"&&(e.message=`Must be at most ${e.params.limit} character${e.params.limit!==1?"s":""}`),e.keyword==="minLength"&&(e.message=`Must be at least ${e.params.limit} character${e.params.limit!==1?"s":""}`),e.keyword==="minimum"&&(e.message=`Must be greater than or equal to ${e.params.limit}`),e.keyword==="maximum"&&(e.message=`Must be less than or equal to ${e.params.limit}`),e.keyword==="enum"&&(e.message="Invalid value"),e))}const he=(t,e,a)=>{var f,v;return{...((f=t==null?void 0:t.element)==null?void 0:f.data)&&{...(v=t==null?void 0:t.element)==null?void 0:v.data},default:{...(t==null?void 0:t.startTime)&&{startTime:G(t.startTime).format("YYYY-MM-DD")},...(t==null?void 0:t.endTime)&&{endTime:G(t.endTime).format("YYYY-MM-DD")},...(t==null?void 0:t.expirationTime)&&{expirationTime:G(t.expirationTime).format("YYYY-MM-DD")}},advanced:{currency:(t==null?void 0:t.currency)??e.defaultCurrency??a.defaultCurrency??void 0,timezone:(t==null?void 0:t.timezone)??e.defaultTimeZone??a.defaultTimeZone??void 0,billingLevel:(t==null?void 0:t.billingLevel)??e.defaultBillingLevel??a.defaultBillingLevel??void 0,billingTrigger:(t==null?void 0:t.billingTrigger)??e.defaultBillingTrigger,durationBasis:(t==null?void 0:t.durationBasis)??e.defaultDurationBasis??void 0,delinquencyPlanName:(t==null?void 0:t.delinquencyPlanName)??(e==null?void 0:e.defaultDelinquencyPlan)??void 0,autoRenewalPlanName:(t==null?void 0:t.autoRenewalPlanName)??(e==null?void 0:e.defaultAutoRenewalPlan)??void 0}}},pe=t=>({...t.data,coverageTerms:t.coverageTerms??{}}),ne=(t,e)=>{for(const a of t){if(a.locator===e)return a;const f=ne(a.elements??[],e);if(f)return f}return!1},ie=(t,e)=>{var a,f;return((a=t.element)==null?void 0:a.locator)===e?t.element:ne(((f=t.element)==null?void 0:f.elements)??[],e)},ae=({dataModel:t,element:{productName:e}})=>t.products[e]??{},se=t=>{var f;t=t??"";const e=t.replace(/\?|\*|!|\+/g,""),a=(f=t.match(/\?|\*|!|\+/g))==null?void 0:f.pop();return{name:e,quantifier:a??""}},re=({dataModel:t,productDataModel:e})=>{const a=t.exposures??{},f=t.coverages??{},v=t.policyLines??{},d=t.exposureGroups??{},p=(e.contents??[]).map(r=>{const{name:E}=se(r);return E}),T=Object.keys(a).filter(r=>p.includes(r)),P=Object.keys(f).filter(r=>p.includes(r)),A=Object.keys(v).filter(r=>p.includes(r)),L=Object.keys(d).filter(r=>p.includes(r)),h={coverages:{},exposures:{},policyLines:{},exposureGroups:{}};for(const r of T)h.exposures[r]=a[r];for(const r of P)h.coverages[r]=f[r];for(const r of A)h.policyLines[r]=v[r];for(const r of L)h.exposureGroups[r]=d[r];return h},ge=({dataModel:t,quote:e,elementLocator:a})=>{const f=ie(e,a);if(!f)return{};const v=ae({element:e,dataModel:t}),d=re({dataModel:t,productDataModel:v});let D=!1;const p=f.type.split("Quote")[0];return Object.keys(d.exposures).forEach(T=>{T===p&&(D=d.exposures[T])}),D||Object.keys(d.coverages).forEach(T=>{T===p&&(D=d.coverages[T])}),D||Object.keys(d.policyLines).forEach(T=>{T===p&&(D=d.policyLines[T])}),D||Object.keys(d.exposureGroups).forEach(T=>{T===p&&(D=d.exposureGroups[T])}),D};x.dataModelToJSONSchema=H,x.extractElementDataModel=ge,x.extractElementFromQuote=ie,x.extractProductDataModel=ae,x.extractProductElements=re,x.getDefaultElementValues=pe,x.getDefaultQuoteValues=he,x.getQuoteElementRequest=ue,x.getQuoteRequest=fe,x.parseElementTypeAndScopeByElementType=ee,x.retrieveDataModelFromElement=me,x.retrieveElementFromQuoteByLocator=te,x.splitInputAndQuantifier=se,x.transformErrors=de,Object.defineProperty(x,Symbol.toStringTag,{value:"Module"})});
1
+ (function(w,H){typeof exports=="object"&&typeof module<"u"?H(exports):typeof define=="function"&&define.amd?define(["exports"],H):(w=typeof globalThis<"u"?globalThis:w||self,H(w.schemas={}))})(this,function(w){"use strict";const H=e=>{const{data:t,scope:s,dataTypes:f,rootDisplayName:y,account:p,quote:x,element:$}=e,Y=[];let k={};const Q=Object.fromEntries(Object.entries(t??{}).filter(([,m])=>{var O;const c=(O=m.scope)==null?void 0:O.split(",").map(j=>j.trim());return!!(!c||s.some(j=>c.includes(j)))}).map(([m,c])=>{var F,R,u,i,n,r,a,l,o,g,D,b,M,E,V,C,B;let O=!1,j=!1,G=!1;const U=c.displayName??m,q=(F=c.type)==null?void 0:F.slice(-1),A=c.maxLength,z=c.minLength,N=c.max,L=c.min,J=c.regex;let d=c.type??"",_;switch(q){case"*":j=!0,O=!0,d=d==null?void 0:d.split("*")[0];break;case"?":d=d==null?void 0:d.split("?")[0],O=!0;break;case"+":j=!0,d=d==null?void 0:d.split("+")[0];break;case"!":d=d==null?void 0:d.split("!")[0];break}switch(d){case"string":d="string";break;case"int":case"long":d="integer";break;case"decimal":d="number";break;case"dateTime":case"datetime":d="string",_="date-time";break;case"date":d="string",_="date";break;case"boolean":case"bool":d="boolean";break;default:G=!0;break}if(!O&&!G&&!j&&Y.push(m),G){const S=f==null?void 0:f[d];if(S){let T=j?[]:{};const I=H({data:S.data??{},scope:s,dataTypes:f,rootDisplayName:S.displayName??m});return x&&(u=(R=x.element)==null?void 0:R.data)!=null&&u[m]&&(T=(n=(i=x.element)==null?void 0:i.data)==null?void 0:n[m]),$&&(r=$==null?void 0:$.data)!=null&&r[m]&&(T=(a=$==null?void 0:$.data)==null?void 0:a[m]),p&&(l=p==null?void 0:p.data)!=null&&l[m]&&(T=(o=p==null?void 0:p.data)==null?void 0:o[m]),k={...k,[`${d}`]:I},j?[m,{title:S.displayName??m,type:"array",default:T,items:{$ref:`#/definitions/${d}`},...!O&&{minItems:1}}]:[m,{title:S.displayName??m,default:T,$ref:`#/definitions/${d}`}]}}let v="";if(p){const S=(p==null?void 0:p.state)==="validated"?m.charAt(0).toLowerCase()+m.slice(1):m;v=(g=p==null?void 0:p.data)!=null&&g[S]?(D=p==null?void 0:p.data)==null?void 0:D[S]:d==="boolean"?!!c.defaultValue:c.defaultValue}return x&&(v=(M=(b=x.element)==null?void 0:b.data)!=null&&M[m]?(V=(E=x.element)==null?void 0:E.data)==null?void 0:V[m]:d==="boolean"?!!c.defaultValue:c.defaultValue),$&&(v=(C=$==null?void 0:$.data)!=null&&C[m]?(B=$==null?void 0:$.data)==null?void 0:B[m]:d==="boolean"?!!c.defaultValue:c.defaultValue),j?[m,{title:U,type:"array",default:v,items:{type:d,...A&&{maxLength:A},...z&&{minLength:z},...L&&{min:L},...N&&{max:N},..._&&{format:_},...J&&{pattern:c.regex}},...!O&&{minItems:1}}]:[m,{title:U,type:d,...v&&{default:v},...z&&{minLength:z},...A&&{maxLength:A},...L&&{minimum:parseInt(L)},...N&&{maximum:parseInt(N)},..._&&{format:_},...c.options&&{enum:c.options},...J&&{pattern:c.regex}}]}));return{title:y||"",type:"object",definitions:k,required:Y,properties:Q}};var ie=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function re(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ee={exports:{}};(function(e,t){(function(s,f){e.exports=f()})(ie,function(){var s=1e3,f=6e4,y=36e5,p="millisecond",x="second",$="minute",Y="hour",k="day",Q="week",P="month",m="quarter",c="year",O="date",j="Invalid Date",G=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,U=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,q={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(u){var i=["th","st","nd","rd"],n=u%100;return"["+u+(i[(n-20)%10]||i[n]||i[0])+"]"}},A=function(u,i,n){var r=String(u);return!r||r.length>=i?u:""+Array(i+1-r.length).join(n)+u},z={s:A,z:function(u){var i=-u.utcOffset(),n=Math.abs(i),r=Math.floor(n/60),a=n%60;return(i<=0?"+":"-")+A(r,2,"0")+":"+A(a,2,"0")},m:function u(i,n){if(i.date()<n.date())return-u(n,i);var r=12*(n.year()-i.year())+(n.month()-i.month()),a=i.clone().add(r,P),l=n-a<0,o=i.clone().add(r+(l?-1:1),P);return+(-(r+(n-a)/(l?a-o:o-a))||0)},a:function(u){return u<0?Math.ceil(u)||0:Math.floor(u)},p:function(u){return{M:P,y:c,w:Q,d:k,D:O,h:Y,m:$,s:x,ms:p,Q:m}[u]||String(u||"").toLowerCase().replace(/s$/,"")},u:function(u){return u===void 0}},N="en",L={};L[N]=q;var J="$isDayjsObject",d=function(u){return u instanceof F||!(!u||!u[J])},_=function u(i,n,r){var a;if(!i)return N;if(typeof i=="string"){var l=i.toLowerCase();L[l]&&(a=l),n&&(L[l]=n,a=l);var o=i.split("-");if(!a&&o.length>1)return u(o[0])}else{var g=i.name;L[g]=i,a=g}return!r&&a&&(N=a),a||!r&&N},v=function(u,i){if(d(u))return u.clone();var n=typeof i=="object"?i:{};return n.date=u,n.args=arguments,new F(n)},h=z;h.l=_,h.i=d,h.w=function(u,i){return v(u,{locale:i.$L,utc:i.$u,x:i.$x,$offset:i.$offset})};var F=function(){function u(n){this.$L=_(n.locale,null,!0),this.parse(n),this.$x=this.$x||n.x||{},this[J]=!0}var i=u.prototype;return i.parse=function(n){this.$d=function(r){var a=r.date,l=r.utc;if(a===null)return new Date(NaN);if(h.u(a))return new Date;if(a instanceof Date)return new Date(a);if(typeof a=="string"&&!/Z$/i.test(a)){var o=a.match(G);if(o){var g=o[2]-1||0,D=(o[7]||"0").substring(0,3);return l?new Date(Date.UTC(o[1],g,o[3]||1,o[4]||0,o[5]||0,o[6]||0,D)):new Date(o[1],g,o[3]||1,o[4]||0,o[5]||0,o[6]||0,D)}}return new Date(a)}(n),this.init()},i.init=function(){var n=this.$d;this.$y=n.getFullYear(),this.$M=n.getMonth(),this.$D=n.getDate(),this.$W=n.getDay(),this.$H=n.getHours(),this.$m=n.getMinutes(),this.$s=n.getSeconds(),this.$ms=n.getMilliseconds()},i.$utils=function(){return h},i.isValid=function(){return this.$d.toString()!==j},i.isSame=function(n,r){var a=v(n);return this.startOf(r)<=a&&a<=this.endOf(r)},i.isAfter=function(n,r){return v(n)<this.startOf(r)},i.isBefore=function(n,r){return this.endOf(r)<v(n)},i.$g=function(n,r,a){return h.u(n)?this[r]:this.set(a,n)},i.unix=function(){return Math.floor(this.valueOf()/1e3)},i.valueOf=function(){return this.$d.getTime()},i.startOf=function(n,r){var a=this,l=!!h.u(r)||r,o=h.p(n),g=function(S,T){var I=h.w(a.$u?Date.UTC(a.$y,T,S):new Date(a.$y,T,S),a);return l?I:I.endOf(k)},D=function(S,T){return h.w(a.toDate()[S].apply(a.toDate("s"),(l?[0,0,0,0]:[23,59,59,999]).slice(T)),a)},b=this.$W,M=this.$M,E=this.$D,V="set"+(this.$u?"UTC":"");switch(o){case c:return l?g(1,0):g(31,11);case P:return l?g(1,M):g(0,M+1);case Q:var C=this.$locale().weekStart||0,B=(b<C?b+7:b)-C;return g(l?E-B:E+(6-B),M);case k:case O:return D(V+"Hours",0);case Y:return D(V+"Minutes",1);case $:return D(V+"Seconds",2);case x:return D(V+"Milliseconds",3);default:return this.clone()}},i.endOf=function(n){return this.startOf(n,!1)},i.$set=function(n,r){var a,l=h.p(n),o="set"+(this.$u?"UTC":""),g=(a={},a[k]=o+"Date",a[O]=o+"Date",a[P]=o+"Month",a[c]=o+"FullYear",a[Y]=o+"Hours",a[$]=o+"Minutes",a[x]=o+"Seconds",a[p]=o+"Milliseconds",a)[l],D=l===k?this.$D+(r-this.$W):r;if(l===P||l===c){var b=this.clone().set(O,1);b.$d[g](D),b.init(),this.$d=b.set(O,Math.min(this.$D,b.daysInMonth())).$d}else g&&this.$d[g](D);return this.init(),this},i.set=function(n,r){return this.clone().$set(n,r)},i.get=function(n){return this[h.p(n)]()},i.add=function(n,r){var a,l=this;n=Number(n);var o=h.p(r),g=function(M){var E=v(l);return h.w(E.date(E.date()+Math.round(M*n)),l)};if(o===P)return this.set(P,this.$M+n);if(o===c)return this.set(c,this.$y+n);if(o===k)return g(1);if(o===Q)return g(7);var D=(a={},a[$]=f,a[Y]=y,a[x]=s,a)[o]||1,b=this.$d.getTime()+n*D;return h.w(b,this)},i.subtract=function(n,r){return this.add(-1*n,r)},i.format=function(n){var r=this,a=this.$locale();if(!this.isValid())return a.invalidDate||j;var l=n||"YYYY-MM-DDTHH:mm:ssZ",o=h.z(this),g=this.$H,D=this.$m,b=this.$M,M=a.weekdays,E=a.months,V=a.meridiem,C=function(T,I,Z,X){return T&&(T[I]||T(r,l))||Z[I].slice(0,X)},B=function(T){return h.s(g%12||12,T,"0")},S=V||function(T,I,Z){var X=T<12?"AM":"PM";return Z?X.toLowerCase():X};return l.replace(U,function(T,I){return I||function(Z){switch(Z){case"YY":return String(r.$y).slice(-2);case"YYYY":return h.s(r.$y,4,"0");case"M":return b+1;case"MM":return h.s(b+1,2,"0");case"MMM":return C(a.monthsShort,b,E,3);case"MMMM":return C(E,b);case"D":return r.$D;case"DD":return h.s(r.$D,2,"0");case"d":return String(r.$W);case"dd":return C(a.weekdaysMin,r.$W,M,2);case"ddd":return C(a.weekdaysShort,r.$W,M,3);case"dddd":return M[r.$W];case"H":return String(g);case"HH":return h.s(g,2,"0");case"h":return B(1);case"hh":return B(2);case"a":return S(g,D,!0);case"A":return S(g,D,!1);case"m":return String(D);case"mm":return h.s(D,2,"0");case"s":return String(r.$s);case"ss":return h.s(r.$s,2,"0");case"SSS":return h.s(r.$ms,3,"0");case"Z":return o}return null}(T)||o.replace(":","")})},i.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},i.diff=function(n,r,a){var l,o=this,g=h.p(r),D=v(n),b=(D.utcOffset()-this.utcOffset())*f,M=this-D,E=function(){return h.m(o,D)};switch(g){case c:l=E()/12;break;case P:l=E();break;case m:l=E()/3;break;case Q:l=(M-b)/6048e5;break;case k:l=(M-b)/864e5;break;case Y:l=M/y;break;case $:l=M/f;break;case x:l=M/s;break;default:l=M}return a?l:h.a(l)},i.daysInMonth=function(){return this.endOf(P).$D},i.$locale=function(){return L[this.$L]},i.locale=function(n,r){if(!n)return this.$L;var a=this.clone(),l=_(n,r,!0);return l&&(a.$L=l),a},i.clone=function(){return h.w(this.$d,this)},i.toDate=function(){return new Date(this.valueOf())},i.toJSON=function(){return this.isValid()?this.toISOString():null},i.toISOString=function(){return this.$d.toISOString()},i.toString=function(){return this.$d.toUTCString()},u}(),R=F.prototype;return v.prototype=R,[["$ms",p],["$s",x],["$m",$],["$H",Y],["$W",k],["$M",P],["$y",c],["$D",O]].forEach(function(u){R[u[1]]=function(i){return this.$g(i,u[0],u[1])}}),v.extend=function(u,i){return u.$i||(u(i,F,v),u.$i=!0),v},v.locale=_,v.isDayjs=d,v.unix=function(u){return v(1e3*u)},v.en=L[N],v.Ls=L,v.p={},v})})(ee);var ce=ee.exports;const W=re(ce),ue=({data:e})=>{const t={},s=structuredClone(e);return s.default&&(s.default.startTime&&(t.startTime=W(s.default.startTime).format()),s.default.endTime&&(t.endTime=W(s.default.endTime).format()),s.default.expirationTime&&(t.expirationTime=W(s.default.expirationTime).format())),s.advanced&&(s.advanced.currency&&(t.currency=s.advanced.currency),s.advanced.timezone&&(t.timezone=s.advanced.timezone),s.advanced.billingPlan&&(t.billingPlan=s.advanced.billingPlan),s.advanced.defaultTermDuration&&(t.defaultTermDuration=s.advanced.defaultTermDuration),s.advanced.installmentPlan&&(t.installmentPlan=s.advanced.installmentPlan),s.advanced.durationBasis&&(t.durationBasis=s.advanced.durationBasis),s.advanced.delinquencyPlanName&&(t.delinquencyPlanName=s.advanced.delinquencyPlanName)),s.coverageTerms&&(t.setCoverageTerms=e.coverageTerms),delete s.coverageTerms,delete s.default,delete s.advanced,t.setData=s,t};function le(e){return e==null?void 0:e.map(t=>(t.keyword==="pattern"&&(t.message=`Invalid format, must match pattern ${t.params.pattern}`),t.keyword==="format"&&(t.message="Invalid format"),t.keyword==="required"&&(t.message="Required"),t.keyword==="minItems"&&(t.message=`Must have at least ${t.params.limit} item${t.params.limit!==1?"s":""}`),t.keyword==="maxItems"&&(t.message=`Must have at most ${t.params.limit} item${t.params.limit!==1?"s":""}`),t.keyword==="type"&&(t.message="Invalid format"),t.keyword==="maxLength"&&(t.message=`Must be at most ${t.params.limit} character${t.params.limit!==1?"s":""}`),t.keyword==="minLength"&&(t.message=`Must be at least ${t.params.limit} character${t.params.limit!==1?"s":""}`),t.keyword==="minimum"&&(t.message=`Must be greater than or equal to ${t.params.limit}`),t.keyword==="maximum"&&(t.message=`Must be less than or equal to ${t.params.limit}`),t.keyword==="enum"&&(t.message="Invalid value"),t))}const K=({coverageTermOptions:e,coverageTermDataModel:t})=>{const s=structuredClone(e)??{},f=t;return Object.keys(f).forEach(y=>{if(s[y])return;Object.keys(f[y].options).forEach(x=>{if(x.startsWith("*")){const $=x.substring(1);s[y]=$}})}),s},oe=(e,t,s)=>{var f,y,p;return{...((f=e==null?void 0:e.element)==null?void 0:f.data)&&{...(y=e==null?void 0:e.element)==null?void 0:y.data},default:{...(e==null?void 0:e.startTime)&&{startTime:W(e.startTime).format("YYYY-MM-DD")},...(e==null?void 0:e.endTime)&&{endTime:W(e.endTime).format("YYYY-MM-DD")},...(e==null?void 0:e.expirationTime)&&{expirationTime:W(e.expirationTime).format("YYYY-MM-DD")}},advanced:{currency:(e==null?void 0:e.currency)??t.defaultCurrency??s.defaultCurrency??void 0,timezone:(e==null?void 0:e.timezone)??t.defaultTimeZone??s.defaultTimeZone??void 0,billingLevel:(e==null?void 0:e.billingLevel)??t.defaultBillingLevel??s.defaultBillingLevel??void 0,billingTrigger:(e==null?void 0:e.billingTrigger)??t.defaultBillingTrigger,durationBasis:(e==null?void 0:e.durationBasis)??t.defaultDurationBasis??void 0,delinquencyPlanName:(e==null?void 0:e.delinquencyPlanName)??(t==null?void 0:t.defaultDelinquencyPlan)??void 0,autoRenewalPlanName:(e==null?void 0:e.autoRenewalPlanName)??(t==null?void 0:t.defaultAutoRenewalPlan)??void 0},coverageTerms:K({coverageTermDataModel:s.coverageTerms,coverageTermOptions:((p=e==null?void 0:e.element)==null?void 0:p.coverageTerms)??{}})}},fe=(e,t)=>({...e.data,coverageTerms:K({coverageTermOptions:e.coverageTerms??{},coverageTermDataModel:t})}),te=({dataModel:e,elementType:t})=>{let s=!1;const f=t.split("Quote")[0];return Object.keys(e.exposures??{}).forEach(y=>{y===f&&(s=e.exposures?e.exposures[y]:{})}),s||Object.keys(e.coverages??{}).forEach(y=>{y===f&&(s=e.coverages?e.coverages[y]:{})}),s||Object.keys(e.policyLines??{}).forEach(y=>{y===f&&(s=e.policyLines?e.policyLines[y]:{})}),s||Object.keys(e.exposureGroups??{}).forEach(y=>{y===f&&(s=e.exposureGroups?e.exposureGroups[y]:{})}),s},ne=(e,t)=>{for(const s of e){if(s.locator===t)return s;const f=ne(s.elements??[],t);if(f)return f}return!1},ae=(e,t)=>{var s,f;return((s=e.element)==null?void 0:s.locator)===t?e.element:ne(((f=e.element)==null?void 0:f.elements)??[],t)},de=({dataModel:e,quote:t,elementLocator:s})=>{const f=ae(t,s);return f?te({dataModel:e,elementType:f.type}):{}},me=(e,t)=>e.filter(f=>f.type===`${t}Quote`),he=({dataModel:e,element:{productName:t}})=>e.products[t]??{},se=e=>{var f;e=e??"";const t=e.replace(/\?|\*|!|\+/g,""),s=(f=e.match(/\?|\*|!|\+/g))==null?void 0:f.pop();return{name:t,quantifier:s??""}},ge=({dataModel:e,contents:t})=>{const s=e.exposures??{},f=e.coverages??{},y=e.policyLines??{},p=e.exposureGroups??{},$=(t??[]).map(c=>{const{name:O}=se(c);return O}),Y=Object.keys(s).filter(c=>$.includes(c)),k=Object.keys(f).filter(c=>$.includes(c)),Q=Object.keys(y).filter(c=>$.includes(c)),P=Object.keys(p).filter(c=>$.includes(c)),m={coverages:{},exposures:{},policyLines:{},exposureGroups:{}};for(const c of Y)m.exposures[c]=s[c];for(const c of k)m.coverages[c]=f[c];for(const c of Q)m.policyLines[c]=y[c];for(const c of P)m.exposureGroups[c]=p[c];return m};w.dataModelToJSONSchema=H,w.extractElementDataModel=de,w.extractElementDataModelFromType=te,w.extractElementFromQuote=ae,w.extractElementsFromQuote=me,w.extractProductDataModel=he,w.extractProductElements=ge,w.getCoverageTermsDefaultValues=K,w.getDefaultElementValues=fe,w.getDefaultQuoteValues=oe,w.getQuoteRequest=ue,w.splitInputAndQuantifier=se,w.transformErrors=le,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=index.umd.js.map