PageSourceSearch

https://beneat.co/static/js/19.b1749ec6d895fd58f1d6.js

js beneat.co collected 2026-10-03 19:21:10 UTC 11,803 bytes, 2 lines download raw bytes

1webpackJsonp([19],{3109:function(e,t,n){"use strict";function r(e){s||n(3172)}Object.defineProperty(t,"__esModule",{value:!0});var a=n(3134),i=n(3174),o=n(0),s=!1,c=r,l=Object(o.a)(a.a,i.a,i.b,!1,c,"data-v-04595bcb",null);l.options.__file="src/components/booking/ExternalBooking/components/ExternalBookingReceiver.vue",t.default=l.exports},3134:function(e,t,n){"use strict";var r=n(76),a=n.n(r),i=n(18),o=n.n(i),s=n(383),c=n.n(s),l=n(5),d=n.n(l),u=n(68),b=n.n(u),m=n(6),g=n.n(m),f=n(1),p=n.n(f),x=n(4),v=n(15),k=n(105);t.a={name:"ExternalBookingReceiver",components:{Loader:v.default},data:function(){return{status:"loading-decode-token",successMessage:"Booking data received. URL has been cleared for your privacy.",errorMessage:"",bookingData:null,useToken:!1}},created:function(){this.captureExternalData()},computed:p()({},Object(x.e)("bookingExternal",{loadingDecodeToken:function(e){return e.loadingDecodeToken}})),metaInfo:function(){return{meta:[{name:"referrer",content:"no-referrer"}]}},beforeDestroy:function(){try{var e=document.querySelector('meta[name="referrer"]');e&&e.setAttribute("content","no-referrer")}catch(e){}},watch:{loadingDecodeToken:function(e){!1===e&&(this.status="error")}},methods:p()({},Object(x.b)({decodeToken:"bookingExternal/decodeToken"}),{closeExternalBookingWindow:k.c,normalizeQueryParam:function(e){return null==e?"":Array.isArray(e)?String(e[0]||"").trim():String(e).trim()},captureExternalData:function(){var e=this;return g()(d.a.mark(function t(){var n,r,a,i,o,s,c;return d.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.$route.query,e.useToken=!1,r=null,a="savety-api",i=n.token,o=n.external_from||n.externalForm,!i){t.next=20;break}return r=e.normalizeQueryParam(i),a=e.normalizeQueryParam(o)||"savety-api",t.next=11,e.decodeToken({token:i,external_from:a});case 11:if(s=t.sent,!s.error){t.next=16;break}return e.status="error",e.errorMessage=s.message||"ไม่สามารถเปิดลิงก์การจองได้ กรุณาลองใหม่อีกครั้งหรือติดต่อผู้ให้บริการ",t.abrupt("return");case 16:c=s.data,n=c,n.thirdPartyName=c.thirdPartyName,e.useToken=!0;case 20:if(0!==b()(n).length){t.next=23;break}return e.status="empty",t.abrupt("return");case 23:!0===e.useToken?e.status="loading-decode-token":e.status="loading",e.$nextTick(function(){try{var t=e.mapQueryToBookingData(n),i=e.validatePayload(t);e.mergePayloadExtrasFromRaw(i,t),r&&(i.externalEncryptedToken=r,i.externalFrom=a),e.clearStaleExternalSessionIfAccountChanged(i.customer),e.bookingData=i,e.$emit("on-data-received",i),e.status="success",e.$emit("on-success",!0),!1===e.useToken&&e.clearUrlParams()}catch(t){e.errorMessage=t.message||"Invalid or missing booking data.",e.status="error",!1===e.useToken&&e.clearUrlParams()}});case 25:case"end":return t.stop()}},t,e)}))()},mergePayloadExtrasFromRaw:function(e,t){var n=new c.a(["customer","project","geo","parentServiceId","thirdPartyName","villageCode","provinceId","districtId","subDistrictId"]),r=!0,a=!1,i=void 0;try{for(var s,l=o()(b()(t));!(r=(s=l.next()).done);r=!0){var d=s.value;n.has(d)||(e[d]=t[d])}}catch(e){a=!0,i=e}finally{try{!r&&l.return&&l.return()}finally{if(a)throw i}}},mapQueryToBookingData:function(e){return{customer:{firstName:e.firstName,lastName:e.lastName,phone:e.phone,email:e.email},project:{projectName:e.projectName,houseNumber:e.houseNumber,zipCode:e.zipCode,subDistrict:e.subDistrict,district:e.district,province:e.province,provinceId:e.provinceId||e.province_id,districtId:e.districtId||e.district_id,subDistrictId:e.subDistrictId||e.sub_district_id},geo:{lat:e.lat,lng:e.lng},parentServiceId:e.parentServiceId,thirdPartyName:e.thirdPartyName,villageCode:e.villageCode}},validatePayload:function(e){var t=function(e){return"string"==typeof e?e.trim():null==e?"":String(e)},n=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,r=function(e){if(null==e||""===e)return null;var t=Number(e);return a()(t)?null:t},i=e.customer||{},o={firstName:t(i.firstName),lastName:t(i.lastName),phone:t(i.phone),email:t(i.email)};if(o.email&&!n.test(o.email))throw new Error("รูปแบบอีเมลไม่ถูกต้อง");var s=e.project||{},c={projectName:t(s.projectName),houseNumber:t(s.houseNumber),zipCode:t(s.zipCode),subDistrict:t(s.subDistrict),district:t(s.district),province:t(s.province)},l=r(null!=s.provinceId?s.provinceId:e.provinceId),d=r(null!=s.districtId?s.districtId:e.districtId),u=r(null!=s.subDistrictId?s.subDistrictId:e.subDistrictId);null!=l&&(c.provinceId=l),null!=d&&(c.districtId=d),null!=u&&(c.subDistrictId=u);var b=e.geo||{},m=b.lat,g=b.lng;if(null!=m&&""!==m&&(m=Number(m)),null!=g&&""!==g&&(g=Number(g)),null!=m&&(a()(m)||m<-90||m>90))throw new Error("Invalid latitude.");if(null!=g&&(a()(g)||g<-180||g>180))throw new Error("Invalid longitude.");var f={lat:m,lng:g},p={customer:o,project:c,geo:f},x=e.parentServiceId;null==x||""===x||a()(Number(x))||(p.parentServiceId=Number(x));var v=e.thirdPartyName,h=e.villageCode;return v&&(p.thirdPartyName=v),h&&(p.villageCode=h),null!=l&&(p.provinceId=l),null!=d&&(p.districtId=d),null!=u&&(p.subDistrictId=u),Object(k.s)(o.email)||(p.contactEmailRequiredFromUser=!0),p},clearStaleExternalSessionIfAccountChanged:function(e){try{var t=this.$store.state.auth.user,n=t&&t.email?String(t.email).trim().toLowerCase():"",r=e&&e.email?String(e.email).trim().toLowerCase():"";if(!n||!r)return;if(n===r)return;this.$store.commit("auth/SET_TOKEN",null),this.$store.commit("auth/SET_USER",null),this.$store.commit("bookingExternal/SET_USER_INFO",null),this.$store.commit("bookingExternal/SET_USER_PLACE",null),this.$store.commit("bookingExternal/SET_IS_VERIFIED",!1);try{localStorage.removeItem("externalBookingLinkPayload")}catch(e){}}catch(e){}},clearUrlParams:function(){this.$route.path===this.$router.currentRoute.path&&this.$router.replace({path:this.$route.path,query:{}}).catch(function(){})}})}},3172:function(e,t,n){var r=n(3173);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);n(3)("12a8931c",r,!1,{})}
1,3173:function(e,t,n){t=e.exports=n(2)(!1),t.push([e.i,'\n@charset "UTF-8";\n.external-booking-loader[data-v-04595bcb] {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-box-align: center;\n      -ms-flex-align: center;\n          align-items: center;\n  -webkit-box-pack: center;\n      -ms-flex-pack: center;\n          justify-content: center;\n  width: 100%;\n  min-height: 100vh;\n  min-height: 100dvh;\n  -webkit-box-sizing: border-box;\n          box-sizing: border-box;\n  padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));\n}\n\n/** root หน้า (เช่น .eb-thank-you) ตอนแสดงแค่ Loader */\n.external-booking-page--loader-only[data-v-04595bcb] {\n  padding: 0 !important;\n}\n\n/** ปุ่มย้อนกลับ — ExternalBookingBackBar และที่อื่นที่ใช้ class นี้ */\n.external-booking-back[data-v-04595bcb] {\n  margin: 0 0 0.75rem;\n  width: 2.25rem;\n  height: 2.25rem;\n  border: none;\n  background: #f1f5f9;\n  color: #475569;\n  border-radius: 10px;\n  cursor: pointer;\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-box-align: center;\n      -ms-flex-align: center;\n          align-items: center;\n  -webkit-box-pack: center;\n      -ms-flex-pack: center;\n          justify-content: center;\n  font-size: 0.95rem;\n  -webkit-transition: background 0.2s, color 0.2s;\n  transition: background 0.2s, color 0.2s;\n}\n.external-booking-back[data-v-04595bcb]:hover {\n    background: #e2e8f0;\n    color: #0f172a;\n}\n.external-booking-back[data-v-04595bcb]:focus {\n    outline: none;\n    -webkit-box-shadow: 0 0 0 2px rgba(14, 165, 233, 0.35);\n            box-shadow: 0 0 0 2px rgba(14, 165, 233, 0.35);\n}\n\n/**\n * ความกว้างคอลัมน์เนื้อหา — ทุกหน้า external\n * mobile: min(100%, 32rem) — tablet+: 500px\n */\n/**\n * แถบปุ่มกลับ — จำกัดความกว้างเดียวกับคอลัมน์เนื้อหา (mixin ด้านบน)\n * ใช้ใน ExternalBookingBackBar\n */\n.eb-external-booking-back-bar[data-v-04595bcb] {\n  width: 100%;\n  margin-left: auto;\n  margin-right: auto;\n  -webkit-box-sizing: border-box;\n          box-sizing: border-box;\n  max-width: min(100%, 32rem);\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-box-pack: start;\n      -ms-flex-pack: start;\n          justify-content: flex-start;\n  -webkit-box-align: center;\n      -ms-flex-align: center;\n          align-items: center;\n}\n@media (min-width: 768px) {\n.eb-external-booking-back-bar[data-v-04595bcb] {\n      max-width: 500px;\n}\n}\n.beneat-modal-body-scroll[data-v-04595bcb] {\n  height: 100%;\n  max-height: 400px;\n  overflow: auto;\n}\n.external-booking-receiver[data-v-04595bcb] {\n  width: 100%;\n  max-width: 100%;\n  margin: 0 auto;\n}\n.status-box[data-v-04595bcb] {\n  padding: 1.25rem;\n  border-radius: 10px;\n  text-align: center;\n}\n@media (min-width: 768px) {\n.status-box[data-v-04595bcb] {\n    padding: 1.5rem;\n    border-radius: 12px;\n}\n}\n.status-loading[data-v-04595bcb] {\n  background: #f0f9ff;\n  border: 1px solid #bae6fd;\n}\n.status-success[data-v-04595bcb] {\n  background: #f0fdf4;\n  border: 1px solid #bbf7d0;\n}\n.status-error[data-v-04595bcb] {\n  background: #fef2f2;\n  border: 1px solid #fecaca;\n}\n.status-empty[data-v-04595bcb] {\n  background: #f8fafc;\n  border: 1px solid #e2e8f0;\n}\n.message[data-v-04595bcb] {\n  margin: 0;\n  font-size: 1rem;\n  line-height: 1.5;\n  color: #334155;\n}\n.status-error .message[data-v-04595bcb] {\n  color: #991b1b;\n}\n.spinner[data-v-04595bcb] {\n  width: 2rem;\n  height: 2rem;\n  margin: 0 auto 0.75rem;\n  border: 3px solid #e2e8f0;\n  border-top-color: #0ea5e9;\n  border-radius: 50%;\n  -webkit-animation: spin-data-v-04595bcb 0.8s linear infinite;\n          animation: spin-data-v-04595bcb 0.8s linear infinite;\n}\n@-webkit-keyframes spin-data-v-04595bcb {\nto {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg);\n}\n}\n@keyframes spin-data-v-04595bcb {\nto {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg);\n}\n}\n',""])},3174:function(e,t,n){"use strict";n.d(t,"a",function(){return r}),n.d(t,"b",function(){return a});var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"external-booking-receiver"},["loading-decode-token"===e.status?n("div",{staticClass:"external-booking-loader",attrs:{"aria-busy":"true","aria-live":"polite"}},[n("Loader")],1):"loading"===e.status?n("div",{staticClass:"status-box status-loading"},[n("div",{staticClass:"spinner",attrs:{"aria-hidden":"true"}}),e._v(" "),n("p",{staticClass:"message"},[e._v("Processing...")])]):"success"===e.status?n("div",{staticClass:"status-box status-success"},[n("p",{staticClass:"message"},[e._v(e._s(e.successMessage))])]):"error"===e.status?n("div",{staticClass:"status-box status-error"},[n("p",{staticClass:"message"},[e._v(e._s(e.errorMessage))])]):n("div",{staticClass:"status-box status-empty d-flex flex-column justify-content-center align-items-center gap-3"},[n("p",{staticClass:"message"},[e._v("\n      ไม่พบข้อมูล\n    ")]),e._v(" "),n("button",{staticClass:"btn btn-primary mt-3 w-100",staticStyle:{"max-width":"200px"},on:{click:e.closeExternalBookingWindow}},[e._v(" \n      ย้อนกลับ\n    ")])])])},a=[];r._withStripped=!0}});
2//# sourceMappingURL=19.b1749ec6d895fd58f1d6.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.