{"version":3,"sources":["webpack:///./node_modules/@ditdot-dev/vue-flow-form/dist/vue-flow-form.common.js"],"names":[],"mappings":";;;;;;;;;;AAAA,8CAAa;;AAEb,8CAA8C,cAAc;;AAE5D;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mCAAmC;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,yCAAyC,wBAAwB,EAAE;AAC1E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;AAIA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kCAAkC;AACvD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA,gBAAgB,kCAAkC;AAClD,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,4BAA4B;AAClD,yBAAyB;AACzB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kBAAkB,8BAA8B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;AAIA;AACA,KAAK,mEAAmE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,iBAAiB;AACpC,6BAA6B,UAAU,EAAE;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sCAAsC,4BAA4B,EAAE;AACpE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,cAAc;AACtB,QAAQ,uBAAuB;AAC/B,QAAQ,oBAAoB;AAC5B,QAAQ,8CAA8C,8BAA8B,GAAG;AACvF,QAAQ,8CAA8C,8BAA8B,GAAG;AACvF,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,yBAAyB,SAAS;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,aAAa;AACb;AACA;AACA,KAAK;AACL;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA,GAAG;AACH,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,wBAAwB,SAAS;AACjC;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B,eAAe,qBAAqB;AACpC,SAAS;AACT,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;AAIA;AACA,KAAK,uEAAuE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA,0DAA0D,gDAAgD,EAAE;AAC5G;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,iBAAiB,uBAAuB;AACxC;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;AAIA;AACA,KAAK,uEAAuE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;AAIA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,2BAA2B,UAAU;AACrC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,gBAAgB,eAAe;AAC/B;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;AAIA;AACA,KAAK,uEAAuE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;AAIA;AACA,KAAK,uEAAuE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,kCAAkC;AACzD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,qDAAqD,mBAAmB,EAAE;AAC1E;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+BAA+B;AACnD;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD,gBAAgB;AAChB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gCAAgC;AACtD,sBAAsB,oDAAoD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,8BAA8B,yBAAyB;AACvD;AACA,8BAA8B;AAC9B,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB,8BAA8B;AACvD,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,2BAA2B,8BAA8B;AACzD;AACA,kCAAkC,uBAAuB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE,mCAAmC,4BAA4B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,kCAAkC,4BAA4B;AAC9D,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA,kCAAkC,yBAAyB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;AAIA;AACA,KAAK,uEAAuE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;AAIA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;AAIA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;AAIA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;AAIA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,2BAA2B;AAC5C,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;AAIA;AACA,KAAK,uEAAuE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA,SAAS,W;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;AAIA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;AAIA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA,mCAAmC,cAAc,EAAE;AACnD,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qBAAqB;AAC3D;AACA;AACA,sCAAsC,wBAAwB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,uCAAuC,SAAS,wBAAwB,EAAE;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,2CAA2C,oBAAoB;AAC/D;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,sCAAsC,wBAAwB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,wBAAwB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uCAAuC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+CAA+C;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;AAIA;AACA,KAAK,uEAAuE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,mCAAmC,kCAAkC,mCAAmC,EAAE,EAAE;AAC5G,KAAK;AACL;AACA;AACA,4BAA4B,4BAA4B;AACxD,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,kDAAkD,EAAE;AACtF;AACA;AACA;;AAEA;AACA;AACA,e;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA,qBAAqB;;AAErB;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;;AAEA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,6BAA6B,gCAAgC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,OAAO;;AAEP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,4CAA4C;AACrE;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,S;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,iBAAiB,6BAA6B;AAC9C;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,eAAe;AACf,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2DAA2D;AAC9E;AACA;AACA,iCAAiC,gCAAgC;AACjE;AACA,sCAAsC,qBAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,YAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,mCAAmC,8BAA8B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4BAA4B;AAC7C,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,6BAA6B,gCAAgC;AAC7D;AACA;AACA,mEAAmE;AACnE,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+CAA+C;AAC3E;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yBAAyB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;AAIA;AACA,KAAK,uEAAuE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;AAIA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;;AAEA;AACA,mDAAmD,iBAAiB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"8.js","sourcesContent":["'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\r\n Copyright (c) 2020 - present, DITDOT Ltd. - MIT Licence\r\n https://github.com/ditdot-dev/vue-flow-form\r\n https://www.ditdot.hr/en\r\n*/\r\n\r\n// Language data store\r\n\r\nvar LanguageModel = function LanguageModel(options) {\r\n this.enterKey = 'Enter';\r\n this.shiftKey = 'Shift';\r\n this.ok = 'OK';\r\n this.continue = 'Continue';\r\n this.skip = 'Skip';\r\n this.pressEnter = 'Press :enterKey';\r\n this.multipleChoiceHelpText = 'Choose as many as you like';\r\n this.multipleChoiceHelpTextSingle = 'Choose only one answer';\r\n this.otherPrompt = 'Other';\r\n this.placeholder = 'Type your answer here...';\r\n this.submitText = 'Submit';\r\n this.longTextHelpText = ':shiftKey + :enterKey to make a line break.';\r\n this.prev = 'Prev';\r\n this.next = 'Next';\r\n this.percentCompleted = ':percent% completed';\r\n this.invalidPrompt = 'Please fill out the field correctly';\r\n this.thankYouText = 'Thank you!';\r\n this.successText = 'Your submission has been sent.';\r\n this.ariaOk = 'Press to continue';\r\n this.ariaRequired = 'This step is required';\r\n this.ariaPrev = 'Previous step';\r\n this.ariaNext = 'Next step';\r\n this.ariaSubmitText = 'Press to submit';\r\n this.ariaMultipleChoice = 'Press :letter to select';\r\n this.ariaTypeAnswer = 'Type your answer here';\r\n\r\n Object.assign(this, options || {});\r\n};\r\n\r\n/**\r\n * Inserts a new CSS class into the language model string to format the :string\r\n * Use it in a component's v-html directive: v-html=\"language.formatString(language.languageString)\"\r\n */\r\nLanguageModel.prototype.formatString = function formatString (string) {\n var this$1 = this;\n\r\n return string.replace(/:(\\w+)/g, function (match, word) {\r\n if (this$1[word]) {\r\n return '' + this$1[word] + ''\r\n }\r\n \r\n return match\r\n })\r\n};\n\n/*\r\n Copyright (c) 2020 - present, DITDOT Ltd. - MIT Licence\r\n https://github.com/ditdot-dev/vue-flow-form\r\n https://www.ditdot.hr/en\r\n*/\r\n\r\n// Global data store\r\n\r\nvar QuestionType = Object.freeze({\r\n Date: 'FlowFormDateType',\r\n Dropdown: 'FlowFormDropdownType',\r\n Email: 'FlowFormEmailType',\r\n LongText: 'FlowFormLongTextType',\r\n MultipleChoice: 'FlowFormMultipleChoiceType',\r\n MultiplePictureChoice: 'FlowFormMultiplePictureChoiceType',\r\n Number: 'FlowFormNumberType',\r\n Password: 'FlowFormPasswordType',\r\n Phone: 'FlowFormPhoneType',\r\n SectionBreak: 'FlowFormSectionBreakType',\r\n Text: 'FlowFormTextType',\r\n Url: 'FlowFormUrlType'\r\n});\r\n\r\nvar DropdownOptionBlank = Object.freeze({\r\n label: '',\r\n value: '',\r\n disabled: true\r\n});\r\n\r\nvar MaskPresets = Object.freeze({\r\n Date: '##/##/####',\r\n DateIso: '####-##-##',\r\n PhoneUs: '(###) ###-####'\r\n});\r\n\r\nvar ChoiceOption = function ChoiceOption(options) {\r\n this.label = '';\r\n this.value = null;\r\n this.selected = false;\r\n this.imageSrc = null;\r\n this.imageAlt = null;\r\n\r\n Object.assign(this, options);\r\n};\r\n\r\nChoiceOption.prototype.choiceLabel = function choiceLabel () {\r\n return this.label || this.value\r\n};\r\n\r\nChoiceOption.prototype.choiceValue = function choiceValue () {\r\n // Returns the value if it's anything other than the default (null).\r\n if (this.value !== null) {\r\n return this.value\r\n }\r\n\r\n // Returns any other non-empty property if the value has not been set.\r\n return this.label || this.imageAlt || this.imageSrc\r\n};\r\n\r\nChoiceOption.prototype.toggle = function toggle () {\r\n this.selected = !this.selected;\r\n};\r\n\r\nvar LinkOption = function LinkOption(options) {\r\n this.url = '';\r\n this.text = '';\r\n this.target = '_blank';\r\n\r\n Object.assign(this, options);\r\n};\r\n\r\nvar QuestionModel = function QuestionModel(options) {\r\n this.id = null;\r\n this.answer = null;\r\n this.answered = false;\r\n this.index = 0;\r\n this.options = [];\r\n this.description = '';\r\n this.className = '';\r\n this.type = null;\r\n this.html = null;\r\n this.required = false;\r\n this.jump = null;\r\n this.placeholder = null;\r\n this.mask = '';\r\n this.multiple = false;\r\n this.allowOther = false;\r\n this.other = null;\r\n this.language = null;\r\n this.tagline = null;\r\n this.title = null;\r\n this.subtitle = null;\r\n this.content = null;\r\n this.inline = false;\r\n this.helpText = null;\r\n this.helpTextShow = true;\r\n this.descriptionLink = [];\r\n this.min = null;\r\n this.max = null;\r\n this.nextStepOnAnswer = false;\r\n\r\n Object.assign(this, options);\r\n\r\n // Sets default mask and placeholder value on PhoneType question\r\n if (this.type === QuestionType.Phone) {\r\n if (!this.mask) {\r\n this.mask = MaskPresets.Phone;\r\n }\r\n if (!this.placeholder) {\r\n this.placeholder = this.mask;\r\n }\r\n } \r\n\r\n if (this.type === QuestionType.Url) {\r\n this.mask = null;\r\n }\r\n\r\n if (this.type === QuestionType.Date && !this.placeholder) {\r\n this.placeholder = 'yyyy-mm-dd';\r\n }\r\n\r\n if (this.multiple && !Array.isArray(this.answer)) {\r\n this.answer = this.answer ? [this.answer] : [];\r\n }\r\n\r\n this.resetOptions();\r\n};\r\n\r\nQuestionModel.prototype.getJumpId = function getJumpId () {\r\n var nextId = null;\r\n\r\n if (typeof this.jump === 'function') {\r\n nextId = this.jump.call(this);\r\n } else if (this.jump[this.answer]) {\r\n nextId = this.jump[this.answer];\r\n } else if (this.jump['_other']) {\r\n nextId = this.jump['_other'];\r\n }\r\n\r\n return nextId\r\n};\r\n\r\nQuestionModel.prototype.setAnswer = function setAnswer (answer) {\r\n if (this.type === QuestionType.Number && answer !== '' && !isNaN(+answer)) {\r\n answer = +answer;\r\n }\r\n\r\n this.answer = answer;\r\n};\r\n\r\nQuestionModel.prototype.setIndex = function setIndex (index) {\r\n if (!this.id) {\r\n this.id = 'q_' + index;\r\n }\r\n\r\n this.index = index;\r\n};\r\n\r\nQuestionModel.prototype.resetOptions = function resetOptions () {\n var this$1 = this;\n\r\n if (this.options) {\r\n var isArray = Array.isArray(this.answer);\r\n var numSelected = 0;\r\n\r\n this.options.forEach(function (o) {\r\n var optionValue = o.choiceValue();\r\n\r\n if (this$1.answer === optionValue || (isArray && this$1.answer.indexOf(optionValue) !== -1)) {\r\n o.selected = true;\r\n ++numSelected;\r\n }\r\n });\r\n\r\n if (this.allowOther) {\r\n var otherAnswer = null;\r\n\r\n if (isArray) {\r\n if (this.answer.length && this.answer.length !== numSelected) {\r\n otherAnswer = this.answer[this.answer.length - 1];\r\n }\r\n } else if (this.options.map(function (o) { return o.choiceValue(); }).indexOf(this.answer) === -1) {\r\n otherAnswer = this.answer;\r\n }\r\n\r\n if (otherAnswer !== null) {\r\n this.other = otherAnswer;\r\n }\r\n }\r\n }\r\n};\n\n/*\r\n Copyright (c) 2020 - present, DITDOT Ltd. - MIT Licence\r\n https://github.com/ditdot-dev/vue-flow-form\r\n https://www.ditdot.hr/en\r\n*/\r\n\r\nvar\r\n isIos = false,\r\n isMobile = false;\r\n\r\nif (typeof navigator !== 'undefined' && typeof document !== 'undefined') {\r\n // Simple mobile device/tablet detection\r\n isIos = navigator.userAgent.match(/iphone|ipad|ipod/i) || (navigator.userAgent.indexOf('Mac') !== -1 && 'ontouchend' in document);\r\n isMobile = isIos || navigator.userAgent.match(/android/i);\r\n}\r\n\r\n// Mixin that adds `isMobile` and `isIos` data variables\r\nvar IsMobile = {\r\n data: function data() {\r\n return {\r\n isIos: isIos,\r\n isMobile: isMobile\r\n }\r\n }\r\n};\n\n//\n\nvar script = {\n name: 'FlowFormBaseType',\n props: {\n language: LanguageModel,\n question: QuestionModel,\n active: Boolean,\n value: [String, Array, Boolean, Number, Object]\n },\n mixins: [\n IsMobile ],\n data: function data() {\n return {\n dirty: false,\n dataValue: null,\n answer: null,\n enterPressed: false,\n allowedChars: null,\n alwaysAllowedKeys: ['ArrowLeft', 'ArrowRight', 'Delete', 'Backspace'],\n focused: false,\n canReceiveFocus: false\n }\n },\n mounted: function mounted() {\n if (this.question.answer) {\n this.dataValue = this.answer = this.question.answer;\n } else if (this.question.multiple) {\n this.dataValue = [];\n }\n },\n methods: {\n /**\n * This method can be overriden in custom components to \n * change the answer before going through validation.\n */\n fixAnswer: function fixAnswer(answer) {\n return answer\n },\n\n getElement: function getElement() {\n var el = this.$refs.input;\n\n // Sometimes the input is nested so we need to find it\n while (el && el.$el) {\n el = el.$el;\n }\n\n return el\n },\n\n setFocus: function setFocus() {\n this.focused = true;\n },\n\n // eslint-disable-next-line no-unused-vars\n unsetFocus: function unsetFocus($event) {\n this.focused = false;\n },\n\n focus: function focus() {\n if (!this.focused) {\n var el = this.getElement();\n\n el && el.focus();\n }\n },\n\n blur: function blur() {\n var el = this.getElement();\n\n el && el.blur();\n },\n\n onKeyDown: function onKeyDown($event) {\n this.enterPressed = false;\n clearTimeout(this.timeoutId);\n\n if ($event) {\n if ($event.key === 'Enter' && !$event.shiftKey) {\n this.unsetFocus();\n }\n\n if (this.allowedChars !== null) {\n // Check if the entered character is allowed.\n // We always allow keys from the alwaysAllowedKeys array.\n if (this.alwaysAllowedKeys.indexOf($event.key) === -1 && this.allowedChars.indexOf($event.key) === -1) {\n $event.preventDefault();\n }\n }\n }\n },\n\n onChange: function onChange($event) {\n this.dirty = true;\n this.dataValue = $event.target.value;\n\n this.onKeyDown();\n this.setAnswer(this.dataValue);\n },\n\n onEnter: function onEnter() {\n this._onEnter();\n },\n\n _onEnter: function _onEnter() {\n this.enterPressed = true;\n\n this.dataValue = this.fixAnswer(this.dataValue);\n this.setAnswer(this.dataValue);\n this.isValid() ? this.blur() : this.focus();\n },\n\n setAnswer: function setAnswer(answer) {\n this.question.setAnswer(answer);\n\n this.answer = this.question.answer;\n this.question.answered = this.isValid();\n\n this.$emit('input', this.answer);\n },\n\n showInvalid: function showInvalid() {\n return this.dirty && this.enterPressed && !this.isValid()\n },\n\n isValid: function isValid() {\n if (!this.question.required && !this.hasValue && this.dirty) {\n return true\n }\n\n if (this.validate()) {\n return true\n }\n\n return false\n },\n \n /**\n * This method validates the input and is meant to be overriden\n * in custom question types.\n */\n validate: function validate() {\n return !this.question.required || this.hasValue\n }\n },\n \n computed: {\n placeholder: function placeholder() {\n return this.question.placeholder || this.language.placeholder\n },\n\n hasValue: function hasValue() {\n if (this.dataValue !== null) {\n var v = this.dataValue;\n\n if (v.trim) {\n // Don't allow empty strings\n return v.trim().length > 0\n }\n\n if (Array.isArray(v)) {\n // Don't allow empty arrays\n return v.length > 0\n }\n\n // All other non-null values are allowed to pass through\n return true\n }\n\n return false\n }\n }\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n var options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n var hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n var originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n var existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\n /* style */\n var __vue_inject_styles__ = undefined;\n /* scoped */\n var __vue_scope_id__ = undefined;\n /* module identifier */\n var __vue_module_identifier__ = undefined;\n /* functional template */\n var __vue_is_functional_template__ = undefined;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__ = /*#__PURE__*/normalizeComponent(\n {},\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\n//\n\nvar script$1 = {\n extends: __vue_component__,\n name: QuestionType.Dropdown,\n computed: {\n answerLabel: function answerLabel() {\n for (var i = 0; i < this.question.options.length; i++) {\n var option = this.question.options[i];\n\n if (option.choiceValue() === this.dataValue) {\n return option.choiceLabel()\n }\n }\n\n return this.question.placeholder\n }\n },\n methods: {\n onKeyDownListener: function onKeyDownListener($event) {\n if ($event.key === 'ArrowDown' || $event.key === 'ArrowUp') {\n this.setAnswer(this.dataValue);\n } else if ($event.key === 'Enter' && this.hasValue) {\n this.focused = false;\n this.blur();\n }\n },\n onKeyUpListener: function onKeyUpListener($event) {\n if ($event.key === 'Enter' && this.isValid()) {\n $event.stopPropagation();\n this._onEnter();\n this.$emit('next');\n }\n }\n }\n};\n\n/* script */\nvar __vue_script__$1 = script$1;\n\n/* template */\nvar __vue_render__ = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"span\", { staticClass: \"faux-form\" }, [\n _c(\n \"select\",\n {\n ref: \"input\",\n attrs: { required: _vm.question.required },\n domProps: { value: _vm.dataValue },\n on: {\n change: _vm.onChange,\n keydown: _vm.onKeyDownListener,\n keyup: _vm.onKeyUpListener\n }\n },\n [\n _vm.question.required\n ? _c(\n \"option\",\n {\n attrs: {\n label: \" \",\n value: \"\",\n disabled: \"\",\n selected: \"\",\n hidden: \"\"\n }\n },\n [_vm._v(\" \")]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm._l(_vm.question.options, function(option, index) {\n return _c(\n \"option\",\n {\n key: \"o\" + index,\n attrs: { disabled: option.disabled },\n domProps: { value: option.choiceValue() }\n },\n [_vm._v(\"\\n \" + _vm._s(option.choiceLabel()) + \"\\n \")]\n )\n })\n ],\n 2\n ),\n _vm._v(\" \"),\n _c(\"span\", [\n _c(\n \"span\",\n {\n staticClass: \"f-empty\",\n class: {\n \"f-answered\": this.question.answer && this.question.answered\n }\n },\n [_vm._v(_vm._s(_vm.answerLabel))]\n ),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"f-arrow-down\" }, [\n _c(\n \"svg\",\n {\n attrs: {\n version: \"1.1\",\n id: \"Capa_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"-163 254.1 284.9 284.9\",\n \"xml:space\": \"preserve\"\n }\n },\n [\n _c(\"g\", [\n _c(\"path\", {\n attrs: {\n d:\n \"M119.1,330.6l-14.3-14.3c-1.9-1.9-4.1-2.9-6.6-2.9c-2.5,0-4.7,1-6.6,2.9L-20.5,428.5l-112.2-112.2c-1.9-1.9-4.1-2.9-6.6-2.9c-2.5,0-4.7,0.9-6.6,2.9l-14.3,14.3c-1.9,1.9-2.9,4.1-2.9,6.6c0,2.5,1,4.7,2.9,6.6l133,133c1.9,1.9,4.1,2.9,6.6,2.9s4.7-1,6.6-2.9l133.1-133c1.9-1.9,2.8-4.1,2.8-6.6C121.9,334.7,121,332.5,119.1,330.6z\"\n }\n })\n ])\n ]\n )\n ])\n ])\n ])\n};\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n\n /* style */\n var __vue_inject_styles__$1 = undefined;\n /* scoped */\n var __vue_scope_id__$1 = undefined;\n /* module identifier */\n var __vue_module_identifier__$1 = undefined;\n /* functional template */\n var __vue_is_functional_template__$1 = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__$1 = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__$1,\n __vue_script__$1,\n __vue_scope_id__$1,\n __vue_is_functional_template__$1,\n __vue_module_identifier__$1,\n false,\n undefined,\n undefined,\n undefined\n );\n\nfunction maskit (value, mask, masked, tokens) {\n if ( masked === void 0 ) masked = true;\n\n value = value || '';\n mask = mask || '';\n var iMask = 0;\n var iValue = 0;\n var output = '';\n while (iMask < mask.length && iValue < value.length) {\n var cMask = mask[iMask];\n var masker = tokens[cMask];\n var cValue = value[iValue];\n if (masker && !masker.escape) {\n if (masker.pattern.test(cValue)) {\n \toutput += masker.transform ? masker.transform(cValue) : cValue;\n iMask++;\n }\n iValue++;\n } else {\n if (masker && masker.escape) {\n iMask++; // take the next mask char and treat it as char\n cMask = mask[iMask];\n }\n if (masked) { output += cMask; }\n if (cValue === cMask) { iValue++; } // user typed the same char\n iMask++;\n }\n }\n\n // fix mask that ends with a char: (#)\n var restOutput = '';\n while (iMask < mask.length && masked) {\n var cMask = mask[iMask];\n if (tokens[cMask]) {\n restOutput = '';\n break\n }\n restOutput += cMask;\n iMask++;\n }\n\n return output + restOutput\n}\n\nfunction dynamicMask (maskit, masks, tokens) {\n masks = masks.sort(function (a, b) { return a.length - b.length; });\n return function (value, mask, masked) {\n if ( masked === void 0 ) masked = true;\n\n var i = 0;\n while (i < masks.length) {\n var currentMask = masks[i];\n i++;\n var nextMask = masks[i];\n if (! (nextMask && maskit(value, nextMask, true, tokens).length > currentMask.length) ) {\n return maskit(value, currentMask, masked, tokens)\n }\n }\n return '' // empty masks\n }\n}\n\n// Facade to maskit/dynamicMask when mask is String or Array\nfunction masker (value, mask, masked, tokens) {\n if ( masked === void 0 ) masked = true;\n\n return Array.isArray(mask)\n ? dynamicMask(maskit, mask, tokens)(value, mask, masked, tokens)\n : maskit(value, mask, masked, tokens)\n}\n\nvar tokens = {\n '#': {pattern: /\\d/},\n 'X': {pattern: /[0-9a-zA-Z]/},\n 'S': {pattern: /[a-zA-Z]/},\n 'A': {pattern: /[a-zA-Z]/, transform: function (v) { return v.toLocaleUpperCase(); }},\n 'a': {pattern: /[a-zA-Z]/, transform: function (v) { return v.toLocaleLowerCase(); }},\n '!': {escape: true}\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events#The_old-fashioned_way\nfunction event (name) {\n var evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n return evt\n}\n\nfunction mask (el, binding) {\n var config = binding.value;\n if (Array.isArray(config) || typeof config === 'string') {\n config = {\n mask: config,\n tokens: tokens\n };\n }\n\n if (el.tagName.toLocaleUpperCase() !== 'INPUT') {\n var els = el.getElementsByTagName('input');\n if (els.length !== 1) {\n throw new Error(\"v-mask directive requires 1 input, found \" + els.length)\n } else {\n el = els[0];\n }\n }\n\n el.oninput = function (evt) {\n if (!evt.isTrusted) { return } // avoid infinite loop\n /* other properties to try to diferentiate InputEvent of Event (custom)\n InputEvent (native)\n cancelable: false\n isTrusted: true\n\n composed: true\n isComposing: false\n which: 0\n\n Event (custom)\n cancelable: true\n isTrusted: false\n */\n // by default, keep cursor at same position as before the mask\n var position = el.selectionEnd;\n // save the character just inserted\n var digit = el.value[position-1];\n el.value = masker(el.value, config.mask, true, config.tokens);\n // if the digit was changed, increment position until find the digit again\n while (position < el.value.length && el.value.charAt(position-1) !== digit) {\n position++;\n }\n if (el === document.activeElement) {\n el.setSelectionRange(position, position);\n setTimeout(function () {\n el.setSelectionRange(position, position);\n }, 0);\n }\n el.dispatchEvent(event('input'));\n };\n\n var newDisplay = masker(el.value, config.mask, true, config.tokens);\n if (newDisplay !== el.value) {\n el.value = newDisplay;\n el.dispatchEvent(event('input'));\n }\n}\n\n//\n\nvar script$2 = {\n name: 'TheMask',\n props: {\n value: [String, Number],\n mask: {\n type: [String, Array],\n required: true\n },\n masked: { // by default emits the value unformatted, change to true to format with the mask\n type: Boolean,\n default: false // raw\n },\n tokens: {\n type: Object,\n default: function () { return tokens; }\n }\n },\n directives: {mask: mask},\n data: function data () {\n return {\n lastValue: null, // avoid unecessary emit when has no change\n display: this.value\n }\n },\n watch : {\n value: function value (newValue) {\n if (newValue !== this.lastValue) {\n this.display = newValue;\n }\n },\n masked: function masked () {\n this.refresh(this.display);\n }\n },\n computed: {\n config: function config () {\n return {\n mask: this.mask,\n tokens: this.tokens,\n masked: this.masked\n }\n }\n },\n methods: {\n onInput: function onInput (e) {\n if (e.isTrusted) { return } // ignore native event\n this.refresh(e.target.value);\n },\n\n refresh: function refresh (value) {\n this.display = value;\n var value = masker(value, this.mask, this.masked, this.tokens);\n if (value !== this.lastValue) {\n this.lastValue = value;\n this.$emit('input', value);\n }\n }\n }\n};\n\n/* script */\nvar __vue_script__$2 = script$2;\n\n/* template */\nvar __vue_render__$1 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"input\", {\n directives: [\n {\n name: \"mask\",\n rawName: \"v-mask\",\n value: _vm.config,\n expression: \"config\"\n }\n ],\n attrs: { type: \"text\" },\n domProps: { value: _vm.display },\n on: { input: _vm.onInput }\n })\n};\nvar __vue_staticRenderFns__$1 = [];\n__vue_render__$1._withStripped = true;\n\n /* style */\n var __vue_inject_styles__$2 = undefined;\n /* scoped */\n var __vue_scope_id__$2 = undefined;\n /* module identifier */\n var __vue_module_identifier__$2 = undefined;\n /* functional template */\n var __vue_is_functional_template__$2 = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__$2 = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },\n __vue_inject_styles__$2,\n __vue_script__$2,\n __vue_scope_id__$2,\n __vue_is_functional_template__$2,\n __vue_module_identifier__$2,\n false,\n undefined,\n undefined,\n undefined\n );\n\n//\n\nvar script$3 = {\n extends: __vue_component__,\n name: QuestionType.Text,\n components: {\n TheMask: __vue_component__$2\n },\n\n data: function data() {\n return {\n inputType: 'text', \n canReceiveFocus: true\n }\n }, \n\n methods: {\n validate: function validate() {\n var this$1 = this;\n\n if (this.question.mask && this.hasValue) {\n if (Array.isArray(this.question.mask)) {\n return this.question.mask.some(function (mask) { return mask.length === this$1.dataValue.length; })\n }\n\n return this.dataValue.length === this.question.mask.length\n }\n\n return !this.question.required || this.hasValue\n }\n }\n};\n\n/* script */\nvar __vue_script__$3 = script$3;\n\n/* template */\nvar __vue_render__$2 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\n \"span\",\n {\n attrs: {\n \"data-placeholder\": _vm.inputType === \"date\" ? _vm.placeholder : null\n }\n },\n [\n _vm.question.mask\n ? _c(\"the-mask\", {\n ref: \"input\",\n attrs: {\n mask: _vm.question.mask,\n masked: false,\n type: _vm.inputType,\n value: _vm.value,\n required: _vm.question.required,\n placeholder: _vm.placeholder,\n min: _vm.question.min,\n max: _vm.question.max\n },\n on: { change: _vm.onChange },\n nativeOn: {\n keydown: function($event) {\n return _vm.onKeyDown($event)\n },\n keyup: [\n function($event) {\n return _vm.onChange($event)\n },\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n ) {\n return null\n }\n $event.preventDefault();\n return _vm.onEnter($event)\n },\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"tab\", 9, $event.key, \"Tab\")\n ) {\n return null\n }\n $event.preventDefault();\n return _vm.onEnter($event)\n }\n ],\n focus: function($event) {\n return _vm.setFocus($event)\n },\n blur: function($event) {\n return _vm.unsetFocus($event)\n }\n }\n })\n : _c(\"input\", {\n ref: \"input\",\n attrs: {\n type: _vm.inputType,\n required: _vm.question.required,\n min: _vm.question.min,\n max: _vm.question.max,\n placeholder: _vm.placeholder\n },\n domProps: { value: _vm.value },\n on: {\n keydown: _vm.onKeyDown,\n keyup: [\n _vm.onChange,\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n ) {\n return null\n }\n $event.preventDefault();\n return _vm.onEnter($event)\n },\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"tab\", 9, $event.key, \"Tab\")\n ) {\n return null\n }\n $event.preventDefault();\n return _vm.onEnter($event)\n }\n ],\n focus: _vm.setFocus,\n blur: _vm.unsetFocus,\n change: _vm.onChange\n }\n })\n ],\n 1\n )\n};\nvar __vue_staticRenderFns__$2 = [];\n__vue_render__$2._withStripped = true;\n\n /* style */\n var __vue_inject_styles__$3 = undefined;\n /* scoped */\n var __vue_scope_id__$3 = undefined;\n /* module identifier */\n var __vue_module_identifier__$3 = undefined;\n /* functional template */\n var __vue_is_functional_template__$3 = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__$3 = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 },\n __vue_inject_styles__$3,\n __vue_script__$3,\n __vue_scope_id__$3,\n __vue_is_functional_template__$3,\n __vue_module_identifier__$3,\n false,\n undefined,\n undefined,\n undefined\n );\n\nvar script$4 = {\n extends: __vue_component__$3,\n name: QuestionType.Email,\n data: function data() {\n return {\n inputType: 'email'\n }\n },\n methods: {\n validate: function validate() {\n if (this.hasValue) {\n return /^[^@]+@.+[^.]$/.test(this.dataValue)\n }\n\n return !this.question.required\n }\n }\n};\n\n/* script */\nvar __vue_script__$4 = script$4;\n\n/* template */\n\n /* style */\n var __vue_inject_styles__$4 = undefined;\n /* scoped */\n var __vue_scope_id__$4 = undefined;\n /* module identifier */\n var __vue_module_identifier__$4 = undefined;\n /* functional template */\n var __vue_is_functional_template__$4 = undefined;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__$4 = /*#__PURE__*/normalizeComponent(\n {},\n __vue_inject_styles__$4,\n __vue_script__$4,\n __vue_scope_id__$4,\n __vue_is_functional_template__$4,\n __vue_module_identifier__$4,\n false,\n undefined,\n undefined,\n undefined\n );\n\n//\n//\n//\n//\n//\n//\n//\n\nvar script$5 = {\n name: 'TextareaAutosize',\n props: {\n value: {\n type: [String, Number],\n default: ''\n },\n autosize: {\n type: Boolean,\n default: true\n },\n minHeight: {\n type: [Number],\n 'default': null\n },\n maxHeight: {\n type: [Number],\n 'default': null\n },\n /*\n * Force !important for style properties\n */\n important: {\n type: [Boolean, Array],\n default: false\n }\n },\n data: function data () {\n return {\n // data property for v-model binding with real textarea tag\n val: null,\n // works when content height becomes more then value of the maxHeight property\n maxHeightScroll: false,\n height: 'auto'\n }\n },\n computed: {\n computedStyles: function computedStyles () {\n if (!this.autosize) { return {} }\n return {\n resize: !this.isResizeImportant ? 'none' : 'none !important',\n height: this.height,\n overflow: this.maxHeightScroll ? 'auto' : (!this.isOverflowImportant ? 'hidden' : 'hidden !important')\n }\n },\n isResizeImportant: function isResizeImportant () {\n var imp = this.important;\n return imp === true || (Array.isArray(imp) && imp.includes('resize'))\n },\n isOverflowImportant: function isOverflowImportant () {\n var imp = this.important;\n return imp === true || (Array.isArray(imp) && imp.includes('overflow'))\n },\n isHeightImportant: function isHeightImportant () {\n var imp = this.important;\n return imp === true || (Array.isArray(imp) && imp.includes('height'))\n }\n },\n watch: {\n value: function value (val) {\n this.val = val;\n },\n val: function val (val$1) {\n this.$nextTick(this.resize);\n this.$emit('input', val$1);\n },\n minHeight: function minHeight () {\n this.$nextTick(this.resize);\n },\n maxHeight: function maxHeight () {\n this.$nextTick(this.resize);\n },\n autosize: function autosize (val) {\n if (val) { this.resize(); }\n }\n },\n methods: {\n resize: function resize () {\n var this$1 = this;\n\n var important = this.isHeightImportant ? 'important' : '';\n this.height = \"auto\" + (important ? ' !important' : '');\n this.$nextTick(function () {\n var contentHeight = this$1.$el.scrollHeight + 1;\n\n if (this$1.minHeight) {\n contentHeight = contentHeight < this$1.minHeight ? this$1.minHeight : contentHeight;\n }\n\n if (this$1.maxHeight) {\n if (contentHeight > this$1.maxHeight) {\n contentHeight = this$1.maxHeight;\n this$1.maxHeightScroll = true;\n } else {\n this$1.maxHeightScroll = false;\n }\n }\n\n var heightVal = contentHeight + 'px';\n this$1.height = \"\" + heightVal + (important ? ' !important' : '');\n });\n\n return this\n }\n },\n created: function created () {\n this.val = this.value;\n },\n mounted: function mounted () {\n this.resize();\n }\n};\n\n/* script */\nvar __vue_script__$5 = script$5;\n\n/* template */\nvar __vue_render__$3 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"textarea\", {\n directives: [\n { name: \"model\", rawName: \"v-model\", value: _vm.val, expression: \"val\" }\n ],\n style: _vm.computedStyles,\n domProps: { value: _vm.val },\n on: {\n focus: _vm.resize,\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.val = $event.target.value;\n }\n }\n })\n};\nvar __vue_staticRenderFns__$3 = [];\n__vue_render__$3._withStripped = true;\n\n /* style */\n var __vue_inject_styles__$5 = undefined;\n /* scoped */\n var __vue_scope_id__$5 = undefined;\n /* module identifier */\n var __vue_module_identifier__$5 = undefined;\n /* functional template */\n var __vue_is_functional_template__$5 = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__$5 = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },\n __vue_inject_styles__$5,\n __vue_script__$5,\n __vue_scope_id__$5,\n __vue_is_functional_template__$5,\n __vue_module_identifier__$5,\n false,\n undefined,\n undefined,\n undefined\n );\n\n//\n\nvar script$6 = {\n extends: __vue_component__,\n name: QuestionType.LongText,\n components: {\n TextareaAutosize: __vue_component__$5\n },\n data: function data () {\n return {\n canReceiveFocus: true\n }\n },\n mounted: function mounted() {\n window.addEventListener('resize', this.onResizeListener);\n },\n beforeDestroy: function beforeDestroy() {\n window.removeEventListener('resize', this.onResizeListener);\n },\n methods: {\n onResizeListener: function onResizeListener() {\n this.$refs.input.resize();\n },\n\n unsetFocus: function unsetFocus($event) {\n if ($event || !this.isMobile) {\n this.focused = false;\n }\n },\n\n onEnterDown: function onEnterDown($event) {\n if (!this.isMobile) {\n $event.preventDefault();\n }\n },\n\n onEnter: function onEnter() {\n if (!this.isMobile) {\n this._onEnter();\n }\n }\n }\n};\n\n/* script */\nvar __vue_script__$6 = script$6;\n\n/* template */\nvar __vue_render__$4 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\n \"span\",\n [\n _c(\"textarea-autosize\", {\n ref: \"input\",\n attrs: {\n rows: \"1\",\n value: _vm.value,\n required: _vm.question.required,\n placeholder: _vm.placeholder\n },\n nativeOn: {\n keydown: [\n function($event) {\n return _vm.onKeyDown($event)\n },\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n ) {\n return null\n }\n if (\n $event.ctrlKey ||\n $event.shiftKey ||\n $event.altKey ||\n $event.metaKey\n ) {\n return null\n }\n return _vm.onEnterDown($event)\n }\n ],\n keyup: [\n function($event) {\n return _vm.onChange($event)\n },\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n ) {\n return null\n }\n if (\n $event.ctrlKey ||\n $event.shiftKey ||\n $event.altKey ||\n $event.metaKey\n ) {\n return null\n }\n $event.preventDefault();\n return _vm.onEnter($event)\n },\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"tab\", 9, $event.key, \"Tab\")\n ) {\n return null\n }\n $event.preventDefault();\n return _vm.onEnter($event)\n }\n ],\n focus: function($event) {\n return _vm.setFocus($event)\n },\n blur: function($event) {\n return _vm.unsetFocus($event)\n }\n }\n })\n ],\n 1\n )\n};\nvar __vue_staticRenderFns__$4 = [];\n__vue_render__$4._withStripped = true;\n\n /* style */\n var __vue_inject_styles__$6 = undefined;\n /* scoped */\n var __vue_scope_id__$6 = undefined;\n /* module identifier */\n var __vue_module_identifier__$6 = undefined;\n /* functional template */\n var __vue_is_functional_template__$6 = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__$6 = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 },\n __vue_inject_styles__$6,\n __vue_script__$6,\n __vue_scope_id__$6,\n __vue_is_functional_template__$6,\n __vue_module_identifier__$6,\n false,\n undefined,\n undefined,\n undefined\n );\n\n//\n\nvar script$7 = {\n extends: __vue_component__,\n name: QuestionType.MultipleChoice,\n\n data: function data() {\n return {\n editingOther: false,\n hasImages: false\n }\n },\n\n mounted: function mounted() {\n this.addKeyListener();\n },\n\n beforeDestroy: function beforeDestroy() {\n this.removeKeyListener();\n },\n\n watch: {\n active: function active(value) {\n if (value) {\n this.addKeyListener();\n\n if (this.question.multiple && this.question.answered) {\n this.enterPressed = false;\n }\n } else {\n this.removeKeyListener();\n }\n }\n },\n \n methods: {\n addKeyListener: function addKeyListener() {\n this.removeKeyListener();\n document.addEventListener('keyup', this.onKeyListener);\n },\n\n removeKeyListener: function removeKeyListener() {\n document.removeEventListener('keyup', this.onKeyListener);\n },\n\n /**\n * Listens for keyboard events (A, B, C, ...)\n */\n onKeyListener: function onKeyListener($event) {\n if (this.active && !this.editingOther && $event.key && $event.key.length === 1) {\n var keyCode = $event.key.toUpperCase().charCodeAt(0);\n\n if (keyCode >= 65 && keyCode <= 90) {\n var index = keyCode - 65;\n\n if (index > -1) {\n var option = this.question.options[index];\n\n if (option) {\n this.toggleAnswer(option);\n } else if (this.question.allowOther && index === this.question.options.length) {\n this.startEditOther();\n }\n }\n }\n }\n },\n\n getLabel: function getLabel(index) {\n return this.language.ariaMultipleChoice.replace(':letter', this.getToggleKey(index))\n },\n\n getToggleKey: function getToggleKey(index) {\n var key = 65 + index;\n\n if (key <= 90) {\n return String.fromCharCode(key)\n }\n\n return ''\n },\n\n toggleAnswer: function toggleAnswer(option) {\n if (!this.question.multiple) {\n if (this.question.allowOther) {\n this.question.other = this.dataValue = null;\n this.setAnswer(this.dataValue);\n }\n\n for (var i = 0; i < this.question.options.length; i++) {\n var o = this.question.options[i];\n\n if (o.selected) {\n this._toggleAnswer(o);\n }\n }\n }\n\n this._toggleAnswer(option);\n },\n\n _toggleAnswer: function _toggleAnswer(option) {\n var optionValue = option.choiceValue();\n\n option.toggle();\n\n if (this.question.multiple) {\n this.enterPressed = false;\n\n if (!option.selected) {\n this._removeAnswer(optionValue);\n } else if (this.dataValue.indexOf(optionValue) === -1) {\n this.dataValue.push(optionValue);\n }\n } else {\n this.dataValue = option.selected ? optionValue : null;\n }\n\n if (this.isValid() && this.question.nextStepOnAnswer && !this.question.multiple) {\n this.$emit('next');\n }\n\n this.setAnswer(this.dataValue);\n },\n\n _removeAnswer: function _removeAnswer(value) {\n var index = this.dataValue.indexOf(value);\n\n if (index !== -1) {\n this.dataValue.splice(index, 1);\n }\n },\n\n startEditOther: function startEditOther() {\n var this$1 = this;\n\n this.editingOther = true;\n this.enterPressed = false;\n\n this.$nextTick(function () {\n this$1.$refs.otherInput.focus();\n });\n },\n\n onChangeOther: function onChangeOther() {\n if (this.editingOther) {\n var\n value = [],\n self = this;\n\n this.question.options.forEach(function(option) {\n if (option.selected) {\n if (self.question.multiple) {\n value.push(option.choiceValue());\n } else {\n option.toggle();\n }\n }\n });\n\n if (this.question.other && this.question.multiple) {\n value.push(this.question.other);\n } else if (!this.question.multiple) {\n value = this.question.other;\n }\n\n this.dataValue = value;\n this.setAnswer(this.dataValue);\n }\n },\n \n stopEditOther: function stopEditOther() {\n this.editingOther = false;\n }\n },\n\n computed: {\n hasValue: function hasValue() {\n if (this.question.options.filter(function (o) { return o.selected; }).length) {\n return true\n }\n\n if (this.question.allowOther) {\n return this.question.other && this.question.other.trim().length > 0\n }\n\n return false\n }\n }\n};\n\n/* script */\nvar __vue_script__$7 = script$7;\n\n/* template */\nvar __vue_render__$5 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"div\", { staticClass: \"f-radios-wrap\" }, [\n _c(\n \"ul\",\n {\n staticClass: \"f-radios\",\n class: { \"f-multiple\": _vm.question.multiple },\n attrs: { role: \"listbox\" }\n },\n [\n _vm._l(_vm.question.options, function(option, index) {\n return _c(\n \"li\",\n {\n key: \"m\" + index,\n class: { \"f-selected\": option.selected },\n attrs: { \"aria-label\": _vm.getLabel(index), role: \"option\" },\n on: {\n click: function($event) {\n $event.preventDefault();\n return _vm.toggleAnswer(option)\n }\n }\n },\n [\n _vm.hasImages && option.imageSrc\n ? _c(\"span\", { staticClass: \"f-image\" }, [\n _c(\"img\", {\n attrs: { src: option.imageSrc, alt: option.imageAlt }\n })\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"f-label-wrap\" }, [\n _c(\"span\", { staticClass: \"f-key\" }, [\n _vm._v(_vm._s(_vm.getToggleKey(index)))\n ]),\n _vm._v(\" \"),\n option.choiceLabel()\n ? _c(\"span\", { staticClass: \"f-label\" }, [\n _vm._v(_vm._s(option.choiceLabel()))\n ])\n : _vm._e()\n ])\n ]\n )\n }),\n _vm._v(\" \"),\n !_vm.hasImages && _vm.question.allowOther\n ? _c(\n \"li\",\n {\n staticClass: \"f-other\",\n class: {\n \"f-selected\": _vm.question.other,\n \"f-focus\": _vm.editingOther\n },\n attrs: {\n \"aria-label\": _vm.language.ariaTypeAnswer,\n role: \"option\"\n },\n on: {\n click: function($event) {\n $event.preventDefault();\n return _vm.startEditOther($event)\n }\n }\n },\n [\n _c(\"div\", { staticClass: \"f-label-wrap\" }, [\n !_vm.editingOther\n ? _c(\"span\", { staticClass: \"f-key\" }, [\n _vm._v(\n _vm._s(_vm.getToggleKey(_vm.question.options.length))\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.editingOther\n ? _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.question.other,\n expression: \"question.other\"\n }\n ],\n ref: \"otherInput\",\n attrs: { type: \"text\", maxlength: \"256\" },\n domProps: { value: _vm.question.other },\n on: {\n blur: _vm.stopEditOther,\n keyup: [\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n $event.preventDefault();\n return _vm.stopEditOther($event)\n },\n _vm.onChangeOther\n ],\n change: _vm.onChangeOther,\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.$set(_vm.question, \"other\", $event.target.value);\n }\n }\n })\n : _vm.question.other\n ? _c(\"span\", { staticClass: \"f-selected\" }, [\n _c(\"span\", { staticClass: \"f-label\" }, [\n _vm._v(_vm._s(_vm.question.other))\n ])\n ])\n : _c(\"span\", { staticClass: \"f-label\" }, [\n _vm._v(_vm._s(_vm.language.otherPrompt))\n ])\n ])\n ]\n )\n : _vm._e()\n ],\n 2\n )\n ])\n};\nvar __vue_staticRenderFns__$5 = [];\n__vue_render__$5._withStripped = true;\n\n /* style */\n var __vue_inject_styles__$7 = undefined;\n /* scoped */\n var __vue_scope_id__$7 = undefined;\n /* module identifier */\n var __vue_module_identifier__$7 = undefined;\n /* functional template */\n var __vue_is_functional_template__$7 = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__$7 = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$5, staticRenderFns: __vue_staticRenderFns__$5 },\n __vue_inject_styles__$7,\n __vue_script__$7,\n __vue_scope_id__$7,\n __vue_is_functional_template__$7,\n __vue_module_identifier__$7,\n false,\n undefined,\n undefined,\n undefined\n );\n\nvar script$8 = {\n extends: __vue_component__$7,\n name: QuestionType.MultiplePictureChoice,\n\n data: function data() {\n return {\n hasImages: true\n }\n }\n};\n\n/* script */\nvar __vue_script__$8 = script$8;\n\n/* template */\n\n /* style */\n var __vue_inject_styles__$8 = undefined;\n /* scoped */\n var __vue_scope_id__$8 = undefined;\n /* module identifier */\n var __vue_module_identifier__$8 = undefined;\n /* functional template */\n var __vue_is_functional_template__$8 = undefined;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__$8 = /*#__PURE__*/normalizeComponent(\n {},\n __vue_inject_styles__$8,\n __vue_script__$8,\n __vue_scope_id__$8,\n __vue_is_functional_template__$8,\n __vue_module_identifier__$8,\n false,\n undefined,\n undefined,\n undefined\n );\n\nvar script$9 = {\n extends: __vue_component__$3,\n name: QuestionType.Number,\n\n data: function data() {\n return {\n inputType: 'tel',\n allowedChars: '-0123456789.'\n }\n },\n\n methods: {\n validate: function validate() {\n if (this.hasValue) {\n return !isNaN(+this.dataValue)\n }\n\n return !this.question.required || this.hasValue\n }\n }\n};\n\n/* script */\nvar __vue_script__$9 = script$9;\n\n/* template */\n\n /* style */\n var __vue_inject_styles__$9 = undefined;\n /* scoped */\n var __vue_scope_id__$9 = undefined;\n /* module identifier */\n var __vue_module_identifier__$9 = undefined;\n /* functional template */\n var __vue_is_functional_template__$9 = undefined;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__$9 = /*#__PURE__*/normalizeComponent(\n {},\n __vue_inject_styles__$9,\n __vue_script__$9,\n __vue_scope_id__$9,\n __vue_is_functional_template__$9,\n __vue_module_identifier__$9,\n false,\n undefined,\n undefined,\n undefined\n );\n\nvar script$a = {\n extends: __vue_component__$3,\n name: QuestionType.Password,\n data: function data() {\n return {\n inputType: 'password'\n }\n }\n};\n\n/* script */\nvar __vue_script__$a = script$a;\n\n/* template */\n\n /* style */\n var __vue_inject_styles__$a = undefined;\n /* scoped */\n var __vue_scope_id__$a = undefined;\n /* module identifier */\n var __vue_module_identifier__$a = undefined;\n /* functional template */\n var __vue_is_functional_template__$a = undefined;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__$a = /*#__PURE__*/normalizeComponent(\n {},\n __vue_inject_styles__$a,\n __vue_script__$a,\n __vue_scope_id__$a,\n __vue_is_functional_template__$a,\n __vue_module_identifier__$a,\n false,\n undefined,\n undefined,\n undefined\n );\n\nvar script$b = {\n extends: __vue_component__$3,\n name: QuestionType.Phone,\n data: function data() {\n return {\n inputType: 'tel', \n canReceiveFocus: true\n }\n }\n};\n\n/* script */\nvar __vue_script__$b = script$b;\n\n/* template */\n\n /* style */\n var __vue_inject_styles__$b = undefined;\n /* scoped */\n var __vue_scope_id__$b = undefined;\n /* module identifier */\n var __vue_module_identifier__$b = undefined;\n /* functional template */\n var __vue_is_functional_template__$b = undefined;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__$b = /*#__PURE__*/normalizeComponent(\n {},\n __vue_inject_styles__$b,\n __vue_script__$b,\n __vue_scope_id__$b,\n __vue_is_functional_template__$b,\n __vue_module_identifier__$b,\n false,\n undefined,\n undefined,\n undefined\n );\n\n//\n\nvar script$c = {\n extends: __vue_component__,\n name: QuestionType.SectionBreak,\n methods: {\n onEnter: function onEnter() {\n this.dirty = true;\n\n this._onEnter();\n },\n\n isValid: function isValid() {\n return true\n }\n }\n};\n\n/* script */\nvar __vue_script__$c = script$c;\n\n/* template */\nvar __vue_render__$6 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _vm.question.content\n ? _c(\"div\", { staticClass: \"f-content\" }, [\n _c(\"span\", { staticClass: \"f-section-text\" }, [\n _vm._v(_vm._s(_vm.question.content))\n ])\n ])\n : _vm._e()\n};\nvar __vue_staticRenderFns__$6 = [];\n__vue_render__$6._withStripped = true;\n\n /* style */\n var __vue_inject_styles__$c = undefined;\n /* scoped */\n var __vue_scope_id__$c = undefined;\n /* module identifier */\n var __vue_module_identifier__$c = undefined;\n /* functional template */\n var __vue_is_functional_template__$c = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__$c = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$6, staticRenderFns: __vue_staticRenderFns__$6 },\n __vue_inject_styles__$c,\n __vue_script__$c,\n __vue_scope_id__$c,\n __vue_is_functional_template__$c,\n __vue_module_identifier__$c,\n false,\n undefined,\n undefined,\n undefined\n );\n\nvar script$d = {\n extends: __vue_component__$3,\n name: QuestionType.Url,\n data: function data() {\n return {\n inputType: 'url'\n }\n },\n methods: {\n fixAnswer: function fixAnswer(answer) {\n if (answer && answer.indexOf('://') === -1) {\n // Insert https protocol to make it easier to enter\n // correct URLs\n answer = 'https://' + answer;\n }\n\n return answer\n },\n\n validate: function validate() {\n if (this.hasValue) {\n try {\n var url = new URL(this.fixAnswer(this.dataValue));\n\n return true\n } catch(_) { \n // Invalid URL\n return false\n }\n }\n\n return !this.question.required\n }\n }\n};\n\n/* script */\nvar __vue_script__$d = script$d;\n\n/* template */\n\n /* style */\n var __vue_inject_styles__$d = undefined;\n /* scoped */\n var __vue_scope_id__$d = undefined;\n /* module identifier */\n var __vue_module_identifier__$d = undefined;\n /* functional template */\n var __vue_is_functional_template__$d = undefined;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__$d = /*#__PURE__*/normalizeComponent(\n {},\n __vue_inject_styles__$d,\n __vue_script__$d,\n __vue_scope_id__$d,\n __vue_is_functional_template__$d,\n __vue_module_identifier__$d,\n false,\n undefined,\n undefined,\n undefined\n );\n\nvar script$e = {\n extends: __vue_component__$3,\n name: QuestionType.Date,\n data: function data() {\n return {\n inputType: 'date'\n }\n }, \n methods: {\n validate: function validate() {\n if (this.question.min && this.dataValue < this.question.min) {\n return false\n }\n\n if (this.question.max && this.dataValue > this.question.max) {\n return false\n }\n\n return !this.question.required || this.hasValue\n }\n }\n};\n\n/* script */\nvar __vue_script__$e = script$e;\n\n/* template */\n\n /* style */\n var __vue_inject_styles__$e = undefined;\n /* scoped */\n var __vue_scope_id__$e = undefined;\n /* module identifier */\n var __vue_module_identifier__$e = undefined;\n /* functional template */\n var __vue_is_functional_template__$e = undefined;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__$e = /*#__PURE__*/normalizeComponent(\n {},\n __vue_inject_styles__$e,\n __vue_script__$e,\n __vue_scope_id__$e,\n __vue_is_functional_template__$e,\n __vue_module_identifier__$e,\n false,\n undefined,\n undefined,\n undefined\n );\n\n//\n\n\nvar script$f = {\n name: 'FlowFormQuestion',\n components: {\n FlowFormDateType: __vue_component__$e,\n FlowFormDropdownType: __vue_component__$1,\n FlowFormEmailType: __vue_component__$4,\n FlowFormLongTextType: __vue_component__$6,\n FlowFormMultipleChoiceType: __vue_component__$7,\n FlowFormMultiplePictureChoiceType: __vue_component__$8,\n FlowFormNumberType: __vue_component__$9,\n FlowFormPasswordType: __vue_component__$a,\n FlowFormPhoneType: __vue_component__$b,\n FlowFormSectionBreakType: __vue_component__$c,\n FlowFormTextType: __vue_component__$3,\n FlowFormUrlType: __vue_component__$d\n },\n props: {\n question: QuestionModel,\n language: LanguageModel,\n value: [String, Array, Boolean, Number, Object],\n active: {\n type: Boolean,\n default: false\n },\n reverse: {\n type: Boolean,\n default: false\n }\n },\n mixins: [\n IsMobile\n ],\n data: function data() {\n return {\n QuestionType: QuestionType,\n dataValue: null,\n debounced: false\n }\n },\n mounted: function mounted() {\n this.focusField();\n this.dataValue = this.question.answer;\n\n this.$refs.qanimate.addEventListener('animationend', this.onAnimationEnd);\n },\n beforeDestroy: function beforeDestroy() {\n this.$refs.qanimate.removeEventListener('animationend', this.onAnimationEnd);\n },\n methods: {\n /**\n * Autofocus the input box of the current question\n */\n focusField: function focusField() {\n var el = this.$refs.questionComponent;\n \n el && el.focus();\n },\n\n onAnimationEnd: function onAnimationEnd() {\n this.focusField();\n },\n\n shouldFocus: function shouldFocus() {\n var q = this.$refs.questionComponent;\n\n return q && q.canReceiveFocus && !q.focused\n },\n\n returnFocus: function returnFocus() {\n var q = this.$refs.questionComponent;\n\n if (this.shouldFocus()) {\n this.focusField();\n }\n },\n\n /**\n * Emits \"answer\" event and calls \"onEnter\" method on Enter press\n */ \n onEnter: function onEnter($event) {\n this.checkAnswer(this.emitAnswer);\n },\n\n onTab: function onTab($event) {\n this.checkAnswer(this.emitAnswerTab);\n },\n\n checkAnswer: function checkAnswer(fn) {\n var q = this.$refs.questionComponent;\n\n if (q.isValid() && this.question.nextStepOnAnswer && !this.question.multiple) {\n this.debounce(function () { return fn(q); }, 350);\n } else {\n fn(q);\n }\n },\n\n emitAnswer: function emitAnswer(q) {\n if (q) {\n if (!q.focused) {\n this.$emit('answer', q);\n }\n\n q.onEnter();\n }\n },\n\n emitAnswerTab: function emitAnswerTab(q) {\n if (q && this.question.type !== QuestionType.Date) {\n this.returnFocus();\n this.$emit('answer', q);\n \n q.onEnter();\n }\n },\n\n debounce: function debounce(fn, delay) {\n var debounceTimer;\n this.debounced = true;\n \n return (function () {\n clearTimeout(debounceTimer);\n debounceTimer = setTimeout(fn, delay);\n })()\n },\n \n /**\n * Check if the \"OK\" button should be shown.\n */\n showOkButton: function showOkButton() {\n var q = this.$refs.questionComponent;\n\n if (this.question.type === QuestionType.SectionBreak) {\n return this.active\n }\n\n if (!this.question.required) {\n return true\n }\n\n if (this.question.allowOther && this.question.other) {\n return true\n }\n\n if (QuestionType.MultipleChoice && !this.question.multiple && this.question.nextStepOnAnswer) {\n return false\n }\n \n // If there is no question referenced, or dataValue is still set to its default (null).\n // This allows a ChoiceOption value of false, but will not allow you to use null as a value.\n if (!q || this.dataValue === null) {\n return false\n }\n\n return q.hasValue && q.isValid()\n },\n\n showSkip: function showSkip() {\n var q = this.$refs.questionComponent;\n\n // We might not have a reference to the question component at first\n // but we know that if we don't, it's definitely empty\n return !this.question.required && (!q || !q.hasValue)\n },\n\n /**\n * Determins if the invalid message should be shown.\n */\n showInvalid: function showInvalid() {\n var q = this.$refs.questionComponent;\n\n if (!q || this.dataValue === null) {\n return false\n }\n\n return q.showInvalid()\n }\n },\n computed: {\n mainClasses: {\n cache: false,\n get: function get() {\n var classes = {\n 'q-is-active': this.active,\n 'q-is-inactive': !this.active,\n 'f-fade-in-down': this.reverse,\n 'f-fade-in-up': !this.reverse,\n 'f-focused': this.$refs.questionComponent && this.$refs.questionComponent.focused,\n 'f-has-value': this.$refs.questionComponent && this.$refs.questionComponent.hasValue\n };\n\n classes['field-' + this.question.type.toLowerCase().substring(8, this.question.type.length - 4)] = true;\n\n return classes\n }\n },\n\n showHelperText: function showHelperText() {\n if (this.question.subtitle) {\n return true\n }\n\n if (this.question.type === QuestionType.LongText || this.question.type === QuestionType.MultipleChoice) {\n return this.question.helpTextShow\n }\n\n return false\n }\n }\n};\n\n/* script */\nvar __vue_script__$f = script$f;\n\n/* template */\nvar __vue_render__$7 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\n \"div\",\n {\n ref: \"qanimate\",\n staticClass: \"vff-animate q-form\",\n class: _vm.mainClasses\n },\n [\n _c(\"div\", { staticClass: \"q-inner\" }, [\n _c(\n \"div\",\n {\n class: {\n \"f-section-wrap\":\n _vm.question.type === _vm.QuestionType.SectionBreak\n }\n },\n [\n _c(\n \"div\",\n {\n class: {\n fh2: _vm.question.type !== _vm.QuestionType.SectionBreak\n }\n },\n [\n _vm.question.tagline\n ? _c(\"span\", { staticClass: \"f-tagline\" }, [\n _vm._v(_vm._s(_vm.question.tagline))\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.question.title\n ? [\n _vm.question.type === _vm.QuestionType.SectionBreak\n ? _c(\"span\", { staticClass: \"fh2\" }, [\n _vm._v(_vm._s(_vm.question.title))\n ])\n : _c(\"span\", { staticClass: \"f-text\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.question.title) +\n \" \\n \"\n ),\n _vm._v(\" \"),\n _vm.question.required\n ? _c(\n \"span\",\n {\n staticClass: \"f-required\",\n attrs: {\n \"aria-label\": _vm.language.ariaRequired,\n role: \"note\"\n }\n },\n [\n _c(\n \"span\",\n { attrs: { \"aria-hidden\": \"true\" } },\n [_vm._v(\"*\")]\n )\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.question.inline\n ? _c(\n \"span\",\n { staticClass: \"f-answer\" },\n [\n _c(_vm.question.type, {\n ref: \"questionComponent\",\n tag: \"component\",\n attrs: {\n question: _vm.question,\n language: _vm.language,\n active: _vm.active\n },\n on: { next: _vm.onEnter },\n model: {\n value: _vm.dataValue,\n callback: function($$v) {\n _vm.dataValue = $$v;\n },\n expression: \"dataValue\"\n }\n })\n ],\n 1\n )\n : _vm._e()\n ])\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _vm.showHelperText\n ? _c(\"span\", { staticClass: \"f-sub\" }, [\n _vm.question.subtitle\n ? _c(\"span\", [_vm._v(_vm._s(_vm.question.subtitle))])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.question.type === _vm.QuestionType.LongText &&\n !_vm.isMobile\n ? _c(\"span\", {\n staticClass: \"f-help\",\n domProps: {\n innerHTML: _vm._s(\n _vm.question.helpText ||\n _vm.language.formatString(\n _vm.language.longTextHelpText\n )\n )\n }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.question.type === _vm.QuestionType.MultipleChoice &&\n _vm.question.multiple\n ? _c(\"span\", { staticClass: \"f-help\" }, [\n _vm._v(\n _vm._s(\n _vm.question.helpText ||\n _vm.language.multipleChoiceHelpText\n )\n )\n ])\n : _vm.question.type === _vm.QuestionType.MultipleChoice\n ? _c(\"span\", { staticClass: \"f-help\" }, [\n _vm._v(\n _vm._s(\n _vm.question.helpText ||\n _vm.language.multipleChoiceHelpTextSingle\n )\n )\n ])\n : _vm._e()\n ])\n : _vm._e(),\n _vm._v(\" \"),\n !_vm.question.inline\n ? _c(\n \"div\",\n { staticClass: \"f-answer f-full-width\" },\n [\n _c(_vm.question.type, {\n ref: \"questionComponent\",\n tag: \"component\",\n attrs: {\n question: _vm.question,\n language: _vm.language,\n active: _vm.active\n },\n on: { next: _vm.onEnter },\n model: {\n value: _vm.dataValue,\n callback: function($$v) {\n _vm.dataValue = $$v;\n },\n expression: \"dataValue\"\n }\n })\n ],\n 1\n )\n : _vm._e()\n ],\n 2\n ),\n _vm._v(\" \"),\n _vm.question.description ||\n _vm.question.descriptionLink.length !== 0\n ? _c(\n \"p\",\n { staticClass: \"f-description\" },\n [\n _vm.question.description\n ? _c(\"span\", [_vm._v(_vm._s(_vm.question.description))])\n : _vm._e(),\n _vm._v(\" \"),\n _vm._l(_vm.question.descriptionLink, function(link, index) {\n return _c(\n \"a\",\n {\n key: \"m\" + index,\n staticClass: \"f-link\",\n attrs: { href: link.url, target: link.target }\n },\n [_vm._v(_vm._s(link.text || link.url))]\n )\n })\n ],\n 2\n )\n : _vm._e()\n ]\n ),\n _vm._v(\" \"),\n _vm.showOkButton()\n ? _c(\"div\", { staticClass: \"vff-animate f-fade-in f-enter\" }, [\n _c(\n \"button\",\n {\n ref: \"button\",\n staticClass: \"o-btn-action\",\n attrs: {\n type: \"button\",\n href: \"#\",\n \"aria-label\": _vm.language.ariaOk\n },\n on: {\n click: function($event) {\n $event.preventDefault();\n return _vm.onEnter($event)\n }\n }\n },\n [\n _vm.question.type === _vm.QuestionType.SectionBreak\n ? _c(\"span\", [_vm._v(_vm._s(_vm.language.continue))])\n : _vm.showSkip()\n ? _c(\"span\", [_vm._v(_vm._s(_vm.language.skip))])\n : _c(\"span\", [_vm._v(_vm._s(_vm.language.ok))])\n ]\n ),\n _vm._v(\" \"),\n _vm.question.type !== _vm.QuestionType.LongText || !_vm.isMobile\n ? _c(\"a\", {\n staticClass: \"f-enter-desc\",\n attrs: { href: \"#\" },\n domProps: {\n innerHTML: _vm._s(\n _vm.language.formatString(_vm.language.pressEnter)\n )\n },\n on: {\n click: function($event) {\n $event.preventDefault();\n return _vm.onEnter($event)\n }\n }\n })\n : _vm._e()\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.showInvalid()\n ? _c(\n \"div\",\n {\n staticClass: \"f-invalid\",\n attrs: { role: \"alert\", \"aria-live\": \"assertive\" }\n },\n [_vm._v(_vm._s(_vm.language.invalidPrompt))]\n )\n : _vm._e()\n ])\n ]\n )\n};\nvar __vue_staticRenderFns__$7 = [];\n__vue_render__$7._withStripped = true;\n\n /* style */\n var __vue_inject_styles__$f = undefined;\n /* scoped */\n var __vue_scope_id__$f = undefined;\n /* module identifier */\n var __vue_module_identifier__$f = undefined;\n /* functional template */\n var __vue_is_functional_template__$f = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__$f = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$7, staticRenderFns: __vue_staticRenderFns__$7 },\n __vue_inject_styles__$f,\n __vue_script__$f,\n __vue_scope_id__$f,\n __vue_is_functional_template__$f,\n __vue_module_identifier__$f,\n false,\n undefined,\n undefined,\n undefined\n );\n\n//\n\nvar script$g = {\n name: 'FlowForm',\n components: {\n FlowFormQuestion: __vue_component__$f\n },\n \n props: {\n questions: {\n type: Array,\n validator: function (value) { return value.every(function (q) { return q instanceof QuestionModel; }); }\n }, \n language: {\n type: LanguageModel,\n default: function () { return new LanguageModel(); }\n },\n progressbar: {\n type: Boolean, \n default: true\n },\n standalone: {\n type: Boolean, \n default: true\n },\n navigation: {\n type: Boolean, \n default: true\n },\n timer: {\n type: Boolean,\n default: false\n },\n timerStartStep: [String, Number],\n timerStopStep: [String, Number]\n },\n\n mixins: [\n IsMobile ],\n\n data: function data() {\n return {\n completed: false,\n submitted: false,\n activeQuestionIndex: 0,\n questionList: [],\n questionListActivePath: [],\n reverse: false,\n timerOn: false,\n timerInterval: null,\n time: 0\n }\n },\n\n mounted: function mounted() {\n document.addEventListener('keydown', this.onKeyDownListener);\n document.addEventListener('keyup', this.onKeyUpListener, true);\n window.addEventListener('beforeunload', this.onBeforeUnload);\n\n this.setQuestions();\n this.checkTimer();\n },\n\n beforeDestroy: function beforeDestroy() {\n document.removeEventListener('keydown', this.onKeyDownListener);\n document.removeEventListener('keyup', this.onKeyUpListener, true);\n window.removeEventListener('beforeunload', this.onBeforeUnload);\n \n this.stopTimer();\n },\n\n computed: {\n numActiveQuestions: function numActiveQuestions() {\n return this.questionListActivePath.length\n },\n\n activeQuestion: function activeQuestion() {\n return this.questionListActivePath[this.activeQuestionIndex]\n },\n\n activeQuestionId: function activeQuestionId() {\n var question = this.questionModels[this.activeQuestionIndex];\n\n if (this.isOnLastStep) {\n return '_submit'\n }\n\n if (question && question.id) {\n return question.id\n }\n\n return null\n },\n\n numCompletedQuestions: function numCompletedQuestions() {\n var num = 0;\n\n this.questionListActivePath.forEach(function (question) {\n if (question.answered) {\n ++num;\n }\n });\n\n return num\n },\n\n percentCompleted: function percentCompleted() {\n if (!this.numActiveQuestions) {\n return 0\n }\n\n return Math.floor((this.numCompletedQuestions / this.numActiveQuestions) * 100)\n },\n\n isOnLastStep: function isOnLastStep() {\n return this.numActiveQuestions > 0 && this.activeQuestionIndex === this.questionListActivePath.length\n }, \n\n isOnTimerStartStep: function isOnTimerStartStep() {\n if (this.activeQuestionId === this.timerStartStep) {\n return true\n }\n\n if (!this.timerOn && !this.timerStartStep && this.activeQuestionIndex === 0) {\n return true\n }\n\n return false\n },\n\n isOnTimerStopStep: function isOnTimerStopStep() {\n if (this.submitted) {\n return true\n }\n \n if (this.activeQuestionId === this.timerStopStep) {\n return true \n }\n\n return false\n },\n\n questionModels: {\n cache: false,\n\n get: function get() {\n if (this.questions && this.questions.length) {\n return this.questions\n }\n\n var questions = [];\n\n if (!this.questions) {\n var classMap = {\n 'options': ChoiceOption,\n 'descriptionLink': LinkOption\n };\n\n this\n .$slots\n .default\n .filter(function (q) { return q.tag && q.tag.indexOf('Question') !== -1; })\n .forEach(function (q) {\n var attrs = q.data.attrs;\n var model = new QuestionModel();\n\n if (q.componentInstance.question !== null) {\n model = q.componentInstance.question;\n } \n\n if (q.data.model) {\n model.answer = q.data.model.value;\n }\n\n Object.keys(model).forEach(function (key) {\n if (attrs[key] !== undefined) {\n if (typeof model[key] === 'boolean') {\n model[key] = attrs[key] !== false;\n } else if (key in classMap) {\n var\n classReference = classMap[key],\n options = [];\n\n attrs[key].forEach(function (option) {\n var instance = new classReference();\n\n Object.keys(instance).forEach(function (instanceKey) {\n if (option[instanceKey] !== undefined) {\n instance[instanceKey] = option[instanceKey];\n }\n });\n\n options.push(instance);\n });\n\n model[key] = options;\n } else {\n switch(key) {\n case 'type':\n if (Object.values(QuestionType).indexOf(attrs[key]) !== -1) {\n model[key] = attrs[key];\n } else {\n for (var questionTypeKey in QuestionType) {\n if (questionTypeKey.toLowerCase() === attrs[key].toLowerCase()) {\n model[key] = QuestionType[questionTypeKey];\n break\n }\n }\n }\n break\n\n default:\n model[key] = attrs[key];\n break\n }\n }\n }\n });\n\n q.componentInstance.question = model;\n\n model.resetOptions();\n\n questions.push(model);\n });\n }\n\n return questions\n }\n }\n },\n\n methods: {\n /**\n * Returns currently active question component (if any).\n */\n activeQuestionComponent: function activeQuestionComponent() {\n if (this.$refs.questions) {\n return this.$refs.questions[this.activeQuestionIndex]\n }\n\n return null\n },\n\n setQuestions: function setQuestions() {\n this.setQuestionListActivePath();\n this.setQuestionList();\n },\n\n /**\n * This method goes through all questions and sets the ones\n * that are in the current path (taking note of logic jumps)\n */\n setQuestionListActivePath: function setQuestionListActivePath() {\n var questions = [];\n\n if (!this.questionModels.length) {\n return\n }\n\n var\n index = 0,\n serialIndex = 0,\n nextId;\n\n do {\n var question = this.questionModels[index];\n\n question.setIndex(serialIndex);\n question.language = this.language;\n\n questions.push(question);\n\n if (!question.jump) {\n ++index;\n } else if (question.answered) {\n nextId = question.getJumpId();\n if (nextId) {\n if (nextId === '_submit') {\n index = this.questionModels.length;\n } else {\n for (var i = 0; i < this.questionModels.length; i++) {\n if (this.questionModels[i].id === nextId) {\n index = i;\n break\n }\n }\n }\n } else {\n ++index;\n }\n } else {\n index = this.questionModels.length;\n }\n\n ++serialIndex;\n } while (index < this.questionModels.length)\n\n this.questionListActivePath = questions;\n },\n\n /**\n * Sets the question list array\n * (all questions up to, and including, the current one)\n */\n setQuestionList: function setQuestionList() {\n var questions = [];\n\n for (var index = 0; index < this.questionListActivePath.length; index++) {\n var question = this.questionListActivePath[index];\n\n questions.push(question);\n\n if (!question.answered) {\n if (this.completed) {\n // The \"completed\" status changed - user probably changed an\n // already entered answer.\n this.completed = false;\n }\n break\n }\n }\n\n this.questionList = questions;\n },\n\n /**\n * If we have any answered questions, notify user before leaving\n * the page.\n */\n onBeforeUnload: function onBeforeUnload(event) {\n if (this.activeQuestionIndex > 0 && !this.submitted) {\n event.preventDefault();\n event.returnValue = '';\n }\n },\n\n /**\n * Global key listeners, listen for Enter or Tab key events.\n */\n onKeyDownListener: function onKeyDownListener(e) {\n if (e.key !== 'Tab' || this.submitted) {\n return\n }\n\n if (e.shiftKey) {\n e.stopPropagation();\n e.preventDefault();\n\n if (this.navigation) {\n this.goToPreviousQuestion();\n }\n } else {\n var q = this.activeQuestionComponent();\n\n if (q.shouldFocus()) {\n e.preventDefault();\n\n q.focusField();\n } else {\n e.stopPropagation();\n\n this.emitTab();\n this.reverse = false;\n }\n }\n }, \n\n onKeyUpListener: function onKeyUpListener(e) {\n if (e.shiftKey || ['Tab', 'Enter'].indexOf(e.key) === -1 || this.submitted) {\n return\n }\n\n var q = this.activeQuestionComponent();\n\n if (e.key === 'Tab' && q.shouldFocus()) {\n q.focusField();\n } else {\n if (e.key === 'Enter') {\n this.emitEnter();\n } \n\n e.stopPropagation();\n this.reverse = false;\n }\n },\n\n emitEnter: function emitEnter() {\n var q = this.activeQuestionComponent();\n\n if (q) {\n // Send enter event to the current question component\n q.onEnter();\n } else if (this.completed && this.isOnLastStep) {\n // We're finished - submit form\n this.submit();\n }\n },\n\n emitTab: function emitTab() {\n var q = this.activeQuestionComponent();\n\n if (q) {\n // Send tab event to the current question component\n q.onTab();\n } else {\n this.emitEnter();\n }\n },\n\n submit: function submit() {\n this.emitSubmit();\n this.submitted = true;\n },\n\n emitComplete: function emitComplete() {\n this.$emit('complete', this.completed, this.questionList);\n },\n\n emitSubmit: function emitSubmit() {\n this.$emit('submit', this.questionList);\n },\n\n /**\n * Checks if we have another question and if we\n * can jump to it.\n */\n isNextQuestionAvailable: function isNextQuestionAvailable() {\n if (this.submitted) {\n return false\n }\n\n var q = this.activeQuestion;\n if (q && !q.required) {\n return true\n }\n\n if (this.completed && !this.isOnLastStep) {\n return true\n }\n \n return this.activeQuestionIndex < this.questionList.length - 1\n },\n\n /**\n * Triggered by the \"answer\" event in the Question component\n */\n onQuestionAnswered: function onQuestionAnswered(question) {\n var this$1 = this;\n\n if (question.isValid()) {\n this.$emit('answer', question.question);\n\n if (this.activeQuestionIndex < this.questionListActivePath.length) {\n ++this.activeQuestionIndex;\n }\n \n this.$nextTick(function () {\n this$1.setQuestions();\n this$1.checkTimer();\n // Nested $nextTick so we're 100% sure that setQuestions\n // actually updated the question array\n this$1.$nextTick(function () {\n var q = this$1.activeQuestionComponent();\n\n if (q) {\n q.focusField();\n this$1.activeQuestionIndex = q.question.index;\n } else if (this$1.isOnLastStep) {\n // No more questions left - set \"completed\" to true\n this$1.completed = true;\n this$1.activeQuestionIndex = this$1.questionListActivePath.length;\n \n this$1.$refs.button && this$1.$refs.button.focus();\n }\n\n this$1.$emit('step', this$1.activeQuestionId, this$1.activeQuestion);\n });\n });\n } else if (this.completed) {\n this.completed = false;\n }\n },\n\n /**\n * Jumps to previous question.\n */\n goToPreviousQuestion: function goToPreviousQuestion() {\n this.blurFocus();\n \n if (this.activeQuestionIndex > 0 && !this.submitted) {\n if (this.isOnTimerStopStep) {\n this.startTimer();\n }\n\n --this.activeQuestionIndex;\n\n this.reverse = true;\n\n this.checkTimer();\n }\n },\n\n /**\n * Jumps to next question.\n */\n goToNextQuestion: function goToNextQuestion() {\n this.blurFocus();\n if (this.isNextQuestionAvailable()) {\n this.emitEnter();\n }\n\n this.reverse = false;\n },\n\n /**\n * Removes focus from the currently focused DOM element.\n */\n blurFocus: function blurFocus() {\n document.activeElement && document.activeElement.blur && document.activeElement.blur();\n },\n\n checkTimer: function checkTimer() {\n if (this.timer) {\n if (this.isOnTimerStartStep) {\n this.startTimer();\n } else if (this.isOnTimerStopStep) {\n this.stopTimer();\n }\n }\n },\n\n startTimer: function startTimer() {\n if (this.timer && !this.timerOn) {\n this.timerInterval = setInterval(this.incrementTime, 1000);\n this.timerOn = true;\n }\n },\n\n stopTimer: function stopTimer() {\n if (this.timerOn) {\n clearInterval(this.timerInterval);\n }\n\n this.timerOn = false;\n },\n\n incrementTime: function incrementTime() {\n ++this.time;\n \n this.$emit('timer', this.time, this.formatTime(this.time));\n },\n\n formatTime: function formatTime(seconds) {\n var\n startIndex = 14,\n length = 5;\n \n if (seconds >= 60 * 60) {\n startIndex = 11;\n length = 8;\n }\n\n return new Date(1000 * seconds).toISOString().substr(startIndex, length)\n }\n },\n\n watch: {\n completed: function completed() {\n this.emitComplete();\n },\n \n submitted: function submitted() {\n this.stopTimer();\n }\n }\n};\n\n/* script */\nvar __vue_script__$g = script$g;\n/* template */\nvar __vue_render__$8 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\n \"div\",\n {\n staticClass: \"vff\",\n class: {\n \"vff-not-standalone\": !_vm.standalone,\n \"vff-is-mobile\": _vm.isMobile,\n \"vff-is-ios\": _vm.isIos\n }\n },\n [\n _c(\"div\", { staticClass: \"f-container\" }, [\n _c(\n \"div\",\n { staticClass: \"f-form-wrap\" },\n [\n _vm._l(_vm.questionList, function(q, index) {\n return _c(\"flow-form-question\", {\n key: \"q\" + index,\n ref: \"questions\",\n refInFor: true,\n attrs: {\n question: q,\n language: _vm.language,\n active: q.index === _vm.activeQuestionIndex,\n reverse: _vm.reverse\n },\n on: { answer: _vm.onQuestionAnswered },\n model: {\n value: q.answer,\n callback: function($$v) {\n _vm.$set(q, \"answer\", $$v);\n },\n expression: \"q.answer\"\n }\n })\n }),\n _vm._v(\" \"),\n _vm._t(\"default\"),\n _vm._v(\" \"),\n _vm.isOnLastStep\n ? _c(\n \"div\",\n { staticClass: \"vff-animate f-fade-in-up field-submittype\" },\n [\n _vm._t(\"complete\", [\n _c(\"div\", { staticClass: \"f-section-wrap\" }, [\n _c(\"p\", [\n _c(\"span\", { staticClass: \"fh2\" }, [\n _vm._v(_vm._s(_vm.language.thankYouText))\n ])\n ])\n ])\n ]),\n _vm._v(\" \"),\n _vm._t(\"completeButton\", [\n !_vm.submitted\n ? _c(\n \"button\",\n {\n ref: \"button\",\n staticClass: \"o-btn-action\",\n attrs: {\n type: \"button\",\n href: \"#\",\n \"aria-label\": _vm.language.ariaSubmitText\n },\n on: {\n click: function($event) {\n $event.preventDefault();\n return _vm.submit()\n }\n }\n },\n [\n _c(\"span\", [\n _vm._v(_vm._s(_vm.language.submitText))\n ])\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n !_vm.submitted\n ? _c(\"a\", {\n staticClass: \"f-enter-desc\",\n attrs: { href: \"#\" },\n domProps: {\n innerHTML: _vm._s(\n _vm.language.formatString(\n _vm.language.pressEnter\n )\n )\n },\n on: {\n click: function($event) {\n $event.preventDefault();\n return _vm.submit()\n }\n }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.submitted\n ? _c(\"p\", { staticClass: \"text-success\" }, [\n _vm._v(_vm._s(_vm.language.successText))\n ])\n : _vm._e()\n ])\n ],\n 2\n )\n : _vm._e()\n ],\n 2\n )\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"vff-footer\" }, [\n _c(\"div\", { staticClass: \"footer-inner-wrap\" }, [\n _vm.progressbar\n ? _c(\n \"div\",\n {\n staticClass: \"f-progress\",\n class: {\n \"not-started\": _vm.percentCompleted === 0,\n completed: _vm.percentCompleted === 100\n }\n },\n [\n _c(\"div\", { staticClass: \"f-progress-bar\" }, [\n _c(\"div\", {\n staticClass: \"f-progress-bar-inner\",\n style: \"width: \" + _vm.percentCompleted + \"%;\"\n })\n ]),\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.language.percentCompleted.replace(\n \":percent\",\n _vm.percentCompleted\n )\n ) +\n \"\\n \"\n )\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.navigation\n ? _c(\"div\", { staticClass: \"f-nav\" }, [\n _c(\n \"a\",\n {\n staticClass: \"f-prev\",\n class: {\n \"f-disabled\":\n _vm.activeQuestionIndex === 0 || _vm.submitted\n },\n attrs: {\n href: \"#\",\n role: \"button\",\n \"aria-label\": _vm.language.ariaPrev\n },\n on: {\n click: function($event) {\n $event.preventDefault();\n return _vm.goToPreviousQuestion()\n }\n }\n },\n [\n _c(\n \"svg\",\n {\n attrs: {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n width: \"42.333px\",\n height: \"28.334px\",\n viewBox: \"78.833 5.5 42.333 28.334\",\n \"aria-hidden\": \"true\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M82.039,31.971L100,11.442l17.959,20.529L120,30.187L101.02,8.492c-0.258-0.295-0.629-0.463-1.02-0.463c-0.39,0-0.764,0.168-1.02,0.463L80,30.187L82.039,31.971z\"\n }\n })\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"span\",\n {\n staticClass: \"f-nav-text\",\n attrs: { \"aria-hidden\": \"true\" }\n },\n [_vm._v(_vm._s(_vm.language.prev))]\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"a\",\n {\n staticClass: \"f-next\",\n class: { \"f-disabled\": !_vm.isNextQuestionAvailable() },\n attrs: {\n href: \"#\",\n role: \"button\",\n \"aria-label\": _vm.language.ariaNext\n },\n on: {\n click: function($event) {\n $event.preventDefault();\n return _vm.goToNextQuestion()\n }\n }\n },\n [\n _c(\n \"svg\",\n {\n attrs: {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n width: \"42.333px\",\n height: \"28.334px\",\n viewBox: \"78.833 5.5 42.333 28.334\",\n \"aria-hidden\": \"true\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M117.963,8.031l-17.961,20.529L82.042,8.031l-2.041,1.784l18.98,21.695c0.258,0.295,0.629,0.463,1.02,0.463c0.39,0,0.764-0.168,1.02-0.463l18.98-21.695L117.963,8.031z\"\n }\n })\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"span\",\n {\n staticClass: \"f-nav-text\",\n attrs: { \"aria-hidden\": \"true\" }\n },\n [_vm._v(_vm._s(_vm.language.next))]\n )\n ]\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.timer\n ? _c(\"div\", { staticClass: \"f-timer\" }, [\n _c(\"span\", [_vm._v(_vm._s(_vm.formatTime(_vm.time)))])\n ])\n : _vm._e()\n ])\n ])\n ]\n )\n};\nvar __vue_staticRenderFns__$8 = [];\n__vue_render__$8._withStripped = true;\n\n /* style */\n var __vue_inject_styles__$g = undefined;\n /* scoped */\n var __vue_scope_id__$g = undefined;\n /* module identifier */\n var __vue_module_identifier__$g = undefined;\n /* functional template */\n var __vue_is_functional_template__$g = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__$g = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$8, staticRenderFns: __vue_staticRenderFns__$8 },\n __vue_inject_styles__$g,\n __vue_script__$g,\n __vue_scope_id__$g,\n __vue_is_functional_template__$g,\n __vue_module_identifier__$g,\n false,\n undefined,\n undefined,\n undefined\n );\n\nvar script$h = {\n name: 'Question',\n \n data: function data() {\n return {\n question: null\n }\n },\n\n render: function render() {\n return null\n },\n\n watch: {\n 'question.answer': function question_answer(val) {\n this.$emit('input', val);\n }\n }\n};\n\n/* script */\nvar __vue_script__$h = script$h;\n\n/* template */\n\n /* style */\n var __vue_inject_styles__$h = undefined;\n /* scoped */\n var __vue_scope_id__$h = undefined;\n /* module identifier */\n var __vue_module_identifier__$h = undefined;\n /* functional template */\n var __vue_is_functional_template__$h = undefined;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__$h = /*#__PURE__*/normalizeComponent(\n {},\n __vue_inject_styles__$h,\n __vue_script__$h,\n __vue_scope_id__$h,\n __vue_is_functional_template__$h,\n __vue_module_identifier__$h,\n false,\n undefined,\n undefined,\n undefined\n );\n\n/**\n * Code refactored from Mozilla Developer Network:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n */\n\nfunction assign(target, firstSource) {\n var arguments$1 = arguments;\n\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert first argument to object');\n }\n\n var to = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var nextSource = arguments$1[i];\n if (nextSource === undefined || nextSource === null) {\n continue;\n }\n\n var keysArray = Object.keys(Object(nextSource));\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n return to;\n}\n\nfunction polyfill() {\n if (!Object.assign) {\n Object.defineProperty(Object, 'assign', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: assign\n });\n }\n}\n\nvar es6ObjectAssign = {\n assign: assign,\n polyfill: polyfill\n};\n\nes6ObjectAssign.polyfill();\n\n// Import vue component\r\n\r\n// Declare install function executed by Vue.use()\r\nfunction install(Vue) {\r\n if (install.installed) { return }\r\n install.installed = true;\r\n Vue.component('FlowForm', __vue_component__$g);\r\n}\r\n\r\n// Create module definition for Vue.use()\r\nvar plugin = {\r\n install: install\r\n};\r\n\r\n// Auto-install when vue is found (eg. in browser via