@wise/dynamic-flow-client 1.2.1 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/main.js CHANGED
@@ -3578,7 +3578,7 @@ var SchemaFormControl = (props) => {
3578
3578
  const controlType = getControlType(schema2);
3579
3579
  (0, import_react14.useEffect)(() => {
3580
3580
  warnIfInvalidSchema(schema2, log, controlType);
3581
- }, [schema2, log, controlType]);
3581
+ }, [JSON.stringify(schema2), log, controlType]);
3582
3582
  const options = schema2.values || getOptions(schema2, controlType);
3583
3583
  const events = {
3584
3584
  onFocus,
@@ -4330,7 +4330,7 @@ var GenericSchemaForm = (props) => {
4330
4330
  `Schema of type ${type || "undefined"} requested, but schema did not pass validation.`
4331
4331
  );
4332
4332
  }
4333
- }, [schema2, model, errors, type, log]);
4333
+ }, [JSON.stringify(schema2), JSON.stringify(model), JSON.stringify(errors), type, log]);
4334
4334
  switch (type) {
4335
4335
  case "readOnly":
4336
4336
  return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(ReadOnlySchema_default, __spreadValues({}, schemaProps));
package/build/main.min.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var Mc=Object.create;var Rt=Object.defineProperty,Ec=Object.defineProperties,Ic=Object.getOwnPropertyDescriptor,Dc=Object.getOwnPropertyDescriptors,Lc=Object.getOwnPropertyNames,Oa=Object.getOwnPropertySymbols,Tc=Object.getPrototypeOf,Aa=Object.prototype.hasOwnProperty,Bc=Object.prototype.propertyIsEnumerable;var va=(e,t,r)=>t in e?Rt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,i=(e,t)=>{for(var r in t||={})Aa.call(t,r)&&va(e,r,t[r]);if(Oa)for(var r of Oa(t))Bc.call(t,r)&&va(e,r,t[r]);return e},b=(e,t)=>Ec(e,Dc(t));var Pa=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),tt=(e,t)=>{for(var r in t)Rt(e,r,{get:t[r],enumerable:!0})},ka=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Lc(t))!Aa.call(e,a)&&a!==r&&Rt(e,a,{get:()=>t[a],enumerable:!(o=Ic(t,a))||o.enumerable});return e};var Ee=(e,t,r)=>(r=e!=null?Mc(Tc(e)):{},ka(t||!e||!e.__esModule?Rt(r,"default",{value:e,enumerable:!0}):r,e)),Nc=e=>ka(Rt({},"__esModule",{value:!0}),e);var nt=Pa((fh,Ar)=>{(function(){"use strict";var e={}.hasOwnProperty,t="[native code]";function r(){for(var o=[],a=0;a<arguments.length;a++){var n=arguments[a];if(n){var s=typeof n;if(s==="string"||s==="number")o.push(n);else if(Array.isArray(n)){if(n.length){var c=r.apply(null,n);c&&o.push(c)}}else if(s==="object"){if(n.toString!==Object.prototype.toString&&!n.toString.toString().includes("[native code]")){o.push(n.toString());continue}for(var m in n)e.call(n,m)&&n[m]&&o.push(m)}}}return o.join(" ")}typeof Ar<"u"&&Ar.exports?(r.default=r,Ar.exports=r):typeof define=="function"&&typeof define.amd=="object"&&define.amd?define("classnames",[],function(){return r}):window.classNames=r})()});var xs=Pa((or,oa)=>{(function(t,r){typeof or=="object"&&typeof oa=="object"?oa.exports=r(require("react")):typeof define=="function"&&define.amd?define(["react"],r):typeof or=="object"?or.Webcam=r(require("react")):t.Webcam=r(t.React)})(or,function(e){return function(t){var r={};function o(a){if(r[a])return r[a].exports;var n=r[a]={i:a,l:!1,exports:{}};return t[a].call(n.exports,n,n.exports,o),n.l=!0,n.exports}return o.m=t,o.c=r,o.d=function(a,n,s){o.o(a,n)||Object.defineProperty(a,n,{enumerable:!0,get:s})},o.r=function(a){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},o.t=function(a,n){if(n&1&&(a=o(a)),n&8||n&4&&typeof a=="object"&&a&&a.__esModule)return a;var s=Object.create(null);if(o.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:a}),n&2&&typeof a!="string")for(var c in a)o.d(s,c,function(m){return a[m]}.bind(null,c));return s},o.n=function(a){var n=a&&a.__esModule?function(){return a.default}:function(){return a};return o.d(n,"a",n),n},o.o=function(a,n){return Object.prototype.hasOwnProperty.call(a,n)},o.p="",o(o.s="./src/react-webcam.tsx")}({"./src/react-webcam.tsx":function(t,r,o){"use strict";o.r(r);var a=o("react"),n=o.n(a),s=function(){var g=function(y,l){return g=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,f){d.__proto__=f}||function(d,f){for(var h in f)f.hasOwnProperty(h)&&(d[h]=f[h])},g(y,l)};return function(y,l){g(y,l);function d(){this.constructor=y}y.prototype=l===null?Object.create(l):(d.prototype=l.prototype,new d)}}(),c=function(){return c=Object.assign||function(g){for(var y,l=1,d=arguments.length;l<d;l++){y=arguments[l];for(var f in y)Object.prototype.hasOwnProperty.call(y,f)&&(g[f]=y[f])}return g},c.apply(this,arguments)},m=function(g,y){var l={};for(var d in g)Object.prototype.hasOwnProperty.call(g,d)&&y.indexOf(d)<0&&(l[d]=g[d]);if(g!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,d=Object.getOwnPropertySymbols(g);f<d.length;f++)y.indexOf(d[f])<0&&Object.prototype.propertyIsEnumerable.call(g,d[f])&&(l[d[f]]=g[d[f]]);return l};(function(){typeof window>"u"||(navigator.mediaDevices===void 0&&(navigator.mediaDevices={}),navigator.mediaDevices.getUserMedia===void 0&&(navigator.mediaDevices.getUserMedia=function(y){var l=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;return l?new Promise(function(d,f){l.call(navigator,y,d,f)}):Promise.reject(new Error("getUserMedia is not implemented in this browser"))}))})();function p(){return!!(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia)}var u=function(g){s(y,g);function y(l){var d=g.call(this,l)||this;return d.canvas=null,d.ctx=null,d.requestUserMediaId=0,d.unmounted=!1,d.state={hasUserMedia:!1},d}return y.prototype.componentDidMount=function(){var l=this,d=l.state,f=l.props;if(this.unmounted=!1,!p()){f.onUserMediaError("getUserMedia not supported");return}d.hasUserMedia||this.requestUserMedia(),f.children&&typeof f.children!="function"&&console.warn("children must be a function")},y.prototype.componentDidUpdate=function(l){var d=this.props;if(!p()){d.onUserMediaError("getUserMedia not supported");return}var f=JSON.stringify(l.audioConstraints)!==JSON.stringify(d.audioConstraints),h=JSON.stringify(l.videoConstraints)!==JSON.stringify(d.videoConstraints),S=l.minScreenshotWidth!==d.minScreenshotWidth,O=l.minScreenshotHeight!==d.minScreenshotHeight;(h||S||O)&&(this.canvas=null,this.ctx=null),(f||h)&&(this.stopAndCleanup(),this.requestUserMedia())},y.prototype.componentWillUnmount=function(){this.unmounted=!0,this.stopAndCleanup()},y.stopMediaStream=function(l){l&&(l.getVideoTracks&&l.getAudioTracks?(l.getVideoTracks().map(function(d){l.removeTrack(d),d.stop()}),l.getAudioTracks().map(function(d){l.removeTrack(d),d.stop()})):l.stop())},y.prototype.stopAndCleanup=function(){var l=this.state;l.hasUserMedia&&(y.stopMediaStream(this.stream),l.src&&window.URL.revokeObjectURL(l.src))},y.prototype.getScreenshot=function(l){var d=this,f=d.state,h=d.props;if(!f.hasUserMedia)return null;var S=this.getCanvas(l);return S&&S.toDataURL(h.screenshotFormat,h.screenshotQuality)},y.prototype.getCanvas=function(l){var d=this,f=d.state,h=d.props;if(!this.video||!f.hasUserMedia||!this.video.videoHeight)return null;if(!this.ctx){var S=this.video.videoWidth,O=this.video.videoHeight;if(!this.props.forceScreenshotSourceSize){var w=S/O;S=h.minScreenshotWidth||this.video.clientWidth,O=S/w,h.minScreenshotHeight&&O<h.minScreenshotHeight&&(O=h.minScreenshotHeight,S=O*w)}this.canvas=document.createElement("canvas"),this.canvas.width=l?.width||S,this.canvas.height=l?.height||O,this.ctx=this.canvas.getContext("2d")}var v=this,P=v.ctx,x=v.canvas;return P&&x&&(h.mirrored&&(P.translate(x.width,0),P.scale(-1,1)),P.imageSmoothingEnabled=h.imageSmoothing,P.drawImage(this.video,0,0,l?.width||x.width,l?.height||x.height),h.mirrored&&(P.scale(-1,1),P.translate(-x.width,0))),x},y.prototype.requestUserMedia=function(){var l=this,d=this.props,f=function(O,w){var v={video:typeof w<"u"?w:!0};d.audio&&(v.audio=typeof O<"u"?O:!0),l.requestUserMediaId++;var P=l.requestUserMediaId;navigator.mediaDevices.getUserMedia(v).then(function(x){l.unmounted||P!==l.requestUserMediaId?y.stopMediaStream(x):l.handleUserMedia(null,x)}).catch(function(x){l.handleUserMedia(x)})};if("mediaDevices"in navigator)f(d.audioConstraints,d.videoConstraints);else{var h=function(O){return{optional:[{sourceId:O}]}},S=function(O){var w=O.deviceId;return typeof w=="string"?w:Array.isArray(w)&&w.length>0?w[0]:typeof w=="object"&&w.ideal?w.ideal:null};MediaStreamTrack.getSources(function(O){var w=null,v=null;O.forEach(function(E){E.kind==="audio"?w=E.id:E.kind==="video"&&(v=E.id)});var P=S(d.audioConstraints);P&&(w=P);var x=S(d.videoConstraints);x&&(v=x),f(h(w),h(v))})}},y.prototype.handleUserMedia=function(l,d){var f=this.props;if(l||!d){this.setState({hasUserMedia:!1}),f.onUserMediaError(l);return}this.stream=d;try{this.video&&(this.video.srcObject=d),this.setState({hasUserMedia:!0})}catch{this.setState({hasUserMedia:!0,src:window.URL.createObjectURL(d)})}f.onUserMedia(d)},y.prototype.render=function(){var l=this,d=this,f=d.state,h=d.props,S=h.audio,O=h.forceScreenshotSourceSize,w=h.onUserMedia,v=h.onUserMediaError,P=h.screenshotFormat,x=h.screenshotQuality,E=h.minScreenshotWidth,L=h.minScreenshotHeight,k=h.audioConstraints,T=h.videoConstraints,H=h.imageSmoothing,F=h.mirrored,j=h.style,I=j===void 0?{}:j,$=h.children,He=m(h,["audio","forceScreenshotSourceSize","onUserMedia","onUserMediaError","screenshotFormat","screenshotQuality","minScreenshotWidth","minScreenshotHeight","audioConstraints","videoConstraints","imageSmoothing","mirrored","style","children"]),ue=F?c(c({},I),{transform:(I.transform||"")+" scaleX(-1)"}):I,et={getScreenshot:this.getScreenshot.bind(this)};return a.createElement(a.Fragment,null,a.createElement("video",c({autoPlay:!0,src:f.src,muted:!S,playsInline:!0,ref:function(xe){l.video=xe},style:ue},He)),$&&$(et))},y.defaultProps={audio:!1,forceScreenshotSourceSize:!1,imageSmoothing:!0,mirrored:!1,onUserMedia:function(){},onUserMediaError:function(){},screenshotFormat:"image/webp",screenshotQuality:.92},y}(a.Component);r.default=u},react:function(t,r){t.exports=e}}).default})});var Np={};tt(Np,{DynamicFlow:()=>ga,JsonSchemaForm:()=>er,Layout:()=>ie,convertStepToLayout:()=>jt,fixtures:()=>sc,inlineReferences:()=>qe,isValidSchema:()=>G,makeHttpClient:()=>yr,translations:()=>Cc});module.exports=Nc(Np);function jt(e,{displayStepTitle:t=!0}={}){if(e.layout)return Jc(e,t);switch(e.type){case"final":return zc(e);case"decision":return Vc(e);case"external":return Rc(e);default:return Uc(e)}}function Jr(e){let t=[];if(e.title&&t.push(Xr(e.title)),e.image){let r=Ma(e.image);t.push(r)}return e.description&&t.push(Qr(e.description)),t}function Rc(e){return[...Jr(e),jc(e)]}function jc(e){return{type:"external",requestUrl:e.requestUrl,polling:e.polling,responseHandlers:e.responseHandlers,retryTitle:e.retryTitle}}function Uc(e){let t=Jr(e);if(e.reviewFields&&t.push(_c(e.reviewFields)),e.schemas&&t.push(...Kc(e)),e.actions){let r=e.actions.map(cr);t.push(Zr(r,"md"))}return t}function zc(e){let t=[];if(e.details){if(e.details.image){let r=Gc(e.details.image);t.push(r)}e.details.title&&t.push(Xr(e.details.title)),e.details.description&&t.push(Qr(e.details.description))}if(e.actions){let r=e.actions.map(o=>cr(b(i({},o),{type:o.type||"primary"})));t.push(Zr(r,"md"))}return t}function Vc(e){let t=Jr(e);return e.options&&t.push(qc(e.options)),t}function Zr(e,t){return{type:"box",width:t||"md",components:e}}function Xr(e){return{type:"heading",text:e,size:"lg",margin:"lg",align:"center"}}function Qr(e){return{type:"paragraph",text:e,align:"center"}}function Hc(e){return{type:"form",schema:e}}function qc(e){return{type:"decision",options:e.map($c)}}function $c(e){return{title:e.title,description:e.description,action:{title:e.title,method:"GET",url:e.url,disabled:e.disabled}}}function Ma(e){return{type:"image",url:e.url,text:e.text,margin:e.margin||"lg",size:e.size||"md"}}function Gc(e){return typeof e=="string"?{type:"image",url:e,text:void 0,margin:"lg",size:"md"}:Ma(e)}function cr(e){return{type:"button",action:b(i({},e),{title:e.title})}}function _c(e){return{type:"review",title:e.title,fields:e.fields.map(Wc)}}function Wc(e){return{label:e.title,value:e.value}}function Kc(e){let t=[];if(e.schemas&&e.schemas[0]){let r=e.schemas[0],o=Hc(r);Yc()?t.push(o):t.push(Zr([o],"md"))}return t}function Yc(){return!1}function Jc(e,t){return[...t&&e.title?[Xr(e.title)]:[],...e.description?[Qr(e.description)]:[],...e.layout||[]]}function qe({layout:e,schemas:t,actions:r,model:o}){return e?t?e.map(a=>a.type==="form"?Zc({formComponent:a,schemas:t}):a.type==="decision"?Xc({decisionComponent:a,actions:r}):a.type==="button"?Qc({actionComponent:a,actions:r}):a.type==="box"?em({boxComponent:a,schemas:t,actions:r,model:o}):a.type==="columns"?tm({columnsComponent:a,schemas:t,actions:r,model:o}):a):e:[]}function Zc({formComponent:e,schemas:t}){return eo(e.schema)&&e.schema.$ref?b(i({},e),{schema:rm(t,e.schema.$ref)}):i({},e)}function Xc({decisionComponent:e,actions:t}){var o;let r=(o=e==null?void 0:e.options)==null?void 0:o.map(a=>a.action&&eo(a.action)?b(i({},a),{action:Ea(t,a.action.$ref)}):a);return b(i({},e),{options:r})}function Qc({actionComponent:e,actions:t}){var r;if(e.action&&eo(e.action)&&((r=e.action)!=null&&r.$ref)){let o=Ea(t,e.action.$ref);return cr(o)}return e}function em({boxComponent:e,schemas:t,actions:r,model:o}){return b(i({},e),{components:qe({layout:e.components,schemas:t,actions:r,model:o})})}function tm({columnsComponent:e,schemas:t,actions:r,model:o}){return b(i({},e),{left:qe({layout:e.left,schemas:t,actions:r,model:o}),right:qe({layout:e.right,schemas:t,actions:r,model:o})})}function rm(e,t){let r=e.find(o=>o.$id===t);if(!r)throw new Error(`Fatal Error. Schema not found. $id ${t}`);return r}function Ea(e,t){let r=e.find(o=>o.$id===t);if(!r)throw new Error(`Fatal Error. Action not found. $id ${t}`);return r}function eo(e){return Object.prototype.hasOwnProperty.call(e,"$ref")}var Ce=require("react"),Sl=require("react-intl");var pt=require("react");var mr=require("react");function Ia(){let[e,t]=(0,mr.useState)(0);return{addPendingPromise:(0,mr.useCallback)(o=>{t(a=>a+1),o.catch(am).finally(()=>om(()=>t(a=>Math.max(0,a-1))))},[t]),pendingPromises:e}}var om=e=>setTimeout(()=>e(),0),am=()=>{};var Ba=require("react/jsx-runtime"),Da={loading:!1,registerPersistAsyncPromise:e=>{}},La=(0,pt.createContext)(Da),Ta=({loading:e,children:t})=>{let{pendingPromises:r,addPendingPromise:o}=Ia(),a=(0,pt.useMemo)(()=>({loading:e||r>0,registerPersistAsyncPromise:o}),[e,r,o]);return(0,Ba.jsx)(La.Provider,{value:a,children:t})},dr=()=>(0,pt.useContext)(La)||Da;var ft=require("react");var Ra=require("react/jsx-runtime"),Na=(0,ft.createContext)({triggerEvent:()=>{}}),ur=({metadata:e,children:t,onEvent:r})=>{let o=(0,ft.useMemo)(()=>({triggerEvent:to(r,e)}),[r,e]);return(0,Ra.jsx)(Na.Provider,{value:o,children:t})};function Q(){let{triggerEvent:e}=(0,ft.useContext)(Na);return e}var to=(e,t)=>(r,o={})=>e(r,i(i({},t),o));var rt=require("react");function ja(e){return e>=200&&e<300}function pr(e){return e===422}function fr(e=""){return["https://","http://","data:"].some(t=>e.slice(0,t.length)===t&&e.length>t.length)===!1}var yr=(e,t)=>(r,o)=>{let a=nm(r,e||""),n=im(o==null?void 0:o.headers,t);return fetch(a,b(i({},o||{}),{headers:n}))},nm=(e,t)=>typeof e=="string"&&fr(e)?t+e:e,im=(e,t)=>{if(!e&&!t)return{};let r=new Headers(e);for(let[o,a]of Object.entries(t||{}))r.set(o,a);return r};var ro=require("react/jsx-runtime"),hr=(0,rt.createContext)(void 0),Ua=({httpClient:e,children:t})=>(0,ro.jsx)(hr.Provider,{value:e,children:t}),gr=({baseUrl:e,children:t})=>{let r=(0,rt.useMemo)(()=>yr(e),[e]);return(0,ro.jsx)(hr.Provider,{value:r,children:t})},re=()=>(0,rt.useContext)(hr)||fetch,br=()=>!!(0,rt.useContext)(hr);var yt=require("react");var Va=require("react/jsx-runtime"),ot=(e,t,r="UNKNOWN-FLOW-ID",o="UNKNOWN-FLOW-ID")=>(a,n,s)=>t(e,`Dynamic Flow ${e} - ${a} - ${n}`,i({flowId:r,stepId:o},s)),za=(0,yt.createContext)(null),Sr=({flowId:e,stepId:t,children:r,onLog:o})=>{let a=(0,yt.useMemo)(()=>({debug:ot("debug",o,e,t),info:ot("info",o,e,t),warning:ot("warning",o,e,t),error:ot("error",o,e,t),critical:ot("critical",o,e,t)}),[o,e,t]);return(0,Va.jsx)(za.Provider,{value:a,children:r})},ht=()=>{let e=(0,yt.useContext)(za);if(e==null)throw new Error("Logging context not found. Did you forget to wrap your component in a <LogProvider />?");return e};var Z=e=>typeof e=="object"&&e!==null&&e.constructor===Object,oo=e=>A(e)||Z(e),ao=e=>Oe(e)||B(e)||M(e)||A(e),Ha=e=>M(e)||A(e),no=e=>q(e)?e.length===0?!0:e.every(t=>typeof t=="string"||typeof t=="number"||typeof t=="boolean"):!1,qa=e=>A(e)?!0:no(e);var gt=e=>M(e)||A(e);var sm=new Set(["string","number","integer","boolean"]);function pe(e){return sm.has(e.type||"")||"const"in e&&e.const!==void 0}function ce(e){return e.type==="object"}function Ut(e){return oe(e)&&e.oneOf.every(t=>t.type==="object")}function oe(e){return!!e.oneOf}function zt(e){return!!e.allOf}function at(e){return e.type==="blob"}function fe(e){return e.type==="array"}function Ie(e){let t=e.items;return!Array.isArray(t)}function $a(e){return e.type==="string"}function bt(e){return!!e.persistAsync}function lm(e){return bt(e)&&(at(e.persistAsync.schema)||cm(e.persistAsync.schema))}var Vt=e=>pe(e)&&!!e.validationAsync;function cm(e){return e.type==="string"&&e.format==="base64url"}var Ga=e=>fe(e)&&Ie(e)&&lm(e.items);function io(e){return e.type==="string"&&e.format==="base64url"}var M=e=>typeof e=="string",B=e=>typeof e=="number"&&!Number.isNaN(e),_a=e=>B(e)&&Math.floor(e)===e,Oe=e=>typeof e=="boolean",N=e=>!A(e)&&!K(e)&&(e==null?void 0:e.constructor)===Object,q=e=>Array.isArray(e),A=e=>e===null,K=e=>typeof e=="undefined";var St=e=>M(e)&&e.length===0||(N(e)||q(e))&&Object.keys(e).length===0;function Wa(e,t){return t.oneOf.some(r=>De(e,r)===e)?e:null}function Ka(e,t){var o;let r=t.oneOf.map(a=>mm(e,a)).filter(a=>a!==null);return r.length===0?null:(o=r.find(a=>a.some(n=>n!==null)))!=null?o:r[0]}function mm(e,t){return!fe(t)||!Ie(t)?null:so(e,t)}function Ya(e){return M(e)&&!St(e)?e:null}function Ja(e){return B(e)?e:null}function Za(e){return Oe(e)?e:null}function so(e,t){if(!q(e)||!Ie(t))return null;if(e.length>0){let r=typeof e[0];if(!e.every(o=>typeof o===r))return new Array(e.length).fill(null)}return e.map(r=>De(r,t.items))}function Xa(e,t){return Object.keys(t.properties).reduce((r,o)=>{if(e&&!K(e[o])){let a=e[o],n=t.properties[o],s=Ht(a,n);if(!A(s))return b(i({},r),{[o]:s})}return r},{})}function Qa(e,t){return t.allOf.reduce((r,o)=>{let a=ae(e,o);return Z(a)?i(i({},r),a):r},{})}function en(e,t){return t.oneOf.map(r=>ae(e,r)).reduce((r,o)=>A(r)?o:Z(r)&&Z(o)?tn(r,o):A(o)?r:o,null)}function tn(e,t){return Object.keys(t).reduce((r,o)=>{let a=e[o],n=t[o];return Z(a)&&Z(n)?b(i({},r),{[o]:tn(a,n)}):b(i({},r),{[o]:t[o]})},i({},e))}var Ht=(e,t)=>Z(e)?ae(e,t):no(e)?dm(e,t):De(e,t);function De(e,t){if(A(e))return null;if(t.oneOf)return Wa(e,t);if(!K(t.const)&&e===t.const)return e;if(t.type)switch(t.type){case"string":return Ya(e);case"number":case"integer":return Ja(e);case"boolean":return Za(e);default:return null}return null}function ae(e,t){return pe(t)||fe(t)||A(e)?null:t.allOf?Qa(e,t):t.oneOf?en(e,t):!K(t.const)&&e===t.const?e:ce(t)?Xa(e,t):null}function dm(e,t){return oe(t)?Ka(e,t):fe(t)?so(e,t):null}function qt(e,t=!1){return!t||!K(e)}function rn(e,t=!1){return!t||q(e)}function on(e,t){return!B(t)||M(e)&&e.length>=t}function an(e,t){return!B(t)||M(e)&&e.length<=t}function nn(e,t){return t===void 0?!0:e==null?!1:!!new RegExp(t).test(e)}function lo(e,t){return!B(t)&&!M(t)||(B(e)||M(e))&&e<=t}function co(e,t){return!B(t)&&!M(t)||(B(e)||M(e))&&e>=t}function sn(e,t){return!B(t)||q(e)&&e.length>=t}function ln(e,t){return!B(t)||q(e)&&e.length<=t}function $e(e,t,r){if(t.const)return fo(e,t,r);if(A(e))return r?["required"]:[];if($a(t))return mo(e,t,r);switch(t.type){case"number":return wr(e,t,r);case"integer":return uo(e,t,r);case"boolean":return po(e,t,r);case"array":return wt(e,t,r);case"object":return um(e,t);default:return[]}}function mo(e,t,r){if(!M(e)&&!A(e))return["type"];if(e===""&&r)return["required"];let o=[];return qt(e,r)||o.push("required"),on(e,t.minLength)||o.push("minLength"),an(e,t.maxLength)||o.push("maxLength"),nn(e,t.pattern)||o.push("pattern"),co(e,t.minimum)||o.push("minimum"),lo(e,t.maximum)||o.push("maximum"),o}function wr(e,t,r){if(!B(e)&&!A(e))return["type"];let o=[];return qt(e,r)||o.push("required"),co(e,t.minimum)||o.push("minimum"),lo(e,t.maximum)||o.push("maximum"),o}function uo(e,t,r){return _a(e)?wr(e,t,r):["type"]}function po(e,t,r){if(!Oe(e)&&!A(e))return["type"];let o=[];return qt(e,r)||o.push("required"),o}function fo(e,t,r){return qt(e,r)?e!==t.const?["const"]:[]:["required"]}function wt(e,t,r){if(!q(e)&&!A(e))return["type"];if(!rn(e,r))return["required"];let o=[];return sn(e,t.minItems)||o.push("minItems"),ln(e,t.maxItems)||o.push("maxItems"),o}function cn(e,t){return A(e)?["type"]:[]}function um(e,t){return Z(e)?q(t.required)?t.required.map(o=>typeof e[o]!="undefined").reduce((o,a)=>o&&a,!0)?[]:["required"]:[]:["type"]}function pm(e,t){return!mo(e,t).length}function fm(e,t){return!wr(e,t).length}function ym(e,t){return!uo(e,t).length}function hm(e,t){return!po(e,t).length}function gm(e,t){return!fo(e,t).length}function bm(e,t){return!N(e)||t.type!=="object"||!N(t.properties)?!1:Object.keys(t.properties).map(r=>Sm(e[r],t.properties[r],t.required&&t.required.includes(r))).every(r=>r)}function Sm(e,t,r){return typeof e=="undefined"?!r:G(e,t)}function wm(e,t){return t.type!=="array"||!N(t.items)||wt(e,t).length>0?!1:Array.isArray(e)&&Ie(t)&&e.map(r=>G(r,t.items)).every(r=>r)}function Fm(e,t){return q(t.oneOf)?t.oneOf.some(r=>G(e,r)):!1}function Cm(e,t){return q(t.allOf)?t.allOf.map(r=>G(e,r)).every(r=>r):!1}function xm(e,t){return!cn(e,t).length}function G(e,t){if(t.oneOf)return Fm(e,t);if(t.allOf)return Cm(e,t);if(t.const)return gm(e,t);switch(t.type){case"string":return pm(e,t);case"number":return fm(e,t);case"integer":return ym(e,t);case"boolean":return hm(e,t);case"array":return wm(e,t);case"object":return bm(e,t);case"blob":return xm(e,t);default:return!1}}var wn=require("react");function Om(e){let t=new Date(e),r=`${t.getMonth()+1}`,o=`${t.getDate()}`,a=t.getFullYear(),n=r.length<2?`0${r}`:r,s=o.length<2?`0${o}`:o;return[a,n,s].join("-")}var mn=e=>{if(!e)return null;let[t,r,o]=e.split("-").map(a=>parseInt(a,10));return!B(t)||!B(r)||!B(o)?null:new Date(t,r-1,o)},dn=e=>Om(e);var Ft=(e,t)=>{let r,o,a=()=>{r&&(clearTimeout(r),r=null),o=null},n=(...s)=>{o=s,r!==null&&clearTimeout(r),r=setTimeout(()=>{e(...o),r=null,o=null},t)};return n.cancel=()=>{r!==null&&a()},n.flush=()=>{r!==null&&(e(...o),a())},n};var Ge=(e,t)=>e===t?!0:Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.every((r,o)=>Ge(r,t[o])):!!(un(e)&&un(t)&&vm(e,t)),vm=(e,t)=>{let r=Object.keys(e),o=Object.keys(t);return r.length===o.length&&r.every(a=>Object.prototype.hasOwnProperty.call(t,a)&&Ge(e[a],t[a]))},un=e=>typeof e=="object"&&e!==null;function Fr(e){return Math.floor(e/1024)}var pn=e=>new Promise((t,r)=>{let o=new FileReader;o.readAsDataURL(e),o.addEventListener("load",()=>t(o.result)),o.addEventListener("error",a=>r(a))});function fn(e,t){let r=t.reduce((o,a)=>b(i({},o),{[a.id]:a}),{});for(let o of e){let a=r[o.id];if(!a||a.status!==o.status)return!1}return!0}var ve=(e="")=>`${e?`${e}-`:""}${Math.floor(1e8*Math.random())}`;var yn={DAY_MONTH_YEAR:"day-month-year",MONTH_YEAR:"month-year"};var R={RADIO:"radio",CHECKBOX:"checkbox",SELECT:"select",FILE:"file",DATE:"date",DATETIME:"date-time",DATELOOKUP:"date-lookup",TEL:"tel",NUMBER:"number",HIDDEN:"hidden",PASSWORD:"password",TEXT:"text",TEXTAREA:"textarea",UPLOAD:"upload",TAB:"tab"};var hn={SHORT:"short",LONG:"long"};var ye={READ_ONLY:"readOnly",PERSIST_ASYNC:"persistAsync",VALIDATION_ASYNC:"validationAsync",OBJECT:"object",PROMOTED_ONE_OF:"promotedOneOf",ONE_OF:"oneOf",ALL_OF:"allOf",BASIC:"basic",ARRAY:"array"};var gn={EXTRA_SMALL:"xs",SMALL:"sm",MEDIUM:"md",LARGE:"lg",EXTRA_LARGE:"xl"};var Am=e=>!!e.readOnly&&pe(e),Pm=e=>!!e.oneOf&&!!e.promotion,km=oe,Mm=zt,Cr=e=>Am(e)?ye.READ_ONLY:bt(e)?ye.PERSIST_ASYNC:Vt(e)?ye.VALIDATION_ASYNC:ce(e)?ye.OBJECT:fe(e)?ye.ARRAY:Pm(e)?ye.PROMOTED_ONE_OF:km(e)?ye.ONE_OF:Mm(e)?ye.ALL_OF:pe(e)?ye.BASIC:null;function bn(e){return Cr(e)===ye.BASIC&&e.type!=="boolean"&&e.format!=="base64url"}var Sn=e=>Em(e)&&Im(e)&&Dm(e),Em=e=>!e.type||e.type==="form",Im=e=>{var t;return((t=e==null?void 0:e.actions)==null?void 0:t.length)===1},Dm=e=>{if(!e.schemas)return!1;let t=xr(e.schemas);if((t==null?void 0:t.length)!==1)return!1;let r=t[0];if(!ce(r)||Object.values(r.properties).length!==1)return!1;let o=Object.values(r.properties)[0];return io(o)?o.source==="camera":!1},xr=e=>e.filter(t=>ce(t)?Object.values((t==null?void 0:t.properties)||{}).find(r=>(r==null?void 0:r.hidden)!==!0):(t==null?void 0:t.hidden)!==!0);function Fn(e,t){return(0,wn.useCallback)(Ft(e,t),[e,t])}var $t=require("react");function Cn(e){let[t,r]=(0,$t.useState)(null),[o,a]=(0,$t.useState)(!1),n=()=>a(!0);return(0,$t.useEffect)(()=>{e&&(a(!1),r(window.open(e,"_blank")))},[e]),{requiresManualTrigger:!!(e&&!t&&!o),dismissConfirmation:n}}var Gt=require("react");function xn(e,t){let r=re(),o=(0,Gt.useMemo)(()=>{if(e)return()=>r(e.url).then(n=>{if(n.ok)try{return n.json()}catch(s){throw new Error("failed")}else throw new Error("failed")})},[e,r]),a=(0,Gt.useCallback)(n=>{let c=((e==null?void 0:e.responseHandlers)||[]).find(m=>m.result===n.result);if(c!=null&&c.action){let{action:m}=c;if(m.exit){let p=i(i({},m.result||{}),n.data||{});t(b(i({},m),{result:p}))}else{let p=i(i({},m.data||{}),n.data||{});t(b(i({},m),{data:p}))}return!1}return!0},[e==null?void 0:e.responseHandlers,t]);Or({asyncFn:o,interval:(e==null?void 0:e.interval)||0,maxAttempts:(e==null?void 0:e.maxAttempts)||0,maxConsecutiveFails:(e==null?void 0:e.maxConsecutiveFails)||0,onPollingResponse:a,onFailure:(0,Gt.useCallback)(()=>{e&&t(e.onError.action)},[t,e])})}var Ss=require("react"),ws=require("react-intl");var On=require("react-intl"),_t=(0,On.defineMessages)({genericError:{id:"dynamicFlows.PersistAsyncSchema.genericError",defaultMessage:"Something went wrong, please try again later!",description:"Generic error message for persist async schema"}});var ut=require("react"),fs=require("react-intl");var Lm={allOf:[{title:"Number schemas",type:"object",displayOrder:["number"],properties:{number:{type:"number",title:"Number input",minimum:2,maximum:200,default:1,help:{markdown:"2 or more"},validationMessages:{min:"Too low buddy!",max:"Crazy high!"}}},required:["number"]},{title:"String schemas",type:"object",displayOrder:["string","date","phone","file"],properties:{string:{type:"string",title:"Text input",minLength:2,maxLength:8,pattern:"^[a-z]+$",default:"abc",help:{markdown:"Keep it secret, Keep it safe"}},date:{type:"string",format:"date",title:"Date input",minimum:"2000-02-01",maximum:"2010-01-01",validationMessages:{min:"Must be after Feb 2000",max:"Must be before Jan 2010"}},phone:{type:"string",format:"phone",title:"Phone input",minLength:10,maxLength:12},file:{type:"string",format:"base64url",title:"File input"}},required:["string"]},{title:"Boolean schemas",type:"object",displayOrder:["boolean"],properties:{boolean:{type:"boolean",title:"Boolean input",width:"md"}}},{title:"OneOf Const schema",type:"object",displayOrder:["select","radio"],properties:{select:{title:"Select",placeholder:"Please choose",oneOf:[{title:"One",const:"one"},{title:"Two",const:"two"},{title:"Three",const:"three"}]},radio:{title:"Radio",placeholder:"Please choose",oneOf:[{title:"One",const:"one"},{title:"Two",const:"two"}]}},required:["select","radio"]}]},vr=Lm;var us=Ee(nt()),se=require("react");var vn=require("@transferwise/components");var z=e=>{switch(e){case"xs":return"m-b-0";case"sm":return"m-b-1";case"md":return"m-b-2";case"lg":return"m-b-3";case"xl":return"m-b-5";default:return""}},Tm=e=>{switch(e){case"right":return"text-xs-right";case"center":return"text-xs-center";case"left":default:return""}},Le=e=>`${Tm(e.align)} ${z(e.margin)}`;var An=require("react/jsx-runtime"),Bm=e=>{let t=e.component;return(0,An.jsx)(vn.Alert,{type:Rm(Nm(t.context)),className:z(t.margin),message:t.markdown})},Nm=e=>{switch(e){case"success":return"positive";case"failure":return"negative";case"warning":return"warning";case"info":case"primary":return"neutral";default:return e}},Rm=e=>!e||!["neutral","warning","negative","positive"].includes(e)?"neutral":e,ne=Bm;var it=require("react/jsx-runtime"),jm=e=>{let t=e.component,r=z(t.margin||t.border?"lg":"xs");return!t.width||t.width==="xl"?(0,it.jsx)("div",{className:r+Pn(t.border),children:(0,it.jsx)(ie,{components:t.components,model:e.model,submitted:e.submitted,errors:e.errors,onModelChange:e.onModelChange,onAction:e.onAction,onPersistAsync:e.onPersistAsync})}):(0,it.jsx)("div",{className:"row",children:(0,it.jsx)("div",{className:r+Um(t),children:(0,it.jsx)("div",{className:Pn(t.border),children:(0,it.jsx)(ie,{components:t.components,model:e.model,submitted:e.submitted,errors:e.errors,onModelChange:e.onModelChange,onAction:e.onAction,onPersistAsync:e.onPersistAsync})})})})},Pn=e=>e?" well p-b-0":"",Um=e=>{switch(e.width){case"xs":return" col-md-4 col-md-offset-4";case"sm":return" col-md-6 col-md-offset-3 col-lg-4 col-lg-offset-4";case"md":return" col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3";case"lg":return" col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2";case"xl":default:return" col-xs-12"}},yo=jm;var In=require("@transferwise/components");var zm={primary:"primary",secondary:"secondary",link:"tertiary",positive:"primary",negative:"primary"},kn=e=>{var r;let t=e.action.type;return(r=e.control)!=null?r:t?zm[t]:"secondary"},Vm={primary:"neutral",secondary:"neutral",link:"neutral",positive:"positive",negative:"negative"},Mn=e=>{var o;let t=e.action.type,r=(o=e.context)!=null?o:t?Vm[t]:"neutral";return r==="neutral"?"accent":r},En=e=>{switch(e){case"xs":case"sm":return"sm";case"lg":case"xl":return"lg";case"md":default:return"md"}};var Dn=require("react/jsx-runtime"),Hm=e=>{var m;let{component:t,onAction:r}=e,o=t.action,a=Mn(t),n=kn(t),{loading:s}=dr(),c=z(t.margin||"md");return(0,Dn.jsx)(In.Button,{size:En(t.size),type:a,priority:n,block:!0,className:c,disabled:t.disabled||o.disabled||s,onClick:()=>r(o),children:(m=t.title)!=null?m:o.title})},ho=Hm;var st=require("react/jsx-runtime"),qm=e=>{let t=e.component,{leftWidth:r,rightWidth:o}=$m(t.bias);return(0,st.jsxs)("div",{className:`${z(t.margin||"xs")} row`,children:[(0,st.jsx)("div",{className:`${r} m-b-0`,children:(0,st.jsx)(ie,{components:t.left,model:e.model,submitted:e.submitted,errors:e.errors,onModelChange:e.onModelChange,onAction:e.onAction,onPersistAsync:e.onPersistAsync})}),(0,st.jsx)("div",{className:`${o} m-b-0`,children:(0,st.jsx)(ie,{components:t.right,model:e.model,submitted:e.submitted,errors:e.errors,onModelChange:e.onModelChange,onAction:e.onAction,onPersistAsync:e.onPersistAsync})})]})},$m=e=>e==="left"?{leftWidth:"col-md-8",rightWidth:"col-md-4"}:e==="right"?{leftWidth:"col-md-4",rightWidth:"col-md-8"}:{leftWidth:"col-md-6",rightWidth:"col-md-6"},go=qm;var Ae=require("@transferwise/components");var _e=require("react/jsx-runtime"),Gm=e=>{var t,r,o;if((t=e.icon)!=null&&t.name)return(0,_e.jsx)(Ae.Avatar,{type:Ae.AvatarType.ICON,children:(0,_e.jsx)(We,{type:e.icon.name})});if((r=e.icon)!=null&&r.text)return(0,_e.jsx)(Ae.Avatar,{type:Ae.AvatarType.INITIALS,children:e.icon.text});if((o=e.image)!=null&&o.url){let{url:a,text:n}=e.image;return(0,_e.jsx)("img",{src:a,alt:n})}},_m=e=>{let t=e.component,r=(o,a)=>{let n=Gm(o);return(0,_e.jsx)(Ae.NavigationOption,{title:o.title,content:o.description,disabled:o.disabled,media:n,showMediaCircle:!1,showMediaAtAllSizes:!0,onClick:()=>a(o.action)},JSON.stringify(o))};return(0,_e.jsx)("div",{className:z(t.margin),children:(0,_e.jsx)(Ae.NavigationOptionsList,{children:t.options.map(o=>r(o,e.onAction))})})},bo=_m;var Ln=require("react/jsx-runtime"),Wm=({component:e})=>{let r=`m-t-0 ${z(e.margin)}`;return(0,Ln.jsx)("hr",{className:r})},So=Wm;var Ct=require("@transferwise/components"),Pr=require("react"),Nn=require("react-intl");var Tn=require("react-intl"),Bn=(0,Tn.defineMessages)({retryTitle:{id:"dynamicFlows.DynamicExternal.retryTitle",defaultMessage:"Reopen window",description:""}});var Ke=require("react/jsx-runtime"),Km=({component:e,onAction:t})=>{let{requestUrl:r,responseHandlers:o,polling:a,retryTitle:n}=e,s=(0,Nn.useIntl)(),c=(0,Pr.useCallback)(()=>window.open(r,"df-external-window"),[r]);(0,Pr.useEffect)(()=>{c()},[c]);let m=a&&o?b(i({},a),{responseHandlers:o}):void 0;return xn(m,t),(0,Ke.jsxs)(Ke.Fragment,{children:[(0,Ke.jsx)(Ct.Loader,{size:Ct.Size.LARGE,classNames:{"tw-loader":"tw-loader m-x-auto"}}),(0,Ke.jsx)("br",{}),(0,Ke.jsx)(Ct.Button,{priority:"tertiary",block:!0,onClick:c,children:n||s.formatMessage(Bn.retryTitle)})]})},wo=Km;var Xi=require("react");var Rn=Ee(nt()),jn=require("react");var Pe=require("react/jsx-runtime"),Ym=(e,t)=>t.map(r=>ae(e,r)||{}),Jm=e=>e.reduce((t,r)=>i(i({},r),t),{}),Zm=e=>({"col-xs-12":!0,"col-sm-6":e==="md","col-sm-4":e==="sm"}),Un=e=>{let t=(a,n)=>{let s=e.schema.allOf[a];r[a]=ae(n.model,s)||{},o(r),e.onChange(b(i({},n),{model:Jm(r)}))},[r,o]=(0,jn.useState)(Ym(e.model,e.schema.allOf));return(0,Pe.jsxs)(Pe.Fragment,{children:[e.schema.title&&(0,Pe.jsx)("h3",{className:"page-header",children:e.schema.title}),e.schema.description&&(0,Pe.jsx)("p",{children:e.schema.description}),(0,Pe.jsx)("div",{className:"row",children:e.schema.allOf.map((a,n)=>(0,Pe.jsx)("div",{className:(0,Rn.default)(Zm(a.width)),children:(0,Pe.jsx)(me,{schema:a,model:r[n],errors:e.errors,submitted:e.submitted,disabled:e.disabled,onChange:s=>t(n,b(i({},s),{model:s.model})),onPersistAsync:e.onPersistAsync})},n))})]})};Un.defaultProps={disabled:!1};var Fo=Un;var Mr=require("@transferwise/components"),Qn=Ee(nt()),Wt=require("react");var kr=require("@transferwise/components"),Co=require("@transferwise/formatting"),Vn=require("react-intl");var zn=require("react-intl"),he=(0,zn.defineMessages)({type:{id:"dynamicFlows.ControlFeedback.type",defaultMessage:"Incorrect type",description:""},minimum:{id:"dynamicFlows.ControlFeedback.minimum",defaultMessage:"Please enter a number that's {minimum} or more.",description:""},maximum:{id:"dynamicFlows.ControlFeedback.maximum",defaultMessage:"Please enter a number that's {maximum} or less.",description:""},minLength:{id:"dynamicFlows.ControlFeedback.minLength",defaultMessage:"Please enter at least {minLength} characters.",description:""},maxLength:{id:"dynamicFlows.ControlFeedback.maxLength",defaultMessage:"Please enter {maxLength} or fewer characters.",description:""},minimumDate:{id:"dynamicFlows.ControlFeedback.minimumDate",defaultMessage:"Please enter a date that's on or after {minimum}.",description:""},maximumDate:{id:"dynamicFlows.ControlFeedback.maximumDate",defaultMessage:"Please enter a date that's on or before {maximum}.",description:""},pattern:{id:"dynamicFlows.ControlFeedback.pattern",defaultMessage:"Please enter this in the correct format.",description:""},patternDate:{id:"dynamicFlows.ControlFeedback.patternDate",defaultMessage:"Please enter a date in the corrrect format.",description:""},required:{id:"dynamicFlows.ControlFeedback.required",defaultMessage:"Please fill out this field.",description:""}});var Te=require("react/jsx-runtime"),Hn=e=>{var c;let t=Xm(e.schema),r=i(i(i({},t),e.validationMessages),e.schema.validationMessages),o=(e.submitted||!e.changed)&&!!e.errors,a=!o&&(e.submitted||e.changed&&e.blurred)&&!!((c=e.validations)!=null&&c.length),n=e.focused&&e.schema.description&&!a,s=!!e.infoMessage;return(0,Te.jsxs)("div",{children:[o?(0,Te.jsx)(kr.InlineAlert,{type:"error",children:e.errors}):null,a?(0,Te.jsx)(kr.InlineAlert,{type:"error",children:e.validations.map(m=>(0,Te.jsx)("div",{children:r[m]},m))}):null,(n||s)&&(0,Te.jsxs)(kr.InlineAlert,{type:"info",children:[n&&(0,Te.jsx)("div",{children:e.schema.description}),s&&(0,Te.jsx)("div",{children:e.infoMessage})]})]})};Hn.defaultProps={errors:"",validations:[],validationMessages:{},validationAsyncSuccessMessage:null};function Xm(e){let{formatMessage:t,locale:r}=(0,Vn.useIntl)(),o={type:t(he.type),minimum:t(he.minimum,{minimum:e.minimum}),maximum:t(he.maximum,{maximum:e.maximum}),minLength:t(he.minLength,{minLength:e.minLength}),maxLength:t(he.maxLength,{maxLength:e.maxLength}),pattern:t(he.pattern),required:t(he.required)};if(e.format==="date"){let a={pattern:t(he.patternDate),minimum:e.minimum?t(he.minimumDate,{minimum:(0,Co.formatDate)(new Date(e.minimum),r,{timeZone:"UTC",dateStyle:"long"})}):void 0,maximum:e.maximum?t(he.maximumDate,{maximum:(0,Co.formatDate)(new Date(e.maximum),r,{timeZone:"UTC",dateStyle:"long"})}):void 0};return i(i({},o),a)}return o}var Be=Hn;async function qn(e,t){if(t)return e;if(e instanceof Blob)return pn(e);throw new Error("Error creating payload for MultipleFileUploadSchema. Uploaded file is not an instance of Blob.")}function $n(e){let t=e.data;return i({id:t},e)}function Gn(e){let t=e instanceof Error;if(!(N(e)&&"data"in e)&&!t)return M(e)?e:void 0;if(t){let a=e;return{id:ve(),message:a.message}}else return i({message:M(e.message)?e.message:""},e)}var Jn=require("react-intl");var _n=require("react-intl"),Wn=(0,_n.defineMessages)({required:{id:"dynamicFlows.DefaultErrorMessages.required",defaultMessage:"Please fill out this field.",description:"Customer has left the required field empty"}});var Kn=require("react-intl"),Yn=(0,Kn.defineMessages)({minItemsError:{id:"dynamicFlows.MultipleFileUploadSchema.minItemsError",defaultMessage:"Please upload at least {minItems} file(s).",description:"Customer has uploaded not enough files. To fix: upload more files."},maxItemsError:{id:"dynamicFlows.MultipleFileUploadSchema.maxItemsError",defaultMessage:"Please upload {maxItems} or fewer files.",description:"Customer has uploaded too many files. To fix: upload fewer files."},maxFileSizeError:{id:"dynamicFlows.MultipleFileUploadSchema.maxFileSizeError",defaultMessage:"Sorry, that file is too big. Please upload a smaller file.",description:"Customer has uploaded a file that's too big. To fix: upload a smaller file."}});function Zn({maxItems:e,minItems:t}){let{formatMessage:r}=(0,Jn.useIntl)(),{maxFileSizeError:o,maxItemsError:a,minItemsError:n}=Yn;return{maxFileSizeErrorMessage:r(o),maxItemsErrorMessage:r(a,{maxItems:e}),minItemsErrorMessage:r(n,{minItems:t}),requiredMessage:r(Wn.required)}}var xt=require("react/jsx-runtime"),ei=e=>{var x,E;let{onChange:t,schema:r}=e,o=Q(),a=Zn(r),n=(0,Wt.useMemo)(()=>r.$id||ve(),[r.$id]),[s,c]=(0,Wt.useState)(!1),[m,p]=(0,Wt.useState)(()=>Qm(e.model||[])),u=ti(r.items.persistAsync),g=r.items.persistAsync.schema,y=at(g),l=async L=>{c(!0);try{let k=await qn(L,y);o("Dynamic Flow - PersistAsync",{status:"pending",schemaId:r.$id});let T=await u(k);return o("Dynamic Flow - PersistAsync",{status:"success",schemaId:r.$id}),$n(T)}catch(k){return o("Dynamic Flow - PersistAsync",{status:"failure",schemaId:r.$id}),Promise.reject(Gn(k))}};function d(L){if(fn(L,m))return;p(L);let T=Xn(L).map(H=>H.id);t({model:T,triggerSchema:r,triggerModel:T})}let h=Xn(m).map(L=>L.id),S=wt(h,r,e.required),O=!!e.errors||(s||e.submitted)&&!!S.length,w="accepts"in g&&g.accepts,v="maxSize"in g&&g.maxSize,P=b(i(i({multiple:!0,className:"form-control",files:m,fileInputName:n,id:n},w?{fileTypes:w}:void 0),v?{sizeLimit:Fr(v)}:void 0),{sizeLimitErrorMessage:((x=g.validationMessages)==null?void 0:x.maxSize)||a.maxFileSizeErrorMessage,maxFiles:e.schema.maxItems,maxFilesErrorMessage:((E=e.schema.validationMessages)==null?void 0:E.maxItems)||a.maxItemsErrorMessage,uploadButtonTitle:g.title,description:g.description,disabled:e.disabled,onUploadFile:L=>l(L.get(n)),onFilesChange:d,onDeleteFile:()=>Promise.resolve()});return(0,xt.jsxs)("div",{className:(0,Qn.default)("form-group",{"has-error":O}),children:[(0,xt.jsx)("label",{className:"d-block control-label",htmlFor:n,children:e.schema.title}),(0,xt.jsx)(Mr.UploadInput,i({},P)),(0,xt.jsx)(Be,{changed:s,submitted:e.submitted,errors:e.errors,schema:e.schema,validations:S,validationMessages:td(r,!!e.required,a),infoMessage:null,focused:!1,blurred:!0})]})};ei.defaultProps={errors:null,required:!1};var xo=ei;function Xn(e){return e.filter(t=>!t.error&&t.status==="succeeded")}function Qm(e){return e.map(t=>ed(t)?{id:t,status:Mr.Status.SUCCEEDED}:null).filter(t=>t!==null)}function ed(e){return B(e)||M(e)}function td(e,t,r){let{minItems:o,maxItems:a}=e;return i(i(i({},t&&{required:r.requiredMessage}),o&&{minItems:r.minItemsErrorMessage}),a&&{maxItems:r.maxItemsErrorMessage})}var ai=require("react/jsx-runtime"),ri=e=>{let{schema:t}=e;if(Ga(t))return(0,ai.jsx)(xo,b(i({},e),{schema:t}));throw new Error("Not implemented")};ri.defaultProps={errors:null,required:!1};var oi=ri;var ii=require("react/jsx-runtime"),ni=e=>{let{schema:t}=e;if(Ie(t))return(0,ii.jsx)(oi,i({},e));throw new Error("Not implemented")};ni.defaultProps={required:!1};var Oo=ni;var si=Ee(nt()),Er=require("react");var Ne=require("react/jsx-runtime"),rd=e=>({"col-xs-12":!0,"col-sm-6":e==="md","col-sm-4":e==="sm"}),li=e=>{let[t,r]=(0,Er.useState)(()=>i({},ae(e.model,e.schema))),o=(p,u)=>{u.model!==null?t[p]=u.model:delete t[p],r(t),e.onChange(b(i({},u),{model:t}))},a=p=>e.schema.required&&e.schema.required.includes(p);(0,Er.useEffect)(()=>{let p=ae(t,e.schema)||{};r(p),Ge(p,t)||e.onChange({model:p,triggerSchema:e.schema,triggerModel:p})},[e.schema]);let n=new Set([...e.schema.displayOrder||[],...Object.keys(e.schema.properties)]),s=p=>typeof e.schema.properties[p]!="undefined",c=Array.from(n).filter(s),m=e.errors;return(0,Ne.jsxs)("fieldset",{children:[e.schema.title&&!e.hideTitle&&(0,Ne.jsxs)("legend",{children:[" ",e.schema.title," "]}),e.schema.description&&!e.hideTitle&&(0,Ne.jsxs)("p",{children:[" ",e.schema.description," "]}),e.schema.alert&&(0,Ne.jsx)(ne,{component:e.schema.alert}),(0,Ne.jsx)("div",{className:"row",children:c.map(p=>(0,Ne.jsx)("div",{className:(0,si.default)(rd(e.schema.properties[p].width)),children:(0,Ne.jsx)(me,{schema:e.schema.properties[p],model:e.model&&e.model[p],errors:m&&m[p],submitted:e.submitted,required:a(p),disabled:e.disabled,onChange:u=>o(p,u),onPersistAsync:e.onPersistAsync})},p))})]})};li.defaultProps={hideTitle:!1,disabled:!1};var Kt=li;var Mi=Ee(nt()),ke=require("react");var Ir=require("@transferwise/components"),di=require("react-intl");var ci=require("react-intl"),mi=(0,ci.defineMessages)({helpAria:{id:"dynamicFlows.Help.ariaLabel",defaultMessage:"Click here for more info.",description:"Aria label for help."}});var vo=require("react/jsx-runtime"),od=e=>{let t=(0,di.useIntl)();return(0,vo.jsx)(Ir.Info,{className:"m-l-1",content:(0,vo.jsx)(Ir.Markdown,{children:e.help.markdown}),presentation:"POPOVER",size:"sm","aria-label":t.formatMessage(mi.helpAria)})},Ot=od;var vi=require("react");var _=require("@transferwise/components"),yi=require("react");var vt=(e,t={})=>{let{coerceValue:r=!1}=t;if(!A(e)){if(N(e)){lt({received:"object",expected:"string"});return}if(!M(e)){if(r)return Po({received:typeof e,expected:"string"}),String(e);lt({received:typeof e,expected:"string"});return}return e}},Ao=(e,t={})=>{let{coerceValue:r=!1}=t;if(A(e))return;if(B(e))return e;let o={received:typeof e,expected:"string or number"};if(N(e)){lt(o);return}if(!M(e)){if(r)return Po(o),String(e);lt(o);return}return e},ui=(e,t={})=>{let{coerceValue:r=!1}=t;if(A(e))return!1;if(!Oe(e)){if(r)return Po({received:typeof e,expected:"boolean"}),!!e;lt({received:typeof e,expected:"boolean"});return}return e},pi=e=>{if(!A(e)){if(!(e instanceof Date)&&!M(e)){lt({received:typeof e,expected:"string or Date"});return}return e}},fi=e=>{if(A(e))return null;if(!M(e))return lt({received:typeof e,expected:"string",fallback:"null"}),null;let t=mn(e);return t===null&&console.warn("Incorrectly formatted date string. Falling back to null."),t},Po=({received:e,expected:t})=>{console.warn(`Value with type ${e} passed to control that only accepts type ${t}. Type will be coerced, but this behaviour will change in the future, so please fix your code.`)},lt=({received:e,expected:t,fallback:r="undefined"})=>{console.warn(`Value with type ${e} passed to control that only accepts type ${t}. Falling back to ${r}`)};var Y=require("react/jsx-runtime"),At=class extends yi.PureComponent{constructor(r){super(r);this.getAutocompleteStatus=()=>this.props.autoComplete?"on":"disabled";this.handleOnChange=r=>{this.props.onChange(r)};this.handleInputOnChange=r=>{this.props.onChange(r.target.value)};this.handleOnFocus=()=>{var r,o;(o=(r=this.props).onFocus)==null||o.call(r)};this.handleOnBlur=()=>{var r,o;(o=(r=this.props).onBlur)==null||o.call(r)};this.getSelectedOption=r=>{if(this.state.selectedOption!==null&&typeof this.state.selectedOption!="undefined")return r.find(o=>{var a;return((a=this.state.selectedOption)==null?void 0:a.value)===o.value});if(this.props.value!==null&&typeof this.props.value!="undefined")return r.find(o=>this.props.value===o.value)};this.mapOption=r=>b(i({},r),{value:B(r.value)||M(r.value)?r.value:void 0,disabled:r.disabled||this.props.disabled,readOnly:this.props.readOnly});this.state={selectedOption:r.selectedOption,touched:!1,prevValue:r.value}}static getDerivedStateFromProps(r,o){return o.prevValue!==r.value?{prevValue:r.value,value:r.value}:null}render(){var H;let{name:r,placeholder:o,step:a,countryCode:n,type:s,options:c,disabled:m,readOnly:p,required:u,minLength:g,maxLength:y,min:l,max:d,searchPlaceholder:f,searchValue:h,onSearchChange:S,size:O,uploadProps:w,label:v,monthFormat:P,id:x,minDate:E,maxDate:L,value:k,mode:T}=this.props;switch(s){case R.RADIO:return(0,Y.jsx)(_.RadioGroup,{radios:c.map(this.mapOption),name:r,selectedValue:Ao(k,{coerceValue:!0}),onChange:this.handleOnChange});case R.CHECKBOX:return(0,Y.jsx)(_.Checkbox,{checked:ui(k,{coerceValue:!0}),disabled:m,label:v,required:u,readOnly:p,onChange:this.handleOnChange,onBlur:this.handleOnBlur,onFocus:this.handleOnFocus});case R.SELECT:{let F=c.length>=20;return(0,Y.jsx)(_.Select,{id:x,selected:this.getSelectedOption(c),options:c,search:F,required:u,disabled:m,placeholder:o,searchPlaceholder:f,searchValue:h,onChange:j=>{var I;this.setState({selectedOption:j!=null?j:void 0}),this.props.onChange((I=j==null?void 0:j.value)!=null?I:null)},onFocus:this.handleOnFocus,onBlur:this.handleOnBlur,onSearchChange:F?S:void 0})}case R.TAB:return(0,Y.jsx)(_.Tabs,{selected:((H=this.getSelectedOption(c))==null?void 0:H.value)||0,tabs:c.map(F=>({title:F.label,content:(0,Y.jsx)(Y.Fragment,{}),disabled:F.disabled||!1})),name:x,onTabSelect:F=>{let j=!!this.state.selectedOption;this.setState({selectedOption:c.find(I=>I.value===F)}),this.props.onChange(F,j?"user":"init")}});case R.NUMBER:return(0,Y.jsx)("input",{autoComplete:this.getAutocompleteStatus(),className:"form-control",disabled:m,id:x,max:d,min:l,placeholder:o,readOnly:p,required:u,step:a,type:"number",value:Ao(k,{coerceValue:!0}),onBlur:this.handleOnBlur,onChange:F=>{this.props.onChange(parseFloat(F.target.value))},onFocus:this.handleOnFocus,onWheel:F=>{F.target instanceof HTMLElement&&F.target.blur()}});case R.HIDDEN:return(0,Y.jsx)("input",{type:"hidden",name:r,value:vt(k,{coerceValue:!0}),id:x});case R.PASSWORD:return(0,Y.jsx)("input",{autoComplete:this.getAutocompleteStatus(),className:"form-control",disabled:m,id:x,placeholder:o,readOnly:p,required:u,type:"password",value:vt(k,{coerceValue:!0}),onBlur:this.handleOnBlur,onChange:this.handleInputOnChange,onFocus:this.handleOnFocus});case R.DATE:case R.DATETIME:return(0,Y.jsx)(_.DateInput,{disabled:m,size:O,value:pi(k),mode:T,monthFormat:P,onBlur:this.handleOnBlur,onChange:this.handleOnChange,onFocus:this.handleOnFocus});case R.DATELOOKUP:return(0,Y.jsx)(_.DateLookup,{value:fi(k),min:E,max:L,placeholder:o,monthFormat:P,disabled:m,onChange:F=>{this.handleOnChange(dn(F))},onBlur:this.handleOnBlur,onFocus:this.handleOnFocus});case R.TEL:return(0,Y.jsx)(_.PhoneNumberInput,{disabled:m,countryCode:n,placeholder:o,required:u,searchPlaceholder:f,size:O,initialValue:vt(k),onBlur:this.handleOnBlur,onChange:this.handleOnChange,onFocus:this.handleOnFocus});case R.TEXTAREA:{let F={className:"form-control tw-form-control",id:x,name:r,placeholder:o,value:vt(k,{coerceValue:!0}),readOnly:p,required:u,minLength:g,maxLength:y,onFocus:this.handleOnFocus,onBlur:this.handleOnBlur,disabled:m,autoComplete:this.getAutocompleteStatus()};return this.props.displayPattern?(0,Y.jsx)(_.TextareaWithDisplayFormat,b(i({displayPattern:this.props.displayPattern},F),{onChange:this.handleOnChange})):(0,Y.jsx)("textarea",b(i({},F),{onChange:this.handleInputOnChange}))}case R.FILE:case R.UPLOAD:return(0,Y.jsx)(_.Upload,b(i({},w),{usAccept:w.usAccept||"*",usDisabled:w.usDisabled||m,onSuccess:F=>{this.handleOnChange(F)},onFailure:()=>{this.handleOnChange(null)},onCancel:()=>{this.handleOnChange(null)}}));case R.TEXT:default:{let F={type:"text",className:"form-control",id:x,name:r,placeholder:o,value:vt(k,{coerceValue:!0}),readOnly:p,required:u,minLength:g,maxLength:y,onFocus:this.handleOnFocus,onBlur:this.handleOnBlur,disabled:m,autoComplete:this.getAutocompleteStatus()};return this.props.displayPattern?(0,Y.jsx)(_.InputWithDisplayFormat,b(i({displayPattern:this.props.displayPattern},F),{onChange:this.handleOnChange})):(0,Y.jsx)("input",b(i({},F),{onChange:this.handleInputOnChange}))}}}},ge=At;ge.Type=R,ge.Size=gn,ge.MonthFormat=hn,ge.DateMode=yn,ge.defaultProps={autoComplete:!0,countryCode:null,disabled:!1,displayPattern:null,id:null,label:"",max:null,maxDate:null,maxLength:null,min:null,minDate:null,minLength:null,mode:At.DateMode.DAY_MONTH_YEAR,monthFormat:At.MonthFormat.LONG,onBlur:null,onFocus:null,onSearchChange:null,options:[],placeholder:null,readOnly:!1,required:!1,searchPlaceholder:null,searchValue:"",selectedOption:null,size:At.Size.MEDIUM,step:1,type:At.Type.TEXT,uploadProps:{},value:null};var Ye=require("@transferwise/components");var gi=require("react/jsx-runtime"),Pt=e=>ko.some(t=>e===`flag-${t}`),hi=({name:e})=>{if(!Pt(e))return null;let t=e.substring(5);return(0,gi.jsx)("img",{src:`https://wise.com/web-art/assets/flags/${t}.svg`,alt:"","data-testid":`img-flag-${t}`})},ko=["aed","ars","aud","bdt","bgn","bnd","brl","bwp","cad","chf","clp","cny","cop","crc","czk","dkk","egp","eur","fjd","gbp","gel","ghs","hkd","hrk","huf","idr","ils","imp","inr","jpy","kes","krw","lak","lkr","lsl","mad","mxn","myr","mzn","nad","ngn","nok","npr","nzd","pab","pen","php","pkr","pln","ron","rub","sek","sgd","thb","tmt","try","tzs","uah","ugx","usd","uyu","vnd","xof","zar","zmw"];var bi=Ee(require("@transferwise/icons")),Fi=require("react/jsx-runtime"),Dr=e=>{let t=wi(e);return Object.keys(bi).includes(t)},Si=({name:e})=>{if(!Dr(e))return null;let t=wi(e),r=bi[t];return(0,Fi.jsx)(r,{size:24})},wi=e=>e.split("-").map(ad).join(""),ad=e=>{var t;return`${(t=e[0])==null?void 0:t.toUpperCase()}${e.slice(1)}`};var Mo=require("react/jsx-runtime"),nd=({type:e})=>Pt(e)?(0,Mo.jsx)(hi,{name:e}):Dr(e)?(0,Mo.jsx)(Si,{name:e}):null;function Eo(e){return Dr(e)||Pt(e)}var We=nd;var be=require("react/jsx-runtime"),Ci=(e,t)=>{switch(t){case"select":return sd(e);case"radio":default:return id(e)}},id=e=>i(i(i({label:e.title,value:e.const},xi(e.title,e.description)),kt(e)),Oi(e.disabled)),sd=e=>i(i(i(i(i({label:e.title,value:e.const},xi(e.title,e.description)),md(e.icon)),cd(e.image)),Oi(e.disabled)),ld(e.keywords)),ld=e=>q(e)?{searchStrings:e}:{},cd=e=>e!=null&&e.url?{icon:(0,be.jsx)("div",{className:"media",children:(0,be.jsx)("div",{className:"np-option__no-media-circle",children:(0,be.jsx)("img",{src:e.url,alt:e.name||""})})})}:null,md=e=>e!=null&&e.name&&Pt(e.name)?{currency:e.name.substring(5)}:e!=null&&e.name&&Eo(e.name)?{icon:(0,be.jsx)(We,{type:e.name})}:e!=null&&e.text?{icon:(0,be.jsx)("span",{children:e.text})}:null,kt=({image:e,icon:t})=>e!=null&&e.url?{avatar:(0,be.jsx)(Ye.Avatar,{type:Ye.AvatarType.THUMBNAIL,children:(0,be.jsx)("img",{src:e.url,alt:""})})}:t!=null&&t.name&&Eo(t.name)?{avatar:(0,be.jsx)(Ye.Avatar,{type:Ye.AvatarType.ICON,children:(0,be.jsx)(We,{type:t.name})})}:t!=null&&t.text?{avatar:(0,be.jsx)(Ye.Avatar,{type:Ye.AvatarType.INITIALS,children:t.text})}:null,Lr=({accepts:e})=>i({},q(e)&&{usAccept:e.join(",")}),xi=(e,t)=>{if(e&&t)return{[(e+t).length>50?"secondary":"note"]:t}},Oi=e=>{if(!K(e)&&!A(e))return{disabled:e}};var Pi=require("react/jsx-runtime"),dd=e=>e==="string"||e==="number",Io=e=>{if(oe(e))return e.control===R.TAB&&e.oneOf.length>3?R.SELECT:e.oneOf.length===2&&!e.control?R.RADIO:e.control||R.SELECT;if("control"in e&&e.control)return e.control;if(e.type==="string")switch(e.format){case"date":return"date";case"password":return"password";case"phone-number":return"tel";case"base64url":return"file";default:return"text"}return e.type==="boolean"?"checkbox":e.type==="integer"?"number":e.type},ud=(e,t)=>e.oneOf?e.oneOf.map(r=>Ci(r,t)):null,Ai=e=>{let{id:t,schema:r,value:o,disabled:a,onChange:n,onFocus:s,onBlur:c,onSearchChange:m}=e,p=ht(),u=S=>dd(r.type)&&(A(S)||K(S))?"":S,g=(S,O)=>{n(De(S,r),O)},y=Io(r);(0,vi.useEffect)(()=>{pd(r,p,y)},[r,p,y]);let l=r.values||ud(r,y),d={onFocus:s,onBlur:c,onSearchChange:m,onChange:g},f=u(o),h={id:t,name:t,label:r.title,options:l||[],placeholder:r.placeholder,autoComplete:!r.help,disabled:a||r.disabled,displayPattern:r.displayFormat,uploadProps:Lr(r)};return(0,Pi.jsx)(ge,i(i({type:y,value:f},d),h))};Ai.defaultProps={value:null,onFocus:null,onBlur:null,onSearchChange:null,disabled:!1};var pd=(e,t,r)=>{oe(e)&&e.oneOf.length===2&&!e.control&&t.warning("Deprecation warning",'A oneOf schema with 2 options and no control type currently renders as a "radio" but will be changed to render as a "select". Please specify control radio to retain the existing behaviour.'),r==="file"&&t.warning("Deprecation warning","Please use a persist-async blob schema instead of string with base64url for file uploads. The base64url does not perform well on low end devices. Support for this schema will be removed in a later release."),e.values&&t.warning("Deprecated schema","Schema.values is a legacy approach. Please use oneOf.")},Yt=Ai;function Re(e){return!K(e==null?void 0:e.const)}function Jt(e){return!!e&&!Re(e)}var ki=(e,t)=>{let r=Zt(e,t);if(r>=0)return r;if(e.oneOf.length===1&&Jt(e.oneOf[0]))return 0;if(Re(e.oneOf[0])){let o=Zt(e,e.default);if(o>=0)return o}return Ut(e)&&Z(t)&&Object.keys(t).length>=1?Tr(e,t):Ut(e)&&!K(e.default)&&Z(e.default)&&Object.keys(e.default).length>=1?Tr(e,e.default):null},Zt=(e,t)=>e.oneOf.findIndex(r=>!K(t)&&G(t,r));function Tr(e,t){if(t==null)return null;let r=e.oneOf.map(o=>fd(o).reduce((a,[n,s])=>Re(s)&&s.const===t[n]?a+2:Jt(s)&&typeof t[n]!="undefined"?a+1:a,0));return r.every(o=>o===r[0])?null:r.indexOf(Math.max(...r))}function fd(e){return e.properties!==null&&typeof e.properties=="object"?Object.entries(e.properties):[]}var te=require("react/jsx-runtime"),Ei=e=>{let t=Q(),[r,o]=(0,ke.useState)(!1),[a,n]=(0,ke.useState)(!1),[s,c]=(0,ke.useState)(!1),m=(0,ke.useMemo)(()=>e.schema.$id||ve(),[e.schema.$id]),[p,u]=(0,ke.useState)(ki(e.schema,e.model)),[g,y]=(0,ke.useState)(bd(e.model,e.schema.oneOf)),l=Fn(t,200),d=x=>{l("Dynamic Flow - OneOf Searched",{oneOfId:e.schema.analyticsId,searchValueLength:x.length})};if((0,ke.useEffect)(()=>{let x=Zt(e.schema,e.model),E=Zt(e.schema,e.schema.default);x===-1&&E>=0&&O(E,"init")},[e.schema]),!q(e.schema.oneOf))return console.error("Incorrect format",e.schema),null;let f=(x,E)=>{y([...g.slice(0,x),E.model,...g.slice(x+1)]),o(!0),e.onChange(E)},h=()=>{n(!0)},S=()=>{n(!1),c(!0)},O=(x,E)=>{u(x);let L=e.schema.oneOf[x];if(Re(L)){let k=L.const;e.onChange({model:k,triggerSchema:e.schema,triggerModel:k,type:E})}else e.onChange({model:g[x],triggerSchema:L,triggerModel:g[x],type:E});E!=="init"&&e.schema.analyticsId&&t("Dynamic Flow - OneOf Selected",{oneOfId:e.schema.analyticsId,schemaId:L==null?void 0:L.analyticsId})},w=Sd(e.schema),v=hd(e,p),P={"form-group":!0,"has-error":!r&&e.errors&&!St(e.errors)||(e.submitted||r&&s)&&v.length};return(0,te.jsxs)(te.Fragment,{children:[(e.schema.oneOf.length>1||Re(e.schema.oneOf[0]))&&(0,te.jsxs)(te.Fragment,{children:[(0,te.jsxs)("div",{className:(0,Mi.default)(P),children:[yd(e.schema,m),(0,te.jsx)(Yt,{id:m,schema:w,value:p,disabled:e.disabled,onChange:O,onFocus:h,onBlur:S,onSearchChange:d}),(0,te.jsx)(Be,{changed:r,focused:a,blurred:s,submitted:e.submitted,errors:gd(e.errors),schema:e.schema,validations:v,infoMessage:null})]}),e.schema.alert&&(0,te.jsx)(ne,{component:e.schema.alert})]}),Jt(e.schema.oneOf[p])&&(0,te.jsx)(me,{schema:e.schema.oneOf[p],model:g[p],errors:e.errors,submitted:e.submitted,hideTitle:!0,disabled:e.disabled,onChange:x=>f(p,x),onPersistAsync:e.onPersistAsync})]})};function yd(e,t){let r=e.help?(0,te.jsx)(Ot,{help:e.help}):null,o=Re(e.oneOf[0])?(0,te.jsxs)("label",{className:"control-label d-inline",htmlFor:t,children:[e.title," ",r]}):(0,te.jsxs)("h4",{className:"m-b-2",children:[e.title," ",r]});return e.title?o:r}function hd(e,t){let r=e.schema.oneOf[t!=null?t:-1];return Re(r)?$e(r.const,e.schema,!!e.required):t===null||t<0?$e(null,e.schema,!!e.required):[]}function gd(e){return typeof e=="string"?e:null}function bd(e,t){return t.map(r=>Ht(e,r))}function Sd(e){return b(i({},e),{oneOf:e.oneOf.map(wd)})}function wd(e,t){let{title:r,description:o,disabled:a=!1,icon:n,image:s,keywords:c}=e;return{title:r,description:o,disabled:a,icon:n,image:s,const:t,keywords:c}}Ei.defaultProps={required:!1,disabled:!1};var Do=Ei;var Ti=Ee(nt()),ct=require("react");var Br=require("@transferwise/components"),Ii=require("react");var Li=require("react/jsx-runtime"),Di=e=>{let{id:t,httpClient:r=fetch,httpOptions:o,fileId:a,idProperty:n,usAccept:s,maxSize:c,usPlaceholder:m,onSuccess:p,onFailure:u,onCancel:g}=e,y=Q(),l=(0,Ii.useMemo)(()=>a?[{id:a,status:Br.Status.SUCCEEDED}]:[],[a]),d=f=>(y("Dynamic Flow - PersistAsync",{status:"pending",schemaId:t}),r(`${o.url}`,{method:o.method||"POST",body:f}).then(h=>h.ok?(p&&p(h.clone()),h.json().then(S=>({id:S[n]}))):(u&&u({response:h}),Promise.reject())));return(0,Li.jsx)(Br.UploadInput,{id:t,fileInputName:o.fileInputName,files:l,uploadButtonTitle:e.usLabel,sizeLimit:c?Fr(c):void 0,fileTypes:s,description:m,onUploadFile:d,onDeleteFile:f=>(g&&g(),Promise.resolve())})};var Xt=require("react/jsx-runtime"),Bi=e=>{let[t,r]=(0,ct.useState)({}),[o,a]=(0,ct.useState)(null),[n,s]=(0,ct.useState)([]),[c,m]=(0,ct.useState)(!1),p=re(),u=Q();(0,ct.useEffect)(()=>{e.submitted&&s($e(e.model,e.schema,!!e.required))},[e.model,e.submitted]);let y=async(w,v)=>{let P=await w.json(),x=Bo(e.schema.persistAsync.idProperty,P);e.onChange({model:x,triggerSchema:e.schema,triggerModel:x}),m(!0),u("Dynamic Flow - PersistAsync",{status:"success",schemaId:e.schema.$id})},l=async w=>{if(w.response&&pr(w.response.status)){let v=await w.response.json();r(v.validation||{}),a([e.schema.persistAsync.param])}e.onChange({model:null,triggerSchema:e.schema,triggerModel:null}),m(!0),u("Dynamic Flow - PersistAsync",{status:"failure",schemaId:e.schema.$id})},d=()=>{a(null),e.onChange({model:null,triggerSchema:e.schema,triggerModel:null}),m(!0)},{url:f,method:h}=e.schema.persistAsync,S=o||n,O={"form-group":!0,"has-error":(e.submitted||c)&&!!S.length};return(0,Xt.jsxs)("div",{className:(0,Ti.default)(O),children:[(0,Xt.jsx)(Di,i({id:e.schema.$id||e.schema.persistAsync.schema.$id||e.schema.persistAsync.idProperty,fileId:e.model,idProperty:e.schema.persistAsync.idProperty,animationDelay:0,maxSize:e.schema.persistAsync.schema.maxSize,usLabel:e.schema.title||e.schema.persistAsync.schema.title,usPlaceholder:e.schema.description||e.schema.persistAsync.schema.description,httpOptions:{url:f,method:h,fileInputName:e.schema.persistAsync.param},httpClient:p,onSuccess:y,onFailure:l,onCancel:d},Lr(e.schema.persistAsync.schema))),(0,Xt.jsx)(Be,{blurred:!0,focused:!1,changed:c,submitted:e.submitted,errors:e.errors,schema:e.schema,validations:S,validationMessages:i({required:"Value is required..."},t),infoMessage:null})]})};Bi.defaultProps={required:!1};var To=Bi;var No=require("react/jsx-runtime"),Ni=e=>{let{schema:t}=e;return t.persistAsync.schema.type==="blob"?(0,No.jsx)(To,i({},e)):(0,No.jsx)(Lo,i({},e))};Ni.defaultProps={required:!1};var Ro=Ni;var _i=require("react");var Ri=(e,t)=>{let r=Tr(e,t);return r!==null?e.oneOf[r].promoted?"promoted":"other":null};var ji=require("@transferwise/components"),jo=require("react/jsx-runtime"),Ui=e=>{let{id:t,selection:r,setSelection:o}=e,{promoted:a,other:n,checkedMeans:s}=e.promotion,c=s==="other"?n.title:(a==null?void 0:a.title)||e.promotedOneOf.title,m=s==="other"?"other":"promoted",p=s==="other"?"promoted":"other",u=r===m;return(0,jo.jsx)("div",{className:"form-group",children:(0,jo.jsx)(ji.Checkbox,{id:t,label:c,checked:u,onChange:()=>{o(u?p:m)}})})};Ui.defaultProps={};var zi=Ui;var Vi=require("@transferwise/components");var Qt=require("react/jsx-runtime"),Hi=e=>{var m,p;let{id:t,selection:r,setSelection:o,promotion:a,promotedOneOf:n,title:s}=e,c=[i({value:"promoted",label:((m=a.promoted)==null?void 0:m.title)||n.title,secondary:((p=a.promoted)==null?void 0:p.description)||n.description},kt(n)),i({value:"other",label:a.other.title,secondary:a.other.description},kt(a.other))];return(0,Qt.jsxs)("div",{className:"form-group",children:[s&&(0,Qt.jsx)("label",{className:"control-label",htmlFor:t,children:s}),(0,Qt.jsx)(Vi.RadioGroup,{name:"promoted-selection",selectedValue:r,radios:c,id:t,onChange:o})]})};Hi.defaultProps={title:void 0};var qi=Hi;var Mt=require("react/jsx-runtime"),$i=e=>{switch(e.promotion.control||"radio"){case"radio":return(0,Mt.jsx)(qi,i({},e));case"checkbox":return(0,Mt.jsx)(zi,i({},e));default:return(0,Mt.jsx)(Mt.Fragment,{})}};$i.defaultProps={id:ve(),title:void 0};var Gi=$i;var je=require("react/jsx-runtime"),Wi=e=>e.promoted===!0,Fd=e=>{var c;let[t,r]=(0,_i.useState)(Ri(e.schema,e.model)||((c=e.schema.promotion)==null?void 0:c.default)||"promoted"),o=e.schema.alert,a=e.schema.oneOf.find(Wi),n=Cd(a),s=xd(e.schema);return(0,je.jsxs)(je.Fragment,{children:[o&&(0,je.jsx)(ne,{component:o}),(0,je.jsx)(Gi,{id:e.schema.$id,title:e.schema.title,promotedOneOf:a,promotion:e.schema.promotion,selection:t,setSelection:r}),t==="promoted"&&(0,je.jsx)(Kt,b(i({},e),{schema:n})),t==="other"&&(0,je.jsx)(me,b(i({},e),{schema:s}))]})};function Cd(e){return b(i({},e),{title:void 0,description:void 0})}function xd(e){var o,a,n;let t=(o=e.promotion)!=null&&o.displayTwice?[...e.oneOf]:e.oneOf.filter(s=>!Wi(s)),r=(n=(a=e.promotion)==null?void 0:a.other.heading)==null?void 0:n.text;return t.length===1?b(i({},t[0]),{title:r}):t.length>1?{title:r,oneOf:t,control:e.control}:null}var Uo=Fd;var Nr=require("@transferwise/components"),Yi=require("react-intl");var Ki=require("react-intl"),zo=(0,Ki.defineMessages)({yes:{id:"dynamicFlows.ReadOnlySchema.yes",defaultMessage:"Yes",description:"Yes, used for boolean schemas with a value of true."},no:{id:"dynamicFlows.ReadOnlySchema.no",defaultMessage:"No",description:"No: used for boolean schemas with a value of false."}});var Et=require("react/jsx-runtime"),Od=({schema:e,model:t})=>{let{title:r=""}=e,{formatMessage:o}=(0,Yi.useIntl)(),a=vd({schema:e,model:t,formatMessage:o});return(0,Et.jsx)(Nr.DefinitionList,{layout:Nr.Layout.VERTICAL_ONE_COLUMN,definitions:[{title:r,value:a,key:""}]})},Vo=Od;function vd({schema:e,model:t,formatMessage:r}){return pe(e)?oe(e)?Ad(e,t):e.type==="boolean"&&Oe(t)?r(t?zo.yes:zo.no):t&&t.toString()||"":""}function Ad(e,t){let r=Pd(e,t);return r?kd(r):t}function Pd(e,t){return e.oneOf.find(r=>"const"in r?t===r.const:!1)}function kd(e){let t=e.title&&e.description?`${e.title} - ${e.description}`:e.title||"",r=kt({icon:e.icon});return r!=null&&r.avatar?(0,Et.jsxs)(Et.Fragment,{children:[r.avatar," ",t]}):t}var Me=require("react");var Zi=require("react/jsx-runtime"),Ji=e=>{let{schema:t,model:r,required:o,submitted:a,errors:n,onChange:s}=e,[c,m]=(0,Me.useState)(r),p=(0,Me.useRef)(null),[u,g]=(0,Me.useState)(null),[y,l]=(0,Me.useState)(null),[d,f]=(0,Me.useState)(!1),[h,S]=(0,Me.useState)(null),O=re(),w=Q(),v=ht();(0,Me.useEffect)(()=>{t.validationAsync.method||v.warning("Invalid schema or model",'ValidationAsyncSchema without a "method" property would have defaulted to "GET" in previous versions. Now defaults to "POST".',{})},[v,t.validationAsync.method]);let P=async(T,H)=>{let F=x(),j={[H.param]:T};p.current=T,f(!0),w("Dynamic Flow - ValidationAsync",{status:"pending"});let I=await O(H.url,{method:H.method||"POST",headers:{"Content-Type":"application/json"},body:H.method==="GET"?void 0:JSON.stringify(j),signal:F});try{let $=await I.json();if(!N($))throw new Error("Response body is not an object");w("Dynamic Flow - ValidationAsync",{status:"success"}),I.status===200?g(M($.message)?$.message:null):I.status===422&&l(M($.message)?$.message:null)}catch($){w("Dynamic Flow - ValidationAsync",{status:"failure"})}},x=()=>{h&&h.abort();let T=new AbortController;return S(T),T.signal};return(0,Zi.jsx)(mt,i({},{submitted:a||d,model:c,errors:y||n,infoMessage:u,onChange:T=>{s(b(i({},T),{triggerSchema:t,triggerModel:T.model})),l(null),g(null),G(T.model,t)&&m(T.model)},onBlur:()=>{!A(c)&&!Ge(c,p.current)&&P(c,t.validationAsync)},required:o,schema:t}))};Ji.defaultProps={required:!1};var Ho=Ji;var de=require("react/jsx-runtime"),Qi=require("react"),Md=e=>{let{schema:t,model:r=null,errors:o=null,hideTitle:a=!1,disabled:n=!1}=e,s=b(i({},e),{model:r,errors:o,hideTitle:a,disabled:n}),c=Cr(t),m=ht();switch((0,Xi.useEffect)(()=>{Ed(t,r,o)||m.error("Invalid schema or model",`Schema of type ${c||"undefined"} requested, but schema did not pass validation.`)},[t,r,o,c,m]),c){case"readOnly":return(0,de.jsx)(Vo,i({},s));case"persistAsync":return(0,de.jsx)(Ro,i({},s));case"validationAsync":return(0,de.jsx)(Ho,i({},s));case"basic":{let p=i({infoMessage:null},s);return(0,de.jsx)(mt,i({},p))}case"object":return(0,Qi.createElement)(Kt,b(i({},s),{key:JSON.stringify(t)}));case"array":return(0,de.jsx)(Oo,i({},s));case"promotedOneOf":return(0,de.jsx)(Uo,i({},s));case"oneOf":return(0,de.jsx)(Do,i({},s));case"allOf":return(0,de.jsx)(Fo,i({},s))}return(0,de.jsx)(de.Fragment,{})},me=Md,Ed=(e,t,r)=>{switch(Cr(e)){case"persistAsync":return bt(e)&&Ha(t)&&gt(r);case"validationAsync":return Vt(e)&&ao(t)&&gt(r);case"basic":return pe(e)&&ao(t)&&gt(r);case"object":return ce(e)&&oo(t);case"array":return fe(e)&&qa(t)&&gt(r);case"promotedOneOf":return Ut(e)&&oo(t);case"oneOf":return oe(e);case"allOf":return zt(e)&&Z(t)}return!1};var dt=require("react/jsx-runtime"),Id=e=>{let t=i({model:null,errors:null,disabled:!1,baseUrl:""},e);return br()||t.baseUrl==null?(0,dt.jsx)(me,i({},t)):(0,dt.jsx)(Dd,{baseUrl:t.baseUrl,onEvent:t.onEvent,onLog:t.onLog,children:(0,dt.jsx)(me,i({},t))})},er=Id,Dd=({baseUrl:e,onEvent:t,onLog:r,children:o})=>(0,dt.jsx)(Sr,{flowId:"JsonSchemaForm",stepId:"JsonSchemaForm",onLog:r!=null?r:es,children:(0,dt.jsx)(ur,{metadata:{flowId:"JsonSchemaForm",stepId:"JsonSchemaForm"},onEvent:t!=null?t:es,children:(0,dt.jsx)(gr,{baseUrl:e,children:o})})}),es=()=>{};var qo=require("react/jsx-runtime"),Ld=e=>{let t=e.component,r=t.schema;return(0,qo.jsx)("div",{className:z(t.margin||"md"),children:(0,qo.jsx)(er,{schema:r,model:e.model,submitted:e.submitted,errors:e.errors,onChange:o=>{e.onModelChange(i({formSchema:r},o))},onPersistAsync:e.onPersistAsync})})},$o=Ld;var It=require("react/jsx-runtime"),Td=e=>{let{text:t,size:r="md",align:o="left",margin:a="md"}=e.component,n=Le({align:o,margin:a});switch(r){case"xs":return(0,It.jsx)("h5",{className:n,children:t});case"sm":return(0,It.jsx)("h4",{className:n,children:t});case"lg":return(0,It.jsx)("h2",{className:n,children:t});case"xl":return(0,It.jsx)("h1",{className:n,children:t});case"md":default:return(0,It.jsx)("h3",{className:n,children:t})}},Go=Td;var _o=require("@transferwise/components");var tr=require("react/jsx-runtime"),Wo=({component:e})=>{let{content:t,align:r,margin:o}=e;return(0,tr.jsx)("div",{className:Le({align:r,margin:o}),children:(0,tr.jsx)(_o.Markdown,{config:{link:{target:"_blank"}},children:t})})},Ko=({component:e})=>(0,tr.jsx)("div",{className:Le(e),children:(0,tr.jsx)(_o.Markdown,{config:{link:{target:"_blank"}},children:e.markdown})});var ts=require("@transferwise/components"),Rr=require("react");var Yo=require("react/jsx-runtime"),Bd=({component:e})=>{let{url:t,size:r,text:o,margin:a}=e,n=re(),[s,c]=(0,Rr.useState)("");(0,Rr.useEffect)(()=>{Rd(n,t).then(c)},[t,n]);let m={alt:o||"",src:s,stretch:!0,shrink:!0};return s?(0,Yo.jsx)("div",{className:`df-image ${r||"xl"}`,children:(0,Yo.jsx)(ts.Image,i({className:`img-responsive ${z(a||"lg")}`},m))}):null},Nd=e=>new Promise((t,r)=>{let o=new FileReader;o.addEventListener("loadend",()=>t(o.result)),o.addEventListener("error",a=>r(a)),o.readAsDataURL(e)}),Rd=async(e,t)=>{var r;try{return fr(t)||(t==null?void 0:t.indexOf(`${(r=window==null?void 0:window.location)==null?void 0:r.origin}/`))===0?e(t,{method:"GET",headers:{"Content-Type":"image/image"},credentials:"same-origin"}).then(o=>{if(o.ok)return o.blob();throw new Error("Image fetching failed")}).then(Nd).catch(()=>t):t}catch(o){return t}},Jo=Bd;var V=require("react/jsx-runtime"),X=e=>JSON.stringify(e),jd=e=>{let{components:t,model:r,submitted:o,errors:a,onModelChange:n,onAction:s,onPersistAsync:c,baseUrl:m}=e,p=u=>{switch(u.type){case"heading":return(0,V.jsx)(Go,{component:u},X(u));case"paragraph":return(0,V.jsx)(Qo,{component:u},X(u));case"image":return(0,V.jsx)(Jo,{component:u},X(u));case"alert":return(0,V.jsx)(ne,{component:u},X(u));case"review":return(0,V.jsx)(ea,{component:u,onAction:s},X(u));case"divider":return(0,V.jsx)(So,{component:u},X(u));case"info":return(0,V.jsx)(Ko,{component:u},X(u));case"markdown":return(0,V.jsx)(Wo,{component:u},X(u));case"columns":return(0,V.jsx)(go,{component:u,model:r,submitted:o,errors:a,onModelChange:n,onAction:s,onPersistAsync:c},X(u));case"form":return(0,V.jsx)($o,{component:u,model:r,submitted:o,errors:a,onModelChange:n,onPersistAsync:c},X(b(i({},u),{errors:a})));case"button":return(0,V.jsx)(ho,{component:u,onAction:s},X(u));case"box":return(0,V.jsx)(yo,{component:u,model:r,submitted:o,errors:a,onModelChange:n,onAction:s,onPersistAsync:c},X(u));case"decision":return(0,V.jsx)(bo,{component:u,onAction:s},X(u));case"external":return(0,V.jsx)(wo,{component:u,onAction:s},X(u));case"list":return(0,V.jsx)(Zo,{component:u,onAction:s},X(u));case"loading-indicator":return(0,V.jsx)(Xo,{component:u},X(u));default:return(0,V.jsx)("div",{},X(u))}};return br()||m==null?(0,V.jsx)(V.Fragment,{children:t.map(p)}):(0,V.jsx)(gr,{baseUrl:m,children:t.map(p)})},ie=jd;var rs=require("@transferwise/components");var Dt=require("react/jsx-runtime"),Ud=({component:e})=>(0,Dt.jsxs)("div",{className:z(e.margin||"md"),children:[e.title?(0,Dt.jsxs)("h4",{className:"m-b-2",children:[" ",e.title," "]}):null,e.items.map(zd)]});function zd({title:e,description:t,icon:r,status:o}){let a=i(i({key:`${e}/${t||""}`,title:e,description:t},r!=null&&r.name?{icon:(0,Dt.jsx)(We,{type:r.name})}:{}),o?{status:Vd[o]}:{});return(0,Dt.jsx)(rs.Summary,i({},a))}var Vd={positive:"done",warning:"pending",neutral:"notDone"},Zo=Ud;var os=require("@transferwise/components");var as=require("react/jsx-runtime"),Hd=({component:e})=>{let{margin:t,size:r="md"}=e;return(0,as.jsx)(os.Loader,{size:r,classNames:{"tw-loader":`tw-loader m-x-auto ${z(t)}`},"data-testid":"loading-indicator"})},Xo=Hd;var cs=require("@transferwise/components"),ms=require("react-intl");var ns=require("react-intl"),ta=(0,ns.defineMessages)({copy:{id:"dynamicFlows.DynamicParagraph.copy",defaultMessage:"Copy",description:"Copy to clipboard button label."},copied:{id:"dynamicFlows.DynamicParagraph.copied",defaultMessage:"Copied to clipboard",description:"Appears in a snackbar when the copy operation succeeds."}});var is=require("@transferwise/components"),ss=require("react");function ls(){let e=(0,ss.useContext)(is.SnackbarContext);return e?e.createSnackbar:qd}function qd(){}var Je=require("react/jsx-runtime"),$d=({component:e})=>e.control==="copyable"?(0,Je.jsx)(_d,{component:e}):(0,Je.jsx)(Gd,{component:e}),Gd=({component:e})=>(0,Je.jsxs)("p",{className:Le(e),children:[" ",e.text," "]}),_d=({component:e})=>{let{formatMessage:t}=(0,ms.useIntl)(),r=ls(),{text:o}=e,a=()=>{var s;(s=navigator.clipboard)==null||s.writeText(o).then(()=>r({text:t(ta.copied)})).catch(Wd)},n=Le({align:e.align,margin:"sm"})+" form-control";return(0,Je.jsxs)("div",{className:Le(e),children:[(0,Je.jsx)("input",{type:"text",className:n,value:o,readOnly:!0,style:{textOverflow:"ellipsis"}}),(0,Je.jsx)(cs.Button,{block:!0,onClick:a,children:t(ta.copy)})]})};function Wd(){}var Qo=$d;var ds=require("@transferwise/components");var Ue=require("react/jsx-runtime"),Kd=({label:e,value:t},r)=>({key:String(r),title:e,value:t}),Yd=e=>e==="horizontal"?"HORIZONTAL_RIGHT_ALIGNED":"VERTICAL_ONE_COLUMN",Jd=e=>{let t=e.component,r=z(t.margin||"xs"),o=a=>(0,Ue.jsx)("a",{href:a.url,className:"pull-right",role:"button",onClick:n=>{n.preventDefault(),e.onAction(a)},children:a.title});return(0,Ue.jsxs)(Ue.Fragment,{children:[t.title&&(0,Ue.jsxs)("h6",{className:"m-b-2",children:[t.title,t.action&&o(t.action)]}),(0,Ue.jsx)("div",{className:r,children:(0,Ue.jsx)(ds.DefinitionList,{layout:Yd(t.orientation),definitions:t.fields.map(Kd)})})]})},ea=Jd;var le=require("react/jsx-runtime"),ra=e=>A(e)||K(e),Zd=e=>e.type==="boolean"&&ra(e.default)?!1:e.default,ps=e=>{var H,F,j;let t=I=>{y(!0),o(a(I),"user")},r=I=>$e(I,e.schema,e.required),o=(I,$)=>{m(I);let He=r(I);O(He);let ue=I;u(ue),ue!==p&&e.onChange({model:ue,triggerSchema:e.schema,triggerModel:ue,lastTriggerModel:p,type:$})},a=I=>De(I,e.schema),n=()=>d(!0),s=()=>{d(!1),h(!0),e.onBlur&&e.onBlur()},[c,m]=(0,se.useState)((H=e.model)!=null?H:null),[p,u]=(0,se.useState)((F=e.model)!=null?F:null),[g,y]=(0,se.useState)(!1),[l,d]=(0,se.useState)(!1),[f,h]=(0,se.useState)(!1),[S,O]=(0,se.useState)([]),w=(0,se.useMemo)(()=>e.schema.$id||ve(),[e.schema.$id]),v=()=>{let I=Zd(e.schema);ra(c)&&!ra(I)&&o(I,"init"),e.schema.const&&o(e.schema.const,"init")},P=()=>{O(r(c))},x=e.schema.const,E=e.schema.hidden||x;(0,se.useEffect)(P,[e.model,e.submitted]),(0,se.useEffect)(v,[e.schema]),(0,se.useEffect)(()=>{var $;let I=($=e.model)!=null?$:null;I!==c&&m(I)},[e.model]);let L={"form-group":!0,"has-error":(e.submitted||!g)&&!!e.errors||(e.submitted||g&&f)&&!!S.length,"has-info":l&&!!e.schema.description||!!e.infoMessage},k=e.schema.format!=="file"&&e.schema.type!=="boolean",T=e.schema.help;return E?null:(0,le.jsxs)(le.Fragment,{children:[e.schema.alert&&(0,le.jsx)(ne,{component:e.schema.alert}),(0,le.jsxs)("div",{className:(0,us.default)(L),children:[k&&(0,le.jsxs)("div",{className:"d-inline-block",children:[(0,le.jsx)("label",{className:"control-label d-inline",htmlFor:w,children:e.schema.title}),!!T&&(0,le.jsx)(Ot,{help:T})]}),!k&&!!T&&(0,le.jsx)(Ot,{help:T}),(0,le.jsx)(Yt,{id:w,schema:e.schema,value:c,disabled:!!e.disabled,onChange:t,onFocus:n,onBlur:s}),(0,le.jsx)(Be,{changed:g,focused:l,blurred:f,submitted:e.submitted,errors:(j=e.errors)!=null?j:null,schema:e.schema,validations:S,infoMessage:e.infoMessage})]})]})};ps.defaultProps={required:!1,disabled:!1,onBlur:null};var mt=ps;var gs=require("react/jsx-runtime"),Bo=(e,t)=>t[e],ys=(e,t)=>{var r;return(r=t.validation)==null?void 0:r[e]},Xd=new Set([R.RADIO,R.SELECT,R.DATELOOKUP,R.FILE,R.UPLOAD]),hs=e=>{let t=(0,fs.useIntl)(),r=re(),o=Q(),[a,n]=(0,ut.useState)(null),s=bs(a),[c,m]=(0,ut.useState)(null),[p,u]=(0,ut.useState)(!1),[g,y]=(0,ut.useState)(null);(0,ut.useEffect)(()=>{Xd.has(Io(e.schema.persistAsync.schema))&&h()},[a]);let l=()=>m(t.formatMessage(_t.genericError)),d=async(w,v)=>{let P=f(),x={[v.param]:w};u(!0);try{o("Dynamic Flow - PersistAsync",{status:"pending",schemaId:vr.$id});let E=r(v.url,{method:v.method,headers:{"Content-Type":"application/json"},body:JSON.stringify(x),signal:P});e.onPersistAsync(E);let L=await E,k=await L.json();if(!N(k))throw new Error("Response is not an object");let{idProperty:T,param:H}=e.schema.persistAsync;if(ja(L.status)){let F=Bo(T,k);e.onChange({model:F,triggerSchema:e.schema,triggerModel:F})}else if(pr(L.status)){let{validation:F}=k,j=N(F)&&(F==null?void 0:F[H])||null;m(j),e.onChange({model:null,triggerSchema:e.schema,triggerModel:null})}else l();o("Dynamic Flow - PersistAsync",{status:"success",schemaId:vr.$id})}catch(E){o("Dynamic Flow - PersistAsync",{status:"failure",schemaId:vr.$id}),l()}},f=()=>{g&&g.abort();let w=new AbortController;return y(w),w.signal},h=()=>{!A(a)&&!Ge(a,s)&&d(a,e.schema.persistAsync)},S=()=>{h()},O=({model:w})=>{m(null),G(w,e.schema.persistAsync.schema)&&n(w)};return(0,gs.jsx)(mt,{required:e.required,submitted:e.submitted||p,schema:e.schema.persistAsync.schema,errors:c||e.errors,model:null,infoMessage:null,onChange:O,onBlur:S})};hs.defaultProps={required:!1};var Lo=hs;var ti=e=>{let[t,r]=(0,Ss.useState)(null),o=re(),a=(0,ws.useIntl)(),{schema:n}=e;async function s(y){let l=y instanceof Blob?!at(n):!G(y,n);return(A(y)||l)&&g(),await p(y)}let c=()=>{t&&t.abort();let y=new AbortController;return r(y),y.signal};function m(y){let l=at(n),d=c(),f=e.param,h=l?Qd(f,y):JSON.stringify({[f]:y});return{method:e.method,headers:i({},!l&&{"Content-Type":"application/json"}),body:h,signal:d}}async function p(y){try{let l=await o(e.url,m(y));if(!l.ok)return u(l);let d=await l.json();if(N(d)){let f=d[e.idProperty];if(M(f)||B(f))return{data:f}}return g()}catch(l){return g(l)}}async function u(y){if(y.status===422){let l=await y.json();if(N(l)){let d=ys(e.param,l);if(M(d))throw new Error(d)}}throw new Error(a.formatMessage(_t.genericError))}let g=y=>{let l=eu(y)?y.message:a.formatMessage(_t.genericError);throw new Error(l)};return s};function Qd(e,t){let r=new FormData;return t!==null&&r.append(e,t),r}function eu(e){return N(e)&&"message"in e&&typeof e.message=="string"}var Ze=require("react");function Or({asyncFn:e,interval:t,maxAttempts:r,maxConsecutiveFails:o,onPollingResponse:a,onFailure:n}){let s=(0,Ze.useRef)(a),c=(0,Ze.useRef)(n),m=(0,Ze.useMemo)(()=>tu(e,r,o,p=>s.current(p),()=>c.current()),[e,r,o]);(0,Ze.useEffect)(()=>{if(t>0){let p=setInterval(()=>{m()},t);return()=>clearInterval(p)}},[m,t]),(0,Ze.useEffect)(()=>{s.current=a,c.current=n},[a,n])}function tu(e,t,r,o,a){let n=!0,s=0,c=0;return e?()=>{n&&(c++,e().then(m=>{s=0,n=o(m)}).catch(()=>{s++}).finally(()=>{(s>=r||c>=t)&&(a(),n=!1)}))}:()=>{}}var jr=require("react"),bs=e=>{let t=(0,jr.useRef)();return(0,jr.useEffect)(()=>{t.current=e},[e]),t.current};var rr=require("react");function Fs(e,t){let r=re(),o=(0,rr.useMemo)(()=>{if(e)return()=>r(e.url).then(n=>{if(n.ok)return n.json().then(s=>s).catch(s=>null);throw new Error("failed")})},[e,r]),a=(0,rr.useCallback)(n=>n!=null&&n.action?(t(n.action),!1):!0,[t]);Or({asyncFn:o,interval:1e3*((e==null?void 0:e.interval)||0),maxAttempts:(e==null?void 0:e.maxAttempts)||0,maxConsecutiveFails:1,onPollingResponse:a,onFailure:(0,rr.useCallback)(()=>{e&&t(e.onError.action)},[t,e])})}var Cs=require("react/jsx-runtime"),ru=(e,t)=>{var o;if(St(e))return[];let r=jt(e,t);return qe({layout:r,schemas:e.schemas||[],actions:e.actions||[],model:(o=e.model)!=null?o:null})},ou=e=>{let{stepSpecification:t,stepLayoutOptions:r,submitted:o,model:a,formErrors:n,onModelChange:s}=e,c=ru(t,r),{loading:m,registerPersistAsyncPromise:p}=dr(),u=Q(),g=m?()=>{u("Dynamic Flow - onAction supressed",{reason:"LayoutStep - loading state"})}:e.onAction;return Fs(t.polling,g),(0,Cs.jsx)(ie,{components:c,submitted:o,model:a,errors:n,onAction:g,onModelChange:s,onPersistAsync:p})},Ur=ou;var $r=require("react");var Fe=require("react"),Gs=require("react-intl"),_s=Ee(xs());var Os=require("react-intl"),ar=(0,Os.defineMessages)({reviewSubmit:{id:"dynamicFlows.CameraCapture.reviewSubmit",defaultMessage:"Yes, submit",description:"Accept and submit the image taken with the camera"},reviewRetry:{id:"dynamicFlows.CameraCapture.reviewRetry",defaultMessage:"No, try again",description:"Image taken with camera is not good, don't submit, and retake the image"},reviewInstructions:{id:"dynamicFlows.CameraCapture.reviewInstructions",defaultMessage:"Is your picture clear, readable and complete?",description:"After taking an image with the camera, prompt user to review the image"}});var we=require("@transferwise/components"),vs=require("react-intl");var Se=require("react/jsx-runtime"),As=({onCapture:e})=>(0,Se.jsx)("div",{className:"bottom-bar",children:(0,Se.jsx)(au,{onClick:e})}),Ps=({onSubmit:e,onRetry:t})=>{let r=(0,vs.useIntl)();return(0,Se.jsx)("div",{className:"bottom-bar p-x-2",children:(0,Se.jsx)("div",{className:"row",children:(0,Se.jsxs)("div",{className:"col-xs-12 col-md-6 col-md-offset-3",children:[(0,Se.jsx)(we.Button,{className:"m-b-1",block:!0,size:we.Size.MEDIUM,type:we.ControlType.ACCENT,onClick:e,children:r.formatMessage(ar.reviewSubmit)}),(0,Se.jsx)(we.Button,{className:"m-b-2",block:!0,size:we.Size.MEDIUM,type:we.ControlType.ACCENT,priority:we.Priority.SECONDARY,onClick:t,children:r.formatMessage(ar.reviewRetry)})]})})})},au=({onClick:e})=>(0,Se.jsx)("button",{type:"button",className:"camera-capture-btn m-b-2","data-testid":"camera-capture-button",onClick:e,children:(0,Se.jsx)("span",{className:"camera-capture-btn-inner"})});var Vr=require("react");var ks=e=>{var r;let{facingMode:t}=((r=zr(e))==null?void 0:r.getSettings())||{};return t==="user"||t===void 0},Ms=e=>!!((e==null?void 0:e.label)||"").match(/camera2? 0/g),Es=async e=>{let t=document.createElement("canvas");if(e){t.setAttribute("height",`${e.videoHeight}`),t.setAttribute("width",`${e.videoWidth}`);let r=t==null?void 0:t.getContext("2d");r&&(await new Promise(o=>setTimeout(o,100)),r.drawImage(e,0,0,t.width,t.height))}return t},Is=async()=>{var e,t;return(await((t=(e=navigator==null?void 0:navigator.mediaDevices)==null?void 0:e.enumerateDevices)==null?void 0:t.call(e))||[]).filter(r=>r.kind==="videoinput")},Ds=async()=>{var e,t;return(await((t=(e=navigator==null?void 0:navigator.mediaDevices)==null?void 0:e.enumerateDevices)==null?void 0:t.call(e))||[]).filter(r=>r.kind==="videoinput").map(r=>r.label)},Ls=async e=>{var r,o,a;let t=aa(e);return(a=(await((o=(r=navigator==null?void 0:navigator.mediaDevices)==null?void 0:r.enumerateDevices)==null?void 0:o.call(r))||[]).filter(n=>n.kind==="videoinput").find(n=>n.deviceId===(t==null?void 0:t.deviceId)))==null?void 0:a.label},zr=e=>{var t;return(((t=e==null?void 0:e.getVideoTracks)==null?void 0:t.call(e))||[])[0]},aa=e=>{var t,r;return(r=(t=zr(e))==null?void 0:t.getCapabilities)==null?void 0:r.call(t)};var Ts=e=>{let[t,r]=(0,Vr.useState)(),o={facingMode:e==="front"?"user":"environment",height:{min:480,max:1080,ideal:720},width:{min:640,max:1920,ideal:1280},frameRate:30,aspectRatio:16/9};(0,Vr.useEffect)(()=>{a(e).then(r)},[e]);let a=async n=>{if(n==="back"){let s=(await Is()).find(Ms);if(s!=null&&s.deviceId)return b(i({},o),{deviceId:{exact:s.deviceId}})}return o};return{videoConstraints:t}};var Hr=require("react");var W=require("react/jsx-runtime"),nu=92,Bs=120,iu=40,su=32,lu=48,cu=40,Ns=800,mu=({overlay:e,outline:t,imageUrl:r,title:o,instructions:a,reviewInstructions:n})=>{let s=(0,Hr.useRef)(null);(0,Hr.useEffect)(()=>{let y=Ft(()=>{var l;if((l=s.current)!=null&&l.innerHTML){let d=s.current;d.innerHTML+=""}},100);return window.addEventListener("resize",y),()=>window.removeEventListener("resize",y)});let c=(r?iu:0)+(o?su:0)+(a?lu:0),m=(0,W.jsxs)(W.Fragment,{children:[r&&(0,W.jsx)("img",{className:"camera-capture-img",src:r,alt:""}),o&&(0,W.jsx)("h4",{className:"camera-capture-title",children:o}),a&&(0,W.jsx)("small",{className:"camera-capture-instructions",children:a})]}),p=nu+c;if(n){c=p-Bs,m=(0,W.jsx)("small",{className:"camera-capture-instructions",children:n});let y=Bs+cu;p<y&&(m=(0,W.jsx)(W.Fragment,{}))}let u={x:"50%",y:"5%",width:`min(90%, ${Ns}px)`,height:`calc(90% - ${p}px)`,style:{transform:`translateX(max(-45%, -${Ns/2}px))`}},g={style:{left:"5%",top:`calc(100% - ${p}px - 5%)`,height:`calc(${c}px + 5%)`,width:"90%"}};return(0,W.jsxs)("svg",{ref:s,xmlns:"http://www.w3.org/2000/svg",children:[(0,W.jsx)("defs",{children:(0,W.jsxs)("mask",{id:"mask",children:[(0,W.jsx)("rect",{width:"100%",height:"100%",fill:"#fff"}),(0,W.jsx)("image",i({href:e},u))]})}),e&&(0,W.jsx)("rect",{width:"100%",height:"100%",mask:"url(#mask)",fillOpacity:"0.72"}),t&&(0,W.jsx)("image",i({href:t},u)),(0,W.jsx)("foreignObject",{width:"100%",height:"100%",children:(0,W.jsx)("div",b(i({className:"camera-capture-text-and-image-container"},g),{children:m}))})]})},na=mu;var js=require("@transferwise/components"),Us=require("react-intl");var Rs=require("react-intl"),qr=(0,Rs.defineMessages)({title:{id:"dynamicFlows.CameraCapture.NoCameraAccess.title",defaultMessage:"We can't access your camera",description:"Title of standalone page prompting missing camera permissions"},paragraph:{id:"dynamicFlows.CameraCapture.NoCameraAccess.paragraph",defaultMessage:"Enable camera access in your browser's settings to get going again.",description:"Further text of standalone page prompting missing camera permissions"},action:{id:"dynamicFlows.CameraCapture.NoCameraAccess.action",defaultMessage:"Enable camera access",description:"Action to ask for camera permissions again"}});var ze=require("react/jsx-runtime"),du=({onAction:e})=>{let t=(0,Us.useIntl)();return(0,ze.jsx)("div",{id:"no-camera-access",children:(0,ze.jsx)("div",{className:"container p-t-5",children:(0,ze.jsx)("div",{className:"row",children:(0,ze.jsxs)("div",{className:"col-md-6 col-md-offset-3",children:[(0,ze.jsx)("h2",{className:"text-xs-center m-b-3",children:t.formatMessage(qr.title)}),(0,ze.jsx)("p",{className:"text-xs-center m-b-5",children:t.formatMessage(qr.paragraph)}),(0,ze.jsx)(js.Button,{block:!0,onClick:e,children:t.formatMessage(qr.action)})]})})})})},ia=du;var Vs=require("react-intl");var zs=require("react-intl"),sa=(0,zs.defineMessages)({title:{id:"dynamicFlows.CameraCapture.CameraNotSupported.title",defaultMessage:"Camera not supported",description:"Title of standalone page prompting that camera is not available on users browser"},paragraph:{id:"dynamicFlows.CameraCapture.CameraNotSupported.paragraph",defaultMessage:"The browser you're using doesn't have support for a camera. Try a different browser, device, or download our mobile app.",description:"Further text of standalone page prompting that camera is not available on user's browser"}});var Xe=require("react/jsx-runtime"),uu=()=>{let e=(0,Vs.useIntl)();return(0,Xe.jsx)("div",{id:"camera-not-supported",children:(0,Xe.jsx)("div",{className:"container p-t-5",children:(0,Xe.jsx)("div",{className:"row",children:(0,Xe.jsxs)("div",{className:"col-md-6 col-md-offset-3",children:[(0,Xe.jsx)("h2",{className:"text-xs-center m-b-3",children:e.formatMessage(sa.title)}),(0,Xe.jsx)("p",{className:"text-xs-center m-b-5",children:e.formatMessage(sa.paragraph)})]})})})})},la=uu;var Hs=e=>e==null?void 0:e("Dynamic Flow - Camera Permission Denied",{}),qs=async(e,t,r)=>e==null?void 0:e("Dynamic Flow - Camera Feed Started",await pu(t,r)),$s=(e,t)=>e==null?void 0:e("Dynamic Flow - Camera Not Supported",{Error:t}),pu=async(e,t)=>{var n;let r=zr(t),o=aa(t),a=(n=r==null?void 0:r.getSettings)==null?void 0:n.call(r);return b(i({},r&&{"Available Video Devices (by label)":await Ds(),"Active Video Device (by label)":await Ls(t),"Camera Capabilities":o,"Camera Settings":a}),{"Camera Direction (Asked)":e==null?void 0:e.direction})};var ee=require("react/jsx-runtime"),fu=({direction:e="back",overlay:t="",outline:r="",imageUrl:o="",title:a="",instructions:n="",showReview:s=!1,onCapture:c,onEvent:m})=>{let[p,u]=(0,Fe.useState)("CAPTURE"),[g,y]=(0,Fe.useState)(!1),[l,d]=(0,Fe.useState)(!1),[f,h]=(0,Fe.useState)(),S=(0,Fe.useRef)(null),{videoConstraints:O}=Ts(e),w=(0,Gs.useIntl)(),v=(0,Fe.useCallback)(async()=>{var F,j,I,$,He,ue;if((F=S==null?void 0:S.current)!=null&&F.video&&((I=(j=S==null?void 0:S.current)==null?void 0:j.video)==null?void 0:I.readyState)>=3){(He=($=S==null?void 0:S.current)==null?void 0:$.video)==null||He.pause();let et=await Es((ue=S==null?void 0:S.current)==null?void 0:ue.video);et==null||et.toBlob(xe=>{if(xe)if(s){let sr=window.URL.createObjectURL(xe);h({source:sr,blob:xe}),u("REVIEW")}else c(xe)},"image/jpeg",.92)}},[S,s,h,u,c,g]),P=(0,Fe.useCallback)(F=>{if(F instanceof DOMException&&(F==null?void 0:F.name)==="NotAllowedError"){u("NO_CAMERA_ACCESS"),Hs(m);return}u("CAMERA_NOT_SUPPORTED"),$s(m,F)},[u,m]),x=(0,Fe.useCallback)(F=>{d(!0),y(ks(F)),qs(m,{direction:e},F)},[y,m,e]),E=()=>{c((f==null?void 0:f.blob)||null)},L=()=>{u("CAPTURE"),h(void 0)},k=()=>u("CAPTURE"),T=(0,ee.jsxs)(ee.Fragment,{children:[O&&(0,ee.jsx)(_s.default,{ref:S,audio:!1,videoConstraints:O,mirrored:g,onUserMediaError:P,onUserMedia:x}),(0,ee.jsx)(na,{overlay:t,outline:r,imageUrl:o,title:a,instructions:n}),l&&(0,ee.jsx)(As,{onCapture:()=>void v()})]}),H=(0,ee.jsxs)(ee.Fragment,{children:[(0,ee.jsx)("img",{className:"review-image",src:f==null?void 0:f.source,alt:""}),(0,ee.jsx)(na,{overlay:t,imageUrl:o,title:a,instructions:n,reviewInstructions:w.formatMessage(ar.reviewInstructions)}),(0,ee.jsx)(Ps,{onSubmit:E,onRetry:L})]});return(0,ee.jsxs)("section",{className:"camera-capture",children:[p==="CAPTURE"&&T,p==="REVIEW"&&H,p==="NO_CAMERA_ACCESS"&&(0,ee.jsx)(ia,{onAction:k}),p==="CAMERA_NOT_SUPPORTED"&&(0,ee.jsx)(la,{})]})},ca=fu;var Ks=require("react/jsx-runtime");function yu(e){return new Promise((t,r)=>{let o=new FileReader;o.onloadend=()=>t(o.result),o.readAsDataURL(e)})}var hu=e=>{let{step:t,model:r,onModelChange:o,onAction:a}=e,n=Q(),s=Ws(t),c=gu(t),m=bu(t),{title:p,image:u,cameraConfig:g}=c,{assets:y,direction:l,instructions:d}=g||{},{overlay:f,outline:h}=y||{},{url:S}=u||{},[O,w]=(0,$r.useState)(!1);(0,$r.useEffect)(()=>{O&&a(m)},[r]);let v=async P=>{let{$id:x}=c;if(P){let E=await yu(P),L={[x||""]:E};w(!0),o({model:L,formSchema:s,triggerModel:E,triggerSchema:c})}};return(0,Ks.jsx)(ca,{overlay:f,outline:h,title:p,imageUrl:S,instructions:d,direction:l,onEvent:n,onCapture:P=>{v(P)}})},Gr=hu;function Ws(e){let r=xr(e.schemas||[])[0];if(!r||!ce(r))throw new Error("The first schema in a camera step is expected to be of type object and have at least one property with a schema...");return r}function gu(e){let t=Ws(e),r=Object.values(t.properties)[0];if(!r)throw new Error("The first schema in a camera step is expected to be of type object and have at least one property with a schema...");return r}function bu(e){var t,r;if(!e.schemas||((t=xr(e.schemas))==null?void 0:t.length)!==1)throw new Error("camera step expects 1 non-hidden object schema");if(((r=e==null?void 0:e.actions)==null?void 0:r.length)!==1)throw new Error("camera step expects 1 action");return e.actions[0]}var Zs=require("react-intl");var Ys=require("react-intl"),nr=(0,Ys.defineMessages)({title:{id:"dynamicFlows.ExternalConfirmation.title",defaultMessage:"Please confirm",description:"Heading for the confirmation screen."},description:{id:"dynamicFlows.ExternalConfirmation.description",defaultMessage:"Please confirm you want to open **{origin}** in a new browser tab.",description:"Description for the confirmation screen."},open:{id:"dynamicFlows.ExternalConfirmation.open",defaultMessage:"Open in new tab",description:"Button text confirming opening a new browser tab."},cancel:{id:"dynamicFlows.ExternalConfirmation.cancel",defaultMessage:"Cancel",description:"Button text rejecting opening a new browser tab."}});var Xs=require("react/jsx-runtime"),Js=()=>{},Su=({url:e,onClose:t})=>{let{formatMessage:r}=(0,Zs.useIntl)();return(0,Xs.jsx)(ie,{components:[{type:"box",width:"lg",components:[{type:"heading",text:r(nr.title),size:"lg",align:"center",margin:"xl"},{type:"info",markdown:r(nr.description,{origin:wu(e)}),align:"center",margin:"xl"},{type:"box",width:"md",components:[{type:"button",action:{title:r(nr.open),type:"primary",url:e,exit:!0}},{type:"button",action:{title:r(nr.cancel),type:"link",url:"",exit:!0}}]}]}],submitted:!1,onAction:o=>{o.url&&window.open(o.url,"_blank"),t()},onModelChange:Js,onPersistAsync:Js})},_r=Su;function wu(e){try{return new URL(e).origin}catch(t){return e}}var Ve=require("react/jsx-runtime"),Qs=e=>{var s;let{step:t,globalError:r}=e,o=(s=t==null?void 0:t.external)==null?void 0:s.url,{requiresManualTrigger:a,dismissConfirmation:n}=Cn(o);return t===void 0?null:o&&a?(0,Ve.jsx)(_r,{url:o,onClose:n}):Sn(t)?(0,Ve.jsx)(Gr,b(i({},e),{step:t})):(0,Ve.jsxs)(Ve.Fragment,{children:[r?(0,Ve.jsx)(ne,{component:{context:"negative",markdown:r,margin:"lg"}}):null,(0,Ve.jsx)(Ur,b(i({},e),{stepSpecification:t}))]})};var el=require("react");var Fu=1e3;function tl(e){let t=(0,el.useRef)(new Map),r=o=>{if(t.current.has(o))return t.current.get(o);let a=Ft((n,s,c)=>e(n,s,c),Fu);return t.current.set(o,a),a};return function(o,a,n,s){let c=r(o);c(o,a,n),(!s||!bn(s))&&c.flush()}}var Lt=require("react");function rl(e){return Object.prototype.hasOwnProperty.call(e,"$ref")===!1}var al=e=>{var l,d;let[t,r]=(0,Lt.useState)((l=e==null?void 0:e.errors)==null?void 0:l.validation),[o,a]=(0,Lt.useState)((d=e==null?void 0:e.errors)==null?void 0:d.error),[n,s]=(0,Lt.useState)({step:e||void 0,models:e!=null&&e.model?ol(e.model,ma(e)):{},etag:void 0}),{step:c,models:m,etag:p}=n,u=(f,h)=>{var S,O,w,v;s(P=>({step:f,models:f.model?ol(f.model,ma(f)):P.models,etag:h})),r((O=(S=f==null?void 0:f.errors)==null?void 0:S.validation)!=null?O:null),a((v=(w=f==null?void 0:f.errors)==null?void 0:w.error)!=null?v:null)},g=(f,h,S)=>{s(O=>{let w=b(i({},O.models),{[f]:h}),v={step:O.step,models:w,etag:O.etag};return S(w),v})},y=(0,Lt.useMemo)(()=>Cu(m,ma(c)),[m,c]);return{formErrors:t,globalError:o,step:c,models:m,etag:p,modelIsValid:y,setFormErrors:r,setGlobalError:a,setStepAndEtag:u,setSchemaModel:g}},ol=(e,t=[])=>t.reduce((r,o)=>(o.$id||console.warn("Schema without $id property found."),b(i({},r),{[o.$id||""]:ae(e,o)||{}})),{}),ma=e=>[...da((e==null?void 0:e.layout)||[]),...(e==null?void 0:e.schemas)||[]],da=e=>e.flatMap(t=>{switch(t.type){case"columns":return[...da([...t.left,...t.right])];case"box":return da(t.components);case"form":return rl(t.schema)?[t.schema]:[];default:return[]}}),Cu=(e,t=[])=>!(t!=null&&t.some(r=>(r.$id||console.warn("Schema without $id property found."),!G(e[r.$id||""]||{},r))));var Wr=require("@transferwise/components"),nl=require("react");var sl=require("react/jsx-runtime");function il(e,t){let r=i({size:Wr.Size.EXTRA_LARGE,initial:!0,submission:!1},e),[o,a]=(0,nl.useState)(t),s=r.initial&&o==="initial"||r.submission&&o==="submission"?(0,sl.jsx)(Wr.Loader,{size:r.size,classNames:{"tw-loader":"tw-loader m-x-auto"},"data-testid":"loader"}):null;return{isLoading:o!=="idle",setLoadingState:a,loader:s}}var ul=require("react");var Kr=require("@transferwise/components"),cl=require("react-intl");var ll=require("react-intl"),ua=(0,ll.defineMessages)({errorAlert:{id:"dynamicFlows.ErrorBoundary.errorAlert",defaultMessage:"Oops. Something went wrong...",description:"Generic error message for when something has gone wrong"},retry:{id:"dynamicFlows.ErrorBoundary.retry",defaultMessage:"Retry",description:"Retry"}});var dl=require("react/jsx-runtime"),ml=({onDismiss:e})=>{let{formatMessage:t}=(0,cl.useIntl)();return(0,dl.jsx)(Kr.Alert,{action:{text:t(ua.retry),href:window.location.href},message:t(ua.errorAlert),type:Kr.Sentiment.NEGATIVE,className:"m-b-3",onDismiss:e})};var Tt=require("react/jsx-runtime"),xu=()=>{},pa=class extends ul.Component{constructor(r){super(r);this.handleErrorReset=()=>{this.setState({hasError:!1,isFatalError:!1})};this.state={hasError:!1,isFatalError:!1}}static getDerivedStateFromError(){return{hasError:!0,isFatalError:!0}}componentDidCatch(r){let{onError:o=xu}=this.props;o(r)}render(){let{children:r}=this.props,{hasError:o,isFatalError:a}=this.state;return(0,Tt.jsxs)(Tt.Fragment,{children:[o&&(0,Tt.jsx)(ml,{onDismiss:this.handleErrorReset}),!a&&r]})}},fa=pa;var Ou=async e=>{switch(e.headers.get("X-Df-ResponseType")){case"step":return pl(e);case"exit":return yl(e);case"action":return fl(e);default:throw new Error("Unsupported X-Df-ResponseType. Allowed values are 'step', 'action', 'exit'.")}},pl=async e=>{let t=await ir(e);if(!N(t))throw new Error("Incorrect response body in response. Expected an object.");let r=e.headers.get("etag")||void 0;return{type:"step",step:t,etag:r}},fl=async e=>{let t=await ir(e);if(!N(t))throw new Error("Incorrect response body in response. Expected an object.");if(!N(t.action))throw new Error("Incorrect response body in action response. Expected an object satisfying the type { action: Action }.");let r=t.action;return r.exit===!0&&N(r.result)?{type:"exit",result:r.result}:{type:"action",action:t.action}},yl=async e=>({type:"exit",result:await ya(e)}),hl=async e=>{var r,o;if(ha(e),(r=e.headers)!=null&&r.has("X-Df-ResponseType"))return Ou(e);if((o=e.headers)!=null&&o.has("X-Df-Exit"))return yl(e);let t=await ir(e.clone());return N(t)&&t.action?fl(e):pl(e)},gl=async e=>{ha(e);let t=await ir(e);if(!N(t))throw new Error("Incorrect response body in error response. Expected an object.");if(!t.refreshFormUrl&&!t.validation&&!t.error)throw t;return t},ya=async e=>{ha(e);let t=await ir(e);return N(t)?t:null},ir=async e=>{try{return await e.json()}catch(t){return null}},ha=e=>{if(!vu(e))throw new Error("Incorrect type of response from fetch. Expected object of type Response.");if(e.bodyUsed)throw new Error("The body of the provided Response object has already been used. Every request must respond with a new Response object.")},vu=e=>typeof e=="object"&&e!==null&&"clone"in e&&"bodyUsed"in e;var Qe=require("react/jsx-runtime"),bl=()=>{},Au=({flowId:e,httpClient:t,initialAction:r,initialStep:o,loaderConfig:a,displayStepTitle:n=!0,onCompletion:s,onError:c,onEvent:m=bl,onLog:p=bl})=>{let{locale:u}=(0,Sl.useIntl)(),{formErrors:g,globalError:y,step:l,models:d,etag:f,modelIsValid:h,setFormErrors:S,setGlobalError:O,setStepAndEtag:w,setSchemaModel:v}=al(o),[P,x]=(0,Ce.useState)(!1),{isLoading:E,loader:L,setLoadingState:k}=il(a,o?"idle":"initial"),T=ot("critical",p,e,(l==null?void 0:l.id)||(l==null?void 0:l.key)),H=(0,Ce.useMemo)(()=>{var C;return i({flowId:e,stepId:(l==null?void 0:l.id)||(l==null?void 0:l.key)},(C=l==null?void 0:l.analytics)!=null?C:{})},[e,l]),F=(0,Ce.useMemo)(()=>to(m,H),[m,H]),j=(0,Ce.useCallback)(({action:C,data:U,etag:D})=>{let{url:J,method:Nt="POST"}=C;return t(J!=null?J:"",{method:Nt,headers:i({"accept-language":u,"Content-Type":"application/json"},D?{"If-None-Match":D}:{}),credentials:"include",body:Nt==="GET"?void 0:JSON.stringify(U)})},[t,u]),I=async(C,U={})=>{k(l?"submission":"initial"),F("Dynamic Flow - Step Submitted",{actionId:C.$id});try{let D=await j({action:C,data:U});await sr(D,"submission")}catch(D){lr(D,"Error fetching next step")}},$=async(C,U,D)=>{k("refresh"),F("Dynamic Flow - Step Refreshed",{status:"pending"});try{let J=await j({action:{url:C,method:"POST"},data:U,etag:D});await sr(J,"refresh")}catch(J){lr(J,"Error fetching refresh step")}},He=async(C,U)=>{k("submission");try{let D=await j({action:C,data:U});await ue(D,C.result)}catch(D){lr(D,"Error fetching exit result")}},ue=async(C,U)=>{let D=await ya(C);xe(i(i({},D),U))},et=tl($),xe=(0,Ce.useCallback)(C=>{F("Dynamic Flow - Flow Finished",{result:"success"}),s(C)},[s,F]);(0,Ce.useEffect)(()=>{F("Dynamic Flow - Flow Started",{})},[]),(0,Ce.useEffect)(()=>{if(!o){let C=i({$id:"#initial-step-request",method:"GET"},r);I(C,C.data)}},[t,u,JSON.stringify(o),JSON.stringify(r)]);let sr=async(C,U)=>{try{if(C.status===304){k("idle");return}if(!C.ok){let J=await gl(C);Oc(J);return}let D=await hl(C);D.type==="action"?I(D.action,D.action.data):D.type==="exit"?xe(D.result):xc(D.step,D.etag,U)}catch(D){return lr(D,"Error parsing fetch response",U,C.status)}},xc=(C,U,D)=>{w(C,U),k("idle"),D==="submission"?(x(!1),F("Dynamic Flow - Step Started",i({stepId:C.id||C.key},C==null?void 0:C.analytics))):F("Dynamic Flow - Step Refreshed",{status:"success"})},Oc=async C=>{C.refreshFormUrl&&await $(C.refreshFormUrl,Yr(d),f),C.validation&&S(C.validation),C.error&&O(C.error),k("idle")},lr=(C,U,D,J)=>{T("Error fetching",U),D==="refresh"&&F("Dynamic Flow - Step Refreshed",{status:"failure"}),F("Dynamic Flow - Flow Finished",{status:"failure"}),c(C,J),k("idle")},vc=C=>{let{model:U,formSchema:D}=C,{$id:J=""}=D;O(null),Z(U)||T("Invalid model on change","onModelChange was called but the model argument is not an object"),v(J,U,kc=>{Ac(C,kc)})},Ac=(C,U)=>{let{triggerSchema:D}=C;if(Mu(C)){let J=D.refreshFormUrl||(l==null?void 0:l.refreshFormUrl);J&&et(J,Yr(U),f,D)}},Pc=async C=>{if(E||C.disabled)return;if(C.exit&&!C.url){xe(C.result);return}let U=C.exit?He:I,{data:D,method:J}=C,Nt=i(i({},Yr(d)),D);ku(J)?(S(null),x(!0),h&&await U(C,Nt)):await U(C)};return(0,Qe.jsx)(Sr,{flowId:e,stepId:(l==null?void 0:l.id)||(l==null?void 0:l.key),onLog:p,children:(0,Qe.jsx)(ur,{metadata:H,onEvent:m,children:(0,Qe.jsx)(Ta,{loading:E,children:(0,Qe.jsx)(Ua,{httpClient:t,children:L!==null?L:(0,Qe.jsx)(Qs,{step:l,model:Yr(d),submitted:P,globalError:y,formErrors:g,stepLayoutOptions:{displayStepTitle:n},onAction:C=>{Pc(C)},onModelChange:vc})})})})})},Pu=e=>(0,Qe.jsx)(fa,{onError:e.onError,children:(0,Qe.jsx)(Au,i({},e))}),ga=Pu,Yr=e=>Object.values(e).reduce((t,r)=>i(i({},t),r),{}),ku=(e="POST")=>["POST","PUT","PATCH"].includes(e.toUpperCase()),Mu=e=>{let{type:t,triggerSchema:r,triggerModel:o,lastTriggerModel:a=null}=e,n=()=>G(o,r),s=()=>G(a,r);return t!=="init"&&(r==null?void 0:r.refreshFormOnChange)&&(n()||s())};var ba={};tt(ba,{alert:()=>wl,box:()=>Fl,button:()=>Cl,columns:()=>xl,copyable:()=>Ol,decision:()=>vl,decisionFlags:()=>Al,decisionIcons:()=>Pl,heading:()=>kl,image:()=>Ml,info:()=>El,list:()=>Il,loadingIndicator:()=>Dl,paragraph:()=>Ll,review:()=>Tl});var Eu={id:"Components/Alert",title:"Alert Component",description:"Alerts can have different contexts.",schemas:[],layout:[{type:"alert",markdown:'This is an alert with "neutral" context. A subset of Markdown features are supported, like **bold text**, and __italic__ I think. But no line breaks nor links.',context:"neutral"},{type:"alert",markdown:'This is an alert with "warning" context. A subset of Markdown features are supported, like **bold text**, and __italic__ I think. But no line breaks nor links.',context:"warning"},{type:"alert",markdown:'This is an alert with "positive" context. A subset of Markdown features are supported, like **bold text**, and __italic__ I think. But no line breaks nor links.',context:"positive"},{type:"alert",markdown:'This is an alert with "negative" context. A subset of Markdown features are supported, like **bold text**, and __italic__ I think. But no line breaks nor links.',context:"negative"}]},wl=Eu;var Iu={id:"Components/Box",title:"Box Component",description:"Box is a container for other layour components. It can have a border!",schemas:[],layout:["xs","sm","md","lg","xl"].map(e=>({type:"box",width:e,border:!0,components:[{type:"paragraph",text:`This paragraph is inside a box with border: "true" and width: "${e}".`}]}))},Fl=Iu;var Du=["primary","secondary","negative","link"].map((e,t)=>({type:"button",action:{url:"/action-url",method:"POST",title:`Button ${t+1}, type: "${e}"`,type:e,data:{"button-number":t+1}}})),Lu={id:"Components/Button",title:"Button Component",description:"Buttons typically trigger actions.",schemas:[{$id:"#schema",type:"object",displayOrder:[],properties:{"form-field":{type:"string",default:"Some text",title:'Enter any text. It will be submitted under "form-field".'}}}],layout:[{type:"box",width:"md",components:[{type:"paragraph",text:"Action buttons merge the form data with their own action.data before submitting it to the specified URL."},{type:"form",schema:{$ref:"#schema"}},...Du,{type:"paragraph",text:"Press any buttons and see the httpClient calls below.",align:"center"}]}]},Cl=Lu;var Tu={id:"Components/Columns",title:"Columns Component",description:"Arrange components in two columns (when there's enough space)",schemas:[],layout:[{type:"columns",left:[{type:"button",action:{title:"Save",type:"primary",exit:!0,result:{side:"left"}}}],right:[{type:"button",action:{title:"Delete",type:"negative",exit:!0,result:{side:"right"}}}]}]},xl=Tu;var Bu={id:"Components/Copyable",title:"Copyable Text",description:"Copyable Text Component.",layout:[{type:"paragraph",align:"center",text:"Please copy the code below and use it in that other thing."},{type:"paragraph",text:"7Xtiq6fnX9aEVF7yZAmb2qyqS857ro8S",align:"center",control:"copyable"}],schemas:[]},Ol=Bu;var Nu={id:"Components/Decision",title:"Decision Component",description:"A step with a decision Component.",schemas:[],layout:[{type:"heading",size:"sm",text:"Please continue using one of the following options:"},{type:"decision",options:[{title:"Create a new recipient",description:"You will need their bank details to hand",icon:{name:"plus"},action:{title:"",url:"recipient"}},{title:"Choose an existing recipient",disabled:!1,icon:{name:"bank"},action:{title:"",url:"review"}},{title:"Show me the external step",disabled:!1,icon:{name:"bulb"},action:{title:"",url:"external"}},{title:"Currency flags are now supported as well",disabled:!1,icon:{name:"flag-eur"},action:{title:"",url:"external"}}]}]},vl=Nu;var Ru={id:"Components/Decision Flags",title:"Decision Component",description:"A step with a decision Component.",schemas:[],layout:[{type:"heading",size:"sm",text:"Please continue using one of the following options:"},{type:"decision",options:ko.map(e=>({title:`${e.toUpperCase()}`,icon:{name:`flag-${e}`},action:{url:"/"}}))}]},Al=Ru;var ju=Ee(require("@transferwise/icons")),Uu={id:"Components/Decision Icons",title:"Decision Component",description:"A step with a decision Component.",schemas:[],layout:[{type:"heading",size:"sm",text:"Please continue using one of the following options:"},{type:"decision",options:Object.keys(ju).map(e=>({title:`${e} Icon`,icon:{name:e},action:{url:"/"}}))}]},Pl=Uu;var zu={id:"Components/Heading",title:"Heading Component",description:'Headings can have different sizes: "xs", "sm", "md", "lg", "xl".',schemas:[],layout:["xs","sm","md","lg","xl"].map(e=>({type:"heading",text:`This is heading with size: "${e}"`,size:e}))},kl=zu;var Vu=["xs","sm","md","lg","xl"],Hu={id:"Components/Image",title:"Image Component",description:'Images can have different sizes: "xs", "sm", "md", "lg", "xl".',schemas:[],layout:Vu.flatMap(e=>[{type:"paragraph",text:`This is an image with size: "${e}"`,align:"center"},{type:"image",url:"https://images.unsplash.com/photo-1542736705-53f0131d1e98?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=400&q=80",text:`This is an image with size: "${e}"`,size:e}])},Ml=Hu;var qu={id:"Components/Info",title:"Info Component",description:"A block of markdown content.",schemas:[],layout:[{type:"info",markdown:`## The Advantages of Using Bananas for Data Backup
1
+ "use strict";var Mc=Object.create;var Rt=Object.defineProperty,Ec=Object.defineProperties,Ic=Object.getOwnPropertyDescriptor,Dc=Object.getOwnPropertyDescriptors,Lc=Object.getOwnPropertyNames,Oa=Object.getOwnPropertySymbols,Tc=Object.getPrototypeOf,Aa=Object.prototype.hasOwnProperty,Bc=Object.prototype.propertyIsEnumerable;var va=(e,t,r)=>t in e?Rt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,i=(e,t)=>{for(var r in t||={})Aa.call(t,r)&&va(e,r,t[r]);if(Oa)for(var r of Oa(t))Bc.call(t,r)&&va(e,r,t[r]);return e},b=(e,t)=>Ec(e,Dc(t));var Pa=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),tt=(e,t)=>{for(var r in t)Rt(e,r,{get:t[r],enumerable:!0})},ka=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Lc(t))!Aa.call(e,a)&&a!==r&&Rt(e,a,{get:()=>t[a],enumerable:!(o=Ic(t,a))||o.enumerable});return e};var Ee=(e,t,r)=>(r=e!=null?Mc(Tc(e)):{},ka(t||!e||!e.__esModule?Rt(r,"default",{value:e,enumerable:!0}):r,e)),Nc=e=>ka(Rt({},"__esModule",{value:!0}),e);var nt=Pa((fh,Ar)=>{(function(){"use strict";var e={}.hasOwnProperty,t="[native code]";function r(){for(var o=[],a=0;a<arguments.length;a++){var n=arguments[a];if(n){var s=typeof n;if(s==="string"||s==="number")o.push(n);else if(Array.isArray(n)){if(n.length){var c=r.apply(null,n);c&&o.push(c)}}else if(s==="object"){if(n.toString!==Object.prototype.toString&&!n.toString.toString().includes("[native code]")){o.push(n.toString());continue}for(var m in n)e.call(n,m)&&n[m]&&o.push(m)}}}return o.join(" ")}typeof Ar<"u"&&Ar.exports?(r.default=r,Ar.exports=r):typeof define=="function"&&typeof define.amd=="object"&&define.amd?define("classnames",[],function(){return r}):window.classNames=r})()});var xs=Pa((or,oa)=>{(function(t,r){typeof or=="object"&&typeof oa=="object"?oa.exports=r(require("react")):typeof define=="function"&&define.amd?define(["react"],r):typeof or=="object"?or.Webcam=r(require("react")):t.Webcam=r(t.React)})(or,function(e){return function(t){var r={};function o(a){if(r[a])return r[a].exports;var n=r[a]={i:a,l:!1,exports:{}};return t[a].call(n.exports,n,n.exports,o),n.l=!0,n.exports}return o.m=t,o.c=r,o.d=function(a,n,s){o.o(a,n)||Object.defineProperty(a,n,{enumerable:!0,get:s})},o.r=function(a){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},o.t=function(a,n){if(n&1&&(a=o(a)),n&8||n&4&&typeof a=="object"&&a&&a.__esModule)return a;var s=Object.create(null);if(o.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:a}),n&2&&typeof a!="string")for(var c in a)o.d(s,c,function(m){return a[m]}.bind(null,c));return s},o.n=function(a){var n=a&&a.__esModule?function(){return a.default}:function(){return a};return o.d(n,"a",n),n},o.o=function(a,n){return Object.prototype.hasOwnProperty.call(a,n)},o.p="",o(o.s="./src/react-webcam.tsx")}({"./src/react-webcam.tsx":function(t,r,o){"use strict";o.r(r);var a=o("react"),n=o.n(a),s=function(){var g=function(y,l){return g=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,f){d.__proto__=f}||function(d,f){for(var h in f)f.hasOwnProperty(h)&&(d[h]=f[h])},g(y,l)};return function(y,l){g(y,l);function d(){this.constructor=y}y.prototype=l===null?Object.create(l):(d.prototype=l.prototype,new d)}}(),c=function(){return c=Object.assign||function(g){for(var y,l=1,d=arguments.length;l<d;l++){y=arguments[l];for(var f in y)Object.prototype.hasOwnProperty.call(y,f)&&(g[f]=y[f])}return g},c.apply(this,arguments)},m=function(g,y){var l={};for(var d in g)Object.prototype.hasOwnProperty.call(g,d)&&y.indexOf(d)<0&&(l[d]=g[d]);if(g!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,d=Object.getOwnPropertySymbols(g);f<d.length;f++)y.indexOf(d[f])<0&&Object.prototype.propertyIsEnumerable.call(g,d[f])&&(l[d[f]]=g[d[f]]);return l};(function(){typeof window>"u"||(navigator.mediaDevices===void 0&&(navigator.mediaDevices={}),navigator.mediaDevices.getUserMedia===void 0&&(navigator.mediaDevices.getUserMedia=function(y){var l=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;return l?new Promise(function(d,f){l.call(navigator,y,d,f)}):Promise.reject(new Error("getUserMedia is not implemented in this browser"))}))})();function p(){return!!(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia)}var u=function(g){s(y,g);function y(l){var d=g.call(this,l)||this;return d.canvas=null,d.ctx=null,d.requestUserMediaId=0,d.unmounted=!1,d.state={hasUserMedia:!1},d}return y.prototype.componentDidMount=function(){var l=this,d=l.state,f=l.props;if(this.unmounted=!1,!p()){f.onUserMediaError("getUserMedia not supported");return}d.hasUserMedia||this.requestUserMedia(),f.children&&typeof f.children!="function"&&console.warn("children must be a function")},y.prototype.componentDidUpdate=function(l){var d=this.props;if(!p()){d.onUserMediaError("getUserMedia not supported");return}var f=JSON.stringify(l.audioConstraints)!==JSON.stringify(d.audioConstraints),h=JSON.stringify(l.videoConstraints)!==JSON.stringify(d.videoConstraints),S=l.minScreenshotWidth!==d.minScreenshotWidth,O=l.minScreenshotHeight!==d.minScreenshotHeight;(h||S||O)&&(this.canvas=null,this.ctx=null),(f||h)&&(this.stopAndCleanup(),this.requestUserMedia())},y.prototype.componentWillUnmount=function(){this.unmounted=!0,this.stopAndCleanup()},y.stopMediaStream=function(l){l&&(l.getVideoTracks&&l.getAudioTracks?(l.getVideoTracks().map(function(d){l.removeTrack(d),d.stop()}),l.getAudioTracks().map(function(d){l.removeTrack(d),d.stop()})):l.stop())},y.prototype.stopAndCleanup=function(){var l=this.state;l.hasUserMedia&&(y.stopMediaStream(this.stream),l.src&&window.URL.revokeObjectURL(l.src))},y.prototype.getScreenshot=function(l){var d=this,f=d.state,h=d.props;if(!f.hasUserMedia)return null;var S=this.getCanvas(l);return S&&S.toDataURL(h.screenshotFormat,h.screenshotQuality)},y.prototype.getCanvas=function(l){var d=this,f=d.state,h=d.props;if(!this.video||!f.hasUserMedia||!this.video.videoHeight)return null;if(!this.ctx){var S=this.video.videoWidth,O=this.video.videoHeight;if(!this.props.forceScreenshotSourceSize){var w=S/O;S=h.minScreenshotWidth||this.video.clientWidth,O=S/w,h.minScreenshotHeight&&O<h.minScreenshotHeight&&(O=h.minScreenshotHeight,S=O*w)}this.canvas=document.createElement("canvas"),this.canvas.width=l?.width||S,this.canvas.height=l?.height||O,this.ctx=this.canvas.getContext("2d")}var v=this,P=v.ctx,x=v.canvas;return P&&x&&(h.mirrored&&(P.translate(x.width,0),P.scale(-1,1)),P.imageSmoothingEnabled=h.imageSmoothing,P.drawImage(this.video,0,0,l?.width||x.width,l?.height||x.height),h.mirrored&&(P.scale(-1,1),P.translate(-x.width,0))),x},y.prototype.requestUserMedia=function(){var l=this,d=this.props,f=function(O,w){var v={video:typeof w<"u"?w:!0};d.audio&&(v.audio=typeof O<"u"?O:!0),l.requestUserMediaId++;var P=l.requestUserMediaId;navigator.mediaDevices.getUserMedia(v).then(function(x){l.unmounted||P!==l.requestUserMediaId?y.stopMediaStream(x):l.handleUserMedia(null,x)}).catch(function(x){l.handleUserMedia(x)})};if("mediaDevices"in navigator)f(d.audioConstraints,d.videoConstraints);else{var h=function(O){return{optional:[{sourceId:O}]}},S=function(O){var w=O.deviceId;return typeof w=="string"?w:Array.isArray(w)&&w.length>0?w[0]:typeof w=="object"&&w.ideal?w.ideal:null};MediaStreamTrack.getSources(function(O){var w=null,v=null;O.forEach(function(E){E.kind==="audio"?w=E.id:E.kind==="video"&&(v=E.id)});var P=S(d.audioConstraints);P&&(w=P);var x=S(d.videoConstraints);x&&(v=x),f(h(w),h(v))})}},y.prototype.handleUserMedia=function(l,d){var f=this.props;if(l||!d){this.setState({hasUserMedia:!1}),f.onUserMediaError(l);return}this.stream=d;try{this.video&&(this.video.srcObject=d),this.setState({hasUserMedia:!0})}catch{this.setState({hasUserMedia:!0,src:window.URL.createObjectURL(d)})}f.onUserMedia(d)},y.prototype.render=function(){var l=this,d=this,f=d.state,h=d.props,S=h.audio,O=h.forceScreenshotSourceSize,w=h.onUserMedia,v=h.onUserMediaError,P=h.screenshotFormat,x=h.screenshotQuality,E=h.minScreenshotWidth,L=h.minScreenshotHeight,k=h.audioConstraints,T=h.videoConstraints,H=h.imageSmoothing,F=h.mirrored,j=h.style,I=j===void 0?{}:j,$=h.children,He=m(h,["audio","forceScreenshotSourceSize","onUserMedia","onUserMediaError","screenshotFormat","screenshotQuality","minScreenshotWidth","minScreenshotHeight","audioConstraints","videoConstraints","imageSmoothing","mirrored","style","children"]),ue=F?c(c({},I),{transform:(I.transform||"")+" scaleX(-1)"}):I,et={getScreenshot:this.getScreenshot.bind(this)};return a.createElement(a.Fragment,null,a.createElement("video",c({autoPlay:!0,src:f.src,muted:!S,playsInline:!0,ref:function(xe){l.video=xe},style:ue},He)),$&&$(et))},y.defaultProps={audio:!1,forceScreenshotSourceSize:!1,imageSmoothing:!0,mirrored:!1,onUserMedia:function(){},onUserMediaError:function(){},screenshotFormat:"image/webp",screenshotQuality:.92},y}(a.Component);r.default=u},react:function(t,r){t.exports=e}}).default})});var Np={};tt(Np,{DynamicFlow:()=>ga,JsonSchemaForm:()=>er,Layout:()=>ie,convertStepToLayout:()=>jt,fixtures:()=>sc,inlineReferences:()=>qe,isValidSchema:()=>G,makeHttpClient:()=>yr,translations:()=>Cc});module.exports=Nc(Np);function jt(e,{displayStepTitle:t=!0}={}){if(e.layout)return Jc(e,t);switch(e.type){case"final":return zc(e);case"decision":return Vc(e);case"external":return Rc(e);default:return Uc(e)}}function Jr(e){let t=[];if(e.title&&t.push(Xr(e.title)),e.image){let r=Ma(e.image);t.push(r)}return e.description&&t.push(Qr(e.description)),t}function Rc(e){return[...Jr(e),jc(e)]}function jc(e){return{type:"external",requestUrl:e.requestUrl,polling:e.polling,responseHandlers:e.responseHandlers,retryTitle:e.retryTitle}}function Uc(e){let t=Jr(e);if(e.reviewFields&&t.push(_c(e.reviewFields)),e.schemas&&t.push(...Kc(e)),e.actions){let r=e.actions.map(cr);t.push(Zr(r,"md"))}return t}function zc(e){let t=[];if(e.details){if(e.details.image){let r=Gc(e.details.image);t.push(r)}e.details.title&&t.push(Xr(e.details.title)),e.details.description&&t.push(Qr(e.details.description))}if(e.actions){let r=e.actions.map(o=>cr(b(i({},o),{type:o.type||"primary"})));t.push(Zr(r,"md"))}return t}function Vc(e){let t=Jr(e);return e.options&&t.push(qc(e.options)),t}function Zr(e,t){return{type:"box",width:t||"md",components:e}}function Xr(e){return{type:"heading",text:e,size:"lg",margin:"lg",align:"center"}}function Qr(e){return{type:"paragraph",text:e,align:"center"}}function Hc(e){return{type:"form",schema:e}}function qc(e){return{type:"decision",options:e.map($c)}}function $c(e){return{title:e.title,description:e.description,action:{title:e.title,method:"GET",url:e.url,disabled:e.disabled}}}function Ma(e){return{type:"image",url:e.url,text:e.text,margin:e.margin||"lg",size:e.size||"md"}}function Gc(e){return typeof e=="string"?{type:"image",url:e,text:void 0,margin:"lg",size:"md"}:Ma(e)}function cr(e){return{type:"button",action:b(i({},e),{title:e.title})}}function _c(e){return{type:"review",title:e.title,fields:e.fields.map(Wc)}}function Wc(e){return{label:e.title,value:e.value}}function Kc(e){let t=[];if(e.schemas&&e.schemas[0]){let r=e.schemas[0],o=Hc(r);Yc()?t.push(o):t.push(Zr([o],"md"))}return t}function Yc(){return!1}function Jc(e,t){return[...t&&e.title?[Xr(e.title)]:[],...e.description?[Qr(e.description)]:[],...e.layout||[]]}function qe({layout:e,schemas:t,actions:r,model:o}){return e?t?e.map(a=>a.type==="form"?Zc({formComponent:a,schemas:t}):a.type==="decision"?Xc({decisionComponent:a,actions:r}):a.type==="button"?Qc({actionComponent:a,actions:r}):a.type==="box"?em({boxComponent:a,schemas:t,actions:r,model:o}):a.type==="columns"?tm({columnsComponent:a,schemas:t,actions:r,model:o}):a):e:[]}function Zc({formComponent:e,schemas:t}){return eo(e.schema)&&e.schema.$ref?b(i({},e),{schema:rm(t,e.schema.$ref)}):i({},e)}function Xc({decisionComponent:e,actions:t}){var o;let r=(o=e==null?void 0:e.options)==null?void 0:o.map(a=>a.action&&eo(a.action)?b(i({},a),{action:Ea(t,a.action.$ref)}):a);return b(i({},e),{options:r})}function Qc({actionComponent:e,actions:t}){var r;if(e.action&&eo(e.action)&&((r=e.action)!=null&&r.$ref)){let o=Ea(t,e.action.$ref);return cr(o)}return e}function em({boxComponent:e,schemas:t,actions:r,model:o}){return b(i({},e),{components:qe({layout:e.components,schemas:t,actions:r,model:o})})}function tm({columnsComponent:e,schemas:t,actions:r,model:o}){return b(i({},e),{left:qe({layout:e.left,schemas:t,actions:r,model:o}),right:qe({layout:e.right,schemas:t,actions:r,model:o})})}function rm(e,t){let r=e.find(o=>o.$id===t);if(!r)throw new Error(`Fatal Error. Schema not found. $id ${t}`);return r}function Ea(e,t){let r=e.find(o=>o.$id===t);if(!r)throw new Error(`Fatal Error. Action not found. $id ${t}`);return r}function eo(e){return Object.prototype.hasOwnProperty.call(e,"$ref")}var Ce=require("react"),Sl=require("react-intl");var pt=require("react");var mr=require("react");function Ia(){let[e,t]=(0,mr.useState)(0);return{addPendingPromise:(0,mr.useCallback)(o=>{t(a=>a+1),o.catch(am).finally(()=>om(()=>t(a=>Math.max(0,a-1))))},[t]),pendingPromises:e}}var om=e=>setTimeout(()=>e(),0),am=()=>{};var Ba=require("react/jsx-runtime"),Da={loading:!1,registerPersistAsyncPromise:e=>{}},La=(0,pt.createContext)(Da),Ta=({loading:e,children:t})=>{let{pendingPromises:r,addPendingPromise:o}=Ia(),a=(0,pt.useMemo)(()=>({loading:e||r>0,registerPersistAsyncPromise:o}),[e,r,o]);return(0,Ba.jsx)(La.Provider,{value:a,children:t})},dr=()=>(0,pt.useContext)(La)||Da;var ft=require("react");var Ra=require("react/jsx-runtime"),Na=(0,ft.createContext)({triggerEvent:()=>{}}),ur=({metadata:e,children:t,onEvent:r})=>{let o=(0,ft.useMemo)(()=>({triggerEvent:to(r,e)}),[r,e]);return(0,Ra.jsx)(Na.Provider,{value:o,children:t})};function Q(){let{triggerEvent:e}=(0,ft.useContext)(Na);return e}var to=(e,t)=>(r,o={})=>e(r,i(i({},t),o));var rt=require("react");function ja(e){return e>=200&&e<300}function pr(e){return e===422}function fr(e=""){return["https://","http://","data:"].some(t=>e.slice(0,t.length)===t&&e.length>t.length)===!1}var yr=(e,t)=>(r,o)=>{let a=nm(r,e||""),n=im(o==null?void 0:o.headers,t);return fetch(a,b(i({},o||{}),{headers:n}))},nm=(e,t)=>typeof e=="string"&&fr(e)?t+e:e,im=(e,t)=>{if(!e&&!t)return{};let r=new Headers(e);for(let[o,a]of Object.entries(t||{}))r.set(o,a);return r};var ro=require("react/jsx-runtime"),hr=(0,rt.createContext)(void 0),Ua=({httpClient:e,children:t})=>(0,ro.jsx)(hr.Provider,{value:e,children:t}),gr=({baseUrl:e,children:t})=>{let r=(0,rt.useMemo)(()=>yr(e),[e]);return(0,ro.jsx)(hr.Provider,{value:r,children:t})},re=()=>(0,rt.useContext)(hr)||fetch,br=()=>!!(0,rt.useContext)(hr);var yt=require("react");var Va=require("react/jsx-runtime"),ot=(e,t,r="UNKNOWN-FLOW-ID",o="UNKNOWN-FLOW-ID")=>(a,n,s)=>t(e,`Dynamic Flow ${e} - ${a} - ${n}`,i({flowId:r,stepId:o},s)),za=(0,yt.createContext)(null),Sr=({flowId:e,stepId:t,children:r,onLog:o})=>{let a=(0,yt.useMemo)(()=>({debug:ot("debug",o,e,t),info:ot("info",o,e,t),warning:ot("warning",o,e,t),error:ot("error",o,e,t),critical:ot("critical",o,e,t)}),[o,e,t]);return(0,Va.jsx)(za.Provider,{value:a,children:r})},ht=()=>{let e=(0,yt.useContext)(za);if(e==null)throw new Error("Logging context not found. Did you forget to wrap your component in a <LogProvider />?");return e};var Z=e=>typeof e=="object"&&e!==null&&e.constructor===Object,oo=e=>A(e)||Z(e),ao=e=>Oe(e)||B(e)||M(e)||A(e),Ha=e=>M(e)||A(e),no=e=>q(e)?e.length===0?!0:e.every(t=>typeof t=="string"||typeof t=="number"||typeof t=="boolean"):!1,qa=e=>A(e)?!0:no(e);var gt=e=>M(e)||A(e);var sm=new Set(["string","number","integer","boolean"]);function pe(e){return sm.has(e.type||"")||"const"in e&&e.const!==void 0}function ce(e){return e.type==="object"}function Ut(e){return oe(e)&&e.oneOf.every(t=>t.type==="object")}function oe(e){return!!e.oneOf}function zt(e){return!!e.allOf}function at(e){return e.type==="blob"}function fe(e){return e.type==="array"}function Ie(e){let t=e.items;return!Array.isArray(t)}function $a(e){return e.type==="string"}function bt(e){return!!e.persistAsync}function lm(e){return bt(e)&&(at(e.persistAsync.schema)||cm(e.persistAsync.schema))}var Vt=e=>pe(e)&&!!e.validationAsync;function cm(e){return e.type==="string"&&e.format==="base64url"}var Ga=e=>fe(e)&&Ie(e)&&lm(e.items);function io(e){return e.type==="string"&&e.format==="base64url"}var M=e=>typeof e=="string",B=e=>typeof e=="number"&&!Number.isNaN(e),_a=e=>B(e)&&Math.floor(e)===e,Oe=e=>typeof e=="boolean",N=e=>!A(e)&&!K(e)&&(e==null?void 0:e.constructor)===Object,q=e=>Array.isArray(e),A=e=>e===null,K=e=>typeof e=="undefined";var St=e=>M(e)&&e.length===0||(N(e)||q(e))&&Object.keys(e).length===0;function Wa(e,t){return t.oneOf.some(r=>De(e,r)===e)?e:null}function Ka(e,t){var o;let r=t.oneOf.map(a=>mm(e,a)).filter(a=>a!==null);return r.length===0?null:(o=r.find(a=>a.some(n=>n!==null)))!=null?o:r[0]}function mm(e,t){return!fe(t)||!Ie(t)?null:so(e,t)}function Ya(e){return M(e)&&!St(e)?e:null}function Ja(e){return B(e)?e:null}function Za(e){return Oe(e)?e:null}function so(e,t){if(!q(e)||!Ie(t))return null;if(e.length>0){let r=typeof e[0];if(!e.every(o=>typeof o===r))return new Array(e.length).fill(null)}return e.map(r=>De(r,t.items))}function Xa(e,t){return Object.keys(t.properties).reduce((r,o)=>{if(e&&!K(e[o])){let a=e[o],n=t.properties[o],s=Ht(a,n);if(!A(s))return b(i({},r),{[o]:s})}return r},{})}function Qa(e,t){return t.allOf.reduce((r,o)=>{let a=ae(e,o);return Z(a)?i(i({},r),a):r},{})}function en(e,t){return t.oneOf.map(r=>ae(e,r)).reduce((r,o)=>A(r)?o:Z(r)&&Z(o)?tn(r,o):A(o)?r:o,null)}function tn(e,t){return Object.keys(t).reduce((r,o)=>{let a=e[o],n=t[o];return Z(a)&&Z(n)?b(i({},r),{[o]:tn(a,n)}):b(i({},r),{[o]:t[o]})},i({},e))}var Ht=(e,t)=>Z(e)?ae(e,t):no(e)?dm(e,t):De(e,t);function De(e,t){if(A(e))return null;if(t.oneOf)return Wa(e,t);if(!K(t.const)&&e===t.const)return e;if(t.type)switch(t.type){case"string":return Ya(e);case"number":case"integer":return Ja(e);case"boolean":return Za(e);default:return null}return null}function ae(e,t){return pe(t)||fe(t)||A(e)?null:t.allOf?Qa(e,t):t.oneOf?en(e,t):!K(t.const)&&e===t.const?e:ce(t)?Xa(e,t):null}function dm(e,t){return oe(t)?Ka(e,t):fe(t)?so(e,t):null}function qt(e,t=!1){return!t||!K(e)}function rn(e,t=!1){return!t||q(e)}function on(e,t){return!B(t)||M(e)&&e.length>=t}function an(e,t){return!B(t)||M(e)&&e.length<=t}function nn(e,t){return t===void 0?!0:e==null?!1:!!new RegExp(t).test(e)}function lo(e,t){return!B(t)&&!M(t)||(B(e)||M(e))&&e<=t}function co(e,t){return!B(t)&&!M(t)||(B(e)||M(e))&&e>=t}function sn(e,t){return!B(t)||q(e)&&e.length>=t}function ln(e,t){return!B(t)||q(e)&&e.length<=t}function $e(e,t,r){if(t.const)return fo(e,t,r);if(A(e))return r?["required"]:[];if($a(t))return mo(e,t,r);switch(t.type){case"number":return wr(e,t,r);case"integer":return uo(e,t,r);case"boolean":return po(e,t,r);case"array":return wt(e,t,r);case"object":return um(e,t);default:return[]}}function mo(e,t,r){if(!M(e)&&!A(e))return["type"];if(e===""&&r)return["required"];let o=[];return qt(e,r)||o.push("required"),on(e,t.minLength)||o.push("minLength"),an(e,t.maxLength)||o.push("maxLength"),nn(e,t.pattern)||o.push("pattern"),co(e,t.minimum)||o.push("minimum"),lo(e,t.maximum)||o.push("maximum"),o}function wr(e,t,r){if(!B(e)&&!A(e))return["type"];let o=[];return qt(e,r)||o.push("required"),co(e,t.minimum)||o.push("minimum"),lo(e,t.maximum)||o.push("maximum"),o}function uo(e,t,r){return _a(e)?wr(e,t,r):["type"]}function po(e,t,r){if(!Oe(e)&&!A(e))return["type"];let o=[];return qt(e,r)||o.push("required"),o}function fo(e,t,r){return qt(e,r)?e!==t.const?["const"]:[]:["required"]}function wt(e,t,r){if(!q(e)&&!A(e))return["type"];if(!rn(e,r))return["required"];let o=[];return sn(e,t.minItems)||o.push("minItems"),ln(e,t.maxItems)||o.push("maxItems"),o}function cn(e,t){return A(e)?["type"]:[]}function um(e,t){return Z(e)?q(t.required)?t.required.map(o=>typeof e[o]!="undefined").reduce((o,a)=>o&&a,!0)?[]:["required"]:[]:["type"]}function pm(e,t){return!mo(e,t).length}function fm(e,t){return!wr(e,t).length}function ym(e,t){return!uo(e,t).length}function hm(e,t){return!po(e,t).length}function gm(e,t){return!fo(e,t).length}function bm(e,t){return!N(e)||t.type!=="object"||!N(t.properties)?!1:Object.keys(t.properties).map(r=>Sm(e[r],t.properties[r],t.required&&t.required.includes(r))).every(r=>r)}function Sm(e,t,r){return typeof e=="undefined"?!r:G(e,t)}function wm(e,t){return t.type!=="array"||!N(t.items)||wt(e,t).length>0?!1:Array.isArray(e)&&Ie(t)&&e.map(r=>G(r,t.items)).every(r=>r)}function Fm(e,t){return q(t.oneOf)?t.oneOf.some(r=>G(e,r)):!1}function Cm(e,t){return q(t.allOf)?t.allOf.map(r=>G(e,r)).every(r=>r):!1}function xm(e,t){return!cn(e,t).length}function G(e,t){if(t.oneOf)return Fm(e,t);if(t.allOf)return Cm(e,t);if(t.const)return gm(e,t);switch(t.type){case"string":return pm(e,t);case"number":return fm(e,t);case"integer":return ym(e,t);case"boolean":return hm(e,t);case"array":return wm(e,t);case"object":return bm(e,t);case"blob":return xm(e,t);default:return!1}}var wn=require("react");function Om(e){let t=new Date(e),r=`${t.getMonth()+1}`,o=`${t.getDate()}`,a=t.getFullYear(),n=r.length<2?`0${r}`:r,s=o.length<2?`0${o}`:o;return[a,n,s].join("-")}var mn=e=>{if(!e)return null;let[t,r,o]=e.split("-").map(a=>parseInt(a,10));return!B(t)||!B(r)||!B(o)?null:new Date(t,r-1,o)},dn=e=>Om(e);var Ft=(e,t)=>{let r,o,a=()=>{r&&(clearTimeout(r),r=null),o=null},n=(...s)=>{o=s,r!==null&&clearTimeout(r),r=setTimeout(()=>{e(...o),r=null,o=null},t)};return n.cancel=()=>{r!==null&&a()},n.flush=()=>{r!==null&&(e(...o),a())},n};var Ge=(e,t)=>e===t?!0:Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.every((r,o)=>Ge(r,t[o])):!!(un(e)&&un(t)&&vm(e,t)),vm=(e,t)=>{let r=Object.keys(e),o=Object.keys(t);return r.length===o.length&&r.every(a=>Object.prototype.hasOwnProperty.call(t,a)&&Ge(e[a],t[a]))},un=e=>typeof e=="object"&&e!==null;function Fr(e){return Math.floor(e/1024)}var pn=e=>new Promise((t,r)=>{let o=new FileReader;o.readAsDataURL(e),o.addEventListener("load",()=>t(o.result)),o.addEventListener("error",a=>r(a))});function fn(e,t){let r=t.reduce((o,a)=>b(i({},o),{[a.id]:a}),{});for(let o of e){let a=r[o.id];if(!a||a.status!==o.status)return!1}return!0}var ve=(e="")=>`${e?`${e}-`:""}${Math.floor(1e8*Math.random())}`;var yn={DAY_MONTH_YEAR:"day-month-year",MONTH_YEAR:"month-year"};var R={RADIO:"radio",CHECKBOX:"checkbox",SELECT:"select",FILE:"file",DATE:"date",DATETIME:"date-time",DATELOOKUP:"date-lookup",TEL:"tel",NUMBER:"number",HIDDEN:"hidden",PASSWORD:"password",TEXT:"text",TEXTAREA:"textarea",UPLOAD:"upload",TAB:"tab"};var hn={SHORT:"short",LONG:"long"};var ye={READ_ONLY:"readOnly",PERSIST_ASYNC:"persistAsync",VALIDATION_ASYNC:"validationAsync",OBJECT:"object",PROMOTED_ONE_OF:"promotedOneOf",ONE_OF:"oneOf",ALL_OF:"allOf",BASIC:"basic",ARRAY:"array"};var gn={EXTRA_SMALL:"xs",SMALL:"sm",MEDIUM:"md",LARGE:"lg",EXTRA_LARGE:"xl"};var Am=e=>!!e.readOnly&&pe(e),Pm=e=>!!e.oneOf&&!!e.promotion,km=oe,Mm=zt,Cr=e=>Am(e)?ye.READ_ONLY:bt(e)?ye.PERSIST_ASYNC:Vt(e)?ye.VALIDATION_ASYNC:ce(e)?ye.OBJECT:fe(e)?ye.ARRAY:Pm(e)?ye.PROMOTED_ONE_OF:km(e)?ye.ONE_OF:Mm(e)?ye.ALL_OF:pe(e)?ye.BASIC:null;function bn(e){return Cr(e)===ye.BASIC&&e.type!=="boolean"&&e.format!=="base64url"}var Sn=e=>Em(e)&&Im(e)&&Dm(e),Em=e=>!e.type||e.type==="form",Im=e=>{var t;return((t=e==null?void 0:e.actions)==null?void 0:t.length)===1},Dm=e=>{if(!e.schemas)return!1;let t=xr(e.schemas);if((t==null?void 0:t.length)!==1)return!1;let r=t[0];if(!ce(r)||Object.values(r.properties).length!==1)return!1;let o=Object.values(r.properties)[0];return io(o)?o.source==="camera":!1},xr=e=>e.filter(t=>ce(t)?Object.values((t==null?void 0:t.properties)||{}).find(r=>(r==null?void 0:r.hidden)!==!0):(t==null?void 0:t.hidden)!==!0);function Fn(e,t){return(0,wn.useCallback)(Ft(e,t),[e,t])}var $t=require("react");function Cn(e){let[t,r]=(0,$t.useState)(null),[o,a]=(0,$t.useState)(!1),n=()=>a(!0);return(0,$t.useEffect)(()=>{e&&(a(!1),r(window.open(e,"_blank")))},[e]),{requiresManualTrigger:!!(e&&!t&&!o),dismissConfirmation:n}}var Gt=require("react");function xn(e,t){let r=re(),o=(0,Gt.useMemo)(()=>{if(e)return()=>r(e.url).then(n=>{if(n.ok)try{return n.json()}catch(s){throw new Error("failed")}else throw new Error("failed")})},[e,r]),a=(0,Gt.useCallback)(n=>{let c=((e==null?void 0:e.responseHandlers)||[]).find(m=>m.result===n.result);if(c!=null&&c.action){let{action:m}=c;if(m.exit){let p=i(i({},m.result||{}),n.data||{});t(b(i({},m),{result:p}))}else{let p=i(i({},m.data||{}),n.data||{});t(b(i({},m),{data:p}))}return!1}return!0},[e==null?void 0:e.responseHandlers,t]);Or({asyncFn:o,interval:(e==null?void 0:e.interval)||0,maxAttempts:(e==null?void 0:e.maxAttempts)||0,maxConsecutiveFails:(e==null?void 0:e.maxConsecutiveFails)||0,onPollingResponse:a,onFailure:(0,Gt.useCallback)(()=>{e&&t(e.onError.action)},[t,e])})}var Ss=require("react"),ws=require("react-intl");var On=require("react-intl"),_t=(0,On.defineMessages)({genericError:{id:"dynamicFlows.PersistAsyncSchema.genericError",defaultMessage:"Something went wrong, please try again later!",description:"Generic error message for persist async schema"}});var ut=require("react"),fs=require("react-intl");var Lm={allOf:[{title:"Number schemas",type:"object",displayOrder:["number"],properties:{number:{type:"number",title:"Number input",minimum:2,maximum:200,default:1,help:{markdown:"2 or more"},validationMessages:{min:"Too low buddy!",max:"Crazy high!"}}},required:["number"]},{title:"String schemas",type:"object",displayOrder:["string","date","phone","file"],properties:{string:{type:"string",title:"Text input",minLength:2,maxLength:8,pattern:"^[a-z]+$",default:"abc",help:{markdown:"Keep it secret, Keep it safe"}},date:{type:"string",format:"date",title:"Date input",minimum:"2000-02-01",maximum:"2010-01-01",validationMessages:{min:"Must be after Feb 2000",max:"Must be before Jan 2010"}},phone:{type:"string",format:"phone",title:"Phone input",minLength:10,maxLength:12},file:{type:"string",format:"base64url",title:"File input"}},required:["string"]},{title:"Boolean schemas",type:"object",displayOrder:["boolean"],properties:{boolean:{type:"boolean",title:"Boolean input",width:"md"}}},{title:"OneOf Const schema",type:"object",displayOrder:["select","radio"],properties:{select:{title:"Select",placeholder:"Please choose",oneOf:[{title:"One",const:"one"},{title:"Two",const:"two"},{title:"Three",const:"three"}]},radio:{title:"Radio",placeholder:"Please choose",oneOf:[{title:"One",const:"one"},{title:"Two",const:"two"}]}},required:["select","radio"]}]},vr=Lm;var us=Ee(nt()),se=require("react");var vn=require("@transferwise/components");var z=e=>{switch(e){case"xs":return"m-b-0";case"sm":return"m-b-1";case"md":return"m-b-2";case"lg":return"m-b-3";case"xl":return"m-b-5";default:return""}},Tm=e=>{switch(e){case"right":return"text-xs-right";case"center":return"text-xs-center";case"left":default:return""}},Le=e=>`${Tm(e.align)} ${z(e.margin)}`;var An=require("react/jsx-runtime"),Bm=e=>{let t=e.component;return(0,An.jsx)(vn.Alert,{type:Rm(Nm(t.context)),className:z(t.margin),message:t.markdown})},Nm=e=>{switch(e){case"success":return"positive";case"failure":return"negative";case"warning":return"warning";case"info":case"primary":return"neutral";default:return e}},Rm=e=>!e||!["neutral","warning","negative","positive"].includes(e)?"neutral":e,ne=Bm;var it=require("react/jsx-runtime"),jm=e=>{let t=e.component,r=z(t.margin||t.border?"lg":"xs");return!t.width||t.width==="xl"?(0,it.jsx)("div",{className:r+Pn(t.border),children:(0,it.jsx)(ie,{components:t.components,model:e.model,submitted:e.submitted,errors:e.errors,onModelChange:e.onModelChange,onAction:e.onAction,onPersistAsync:e.onPersistAsync})}):(0,it.jsx)("div",{className:"row",children:(0,it.jsx)("div",{className:r+Um(t),children:(0,it.jsx)("div",{className:Pn(t.border),children:(0,it.jsx)(ie,{components:t.components,model:e.model,submitted:e.submitted,errors:e.errors,onModelChange:e.onModelChange,onAction:e.onAction,onPersistAsync:e.onPersistAsync})})})})},Pn=e=>e?" well p-b-0":"",Um=e=>{switch(e.width){case"xs":return" col-md-4 col-md-offset-4";case"sm":return" col-md-6 col-md-offset-3 col-lg-4 col-lg-offset-4";case"md":return" col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3";case"lg":return" col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2";case"xl":default:return" col-xs-12"}},yo=jm;var In=require("@transferwise/components");var zm={primary:"primary",secondary:"secondary",link:"tertiary",positive:"primary",negative:"primary"},kn=e=>{var r;let t=e.action.type;return(r=e.control)!=null?r:t?zm[t]:"secondary"},Vm={primary:"neutral",secondary:"neutral",link:"neutral",positive:"positive",negative:"negative"},Mn=e=>{var o;let t=e.action.type,r=(o=e.context)!=null?o:t?Vm[t]:"neutral";return r==="neutral"?"accent":r},En=e=>{switch(e){case"xs":case"sm":return"sm";case"lg":case"xl":return"lg";case"md":default:return"md"}};var Dn=require("react/jsx-runtime"),Hm=e=>{var m;let{component:t,onAction:r}=e,o=t.action,a=Mn(t),n=kn(t),{loading:s}=dr(),c=z(t.margin||"md");return(0,Dn.jsx)(In.Button,{size:En(t.size),type:a,priority:n,block:!0,className:c,disabled:t.disabled||o.disabled||s,onClick:()=>r(o),children:(m=t.title)!=null?m:o.title})},ho=Hm;var st=require("react/jsx-runtime"),qm=e=>{let t=e.component,{leftWidth:r,rightWidth:o}=$m(t.bias);return(0,st.jsxs)("div",{className:`${z(t.margin||"xs")} row`,children:[(0,st.jsx)("div",{className:`${r} m-b-0`,children:(0,st.jsx)(ie,{components:t.left,model:e.model,submitted:e.submitted,errors:e.errors,onModelChange:e.onModelChange,onAction:e.onAction,onPersistAsync:e.onPersistAsync})}),(0,st.jsx)("div",{className:`${o} m-b-0`,children:(0,st.jsx)(ie,{components:t.right,model:e.model,submitted:e.submitted,errors:e.errors,onModelChange:e.onModelChange,onAction:e.onAction,onPersistAsync:e.onPersistAsync})})]})},$m=e=>e==="left"?{leftWidth:"col-md-8",rightWidth:"col-md-4"}:e==="right"?{leftWidth:"col-md-4",rightWidth:"col-md-8"}:{leftWidth:"col-md-6",rightWidth:"col-md-6"},go=qm;var Ae=require("@transferwise/components");var _e=require("react/jsx-runtime"),Gm=e=>{var t,r,o;if((t=e.icon)!=null&&t.name)return(0,_e.jsx)(Ae.Avatar,{type:Ae.AvatarType.ICON,children:(0,_e.jsx)(We,{type:e.icon.name})});if((r=e.icon)!=null&&r.text)return(0,_e.jsx)(Ae.Avatar,{type:Ae.AvatarType.INITIALS,children:e.icon.text});if((o=e.image)!=null&&o.url){let{url:a,text:n}=e.image;return(0,_e.jsx)("img",{src:a,alt:n})}},_m=e=>{let t=e.component,r=(o,a)=>{let n=Gm(o);return(0,_e.jsx)(Ae.NavigationOption,{title:o.title,content:o.description,disabled:o.disabled,media:n,showMediaCircle:!1,showMediaAtAllSizes:!0,onClick:()=>a(o.action)},JSON.stringify(o))};return(0,_e.jsx)("div",{className:z(t.margin),children:(0,_e.jsx)(Ae.NavigationOptionsList,{children:t.options.map(o=>r(o,e.onAction))})})},bo=_m;var Ln=require("react/jsx-runtime"),Wm=({component:e})=>{let r=`m-t-0 ${z(e.margin)}`;return(0,Ln.jsx)("hr",{className:r})},So=Wm;var Ct=require("@transferwise/components"),Pr=require("react"),Nn=require("react-intl");var Tn=require("react-intl"),Bn=(0,Tn.defineMessages)({retryTitle:{id:"dynamicFlows.DynamicExternal.retryTitle",defaultMessage:"Reopen window",description:""}});var Ke=require("react/jsx-runtime"),Km=({component:e,onAction:t})=>{let{requestUrl:r,responseHandlers:o,polling:a,retryTitle:n}=e,s=(0,Nn.useIntl)(),c=(0,Pr.useCallback)(()=>window.open(r,"df-external-window"),[r]);(0,Pr.useEffect)(()=>{c()},[c]);let m=a&&o?b(i({},a),{responseHandlers:o}):void 0;return xn(m,t),(0,Ke.jsxs)(Ke.Fragment,{children:[(0,Ke.jsx)(Ct.Loader,{size:Ct.Size.LARGE,classNames:{"tw-loader":"tw-loader m-x-auto"}}),(0,Ke.jsx)("br",{}),(0,Ke.jsx)(Ct.Button,{priority:"tertiary",block:!0,onClick:c,children:n||s.formatMessage(Bn.retryTitle)})]})},wo=Km;var Xi=require("react");var Rn=Ee(nt()),jn=require("react");var Pe=require("react/jsx-runtime"),Ym=(e,t)=>t.map(r=>ae(e,r)||{}),Jm=e=>e.reduce((t,r)=>i(i({},r),t),{}),Zm=e=>({"col-xs-12":!0,"col-sm-6":e==="md","col-sm-4":e==="sm"}),Un=e=>{let t=(a,n)=>{let s=e.schema.allOf[a];r[a]=ae(n.model,s)||{},o(r),e.onChange(b(i({},n),{model:Jm(r)}))},[r,o]=(0,jn.useState)(Ym(e.model,e.schema.allOf));return(0,Pe.jsxs)(Pe.Fragment,{children:[e.schema.title&&(0,Pe.jsx)("h3",{className:"page-header",children:e.schema.title}),e.schema.description&&(0,Pe.jsx)("p",{children:e.schema.description}),(0,Pe.jsx)("div",{className:"row",children:e.schema.allOf.map((a,n)=>(0,Pe.jsx)("div",{className:(0,Rn.default)(Zm(a.width)),children:(0,Pe.jsx)(me,{schema:a,model:r[n],errors:e.errors,submitted:e.submitted,disabled:e.disabled,onChange:s=>t(n,b(i({},s),{model:s.model})),onPersistAsync:e.onPersistAsync})},n))})]})};Un.defaultProps={disabled:!1};var Fo=Un;var Mr=require("@transferwise/components"),Qn=Ee(nt()),Wt=require("react");var kr=require("@transferwise/components"),Co=require("@transferwise/formatting"),Vn=require("react-intl");var zn=require("react-intl"),he=(0,zn.defineMessages)({type:{id:"dynamicFlows.ControlFeedback.type",defaultMessage:"Incorrect type",description:""},minimum:{id:"dynamicFlows.ControlFeedback.minimum",defaultMessage:"Please enter a number that's {minimum} or more.",description:""},maximum:{id:"dynamicFlows.ControlFeedback.maximum",defaultMessage:"Please enter a number that's {maximum} or less.",description:""},minLength:{id:"dynamicFlows.ControlFeedback.minLength",defaultMessage:"Please enter at least {minLength} characters.",description:""},maxLength:{id:"dynamicFlows.ControlFeedback.maxLength",defaultMessage:"Please enter {maxLength} or fewer characters.",description:""},minimumDate:{id:"dynamicFlows.ControlFeedback.minimumDate",defaultMessage:"Please enter a date that's on or after {minimum}.",description:""},maximumDate:{id:"dynamicFlows.ControlFeedback.maximumDate",defaultMessage:"Please enter a date that's on or before {maximum}.",description:""},pattern:{id:"dynamicFlows.ControlFeedback.pattern",defaultMessage:"Please enter this in the correct format.",description:""},patternDate:{id:"dynamicFlows.ControlFeedback.patternDate",defaultMessage:"Please enter a date in the corrrect format.",description:""},required:{id:"dynamicFlows.ControlFeedback.required",defaultMessage:"Please fill out this field.",description:""}});var Te=require("react/jsx-runtime"),Hn=e=>{var c;let t=Xm(e.schema),r=i(i(i({},t),e.validationMessages),e.schema.validationMessages),o=(e.submitted||!e.changed)&&!!e.errors,a=!o&&(e.submitted||e.changed&&e.blurred)&&!!((c=e.validations)!=null&&c.length),n=e.focused&&e.schema.description&&!a,s=!!e.infoMessage;return(0,Te.jsxs)("div",{children:[o?(0,Te.jsx)(kr.InlineAlert,{type:"error",children:e.errors}):null,a?(0,Te.jsx)(kr.InlineAlert,{type:"error",children:e.validations.map(m=>(0,Te.jsx)("div",{children:r[m]},m))}):null,(n||s)&&(0,Te.jsxs)(kr.InlineAlert,{type:"info",children:[n&&(0,Te.jsx)("div",{children:e.schema.description}),s&&(0,Te.jsx)("div",{children:e.infoMessage})]})]})};Hn.defaultProps={errors:"",validations:[],validationMessages:{},validationAsyncSuccessMessage:null};function Xm(e){let{formatMessage:t,locale:r}=(0,Vn.useIntl)(),o={type:t(he.type),minimum:t(he.minimum,{minimum:e.minimum}),maximum:t(he.maximum,{maximum:e.maximum}),minLength:t(he.minLength,{minLength:e.minLength}),maxLength:t(he.maxLength,{maxLength:e.maxLength}),pattern:t(he.pattern),required:t(he.required)};if(e.format==="date"){let a={pattern:t(he.patternDate),minimum:e.minimum?t(he.minimumDate,{minimum:(0,Co.formatDate)(new Date(e.minimum),r,{timeZone:"UTC",dateStyle:"long"})}):void 0,maximum:e.maximum?t(he.maximumDate,{maximum:(0,Co.formatDate)(new Date(e.maximum),r,{timeZone:"UTC",dateStyle:"long"})}):void 0};return i(i({},o),a)}return o}var Be=Hn;async function qn(e,t){if(t)return e;if(e instanceof Blob)return pn(e);throw new Error("Error creating payload for MultipleFileUploadSchema. Uploaded file is not an instance of Blob.")}function $n(e){let t=e.data;return i({id:t},e)}function Gn(e){let t=e instanceof Error;if(!(N(e)&&"data"in e)&&!t)return M(e)?e:void 0;if(t){let a=e;return{id:ve(),message:a.message}}else return i({message:M(e.message)?e.message:""},e)}var Jn=require("react-intl");var _n=require("react-intl"),Wn=(0,_n.defineMessages)({required:{id:"dynamicFlows.DefaultErrorMessages.required",defaultMessage:"Please fill out this field.",description:"Customer has left the required field empty"}});var Kn=require("react-intl"),Yn=(0,Kn.defineMessages)({minItemsError:{id:"dynamicFlows.MultipleFileUploadSchema.minItemsError",defaultMessage:"Please upload at least {minItems} file(s).",description:"Customer has uploaded not enough files. To fix: upload more files."},maxItemsError:{id:"dynamicFlows.MultipleFileUploadSchema.maxItemsError",defaultMessage:"Please upload {maxItems} or fewer files.",description:"Customer has uploaded too many files. To fix: upload fewer files."},maxFileSizeError:{id:"dynamicFlows.MultipleFileUploadSchema.maxFileSizeError",defaultMessage:"Sorry, that file is too big. Please upload a smaller file.",description:"Customer has uploaded a file that's too big. To fix: upload a smaller file."}});function Zn({maxItems:e,minItems:t}){let{formatMessage:r}=(0,Jn.useIntl)(),{maxFileSizeError:o,maxItemsError:a,minItemsError:n}=Yn;return{maxFileSizeErrorMessage:r(o),maxItemsErrorMessage:r(a,{maxItems:e}),minItemsErrorMessage:r(n,{minItems:t}),requiredMessage:r(Wn.required)}}var xt=require("react/jsx-runtime"),ei=e=>{var x,E;let{onChange:t,schema:r}=e,o=Q(),a=Zn(r),n=(0,Wt.useMemo)(()=>r.$id||ve(),[r.$id]),[s,c]=(0,Wt.useState)(!1),[m,p]=(0,Wt.useState)(()=>Qm(e.model||[])),u=ti(r.items.persistAsync),g=r.items.persistAsync.schema,y=at(g),l=async L=>{c(!0);try{let k=await qn(L,y);o("Dynamic Flow - PersistAsync",{status:"pending",schemaId:r.$id});let T=await u(k);return o("Dynamic Flow - PersistAsync",{status:"success",schemaId:r.$id}),$n(T)}catch(k){return o("Dynamic Flow - PersistAsync",{status:"failure",schemaId:r.$id}),Promise.reject(Gn(k))}};function d(L){if(fn(L,m))return;p(L);let T=Xn(L).map(H=>H.id);t({model:T,triggerSchema:r,triggerModel:T})}let h=Xn(m).map(L=>L.id),S=wt(h,r,e.required),O=!!e.errors||(s||e.submitted)&&!!S.length,w="accepts"in g&&g.accepts,v="maxSize"in g&&g.maxSize,P=b(i(i({multiple:!0,className:"form-control",files:m,fileInputName:n,id:n},w?{fileTypes:w}:void 0),v?{sizeLimit:Fr(v)}:void 0),{sizeLimitErrorMessage:((x=g.validationMessages)==null?void 0:x.maxSize)||a.maxFileSizeErrorMessage,maxFiles:e.schema.maxItems,maxFilesErrorMessage:((E=e.schema.validationMessages)==null?void 0:E.maxItems)||a.maxItemsErrorMessage,uploadButtonTitle:g.title,description:g.description,disabled:e.disabled,onUploadFile:L=>l(L.get(n)),onFilesChange:d,onDeleteFile:()=>Promise.resolve()});return(0,xt.jsxs)("div",{className:(0,Qn.default)("form-group",{"has-error":O}),children:[(0,xt.jsx)("label",{className:"d-block control-label",htmlFor:n,children:e.schema.title}),(0,xt.jsx)(Mr.UploadInput,i({},P)),(0,xt.jsx)(Be,{changed:s,submitted:e.submitted,errors:e.errors,schema:e.schema,validations:S,validationMessages:td(r,!!e.required,a),infoMessage:null,focused:!1,blurred:!0})]})};ei.defaultProps={errors:null,required:!1};var xo=ei;function Xn(e){return e.filter(t=>!t.error&&t.status==="succeeded")}function Qm(e){return e.map(t=>ed(t)?{id:t,status:Mr.Status.SUCCEEDED}:null).filter(t=>t!==null)}function ed(e){return B(e)||M(e)}function td(e,t,r){let{minItems:o,maxItems:a}=e;return i(i(i({},t&&{required:r.requiredMessage}),o&&{minItems:r.minItemsErrorMessage}),a&&{maxItems:r.maxItemsErrorMessage})}var ai=require("react/jsx-runtime"),ri=e=>{let{schema:t}=e;if(Ga(t))return(0,ai.jsx)(xo,b(i({},e),{schema:t}));throw new Error("Not implemented")};ri.defaultProps={errors:null,required:!1};var oi=ri;var ii=require("react/jsx-runtime"),ni=e=>{let{schema:t}=e;if(Ie(t))return(0,ii.jsx)(oi,i({},e));throw new Error("Not implemented")};ni.defaultProps={required:!1};var Oo=ni;var si=Ee(nt()),Er=require("react");var Ne=require("react/jsx-runtime"),rd=e=>({"col-xs-12":!0,"col-sm-6":e==="md","col-sm-4":e==="sm"}),li=e=>{let[t,r]=(0,Er.useState)(()=>i({},ae(e.model,e.schema))),o=(p,u)=>{u.model!==null?t[p]=u.model:delete t[p],r(t),e.onChange(b(i({},u),{model:t}))},a=p=>e.schema.required&&e.schema.required.includes(p);(0,Er.useEffect)(()=>{let p=ae(t,e.schema)||{};r(p),Ge(p,t)||e.onChange({model:p,triggerSchema:e.schema,triggerModel:p})},[e.schema]);let n=new Set([...e.schema.displayOrder||[],...Object.keys(e.schema.properties)]),s=p=>typeof e.schema.properties[p]!="undefined",c=Array.from(n).filter(s),m=e.errors;return(0,Ne.jsxs)("fieldset",{children:[e.schema.title&&!e.hideTitle&&(0,Ne.jsxs)("legend",{children:[" ",e.schema.title," "]}),e.schema.description&&!e.hideTitle&&(0,Ne.jsxs)("p",{children:[" ",e.schema.description," "]}),e.schema.alert&&(0,Ne.jsx)(ne,{component:e.schema.alert}),(0,Ne.jsx)("div",{className:"row",children:c.map(p=>(0,Ne.jsx)("div",{className:(0,si.default)(rd(e.schema.properties[p].width)),children:(0,Ne.jsx)(me,{schema:e.schema.properties[p],model:e.model&&e.model[p],errors:m&&m[p],submitted:e.submitted,required:a(p),disabled:e.disabled,onChange:u=>o(p,u),onPersistAsync:e.onPersistAsync})},p))})]})};li.defaultProps={hideTitle:!1,disabled:!1};var Kt=li;var Mi=Ee(nt()),ke=require("react");var Ir=require("@transferwise/components"),di=require("react-intl");var ci=require("react-intl"),mi=(0,ci.defineMessages)({helpAria:{id:"dynamicFlows.Help.ariaLabel",defaultMessage:"Click here for more info.",description:"Aria label for help."}});var vo=require("react/jsx-runtime"),od=e=>{let t=(0,di.useIntl)();return(0,vo.jsx)(Ir.Info,{className:"m-l-1",content:(0,vo.jsx)(Ir.Markdown,{children:e.help.markdown}),presentation:"POPOVER",size:"sm","aria-label":t.formatMessage(mi.helpAria)})},Ot=od;var vi=require("react");var _=require("@transferwise/components"),yi=require("react");var vt=(e,t={})=>{let{coerceValue:r=!1}=t;if(!A(e)){if(N(e)){lt({received:"object",expected:"string"});return}if(!M(e)){if(r)return Po({received:typeof e,expected:"string"}),String(e);lt({received:typeof e,expected:"string"});return}return e}},Ao=(e,t={})=>{let{coerceValue:r=!1}=t;if(A(e))return;if(B(e))return e;let o={received:typeof e,expected:"string or number"};if(N(e)){lt(o);return}if(!M(e)){if(r)return Po(o),String(e);lt(o);return}return e},ui=(e,t={})=>{let{coerceValue:r=!1}=t;if(A(e))return!1;if(!Oe(e)){if(r)return Po({received:typeof e,expected:"boolean"}),!!e;lt({received:typeof e,expected:"boolean"});return}return e},pi=e=>{if(!A(e)){if(!(e instanceof Date)&&!M(e)){lt({received:typeof e,expected:"string or Date"});return}return e}},fi=e=>{if(A(e))return null;if(!M(e))return lt({received:typeof e,expected:"string",fallback:"null"}),null;let t=mn(e);return t===null&&console.warn("Incorrectly formatted date string. Falling back to null."),t},Po=({received:e,expected:t})=>{console.warn(`Value with type ${e} passed to control that only accepts type ${t}. Type will be coerced, but this behaviour will change in the future, so please fix your code.`)},lt=({received:e,expected:t,fallback:r="undefined"})=>{console.warn(`Value with type ${e} passed to control that only accepts type ${t}. Falling back to ${r}`)};var Y=require("react/jsx-runtime"),At=class extends yi.PureComponent{constructor(r){super(r);this.getAutocompleteStatus=()=>this.props.autoComplete?"on":"disabled";this.handleOnChange=r=>{this.props.onChange(r)};this.handleInputOnChange=r=>{this.props.onChange(r.target.value)};this.handleOnFocus=()=>{var r,o;(o=(r=this.props).onFocus)==null||o.call(r)};this.handleOnBlur=()=>{var r,o;(o=(r=this.props).onBlur)==null||o.call(r)};this.getSelectedOption=r=>{if(this.state.selectedOption!==null&&typeof this.state.selectedOption!="undefined")return r.find(o=>{var a;return((a=this.state.selectedOption)==null?void 0:a.value)===o.value});if(this.props.value!==null&&typeof this.props.value!="undefined")return r.find(o=>this.props.value===o.value)};this.mapOption=r=>b(i({},r),{value:B(r.value)||M(r.value)?r.value:void 0,disabled:r.disabled||this.props.disabled,readOnly:this.props.readOnly});this.state={selectedOption:r.selectedOption,touched:!1,prevValue:r.value}}static getDerivedStateFromProps(r,o){return o.prevValue!==r.value?{prevValue:r.value,value:r.value}:null}render(){var H;let{name:r,placeholder:o,step:a,countryCode:n,type:s,options:c,disabled:m,readOnly:p,required:u,minLength:g,maxLength:y,min:l,max:d,searchPlaceholder:f,searchValue:h,onSearchChange:S,size:O,uploadProps:w,label:v,monthFormat:P,id:x,minDate:E,maxDate:L,value:k,mode:T}=this.props;switch(s){case R.RADIO:return(0,Y.jsx)(_.RadioGroup,{radios:c.map(this.mapOption),name:r,selectedValue:Ao(k,{coerceValue:!0}),onChange:this.handleOnChange});case R.CHECKBOX:return(0,Y.jsx)(_.Checkbox,{checked:ui(k,{coerceValue:!0}),disabled:m,label:v,required:u,readOnly:p,onChange:this.handleOnChange,onBlur:this.handleOnBlur,onFocus:this.handleOnFocus});case R.SELECT:{let F=c.length>=20;return(0,Y.jsx)(_.Select,{id:x,selected:this.getSelectedOption(c),options:c,search:F,required:u,disabled:m,placeholder:o,searchPlaceholder:f,searchValue:h,onChange:j=>{var I;this.setState({selectedOption:j!=null?j:void 0}),this.props.onChange((I=j==null?void 0:j.value)!=null?I:null)},onFocus:this.handleOnFocus,onBlur:this.handleOnBlur,onSearchChange:F?S:void 0})}case R.TAB:return(0,Y.jsx)(_.Tabs,{selected:((H=this.getSelectedOption(c))==null?void 0:H.value)||0,tabs:c.map(F=>({title:F.label,content:(0,Y.jsx)(Y.Fragment,{}),disabled:F.disabled||!1})),name:x,onTabSelect:F=>{let j=!!this.state.selectedOption;this.setState({selectedOption:c.find(I=>I.value===F)}),this.props.onChange(F,j?"user":"init")}});case R.NUMBER:return(0,Y.jsx)("input",{autoComplete:this.getAutocompleteStatus(),className:"form-control",disabled:m,id:x,max:d,min:l,placeholder:o,readOnly:p,required:u,step:a,type:"number",value:Ao(k,{coerceValue:!0}),onBlur:this.handleOnBlur,onChange:F=>{this.props.onChange(parseFloat(F.target.value))},onFocus:this.handleOnFocus,onWheel:F=>{F.target instanceof HTMLElement&&F.target.blur()}});case R.HIDDEN:return(0,Y.jsx)("input",{type:"hidden",name:r,value:vt(k,{coerceValue:!0}),id:x});case R.PASSWORD:return(0,Y.jsx)("input",{autoComplete:this.getAutocompleteStatus(),className:"form-control",disabled:m,id:x,placeholder:o,readOnly:p,required:u,type:"password",value:vt(k,{coerceValue:!0}),onBlur:this.handleOnBlur,onChange:this.handleInputOnChange,onFocus:this.handleOnFocus});case R.DATE:case R.DATETIME:return(0,Y.jsx)(_.DateInput,{disabled:m,size:O,value:pi(k),mode:T,monthFormat:P,onBlur:this.handleOnBlur,onChange:this.handleOnChange,onFocus:this.handleOnFocus});case R.DATELOOKUP:return(0,Y.jsx)(_.DateLookup,{value:fi(k),min:E,max:L,placeholder:o,monthFormat:P,disabled:m,onChange:F=>{this.handleOnChange(dn(F))},onBlur:this.handleOnBlur,onFocus:this.handleOnFocus});case R.TEL:return(0,Y.jsx)(_.PhoneNumberInput,{disabled:m,countryCode:n,placeholder:o,required:u,searchPlaceholder:f,size:O,initialValue:vt(k),onBlur:this.handleOnBlur,onChange:this.handleOnChange,onFocus:this.handleOnFocus});case R.TEXTAREA:{let F={className:"form-control tw-form-control",id:x,name:r,placeholder:o,value:vt(k,{coerceValue:!0}),readOnly:p,required:u,minLength:g,maxLength:y,onFocus:this.handleOnFocus,onBlur:this.handleOnBlur,disabled:m,autoComplete:this.getAutocompleteStatus()};return this.props.displayPattern?(0,Y.jsx)(_.TextareaWithDisplayFormat,b(i({displayPattern:this.props.displayPattern},F),{onChange:this.handleOnChange})):(0,Y.jsx)("textarea",b(i({},F),{onChange:this.handleInputOnChange}))}case R.FILE:case R.UPLOAD:return(0,Y.jsx)(_.Upload,b(i({},w),{usAccept:w.usAccept||"*",usDisabled:w.usDisabled||m,onSuccess:F=>{this.handleOnChange(F)},onFailure:()=>{this.handleOnChange(null)},onCancel:()=>{this.handleOnChange(null)}}));case R.TEXT:default:{let F={type:"text",className:"form-control",id:x,name:r,placeholder:o,value:vt(k,{coerceValue:!0}),readOnly:p,required:u,minLength:g,maxLength:y,onFocus:this.handleOnFocus,onBlur:this.handleOnBlur,disabled:m,autoComplete:this.getAutocompleteStatus()};return this.props.displayPattern?(0,Y.jsx)(_.InputWithDisplayFormat,b(i({displayPattern:this.props.displayPattern},F),{onChange:this.handleOnChange})):(0,Y.jsx)("input",b(i({},F),{onChange:this.handleInputOnChange}))}}}},ge=At;ge.Type=R,ge.Size=gn,ge.MonthFormat=hn,ge.DateMode=yn,ge.defaultProps={autoComplete:!0,countryCode:null,disabled:!1,displayPattern:null,id:null,label:"",max:null,maxDate:null,maxLength:null,min:null,minDate:null,minLength:null,mode:At.DateMode.DAY_MONTH_YEAR,monthFormat:At.MonthFormat.LONG,onBlur:null,onFocus:null,onSearchChange:null,options:[],placeholder:null,readOnly:!1,required:!1,searchPlaceholder:null,searchValue:"",selectedOption:null,size:At.Size.MEDIUM,step:1,type:At.Type.TEXT,uploadProps:{},value:null};var Ye=require("@transferwise/components");var gi=require("react/jsx-runtime"),Pt=e=>ko.some(t=>e===`flag-${t}`),hi=({name:e})=>{if(!Pt(e))return null;let t=e.substring(5);return(0,gi.jsx)("img",{src:`https://wise.com/web-art/assets/flags/${t}.svg`,alt:"","data-testid":`img-flag-${t}`})},ko=["aed","ars","aud","bdt","bgn","bnd","brl","bwp","cad","chf","clp","cny","cop","crc","czk","dkk","egp","eur","fjd","gbp","gel","ghs","hkd","hrk","huf","idr","ils","imp","inr","jpy","kes","krw","lak","lkr","lsl","mad","mxn","myr","mzn","nad","ngn","nok","npr","nzd","pab","pen","php","pkr","pln","ron","rub","sek","sgd","thb","tmt","try","tzs","uah","ugx","usd","uyu","vnd","xof","zar","zmw"];var bi=Ee(require("@transferwise/icons")),Fi=require("react/jsx-runtime"),Dr=e=>{let t=wi(e);return Object.keys(bi).includes(t)},Si=({name:e})=>{if(!Dr(e))return null;let t=wi(e),r=bi[t];return(0,Fi.jsx)(r,{size:24})},wi=e=>e.split("-").map(ad).join(""),ad=e=>{var t;return`${(t=e[0])==null?void 0:t.toUpperCase()}${e.slice(1)}`};var Mo=require("react/jsx-runtime"),nd=({type:e})=>Pt(e)?(0,Mo.jsx)(hi,{name:e}):Dr(e)?(0,Mo.jsx)(Si,{name:e}):null;function Eo(e){return Dr(e)||Pt(e)}var We=nd;var be=require("react/jsx-runtime"),Ci=(e,t)=>{switch(t){case"select":return sd(e);case"radio":default:return id(e)}},id=e=>i(i(i({label:e.title,value:e.const},xi(e.title,e.description)),kt(e)),Oi(e.disabled)),sd=e=>i(i(i(i(i({label:e.title,value:e.const},xi(e.title,e.description)),md(e.icon)),cd(e.image)),Oi(e.disabled)),ld(e.keywords)),ld=e=>q(e)?{searchStrings:e}:{},cd=e=>e!=null&&e.url?{icon:(0,be.jsx)("div",{className:"media",children:(0,be.jsx)("div",{className:"np-option__no-media-circle",children:(0,be.jsx)("img",{src:e.url,alt:e.name||""})})})}:null,md=e=>e!=null&&e.name&&Pt(e.name)?{currency:e.name.substring(5)}:e!=null&&e.name&&Eo(e.name)?{icon:(0,be.jsx)(We,{type:e.name})}:e!=null&&e.text?{icon:(0,be.jsx)("span",{children:e.text})}:null,kt=({image:e,icon:t})=>e!=null&&e.url?{avatar:(0,be.jsx)(Ye.Avatar,{type:Ye.AvatarType.THUMBNAIL,children:(0,be.jsx)("img",{src:e.url,alt:""})})}:t!=null&&t.name&&Eo(t.name)?{avatar:(0,be.jsx)(Ye.Avatar,{type:Ye.AvatarType.ICON,children:(0,be.jsx)(We,{type:t.name})})}:t!=null&&t.text?{avatar:(0,be.jsx)(Ye.Avatar,{type:Ye.AvatarType.INITIALS,children:t.text})}:null,Lr=({accepts:e})=>i({},q(e)&&{usAccept:e.join(",")}),xi=(e,t)=>{if(e&&t)return{[(e+t).length>50?"secondary":"note"]:t}},Oi=e=>{if(!K(e)&&!A(e))return{disabled:e}};var Pi=require("react/jsx-runtime"),dd=e=>e==="string"||e==="number",Io=e=>{if(oe(e))return e.control===R.TAB&&e.oneOf.length>3?R.SELECT:e.oneOf.length===2&&!e.control?R.RADIO:e.control||R.SELECT;if("control"in e&&e.control)return e.control;if(e.type==="string")switch(e.format){case"date":return"date";case"password":return"password";case"phone-number":return"tel";case"base64url":return"file";default:return"text"}return e.type==="boolean"?"checkbox":e.type==="integer"?"number":e.type},ud=(e,t)=>e.oneOf?e.oneOf.map(r=>Ci(r,t)):null,Ai=e=>{let{id:t,schema:r,value:o,disabled:a,onChange:n,onFocus:s,onBlur:c,onSearchChange:m}=e,p=ht(),u=S=>dd(r.type)&&(A(S)||K(S))?"":S,g=(S,O)=>{n(De(S,r),O)},y=Io(r);(0,vi.useEffect)(()=>{pd(r,p,y)},[JSON.stringify(r),p,y]);let l=r.values||ud(r,y),d={onFocus:s,onBlur:c,onSearchChange:m,onChange:g},f=u(o),h={id:t,name:t,label:r.title,options:l||[],placeholder:r.placeholder,autoComplete:!r.help,disabled:a||r.disabled,displayPattern:r.displayFormat,uploadProps:Lr(r)};return(0,Pi.jsx)(ge,i(i({type:y,value:f},d),h))};Ai.defaultProps={value:null,onFocus:null,onBlur:null,onSearchChange:null,disabled:!1};var pd=(e,t,r)=>{oe(e)&&e.oneOf.length===2&&!e.control&&t.warning("Deprecation warning",'A oneOf schema with 2 options and no control type currently renders as a "radio" but will be changed to render as a "select". Please specify control radio to retain the existing behaviour.'),r==="file"&&t.warning("Deprecation warning","Please use a persist-async blob schema instead of string with base64url for file uploads. The base64url does not perform well on low end devices. Support for this schema will be removed in a later release."),e.values&&t.warning("Deprecated schema","Schema.values is a legacy approach. Please use oneOf.")},Yt=Ai;function Re(e){return!K(e==null?void 0:e.const)}function Jt(e){return!!e&&!Re(e)}var ki=(e,t)=>{let r=Zt(e,t);if(r>=0)return r;if(e.oneOf.length===1&&Jt(e.oneOf[0]))return 0;if(Re(e.oneOf[0])){let o=Zt(e,e.default);if(o>=0)return o}return Ut(e)&&Z(t)&&Object.keys(t).length>=1?Tr(e,t):Ut(e)&&!K(e.default)&&Z(e.default)&&Object.keys(e.default).length>=1?Tr(e,e.default):null},Zt=(e,t)=>e.oneOf.findIndex(r=>!K(t)&&G(t,r));function Tr(e,t){if(t==null)return null;let r=e.oneOf.map(o=>fd(o).reduce((a,[n,s])=>Re(s)&&s.const===t[n]?a+2:Jt(s)&&typeof t[n]!="undefined"?a+1:a,0));return r.every(o=>o===r[0])?null:r.indexOf(Math.max(...r))}function fd(e){return e.properties!==null&&typeof e.properties=="object"?Object.entries(e.properties):[]}var te=require("react/jsx-runtime"),Ei=e=>{let t=Q(),[r,o]=(0,ke.useState)(!1),[a,n]=(0,ke.useState)(!1),[s,c]=(0,ke.useState)(!1),m=(0,ke.useMemo)(()=>e.schema.$id||ve(),[e.schema.$id]),[p,u]=(0,ke.useState)(ki(e.schema,e.model)),[g,y]=(0,ke.useState)(bd(e.model,e.schema.oneOf)),l=Fn(t,200),d=x=>{l("Dynamic Flow - OneOf Searched",{oneOfId:e.schema.analyticsId,searchValueLength:x.length})};if((0,ke.useEffect)(()=>{let x=Zt(e.schema,e.model),E=Zt(e.schema,e.schema.default);x===-1&&E>=0&&O(E,"init")},[e.schema]),!q(e.schema.oneOf))return console.error("Incorrect format",e.schema),null;let f=(x,E)=>{y([...g.slice(0,x),E.model,...g.slice(x+1)]),o(!0),e.onChange(E)},h=()=>{n(!0)},S=()=>{n(!1),c(!0)},O=(x,E)=>{u(x);let L=e.schema.oneOf[x];if(Re(L)){let k=L.const;e.onChange({model:k,triggerSchema:e.schema,triggerModel:k,type:E})}else e.onChange({model:g[x],triggerSchema:L,triggerModel:g[x],type:E});E!=="init"&&e.schema.analyticsId&&t("Dynamic Flow - OneOf Selected",{oneOfId:e.schema.analyticsId,schemaId:L==null?void 0:L.analyticsId})},w=Sd(e.schema),v=hd(e,p),P={"form-group":!0,"has-error":!r&&e.errors&&!St(e.errors)||(e.submitted||r&&s)&&v.length};return(0,te.jsxs)(te.Fragment,{children:[(e.schema.oneOf.length>1||Re(e.schema.oneOf[0]))&&(0,te.jsxs)(te.Fragment,{children:[(0,te.jsxs)("div",{className:(0,Mi.default)(P),children:[yd(e.schema,m),(0,te.jsx)(Yt,{id:m,schema:w,value:p,disabled:e.disabled,onChange:O,onFocus:h,onBlur:S,onSearchChange:d}),(0,te.jsx)(Be,{changed:r,focused:a,blurred:s,submitted:e.submitted,errors:gd(e.errors),schema:e.schema,validations:v,infoMessage:null})]}),e.schema.alert&&(0,te.jsx)(ne,{component:e.schema.alert})]}),Jt(e.schema.oneOf[p])&&(0,te.jsx)(me,{schema:e.schema.oneOf[p],model:g[p],errors:e.errors,submitted:e.submitted,hideTitle:!0,disabled:e.disabled,onChange:x=>f(p,x),onPersistAsync:e.onPersistAsync})]})};function yd(e,t){let r=e.help?(0,te.jsx)(Ot,{help:e.help}):null,o=Re(e.oneOf[0])?(0,te.jsxs)("label",{className:"control-label d-inline",htmlFor:t,children:[e.title," ",r]}):(0,te.jsxs)("h4",{className:"m-b-2",children:[e.title," ",r]});return e.title?o:r}function hd(e,t){let r=e.schema.oneOf[t!=null?t:-1];return Re(r)?$e(r.const,e.schema,!!e.required):t===null||t<0?$e(null,e.schema,!!e.required):[]}function gd(e){return typeof e=="string"?e:null}function bd(e,t){return t.map(r=>Ht(e,r))}function Sd(e){return b(i({},e),{oneOf:e.oneOf.map(wd)})}function wd(e,t){let{title:r,description:o,disabled:a=!1,icon:n,image:s,keywords:c}=e;return{title:r,description:o,disabled:a,icon:n,image:s,const:t,keywords:c}}Ei.defaultProps={required:!1,disabled:!1};var Do=Ei;var Ti=Ee(nt()),ct=require("react");var Br=require("@transferwise/components"),Ii=require("react");var Li=require("react/jsx-runtime"),Di=e=>{let{id:t,httpClient:r=fetch,httpOptions:o,fileId:a,idProperty:n,usAccept:s,maxSize:c,usPlaceholder:m,onSuccess:p,onFailure:u,onCancel:g}=e,y=Q(),l=(0,Ii.useMemo)(()=>a?[{id:a,status:Br.Status.SUCCEEDED}]:[],[a]),d=f=>(y("Dynamic Flow - PersistAsync",{status:"pending",schemaId:t}),r(`${o.url}`,{method:o.method||"POST",body:f}).then(h=>h.ok?(p&&p(h.clone()),h.json().then(S=>({id:S[n]}))):(u&&u({response:h}),Promise.reject())));return(0,Li.jsx)(Br.UploadInput,{id:t,fileInputName:o.fileInputName,files:l,uploadButtonTitle:e.usLabel,sizeLimit:c?Fr(c):void 0,fileTypes:s,description:m,onUploadFile:d,onDeleteFile:f=>(g&&g(),Promise.resolve())})};var Xt=require("react/jsx-runtime"),Bi=e=>{let[t,r]=(0,ct.useState)({}),[o,a]=(0,ct.useState)(null),[n,s]=(0,ct.useState)([]),[c,m]=(0,ct.useState)(!1),p=re(),u=Q();(0,ct.useEffect)(()=>{e.submitted&&s($e(e.model,e.schema,!!e.required))},[e.model,e.submitted]);let y=async(w,v)=>{let P=await w.json(),x=Bo(e.schema.persistAsync.idProperty,P);e.onChange({model:x,triggerSchema:e.schema,triggerModel:x}),m(!0),u("Dynamic Flow - PersistAsync",{status:"success",schemaId:e.schema.$id})},l=async w=>{if(w.response&&pr(w.response.status)){let v=await w.response.json();r(v.validation||{}),a([e.schema.persistAsync.param])}e.onChange({model:null,triggerSchema:e.schema,triggerModel:null}),m(!0),u("Dynamic Flow - PersistAsync",{status:"failure",schemaId:e.schema.$id})},d=()=>{a(null),e.onChange({model:null,triggerSchema:e.schema,triggerModel:null}),m(!0)},{url:f,method:h}=e.schema.persistAsync,S=o||n,O={"form-group":!0,"has-error":(e.submitted||c)&&!!S.length};return(0,Xt.jsxs)("div",{className:(0,Ti.default)(O),children:[(0,Xt.jsx)(Di,i({id:e.schema.$id||e.schema.persistAsync.schema.$id||e.schema.persistAsync.idProperty,fileId:e.model,idProperty:e.schema.persistAsync.idProperty,animationDelay:0,maxSize:e.schema.persistAsync.schema.maxSize,usLabel:e.schema.title||e.schema.persistAsync.schema.title,usPlaceholder:e.schema.description||e.schema.persistAsync.schema.description,httpOptions:{url:f,method:h,fileInputName:e.schema.persistAsync.param},httpClient:p,onSuccess:y,onFailure:l,onCancel:d},Lr(e.schema.persistAsync.schema))),(0,Xt.jsx)(Be,{blurred:!0,focused:!1,changed:c,submitted:e.submitted,errors:e.errors,schema:e.schema,validations:S,validationMessages:i({required:"Value is required..."},t),infoMessage:null})]})};Bi.defaultProps={required:!1};var To=Bi;var No=require("react/jsx-runtime"),Ni=e=>{let{schema:t}=e;return t.persistAsync.schema.type==="blob"?(0,No.jsx)(To,i({},e)):(0,No.jsx)(Lo,i({},e))};Ni.defaultProps={required:!1};var Ro=Ni;var _i=require("react");var Ri=(e,t)=>{let r=Tr(e,t);return r!==null?e.oneOf[r].promoted?"promoted":"other":null};var ji=require("@transferwise/components"),jo=require("react/jsx-runtime"),Ui=e=>{let{id:t,selection:r,setSelection:o}=e,{promoted:a,other:n,checkedMeans:s}=e.promotion,c=s==="other"?n.title:(a==null?void 0:a.title)||e.promotedOneOf.title,m=s==="other"?"other":"promoted",p=s==="other"?"promoted":"other",u=r===m;return(0,jo.jsx)("div",{className:"form-group",children:(0,jo.jsx)(ji.Checkbox,{id:t,label:c,checked:u,onChange:()=>{o(u?p:m)}})})};Ui.defaultProps={};var zi=Ui;var Vi=require("@transferwise/components");var Qt=require("react/jsx-runtime"),Hi=e=>{var m,p;let{id:t,selection:r,setSelection:o,promotion:a,promotedOneOf:n,title:s}=e,c=[i({value:"promoted",label:((m=a.promoted)==null?void 0:m.title)||n.title,secondary:((p=a.promoted)==null?void 0:p.description)||n.description},kt(n)),i({value:"other",label:a.other.title,secondary:a.other.description},kt(a.other))];return(0,Qt.jsxs)("div",{className:"form-group",children:[s&&(0,Qt.jsx)("label",{className:"control-label",htmlFor:t,children:s}),(0,Qt.jsx)(Vi.RadioGroup,{name:"promoted-selection",selectedValue:r,radios:c,id:t,onChange:o})]})};Hi.defaultProps={title:void 0};var qi=Hi;var Mt=require("react/jsx-runtime"),$i=e=>{switch(e.promotion.control||"radio"){case"radio":return(0,Mt.jsx)(qi,i({},e));case"checkbox":return(0,Mt.jsx)(zi,i({},e));default:return(0,Mt.jsx)(Mt.Fragment,{})}};$i.defaultProps={id:ve(),title:void 0};var Gi=$i;var je=require("react/jsx-runtime"),Wi=e=>e.promoted===!0,Fd=e=>{var c;let[t,r]=(0,_i.useState)(Ri(e.schema,e.model)||((c=e.schema.promotion)==null?void 0:c.default)||"promoted"),o=e.schema.alert,a=e.schema.oneOf.find(Wi),n=Cd(a),s=xd(e.schema);return(0,je.jsxs)(je.Fragment,{children:[o&&(0,je.jsx)(ne,{component:o}),(0,je.jsx)(Gi,{id:e.schema.$id,title:e.schema.title,promotedOneOf:a,promotion:e.schema.promotion,selection:t,setSelection:r}),t==="promoted"&&(0,je.jsx)(Kt,b(i({},e),{schema:n})),t==="other"&&(0,je.jsx)(me,b(i({},e),{schema:s}))]})};function Cd(e){return b(i({},e),{title:void 0,description:void 0})}function xd(e){var o,a,n;let t=(o=e.promotion)!=null&&o.displayTwice?[...e.oneOf]:e.oneOf.filter(s=>!Wi(s)),r=(n=(a=e.promotion)==null?void 0:a.other.heading)==null?void 0:n.text;return t.length===1?b(i({},t[0]),{title:r}):t.length>1?{title:r,oneOf:t,control:e.control}:null}var Uo=Fd;var Nr=require("@transferwise/components"),Yi=require("react-intl");var Ki=require("react-intl"),zo=(0,Ki.defineMessages)({yes:{id:"dynamicFlows.ReadOnlySchema.yes",defaultMessage:"Yes",description:"Yes, used for boolean schemas with a value of true."},no:{id:"dynamicFlows.ReadOnlySchema.no",defaultMessage:"No",description:"No: used for boolean schemas with a value of false."}});var Et=require("react/jsx-runtime"),Od=({schema:e,model:t})=>{let{title:r=""}=e,{formatMessage:o}=(0,Yi.useIntl)(),a=vd({schema:e,model:t,formatMessage:o});return(0,Et.jsx)(Nr.DefinitionList,{layout:Nr.Layout.VERTICAL_ONE_COLUMN,definitions:[{title:r,value:a,key:""}]})},Vo=Od;function vd({schema:e,model:t,formatMessage:r}){return pe(e)?oe(e)?Ad(e,t):e.type==="boolean"&&Oe(t)?r(t?zo.yes:zo.no):t&&t.toString()||"":""}function Ad(e,t){let r=Pd(e,t);return r?kd(r):t}function Pd(e,t){return e.oneOf.find(r=>"const"in r?t===r.const:!1)}function kd(e){let t=e.title&&e.description?`${e.title} - ${e.description}`:e.title||"",r=kt({icon:e.icon});return r!=null&&r.avatar?(0,Et.jsxs)(Et.Fragment,{children:[r.avatar," ",t]}):t}var Me=require("react");var Zi=require("react/jsx-runtime"),Ji=e=>{let{schema:t,model:r,required:o,submitted:a,errors:n,onChange:s}=e,[c,m]=(0,Me.useState)(r),p=(0,Me.useRef)(null),[u,g]=(0,Me.useState)(null),[y,l]=(0,Me.useState)(null),[d,f]=(0,Me.useState)(!1),[h,S]=(0,Me.useState)(null),O=re(),w=Q(),v=ht();(0,Me.useEffect)(()=>{t.validationAsync.method||v.warning("Invalid schema or model",'ValidationAsyncSchema without a "method" property would have defaulted to "GET" in previous versions. Now defaults to "POST".',{})},[v,t.validationAsync.method]);let P=async(T,H)=>{let F=x(),j={[H.param]:T};p.current=T,f(!0),w("Dynamic Flow - ValidationAsync",{status:"pending"});let I=await O(H.url,{method:H.method||"POST",headers:{"Content-Type":"application/json"},body:H.method==="GET"?void 0:JSON.stringify(j),signal:F});try{let $=await I.json();if(!N($))throw new Error("Response body is not an object");w("Dynamic Flow - ValidationAsync",{status:"success"}),I.status===200?g(M($.message)?$.message:null):I.status===422&&l(M($.message)?$.message:null)}catch($){w("Dynamic Flow - ValidationAsync",{status:"failure"})}},x=()=>{h&&h.abort();let T=new AbortController;return S(T),T.signal};return(0,Zi.jsx)(mt,i({},{submitted:a||d,model:c,errors:y||n,infoMessage:u,onChange:T=>{s(b(i({},T),{triggerSchema:t,triggerModel:T.model})),l(null),g(null),G(T.model,t)&&m(T.model)},onBlur:()=>{!A(c)&&!Ge(c,p.current)&&P(c,t.validationAsync)},required:o,schema:t}))};Ji.defaultProps={required:!1};var Ho=Ji;var de=require("react/jsx-runtime"),Qi=require("react"),Md=e=>{let{schema:t,model:r=null,errors:o=null,hideTitle:a=!1,disabled:n=!1}=e,s=b(i({},e),{model:r,errors:o,hideTitle:a,disabled:n}),c=Cr(t),m=ht();switch((0,Xi.useEffect)(()=>{Ed(t,r,o)||m.error("Invalid schema or model",`Schema of type ${c||"undefined"} requested, but schema did not pass validation.`)},[JSON.stringify(t),JSON.stringify(r),JSON.stringify(o),c,m]),c){case"readOnly":return(0,de.jsx)(Vo,i({},s));case"persistAsync":return(0,de.jsx)(Ro,i({},s));case"validationAsync":return(0,de.jsx)(Ho,i({},s));case"basic":{let p=i({infoMessage:null},s);return(0,de.jsx)(mt,i({},p))}case"object":return(0,Qi.createElement)(Kt,b(i({},s),{key:JSON.stringify(t)}));case"array":return(0,de.jsx)(Oo,i({},s));case"promotedOneOf":return(0,de.jsx)(Uo,i({},s));case"oneOf":return(0,de.jsx)(Do,i({},s));case"allOf":return(0,de.jsx)(Fo,i({},s))}return(0,de.jsx)(de.Fragment,{})},me=Md,Ed=(e,t,r)=>{switch(Cr(e)){case"persistAsync":return bt(e)&&Ha(t)&&gt(r);case"validationAsync":return Vt(e)&&ao(t)&&gt(r);case"basic":return pe(e)&&ao(t)&&gt(r);case"object":return ce(e)&&oo(t);case"array":return fe(e)&&qa(t)&&gt(r);case"promotedOneOf":return Ut(e)&&oo(t);case"oneOf":return oe(e);case"allOf":return zt(e)&&Z(t)}return!1};var dt=require("react/jsx-runtime"),Id=e=>{let t=i({model:null,errors:null,disabled:!1,baseUrl:""},e);return br()||t.baseUrl==null?(0,dt.jsx)(me,i({},t)):(0,dt.jsx)(Dd,{baseUrl:t.baseUrl,onEvent:t.onEvent,onLog:t.onLog,children:(0,dt.jsx)(me,i({},t))})},er=Id,Dd=({baseUrl:e,onEvent:t,onLog:r,children:o})=>(0,dt.jsx)(Sr,{flowId:"JsonSchemaForm",stepId:"JsonSchemaForm",onLog:r!=null?r:es,children:(0,dt.jsx)(ur,{metadata:{flowId:"JsonSchemaForm",stepId:"JsonSchemaForm"},onEvent:t!=null?t:es,children:(0,dt.jsx)(gr,{baseUrl:e,children:o})})}),es=()=>{};var qo=require("react/jsx-runtime"),Ld=e=>{let t=e.component,r=t.schema;return(0,qo.jsx)("div",{className:z(t.margin||"md"),children:(0,qo.jsx)(er,{schema:r,model:e.model,submitted:e.submitted,errors:e.errors,onChange:o=>{e.onModelChange(i({formSchema:r},o))},onPersistAsync:e.onPersistAsync})})},$o=Ld;var It=require("react/jsx-runtime"),Td=e=>{let{text:t,size:r="md",align:o="left",margin:a="md"}=e.component,n=Le({align:o,margin:a});switch(r){case"xs":return(0,It.jsx)("h5",{className:n,children:t});case"sm":return(0,It.jsx)("h4",{className:n,children:t});case"lg":return(0,It.jsx)("h2",{className:n,children:t});case"xl":return(0,It.jsx)("h1",{className:n,children:t});case"md":default:return(0,It.jsx)("h3",{className:n,children:t})}},Go=Td;var _o=require("@transferwise/components");var tr=require("react/jsx-runtime"),Wo=({component:e})=>{let{content:t,align:r,margin:o}=e;return(0,tr.jsx)("div",{className:Le({align:r,margin:o}),children:(0,tr.jsx)(_o.Markdown,{config:{link:{target:"_blank"}},children:t})})},Ko=({component:e})=>(0,tr.jsx)("div",{className:Le(e),children:(0,tr.jsx)(_o.Markdown,{config:{link:{target:"_blank"}},children:e.markdown})});var ts=require("@transferwise/components"),Rr=require("react");var Yo=require("react/jsx-runtime"),Bd=({component:e})=>{let{url:t,size:r,text:o,margin:a}=e,n=re(),[s,c]=(0,Rr.useState)("");(0,Rr.useEffect)(()=>{Rd(n,t).then(c)},[t,n]);let m={alt:o||"",src:s,stretch:!0,shrink:!0};return s?(0,Yo.jsx)("div",{className:`df-image ${r||"xl"}`,children:(0,Yo.jsx)(ts.Image,i({className:`img-responsive ${z(a||"lg")}`},m))}):null},Nd=e=>new Promise((t,r)=>{let o=new FileReader;o.addEventListener("loadend",()=>t(o.result)),o.addEventListener("error",a=>r(a)),o.readAsDataURL(e)}),Rd=async(e,t)=>{var r;try{return fr(t)||(t==null?void 0:t.indexOf(`${(r=window==null?void 0:window.location)==null?void 0:r.origin}/`))===0?e(t,{method:"GET",headers:{"Content-Type":"image/image"},credentials:"same-origin"}).then(o=>{if(o.ok)return o.blob();throw new Error("Image fetching failed")}).then(Nd).catch(()=>t):t}catch(o){return t}},Jo=Bd;var V=require("react/jsx-runtime"),X=e=>JSON.stringify(e),jd=e=>{let{components:t,model:r,submitted:o,errors:a,onModelChange:n,onAction:s,onPersistAsync:c,baseUrl:m}=e,p=u=>{switch(u.type){case"heading":return(0,V.jsx)(Go,{component:u},X(u));case"paragraph":return(0,V.jsx)(Qo,{component:u},X(u));case"image":return(0,V.jsx)(Jo,{component:u},X(u));case"alert":return(0,V.jsx)(ne,{component:u},X(u));case"review":return(0,V.jsx)(ea,{component:u,onAction:s},X(u));case"divider":return(0,V.jsx)(So,{component:u},X(u));case"info":return(0,V.jsx)(Ko,{component:u},X(u));case"markdown":return(0,V.jsx)(Wo,{component:u},X(u));case"columns":return(0,V.jsx)(go,{component:u,model:r,submitted:o,errors:a,onModelChange:n,onAction:s,onPersistAsync:c},X(u));case"form":return(0,V.jsx)($o,{component:u,model:r,submitted:o,errors:a,onModelChange:n,onPersistAsync:c},X(b(i({},u),{errors:a})));case"button":return(0,V.jsx)(ho,{component:u,onAction:s},X(u));case"box":return(0,V.jsx)(yo,{component:u,model:r,submitted:o,errors:a,onModelChange:n,onAction:s,onPersistAsync:c},X(u));case"decision":return(0,V.jsx)(bo,{component:u,onAction:s},X(u));case"external":return(0,V.jsx)(wo,{component:u,onAction:s},X(u));case"list":return(0,V.jsx)(Zo,{component:u,onAction:s},X(u));case"loading-indicator":return(0,V.jsx)(Xo,{component:u},X(u));default:return(0,V.jsx)("div",{},X(u))}};return br()||m==null?(0,V.jsx)(V.Fragment,{children:t.map(p)}):(0,V.jsx)(gr,{baseUrl:m,children:t.map(p)})},ie=jd;var rs=require("@transferwise/components");var Dt=require("react/jsx-runtime"),Ud=({component:e})=>(0,Dt.jsxs)("div",{className:z(e.margin||"md"),children:[e.title?(0,Dt.jsxs)("h4",{className:"m-b-2",children:[" ",e.title," "]}):null,e.items.map(zd)]});function zd({title:e,description:t,icon:r,status:o}){let a=i(i({key:`${e}/${t||""}`,title:e,description:t},r!=null&&r.name?{icon:(0,Dt.jsx)(We,{type:r.name})}:{}),o?{status:Vd[o]}:{});return(0,Dt.jsx)(rs.Summary,i({},a))}var Vd={positive:"done",warning:"pending",neutral:"notDone"},Zo=Ud;var os=require("@transferwise/components");var as=require("react/jsx-runtime"),Hd=({component:e})=>{let{margin:t,size:r="md"}=e;return(0,as.jsx)(os.Loader,{size:r,classNames:{"tw-loader":`tw-loader m-x-auto ${z(t)}`},"data-testid":"loading-indicator"})},Xo=Hd;var cs=require("@transferwise/components"),ms=require("react-intl");var ns=require("react-intl"),ta=(0,ns.defineMessages)({copy:{id:"dynamicFlows.DynamicParagraph.copy",defaultMessage:"Copy",description:"Copy to clipboard button label."},copied:{id:"dynamicFlows.DynamicParagraph.copied",defaultMessage:"Copied to clipboard",description:"Appears in a snackbar when the copy operation succeeds."}});var is=require("@transferwise/components"),ss=require("react");function ls(){let e=(0,ss.useContext)(is.SnackbarContext);return e?e.createSnackbar:qd}function qd(){}var Je=require("react/jsx-runtime"),$d=({component:e})=>e.control==="copyable"?(0,Je.jsx)(_d,{component:e}):(0,Je.jsx)(Gd,{component:e}),Gd=({component:e})=>(0,Je.jsxs)("p",{className:Le(e),children:[" ",e.text," "]}),_d=({component:e})=>{let{formatMessage:t}=(0,ms.useIntl)(),r=ls(),{text:o}=e,a=()=>{var s;(s=navigator.clipboard)==null||s.writeText(o).then(()=>r({text:t(ta.copied)})).catch(Wd)},n=Le({align:e.align,margin:"sm"})+" form-control";return(0,Je.jsxs)("div",{className:Le(e),children:[(0,Je.jsx)("input",{type:"text",className:n,value:o,readOnly:!0,style:{textOverflow:"ellipsis"}}),(0,Je.jsx)(cs.Button,{block:!0,onClick:a,children:t(ta.copy)})]})};function Wd(){}var Qo=$d;var ds=require("@transferwise/components");var Ue=require("react/jsx-runtime"),Kd=({label:e,value:t},r)=>({key:String(r),title:e,value:t}),Yd=e=>e==="horizontal"?"HORIZONTAL_RIGHT_ALIGNED":"VERTICAL_ONE_COLUMN",Jd=e=>{let t=e.component,r=z(t.margin||"xs"),o=a=>(0,Ue.jsx)("a",{href:a.url,className:"pull-right",role:"button",onClick:n=>{n.preventDefault(),e.onAction(a)},children:a.title});return(0,Ue.jsxs)(Ue.Fragment,{children:[t.title&&(0,Ue.jsxs)("h6",{className:"m-b-2",children:[t.title,t.action&&o(t.action)]}),(0,Ue.jsx)("div",{className:r,children:(0,Ue.jsx)(ds.DefinitionList,{layout:Yd(t.orientation),definitions:t.fields.map(Kd)})})]})},ea=Jd;var le=require("react/jsx-runtime"),ra=e=>A(e)||K(e),Zd=e=>e.type==="boolean"&&ra(e.default)?!1:e.default,ps=e=>{var H,F,j;let t=I=>{y(!0),o(a(I),"user")},r=I=>$e(I,e.schema,e.required),o=(I,$)=>{m(I);let He=r(I);O(He);let ue=I;u(ue),ue!==p&&e.onChange({model:ue,triggerSchema:e.schema,triggerModel:ue,lastTriggerModel:p,type:$})},a=I=>De(I,e.schema),n=()=>d(!0),s=()=>{d(!1),h(!0),e.onBlur&&e.onBlur()},[c,m]=(0,se.useState)((H=e.model)!=null?H:null),[p,u]=(0,se.useState)((F=e.model)!=null?F:null),[g,y]=(0,se.useState)(!1),[l,d]=(0,se.useState)(!1),[f,h]=(0,se.useState)(!1),[S,O]=(0,se.useState)([]),w=(0,se.useMemo)(()=>e.schema.$id||ve(),[e.schema.$id]),v=()=>{let I=Zd(e.schema);ra(c)&&!ra(I)&&o(I,"init"),e.schema.const&&o(e.schema.const,"init")},P=()=>{O(r(c))},x=e.schema.const,E=e.schema.hidden||x;(0,se.useEffect)(P,[e.model,e.submitted]),(0,se.useEffect)(v,[e.schema]),(0,se.useEffect)(()=>{var $;let I=($=e.model)!=null?$:null;I!==c&&m(I)},[e.model]);let L={"form-group":!0,"has-error":(e.submitted||!g)&&!!e.errors||(e.submitted||g&&f)&&!!S.length,"has-info":l&&!!e.schema.description||!!e.infoMessage},k=e.schema.format!=="file"&&e.schema.type!=="boolean",T=e.schema.help;return E?null:(0,le.jsxs)(le.Fragment,{children:[e.schema.alert&&(0,le.jsx)(ne,{component:e.schema.alert}),(0,le.jsxs)("div",{className:(0,us.default)(L),children:[k&&(0,le.jsxs)("div",{className:"d-inline-block",children:[(0,le.jsx)("label",{className:"control-label d-inline",htmlFor:w,children:e.schema.title}),!!T&&(0,le.jsx)(Ot,{help:T})]}),!k&&!!T&&(0,le.jsx)(Ot,{help:T}),(0,le.jsx)(Yt,{id:w,schema:e.schema,value:c,disabled:!!e.disabled,onChange:t,onFocus:n,onBlur:s}),(0,le.jsx)(Be,{changed:g,focused:l,blurred:f,submitted:e.submitted,errors:(j=e.errors)!=null?j:null,schema:e.schema,validations:S,infoMessage:e.infoMessage})]})]})};ps.defaultProps={required:!1,disabled:!1,onBlur:null};var mt=ps;var gs=require("react/jsx-runtime"),Bo=(e,t)=>t[e],ys=(e,t)=>{var r;return(r=t.validation)==null?void 0:r[e]},Xd=new Set([R.RADIO,R.SELECT,R.DATELOOKUP,R.FILE,R.UPLOAD]),hs=e=>{let t=(0,fs.useIntl)(),r=re(),o=Q(),[a,n]=(0,ut.useState)(null),s=bs(a),[c,m]=(0,ut.useState)(null),[p,u]=(0,ut.useState)(!1),[g,y]=(0,ut.useState)(null);(0,ut.useEffect)(()=>{Xd.has(Io(e.schema.persistAsync.schema))&&h()},[a]);let l=()=>m(t.formatMessage(_t.genericError)),d=async(w,v)=>{let P=f(),x={[v.param]:w};u(!0);try{o("Dynamic Flow - PersistAsync",{status:"pending",schemaId:vr.$id});let E=r(v.url,{method:v.method,headers:{"Content-Type":"application/json"},body:JSON.stringify(x),signal:P});e.onPersistAsync(E);let L=await E,k=await L.json();if(!N(k))throw new Error("Response is not an object");let{idProperty:T,param:H}=e.schema.persistAsync;if(ja(L.status)){let F=Bo(T,k);e.onChange({model:F,triggerSchema:e.schema,triggerModel:F})}else if(pr(L.status)){let{validation:F}=k,j=N(F)&&(F==null?void 0:F[H])||null;m(j),e.onChange({model:null,triggerSchema:e.schema,triggerModel:null})}else l();o("Dynamic Flow - PersistAsync",{status:"success",schemaId:vr.$id})}catch(E){o("Dynamic Flow - PersistAsync",{status:"failure",schemaId:vr.$id}),l()}},f=()=>{g&&g.abort();let w=new AbortController;return y(w),w.signal},h=()=>{!A(a)&&!Ge(a,s)&&d(a,e.schema.persistAsync)},S=()=>{h()},O=({model:w})=>{m(null),G(w,e.schema.persistAsync.schema)&&n(w)};return(0,gs.jsx)(mt,{required:e.required,submitted:e.submitted||p,schema:e.schema.persistAsync.schema,errors:c||e.errors,model:null,infoMessage:null,onChange:O,onBlur:S})};hs.defaultProps={required:!1};var Lo=hs;var ti=e=>{let[t,r]=(0,Ss.useState)(null),o=re(),a=(0,ws.useIntl)(),{schema:n}=e;async function s(y){let l=y instanceof Blob?!at(n):!G(y,n);return(A(y)||l)&&g(),await p(y)}let c=()=>{t&&t.abort();let y=new AbortController;return r(y),y.signal};function m(y){let l=at(n),d=c(),f=e.param,h=l?Qd(f,y):JSON.stringify({[f]:y});return{method:e.method,headers:i({},!l&&{"Content-Type":"application/json"}),body:h,signal:d}}async function p(y){try{let l=await o(e.url,m(y));if(!l.ok)return u(l);let d=await l.json();if(N(d)){let f=d[e.idProperty];if(M(f)||B(f))return{data:f}}return g()}catch(l){return g(l)}}async function u(y){if(y.status===422){let l=await y.json();if(N(l)){let d=ys(e.param,l);if(M(d))throw new Error(d)}}throw new Error(a.formatMessage(_t.genericError))}let g=y=>{let l=eu(y)?y.message:a.formatMessage(_t.genericError);throw new Error(l)};return s};function Qd(e,t){let r=new FormData;return t!==null&&r.append(e,t),r}function eu(e){return N(e)&&"message"in e&&typeof e.message=="string"}var Ze=require("react");function Or({asyncFn:e,interval:t,maxAttempts:r,maxConsecutiveFails:o,onPollingResponse:a,onFailure:n}){let s=(0,Ze.useRef)(a),c=(0,Ze.useRef)(n),m=(0,Ze.useMemo)(()=>tu(e,r,o,p=>s.current(p),()=>c.current()),[e,r,o]);(0,Ze.useEffect)(()=>{if(t>0){let p=setInterval(()=>{m()},t);return()=>clearInterval(p)}},[m,t]),(0,Ze.useEffect)(()=>{s.current=a,c.current=n},[a,n])}function tu(e,t,r,o,a){let n=!0,s=0,c=0;return e?()=>{n&&(c++,e().then(m=>{s=0,n=o(m)}).catch(()=>{s++}).finally(()=>{(s>=r||c>=t)&&(a(),n=!1)}))}:()=>{}}var jr=require("react"),bs=e=>{let t=(0,jr.useRef)();return(0,jr.useEffect)(()=>{t.current=e},[e]),t.current};var rr=require("react");function Fs(e,t){let r=re(),o=(0,rr.useMemo)(()=>{if(e)return()=>r(e.url).then(n=>{if(n.ok)return n.json().then(s=>s).catch(s=>null);throw new Error("failed")})},[e,r]),a=(0,rr.useCallback)(n=>n!=null&&n.action?(t(n.action),!1):!0,[t]);Or({asyncFn:o,interval:1e3*((e==null?void 0:e.interval)||0),maxAttempts:(e==null?void 0:e.maxAttempts)||0,maxConsecutiveFails:1,onPollingResponse:a,onFailure:(0,rr.useCallback)(()=>{e&&t(e.onError.action)},[t,e])})}var Cs=require("react/jsx-runtime"),ru=(e,t)=>{var o;if(St(e))return[];let r=jt(e,t);return qe({layout:r,schemas:e.schemas||[],actions:e.actions||[],model:(o=e.model)!=null?o:null})},ou=e=>{let{stepSpecification:t,stepLayoutOptions:r,submitted:o,model:a,formErrors:n,onModelChange:s}=e,c=ru(t,r),{loading:m,registerPersistAsyncPromise:p}=dr(),u=Q(),g=m?()=>{u("Dynamic Flow - onAction supressed",{reason:"LayoutStep - loading state"})}:e.onAction;return Fs(t.polling,g),(0,Cs.jsx)(ie,{components:c,submitted:o,model:a,errors:n,onAction:g,onModelChange:s,onPersistAsync:p})},Ur=ou;var $r=require("react");var Fe=require("react"),Gs=require("react-intl"),_s=Ee(xs());var Os=require("react-intl"),ar=(0,Os.defineMessages)({reviewSubmit:{id:"dynamicFlows.CameraCapture.reviewSubmit",defaultMessage:"Yes, submit",description:"Accept and submit the image taken with the camera"},reviewRetry:{id:"dynamicFlows.CameraCapture.reviewRetry",defaultMessage:"No, try again",description:"Image taken with camera is not good, don't submit, and retake the image"},reviewInstructions:{id:"dynamicFlows.CameraCapture.reviewInstructions",defaultMessage:"Is your picture clear, readable and complete?",description:"After taking an image with the camera, prompt user to review the image"}});var we=require("@transferwise/components"),vs=require("react-intl");var Se=require("react/jsx-runtime"),As=({onCapture:e})=>(0,Se.jsx)("div",{className:"bottom-bar",children:(0,Se.jsx)(au,{onClick:e})}),Ps=({onSubmit:e,onRetry:t})=>{let r=(0,vs.useIntl)();return(0,Se.jsx)("div",{className:"bottom-bar p-x-2",children:(0,Se.jsx)("div",{className:"row",children:(0,Se.jsxs)("div",{className:"col-xs-12 col-md-6 col-md-offset-3",children:[(0,Se.jsx)(we.Button,{className:"m-b-1",block:!0,size:we.Size.MEDIUM,type:we.ControlType.ACCENT,onClick:e,children:r.formatMessage(ar.reviewSubmit)}),(0,Se.jsx)(we.Button,{className:"m-b-2",block:!0,size:we.Size.MEDIUM,type:we.ControlType.ACCENT,priority:we.Priority.SECONDARY,onClick:t,children:r.formatMessage(ar.reviewRetry)})]})})})},au=({onClick:e})=>(0,Se.jsx)("button",{type:"button",className:"camera-capture-btn m-b-2","data-testid":"camera-capture-button",onClick:e,children:(0,Se.jsx)("span",{className:"camera-capture-btn-inner"})});var Vr=require("react");var ks=e=>{var r;let{facingMode:t}=((r=zr(e))==null?void 0:r.getSettings())||{};return t==="user"||t===void 0},Ms=e=>!!((e==null?void 0:e.label)||"").match(/camera2? 0/g),Es=async e=>{let t=document.createElement("canvas");if(e){t.setAttribute("height",`${e.videoHeight}`),t.setAttribute("width",`${e.videoWidth}`);let r=t==null?void 0:t.getContext("2d");r&&(await new Promise(o=>setTimeout(o,100)),r.drawImage(e,0,0,t.width,t.height))}return t},Is=async()=>{var e,t;return(await((t=(e=navigator==null?void 0:navigator.mediaDevices)==null?void 0:e.enumerateDevices)==null?void 0:t.call(e))||[]).filter(r=>r.kind==="videoinput")},Ds=async()=>{var e,t;return(await((t=(e=navigator==null?void 0:navigator.mediaDevices)==null?void 0:e.enumerateDevices)==null?void 0:t.call(e))||[]).filter(r=>r.kind==="videoinput").map(r=>r.label)},Ls=async e=>{var r,o,a;let t=aa(e);return(a=(await((o=(r=navigator==null?void 0:navigator.mediaDevices)==null?void 0:r.enumerateDevices)==null?void 0:o.call(r))||[]).filter(n=>n.kind==="videoinput").find(n=>n.deviceId===(t==null?void 0:t.deviceId)))==null?void 0:a.label},zr=e=>{var t;return(((t=e==null?void 0:e.getVideoTracks)==null?void 0:t.call(e))||[])[0]},aa=e=>{var t,r;return(r=(t=zr(e))==null?void 0:t.getCapabilities)==null?void 0:r.call(t)};var Ts=e=>{let[t,r]=(0,Vr.useState)(),o={facingMode:e==="front"?"user":"environment",height:{min:480,max:1080,ideal:720},width:{min:640,max:1920,ideal:1280},frameRate:30,aspectRatio:16/9};(0,Vr.useEffect)(()=>{a(e).then(r)},[e]);let a=async n=>{if(n==="back"){let s=(await Is()).find(Ms);if(s!=null&&s.deviceId)return b(i({},o),{deviceId:{exact:s.deviceId}})}return o};return{videoConstraints:t}};var Hr=require("react");var W=require("react/jsx-runtime"),nu=92,Bs=120,iu=40,su=32,lu=48,cu=40,Ns=800,mu=({overlay:e,outline:t,imageUrl:r,title:o,instructions:a,reviewInstructions:n})=>{let s=(0,Hr.useRef)(null);(0,Hr.useEffect)(()=>{let y=Ft(()=>{var l;if((l=s.current)!=null&&l.innerHTML){let d=s.current;d.innerHTML+=""}},100);return window.addEventListener("resize",y),()=>window.removeEventListener("resize",y)});let c=(r?iu:0)+(o?su:0)+(a?lu:0),m=(0,W.jsxs)(W.Fragment,{children:[r&&(0,W.jsx)("img",{className:"camera-capture-img",src:r,alt:""}),o&&(0,W.jsx)("h4",{className:"camera-capture-title",children:o}),a&&(0,W.jsx)("small",{className:"camera-capture-instructions",children:a})]}),p=nu+c;if(n){c=p-Bs,m=(0,W.jsx)("small",{className:"camera-capture-instructions",children:n});let y=Bs+cu;p<y&&(m=(0,W.jsx)(W.Fragment,{}))}let u={x:"50%",y:"5%",width:`min(90%, ${Ns}px)`,height:`calc(90% - ${p}px)`,style:{transform:`translateX(max(-45%, -${Ns/2}px))`}},g={style:{left:"5%",top:`calc(100% - ${p}px - 5%)`,height:`calc(${c}px + 5%)`,width:"90%"}};return(0,W.jsxs)("svg",{ref:s,xmlns:"http://www.w3.org/2000/svg",children:[(0,W.jsx)("defs",{children:(0,W.jsxs)("mask",{id:"mask",children:[(0,W.jsx)("rect",{width:"100%",height:"100%",fill:"#fff"}),(0,W.jsx)("image",i({href:e},u))]})}),e&&(0,W.jsx)("rect",{width:"100%",height:"100%",mask:"url(#mask)",fillOpacity:"0.72"}),t&&(0,W.jsx)("image",i({href:t},u)),(0,W.jsx)("foreignObject",{width:"100%",height:"100%",children:(0,W.jsx)("div",b(i({className:"camera-capture-text-and-image-container"},g),{children:m}))})]})},na=mu;var js=require("@transferwise/components"),Us=require("react-intl");var Rs=require("react-intl"),qr=(0,Rs.defineMessages)({title:{id:"dynamicFlows.CameraCapture.NoCameraAccess.title",defaultMessage:"We can't access your camera",description:"Title of standalone page prompting missing camera permissions"},paragraph:{id:"dynamicFlows.CameraCapture.NoCameraAccess.paragraph",defaultMessage:"Enable camera access in your browser's settings to get going again.",description:"Further text of standalone page prompting missing camera permissions"},action:{id:"dynamicFlows.CameraCapture.NoCameraAccess.action",defaultMessage:"Enable camera access",description:"Action to ask for camera permissions again"}});var ze=require("react/jsx-runtime"),du=({onAction:e})=>{let t=(0,Us.useIntl)();return(0,ze.jsx)("div",{id:"no-camera-access",children:(0,ze.jsx)("div",{className:"container p-t-5",children:(0,ze.jsx)("div",{className:"row",children:(0,ze.jsxs)("div",{className:"col-md-6 col-md-offset-3",children:[(0,ze.jsx)("h2",{className:"text-xs-center m-b-3",children:t.formatMessage(qr.title)}),(0,ze.jsx)("p",{className:"text-xs-center m-b-5",children:t.formatMessage(qr.paragraph)}),(0,ze.jsx)(js.Button,{block:!0,onClick:e,children:t.formatMessage(qr.action)})]})})})})},ia=du;var Vs=require("react-intl");var zs=require("react-intl"),sa=(0,zs.defineMessages)({title:{id:"dynamicFlows.CameraCapture.CameraNotSupported.title",defaultMessage:"Camera not supported",description:"Title of standalone page prompting that camera is not available on users browser"},paragraph:{id:"dynamicFlows.CameraCapture.CameraNotSupported.paragraph",defaultMessage:"The browser you're using doesn't have support for a camera. Try a different browser, device, or download our mobile app.",description:"Further text of standalone page prompting that camera is not available on user's browser"}});var Xe=require("react/jsx-runtime"),uu=()=>{let e=(0,Vs.useIntl)();return(0,Xe.jsx)("div",{id:"camera-not-supported",children:(0,Xe.jsx)("div",{className:"container p-t-5",children:(0,Xe.jsx)("div",{className:"row",children:(0,Xe.jsxs)("div",{className:"col-md-6 col-md-offset-3",children:[(0,Xe.jsx)("h2",{className:"text-xs-center m-b-3",children:e.formatMessage(sa.title)}),(0,Xe.jsx)("p",{className:"text-xs-center m-b-5",children:e.formatMessage(sa.paragraph)})]})})})})},la=uu;var Hs=e=>e==null?void 0:e("Dynamic Flow - Camera Permission Denied",{}),qs=async(e,t,r)=>e==null?void 0:e("Dynamic Flow - Camera Feed Started",await pu(t,r)),$s=(e,t)=>e==null?void 0:e("Dynamic Flow - Camera Not Supported",{Error:t}),pu=async(e,t)=>{var n;let r=zr(t),o=aa(t),a=(n=r==null?void 0:r.getSettings)==null?void 0:n.call(r);return b(i({},r&&{"Available Video Devices (by label)":await Ds(),"Active Video Device (by label)":await Ls(t),"Camera Capabilities":o,"Camera Settings":a}),{"Camera Direction (Asked)":e==null?void 0:e.direction})};var ee=require("react/jsx-runtime"),fu=({direction:e="back",overlay:t="",outline:r="",imageUrl:o="",title:a="",instructions:n="",showReview:s=!1,onCapture:c,onEvent:m})=>{let[p,u]=(0,Fe.useState)("CAPTURE"),[g,y]=(0,Fe.useState)(!1),[l,d]=(0,Fe.useState)(!1),[f,h]=(0,Fe.useState)(),S=(0,Fe.useRef)(null),{videoConstraints:O}=Ts(e),w=(0,Gs.useIntl)(),v=(0,Fe.useCallback)(async()=>{var F,j,I,$,He,ue;if((F=S==null?void 0:S.current)!=null&&F.video&&((I=(j=S==null?void 0:S.current)==null?void 0:j.video)==null?void 0:I.readyState)>=3){(He=($=S==null?void 0:S.current)==null?void 0:$.video)==null||He.pause();let et=await Es((ue=S==null?void 0:S.current)==null?void 0:ue.video);et==null||et.toBlob(xe=>{if(xe)if(s){let sr=window.URL.createObjectURL(xe);h({source:sr,blob:xe}),u("REVIEW")}else c(xe)},"image/jpeg",.92)}},[S,s,h,u,c,g]),P=(0,Fe.useCallback)(F=>{if(F instanceof DOMException&&(F==null?void 0:F.name)==="NotAllowedError"){u("NO_CAMERA_ACCESS"),Hs(m);return}u("CAMERA_NOT_SUPPORTED"),$s(m,F)},[u,m]),x=(0,Fe.useCallback)(F=>{d(!0),y(ks(F)),qs(m,{direction:e},F)},[y,m,e]),E=()=>{c((f==null?void 0:f.blob)||null)},L=()=>{u("CAPTURE"),h(void 0)},k=()=>u("CAPTURE"),T=(0,ee.jsxs)(ee.Fragment,{children:[O&&(0,ee.jsx)(_s.default,{ref:S,audio:!1,videoConstraints:O,mirrored:g,onUserMediaError:P,onUserMedia:x}),(0,ee.jsx)(na,{overlay:t,outline:r,imageUrl:o,title:a,instructions:n}),l&&(0,ee.jsx)(As,{onCapture:()=>void v()})]}),H=(0,ee.jsxs)(ee.Fragment,{children:[(0,ee.jsx)("img",{className:"review-image",src:f==null?void 0:f.source,alt:""}),(0,ee.jsx)(na,{overlay:t,imageUrl:o,title:a,instructions:n,reviewInstructions:w.formatMessage(ar.reviewInstructions)}),(0,ee.jsx)(Ps,{onSubmit:E,onRetry:L})]});return(0,ee.jsxs)("section",{className:"camera-capture",children:[p==="CAPTURE"&&T,p==="REVIEW"&&H,p==="NO_CAMERA_ACCESS"&&(0,ee.jsx)(ia,{onAction:k}),p==="CAMERA_NOT_SUPPORTED"&&(0,ee.jsx)(la,{})]})},ca=fu;var Ks=require("react/jsx-runtime");function yu(e){return new Promise((t,r)=>{let o=new FileReader;o.onloadend=()=>t(o.result),o.readAsDataURL(e)})}var hu=e=>{let{step:t,model:r,onModelChange:o,onAction:a}=e,n=Q(),s=Ws(t),c=gu(t),m=bu(t),{title:p,image:u,cameraConfig:g}=c,{assets:y,direction:l,instructions:d}=g||{},{overlay:f,outline:h}=y||{},{url:S}=u||{},[O,w]=(0,$r.useState)(!1);(0,$r.useEffect)(()=>{O&&a(m)},[r]);let v=async P=>{let{$id:x}=c;if(P){let E=await yu(P),L={[x||""]:E};w(!0),o({model:L,formSchema:s,triggerModel:E,triggerSchema:c})}};return(0,Ks.jsx)(ca,{overlay:f,outline:h,title:p,imageUrl:S,instructions:d,direction:l,onEvent:n,onCapture:P=>{v(P)}})},Gr=hu;function Ws(e){let r=xr(e.schemas||[])[0];if(!r||!ce(r))throw new Error("The first schema in a camera step is expected to be of type object and have at least one property with a schema...");return r}function gu(e){let t=Ws(e),r=Object.values(t.properties)[0];if(!r)throw new Error("The first schema in a camera step is expected to be of type object and have at least one property with a schema...");return r}function bu(e){var t,r;if(!e.schemas||((t=xr(e.schemas))==null?void 0:t.length)!==1)throw new Error("camera step expects 1 non-hidden object schema");if(((r=e==null?void 0:e.actions)==null?void 0:r.length)!==1)throw new Error("camera step expects 1 action");return e.actions[0]}var Zs=require("react-intl");var Ys=require("react-intl"),nr=(0,Ys.defineMessages)({title:{id:"dynamicFlows.ExternalConfirmation.title",defaultMessage:"Please confirm",description:"Heading for the confirmation screen."},description:{id:"dynamicFlows.ExternalConfirmation.description",defaultMessage:"Please confirm you want to open **{origin}** in a new browser tab.",description:"Description for the confirmation screen."},open:{id:"dynamicFlows.ExternalConfirmation.open",defaultMessage:"Open in new tab",description:"Button text confirming opening a new browser tab."},cancel:{id:"dynamicFlows.ExternalConfirmation.cancel",defaultMessage:"Cancel",description:"Button text rejecting opening a new browser tab."}});var Xs=require("react/jsx-runtime"),Js=()=>{},Su=({url:e,onClose:t})=>{let{formatMessage:r}=(0,Zs.useIntl)();return(0,Xs.jsx)(ie,{components:[{type:"box",width:"lg",components:[{type:"heading",text:r(nr.title),size:"lg",align:"center",margin:"xl"},{type:"info",markdown:r(nr.description,{origin:wu(e)}),align:"center",margin:"xl"},{type:"box",width:"md",components:[{type:"button",action:{title:r(nr.open),type:"primary",url:e,exit:!0}},{type:"button",action:{title:r(nr.cancel),type:"link",url:"",exit:!0}}]}]}],submitted:!1,onAction:o=>{o.url&&window.open(o.url,"_blank"),t()},onModelChange:Js,onPersistAsync:Js})},_r=Su;function wu(e){try{return new URL(e).origin}catch(t){return e}}var Ve=require("react/jsx-runtime"),Qs=e=>{var s;let{step:t,globalError:r}=e,o=(s=t==null?void 0:t.external)==null?void 0:s.url,{requiresManualTrigger:a,dismissConfirmation:n}=Cn(o);return t===void 0?null:o&&a?(0,Ve.jsx)(_r,{url:o,onClose:n}):Sn(t)?(0,Ve.jsx)(Gr,b(i({},e),{step:t})):(0,Ve.jsxs)(Ve.Fragment,{children:[r?(0,Ve.jsx)(ne,{component:{context:"negative",markdown:r,margin:"lg"}}):null,(0,Ve.jsx)(Ur,b(i({},e),{stepSpecification:t}))]})};var el=require("react");var Fu=1e3;function tl(e){let t=(0,el.useRef)(new Map),r=o=>{if(t.current.has(o))return t.current.get(o);let a=Ft((n,s,c)=>e(n,s,c),Fu);return t.current.set(o,a),a};return function(o,a,n,s){let c=r(o);c(o,a,n),(!s||!bn(s))&&c.flush()}}var Lt=require("react");function rl(e){return Object.prototype.hasOwnProperty.call(e,"$ref")===!1}var al=e=>{var l,d;let[t,r]=(0,Lt.useState)((l=e==null?void 0:e.errors)==null?void 0:l.validation),[o,a]=(0,Lt.useState)((d=e==null?void 0:e.errors)==null?void 0:d.error),[n,s]=(0,Lt.useState)({step:e||void 0,models:e!=null&&e.model?ol(e.model,ma(e)):{},etag:void 0}),{step:c,models:m,etag:p}=n,u=(f,h)=>{var S,O,w,v;s(P=>({step:f,models:f.model?ol(f.model,ma(f)):P.models,etag:h})),r((O=(S=f==null?void 0:f.errors)==null?void 0:S.validation)!=null?O:null),a((v=(w=f==null?void 0:f.errors)==null?void 0:w.error)!=null?v:null)},g=(f,h,S)=>{s(O=>{let w=b(i({},O.models),{[f]:h}),v={step:O.step,models:w,etag:O.etag};return S(w),v})},y=(0,Lt.useMemo)(()=>Cu(m,ma(c)),[m,c]);return{formErrors:t,globalError:o,step:c,models:m,etag:p,modelIsValid:y,setFormErrors:r,setGlobalError:a,setStepAndEtag:u,setSchemaModel:g}},ol=(e,t=[])=>t.reduce((r,o)=>(o.$id||console.warn("Schema without $id property found."),b(i({},r),{[o.$id||""]:ae(e,o)||{}})),{}),ma=e=>[...da((e==null?void 0:e.layout)||[]),...(e==null?void 0:e.schemas)||[]],da=e=>e.flatMap(t=>{switch(t.type){case"columns":return[...da([...t.left,...t.right])];case"box":return da(t.components);case"form":return rl(t.schema)?[t.schema]:[];default:return[]}}),Cu=(e,t=[])=>!(t!=null&&t.some(r=>(r.$id||console.warn("Schema without $id property found."),!G(e[r.$id||""]||{},r))));var Wr=require("@transferwise/components"),nl=require("react");var sl=require("react/jsx-runtime");function il(e,t){let r=i({size:Wr.Size.EXTRA_LARGE,initial:!0,submission:!1},e),[o,a]=(0,nl.useState)(t),s=r.initial&&o==="initial"||r.submission&&o==="submission"?(0,sl.jsx)(Wr.Loader,{size:r.size,classNames:{"tw-loader":"tw-loader m-x-auto"},"data-testid":"loader"}):null;return{isLoading:o!=="idle",setLoadingState:a,loader:s}}var ul=require("react");var Kr=require("@transferwise/components"),cl=require("react-intl");var ll=require("react-intl"),ua=(0,ll.defineMessages)({errorAlert:{id:"dynamicFlows.ErrorBoundary.errorAlert",defaultMessage:"Oops. Something went wrong...",description:"Generic error message for when something has gone wrong"},retry:{id:"dynamicFlows.ErrorBoundary.retry",defaultMessage:"Retry",description:"Retry"}});var dl=require("react/jsx-runtime"),ml=({onDismiss:e})=>{let{formatMessage:t}=(0,cl.useIntl)();return(0,dl.jsx)(Kr.Alert,{action:{text:t(ua.retry),href:window.location.href},message:t(ua.errorAlert),type:Kr.Sentiment.NEGATIVE,className:"m-b-3",onDismiss:e})};var Tt=require("react/jsx-runtime"),xu=()=>{},pa=class extends ul.Component{constructor(r){super(r);this.handleErrorReset=()=>{this.setState({hasError:!1,isFatalError:!1})};this.state={hasError:!1,isFatalError:!1}}static getDerivedStateFromError(){return{hasError:!0,isFatalError:!0}}componentDidCatch(r){let{onError:o=xu}=this.props;o(r)}render(){let{children:r}=this.props,{hasError:o,isFatalError:a}=this.state;return(0,Tt.jsxs)(Tt.Fragment,{children:[o&&(0,Tt.jsx)(ml,{onDismiss:this.handleErrorReset}),!a&&r]})}},fa=pa;var Ou=async e=>{switch(e.headers.get("X-Df-ResponseType")){case"step":return pl(e);case"exit":return yl(e);case"action":return fl(e);default:throw new Error("Unsupported X-Df-ResponseType. Allowed values are 'step', 'action', 'exit'.")}},pl=async e=>{let t=await ir(e);if(!N(t))throw new Error("Incorrect response body in response. Expected an object.");let r=e.headers.get("etag")||void 0;return{type:"step",step:t,etag:r}},fl=async e=>{let t=await ir(e);if(!N(t))throw new Error("Incorrect response body in response. Expected an object.");if(!N(t.action))throw new Error("Incorrect response body in action response. Expected an object satisfying the type { action: Action }.");let r=t.action;return r.exit===!0&&N(r.result)?{type:"exit",result:r.result}:{type:"action",action:t.action}},yl=async e=>({type:"exit",result:await ya(e)}),hl=async e=>{var r,o;if(ha(e),(r=e.headers)!=null&&r.has("X-Df-ResponseType"))return Ou(e);if((o=e.headers)!=null&&o.has("X-Df-Exit"))return yl(e);let t=await ir(e.clone());return N(t)&&t.action?fl(e):pl(e)},gl=async e=>{ha(e);let t=await ir(e);if(!N(t))throw new Error("Incorrect response body in error response. Expected an object.");if(!t.refreshFormUrl&&!t.validation&&!t.error)throw t;return t},ya=async e=>{ha(e);let t=await ir(e);return N(t)?t:null},ir=async e=>{try{return await e.json()}catch(t){return null}},ha=e=>{if(!vu(e))throw new Error("Incorrect type of response from fetch. Expected object of type Response.");if(e.bodyUsed)throw new Error("The body of the provided Response object has already been used. Every request must respond with a new Response object.")},vu=e=>typeof e=="object"&&e!==null&&"clone"in e&&"bodyUsed"in e;var Qe=require("react/jsx-runtime"),bl=()=>{},Au=({flowId:e,httpClient:t,initialAction:r,initialStep:o,loaderConfig:a,displayStepTitle:n=!0,onCompletion:s,onError:c,onEvent:m=bl,onLog:p=bl})=>{let{locale:u}=(0,Sl.useIntl)(),{formErrors:g,globalError:y,step:l,models:d,etag:f,modelIsValid:h,setFormErrors:S,setGlobalError:O,setStepAndEtag:w,setSchemaModel:v}=al(o),[P,x]=(0,Ce.useState)(!1),{isLoading:E,loader:L,setLoadingState:k}=il(a,o?"idle":"initial"),T=ot("critical",p,e,(l==null?void 0:l.id)||(l==null?void 0:l.key)),H=(0,Ce.useMemo)(()=>{var C;return i({flowId:e,stepId:(l==null?void 0:l.id)||(l==null?void 0:l.key)},(C=l==null?void 0:l.analytics)!=null?C:{})},[e,l]),F=(0,Ce.useMemo)(()=>to(m,H),[m,H]),j=(0,Ce.useCallback)(({action:C,data:U,etag:D})=>{let{url:J,method:Nt="POST"}=C;return t(J!=null?J:"",{method:Nt,headers:i({"accept-language":u,"Content-Type":"application/json"},D?{"If-None-Match":D}:{}),credentials:"include",body:Nt==="GET"?void 0:JSON.stringify(U)})},[t,u]),I=async(C,U={})=>{k(l?"submission":"initial"),F("Dynamic Flow - Step Submitted",{actionId:C.$id});try{let D=await j({action:C,data:U});await sr(D,"submission")}catch(D){lr(D,"Error fetching next step")}},$=async(C,U,D)=>{k("refresh"),F("Dynamic Flow - Step Refreshed",{status:"pending"});try{let J=await j({action:{url:C,method:"POST"},data:U,etag:D});await sr(J,"refresh")}catch(J){lr(J,"Error fetching refresh step")}},He=async(C,U)=>{k("submission");try{let D=await j({action:C,data:U});await ue(D,C.result)}catch(D){lr(D,"Error fetching exit result")}},ue=async(C,U)=>{let D=await ya(C);xe(i(i({},D),U))},et=tl($),xe=(0,Ce.useCallback)(C=>{F("Dynamic Flow - Flow Finished",{result:"success"}),s(C)},[s,F]);(0,Ce.useEffect)(()=>{F("Dynamic Flow - Flow Started",{})},[]),(0,Ce.useEffect)(()=>{if(!o){let C=i({$id:"#initial-step-request",method:"GET"},r);I(C,C.data)}},[t,u,JSON.stringify(o),JSON.stringify(r)]);let sr=async(C,U)=>{try{if(C.status===304){k("idle");return}if(!C.ok){let J=await gl(C);Oc(J);return}let D=await hl(C);D.type==="action"?I(D.action,D.action.data):D.type==="exit"?xe(D.result):xc(D.step,D.etag,U)}catch(D){return lr(D,"Error parsing fetch response",U,C.status)}},xc=(C,U,D)=>{w(C,U),k("idle"),D==="submission"?(x(!1),F("Dynamic Flow - Step Started",i({stepId:C.id||C.key},C==null?void 0:C.analytics))):F("Dynamic Flow - Step Refreshed",{status:"success"})},Oc=async C=>{C.refreshFormUrl&&await $(C.refreshFormUrl,Yr(d),f),C.validation&&S(C.validation),C.error&&O(C.error),k("idle")},lr=(C,U,D,J)=>{T("Error fetching",U),D==="refresh"&&F("Dynamic Flow - Step Refreshed",{status:"failure"}),F("Dynamic Flow - Flow Finished",{status:"failure"}),c(C,J),k("idle")},vc=C=>{let{model:U,formSchema:D}=C,{$id:J=""}=D;O(null),Z(U)||T("Invalid model on change","onModelChange was called but the model argument is not an object"),v(J,U,kc=>{Ac(C,kc)})},Ac=(C,U)=>{let{triggerSchema:D}=C;if(Mu(C)){let J=D.refreshFormUrl||(l==null?void 0:l.refreshFormUrl);J&&et(J,Yr(U),f,D)}},Pc=async C=>{if(E||C.disabled)return;if(C.exit&&!C.url){xe(C.result);return}let U=C.exit?He:I,{data:D,method:J}=C,Nt=i(i({},Yr(d)),D);ku(J)?(S(null),x(!0),h&&await U(C,Nt)):await U(C)};return(0,Qe.jsx)(Sr,{flowId:e,stepId:(l==null?void 0:l.id)||(l==null?void 0:l.key),onLog:p,children:(0,Qe.jsx)(ur,{metadata:H,onEvent:m,children:(0,Qe.jsx)(Ta,{loading:E,children:(0,Qe.jsx)(Ua,{httpClient:t,children:L!==null?L:(0,Qe.jsx)(Qs,{step:l,model:Yr(d),submitted:P,globalError:y,formErrors:g,stepLayoutOptions:{displayStepTitle:n},onAction:C=>{Pc(C)},onModelChange:vc})})})})})},Pu=e=>(0,Qe.jsx)(fa,{onError:e.onError,children:(0,Qe.jsx)(Au,i({},e))}),ga=Pu,Yr=e=>Object.values(e).reduce((t,r)=>i(i({},t),r),{}),ku=(e="POST")=>["POST","PUT","PATCH"].includes(e.toUpperCase()),Mu=e=>{let{type:t,triggerSchema:r,triggerModel:o,lastTriggerModel:a=null}=e,n=()=>G(o,r),s=()=>G(a,r);return t!=="init"&&(r==null?void 0:r.refreshFormOnChange)&&(n()||s())};var ba={};tt(ba,{alert:()=>wl,box:()=>Fl,button:()=>Cl,columns:()=>xl,copyable:()=>Ol,decision:()=>vl,decisionFlags:()=>Al,decisionIcons:()=>Pl,heading:()=>kl,image:()=>Ml,info:()=>El,list:()=>Il,loadingIndicator:()=>Dl,paragraph:()=>Ll,review:()=>Tl});var Eu={id:"Components/Alert",title:"Alert Component",description:"Alerts can have different contexts.",schemas:[],layout:[{type:"alert",markdown:'This is an alert with "neutral" context. A subset of Markdown features are supported, like **bold text**, and __italic__ I think. But no line breaks nor links.',context:"neutral"},{type:"alert",markdown:'This is an alert with "warning" context. A subset of Markdown features are supported, like **bold text**, and __italic__ I think. But no line breaks nor links.',context:"warning"},{type:"alert",markdown:'This is an alert with "positive" context. A subset of Markdown features are supported, like **bold text**, and __italic__ I think. But no line breaks nor links.',context:"positive"},{type:"alert",markdown:'This is an alert with "negative" context. A subset of Markdown features are supported, like **bold text**, and __italic__ I think. But no line breaks nor links.',context:"negative"}]},wl=Eu;var Iu={id:"Components/Box",title:"Box Component",description:"Box is a container for other layour components. It can have a border!",schemas:[],layout:["xs","sm","md","lg","xl"].map(e=>({type:"box",width:e,border:!0,components:[{type:"paragraph",text:`This paragraph is inside a box with border: "true" and width: "${e}".`}]}))},Fl=Iu;var Du=["primary","secondary","negative","link"].map((e,t)=>({type:"button",action:{url:"/action-url",method:"POST",title:`Button ${t+1}, type: "${e}"`,type:e,data:{"button-number":t+1}}})),Lu={id:"Components/Button",title:"Button Component",description:"Buttons typically trigger actions.",schemas:[{$id:"#schema",type:"object",displayOrder:[],properties:{"form-field":{type:"string",default:"Some text",title:'Enter any text. It will be submitted under "form-field".'}}}],layout:[{type:"box",width:"md",components:[{type:"paragraph",text:"Action buttons merge the form data with their own action.data before submitting it to the specified URL."},{type:"form",schema:{$ref:"#schema"}},...Du,{type:"paragraph",text:"Press any buttons and see the httpClient calls below.",align:"center"}]}]},Cl=Lu;var Tu={id:"Components/Columns",title:"Columns Component",description:"Arrange components in two columns (when there's enough space)",schemas:[],layout:[{type:"columns",left:[{type:"button",action:{title:"Save",type:"primary",exit:!0,result:{side:"left"}}}],right:[{type:"button",action:{title:"Delete",type:"negative",exit:!0,result:{side:"right"}}}]}]},xl=Tu;var Bu={id:"Components/Copyable",title:"Copyable Text",description:"Copyable Text Component.",layout:[{type:"paragraph",align:"center",text:"Please copy the code below and use it in that other thing."},{type:"paragraph",text:"7Xtiq6fnX9aEVF7yZAmb2qyqS857ro8S",align:"center",control:"copyable"}],schemas:[]},Ol=Bu;var Nu={id:"Components/Decision",title:"Decision Component",description:"A step with a decision Component.",schemas:[],layout:[{type:"heading",size:"sm",text:"Please continue using one of the following options:"},{type:"decision",options:[{title:"Create a new recipient",description:"You will need their bank details to hand",icon:{name:"plus"},action:{title:"",url:"recipient"}},{title:"Choose an existing recipient",disabled:!1,icon:{name:"bank"},action:{title:"",url:"review"}},{title:"Show me the external step",disabled:!1,icon:{name:"bulb"},action:{title:"",url:"external"}},{title:"Currency flags are now supported as well",disabled:!1,icon:{name:"flag-eur"},action:{title:"",url:"external"}}]}]},vl=Nu;var Ru={id:"Components/Decision Flags",title:"Decision Component",description:"A step with a decision Component.",schemas:[],layout:[{type:"heading",size:"sm",text:"Please continue using one of the following options:"},{type:"decision",options:ko.map(e=>({title:`${e.toUpperCase()}`,icon:{name:`flag-${e}`},action:{url:"/"}}))}]},Al=Ru;var ju=Ee(require("@transferwise/icons")),Uu={id:"Components/Decision Icons",title:"Decision Component",description:"A step with a decision Component.",schemas:[],layout:[{type:"heading",size:"sm",text:"Please continue using one of the following options:"},{type:"decision",options:Object.keys(ju).map(e=>({title:`${e} Icon`,icon:{name:e},action:{url:"/"}}))}]},Pl=Uu;var zu={id:"Components/Heading",title:"Heading Component",description:'Headings can have different sizes: "xs", "sm", "md", "lg", "xl".',schemas:[],layout:["xs","sm","md","lg","xl"].map(e=>({type:"heading",text:`This is heading with size: "${e}"`,size:e}))},kl=zu;var Vu=["xs","sm","md","lg","xl"],Hu={id:"Components/Image",title:"Image Component",description:'Images can have different sizes: "xs", "sm", "md", "lg", "xl".',schemas:[],layout:Vu.flatMap(e=>[{type:"paragraph",text:`This is an image with size: "${e}"`,align:"center"},{type:"image",url:"https://images.unsplash.com/photo-1542736705-53f0131d1e98?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=400&q=80",text:`This is an image with size: "${e}"`,size:e}])},Ml=Hu;var qu={id:"Components/Info",title:"Info Component",description:"A block of markdown content.",schemas:[],layout:[{type:"info",markdown:`## The Advantages of Using Bananas for Data Backup
2
2
 
3
3
  If you're looking for a fruit-based solution to your data backup needs, bananas might just be the perfect choice. Here are some reasons why:
4
4
 
@@ -11,7 +11,7 @@ export type GenericSchemaProps = {
11
11
  onChange: OnChange;
12
12
  onPersistAsync: OnPersistAsync;
13
13
  };
14
- type GenericSchemaFormProps = GenericSchemaProps & {
14
+ export type GenericSchemaFormProps = GenericSchemaProps & {
15
15
  hideTitle?: boolean;
16
16
  required?: boolean;
17
17
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wise/dynamic-flow-client",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "Dynamic Flow web client",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./build/main.min.js",