favesalon-embed 1.0.28 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/custom-elements/index.d.ts +6 -0
  2. package/dist/favesalon-embed/activate-form.entry.js +1 -1
  3. package/dist/favesalon-embed/buy-giftcard-form.entry.js +123 -262
  4. package/dist/favesalon-embed/buy-giftcard-verification.entry.js +13 -6
  5. package/dist/favesalon-embed/change-password-form.entry.js +1 -1
  6. package/dist/favesalon-embed/chat-box.entry.js +1 -1
  7. package/dist/favesalon-embed/chat-button.entry.js +1 -1
  8. package/dist/favesalon-embed/chat-form.entry.js +1 -1
  9. package/dist/favesalon-embed/chat-messages.entry.js +1 -1
  10. package/dist/favesalon-embed/chat-rooms.entry.js +1 -1
  11. package/dist/favesalon-embed/favesalon-embed.esm.js +1 -1
  12. package/dist/favesalon-embed/login-form.entry.js +1 -1
  13. package/dist/favesalon-embed/magensa-payment.entry.js +136 -0
  14. package/dist/favesalon-embed/register-form.entry.js +1 -1
  15. package/dist/favesalon-embed/reset-password-form.entry.js +1 -1
  16. package/dist/favesalon-embed/salon-info.entry.js +1 -1
  17. package/dist/favesalon-embed/salon-latest-reviews.entry.js +1 -1
  18. package/dist/favesalon-embed/salon-latest-styles.entry.js +1 -1
  19. package/dist/favesalon-embed/salon-locations.entry.js +1 -1
  20. package/dist/favesalon-embed/salon-lookbook.entry.js +1 -1
  21. package/dist/favesalon-embed/salon-reviews.entry.js +1 -1
  22. package/dist/favesalon-embed/salon-schedules.entry.js +1 -1
  23. package/dist/favesalon-embed/salon-services.entry.js +1 -1
  24. package/dist/favesalon-embed/salon-stylists.entry.js +1 -1
  25. package/dist/favesalon-embed/{services-392da128.js → services-48c99e41.js} +20 -5
  26. package/dist/favesalon-embed/style-detail.entry.js +1 -1
  27. package/dist/favesalon-embed/wizard-existing-user.entry.js +5 -2
  28. package/dist/favesalon-embed/wizard-new-user.entry.js +5 -2
  29. package/dist/types/components/buy-giftcard-form/buy-giftcard-form.d.ts +2 -5
  30. package/dist/types/components/buy-giftcard-verification/buy-giftcard-verification.d.ts +2 -2
  31. package/dist/types/components/magensa-payment/magensa-payment.d.ts +19 -0
  32. package/dist/types/components.d.ts +25 -0
  33. package/dist/types/services/services.d.ts +3 -0
  34. package/dist/types/types/giftcard.d.ts +2 -1
  35. package/package.json +1 -1
@@ -2,7 +2,7 @@ import { r as registerInstance, h } from './index-888e99e3.js';
2
2
  import { I as Inputmask } from './inputmask-afacb9e0.js';
3
3
  import { f as formatPhoneNumber } from './utils-359c37f7.js';
4
4
  import { C as Colors } from './colors-ea36347a.js';
5
- import { H as HttpService } from './services-392da128.js';
5
+ import { H as HttpService } from './services-48c99e41.js';
6
6
  import './_commonjsHelpers-9bc404fc.js';
7
7
 
8
8
  const buyGiftcardVerificationCss = ".buy-giftcard--verification *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}";
@@ -22,8 +22,8 @@ const BuyGiftcardVerification = class {
22
22
  try {
23
23
  const formattedPhone = formatPhoneNumber(this.inputtedPhone);
24
24
  if (formattedPhone && formattedPhone.length >= 10) {
25
- const userClient = await HttpService().fetchSalonClientInfo(this.salonId, this.inputtedPhone);
26
- this.userInfo = { ...userClient, mobilePhone: this.inputtedPhone };
25
+ const userClient = await HttpService().fetchSalonClientInfo(this.salonId, formattedPhone);
26
+ this.userInfo = { ...userClient, mobilePhone: formattedPhone };
27
27
  this.step = FormStep.BookingGuests;
28
28
  }
29
29
  }
@@ -38,8 +38,8 @@ const BuyGiftcardVerification = class {
38
38
  this.isSearchingUser = undefined;
39
39
  this.errorMessage = undefined;
40
40
  }
41
- componentDidLoad() {
42
- Inputmask({ mask: '(999) 999-9999' }).mask(this.nativeInput);
41
+ componentDidRender() {
42
+ this.phoneInputRef && Inputmask({ mask: '(999) 999-9999' }).mask(this.phoneInputRef);
43
43
  }
44
44
  onSubmitUserInfo() {
45
45
  const { firstName, lastName } = this.userInfo || {};
@@ -56,6 +56,10 @@ const BuyGiftcardVerification = class {
56
56
  }
57
57
  }
58
58
  renderUserInfoForm() {
59
+ const formattedPhone = formatPhoneNumber(this.inputtedPhone);
60
+ if (formattedPhone === '0929686868' || (window.localStorage && window.localStorage.getItem && window.localStorage.getItem('gift-card--testing') === 'enabled')) {
61
+ return (h("login-form", { onSuccess: (user) => this.onSuccess(user) }));
62
+ }
59
63
  if (this.step === FormStep.UserLogin) {
60
64
  return (h("div", { class: "buy-giftcard--verification", style: {
61
65
  backgroundColor: Colors.White,
@@ -143,7 +147,7 @@ const BuyGiftcardVerification = class {
143
147
  fontSize: '16px',
144
148
  fontWeight: '600',
145
149
  marginBottom: '12px',
146
- } }, "Enter your phone to start"), h("div", { style: { display: 'flex', alignItems: 'center' } }, h("input", { type: "tel", placeholder: "(123) 456-7890", disabled: this.isSearchingUser, ref: el => this.nativeInput = el, onInput: (evt) => this.inputtedPhone = evt.target.value, style: {
150
+ } }, "Enter your phone to start"), h("div", { style: { display: 'flex', alignItems: 'center' } }, h("input", { type: "tel", placeholder: "(123) 456-7890", disabled: this.isSearchingUser, ref: el => this.phoneInputRef = el, onInput: (evt) => this.inputtedPhone = evt.target.value, style: {
147
151
  border: `1px solid ${Colors.Gray03}`,
148
152
  backgroundColor: Colors.White,
149
153
  borderRadius: '8px',
@@ -174,6 +178,9 @@ const BuyGiftcardVerification = class {
174
178
  color: Colors.TextColor,
175
179
  borderColor: Colors.Gray03,
176
180
  backgroundColor: Colors.Gray03,
181
+ display: 'flex',
182
+ alignItems: 'center',
183
+ justifyContent: 'center',
177
184
  } : {},
178
185
  }, onClick: () => this.onSearchClient() }, "Next ", this.isSearchingUser && (h("span", { style: { marginLeft: '4px' } }, h("icon-loading", null))))))));
179
186
  }
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
- import { H as HttpService, g as get_1 } from './services-392da128.js';
2
+ import { H as HttpService, g as get_1 } from './services-48c99e41.js';
3
3
  import { C as Colors } from './colors-ea36347a.js';
4
4
  import './_commonjsHelpers-9bc404fc.js';
5
5
 
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
2
  import { C as Colors } from './colors-ea36347a.js';
3
- import { H as HttpService } from './services-392da128.js';
3
+ import { H as HttpService } from './services-48c99e41.js';
4
4
  import './_commonjsHelpers-9bc404fc.js';
5
5
 
6
6
  const indexCss = ".chat-widget,.chat-widget--sidebar,.chat-widget--content{display:flex;height:100%;width:100%}.chat-widget{font-size:16px;position:relative;font-family:'Roboto', sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.chat-widget--sidebar,.chat-widget--content{background-color:#fff;border:1px solid #EFEFEF;position:absolute;inset:0;flex-direction:column}.chat-widget .chat-widget--sidebar{z-index:10}.chat-widget .chat-widget--content{z-index:5}.chat-widget.has-chat-room .chat-widget--content{z-index:10}.chat-widget--content-header{background-color:#001529;border-bottom:1px solid #EFEFEF;display:flex;align-items:center;justify-content:space-between;padding:16px}.chat-widget--content-title{font-size:20px;font-weight:600;line-height:1;margin:0}.chat-widget--content-close{border:1px solid #fff;cursor:pointer;display:block;position:absolute;z-index:1000;top:50%;right:0;width:30px;height:30px;transform:translate(0, -50%);-moz-border-radius:30px;-webkit-border-radius:30px;border-radius:30px;background-size:contain;background-repeat:no-repeat;background-position:center center;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAAXNSR0IArs4c6QAAA3hJREFUaAXlm8+K00Acx7MiCIJH/yw+gA9g25O49SL4AO3Bp1jw5NvktC+wF88qevK4BU97EmzxUBCEolK/n5gp3W6TTJPfpNPNF37MNsl85/vN/DaTmU6PknC4K+pniqeKJ3k8UnkvDxXJzzy+q/yaxxeVHxW/FNHjgRSeKt4rFoplzaAuHHDBGR2eS9G54reirsmienDCTRt7xwsp+KAoEmt9nLaGitZxrBbPFNaGfPloGw2t4JVamSt8xYW6Dg1oCYo3Yv+rCGViV160oMkcd8SYKnYV1Nb1aEOjCe6L5ZOiLfF120EjWhuBu3YIZt1NQmujnk5F4MgOpURzLfAwOBSTmzp3fpDxuI/pabxpqOoz2r2HLAb0GMbZKlNV5/Hg9XJypguryA7lPF5KMdTZQzHjqxNPhWhzIuAruOl1eNqKEx1tSh5rfbxdw7mOxCq4qS68ZTjKS1YVvilu559vWvFHhh4rZrdyZ69Vmpgdj8fJbDZLJpNJ0uv1cnr/gjrUhQMuI+ANjyuwftQ0bbL6Erp0mM/ny8Fg4M3LtdRxgMtKl3jwmIHVxYXChFy94/Rmpa/pTbNUhstKV+4Rr8lLQ9KlUvJKLyG8yvQ2s9SBy1Jb7jV5a0yapfF6apaZLjLLcWtd4sNrmJUMHyM+1xibTjH82Zh01TNlhsrOhdKTe00uAzZQmN6+KW+sDa/JD2PSVQ873m29yf+1Q9VDzfEYlHi1G5LKBBWZbtEsHbFwb1oYDwr1ZiF/2bnCSg1OBE/pfr9/bWx26UxJL3ONPISOLKUvQza0LZUxSKyjpdTGa/vDEr25rddbMM0Q3O6Lx3rqFvU+x6UrRKQY7tyrZecmD9FODy8uLizTmilwNj0kraNcAJhOp5aGVwsAGD5VmJBrWWbJSgWT9zrzWepQF47RaGSiKfeGx6Szi3gzmX/HHbihwBser4B9UJYpFBNX4R6vTn3VQnez0SymnrHQMsRYGTr1dSk34ljRqS/EMd2pLQ8YBp3a1PLfcqCpo8gtHkZFHKkTX6fs3MY0blKnth66rKCnU0VRGu37ONrQaA4eZDFtWAu2fXj9zjFkxTBOo8F7t926gTp/83Kyzzcy2kZD6xiqxTYnHLRFm3vHiRSwNSjkz3hoIzo8lCKWUlg/YtGs7tObunDAZfpDLbfEI15zsEIY3U/x/gHHc/G1zltnAgAAAABJRU5ErkJggg==')}@media (min-width: 992px){.chat-widget--sidebar,.chat-widget--content{position:static;width:auto;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}.chat-widget--sidebar{min-width:320px;max-width:320px;margin-right:24px}.chat-widget--content{flex-grow:1;flex-shrink:1}.chat-rooms--search,.chat-widget--content-header{-moz-border-radius:8px 8px 0 0;-webkit-border-radius:8px 8px 0 0;border-radius:8px 8px 0 0}}";
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
2
  import { C as Colors } from './colors-ea36347a.js';
3
- import { H as HttpService } from './services-392da128.js';
3
+ import { H as HttpService } from './services-48c99e41.js';
4
4
  import './_commonjsHelpers-9bc404fc.js';
5
5
 
6
6
  const indexCss = "@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&display=swap'); chat-button{display:block;position:relative}.chat-button--indicator{cursor:pointer;position:absolute;inset:0}.chat-button--counter{background-color:rgb(240, 90, 97);border:1px solid rgb(255, 255, 255);position:absolute;right:6px;top:0px;height:8px;width:8px;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}.chat-box{font-family:'Roboto', sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-border-radius:8px 8px 0px 0px;-webkit-border-radius:8px 8px 0px 0px;border-radius:8px 8px 0px 0px;-moz-box-shadow:rgba(0, 0, 0, 0.25) 0px 0px 24px;-webkit-box-shadow:rgba(0, 0, 0, 0.25) 0px 0px 24px;box-shadow:rgba(0, 0, 0, 0.25) 0px 0px 24px;background-color:#fff;display:flex;flex-direction:column;position:fixed;right:1px;bottom:0px;z-index:20000;font-size:16px;text-align:left;color:#141414;width:80vw;height:480px;max-height:80vh}.chat-box--header{display:flex;justify-content:space-between;padding:16px;position:relative;-moz-border-radius:8px 8px 0px 0px;-webkit-border-radius:8px 8px 0px 0px;border-radius:8px 8px 0px 0px}.chat-box--title{color:#fff;font-size:24px;font-weight:600;line-height:1;display:flex;align-items:center;justify-content:space-between;margin:0}.chat-box--close:hover{opacity:0.85}.chat-box--close{cursor:pointer;display:block;position:absolute;z-index:1000;top:50%;right:0;width:40px;height:40px;transform:translate(0, -50%);background-size:contain;background-repeat:no-repeat;background-position:center center;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAAXNSR0IArs4c6QAAA3hJREFUaAXlm8+K00Acx7MiCIJH/yw+gA9g25O49SL4AO3Bp1jw5NvktC+wF88qevK4BU97EmzxUBCEolK/n5gp3W6TTJPfpNPNF37MNsl85/vN/DaTmU6PknC4K+pniqeKJ3k8UnkvDxXJzzy+q/yaxxeVHxW/FNHjgRSeKt4rFoplzaAuHHDBGR2eS9G54reirsmienDCTRt7xwsp+KAoEmt9nLaGitZxrBbPFNaGfPloGw2t4JVamSt8xYW6Dg1oCYo3Yv+rCGViV160oMkcd8SYKnYV1Nb1aEOjCe6L5ZOiLfF120EjWhuBu3YIZt1NQmujnk5F4MgOpURzLfAwOBSTmzp3fpDxuI/pabxpqOoz2r2HLAb0GMbZKlNV5/Hg9XJypguryA7lPF5KMdTZQzHjqxNPhWhzIuAruOl1eNqKEx1tSh5rfbxdw7mOxCq4qS68ZTjKS1YVvilu559vWvFHhh4rZrdyZ69Vmpgdj8fJbDZLJpNJ0uv1cnr/gjrUhQMuI+ANjyuwftQ0bbL6Erp0mM/ny8Fg4M3LtdRxgMtKl3jwmIHVxYXChFy94/Rmpa/pTbNUhstKV+4Rr8lLQ9KlUvJKLyG8yvQ2s9SBy1Jb7jV5a0yapfF6apaZLjLLcWtd4sNrmJUMHyM+1xibTjH82Zh01TNlhsrOhdKTe00uAzZQmN6+KW+sDa/JD2PSVQ873m29yf+1Q9VDzfEYlHi1G5LKBBWZbtEsHbFwb1oYDwr1ZiF/2bnCSg1OBE/pfr9/bWx26UxJL3ONPISOLKUvQza0LZUxSKyjpdTGa/vDEr25rddbMM0Q3O6Lx3rqFvU+x6UrRKQY7tyrZecmD9FODy8uLizTmilwNj0kraNcAJhOp5aGVwsAGD5VmJBrWWbJSgWT9zrzWepQF47RaGSiKfeGx6Szi3gzmX/HHbihwBser4B9UJYpFBNX4R6vTn3VQnez0SymnrHQMsRYGTr1dSk34ljRqS/EMd2pLQ8YBp3a1PLfcqCpo8gtHkZFHKkTX6fs3MY0blKnth66rKCnU0VRGu37ONrQaA4eZDFtWAu2fXj9zjFkxTBOo8F7t926gTp/83Kyzzcy2kZD6xiqxTYnHLRFm3vHiRSwNSjkz3hoIzo8lCKWUlg/YtGs7tObunDAZfpDLbfEI15zsEIY3U/x/gHHc/G1zltnAgAAAABJRU5ErkJggg==')}.chat-box--help{font-family:'Roboto', sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:fixed;right:16px;bottom:80px;z-index:20000}.chat-box--help-icon{background-color:rgba(0, 21, 41, 1);cursor:pointer;color:#fff;height:50px;width:50px;display:flex;align-items:center;justify-content:center;-moz-border-radius:50px;-webkit-border-radius:50px;border-radius:50px}.chat-box--help-icon:hover{background-color:rgba(0, 21, 41, 0.85)}.chat-box--help-icon svg{height:30px;width:30px}.chat-box--help-close:hover{opacity:0.85}.chat-box--help-close{cursor:pointer;display:block;position:absolute;z-index:1000;top:6px;right:6px;width:24px;height:24px;background-size:contain;background-repeat:no-repeat;background-position:center center;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAAXNSR0IArs4c6QAAA3hJREFUaAXlm8+K00Acx7MiCIJH/yw+gA9g25O49SL4AO3Bp1jw5NvktC+wF88qevK4BU97EmzxUBCEolK/n5gp3W6TTJPfpNPNF37MNsl85/vN/DaTmU6PknC4K+pniqeKJ3k8UnkvDxXJzzy+q/yaxxeVHxW/FNHjgRSeKt4rFoplzaAuHHDBGR2eS9G54reirsmienDCTRt7xwsp+KAoEmt9nLaGitZxrBbPFNaGfPloGw2t4JVamSt8xYW6Dg1oCYo3Yv+rCGViV160oMkcd8SYKnYV1Nb1aEOjCe6L5ZOiLfF120EjWhuBu3YIZt1NQmujnk5F4MgOpURzLfAwOBSTmzp3fpDxuI/pabxpqOoz2r2HLAb0GMbZKlNV5/Hg9XJypguryA7lPF5KMdTZQzHjqxNPhWhzIuAruOl1eNqKEx1tSh5rfbxdw7mOxCq4qS68ZTjKS1YVvilu559vWvFHhh4rZrdyZ69Vmpgdj8fJbDZLJpNJ0uv1cnr/gjrUhQMuI+ANjyuwftQ0bbL6Erp0mM/ny8Fg4M3LtdRxgMtKl3jwmIHVxYXChFy94/Rmpa/pTbNUhstKV+4Rr8lLQ9KlUvJKLyG8yvQ2s9SBy1Jb7jV5a0yapfF6apaZLjLLcWtd4sNrmJUMHyM+1xibTjH82Zh01TNlhsrOhdKTe00uAzZQmN6+KW+sDa/JD2PSVQ873m29yf+1Q9VDzfEYlHi1G5LKBBWZbtEsHbFwb1oYDwr1ZiF/2bnCSg1OBE/pfr9/bWx26UxJL3ONPISOLKUvQza0LZUxSKyjpdTGa/vDEr25rddbMM0Q3O6Lx3rqFvU+x6UrRKQY7tyrZecmD9FODy8uLizTmilwNj0kraNcAJhOp5aGVwsAGD5VmJBrWWbJSgWT9zrzWepQF47RaGSiKfeGx6Szi3gzmX/HHbihwBser4B9UJYpFBNX4R6vTn3VQnez0SymnrHQMsRYGTr1dSk34ljRqS/EMd2pLQ8YBp3a1PLfcqCpo8gtHkZFHKkTX6fs3MY0blKnth66rKCnU0VRGu37ONrQaA4eZDFtWAu2fXj9zjFkxTBOo8F7t926gTp/83Kyzzcy2kZD6xiqxTYnHLRFm3vHiRSwNSjkz3hoIzo8lCKWUlg/YtGs7tObunDAZfpDLbfEI15zsEIY3U/x/gHHc/G1zltnAgAAAABJRU5ErkJggg==')}.chat-box--help-content-wrapper{background-color:#fff;border:1px solid #f5f5f5;width:200px;padding:20px;position:absolute;bottom:100%;right:-8px;margin-bottom:16px;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;-moz-box-shadow:rgba(0, 0, 0, 0.15) 0px 0px 24px;-webkit-box-shadow:rgba(0, 0, 0, 0.15) 0px 0px 24px;box-shadow:rgba(0, 0, 0, 0.15) 0px 0px 24px}.chat-box--help-content{cursor:pointer;display:flex;align-items:center}.chat-box--help-content:hover{opacity:0.85}.chat-box--help-content:before{content:' ';position:absolute;top:100%;right:22px;border-style:solid;border-width:10px;border-color:#f5f5f5 transparent transparent transparent}.chat-box--help-content:after{content:' ';position:absolute;margin-top:-1px;top:100%;right:22px;border-style:solid;border-width:10px;border-color:#fff transparent transparent transparent}.chat-box--help-avatar{margin-right:16px;height:48px;min-width:48px;max-width:48px;overflow:hidden;-moz-border-radius:48px;-webkit-border-radius:48px;border-radius:48px}.chat-box--help-avatar img{height:100%;width:100%;object-fit:cover}.chat-box--help-text{color:#141414;font-size:16px;line-height:1.3;text-align:left}@media (min-width: 768px){.chat-box{border:1px solid #fff;height:480px;max-height:90vh;width:560px}.chat-box--header{-moz-border-radius:8px 8px 0px 0px;-webkit-border-radius:8px 8px 0px 0px;border-radius:8px 8px 0px 0px}.chat-box--help{bottom:96px}}@media (min-width: 1024px){.chat-box--help{bottom:24px}}";
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
- import { d as dayjs_min, H as HttpService } from './services-392da128.js';
2
+ import { d as dayjs_min, H as HttpService } from './services-48c99e41.js';
3
3
  import { c as createCommonjsModule, a as commonjsGlobal } from './_commonjsHelpers-9bc404fc.js';
4
4
  import './colors-ea36347a.js';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
- import { d as dayjs_min, H as HttpService, t as timeFormatAmPm } from './services-392da128.js';
2
+ import { d as dayjs_min, H as HttpService, t as timeFormatAmPm } from './services-48c99e41.js';
3
3
  import { l as lodash } from './lodash-b4fe554a.js';
4
4
  import { C as Colors } from './colors-ea36347a.js';
5
5
  import { r as relativeTime } from './relativeTime-15477f02.js';
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
2
  import { l as lodash } from './lodash-b4fe554a.js';
3
3
  import { C as Colors } from './colors-ea36347a.js';
4
- import { H as HttpService } from './services-392da128.js';
4
+ import { H as HttpService } from './services-48c99e41.js';
5
5
  import { f as formatPhoneNumber } from './utils-359c37f7.js';
6
6
  import './_commonjsHelpers-9bc404fc.js';
7
7
 
@@ -144,5 +144,5 @@ const patchCloneNodeFix = (HTMLElementPrototype) => {
144
144
 
145
145
  patchBrowser().then(options => {
146
146
  globalScripts();
147
- return bootstrapLazy([["buy-giftcard-form",[[0,"buy-giftcard-form",{"salonId":[1,"salon-id"],"teConnect":[32],"isLoading":[32],"isSubmitting":[32],"errorMessage":[32],"userInfo":[32],"salonInfo":[32],"giftCardSettings":[32],"magensaCredentials":[32],"step":[32],"selectedAmount":[32],"customAmount":[32],"deliveryType":[32],"deliveryDate":[32],"recipientFirstName":[32],"recipientLastName":[32],"recipientEmail":[32],"recipientEmailConfirm":[32],"recipientMessage":[32],"isInvalidEmails":[32],"isInvalidPhones":[32],"selectedStyleId":[32],"isDeliveryDoneVisible":[32],"isTermsAccepted":[32]}]]],["chat-button",[[0,"chat-button",{"primaryColor":[1,"primary-color"],"receiverId":[1,"receiver-id"],"receiverAvatar":[1,"receiver-avatar"],"accessToken":[1,"access-token"],"senderId":[1,"sender-id"],"senderIdState":[32],"accessTokenState":[32],"senderInfo":[32],"receiverInfo":[32],"chatRoom":[32],"chatMessages":[32],"isChatIconVisible":[32],"isChatHelpVisible":[32],"isChatExpanded":[32],"isChatVerificationExpanded":[32],"isChatExpandedOnScroll":[32],"currentScroll":[32],"isScrollingDown":[32],"onSetupChat":[64],"onClickChat":[64],"fetchData":[64],"onVerificationSuccess":[64]}]]],["chat-box",[[0,"chat-box",{"primaryColor":[1,"primary-color"],"accessToken":[1,"access-token"],"senderId":[1,"sender-id"],"salonId":[1,"salon-id"],"chatRooms":[32],"activeRoom":[32],"fetchData":[64]}]]],["salon-info",[[0,"salon-info",{"salonId":[2,"salon-id"],"salonInfo":[32],"fetchData":[64]}]]],["salon-latest-reviews",[[0,"salon-latest-reviews",{"salonId":[2,"salon-id"],"primaryColor":[1,"primary-color"],"salonReviews":[32],"isLoading":[32],"fetchData":[64]}]]],["salon-lookbook",[[0,"salon-lookbook",{"salonId":[2,"salon-id"],"isLoading":[32],"isLoadingMore":[32],"hideLoadMore":[32],"currentPage":[32],"totalLookbooks":[32],"salonCategories":[32],"salonLookbooks":[32],"sortBy":[32],"filterBy":[32],"isLayoutSetup":[32],"fetchData":[64],"fetchLookbooks":[64],"onChangeFiltering":[64],"onChangeSorting":[64],"onLoadMore":[64],"fetchCategories":[64]}]]],["salon-reviews",[[0,"salon-reviews",{"salonId":[2,"salon-id"],"primaryColor":[1,"primary-color"],"salonInfo":[32],"stats":[32],"totalReviews":[32],"allReviews":[32],"isLoading":[32],"isSorting":[32],"isFiltering":[32],"isLoadingMore":[32],"canLoadMore":[32],"page":[32],"filterBy":[32],"sortBy":[32]}]]],["style-detail",[[0,"style-detail",{"salonId":[2,"salon-id"],"salonLookbook":[1,"salon-lookbook"],"lookbookInfo":[32],"isModalOpen":[32],"currentMediaIdx":[32],"currentMedia":[32],"albumMedias":[32],"similarStyles":[32],"totalComments":[32],"lookbookComments":[32],"isLayoutSetup":[32],"fetchData":[64]}]]],["salon-booking",[[0,"salon-booking",{"salonId":[2,"salon-id"],"buttonClass":[1,"button-class"],"buttonText":[1,"button-text"],"primaryColor":[1,"primary-color"]}]]],["salon-booking-modal",[[0,"salon-booking-modal",{"salonId":[2,"salon-id"],"primaryColor":[1,"primary-color"],"redirectUrl":[1,"redirect-url"],"isModalOpen":[32]}]]],["salon-gift-card",[[0,"salon-gift-card",{"salonId":[2,"salon-id"],"buttonClass":[1,"button-class"],"buttonText":[1,"button-text"],"primaryColor":[1,"primary-color"]}]]],["salon-gift-card-modal",[[0,"salon-gift-card-modal",{"salonId":[2,"salon-id"],"primaryColor":[1,"primary-color"],"isModalOpen":[32]}]]],["salon-ranking",[[0,"salon-ranking",{"ranking":[2],"height":[2],"width":[2]}]]],["salon-services",[[0,"salon-services",{"salonId":[2,"salon-id"],"buttonClass":[1,"button-class"],"salonServices":[32],"isLoading":[32],"fetchData":[64]}]]],["salon-stylists",[[0,"salon-stylists",{"salonId":[2,"salon-id"],"salonStylists":[32],"totalStylists":[32],"page":[32],"isLoading":[32],"isLoadingMore":[32],"canLoadMore":[32],"fetchData":[64],"onLoadMore":[64]}]]],["user-form",[[0,"user-form",{"onSuccess":[16],"type":[32],"currentUser":[32]}]]],["buy-giftcard-verification",[[0,"buy-giftcard-verification",{"salonId":[1,"salon-id"],"onSuccess":[16],"step":[32],"userInfo":[32],"inputtedPhone":[32],"isSearchingUser":[32],"errorMessage":[32]}]]],["buy-giftcard-succeed",[[0,"buy-giftcard-succeed",{"duration":[32]}]]],["chat-rooms",[[0,"chat-rooms",{"senderId":[2,"sender-id"],"salonId":[2,"salon-id"],"chatRooms":[16],"clients":[16],"activeRoom":[16],"accessToken":[1,"access-token"],"onClickRoom":[16],"keyword":[32]}]]],["salon-locations",[[0,"salon-locations",{"salonId":[2,"salon-id"],"salonInfo":[1,"salon-info"],"isLoading":[4,"is-loading"],"withBorder":[4,"with-border"],"salonInfoState":[32]}]]],["credit-card-types",[[0,"credit-card-types",{"css":[8]}]]],["icon-date",[[0,"icon-date",{"size":[2]}]]],["icon-location-marker",[[0,"icon-location-marker",{"size":[2]}]]],["icon-phone",[[0,"icon-phone",{"size":[2]}]]],["notify-sounds",[[0,"notify-sounds"]]],["salon-latest-styles",[[0,"salon-latest-styles",{"salonId":[2,"salon-id"],"isLoading":[4,"is-loading"],"withBorder":[4,"with-border"],"isLoadingState":[32],"latestStyles":[32],"fetchData":[64]}]]],["salon-schedules",[[0,"salon-schedules",{"salonId":[2,"salon-id"],"salonInfo":[1,"salon-info"],"isLoading":[4,"is-loading"],"withBorder":[4,"with-border"],"salonInfoState":[32]}]]],["chat-messages",[[0,"chat-messages",{"sender":[16],"receiver":[16],"messages":[16],"chatRoomId":[1,"chat-room-id"],"messagesLength":[32],"isScrollIconVisible":[32]}]]],["icon-loading",[[0,"icon-loading",{"size":[2]}]]],["wizard-existing-user",[[0,"wizard-existing-user",{"salonId":[1,"salon-id"],"inputtedPhone":[1,"inputted-phone"],"onClose":[16],"onSuccess":[16],"step":[32],"errorMessage":[32],"isSubmitting":[32],"activatCode":[32]}]]],["wizard-new-user",[[0,"wizard-new-user",{"salonId":[1,"salon-id"],"inputtedPhone":[1,"inputted-phone"],"firstName":[1,"first-name"],"lastName":[1,"last-name"],"onClose":[16],"onSuccess":[16],"step":[32],"errorMessage":[32],"isSubmitting":[32],"activatCode":[32]}]]],["activate-form",[[0,"activate-form",{"username":[1],"password":[1],"onSuccess":[16],"isSubmitting":[32],"error":[32],"confirmCode":[32],"onSubmit":[64],"resendCode":[64]}]]],["change-password-form",[[0,"change-password-form",{"username":[1],"onSuccess":[16],"isSubmitting":[32],"error":[32],"confirmCode":[32],"password":[32],"onSubmit":[64],"resendCode":[64]}]]],["chat-form",[[0,"chat-form",{"accessToken":[1,"access-token"],"sender":[16],"chatRoom":[16]}]]],["google-map",[[0,"google-map",{"locationName":[1,"location-name"],"locationAddress":[1,"location-address"]}]]],["icon-checked",[[0,"icon-checked",{"size":[2]}]]],["login-form",[[0,"login-form",{"onSuccess":[16],"isSubmitting":[32],"error":[32],"username":[32],"password":[32],"onSubmit":[64]}]]],["powered-by-favesalon",[[0,"powered-by-favesalon",{"css":[8]}]]],["register-form",[[0,"register-form",{"onSuccess":[16],"isSubmitting":[32],"error":[32],"firstName":[32],"lastName":[32],"email":[32],"phone":[32],"password":[32],"onSubmit":[64]}]]],["reset-password-form",[[0,"reset-password-form",{"onSuccess":[16],"isSubmitting":[32],"error":[32],"username":[32],"onSubmit":[64]}]]],["user-avatar",[[0,"user-avatar",{"size":[2],"name":[1],"description":[1],"nameStyle":[16],"shortName":[1,"short-name"],"avatar":[1]}]]]], options);
147
+ return bootstrapLazy([["buy-giftcard-form",[[0,"buy-giftcard-form",{"salonId":[1,"salon-id"],"isLoading":[32],"isSubmitting":[32],"errorMessage":[32],"userInfo":[32],"salonInfo":[32],"giftCardSettings":[32],"magensaCredentials":[32],"step":[32],"selectedAmount":[32],"customAmount":[32],"deliveryType":[32],"deliveryDate":[32],"recipientFirstName":[32],"recipientLastName":[32],"recipientEmail":[32],"recipientEmailConfirm":[32],"recipientMessage":[32],"isInvalidEmails":[32],"isInvalidPhones":[32],"selectedStyleId":[32],"isDeliveryDoneVisible":[32],"isTermsAccepted":[32]}]]],["chat-button",[[0,"chat-button",{"primaryColor":[1,"primary-color"],"receiverId":[1,"receiver-id"],"receiverAvatar":[1,"receiver-avatar"],"accessToken":[1,"access-token"],"senderId":[1,"sender-id"],"senderIdState":[32],"accessTokenState":[32],"senderInfo":[32],"receiverInfo":[32],"chatRoom":[32],"chatMessages":[32],"isChatIconVisible":[32],"isChatHelpVisible":[32],"isChatExpanded":[32],"isChatVerificationExpanded":[32],"isChatExpandedOnScroll":[32],"currentScroll":[32],"isScrollingDown":[32],"onSetupChat":[64],"onClickChat":[64],"fetchData":[64],"onVerificationSuccess":[64]}]]],["chat-box",[[0,"chat-box",{"primaryColor":[1,"primary-color"],"accessToken":[1,"access-token"],"senderId":[1,"sender-id"],"salonId":[1,"salon-id"],"chatRooms":[32],"activeRoom":[32],"fetchData":[64]}]]],["salon-info",[[0,"salon-info",{"salonId":[2,"salon-id"],"salonInfo":[32],"fetchData":[64]}]]],["salon-latest-reviews",[[0,"salon-latest-reviews",{"salonId":[2,"salon-id"],"primaryColor":[1,"primary-color"],"salonReviews":[32],"isLoading":[32],"fetchData":[64]}]]],["salon-lookbook",[[0,"salon-lookbook",{"salonId":[2,"salon-id"],"isLoading":[32],"isLoadingMore":[32],"hideLoadMore":[32],"currentPage":[32],"totalLookbooks":[32],"salonCategories":[32],"salonLookbooks":[32],"sortBy":[32],"filterBy":[32],"isLayoutSetup":[32],"fetchData":[64],"fetchLookbooks":[64],"onChangeFiltering":[64],"onChangeSorting":[64],"onLoadMore":[64],"fetchCategories":[64]}]]],["salon-reviews",[[0,"salon-reviews",{"salonId":[2,"salon-id"],"primaryColor":[1,"primary-color"],"salonInfo":[32],"stats":[32],"totalReviews":[32],"allReviews":[32],"isLoading":[32],"isSorting":[32],"isFiltering":[32],"isLoadingMore":[32],"canLoadMore":[32],"page":[32],"filterBy":[32],"sortBy":[32]}]]],["style-detail",[[0,"style-detail",{"salonId":[2,"salon-id"],"salonLookbook":[1,"salon-lookbook"],"lookbookInfo":[32],"isModalOpen":[32],"currentMediaIdx":[32],"currentMedia":[32],"albumMedias":[32],"similarStyles":[32],"totalComments":[32],"lookbookComments":[32],"isLayoutSetup":[32],"fetchData":[64]}]]],["salon-booking",[[0,"salon-booking",{"salonId":[2,"salon-id"],"buttonClass":[1,"button-class"],"buttonText":[1,"button-text"],"primaryColor":[1,"primary-color"]}]]],["salon-booking-modal",[[0,"salon-booking-modal",{"salonId":[2,"salon-id"],"primaryColor":[1,"primary-color"],"redirectUrl":[1,"redirect-url"],"isModalOpen":[32]}]]],["salon-gift-card",[[0,"salon-gift-card",{"salonId":[2,"salon-id"],"buttonClass":[1,"button-class"],"buttonText":[1,"button-text"],"primaryColor":[1,"primary-color"]}]]],["salon-gift-card-modal",[[0,"salon-gift-card-modal",{"salonId":[2,"salon-id"],"primaryColor":[1,"primary-color"],"isModalOpen":[32]}]]],["salon-ranking",[[0,"salon-ranking",{"ranking":[2],"height":[2],"width":[2]}]]],["salon-services",[[0,"salon-services",{"salonId":[2,"salon-id"],"buttonClass":[1,"button-class"],"salonServices":[32],"isLoading":[32],"fetchData":[64]}]]],["salon-stylists",[[0,"salon-stylists",{"salonId":[2,"salon-id"],"salonStylists":[32],"totalStylists":[32],"page":[32],"isLoading":[32],"isLoadingMore":[32],"canLoadMore":[32],"fetchData":[64],"onLoadMore":[64]}]]],["buy-giftcard-verification",[[0,"buy-giftcard-verification",{"salonId":[1,"salon-id"],"onSuccess":[16],"step":[32],"userInfo":[32],"inputtedPhone":[32],"isSearchingUser":[32],"errorMessage":[32]}]]],["user-form",[[0,"user-form",{"onSuccess":[16],"type":[32],"currentUser":[32]}]]],["magensa-payment",[[0,"magensa-payment",{"isProcessing":[4,"is-processing"],"processingError":[1,"processing-error"],"salonId":[1,"salon-id"],"paymentAmount":[1,"payment-amount"],"onPaymentSuccess":[16],"onPaymentError":[16],"isSubmitting":[32],"errorMessage":[32],"cardNumber":[32],"cardExpiry":[32],"cardCCV":[32],"cardName":[32]}]]],["buy-giftcard-succeed",[[0,"buy-giftcard-succeed",{"duration":[32]}]]],["chat-rooms",[[0,"chat-rooms",{"senderId":[2,"sender-id"],"salonId":[2,"salon-id"],"chatRooms":[16],"clients":[16],"activeRoom":[16],"accessToken":[1,"access-token"],"onClickRoom":[16],"keyword":[32]}]]],["salon-locations",[[0,"salon-locations",{"salonId":[2,"salon-id"],"salonInfo":[1,"salon-info"],"isLoading":[4,"is-loading"],"withBorder":[4,"with-border"],"salonInfoState":[32]}]]],["icon-date",[[0,"icon-date",{"size":[2]}]]],["icon-location-marker",[[0,"icon-location-marker",{"size":[2]}]]],["icon-phone",[[0,"icon-phone",{"size":[2]}]]],["notify-sounds",[[0,"notify-sounds"]]],["salon-latest-styles",[[0,"salon-latest-styles",{"salonId":[2,"salon-id"],"isLoading":[4,"is-loading"],"withBorder":[4,"with-border"],"isLoadingState":[32],"latestStyles":[32],"fetchData":[64]}]]],["salon-schedules",[[0,"salon-schedules",{"salonId":[2,"salon-id"],"salonInfo":[1,"salon-info"],"isLoading":[4,"is-loading"],"withBorder":[4,"with-border"],"salonInfoState":[32]}]]],["chat-messages",[[0,"chat-messages",{"sender":[16],"receiver":[16],"messages":[16],"chatRoomId":[1,"chat-room-id"],"messagesLength":[32],"isScrollIconVisible":[32]}]]],["wizard-existing-user",[[0,"wizard-existing-user",{"salonId":[1,"salon-id"],"inputtedPhone":[1,"inputted-phone"],"onClose":[16],"onSuccess":[16],"step":[32],"errorMessage":[32],"isSubmitting":[32],"activatCode":[32]}]]],["wizard-new-user",[[0,"wizard-new-user",{"salonId":[1,"salon-id"],"inputtedPhone":[1,"inputted-phone"],"firstName":[1,"first-name"],"lastName":[1,"last-name"],"onClose":[16],"onSuccess":[16],"step":[32],"errorMessage":[32],"isSubmitting":[32],"activatCode":[32]}]]],["activate-form",[[0,"activate-form",{"username":[1],"password":[1],"onSuccess":[16],"isSubmitting":[32],"error":[32],"confirmCode":[32],"onSubmit":[64],"resendCode":[64]}]]],["change-password-form",[[0,"change-password-form",{"username":[1],"onSuccess":[16],"isSubmitting":[32],"error":[32],"confirmCode":[32],"password":[32],"onSubmit":[64],"resendCode":[64]}]]],["chat-form",[[0,"chat-form",{"accessToken":[1,"access-token"],"sender":[16],"chatRoom":[16]}]]],["credit-card-types",[[0,"credit-card-types",{"css":[8]}]]],["google-map",[[0,"google-map",{"locationName":[1,"location-name"],"locationAddress":[1,"location-address"]}]]],["icon-checked",[[0,"icon-checked",{"size":[2]}]]],["powered-by-favesalon",[[0,"powered-by-favesalon",{"css":[8]}]]],["register-form",[[0,"register-form",{"onSuccess":[16],"isSubmitting":[32],"error":[32],"firstName":[32],"lastName":[32],"email":[32],"phone":[32],"password":[32],"onSubmit":[64]}]]],["reset-password-form",[[0,"reset-password-form",{"onSuccess":[16],"isSubmitting":[32],"error":[32],"username":[32],"onSubmit":[64]}]]],["login-form",[[0,"login-form",{"onSuccess":[16],"isSubmitting":[32],"error":[32],"username":[32],"password":[32],"onSubmit":[64]}]]],["icon-loading",[[0,"icon-loading",{"size":[2]}]]],["user-avatar",[[0,"user-avatar",{"size":[2],"name":[1],"description":[1],"nameStyle":[16],"shortName":[1,"short-name"],"avatar":[1]}]]]], options);
148
148
  });
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
2
  import { C as Colors } from './colors-ea36347a.js';
3
- import { H as HttpService } from './services-392da128.js';
3
+ import { H as HttpService } from './services-48c99e41.js';
4
4
  import './_commonjsHelpers-9bc404fc.js';
5
5
 
6
6
  const loginFormCss = ".form--user-login .form--login-label{cursor:pointer;display:block;margin-top:0;margin-bottom:6px}.form--user-login input,.form--user-login button{border:1px solid #cecece;box-sizing:border-box;display:inline-block;width:100%;padding:4px 11px;height:44px;-moz-transition:all 0.3s;-webkit-transition:all 0.3s;transition:all 0.3s;-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px}.form--user-login button{background-color:#001529;border:1px solid #001529;color:#fff;cursor:pointer;height:44px}.form--user-login button:disabled{background-color:#cecece;border:1px solid #cecece;color:#212121}";
@@ -0,0 +1,136 @@
1
+ import { r as registerInstance, h } from './index-888e99e3.js';
2
+ import { I as Inputmask } from './inputmask-afacb9e0.js';
3
+ import { H as HttpService, g as get_1 } from './services-48c99e41.js';
4
+ import { C as Colors } from './colors-ea36347a.js';
5
+ import './_commonjsHelpers-9bc404fc.js';
6
+
7
+ const magensaPaymentCss = "magensa-payment{display:block;width:100%}.magensa-payment--form *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.magensa-payment--form input[type=\"number\"]{padding:8px 16px 8px 28px !important}";
8
+
9
+ const MagensaPayment = class {
10
+ constructor(hostRef) {
11
+ registerInstance(this, hostRef);
12
+ this.isProcessing = undefined;
13
+ this.processingError = undefined;
14
+ this.salonId = undefined;
15
+ this.paymentAmount = undefined;
16
+ this.onPaymentSuccess = undefined;
17
+ this.onPaymentError = undefined;
18
+ this.isSubmitting = undefined;
19
+ this.errorMessage = undefined;
20
+ this.cardNumber = undefined;
21
+ this.cardExpiry = undefined;
22
+ this.cardCCV = undefined;
23
+ this.cardName = undefined;
24
+ }
25
+ componentDidRender() {
26
+ this.cardNumberInput && Inputmask({ mask: '9999 9999 9999 9999' }).mask(this.cardNumberInput);
27
+ this.cardExpiryInput && Inputmask({ mask: '99/99' }).mask(this.cardExpiryInput);
28
+ }
29
+ async onSubmit() {
30
+ this.isSubmitting = true;
31
+ this.errorMessage = null;
32
+ try {
33
+ const [expiryMonth, expiryYear] = String(this.cardExpiry || '').split('/');
34
+ if (!!this.cardName && !!this.cardNumber && !!this.cardCCV && !!expiryMonth && !!expiryYear) {
35
+ const { queueId } = await HttpService().magensaCreateQueue(this.salonId, {
36
+ ManualEntryInput: {
37
+ AddressLine1: null,
38
+ AddressLine2: null,
39
+ Country: null,
40
+ State: null,
41
+ City: null,
42
+ Zip: null,
43
+ NameOnCard: this.cardName,
44
+ PAN: Number(String(this.cardNumber).split(' ').join('')),
45
+ ExpirationDate: `${expiryYear}${expiryMonth}`,
46
+ CVV: this.cardCCV,
47
+ },
48
+ Amount: this.paymentAmount,
49
+ });
50
+ this.onPaymentSuccess(queueId);
51
+ }
52
+ else {
53
+ const errorMessage = 'Please input all credit card info before submitting';
54
+ this.errorMessage = errorMessage;
55
+ this.onPaymentError(errorMessage, {});
56
+ }
57
+ }
58
+ catch (reponse) {
59
+ const errorMessage = get_1(reponse, 'message') || get_1(reponse, 'error.message') || get_1(reponse, 'response.data.message') || `Something went wrong with your credit card`;
60
+ this.errorMessage = errorMessage;
61
+ this.onPaymentError(errorMessage, reponse.response || reponse);
62
+ }
63
+ this.isSubmitting = false;
64
+ }
65
+ render() {
66
+ const isSubmitting = this.isSubmitting || this.isProcessing;
67
+ const errorMessage = this.errorMessage || this.processingError;
68
+ return (h("div", { class: "magensa-payment--form" }, h("div", { style: { fontSize: '20px', fontWeight: '700', marginTop: '32px' } }, "Payment"), h("div", { style: { marginTop: '8px', marginLeft: '-6px' } }, h("credit-card-types", null)), h("div", { style: { marginTop: '24px' } }, h("div", { style: { fontSize: '18px' } }, "Card number"), h("div", { style: { marginTop: '8px' } }, h("input", { type: "text", placeholder: "#### #### #### ####", autoComplete: "new-password", ref: el => this.cardNumberInput = el, onInput: (evt) => this.cardNumber = evt.target.value, style: {
69
+ border: `1px solid ${Colors.Gray03}`,
70
+ backgroundColor: Colors.White,
71
+ color: Colors.TextColor,
72
+ borderRadius: '8px',
73
+ padding: '8px 16px',
74
+ height: '48px',
75
+ width: '100%',
76
+ fontSize: '22px',
77
+ fontWeight: '700',
78
+ } }))), h("div", { style: { display: 'flex', alignItems: 'center', marginTop: '24px' } }, h("div", { style: { width: '48%' } }, h("div", { style: { fontSize: '18px' } }, "Expire date"), h("div", { style: { marginTop: '8px' } }, h("input", { type: "text", placeholder: "MM/YY", autoComplete: "new-password", ref: el => this.cardExpiryInput = el, onInput: (evt) => this.cardExpiry = evt.target.value, style: {
79
+ border: `1px solid ${Colors.Gray03}`,
80
+ backgroundColor: Colors.White,
81
+ color: Colors.TextColor,
82
+ borderRadius: '8px',
83
+ padding: '8px 16px',
84
+ height: '48px',
85
+ width: '100%',
86
+ fontSize: '22px',
87
+ fontWeight: '700',
88
+ } }))), h("div", { style: { width: '48%', marginLeft: '4%' } }, h("div", { style: { fontSize: '18px' } }, "CCV"), h("div", { style: { marginTop: '8px' } }, h("input", { type: "text", autoComplete: "new-password", onInput: (evt) => this.cardCCV = evt.target.value, style: {
89
+ border: `1px solid ${Colors.Gray03}`,
90
+ backgroundColor: Colors.White,
91
+ color: Colors.TextColor,
92
+ borderRadius: '8px',
93
+ padding: '8px 16px',
94
+ height: '48px',
95
+ width: '100%',
96
+ fontSize: '22px',
97
+ fontWeight: '700',
98
+ } })))), h("div", { style: { marginTop: '24px' } }, h("div", { style: { fontSize: '18px' } }, "Card name"), h("div", { style: { marginTop: '8px' } }, h("input", { type: "text", autoComplete: "new-password", onInput: (evt) => this.cardName = evt.target.value, style: {
99
+ border: `1px solid ${Colors.Gray03}`,
100
+ backgroundColor: Colors.White,
101
+ color: Colors.TextColor,
102
+ borderRadius: '8px',
103
+ padding: '8px 16px',
104
+ height: '48px',
105
+ width: '100%',
106
+ fontSize: '22px',
107
+ fontWeight: '700',
108
+ } }))), h("div", { style: { marginTop: '24px' } }, !isSubmitting && errorMessage && (h("div", { style: {
109
+ color: Colors.Red03,
110
+ marginBottom: '16px',
111
+ } }, errorMessage)), h("button", { type: "button", disabled: isSubmitting, style: {
112
+ border: `1px solid ${Colors.Secondary}`,
113
+ backgroundColor: Colors.Secondary,
114
+ color: Colors.White,
115
+ borderRadius: '8px',
116
+ cursor: 'pointer',
117
+ fontSize: '16px',
118
+ fontWeight: '700',
119
+ paddingLeft: '24px',
120
+ paddingRight: '24px',
121
+ height: '44px',
122
+ width: '100%',
123
+ ...isSubmitting ? {
124
+ color: Colors.TextColor,
125
+ borderColor: Colors.Gray03,
126
+ backgroundColor: Colors.Gray03,
127
+ display: 'flex',
128
+ alignItems: 'center',
129
+ justifyContent: 'center',
130
+ } : {},
131
+ }, onClick: () => this.onSubmit() }, "Submit ", isSubmitting && (h("span", { style: { marginLeft: '4px' } }, h("icon-loading", null)))))));
132
+ }
133
+ };
134
+ MagensaPayment.style = magensaPaymentCss;
135
+
136
+ export { MagensaPayment as magensa_payment };
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
- import { H as HttpService, g as get_1 } from './services-392da128.js';
2
+ import { H as HttpService, g as get_1 } from './services-48c99e41.js';
3
3
  import { C as Colors } from './colors-ea36347a.js';
4
4
  import './_commonjsHelpers-9bc404fc.js';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
- import { H as HttpService, g as get_1 } from './services-392da128.js';
2
+ import { H as HttpService, g as get_1 } from './services-48c99e41.js';
3
3
  import { C as Colors } from './colors-ea36347a.js';
4
4
  import './_commonjsHelpers-9bc404fc.js';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
- import { H as HttpService } from './services-392da128.js';
2
+ import { H as HttpService } from './services-48c99e41.js';
3
3
  import './_commonjsHelpers-9bc404fc.js';
4
4
  import './colors-ea36347a.js';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
- import { H as HttpService, d as dayjs_min, h as shortDateYearFormat } from './services-392da128.js';
2
+ import { H as HttpService, d as dayjs_min, h as shortDateYearFormat } from './services-48c99e41.js';
3
3
  import { C as Colors } from './colors-ea36347a.js';
4
4
  import { g as getRatingText } from './utils-359c37f7.js';
5
5
  import './_commonjsHelpers-9bc404fc.js';
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
2
  import { C as Colors } from './colors-ea36347a.js';
3
- import { H as HttpService, k as isVideoMedia } from './services-392da128.js';
3
+ import { H as HttpService, k as isVideoMedia } from './services-48c99e41.js';
4
4
  import './_commonjsHelpers-9bc404fc.js';
5
5
 
6
6
  const indexCss = "salon-latest-styles .view--salon-styles--item{width:120px;height:120px}@media (min-width: 1024px){salon-latest-styles .view--salon-styles--item{width:200px;height:200px}}";
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
2
  import { a as formatWebsiteUrl, b as formatFullAddress } from './utils-359c37f7.js';
3
3
  import { C as Colors } from './colors-ea36347a.js';
4
- import { H as HttpService } from './services-392da128.js';
4
+ import { H as HttpService } from './services-48c99e41.js';
5
5
  import './_commonjsHelpers-9bc404fc.js';
6
6
 
7
7
  const indexCss = "@media (min-width: 768px){salon-locations .salon-contact--links{overflow:hidden;margin-left:-32px}salon-locations .salon-contact--links-item{float:left;display:flex;flex-direction:row;align-items:center;font-size:16px;min-width:300px;padding-left:32px}salon-locations .salon-contact--links-item:nth-child(2n+1){clear:left}salon-locations .salon-contact--links-item+.salon-contact--links-item{margin-top:8px}}";
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
2
  import { C as Colors } from './colors-ea36347a.js';
3
- import { H as HttpService } from './services-392da128.js';
3
+ import { H as HttpService } from './services-48c99e41.js';
4
4
  import './_commonjsHelpers-9bc404fc.js';
5
5
 
6
6
  const indexCss = "@media (max-width: 768px){salon-lookbook .view-header{display:block !important}salon-lookbook .salon-loobook--serch-result{margin-bottom:16px}salon-lookbook .salon-loobook--filter-wrapper>label,salon-lookbook .salon-loobook--sort-wrapper>label{display:none !important}}";
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
- import { H as HttpService, d as dayjs_min, h as shortDateYearFormat } from './services-392da128.js';
2
+ import { H as HttpService, d as dayjs_min, h as shortDateYearFormat } from './services-48c99e41.js';
3
3
  import { C as Colors } from './colors-ea36347a.js';
4
4
  import './_commonjsHelpers-9bc404fc.js';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
- import { H as HttpService, B as BusinessHourStatus } from './services-392da128.js';
2
+ import { H as HttpService, B as BusinessHourStatus } from './services-48c99e41.js';
3
3
  import { C as Colors } from './colors-ea36347a.js';
4
4
  import './_commonjsHelpers-9bc404fc.js';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
- import { H as HttpService, j as sortBy_1 } from './services-392da128.js';
2
+ import { H as HttpService, j as sortBy_1 } from './services-48c99e41.js';
3
3
  import { C as Colors } from './colors-ea36347a.js';
4
4
  import './_commonjsHelpers-9bc404fc.js';
5
5
 
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
2
  import { C as Colors } from './colors-ea36347a.js';
3
- import { H as HttpService } from './services-392da128.js';
3
+ import { H as HttpService } from './services-48c99e41.js';
4
4
  import './_commonjsHelpers-9bc404fc.js';
5
5
 
6
6
  const indexCss = ".view--salon-stylists{overflow:hidden;margin-left:-12px;margin-top:-12px}.view--salon-stylists .salon-stylist{float:left;padding-left:12px;padding-top:12px;width:50%}.view--salon-stylists .salon-stylist--avatar{height:180px}@media (min-width: 576px){.view--salon-stylists .salon-stylist{width:33.33%;max-width:240px}}@media (min-width: 768px){.view--salon-stylists{margin-left:-24px;margin-top:-24px}.view--salon-stylists .salon-stylist{padding-left:24px;padding-top:24px;width:264px;max-width:none}.view--salon-stylists .salon-stylist--avatar{height:240px}}";
@@ -23674,7 +23674,6 @@ class GiftCardSettings {
23674
23674
  }
23675
23675
  function createGiftCardSettings(blob) {
23676
23676
  return {
23677
- isMagensaPayment: false,
23678
23677
  acceptCustomAmount: Boolean(blob.accept_custom_amount),
23679
23678
  acceptPaymentOnline: Boolean(blob.accept_payment_online),
23680
23679
  giftCardTerms: blob.gift_card_terms,
@@ -23687,6 +23686,9 @@ function createGiftCardSettings(blob) {
23687
23686
  blob.recommend_amount3,
23688
23687
  blob.recommend_amount4,
23689
23688
  ],
23689
+ // POS settings
23690
+ isDuoPricingEnabled: Boolean((blob.pos_setting || {}).enable_duo_pricing),
23691
+ paymentFeeRate: (blob.pos_setting || {}).interchange_rate || 0,
23690
23692
  };
23691
23693
  }
23692
23694
 
@@ -24080,10 +24082,7 @@ class HttpService {
24080
24082
  return this.http.get(url)
24081
24083
  .then(response => {
24082
24084
  const blob = get_1(response, 'data.data', {});
24083
- return {
24084
- ...createGiftCardSettings(blob),
24085
- isMagensaPayment: salonId === 49989,
24086
- };
24085
+ return createGiftCardSettings(blob);
24087
24086
  })
24088
24087
  .catch(() => (null));
24089
24088
  }
@@ -24110,6 +24109,22 @@ class HttpService {
24110
24109
  }
24111
24110
  return Promise.resolve({});
24112
24111
  }
24112
+ magensaCreateQueue(salonId, options) {
24113
+ const message = 'Failed to process your payment. Please try again or contact us for assistance';
24114
+ const url = `${apiV2Prefix}/magensa/${salonId}/create-queue`;
24115
+ return this.http.post(url, options)
24116
+ .then(response => {
24117
+ const queueId = get_1(response, 'data.magensa_queue', null);
24118
+ const dataQueueId = get_1(response, 'data.data.magensa_queue', null);
24119
+ if (dataQueueId || queueId) {
24120
+ return Promise.resolve({ queueId: dataQueueId || queueId });
24121
+ }
24122
+ return Promise.reject({ message, response });
24123
+ })
24124
+ .catch(response => {
24125
+ return Promise.reject({ message, response });
24126
+ });
24127
+ }
24113
24128
  magensaProcessToken(salonId, options) {
24114
24129
  const url = `${apiV2Prefix}/magensa/${salonId}/process-token`;
24115
24130
  return this.http.post(url, options)
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
- import { d as dayjs_min, H as HttpService, k as isVideoMedia, e as getSalonImage, h as shortDateYearFormat } from './services-392da128.js';
2
+ import { d as dayjs_min, H as HttpService, k as isVideoMedia, e as getSalonImage, h as shortDateYearFormat } from './services-48c99e41.js';
3
3
  import { r as relativeTime } from './relativeTime-15477f02.js';
4
4
  import { C as Colors } from './colors-ea36347a.js';
5
5
  import './_commonjsHelpers-9bc404fc.js';
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
- import { H as HttpService, g as get_1 } from './services-392da128.js';
2
+ import { H as HttpService, g as get_1 } from './services-48c99e41.js';
3
3
  import { C as Colors } from './colors-ea36347a.js';
4
4
  import './_commonjsHelpers-9bc404fc.js';
5
5
 
@@ -102,6 +102,9 @@ const WizardExistingUser = class {
102
102
  color: Colors.Black,
103
103
  borderColor: Colors.Gray03,
104
104
  backgroundColor: Colors.Gray03,
105
+ display: 'flex',
106
+ alignItems: 'center',
107
+ justifyContent: 'center',
105
108
  } : {},
106
109
  }, onClick: () => this.activateAccount() }, "Submit ", this.isSubmitting && (h("span", { style: { marginLeft: '4px' } }, h("icon-loading", null))))), h("div", { style: { marginTop: '16px' } }, h("button", { type: "button", disabled: this.isSubmitting, style: {
107
110
  border: `1px solid ${Colors.Gray03}`,
@@ -159,7 +162,7 @@ const WizardExistingUser = class {
159
162
  borderColor: Colors.Gray03,
160
163
  backgroundColor: Colors.Gray03,
161
164
  } : {},
162
- }, onClick: () => this.sendLoginCode() }, "Verify now ", this.isSubmitting && (h("span", { style: { marginLeft: '4px' } }, h("icon-loading", null)))))));
165
+ }, onClick: () => this.sendLoginCode() }, "Verify now ", this.isSubmitting && (h("span", { style: { marginLeft: '4px', position: 'relative', top: '2px' } }, h("icon-loading", null)))))));
163
166
  }
164
167
  };
165
168
  WizardExistingUser.style = wizardExistingUserCss;
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h } from './index-888e99e3.js';
2
- import { H as HttpService, g as get_1 } from './services-392da128.js';
2
+ import { H as HttpService, g as get_1 } from './services-48c99e41.js';
3
3
  import { C as Colors } from './colors-ea36347a.js';
4
4
  import './_commonjsHelpers-9bc404fc.js';
5
5
 
@@ -134,6 +134,9 @@ const WizardNewUser = class {
134
134
  color: Colors.Black,
135
135
  borderColor: Colors.Gray03,
136
136
  backgroundColor: Colors.Gray03,
137
+ display: 'flex',
138
+ alignItems: 'center',
139
+ justifyContent: 'center',
137
140
  } : {},
138
141
  }, onClick: () => this.activateAccount() }, "Submit ", this.isSubmitting && (h("span", { style: { marginLeft: '4px' } }, h("icon-loading", null))))), h("div", { style: { marginTop: '16px' } }, h("button", { type: "button", disabled: this.isSubmitting, style: {
139
142
  border: `1px solid ${Colors.Gray02}`,
@@ -191,7 +194,7 @@ const WizardNewUser = class {
191
194
  borderColor: Colors.Gray03,
192
195
  backgroundColor: Colors.Gray03,
193
196
  } : {},
194
- }, onClick: () => this.verifyAccount() }, "Verify now ", this.isSubmitting && (h("span", { style: { marginLeft: '4px' } }, h("icon-loading", null)))))));
197
+ }, onClick: () => this.verifyAccount() }, "Verify now ", this.isSubmitting && (h("span", { style: { marginLeft: '4px', position: 'relative', top: '2px' } }, h("icon-loading", null)))))));
195
198
  }
196
199
  };
197
200
  WizardNewUser.style = wizardNewUserCss;
@@ -14,7 +14,6 @@ export declare class BuyGiftcardForm {
14
14
  deliveryInput?: HTMLInputElement;
15
15
  deliveryReenterInput?: HTMLInputElement;
16
16
  salonId: string;
17
- teConnect: any;
18
17
  isLoading: boolean;
19
18
  isSubmitting: boolean;
20
19
  errorMessage: string;
@@ -39,10 +38,8 @@ export declare class BuyGiftcardForm {
39
38
  isTermsAccepted: boolean;
40
39
  componentDidLoad(): Promise<void>;
41
40
  private saveTrackingData;
42
- private fetchMagensaCredentials;
43
41
  private fetchSalonInfo;
44
42
  private fetchGiftCardSettings;
45
- private initMagensaPayment;
46
43
  private onClickDeliveryDone;
47
44
  private renderPaymentOnlineDisabled;
48
45
  private renderUserVerificationForm;
@@ -51,8 +48,8 @@ export declare class BuyGiftcardForm {
51
48
  private onSubmitGiftCardForm;
52
49
  private renderGiftCardForm;
53
50
  private renderPaymentSucceed;
54
- private createCardPayment;
55
- private onSubmitPaymentForm;
51
+ private onPaymentSuccess;
52
+ private onPaymentError;
56
53
  private renderPaymentForm;
57
54
  private renderSalonInfo;
58
55
  private renderSkeletons;
@@ -6,7 +6,7 @@ declare enum FormStep {
6
6
  UserRegister = "Booking Register"
7
7
  }
8
8
  export declare class BuyGiftcardVerification {
9
- nativeInput?: HTMLInputElement;
9
+ phoneInputRef?: HTMLInputElement;
10
10
  salonId: string;
11
11
  onSuccess: (user: User) => void;
12
12
  step: FormStep;
@@ -14,7 +14,7 @@ export declare class BuyGiftcardVerification {
14
14
  inputtedPhone: string;
15
15
  isSearchingUser: boolean;
16
16
  errorMessage: string;
17
- componentDidLoad(): void;
17
+ componentDidRender(): void;
18
18
  private onSubmitUserInfo;
19
19
  private renderUserInfoForm;
20
20
  private onSearchClient;
@@ -0,0 +1,19 @@
1
+ export declare class MagensaPayment {
2
+ cardNumberInput?: HTMLInputElement;
3
+ cardExpiryInput?: HTMLInputElement;
4
+ isProcessing: boolean;
5
+ processingError: string;
6
+ salonId: string;
7
+ paymentAmount: string;
8
+ onPaymentSuccess: (queueId: any) => void;
9
+ onPaymentError: (message: any, response: any) => void;
10
+ isSubmitting: boolean;
11
+ errorMessage: string;
12
+ cardNumber: string;
13
+ cardExpiry: string;
14
+ cardCCV: string;
15
+ cardName: string;
16
+ componentDidRender(): void;
17
+ private onSubmit;
18
+ render(): any;
19
+ }