@case-framework/survey-ui 0.5.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/default-item-cores-C6VK2LFe.js +10 -0
  2. package/dist/default-item-cores-C6VK2LFe.js.map +1 -0
  3. package/dist/default-item-cores-gdu37TFX.mjs +3988 -0
  4. package/dist/default-item-cores-gdu37TFX.mjs.map +1 -0
  5. package/dist/item-core-registry.cjs.js +2 -0
  6. package/dist/item-core-registry.cjs.js.map +1 -0
  7. package/dist/item-core-registry.es.js +11 -0
  8. package/dist/item-core-registry.es.js.map +1 -0
  9. package/dist/src/components/common/sortable-tree.d.ts +59 -0
  10. package/dist/src/components/rich-text/rich-text-content-view.d.ts +6 -2
  11. package/dist/src/components/ui/dialog.d.ts +2 -1
  12. package/dist/src/components/ui/resizable.d.ts +7 -0
  13. package/dist/src/components/ui/toggle.d.ts +1 -1
  14. package/dist/src/dev/localizations/de.d.ts +2 -2
  15. package/dist/src/index.d.ts +7 -4
  16. package/dist/src/item-core-registry.d.ts +4 -0
  17. package/dist/src/modules/default-item-registry/item-authoring-state.d.ts +15 -0
  18. package/dist/src/modules/default-item-registry/items/choice/editor/option-edit-dialog.d.ts +10 -3
  19. package/dist/src/modules/default-item-registry/items/form/model.d.ts +4 -1
  20. package/dist/src/modules/survey-editor/ai/create-provider.d.ts +22 -0
  21. package/dist/src/modules/survey-editor/ai/types.d.ts +6 -83
  22. package/dist/src/modules/survey-editor/ai/use-survey-assistant-integration.d.ts +16 -0
  23. package/dist/src/modules/survey-editor/assistant/apply.d.ts +24 -0
  24. package/dist/src/modules/survey-editor/assistant/index.d.ts +2 -0
  25. package/dist/src/modules/survey-editor/assistant/snapshot.d.ts +39 -0
  26. package/dist/src/modules/survey-editor/editor-card/add-items/constants.d.ts +2 -0
  27. package/dist/src/modules/survey-editor/editor-card/add-items/hooks/use-add-item-actions.d.ts +4 -5
  28. package/dist/src/modules/survey-editor/editor-card/add-items/hooks/use-option-group-navigation.d.ts +2 -1
  29. package/dist/src/modules/survey-editor/editor-card/add-items/types.d.ts +1 -1
  30. package/dist/src/modules/survey-editor/editor-card/add-items/views/item-type-grid-view.d.ts +30 -0
  31. package/dist/src/modules/survey-editor/editor-card/delete-item-dropdown-menu.d.ts +3 -1
  32. package/dist/src/modules/survey-editor/editor-card/expression-pseudo-code.d.ts +8 -0
  33. package/dist/src/modules/survey-editor/editor-card/hooks/use-group-list-keyboard.d.ts +1 -1
  34. package/dist/src/modules/survey-editor/editor-card/item-authoring-state-preview.d.ts +16 -0
  35. package/dist/src/modules/survey-editor/editor-card/item-editor-card.d.ts +1 -6
  36. package/dist/src/modules/survey-editor/editor-card/item-editor-context.d.ts +5 -2
  37. package/dist/src/modules/survey-editor/editor-card/item-expression-overview.d.ts +33 -0
  38. package/dist/src/modules/survey-editor/editor-instance-provider.d.ts +2 -0
  39. package/dist/src/modules/survey-editor/hooks/useDeleteItem.d.ts +2 -0
  40. package/dist/src/modules/survey-editor/index.d.ts +5 -2
  41. package/dist/src/modules/survey-editor/localization/date-fns.d.ts +1 -1
  42. package/dist/src/modules/survey-editor/localization/default-all.d.ts +2 -2
  43. package/dist/src/modules/survey-editor/localization/default-en.d.ts +2 -2
  44. package/dist/src/modules/survey-editor/localization/default-nl.d.ts +2 -2
  45. package/dist/src/modules/survey-editor/localization/index.d.ts +0 -2
  46. package/dist/src/modules/survey-editor/localization/runtime.d.ts +4 -4
  47. package/dist/src/modules/survey-editor/navigation/location.d.ts +6 -0
  48. package/dist/src/modules/survey-editor/navigation/navigation-provider.d.ts +2 -1
  49. package/dist/src/modules/survey-editor/navigation/navigation.d.ts +10 -1
  50. package/dist/src/modules/survey-editor/navigation/types.d.ts +6 -1
  51. package/dist/src/modules/survey-editor/primitives/input-with-ai-popover.d.ts +2 -2
  52. package/dist/src/modules/survey-editor/registry/authoring-state.d.ts +17 -0
  53. package/dist/src/modules/survey-editor/registry/index.d.ts +1 -0
  54. package/dist/src/modules/survey-editor/registry/registry-mappers.d.ts +3 -3
  55. package/dist/src/modules/survey-editor/registry/types.d.ts +40 -4
  56. package/dist/src/modules/survey-editor/routes/editor/_components/assistant-authoring-lock.d.ts +7 -0
  57. package/dist/src/modules/survey-editor/routes/editor/_components/editor-assistant-slot-context.d.ts +6 -0
  58. package/dist/src/modules/survey-editor/routes/editor/_components/editor-assistant-slot.d.ts +8 -0
  59. package/dist/src/modules/survey-editor/routes/editor/_components/editor-mode-switch.d.ts +7 -0
  60. package/dist/src/modules/survey-editor/routes/editor/_components/editor-workspace.d.ts +30 -0
  61. package/dist/src/modules/survey-editor/routes/editor/_components/footer.d.ts +1 -1
  62. package/dist/src/modules/survey-editor/routes/editor/_components/main.d.ts +1 -1
  63. package/dist/src/modules/survey-editor/routes/editor/_components/workspace-presets.d.ts +75 -0
  64. package/dist/src/modules/survey-editor/routes/editor/index.d.ts +1 -1
  65. package/dist/src/modules/survey-editor/routes/editor/item-editor/_components/item-editor-toolbar/item-editor-toolbar.d.ts +0 -1
  66. package/dist/src/modules/survey-editor/routes/editor/item-editor/_components/survey-outline.d.ts +3 -0
  67. package/dist/src/modules/survey-editor/routes/editor/item-editor/_components/survey-workspace.d.ts +12 -0
  68. package/dist/src/modules/survey-editor/routes/editor/item-editor/index.d.ts +0 -1
  69. package/dist/src/modules/survey-editor/routes/editor/preview-mode/index.d.ts +7 -0
  70. package/dist/src/modules/survey-editor/routes/editor/preview-mode/page-break-divider.d.ts +6 -0
  71. package/dist/src/modules/survey-editor/routes/editor/preview-mode/preview-controls.d.ts +15 -0
  72. package/dist/src/modules/survey-editor/routes/editor/preview-mode/preview-tree.d.ts +26 -0
  73. package/dist/src/modules/survey-editor/routes/editor/preview-mode/survey-preview-canvas.d.ts +16 -0
  74. package/dist/src/modules/survey-editor/routes/editor/preview-mode/survey-preview-item.d.ts +13 -0
  75. package/dist/src/modules/survey-editor/routes/editor/preview-mode/use-preview-preferences.d.ts +14 -0
  76. package/dist/src/modules/survey-editor/store/editor-store.d.ts +7 -1
  77. package/dist/src/modules/survey-editor/survey-editor-config.d.ts +14 -5
  78. package/dist/src/modules/survey-editor/survey-editor.d.ts +14 -2
  79. package/dist/src/modules/survey-editor/workspace.d.ts +17 -0
  80. package/dist/src/modules/survey-player/index.d.ts +0 -1
  81. package/dist/src/modules/survey-player/localization/default-en.d.ts +2 -2
  82. package/dist/src/modules/survey-player/localization/runtime.d.ts +5 -4
  83. package/dist/src/modules/survey-player/survey-context.d.ts +9 -4
  84. package/dist/src/modules/survey-player/survey-player.d.ts +2 -2
  85. package/dist/survey-ui.cjs.js +101 -76
  86. package/dist/survey-ui.cjs.js.map +1 -1
  87. package/dist/survey-ui.css +2 -2
  88. package/dist/survey-ui.es.js +31872 -26692
  89. package/dist/survey-ui.es.js.map +1 -1
  90. package/package.json +26 -12
  91. package/dist/src/modules/default-item-registry/items/choice/editor/option-embedded-form-dialog.d.ts +0 -15
  92. package/dist/src/modules/survey-editor/editor-card/add-items/views/ai-item-view.d.ts +0 -10
  93. package/dist/src/modules/survey-editor/localization/types.d.ts +0 -7
  94. package/dist/src/modules/survey-player/localization/types.d.ts +0 -7
@@ -0,0 +1,10 @@
1
+ function e(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}function t(t){let n=e(t);return()=>{n=n+1831565813>>>0;let e=n;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}}function n(e,t=Math.random){let n=[...e];for(let e=n.length-1;e>0;e--){let r=Math.floor(t()*(e+1));[n[e],n[r]]=[n[r],n[e]]}return n}function r(e,t=Math.random){return n(Array.from({length:e},(e,t)=>t),t)}function i(e){return typeof structuredClone<`u`?structuredClone(e):JSON.parse(JSON.stringify(e))}var a=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`;function o(){let e=Date.now(),t=``,n=e;for(;n>0;)t=a.charAt(n%62)+t,n=Math.floor(n/62);let r=``;for(let e=0;e<10;e++)r+=a.charAt(Math.floor(Math.random()*62));return r+t}var s=`23456789ABCDEFGHJKLMNPQRSTUVWXYZ`;function c(e=4){let t=``;for(let n=0;n<e;n++)t+=s.charAt(Math.floor(Math.random()*32));return t}var l=`...`,ee=function(e){return e.get=`get`,e.isDefined=`isDefined`,e}({}),u=class e{_itemId;_name;_slotId;constructor(e){let t=e.split(l);if(t.length!==3)throw Error(`Invalid value reference: `+e);this._itemId=t[0],this._name=t[1],this._slotId=t[2]}get itemId(){return this._itemId}get name(){return this._name}get slotId(){return this._slotId}set itemId(e){this._itemId=e}toString(){return`${this._itemId}${l}${this._name}${this._slotId?l+this._slotId:``}`}static fromParts(t,n,r){return new e(`${t}${l}${n}${l}${r}`)}},d={Const:`const`,ResponseVariable:`responseVariable`,ContextVariable:`contextVariable`,Function:`function`},f={Locale:`locale`,ParticipantFlag:`participantFlag`,CustomValue:`customValue`,CustomExpression:`customExpression`},p=class e{type;editorConfig;constructor(e,t){this.type=e,this.editorConfig=t}static deserialize(e){if(e)switch(e.type){case d.Const:return te.deserialize(e);case d.ResponseVariable:return ne.deserialize(e);case d.ContextVariable:return re.deserialize(e);case d.Function:return ae.deserialize(e)}}clone(){return e.deserialize(this.serialize())??(()=>{throw Error(`Failed to clone expression`)})()}},te=class e extends p{value;constructor(e,t){super(d.Const,t),this.value=e,this.type=d.Const}static deserialize(t){if(t.type!==d.Const)throw Error(`Invalid expression type: `+t.type);return new e(t.value,t.editorConfig)}get responseVariableRefs(){return[]}serialize(){return{type:this.type,value:this.value,editorConfig:this.editorConfig}}updateItemKeyReferences(e,t){return!1}},ne=class e extends p{variableRef;constructor(e,t){super(d.ResponseVariable,t),this.variableRef=e,this.type=d.ResponseVariable}static deserialize(t){if(t.type!==d.ResponseVariable)throw Error(`Invalid expression type: `+t.type);return new e(t.variableRef,t.editorConfig)}get responseVariableRefs(){return[new u(this.variableRef)]}get responseVariableRef(){return new u(this.variableRef)}serialize(){return{type:this.type,variableRef:this.variableRef,editorConfig:this.editorConfig}}},re=class e extends p{contextType;key;arguments;asType;constructor(e,t,n,r,i){super(d.ContextVariable,i),this.type=d.ContextVariable,this.contextType=e,this.key=t,this.arguments=n,this.asType=r}static deserialize(t){if(t.type!==d.ContextVariable)throw Error(`Invalid expression type: `+t.type);return new e(t.contextType,p.deserialize(t.key),t.arguments?.map(e=>p.deserialize(e)),t.asType,t.editorConfig)}get responseVariableRefs(){return this.arguments?.flatMap(e=>e?.responseVariableRefs).filter(e=>e!==void 0)??[]}serialize(){return{type:this.type,contextType:this.contextType,key:this.key?.serialize(),arguments:this.arguments?.map(e=>e?.serialize()),asType:this.asType,editorConfig:this.editorConfig}}},ie=function(e){return e.and=`and`,e.or=`or`,e.not=`not`,e.list_contains=`list_contains`,e.eq=`eq`,e.gt=`gt`,e.gte=`gte`,e.lt=`lt`,e.lte=`lte`,e.in_range=`in_range`,e.sum=`sum`,e.min=`min`,e.max=`max`,e.str_eq=`str_eq`,e.date_eq=`date_eq`,e}({}),ae=class e extends p{functionName;arguments;constructor(e,t,n){super(d.Function),this.type=d.Function,this.functionName=e,this.arguments=t,this.editorConfig=n}static deserialize(t){if(t.type!==d.Function)throw Error(`Invalid expression type: `+t.type);let n=t.functionName;if(!Object.values(ie).includes(n))throw Error(`Invalid function name: `+n);let r=new e(n,t.arguments.map(e=>p.deserialize(e)));return r.editorConfig=t.editorConfig,r}get responseVariableRefs(){let e=this.arguments.flatMap(e=>e?.responseVariableRefs).filter(e=>e!==void 0).map(e=>e.toString());return[...new Set(e)].map(e=>new u(e))}serialize(){return{type:this.type,functionName:this.functionName,arguments:this.arguments.map(e=>e?.serialize()),editorConfig:this.editorConfig}}},oe=e=>{let t={type:e.type,returnType:e.returnType,expression:e.expression?.serialize()};return e.type===`date2string`&&(t.dateFormat=e.dateFormat),t},se=e=>{let t={};for(let[n,r]of e.entries())t[n]=oe(r);return t},ce=e=>({type:e.type,expression:e.expression?p.deserialize(e.expression):void 0,returnType:e.returnType,dateFormat:e.dateFormat}),le=e=>new Map(Object.entries(e).map(([e,t])=>[e,ce(t)])),m={string:`string`,duration:`duration`,reference:`reference`,number:`number`,boolean:`boolean`,date:`date`,stringArray:`string[]`,durationArray:`duration[]`,referenceArray:`reference[]`,numberArray:`number[]`,dateArray:`date[]`},ue={seconds:`seconds`,minutes:`minutes`,hours:`hours`,days:`days`,weeks:`weeks`,months:`months`,years:`years`},de={int:`int`,float:`float`};function fe(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function h(e){return typeof e==`number`&&Number.isFinite(e)}function pe(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)}function me(e){return Array.isArray(e)&&e.every(e=>h(e))}function g(e){return e===void 0||e===de.int||e===de.float}function he(e){return typeof e==`string`&&Object.values(ue).includes(e)}function ge(e){if(!fe(e)||typeof e.type!=`string`)return!1;switch(e.type){case m.string:case m.reference:return typeof e.value==`string`;case m.number:return h(e.value)&&g(e.precision);case m.boolean:return typeof e.value==`boolean`;case m.date:return h(e.value);case m.duration:return h(e.value)&&he(e.unit)&&g(e.precision);case m.stringArray:case m.referenceArray:return pe(e.value);case m.numberArray:case m.dateArray:return me(e.value)&&(e.type!==m.numberArray||g(e.precision));case m.durationArray:return me(e.value)&&he(e.unit)&&g(e.precision);default:return!1}}function _e(e,t){if(!ge(e))throw Error(`Invalid response value at '${t}'`)}var ve=e=>({root:e.root?p.deserialize(e.root):void 0,components:e.components?Object.fromEntries(Object.entries(e.components).map(([e,t])=>[e,p.deserialize(t)])):void 0}),ye=e=>({components:e.components?Object.fromEntries(Object.entries(e.components).map(([e,t])=>[e,p.deserialize(t)])):void 0}),be={ifEmpty:`ifEmpty`},_={itemResponse:`itemResponse`,field:`field`,embeddedField:`embeddedField`};function xe(e){switch(e.source.type){case`static`:return{id:e.id,target:e.target,when:p.deserialize(e.when),apply:e.apply,source:{type:`static`,value:e.source.value}};case`expression`:return{id:e.id,target:e.target,when:p.deserialize(e.when),apply:e.apply,source:{type:`expression`,expression:p.deserialize(e.source.expression)??(()=>{throw Error(`Prefill '${e.id}' is missing a valid expression source`)})()}};case`templateValue`:return{id:e.id,target:e.target,when:p.deserialize(e.when),apply:e.apply,source:{type:`templateValue`,key:e.source.key}};case`previousResponse`:return{id:e.id,target:e.target,when:p.deserialize(e.when),apply:e.apply,source:{type:`previousResponse`,ref:e.source.ref,ifUnsupported:e.source.ifUnsupported}};default:throw Error(`Unsupported prefill source type: ${e.source.type}`)}}function Se(e,t){if(e.type!==t.type)return!1;switch(e.type){case _.itemResponse:return!0;case _.field:return e.fieldId===t.fieldId;case _.embeddedField:return e.optionId===t.optionId&&e.fieldId===t.fieldId;default:return!1}}var v=class{id;key;config;_rawItem;displayConditions;disabledConditions;validations;prefills;constructor(e){this._rawItem=e,this.updateExpressions(),this.id=this._rawItem.id,this.key=this._rawItem.key,this.config=this.parseConfig(this._rawItem.config)}getAdditionalResponseValueSlots(){return{}}getAvailableResponseValueSlots(e){let t={};for(let e of this.getResponseSlotDefinitions())t[`${this.id}...get...${e.slotId}`]=e.valueType,t[`${this.id}...isDefined...${e.slotId}`]=m.boolean;return Object.assign(t,this.getAdditionalResponseValueSlots()),e?Object.fromEntries(Object.entries(t).filter(([,t])=>t===e)):t}get rawItem(){return this._rawItem}get metadata(){return this._rawItem.metadata??{}}set metadata(e){this.updateRawItem({...this._rawItem,metadata:e})}get editorMetadata(){return this._rawItem.editorMetadata??{}}setCreatedAt(e){this.updateRawItem({...this._rawItem,editorMetadata:{...this._rawItem.editorMetadata,createdAt:e}})}setModifiedAt(e){this.updateRawItem({...this._rawItem,editorMetadata:{...this._rawItem.editorMetadata,createdAt:this._rawItem.editorMetadata?.createdAt??e,updatedAt:e}})}updateRawItem(e){if(e.id!==this.id)throw Error(`Cannot update raw item with a different id`);this._rawItem=e,this.updateExpressions(),this.key=e.key,this.config=this.parseConfig(e.config)}updateExpressions(){this.displayConditions=this._rawItem.displayConditions?ve(this._rawItem.displayConditions):void 0,this.disabledConditions=this._rawItem.disabledConditions?ye(this._rawItem.disabledConditions):void 0,this.validations=this._rawItem.validations?Object.fromEntries(Object.entries(this._rawItem.validations).map(([e,t])=>[e,p.deserialize(t)])):void 0,this.prefills=this._rawItem.prefills?.map(e=>xe(e))}getReferenceUsages(){let e=[];if(this.displayConditions){for(let t of this.displayConditions.root?.responseVariableRefs||[])e.push({itemId:this.id,usageType:`displayConditions`,valueReference:t});for(let[t,n]of Object.entries(this.displayConditions.components||{}))for(let r of n?.responseVariableRefs||[])e.push({itemId:this.id,fullComponentKey:t,usageType:`displayConditions`,valueReference:r})}if(this.disabledConditions)for(let[t,n]of Object.entries(this.disabledConditions.components||{}))for(let r of n?.responseVariableRefs||[])e.push({itemId:this.id,fullComponentKey:t,usageType:`disabledConditions`,valueReference:r});if(this.validations)for(let[t,n]of Object.entries(this.validations))for(let r of n?.responseVariableRefs||[])e.push({itemId:this.id,fullComponentKey:t,usageType:`validations`,valueReference:r});if(this.prefills)for(let t of this.prefills){for(let n of t.when?.responseVariableRefs||[])e.push({itemId:this.id,fullComponentKey:t.id,usageType:`prefills`,valueReference:n});if(t.source.type===`expression`)for(let n of t.source.expression.responseVariableRefs||[])e.push({itemId:this.id,fullComponentKey:t.id,usageType:`prefills`,valueReference:n})}return e}resolvePrefillTarget(e){let t=this.getResponseSlotDefinitions(),n=t.find(t=>t.prefillTarget!==void 0&&Se(t.prefillTarget,e));if(n)return n;if(e.type===_.itemResponse&&t.length===1)return t[0]}normalizePrefillValue(e,t,n){return n.type===t.valueType?n:void 0}},Ce=function(e){return e.Group=`group`,e.PageBreak=`page-break`,e}({}),we=class{_itemKey;_path;_keySeparator;constructor(e,t,n=`.`){this._itemKey=e,this._path=t??[],this._keySeparator=n}get itemKey(){return this._itemKey}get path(){return this._path}get parentFullKey(){return this._path.join(this._keySeparator)}get fullKey(){return[...this._path,this._itemKey].join(this._keySeparator)}get isRoot(){return this._path.length===0}get keySeparator(){return this._keySeparator}set keySeparator(e){this._keySeparator=e}};function Te(e,t,n){let r=[...e];return[r[t],r[n]]=[r[n],r[t]],r}function Ee(e,t,n){let r=[...e],[i]=r.splice(t,1);return r.splice(n,0,i),r}var y=class extends v{type=`group`;parseConfig(e){let t=e??{};return{items:t.items,shuffleItems:t.shuffleItems,isRoot:t.isRoot}}serializeConfig(){return this.config}isInteractive(){return!1}getResponseSlotDefinitions(){return[]}isRoot(){return this.config.isRoot??!1}get items(){return this.config.items??[]}addChild(e,t){let n=this.config.items??=[],r=t===void 0?n.length:Math.min(t,n.length);n.splice(r,0,e),this.updateRawItem({...this.rawItem,config:{...this.config}})}removeChild(e){let t=this.config.items??=[],n=t.indexOf(e);n!==-1&&(t.splice(n,1),this.updateRawItem({...this.rawItem,config:{...this.config}}))}hasChild(e){return this.items.includes(e)}get shuffleItems(){return this.config.shuffleItems??!1}set shuffleItems(e){this.config.shuffleItems=e,this.updateRawItem({...this.rawItem,config:{...this.config}})}getChildrenIds(){return[...this.items]}swapItemsByIndex(e,t){let n=this.items;if(e<0||e>=n.length||t<0||t>=n.length)throw Error(`Index out of bounds. Valid range is 0-${n.length-1}`);e!==t&&(this.config.items=Te(n,e,t),this.updateRawItem({...this.rawItem,config:{...this.config}}))}swapItemsById(e,t){let n=this.items,r=n.indexOf(e),i=n.indexOf(t);if(r===-1)throw Error(`Item '${e}' not found in group '${this.key}'`);if(i===-1)throw Error(`Item '${t}' not found in group '${this.key}'`);this.swapItemsByIndex(r,i)}moveItemToIndex(e,t){let n=this.items,r=n.indexOf(e);if(r===-1)throw Error(`Item '${e}' not found in group '${this.key}'`);if(t<0||t>=n.length)throw Error(`Index out of bounds. Valid range is 0-${n.length-1}`);r!==t&&(this.config.items=Ee(n,r,t),this.updateRawItem({...this.rawItem,config:{...this.config}}))}},De=class extends v{type=`page-break`;parseConfig(e){return{}}serializeConfig(){}isInteractive(){return!1}getResponseSlotDefinitions(){return[]}},Oe={group:y,"page-break":De},ke=e=>e in Oe;function Ae(e,t){if(ke(e.itemType)){let t=Oe[e.itemType];return new t(e)}if(t&&e.itemType in t){let n=t[e.itemType];return new n(e)}throw Error(`Unknown item type: ${e.itemType}`)}function je(e){return{...Oe,...e}}var Me=`https://github.com/case-framework/case-survey-toolkit/packages/survey-core/schemas/survey-schema.json`,b=e=>{if(e.trim()===``)throw Error(`Locale cannot be empty`)},Ne=class e{_translations;constructor(){this._translations={}}setContent(e,t,n){if(b(e),!this._translations?.[e]){if(!n)return;this._translations[e]={}}n?this._translations[e][t]=n:delete this._translations[e][t]}setAllForLocale(e,t){if(b(e),!this._translations?.[e]){if(!t)return;this._translations[e]={}}this._translations[e]=t||{}}get locales(){return Object.keys(this._translations||{})}getAllForLocale(e){return this._translations?.[e]}getContent(e,t,n){let r=this._translations?.[e]?.[t];if(r)return r;if(n)return this._translations?.[n]?.[t]}clone(){let t=new e;for(let e of this.locales){let n=this.getAllForLocale(e);n&&t.setAllForLocale(e,i(n))}return t}removeContentKey(e){for(let t of this.locales)delete this._translations?.[t]?.[e]}removeContentKeysWithPrefix(e){for(let t of this.locales){let n=this._translations?.[t];if(n)for(let t of Object.keys(n))(t===e||t.startsWith(e+`.`))&&delete n[t]}}compact(){for(let e of this.locales){let t=this._translations?.[e];t&&Object.keys(t).length===0&&delete this._translations?.[e]}return this.locales.length>0?this:void 0}},x=class{_translations;constructor(e){this._translations=e||{}}serialize(){if(this.locales.length!==0)return this._translations}get locales(){return Object.keys(this._translations)}removeLocale(e){b(e),delete this._translations[e]}renameLocale(e,t){b(e),b(t),this._translations[e]&&(this._translations[t]=this._translations[e],delete this._translations[e])}cloneLocaleAs(e,t){b(e),b(t),this._translations[e]&&(this._translations[t]=i(this._translations[e]))}get surveyCardContent(){let e={};for(let t of this.locales){let n=this._translations?.[t]?.surveyCardContent;n&&(e[t]=n)}return e}get navigationContent(){let e={};for(let t of this.locales){let n=this._translations?.[t]?.navigationContent;n&&(e[t]=n)}return e}get validationMessages(){let e={};for(let t of this.locales){let n=this._translations?.[t]?.validationMessages;n&&(e[t]=n)}return e}setSurveyCardContent(e,t){if(b(e),!this._translations[e]){if(!t)return;this._translations[e]={}}this._translations[e].surveyCardContent=t}setNavigationContent(e,t){if(b(e),!this._translations[e]){if(!t)return;this._translations[e]={}}this._translations[e].navigationContent=t}setValidationMessages(e,t){if(b(e),!this._translations[e]){if(!t)return;this._translations[e]={}}this._translations[e].validationMessages=t}getItemTranslations(e){let t=new Ne;for(let n of this.locales){let r=this._translations?.[n].itemTranslations?.[e];t.setAllForLocale(n,r)}return t.locales.length>0?t:void 0}setItemTranslations(e,t){let n=t?.clone().compact();if(n?.locales.forEach(e=>b(e)),n){let t=n.locales;for(let e of t)this.locales.includes(e)||(this._translations[e]={});for(let r of this.locales)t.includes(r)?(this._translations[r]||(this._translations[r]={}),this._translations[r].itemTranslations||(this._translations[r].itemTranslations={}),this._translations[r].itemTranslations[e]=n.getAllForLocale(r)):delete this._translations[r].itemTranslations?.[e]}else for(let t of this.locales)this._translations[t].itemTranslations?.[e]&&delete this._translations[t].itemTranslations?.[e]}onComponentKeyChanged(e,t,n){for(let r of this.locales){let i=this._translations?.[r].itemTranslations?.[e];if(i)for(let e of Object.keys(i))(e.startsWith(t+`.`)||e===t)&&(i[e.replace(t,n)]={...i[e]},delete i[e])}}onComponentDeleted(e,t){for(let n of this.locales){let r=this._translations?.[n].itemTranslations?.[e];if(r)for(let e of Object.keys(r))(e.startsWith(t+`.`)||e===t)&&delete r[e]}}onItemDeleted(e){for(let t of this.locales)delete this._translations[t].itemTranslations?.[e]}},Pe=function(e){return e.richText=`richText`,e.plain=`plain`,e.md=`md`,e}({});function Fe(e){switch(e.type){case`paragraph`:return e.children.length>0;case`heading`:return e.children.length>0;case`bulletList`:return e.items.some(e=>e.children.some(e=>e.children.length>0));case`image`:return!0;case`infoBox`:return!0;case`separator`:return!0;case`blockExtension`:return!0}}function Ie(e){return e.doc.blocks.some(e=>Fe(e))}function Le(e=``){return{type:`richText`,version:1,doc:{type:`doc`,blocks:[{type:`paragraph`,children:e.length>0?e.split(`
2
+ `).flatMap((e,t)=>{let n=[];return t>0&&n.push({type:`lineBreak`}),e.length>0&&n.push({type:`text`,text:e}),n}):[]}]}}}function Re(e){return e.map(e=>{switch(e.type){case`text`:return e.text;case`template`:return`{${e.key}}`;case`lineBreak`:return`
3
+ `}}).join(``)}function S(e){return e.map(e=>{switch(e.type){case`text`:return e.text;case`template`:return`{${e.key}}`;case`link`:return Re(e.children);case`lineBreak`:return`
4
+ `;case`inlineExtension`:return``}}).join(``)}function ze(e){return e.map(e=>S(e.children)).join(`
5
+ `)}function Be(e){switch(e.type){case`paragraph`:return S(e.children);case`heading`:return S(e.children);case`bulletList`:return e.items.map(e=>ze(e.children)).join(`
6
+ `);case`image`:{let t=e.caption?ze(e.caption):``;return[e.alt??``,t].filter(Boolean).join(`
7
+ `)}case`infoBox`:return[e.title?S(e.title):``,ze(e.children)].filter(Boolean).join(`
8
+ `);case`separator`:return``;case`blockExtension`:return``}}function Ve(e){return e.doc.blocks.map(e=>Be(e)).filter(e=>e.length>0).join(`
9
+ `).trim()}function He(e){return e?e.type===`richText`?Ve(e):e.content??``:``}function Ue(e){return e?e.type===`richText`?!Ie(e):e.content.trim().length===0:!0}function We(e){if(!e||e.type!==`richText`)return[];let t=[];return e.doc.blocks.forEach((e,n)=>{e.type===`image`&&e.source.type===`asset`&&t.push({assetId:e.source.assetId,blockIndex:n})}),t}var Ge=class e{maxItemsPerPage;metadata;surveyItems=new Map;_templateValues=new Map;_assets=new Map;_translations;constructor(e){this.pluginRegistry=e,this._translations=new x}getPluginRegistry(){return this.pluginRegistry}createItemFromRaw(e){return Ae(e,this.pluginRegistry)}static createBlankSurvey(t,n){let r=n??`survey`,i={$schema:Me,surveyItems:[{id:o(),key:r,itemType:`group`,config:{isRoot:!0,items:[],shuffleItems:!1}}]};return e.fromJson(i,t)}static fromJson(t,n){let r=new e(n),i=t;if(i.$schema!==`https://github.com/case-framework/case-survey-toolkit/packages/survey-core/schemas/survey-schema.json`)throw Error(`Unsupported survey schema: ${i.$schema}`);if(r.surveyItems=new Map,!i.surveyItems||i.surveyItems.length===0)throw Error(`surveyItems is required`);return i.surveyItems.forEach(e=>{let t=Ae(e,n);r.surveyItems.set(t.id,t)}),i.templateValues&&(r._templateValues=le(i.templateValues)),i.assets&&(r._assets=new Map(Object.entries(i.assets))),r._translations=new x(i.translations),i.maxItemsPerPage&&(r.maxItemsPerPage=i.maxItemsPerPage),i.metadata&&(r.metadata=i.metadata),r}serialize(){let e={$schema:Me,surveyItems:Array.from(this.surveyItems.values()).map(e=>e.rawItem)};return e.translations=this._translations?.serialize(),this._templateValues&&(e.templateValues=se(this._templateValues)),this._assets&&this._assets.size>0&&(e.assets=Object.fromEntries(this._assets.entries())),this.maxItemsPerPage&&(e.maxItemsPerPage=this.maxItemsPerPage),this.metadata&&(e.metadata=this.metadata),e}get surveyKey(){if(this.rootItem)return this.rootItem.key}get locales(){return this._translations?.locales||[]}get rootItem(){return Array.from(this.surveyItems.values()).find(e=>e instanceof y&&e.isRoot)}get keyIndex(){let e=[];for(let t of this.surveyItems.values()){let n=this.getItemPath(t.id);e.push({itemId:t.id,key:t.key,keyPath:n.map(e=>this.surveyItems.get(e)?.key??``),path:n})}return e}getItemPath(e){let t=this.surveyItems.get(e);if(!t)throw Error(`Item ${e} not found`);if(t instanceof y&&t.isRoot())return[];let n=this.getParentItem(e);if(!n)throw Error(`Parent item for ${e} not found`);return[...this.getItemPath(n.id),n.id]}getItemKey(e){let t=this.surveyItems.get(e);if(!t)return;let n=this.getItemPath(e).map(e=>this.surveyItems.get(e)?.key??``);return new we(t.key,n)}getParentItem(e){let t=this.surveyItems.get(e);if(!t)throw Error(`Item ${e} not found`);if(t instanceof y&&t.isRoot())return;let n=Array.from(this.surveyItems.values()).find(t=>t instanceof y&&t.config.items?.includes(e));if(n)return n}getChildrenItems(e){let t=this.surveyItems.get(e);return!t||!(t instanceof y)?[]:t.config.items?.map(e=>this.surveyItems.get(e))?.filter(e=>e!==void 0)||[]}getSiblings(e){return this.surveyItems.get(e)&&this.getParentItem(e)?.items?.map(e=>this.surveyItems.get(e))?.filter(e=>e!==void 0)||[]}get translations(){return this._translations||=new x,this._translations}getItemTranslations(e){if(!this.surveyItems.get(e))throw Error(`Item ${e} not found`);return this._translations?.getItemTranslations(e)}getTemplateValue(e){return this._templateValues?.get(e)}setTemplateValue(e,t){this._templateValues||=new Map,this._templateValues?.set(e,t)}deleteTemplateValue(e){this._templateValues?.delete(e)}getTemplateValueKeys(){return Array.from(this._templateValues?.keys()||[])}getAsset(e){let t=this._assets?.get(e);return t?i(t):void 0}setAsset(e,t){this._assets||=new Map,this._assets.set(e,i(t))}deleteAsset(e){this._assets?.delete(e)}hasAsset(e){return this._assets?.has(e)??!1}getAssetIds(){return Array.from(this._assets?.keys()||[])}getAssets(){return new Map(Array.from(this._assets?.entries()||[]).map(([e,t])=>[e,i(t)]))}getAssetUsages(e){let t=[],n=(n,r,i,a,o)=>{for(let s of We(n))e&&s.assetId!==e||t.push({assetId:s.assetId,itemId:o,locale:a,contentKey:i,usageScope:r,blockIndex:s.blockIndex})},r=this._translations?.serialize(),i=this.rootItem?.id;if(!r)return t;for(let[e,t]of Object.entries(r)){for(let[r,a]of Object.entries(t.surveyCardContent||{}))n(a,`surveyCard`,r,e,i);for(let[r,a]of Object.entries(t.navigationContent||{}))n(a,`navigation`,r,e,i);for(let[r,a]of Object.entries(t.validationMessages||{}))n(a,`validationMessages`,r,e,i);for(let[r,i]of Object.entries(t.itemTranslations||{}))for(let[t,a]of Object.entries(i||{}))n(a,`itemTranslation`,t,e,r)}return t}getAvailableResponseValueSlots(e){let t={};for(let n of this.surveyItems.values())t={...t,...n.getAvailableResponseValueSlots(e)};return t}getResponseSlotDefinitions(){return Array.from(this.surveyItems.values()).map(e=>({itemId:e.id,slots:e.getResponseSlotDefinitions()}))}getReferenceUsages(e){let t=[];for(let n of this.surveyItems.values())e&&n.id!==e&&!this.isDescendantOf(n.id,e)||t.push(...n.getReferenceUsages());if(this._templateValues)for(let[e,n]of this._templateValues.entries())for(let r of n.expression?.responseVariableRefs||[])t.push({itemId:e,usageType:`templateValues`,valueReference:r});return t}isDescendantOf(e,t){return e===t?!0:this.getItemPath(e).includes(t)}},Ke=365.2425,qe=6048e5,Je=864e5,Ye=43200,Xe=1440,Ze=3600*24;Ze*7,Ze*Ke/12*3;var Qe=Symbol.for(`constructDateFrom`);function C(e,t){return typeof e==`function`?e(t):e&&typeof e==`object`&&Qe in e?e[Qe](t):e instanceof Date?new e.constructor(t):new Date(t)}function w(e,t){return C(t||e,e)}var $e={};function T(){return $e}function E(e,t){let n=T(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=w(e,t?.in),a=i.getDay(),o=(a<r?7:0)+a-r;return i.setDate(i.getDate()-o),i.setHours(0,0,0,0),i}function D(e,t){return E(e,{...t,weekStartsOn:1})}function et(e,t){let n=w(e,t?.in),r=n.getFullYear(),i=C(n,0);i.setFullYear(r+1,0,4),i.setHours(0,0,0,0);let a=D(i),o=C(n,0);o.setFullYear(r,0,4),o.setHours(0,0,0,0);let s=D(o);return n.getTime()>=a.getTime()?r+1:n.getTime()>=s.getTime()?r:r-1}function tt(e){let t=w(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),e-+n}function nt(e,...t){let n=C.bind(null,e||t.find(e=>typeof e==`object`));return t.map(n)}function rt(e,t){let n=w(e,t?.in);return n.setHours(0,0,0,0),n}function it(e,t,n){let[r,i]=nt(n?.in,e,t),a=rt(r),o=rt(i),s=+a-tt(a),c=+o-tt(o);return Math.round((s-c)/Je)}function at(e,t){let n=et(e,t),r=C(t?.in||e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),D(r)}function ot(e){return e instanceof Date||typeof e==`object`&&Object.prototype.toString.call(e)===`[object Date]`}function st(e){return!(!ot(e)&&typeof e!=`number`||isNaN(+w(e)))}function ct(e,t){let n=w(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}var lt={lessThanXSeconds:{one:`less than a second`,other:`less than {{count}} seconds`},xSeconds:{one:`1 second`,other:`{{count}} seconds`},halfAMinute:`half a minute`,lessThanXMinutes:{one:`less than a minute`,other:`less than {{count}} minutes`},xMinutes:{one:`1 minute`,other:`{{count}} minutes`},aboutXHours:{one:`about 1 hour`,other:`about {{count}} hours`},xHours:{one:`1 hour`,other:`{{count}} hours`},xDays:{one:`1 day`,other:`{{count}} days`},aboutXWeeks:{one:`about 1 week`,other:`about {{count}} weeks`},xWeeks:{one:`1 week`,other:`{{count}} weeks`},aboutXMonths:{one:`about 1 month`,other:`about {{count}} months`},xMonths:{one:`1 month`,other:`{{count}} months`},aboutXYears:{one:`about 1 year`,other:`about {{count}} years`},xYears:{one:`1 year`,other:`{{count}} years`},overXYears:{one:`over 1 year`,other:`over {{count}} years`},almostXYears:{one:`almost 1 year`,other:`almost {{count}} years`}},ut=(e,t,n)=>{let r,i=lt[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?`in `+r:r+` ago`:r};function O(e){return(t={})=>{let n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var dt={date:O({formats:{full:`EEEE, MMMM do, y`,long:`MMMM do, y`,medium:`MMM d, y`,short:`MM/dd/yyyy`},defaultWidth:`full`}),time:O({formats:{full:`h:mm:ss a zzzz`,long:`h:mm:ss a z`,medium:`h:mm:ss a`,short:`h:mm a`},defaultWidth:`full`}),dateTime:O({formats:{full:`{{date}} 'at' {{time}}`,long:`{{date}} 'at' {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},ft={lastWeek:`'last' eeee 'at' p`,yesterday:`'yesterday at' p`,today:`'today at' p`,tomorrow:`'tomorrow at' p`,nextWeek:`eeee 'at' p`,other:`P`},pt=(e,t,n,r)=>ft[e];function k(e){return(t,n)=>{let r=n?.context?String(n.context):`standalone`,i;if(r===`formatting`&&e.formattingValues){let t=e.defaultFormattingWidth||e.defaultWidth,r=n?.width?String(n.width):t;i=e.formattingValues[r]||e.formattingValues[t]}else{let t=e.defaultWidth,r=n?.width?String(n.width):e.defaultWidth;i=e.values[r]||e.values[t]}let a=e.argumentCallback?e.argumentCallback(t):t;return i[a]}}var mt={ordinalNumber:(e,t)=>{let n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+`st`;case 2:return n+`nd`;case 3:return n+`rd`}return n+`th`},era:k({values:{narrow:[`B`,`A`],abbreviated:[`BC`,`AD`],wide:[`Before Christ`,`Anno Domini`]},defaultWidth:`wide`}),quarter:k({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`Q1`,`Q2`,`Q3`,`Q4`],wide:[`1st quarter`,`2nd quarter`,`3rd quarter`,`4th quarter`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:k({values:{narrow:[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],abbreviated:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],wide:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`]},defaultWidth:`wide`}),day:k({values:{narrow:[`S`,`M`,`T`,`W`,`T`,`F`,`S`],short:[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],abbreviated:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],wide:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`]},defaultWidth:`wide`}),dayPeriod:k({values:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`}},defaultFormattingWidth:`wide`})};function A(e){return(t,n={})=>{let r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],a=t.match(i);if(!a)return null;let o=a[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?gt(s,e=>e.test(o)):ht(s,e=>e.test(o)),l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;let ee=t.slice(o.length);return{value:l,rest:ee}}}function ht(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function gt(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function _t(e){return(t,n={})=>{let r=t.match(e.matchPattern);if(!r)return null;let i=r[0],a=t.match(e.parsePattern);if(!a)return null;let o=e.valueCallback?e.valueCallback(a[0]):a[0];o=n.valueCallback?n.valueCallback(o):o;let s=t.slice(i.length);return{value:o,rest:s}}}var j={code:`en-US`,formatDistance:ut,formatLong:dt,formatRelative:pt,localize:mt,match:{ordinalNumber:_t({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:A({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:`any`}),quarter:A({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:A({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:`any`}),day:A({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:`any`}),dayPeriod:A({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:`any`})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function vt(e,t){let n=w(e,t?.in);return it(n,ct(n))+1}function yt(e,t){let n=w(e,t?.in),r=D(n)-+at(n);return Math.round(r/qe)+1}function bt(e,t){let n=w(e,t?.in),r=n.getFullYear(),i=T(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,o=C(t?.in||e,0);o.setFullYear(r+1,0,a),o.setHours(0,0,0,0);let s=E(o,t),c=C(t?.in||e,0);c.setFullYear(r,0,a),c.setHours(0,0,0,0);let l=E(c,t);return+n>=+s?r+1:+n>=+l?r:r-1}function xt(e,t){let n=T(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=bt(e,t),a=C(t?.in||e,0);return a.setFullYear(i,0,r),a.setHours(0,0,0,0),E(a,t)}function St(e,t){let n=w(e,t?.in),r=E(n,t)-+xt(n,t);return Math.round(r/qe)+1}function M(e,t){return(e<0?`-`:``)+Math.abs(e).toString().padStart(t,`0`)}var N={y(e,t){let n=e.getFullYear(),r=n>0?n:1-n;return M(t===`yy`?r%100:r,t.length)},M(e,t){let n=e.getMonth();return t===`M`?String(n+1):M(n+1,2)},d(e,t){return M(e.getDate(),t.length)},a(e,t){let n=e.getHours()/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.toUpperCase();case`aaa`:return n;case`aaaaa`:return n[0];default:return n===`am`?`a.m.`:`p.m.`}},h(e,t){return M(e.getHours()%12||12,t.length)},H(e,t){return M(e.getHours(),t.length)},m(e,t){return M(e.getMinutes(),t.length)},s(e,t){return M(e.getSeconds(),t.length)},S(e,t){let n=t.length,r=e.getMilliseconds();return M(Math.trunc(r*10**(n-3)),t.length)}},P={am:`am`,pm:`pm`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},Ct={G:function(e,t,n){let r=+(e.getFullYear()>0);switch(t){case`G`:case`GG`:case`GGG`:return n.era(r,{width:`abbreviated`});case`GGGGG`:return n.era(r,{width:`narrow`});default:return n.era(r,{width:`wide`})}},y:function(e,t,n){if(t===`yo`){let t=e.getFullYear(),r=t>0?t:1-t;return n.ordinalNumber(r,{unit:`year`})}return N.y(e,t)},Y:function(e,t,n,r){let i=bt(e,r),a=i>0?i:1-i;return t===`YY`?M(a%100,2):t===`Yo`?n.ordinalNumber(a,{unit:`year`}):M(a,t.length)},R:function(e,t){return M(et(e),t.length)},u:function(e,t){return M(e.getFullYear(),t.length)},Q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`Q`:return String(r);case`QQ`:return M(r,2);case`Qo`:return n.ordinalNumber(r,{unit:`quarter`});case`QQQ`:return n.quarter(r,{width:`abbreviated`,context:`formatting`});case`QQQQQ`:return n.quarter(r,{width:`narrow`,context:`formatting`});default:return n.quarter(r,{width:`wide`,context:`formatting`})}},q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`q`:return String(r);case`qq`:return M(r,2);case`qo`:return n.ordinalNumber(r,{unit:`quarter`});case`qqq`:return n.quarter(r,{width:`abbreviated`,context:`standalone`});case`qqqqq`:return n.quarter(r,{width:`narrow`,context:`standalone`});default:return n.quarter(r,{width:`wide`,context:`standalone`})}},M:function(e,t,n){let r=e.getMonth();switch(t){case`M`:case`MM`:return N.M(e,t);case`Mo`:return n.ordinalNumber(r+1,{unit:`month`});case`MMM`:return n.month(r,{width:`abbreviated`,context:`formatting`});case`MMMMM`:return n.month(r,{width:`narrow`,context:`formatting`});default:return n.month(r,{width:`wide`,context:`formatting`})}},L:function(e,t,n){let r=e.getMonth();switch(t){case`L`:return String(r+1);case`LL`:return M(r+1,2);case`Lo`:return n.ordinalNumber(r+1,{unit:`month`});case`LLL`:return n.month(r,{width:`abbreviated`,context:`standalone`});case`LLLLL`:return n.month(r,{width:`narrow`,context:`standalone`});default:return n.month(r,{width:`wide`,context:`standalone`})}},w:function(e,t,n,r){let i=St(e,r);return t===`wo`?n.ordinalNumber(i,{unit:`week`}):M(i,t.length)},I:function(e,t,n){let r=yt(e);return t===`Io`?n.ordinalNumber(r,{unit:`week`}):M(r,t.length)},d:function(e,t,n){return t===`do`?n.ordinalNumber(e.getDate(),{unit:`date`}):N.d(e,t)},D:function(e,t,n){let r=vt(e);return t===`Do`?n.ordinalNumber(r,{unit:`dayOfYear`}):M(r,t.length)},E:function(e,t,n){let r=e.getDay();switch(t){case`E`:case`EE`:case`EEE`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`EEEEE`:return n.day(r,{width:`narrow`,context:`formatting`});case`EEEEEE`:return n.day(r,{width:`short`,context:`formatting`});default:return n.day(r,{width:`wide`,context:`formatting`})}},e:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`e`:return String(a);case`ee`:return M(a,2);case`eo`:return n.ordinalNumber(a,{unit:`day`});case`eee`:return n.day(i,{width:`abbreviated`,context:`formatting`});case`eeeee`:return n.day(i,{width:`narrow`,context:`formatting`});case`eeeeee`:return n.day(i,{width:`short`,context:`formatting`});default:return n.day(i,{width:`wide`,context:`formatting`})}},c:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`c`:return String(a);case`cc`:return M(a,t.length);case`co`:return n.ordinalNumber(a,{unit:`day`});case`ccc`:return n.day(i,{width:`abbreviated`,context:`standalone`});case`ccccc`:return n.day(i,{width:`narrow`,context:`standalone`});case`cccccc`:return n.day(i,{width:`short`,context:`standalone`});default:return n.day(i,{width:`wide`,context:`standalone`})}},i:function(e,t,n){let r=e.getDay(),i=r===0?7:r;switch(t){case`i`:return String(i);case`ii`:return M(i,t.length);case`io`:return n.ordinalNumber(i,{unit:`day`});case`iii`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`iiiii`:return n.day(r,{width:`narrow`,context:`formatting`});case`iiiiii`:return n.day(r,{width:`short`,context:`formatting`});default:return n.day(r,{width:`wide`,context:`formatting`})}},a:function(e,t,n){let r=e.getHours()/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.dayPeriod(r,{width:`abbreviated`,context:`formatting`});case`aaa`:return n.dayPeriod(r,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`aaaaa`:return n.dayPeriod(r,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(r,{width:`wide`,context:`formatting`})}},b:function(e,t,n){let r=e.getHours(),i;switch(i=r===12?P.noon:r===0?P.midnight:r/12>=1?`pm`:`am`,t){case`b`:case`bb`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`bbb`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`bbbbb`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},B:function(e,t,n){let r=e.getHours(),i;switch(i=r>=17?P.evening:r>=12?P.afternoon:r>=4?P.morning:P.night,t){case`B`:case`BB`:case`BBB`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`BBBBB`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},h:function(e,t,n){if(t===`ho`){let t=e.getHours()%12;return t===0&&(t=12),n.ordinalNumber(t,{unit:`hour`})}return N.h(e,t)},H:function(e,t,n){return t===`Ho`?n.ordinalNumber(e.getHours(),{unit:`hour`}):N.H(e,t)},K:function(e,t,n){let r=e.getHours()%12;return t===`Ko`?n.ordinalNumber(r,{unit:`hour`}):M(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t===`ko`?n.ordinalNumber(r,{unit:`hour`}):M(r,t.length)},m:function(e,t,n){return t===`mo`?n.ordinalNumber(e.getMinutes(),{unit:`minute`}):N.m(e,t)},s:function(e,t,n){return t===`so`?n.ordinalNumber(e.getSeconds(),{unit:`second`}):N.s(e,t)},S:function(e,t){return N.S(e,t)},X:function(e,t,n){let r=e.getTimezoneOffset();if(r===0)return`Z`;switch(t){case`X`:return Tt(r);case`XXXX`:case`XX`:return F(r);default:return F(r,`:`)}},x:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`x`:return Tt(r);case`xxxx`:case`xx`:return F(r);default:return F(r,`:`)}},O:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`O`:case`OO`:case`OOO`:return`GMT`+wt(r,`:`);default:return`GMT`+F(r,`:`)}},z:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`z`:case`zz`:case`zzz`:return`GMT`+wt(r,`:`);default:return`GMT`+F(r,`:`)}},t:function(e,t,n){return M(Math.trunc(e/1e3),t.length)},T:function(e,t,n){return M(+e,t.length)}};function wt(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=Math.trunc(r/60),a=r%60;return a===0?n+String(i):n+String(i)+t+M(a,2)}function Tt(e,t){return e%60==0?(e>0?`-`:`+`)+M(Math.abs(e)/60,2):F(e,t)}function F(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=M(Math.trunc(r/60),2),a=M(r%60,2);return n+i+t+a}var Et=(e,t)=>{switch(e){case`P`:return t.date({width:`short`});case`PP`:return t.date({width:`medium`});case`PPP`:return t.date({width:`long`});default:return t.date({width:`full`})}},Dt=(e,t)=>{switch(e){case`p`:return t.time({width:`short`});case`pp`:return t.time({width:`medium`});case`ppp`:return t.time({width:`long`});default:return t.time({width:`full`})}},Ot={p:Dt,P:(e,t)=>{let n=e.match(/(P+)(p+)?/)||[],r=n[1],i=n[2];if(!i)return Et(e,t);let a;switch(r){case`P`:a=t.dateTime({width:`short`});break;case`PP`:a=t.dateTime({width:`medium`});break;case`PPP`:a=t.dateTime({width:`long`});break;default:a=t.dateTime({width:`full`});break}return a.replace(`{{date}}`,Et(r,t)).replace(`{{time}}`,Dt(i,t))}},kt=/^D+$/,At=/^Y+$/,jt=[`D`,`DD`,`YY`,`YYYY`];function Mt(e){return kt.test(e)}function Nt(e){return At.test(e)}function Pt(e,t,n){let r=Ft(e,t,n);if(console.warn(r),jt.includes(e))throw RangeError(r)}function Ft(e,t,n){let r=e[0]===`Y`?`years`:`days of the month`;return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}var It=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Lt=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Rt=/^'([^]*?)'?$/,zt=/''/g,Bt=/[a-zA-Z]/;function Vt(e,t,n){let r=T(),i=n?.locale??r.locale??j,a=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,s=w(e,n?.in);if(!st(s))throw RangeError(`Invalid time value`);let c=t.match(Lt).map(e=>{let t=e[0];if(t===`p`||t===`P`){let n=Ot[t];return n(e,i.formatLong)}return e}).join(``).match(It).map(e=>{if(e===`''`)return{isToken:!1,value:`'`};let t=e[0];if(t===`'`)return{isToken:!1,value:Ht(e)};if(Ct[t])return{isToken:!0,value:e};if(t.match(Bt))throw RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}});i.localize.preprocessor&&(c=i.localize.preprocessor(s,c));let l={firstWeekContainsDate:a,weekStartsOn:o,locale:i};return c.map(r=>{if(!r.isToken)return r.value;let a=r.value;(!n?.useAdditionalWeekYearTokens&&Nt(a)||!n?.useAdditionalDayOfYearTokens&&Mt(a))&&Pt(a,t,String(e));let o=Ct[a[0]];return o(s,a,i.localize,l)}).join(``)}function Ht(e){let t=e.match(Rt);return t?t[1].replace(zt,`'`):e}var Ut=class e{itemId;meta;response;itemType;constructor(e,t){this.itemId=e.itemId,this.response=t,this.itemType=e.itemType}serialize(){return{itemId:this.itemId,itemType:this.itemType,meta:this.meta,response:this.response?.serialize()}}static deserialize(t){if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`Invalid survey item response payload`);if(typeof t.itemId!=`string`||t.itemId.trim().length===0)throw Error(`Survey item response is missing a valid itemId`);if(typeof t.itemType!=`string`||t.itemType.trim().length===0)throw Error(`Survey item response is missing a valid itemType`);let n=new e({itemId:t.itemId,itemType:t.itemType},t.response?Wt.deserialize(t.response):void 0);return n.meta=t.meta,n}},Wt=class e{_slots;constructor(e){this._slots=new Map(e??[])}get(e){return this._slots.get(e)}setSlotValue(e,t){t?this._slots.set(e,t):this._slots.delete(e)}serialize(){if(this._slots.size!==0)return{slots:Object.fromEntries(this._slots.entries())}}isEmpty(){return this._slots.size===0}clone(){return new e(Array.from(this._slots.entries()))}static deserialize(t){if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`Invalid response item payload`);let{slots:n}=t;if(!n||typeof n!=`object`||Array.isArray(n))throw Error(`Invalid response slots payload`);return new e(Object.entries(n).map(([e,t])=>{if(e.trim().length===0)throw Error(`Response slot id cannot be empty`);return _e(t,`response.slots.${e}`),[e,t]}))}},I={openSurvey:`openSurvey`,pageChanged:`pageChanged`,responeChanged:`responeChanged`,languageChanged:`languageChanged`},Gt=class{context;constructor(e){this.context=e}eval(e){if(e!==void 0)switch(e.type){case d.Const:return this.evaluateConst(e);case d.Function:return this.evaluateFunction(e);case d.ResponseVariable:return this.evaluateResponseVariable(e);case d.ContextVariable:return this.evaluateContextVariable(e);default:throw Error(`Unsupported expression type: ${e.type}`)}}setContext(e){this.context=e}evaluateConst(e){return e.value}evaluateResponseVariable(e){let t=e.responseVariableRef;switch(t.name){case`get`:return this.context?.responses[t.itemId]?.response?.get(t.slotId);case`isDefined`:return{type:m.boolean,value:this.context?.responses[t.itemId]?.response?.get(t.slotId)!==void 0};default:throw Error(`Unsupported value reference method: ${t.name}`)}}evaluateFunction(e){switch(e.functionName){case`and`:return this.evaluateAnd(e);case`or`:return this.evaluateOr(e);case`not`:return this.evaluateNot(e);case`str_eq`:return this.evaluateStrEq(e);case`eq`:return this.evaluateEq(e);case`gt`:return this.evaluateGt(e);case`gte`:return this.evaluateGte(e);case`lt`:return this.evaluateLt(e);case`lte`:return this.evaluateLte(e);case`in_range`:return this.evaluateInRange(e);case`sum`:return this.evaluateSum(e);case`min`:return this.evaluateMin(e);case`max`:return this.evaluateMax(e);case`list_contains`:return this.evaluateListContains(e);default:throw Error(`Unsupported function: ${e.functionName}`)}}evaluateContextVariable(e){if(!this.context?.surveyContext)return;let t=this.context.surveyContext;switch(e.contextType){case f.Locale:return{type:m.string,value:t.locale};case f.ParticipantFlag:{if(!e.key)return;let n=this.eval(e.key);if(n?.type!==m.string||n.value===void 0)return;let r=t.participantFlags?.[n.value];switch(e.asType){case m.boolean:return{type:m.boolean,value:r!==void 0};case m.string:return r===void 0?void 0:{type:m.string,value:r};case m.number:{if(r===void 0)return;let e=parseFloat(r);return isNaN(e)?void 0:{type:m.number,value:e}}case m.date:{if(r===void 0)return;let e=parseFloat(r);return isNaN(e)?void 0:{type:m.date,value:e}}default:return r===void 0?void 0:{type:m.string,value:r}}}case f.CustomValue:{if(!e.key)return;let n=this.eval(e.key);if(n?.type!==m.string||n.value===void 0)return;let r=t.customValues?.[n.value];if(r===void 0)return;if(e.asType!==void 0&&r?.type!==e.asType)throw Error(`Custom value type does not match expected type, got ${r?.type} and expected ${e.asType}`);return r}case f.CustomExpression:{if(!e.key)return;let n=this.eval(e.key);if(n?.type!==m.string||n.value===void 0)return;let r=t.customExpressions?.[n.value];if(typeof r!==d.Function||r===void 0)return;try{let t=e.arguments,n=r(t);if(e.asType!==void 0&&n?.type!==e.asType)throw Error(`Custom expression result type does not match expected type, got ${n?.type} and expected ${e.asType}`);return n}catch(e){throw Error(`Error evaluating custom expression: ${e}`)}}}}evaluateAnd(e){return{type:m.boolean,value:e.arguments.every(e=>this.eval(e)?.value===!0)}}evaluateOr(e){return{type:m.boolean,value:e.arguments.some(e=>this.eval(e)?.value===!0)}}evaluateNot(e){if(e.arguments.length!==1||e.arguments[0]===void 0)throw Error(`Not function expects 1 argument, got ${e.arguments.length}`);let t=this.eval(e.arguments[0]);if(t?.type!==m.boolean)throw Error(`Not function expects a boolean argument, got ${t?.type}`);return t===void 0?{type:m.boolean,value:!1}:{type:m.boolean,value:!t.value}}evaluateListContains(e){if(e.arguments.length!==2)throw Error(`List contains function expects 2 arguments, got ${e.arguments.length}`);let t=this.eval(e.arguments[0]),n=this.eval(e.arguments[1]);if(t===void 0||n===void 0)return{type:m.boolean,value:!1};let r=[m.stringArray,m.referenceArray],i=[m.string,m.reference],a=t.type,o=n.type;if(!r.includes(a)||!i.includes(o))throw Error(`List contains function expects a string array list and a string item, got ${t?.type} and ${n?.type}`);let s=t.value,c=n.value;return{type:m.boolean,value:s.includes(c)}}evaluateStrEq(e){if(e.arguments.length!==2)throw Error(`String equals function expects 2 arguments, got ${e.arguments.length}`);let t=this.eval(e.arguments[0]),n=this.eval(e.arguments[1]);if(t===void 0||n===void 0)return{type:m.boolean,value:!1};if(t?.type!==m.string||n?.type!==m.string)throw Error(`String equals function expects strings for all arguments, got ${t?.type} and ${n?.type}`);return{type:m.boolean,value:t.value===n.value}}evaluateEq(e){if(e.arguments.length!==2)throw Error(`Equals function expects 2 arguments, got ${e.arguments.length}`);let t=this.eval(e.arguments[0]),n=this.eval(e.arguments[1]);if(t===void 0||n===void 0)return{type:m.boolean,value:!1};if(t?.type!==n?.type)throw Error(`Equals function expects the same type for all arguments, got ${t?.type} and ${n?.type}`);return{type:m.boolean,value:t.value===n.value}}evaluateGt(e){if(e.arguments.length!==2)throw Error(`Greater than function expects 2 arguments, got ${e.arguments.length}`);let t=this.eval(e.arguments[0]),n=this.eval(e.arguments[1]);if(t===void 0||n===void 0)return{type:m.boolean,value:!1};if(t?.type!==n?.type)throw Error(`Greater than function expects the same type for all arguments, got ${t?.type} and ${n?.type}`);return{type:m.boolean,value:t.value>n.value}}evaluateGte(e){if(e.arguments.length!==2)throw Error(`Greater than or equal to function expects 2 arguments, got ${e.arguments.length}`);let t=this.eval(e.arguments[0]),n=this.eval(e.arguments[1]);if(t===void 0||n===void 0)return{type:m.boolean,value:!1};if(t?.type!==n?.type)throw Error(`Greater than or equal to function expects the same type for all arguments, got ${t?.type} and ${n?.type}`);return{type:m.boolean,value:t.value>=n.value}}evaluateLt(e){if(e.arguments.length!==2)throw Error(`Less than function expects 2 arguments, got ${e.arguments.length}`);let t=this.eval(e.arguments[0]),n=this.eval(e.arguments[1]);if(t===void 0||n===void 0)return{type:m.boolean,value:!1};if(t?.type!==n?.type)throw Error(`Less than function expects the same type for all arguments, got ${t?.type} and ${n?.type}`);return{type:m.boolean,value:t.value<n.value}}evaluateLte(e){if(e.arguments.length!==2)throw Error(`Less than or equal to function expects 2 arguments, got ${e.arguments.length}`);let t=this.eval(e.arguments[0]),n=this.eval(e.arguments[1]);if(t===void 0||n===void 0)return{type:m.boolean,value:!1};if(t?.type!==n?.type)throw Error(`Less than or equal to function expects the same type for all arguments, got ${t?.type} and ${n?.type}`);return{type:m.boolean,value:t.value<=n.value}}evaluateInRange(e){if(e.arguments.length!==4)throw Error(`In range function expects 4 arguments, got ${e.arguments.length}`);let t=this.eval(e.arguments[0]),n=this.eval(e.arguments[1]),r=this.eval(e.arguments[2]),i=this.eval(e.arguments[3])?.value===!0;if(t===void 0||n===void 0||r===void 0)return{type:m.boolean,value:!1};if(t?.type!==m.number||n?.type!==m.number||r?.type!==m.number)throw Error(`In range function expects numbers for all arguments, got ${t?.type} and ${n?.type} and ${r?.type}`);return i?{type:m.boolean,value:t.value>=n.value&&t.value<=r.value}:{type:m.boolean,value:t.value>n.value&&t.value<r.value}}evaluateSum(e){if(e.arguments.length<1)throw Error(`Sum function expects at least 1 argument, got ${e.arguments.length}`);return e.arguments.reduce((e,t)=>{if(t===void 0)return e;let n=this.eval(t);if(n===void 0)return e;if(n?.type===m.number)return{type:m.number,value:e.value+n.value};throw Error(`Sum function expects all arguments to be numbers, got ${n?.type}`)},{type:m.number,value:0})}evaluateMin(e){if(e.arguments.length<1)throw Error(`Min function expects at least 1 argument, got ${e.arguments.length}`);return e.arguments.reduce((e,t)=>{if(t===void 0)return e;let n=this.eval(t);if(n===void 0)return e;if(n?.type===m.number)return{type:m.number,value:Math.min(e.value,n.value)};throw Error(`Min function expects all arguments to be numbers, got ${typeof n}`)},{type:m.number,value:1/0})}evaluateMax(e){if(e.arguments.length<1)throw Error(`Max function expects at least 1 argument, got ${e.arguments.length}`);return e.arguments.reduce((e,t)=>{if(t===void 0)return e;let n=this.eval(t);if(n===void 0)return e;if(n?.type===m.number)return{type:m.number,value:Math.max(e.value,n.value)};throw Error(`Max function expects all arguments to be numbers, got ${typeof n}`)},{type:m.number,value:-1/0})}},Kt=class{surveyDef;renderedSurveyTree;context;locale;sessionSeedValue;responses;prefills;_events;_openedAt;dateLocales;prefillEnvironment;cache;constructor(e,t,n,r,i){if(this._openedAt=this._getTimestamp(),this.sessionSeedValue=o(),this.surveyDef=e,this.context=t||{locale:`en`},this.locale=this.context.locale,this.prefills=n?n.reduce((e,t)=>(e[t.itemId]=Ut.deserialize(t),e),{}):void 0,this.prefillEnvironment=i?.prefillEnvironment,this.dateLocales=r||[{code:`en`,locale:j}],this.responses=this.initResponseObject(this.surveyDef.surveyItems),this.initCache(),this.applyConfiguredPrefills(),this.evalExpressions(),!e.rootItem)throw Error(`constructor: root item not found`);this.renderedSurveyTree=this.renderGroup(e.rootItem),this._events=[{type:I.openSurvey,timestamp:this._getTimestamp(),value:this.context.locale}]}setContext(e){this.context=e}getDateLocales(){return this.dateLocales.slice()}getCurrentDateLocale(){let e=this.dateLocales.find(e=>e.code===this.locale);return e?e?.locale:(console.warn(`Locale '${this.locale}' is not available. Using default locale.`),this.dateLocales.length>0?this.dateLocales[0].locale:j)}updateContext(e){this.context=e,this.locale=e.locale,this._registerSurveyEvent({type:I.languageChanged,timestamp:this._getTimestamp(),value:e.locale}),this.evalExpressions(),this.reRenderSurveyTree()}setResponse(e,t){let n=this.getResponseItem(e);if(!n)throw Error(`setResponse: target not found for key: `+e);n.response=t,this._registerSurveyEvent({type:I.responeChanged,timestamp:this._getTimestamp(),itemId:e}),this.evalExpressions(),this.reRenderSurveyTree()}get openedAt(){return this._openedAt}get sessionSeed(){return this.sessionSeedValue}get survey(){return this.surveyDef}getSurveyPages(e){let t=L(this.renderedSurveyTree),n=[];e||=`large`;let r=[];return t.forEach(t=>{if(t.type===`page-break`){r.length>0&&(n.push([...r]),r=[]);return}if(r.push(t),!this.surveyDef.maxItemsPerPage)return;let i=0;switch(e){case`large`:i=this.surveyDef.maxItemsPerPage.large;break;case`small`:i=this.surveyDef.maxItemsPerPage.small;break}r.length>=i&&(n.push([...r]),r=[])}),r.length>0&&n.push([...r]),n}getRenderedSurveyItem(e){return L(this.renderedSurveyTree).find(t=>t.id===e)}onPageChanged(e){this._registerSurveyEvent({type:I.pageChanged,timestamp:this._getTimestamp(),value:e})}getEvents(){return this._events.slice()}getResponses(){let e=new Map;L(this.renderedSurveyTree).filter(e=>e.type!==`page-break`).forEach((t,n)=>{this.responses[t.id]&&e.set(t.id,n)});let t=[];return this.surveyDef.surveyItems.forEach((n,r)=>{if(!n.isInteractive())return;let i=this.getResponseItem(r);if(!i)return;let a=e.get(r);i.meta=a===void 0?void 0:{position:a},t.push(i)}),t}getDisplayConditionValue(e,t){return t?this.cache.displayConditions[e]?.components?.[t]?.result:this.cache.displayConditions[e]?.root?.result}getDisabledConditionValue(e,t){return this.cache.disabledConditions[e]?.components?.[t]?.result}getTemplateValue(e){return this.cache.templateValues[e]?.value}getValidationValues(e){let t=this.cache.validations[e];if(t)return Object.keys(t).reduce((e,n)=>(e[n]=t[n].result,e),{})}initCache(){this.cache={validations:{},displayConditions:{},templateValues:{},disabledConditions:{}},this.surveyDef.getTemplateValueKeys().forEach(e=>{this.cache.templateValues[e]={value:void 0,templateDef:this.surveyDef.getTemplateValue(e)}}),this.surveyDef.surveyItems.forEach((e,t)=>{e.validations&&Object.keys(e.validations).length>0&&(this.cache.validations[t]={},Object.keys(e.validations).forEach(n=>{let r=e.validations[n];if(!r){console.warn(`initCache: validation expression not found: `+t+` `+n);return}this.cache.validations[t][n]={expression:r,result:!1}})),e.displayConditions!==void 0&&(e.displayConditions.root||e.displayConditions.components)&&(this.cache.displayConditions[t]={},e.displayConditions.root&&(this.cache.displayConditions[t].root={expression:e.displayConditions.root,result:!1}),e.displayConditions.components&&(this.cache.displayConditions[t].components={},Object.keys(e.displayConditions.components).forEach(n=>{let r=e.displayConditions?.components?.[n];if(!r){console.warn(`initCache: display condition component expression not found: `+t+` `+n);return}this.cache.displayConditions[t].components[n]={expression:r,result:!1}}))),e.disabledConditions!==void 0&&e.disabledConditions.components!==void 0&&(this.cache.disabledConditions[t]={components:{}},Object.keys(e.disabledConditions.components).forEach(n=>{let r=e.disabledConditions?.components?.[n];if(!r){console.warn(`initCache: disabled condition component expression not found: `+t+` `+n);return}this.cache.disabledConditions[t].components[n]={expression:r,result:!1}}))})}initResponseObject(e){let t={};return e.forEach((e,n)=>{if(e.isInteractive){let r=this.prefills?.[n],i=r&&r.itemType===e.type;t[n]=new Ut({itemId:n,itemType:e.type},i?r.response:void 0)}else return}),t}applyConfiguredPrefills(){let e=new Gt({responses:this.responses,surveyContext:this.context}),t=Math.max(this.surveyDef.surveyItems.size,1);for(let n=0;n<t;n++){this.evalTemplateValues(e);let t=!1;if(this.surveyDef.surveyItems.forEach(n=>{n.isInteractive()&&(t=this.applyConfiguredPrefillsForItem(n,e)||t)}),!t)break}this.evalTemplateValues(e)}applyConfiguredPrefillsForItem(e,t){let n=this.responses[e.id];if(!n)return!1;let r=!1;for(let i of e.prefills??[]){let a=e.resolvePrefillTarget(i.target);if(!a||(i.apply??be.ifEmpty)===be.ifEmpty&&n.response?.get(a.slotId)!==void 0||!this.shouldApplyConfiguredPrefill(i,t))continue;let o=this.resolveConfiguredPrefillValue(i,a,t);if(!o)continue;let s=e.normalizePrefillValue(i,a,o);if(!s)continue;let c=n.response?.clone()??new Wt;c.setSlotValue(a.slotId,s),n.response=c.isEmpty()?void 0:c,r=!0}return r}shouldApplyConfiguredPrefill(e,t){if(!e.when)return!0;let n=t.eval(e.when);return n?.type===m.boolean&&n.value===!0}resolveConfiguredPrefillValue(e,t,n){switch(e.source.type){case`static`:return e.source.value;case`expression`:return n.eval(e.source.expression);case`templateValue`:return this.getTemplateValue(e.source.key);case`previousResponse`:{if(!this.prefillEnvironment?.getPreviousResponse)return;let t=e.source.ref.target??e.target;return this.prefillEnvironment.getPreviousResponse({surveyKey:e.source.ref.surveyKey,itemId:e.source.ref.itemId,target:t})||void 0}default:return}}shouldRender(e,t){let n=this.getDisplayConditionValue(e,t);return n===void 0?!0:n}sequentialRender(e){let t=[];for(let n of e.items||[]){if(!this.shouldRender(n))continue;let e=this.surveyDef.surveyItems.get(n);if(!e){console.warn(`sequentialRender: item not found: `+n);continue}if(e.type===`group`){t.push(this.renderGroup(e));continue}t.push({id:n,type:e.type})}return{id:e.id,type:`group`,items:t}}randomizedItemRender(e,t){let n=t.items?.filter(e=>this.shouldRender(e.id))||[],i=e.items||[],a=r(i.length);for(let e of a){let r=i[e];if(t.items?.find(e=>e.id===r)||!this.shouldRender(r))continue;let a=this.surveyDef.surveyItems.get(r);if(!a){console.warn(`randomizedItemRender: item not found: `+r);continue}if(a.type===`group`){n.push(this.renderGroup(a,t));continue}n.push({id:r,type:a.type})}return{id:e.id,type:`group`,items:n}}renderGroup(e,t){return t||={id:e.id,type:`group`,items:[]},e.config.shuffleItems?this.randomizedItemRender(e,t):this.sequentialRender(e)}reRenderSurveyTree(){if(!this.surveyDef.rootItem)throw Error(`reRenderSurveyTree: root item not found`);this.renderedSurveyTree=this.renderGroup(this.surveyDef.rootItem)}_registerSurveyEvent(e){this._events.push(e)}_getTimestamp(){return Math.floor(Date.now()/1e3)}getResponseItem(e){return this.responses[e]}evalExpressions(){let e=new Gt({responses:this.responses,surveyContext:this.context});this.evalTemplateValues(e),this.evalDisplayConditions(e),this.evalDisableConditions(e),this.evalValidations(e)}evalTemplateValues(e){Object.keys(this.cache.templateValues).forEach(t=>{let n=this.cache.templateValues[t];if(this.cache.templateValues[t].value=void 0,!n.templateDef?.expression){console.warn(`evalTemplateValues: template value expression not found: `+t);return}let r=e.eval(n.templateDef.expression);if(r===void 0){console.warn(`evalTemplateValues: template value expression returned undefined: `+t);return}switch(n.templateDef.type){case`date2string`:if(r.type!==m.date){console.warn(`evalTemplateValues: template value expression returned non-date value: `+t);return}r={type:m.string,value:Vt(new Date(r.value*1e3),n.templateDef.dateFormat)};break;default:break}this.cache.templateValues[t].value=r})}evalDisplayConditions(e){Object.keys(this.cache.displayConditions).forEach(t=>{let n=this.cache.displayConditions[t];if(n.root){let r=e.eval(n.root.expression);if(r===void 0||r.type!==m.boolean){console.warn(`evalDisplayConditions: display condition expression returned undefined: `+t);return}this.cache.displayConditions[t].root.result=r.value}n.components&&Object.keys(n.components).forEach(r=>{let i=e.eval(n.components[r].expression);if(i===void 0||i.type!==m.boolean){console.warn(`evalDisplayConditions: display condition component expression returned undefined: `+t+`.`+r);return}this.cache.displayConditions[t].components[r].result=i.value})})}evalDisableConditions(e){Object.keys(this.cache.disabledConditions).forEach(t=>{let n=this.cache.disabledConditions[t];n.components&&Object.keys(n.components).forEach(r=>{let i=e.eval(n.components[r].expression);if(i===void 0||i.type!==m.boolean){console.warn(`evalDisableConditions: disable condition component expression returned undefined: `+t+`.`+r);return}this.cache.disabledConditions[t].components[r].result=i.value})})}evalValidations(e){Object.keys(this.cache.validations).forEach(t=>{let n=this.cache.validations[t];Object.keys(n).forEach(r=>{let i=e.eval(n[r].expression);if(i===void 0||i.type!==m.boolean){console.warn(`evalValidations: validation expression returned undefined: `+t+`.`+r);return}this.cache.validations[t][r].result=i.value})})}},L=e=>{let t=[];return e.items?.forEach(e=>{e.type===`group`?t.push(...L(e)):t.push({...e})}),t},R=class extends Error{constructor(e,t,n,r){super(e),this.code=t,this.path=n,this.operationIndex=r,this.name=`JsonPatchError`}},qt=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),z=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Jt=(e,t)=>{if(/~(?![01])/.test(e))throw new R(`Invalid JSON pointer segment "${e}" in "${t}". Only "~0" and "~1" escapes are allowed.`,`invalid-json-pointer`,t)},B=e=>{if(e===``)return[];if(!e.startsWith(`/`))throw new R(`Invalid JSON pointer "${e}". It must be empty or start with "/".`,`invalid-json-pointer`,e);return e.slice(1).split(`/`).map(t=>(Jt(t,e),t.replace(/~1/g,`/`).replace(/~0/g,`~`)))},Yt=({segment:e,arrayLength:t,allowAppend:n,allowEnd:r,path:i})=>{if(e===`-`){if(n)return t;throw new R(`JSON pointer "${i}" uses "-" where an existing array index is required.`,`invalid-array-index`,i)}if(!/^(0|[1-9][0-9]*)$/.test(e))throw new R(`JSON pointer "${i}" uses invalid array index "${e}".`,`invalid-array-index`,i);let a=Number(e),o=r?t:t-1;if(a<0||a>o)throw new R(`JSON pointer "${i}" array index ${a} is out of bounds.`,`array-index-out-of-bounds`,i);return a},V=(e,t,n)=>{let r=e;for(let e of t){if(Array.isArray(r)){let t=Yt({segment:e,arrayLength:r.length,allowAppend:!1,allowEnd:!1,path:n});r=r[t];continue}if(!z(r)||!qt(r,e))throw new R(`JSON pointer "${n}" does not exist.`,`path-not-found`,n);r=r[e]}return r},Xt=(e,t)=>V(e,B(t),t),Zt=(e,t)=>{if(e===t)return!0;if(Array.isArray(e)||Array.isArray(t))return!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length?!1:e.every((e,n)=>Zt(e,t[n]));if(z(e)||z(t)){if(!z(e)||!z(t))return!1;let n=Object.keys(e).sort(),r=Object.keys(t).sort();return n.length===r.length?n.every((n,i)=>n===r[i]&&Zt(e[n],t[n])):!1}return!1},H=(e,t,n)=>{let r=B(t);if(r.length===0)return i(n);let a=r.slice(0,-1),o=r[r.length-1],s=V(e,a,t);if(Array.isArray(s)){let r=Yt({segment:o,arrayLength:s.length,allowAppend:!0,allowEnd:!0,path:t});return s.splice(r,0,i(n)),e}if(!z(s))throw new R(`JSON pointer "${t}" parent is not an object or array.`,`invalid-target-parent`,t);return s[o]=i(n),e},Qt=(e,t)=>{let n=B(t);if(n.length===0)throw new R(`Removing the document root is not supported.`,`remove-root`,t);let r=n.slice(0,-1),i=n[n.length-1],a=V(e,r,t);if(Array.isArray(a)){let n=Yt({segment:i,arrayLength:a.length,allowAppend:!1,allowEnd:!1,path:t}),[r]=a.splice(n,1);return{document:e,removedValue:r}}if(!z(a)||!qt(a,i))throw new R(`JSON pointer "${t}" does not exist.`,`path-not-found`,t);let o=a[i];return delete a[i],{document:e,removedValue:o}},$t=(e,t,n)=>{let r=B(t);return r.length===0?i(n):(V(e,r,t),Qt(e,t),H(e,t,n))},en=(e,t)=>{if(!(e===``||t===e||!t.startsWith(`${e}/`)))throw new R(`JSON Patch cannot move "${e}" into its own descendant "${t}".`,`move-into-descendant`,t)},tn=(e,t)=>{let n=i(e);return t.forEach((e,t)=>{try{switch(e.op){case`add`:n=H(n,e.path,e.value);break;case`remove`:n=Qt(n,e.path).document;break;case`replace`:n=$t(n,e.path,e.value);break;case`move`:{if(en(e.from,e.path),e.from===e.path)break;let{document:t,removedValue:r}=Qt(n,e.from);n=H(t,e.path,r);break}case`copy`:{let t=Xt(n,e.from);n=H(n,e.path,t);break}case`test`:if(!Zt(Xt(n,e.path),e.value))throw new R(`JSON Patch test failed at "${e.path}".`,`test-failed`,e.path);break}}catch(e){throw e instanceof R?new R(e.message,e.code,e.path,t):e}}),n};({default:`default`,mask:`mask`,dateFormat:`dateFormat`}).default;var nn=[`year`,`year-month`,`year-month-day`];function rn(e){let t=e.validations.map(e=>({...e,source:`validation`}));return e.required!==!0||t.some(e=>e.type===`required`)?t:[{id:`${e.id}-required`,type:`required`,source:`required`},...t]}function U(e){let t=Y(e);return t?{type:Pe.plain,content:t}:void 0}function W(e,t,n,r){let i=e?.getContent(t,n,r);return He(i).trim()||void 0}var an=`fields`,on=`fieldGroups`;function sn(e,t){return t?.trim()?`${t}.${e}`:e}function cn(e,t){return sn(`${on}.${e}`,t)}function ln(e,t){return`${cn(e,t)}.title`}function un(e,t){return`${cn(e,t)}.description`}function G(e,t){return sn(`${an}.${e}`,t)}function dn(e,t){return`${G(e,t)}.label`}function fn(e,t){return`${G(e,t)}.description`}function pn(e,t){return`${G(e,t)}.error`}function K(e,t){return`${G(e,t)}.placeholder`}function q(e,t){return`${G(e,t)}.unit`}function mn(e,t){return`${G(e,t)}.checkedLabel`}function hn(e,t){return`${G(e,t)}.uncheckedLabel`}function gn(e,t,n){return`${G(e,n)}.options.${t}.label`}function _n(e,t,n){return`${G(e,n)}.validations.${t}.message`}function vn(e,t){let n=[dn(e.id,t),fn(e.id,t),pn(e.id,t),...e.validations.map(n=>_n(e.id,n.id,t))];switch(e.type){case`textarea`:case`datepicker`:case`input`:n.push(K(e.id,t));break;case`number`:n.push(K(e.id,t)),n.push(q(e.id,t));break;case`switch`:n.push(mn(e.id,t)),n.push(hn(e.id,t));break;case`select`:{n.push(K(e.id,t));let r=e.controller;n.push(...r.options.map(n=>gn(e.id,n.id,t)));break}case`slider`:break}return n}function yn(e,t){return[ln(e.id,t),un(e.id,t)]}function bn(e,t,n,r){e.setContent(t,ln(n.id,r),U(n.title)),e.setContent(t,un(n.id,r),U(n.description))}function xn(e,t,n,r){e.setContent(t,dn(n.id,r),U(n.label)),e.setContent(t,fn(n.id,r),U(n.description)),e.setContent(t,pn(n.id,r),U(n.errorMessage));for(let i of n.validations)e.setContent(t,_n(n.id,i.id,r),U(i.message));switch(n.type){case`textarea`:case`datepicker`:case`input`:{let i=n.controller;e.setContent(t,K(n.id,r),U(i.placeholder));break}case`number`:{let i=n.controller;e.setContent(t,K(n.id,r),U(i.placeholder)),e.setContent(t,q(n.id,r),U(i.unit));break}case`switch`:{let i=n.controller;e.setContent(t,mn(n.id,r),U(i.checkedLabel)),e.setContent(t,hn(n.id,r),U(i.uncheckedLabel));break}case`select`:{let i=n.controller;e.setContent(t,K(n.id,r),U(i.placeholder));for(let a of i.options)e.setContent(t,gn(n.id,a.id,r),U(a.label));break}case`slider`:break}}function Sn(e,t,n,r,i){let a={...e,label:W(t,n,dn(e.id,i),r)??e.label,description:W(t,n,fn(e.id,i),r)??e.description,errorMessage:W(t,n,pn(e.id,i),r)??e.errorMessage,validations:e.validations.map(a=>({...a,message:W(t,n,_n(e.id,a.id,i),r)??a.message}))};switch(e.type){case`textarea`:{let o=e.controller;a.controller={...o,placeholder:W(t,n,K(e.id,i),r)??o.placeholder};break}case`number`:{let o=e.controller;a.controller={...o,placeholder:W(t,n,K(e.id,i),r)??o.placeholder,unit:W(t,n,q(e.id,i),r)??o.unit};break}case`datepicker`:{let o=e.controller;a.controller={...o,placeholder:W(t,n,K(e.id,i),r)??o.placeholder};break}case`switch`:{let o=e.controller;a.controller={...o,checkedLabel:W(t,n,mn(e.id,i),r)??o.checkedLabel,uncheckedLabel:W(t,n,hn(e.id,i),r)??o.uncheckedLabel};break}case`select`:{let o=e.controller;a.controller={...o,placeholder:W(t,n,K(e.id,i),r)??o.placeholder,options:o.options.map(a=>({...a,label:W(t,n,gn(e.id,a.id,i),r)??a.label}))};break}case`slider`:break;default:{let o=e.controller;a.controller={...o,placeholder:W(t,n,K(e.id,i),r)??o.placeholder};break}}return a}function Cn(e,t,n,r,i){return{...e,title:W(t,n,ln(e.id,i),r)??e.title,description:W(t,n,un(e.id,i),r)??e.description,fields:e.fields.map(e=>Sn(e,t,n,r,i))}}function wn(e,t,n,r={}){let{fallbackLocale:i,translationNamespace:a}=r;return{...e,fieldGroups:e.fieldGroups.map(e=>Cn(e,t,n,i,a))}}function Tn(e){let t={...e,label:void 0,description:void 0,errorMessage:void 0,required:void 0,hasValidations:void 0,isInvalid:void 0,validations:e.validations.map(e=>({...e,message:void 0}))};switch(e.type){case`textarea`:t.controller={...e.controller,placeholder:void 0};break;case`number`:t.controller={...e.controller,placeholder:void 0,unit:void 0};break;case`datepicker`:t.controller={...e.controller,placeholder:void 0};break;case`switch`:t.controller={...e.controller,checkedLabel:void 0,uncheckedLabel:void 0};break;case`select`:{let n=e.controller;t.controller={...n,placeholder:void 0,options:n.options.map(e=>({...e,label:void 0}))};break}case`slider`:break;default:t.controller={...e.controller,placeholder:void 0};break}return t}function En(e){return{...e,title:void 0,description:void 0,fields:e.fields.map(e=>Tn(e))}}function Dn(e){return{...e,fieldGroups:e.fieldGroups.map(e=>En(e))}}function J(e){return typeof e!=`number`||!Number.isFinite(e)?1:Math.min(4,Math.max(1,Math.round(e)))}function On(e){let t=e&&typeof e==`object`?e:{},n=Object.prototype.hasOwnProperty.call(t,`base`),r=Object.prototype.hasOwnProperty.call(t,`xs`);if(!n&&!r&&(t.sm!==void 0||t.md!==void 0||t.lg!==void 0)){let e=J(t.sm);return{base:e,xs:e,sm:J(t.md??t.sm),md:J(t.lg??t.md??t.sm),xl:J(t.lg??t.md??t.sm)}}let i=J(t.xs??t.sm??1),a=J(t.sm??1),o=J(t.md??1),s=J(t.xl??t.lg??1);return{base:J(n?t.base:i),xs:i,sm:a,md:o,xl:s}}function kn(e){return{"--form-group-cols-base":String(e.base),"--form-group-cols-xs":String(e.xs),"--form-group-cols-sm":String(e.sm),"--form-group-cols-md":String(e.md),"--form-group-cols-xl":String(e.xl)}}function Y(e){if(typeof e==`string`)return e.trim()||void 0}function X(e){if(!(typeof e!=`number`||!Number.isFinite(e)))return e}function An(e){return e===!0?!0:e===!1?!1:void 0}function jn(e,t){return t?.trim()||e.replace(/[^a-zA-Z0-9]/g,``).slice(0,4).toUpperCase()||c(4)}function Z(e){switch(e){case`textarea`:return{type:e,rows:3};case`number`:return{type:e,step:1};case`datepicker`:return{type:e,mode:`year-month-day`};case`switch`:return{type:e,defaultChecked:!1};case`select`:return{type:e,options:[]};case`slider`:return{type:e,min:0,max:100,step:1,defaultValue:50,showValue:!0};default:return{type:`input`,inputMode:`text`}}}function Mn(e){switch(e){case`textarea`:return[{type:`required`,label:`Required`,description:`Respondents must provide a value.`,valueKind:`none`},{type:`minLength`,label:`Minimum length`,description:`Require a longer free-text answer.`,valueKind:`number`,defaultValue:10},{type:`maxLength`,label:`Maximum length`,description:`Cap the response length.`,valueKind:`number`,defaultValue:500}];case`number`:return[{type:`required`,label:`Required`,description:`Respondents must provide a value.`,valueKind:`none`},{type:`min`,label:`Minimum value`,description:`Reject values below the threshold.`,valueKind:`number`,defaultValue:0},{type:`max`,label:`Maximum value`,description:`Reject values above the threshold.`,valueKind:`number`,defaultValue:100},{type:`integer`,label:`Integer only`,description:`Allow whole numbers only.`,valueKind:`none`}];case`datepicker`:return[{type:`required`,label:`Required`,description:`Respondents must provide a value.`,valueKind:`none`},{type:`minDate`,label:`Earliest date`,description:`Reject dates before the minimum.`,valueKind:`date`},{type:`maxDate`,label:`Latest date`,description:`Reject dates after the maximum.`,valueKind:`date`}];case`switch`:return[{type:`mustBeTrue`,label:`Must be enabled`,description:`Useful for consent or confirmation switches.`,valueKind:`none`}];case`select`:return[{type:`required`,label:`Required`,description:`Respondents must choose an option.`,valueKind:`none`}];case`slider`:return[{type:`min`,label:`Minimum value`,description:`Reject slider values below the threshold.`,valueKind:`number`,defaultValue:0},{type:`max`,label:`Maximum value`,description:`Reject slider values above the threshold.`,valueKind:`number`,defaultValue:100}];case`input`:return[{type:`required`,label:`Required`,description:`Respondents must provide a value.`,valueKind:`none`},{type:`minLength`,label:`Minimum length`,description:`Require a minimum number of characters.`,valueKind:`number`,defaultValue:2},{type:`maxLength`,label:`Maximum length`,description:`Limit the number of characters.`,valueKind:`number`,defaultValue:120},{type:`pattern`,label:`Pattern`,description:`Validate against a regular expression.`,valueKind:`text`},{type:`email`,label:`Email format`,description:`Require a valid email address.`,valueKind:`none`},{type:`url`,label:`URL format`,description:`Require a valid URL.`,valueKind:`none`}]}}function Nn(e){if(!e||typeof e!=`object`)return null;let t=e,n=Y(t.id)??o(),r=Y(t.value),i=Y(t.label);return!r&&!i?null:{id:n,value:r??i??n,label:i}}function Pn(e){let t=new Set;for(let n of e){let e=n.value.trim().toLowerCase();if(e){if(t.has(e))return!0;t.add(e)}}return!1}function Fn(e){if(!e||typeof e!=`object`)return null;let t=e,n=Y(t.id)??o(),r=Y(t.message);switch(t.type){case`minLength`:case`maxLength`:case`min`:case`max`:{let e=X(t.value);return e===void 0?null:{id:n,type:t.type,value:e,message:r}}case`pattern`:{let e=Y(t.value);return e?{id:n,type:`pattern`,value:e,message:r}:null}case`minDate`:case`maxDate`:{let e=Y(t.value);return e?{id:n,type:t.type,value:e,message:r}:null}case`email`:case`url`:case`integer`:case`required`:case`mustBeTrue`:return{id:n,type:t.type,message:r};default:return null}}function In(e,t){let n=e&&typeof e==`object`?e:{};switch(t){case`textarea`:{let e=Z(t);return{type:t,placeholder:Y(n.placeholder),rows:Math.min(12,Math.max(2,Math.round(X(n.rows)??e.rows??3)))}}case`number`:{let e=Z(t);return{type:t,placeholder:Y(n.placeholder),step:X(n.step)??e.step,unit:Y(n.unit),defaultValue:X(n.defaultValue)}}case`datepicker`:{let e=Z(t);return{type:t,placeholder:Y(n.placeholder),mode:n.mode===`year`||n.mode===`year-month`?n.mode:e.mode}}case`switch`:return{type:t,checkedLabel:Y(n.checkedLabel),uncheckedLabel:Y(n.uncheckedLabel),defaultChecked:An(n.defaultChecked)??!1};case`select`:{let e=Z(t);return{type:t,placeholder:Y(n.placeholder),allowClear:An(n.allowClear),options:Array.isArray(n.options)?n.options.map(e=>Nn(e)).filter(e=>e!==null):e.options}}case`slider`:{let e=Z(t);return{type:t,min:X(n.min)??e.min,max:X(n.max)??e.max,step:X(n.step)??e.step,defaultValue:X(n.defaultValue)??e.defaultValue,showValue:An(n.showValue)??e.showValue??!0}}default:return{type:`input`,placeholder:Y(n.placeholder),inputMode:n.inputMode===`email`||n.inputMode===`tel`||n.inputMode===`url`||n.inputMode===`password`?n.inputMode:`text`,autocomplete:Y(n.autocomplete)}}}function Ln(e){let t=new Set;for(let n of e){if(t.has(n.type))return!0;t.add(n.type)}return!1}function Rn(e){if(!e.key.trim()||Ln(e.validations))return!0;switch(e.type){case`number`:{let t=e.controller;return t.step!==void 0&&t.step<=0}case`datepicker`:{let t=e.validations.find(e=>e.type===`minDate`)?.value,n=e.validations.find(e=>e.type===`maxDate`)?.value;return typeof t==`string`&&typeof n==`string`&&t>n}case`select`:{let t=e.controller;return t.options.length===0||t.options.some(e=>!e.value.trim())||Pn(t.options)}case`slider`:{let t=e.controller;return t.min===void 0||t.max===void 0||t.step===void 0||t.defaultValue===void 0?!0:t.min>=t.max||t.step<=0||t.defaultValue<t.min||t.defaultValue>t.max}default:return e.validations.some(e=>(e.type===`minLength`||e.type===`maxLength`||e.type===`min`||e.type===`max`)&&typeof e.value==`number`?e.value<0:(e.type===`pattern`||e.type===`minDate`||e.type===`maxDate`)&&typeof e.value==`string`?e.value.trim().length===0:!1)}}function zn(e){if(!e||typeof e!=`object`)return null;let t=e,n=typeof t.id==`string`?t.id.trim():``,r=typeof t.key==`string`?t.key.trim():``;if(!n)return null;let i=jn(n,r),a=t.type===`textarea`||t.type===`number`||t.type===`datepicker`||t.type===`switch`||t.type===`select`||t.type===`slider`?t.type:`input`,o=Array.isArray(t.validations)?t.validations.map(e=>Fn(e)).filter(e=>e!==null):[],s=rn({id:n,required:t.required===!0?!0:void 0,validations:o}).map(e=>({id:e.id,type:e.type,value:e.value,message:e.message})),c=In(t.controller,a),l=rn({id:n,validations:s}).length>0;return{id:n,key:i,type:a,label:Y(t.label),description:Y(t.description),errorMessage:Y(t.errorMessage),required:s.some(e=>e.type===`required`)?!0:void 0,controller:c,validations:s,hasValidations:l?!0:void 0,isInvalid:Rn({key:i,type:a,controller:c,validations:s})?!0:void 0}}function Bn(e){if(!e||typeof e!=`object`)return null;let t=e,n=typeof t.id==`string`?t.id.trim():``,r=typeof t.title==`string`?t.title.trim():``,i=typeof t.description==`string`?t.description.trim():``;return n?{id:n,title:r||void 0,description:i||void 0,hasDisplayCondition:t.hasDisplayCondition===!0?!0:void 0,layout:On(t.layout),fields:Array.isArray(t.fields)?t.fields.map(e=>zn(e)).filter(e=>e!==null):[]}:null}function Q(e,t){let n=e??{};return{id:typeof n.id==`string`&&n.id.trim()?n.id:t,fieldGroups:Array.isArray(n.fieldGroups)?n.fieldGroups.map(e=>Bn(e)).filter(e=>e!==null):[]}}function Vn(){return{id:o(),layout:{base:1,xs:1,sm:1,md:1,xl:1},fields:[]}}function Hn(e){let t=new Set(e.map(e=>e.key.trim().toLowerCase()).filter(Boolean)),n=1;for(;t.has(`f${n}`);)n+=1;return`F${n}`}function Un(e,t=c(4)){return{id:o(),key:t,type:e,controller:Z(e),validations:[]}}function Wn(e){return e===1}function Gn(e){return{id:e,maxSelection:1,shuffleOptions:!1,options:[]}}function Kn(e){return`options.${e}.label`}function qn(e){return`embeddedForms.${e}`}function Jn(e){return`embedded.${e}`}function Yn(e,t){return`${Jn(e)}.${t}`}function Xn(e){return $(e.key??``)||e.id}function Zn(e){return!!(e.embeddedFormItemId||e.embeddedForm?.fieldGroups.length)}function $(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,`_`).replace(/_+/g,`_`).replace(/^_+|_+$/g,``)}function Qn(e){if(!e||typeof e!=`object`)return null;let t=e,n=typeof t.id==`string`?t.id.trim():``;if(!n)return null;let r=typeof t.key==`string`?t.key.trim():``,i=typeof t.embeddedFormItemId==`string`?t.embeddedFormItemId.trim():``;return{id:n,key:r||void 0,hasDisplayCondition:t.hasDisplayCondition===!0?!0:void 0,embeddedFormItemId:i||void 0,embeddedForm:t.embeddedForm?Q(t.embeddedForm,n):void 0}}function $n(e){let t=`maxSelection`in e&&e.maxSelection!==void 0,n=e.maxSelection;if(n===null)return null;if(typeof n==`number`&&Number.isFinite(n)){let e=Math.floor(n);return e>=1?e:1}if(typeof n==`string`){let e=Number.parseInt(n.trim(),10);if(Number.isFinite(e)&&e>=1)return e}return!t&&e.mode===`multiple`?null:1}function er(e,t){let n=e??{};return{id:typeof n.id==`string`&&n.id.trim()?n.id:t,maxSelection:$n(n),shuffleOptions:n.shuffleOptions===!0,options:Array.isArray(n.options)?n.options.map(e=>Qn(e)).filter(e=>e!==null):[]}}function tr(e){let t=new Set(e.map(e=>$(e.key??``).match(/^opt_(\d+)$/)?.[1]).filter(e=>e!==void 0).map(e=>Number.parseInt(e,10)).filter(e=>Number.isFinite(e))),n=1;for(;t.has(n);)n+=1;return{id:o(),key:`opt_${n}`}}function nr(e,t){let n=tr(t);return{...e,id:n.id,key:n.key,embeddedForm:e.embeddedForm?i(e.embeddedForm):void 0}}function rr(e){return e.type===`number`||e.type===`slider`?m.number:e.type===`datepicker`?m.date:e.type===`switch`?m.boolean:m.string}var ir=class extends v{type=`infoItem`;parseConfig(e){return e??{}}isInteractive(){return!1}getResponseSlotDefinitions(){return[]}},ar=class extends v{type=`formItem`;parseConfig(e){return Q(e,this.id)}isInteractive(){return!0}getResponseSlotDefinitions(){return this.config.fieldGroups.flatMap(e=>e.fields.map(e=>({slotId:e.key,key:e.key,keyPath:[`response`],valueType:rr(e),prefillTarget:{type:_.field,fieldId:e.id}})))}},or=class extends v{type=`choiceItem`;parseConfig(e){return er(e,this.id)}isInteractive(){return!0}getResponseSlotDefinitions(){let e=this.config.id??this.id,t=this.config.maxSelection===1?m.reference:m.referenceArray,n=this.config.options.flatMap(e=>{let t=e.embeddedForm?Q(e.embeddedForm,e.id):void 0;return t?t.fieldGroups.flatMap(t=>t.fields.map(t=>({slotId:Yn(e.id,t.key),key:t.key,keyPath:[`embedded`,Xn(e)],valueType:rr(t),prefillTarget:{type:_.embeddedField,optionId:e.id,fieldId:t.id}}))):[]});return[{slotId:e,key:`response`,keyPath:[],valueType:t,prefillTarget:{type:_.itemResponse}},...n]}normalizePrefillValue(e,t,n){if(t.prefillTarget?.type!==_.itemResponse)return super.normalizePrefillValue(e,t,n);let r=new Set(this.config.options.map(e=>e.id));if(this.config.maxSelection===1)return n.type!==m.reference||!r.has(n.value)?void 0:n;if(n.type!==m.referenceArray)return;let i=n.value.filter(e=>r.has(e));if(i.length!==0)return i.length===n.value.length?n:{...n,value:i}}};Object.defineProperty(exports,`$`,{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(exports,`A`,{enumerable:!0,get:function(){return Kt}}),Object.defineProperty(exports,`B`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return Hn}}),Object.defineProperty(exports,`Ct`,{enumerable:!0,get:function(){return Fe}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return bn}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return Dn}}),Object.defineProperty(exports,`Et`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`F`,{enumerable:!0,get:function(){return yt}}),Object.defineProperty(exports,`G`,{enumerable:!0,get:function(){return nt}}),Object.defineProperty(exports,`H`,{enumerable:!0,get:function(){return ot}}),Object.defineProperty(exports,`I`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`J`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`K`,{enumerable:!0,get:function(){return tt}}),Object.defineProperty(exports,`L`,{enumerable:!0,get:function(){return _t}}),Object.defineProperty(exports,`M`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`N`,{enumerable:!0,get:function(){return Vt}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return xn}}),Object.defineProperty(exports,`P`,{enumerable:!0,get:function(){return St}}),Object.defineProperty(exports,`Q`,{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(exports,`R`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return Mn}}),Object.defineProperty(exports,`St`,{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return wn}}),Object.defineProperty(exports,`Tt`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`U`,{enumerable:!0,get:function(){return it}}),Object.defineProperty(exports,`V`,{enumerable:!0,get:function(){return ct}}),Object.defineProperty(exports,`W`,{enumerable:!0,get:function(){return rt}}),Object.defineProperty(exports,`X`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`Y`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`Z`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return kn}}),Object.defineProperty(exports,`_t`,{enumerable:!0,get:function(){return je}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Zn}}),Object.defineProperty(exports,`at`,{enumerable:!0,get:function(){return ae}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return vn}}),Object.defineProperty(exports,`bt`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return nr}}),Object.defineProperty(exports,`ct`,{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return Kn}}),Object.defineProperty(exports,`dt`,{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(exports,`et`,{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return er}}),Object.defineProperty(exports,`ft`,{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return Vn}}),Object.defineProperty(exports,`gt`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return Un}}),Object.defineProperty(exports,`ht`,{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return Wn}}),Object.defineProperty(exports,`it`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`j`,{enumerable:!0,get:function(){return tn}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return Wt}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Yn}}),Object.defineProperty(exports,`lt`,{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return nn}}),Object.defineProperty(exports,`mt`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return ar}}),Object.defineProperty(exports,`nt`,{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return Gn}}),Object.defineProperty(exports,`ot`,{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,`pt`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`q`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return ir}}),Object.defineProperty(exports,`rt`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return tr}}),Object.defineProperty(exports,`st`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return or}}),Object.defineProperty(exports,`tt`,{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return qn}}),Object.defineProperty(exports,`ut`,{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return yn}}),Object.defineProperty(exports,`vt`,{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`wt`,{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`xt`,{enumerable:!0,get:function(){return He}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return cn}}),Object.defineProperty(exports,`yt`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`z`,{enumerable:!0,get:function(){return k}});
10
+ //# sourceMappingURL=default-item-cores-C6VK2LFe.js.map