{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./src/components/applications/appointment-booking/AppointmentBooking.vue?2172","webpack:///./src/components/applications/appointment-booking/AppointmentBooking.vue?7bc3","webpack:///./src/chatbot-library/ChatCalendar.js","webpack:///./src/chatbot-library/ChatCheckboxes.js","webpack:///./src/chatbot-library/ChatRadios.js","webpack:///./src/chatbot-flows/appointment-booking.flow.js","webpack:///src/components/applications/appointment-booking/AppointmentBooking.vue","webpack:///./src/components/applications/appointment-booking/AppointmentBooking.vue?1438","webpack:///./src/components/applications/appointment-booking/AppointmentBooking.vue","webpack:///./src/chatbot-library/InputValidation.js","webpack:///./src/chatbot-library/ChatInput.js"],"names":["$","IndexedObject","toIndexedObject","arrayMethodIsStrict","nativeJoin","join","ES3_STRINGS","Object","STRICT_METHOD","target","proto","forced","separator","call","this","undefined","render","_vm","_h","$createElement","_c","_self","staticClass","key","attrs","appointmentBookingFlow","on","staticRenderFns","ChatCalendar","value","moment","format","ChatAction","ChatCheckboxes","options","data","hasGroups","Array","prototype","concat","apply","map","optionGroup","filteredOptions","filter","option","includes","id","length","label","ChatRadios","find","chat","ChatText","content","next","callback","store","commit","Date","delay","dispatch","then","slots","keys","Error","catch","getters","actions","dates","selectedDate","state","appointmentBooking","flow","times","elem","date","ChatButton","reasons","group","name","action","checked","isAtLeastOneCheckboxeRequired","ChatInput","placeholder","mask","InputValidation","plate","validator","transform","replace","isEditable","email","phoneNumber","entry","components","Chatbot","Footer","mounted","$store","$route","params","appCode","component","tokens","pattern","String","trim","v","toLocaleUpperCase","groups","match","test"],"mappings":"8IACA,IAAIA,EAAI,EAAQ,QACZC,EAAgB,EAAQ,QACxBC,EAAkB,EAAQ,QAC1BC,EAAsB,EAAQ,QAE9BC,EAAa,GAAGC,KAEhBC,EAAcL,GAAiBM,OAC/BC,EAAgBL,EAAoB,OAAQ,KAIhDH,EAAE,CAAES,OAAQ,QAASC,OAAO,EAAMC,OAAQL,IAAgBE,GAAiB,CACzEH,KAAM,SAAcO,GAClB,OAAOR,EAAWS,KAAKX,EAAgBY,WAAqBC,IAAdH,EAA0B,IAAMA,O,kCCflF,yBAAwqB,EAAG,G,yCCA3qB,IAAII,EAAS,WAAa,IAAIC,EAAIH,KAASI,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,UAAU,CAACE,YAAY,uBAAuB,CAACF,EAAG,UAAU,CAACG,IAAI,UAAUD,YAAY,UAAUE,MAAM,CAAC,KAAOP,EAAIQ,wBAAwBC,GAAG,CAAC,SAAW,WAAc,OAAO,SAAWN,EAAG,WAAW,IACvSO,EAAkB,G,iJCEhBC,E,6LAKeC,GACjB,OAAOC,IAAOD,GAAOE,OAAO,kB,2BAJ5B,MAAO,e,GAFgBC,QAUZJ,ICXTK,G,+OAKeJ,GACjB,IAAIK,EAAUpB,KAAKqB,KAAKD,QACpBpB,KAAKqB,KAAKC,YACZF,EAAUG,MAAMC,UAAUC,OAAOC,MAAM,GAAIN,EAAQO,KAAI,SAAAC,GAAW,OAAIA,EAAYR,aAEpF,IAAIS,EAAkBT,EAAQU,QAAO,SAAAC,GAAM,OAAIhB,EAAMiB,SAASD,EAAOE,OACrE,OAAOJ,EAAgBK,OAASL,EAAgBF,KAAI,SAAAI,GAAM,OAAIA,EAAOI,SAAO5C,KAAK,MAAQ,K,2BATzF,MAAO,iB,GAFkB2B,SAedC,I,YCfTiB,G,uMAKerB,GACjB,IAAIgB,EAAS/B,KAAKqB,KAAKD,QAAQiB,MAAK,SAAAN,GAAM,OAAIA,EAAOE,KAAOlB,KAC5D,OAAOgB,EAASA,EAAOI,MAAQpB,I,2BAL/B,MAAO,a,GAFcG,SAWVkB,I,oCCHXE,EAAO,CACT,IAAIC,OAAS,UACX,CACEC,QAAS,+FACTC,KAAM,YACNC,SAAU,kBAAMC,OAAMC,OAAO,uCAAwC,IAAIC,QAE3E,CAAEC,MAAO,IAGX,IAAIP,OAAS,aAAa,WAExB,OAAOI,OACJI,SAAS,8CACTC,MAAK,SAAAC,GACJ,IAAKA,IAAUxD,OAAOyD,KAAKD,GAAOf,OAChC,MAAMiB,MAGR,MAAO,CACLX,QAAS,wDACTC,KAAM,oBAGTW,OAAM,WACL,MAAO,CAAEZ,QAAS,kDAIxB,IAAID,OAAS,iBAAiB,WAE5B,MAAO,CACLC,QAAS,0FAAF,OAA4FxB,IAAO2B,OAAMU,QAAQ,kDAAkDpC,OAAO,qBAA1K,KACPqC,QAAS,CACP,IAAIxC,EACF,CACEqB,MAAO,YACPoB,MAAOZ,OAAMU,QAAQ,8CAEvB,CACEZ,KAAM,iBACNC,SAAU,SAAA3B,GAAK,OAAI4B,OAAMC,OAAO,0CAA2C7B,WAOrF,IAAIwB,OAAS,kBAAkB,WAE7B,IAAIiB,EAAeb,OAAMc,MAAMC,mBAAmBC,KAAKH,aACnDI,EAAQjB,OAAMU,QAAQ,6CAA6CG,GAQvE,OAPAI,EAAQA,EAAMjC,KAAI,SAAAkC,GAChB,IAAIC,EAAO9C,IAAO6C,EAAM,SACxB,MAAO,CACL5B,GAAI4B,EACJ1B,MAAO2B,EAAK7C,OAAO,eAGhB,CACLuB,QAAS,mBACTc,QAAS,CACP,IAAIlB,EACF,CACED,MAAO,YACPf,QAASwC,GAEX,CACEnB,KAAM,aACNC,SAAU,SAAA3B,GAAK,OAAI4B,OAAMC,OAAO,0CAA2C7B,MAG/E,IAAIgD,OACF,CAAE5B,MAAO,0BACT,CAAEM,KAAM,uBAMhB,IAAIF,OAAS,aACX,CACEC,QAAS,eACTC,KAAM,sBAIV,IAAIF,OAAS,qBAAqB,WAEhC,OAAOI,OACJI,SAAS,gDACTC,MAAK,SAAAgB,GAeJ,OAdAA,EAAUA,EAAQrC,KAAI,SAAAsC,GACpB,MAAO,CACL9B,MAAO8B,EAAMC,KACbjC,GAAIgC,EAAMhC,GACVb,QAAS6C,EAAMX,QAAQ3B,KAAI,SAAAwC,GACzB,MAAO,CACLhC,MAAOgC,EAAOD,KACdjC,GAAIkC,EAAOlC,GACXmC,SAAS,UAMV,CACL5B,QAAS,oDACTc,QAAS,CACP,IAAInC,EACF,CACEgB,MAAO,UACPf,QAAS4C,EACT1C,WAAW,EACX+C,+BAA+B,GAEjC,CACE5B,KAAM,kBACNC,SAAU,SAAA3B,GAAK,OAAI4B,OAAMC,OAAO,6CAA8C7B,WAMvFqC,OAAM,kBAGX,IAAIb,OAAS,kBACX,CACEC,QAAS,2FACTC,KAAM,cAIV,IAAIF,OAAS,YACX,CACEC,QAAS,mDACTc,QAAS,CACP,IAAIgB,OACF,CACEnC,MAAO,UACPoC,YAAa,iCACbC,KAAMC,OAAgBC,MAAMF,KAC5BG,UAAWF,OAAgBC,MAAMC,UACjCC,UAAWH,OAAgBC,MAAME,WAEnC,CACEnC,KAAM,gBACNC,SAAU,SAAA3B,GAAK,OAAI4B,OAAMC,OAAO,yCAA0C7B,EAAM8D,QAAQ,MAAO,MAC/FC,YAAY,OAOtB,IAAIvC,OAAS,gBACX,CACEC,QAAS,4BACTc,QAAS,CACP,IAAIgB,OACF,CACEnC,MAAO,YACPoC,YAAa,eACbC,KAAMC,OAAgBP,KAAKM,KAC3BG,UAAWF,OAAgBP,KAAKS,WAElC,CACElC,KAAM,eACNC,SAAU,SAAA3B,GAAK,OAAI4B,OAAMC,OAAO,uCAAwC7B,IACxE+D,YAAY,OAOtB,IAAIvC,OAAS,eACX,CACEC,QAAS,yBACTc,QAAS,CACP,IAAIgB,OACF,CACEnC,MAAO,YACPoC,YAAa,YACbC,KAAMC,OAAgBP,KAAKM,KAC3BG,UAAWF,OAAgBP,KAAKS,WAElC,CACElC,KAAM,YACNC,SAAU,SAAA3B,GAAK,OAAI4B,OAAMC,OAAO,sCAAuC7B,IACvE+D,YAAY,OAOtB,IAAIvC,OAAS,YACX,CACEC,QAAS,kCACTc,QAAS,CACP,IAAIgB,OACF,CACEnC,MAAO,YACPoC,YAAa,qBACbC,KAAMC,OAAgBM,MAAMP,KAC5BG,UAAWF,OAAgBM,MAAMJ,WAEnC,CACElC,KAAM,mBACNC,SAAU,SAAA3B,GAAK,OAAI4B,OAAMC,OAAO,mCAAoC7B,IACpE+D,YAAY,OAOtB,IAAIvC,OAAS,mBACX,CACEC,QAAS,uCACTc,QAAS,CACP,IAAIgB,OACF,CACEnC,MAAO,YACPoC,YAAa,eACbC,KAAMC,OAAgBO,YAAYR,KAClCG,UAAWF,OAAgBO,YAAYL,WAEzC,CACElC,KAAM,YACNC,SAAU,SAAA3B,GAAK,OAAI4B,OAAMC,OAAO,yCAA0C7B,EAAM8D,QAAQ,MAAO,MAC/FC,YAAY,OAOtB,IAAIvC,OAAS,aAAa,WACxB,OAAOI,OACJI,SAAS,4CACTC,MAAK,WACJ,MAAO,CACLR,QAAS,uCACTC,KAAM,0BAGTW,OAAM,WACL,MAAO,CAAEZ,QAAS,sDAIxB,IAAID,OAAS,sBACX,CACEC,QAAS,uEACTC,KAAM,YAIV,IAAIF,OAAS,UACX,CAAEC,QAAS,iBAIA,GACbyC,MAAO,UACP3C,Q,wBCrQF,GACE4B,KAAM,qBACNgB,WAAY,CACVC,QAAJ,OACIC,OAAJ,QAEE/D,KANF,WAOI,MAAO,CAAX,2BAEEgE,QATF,WAUIrF,KAAKsF,OAAO1C,OAAO,sCACnB5C,KAAKsF,OAAO1C,OAAO,yCAA0C5C,KAAKuF,OAAOC,OAAOC,WC5BsS,I,wBCQtXC,EAAY,eACd,EACAxF,EACAW,GACA,EACA,KACA,WACA,MAIa,aAAA6E,E,iGCnBXxB,EAAO,CACTM,KAAM,CACJA,KAAM,uBACNmB,OAAQ,CAAE,IAAK,CAAEC,QAAS,kBAG5BjB,UAAW,SAAA5D,GAAK,OAAIA,GAAS8E,OAAO9E,GAAO+E,OAAO5D,SAGhDwC,EAAQ,CACVF,KAAM,CACJA,KAAM,YACNmB,OAAQ,CACN,IAAK,CACHC,QAAS,WACThB,UAAW,SAAAmB,GAAC,OAAIA,EAAEC,wBAKxBpB,UAAW,SAAA7D,GACTA,EAAQA,EAAM8D,QAAQ,MAAO,IAC7B,IAAIoB,EAASlF,EAAMmF,MAAM,cAAgB,GACzC,OAAOD,EAAO/D,OAAS+D,EAAO1G,KAAK,KAAOwB,GAG5C4D,UAAW,SAAA5D,GAAK,MAAI,iCAAiCoF,KAAKpF,IAAU,qCAAqCoF,KAAKpF,KAG5GgE,EAAQ,CACVP,KAAM,CACJA,KAAM,mEACNmB,OAAQ,CAAE,IAAK,CAAEC,QAAS,mBAI5BjB,UAAW,SAAA5D,GAAK,MAAI,yJAAyJoF,KAAKpF,KAGhLiE,EAAc,CAChBR,KAAM,iBAENG,UAAW,SAAA5D,GAAK,MAAI,cAAcoF,MAAMpF,GAAS,IAAI8D,QAAQ,MAAO,OAGvD,QACbX,OACAQ,QACAK,QACAC,gB,kGC/CIV,E,6LAKevD,GACjB,OAAOA,I,2BAJP,MAAO,Y,GAFaG,QAUToD","file":"js/appointment-booking.09a65e5a.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppointmentBooking.vue?vue&type=style&index=0&id=c776b4c8&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppointmentBooking.vue?vue&type=style&index=0&id=c776b4c8&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"appointment-booking\"},[_c('Chatbot',{key:\"chatbot\",staticClass:\"chatbot\",attrs:{\"flow\":_vm.appointmentBookingFlow},on:{\"finished\":function () { return null; }}}),_c('Footer')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import ChatAction from \"@/chatbot-library/ChatAction\"\nimport moment from \"moment\"\n\nclass ChatCalendar extends ChatAction {\n get name() {\n return \"calendar\"\n }\n\n getResponseContent(value) {\n return moment(value).format(\"DD MMMM YYYY\")\n }\n}\n\nexport default ChatCalendar","import ChatAction from \"@/chatbot-library/ChatAction\"\n\nclass ChatCheckboxes extends ChatAction {\n get name() {\n return \"checkboxes\"\n }\n\n getResponseContent(value) {\n let options = this.data.options\n if (this.data.hasGroups) {\n options = Array.prototype.concat.apply([], options.map(optionGroup => optionGroup.options))\n }\n let filteredOptions = options.filter(option => value.includes(option.id))\n return filteredOptions.length ? filteredOptions.map(option => option.label).join(\", \") : \"\"\n }\n}\n\nexport default ChatCheckboxes\n","import ChatAction from \"@/chatbot-library/ChatAction\"\n\nclass ChatRadios extends ChatAction {\n get name() {\n return \"radios\"\n }\n\n getResponseContent(value) {\n let option = this.data.options.find(option => option.id === value)\n return option ? option.label : value\n }\n}\n\nexport default ChatRadios\n","import ChatButton from \"@/chatbot-library/ChatButton\"\nimport ChatCalendar from \"../chatbot-library/ChatCalendar\"\nimport ChatCheckboxes from \"@/chatbot-library/ChatCheckboxes\"\nimport ChatInput from \"@/chatbot-library/ChatInput\"\nimport ChatRadios from \"@/chatbot-library/ChatRadios\"\nimport ChatText from \"@/chatbot-library/ChatText\"\nimport InputValidation from \"@/chatbot-library/InputValidation\"\nimport moment from \"moment\"\nimport store from \"@/store\"\n\nlet chat = [\n new ChatText(\"welcome\",\n {\n content: \"Vous souhaitez prendre rendez-vous pour l'entretien de votre véhicule ? Rien de plus facile.\",\n next: \"best-slot\",\n callback: () => store.commit(\"appointmentBooking/flow/setStartedAt\", new Date())\n },\n { delay: 0 }\n ),\n\n new ChatText(\"best-slot\", () =>\n {\n return store\n .dispatch(\"appointmentBooking/flow/loadAvailabilities\")\n .then(slots => {\n if (!slots || !Object.keys(slots).length) {\n throw Error\n }\n\n return {\n content: \"Commençons par chercher ensemble le meilleur créneau.\",\n next: \"next-day-slot\"\n }\n })\n .catch(() => {\n return { content: \"Aucun créneau disponible pour le moment.\" }\n })\n }),\n\n new ChatText(\"next-day-slot\", () =>\n {\n return {\n content: `Quel jour souhaitez-vous déposer votre véhicule ? Notre prochaine disponibilité est le ${moment(store.getters[\"appointmentBooking/flow/getFirstAvailableDate\"]).format(\"dddd DD MMMM YYYY\")}.`,\n actions: [\n new ChatCalendar(\n {\n label: \"Continuer\",\n dates: store.getters[\"appointmentBooking/flow/getAvailableDates\"]\n },\n {\n next: \"next-time-slot\",\n callback: value => store.commit(\"appointmentBooking/flow/setSelectedDate\", value)\n }\n )\n ]\n }\n }),\n\n new ChatText(\"next-time-slot\", () =>\n {\n let selectedDate = store.state.appointmentBooking.flow.selectedDate\n let times = store.getters[\"appointmentBooking/flow/getAvailableTimes\"](selectedDate)\n times = times.map(elem => {\n let date = moment(elem, \"HH:mm\")\n return {\n id: elem,\n label: date.format(\"HH[h]mm\")\n }\n })\n return {\n content: \"À quelle heure ?\",\n actions: [\n new ChatRadios(\n {\n label: \"Continuer\",\n options: times\n },\n {\n next: \"duly-noted\",\n callback: value => store.commit(\"appointmentBooking/flow/setSelectedTime\", value)\n }\n ),\n new ChatButton(\n { label: \"Choisir une autre date\", },\n { next: \"next-day-slot\" }\n )\n ]\n }\n }),\n\n new ChatText(\"duly-noted\",\n {\n content: \"C'est noté !\",\n next: \"service-selection\"\n }\n ),\n\n new ChatText(\"service-selection\", () =>\n {\n return store\n .dispatch(\"appointmentBooking/flow/loadAvailableReasons\")\n .then(reasons => {\n reasons = reasons.map(group => {\n return {\n label: group.name,\n id: group.id,\n options: group.actions.map(action => {\n return {\n label: action.name,\n id: action.id,\n checked: false\n }\n })\n }\n })\n\n return {\n content: \"Quelle(s) prestation(s) souhaitez-vous réaliser ?\",\n actions: [\n new ChatCheckboxes(\n {\n label: \"Valider\",\n options: reasons,\n hasGroups: true,\n isAtLeastOneCheckboxeRequired: true\n },\n {\n next: \"almost-finished\",\n callback: value => store.commit(\"appointmentBooking/flow/setSelectedReasons\", value)\n }\n )\n ]\n }\n })\n .catch(() => {})\n }),\n\n new ChatText(\"almost-finished\",\n {\n content: \"Excellent. Pour terminer, donnez à notre équipe le moyen de confirmer votre rendez-vous.\",\n next: \"ask-plate\"\n }\n ),\n\n new ChatText(\"ask-plate\",\n {\n content: \"Quelle est l'immatriculation de votre véhicule ?\",\n actions: [\n new ChatInput(\n {\n label: \"Voici !\",\n placeholder: \"Votre plaque d'immatriculation\",\n mask: InputValidation.plate.mask,\n validator: InputValidation.plate.validator,\n transform: InputValidation.plate.transform\n },\n {\n next: \"ask-firstname\",\n callback: value => store.commit(\"appointmentBooking/flow/setPlateNumber\", value.replace(/\\s/g, \"\")),\n isEditable: true\n }\n )\n ]\n }\n ),\n\n new ChatText(\"ask-firstname\",\n {\n content: \"Quelle est votre prénom ?\",\n actions: [\n new ChatInput(\n {\n label: \"Confirmer\",\n placeholder: \"Votre prénom\",\n mask: InputValidation.name.mask,\n validator: InputValidation.name.validator\n },\n {\n next: \"ask-lastname\",\n callback: value => store.commit(\"appointmentBooking/flow/setFirstname\", value),\n isEditable: true\n }\n )\n ]\n }\n ),\n\n new ChatText(\"ask-lastname\",\n {\n content: \"Quelle est votre nom ?\",\n actions: [\n new ChatInput(\n {\n label: \"Confirmer\",\n placeholder: \"Votre nom\",\n mask: InputValidation.name.mask,\n validator: InputValidation.name.validator\n },\n {\n next: \"ask-email\",\n callback: value => store.commit(\"appointmentBooking/flow/setLastname\", value),\n isEditable: true\n }\n )\n ]\n }\n ),\n\n new ChatText(\"ask-email\",\n {\n content: \"Quelle est votre adresse mail ?\",\n actions: [\n new ChatInput(\n {\n label: \"Confirmer\",\n placeholder: \"Votre adresse mail\",\n mask: InputValidation.email.mask,\n validator: InputValidation.email.validator\n },\n {\n next: \"ask-phone-number\",\n callback: value => store.commit(\"appointmentBooking/flow/setEmail\", value),\n isEditable: true\n }\n )\n ]\n }\n ),\n\n new ChatText(\"ask-phone-number\",\n {\n content: \"Quel est votre numéro de téléphone ?\",\n actions: [\n new ChatInput(\n {\n label: \"Confirmer\",\n placeholder: \"Votre numéro\",\n mask: InputValidation.phoneNumber.mask,\n validator: InputValidation.phoneNumber.validator\n },\n {\n next: \"thank-you\",\n callback: value => store.commit(\"appointmentBooking/flow/setPhoneNumber\", value.replace(/\\s/g, \"\")),\n isEditable: true\n }\n )\n ]\n }\n ),\n\n new ChatText(\"thank-you\", () => {\n return store\n .dispatch(\"appointmentBooking/flow/storeAppointment\")\n .then(() => {\n return {\n content: \"Merci pour toutes ces informations !\",\n next: \"confirm-appointment\"\n }\n })\n .catch(() => {\n return { content: \"Impossible d'enregistrer votre rendez-vous.\" }\n })\n }),\n\n new ChatText(\"confirm-appointment\",\n {\n content: \"Vous allez recevoir une confirmation de votre rendez-vous par email.\",\n next: \"goodbye\"\n }\n ),\n\n new ChatText(\"goodbye\",\n { content: \"À bientôt !\" }\n )\n]\n\nexport default {\n entry: \"welcome\",\n chat\n}\n","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppointmentBooking.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppointmentBooking.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppointmentBooking.vue?vue&type=template&id=c776b4c8&scoped=true&\"\nimport script from \"./AppointmentBooking.vue?vue&type=script&lang=js&\"\nexport * from \"./AppointmentBooking.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppointmentBooking.vue?vue&type=style&index=0&id=c776b4c8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c776b4c8\",\n null\n \n)\n\nexport default component.exports","let name = {\n mask: {\n mask: \"####################\",\n tokens: { \"#\": { pattern: /[A-zÀ-ú-.' ]/ } }\n },\n\n validator: value => value && String(value).trim().length\n}\n\nlet plate = {\n mask: {\n mask: \"#########\",\n tokens: {\n \"#\": {\n pattern: /[A-z0-9]/,\n transform: v => v.toLocaleUpperCase()\n }\n }\n },\n\n transform: value => {\n value = value.replace(/\\s/g, \"\")\n let groups = value.match(/\\d+|\\D+/gi) || []\n return groups.length ? groups.join(\" \") : value\n },\n\n validator: value => /^([A-Z]{2} [0-9]{3} [A-Z]{2})$/.test(value) || /^([0-9]{1,4} [A-Z]{1,3} [0-9]{2})$/.test(value),\n}\n\nlet email = {\n mask: {\n mask: \"################################################################\",\n tokens: { \"#\": { pattern: /[A-z0-9.\\-_@]/ } }\n },\n\n // eslint-disable-next-line\n validator: value => /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(value),\n}\n\nlet phoneNumber = {\n mask: \"## ## ## ## ##\",\n\n validator: value => /^[0-9]{10}$/.test((value || \"\").replace(/\\s/g, \"\"))\n}\n\nexport default {\n name,\n plate,\n email,\n phoneNumber\n}\n","import ChatAction from \"@/chatbot-library/ChatAction\"\n\nclass ChatInput extends ChatAction {\n get name() {\n return \"input\"\n }\n\n getResponseContent(value) {\n return value\n }\n}\n\nexport default ChatInput\n"],"sourceRoot":""}