@explorer02/cfm-survey-sdk 0.2.2 → 0.2.4

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 (113) hide show
  1. package/dist/cli/index.js +140 -33
  2. package/dist/cli/index.mjs +140 -33
  3. package/dist/index.js +1 -1
  4. package/dist/index.mjs +1 -1
  5. package/package.json +8 -1
  6. package/postinstall.js +8 -5
  7. package/templates/AGENT.md +62 -17
  8. package/templates/deploy-wizard-to-s3.sh +52 -0
  9. package/templates/docs/00-integration/agent-execution-flow.md +281 -0
  10. package/templates/docs/00-integration/agent-operating-contract.md +260 -0
  11. package/templates/docs/00-integration/analytics-events-catalog.md +54 -0
  12. package/templates/docs/00-integration/apply-ui-config.md +365 -0
  13. package/templates/docs/00-integration/canonical-survey-fixtures.md +94 -0
  14. package/templates/docs/00-integration/client-integration-guide.md +10 -8
  15. package/templates/docs/00-integration/client-lib-folder.md +115 -0
  16. package/templates/docs/00-integration/component-checklist.md +90 -54
  17. package/templates/docs/00-integration/constraints.md +13 -5
  18. package/templates/docs/00-integration/custom-field-logic-and-navigation.md +56 -0
  19. package/templates/docs/00-integration/display-logic-and-navigation.md +16 -1
  20. package/templates/docs/00-integration/file-upload-aws.md +116 -0
  21. package/templates/docs/00-integration/logic-fields-catalog.md +105 -0
  22. package/templates/docs/00-integration/partial-save-and-recovery.md +24 -0
  23. package/templates/docs/00-integration/progress.md +4 -2
  24. package/templates/docs/00-integration/question-type-sdk-matrix.md +11 -9
  25. package/templates/docs/00-integration/setup.md +15 -3
  26. package/templates/docs/00-integration/skip-logic-and-navigation.md +1 -1
  27. package/templates/docs/00-integration/survey-lifecycle-analytics.md +1 -1
  28. package/templates/docs/00-integration/ui-customization-wizard.md +144 -0
  29. package/templates/docs/00-integration/useSurveySDK.md +35 -1
  30. package/templates/docs/00-integration/wizard-api.md +134 -0
  31. package/templates/docs/00-integration/wizard-config-handoff.md +246 -0
  32. package/templates/docs/00-integration/wizard-preview-build-guide.md +400 -0
  33. package/templates/docs/00-integration/wizard-question-type-styling.md +195 -0
  34. package/templates/docs/01-components/01-survey-page.md +18 -8
  35. package/templates/docs/01-components/02-question.md +2 -2
  36. package/templates/docs/01-components/03-rating-scale.md +12 -18
  37. package/templates/docs/01-components/05-csat-matrix-scale.md +18 -26
  38. package/templates/docs/01-components/06-likert-matrix-scale.md +19 -38
  39. package/templates/docs/01-components/07-slider-matrix-scale.md +48 -33
  40. package/templates/docs/01-components/08-file-upload-scale.md +15 -52
  41. package/templates/docs/01-components/09-custom-slider-track.md +15 -25
  42. package/templates/docs/01-components/10-header-footer.md +23 -4
  43. package/templates/docs/01-components/11-progress-bar.md +14 -6
  44. package/templates/docs/01-components/13-matrix-dropdown.md +28 -33
  45. package/templates/docs/01-components/17-heatmap-scale.md +4 -4
  46. package/templates/docs/01-components/18-rank-order-scale.md +24 -31
  47. package/templates/docs/01-components/19-survey-sticky-chrome.md +79 -0
  48. package/templates/docs/01-components/README.md +2 -2
  49. package/templates/docs/02-reference/question-types/10-slider-matrix.md +38 -26
  50. package/templates/docs/02-reference/question-types/11-file-upload.md +36 -21
  51. package/templates/docs/02-reference/question-types/README.md +11 -1
  52. package/templates/docs/02-reference/routing-table.md +1 -0
  53. package/templates/docs/02-reference/value-derivation.md +1 -1
  54. package/templates/docs/03-ui-specs/00-question-shell.md +10 -0
  55. package/templates/docs/03-ui-specs/01-rating.md +28 -2
  56. package/templates/docs/03-ui-specs/02-radio.md +94 -24
  57. package/templates/docs/03-ui-specs/03-text.md +12 -1
  58. package/templates/docs/03-ui-specs/04-csat.md +90 -26
  59. package/templates/docs/03-ui-specs/06-slider.md +3 -1
  60. package/templates/docs/03-ui-specs/07-matrix-cfm.md +74 -35
  61. package/templates/docs/03-ui-specs/08-matrix-csat-rating.md +50 -16
  62. package/templates/docs/03-ui-specs/09-slider-matrix.md +70 -26
  63. package/templates/docs/03-ui-specs/10-file-upload.md +52 -20
  64. package/templates/docs/03-ui-specs/11-text-and-media.md +4 -0
  65. package/templates/docs/03-ui-specs/12-survey-chrome.md +92 -5
  66. package/templates/docs/03-ui-specs/13-heatmap.md +21 -3
  67. package/templates/docs/03-ui-specs/14-rank-order.md +108 -28
  68. package/templates/docs/03-ui-specs/README.md +11 -7
  69. package/templates/docs/03-ui-specs/shared/custom-slider-track.md +28 -35
  70. package/templates/docs/03-ui-specs/shared/matrix-dropdown.md +1 -1
  71. package/templates/docs/MANIFEST.json +187 -6
  72. package/templates/docs/index.md +116 -116
  73. package/templates/docs/templates/CsatMatrixScale.tsx +637 -0
  74. package/templates/docs/templates/CustomSliderTrack.tsx +144 -0
  75. package/templates/docs/templates/FileUploadScale.tsx +262 -0
  76. package/templates/docs/templates/HeatmapScale.tsx +114 -0
  77. package/templates/docs/templates/LikertMatrixScale.tsx +414 -0
  78. package/templates/docs/templates/MatrixDropdown.tsx +216 -0
  79. package/templates/docs/templates/Question.tsx +3 -0
  80. package/templates/docs/templates/RankOrderScale.tsx +353 -0
  81. package/templates/docs/templates/RatingScale.tsx +129 -0
  82. package/templates/docs/templates/SliderMatrixScale.tsx +248 -0
  83. package/templates/docs/templates/SurveyStickyChrome.tsx +24 -0
  84. package/templates/docs/templates/customFieldValues.ts +36 -0
  85. package/templates/docs/templates/implementation_plan.md +75 -8
  86. package/templates/docs/templates/labelStyles.ts +33 -0
  87. package/templates/docs/templates/selectionStyles.ts +100 -0
  88. package/templates/docs/templates/survey-inventory.schema.json +28 -23
  89. package/templates/docs/templates/surveyUiIcons.tsx +63 -0
  90. package/templates/docs/templates/surveyUiScaleUtils.ts +51 -0
  91. package/templates/docs/templates/verify-agent-build.sh +151 -0
  92. package/templates/preview-harness/preview-bridge.inline.js +201 -0
  93. package/templates/preview-harness/previewPages.js +108 -0
  94. package/templates/preview-harness/previewPages.ts +298 -0
  95. package/templates/preview-harness/vite-app/src/PreviewConfigContext.tsx +67 -0
  96. package/templates/preview-harness/vite-app/src/QuestionPreview.tsx +122 -0
  97. package/templates/preview-harness/vite-app/src/SurveyPagePreview.tsx +75 -0
  98. package/templates/preview-harness/vite-app/src/fixtures/questions.ts +311 -0
  99. package/templates/preview-harness/vite-app/src/globals.css +16 -0
  100. package/templates/preview-harness/vite-app/src/mount.tsx +9 -0
  101. package/templates/preview-harness/vite-app/src/preview-live-overrides.css +101 -0
  102. package/templates/preview-harness/vite-app/stubs/next-dynamic.tsx +25 -0
  103. package/templates/preview-harness/vite-app/stubs/next-image.tsx +29 -0
  104. package/templates/previewBridge.ts +153 -0
  105. package/templates/survey-theme.css +295 -0
  106. package/templates/survey-ui-config.schema.json +213 -0
  107. package/templates/wizard-dist/assets/PreviewMock-DgHfrVeb.js +1 -0
  108. package/templates/wizard-dist/assets/TypePanel-CFVC3Ptn.js +1 -0
  109. package/templates/wizard-dist/assets/index-BhWM50Yu.css +1 -0
  110. package/templates/wizard-dist/assets/index-DYK3X1e5.js +34 -0
  111. package/templates/wizard-dist/assets/vendor-BwkXDkd3.js +17 -0
  112. package/templates/wizard-dist/index.html +20 -0
  113. package/templates/wizard.html +13 -1129
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{useCallback as So,useMemo as sa,useRef as vo}from"react";import{useMemo as Xo}from"react";import{useQuery as Go}from"@tanstack/react-query";import{QueryClient as Ro}from"@tanstack/react-query";var At=!1,Io={debug:"background: #7f8c8d; color: #fff; padding: 2px 5px; border-radius: 3px; font-weight: bold;",info:"background: #2980b9; color: #fff; padding: 2px 5px; border-radius: 3px; font-weight: bold;",warn:"background: #f1c40f; color: #000; padding: 2px 5px; border-radius: 3px; font-weight: bold;",error:"background: #e74c3c; color: #fff; padding: 2px 5px; border-radius: 3px; font-weight: bold;",success:"background: #2ecc71; color: #fff; padding: 2px 5px; border-radius: 3px; font-weight: bold;",perf:"background: #9b59b6; color: #fff; padding: 2px 5px; border-radius: 3px; font-weight: bold;",analytics:"background: #e20074; color: #fff; padding: 2px 5px; border-radius: 3px; font-weight: bold;"};function oe(e,t,r){if(!At&&e!=="analytics")return;let n=new Date().toLocaleTimeString(),i=`%c[SDK:${e.toUpperCase()}]`,o=Io[e];r!==void 0?console.log(`[${n}] ${i}`,o,t,r):console.log(`[${n}] ${i}`,o,t)}var S={setEnabled:e=>{At=e},isEnabled:()=>At,debug:(e,t)=>oe("debug",e,t),info:(e,t)=>oe("info",e,t),warn:(e,t)=>oe("warn",e,t),error:(e,t)=>oe("error",e,t),success:(e,t)=>oe("success",e,t),analytics:(e,t)=>oe("analytics",e,t),perf:e=>{oe("perf",`${e.apiName} completed in ${e.durationMs.toFixed(2)}ms | Status: ${e.status}`,e)}};function Ye(e){return e instanceof Error?e.message:String(e)}function P(e){return e instanceof Error?e:String(e)}var me=new Ro({defaultOptions:{queries:{staleTime:1/0,refetchOnWindowFocus:!1,refetchOnReconnect:!1,refetchInterval:!1,retryDelay:5e3,retry:(e,t)=>{if(e>=3)return S.error("Query failed permanently after 3 attempts. Stopping retries.",{err:P(t)}),!1;if(t instanceof Error){let r=t.message;if(r.includes("400")||r.includes("401")||r.includes("403")||r.includes("404")||r.includes("422"))return S.error(`Query failed permanently due to client error (${r}). Skipping retry.`,{err:P(t)}),!1}return S.warn(`Query failed. Retrying attempt ${e+1}/3...`,{err:P(t)}),!0}},mutations:{networkMode:"always",retryDelay:5e3,retry:(e,t)=>{if(e>=3)return S.error("Mutation failed permanently after 3 attempts. Stopping retries.",{err:P(t)}),!1;if(t instanceof Error){let r=t.message;if(r.includes("400")||r.includes("401")||r.includes("403")||r.includes("422"))return S.error("Mutation failed permanently due to validation/client error. Skipping retry.",{err:P(t)}),!1}return S.warn(`Mutation failed. Retrying attempt ${e+1}/3...`,{err:P(t)}),!0}}}});var Tr="https://custom-p0.feedbook.me/api/feedback/survey/cfm",Er="eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJBY2Nlc3MgVG9rZW4gR2VuZXJhdGVkIEJ5IFNwcmlua2xyIiwic3VydmV5SWQiOiI2YTJlNWM2NDFiOGRiMmY5MDQ2Nzg4ODUiLCJpc3MiOiJTUFJJTktMUiIsInR5cCI6IkpXVCIsInN1cnZleU1vZGUiOiJTVEFOREFSRCIsInN1cnZleUF1dGhlbnRpY2F0aW9uU3RhdGUiOiJOT1RfUkVRVUlSRUQiLCJkaXN0cmlidXRpb25FbnRpdHlJZCI6IjZhMmU1ZDEzNDRjYTkzZjc3YTVlMzcyNyIsImF1ZCI6IlNQUklOS0xSIiwibmJmIjoxNzgxNDIyMTc5LCJzY29wZSI6WyJSRUFEIiwiV1JJVEUiXSwic3RhdGljU3VydmV5IjoidHJ1ZSIsInN1cnZleVJlc3BvbmRlclNuVHlwZSI6IkVYVEVSTkFMX0FQUExJQ0FUSU9OIiwic3VydmV5TGFuZ3VhZ2UiOiJlbiIsInBhcnRuZXJJZCI6OTAwNCwidG9rZW5UeXBlIjoiQUNDRVNTIiwiYXV0aFR5cGUiOiJTVVJWRVlfUkVTUE9OU0UiLCJpYXQiOjE3ODE0MjMzNzksImp0aSI6InNwcmlua2xyIn0.B4ffi1szwM_xQKXTlr0kQc9mVOS4qVbB5e6ir4NFuCoOmNmsl3PB1QeFJ5jPaQ42s0KTpbufPam9ja0Z84CJ620l2WtuS1RModEv7ZtuMNLWOixzRxZMduC5-V7WV85H6gr1e-HzX7wgqrxTk2Z9iTr-8AVuczlwScarCfqLhA-JE_EXkFScHoehmH7QB5q5-BfcxU32iQNYOk5NyeEHGAAWkkyiGPdrbE27njPnhTunB3kKgCBvHHLq0KmgoN9x_KnrB53O_0Xai419TT5vkBWlu5a_uotZckX014eQpxYH02w_LeOF8iWEKYe6R9ge-6DSbelaJSt6U6O8Fq-aXw";function Lo(e){return`${Tr}?instanceId=${encodeURIComponent(e)}&draftPreview=false`}function hr(e){let t=typeof e=="string"&&e.trim().length>0?e.trim():Er;return Lo(t)}var l={MCQ:"MCQ",TEXTFIELD:"TEXTFIELD",NPS_SCALE:"NPS_SCALE",CFM_MATRIX:"CFM_MATRIX",CSAT_MATRIX:"CSAT_MATRIX",RATING_MATRIX:"RATING_MATRIX",SLIDER_MATRIX:"SLIDER_MATRIX",FILE_UPLOAD:"FILE_UPLOAD",TEXT_AND_MEDIA:"TEXT_AND_MEDIA",HEATMAP:"HEATMAP",RANK_ORDER:"RANK_ORDER"};function Ir(e,t,r,n){let i=t.find(h=>h.key==="REQUIRED")?.value?.[0]==="true",o=t.find(h=>h.key==="REQUIRED_ERROR_MESSAGE"),s=o?.value?.[0];r&&o?.translations?.[r]?.value?.[0]&&(s=o.translations[r].value[0]);let a=r&&e.translations?.[r]?.questionRichText||r&&e.translations?.[r]?.questionText||e.questionRichText||e.questionText||"";n&&(a=a.replace(/\{\{(\w+)\}\}/g,(h,C)=>n[C]!==void 0?n[C]:h));let u=r&&e.translations?.[r]?.descriptionRichText||r&&e.translations?.[r]?.description||e.descriptionRichText||e.description||e.descriptionText||(typeof e.additional?.descriptionRichText=="string"?e.additional.descriptionRichText:"")||(typeof e.additional?.description=="string"?e.additional.description:"")||"";if(!u){let h=t.find(C=>C.key.includes("DESCRIPTION"));u=h?.value?.[0]||"",r&&h?.translations?.[r]?.valueRichText?.[0]?u=h.translations[r].valueRichText[0]:r&&h?.translations?.[r]?.value?.[0]&&(u=h.translations[r].value[0])}u&&n&&(u=u.replace(/\{\{(\w+)\}\}/g,(h,C)=>n[C]!==void 0?n[C]:h));let p=e.questionHint,c=t.find(h=>h.key==="QUESTION_HINT");c?.value?.[0]&&c.value[0]!=="true"&&c.value[0]!=="false"&&(p=c.value[0]);let y=e.questionContainerAssets?.[0],g=y?.source||y?.mediaUrl||y?.previewImageUrl,b=y?.mediaMimeType,T=t.find(h=>h.key==="QUESTION_CONTAINER_MEDIA_ALIGNMENT")?.value?.[0],A=t.find(h=>h.key==="TEXT_AND_MEDIA_SIZE"),f=A?.value?.[0]?Number(A.value[0]):void 0,m=g||b||T||f!==void 0?{...g?{url:g}:{},...b?{mimeType:b}:{},...T?{alignment:T}:{},...f!==void 0?{size:f}:{}}:void 0,R=e.additionalInfo?.associatedPlaceholderQuestionIds,k=Array.isArray(R)?R.filter(h=>typeof h=="string"&&h.length>0):void 0;return{id:e.id??"",questionText:a,...u?{questionDescription:u}:{},...p?{questionHint:p}:{},required:i,...s?{requiredErrorMessage:s}:{},...e.questionNumber!==void 0?{questionNumber:e.questionNumber}:{},...m?{containerMedia:m}:{},...k&&k.length>0?{referencedQuestionIds:k}:{}}}var Po=new Set(["TEXT","TEXT_MULTI","TEXTAREA","NUMBER","PICKLIST","PICKLIST_MULTISELECT","DATETIME"]);function Co(e){return Array.isArray(e.filters)&&e.filters.length>0}function Rr(e){return e==="AND"||e==="OR"}function ko(e){return e!==void 0&&Po.has(e)}function wo(e){return!e?.id||e.entityType!=="QUESTION"?null:{id:e.id,entityType:"QUESTION",...e.answerType?{answerType:e.answerType}:{}}}function Oo(e){return!e?.id||e.entityType!=="CUSTOM_FIELD"||!ko(e.fieldType)?null:{id:e.id,entityType:"CUSTOM_FIELD",fieldType:e.fieldType,...e.assetClass?{assetClass:e.assetClass}:{}}}function Mo(e){return wo(e)??Oo(e)}function Qo(e){return!e?.id||e.entityType!=="OPTION"?null:{id:e.id,entityType:"OPTION"}}function No(e){if(!e.filterType||Rr(e.filterType))return null;let t=Mo(e.details?.conditionEntity);if(!t)return null;let r=Qo(e.details?.subConditionEntity),n={filterType:e.filterType,details:{conditionEntity:t,...r?{subConditionEntity:r}:{}}},i=e.details?.valueAdditional?.timezone;return i&&(n.details.valueAdditional={timezone:i}),e.field&&(n.field=e.field),e.values&&(n.values=e.values),n}function _o(e){if(!Rr(e.filterType))return null;let t=e.filters.map(r=>Lr(r)).filter(r=>r!==null);return t.length===0?null:{filterType:e.filterType,filters:t}}function Lr(e){return Co(e)?_o(e):No(e)}function Fo(e){return"filters"in e}function fe(e){if(!e)return null;let t=Lr(e);return t?Fo(t)?t:{filterType:"AND",filters:[t]}:null}function Pr(e){if(!e?.length)return;let t=e.map(r=>{let n=r.id?.trim(),i=r.skipTo?.id?.trim(),o=r.skipTo?.entityType,s=fe(r.condition);return!n||!i||!o||!s||o!=="QUESTION"&&o!=="END_OF_SURVEY"?null:{id:n,skipTo:{id:i,entityType:o},condition:s}}).filter(r=>r!==null);return t.length>0?t:void 0}function ge(e){if(!e)return;let t=fe(e.condition);if(t)return{condition:t,isDynamicAppearanceEnabled:e.isDynamicAppearanceEnabled===!0}}function Vo(e,t,r){let n=t&&e.translations?.[t]?.questionRichText||t&&e.translations?.[t]?.questionText||e.questionRichText||e.questionText||"";return r&&(n=n.replace(/\{\{(\w+)\}\}/g,(i,o)=>r[o]!==void 0?r[o]:i)),n}function Cr(e,t,r){let n=e.questionDisplayVariants;if(!n?.length)return;let i=[];for(let o of n){let s=o.id;if(!s)continue;let a=Vo(o,t,r);if(!a)continue;let u=ge(o.controlConfig?.displayLogic);u&&i.push({id:s,questionText:a,...u?{displayLogic:u}:{}})}return i.length>0?i:void 0}function kr(e,t,r,n){return{...e,...t?.length?{skipLogics:t}:{},...r?{displayLogic:r}:{},...n?.length?{displayVariants:n}:{}}}function H(e){if(!e)return;let t=fe(e.condition);if(t)return{condition:t}}function Tt(e,t){return(e.answerDetails??[]).filter(r=>!r.hidden&&!r.additional?.isHintText).map((r,n)=>{let i=H(r.controlConfig?.displayLogic);return{id:r.id??String(n),optionLabel:t&&r.translations?.[t]?.answerText||r.answerText||"",...i?{answerLogic:i}:{}}})}function wr(e){let t=e.find(u=>u.key==="ANSWER_CONDITION");if(t?.value?.[0]?.toLowerCase()!=="true")return{};let r=t.childConfigs?.find(u=>u.key==="MIN_MAX_ANSWER"),n=r?.childConfigs?.find(u=>u.key==="MIN_ANSWER")?.value?.[0],i=r?.childConfigs?.find(u=>u.key==="MAX_ANSWER")?.value?.[0],o=t.childConfigs?.find(u=>u.key==="ERROR_MESSAGE")?.value?.[0],s=n!==void 0?Number(n):void 0,a=i!==void 0?Number(i):void 0;return{...s!==void 0&&Number.isFinite(s)?{minSelections:s}:{},...a!==void 0&&Number.isFinite(a)?{maxSelections:a}:{},...o?{answerConditionErrorMessage:o}:{}}}function Or(e,t){let r=e.find(o=>o.key==="DEFAULT_ANSWER");if(r?.value?.[0]?.toLowerCase()!=="true")return;let i=r.childConfigs?.find(o=>o.key==="DEFAULT_ANSWERS")?.value?.filter(Boolean)??[];if(i.length!==0){if(t&&t.length>0){let o=new Set(t),s=i.filter(a=>o.has(a));return s.length>0?s:void 0}return i}}function Et(e,t,r){let n=e.questionConfigs??[],o=(n.find(b=>b.key==="MCQ_VARIANT")?.value?.[0]?.toUpperCase()??"SINGLESELECT").includes("MULTI")?"multiple":"single",a=(n.find(b=>b.key==="MCQ_FORMAT_TYPE")?.value?.[0]?.toUpperCase()??"LIST").includes("GRID")?"grid":"list",u=n.find(b=>b.key==="SHUFFLE_ORDER")?.value?.[0]?.toLowerCase()==="true",p=n.find(b=>b.key==="COLUMNS")?.value?.[0],c=p?Number(p):void 0,d=Tt(e,r),y=Or(n,d.map(b=>b.id)),g=wr(n);return{...t,type:l.MCQ,options:d,selectionMode:o,displayFormat:a,shuffleOptions:u,...c!==void 0&&Number.isFinite(c)?{columnCount:c}:{},...y?{defaultOptionIds:y}:{},...g}}function Oe(e=[],t){let r=e.filter(n=>n.additional?.isHintText&&!n.hidden).map(n=>t&&n.translations?.[t]?.answerText||n.answerText||"").filter(Boolean);return r.length>=3?{minLabel:r[0],midLabel:r[1],maxLabel:r[2]}:{minLabel:r[0],maxLabel:r[1]}}function ht(e,t){let r=(e.answerDetails??[]).filter(n=>!n.hidden&&!n.additional?.isHintText);return r.length>0?r.map((n,i)=>({id:n.id??String(i),optionLabel:t&&n.translations?.[t]?.answerText||n.answerText||String(i)})):Array.from({length:11},(n,i)=>({id:String(i),optionLabel:String(i)}))}function Mr(e,t,r,n){let{minLabel:i,midLabel:o,maxLabel:s}=Oe(e.answerDetails,n),a=ht(e,n),u=r.find(y=>y.key.includes("REVERSE"))?.value?.[0]?.toLowerCase()==="true"||e.additional?.reverseScaleOrder===!0||e.additional?.reverseScale===!0;if(u){a=[...a].reverse();let y=i;i=s,s=y}let p;o&&(p=a.length===11?u?2.5:7.5:(a.length-1)/2);let c="numbered",d=r.find(y=>y.key==="NPS_BUTTON_VARIANT")?.value?.[0]?.toLowerCase();return d==="emoji"?c="emoji":d==="radio"&&(c="standard"),{...t,type:l.NPS_SCALE,options:a,...i?{minLabel:i}:{},...o?{midLabel:o}:{},...p!==void 0?{midLabelIndex:p}:{},...s?{maxLabel:s}:{},reverseScaleOrder:!!u,buttonStyle:c}}function Qr(e,t,r,n){let i=r.find(d=>d.key==="CONTENT_TYPE"),o=i?.childConfigs?.find(d=>d.key==="MAX_CHARACTER_COUNT"),s=o?.value?.[0]?Number(o.value[0]):void 0,u=(i?.value?.[0]?.toUpperCase()??"LONG").includes("SHORT")?"short":"long",p=e.answerDetails?.[0],c=p?n&&p.translations?.[n]?.answerText||p.answerText:void 0;return{...t,type:l.TEXTFIELD,inputVariant:u,...s!==void 0?{maxCharacterCount:s}:{},...c?{placeholder:c}:{}}}function se(e){let t=JSON.stringify(e).toUpperCase();return t.includes("CAROUSEL")?"carousel":t.includes("DROPDOWN")?"dropdown":"standard"}function ye(e,t,r){let n=e;if(r&&n.answerDetails&&n.answerDetails.length>=2){let o=t&&n.answerDetails[0].translations?.[t]?.answerText||n.answerDetails[0].answerText||"";if(o)return o}let i=t&&e.translations?.[t]?.questionText||e.questionText||e.answerText||"";return r&&i.includes(":")?i.split(":")[0].trim():i}function Do(e,t,r){let n=e;if(r&&n.answerDetails&&n.answerDetails.length>=2){let a=t&&n.answerDetails[1].translations?.[t]?.answerText||n.answerDetails[1].answerText||"";if(a)return a}let i=e.additional,o=t&&e.translations?.[t]?.description||e.description||i?.rightLabel||i?.rightStatement||i?.rightText;if(typeof o=="string"&&o.trim()!=="")return o;let s=t&&e.translations?.[t]?.questionText||e.questionText||e.answerText||"";if(r&&s.includes(":"))return s.split(":").slice(1).join(":").trim()}function It(e,t,r){let n=(e.matrixRowQuestions?.length??0)>0?e.matrixRowQuestions:e.childSurveyQuestions;return n&&n.length>0?n.filter(i=>i.id).map(i=>{let o=H(i.controlConfig?.displayLogic),s=Do(i,t,r);return{id:i.id,statementText:ye(i,t,r),...s?{oppositeStatementText:s}:{},...o?{answerLogic:o}:{}}}):(e.answerDetails??[]).filter(i=>!i.hidden&&!i.additional?.isHintText).map((i,o)=>({id:`row_${o}`,statementText:t&&i.translations?.[t]?.answerText||i.answerText||""}))}function ae(e,t){return e.matrixColumnQuestions&&e.matrixColumnQuestions.length>0?e.matrixColumnQuestions.filter(r=>r.id).map(r=>{let n=t&&r.translations?.[t]?.answerText||r.answerText||ye(r,t),i=H(r.controlConfig?.displayLogic);return{id:r.id,label:n,...i?{answerLogic:i}:{}}}):(e.answerDetails??[]).filter(r=>!r.hidden&&!r.additional?.isHintText).map((r,n)=>{let i=t&&r.translations?.[t]?.answerText||r.answerText||"",o=H(r.controlConfig?.displayLogic);return{id:r.id??`col_${n}`,label:i,...o?{answerLogic:o}:{}}})}function Nr(e,t,r){let n=e.questionConfigs??[],o=n.find(f=>f.key==="MATRIX_TYPE")?.value?.[0]?.toLowerCase()==="bipolar"?"bipolar":"likert",a=It(e,r,o==="bipolar"),u=ae(e,r),p=se(n),d=n.some(f=>f.key.includes("MULTI")||f.value?.[0]?.toUpperCase().includes("MULTI")||f.key.includes("ANSWER")&&f.value?.[0]?.toUpperCase().includes("MULTI")||f.key.includes("SELECT")&&f.value?.[0]?.toUpperCase().includes("MULTI"))?"multiple":"single",y=n.find(f=>f.key==="TRANSPOSE_TABLE")?.value?.[0]?.toLowerCase()==="true",g=n.find(f=>f.key==="REPEAT_SCALE")?.value?.[0]?.toLowerCase()==="true",b=n.find(f=>f.key==="NOT_APPLICABLE_OPTIONS")?.value?.[0]==="true"||n.find(f=>f.key==="ENABLE_NON_APPLICABLE")?.value?.[0]==="true",x=b?!1:y;b&&u.push({id:"na",label:"N/A"});let T=n.find(f=>f.key==="ENABLE_SCALE")?.value?.[0]?.toLowerCase()!=="false",A;return o==="bipolar"&&(A=(e.answerDetails??[]).filter(f=>f.additional?.isHintText&&!f.hidden).map(f=>r&&f.translations?.[r]?.answerText||f.answerText||"").filter(Boolean),A.length===0&&(A=void 0)),{...t,type:l.CFM_MATRIX,statementRows:a,scaleColumns:u,statementLayout:o,selectionMode:d,gridLayout:p,transposeTable:x,repeatColumnHeaders:!!g,hasNotApplicableOption:!!b,showColumnHeaders:T,...A?{scaleAnchorLabels:A}:{}}}function Me(e,t){let n=`${e.map(o=>o.value?.[0]||"").join(" ").toUpperCase()} ${(t||"").toUpperCase()}`,i=e.find(o=>o.key==="BUTTON_TYPE")?.value?.[0]?.toLowerCase();return i==="radio"&&(i="standard"),i==="emoji"||i==="star"||i==="standard"||i==="numbered"||i==="dropdown"||i==="selectbox"||i==="graphics"?i:n.includes("EMOJI")||n.includes("CSAT")||n.includes("SMILEY")||n.includes("FACE")?"emoji":n.includes("STAR")?"star":n.includes("GRAPHIC")||n.includes("SLIDER")?"graphics":n.includes("DROP")?"dropdown":n.includes("SELECT")?"selectbox":n.includes("RADIO")?"standard":n.includes("NUMBER")?"numbered":"standard"}function ue(e,t){let r=(e.matrixRowQuestions?.length??0)>0?e.matrixRowQuestions:e.childSurveyQuestions;return r&&r.length>0?r.filter(n=>n.id).map(n=>{let i=H(n.controlConfig?.displayLogic);return{id:n.id,statementText:ye(n,t),...i?{answerLogic:i}:{}}}):(e.answerDetails??[]).filter(n=>!n.hidden&&!n.additional?.isHintText).map((n,i)=>({id:`row_${i}`,statementText:t&&n.translations?.[t]?.answerText||n.answerText||""}))}function _r(e,t,r){let n=e.questionConfigs??[],i=ae(e,r),o=n.find(u=>u.key==="NOT_APPLICABLE_OPTIONS")?.value?.[0]==="true"||n.find(u=>u.key==="ENABLE_NON_APPLICABLE")?.value?.[0]==="true",s=n.find(u=>u.key.includes("REVERSE"))?.value?.[0]?.toLowerCase()==="true"||e.additional?.reverseScaleOrder===!0||e.additional?.reverseScale===!0,a=(e.answerDetails??[]).filter(u=>u.additional?.isHintText&&!u.hidden).map(u=>r&&u.translations?.[r]?.answerText||u.answerText||"").filter(Boolean);return s&&(i=[...i].reverse(),a=[...a].reverse()),o&&i.push({id:"na",label:"N/A"}),{...t,type:l.CSAT_MATRIX,statementRows:ue(e,r),scaleColumns:i,displayStyle:Me(n,e.dataSubType),hasNotApplicableOption:!!o,reverseScaleOrder:!!s,gridLayout:se(n),...a.length>0?{scaleAnchorLabels:a}:{}}}function Fr(e,t,r){let n=e.questionConfigs??[],i=ae(e,r),o=n.find(c=>c.key==="NOT_APPLICABLE_OPTIONS")?.value?.[0]==="true"||n.find(c=>c.key==="ENABLE_NON_APPLICABLE")?.value?.[0]==="true",s=n.find(c=>c.key.includes("REVERSE"))?.value?.[0]?.toLowerCase()==="true"||e.additional?.reverseScaleOrder===!0||e.additional?.reverseScale===!0,a=(e.answerDetails??[]).filter(c=>c.additional?.isHintText&&!c.hidden).map(c=>r&&c.translations?.[r]?.answerText||c.answerText||"").filter(Boolean);s&&(i=[...i].reverse(),a=[...a].reverse()),o&&i.push({id:"na",label:"N/A"});let{minLabel:u,maxLabel:p}=Oe(e.answerDetails,r);return{...t,type:l.RATING_MATRIX,statementRows:ue(e,r),scaleColumns:i,...u?{minLabel:u}:{},...p?{maxLabel:p}:{},displayStyle:Me(n,e.dataSubType),hasNotApplicableOption:!!o,reverseScaleOrder:!!s,gridLayout:se(n),...a.length>0?{scaleAnchorLabels:a}:{}}}function Rt(e,t){let r=Number(e.additional?.sliderMin??0),n=Number(e.additional?.sliderMax??10),i=Number(e.additional?.sliderStep??1);return ue(e,t).map(s=>({...s,min:Number.isFinite(r)?r:0,max:Number.isFinite(n)?n:10,step:Number.isFinite(i)&&i>0?i:1}))}function Vr(e,t,r){let n=e.questionConfigs||[],i=n.find(E=>E.key==="SLIDER_TICKS_AND_VALUES"),o=i?.childConfigs||[],s=o.find(E=>E.key==="TICK_START")?.value?.[0],a=o.find(E=>E.key==="TICK_END")?.value?.[0],u=o.find(E=>E.key==="STEP_SIZE")?.value?.[0],p=i?.value?.[0],c=s!==void 0?Number(s):0,d=a!==void 0?Number(a):10,y=u!==void 0?Number(u):1,g=p!==void 0?Number(p):10,b={...e,additional:{...e.additional,sliderMin:c,sliderMax:d,sliderStep:y}},x=Rt(b,r),T=(e.answerDetails||[]).filter(E=>E.additional?.isHintText).map(E=>r&&E.translations?.[r]?.answerText||E.answerText||"").filter(Boolean),A=E=>{for(let N of E){let B=n.find(_=>_.key===N)||o.find(_=>_.key===N);if(B?.value?.length)return B.value[0]?.toString().toLowerCase()==="true"}return!1},f=n.find(E=>E.key==="SCALE_TYPE"||E.key==="VIEW_VARIANT")?.value?.[0]?.toUpperCase().includes("GRAPHIC"),m=A(["ENABLE_INPUT_BOX","SHOW_INPUT_BOX","INPUT_BOX","ENABLE_INPUT"]),R=A(["SHOW_VALUE","DISPLAY_VALUES"]),k=A(["NOT_APPLICABLE","NOT_APPLICABLE_OPTIONS"]),h=(e.answerDetails||[]).filter(E=>!E.additional?.isHintText&&!E.hidden).map(E=>E.translations?.[r||""]?.answerText||E.answerText||""),C=[];if(g>1){let E=(d-c)/(g-1);for(let N=0;N<g;N++){let B=Number((c+N*E).toFixed(2)),_=h[N]||B.toString();C.push({tickPosition:B,tickLabel:_})}}return{...t,type:l.SLIDER_MATRIX,statementRows:x,ticks:{count:g,marks:C},enableInputBox:m,displayValues:R,hasNotApplicableOption:k,sliderStyle:f?"graphics":"standard",...T.length>0?{scaleAnchorLabels:T}:{}}}function Lt(e){let t=e.additional??{},r=t.mediaUrl??t.previewUrl,n=t.mediaMimeType,i=t.title,o=e.questionContainerAssets;if(Array.isArray(o)&&o.length>0){let d=o[0];(d.source||d.previewImageUrl)&&(r=d.source||d.previewImageUrl),d.type&&(d.type==="PHOTO"||d.type==="IMAGE"?n="image/*":d.type==="VIDEO"?n="video/*":n=d.type)}let s=e.questionConfigs||[],a=s.find(d=>d.key==="TEXT_AND_MEDIA_ALIGNMENT"),u=s.find(d=>d.key==="TEXT_AND_MEDIA_SIZE"),p=a?.value?.[0],c=u?.value?.[0]?Number(u.value[0]):void 0;return{...r?{url:r}:{},...n?{mimeType:n}:{},...i?{title:i}:{},...p?{alignment:p}:{},...c!==void 0?{size:c}:{}}}function Dr(e,t){let r=Lt(e),{containerMedia:n,...i}=t,o=t.questionText;if(Array.isArray(e.answerDetails)){let a=e.answerDetails.find(u=>u.additional?.textAndMediaFieldType==="HEADER");a?.answerText&&(o=a.answerText)}let s=Object.keys(r).length>0;return{...i,questionText:o,type:l.TEXT_AND_MEDIA,...s?{media:r}:{}}}function Ur(e,t,r){let n=e.questionConfigs||[],i=e.answerDetails?.find(x=>x.additional?.fieldType==="UPLOAD_MESSAGE"),o=r&&i?.translations?.[r]?.answerText||i?.answerText||"",a=n.find(x=>x.key==="SUPPORTED_FILE_FORMAT")?.value?.map(x=>x.toUpperCase().replace(/^\./,""))||[],u=n.find(x=>x.key==="MAX_FILE_COUNT"),p=u?.value?.[0]?Number(u.value[0]):void 0,c=n.find(x=>x.key==="FILE_SIZE_LIMIT"),d=c?.childConfigs?.find(x=>x.key==="SIZE_LIMIT_ID")?.value?.[0],y=c?.childConfigs?.find(x=>x.key==="SIZE_FORMAT_ID")?.value?.[0],g=d?Number(d):void 0,b=y==="IN_TOTAL"?"IN_TOTAL":"PER_FILE";return{...t,type:l.FILE_UPLOAD,supportedFileFormats:a,fileSizeLimitType:b,...o?{uploadMessage:o}:{},...p!==void 0?{maxFileCount:p}:{},...g!==void 0?{fileSizeLimit:g}:{}}}function Pt(e,t,r){let n=t>0?t:Math.max(...e.map(s=>s.coordinateX+s.width),1),i=r>0?r:Math.max(...e.map(s=>s.coordinateY+s.height),1);return{regions:e.map(s=>({id:s.id,label:s.label??s.id,x:s.coordinateX/n,y:s.coordinateY/i,width:s.width/n,height:s.height/i,...s.color?{color:s.color}:{}})),referenceWidth:n,referenceHeight:i}}function qr(e,t){let r=e.surveyHeatmapMetadata,n=e.questionAssets?.[0],i=n?.source||n?.previewImageUrl||"",o=r?.totalClickAllowed??20,s=Math.min(20,Math.max(1,o)),{regions:a,referenceWidth:u,referenceHeight:p}=Pt(r?.heatmapRegions??[],r?.imageWidth??0,r?.imageHeight??0);return{...t,type:l.HEATMAP,imageUrl:i,regions:a,maxClicksAllowed:s,referenceWidth:u,referenceHeight:p}}function Br(e,t){return(e.answerDetails??[]).filter(r=>!r.hidden&&!r.additional?.isHintText).map((r,n)=>{let i=H(r.controlConfig?.displayLogic),o=r.answerAsset,s=o?.source||o?.previewImageUrl,a=o?.previewImageUrl||o?.source;return{id:r.id??String(n),optionLabel:t&&r.translations?.[t]?.answerText||r.answerText||"",...s?{imageUrl:s}:{},...a?{previewImageUrl:a}:{},...i?{answerLogic:i}:{}}})}function Hr(e,t){return e.find(r=>r.key===t)?.value?.[0]?.toLowerCase()==="true"}function Uo(e){return e?.toUpperCase()==="DRAG_AND_DROP"?"dragAndDrop":"dropdown"}function qo(e){switch(e?.toUpperCase()){case"TEXT_ONLY":return"textOnly";case"IMAGE_ONLY":return"imageOnly";default:return"textAndImage"}}function Xr(e,t,r,n){let i=r.find(s=>s.key==="RANK_ORDER_ANSWER_TYPE"),o=r.find(s=>s.key==="OPTION_TYPE");return{...t,type:l.RANK_ORDER,options:Br(e,n),interactionMode:Uo(i?.value?.[0]),optionDisplay:qo(o?.value?.[0]),requireRankAll:Hr(r,"REQUIRE_RANK_ALL"),shuffleOptions:Hr(r,"SHUFFLE_ORDER")}}function Ct(e,t,r){let n=e.questionConfigs??[],i=Ir(e,n,t,r),o=Pr(e.controlConfig?.skipLogics),s=ge(e.controlConfig?.displayLogic),a=Cr(e,t,r);function u(p){return kr(p,o,s,a)}switch(e.answerType){case l.NPS_SCALE:case"SCALE":return u(Mr(e,i,n,t));case l.TEXTFIELD:return u(Qr(e,i,n,t));case l.CFM_MATRIX:return u(Nr(e,i,t));case l.CSAT_MATRIX:return u(_r(e,i,t));case l.RATING_MATRIX:return u(Fr(e,i,t));case l.SLIDER_MATRIX:return u(Vr(e,i,t));case l.TEXT_AND_MEDIA:return u(Dr(e,i));case l.FILE_UPLOAD:return u(Ur(e,i,t));case l.HEATMAP:return u(qr(e,i));case l.RANK_ORDER:return u(Xr(e,i,n,t));case l.MCQ:return u(Et(e,i,t));default:return u(Et(e,i,t))}}function Gr(e){let t=e.trim();if(!t)return null;let r=t.split(".");if(r.length<2)return null;try{let n=r[1].replace(/-/g,"+").replace(/_/g,"/"),i=n.padEnd(n.length+(4-n.length%4)%4,"="),o=atob(i),s=JSON.parse(o);if(typeof s!="object"||s===null)return null;let a=s;return{surveyResponseId:typeof a.surveyResponseId=="string"?a.surveyResponseId:void 0}}catch{return null}}var Bo={en:"English",hi:"Hindi",de:"Deutsch",es:"Espa\xF1ol",fr:"Fran\xE7ais",bn:"Bengali",gu:"Gujarati",it:"Italiano",ja:"\u65E5\u672C\u8A9E",ko:"\uD55C\uAD6D\uC5B4",mr:"Marathi",pa:"Punjabi",ta:"Tamil",te:"Telugu",ur:"Urdu",zh:"\u4E2D\u6587"};function Ho(e){let t=e.toLowerCase().trim();return Bo[t]||e.toUpperCase()}function zr(e){let t=e.cfmSurveyDTO,r=new Set,n=t?.baseLanguage??"en";return r.add(n),t&&Array.isArray(t.surveyPages)&&t.surveyPages.forEach(i=>{(i.questionHolders??[]).forEach(o=>{let s=o.question;s&&s.translations&&Object.keys(s.translations).forEach(a=>{r.add(a)})})}),Array.from(r).map(i=>({code:i,name:Ho(i)}))}function Yr(e,t,r){let n=e.cfmSurveyDTO;return!n||!Array.isArray(n.surveyPages)?[]:n.surveyPages.map((i,o)=>{let s=(i.questionHolders??[]).map(a=>a.question).filter(a=>!!a).map(a=>Ct(a,t,r));return{id:i.id??`page_${o}`,title:i.title??`Page ${o+1}`,questions:s}})}function kt(e,t){if(!e?.id||e.disabled)return;let r=e.translations?.[t??""],n=r?.headerRichText||r?.header||e.headerRichText||e.header||e.title||"",i=r?.descriptionRichText||r?.description||e.descriptionRichText||e.description,o=e.ctaConfig?.others?.start,s=t&&o?.translations?.[t]?.buttonText||o?.buttonText;if(!n.trim())return;let a=ge(e.controlConfig?.displayLogic),u=r?.title||e.title;return{id:e.id,header:n,...u?{title:u}:{},...i?{description:i}:{},...s?{ctaLabel:s}:{},...e.disabled!==void 0?{disabled:e.disabled}:{},...a?{displayLogic:a}:{}}}function jr(e,t){let r=e.cfmSurveyDTO;if(!r)return{endPages:[]};let n=(r.endPages??[]).map(i=>kt(i,t)).filter(i=>!!i);return{introPage:kt(r.introPage,t),endPages:n,pausedPage:kt(r.pausedPage,t)}}function Kr(e){let r=e.cfmSurveyDTO?.status==="PAUSED";return{expired:!!e.expired,alreadyFilled:!!(e.alreadyFilled||e.surveySubmitted),quotaFulfilled:!!e.quotaFulfilled,paused:r}}function $r(e){let{phaseFlags:t}=e;return t.expired?{kind:"expired"}:t.quotaFulfilled?{kind:"quota_fulfilled"}:t.alreadyFilled?{kind:"submitted"}:t.paused?{kind:"paused"}:e.introPage?{kind:"intro"}:{kind:"content",pageIndex:0}}function wt(e){if(!e.instanceId?.trim())return null;let t=e.instanceId.trim(),r=Gr(t);return{instanceId:t,language:e.surveyLanguage??e.cfmSurveyDTO?.baseLanguage??"en",responseId:r?.surveyResponseId,...e.instanceCreatedTime!==void 0?{instanceCreatedTime:e.instanceCreatedTime}:{}}}function Jr(e,t){return t??e.surveyLanguage??e.cfmSurveyDTO?.baseLanguage??"en"}function Ot(e,t,r){let n=Jr(e,t),i=zr(e),o=Yr(e,n,r),{introPage:s,endPages:a,pausedPage:u}=jr(e,n),p=Kr(e);return{id:e.cfmSurveyDTO?.id??"",language:n,languages:i,pages:o,...s?{introPage:s}:{},endPages:a,...u?{pausedPage:u}:{},phaseFlags:p}}function Wr(e){S.info("Starting survey layout API fetch...",{url:e})}function Mt(e,t,r){S.perf({apiName:"GET Survey Layout",durationMs:e,status:t,url:r,success:!1})}function Zr(e,t,r,n){S.perf({apiName:"GET Survey Layout",durationMs:e,status:t,url:r,payloadSize:n,success:!0})}function en(e){S.success("Raw survey layout fetched successfully",{apiResponse:e})}function tn(e){S.error("Failed to fetch raw survey layout",{err:e})}function rn(){S.warn("Cannot map survey: apiResponse is null or undefined")}function nn(e){S.success("Mapped survey layout successfully",{mappedSurvey:e})}function on(e){S.error("Failed to map survey layout",{err:e})}function w(e){if(e.eventName==="survey_session_summary"){let{completed:t,totalDurationMs:r,maxVisitedPageIndex:n,totalQuestionsCount:i,answeredQuestionsCount:o,skippedQuestionsCount:s,skippedQuestionIds:a,validationErrorsCount:u,backtrackCount:p}=e.metadata;S.analytics(`Event: ${e.eventName} - SESSION SUMMARY TABLE:`);let c=[{Metric:"Completion Status",Value:t?"COMPLETED \u2705":"ABANDONED \u274C"},{Metric:"Total Time Spent",Value:`${(r/1e3).toFixed(2)} seconds`},{Metric:"Max Page Index Reached",Value:`${n}`},{Metric:"Total Questions",Value:i},{Metric:"Answered Questions",Value:o},{Metric:"Skipped Optional Questions",Value:s},{Metric:"Skipped Question IDs",Value:a.join(", ")||"None"},{Metric:"Validation Errors Triggered",Value:u},{Metric:"Backtrack Count",Value:p},{Metric:"Validation Error History",Value:e.metadata.validationHistory?.map(d=>`[Page ${d.pageIndex}] Attempt ${d.attemptNumber}: ${Object.keys(d.errors).join(", ")}`).join(" | ")||"NO Validation Erros Occurred"}];console.table(c)}else if(e.eventName==="logic_session_summary"){S.analytics("Event: logic_session_summary - LOGIC ANALYSIS TABLE:");let t=[{"Logic Kind":"Display logic matches",Count:e.metadata.displayLogicMatches.length},{"Logic Kind":"Answer logic matches",Count:e.metadata.answerLogicMatches.length},{"Logic Kind":"Variant matches",Count:e.metadata.variantMatches.length},{"Logic Kind":"End page changes",Count:e.metadata.endPageResolution.changeCount},{"Logic Kind":"Skip logic triggers",Count:e.metadata.skipLogicTriggers.length},{"Logic Kind":"Questions viewed",Count:e.metadata.viewedCount},{"Logic Kind":"On-path questions not viewed",Count:e.metadata.notViewedOnPathCount}];console.table(t),e.metadata.logicEventTimeline.length>0&&console.table(e.metadata.logicEventTimeline)}else S.analytics(`Event: ${e.eventName}`,e.metadata)}function sn(e,t,r,n){w({eventName:"survey_fetch_latency",metadata:{durationMs:e,status:t,success:!0,url:r,payloadSize:n}})}function Qt(e,t,r){w({eventName:"api_error",metadata:{apiName:"GET Survey Layout",status:e,url:t,errorMessage:r}})}async function zo(e){let t=performance.now();Wr(e);try{let r=await fetch(e,{method:"GET",headers:{Accept:"application/json"},cache:"force-cache"}),n=performance.now()-t;if(!r.ok)throw Mt(n,r.status,e),Qt(r.status,e,`Survey fetch failed (${r.status})`),new Error(`Survey fetch failed (${r.status})`);let i=await r.json(),o=JSON.stringify(i),a=`${(new Blob([o]).size/1024).toFixed(2)} KB`;return Zr(n,r.status,e,a),sn(n,r.status,e,a),en(i),i}catch(r){let n=performance.now()-t;throw Mt(n,"FAILED",e),Qt("FAILED",e,Ye(r)),tn(P(r)),r}}function an(e){let t=hr(e?.instanceId),r=e?.language,n=e?.placeholders,{data:i,error:o,isLoading:s,isSuccess:a}=Go({queryKey:["survey",t],queryFn:()=>zo(t),enabled:!!t},me),u=Xo(()=>{if(!a)return{survey:null,session:null};if(!i)return rn(),{survey:null,session:null};try{let p=Ot(i,r,n),c=wt(i),d=c?{...c,language:p.language}:null;return nn(p),{survey:p,session:d}}catch(p){return on(P(p)),{survey:null,session:null}}},[i,a,r]);return{survey:u.survey,session:u.session,fetching:s,fetchError:o}}import{useState as Xe,useRef as gr,useEffect as yr,useMemo as le,useCallback as Sr}from"react";import{useCallback as is}from"react";import{useMutation as os}from"@tanstack/react-query";function un(e){S.debug("Resolved raw inputs to submit schema:",{resolved:e})}function pn(e){S.debug("Constructed JSON request body:",{body:e})}function cn(e){S.error("Failed to execute submit callback",{err:e})}var Se="https://custom-p0.feedbook.me/api/feedback/survey";var ln=`${Se}/responseV2`;function je(e,t="en",r=!0){let n=new URLSearchParams({instanceId:e,surveySubmitted:r?"true":"false",surveyLanguage:t});return`${ln}?${n.toString()}`}function Yo(e){return typeof e=="object"&&e!==null&&typeof e.id=="string"&&typeof e.x=="number"&&typeof e.y=="number"}function z(e){if(typeof e=="string")try{return z(JSON.parse(e))}catch{return[]}if(!Array.isArray(e))return[];let t=[];for(let r of e)Yo(r)&&t.push({id:r.id,x:Math.min(1,Math.max(0,r.x)),y:Math.min(1,Math.max(0,r.y))});return t}function jo(e,t){let r=t.x+t.width,n=t.y+t.height;return e.x>=t.x&&e.x<=r&&e.y>=t.y&&e.y<=n}function Ke(e,t){let r=[];for(let n of t)for(let i of e)if(jo(i,n)){r.includes(n.label)||r.push(n.label);break}return r}function Ko(e){return e.id==="na"?null:e.id}function $o(e,t){let r=Number(e.optionLabel);return Number.isFinite(r)&&e.optionLabel.trim()!==""?r:t}function Jo(e,t){let r=String(t),n=e.find(o=>o.id===t||o.id===r);if(!n)return r;let i=Number(n.label);return Number.isFinite(i)&&n.label.trim()!==""?String(i):n.label}function dn(e,t){let r=Array.isArray(t)?t.filter(n=>typeof n=="string"):typeof t=="string"?[t]:[];return r.length===0?null:r.map(n=>e.options.find(o=>o.id===n)?.optionLabel??String(n))}function mn(e,t){if(t==null)return null;let n=(Array.isArray(t)?t:[t]).filter(i=>i!=null).map(i=>Jo(e,i));return n.length>0?n:null}function fn(e,t){let r=e.find((n,i)=>$o(n,i)===t);if(r){let n=Number(r.optionLabel);return Number.isFinite(n)&&r.optionLabel.trim()!==""?String(n):r.optionLabel}return String(t)}function gn(e){return typeof e!="string"||e===""?null:[e]}function D(e){if(!e||typeof e!="object"||Array.isArray(e))return{};let t={};for(let[r,n]of Object.entries(e)){let i=typeof n=="number"?n:typeof n=="string"&&n.trim()!==""?Number(n):NaN;Number.isFinite(i)&&i>0&&(t[r]=i)}return t}function V(e,t){let r=e[t];return typeof r=="number"&&Number.isFinite(r)?r:void 0}function yn(e,t,r){if(t.length===0)return!0;let n=t.filter(i=>V(e,i)!==void 0).length;return r?n<t.length:n===0}function Sn(e,t){let r=new Set;for(let n of t){let i=V(e,n);if(i!==void 0){if(r.has(i))return!0;r.add(i)}}return!1}function Wo(e){let t={};return e.forEach((r,n)=>{t[r]=n+1}),t}function Nt(e,t){return[...t].filter(r=>V(e,r)!==void 0).sort((r,n)=>{let i=V(e,r)??Number.MAX_SAFE_INTEGER,o=V(e,n)??Number.MAX_SAFE_INTEGER;return i-o})}function Zo(e,t,r){let n={...e};if(r===void 0)return delete n[t],n;for(let[i,o]of Object.entries(n))i!==t&&o===r&&delete n[i];return n[t]=r,n}function es(e,t){return`${e}-:-${t}`}function vn(e,t){let r=D(t),n=e.options.map(s=>s.id),i=Nt(r,n);if(i.length===0)return null;let o={};for(let s of i){let a=r[s];a!==void 0&&(o[es(e.id,s)]=[String(a)])}return{orderedOptionIds:i,optionLevelAnswers:o}}function $e(e,t,r){if(r.length===0)return!0;let n=D(t),i=r.filter(o=>n[o]!==void 0).length;if(e.requireRankAll||e.required){if(i<r.length)return!1;let o=new Set;for(let s of r){let a=n[s];if(a===void 0||o.has(a))return!1;o.add(a)}return!0}return!e.required||i>0}function ts(e){return typeof e=="object"&&e!==null&&"id"in e&&"mediaUrl"in e}function rs(e){return e.scaleColumns}function xn(e,t,r,n){for(let[i,o]of Object.entries(r)){let s=n(o);s&&(e[`${t}_${i}`]=s)}}function Je(e,t){let r={},n={},i={};for(let o of t)o.type===l.FILE_UPLOAD&&(i[o.id]=[]);for(let o of t){let s=e[o.id];if(s!=null)switch(o.type){case l.TEXT_AND_MEDIA:break;case l.FILE_UPLOAD:{Array.isArray(s)&&s.every(ts)&&(i[o.id]=s);break}case l.CFM_MATRIX:case l.CSAT_MATRIX:case l.RATING_MATRIX:{if(typeof s=="object"&&!Array.isArray(s)){let a=s,u=o;xn(r,o.id,a,p=>mn(rs(u),p))}break}case l.SLIDER_MATRIX:{if(typeof s=="object"&&!Array.isArray(s)){let a=s;xn(r,o.id,a,u=>u==null?null:typeof u=="number"?[String(u)]:typeof u=="string"?[u]:null)}break}case l.MCQ:{let a=dn(o,s);a&&(r[o.id]=a);break}case l.NPS_SCALE:{if(typeof s=="number"){let a=o;r[o.id]=[fn(a.options,s)]}break}case l.TEXTFIELD:{let a=gn(s);a&&(r[o.id]=a);break}case l.HEATMAP:{let a=z(s);a.length>0&&(r[o.id]=[JSON.stringify(a)]);break}case l.RANK_ORDER:{let a=vn(o,s);a&&(r[o.id]=a.orderedOptionIds,Object.assign(n,a.optionLevelAnswers));break}}}return{questionToAnswers:r,quesIdVsAttachmentDetails:i,optionLevelAnswers:n}}function ns(e){return typeof e=="object"&&e!==null&&"instanceId"in e&&"answers"in e}function We(e,t,r){if(ns(e))return{...e,surveyLanguage:e.surveyLanguage??t?.language??"en",questions:e.questions??r?.pages.flatMap(n=>n.questions)??[]};if(!t?.instanceId)throw new Error("Survey session not ready. Fetch survey before submitting.");return{answers:e,instanceId:t.instanceId,surveyLanguage:t.language??"en",questions:r?.pages.flatMap(n=>n.questions)??[]}}function bn(e,t){S.info("Starting survey response HTTP POST...",{url:e,requestBody:t})}function An(e,t){S.warn(e,{err:t})}function Tn(e,t,r,n,i){S.perf({apiName:"POST Submit Response",durationMs:e,status:t,url:r,requestSize:n,responseSize:i,success:!0})}function _t(e,t,r,n){S.perf({apiName:"POST Submit Response",durationMs:e,status:t,url:r,requestSize:n,success:!1})}function En(e){S.success("Survey response submitted successfully",{responseId:e})}function hn(e,t){S.error(e,{err:t})}function In(e,t,r,n,i){w({eventName:"survey_submit_latency",metadata:{durationMs:e,status:t,success:!0,url:r,requestSize:n,responseSize:i}})}function Ft(e,t,r){w({eventName:"api_error",metadata:{apiName:"POST Submit Response",status:e,url:t,errorMessage:r}})}async function Ze({url:e,requestBody:t}){let r=performance.now(),i=`${(new Blob([JSON.stringify(t)]).size/1024).toFixed(2)} KB`;bn(e,t);try{let o=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),s=await o.json().catch(d=>(An("Failed to parse JSON response during submission",P(d)),null)),a=performance.now()-r,p=`${((s?new Blob([JSON.stringify(s)]).size:0)/1024).toFixed(2)} KB`;if(!o.ok)throw _t(a,o.status,e,i),Ft(o.status,e,`Submit failed (${o.status}): ${JSON.stringify(s)}`),new Error(`Submit failed (${o.status}): ${JSON.stringify(s)}`);let c=s?.responseId??"";return Tn(a,o.status,e,i,p),In(a,o.status,e,i,p),En(c),{success:!0,responseId:c}}catch(o){let s=performance.now()-r;_t(s,"FAILED",e,i);let a=Ye(o);throw Ft("FAILED",e,a),hn("Failed to submit survey response",P(o)),o}}function Rn(e,t){let r=os({mutationFn:({url:i,requestBody:o})=>Ze({url:i,requestBody:o})},me);return{submit:is(async i=>{try{let o=We(i,e,t);un(o);let s=o.surveyLanguage??"en",a=Je(o.answers,o.questions??[]);pn(a);let u=je(o.instanceId,s);return await r.mutateAsync({url:u,requestBody:a})}catch(o){throw cn(P(o)),o}},[e,t,r]),data:r.data??null,loading:r.isPending,error:r.error}}import{useMemo as Cs}from"react";function ss(e=[]){return new Map(e.map(t=>[t.id,t]))}function I(e,t=[],r={}){return{answers:e,questionsById:ss(t),customFieldValues:r}}function Qe(e){return e===l.CFM_MATRIX||e===l.CSAT_MATRIX||e===l.RATING_MATRIX||e===l.SLIDER_MATRIX}function Ne(e){return e===l.CFM_MATRIX||e===l.CSAT_MATRIX}function _e(e){return Qe(e.type)?e.statementRows??[]:[]}function Fe(e){return Ne(e.type)?e.scaleColumns??[]:[]}function Vt(e){return _e(e).some(t=>t.answerLogic!==void 0)}function as(e){return e.type===l.MCQ?e.options.some(t=>t.answerLogic!==void 0):e.type===l.RANK_ORDER?e.options.some(t=>t.answerLogic!==void 0):!1}function us(e){return Fe(e).some(t=>t.answerLogic!==void 0)}function Dt(e){return Vt(e)||as(e)||us(e)}var v={TEN_POINT_SCALE:"TEN_POINT_SCALE",SLIDER:"SLIDER",SELECTED_OPTIONS:"SELECTED_OPTIONS",NUM_OF_SELECTED_OPTIONS:"NUM_OF_SELECTED_OPTIONS",TEXT:"TEXT",CASE_SENSITIVE_TEXT:"CASE_SENSITIVE_TEXT",MATRIX_OPTIONS:"MATRIX_OPTIONS",FILE_UPLOAD:"FILE_UPLOAD",HEATMAP:"HEATMAP",HEATMAP_REGION:"HEATMAP_REGION",NUMBER:"NUMBER",SELECTED_DATETIME:"SELECTED_DATETIME",RANK_ORDER:"RANK_ORDER"};function et(e){return!e||e.type!==l.CSAT_MATRIX&&e.type!==l.CFM_MATRIX&&e.type!==l.RATING_MATRIX&&e.type!==l.SLIDER_MATRIX?!1:Array.isArray(e.statementRows)&&e.statementRows.length>0}function U(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ps(e){return Object.values(e).some(t=>t==null?!1:Array.isArray(t)?t.length>0:!0)}function Ln(e){return U(e)?!ps(e):!0}function ve(e){if(typeof e!="string"||!e.includes("_"))return null;let t=e.lastIndexOf("_"),r=e.slice(0,t),n=e.slice(t+1);return!r||!n?null:{rowId:r,suffix:n}}function Ut(e,t,r){r==null||r===""||e.add(`${t}_${r}`)}function Pn(e,t,r){r==null||r===""||Ut(e,t,r)}function tt(e,t,r){let n=r.questionsById.get(e),i=new Set;if(n?.type===l.SLIDER_MATRIX){for(let[o,s]of Object.entries(t))s!=null&&(Array.isArray(s)?s.forEach(a=>Ut(i,o,a)):Ut(i,o,s));return i}for(let[o,s]of Object.entries(t))if(s!=null){if(Array.isArray(s)){for(let a of s)Pn(i,o,a);continue}Pn(i,o,s)}return i}function cs(e){return typeof e=="string"&&e!==""}function xe(e){if(Array.isArray(e)){let t=[];for(let r of e)typeof r=="string"&&r!==""&&t.push(r);return t}return cs(e)?[e]:[]}function be(e){if(typeof e=="string")return e;if(e!=null)return String(e)}function ls(e){return typeof e=="object"&&e!==null}function Cn(e){if(!Array.isArray(e))return[];let t=[];for(let r of e)ls(r)&&t.push(r);return t}function Y(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()!==""){let t=Number(e);return Number.isFinite(t)?t:null}return null}function Ve(e,t,r,n){if(!e||!t)return;let i=r.answers[t],o=r.questionsById.get(t);switch(e){case v.TEN_POINT_SCALE:return Y(i);case v.SLIDER:return o?.type===l.SLIDER_MATRIX&&U(i)?i:void 0;case v.SELECTED_OPTIONS:return xe(i);case v.NUM_OF_SELECTED_OPTIONS:return xe(i).length;case v.TEXT:case v.CASE_SENSITIVE_TEXT:return be(i);case v.MATRIX_OPTIONS:return U(i)?tt(t,i,r):new Set;case v.FILE_UPLOAD:return Cn(i);case v.HEATMAP:return z(i);case v.HEATMAP_REGION:{let s=z(i);if(o?.type!==l.HEATMAP)return new Set;let a=o;return new Set(Ke(s,a.regions))}case v.RANK_ORDER:{if(!n)return;let s=D(i);return V(s,n)}default:return i}}function kn(e){return!!(e==null||e===""||Array.isArray(e)&&e.length===0||e instanceof Set&&e.size===0)}function ds(e){return e==null||e===""?!0:Array.isArray(e)?e.length===0:!1}function ms(e,t){return e==null||e===""?!0:Array.isArray(e)?!e.some(r=>String(r)===t):String(e)!==t}function fs(e,t,r,n){let i=r.answers[n];if(!U(i))return!0;let o=i[e];return t?ms(o,t):ds(o)}function qt(e,t,r,n){if(!e||!t)return!0;let i=r.questionsById.get(t);if(e===v.NUM_OF_SELECTED_OPTIONS){let o=Ve(e,t,r);return typeof o!="number"||o===0}if(i&&et(i)){let o=n?.[0];if(o!==void 0&&(e===v.MATRIX_OPTIONS||e===v.SLIDER)){let s=ve(o);if(s)return fs(s.rowId,s.suffix,r,t)}return Ln(r.answers[t])}if(e===v.HEATMAP||e===v.HEATMAP_REGION){if(!t)return!0;let o=z(r.answers[t]);if(e===v.HEATMAP)return o.length===0;let s=n?.[0];return s!==void 0&&i?.type===l.HEATMAP?!Ke(o,i.regions).includes(String(s)):o.length===0}if(e===v.RANK_ORDER&&i?.type===l.RANK_ORDER){let o=i,s=o.options.map(u=>u.id),a=D(r.answers[t]);return yn(a,s,o.requireRankAll)}return kn(Ve(e,t,r))}function gs(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){let t=e.trim();if(t==="")return null;let r=Number(t);if(Number.isFinite(r)&&/^\d+$/.test(t))return r;let n=Date.parse(t);return Number.isFinite(n)?n:null}return null}function wn(e,t){if(e==null||Array.isArray(e))return;let r=gs(e);return r===null?void 0:r}function Bt(e,t,r,n){let i=r.customFieldValues?.[t];if(i!=null)switch(e){case v.TEXT:case v.CASE_SENSITIVE_TEXT:return be(i);case v.NUMBER:return Y(i);case v.SELECTED_OPTIONS:return xe(i);case v.SELECTED_DATETIME:return wn(i,n?.details?.valueAdditional?.timezone);default:return i}}function On(e,t,r,n){let i=r.customFieldValues?.[t];if(i==null)return!0;if(e===v.NUMBER)return typeof i=="string"&&i.trim()==="";if(e===v.SELECTED_OPTIONS)return xe(i).length===0;if(e===v.SELECTED_DATETIME)return wn(i,n?.details?.valueAdditional?.timezone)===void 0;if(e===v.TEXT||e===v.CASE_SENSITIVE_TEXT)return be(i)===void 0||be(i)==="";let o=Bt(e,t,r,n);return!!(o==null||o===""||Array.isArray(o)&&o.length===0)}function Ht(e,t,r,n){return On(e,t,r,n)}var L={AND:"AND",OR:"OR",MISSING:"MISSING",EXISTS:"EXISTS",CONTAINS:"CONTAINS",DOES_NOT_CONTAIN:"DOES_NOT_CONTAIN",EQUALS:"EQUALS",NOT_EQUALS:"NOT_EQUALS",GT:"GT",GTE:"GTE",LT:"LT",LTE:"LTE",BEFORE:"BEFORE",AFTER:"AFTER"};var ys=new Set(["CFM_MATRIX","CSAT_MATRIX","RATING_MATRIX"]);function Mn(e){return e===L.EXISTS||e===L.MISSING}function Ss(e){return e===L.CONTAINS||e===L.DOES_NOT_CONTAIN}function vs(e){switch(e){case"MCQ":return v.SELECTED_OPTIONS;case"TEXTFIELD":return v.TEXT;case"NPS_SCALE":case"SCALE":return v.TEN_POINT_SCALE;case"CFM_MATRIX":case"CSAT_MATRIX":case"RATING_MATRIX":return v.MATRIX_OPTIONS;case"SLIDER_MATRIX":return v.SLIDER;case"FILE_UPLOAD":return v.FILE_UPLOAD;case"HEATMAP":return v.HEATMAP;case"RANK_ORDER":return v.RANK_ORDER;default:return}}function xs(e){return typeof e!="string"?!1:!e.includes("_")||e.startsWith("Region ")}function bs(e,t,r){if(!e||!r?.length)return;let n=r[0],i=ve(n);if(e==="HEATMAP"&&Ss(t)&&r.every(xs))return v.HEATMAP_REGION;if(e==="SLIDER_MATRIX"&&i)return v.SLIDER;if(ys.has(e)&&i)return v.MATRIX_OPTIONS}function Qn(e,t,r,n){if(e)return e;if(!t)return;let i=bs(t,r,n);if(i)return i;if(Mn(r))return vs(t)}function As(e){switch(e){case"TEXT":case"TEXT_MULTI":case"TEXTAREA":return v.TEXT;case"NUMBER":return v.NUMBER;case"PICKLIST":case"PICKLIST_MULTISELECT":return v.SELECTED_OPTIONS;case"DATETIME":return v.SELECTED_DATETIME;default:return}}function Nn(e,t,r){if(e)return e;if(t&&Mn(r))return As(t)}function Ts(e,t,r){switch(r){case L.GT:return e>t;case L.GTE:return e>=t;case L.LT:return e<t;case L.LTE:return e<=t;case L.EQUALS:return e===t;case L.NOT_EQUALS:return e!==t;default:return!1}}function _n(e,t,r,n,i){if(!e||!t)return null;let o=ve(n);if(!o)return null;let s=r.answers[t];if(!U(s))return!1;if(e===v.MATRIX_OPTIONS){let u=tt(t,s,r).has(String(n));return i===L.EQUALS?u:i===L.NOT_EQUALS?!u:!1}if(e===v.SLIDER){let a=s[o.rowId];if(a==null)return!1;let u=Array.isArray(a)?Y(a[0]):Y(a),p=Y(o.suffix);return u!==null&&p!==null?Ts(u,p,i):i===L.EQUALS?String(a)===o.suffix:i===L.NOT_EQUALS?String(a)!==o.suffix:!1}return!1}function rt(e,t,r){let n=i=>e instanceof Set?e.has(String(i)):Array.isArray(e)?e.some(o=>o===i||String(o)===String(i)):e===i||String(e)===String(i);return r?t.every(n):t.some(n)}function Un(e,t,r){let n=Y(e);if(n===null)return!1;let i=Y(t[0]);if(i===null)return!1;switch(r){case L.GT:return n>i;case L.GTE:return n>=i;case L.LT:return n<i;case L.LTE:return n<=i;case L.EQUALS:return n===i;case L.NOT_EQUALS:return n!==i;default:return!1}}function Fn(e,t){return t.length===0?!1:Un(e,t,L.EQUALS)||e===t[0]||String(e)===String(t[0])}function Vn(e,t,r){if(typeof e!="string"||t.length===0)return!1;let n=String(t[0]);return r?e===n:e.toLowerCase()===n.toLowerCase()}function Dn(e,t,r){if(typeof e!="string"||t.length===0)return!1;let n=String(t[0]);return r?e!==n:e.toLowerCase()!==n.toLowerCase()}function nt(e,t,r){return typeof e!="string"?!1:t.some(n=>{let i=String(n);return r?e.includes(i):e.toLowerCase().includes(i.toLowerCase())})}function Xt(e,t,r,n,i){return n.length?_n(e,t,r,n[0],i):null}function Gt(e,t,r){return!(!e||!t||!(e===v.SLIDER||e===v.MATRIX_OPTIONS)||!et(r.questionsById.get(t)))}function zt(e,t,r,n,i,o,s){switch(e){case L.CONTAINS:return n===v.TEXT?nt(t,r,!1):n===v.CASE_SENSITIVE_TEXT?nt(t,r,!0):n===v.HEATMAP_REGION?rt(t,r,!1):rt(t,r,n===v.SELECTED_OPTIONS);case L.DOES_NOT_CONTAIN:return n===v.TEXT?!nt(t,r,!1):n===v.CASE_SENSITIVE_TEXT?!nt(t,r,!0):n===v.HEATMAP_REGION?!rt(t,r,!1):!rt(t,r,n===v.SELECTED_OPTIONS);case L.EQUALS:{if(Gt(n,i,o)){let a=Xt(n,i,o,r,L.EQUALS);if(a!==null)return a}return n===v.TEXT?Vn(t,r,!1):n===v.CASE_SENSITIVE_TEXT?Vn(t,r,!0):Fn(t,r)}case L.NOT_EQUALS:{if(Gt(n,i,o)){let a=Xt(n,i,o,r,L.NOT_EQUALS);if(a!==null)return a}return n===v.TEXT?Dn(t,r,!1):n===v.CASE_SENSITIVE_TEXT?Dn(t,r,!0):!Fn(t,r)}case L.GT:case L.GTE:case L.LT:case L.LTE:return Gt(n,i,o)&&U(t)?Xt(n,i,o,r,e)??!1:Un(t,r,e);case L.BEFORE:case L.AFTER:{if(n!==v.RANK_ORDER||!i||!s||r.length===0)return!1;let a=D(o.answers[i]),u=V(a,s),p=V(a,String(r[0]));return u===void 0||p===void 0?!1:e===L.BEFORE?u<p:u>p}default:return!1}}function qn(e,t){let r=e.details?.conditionEntity,n=r?.entityType,i=r?.id,o=e.filterType,s=e.values??[],a=e.field;if(!n||!i)return!1;let u=n==="CUSTOM_FIELD"?Nn(a,r.entityType==="CUSTOM_FIELD"?r.fieldType:void 0,o):Qn(a,r.entityType==="QUESTION"?r.answerType:void 0,o,s);if(n==="CUSTOM_FIELD"){if(o==="MISSING")return Ht(u,i,t,e);if(o==="EXISTS")return!Ht(u,i,t,e);let d=Bt(u,i,t,e);return zt(o,d,s,u,void 0,t)}let p=n==="QUESTION"?i:void 0;if(o==="MISSING")return qt(u,p,t,s);if(o==="EXISTS")return!qt(u,p,t,s);let c=p?Ve(u,p,t,e.details?.subConditionEntity?.id):void 0;return zt(o,c,s,u,p,t,e.details?.subConditionEntity?.id)}function Es(e){return"filters"in e&&Array.isArray(e.filters)}function ne(e,t){return Es(e)?e.filterType==="AND"?e.filters.every(r=>ne(r,t)):e.filterType==="OR"?e.filters.some(r=>ne(r,t)):!1:qn(e,t)}function Bn(e,t){return e?ne(e.condition,t):!0}function $(e,t){return Bn(e,t)}function Hn(e,t){return $(e.answerLogic,t)}function q(e,t){let r=_e(e);return r.length===0?[]:r.filter(n=>Hn(n,t))}function j(e,t){return e.type!==l.MCQ?[]:e.options.filter(n=>$(n.answerLogic,t))}function X(e,t){return e.type!==l.RANK_ORDER?[]:e.options.filter(n=>$(n.answerLogic,t))}function J(e,t){let r=Fe(e);return r.length===0?[]:r.filter(n=>$(n.answerLogic,t))}function ie(e,t){return e?ne(e.condition,t):!0}function W(e,t){return e.type===l.MCQ?j(e,t).length>0:e.type===l.RANK_ORDER?X(e,t).length>0:Qe(e.type)?q(e,t).length===0?!1:Ne(e.type)?J(e,t).length>0:!0:!0}function pe(e,t){return!(e.displayLogic&&!ie(e.displayLogic,t)||Vt(e)&&q(e,t).length===0||Dt(e)&&!W(e,t))}function G(e,t){return e.filter(r=>pe(r,t))}function O(e,t){return e.length===0?!1:G(e,t).length>0}function Xn(e,t,r,n={}){let i=I(t,r,n);return q(e,i)}function Gn(e,t,r,n={}){let i=I(t,r,n);return j(e,i)}function zn(e,t,r,n={}){let i=I(t,r,n);return X(e,i)}function Yn(e,t,r,n={}){let i=I(t,r,n);return J(e,i)}function jn(e,t,r,n={}){let i=I(t,r,n);return{statementRows:q(e,i),scaleColumns:J(e,i)}}function Kn(e){return e.type===l.TEXT_AND_MEDIA}function hs(e){return e===l.CFM_MATRIX||e===l.CSAT_MATRIX||e===l.RATING_MATRIX||e===l.SLIDER_MATRIX}function Is(e,t){return e.every(r=>{let n=t[r.id];return n!==void 0&&n!==""})}function $n(e,t){return e.selectionMode==="multiple"?Array.isArray(t)?t.length:0:t!=null&&t!==""?1:0}function Jn(e){return e.minSelections!==void 0||e.maxSelections!==void 0}function Wn(e,t){return!(e.minSelections!==void 0&&t<e.minSelections||e.maxSelections!==void 0&&t>e.maxSelections)}function De(e,t,r,n={}){if(Kn(e))return!0;let i=t[e.id];if(e.type===l.MCQ){let o=e;if(r){let a=I(t,r,n);if(!W(o,a))return!0}let s=$n(o,i);return Jn(o)?Wn(o,s)&&s>0:o.selectionMode==="multiple"?s>0:i!=null&&i!==""}if(e.type===l.RANK_ORDER){let o=e;if(r){let a=I(t,r,n);if(!W(o,a))return!0;let u=X(o,a).map(p=>p.id);return $e(o,i,u)}let s=o.options.map(a=>a.id);return $e(o,i,s)}if(hs(e.type)){if(typeof i!="object"||Array.isArray(i))return!1;let o=e,s=o.statementRows;if(r){let a=I(t,r,n);s=q(o,a)}return s.length===0?!0:Is(s,i)}return e.type===l.HEATMAP?z(i).length>0:i!==void 0&&i!==""}function Ue(e,t,r,n,i={}){let o={},s=r?.startsWith("de")?"Beantworten Sie bitte diese Frage bevor Sie fortfahren.":"Please answer this question before you proceed.";return e.forEach(a=>{if(!Kn(a)){if(a.type===l.MCQ){let u=a,p=n?I(t,n,i):void 0;if(p&&!W(u,p))return;let c=p?j(u,p):u.options,d=new Set(c.map(x=>x.id)),y=t[a.id],g=$n(u,y);p&&u.selectionMode==="multiple"&&Array.isArray(y)?g=y.filter(x=>typeof x=="string"&&d.has(x)).length:p&&u.selectionMode==="single"&&typeof y=="string"&&(g=d.has(y)?1:0);let b=u.answerConditionErrorMessage??u.requiredErrorMessage??s;if(Jn(u)&&!Wn(u,g)){o[a.id]=b;return}if(a.required&&c.length>0&&g===0){o[a.id]=a.requiredErrorMessage??s;return}return}if(a.type===l.RANK_ORDER){let u=a,p=n?I(t,n,i):void 0;if(p&&!W(u,p))return;let d=(p?X(u,p):u.options).map(y=>y.id);a.required&&d.length>0&&!$e(u,t[a.id],d)&&(o[a.id]=a.requiredErrorMessage??s);return}a.required&&!De(a,t,n,i)&&(o[a.id]=a.requiredErrorMessage??s)}}),o}function Zn(e,t){return t<=0?0:Math.min(100,Math.max(0,Math.round(e/t*100)))}function ei(e,t){return e.findIndex(r=>r.questions.some(n=>n.id===t))}function qe(e,t,r,n){S.info("Skip logic matched",{questionId:e,skipLogicId:t,targetType:r,fromPageIndex:n})}function ti(e,t,r){S.info("Display logic matched",{questionId:e,pageIndex:t,triggerQuestionId:r})}function ri(e,t,r,n,i){S.info("Answer logic matched",{questionId:e,entityType:t,entityId:r,pageIndex:n,triggerQuestionId:i})}function ni(e,t,r,n){S.info("Question variant matched",{questionId:e,variantId:t,variantText:r,triggerQuestionId:n})}function ii(e,t,r,n){S.info("End page logic matched",{endPageId:e,matchType:t,previousEndPageId:r,triggerQuestionId:n})}function it(e,t,r){if(t.type==="END_OF_SURVEY"){qe(e,t.skipLogicId,"END_OF_SURVEY",r);return}qe(e,t.skipLogicId,"QUESTION",r)}function Yt(e,t,r){S.warn("Skip logic rejected",{questionId:e,skipLogicId:t,reason:r})}function Rs(e,t,r,n,i,o){if(!e?.length)return null;let s=o?.silent??!1;for(let a of e)if(ne(a.condition,t)){if(a.skipTo.entityType==="END_OF_SURVEY")return s||qe(i,a.id,"END_OF_SURVEY",n),{type:"END_OF_SURVEY",skipLogicId:a.id};if(a.skipTo.entityType==="QUESTION"){let u=ei(r,a.skipTo.id);if(u===-1){s||Yt(i,a.id,"target_not_found");continue}if(u<n){s||Yt(i,a.id,"backward_target");continue}return s||qe(i,a.id,"QUESTION",n),{type:"QUESTION",questionId:a.skipTo.id,pageIndex:u,skipLogicId:a.id}}}return null}function Z(e,t,r,n,i){return Rs(e.skipLogics,t,r,n,e.id,i)}function Ls(e,t){let r=t;for(;r<e.length&&e[r].questions.length===0;)r+=1;return r}function jt(e,t){return Ls(e,t+1)}function ee(e,t,r){let n=jt(e,t);for(;n<e.length;){let o=e[n]?.questions??[];if(O(o,r))return n;n=jt(e,n)}return n}function Ae(e,t){for(let r=e.length-1;r>=0;r-=1){let n=e[r]?.questions??[];if(n.length>0&&O(n,t))return r}return-1}function ot(e,t,r){let n=e[t]?.questions??[];return O(n,r)?t:ee(e,t,r)}function Q(e,t,r,n={}){if(e.length===0)return[];let i=I(t,r,n),o=[],s=0;for(;s<e.length;){let u=e[s]?.questions??[];if(!O(u,i)){let d=ee(e,s,i);if(d>=e.length)break;s=d;continue}o.push(s);let p=u[u.length-1];if(p?.skipLogics?.length){let d=Z(p,i,e,s,{silent:!0});if(d?.type==="END_OF_SURVEY")break;if(d?.type==="QUESTION"){if(d.pageIndex<=s)break;let y=ot(e,d.pageIndex,i);if(y>=e.length)break;s=y;continue}}let c=ee(e,s,i);if(c>=e.length)break;s=c}return o}function st(e,t,r,n,i={}){let o=I(r,n,i),s=new Set;return t.forEach(a=>{at(e[a],o).forEach(u=>s.add(u))}),s}function oi(e,t,r,n,i={}){return st(e,t,r,n,i).size}function si(e,t){let r=0;return e.forEach(n=>{t.has(n)&&(r+=1)}),r}function Kt(e,t){return e.length!==t.length?!1:e.every((r,n)=>r===t[n])}function $t(e,t,r,n,i={}){let o=Q(t,r,n,i),s=st(t,o,r,n,i),a=!1;return e.earnedQuestionIds.forEach(u=>{s.has(u)||(e.earnedQuestionIds.delete(u),a=!0)}),a}function Ps(e){return e.type===l.TEXT_AND_MEDIA}function pt(e,t){let r=(e.questions??[]).filter(n=>!Ps(n));return t?G(r,t):r}function at(e,t){return pt(e,t).map(r=>r.id)}function ut(e,t){e.earnedQuestionIds.add(t)}function Jt(e,t,r,n,i={}){if(!t)return;let o=n?I(r,n,i):void 0;pt(t,o).forEach(s=>{if(!s.required){ut(e,s.id);return}De(s,r,n,i)&&ut(e,s.id)})}function ai(e,t,r,n,i={}){let o=Q(e,t,r,i),s=st(e,o,t,r,i),a=oi(e,o,t,r,i),u=si(n,s),p=Zn(u,a),c=a>0&&u>=a;return{totalQuestionsCount:a,answeredQuestionsCount:u,progressPercentage:p,isComplete:c}}function ui({pages:e=[],values:t,allQuestions:r=[],earnedQuestionIds:n,progressRevision:i=0,customFieldValues:o={}}){return Cs(()=>ai(e,t??{},r,n??new Set,o),[e,t,r,n,i,o])}import{useEffect as ks}from"react";function Wt(e){let{currentPageIndex:t,paginationRefs:r}=e;ks(()=>{r.current&&(r.current.pageStartTime=performance.now())},[t,r])}import{useEffect as ws}from"react";function Zt(e){let{currentPageIndex:t,paginationRefs:r}=e;ws(()=>{r.current&&t>r.current.maxVisitedPageIndex&&(r.current.maxVisitedPageIndex=t)},[t,r])}import{useCallback as Qs}from"react";function pi(e,t){S.info(`Answer changed for question: ${e}`,{value:t})}function ce(e,t){S.warn(e,{err:t})}function ci(){S.info("Initiating survey submission...")}function er(e){S.info(`Navigating back from page index: ${e}`)}function li(e){S.info(`Navigating next from page index: ${e}`)}function di(e){S.error("Error encountered during pagination submit trigger",{err:e})}function Be(e){return typeof document>"u"?null:document.getElementById(e)||null}function Os(e){return e.closest("main")||e.closest("form")||e.parentElement||e}function ct(e,t){try{let n=e[t]?.questions?.[0];n?setTimeout(()=>{try{let i=Be(n.id);i?Os(i).scrollIntoView({behavior:"smooth",block:"start"}):window.scrollTo({top:0,behavior:"smooth"})}catch(i){ce("Failed to scroll page first question into view",P(i))}},50):window.scrollTo({top:0,behavior:"smooth"})}catch(r){ce("Failed to trigger scroll navigation",P(r))}}function tr(e,t,r){let n=t-1;for(;n>=0;){for(;n>=0&&(e[n]?.questions??[]).length===0;)n-=1;if(n<0)return 0;let i=e[n]?.questions??[];if(O(i,r))return n;n-=1}return 0}function Te(e,t,r){let n=e.pageHistory,i=n.lastIndexOf(t);e.pageHistory=i>=0?[...n.slice(0,i+1),r]:[...n,t,r]}function mi(e){return e.pageHistory.length<=1?null:(e.pageHistory=e.pageHistory.slice(0,-1),e.pageHistory.at(-1)??null)}function fi(e,t){let r=e.pageHistory.lastIndexOf(t);if(r>=0){e.pageHistory=e.pageHistory.slice(0,r+1);return}e.pageHistory=[t]}function Ms(e,t,r){let n=t;for(;n>0;){let i=e[n]?.questions??[];if(O(i,r))return n;n=tr(e,n,r)}return 0}function gi(e,t,r,n){if(e.pageHistory.length>1){let i=mi(e);if(i===null)return null;let o=Ms(t,i,n);return fi(e,o),o}if(r>0){let i=tr(t,r,n);return i>=r?null:(fi(e,i),i)}return null}function rr(e){let{currentPageIndex:t,setCurrentPageIndex:r,setPhase:n,trackPageTime:i,pages:o,values:s,paginationRefs:a,survey:u,bumpProgressRevision:p,customFieldValues:c}=e;return Qs(()=>{let d=a.current;if(!d||!u)return;let y=o.flatMap(x=>x.questions),g=I(s,y,c),b=gi(d,o,t,g);if(b!==null){er(t),i(t),d.backtrackCount+=1;for(let T=b+1;T<o.length;T+=1)d.skippedPageIndices.delete(T),d.visitedPageIndices.delete(T);d.maxVisitedPageIndex=Math.min(d.maxVisitedPageIndex,b);let x={};for(let T of o[b]?.questions??[])x[T.id]=s[T.id];d.backtrackSnapshots[b]={fromPageIndex:t,snapshot:x},r(b),n({kind:"content",pageIndex:b}),p(),ct(o,b);return}t===0&&u?.introPage&&(er(t),i(t),n({kind:"intro"}),p())},[t,r,n,i,o,s,a,u,p,c])}import{useCallback as Gs}from"react";function Ns(e,t){return e==null||e===""?!1:Array.isArray(e)?e.some(r=>!t.has(String(r))):!t.has(String(e))}function _s(e,t){let r={...e},n=!1;return Object.entries(r).forEach(([i,o])=>{if(o!=null){if(Array.isArray(o)){let s=o.filter(a=>t.has(String(a)));s.length!==o.length&&(s.length===0?delete r[i]:r[i]=s,n=!0);return}t.has(String(o))||(delete r[i],n=!0)}}),n?Object.keys(r).length>0?r:void 0:e}function Fs(e,t,r,n,i){let o={...e};if(n&&Object.keys(o).forEach(s=>{t.has(s)||delete o[s]}),i&&Object.keys(o).length>0&&Object.entries(o).forEach(([s,a])=>{if(Ns(a,r))if(Array.isArray(a)){let u=a.filter(p=>p!==null&&r.has(String(p)));u.length===0?delete o[s]:o[s]=u}else delete o[s]}),Object.keys(o).length!==0)return i?_s(o,r):o}function yi(e,t,r){if(!U(t))return t;let n=q(e,r),i=e.statementRows??[],o=e.type===l.CSAT_MATRIX||e.type===l.CFM_MATRIX?J(e,r):[],s=e.scaleColumns??[],a=i.length>0&&n.length!==i.length,u=s.length>0&&o.length!==s.length;return!a&&!u?t:Fs(t,new Set(n.map(p=>p.id)),new Set(o.map(p=>p.id)),a,u)}function Vs(e,t,r){if(t!==void 0){if(e.selectionMode==="multiple"){if(!Array.isArray(t))return t;let n=t.filter(i=>typeof i=="string"&&r.has(i));return n.length>0?n:void 0}if(!(typeof t=="string"&&!r.has(t)))return t}}function Si(e,t,r){let n=j(e,r);return e.options.length===0||n.length===e.options.length?t:Vs(e,t,new Set(n.map(i=>i.id)))}function vi(e,t,r){let n=X(e,r),i=new Set(n.map(a=>a.id));if(i.size===0)return;let o=D(t),s={};for(let a of i){let u=V(o,a);u!==void 0&&(s[a]=u)}if(Object.keys(s).length!==0){if(Sn(s,[...i])){let a=new Set,u={};for(let p of n){let c=V(s,p.id);c===void 0||a.has(c)||(a.add(c),u[p.id]=c)}return Object.keys(u).length>0?u:void 0}return s}}function Ds(e,t,r){if(r===void 0){let{[t]:n,...i}=e;return i}return{...e,[t]:r}}function Us(e,t,r){if(!(!pe(e,r)||!W(e,r)))return e.type===l.MCQ?Si(e,t,r):e.type===l.RANK_ORDER?vi(e,t,r):Qe(e.type)?yi(e,t,r):t}function xi(e,t,r,n={}){let i=I(t,r,n),o={...t},s=!1;for(let a of e)for(let u of a.questions){let p=Us(u,o[u.id],i);p!==o[u.id]&&(o=Ds(o,u.id,p),s=!0)}return s?o:t}function bi(e,t,r,n){if(n<=r)return t;let i=new Set;for(let s=r+1;s<n;s+=1)e[s]?.questions.forEach(a=>i.add(a.id));if(i.size===0)return t;let o={...t};return i.forEach(s=>{delete o[s]}),o}function Ee(e,t,r){let n=new Set;for(let o=r+1;o<e.length;o+=1)e[o]?.questions.forEach(s=>n.add(s.id));if(n.size===0)return t;let i={...t};return n.forEach(o=>{delete i[o]}),i}function he(e,t){let r=e?.endPages.filter(i=>!i.disabled)??[];if(r.length===0)return{endPageId:void 0,matchType:"fallback"};for(let i of r)if(i.displayLogic&&ie(i.displayLogic,t))return{endPageId:i.id,matchType:"conditional"};let n=r.find(i=>!i.displayLogic);return n?{endPageId:n.id,matchType:"default"}:{endPageId:r[0]?.id,matchType:"fallback"}}function Ai(e,t){return he(e,t).endPageId}function qs(e,t){switch(e){case"display_logic_matched":return`display: ${t.questionId} (page ${t.pageIndex})`;case"answer_logic_matched":return`answer: ${t.questionId} ${t.entityType} ${t.entityId}`;case"question_variant_matched":return`variant: ${t.questionId} \u2192 ${t.variantId}`;case"end_page_logic_matched":return`end page: ${t.endPageId} (${t.matchType})`;case"question_viewed":return`viewed: ${t.questionId}`;case"skip_logic_triggered":return`skip: ${t.questionId} \u2192 ${t.targetId}`;default:return e}}function Bs(e,t){switch(t){case"display_logic_matched":e.logicMatchCounts.display+=1;break;case"answer_logic_matched":e.logicMatchCounts.answer+=1;break;case"question_variant_matched":e.logicMatchCounts.variant+=1;break;case"end_page_logic_matched":e.logicMatchCounts.endPage+=1;break;case"question_viewed":e.logicMatchCounts.viewed+=1;break;case"skip_logic_triggered":e.logicMatchCounts.skip+=1;break;default:break}}function Ti(e,t,r){if(!e)return;let n=typeof r.timestampMs=="number"?r.timestampMs:performance.now(),i={eventName:t,timestampMs:n,metadata:{...r,timestampMs:n}};e.logicEventHistory.push(i),Bs(e,t)}function He(e,t){Ti(e,t.eventName,t.metadata),w(t)}function Ei(e,t){let r=performance.now();He(e,{eventName:"display_logic_matched",metadata:{...t,logicKind:"display",timestampMs:r}})}function hi(e,t){let r=performance.now();He(e,{eventName:"answer_logic_matched",metadata:{...t,logicKind:"answer",timestampMs:r}})}function Ii(e,t){let r=performance.now();He(e,{eventName:"question_variant_matched",metadata:{...t,logicKind:"variant",timestampMs:r}})}function Ri(e,t){let r=performance.now();He(e,{eventName:"end_page_logic_matched",metadata:{...t,logicKind:"end_page",timestampMs:r}})}function Li(e,t){let r=performance.now();He(e,{eventName:"question_viewed",metadata:{...t,timestampMs:r}})}function Pi(e,t){let r=performance.now();Ti(e,"skip_logic_triggered",{...t,timestampMs:r}),w({eventName:"skip_logic_triggered",metadata:{questionId:t.questionId,skipLogicId:t.skipLogicId,targetType:t.targetType,targetId:t.targetId,fromPageIndex:t.fromPageIndex}})}function Ci(e,t,r,n,i,o,s){let a=Q(r,i,n,o),u=I(i,n,o),p=new Set;for(let m of a){let R=r[m];if(R)for(let k of at(R,u))p.add(k)}let c=e.logicEventHistory.filter(m=>m.eventName==="question_viewed").map(m=>String(m.metadata.questionId??"")).filter(Boolean),d=new Set(c),y=[...p].filter(m=>!d.has(m)).length,g=e.logicEventHistory.filter(m=>m.eventName==="display_logic_matched").map(m=>({questionId:String(m.metadata.questionId??""),pageIndex:Number(m.metadata.pageIndex??0)})),b=e.logicEventHistory.filter(m=>m.eventName==="answer_logic_matched").map(m=>({questionId:String(m.metadata.questionId??""),entityType:m.metadata.entityType,entityId:String(m.metadata.entityId??""),pageIndex:Number(m.metadata.pageIndex??0)})),x=e.logicEventHistory.filter(m=>m.eventName==="question_variant_matched").map(m=>({questionId:String(m.metadata.questionId??""),variantId:String(m.metadata.variantId??"")})),T=e.logicEventHistory.filter(m=>m.eventName==="skip_logic_triggered").map(m=>({questionId:String(m.metadata.questionId??""),skipLogicId:String(m.metadata.skipLogicId??""),targetType:m.metadata.targetType,targetId:String(m.metadata.targetId??""),fromPageIndex:Number(m.metadata.fromPageIndex??0)})),A=he(t,u),f=e.logicEventHistory.map(m=>({timestampMs:m.timestampMs,eventName:m.eventName,summary:qs(m.eventName,m.metadata)}));w({eventName:"logic_session_summary",metadata:{displayLogicMatches:g,answerLogicMatches:b,variantMatches:x,endPageResolution:{finalEndPageId:s,matchType:s?A.matchType:"fallback",changeCount:e.endPageChangeCount},skipLogicTriggers:T,viewedQuestionIds:c,viewedCount:d.size,notViewedOnPathCount:y,logicEventTimeline:f}})}function ki(e,t){return e.findIndex(r=>r.questions.some(n=>n.id===t))}function Hs(e,t){let r=[];for(let n of t){let i=e[n];i&&r.push(...i.questions)}return r}function wi(e,t){let r=new Set;if(e.type===l.MCQ){let n=e;for(let i of n.options)i.answerLogic&&$(i.answerLogic,t)&&r.add(`${e.id}:option:${i.id}`);return r}for(let n of _e(e))n.answerLogic&&$(n.answerLogic,t)&&r.add(`${e.id}:row:${n.id}`);if(Ne(e.type))for(let n of Fe(e))n.answerLogic&&$(n.answerLogic,t)&&r.add(`${e.id}:column:${n.id}`);return r}function Oi(e,t){let r=e.displayVariants;if(!r?.length)return null;for(let n of r)if(n.displayLogic&&ie(n.displayLogic,t))return{variantId:n.id,variantText:n.questionText};return null}function Xs(e){let t=e.split(":");if(t.length!==3)return null;let[r,n,i]=t;return n!=="option"&&n!=="row"&&n!=="column"?null:{questionId:r,entityType:n,entityId:i}}function Mi(e){let{survey:t,pages:r,allQuestions:n,previousValues:i,nextValues:o,customFieldValues:s,previousContext:a,nextContext:u,refs:p,triggerQuestionId:c}=e,d=Q(r,i,n,s),y=Q(r,o,n,s),g=[...new Set([...d,...y])].sort((A,f)=>A-f),b=Hs(r,g);for(let A of b){if(!A.displayLogic)continue;let f=pe(A,a),m=pe(A,u);if(f||!m)continue;let R=ki(r,A.id);ti(A.id,R,c),Ei(p,{questionId:A.id,pageIndex:R,triggerQuestionId:c})}for(let A of b){let f=wi(A,a),m=wi(A,u),R=ki(r,A.id);for(let k of m){if(f.has(k))continue;let h=Xs(k);h&&(ri(h.questionId,h.entityType,h.entityId,R,c),hi(p,{questionId:h.questionId,entityType:h.entityType,entityId:h.entityId,pageIndex:R,triggerQuestionId:c}))}}for(let A of b){if(!A.displayVariants?.length)continue;let f=Oi(A,a),m=Oi(A,u),R=f?.variantId??"base",k=m?.variantId??"base";p.lastResolvedVariantByQuestionId.set(A.id,k),!(k===R||!m)&&(ni(A.id,m.variantId,m.variantText,c),Ii(p,{questionId:A.id,variantId:m.variantId,variantText:m.variantText,triggerQuestionId:c}))}let x=he(t,a),T=he(t,u);T.endPageId&&T.endPageId!==p.lastResolvedEndPageId&&(p.endPageChangeCount+=1,p.lastResolvedEndPageId=T.endPageId,ii(T.endPageId,T.matchType,x.endPageId,c),Ri(p,{endPageId:T.endPageId,matchType:T.matchType,previousEndPageId:x.endPageId,triggerQuestionId:c}))}function zs(e,t,r,n){let{survey:i,pages:o,paginationRefs:s,customFieldValues:a}=e,u=s.current;if(!u||!i)return;let p=i.pages.flatMap(y=>y.questions),c=I(r,p,a),d=I(n,p,a);Mi({survey:i,pages:o,allQuestions:p,previousValues:r,nextValues:n,customFieldValues:a,previousContext:c,nextContext:d,refs:u,triggerQuestionId:t})}function nr(e){let{values:t,setValues:r,setValidationErrors:n,paginationRefs:i,bumpProgressRevision:o,pages:s,survey:a,currentPageIndex:u,customFieldValues:p}=e;return Gs((c,d)=>{pi(c,d);let y={...t,[c]:d},g=i.current,b=a?.pages.flatMap(m=>m.questions)??[],x=s.flatMap(m=>m.questions).find(m=>m.id===c),T=!1,A=m=>{zs(e,c,t,m)};if(!g||!a){r(y),n(m=>({...m,[c]:""}));return}let f=Q(s,t,b,p);if(x?.required&&De(x,y,b,p)&&(ut(g,c),T=!0),x?.skipLogics?.length){let m=Z(x,I(t,b,p),s,u,{silent:!0}),R=Z(x,I(y,b,p),s,u,{silent:!0});R&&!m&&(it(x.id,R,u),g.lastLoggedOriginSkipKey=`${u}:${R.skipLogicId}`,Pi(g,{questionId:x.id,skipLogicId:R.skipLogicId,targetType:R.type==="END_OF_SURVEY"?"END_OF_SURVEY":"QUESTION",targetId:R.type==="END_OF_SURVEY"?"END_OF_SURVEY":R.questionId,fromPageIndex:u,triggerQuestionId:c}));let k=Q(s,y,b,p),h=!Kt(f,k);if($t(g,s,y,b,p),h){for(let E=u+1;E<s.length;E+=1)g.skippedPageIndices.delete(E),g.visitedPageIndices.delete(E);let C=Ee(s,y,u);A(C),r(C),o(),n(E=>({...E,[c]:""}));return}}else{let m=xi(s,y,b,p),R=Q(s,m,b,p),k=!Kt(f,R),h=$t(g,s,m,b,p);if(k){for(let E=u+1;E<s.length;E+=1)g.skippedPageIndices.delete(E),g.visitedPageIndices.delete(E);let C=Ee(s,m,u);A(C),r(C),o(),n(E=>({...E,[c]:""}));return}if(m!==y){A(m),r(m),h&&(T=!0),n(C=>({...C,[c]:""}));return}h&&(T=!0)}A(y),r(y),T&&o(),n(m=>({...m,[c]:""}))},[t,r,n,i,o,s,a,u,p,e])}import{useCallback as Ws}from"react";function Qi({context:e,onSubmit:t,currentPageIndex:r,rawCurrentQuestions:n}){let{survey:i,pages:o,values:s,paginationRefs:a,customFieldValues:u}=e,p=o[r],c=a.current;if(!i||!p||!c)return null;c.visitedPageIndices.add(r);let d=i.pages.flatMap(b=>b.questions),y=I(s,d,u),g=G(n,y);return{survey:i,pages:o,currentPage:p,currentPageIndex:r,values:s,allQuestions:d,logicContext:y,currentQuestions:g,refs:c,setValues:e.setValues,setCurrentPageIndex:e.setCurrentPageIndex,setPhase:e.setPhase,setValidationErrors:e.setValidationErrors,trackPageTime:e.trackPageTime,trackOptionalSkips:e.trackOptionalSkips,checkBacktrackChanges:e.checkBacktrackChanges,bumpProgressRevision:e.bumpProgressRevision,onSubmit:t}}function ir(e){w({eventName:"skip_logic_triggered",metadata:e})}function Ie(e){w({eventName:"page_skipped",metadata:e})}function Ni(e){w({eventName:"survey_started",metadata:e})}function Re(e){e.trackPageTime(e.currentPageIndex),e.trackOptionalSkips(e.currentPageIndex),e.checkBacktrackChanges(e.currentPageIndex)}function _i(e,t,r){for(let n=t+1;n<r;n+=1)e.skippedPageIndices.add(n),e.visitedPageIndices.delete(n)}function or(e,t,r,n,i){for(let o=r+1;o<n;o+=1){let s=t[o]?.questions??[];O(s,i)||(e.skippedPageIndices.add(o),e.visitedPageIndices.delete(o))}}function sr(e,t,r){for(let n=t+1;n<r;n+=1)e.skippedPageIndices.add(n),e.visitedPageIndices.delete(n)}function Le(e,t){li(e.currentPageIndex),Te(e.refs,e.currentPageIndex,t),e.setCurrentPageIndex(t),e.setPhase({kind:"content",pageIndex:t}),e.refs.visitedPageIndices.add(t),e.bumpProgressRevision(),ct(e.pages,t)}function Fi(e){Re(e);let t=ee(e.pages,e.currentPageIndex,e.logicContext),r=Ae(e.pages,e.logicContext),n=r>=0&&e.currentPageIndex>=r;if(t>=e.pages.length||n){or(e.refs,e.pages,e.currentPageIndex,e.pages.length,e.logicContext),e.onSubmit();return}t!==e.currentPageIndex+1&&(or(e.refs,e.pages,e.currentPageIndex,t,e.logicContext),Ie({fromPageIndex:e.currentPageIndex,toPageIndex:t,reason:"empty_page"})),e.refs.skippedPageIndices.delete(t),Le(e,t)}function Vi(e,t,r){let n=e[t]?.questions??[];if(O(n,r))return null;let i=ee(e,t,r);if(i<e.length)return{action:"navigate",pageIndex:i};let o=Ae(e,r);return o>=0&&t>o?{action:"submit"}:o>=0&&t!==o?{action:"navigate",pageIndex:o}:{action:"submit"}}function Ys(e,t,r){for(let n=t+1;n<r;n+=1)e.skippedPageIndices.add(n),e.visitedPageIndices.delete(n)}function lt(e,t,r,n){let i=Vi(t,r,n);if(!i||i.action==="submit")return i;let{pageIndex:o}=i;return o!==r+1&&Ie({fromPageIndex:r,toPageIndex:o,reason:"empty_page"}),Ys(e,r,o),e.skippedPageIndices.delete(o),Te(e,r,o),e.visitedPageIndices.add(o),i}function Di(e){if(e.currentQuestions.length>0)return!1;let t=lt(e.refs,e.pages,e.currentPageIndex,e.logicContext);return t?.action==="submit"?(e.onSubmit(),!0):t?.action==="navigate"?(Le(e,t.pageIndex),!0):!1}function Ui(e){let t=e.currentQuestions[e.currentQuestions.length-1];if(!t?.skipLogics?.length)return!1;let r=Z(t,e.logicContext,e.pages,e.currentPageIndex,{silent:!0});return r?r.type==="END_OF_SURVEY"?js(e,t.id,r.skipLogicId):Ks(e,t.id,r):!1}function js(e,t,r){ir({questionId:t,skipLogicId:r,targetType:"END_OF_SURVEY",targetId:"END_OF_SURVEY",fromPageIndex:e.currentPageIndex});let n=Ee(e.pages,e.values,e.currentPageIndex);return e.setValues(n),sr(e.refs,e.currentPageIndex,e.pages.length),Re(e),e.setValidationErrors({}),e.bumpProgressRevision(),e.onSubmit({skipValidation:!0,answersOverride:n}),!0}function Ks(e,t,r){ir({questionId:t,skipLogicId:r.skipLogicId,targetType:"QUESTION",targetId:r.questionId,fromPageIndex:e.currentPageIndex});let n=ot(e.pages,r.pageIndex,e.logicContext),i=n>=e.pages.length?r.pageIndex:n,o=bi(e.pages,e.values,e.currentPageIndex,i);if(e.setValues(o),n>=e.pages.length){let s=Ee(e.pages,o,e.currentPageIndex);return e.setValues(s),sr(e.refs,e.currentPageIndex,e.pages.length),Re(e),e.setValidationErrors({}),e.bumpProgressRevision(),e.onSubmit({skipValidation:!0,answersOverride:s}),!0}return _i(e.refs,e.currentPageIndex,n),Ie({fromPageIndex:e.currentPageIndex,toPageIndex:n,reason:"skip_logic"}),Re(e),e.setValidationErrors({}),Le(e,n),!0}function qi(e,t){w({eventName:"page_time_spent",metadata:{pageIndex:e,durationMs:t}})}function dt(e,t,r){w({eventName:"validation_error",metadata:{pageIndex:e,errors:t,attemptNumber:r}})}function Bi(){S.success("Survey validation passed on submit")}function Hi(e){S.warn("Full survey validation failed on submit",{validation:e})}function mt(e){S.error("Failed to run survey validation on submit",{err:e})}function Xi(e){S.warn("Page validation failed",{errors:e})}function $s(e,t){return e.selectionMode==="multiple"?Array.isArray(t)&&t.length>0:t!=null&&t!==""}function Js(e){return e.selectionMode==="multiple"?[...e.defaultOptionIds]:e.defaultOptionIds[0]}function Pe(e,t){let r=!1,n={...t};for(let i of e)for(let o of i.questions){if(o.type!==l.MCQ)continue;let s=o;s.defaultOptionIds?.length&&($s(s,n[s.id])||(n[s.id]=Js(s),r=!0))}return r?n:t}function Gi(e){let t=Pe(e.pages,e.values);t!==e.values&&e.setValues(t);let r={};try{r=Ue(e.currentQuestions,t,e.survey.language,e.allQuestions,e.logicContext.customFieldValues??{})}catch(o){mt(P(o))}if(Object.keys(r).length===0)return e.setValidationErrors({}),delete e.refs.validationAttempt[e.currentPageIndex],!0;Xi(r);let n=(e.refs.validationAttempt[e.currentPageIndex]||0)+1;e.refs.validationAttempt[e.currentPageIndex]=n,e.refs.validationErrorsCount+=1,e.refs.validationHistory.push({pageIndex:e.currentPageIndex,errors:r,attemptNumber:n}),dt(e.currentPageIndex,r,n),e.setValidationErrors(r);let i=Object.keys(r)[0];return setTimeout(()=>{try{let o=Be(i);o&&o.scrollIntoView({behavior:"smooth",block:"center"})}catch(o){ce("Failed to scroll validation error element into view",P(o))}},50),!1}function ft(e,t){let{pages:r,currentPageIndex:n}=e,o=r[n]?.questions??[];return Ws(()=>{let s=Qi({context:e,onSubmit:t,currentPageIndex:n,rawCurrentQuestions:o});s&&(Di(s)||Ui(s)||Gi(s)&&Fi(s))},[e,n,o,t])}import{useCallback as Zs}from"react";function zi(e,t,r,n,i,o,s,a,u,p){w({eventName:"survey_session_summary",metadata:{maxVisitedPageIndex:t,totalDurationMs:r,completed:e,totalQuestionsCount:n,answeredQuestionsCount:i,skippedQuestionsCount:o,skippedQuestionIds:s,validationErrorsCount:a,backtrackCount:u,validationHistory:p}})}function Yi(e,t){w({eventName:"optional_question_skipped",metadata:{questionId:e,pageIndex:t}})}function ji(e,t,r){w({eventName:"backtrack_revisited",metadata:{fromPageIndex:e,toPageIndex:t,changedAnswers:r}})}function Ki(e,t,r,n,i={}){let o={},s="",a=-1;for(let u of t){let p=e[u];if(!p)continue;let c=Ue(p.questions,r,n,void 0,i);Object.keys(c).length>0&&(o={...o,...c},a===-1&&(a=u,s=Object.keys(c)[0]))}return a!==-1?{errors:o,errorPageIndex:a,firstErrorId:s}:null}function $i(e,t,r,n={}){let i=e.flatMap(c=>c.questions),o=I(t,i,n),s=Q(e,t,i,n),a={},u="",p=-1;for(let c of s){let d=e[c];if(!d)continue;let y=G(d.questions,o),g=Ue(y,t,r,i,n);Object.keys(g).length>0&&(a={...a,...g},p===-1&&(p=c,u=Object.keys(g)[0]))}return p!==-1?{errors:a,errorPageIndex:p,firstErrorId:u}:null}function Ji(e,t){if(e)switch(t.kind){case"intro":return e.introPage;case"paused":return e.pausedPage;case"end":return e.endPages.find(n=>n.id===t.endPageId)??e.endPages[0];default:return}}function Wi(e,t,r,n){return t.kind!=="content"?!1:r>1||n>0?!0:!!e?.introPage}function Zi(e,t,r,n,i){if(t.kind!=="content"||!e)return"next";let o=Ae(n,i);return o===-1||r>=o?"submit":"next"}function eo(e,t){return Ai(e,t??I({},[]))}function ar(e){let{survey:t,pages:r,values:n,submit:i,currentPageIndex:o,setCurrentPageIndex:s,setValidationErrors:a,setPhase:u,trackPageTime:p,trackOptionalSkips:c,checkBacktrackChanges:d,totalQuestionsCount:y,paginationRefs:g,customFieldValues:b}=e;return Zs(async x=>{if(!t)return;let T=Pe(r,x?.answersOverride??n),A=g.current;if(!A)return;ci();let f=null;try{x?.skipValidation||(x?.pageIndicesToValidate?f=Ki(r,x.pageIndicesToValidate,T,t.language):f=$i(r,T,t.language,b)),f||Bi()}catch(m){mt(P(m))}if(f){Hi(f);let m=(A.validationAttempt[f.errorPageIndex]||0)+1;A.validationAttempt[f.errorPageIndex]=m,A.validationErrorsCount+=1,A.validationHistory.push({pageIndex:f.errorPageIndex,errors:f.errors,attemptNumber:m}),dt(f.errorPageIndex,f.errors,m),a(f.errors),f.errorPageIndex!==o&&Te(A,o,f.errorPageIndex),s(f.errorPageIndex),u({kind:"content",pageIndex:f.errorPageIndex}),setTimeout(()=>{try{let R=Be(f.firstErrorId);R&&R.scrollIntoView({behavior:"smooth",block:"center"})}catch(R){ce("Failed to scroll validation error element into view",P(R))}},100);return}a({}),delete A.validationAttempt[o],p(o),c(o),d(o);try{let m=await i(T);if(m&&typeof m=="object"&&"success"in m&&m.success){let R=r.flatMap(C=>C.questions),k=I(T,R,b),h=eo(t,k);if(h&&u({kind:"end",endPageId:h}),!A.hasLoggedSummary){Ci(A,t,r,R,T,b,h);let C=performance.now()-A.sessionStartTime,E=[];r.forEach(B=>{B.questions.forEach(_=>{if(!_.required){let de=T[_.id];(de===void 0||de==="")&&E.push(_.id)}})});let N=E.length;zi(!0,A.maxVisitedPageIndex,C,y,y-N,N,E,A.validationErrorsCount,A.backtrackCount,A.validationHistory),A.hasLoggedSummary=!0}}}catch(m){di(P(m))}},[t,r,n,i,o,s,a,u,p,c,d,y,g,b])}import{useCallback as ea}from"react";function ur(e,t,r){return ea(n=>{if(!r.current)return;let i=r.current.backtrackSnapshots[n];if(i){let o=e[n]?.questions??[],s={},a=!1;o.forEach(u=>{let p=i.snapshot[u.id],c=t[u.id];p!==c&&(s[u.id]={oldValue:p??null,newValue:c??null},a=!0)}),a&&ji(i.fromPageIndex,n,s),delete r.current.backtrackSnapshots[n]}},[e,t,r])}import{useCallback as ta}from"react";function pr(e,t){return ta(r=>{(e[r]?.questions??[]).forEach(i=>{let o=!i.required,s=t[i.id];o&&(s===void 0||s==="")&&Yi(i.id,r)})},[e,t])}import{useCallback as ra}from"react";function cr(e){return ra(t=>{if(!e.current)return;let r=performance.now()-e.current.pageStartTime;qi(t,r)},[e])}function to(e,t){let r=e.displayVariants;if(!r?.length)return e.questionText;for(let n of r)if(n.displayLogic&&ie(n.displayLogic,t))return n.questionText;return e.questionText}function lr(e,t){let r=!1,n=e.map(i=>{let o=to(i,t);return o===i.questionText?i:(r=!0,{...i,questionText:o})});return r?n:e}function dr(e,t,r,n={}){let i=I(t,r,n),o=Q(e,t,r,n),s=new Map,a=0;for(let u of o){let p=e[u];if(p)for(let c of pt(p,i))a+=1,s.set(c.id,a)}return s}function mr(e,t){let r=!1,n=e.map(i=>{let o=t.get(i.id);return o===void 0?i.questionNumber===void 0?i:(r=!0,{...i,questionNumber:void 0}):i.questionNumber===o?i:(r=!0,{...i,questionNumber:o})});return r?n:e}function ro(){return{display:0,answer:0,variant:0,endPage:0,skip:0,viewed:0}}function fr(){return{logicEventHistory:[],logicMatchCounts:ro(),lastVisibleQuestionIds:new Set,lastVisibleAnswerEntityKeys:new Set,lastResolvedVariantByQuestionId:new Map,lastResolvedEndPageId:void 0,endPageChangeCount:0}}var gt={};function no({survey:e,session:t,customFieldValues:r=gt}){let[n,i]=Xe({}),[o,s]=Xe({}),[a,u]=Xe(0),[p,c]=Xe({kind:"content",pageIndex:0}),[d,y]=Xe(0),g=e?.pages??[],b=g[a],x=le(()=>e?.pages.flatMap(M=>M.questions)??[],[e]),T=le(()=>I(n,x,r),[n,x,r]),A=le(()=>{if(p.kind!=="content")return[];let M=b?.questions??[],K=G(M,T),we=lr(K,T),re=dr(g,n,x,r);return mr(we,re)},[p.kind,b,T,g,n,x,r,d]),f=gr({pageStartTime:performance.now(),sessionStartTime:performance.now(),maxVisitedPageIndex:0,validationAttempt:{},backtrackSnapshots:{},hasLoggedSummary:!1,validationErrorsCount:0,backtrackCount:0,validationHistory:[],visitedPageIndices:new Set([0]),skippedPageIndices:new Set,pageHistory:[0],earnedQuestionIds:new Set,lastLoggedOriginSkipKey:null,...fr()}),m=Sr(()=>{y(M=>M+1)},[]),R=gr(a);yr(()=>{e&&(i(M=>Pe(e.pages,M)),c($r(e)),u(0),R.current=0,f.current.pageHistory=[0],f.current.skippedPageIndices.clear(),f.current.visitedPageIndices=new Set([0]),f.current.earnedQuestionIds.clear(),f.current.lastLoggedOriginSkipKey=null,Object.assign(f.current,fr()),y(0))},[e]),yr(()=>{if(p.kind!=="content"||!e)return;let M=f.current,K=g[a],we=R.current!==a;R.current=a;let re=M.earnedQuestionIds.size;if(Jt(M,K,n,x,r),M.earnedQuestionIds.size!==re&&m(),!we)return;M.lastLoggedOriginSkipKey=null;let xt=K?.questions?.[K.questions.length-1];if(xt?.skipLogics?.length){let bt=Z(xt,I(n,x,r),g,a,{silent:!0});bt&&(it(xt.id,bt,a),M.lastLoggedOriginSkipKey=`${a}:${bt.skipLogicId}`)}},[a,p.kind,e,g,x,n,m,r]);let{submit:k,data:h,loading:C,error:E}=Rn(t,e),N=le(()=>new Set(f.current.earnedQuestionIds),[d,a]),{progressPercentage:B,totalQuestionsCount:_,answeredQuestionsCount:de,isComplete:Ge}=ui({pages:g,values:n,allQuestions:x,earnedQuestionIds:N,customFieldValues:r,progressRevision:d}),Ce=cr(f),yt=pr(g,n),ze=ur(g,n,f),te={survey:e,session:t,pages:g,phase:p,setPhase:c,currentPageIndex:a,setCurrentPageIndex:u,values:n,setValues:i,validationErrors:o,setValidationErrors:s,paginationRefs:f,trackPageTime:Ce,trackOptionalSkips:yt,checkBacktrackChanges:ze,submit:k,totalQuestionsCount:_,bumpProgressRevision:m,customFieldValues:r};Zt(te),Wt(te);let ke=nr(te),St=rr(te),F=ar(te),vt=ft(te,F),bo=Sr(()=>{c({kind:"content",pageIndex:0}),u(0),f.current.pageHistory=[0],f.current.visitedPageIndices=new Set([0]),f.current.earnedQuestionIds.clear(),Jt(f.current,g[0],n,x,r),m(),Ni({source:"intro"})},[g,n,x,m,r]),Ar=gr(F);Ar.current=F,yr(()=>{if(p.kind!=="content"||!e)return;let K=g[a]?.questions??[];if(O(K,T))return;let we=f.current,re=lt(we,g,a,T);if(re){if(re.action==="submit"){m(),Ar.current();return}u(re.pageIndex),c({kind:"content",pageIndex:re.pageIndex}),m()}},[p.kind,a,T,g,e,m]);let Ao=le(()=>Wi(e,p,f.current.pageHistory.length,a),[e,p,a]),To=le(()=>Zi(e,p,a,g,T),[e,p,a,g,T]),Eo=le(()=>Ji(e,p),[e,p]),ho=Sr((M,K)=>{Li(f.current,{questionId:M,pageIndex:K})},[]);return{phase:p,setPhase:c,currentPageIndex:a,values:n,validationErrors:o,currentQuestions:A,pages:g,canGoBack:Ao,primaryButtonType:To,specialPage:Eo,onChange:ke,onBack:St,onNext:vt,onSubmit:F,onStartSurvey:bo,progressPercentage:B,totalQuestionsCount:_,answeredQuestionsCount:de,isComplete:Ge,submitting:C,submitError:E,submitData:h,recordQuestionViewAnalytics:ho}}import{useCallback as so,useRef as ao}from"react";function io(e){let t=new URLSearchParams({instanceId:e});return`${Se}/markResponseInstanceAsStarted?${t.toString()}`}async function oo(e){let t=io(e);try{let r=await fetch(t,{method:"GET",headers:{Accept:"application/json"}});if(!r.ok)return S.warn(`markResponseInstanceAsStarted failed (${r.status})`,{url:t}),!1;let i=await r.json().catch(()=>null)===!0;return i&&S.info("Survey response instance marked as started",{instanceId:e}),i}catch(r){return S.warn("markResponseInstanceAsStarted request failed",{err:P(r)}),!1}}function uo(e){let t=ao(!1),r=ao(void 0),n=so(()=>{let o=e?.instanceId?.trim();!o||t.current||(t.current=!0,r.current=Date.now(),oo(o))},[e?.instanceId]),i=so(()=>r.current,[]);return{markOnce:n,getInstanceCreatedTime:i}}import{useEffect as po,useRef as vr}from"react";import{useMutation as na}from"@tanstack/react-query";function co({session:e,survey:t,answers:r,enabled:n,debounceMs:i,hasUserInteractedRef:o,isFinalSubmitting:s}){let a=vr(""),u=vr(s);po(()=>{u.current=s},[s]);let p=na({mutationFn:({url:d,requestBody:y})=>Ze({url:d,requestBody:y})},me),c=vr(p.mutateAsync);return c.current=p.mutateAsync,po(()=>{if(!n||!e?.instanceId||!t||!o.current||u.current)return;let d=JSON.stringify(r);if(d===a.current)return;let y=setTimeout(()=>{if(!u.current)try{let g=We(r,e,t),b=Je(g.answers,g.questions??[]),x=je(g.instanceId,g.surveyLanguage??"en",!1);c.current({url:x,requestBody:b}).then(()=>{a.current=d,S.info("Partial survey response saved")}).catch(T=>{S.warn("Partial survey response save failed",{err:P(T)})})}catch(g){S.warn("Partial survey response save skipped",{err:P(g)})}},i);return()=>clearTimeout(y)},[r,i,n,o,e,t]),{data:p.data??null,error:p.error??null,isLoading:p.isPending}}import{useCallback as ia,useRef as oa}from"react";var xr={VIEWED:"VIEWED"};function lo(e){let t=new URLSearchParams({instanceId:e});return`${Se}/cfm/recordQuestionActivityV2?${t.toString()}`}async function mo(e,t){let r=lo(e);try{let n=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});return n.ok?(S.info("Question activity recorded",{questionIds:t.questionIds}),!0):(S.warn(`recordQuestionActivity failed (${n.status})`,{url:r,requestBody:t}),!1)}catch(n){return S.warn("recordQuestionActivity request failed",{err:P(n)}),!1}}function fo({session:e,survey:t,getInstanceCreatedTime:r,onQuestionViewed:n}){let i=oa(new Set);return{recordView:ia(s=>{let a=e?.instanceId?.trim(),u=t?.id?.trim(),p=e?.responseId?.trim(),c=e?.instanceCreatedTime??r();if(!a||!u||!p||!c){S.warn("Skipping question activity record \u2014 missing context",{hasInstanceId:!!a,hasSurveyId:!!u,hasResponseId:!!p,hasInstanceCreatedTime:!!c});return}let d=s.filter(y=>{let g=y.trim();return!g||i.current.has(g)?!1:(i.current.add(g),!0)});if(d.length!==0){for(let y of d){let g=t?.pages.findIndex(b=>b.questions.some(x=>x.id===y));n?.(y,g!==void 0&&g>=0?g:void 0)}mo(a,{questionIds:d,state:xr.VIEWED,surveyId:u,responseId:p,instanceCreatedTime:c})}},[e?.instanceId,e?.responseId,e?.instanceCreatedTime,t?.id,r,n])}}function go(e){return e===!0||e===void 0||e===!1?1500:e.debounceMs??1500}function yo(e){return e===!0||typeof e=="object"&&e!==null}var br=(a=>(a.NEXT="NEXT",a.PREVIOUS="PREVIOUS",a.SUBMIT="SUBMIT",a.START="START",a.CHANGE="CHANGE",a.SCROLL="SCROLL",a.RECORD_QUESTION_VIEW="RECORD_QUESTION_VIEW",a))(br||{});var aa={data:null,error:null,isLoading:!1};function ua({options:e}={}){S.setEnabled(e?.debug??!1);let t=vo(!1),r=vo(!1),{survey:n,session:i,fetching:o,fetchError:s}=an({instanceId:e?.instanceId,language:e?.language,placeholders:e?.placeholders}),{markOnce:a,getInstanceCreatedTime:u}=uo(i),{phase:p,currentPageIndex:c,values:d,validationErrors:y,currentQuestions:g,canGoBack:b,primaryButtonType:x,specialPage:T,onBack:A,onNext:f,onSubmit:m,onChange:R,onStartSurvey:k,progressPercentage:h,totalQuestionsCount:C,answeredQuestionsCount:E,submitting:N,submitError:B,submitData:_,recordQuestionViewAnalytics:de}=no({survey:n,session:i,customFieldValues:e?.customFieldValues??gt}),{recordView:Ge}=fo({session:i,survey:n,getInstanceCreatedTime:u,onQuestionViewed:de}),Ce=yo(e?.savePartialResponse),yt=go(e?.savePartialResponse),ze=co({session:i,survey:n,answers:d,enabled:Ce,debounceMs:yt,hasUserInteractedRef:t,isFinalSubmitting:N}),te=sa(()=>Ce?ze:aa,[Ce,ze]),ke=So(()=>{p.kind!=="content"||t.current||(t.current=!0,r.current=!0,a())},[a,p.kind]),St=So(F=>{F.type==="NEXT"&&n&&x==="submit"&&(F={type:"SUBMIT"}),S.info(`Action dispatched: ${F.type}`,F);try{switch(F.type){case"START":r.current=!0,k();break;case"NEXT":f();break;case"PREVIOUS":A();break;case"SUBMIT":m();break;case"SCROLL":ke();break;case"CHANGE":ke(),R(F.payload.questionId,F.payload.answerValue);break;case"RECORD_QUESTION_VIEW":if(!r.current)return;Ge(F.payload.questionIds);break;default:break}}catch(vt){S.error(`Error executing action: ${F.type}`,{err:P(vt)})}},[f,A,m,R,k,n,x,ke,Ge,p.kind]);return{surveyQueryResults:{data:n,error:s,isLoading:o},submitSurveyResults:{data:_,error:B,isLoading:N},partialSaveResults:te,state:{phase:p,currentPageIndex:c,currentQuestions:g,answers:d,validationErrors:y,progressPercentage:h,totalQuestionsCount:C,answeredQuestionsCount:E,canGoBack:b,primaryButtonType:x,specialPage:T},onAction:St}}var pa=/\{\{SURVEY_QUESTION-:-([^}]+)\}\}/g;function ca(e){return e===l.CFM_MATRIX||e===l.CSAT_MATRIX||e===l.RATING_MATRIX||e===l.SLIDER_MATRIX}function xo(e,t){if(t==null)return"";if(e.type===l.MCQ){let r=e;return(Array.isArray(t)?t:typeof t=="string"?[t]:[]).map(o=>r.options.find(s=>s.id===o)?.optionLabel).filter(o=>!!o).join(", ")}return e.type===l.TEXTFIELD&&typeof t=="string"?t:e.type===l.NPS_SCALE&&typeof t=="number"?String(t):ca(e.type)&&typeof t=="object"&&!Array.isArray(t)?Object.values(t).filter(n=>n!=null&&n!=="").map(n=>String(n)).join(", "):typeof t=="string"?t:typeof t=="number"?String(t):""}function la(e,t,r){return e.replace(pa,(n,i)=>{let o=r.get(i);return o?xo(o,t[i]):n})}export{br as ACTIONS,xr as QUESTION_ACTIVITY_STATE,l as QUESTION_TYPE,mr as applyActivePathQuestionNumbers,lr as applyQuestionDisplayVariants,Zo as assignRankWithoutDuplicates,Wo as buildRankOrderFromOrderedOptionIds,dr as computeActivePathQuestionNumbers,xo as formatAnswerForDisplay,Nt as getOrderedOptionIdsFromRanks,jn as getVisibleMatrixItemsForAnswers,j as getVisibleMcqOptions,Gn as getVisibleMcqOptionsForAnswers,X as getVisibleRankOrderOptions,zn as getVisibleRankOrderOptionsForAnswers,J as getVisibleScaleColumns,Yn as getVisibleScaleColumnsForAnswers,q as getVisibleStatementRows,Xn as getVisibleStatementRowsForAnswers,Ko as matrixColumnStoredValue,D as normalizeRankOrderAnswers,to as resolveQuestionDisplayText,la as resolveSurveyQuestionPlaceholders,ua as useSurveySDK};
1
+ import{useCallback as So,useMemo as sa,useRef as vo}from"react";import{useMemo as Xo}from"react";import{useQuery as Go}from"@tanstack/react-query";import{QueryClient as Ro}from"@tanstack/react-query";var At=!1,Io={debug:"background: #7f8c8d; color: #fff; padding: 2px 5px; border-radius: 3px; font-weight: bold;",info:"background: #2980b9; color: #fff; padding: 2px 5px; border-radius: 3px; font-weight: bold;",warn:"background: #f1c40f; color: #000; padding: 2px 5px; border-radius: 3px; font-weight: bold;",error:"background: #e74c3c; color: #fff; padding: 2px 5px; border-radius: 3px; font-weight: bold;",success:"background: #2ecc71; color: #fff; padding: 2px 5px; border-radius: 3px; font-weight: bold;",perf:"background: #9b59b6; color: #fff; padding: 2px 5px; border-radius: 3px; font-weight: bold;",analytics:"background: #e20074; color: #fff; padding: 2px 5px; border-radius: 3px; font-weight: bold;"};function oe(e,t,r){if(!At&&e!=="analytics")return;let n=new Date().toLocaleTimeString(),i=`%c[SDK:${e.toUpperCase()}]`,o=Io[e];r!==void 0?console.log(`[${n}] ${i}`,o,t,r):console.log(`[${n}] ${i}`,o,t)}var S={setEnabled:e=>{At=e},isEnabled:()=>At,debug:(e,t)=>oe("debug",e,t),info:(e,t)=>oe("info",e,t),warn:(e,t)=>oe("warn",e,t),error:(e,t)=>oe("error",e,t),success:(e,t)=>oe("success",e,t),analytics:(e,t)=>oe("analytics",e,t),perf:e=>{oe("perf",`${e.apiName} completed in ${e.durationMs.toFixed(2)}ms | Status: ${e.status}`,e)}};function Ye(e){return e instanceof Error?e.message:String(e)}function P(e){return e instanceof Error?e:String(e)}var me=new Ro({defaultOptions:{queries:{staleTime:1/0,refetchOnWindowFocus:!1,refetchOnReconnect:!1,refetchInterval:!1,retryDelay:5e3,retry:(e,t)=>{if(e>=3)return S.error("Query failed permanently after 3 attempts. Stopping retries.",{err:P(t)}),!1;if(t instanceof Error){let r=t.message;if(r.includes("400")||r.includes("401")||r.includes("403")||r.includes("404")||r.includes("422"))return S.error(`Query failed permanently due to client error (${r}). Skipping retry.`,{err:P(t)}),!1}return S.warn(`Query failed. Retrying attempt ${e+1}/3...`,{err:P(t)}),!0}},mutations:{networkMode:"always",retryDelay:5e3,retry:(e,t)=>{if(e>=3)return S.error("Mutation failed permanently after 3 attempts. Stopping retries.",{err:P(t)}),!1;if(t instanceof Error){let r=t.message;if(r.includes("400")||r.includes("401")||r.includes("403")||r.includes("422"))return S.error("Mutation failed permanently due to validation/client error. Skipping retry.",{err:P(t)}),!1}return S.warn(`Mutation failed. Retrying attempt ${e+1}/3...`,{err:P(t)}),!0}}}});var Tr="https://custom-p0.feedbook.me/api/feedback/survey/cfm",Er="eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJBY2Nlc3MgVG9rZW4gR2VuZXJhdGVkIEJ5IFNwcmlua2xyIiwic3VydmV5SWQiOiI2YTJlNWM2NDFiOGRiMmY5MDQ2Nzg4ODUiLCJpc3MiOiJTUFJJTktMUiIsInR5cCI6IkpXVCIsInN1cnZleU1vZGUiOiJTVEFOREFSRCIsInN1cnZleUF1dGhlbnRpY2F0aW9uU3RhdGUiOiJOT1RfUkVRVUlSRUQiLCJkaXN0cmlidXRpb25FbnRpdHlJZCI6IjZhMmU1ZDEzNDRjYTkzZjc3YTVlMzcyNyIsImF1ZCI6IlNQUklOS0xSIiwibmJmIjoxNzgxNDIyMTc5LCJzY29wZSI6WyJSRUFEIiwiV1JJVEUiXSwic3RhdGljU3VydmV5IjoidHJ1ZSIsInN1cnZleVJlc3BvbmRlclNuVHlwZSI6IkVYVEVSTkFMX0FQUExJQ0FUSU9OIiwic3VydmV5TGFuZ3VhZ2UiOiJlbiIsInBhcnRuZXJJZCI6OTAwNCwidG9rZW5UeXBlIjoiQUNDRVNTIiwiYXV0aFR5cGUiOiJTVVJWRVlfUkVTUE9OU0UiLCJpYXQiOjE3ODE0MjMzNzksImp0aSI6InNwcmlua2xyIn0.B4ffi1szwM_xQKXTlr0kQc9mVOS4qVbB5e6ir4NFuCoOmNmsl3PB1QeFJ5jPaQ42s0KTpbufPam9ja0Z84CJ620l2WtuS1RModEv7ZtuMNLWOixzRxZMduC5-V7WV85H6gr1e-HzX7wgqrxTk2Z9iTr-8AVuczlwScarCfqLhA-JE_EXkFScHoehmH7QB5q5-BfcxU32iQNYOk5NyeEHGAAWkkyiGPdrbE27njPnhTunB3kKgCBvHHLq0KmgoN9x_KnrB53O_0Xai419TT5vkBWlu5a_uotZckX014eQpxYH02w_LeOF8iWEKYe6R9ge-6DSbelaJSt6U6O8Fq-aXw";function Lo(e){return`${Tr}?instanceId=${encodeURIComponent(e)}&draftPreview=false`}function hr(e){let t=typeof e=="string"&&e.trim().length>0?e.trim():Er;return Lo(t)}var l={MCQ:"MCQ",TEXTFIELD:"TEXTFIELD",NPS_SCALE:"NPS_SCALE",CFM_MATRIX:"CFM_MATRIX",CSAT_MATRIX:"CSAT_MATRIX",RATING_MATRIX:"RATING_MATRIX",SLIDER_MATRIX:"SLIDER_MATRIX",FILE_UPLOAD:"FILE_UPLOAD",TEXT_AND_MEDIA:"TEXT_AND_MEDIA",HEATMAP:"HEATMAP",RANK_ORDER:"RANK_ORDER"};function Ir(e,t,r,n){let i=t.find(h=>h.key==="REQUIRED")?.value?.[0]==="true",o=t.find(h=>h.key==="REQUIRED_ERROR_MESSAGE"),s=o?.value?.[0];r&&o?.translations?.[r]?.value?.[0]&&(s=o.translations[r].value[0]);let a=r&&e.translations?.[r]?.questionRichText||r&&e.translations?.[r]?.questionText||e.questionRichText||e.questionText||"";n&&(a=a.replace(/\{\{(\w+)\}\}/g,(h,C)=>n[C]!==void 0?n[C]:h));let u=r&&e.translations?.[r]?.descriptionRichText||r&&e.translations?.[r]?.description||e.descriptionRichText||e.description||e.descriptionText||(typeof e.additional?.descriptionRichText=="string"?e.additional.descriptionRichText:"")||(typeof e.additional?.description=="string"?e.additional.description:"")||"";if(!u){let h=t.find(C=>C.key.includes("DESCRIPTION"));u=h?.value?.[0]||"",r&&h?.translations?.[r]?.valueRichText?.[0]?u=h.translations[r].valueRichText[0]:r&&h?.translations?.[r]?.value?.[0]&&(u=h.translations[r].value[0])}u&&n&&(u=u.replace(/\{\{(\w+)\}\}/g,(h,C)=>n[C]!==void 0?n[C]:h));let p=e.questionHint,c=t.find(h=>h.key==="QUESTION_HINT");c?.value?.[0]&&c.value[0]!=="true"&&c.value[0]!=="false"&&(p=c.value[0]);let y=e.questionContainerAssets?.[0],g=y?.source||y?.mediaUrl||y?.previewImageUrl,b=y?.mediaMimeType,T=t.find(h=>h.key==="QUESTION_CONTAINER_MEDIA_ALIGNMENT")?.value?.[0],A=t.find(h=>h.key==="TEXT_AND_MEDIA_SIZE"),f=A?.value?.[0]?Number(A.value[0]):void 0,m=g||b||T||f!==void 0?{...g?{url:g}:{},...b?{mimeType:b}:{},...T?{alignment:T}:{},...f!==void 0?{size:f}:{}}:void 0,R=e.additionalInfo?.associatedPlaceholderQuestionIds,k=Array.isArray(R)?R.filter(h=>typeof h=="string"&&h.length>0):void 0;return{id:e.id??"",questionText:a,...u?{questionDescription:u}:{},...p?{questionHint:p}:{},required:i,...s?{requiredErrorMessage:s}:{},...e.questionNumber!==void 0?{questionNumber:e.questionNumber}:{},...m?{containerMedia:m}:{},...k&&k.length>0?{referencedQuestionIds:k}:{}}}var Po=new Set(["TEXT","TEXT_MULTI","TEXTAREA","NUMBER","PICKLIST","PICKLIST_MULTISELECT","DATETIME"]);function Co(e){return Array.isArray(e.filters)&&e.filters.length>0}function Rr(e){return e==="AND"||e==="OR"}function ko(e){return e!==void 0&&Po.has(e)}function wo(e){return!e?.id||e.entityType!=="QUESTION"?null:{id:e.id,entityType:"QUESTION",...e.answerType?{answerType:e.answerType}:{}}}function Oo(e){return!e?.id||e.entityType!=="CUSTOM_FIELD"||!ko(e.fieldType)?null:{id:e.id,entityType:"CUSTOM_FIELD",fieldType:e.fieldType,...e.assetClass?{assetClass:e.assetClass}:{}}}function Mo(e){return wo(e)??Oo(e)}function Qo(e){return!e?.id||e.entityType!=="OPTION"?null:{id:e.id,entityType:"OPTION"}}function No(e){if(!e.filterType||Rr(e.filterType))return null;let t=Mo(e.details?.conditionEntity);if(!t)return null;let r=Qo(e.details?.subConditionEntity),n={filterType:e.filterType,details:{conditionEntity:t,...r?{subConditionEntity:r}:{}}},i=e.details?.valueAdditional?.timezone;return i&&(n.details.valueAdditional={timezone:i}),e.field&&(n.field=e.field),e.values&&(n.values=e.values),n}function _o(e){if(!Rr(e.filterType))return null;let t=e.filters.map(r=>Lr(r)).filter(r=>r!==null);return t.length===0?null:{filterType:e.filterType,filters:t}}function Lr(e){return Co(e)?_o(e):No(e)}function Fo(e){return"filters"in e}function fe(e){if(!e)return null;let t=Lr(e);return t?Fo(t)?t:{filterType:"AND",filters:[t]}:null}function Pr(e){if(!e?.length)return;let t=e.map(r=>{let n=r.id?.trim(),i=r.skipTo?.id?.trim(),o=r.skipTo?.entityType,s=fe(r.condition);return!n||!i||!o||!s||o!=="QUESTION"&&o!=="END_OF_SURVEY"?null:{id:n,skipTo:{id:i,entityType:o},condition:s}}).filter(r=>r!==null);return t.length>0?t:void 0}function ge(e){if(!e)return;let t=fe(e.condition);if(t)return{condition:t,isDynamicAppearanceEnabled:e.isDynamicAppearanceEnabled===!0}}function Vo(e,t,r){let n=t&&e.translations?.[t]?.questionRichText||t&&e.translations?.[t]?.questionText||e.questionRichText||e.questionText||"";return r&&(n=n.replace(/\{\{(\w+)\}\}/g,(i,o)=>r[o]!==void 0?r[o]:i)),n}function Cr(e,t,r){let n=e.questionDisplayVariants;if(!n?.length)return;let i=[];for(let o of n){let s=o.id;if(!s)continue;let a=Vo(o,t,r);if(!a)continue;let u=ge(o.controlConfig?.displayLogic);u&&i.push({id:s,questionText:a,...u?{displayLogic:u}:{}})}return i.length>0?i:void 0}function kr(e,t,r,n){return{...e,...t?.length?{skipLogics:t}:{},...r?{displayLogic:r}:{},...n?.length?{displayVariants:n}:{}}}function H(e){if(!e)return;let t=fe(e.condition);if(t)return{condition:t}}function Tt(e,t){return(e.answerDetails??[]).filter(r=>!r.hidden&&!r.additional?.isHintText).map((r,n)=>{let i=H(r.controlConfig?.displayLogic);return{id:r.id??String(n),optionLabel:t&&r.translations?.[t]?.answerText||r.answerText||"",...i?{answerLogic:i}:{}}})}function wr(e){let t=e.find(u=>u.key==="ANSWER_CONDITION");if(t?.value?.[0]?.toLowerCase()!=="true")return{};let r=t.childConfigs?.find(u=>u.key==="MIN_MAX_ANSWER"),n=r?.childConfigs?.find(u=>u.key==="MIN_ANSWER")?.value?.[0],i=r?.childConfigs?.find(u=>u.key==="MAX_ANSWER")?.value?.[0],o=t.childConfigs?.find(u=>u.key==="ERROR_MESSAGE")?.value?.[0],s=n!==void 0?Number(n):void 0,a=i!==void 0?Number(i):void 0;return{...s!==void 0&&Number.isFinite(s)?{minSelections:s}:{},...a!==void 0&&Number.isFinite(a)?{maxSelections:a}:{},...o?{answerConditionErrorMessage:o}:{}}}function Or(e,t){let r=e.find(o=>o.key==="DEFAULT_ANSWER");if(r?.value?.[0]?.toLowerCase()!=="true")return;let i=r.childConfigs?.find(o=>o.key==="DEFAULT_ANSWERS")?.value?.filter(Boolean)??[];if(i.length!==0){if(t&&t.length>0){let o=new Set(t),s=i.filter(a=>o.has(a));return s.length>0?s:void 0}return i}}function Et(e,t,r){let n=e.questionConfigs??[],o=(n.find(b=>b.key==="MCQ_VARIANT")?.value?.[0]?.toUpperCase()??"SINGLESELECT").includes("MULTI")?"multiple":"single",a=(n.find(b=>b.key==="MCQ_FORMAT_TYPE")?.value?.[0]?.toUpperCase()??"LIST").includes("GRID")?"grid":"list",u=n.find(b=>b.key==="SHUFFLE_ORDER")?.value?.[0]?.toLowerCase()==="true",p=n.find(b=>b.key==="COLUMNS")?.value?.[0],c=p?Number(p):void 0,d=Tt(e,r),y=Or(n,d.map(b=>b.id)),g=wr(n);return{...t,type:l.MCQ,options:d,selectionMode:o,displayFormat:a,shuffleOptions:u,...c!==void 0&&Number.isFinite(c)?{columnCount:c}:{},...y?{defaultOptionIds:y}:{},...g}}function Oe(e=[],t){let r=e.filter(n=>n.additional?.isHintText&&!n.hidden).map(n=>t&&n.translations?.[t]?.answerText||n.answerText||"").filter(Boolean);return r.length>=3?{minLabel:r[0],midLabel:r[1],maxLabel:r[2]}:{minLabel:r[0],maxLabel:r[1]}}function ht(e,t){let r=(e.answerDetails??[]).filter(n=>!n.hidden&&!n.additional?.isHintText);return r.length>0?r.map((n,i)=>({id:n.id??String(i),optionLabel:t&&n.translations?.[t]?.answerText||n.answerText||String(i)})):Array.from({length:11},(n,i)=>({id:String(i),optionLabel:String(i)}))}function Mr(e,t,r,n){let{minLabel:i,midLabel:o,maxLabel:s}=Oe(e.answerDetails,n),a=ht(e,n),u=r.find(y=>y.key.includes("REVERSE"))?.value?.[0]?.toLowerCase()==="true"||e.additional?.reverseScaleOrder===!0||e.additional?.reverseScale===!0;if(u){a=[...a].reverse();let y=i;i=s,s=y}let p;o&&(p=a.length===11?u?2.5:7.5:(a.length-1)/2);let c="numbered",d=r.find(y=>y.key==="NPS_BUTTON_VARIANT")?.value?.[0]?.toLowerCase();return d==="emoji"?c="emoji":d==="radio"&&(c="standard"),{...t,type:l.NPS_SCALE,options:a,...i?{minLabel:i}:{},...o?{midLabel:o}:{},...p!==void 0?{midLabelIndex:p}:{},...s?{maxLabel:s}:{},reverseScaleOrder:!!u,buttonStyle:c}}function Qr(e,t,r,n){let i=r.find(d=>d.key==="CONTENT_TYPE"),o=i?.childConfigs?.find(d=>d.key==="MAX_CHARACTER_COUNT"),s=o?.value?.[0]?Number(o.value[0]):void 0,u=(i?.value?.[0]?.toUpperCase()??"LONG").includes("SHORT")?"short":"long",p=e.answerDetails?.[0],c=p?n&&p.translations?.[n]?.answerText||p.answerText:void 0;return{...t,type:l.TEXTFIELD,inputVariant:u,...s!==void 0?{maxCharacterCount:s}:{},...c?{placeholder:c}:{}}}function se(e){let t=JSON.stringify(e).toUpperCase();return t.includes("CAROUSEL")?"carousel":t.includes("DROPDOWN")?"dropdown":"standard"}function ye(e,t,r){let n=e;if(r&&n.answerDetails&&n.answerDetails.length>=2){let o=t&&n.answerDetails[0].translations?.[t]?.answerText||n.answerDetails[0].answerText||"";if(o)return o}let i=t&&e.translations?.[t]?.questionText||e.questionText||e.answerText||"";return r&&i.includes(":")?i.split(":")[0].trim():i}function Do(e,t,r){let n=e;if(r&&n.answerDetails&&n.answerDetails.length>=2){let a=t&&n.answerDetails[1].translations?.[t]?.answerText||n.answerDetails[1].answerText||"";if(a)return a}let i=e.additional,o=t&&e.translations?.[t]?.description||e.description||i?.rightLabel||i?.rightStatement||i?.rightText;if(typeof o=="string"&&o.trim()!=="")return o;let s=t&&e.translations?.[t]?.questionText||e.questionText||e.answerText||"";if(r&&s.includes(":"))return s.split(":").slice(1).join(":").trim()}function It(e,t,r){let n=(e.matrixRowQuestions?.length??0)>0?e.matrixRowQuestions:e.childSurveyQuestions;return n&&n.length>0?n.filter(i=>i.id).map(i=>{let o=H(i.controlConfig?.displayLogic),s=Do(i,t,r);return{id:i.id,statementText:ye(i,t,r),...s?{oppositeStatementText:s}:{},...o?{answerLogic:o}:{}}}):(e.answerDetails??[]).filter(i=>!i.hidden&&!i.additional?.isHintText).map((i,o)=>({id:`row_${o}`,statementText:t&&i.translations?.[t]?.answerText||i.answerText||""}))}function ae(e,t){return e.matrixColumnQuestions&&e.matrixColumnQuestions.length>0?e.matrixColumnQuestions.filter(r=>r.id).map(r=>{let n=t&&r.translations?.[t]?.answerText||r.answerText||ye(r,t),i=H(r.controlConfig?.displayLogic);return{id:r.id,label:n,...i?{answerLogic:i}:{}}}):(e.answerDetails??[]).filter(r=>!r.hidden&&!r.additional?.isHintText).map((r,n)=>{let i=t&&r.translations?.[t]?.answerText||r.answerText||"",o=H(r.controlConfig?.displayLogic);return{id:r.id??`col_${n}`,label:i,...o?{answerLogic:o}:{}}})}function Nr(e,t,r){let n=e.questionConfigs??[],o=n.find(f=>f.key==="MATRIX_TYPE")?.value?.[0]?.toLowerCase()==="bipolar"?"bipolar":"likert",a=It(e,r,o==="bipolar"),u=ae(e,r),p=se(n),d=n.some(f=>f.key.includes("MULTI")||f.value?.[0]?.toUpperCase().includes("MULTI")||f.key.includes("ANSWER")&&f.value?.[0]?.toUpperCase().includes("MULTI")||f.key.includes("SELECT")&&f.value?.[0]?.toUpperCase().includes("MULTI"))?"multiple":"single",y=n.find(f=>f.key==="TRANSPOSE_TABLE")?.value?.[0]?.toLowerCase()==="true",g=n.find(f=>f.key==="REPEAT_SCALE")?.value?.[0]?.toLowerCase()==="true",b=n.find(f=>f.key==="NOT_APPLICABLE_OPTIONS")?.value?.[0]==="true"||n.find(f=>f.key==="ENABLE_NON_APPLICABLE")?.value?.[0]==="true",x=b?!1:y;b&&u.push({id:"na",label:"N/A"});let T=n.find(f=>f.key==="ENABLE_SCALE")?.value?.[0]?.toLowerCase()!=="false",A;return o==="bipolar"&&(A=(e.answerDetails??[]).filter(f=>f.additional?.isHintText&&!f.hidden).map(f=>r&&f.translations?.[r]?.answerText||f.answerText||"").filter(Boolean),A.length===0&&(A=void 0)),{...t,type:l.CFM_MATRIX,statementRows:a,scaleColumns:u,statementLayout:o,selectionMode:d,gridLayout:p,transposeTable:x,repeatColumnHeaders:!!g,hasNotApplicableOption:!!b,showColumnHeaders:T,...A?{scaleAnchorLabels:A}:{}}}function Me(e,t){let n=`${e.map(o=>o.value?.[0]||"").join(" ").toUpperCase()} ${(t||"").toUpperCase()}`,i=e.find(o=>o.key==="BUTTON_TYPE")?.value?.[0]?.toLowerCase();return i==="radio"&&(i="standard"),i==="emoji"||i==="star"||i==="standard"||i==="numbered"||i==="dropdown"||i==="selectbox"||i==="graphics"?i:n.includes("EMOJI")||n.includes("CSAT")||n.includes("SMILEY")||n.includes("FACE")?"emoji":n.includes("STAR")?"star":n.includes("GRAPHIC")||n.includes("SLIDER")?"graphics":n.includes("DROP")?"dropdown":n.includes("SELECT")?"selectbox":n.includes("RADIO")?"standard":n.includes("NUMBER")?"numbered":"standard"}function ue(e,t){let r=(e.matrixRowQuestions?.length??0)>0?e.matrixRowQuestions:e.childSurveyQuestions;return r&&r.length>0?r.filter(n=>n.id).map(n=>{let i=H(n.controlConfig?.displayLogic);return{id:n.id,statementText:ye(n,t),...i?{answerLogic:i}:{}}}):(e.answerDetails??[]).filter(n=>!n.hidden&&!n.additional?.isHintText).map((n,i)=>({id:`row_${i}`,statementText:t&&n.translations?.[t]?.answerText||n.answerText||""}))}function _r(e,t,r){let n=e.questionConfigs??[],i=ae(e,r),o=n.find(u=>u.key==="NOT_APPLICABLE_OPTIONS")?.value?.[0]==="true"||n.find(u=>u.key==="ENABLE_NON_APPLICABLE")?.value?.[0]==="true",s=n.find(u=>u.key.includes("REVERSE"))?.value?.[0]?.toLowerCase()==="true"||e.additional?.reverseScaleOrder===!0||e.additional?.reverseScale===!0,a=(e.answerDetails??[]).filter(u=>u.additional?.isHintText&&!u.hidden).map(u=>r&&u.translations?.[r]?.answerText||u.answerText||"").filter(Boolean);return s&&(i=[...i].reverse(),a=[...a].reverse()),o&&i.push({id:"na",label:"N/A"}),{...t,type:l.CSAT_MATRIX,statementRows:ue(e,r),scaleColumns:i,displayStyle:Me(n,e.dataSubType),hasNotApplicableOption:!!o,reverseScaleOrder:!!s,gridLayout:se(n),...a.length>0?{scaleAnchorLabels:a}:{}}}function Fr(e,t,r){let n=e.questionConfigs??[],i=ae(e,r),o=n.find(c=>c.key==="NOT_APPLICABLE_OPTIONS")?.value?.[0]==="true"||n.find(c=>c.key==="ENABLE_NON_APPLICABLE")?.value?.[0]==="true",s=n.find(c=>c.key.includes("REVERSE"))?.value?.[0]?.toLowerCase()==="true"||e.additional?.reverseScaleOrder===!0||e.additional?.reverseScale===!0,a=(e.answerDetails??[]).filter(c=>c.additional?.isHintText&&!c.hidden).map(c=>r&&c.translations?.[r]?.answerText||c.answerText||"").filter(Boolean);s&&(i=[...i].reverse(),a=[...a].reverse()),o&&i.push({id:"na",label:"N/A"});let{minLabel:u,maxLabel:p}=Oe(e.answerDetails,r);return{...t,type:l.RATING_MATRIX,statementRows:ue(e,r),scaleColumns:i,...u?{minLabel:u}:{},...p?{maxLabel:p}:{},displayStyle:Me(n,e.dataSubType),hasNotApplicableOption:!!o,reverseScaleOrder:!!s,gridLayout:se(n),...a.length>0?{scaleAnchorLabels:a}:{}}}function Rt(e,t){let r=Number(e.additional?.sliderMin??0),n=Number(e.additional?.sliderMax??10),i=Number(e.additional?.sliderStep??1);return ue(e,t).map(s=>({...s,min:Number.isFinite(r)?r:0,max:Number.isFinite(n)?n:10,step:Number.isFinite(i)&&i>0?i:1}))}function Vr(e,t,r){let n=e.questionConfigs||[],i=n.find(E=>E.key==="SLIDER_TICKS_AND_VALUES"),o=i?.childConfigs||[],s=o.find(E=>E.key==="TICK_START")?.value?.[0],a=o.find(E=>E.key==="TICK_END")?.value?.[0],u=o.find(E=>E.key==="STEP_SIZE")?.value?.[0],p=i?.value?.[0],c=s!==void 0?Number(s):0,d=a!==void 0?Number(a):10,y=u!==void 0?Number(u):1,g=p!==void 0?Number(p):10,b={...e,additional:{...e.additional,sliderMin:c,sliderMax:d,sliderStep:y}},x=Rt(b,r),T=(e.answerDetails||[]).filter(E=>E.additional?.isHintText).map(E=>r&&E.translations?.[r]?.answerText||E.answerText||"").filter(Boolean),A=E=>{for(let N of E){let B=n.find(_=>_.key===N)||o.find(_=>_.key===N);if(B?.value?.length)return B.value[0]?.toString().toLowerCase()==="true"}return!1},f=n.find(E=>E.key==="SCALE_TYPE"||E.key==="VIEW_VARIANT")?.value?.[0]?.toUpperCase().includes("GRAPHIC"),m=A(["ENABLE_INPUT_BOX","SHOW_INPUT_BOX","INPUT_BOX","ENABLE_INPUT"]),R=A(["SHOW_VALUE","DISPLAY_VALUES"]),k=A(["NOT_APPLICABLE","NOT_APPLICABLE_OPTIONS"]),h=(e.answerDetails||[]).filter(E=>!E.additional?.isHintText&&!E.hidden).map(E=>E.translations?.[r||""]?.answerText||E.answerText||""),C=[];if(g>1){let E=(d-c)/(g-1);for(let N=0;N<g;N++){let B=Number((c+N*E).toFixed(2)),_=h[N]||B.toString();C.push({tickPosition:B,tickLabel:_})}}return{...t,type:l.SLIDER_MATRIX,statementRows:x,ticks:{count:g,marks:C},enableInputBox:m,displayValues:R,hasNotApplicableOption:k,sliderStyle:f?"graphics":"standard",...T.length>0?{scaleAnchorLabels:T}:{}}}function Lt(e){let t=e.additional??{},r=t.mediaUrl??t.previewUrl,n=t.mediaMimeType,i=t.title,o=e.questionContainerAssets;if(Array.isArray(o)&&o.length>0){let d=o[0];(d.source||d.previewImageUrl)&&(r=d.source||d.previewImageUrl),d.type&&(d.type==="PHOTO"||d.type==="IMAGE"?n="image/*":d.type==="VIDEO"?n="video/*":n=d.type)}let s=e.questionConfigs||[],a=s.find(d=>d.key==="TEXT_AND_MEDIA_ALIGNMENT"),u=s.find(d=>d.key==="TEXT_AND_MEDIA_SIZE"),p=a?.value?.[0],c=u?.value?.[0]?Number(u.value[0]):void 0;return{...r?{url:r}:{},...n?{mimeType:n}:{},...i?{title:i}:{},...p?{alignment:p}:{},...c!==void 0?{size:c}:{}}}function Dr(e,t){let r=Lt(e),{containerMedia:n,...i}=t,o=t.questionText;if(Array.isArray(e.answerDetails)){let a=e.answerDetails.find(u=>u.additional?.textAndMediaFieldType==="HEADER");a?.answerText&&(o=a.answerText)}let s=Object.keys(r).length>0;return{...i,questionText:o,type:l.TEXT_AND_MEDIA,...s?{media:r}:{}}}function Ur(e,t,r){let n=e.questionConfigs||[],i=e.answerDetails?.find(x=>x.additional?.fieldType==="UPLOAD_MESSAGE"),o=r&&i?.translations?.[r]?.answerText||i?.answerText||"",a=n.find(x=>x.key==="SUPPORTED_FILE_FORMAT")?.value?.map(x=>x.toUpperCase().replace(/^\./,""))||[],u=n.find(x=>x.key==="MAX_FILE_COUNT"),p=u?.value?.[0]?Number(u.value[0]):void 0,c=n.find(x=>x.key==="FILE_SIZE_LIMIT"),d=c?.childConfigs?.find(x=>x.key==="SIZE_LIMIT_ID")?.value?.[0],y=c?.childConfigs?.find(x=>x.key==="SIZE_FORMAT_ID")?.value?.[0],g=d?Number(d):void 0,b=y==="IN_TOTAL"?"IN_TOTAL":"PER_FILE";return{...t,type:l.FILE_UPLOAD,supportedFileFormats:a,fileSizeLimitType:b,...o?{uploadMessage:o}:{},...p!==void 0?{maxFileCount:p}:{},...g!==void 0?{fileSizeLimit:g}:{}}}function Pt(e,t,r){let n=t>0?t:Math.max(...e.map(s=>s.coordinateX+s.width),1),i=r>0?r:Math.max(...e.map(s=>s.coordinateY+s.height),1);return{regions:e.map(s=>({id:s.id,label:s.label??s.id,x:s.coordinateX/n,y:s.coordinateY/i,width:s.width/n,height:s.height/i,...s.color?{color:s.color}:{}})),referenceWidth:n,referenceHeight:i}}function qr(e,t){let r=e.surveyHeatmapMetadata,n=e.questionAssets?.[0],i=n?.source||n?.previewImageUrl||"",o=r?.totalClickAllowed??20,s=Math.min(20,Math.max(1,o)),{regions:a,referenceWidth:u,referenceHeight:p}=Pt(r?.heatmapRegions??[],r?.imageWidth??0,r?.imageHeight??0);return{...t,type:l.HEATMAP,imageUrl:i,regions:a,maxClicksAllowed:s,referenceWidth:u,referenceHeight:p}}function Br(e,t){return(e.answerDetails??[]).filter(r=>!r.hidden&&!r.additional?.isHintText).map((r,n)=>{let i=H(r.controlConfig?.displayLogic),o=r.answerAsset,s=o?.source||o?.previewImageUrl,a=o?.previewImageUrl||o?.source;return{id:r.id??String(n),optionLabel:t&&r.translations?.[t]?.answerText||r.answerText||"",...s?{imageUrl:s}:{},...a?{previewImageUrl:a}:{},...i?{answerLogic:i}:{}}})}function Hr(e,t){return e.find(r=>r.key===t)?.value?.[0]?.toLowerCase()==="true"}function Uo(e){return e?.toUpperCase()==="DRAG_AND_DROP"?"dragAndDrop":"dropdown"}function qo(e){switch(e?.toUpperCase()){case"TEXT_ONLY":return"textOnly";case"IMAGE_ONLY":return"imageOnly";default:return"textAndImage"}}function Xr(e,t,r,n){let i=r.find(s=>s.key==="RANK_ORDER_ANSWER_TYPE"),o=r.find(s=>s.key==="OPTION_TYPE");return{...t,type:l.RANK_ORDER,options:Br(e,n),interactionMode:Uo(i?.value?.[0]),optionDisplay:qo(o?.value?.[0]),requireRankAll:Hr(r,"REQUIRE_RANK_ALL"),shuffleOptions:Hr(r,"SHUFFLE_ORDER")}}function Ct(e,t,r){let n=e.questionConfigs??[],i=Ir(e,n,t,r),o=Pr(e.controlConfig?.skipLogics),s=ge(e.controlConfig?.displayLogic),a=Cr(e,t,r);function u(p){return kr(p,o,s,a)}switch(e.answerType){case l.NPS_SCALE:case"SCALE":return u(Mr(e,i,n,t));case l.TEXTFIELD:return u(Qr(e,i,n,t));case l.CFM_MATRIX:return u(Nr(e,i,t));case l.CSAT_MATRIX:return u(_r(e,i,t));case l.RATING_MATRIX:return u(Fr(e,i,t));case l.SLIDER_MATRIX:return u(Vr(e,i,t));case l.TEXT_AND_MEDIA:return u(Dr(e,i));case l.FILE_UPLOAD:return u(Ur(e,i,t));case l.HEATMAP:return u(qr(e,i));case l.RANK_ORDER:return u(Xr(e,i,n,t));case l.MCQ:return u(Et(e,i,t));default:return u(Et(e,i,t))}}function Gr(e){let t=e.trim();if(!t)return null;let r=t.split(".");if(r.length<2)return null;try{let n=r[1].replace(/-/g,"+").replace(/_/g,"/"),i=n.padEnd(n.length+(4-n.length%4)%4,"="),o=atob(i),s=JSON.parse(o);if(typeof s!="object"||s===null)return null;let a=s;return{surveyResponseId:typeof a.surveyResponseId=="string"?a.surveyResponseId:void 0}}catch{return null}}var Bo={en:"English",hi:"Hindi",de:"Deutsch",es:"Espa\xF1ol",fr:"Fran\xE7ais",bn:"Bengali",gu:"Gujarati",it:"Italiano",ja:"\u65E5\u672C\u8A9E",ko:"\uD55C\uAD6D\uC5B4",mr:"Marathi",pa:"Punjabi",ta:"Tamil",te:"Telugu",ur:"Urdu",zh:"\u4E2D\u6587"};function Ho(e){let t=e.toLowerCase().trim();return Bo[t]||e.toUpperCase()}function zr(e){let t=e.cfmSurveyDTO,r=new Set,n=t?.baseLanguage??"en";return r.add(n),t&&Array.isArray(t.surveyPages)&&t.surveyPages.forEach(i=>{(i.questionHolders??[]).forEach(o=>{let s=o.question;s&&s.translations&&Object.keys(s.translations).forEach(a=>{r.add(a)})})}),Array.from(r).map(i=>({code:i,name:Ho(i)}))}function Yr(e,t,r){let n=e.cfmSurveyDTO;return!n||!Array.isArray(n.surveyPages)?[]:n.surveyPages.map((i,o)=>{let s=(i.questionHolders??[]).map(a=>a.question).filter(a=>!!a).map(a=>Ct(a,t,r));return{id:i.id??`page_${o}`,title:i.title??`Page ${o+1}`,questions:s}})}function kt(e,t){if(!e?.id||e.disabled)return;let r=e.translations?.[t??""],n=r?.headerRichText||r?.header||e.headerRichText||e.header||e.title||"",i=r?.descriptionRichText||r?.description||e.descriptionRichText||e.description,o=e.ctaConfig?.others?.start,s=t&&o?.translations?.[t]?.buttonText||o?.buttonText;if(!n.trim())return;let a=ge(e.controlConfig?.displayLogic),u=r?.title||e.title;return{id:e.id,header:n,...u?{title:u}:{},...i?{description:i}:{},...s?{ctaLabel:s}:{},...e.disabled!==void 0?{disabled:e.disabled}:{},...a?{displayLogic:a}:{}}}function jr(e,t){let r=e.cfmSurveyDTO;if(!r)return{endPages:[]};let n=(r.endPages??[]).map(i=>kt(i,t)).filter(i=>!!i);return{introPage:kt(r.introPage,t),endPages:n,pausedPage:kt(r.pausedPage,t)}}function Kr(e){let r=e.cfmSurveyDTO?.status==="PAUSED";return{expired:!!e.expired,alreadyFilled:!!(e.alreadyFilled||e.surveySubmitted),quotaFulfilled:!!e.quotaFulfilled,paused:r}}function $r(e){let{phaseFlags:t}=e;return t.expired?{kind:"expired"}:t.quotaFulfilled?{kind:"quota_fulfilled"}:t.alreadyFilled?{kind:"submitted"}:t.paused?{kind:"paused"}:e.introPage?{kind:"intro"}:{kind:"content",pageIndex:0}}function wt(e){if(!e.instanceId?.trim())return null;let t=e.instanceId.trim(),r=Gr(t);return{instanceId:t,language:e.surveyLanguage??e.cfmSurveyDTO?.baseLanguage??"en",responseId:r?.surveyResponseId,...e.instanceCreatedTime!==void 0?{instanceCreatedTime:e.instanceCreatedTime}:{}}}function Jr(e,t){return t??e.surveyLanguage??e.cfmSurveyDTO?.baseLanguage??"en"}function Ot(e,t,r){let n=Jr(e,t),i=zr(e),o=Yr(e,n,r),{introPage:s,endPages:a,pausedPage:u}=jr(e,n),p=Kr(e);return{id:e.cfmSurveyDTO?.id??"",language:n,languages:i,pages:o,...s?{introPage:s}:{},endPages:a,...u?{pausedPage:u}:{},phaseFlags:p}}function Wr(e){S.info("Starting survey layout API fetch...",{url:e})}function Mt(e,t,r){S.perf({apiName:"GET Survey Layout",durationMs:e,status:t,url:r,success:!1})}function Zr(e,t,r,n){S.perf({apiName:"GET Survey Layout",durationMs:e,status:t,url:r,payloadSize:n,success:!0})}function en(e){S.success("Raw survey layout fetched successfully",{apiResponse:e})}function tn(e){S.error("Failed to fetch raw survey layout",{err:e})}function rn(){S.warn("Cannot map survey: apiResponse is null or undefined")}function nn(e){S.success("Mapped survey layout successfully",{mappedSurvey:e})}function on(e){S.error("Failed to map survey layout",{err:e})}function w(e){if(e.eventName==="survey_session_summary"){let{completed:t,totalDurationMs:r,maxVisitedPageIndex:n,totalQuestionsCount:i,answeredQuestionsCount:o,skippedQuestionsCount:s,skippedQuestionIds:a,validationErrorsCount:u,backtrackCount:p}=e.metadata;S.analytics(`Event: ${e.eventName} - SESSION SUMMARY TABLE:`);let c=[{Metric:"Completion Status",Value:t?"COMPLETED \u2705":"ABANDONED \u274C"},{Metric:"Total Time Spent",Value:`${(r/1e3).toFixed(2)} seconds`},{Metric:"Max Page Index Reached",Value:`${n}`},{Metric:"Total Questions",Value:i},{Metric:"Answered Questions",Value:o},{Metric:"Skipped Optional Questions",Value:s},{Metric:"Skipped Question IDs",Value:a.join(", ")||"None"},{Metric:"Validation Errors Triggered",Value:u},{Metric:"Backtrack Count",Value:p},{Metric:"Validation Error History",Value:e.metadata.validationHistory?.map(d=>`[Page ${d.pageIndex}] Attempt ${d.attemptNumber}: ${Object.keys(d.errors).join(", ")}`).join(" | ")||"NO Validation Erros Occurred"}];console.table(c)}else if(e.eventName==="logic_session_summary"){S.analytics("Event: logic_session_summary - LOGIC ANALYSIS TABLE:");let t=[{"Logic Kind":"Display logic matches",Count:e.metadata.displayLogicMatches.length},{"Logic Kind":"Answer logic matches",Count:e.metadata.answerLogicMatches.length},{"Logic Kind":"Variant matches",Count:e.metadata.variantMatches.length},{"Logic Kind":"End page changes",Count:e.metadata.endPageResolution.changeCount},{"Logic Kind":"Skip logic triggers",Count:e.metadata.skipLogicTriggers.length},{"Logic Kind":"Questions viewed",Count:e.metadata.viewedCount},{"Logic Kind":"On-path questions not viewed",Count:e.metadata.notViewedOnPathCount}];console.table(t),e.metadata.logicEventTimeline.length>0&&console.table(e.metadata.logicEventTimeline)}else S.analytics(`Event: ${e.eventName}`,e.metadata)}function sn(e,t,r,n){w({eventName:"survey_fetch_latency",metadata:{durationMs:e,status:t,success:!0,url:r,payloadSize:n}})}function Qt(e,t,r){w({eventName:"api_error",metadata:{apiName:"GET Survey Layout",status:e,url:t,errorMessage:r}})}async function zo(e){let t=performance.now();Wr(e);try{let r=await fetch(e,{method:"GET",headers:{Accept:"application/json"},cache:"force-cache"}),n=performance.now()-t;if(!r.ok)throw Mt(n,r.status,e),Qt(r.status,e,`Survey fetch failed (${r.status})`),new Error(`Survey fetch failed (${r.status})`);let i=await r.json(),o=JSON.stringify(i),a=`${(new Blob([o]).size/1024).toFixed(2)} KB`;return Zr(n,r.status,e,a),sn(n,r.status,e,a),en(i),i}catch(r){let n=performance.now()-t;throw Mt(n,"FAILED",e),Qt("FAILED",e,Ye(r)),tn(P(r)),r}}function an(e){let t=hr(e?.instanceId),r=e?.language,n=e?.placeholders,{data:i,error:o,isLoading:s,isSuccess:a}=Go({queryKey:["survey",t],queryFn:()=>zo(t),enabled:!!t},me),u=Xo(()=>{if(!a)return{survey:null,session:null};if(!i)return rn(),{survey:null,session:null};try{let p=Ot(i,r,n),c=wt(i),d=c?{...c,language:p.language}:null;return nn(p),{survey:p,session:d}}catch(p){return on(P(p)),{survey:null,session:null}}},[i,a,r]);return{survey:u.survey,session:u.session,fetching:s,fetchError:o}}import{useState as Xe,useRef as gr,useEffect as yr,useMemo as le,useCallback as Sr}from"react";import{useCallback as is}from"react";import{useMutation as os}from"@tanstack/react-query";function un(e){S.debug("Resolved raw inputs to submit schema:",{resolved:e})}function pn(e){S.debug("Constructed JSON request body:",{body:e})}function cn(e){S.error("Failed to execute submit callback",{err:e})}var Se="https://custom-p0.feedbook.me/api/feedback/survey";var ln=`${Se}/responseV2`;function je(e,t="en",r=!0){let n=new URLSearchParams({instanceId:e,surveySubmitted:r?"true":"false",surveyLanguage:t});return`${ln}?${n.toString()}`}function Yo(e){return typeof e=="object"&&e!==null&&typeof e.id=="string"&&typeof e.x=="number"&&typeof e.y=="number"}function z(e){if(typeof e=="string")try{return z(JSON.parse(e))}catch{return[]}if(!Array.isArray(e))return[];let t=[];for(let r of e)Yo(r)&&t.push({id:r.id,x:Math.min(1,Math.max(0,r.x)),y:Math.min(1,Math.max(0,r.y))});return t}function jo(e,t){let r=t.x+t.width,n=t.y+t.height;return e.x>=t.x&&e.x<=r&&e.y>=t.y&&e.y<=n}function Ke(e,t){let r=[];for(let n of t)for(let i of e)if(jo(i,n)){r.includes(n.label)||r.push(n.label);break}return r}function Ko(e){return e.id==="na"?null:e.id}function $o(e,t){let r=Number(e.optionLabel);return Number.isFinite(r)&&e.optionLabel.trim()!==""?r:t}function Jo(e,t){let r=String(t),n=e.find(o=>o.id===t||o.id===r);if(!n)return r;let i=Number(n.label);return Number.isFinite(i)&&n.label.trim()!==""?String(i):n.label}function dn(e,t){let r=Array.isArray(t)?t.filter(n=>typeof n=="string"):typeof t=="string"?[t]:[];return r.length===0?null:r.map(n=>e.options.find(o=>o.id===n)?.optionLabel??String(n))}function mn(e,t){if(t==null)return null;let n=(Array.isArray(t)?t:[t]).filter(i=>i!=null).map(i=>Jo(e,i));return n.length>0?n:null}function fn(e,t){let r=e.find((n,i)=>$o(n,i)===t);if(r){let n=Number(r.optionLabel);return Number.isFinite(n)&&r.optionLabel.trim()!==""?String(n):r.optionLabel}return String(t)}function gn(e){return typeof e!="string"||e===""?null:[e]}function D(e){if(!e||typeof e!="object"||Array.isArray(e))return{};let t={};for(let[r,n]of Object.entries(e)){let i=typeof n=="number"?n:typeof n=="string"&&n.trim()!==""?Number(n):NaN;Number.isFinite(i)&&i>0&&(t[r]=i)}return t}function V(e,t){let r=e[t];return typeof r=="number"&&Number.isFinite(r)?r:void 0}function yn(e,t,r){if(t.length===0)return!0;let n=t.filter(i=>V(e,i)!==void 0).length;return r?n<t.length:n===0}function Sn(e,t){let r=new Set;for(let n of t){let i=V(e,n);if(i!==void 0){if(r.has(i))return!0;r.add(i)}}return!1}function Wo(e){let t={};return e.forEach((r,n)=>{t[r]=n+1}),t}function Nt(e,t){return[...t].filter(r=>V(e,r)!==void 0).sort((r,n)=>{let i=V(e,r)??Number.MAX_SAFE_INTEGER,o=V(e,n)??Number.MAX_SAFE_INTEGER;return i-o})}function Zo(e,t,r){let n={...e};if(r===void 0)return delete n[t],n;for(let[i,o]of Object.entries(n))i!==t&&o===r&&delete n[i];return n[t]=r,n}function es(e,t){return`${e}-:-${t}`}function vn(e,t){let r=D(t),n=e.options.map(s=>s.id),i=Nt(r,n);if(i.length===0)return null;let o={};for(let s of i){let a=r[s];a!==void 0&&(o[es(e.id,s)]=[String(a)])}return{orderedOptionIds:i,optionLevelAnswers:o}}function $e(e,t,r){if(r.length===0)return!0;let n=D(t),i=r.filter(o=>n[o]!==void 0).length;if(e.requireRankAll||e.required){if(i<r.length)return!1;let o=new Set;for(let s of r){let a=n[s];if(a===void 0||o.has(a))return!1;o.add(a)}return!0}return!e.required||i>0}function ts(e){return typeof e=="object"&&e!==null&&"id"in e&&"mediaUrl"in e}function rs(e){return e.scaleColumns}function xn(e,t,r,n){for(let[i,o]of Object.entries(r)){let s=n(o);s&&(e[`${t}_${i}`]=s)}}function Je(e,t){let r={},n={},i={};for(let o of t)o.type===l.FILE_UPLOAD&&(i[o.id]=[]);for(let o of t){let s=e[o.id];if(s!=null)switch(o.type){case l.TEXT_AND_MEDIA:break;case l.FILE_UPLOAD:{Array.isArray(s)&&s.every(ts)&&(i[o.id]=s);break}case l.CFM_MATRIX:case l.CSAT_MATRIX:case l.RATING_MATRIX:{if(typeof s=="object"&&!Array.isArray(s)){let a=s,u=o;xn(r,o.id,a,p=>mn(rs(u),p))}break}case l.SLIDER_MATRIX:{if(typeof s=="object"&&!Array.isArray(s)){let a=s;xn(r,o.id,a,u=>u==null?null:typeof u=="number"?[String(u)]:typeof u=="string"?[u]:null)}break}case l.MCQ:{let a=dn(o,s);a&&(r[o.id]=a);break}case l.NPS_SCALE:{if(typeof s=="number"){let a=o;r[o.id]=[fn(a.options,s)]}break}case l.TEXTFIELD:{let a=gn(s);a&&(r[o.id]=a);break}case l.HEATMAP:{let a=z(s);a.length>0&&(r[o.id]=[JSON.stringify(a)]);break}case l.RANK_ORDER:{let a=vn(o,s);a&&(r[o.id]=a.orderedOptionIds,Object.assign(n,a.optionLevelAnswers));break}}}return{questionToAnswers:r,quesIdVsAttachmentDetails:i,optionLevelAnswers:n}}function ns(e){return typeof e=="object"&&e!==null&&"instanceId"in e&&"answers"in e}function We(e,t,r){if(ns(e))return{...e,surveyLanguage:e.surveyLanguage??t?.language??"en",questions:e.questions??r?.pages.flatMap(n=>n.questions)??[]};if(!t?.instanceId)throw new Error("Survey session not ready. Fetch survey before submitting.");return{answers:e,instanceId:t.instanceId,surveyLanguage:t.language??"en",questions:r?.pages.flatMap(n=>n.questions)??[]}}function bn(e,t){S.info("Starting survey response HTTP POST...",{url:e,requestBody:t})}function An(e,t){S.warn(e,{err:t})}function Tn(e,t,r,n,i){S.perf({apiName:"POST Submit Response",durationMs:e,status:t,url:r,requestSize:n,responseSize:i,success:!0})}function _t(e,t,r,n){S.perf({apiName:"POST Submit Response",durationMs:e,status:t,url:r,requestSize:n,success:!1})}function En(e){S.success("Survey response submitted successfully",{responseId:e})}function hn(e,t){S.error(e,{err:t})}function In(e,t,r,n,i){w({eventName:"survey_submit_latency",metadata:{durationMs:e,status:t,success:!0,url:r,requestSize:n,responseSize:i}})}function Ft(e,t,r){w({eventName:"api_error",metadata:{apiName:"POST Submit Response",status:e,url:t,errorMessage:r}})}async function Ze({url:e,requestBody:t}){let r=performance.now(),i=`${(new Blob([JSON.stringify(t)]).size/1024).toFixed(2)} KB`;bn(e,t);try{let o=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),s=await o.json().catch(d=>(An("Failed to parse JSON response during submission",P(d)),null)),a=performance.now()-r,p=`${((s?new Blob([JSON.stringify(s)]).size:0)/1024).toFixed(2)} KB`;if(!o.ok)throw _t(a,o.status,e,i),Ft(o.status,e,`Submit failed (${o.status}): ${JSON.stringify(s)}`),new Error(`Submit failed (${o.status}): ${JSON.stringify(s)}`);let c=s?.responseId??"";return Tn(a,o.status,e,i,p),In(a,o.status,e,i,p),En(c),{success:!0,responseId:c}}catch(o){let s=performance.now()-r;_t(s,"FAILED",e,i);let a=Ye(o);throw Ft("FAILED",e,a),hn("Failed to submit survey response",P(o)),o}}function Rn(e,t){let r=os({mutationFn:({url:i,requestBody:o})=>Ze({url:i,requestBody:o})},me);return{submit:is(async i=>{try{let o=We(i,e,t);un(o);let s=o.surveyLanguage??"en",a=Je(o.answers,o.questions??[]);pn(a);let u=je(o.instanceId,s);return await r.mutateAsync({url:u,requestBody:a})}catch(o){throw cn(P(o)),o}},[e,t,r]),data:r.data??null,loading:r.isPending,error:r.error}}import{useMemo as Cs}from"react";function ss(e=[]){return new Map(e.map(t=>[t.id,t]))}function I(e,t=[],r={}){return{answers:e,questionsById:ss(t),customFieldValues:r}}function Qe(e){return e===l.CFM_MATRIX||e===l.CSAT_MATRIX||e===l.RATING_MATRIX||e===l.SLIDER_MATRIX}function Ne(e){return e===l.CFM_MATRIX||e===l.CSAT_MATRIX}function _e(e){return Qe(e.type)?e.statementRows??[]:[]}function Fe(e){return Ne(e.type)?e.scaleColumns??[]:[]}function Vt(e){return _e(e).some(t=>t.answerLogic!==void 0)}function as(e){return e.type===l.MCQ?e.options.some(t=>t.answerLogic!==void 0):e.type===l.RANK_ORDER?e.options.some(t=>t.answerLogic!==void 0):!1}function us(e){return Fe(e).some(t=>t.answerLogic!==void 0)}function Dt(e){return Vt(e)||as(e)||us(e)}var v={TEN_POINT_SCALE:"TEN_POINT_SCALE",SLIDER:"SLIDER",SELECTED_OPTIONS:"SELECTED_OPTIONS",NUM_OF_SELECTED_OPTIONS:"NUM_OF_SELECTED_OPTIONS",TEXT:"TEXT",CASE_SENSITIVE_TEXT:"CASE_SENSITIVE_TEXT",MATRIX_OPTIONS:"MATRIX_OPTIONS",FILE_UPLOAD:"FILE_UPLOAD",HEATMAP:"HEATMAP",HEATMAP_REGION:"HEATMAP_REGION",NUMBER:"NUMBER",SELECTED_DATETIME:"SELECTED_DATETIME",RANK_ORDER:"RANK_ORDER"};function et(e){return!e||e.type!==l.CSAT_MATRIX&&e.type!==l.CFM_MATRIX&&e.type!==l.RATING_MATRIX&&e.type!==l.SLIDER_MATRIX?!1:Array.isArray(e.statementRows)&&e.statementRows.length>0}function U(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ps(e){return Object.values(e).some(t=>t==null?!1:Array.isArray(t)?t.length>0:!0)}function Ln(e){return U(e)?!ps(e):!0}function ve(e){if(typeof e!="string"||!e.includes("_"))return null;let t=e.lastIndexOf("_"),r=e.slice(0,t),n=e.slice(t+1);return!r||!n?null:{rowId:r,suffix:n}}function Ut(e,t,r){r==null||r===""||e.add(`${t}_${r}`)}function Pn(e,t,r){r==null||r===""||Ut(e,t,r)}function tt(e,t,r){let n=r.questionsById.get(e),i=new Set;if(n?.type===l.SLIDER_MATRIX){for(let[o,s]of Object.entries(t))s!=null&&(Array.isArray(s)?s.forEach(a=>Ut(i,o,a)):Ut(i,o,s));return i}for(let[o,s]of Object.entries(t))if(s!=null){if(Array.isArray(s)){for(let a of s)Pn(i,o,a);continue}Pn(i,o,s)}return i}function cs(e){return typeof e=="string"&&e!==""}function xe(e){if(Array.isArray(e)){let t=[];for(let r of e)typeof r=="string"&&r!==""&&t.push(r);return t}return cs(e)?[e]:[]}function be(e){if(typeof e=="string")return e;if(e!=null)return String(e)}function ls(e){return typeof e=="object"&&e!==null}function Cn(e){if(!Array.isArray(e))return[];let t=[];for(let r of e)ls(r)&&t.push(r);return t}function Y(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()!==""){let t=Number(e);return Number.isFinite(t)?t:null}return null}function Ve(e,t,r,n){if(!e||!t)return;let i=r.answers[t],o=r.questionsById.get(t);switch(e){case v.TEN_POINT_SCALE:return Y(i);case v.SLIDER:return o?.type===l.SLIDER_MATRIX&&U(i)?i:void 0;case v.SELECTED_OPTIONS:return xe(i);case v.NUM_OF_SELECTED_OPTIONS:return xe(i).length;case v.TEXT:case v.CASE_SENSITIVE_TEXT:return be(i);case v.MATRIX_OPTIONS:return U(i)?tt(t,i,r):new Set;case v.FILE_UPLOAD:return Cn(i);case v.HEATMAP:return z(i);case v.HEATMAP_REGION:{let s=z(i);if(o?.type!==l.HEATMAP)return new Set;let a=o;return new Set(Ke(s,a.regions))}case v.RANK_ORDER:{if(!n)return;let s=D(i);return V(s,n)}default:return i}}function kn(e){return!!(e==null||e===""||Array.isArray(e)&&e.length===0||e instanceof Set&&e.size===0)}function ds(e){return e==null||e===""?!0:Array.isArray(e)?e.length===0:!1}function ms(e,t){return e==null||e===""?!0:Array.isArray(e)?!e.some(r=>String(r)===t):String(e)!==t}function fs(e,t,r,n){let i=r.answers[n];if(!U(i))return!0;let o=i[e];return t?ms(o,t):ds(o)}function qt(e,t,r,n){if(!e||!t)return!0;let i=r.questionsById.get(t);if(e===v.NUM_OF_SELECTED_OPTIONS){let o=Ve(e,t,r);return typeof o!="number"||o===0}if(i&&et(i)){let o=n?.[0];if(o!==void 0&&(e===v.MATRIX_OPTIONS||e===v.SLIDER)){let s=ve(o);if(s)return fs(s.rowId,s.suffix,r,t)}return Ln(r.answers[t])}if(e===v.HEATMAP||e===v.HEATMAP_REGION){if(!t)return!0;let o=z(r.answers[t]);if(e===v.HEATMAP)return o.length===0;let s=n?.[0];return s!==void 0&&i?.type===l.HEATMAP?!Ke(o,i.regions).includes(String(s)):o.length===0}if(e===v.RANK_ORDER&&i?.type===l.RANK_ORDER){let o=i,s=o.options.map(u=>u.id),a=D(r.answers[t]);return yn(a,s,o.requireRankAll)}return kn(Ve(e,t,r))}function gs(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){let t=e.trim();if(t==="")return null;let r=Number(t);if(Number.isFinite(r)&&/^\d+$/.test(t))return r;let n=Date.parse(t);return Number.isFinite(n)?n:null}return null}function wn(e,t){if(e==null||Array.isArray(e))return;let r=gs(e);return r===null?void 0:r}function Bt(e,t,r,n){let i=r.customFieldValues?.[t];if(i!=null)switch(e){case v.TEXT:case v.CASE_SENSITIVE_TEXT:return be(i);case v.NUMBER:return Y(i);case v.SELECTED_OPTIONS:return xe(i);case v.SELECTED_DATETIME:return wn(i,n?.details?.valueAdditional?.timezone);default:return i}}function On(e,t,r,n){let i=r.customFieldValues?.[t];if(i==null)return!0;if(e===v.NUMBER)return typeof i=="string"&&i.trim()==="";if(e===v.SELECTED_OPTIONS)return xe(i).length===0;if(e===v.SELECTED_DATETIME)return wn(i,n?.details?.valueAdditional?.timezone)===void 0;if(e===v.TEXT||e===v.CASE_SENSITIVE_TEXT)return be(i)===void 0||be(i)==="";let o=Bt(e,t,r,n);return!!(o==null||o===""||Array.isArray(o)&&o.length===0)}function Ht(e,t,r,n){return On(e,t,r,n)}var L={AND:"AND",OR:"OR",MISSING:"MISSING",EXISTS:"EXISTS",CONTAINS:"CONTAINS",DOES_NOT_CONTAIN:"DOES_NOT_CONTAIN",EQUALS:"EQUALS",NOT_EQUALS:"NOT_EQUALS",GT:"GT",GTE:"GTE",LT:"LT",LTE:"LTE",BEFORE:"BEFORE",AFTER:"AFTER"};var ys=new Set(["CFM_MATRIX","CSAT_MATRIX","RATING_MATRIX"]);function Mn(e){return e===L.EXISTS||e===L.MISSING}function Ss(e){return e===L.CONTAINS||e===L.DOES_NOT_CONTAIN}function vs(e){switch(e){case"MCQ":return v.SELECTED_OPTIONS;case"TEXTFIELD":return v.TEXT;case"NPS_SCALE":case"SCALE":return v.TEN_POINT_SCALE;case"CFM_MATRIX":case"CSAT_MATRIX":case"RATING_MATRIX":return v.MATRIX_OPTIONS;case"SLIDER_MATRIX":return v.SLIDER;case"FILE_UPLOAD":return v.FILE_UPLOAD;case"HEATMAP":return v.HEATMAP;case"RANK_ORDER":return v.RANK_ORDER;default:return}}function xs(e){return typeof e!="string"?!1:!e.includes("_")||e.startsWith("Region ")}function bs(e,t,r){if(!e||!r?.length)return;let n=r[0],i=ve(n);if(e==="HEATMAP"&&Ss(t)&&r.every(xs))return v.HEATMAP_REGION;if(e==="SLIDER_MATRIX"&&i)return v.SLIDER;if(ys.has(e)&&i)return v.MATRIX_OPTIONS}function Qn(e,t,r,n){if(e)return e;if(!t)return;let i=bs(t,r,n);if(i)return i;if(Mn(r))return vs(t)}function As(e){switch(e){case"TEXT":case"TEXT_MULTI":case"TEXTAREA":return v.TEXT;case"NUMBER":return v.NUMBER;case"PICKLIST":case"PICKLIST_MULTISELECT":return v.SELECTED_OPTIONS;case"DATETIME":return v.SELECTED_DATETIME;default:return}}function Nn(e,t,r){if(e)return e;if(t&&Mn(r))return As(t)}function Ts(e,t,r){switch(r){case L.GT:return e>t;case L.GTE:return e>=t;case L.LT:return e<t;case L.LTE:return e<=t;case L.EQUALS:return e===t;case L.NOT_EQUALS:return e!==t;default:return!1}}function _n(e,t,r,n,i){if(!e||!t)return null;let o=ve(n);if(!o)return null;let s=r.answers[t];if(!U(s))return!1;if(e===v.MATRIX_OPTIONS){let u=tt(t,s,r).has(String(n));return i===L.EQUALS?u:i===L.NOT_EQUALS?!u:!1}if(e===v.SLIDER){let a=s[o.rowId];if(a==null)return!1;let u=Array.isArray(a)?Y(a[0]):Y(a),p=Y(o.suffix);return u!==null&&p!==null?Ts(u,p,i):i===L.EQUALS?String(a)===o.suffix:i===L.NOT_EQUALS?String(a)!==o.suffix:!1}return!1}function rt(e,t,r){let n=i=>e instanceof Set?e.has(String(i)):Array.isArray(e)?e.some(o=>o===i||String(o)===String(i)):e===i||String(e)===String(i);return r?t.every(n):t.some(n)}function Un(e,t,r){let n=Y(e);if(n===null)return!1;let i=Y(t[0]);if(i===null)return!1;switch(r){case L.GT:return n>i;case L.GTE:return n>=i;case L.LT:return n<i;case L.LTE:return n<=i;case L.EQUALS:return n===i;case L.NOT_EQUALS:return n!==i;default:return!1}}function Fn(e,t){return t.length===0?!1:Un(e,t,L.EQUALS)||e===t[0]||String(e)===String(t[0])}function Vn(e,t,r){if(typeof e!="string"||t.length===0)return!1;let n=String(t[0]);return r?e===n:e.toLowerCase()===n.toLowerCase()}function Dn(e,t,r){if(typeof e!="string"||t.length===0)return!1;let n=String(t[0]);return r?e!==n:e.toLowerCase()!==n.toLowerCase()}function nt(e,t,r){return typeof e!="string"?!1:t.some(n=>{let i=String(n);return r?e.includes(i):e.toLowerCase().includes(i.toLowerCase())})}function Xt(e,t,r,n,i){return n.length?_n(e,t,r,n[0],i):null}function Gt(e,t,r){return!(!e||!t||!(e===v.SLIDER||e===v.MATRIX_OPTIONS)||!et(r.questionsById.get(t)))}function zt(e,t,r,n,i,o,s){switch(e){case L.CONTAINS:return n===v.TEXT?nt(t,r,!1):n===v.CASE_SENSITIVE_TEXT?nt(t,r,!0):n===v.HEATMAP_REGION?rt(t,r,!1):rt(t,r,n===v.SELECTED_OPTIONS);case L.DOES_NOT_CONTAIN:return n===v.TEXT?!nt(t,r,!1):n===v.CASE_SENSITIVE_TEXT?!nt(t,r,!0):n===v.HEATMAP_REGION?!rt(t,r,!1):!rt(t,r,n===v.SELECTED_OPTIONS);case L.EQUALS:{if(Gt(n,i,o)){let a=Xt(n,i,o,r,L.EQUALS);if(a!==null)return a}return n===v.TEXT?Vn(t,r,!1):n===v.CASE_SENSITIVE_TEXT?Vn(t,r,!0):Fn(t,r)}case L.NOT_EQUALS:{if(Gt(n,i,o)){let a=Xt(n,i,o,r,L.NOT_EQUALS);if(a!==null)return a}return n===v.TEXT?Dn(t,r,!1):n===v.CASE_SENSITIVE_TEXT?Dn(t,r,!0):!Fn(t,r)}case L.GT:case L.GTE:case L.LT:case L.LTE:return Gt(n,i,o)&&U(t)?Xt(n,i,o,r,e)??!1:Un(t,r,e);case L.BEFORE:case L.AFTER:{if(n!==v.RANK_ORDER||!i||!s||r.length===0)return!1;let a=D(o.answers[i]),u=V(a,s),p=V(a,String(r[0]));return u===void 0||p===void 0?!1:e===L.BEFORE?u<p:u>p}default:return!1}}function qn(e,t){let r=e.details?.conditionEntity,n=r?.entityType,i=r?.id,o=e.filterType,s=e.values??[],a=e.field;if(!n||!i)return!1;let u=n==="CUSTOM_FIELD"?Nn(a,r.entityType==="CUSTOM_FIELD"?r.fieldType:void 0,o):Qn(a,r.entityType==="QUESTION"?r.answerType:void 0,o,s);if(n==="CUSTOM_FIELD"){if(o==="MISSING")return Ht(u,i,t,e);if(o==="EXISTS")return!Ht(u,i,t,e);let d=Bt(u,i,t,e);return zt(o,d,s,u,void 0,t)}let p=n==="QUESTION"?i:void 0;if(o==="MISSING")return qt(u,p,t,s);if(o==="EXISTS")return!qt(u,p,t,s);let c=p?Ve(u,p,t,e.details?.subConditionEntity?.id):void 0;return zt(o,c,s,u,p,t,e.details?.subConditionEntity?.id)}function Es(e){return"filters"in e&&Array.isArray(e.filters)}function ne(e,t){return Es(e)?e.filterType==="AND"?e.filters.every(r=>ne(r,t)):e.filterType==="OR"?e.filters.some(r=>ne(r,t)):!1:qn(e,t)}function Bn(e,t){return e?ne(e.condition,t):!0}function $(e,t){return Bn(e,t)}function Hn(e,t){return $(e.answerLogic,t)}function q(e,t){let r=_e(e);return r.length===0?[]:r.filter(n=>Hn(n,t))}function j(e,t){return e.type!==l.MCQ?[]:e.options.filter(n=>$(n.answerLogic,t))}function X(e,t){return e.type!==l.RANK_ORDER?[]:e.options.filter(n=>$(n.answerLogic,t))}function J(e,t){let r=Fe(e);return r.length===0?[]:r.filter(n=>$(n.answerLogic,t))}function ie(e,t){return e?ne(e.condition,t):!0}function W(e,t){return e.type===l.MCQ?j(e,t).length>0:e.type===l.RANK_ORDER?X(e,t).length>0:Qe(e.type)?q(e,t).length===0?!1:Ne(e.type)?J(e,t).length>0:!0:!0}function pe(e,t){return!(e.displayLogic&&!ie(e.displayLogic,t)||Vt(e)&&q(e,t).length===0||Dt(e)&&!W(e,t))}function G(e,t){return e.filter(r=>pe(r,t))}function O(e,t){return e.length===0?!1:G(e,t).length>0}function Xn(e,t,r,n={}){let i=I(t,r,n);return q(e,i)}function Gn(e,t,r,n={}){let i=I(t,r,n);return j(e,i)}function zn(e,t,r,n={}){let i=I(t,r,n);return X(e,i)}function Yn(e,t,r,n={}){let i=I(t,r,n);return J(e,i)}function jn(e,t,r,n={}){let i=I(t,r,n);return{statementRows:q(e,i),scaleColumns:J(e,i)}}function Kn(e){return e.type===l.TEXT_AND_MEDIA}function hs(e){return e===l.CFM_MATRIX||e===l.CSAT_MATRIX||e===l.RATING_MATRIX||e===l.SLIDER_MATRIX}function Is(e,t){return e.every(r=>{let n=t[r.id];return n!==void 0&&n!==""})}function $n(e,t){return e.selectionMode==="multiple"?Array.isArray(t)?t.length:0:t!=null&&t!==""?1:0}function Jn(e){return e.minSelections!==void 0||e.maxSelections!==void 0}function Wn(e,t){return!(e.minSelections!==void 0&&t<e.minSelections||e.maxSelections!==void 0&&t>e.maxSelections)}function De(e,t,r,n={}){if(Kn(e))return!0;let i=t[e.id];if(e.type===l.MCQ){let o=e;if(r){let a=I(t,r,n);if(!W(o,a))return!0}let s=$n(o,i);return Jn(o)?Wn(o,s)&&s>0:o.selectionMode==="multiple"?s>0:i!=null&&i!==""}if(e.type===l.RANK_ORDER){let o=e;if(r){let a=I(t,r,n);if(!W(o,a))return!0;let u=X(o,a).map(p=>p.id);return $e(o,i,u)}let s=o.options.map(a=>a.id);return $e(o,i,s)}if(hs(e.type)){if(typeof i!="object"||Array.isArray(i))return!1;let o=e,s=o.statementRows;if(r){let a=I(t,r,n);s=q(o,a)}return s.length===0?!0:Is(s,i)}return e.type===l.HEATMAP?z(i).length>0:i!==void 0&&i!==""}function Ue(e,t,r,n,i={}){let o={},s=r?.startsWith("de")?"Beantworten Sie bitte diese Frage bevor Sie fortfahren.":"Please answer this question before you proceed.";return e.forEach(a=>{if(!Kn(a)){if(a.type===l.MCQ){let u=a,p=n?I(t,n,i):void 0;if(p&&!W(u,p))return;let c=p?j(u,p):u.options,d=new Set(c.map(x=>x.id)),y=t[a.id],g=$n(u,y);p&&u.selectionMode==="multiple"&&Array.isArray(y)?g=y.filter(x=>typeof x=="string"&&d.has(x)).length:p&&u.selectionMode==="single"&&typeof y=="string"&&(g=d.has(y)?1:0);let b=u.answerConditionErrorMessage??u.requiredErrorMessage??s;if(Jn(u)&&!Wn(u,g)){o[a.id]=b;return}if(a.required&&c.length>0&&g===0){o[a.id]=a.requiredErrorMessage??s;return}return}if(a.type===l.RANK_ORDER){let u=a,p=n?I(t,n,i):void 0;if(p&&!W(u,p))return;let d=(p?X(u,p):u.options).map(y=>y.id);a.required&&d.length>0&&!$e(u,t[a.id],d)&&(o[a.id]=a.requiredErrorMessage??s);return}a.required&&!De(a,t,n,i)&&(o[a.id]=a.requiredErrorMessage??s)}}),o}function Zn(e,t){return t<=0?0:Math.min(100,Math.max(0,Math.round(e/t*100)))}function ei(e,t){return e.findIndex(r=>r.questions.some(n=>n.id===t))}function qe(e,t,r,n){S.info("Skip logic matched",{questionId:e,skipLogicId:t,targetType:r,fromPageIndex:n})}function ti(e,t,r){S.info("Display logic matched",{questionId:e,pageIndex:t,triggerQuestionId:r})}function ri(e,t,r,n,i){S.info("Answer logic matched",{questionId:e,entityType:t,entityId:r,pageIndex:n,triggerQuestionId:i})}function ni(e,t,r,n){S.info("Question variant matched",{questionId:e,variantId:t,variantText:r,triggerQuestionId:n})}function ii(e,t,r,n){S.info("End page logic matched",{endPageId:e,matchType:t,previousEndPageId:r,triggerQuestionId:n})}function it(e,t,r){if(t.type==="END_OF_SURVEY"){qe(e,t.skipLogicId,"END_OF_SURVEY",r);return}qe(e,t.skipLogicId,"QUESTION",r)}function Yt(e,t,r){S.warn("Skip logic rejected",{questionId:e,skipLogicId:t,reason:r})}function Rs(e,t,r,n,i,o){if(!e?.length)return null;let s=o?.silent??!1;for(let a of e)if(ne(a.condition,t)){if(a.skipTo.entityType==="END_OF_SURVEY")return s||qe(i,a.id,"END_OF_SURVEY",n),{type:"END_OF_SURVEY",skipLogicId:a.id};if(a.skipTo.entityType==="QUESTION"){let u=ei(r,a.skipTo.id);if(u===-1){s||Yt(i,a.id,"target_not_found");continue}if(u<n){s||Yt(i,a.id,"backward_target");continue}return s||qe(i,a.id,"QUESTION",n),{type:"QUESTION",questionId:a.skipTo.id,pageIndex:u,skipLogicId:a.id}}}return null}function Z(e,t,r,n,i){return Rs(e.skipLogics,t,r,n,e.id,i)}function Ls(e,t){let r=t;for(;r<e.length&&e[r].questions.length===0;)r+=1;return r}function jt(e,t){return Ls(e,t+1)}function ee(e,t,r){let n=jt(e,t);for(;n<e.length;){let o=e[n]?.questions??[];if(O(o,r))return n;n=jt(e,n)}return n}function Ae(e,t){for(let r=e.length-1;r>=0;r-=1){let n=e[r]?.questions??[];if(n.length>0&&O(n,t))return r}return-1}function ot(e,t,r){let n=e[t]?.questions??[];return O(n,r)?t:ee(e,t,r)}function Q(e,t,r,n={}){if(e.length===0)return[];let i=I(t,r,n),o=[],s=0;for(;s<e.length;){let u=e[s]?.questions??[];if(!O(u,i)){let d=ee(e,s,i);if(d>=e.length)break;s=d;continue}o.push(s);let p=u[u.length-1];if(p?.skipLogics?.length){let d=Z(p,i,e,s,{silent:!0});if(d?.type==="END_OF_SURVEY")break;if(d?.type==="QUESTION"){if(d.pageIndex<=s)break;let y=ot(e,d.pageIndex,i);if(y>=e.length)break;s=y;continue}}let c=ee(e,s,i);if(c>=e.length)break;s=c}return o}function st(e,t,r,n,i={}){let o=I(r,n,i),s=new Set;return t.forEach(a=>{at(e[a],o).forEach(u=>s.add(u))}),s}function oi(e,t,r,n,i={}){return st(e,t,r,n,i).size}function si(e,t){let r=0;return e.forEach(n=>{t.has(n)&&(r+=1)}),r}function Kt(e,t){return e.length!==t.length?!1:e.every((r,n)=>r===t[n])}function $t(e,t,r,n,i={}){let o=Q(t,r,n,i),s=st(t,o,r,n,i),a=!1;return e.earnedQuestionIds.forEach(u=>{s.has(u)||(e.earnedQuestionIds.delete(u),a=!0)}),a}function Ps(e){return e.type===l.TEXT_AND_MEDIA}function pt(e,t){let r=(e.questions??[]).filter(n=>!Ps(n));return t?G(r,t):r}function at(e,t){return pt(e,t).map(r=>r.id)}function ut(e,t){e.earnedQuestionIds.add(t)}function Jt(e,t,r,n,i={}){if(!t)return;let o=n?I(r,n,i):void 0;pt(t,o).forEach(s=>{if(!s.required){ut(e,s.id);return}De(s,r,n,i)&&ut(e,s.id)})}function ai(e,t,r,n,i={}){let o=Q(e,t,r,i),s=st(e,o,t,r,i),a=oi(e,o,t,r,i),u=si(n,s),p=Zn(u,a),c=a>0&&u>=a;return{totalQuestionsCount:a,answeredQuestionsCount:u,progressPercentage:p,isComplete:c}}function ui({pages:e=[],values:t,allQuestions:r=[],earnedQuestionIds:n,progressRevision:i=0,customFieldValues:o={}}){return Cs(()=>ai(e,t??{},r,n??new Set,o),[e,t,r,n,i,o])}import{useEffect as ks}from"react";function Wt(e){let{currentPageIndex:t,paginationRefs:r}=e;ks(()=>{r.current&&(r.current.pageStartTime=performance.now())},[t,r])}import{useEffect as ws}from"react";function Zt(e){let{currentPageIndex:t,paginationRefs:r}=e;ws(()=>{r.current&&t>r.current.maxVisitedPageIndex&&(r.current.maxVisitedPageIndex=t)},[t,r])}import{useCallback as Qs}from"react";function pi(e,t){S.info(`Answer changed for question: ${e}`,{value:t})}function ce(e,t){S.warn(e,{err:t})}function ci(){S.info("Initiating survey submission...")}function er(e){S.info(`Navigating back from page index: ${e}`)}function li(e){S.info(`Navigating next from page index: ${e}`)}function di(e){S.error("Error encountered during pagination submit trigger",{err:e})}function Be(e){return typeof document>"u"?null:document.getElementById(e)||null}function Os(e){return e.closest("main")||e.closest("form")||e.parentElement||e}function ct(e,t){try{let n=e[t]?.questions?.[0];n?setTimeout(()=>{try{let i=Be(n.id);i?Os(i).scrollIntoView({behavior:"smooth",block:"start"}):window.scrollTo({top:0,behavior:"smooth"})}catch(i){ce("Failed to scroll page first question into view",P(i))}},50):window.scrollTo({top:0,behavior:"smooth"})}catch(r){ce("Failed to trigger scroll navigation",P(r))}}function tr(e,t,r){let n=t-1;for(;n>=0;){for(;n>=0&&(e[n]?.questions??[]).length===0;)n-=1;if(n<0)return 0;let i=e[n]?.questions??[];if(O(i,r))return n;n-=1}return 0}function Te(e,t,r){let n=e.pageHistory,i=n.lastIndexOf(t);e.pageHistory=i>=0?[...n.slice(0,i+1),r]:[...n,t,r]}function mi(e){return e.pageHistory.length<=1?null:(e.pageHistory=e.pageHistory.slice(0,-1),e.pageHistory.at(-1)??null)}function fi(e,t){let r=e.pageHistory.lastIndexOf(t);if(r>=0){e.pageHistory=e.pageHistory.slice(0,r+1);return}e.pageHistory=[t]}function Ms(e,t,r){let n=t;for(;n>0;){let i=e[n]?.questions??[];if(O(i,r))return n;n=tr(e,n,r)}return 0}function gi(e,t,r,n){if(e.pageHistory.length>1){let i=mi(e);if(i===null)return null;let o=Ms(t,i,n);return fi(e,o),o}if(r>0){let i=tr(t,r,n);return i>=r?null:(fi(e,i),i)}return null}function rr(e){let{currentPageIndex:t,setCurrentPageIndex:r,setPhase:n,trackPageTime:i,pages:o,values:s,paginationRefs:a,survey:u,bumpProgressRevision:p,customFieldValues:c}=e;return Qs(()=>{let d=a.current;if(!d||!u)return;let y=o.flatMap(x=>x.questions),g=I(s,y,c),b=gi(d,o,t,g);if(b!==null){er(t),i(t),d.backtrackCount+=1;for(let T=b+1;T<o.length;T+=1)d.skippedPageIndices.delete(T),d.visitedPageIndices.delete(T);d.maxVisitedPageIndex=Math.min(d.maxVisitedPageIndex,b);let x={};for(let T of o[b]?.questions??[])x[T.id]=s[T.id];d.backtrackSnapshots[b]={fromPageIndex:t,snapshot:x},r(b),n({kind:"content",pageIndex:b}),p(),ct(o,b);return}t===0&&u?.introPage&&(er(t),i(t),n({kind:"intro"}),p())},[t,r,n,i,o,s,a,u,p,c])}import{useCallback as Gs}from"react";function Ns(e,t){return e==null||e===""?!1:Array.isArray(e)?e.some(r=>!t.has(String(r))):!t.has(String(e))}function _s(e,t){let r={...e},n=!1;return Object.entries(r).forEach(([i,o])=>{if(o!=null){if(Array.isArray(o)){let s=o.filter(a=>t.has(String(a)));s.length!==o.length&&(s.length===0?delete r[i]:r[i]=s,n=!0);return}t.has(String(o))||(delete r[i],n=!0)}}),n?Object.keys(r).length>0?r:void 0:e}function Fs(e,t,r,n,i){let o={...e};if(n&&Object.keys(o).forEach(s=>{t.has(s)||delete o[s]}),i&&Object.keys(o).length>0&&Object.entries(o).forEach(([s,a])=>{if(Ns(a,r))if(Array.isArray(a)){let u=a.filter(p=>p!==null&&r.has(String(p)));u.length===0?delete o[s]:o[s]=u}else delete o[s]}),Object.keys(o).length!==0)return i?_s(o,r):o}function yi(e,t,r){if(!U(t))return t;let n=q(e,r),i=e.statementRows??[],o=e.type===l.CSAT_MATRIX||e.type===l.CFM_MATRIX?J(e,r):[],s=e.scaleColumns??[],a=i.length>0&&n.length!==i.length,u=s.length>0&&o.length!==s.length;return!a&&!u?t:Fs(t,new Set(n.map(p=>p.id)),new Set(o.map(p=>p.id)),a,u)}function Vs(e,t,r){if(t!==void 0){if(e.selectionMode==="multiple"){if(!Array.isArray(t))return t;let n=t.filter(i=>typeof i=="string"&&r.has(i));return n.length>0?n:void 0}if(!(typeof t=="string"&&!r.has(t)))return t}}function Si(e,t,r){let n=j(e,r);return e.options.length===0||n.length===e.options.length?t:Vs(e,t,new Set(n.map(i=>i.id)))}function vi(e,t,r){let n=X(e,r),i=new Set(n.map(a=>a.id));if(i.size===0)return;let o=D(t),s={};for(let a of i){let u=V(o,a);u!==void 0&&(s[a]=u)}if(Object.keys(s).length!==0){if(Sn(s,[...i])){let a=new Set,u={};for(let p of n){let c=V(s,p.id);c===void 0||a.has(c)||(a.add(c),u[p.id]=c)}return Object.keys(u).length>0?u:void 0}return s}}function Ds(e,t,r){if(r===void 0){let{[t]:n,...i}=e;return i}return{...e,[t]:r}}function Us(e,t,r){if(!(!pe(e,r)||!W(e,r)))return e.type===l.MCQ?Si(e,t,r):e.type===l.RANK_ORDER?vi(e,t,r):Qe(e.type)?yi(e,t,r):t}function xi(e,t,r,n={}){let i=I(t,r,n),o={...t},s=!1;for(let a of e)for(let u of a.questions){let p=Us(u,o[u.id],i);p!==o[u.id]&&(o=Ds(o,u.id,p),s=!0)}return s?o:t}function bi(e,t,r,n){if(n<=r)return t;let i=new Set;for(let s=r+1;s<n;s+=1)e[s]?.questions.forEach(a=>i.add(a.id));if(i.size===0)return t;let o={...t};return i.forEach(s=>{delete o[s]}),o}function Ee(e,t,r){let n=new Set;for(let o=r+1;o<e.length;o+=1)e[o]?.questions.forEach(s=>n.add(s.id));if(n.size===0)return t;let i={...t};return n.forEach(o=>{delete i[o]}),i}function he(e,t){let r=e?.endPages.filter(i=>!i.disabled)??[];if(r.length===0)return{endPageId:void 0,matchType:"fallback"};for(let i of r)if(i.displayLogic&&ie(i.displayLogic,t))return{endPageId:i.id,matchType:"conditional"};let n=r.find(i=>!i.displayLogic);return n?{endPageId:n.id,matchType:"default"}:{endPageId:r[0]?.id,matchType:"fallback"}}function Ai(e,t){return he(e,t).endPageId}function qs(e,t){switch(e){case"display_logic_matched":return`display: ${t.questionId} (page ${t.pageIndex})`;case"answer_logic_matched":return`answer: ${t.questionId} ${t.entityType} ${t.entityId}`;case"question_variant_matched":return`variant: ${t.questionId} \u2192 ${t.variantId}`;case"end_page_logic_matched":return`end page: ${t.endPageId} (${t.matchType})`;case"question_viewed":return`viewed: ${t.questionId}`;case"skip_logic_triggered":return`skip: ${t.questionId} \u2192 ${t.targetId}`;default:return e}}function Bs(e,t){switch(t){case"display_logic_matched":e.logicMatchCounts.display+=1;break;case"answer_logic_matched":e.logicMatchCounts.answer+=1;break;case"question_variant_matched":e.logicMatchCounts.variant+=1;break;case"end_page_logic_matched":e.logicMatchCounts.endPage+=1;break;case"question_viewed":e.logicMatchCounts.viewed+=1;break;case"skip_logic_triggered":e.logicMatchCounts.skip+=1;break;default:break}}function Ti(e,t,r){if(!e)return;let n=typeof r.timestampMs=="number"?r.timestampMs:performance.now(),i={eventName:t,timestampMs:n,metadata:{...r,timestampMs:n}};e.logicEventHistory.push(i),Bs(e,t)}function He(e,t){Ti(e,t.eventName,t.metadata),w(t)}function Ei(e,t){let r=performance.now();He(e,{eventName:"display_logic_matched",metadata:{...t,logicKind:"display",timestampMs:r}})}function hi(e,t){let r=performance.now();He(e,{eventName:"answer_logic_matched",metadata:{...t,logicKind:"answer",timestampMs:r}})}function Ii(e,t){let r=performance.now();He(e,{eventName:"question_variant_matched",metadata:{...t,logicKind:"variant",timestampMs:r}})}function Ri(e,t){let r=performance.now();He(e,{eventName:"end_page_logic_matched",metadata:{...t,logicKind:"end_page",timestampMs:r}})}function Li(e,t){let r=performance.now();He(e,{eventName:"question_viewed",metadata:{...t,timestampMs:r}})}function Pi(e,t){let r=performance.now();Ti(e,"skip_logic_triggered",{...t,timestampMs:r}),w({eventName:"skip_logic_triggered",metadata:{questionId:t.questionId,skipLogicId:t.skipLogicId,targetType:t.targetType,targetId:t.targetId,fromPageIndex:t.fromPageIndex}})}function Ci(e,t,r,n,i,o,s){let a=Q(r,i,n,o),u=I(i,n,o),p=new Set;for(let m of a){let R=r[m];if(R)for(let k of at(R,u))p.add(k)}let c=e.logicEventHistory.filter(m=>m.eventName==="question_viewed").map(m=>String(m.metadata.questionId??"")).filter(Boolean),d=new Set(c),y=[...p].filter(m=>!d.has(m)).length,g=e.logicEventHistory.filter(m=>m.eventName==="display_logic_matched").map(m=>({questionId:String(m.metadata.questionId??""),pageIndex:Number(m.metadata.pageIndex??0)})),b=e.logicEventHistory.filter(m=>m.eventName==="answer_logic_matched").map(m=>({questionId:String(m.metadata.questionId??""),entityType:m.metadata.entityType,entityId:String(m.metadata.entityId??""),pageIndex:Number(m.metadata.pageIndex??0)})),x=e.logicEventHistory.filter(m=>m.eventName==="question_variant_matched").map(m=>({questionId:String(m.metadata.questionId??""),variantId:String(m.metadata.variantId??"")})),T=e.logicEventHistory.filter(m=>m.eventName==="skip_logic_triggered").map(m=>({questionId:String(m.metadata.questionId??""),skipLogicId:String(m.metadata.skipLogicId??""),targetType:m.metadata.targetType,targetId:String(m.metadata.targetId??""),fromPageIndex:Number(m.metadata.fromPageIndex??0)})),A=he(t,u),f=e.logicEventHistory.map(m=>({timestampMs:m.timestampMs,eventName:m.eventName,summary:qs(m.eventName,m.metadata)}));w({eventName:"logic_session_summary",metadata:{displayLogicMatches:g,answerLogicMatches:b,variantMatches:x,endPageResolution:{finalEndPageId:s,matchType:s?A.matchType:"fallback",changeCount:e.endPageChangeCount},skipLogicTriggers:T,viewedQuestionIds:c,viewedCount:d.size,notViewedOnPathCount:y,logicEventTimeline:f}})}function ki(e,t){return e.findIndex(r=>r.questions.some(n=>n.id===t))}function Hs(e,t){let r=[];for(let n of t){let i=e[n];i&&r.push(...i.questions)}return r}function wi(e,t){let r=new Set;if(e.type===l.MCQ){let n=e;for(let i of n.options)i.answerLogic&&$(i.answerLogic,t)&&r.add(`${e.id}:option:${i.id}`);return r}for(let n of _e(e))n.answerLogic&&$(n.answerLogic,t)&&r.add(`${e.id}:row:${n.id}`);if(Ne(e.type))for(let n of Fe(e))n.answerLogic&&$(n.answerLogic,t)&&r.add(`${e.id}:column:${n.id}`);return r}function Oi(e,t){let r=e.displayVariants;if(!r?.length)return null;for(let n of r)if(n.displayLogic&&ie(n.displayLogic,t))return{variantId:n.id,variantText:n.questionText};return null}function Xs(e){let t=e.split(":");if(t.length!==3)return null;let[r,n,i]=t;return n!=="option"&&n!=="row"&&n!=="column"?null:{questionId:r,entityType:n,entityId:i}}function Mi(e){let{survey:t,pages:r,allQuestions:n,previousValues:i,nextValues:o,customFieldValues:s,previousContext:a,nextContext:u,refs:p,triggerQuestionId:c}=e,d=Q(r,i,n,s),y=Q(r,o,n,s),g=[...new Set([...d,...y])].sort((A,f)=>A-f),b=Hs(r,g);for(let A of b){if(!A.displayLogic)continue;let f=pe(A,a),m=pe(A,u);if(f||!m)continue;let R=ki(r,A.id);ti(A.id,R,c),Ei(p,{questionId:A.id,pageIndex:R,triggerQuestionId:c})}for(let A of b){let f=wi(A,a),m=wi(A,u),R=ki(r,A.id);for(let k of m){if(f.has(k))continue;let h=Xs(k);h&&(ri(h.questionId,h.entityType,h.entityId,R,c),hi(p,{questionId:h.questionId,entityType:h.entityType,entityId:h.entityId,pageIndex:R,triggerQuestionId:c}))}}for(let A of b){if(!A.displayVariants?.length)continue;let f=Oi(A,a),m=Oi(A,u),R=f?.variantId??"base",k=m?.variantId??"base";p.lastResolvedVariantByQuestionId.set(A.id,k),!(k===R||!m)&&(ni(A.id,m.variantId,m.variantText,c),Ii(p,{questionId:A.id,variantId:m.variantId,variantText:m.variantText,triggerQuestionId:c}))}let x=he(t,a),T=he(t,u);T.endPageId&&T.endPageId!==p.lastResolvedEndPageId&&(p.endPageChangeCount+=1,p.lastResolvedEndPageId=T.endPageId,ii(T.endPageId,T.matchType,x.endPageId,c),Ri(p,{endPageId:T.endPageId,matchType:T.matchType,previousEndPageId:x.endPageId,triggerQuestionId:c}))}function zs(e,t,r,n){let{survey:i,pages:o,paginationRefs:s,customFieldValues:a}=e,u=s.current;if(!u||!i)return;let p=i.pages.flatMap(y=>y.questions),c=I(r,p,a),d=I(n,p,a);Mi({survey:i,pages:o,allQuestions:p,previousValues:r,nextValues:n,customFieldValues:a,previousContext:c,nextContext:d,refs:u,triggerQuestionId:t})}function nr(e){let{values:t,setValues:r,setValidationErrors:n,paginationRefs:i,bumpProgressRevision:o,pages:s,survey:a,currentPageIndex:u,customFieldValues:p}=e;return Gs((c,d)=>{pi(c,d);let y={...t,[c]:d},g=i.current,b=a?.pages.flatMap(m=>m.questions)??[],x=s.flatMap(m=>m.questions).find(m=>m.id===c),T=!1,A=m=>{zs(e,c,t,m)};if(!g||!a){r(y),n(m=>({...m,[c]:""}));return}let f=Q(s,t,b,p);if(x?.required&&De(x,y,b,p)&&(ut(g,c),T=!0),x?.skipLogics?.length){let m=Z(x,I(t,b,p),s,u,{silent:!0}),R=Z(x,I(y,b,p),s,u,{silent:!0});R&&!m&&(it(x.id,R,u),g.lastLoggedOriginSkipKey=`${u}:${R.skipLogicId}`,Pi(g,{questionId:x.id,skipLogicId:R.skipLogicId,targetType:R.type==="END_OF_SURVEY"?"END_OF_SURVEY":"QUESTION",targetId:R.type==="END_OF_SURVEY"?"END_OF_SURVEY":R.questionId,fromPageIndex:u,triggerQuestionId:c}));let k=Q(s,y,b,p),h=!Kt(f,k);if($t(g,s,y,b,p),h){for(let E=u+1;E<s.length;E+=1)g.skippedPageIndices.delete(E),g.visitedPageIndices.delete(E);let C=Ee(s,y,u);A(C),r(C),o(),n(E=>({...E,[c]:""}));return}}else{let m=xi(s,y,b,p),R=Q(s,m,b,p),k=!Kt(f,R),h=$t(g,s,m,b,p);if(k){for(let E=u+1;E<s.length;E+=1)g.skippedPageIndices.delete(E),g.visitedPageIndices.delete(E);let C=Ee(s,m,u);A(C),r(C),o(),n(E=>({...E,[c]:""}));return}if(m!==y){A(m),r(m),h&&(T=!0),n(C=>({...C,[c]:""})),T&&o();return}h&&(T=!0)}A(y),r(y),T&&o(),n(m=>({...m,[c]:""}))},[t,r,n,i,o,s,a,u,p,e])}import{useCallback as Ws}from"react";function Qi({context:e,onSubmit:t,currentPageIndex:r,rawCurrentQuestions:n}){let{survey:i,pages:o,values:s,paginationRefs:a,customFieldValues:u}=e,p=o[r],c=a.current;if(!i||!p||!c)return null;c.visitedPageIndices.add(r);let d=i.pages.flatMap(b=>b.questions),y=I(s,d,u),g=G(n,y);return{survey:i,pages:o,currentPage:p,currentPageIndex:r,values:s,allQuestions:d,logicContext:y,currentQuestions:g,refs:c,setValues:e.setValues,setCurrentPageIndex:e.setCurrentPageIndex,setPhase:e.setPhase,setValidationErrors:e.setValidationErrors,trackPageTime:e.trackPageTime,trackOptionalSkips:e.trackOptionalSkips,checkBacktrackChanges:e.checkBacktrackChanges,bumpProgressRevision:e.bumpProgressRevision,onSubmit:t}}function ir(e){w({eventName:"skip_logic_triggered",metadata:e})}function Ie(e){w({eventName:"page_skipped",metadata:e})}function Ni(e){w({eventName:"survey_started",metadata:e})}function Re(e){e.trackPageTime(e.currentPageIndex),e.trackOptionalSkips(e.currentPageIndex),e.checkBacktrackChanges(e.currentPageIndex)}function _i(e,t,r){for(let n=t+1;n<r;n+=1)e.skippedPageIndices.add(n),e.visitedPageIndices.delete(n)}function or(e,t,r,n,i){for(let o=r+1;o<n;o+=1){let s=t[o]?.questions??[];O(s,i)||(e.skippedPageIndices.add(o),e.visitedPageIndices.delete(o))}}function sr(e,t,r){for(let n=t+1;n<r;n+=1)e.skippedPageIndices.add(n),e.visitedPageIndices.delete(n)}function Le(e,t){li(e.currentPageIndex),Te(e.refs,e.currentPageIndex,t),e.setCurrentPageIndex(t),e.setPhase({kind:"content",pageIndex:t}),e.refs.visitedPageIndices.add(t),e.bumpProgressRevision(),ct(e.pages,t)}function Fi(e){Re(e);let t=ee(e.pages,e.currentPageIndex,e.logicContext),r=Ae(e.pages,e.logicContext),n=r>=0&&e.currentPageIndex>=r;if(t>=e.pages.length||n){or(e.refs,e.pages,e.currentPageIndex,e.pages.length,e.logicContext),e.onSubmit();return}t!==e.currentPageIndex+1&&(or(e.refs,e.pages,e.currentPageIndex,t,e.logicContext),Ie({fromPageIndex:e.currentPageIndex,toPageIndex:t,reason:"empty_page"})),e.refs.skippedPageIndices.delete(t),Le(e,t)}function Vi(e,t,r){let n=e[t]?.questions??[];if(O(n,r))return null;let i=ee(e,t,r);if(i<e.length)return{action:"navigate",pageIndex:i};let o=Ae(e,r);return o>=0&&t>o?{action:"submit"}:o>=0&&t!==o?{action:"navigate",pageIndex:o}:{action:"submit"}}function Ys(e,t,r){for(let n=t+1;n<r;n+=1)e.skippedPageIndices.add(n),e.visitedPageIndices.delete(n)}function lt(e,t,r,n){let i=Vi(t,r,n);if(!i||i.action==="submit")return i;let{pageIndex:o}=i;return o!==r+1&&Ie({fromPageIndex:r,toPageIndex:o,reason:"empty_page"}),Ys(e,r,o),e.skippedPageIndices.delete(o),Te(e,r,o),e.visitedPageIndices.add(o),i}function Di(e){if(e.currentQuestions.length>0)return!1;let t=lt(e.refs,e.pages,e.currentPageIndex,e.logicContext);return t?.action==="submit"?(e.onSubmit(),!0):t?.action==="navigate"?(Le(e,t.pageIndex),!0):!1}function Ui(e){let t=e.currentQuestions[e.currentQuestions.length-1];if(!t?.skipLogics?.length)return!1;let r=Z(t,e.logicContext,e.pages,e.currentPageIndex,{silent:!0});return r?r.type==="END_OF_SURVEY"?js(e,t.id,r.skipLogicId):Ks(e,t.id,r):!1}function js(e,t,r){ir({questionId:t,skipLogicId:r,targetType:"END_OF_SURVEY",targetId:"END_OF_SURVEY",fromPageIndex:e.currentPageIndex});let n=Ee(e.pages,e.values,e.currentPageIndex);return e.setValues(n),sr(e.refs,e.currentPageIndex,e.pages.length),Re(e),e.setValidationErrors({}),e.bumpProgressRevision(),e.onSubmit({skipValidation:!0,answersOverride:n}),!0}function Ks(e,t,r){ir({questionId:t,skipLogicId:r.skipLogicId,targetType:"QUESTION",targetId:r.questionId,fromPageIndex:e.currentPageIndex});let n=ot(e.pages,r.pageIndex,e.logicContext),i=n>=e.pages.length?r.pageIndex:n,o=bi(e.pages,e.values,e.currentPageIndex,i);if(e.setValues(o),n>=e.pages.length){let s=Ee(e.pages,o,e.currentPageIndex);return e.setValues(s),sr(e.refs,e.currentPageIndex,e.pages.length),Re(e),e.setValidationErrors({}),e.bumpProgressRevision(),e.onSubmit({skipValidation:!0,answersOverride:s}),!0}return _i(e.refs,e.currentPageIndex,n),Ie({fromPageIndex:e.currentPageIndex,toPageIndex:n,reason:"skip_logic"}),Re(e),e.setValidationErrors({}),Le(e,n),!0}function qi(e,t){w({eventName:"page_time_spent",metadata:{pageIndex:e,durationMs:t}})}function dt(e,t,r){w({eventName:"validation_error",metadata:{pageIndex:e,errors:t,attemptNumber:r}})}function Bi(){S.success("Survey validation passed on submit")}function Hi(e){S.warn("Full survey validation failed on submit",{validation:e})}function mt(e){S.error("Failed to run survey validation on submit",{err:e})}function Xi(e){S.warn("Page validation failed",{errors:e})}function $s(e,t){return e.selectionMode==="multiple"?Array.isArray(t)&&t.length>0:t!=null&&t!==""}function Js(e){return e.selectionMode==="multiple"?[...e.defaultOptionIds]:e.defaultOptionIds[0]}function Pe(e,t){let r=!1,n={...t};for(let i of e)for(let o of i.questions){if(o.type!==l.MCQ)continue;let s=o;s.defaultOptionIds?.length&&($s(s,n[s.id])||(n[s.id]=Js(s),r=!0))}return r?n:t}function Gi(e){let t=Pe(e.pages,e.values);t!==e.values&&e.setValues(t);let r={};try{r=Ue(e.currentQuestions,t,e.survey.language,e.allQuestions,e.logicContext.customFieldValues??{})}catch(o){mt(P(o))}if(Object.keys(r).length===0)return e.setValidationErrors({}),delete e.refs.validationAttempt[e.currentPageIndex],!0;Xi(r);let n=(e.refs.validationAttempt[e.currentPageIndex]||0)+1;e.refs.validationAttempt[e.currentPageIndex]=n,e.refs.validationErrorsCount+=1,e.refs.validationHistory.push({pageIndex:e.currentPageIndex,errors:r,attemptNumber:n}),dt(e.currentPageIndex,r,n),e.setValidationErrors(r);let i=Object.keys(r)[0];return setTimeout(()=>{try{let o=Be(i);o&&o.scrollIntoView({behavior:"smooth",block:"center"})}catch(o){ce("Failed to scroll validation error element into view",P(o))}},50),!1}function ft(e,t){let{pages:r,currentPageIndex:n}=e,o=r[n]?.questions??[];return Ws(()=>{let s=Qi({context:e,onSubmit:t,currentPageIndex:n,rawCurrentQuestions:o});s&&(Di(s)||Ui(s)||Gi(s)&&Fi(s))},[e,n,o,t])}import{useCallback as Zs}from"react";function zi(e,t,r,n,i,o,s,a,u,p){w({eventName:"survey_session_summary",metadata:{maxVisitedPageIndex:t,totalDurationMs:r,completed:e,totalQuestionsCount:n,answeredQuestionsCount:i,skippedQuestionsCount:o,skippedQuestionIds:s,validationErrorsCount:a,backtrackCount:u,validationHistory:p}})}function Yi(e,t){w({eventName:"optional_question_skipped",metadata:{questionId:e,pageIndex:t}})}function ji(e,t,r){w({eventName:"backtrack_revisited",metadata:{fromPageIndex:e,toPageIndex:t,changedAnswers:r}})}function Ki(e,t,r,n,i={}){let o={},s="",a=-1;for(let u of t){let p=e[u];if(!p)continue;let c=Ue(p.questions,r,n,void 0,i);Object.keys(c).length>0&&(o={...o,...c},a===-1&&(a=u,s=Object.keys(c)[0]))}return a!==-1?{errors:o,errorPageIndex:a,firstErrorId:s}:null}function $i(e,t,r,n={}){let i=e.flatMap(c=>c.questions),o=I(t,i,n),s=Q(e,t,i,n),a={},u="",p=-1;for(let c of s){let d=e[c];if(!d)continue;let y=G(d.questions,o),g=Ue(y,t,r,i,n);Object.keys(g).length>0&&(a={...a,...g},p===-1&&(p=c,u=Object.keys(g)[0]))}return p!==-1?{errors:a,errorPageIndex:p,firstErrorId:u}:null}function Ji(e,t){if(e)switch(t.kind){case"intro":return e.introPage;case"paused":return e.pausedPage;case"end":return e.endPages.find(n=>n.id===t.endPageId)??e.endPages[0];default:return}}function Wi(e,t,r,n){return t.kind!=="content"?!1:r>1||n>0?!0:!!e?.introPage}function Zi(e,t,r,n,i){if(t.kind!=="content"||!e)return"next";let o=Ae(n,i);return o===-1||r>=o?"submit":"next"}function eo(e,t){return Ai(e,t??I({},[]))}function ar(e){let{survey:t,pages:r,values:n,submit:i,currentPageIndex:o,setCurrentPageIndex:s,setValidationErrors:a,setPhase:u,trackPageTime:p,trackOptionalSkips:c,checkBacktrackChanges:d,totalQuestionsCount:y,paginationRefs:g,customFieldValues:b}=e;return Zs(async x=>{if(!t)return;let T=Pe(r,x?.answersOverride??n),A=g.current;if(!A)return;ci();let f=null;try{x?.skipValidation||(x?.pageIndicesToValidate?f=Ki(r,x.pageIndicesToValidate,T,t.language):f=$i(r,T,t.language,b)),f||Bi()}catch(m){mt(P(m))}if(f){Hi(f);let m=(A.validationAttempt[f.errorPageIndex]||0)+1;A.validationAttempt[f.errorPageIndex]=m,A.validationErrorsCount+=1,A.validationHistory.push({pageIndex:f.errorPageIndex,errors:f.errors,attemptNumber:m}),dt(f.errorPageIndex,f.errors,m),a(f.errors),f.errorPageIndex!==o&&Te(A,o,f.errorPageIndex),s(f.errorPageIndex),u({kind:"content",pageIndex:f.errorPageIndex}),setTimeout(()=>{try{let R=Be(f.firstErrorId);R&&R.scrollIntoView({behavior:"smooth",block:"center"})}catch(R){ce("Failed to scroll validation error element into view",P(R))}},100);return}a({}),delete A.validationAttempt[o],p(o),c(o),d(o);try{let m=await i(T);if(m&&typeof m=="object"&&"success"in m&&m.success){let R=r.flatMap(C=>C.questions),k=I(T,R,b),h=eo(t,k);if(h&&u({kind:"end",endPageId:h}),!A.hasLoggedSummary){Ci(A,t,r,R,T,b,h);let C=performance.now()-A.sessionStartTime,E=[];r.forEach(B=>{B.questions.forEach(_=>{if(!_.required){let de=T[_.id];(de===void 0||de==="")&&E.push(_.id)}})});let N=E.length;zi(!0,A.maxVisitedPageIndex,C,y,y-N,N,E,A.validationErrorsCount,A.backtrackCount,A.validationHistory),A.hasLoggedSummary=!0}}}catch(m){di(P(m))}},[t,r,n,i,o,s,a,u,p,c,d,y,g,b])}import{useCallback as ea}from"react";function ur(e,t,r){return ea(n=>{if(!r.current)return;let i=r.current.backtrackSnapshots[n];if(i){let o=e[n]?.questions??[],s={},a=!1;o.forEach(u=>{let p=i.snapshot[u.id],c=t[u.id];p!==c&&(s[u.id]={oldValue:p??null,newValue:c??null},a=!0)}),a&&ji(i.fromPageIndex,n,s),delete r.current.backtrackSnapshots[n]}},[e,t,r])}import{useCallback as ta}from"react";function pr(e,t){return ta(r=>{(e[r]?.questions??[]).forEach(i=>{let o=!i.required,s=t[i.id];o&&(s===void 0||s==="")&&Yi(i.id,r)})},[e,t])}import{useCallback as ra}from"react";function cr(e){return ra(t=>{if(!e.current)return;let r=performance.now()-e.current.pageStartTime;qi(t,r)},[e])}function to(e,t){let r=e.displayVariants;if(!r?.length)return e.questionText;for(let n of r)if(n.displayLogic&&ie(n.displayLogic,t))return n.questionText;return e.questionText}function lr(e,t){let r=!1,n=e.map(i=>{let o=to(i,t);return o===i.questionText?i:(r=!0,{...i,questionText:o})});return r?n:e}function dr(e,t,r,n={}){let i=I(t,r,n),o=Q(e,t,r,n),s=new Map,a=0;for(let u of o){let p=e[u];if(p)for(let c of pt(p,i))a+=1,s.set(c.id,a)}return s}function mr(e,t){let r=!1,n=e.map(i=>{let o=t.get(i.id);return o===void 0?i.questionNumber===void 0?i:(r=!0,{...i,questionNumber:void 0}):i.questionNumber===o?i:(r=!0,{...i,questionNumber:o})});return r?n:e}function ro(){return{display:0,answer:0,variant:0,endPage:0,skip:0,viewed:0}}function fr(){return{logicEventHistory:[],logicMatchCounts:ro(),lastVisibleQuestionIds:new Set,lastVisibleAnswerEntityKeys:new Set,lastResolvedVariantByQuestionId:new Map,lastResolvedEndPageId:void 0,endPageChangeCount:0}}var gt={};function no({survey:e,session:t,customFieldValues:r=gt}){let[n,i]=Xe({}),[o,s]=Xe({}),[a,u]=Xe(0),[p,c]=Xe({kind:"content",pageIndex:0}),[d,y]=Xe(0),g=e?.pages??[],b=g[a],x=le(()=>e?.pages.flatMap(M=>M.questions)??[],[e]),T=le(()=>I(n,x,r),[n,x,r]),A=le(()=>{if(p.kind!=="content")return[];let M=b?.questions??[],K=G(M,T),we=lr(K,T),re=dr(g,n,x,r);return mr(we,re)},[p.kind,b,T,g,n,x,r,d]),f=gr({pageStartTime:performance.now(),sessionStartTime:performance.now(),maxVisitedPageIndex:0,validationAttempt:{},backtrackSnapshots:{},hasLoggedSummary:!1,validationErrorsCount:0,backtrackCount:0,validationHistory:[],visitedPageIndices:new Set([0]),skippedPageIndices:new Set,pageHistory:[0],earnedQuestionIds:new Set,lastLoggedOriginSkipKey:null,...fr()}),m=Sr(()=>{y(M=>M+1)},[]),R=gr(a);yr(()=>{e&&(i(M=>Pe(e.pages,M)),c($r(e)),u(0),R.current=0,f.current.pageHistory=[0],f.current.skippedPageIndices.clear(),f.current.visitedPageIndices=new Set([0]),f.current.earnedQuestionIds.clear(),f.current.lastLoggedOriginSkipKey=null,Object.assign(f.current,fr()),y(0))},[e]),yr(()=>{if(p.kind!=="content"||!e)return;let M=f.current,K=g[a],we=R.current!==a;R.current=a;let re=M.earnedQuestionIds.size;if(Jt(M,K,n,x,r),M.earnedQuestionIds.size!==re&&m(),!we)return;M.lastLoggedOriginSkipKey=null;let xt=K?.questions?.[K.questions.length-1];if(xt?.skipLogics?.length){let bt=Z(xt,I(n,x,r),g,a,{silent:!0});bt&&(it(xt.id,bt,a),M.lastLoggedOriginSkipKey=`${a}:${bt.skipLogicId}`)}},[a,p.kind,e,g,x,n,m,r]);let{submit:k,data:h,loading:C,error:E}=Rn(t,e),N=le(()=>new Set(f.current.earnedQuestionIds),[d,a]),{progressPercentage:B,totalQuestionsCount:_,answeredQuestionsCount:de,isComplete:Ge}=ui({pages:g,values:n,allQuestions:x,earnedQuestionIds:N,customFieldValues:r,progressRevision:d}),Ce=cr(f),yt=pr(g,n),ze=ur(g,n,f),te={survey:e,session:t,pages:g,phase:p,setPhase:c,currentPageIndex:a,setCurrentPageIndex:u,values:n,setValues:i,validationErrors:o,setValidationErrors:s,paginationRefs:f,trackPageTime:Ce,trackOptionalSkips:yt,checkBacktrackChanges:ze,submit:k,totalQuestionsCount:_,bumpProgressRevision:m,customFieldValues:r};Zt(te),Wt(te);let ke=nr(te),St=rr(te),F=ar(te),vt=ft(te,F),bo=Sr(()=>{c({kind:"content",pageIndex:0}),u(0),f.current.pageHistory=[0],f.current.visitedPageIndices=new Set([0]),f.current.earnedQuestionIds.clear(),Jt(f.current,g[0],n,x,r),m(),Ni({source:"intro"})},[g,n,x,m,r]),Ar=gr(F);Ar.current=F,yr(()=>{if(p.kind!=="content"||!e)return;let K=g[a]?.questions??[];if(O(K,T))return;let we=f.current,re=lt(we,g,a,T);if(re){if(re.action==="submit"){m(),Ar.current();return}u(re.pageIndex),c({kind:"content",pageIndex:re.pageIndex}),m()}},[p.kind,a,T,g,e,m]);let Ao=le(()=>Wi(e,p,f.current.pageHistory.length,a),[e,p,a]),To=le(()=>Zi(e,p,a,g,T),[e,p,a,g,T]),Eo=le(()=>Ji(e,p),[e,p]),ho=Sr((M,K)=>{Li(f.current,{questionId:M,pageIndex:K})},[]);return{phase:p,setPhase:c,currentPageIndex:a,values:n,validationErrors:o,currentQuestions:A,pages:g,canGoBack:Ao,primaryButtonType:To,specialPage:Eo,onChange:ke,onBack:St,onNext:vt,onSubmit:F,onStartSurvey:bo,progressPercentage:B,totalQuestionsCount:_,answeredQuestionsCount:de,isComplete:Ge,submitting:C,submitError:E,submitData:h,recordQuestionViewAnalytics:ho}}import{useCallback as so,useRef as ao}from"react";function io(e){let t=new URLSearchParams({instanceId:e});return`${Se}/markResponseInstanceAsStarted?${t.toString()}`}async function oo(e){let t=io(e);try{let r=await fetch(t,{method:"GET",headers:{Accept:"application/json"}});if(!r.ok)return S.warn(`markResponseInstanceAsStarted failed (${r.status})`,{url:t}),!1;let i=await r.json().catch(()=>null)===!0;return i&&S.info("Survey response instance marked as started",{instanceId:e}),i}catch(r){return S.warn("markResponseInstanceAsStarted request failed",{err:P(r)}),!1}}function uo(e){let t=ao(!1),r=ao(void 0),n=so(()=>{let o=e?.instanceId?.trim();!o||t.current||(t.current=!0,r.current=Date.now(),oo(o))},[e?.instanceId]),i=so(()=>r.current,[]);return{markOnce:n,getInstanceCreatedTime:i}}import{useEffect as po,useRef as vr}from"react";import{useMutation as na}from"@tanstack/react-query";function co({session:e,survey:t,answers:r,enabled:n,debounceMs:i,hasUserInteractedRef:o,isFinalSubmitting:s}){let a=vr(""),u=vr(s);po(()=>{u.current=s},[s]);let p=na({mutationFn:({url:d,requestBody:y})=>Ze({url:d,requestBody:y})},me),c=vr(p.mutateAsync);return c.current=p.mutateAsync,po(()=>{if(!n||!e?.instanceId||!t||!o.current||u.current)return;let d=JSON.stringify(r);if(d===a.current)return;let y=setTimeout(()=>{if(!u.current)try{let g=We(r,e,t),b=Je(g.answers,g.questions??[]),x=je(g.instanceId,g.surveyLanguage??"en",!1);c.current({url:x,requestBody:b}).then(()=>{a.current=d,S.info("Partial survey response saved")}).catch(T=>{S.warn("Partial survey response save failed",{err:P(T)})})}catch(g){S.warn("Partial survey response save skipped",{err:P(g)})}},i);return()=>clearTimeout(y)},[r,i,n,o,e,t]),{data:p.data??null,error:p.error??null,isLoading:p.isPending}}import{useCallback as ia,useRef as oa}from"react";var xr={VIEWED:"VIEWED"};function lo(e){let t=new URLSearchParams({instanceId:e});return`${Se}/cfm/recordQuestionActivityV2?${t.toString()}`}async function mo(e,t){let r=lo(e);try{let n=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});return n.ok?(S.info("Question activity recorded",{questionIds:t.questionIds}),!0):(S.warn(`recordQuestionActivity failed (${n.status})`,{url:r,requestBody:t}),!1)}catch(n){return S.warn("recordQuestionActivity request failed",{err:P(n)}),!1}}function fo({session:e,survey:t,getInstanceCreatedTime:r,onQuestionViewed:n}){let i=oa(new Set);return{recordView:ia(s=>{let a=e?.instanceId?.trim(),u=t?.id?.trim(),p=e?.responseId?.trim(),c=e?.instanceCreatedTime??r();if(!a||!u||!p||!c){S.warn("Skipping question activity record \u2014 missing context",{hasInstanceId:!!a,hasSurveyId:!!u,hasResponseId:!!p,hasInstanceCreatedTime:!!c});return}let d=s.filter(y=>{let g=y.trim();return!g||i.current.has(g)?!1:(i.current.add(g),!0)});if(d.length!==0){for(let y of d){let g=t?.pages.findIndex(b=>b.questions.some(x=>x.id===y));n?.(y,g!==void 0&&g>=0?g:void 0)}mo(a,{questionIds:d,state:xr.VIEWED,surveyId:u,responseId:p,instanceCreatedTime:c})}},[e?.instanceId,e?.responseId,e?.instanceCreatedTime,t?.id,r,n])}}function go(e){return e===!0||e===void 0||e===!1?1500:e.debounceMs??1500}function yo(e){return e===!0||typeof e=="object"&&e!==null}var br=(a=>(a.NEXT="NEXT",a.PREVIOUS="PREVIOUS",a.SUBMIT="SUBMIT",a.START="START",a.CHANGE="CHANGE",a.SCROLL="SCROLL",a.RECORD_QUESTION_VIEW="RECORD_QUESTION_VIEW",a))(br||{});var aa={data:null,error:null,isLoading:!1};function ua({options:e}={}){S.setEnabled(e?.debug??!1);let t=vo(!1),r=vo(!1),{survey:n,session:i,fetching:o,fetchError:s}=an({instanceId:e?.instanceId,language:e?.language,placeholders:e?.placeholders}),{markOnce:a,getInstanceCreatedTime:u}=uo(i),{phase:p,currentPageIndex:c,values:d,validationErrors:y,currentQuestions:g,canGoBack:b,primaryButtonType:x,specialPage:T,onBack:A,onNext:f,onSubmit:m,onChange:R,onStartSurvey:k,progressPercentage:h,totalQuestionsCount:C,answeredQuestionsCount:E,submitting:N,submitError:B,submitData:_,recordQuestionViewAnalytics:de}=no({survey:n,session:i,customFieldValues:e?.customFieldValues??gt}),{recordView:Ge}=fo({session:i,survey:n,getInstanceCreatedTime:u,onQuestionViewed:de}),Ce=yo(e?.savePartialResponse),yt=go(e?.savePartialResponse),ze=co({session:i,survey:n,answers:d,enabled:Ce,debounceMs:yt,hasUserInteractedRef:t,isFinalSubmitting:N}),te=sa(()=>Ce?ze:aa,[Ce,ze]),ke=So(()=>{p.kind!=="content"||t.current||(t.current=!0,r.current=!0,a())},[a,p.kind]),St=So(F=>{F.type==="NEXT"&&n&&x==="submit"&&(F={type:"SUBMIT"}),S.info(`Action dispatched: ${F.type}`,F);try{switch(F.type){case"START":r.current=!0,k();break;case"NEXT":f();break;case"PREVIOUS":A();break;case"SUBMIT":m();break;case"SCROLL":ke();break;case"CHANGE":ke(),R(F.payload.questionId,F.payload.answerValue);break;case"RECORD_QUESTION_VIEW":if(!r.current)return;Ge(F.payload.questionIds);break;default:break}}catch(vt){S.error(`Error executing action: ${F.type}`,{err:P(vt)})}},[f,A,m,R,k,n,x,ke,Ge,p.kind]);return{surveyQueryResults:{data:n,error:s,isLoading:o},submitSurveyResults:{data:_,error:B,isLoading:N},partialSaveResults:te,state:{phase:p,currentPageIndex:c,currentQuestions:g,answers:d,validationErrors:y,progressPercentage:h,totalQuestionsCount:C,answeredQuestionsCount:E,canGoBack:b,primaryButtonType:x,specialPage:T},onAction:St}}var pa=/\{\{SURVEY_QUESTION-:-([^}]+)\}\}/g;function ca(e){return e===l.CFM_MATRIX||e===l.CSAT_MATRIX||e===l.RATING_MATRIX||e===l.SLIDER_MATRIX}function xo(e,t){if(t==null)return"";if(e.type===l.MCQ){let r=e;return(Array.isArray(t)?t:typeof t=="string"?[t]:[]).map(o=>r.options.find(s=>s.id===o)?.optionLabel).filter(o=>!!o).join(", ")}return e.type===l.TEXTFIELD&&typeof t=="string"?t:e.type===l.NPS_SCALE&&typeof t=="number"?String(t):ca(e.type)&&typeof t=="object"&&!Array.isArray(t)?Object.values(t).filter(n=>n!=null&&n!=="").map(n=>String(n)).join(", "):typeof t=="string"?t:typeof t=="number"?String(t):""}function la(e,t,r){return e.replace(pa,(n,i)=>{let o=r.get(i);return o?xo(o,t[i]):n})}export{br as ACTIONS,xr as QUESTION_ACTIVITY_STATE,l as QUESTION_TYPE,mr as applyActivePathQuestionNumbers,lr as applyQuestionDisplayVariants,Zo as assignRankWithoutDuplicates,Wo as buildRankOrderFromOrderedOptionIds,dr as computeActivePathQuestionNumbers,xo as formatAnswerForDisplay,Nt as getOrderedOptionIdsFromRanks,jn as getVisibleMatrixItemsForAnswers,j as getVisibleMcqOptions,Gn as getVisibleMcqOptionsForAnswers,X as getVisibleRankOrderOptions,zn as getVisibleRankOrderOptionsForAnswers,J as getVisibleScaleColumns,Yn as getVisibleScaleColumnsForAnswers,q as getVisibleStatementRows,Xn as getVisibleStatementRowsForAnswers,Ko as matrixColumnStoredValue,D as normalizeRankOrderAnswers,to as resolveQuestionDisplayText,la as resolveSurveyQuestionPlaceholders,ua as useSurveySDK};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@explorer02/cfm-survey-sdk",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.mjs",
6
6
  "types": "dist/index.d.ts",
@@ -14,6 +14,8 @@
14
14
  ],
15
15
  "scripts": {
16
16
  "build": "tsup",
17
+ "build:wizard": "npm run build --workspace=@repo/survey-wizard",
18
+ "build:all": "npm run build:wizard && npm run build",
17
19
  "lint": "tsc --noEmit",
18
20
  "postinstall": "node postinstall.js",
19
21
  "test": "vitest run",
@@ -25,15 +27,20 @@
25
27
  "react": ">=17.0.0"
26
28
  },
27
29
  "devDependencies": {
30
+ "@tailwindcss/vite": "^4.3.0",
28
31
  "@testing-library/jest-dom": "^6.4.2",
29
32
  "@testing-library/react": "^14.2.1",
30
33
  "@testing-library/user-event": "^14.5.2",
34
+ "@vitejs/plugin-react": "^4.5.2",
31
35
  "@vitest/coverage-v8": "^1.3.1",
32
36
  "@types/react": "^17.0.0",
33
37
  "@tanstack/react-query": "^5.0.0",
34
38
  "jsdom": "^24.0.0",
39
+ "react": "^19.1.0",
40
+ "react-dom": "^19.1.0",
35
41
  "tsup": "^8.0.2",
36
42
  "typescript": "^6.0.0",
43
+ "vite": "^6.3.5",
37
44
  "vitest": "^1.3.1"
38
45
  }
39
46
  }
package/postinstall.js CHANGED
@@ -21,9 +21,11 @@ function getSdkRulesBody() {
21
21
  'Open and read `' + docs + '/index.md`.',
22
22
  'Also read `' + docs + '/MANIFEST.json`.',
23
23
  '',
24
- 'RULE 1 — DOCS-FIRST FLOW (NO WIZARD):',
25
- 'Follow the 8 phases in index.md. Branding comes from the client prompt only.',
26
- 'Do NOT run `cfm-sdk init`, read `survey-config.json`, or use any setup wizard.',
24
+ 'RULE 1 — DOCS-FIRST FLOW (OPTIONAL WIZARD):',
25
+ 'Follow the phases in index.md. Initial branding comes from the client prompt.',
26
+ 'After building and starting localhost dev, ask if the client wants UI customization via web wizard.',
27
+ 'If yes, run `npx cfm-sdk customize` — read `survey-ui-config.json` when saved; apply UI tokens only.',
28
+ 'Do NOT run the wizard before the survey UI is built. Do NOT read legacy `survey-config.json`.',
27
29
  '',
28
30
  'RULE 2 — DEEP CONTEXT BEFORE CODE:',
29
31
  'Before writing React code, read EVERY file in `' + docs + '/01-components/`.',
@@ -36,7 +38,7 @@ function getSdkRulesBody() {
36
38
  '',
37
39
  'RULE 3 — AUTO-PROCEED:',
38
40
  'After the implementation plan is complete, proceed to build without waiting for approval.',
39
- 'The workflow requires 3 client inputs: Prompt/Mockup, Instance ID (JWT), Deploy Confirmation.',
41
+ 'The workflow requires 4 client inputs: Prompt/Mockup, Instance ID (JWT), Customization Wizard (optional), Deploy Confirmation.',
40
42
  '',
41
43
  'RULE 4 — PACKAGE IMPORT:',
42
44
  'Import from whatever name appears in your project\'s package.json dependencies.',
@@ -94,7 +96,8 @@ function printSuccessBanner() {
94
96
  console.log(' The agent will:');
95
97
  console.log(' - Read the master documentation index');
96
98
  console.log(' - Ask you for your Instance ID');
97
- console.log(' - Build the UI and ask to deploy to Vercel');
99
+ console.log(' - Build the UI and ask to deploy');
100
+ console.log(' - Optionally customize UI via `npx cfm-sdk customize` after localhost preview');
98
101
  console.log('');
99
102
  console.log('='.repeat(60) + '\n');
100
103
  }