favesalon-embed 1.0.16 → 1.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/custom-elements/index.d.ts +30 -0
- package/dist/favesalon-embed/activate-form.entry.js +1 -1
- package/dist/favesalon-embed/buy-giftcard-form.entry.js +168 -95
- package/dist/favesalon-embed/buy-giftcard-verification.entry.js +38 -18
- package/dist/favesalon-embed/change-password-form.entry.js +1 -1
- package/dist/favesalon-embed/chat-box.entry.js +1 -1
- package/dist/favesalon-embed/chat-button.entry.js +1 -1
- package/dist/favesalon-embed/chat-form.entry.js +1 -1
- package/dist/favesalon-embed/chat-messages.entry.js +1 -1
- package/dist/favesalon-embed/chat-rooms.entry.js +2 -2
- package/dist/favesalon-embed/favesalon-embed.esm.js +1 -1
- package/dist/favesalon-embed/icon-checked.entry.js +19 -0
- package/dist/favesalon-embed/icon-date.entry.js +19 -0
- package/dist/favesalon-embed/icon-loading.entry.js +19 -0
- package/dist/favesalon-embed/icon-location-marker.entry.js +19 -0
- package/dist/favesalon-embed/icon-phone.entry.js +19 -0
- package/dist/favesalon-embed/inputmask-afacb9e0.js +3777 -0
- package/dist/favesalon-embed/login-form.entry.js +1 -1
- package/dist/favesalon-embed/register-form.entry.js +1 -1
- package/dist/favesalon-embed/reset-password-form.entry.js +1 -1
- package/dist/favesalon-embed/salon-info.entry.js +1 -1
- package/dist/favesalon-embed/salon-latest-reviews.entry.js +2 -2
- package/dist/favesalon-embed/salon-latest-styles.entry.js +1 -1
- package/dist/favesalon-embed/salon-locations.entry.js +2 -2
- package/dist/favesalon-embed/salon-lookbook.entry.js +1 -1
- package/dist/favesalon-embed/salon-reviews.entry.js +1 -1
- package/dist/favesalon-embed/salon-schedules.entry.js +1 -1
- package/dist/favesalon-embed/salon-services.entry.js +1 -1
- package/dist/favesalon-embed/salon-stylists.entry.js +1 -1
- package/dist/favesalon-embed/{services-baa3f112.js → services-82948efc.js} +8 -8
- package/dist/favesalon-embed/style-detail.entry.js +1 -1
- package/dist/favesalon-embed/{utils-fd30fb29.js → utils-359c37f7.js} +4 -3
- package/dist/favesalon-embed/wizard-existing-user.entry.js +37 -15
- package/dist/favesalon-embed/wizard-new-user.entry.js +36 -14
- package/dist/types/components/buy-giftcard-form/buy-giftcard-form.d.ts +4 -1
- package/dist/types/components/buy-giftcard-verification/buy-giftcard-verification.d.ts +2 -0
- package/dist/types/components/icon-checked/icon-checked.d.ts +4 -0
- package/dist/types/components/icon-date/icon-date.d.ts +4 -0
- package/dist/types/components/icon-loading/icon-loading.d.ts +4 -0
- package/dist/types/components/icon-location-marker/icon-location-marker.d.ts +4 -0
- package/dist/types/components/icon-phone/icon-phone.d.ts +4 -0
- package/dist/types/components.d.ts +75 -0
- package/dist/types/services/services.d.ts +3 -3
- package/package.json +2 -1
- package/dist/favesalon-embed/services-3dd9f820.js +0 -24104
- package/dist/favesalon-embed/services-45c0e274.js +0 -24122
- package/dist/favesalon-embed/services-65861516.js +0 -24095
- package/dist/favesalon-embed/services-935ba09f.js +0 -24118
- package/dist/favesalon-embed/services-9a686ade.js +0 -24122
|
@@ -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-
|
|
3
|
+
import { H as HttpService } from './services-82948efc.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}";
|
|
@@ -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-
|
|
2
|
+
import { H as HttpService, g as get_1 } from './services-82948efc.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-
|
|
2
|
+
import { H as HttpService, g as get_1 } from './services-82948efc.js';
|
|
3
3
|
import { C as Colors } from './colors-ea36347a.js';
|
|
4
4
|
import './_commonjsHelpers-9bc404fc.js';
|
|
5
5
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as registerInstance, h } from './index-888e99e3.js';
|
|
2
|
-
import { H as HttpService, d as dayjs_min, f as shortDateYearFormat } from './services-
|
|
2
|
+
import { H as HttpService, d as dayjs_min, f as shortDateYearFormat } from './services-82948efc.js';
|
|
3
3
|
import { C as Colors } from './colors-ea36347a.js';
|
|
4
|
-
import { g as getRatingText } from './utils-
|
|
4
|
+
import { g as getRatingText } from './utils-359c37f7.js';
|
|
5
5
|
import './_commonjsHelpers-9bc404fc.js';
|
|
6
6
|
|
|
7
7
|
const indexCss = ".salon-latest-reviews .salon-review{min-width:280px}@media (min-width: 768px){.salon-latest-reviews .salon-review{min-width:300px}}";
|
|
@@ -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, j as isVideoMedia } from './services-
|
|
3
|
+
import { H as HttpService, j as isVideoMedia } from './services-82948efc.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
|
-
import { a as formatWebsiteUrl, b as formatFullAddress } from './utils-
|
|
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-
|
|
4
|
+
import { H as HttpService } from './services-82948efc.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-
|
|
3
|
+
import { H as HttpService } from './services-82948efc.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, f as shortDateYearFormat } from './services-
|
|
2
|
+
import { H as HttpService, d as dayjs_min, f as shortDateYearFormat } from './services-82948efc.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-
|
|
2
|
+
import { H as HttpService, B as BusinessHourStatus } from './services-82948efc.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, h as sortBy_1 } from './services-
|
|
2
|
+
import { H as HttpService, h as sortBy_1 } from './services-82948efc.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-
|
|
3
|
+
import { H as HttpService } from './services-82948efc.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}}";
|
|
@@ -24078,7 +24078,6 @@ class HttpService {
|
|
|
24078
24078
|
const blob = get_1(response, 'data.data', {});
|
|
24079
24079
|
return {
|
|
24080
24080
|
...createGiftCardSettings(blob),
|
|
24081
|
-
acceptPaymentOnline: false,
|
|
24082
24081
|
isMagensaPayment: salonId === 49989,
|
|
24083
24082
|
};
|
|
24084
24083
|
})
|
|
@@ -24096,15 +24095,16 @@ class HttpService {
|
|
|
24096
24095
|
}
|
|
24097
24096
|
fetchMagensaCredentials(salonId) {
|
|
24098
24097
|
return Promise.resolve(salonId ? {
|
|
24099
|
-
|
|
24100
|
-
|
|
24101
|
-
|
|
24102
|
-
|
|
24103
|
-
|
|
24098
|
+
customerCode: 'SK90173281',
|
|
24099
|
+
username: 'MAG437582692',
|
|
24100
|
+
password: `y^5OxmbSnP7Th7`,
|
|
24101
|
+
// TEC credentials
|
|
24102
|
+
processorName: 'TSYS - Production',
|
|
24103
|
+
token: `WEcyNjgxNDM5MS9NQUc1NTU2OTUxODM6WTR0REFaRiQ=`,
|
|
24104
24104
|
} : {});
|
|
24105
24105
|
}
|
|
24106
|
-
magensaProcessToken(options) {
|
|
24107
|
-
const url = `${apiV2Prefix}/magensa/process-token`;
|
|
24106
|
+
magensaProcessToken(salonId, options) {
|
|
24107
|
+
const url = `${apiV2Prefix}/magensa/${salonId}/process-token`;
|
|
24108
24108
|
return this.http.post(url, options)
|
|
24109
24109
|
.then(response => {
|
|
24110
24110
|
return Promise.resolve((response.data || [])[0] || {});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as registerInstance, h } from './index-888e99e3.js';
|
|
2
|
-
import { d as dayjs_min, H as HttpService, j as isVideoMedia, c as getSalonImage, f as shortDateYearFormat } from './services-
|
|
2
|
+
import { d as dayjs_min, H as HttpService, j as isVideoMedia, c as getSalonImage, f as shortDateYearFormat } from './services-82948efc.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';
|
|
@@ -23,9 +23,10 @@ function getRatingText() {
|
|
|
23
23
|
}
|
|
24
24
|
function formatPhoneNumber(phone) {
|
|
25
25
|
return String(phone || '')
|
|
26
|
-
.
|
|
27
|
-
.
|
|
28
|
-
.
|
|
26
|
+
.replaceAll('(', '')
|
|
27
|
+
.replaceAll(')', '')
|
|
28
|
+
.replaceAll('-', '')
|
|
29
|
+
.replaceAll('_', '')
|
|
29
30
|
.replaceAll(' ', '');
|
|
30
31
|
}
|
|
31
32
|
|
|
@@ -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-
|
|
2
|
+
import { H as HttpService, g as get_1 } from './services-82948efc.js';
|
|
3
3
|
import { C as Colors } from './colors-ea36347a.js';
|
|
4
4
|
import './_commonjsHelpers-9bc404fc.js';
|
|
5
5
|
|
|
@@ -70,22 +70,26 @@ const WizardExistingUser = class {
|
|
|
70
70
|
marginBottom: '24px',
|
|
71
71
|
padding: '16px',
|
|
72
72
|
} }, this.errorMessage)), h("div", { style: { marginBottom: '24px' } }, h("div", { style: {
|
|
73
|
-
fontSize: '
|
|
73
|
+
fontSize: '20px',
|
|
74
74
|
fontWeight: '600',
|
|
75
75
|
} }, "Phone verification code sent!"), h("div", { style: {
|
|
76
76
|
marginTop: '4px',
|
|
77
|
-
} }, "You should receive a text message within 30 seconds")), h("div", { style: { marginBottom: '24px' } }, h("input", { type: "text", value: this.activatCode, onInput: (evt) => this.activatCode = evt.target.value, style: {
|
|
78
|
-
border: `1px solid ${Colors.
|
|
77
|
+
} }, "You should receive a text message within 30 seconds")), h("div", { style: { marginBottom: '24px' } }, h("input", { type: "text", placeholder: "Enter Code", value: this.activatCode, disabled: this.isSubmitting, onInput: (evt) => this.activatCode = evt.target.value, style: {
|
|
78
|
+
border: `1px solid ${Colors.Gray03}`,
|
|
79
79
|
backgroundColor: Colors.White,
|
|
80
80
|
borderRadius: '8px',
|
|
81
81
|
padding: '8px 16px',
|
|
82
82
|
height: '48px',
|
|
83
83
|
width: '100%',
|
|
84
|
-
fontSize: '
|
|
85
|
-
fontWeight: '
|
|
84
|
+
fontSize: '22px',
|
|
85
|
+
fontWeight: '700',
|
|
86
|
+
...this.isSubmitting ? {
|
|
87
|
+
borderColor: Colors.Gray03,
|
|
88
|
+
backgroundColor: Colors.Gray03,
|
|
89
|
+
} : {},
|
|
86
90
|
} })), h("div", null, h("button", { type: "button", disabled: this.isSubmitting, style: {
|
|
87
91
|
border: `1px solid ${Colors.Secondary}`,
|
|
88
|
-
|
|
92
|
+
backgroundColor: Colors.Secondary,
|
|
89
93
|
color: Colors.White,
|
|
90
94
|
borderRadius: '8px',
|
|
91
95
|
cursor: 'pointer',
|
|
@@ -95,8 +99,13 @@ const WizardExistingUser = class {
|
|
|
95
99
|
paddingRight: '24px',
|
|
96
100
|
height: '48px',
|
|
97
101
|
width: '100%',
|
|
98
|
-
|
|
99
|
-
|
|
102
|
+
...this.isSubmitting ? {
|
|
103
|
+
color: Colors.Black,
|
|
104
|
+
borderColor: Colors.Gray03,
|
|
105
|
+
backgroundColor: Colors.Gray03,
|
|
106
|
+
} : {},
|
|
107
|
+
}, 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: {
|
|
108
|
+
border: `1px solid ${Colors.Gray03}`,
|
|
100
109
|
background: Colors.White,
|
|
101
110
|
color: Colors.TextColor,
|
|
102
111
|
borderRadius: '8px',
|
|
@@ -106,6 +115,10 @@ const WizardExistingUser = class {
|
|
|
106
115
|
paddingRight: '24px',
|
|
107
116
|
height: '48px',
|
|
108
117
|
width: '100%',
|
|
118
|
+
...this.isSubmitting ? {
|
|
119
|
+
borderColor: Colors.Gray03,
|
|
120
|
+
backgroundColor: Colors.Gray03,
|
|
121
|
+
} : {},
|
|
109
122
|
}, onClick: () => this.sendLoginCode(true) }, "Did not get the code?"))));
|
|
110
123
|
}
|
|
111
124
|
return (h("div", { class: "wizard-existing-user" }, this.errorMessage && (h("div", { style: {
|
|
@@ -114,10 +127,10 @@ const WizardExistingUser = class {
|
|
|
114
127
|
marginBottom: '24px',
|
|
115
128
|
padding: '16px',
|
|
116
129
|
} }, this.errorMessage)), h("div", { style: { marginBottom: '24px' } }, h("div", { style: {
|
|
117
|
-
fontSize: '
|
|
130
|
+
fontSize: '20px',
|
|
118
131
|
fontWeight: '600',
|
|
119
|
-
} }, "Need verification"), h("div", { style: { marginTop: '4px' } }, "We will send you a code to verify your idenity to protect your account"), h("div", { style: { marginTop: '8px', color: Colors.Red03 } }, "Agreed to receive SMS to phone ", this.inputtedPhone)), h("div", { style: { textAlign: 'right' } }, h("button", { type: "button", style: {
|
|
120
|
-
border: `1px solid ${Colors.
|
|
132
|
+
} }, "Need verification"), h("div", { style: { marginTop: '4px' } }, "We will send you a code to verify your idenity to protect your account"), h("div", { style: { marginTop: '8px', color: Colors.Red03 } }, "Agreed to receive SMS to phone ", this.inputtedPhone)), h("div", { style: { textAlign: 'right' } }, h("button", { type: "button", disabled: this.isSubmitting, style: {
|
|
133
|
+
border: `1px solid ${Colors.Gray03}`,
|
|
121
134
|
background: Colors.White,
|
|
122
135
|
color: Colors.TextColor,
|
|
123
136
|
borderRadius: '8px',
|
|
@@ -127,9 +140,13 @@ const WizardExistingUser = class {
|
|
|
127
140
|
paddingRight: '24px',
|
|
128
141
|
height: '48px',
|
|
129
142
|
marginRight: '16px',
|
|
130
|
-
|
|
143
|
+
...this.isSubmitting ? {
|
|
144
|
+
borderColor: Colors.Gray03,
|
|
145
|
+
backgroundColor: Colors.Gray03,
|
|
146
|
+
} : {},
|
|
147
|
+
}, onClick: () => this.onClose() }, "Cancel"), h("button", { type: "button", disabled: this.isSubmitting, style: {
|
|
131
148
|
border: `1px solid ${Colors.Secondary}`,
|
|
132
|
-
|
|
149
|
+
backgroundColor: Colors.Secondary,
|
|
133
150
|
color: Colors.White,
|
|
134
151
|
borderRadius: '8px',
|
|
135
152
|
cursor: 'pointer',
|
|
@@ -138,7 +155,12 @@ const WizardExistingUser = class {
|
|
|
138
155
|
paddingLeft: '24px',
|
|
139
156
|
paddingRight: '24px',
|
|
140
157
|
height: '48px',
|
|
141
|
-
|
|
158
|
+
...this.isSubmitting ? {
|
|
159
|
+
color: Colors.Black,
|
|
160
|
+
borderColor: Colors.Gray03,
|
|
161
|
+
backgroundColor: Colors.Gray03,
|
|
162
|
+
} : {},
|
|
163
|
+
}, onClick: () => this.sendLoginCode() }, "Verify now ", this.isSubmitting && (h("span", { style: { marginLeft: '4px' } }, h("icon-loading", null)))))));
|
|
142
164
|
}
|
|
143
165
|
};
|
|
144
166
|
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-
|
|
2
|
+
import { H as HttpService, g as get_1 } from './services-82948efc.js';
|
|
3
3
|
import { C as Colors } from './colors-ea36347a.js';
|
|
4
4
|
import './_commonjsHelpers-9bc404fc.js';
|
|
5
5
|
|
|
@@ -102,22 +102,26 @@ const WizardNewUser = class {
|
|
|
102
102
|
marginBottom: '24px',
|
|
103
103
|
padding: '16px',
|
|
104
104
|
} }, this.errorMessage)), h("div", { style: { marginBottom: '24px' } }, h("div", { style: {
|
|
105
|
-
fontSize: '
|
|
105
|
+
fontSize: '20px',
|
|
106
106
|
fontWeight: '600',
|
|
107
107
|
} }, "Phone verification code sent!"), h("div", { style: {
|
|
108
108
|
marginTop: '4px',
|
|
109
|
-
} }, "You should receive a text message within 30 seconds")), h("div", { style: { marginBottom: '24px' } }, h("input", { type: "text", value: this.activatCode, onInput: (evt) => this.activatCode = evt.target.value, style: {
|
|
110
|
-
border: `1px solid ${Colors.
|
|
109
|
+
} }, "You should receive a text message within 30 seconds")), h("div", { style: { marginBottom: '24px' } }, h("input", { type: "text", placeholder: "Enter Code", value: this.activatCode, disabled: this.isSubmitting, onInput: (evt) => this.activatCode = evt.target.value, style: {
|
|
110
|
+
border: `1px solid ${Colors.Gray03}`,
|
|
111
111
|
backgroundColor: Colors.White,
|
|
112
112
|
borderRadius: '8px',
|
|
113
113
|
padding: '8px 16px',
|
|
114
114
|
height: '48px',
|
|
115
115
|
width: '100%',
|
|
116
|
-
fontSize: '
|
|
117
|
-
fontWeight: '
|
|
116
|
+
fontSize: '22px',
|
|
117
|
+
fontWeight: '700',
|
|
118
|
+
...this.isSubmitting ? {
|
|
119
|
+
borderColor: Colors.Gray03,
|
|
120
|
+
backgroundColor: Colors.Gray03,
|
|
121
|
+
} : {},
|
|
118
122
|
} })), h("div", null, h("button", { type: "button", disabled: this.isSubmitting, style: {
|
|
119
123
|
border: `1px solid ${Colors.Secondary}`,
|
|
120
|
-
|
|
124
|
+
backgroundColor: Colors.Secondary,
|
|
121
125
|
color: Colors.White,
|
|
122
126
|
borderRadius: '8px',
|
|
123
127
|
cursor: 'pointer',
|
|
@@ -127,7 +131,12 @@ const WizardNewUser = class {
|
|
|
127
131
|
paddingRight: '24px',
|
|
128
132
|
height: '48px',
|
|
129
133
|
width: '100%',
|
|
130
|
-
|
|
134
|
+
...this.isSubmitting ? {
|
|
135
|
+
color: Colors.Black,
|
|
136
|
+
borderColor: Colors.Gray03,
|
|
137
|
+
backgroundColor: Colors.Gray03,
|
|
138
|
+
} : {},
|
|
139
|
+
}, 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: {
|
|
131
140
|
border: `1px solid ${Colors.Gray02}`,
|
|
132
141
|
background: Colors.White,
|
|
133
142
|
color: Colors.TextColor,
|
|
@@ -138,6 +147,10 @@ const WizardNewUser = class {
|
|
|
138
147
|
paddingRight: '24px',
|
|
139
148
|
height: '48px',
|
|
140
149
|
width: '100%',
|
|
150
|
+
...this.isSubmitting ? {
|
|
151
|
+
borderColor: Colors.Gray03,
|
|
152
|
+
backgroundColor: Colors.Gray03,
|
|
153
|
+
} : {},
|
|
141
154
|
}, onClick: () => this.sendLoginCode(true) }, "Did not get the code?"))));
|
|
142
155
|
}
|
|
143
156
|
return (h("div", { class: "wizard-new-user" }, this.errorMessage && (h("div", { style: {
|
|
@@ -146,10 +159,10 @@ const WizardNewUser = class {
|
|
|
146
159
|
marginBottom: '24px',
|
|
147
160
|
padding: '16px',
|
|
148
161
|
} }, this.errorMessage)), h("div", { style: { marginBottom: '24px' } }, h("div", { style: {
|
|
149
|
-
fontSize: '
|
|
162
|
+
fontSize: '20px',
|
|
150
163
|
fontWeight: '600',
|
|
151
|
-
} }, "Your first time purchase gift card"), h("div", { style: { marginTop: '4px' } }, "We need to verify your phone number to prevent online spam purchases."), h("div", { style: { marginTop: '12px' } }, "You agreed to receive SMS to the phone number provided. ", h("br", null), "Message frequency varies. Msg & data rates may apply. Reply STOP to Opt-Out. Reply HELP for help."), h("div", { style: { marginTop: '4px' } }, "View our ", h("a", { target: "_blank", rel: "noopener noreferrer", href: "https://fave.salon/r/privacy-policy", style: { color: Colors.TextColor, textDecoration: 'underline' } }, "Privacy Policy"), " and ", h("a", { target: "_blank", rel: "noopener noreferrer", href: "https://fave.salon//r/terms-for-client", style: { color: Colors.TextColor, textDecoration: 'underline' } }, "Terms of Service"))), h("div", { style: { textAlign: 'right' } }, h("button", { type: "button", style: {
|
|
152
|
-
border: `1px solid ${Colors.
|
|
164
|
+
} }, "Your first time purchase gift card"), h("div", { style: { marginTop: '4px' } }, "We need to verify your phone number to prevent online spam purchases."), h("div", { style: { marginTop: '12px' } }, "You agreed to receive SMS to the phone number provided. ", h("br", null), "Message frequency varies. Msg & data rates may apply. Reply STOP to Opt-Out. Reply HELP for help."), h("div", { style: { marginTop: '4px' } }, "View our ", h("a", { target: "_blank", rel: "noopener noreferrer", href: "https://fave.salon/r/privacy-policy", style: { color: Colors.TextColor, textDecoration: 'underline' } }, "Privacy Policy"), " and ", h("a", { target: "_blank", rel: "noopener noreferrer", href: "https://fave.salon//r/terms-for-client", style: { color: Colors.TextColor, textDecoration: 'underline' } }, "Terms of Service"))), h("div", { style: { textAlign: 'right' } }, h("button", { type: "button", disabled: this.isSubmitting, style: {
|
|
165
|
+
border: `1px solid ${Colors.Gray03}`,
|
|
153
166
|
background: Colors.White,
|
|
154
167
|
color: Colors.TextColor,
|
|
155
168
|
borderRadius: '8px',
|
|
@@ -159,9 +172,13 @@ const WizardNewUser = class {
|
|
|
159
172
|
paddingRight: '24px',
|
|
160
173
|
height: '48px',
|
|
161
174
|
marginRight: '16px',
|
|
162
|
-
|
|
175
|
+
...this.isSubmitting ? {
|
|
176
|
+
borderColor: Colors.Gray03,
|
|
177
|
+
backgroundColor: Colors.Gray03,
|
|
178
|
+
} : {},
|
|
179
|
+
}, onClick: () => this.onClose() }, "Cancel"), h("button", { type: "button", disabled: this.isSubmitting, style: {
|
|
163
180
|
border: `1px solid ${Colors.Secondary}`,
|
|
164
|
-
|
|
181
|
+
backgroundColor: Colors.Secondary,
|
|
165
182
|
color: Colors.White,
|
|
166
183
|
borderRadius: '8px',
|
|
167
184
|
cursor: 'pointer',
|
|
@@ -170,7 +187,12 @@ const WizardNewUser = class {
|
|
|
170
187
|
paddingLeft: '24px',
|
|
171
188
|
paddingRight: '24px',
|
|
172
189
|
height: '48px',
|
|
173
|
-
|
|
190
|
+
...this.isSubmitting ? {
|
|
191
|
+
color: Colors.Black,
|
|
192
|
+
borderColor: Colors.Gray03,
|
|
193
|
+
backgroundColor: Colors.Gray03,
|
|
194
|
+
} : {},
|
|
195
|
+
}, onClick: () => this.verifyAccount() }, "Verify now ", this.isSubmitting && (h("span", { style: { marginLeft: '4px' } }, h("icon-loading", null)))))));
|
|
174
196
|
}
|
|
175
197
|
};
|
|
176
198
|
WizardNewUser.style = wizardNewUserCss;
|
|
@@ -10,6 +10,8 @@ declare enum FormStep {
|
|
|
10
10
|
PaymentSucceed = "Payment Succeed"
|
|
11
11
|
}
|
|
12
12
|
export declare class BuyGiftcardForm {
|
|
13
|
+
deliveryInput?: HTMLInputElement;
|
|
14
|
+
deliveryReenterInput?: HTMLInputElement;
|
|
13
15
|
salonId: string;
|
|
14
16
|
teConnect: any;
|
|
15
17
|
isLoading: boolean;
|
|
@@ -32,11 +34,13 @@ export declare class BuyGiftcardForm {
|
|
|
32
34
|
isInvalidEmails: boolean;
|
|
33
35
|
isInvalidPhones: boolean;
|
|
34
36
|
selectedStyleId: number;
|
|
37
|
+
isDeliveryDoneVisible: boolean;
|
|
35
38
|
componentDidLoad(): Promise<void>;
|
|
36
39
|
private fetchMagensaCredentials;
|
|
37
40
|
private fetchSalonInfo;
|
|
38
41
|
private fetchGiftCardSettings;
|
|
39
42
|
private initMagensaPayment;
|
|
43
|
+
private onClickDeliveryDone;
|
|
40
44
|
private renderPaymentOnlineDisabled;
|
|
41
45
|
private renderUserVerificationForm;
|
|
42
46
|
private onChangeEmail;
|
|
@@ -46,7 +50,6 @@ export declare class BuyGiftcardForm {
|
|
|
46
50
|
private renderPaymentSucceed;
|
|
47
51
|
private createCardPayment;
|
|
48
52
|
private processCardToken;
|
|
49
|
-
private voidPaymentRequest;
|
|
50
53
|
private onSubmitPaymentForm;
|
|
51
54
|
private renderPaymentForm;
|
|
52
55
|
private renderSalonInfo;
|
|
@@ -6,12 +6,14 @@ declare enum FormStep {
|
|
|
6
6
|
UserRegister = "Booking Register"
|
|
7
7
|
}
|
|
8
8
|
export declare class BuyGiftcardVerification {
|
|
9
|
+
nativeInput?: HTMLInputElement;
|
|
9
10
|
salonId: string;
|
|
10
11
|
onSuccess: (user: User) => void;
|
|
11
12
|
step: FormStep;
|
|
12
13
|
userInfo: User;
|
|
13
14
|
inputtedPhone: string;
|
|
14
15
|
isSearchingUser: boolean;
|
|
16
|
+
componentDidLoad(): void;
|
|
15
17
|
private onSubmitUserInfo;
|
|
16
18
|
private renderUserInfoForm;
|
|
17
19
|
private onSearchClient;
|
|
@@ -72,6 +72,21 @@ export namespace Components {
|
|
|
72
72
|
"locationAddress"?: string;
|
|
73
73
|
"locationName"?: string;
|
|
74
74
|
}
|
|
75
|
+
interface IconChecked {
|
|
76
|
+
"size": number;
|
|
77
|
+
}
|
|
78
|
+
interface IconDate {
|
|
79
|
+
"size": number;
|
|
80
|
+
}
|
|
81
|
+
interface IconLoading {
|
|
82
|
+
"size": number;
|
|
83
|
+
}
|
|
84
|
+
interface IconLocationMarker {
|
|
85
|
+
"size": number;
|
|
86
|
+
}
|
|
87
|
+
interface IconPhone {
|
|
88
|
+
"size": number;
|
|
89
|
+
}
|
|
75
90
|
interface LoginForm {
|
|
76
91
|
"onSubmit": (evt: any) => Promise<void>;
|
|
77
92
|
"onSuccess": (user: User) => void;
|
|
@@ -263,6 +278,36 @@ declare global {
|
|
|
263
278
|
prototype: HTMLGoogleMapElement;
|
|
264
279
|
new (): HTMLGoogleMapElement;
|
|
265
280
|
};
|
|
281
|
+
interface HTMLIconCheckedElement extends Components.IconChecked, HTMLStencilElement {
|
|
282
|
+
}
|
|
283
|
+
var HTMLIconCheckedElement: {
|
|
284
|
+
prototype: HTMLIconCheckedElement;
|
|
285
|
+
new (): HTMLIconCheckedElement;
|
|
286
|
+
};
|
|
287
|
+
interface HTMLIconDateElement extends Components.IconDate, HTMLStencilElement {
|
|
288
|
+
}
|
|
289
|
+
var HTMLIconDateElement: {
|
|
290
|
+
prototype: HTMLIconDateElement;
|
|
291
|
+
new (): HTMLIconDateElement;
|
|
292
|
+
};
|
|
293
|
+
interface HTMLIconLoadingElement extends Components.IconLoading, HTMLStencilElement {
|
|
294
|
+
}
|
|
295
|
+
var HTMLIconLoadingElement: {
|
|
296
|
+
prototype: HTMLIconLoadingElement;
|
|
297
|
+
new (): HTMLIconLoadingElement;
|
|
298
|
+
};
|
|
299
|
+
interface HTMLIconLocationMarkerElement extends Components.IconLocationMarker, HTMLStencilElement {
|
|
300
|
+
}
|
|
301
|
+
var HTMLIconLocationMarkerElement: {
|
|
302
|
+
prototype: HTMLIconLocationMarkerElement;
|
|
303
|
+
new (): HTMLIconLocationMarkerElement;
|
|
304
|
+
};
|
|
305
|
+
interface HTMLIconPhoneElement extends Components.IconPhone, HTMLStencilElement {
|
|
306
|
+
}
|
|
307
|
+
var HTMLIconPhoneElement: {
|
|
308
|
+
prototype: HTMLIconPhoneElement;
|
|
309
|
+
new (): HTMLIconPhoneElement;
|
|
310
|
+
};
|
|
266
311
|
interface HTMLLoginFormElement extends Components.LoginForm, HTMLStencilElement {
|
|
267
312
|
}
|
|
268
313
|
var HTMLLoginFormElement: {
|
|
@@ -419,6 +464,11 @@ declare global {
|
|
|
419
464
|
"chat-rooms": HTMLChatRoomsElement;
|
|
420
465
|
"credit-card-types": HTMLCreditCardTypesElement;
|
|
421
466
|
"google-map": HTMLGoogleMapElement;
|
|
467
|
+
"icon-checked": HTMLIconCheckedElement;
|
|
468
|
+
"icon-date": HTMLIconDateElement;
|
|
469
|
+
"icon-loading": HTMLIconLoadingElement;
|
|
470
|
+
"icon-location-marker": HTMLIconLocationMarkerElement;
|
|
471
|
+
"icon-phone": HTMLIconPhoneElement;
|
|
422
472
|
"login-form": HTMLLoginFormElement;
|
|
423
473
|
"notify-sounds": HTMLNotifySoundsElement;
|
|
424
474
|
"powered-by-favesalon": HTMLPoweredByFavesalonElement;
|
|
@@ -501,6 +551,21 @@ declare namespace LocalJSX {
|
|
|
501
551
|
"locationAddress"?: string;
|
|
502
552
|
"locationName"?: string;
|
|
503
553
|
}
|
|
554
|
+
interface IconChecked {
|
|
555
|
+
"size"?: number;
|
|
556
|
+
}
|
|
557
|
+
interface IconDate {
|
|
558
|
+
"size"?: number;
|
|
559
|
+
}
|
|
560
|
+
interface IconLoading {
|
|
561
|
+
"size"?: number;
|
|
562
|
+
}
|
|
563
|
+
interface IconLocationMarker {
|
|
564
|
+
"size"?: number;
|
|
565
|
+
}
|
|
566
|
+
interface IconPhone {
|
|
567
|
+
"size"?: number;
|
|
568
|
+
}
|
|
504
569
|
interface LoginForm {
|
|
505
570
|
"onSuccess"?: (user: User) => void;
|
|
506
571
|
}
|
|
@@ -620,6 +685,11 @@ declare namespace LocalJSX {
|
|
|
620
685
|
"chat-rooms": ChatRooms;
|
|
621
686
|
"credit-card-types": CreditCardTypes;
|
|
622
687
|
"google-map": GoogleMap;
|
|
688
|
+
"icon-checked": IconChecked;
|
|
689
|
+
"icon-date": IconDate;
|
|
690
|
+
"icon-loading": IconLoading;
|
|
691
|
+
"icon-location-marker": IconLocationMarker;
|
|
692
|
+
"icon-phone": IconPhone;
|
|
623
693
|
"login-form": LoginForm;
|
|
624
694
|
"notify-sounds": NotifySounds;
|
|
625
695
|
"powered-by-favesalon": PoweredByFavesalon;
|
|
@@ -661,6 +731,11 @@ declare module "@stencil/core" {
|
|
|
661
731
|
"chat-rooms": LocalJSX.ChatRooms & JSXBase.HTMLAttributes<HTMLChatRoomsElement>;
|
|
662
732
|
"credit-card-types": LocalJSX.CreditCardTypes & JSXBase.HTMLAttributes<HTMLCreditCardTypesElement>;
|
|
663
733
|
"google-map": LocalJSX.GoogleMap & JSXBase.HTMLAttributes<HTMLGoogleMapElement>;
|
|
734
|
+
"icon-checked": LocalJSX.IconChecked & JSXBase.HTMLAttributes<HTMLIconCheckedElement>;
|
|
735
|
+
"icon-date": LocalJSX.IconDate & JSXBase.HTMLAttributes<HTMLIconDateElement>;
|
|
736
|
+
"icon-loading": LocalJSX.IconLoading & JSXBase.HTMLAttributes<HTMLIconLoadingElement>;
|
|
737
|
+
"icon-location-marker": LocalJSX.IconLocationMarker & JSXBase.HTMLAttributes<HTMLIconLocationMarkerElement>;
|
|
738
|
+
"icon-phone": LocalJSX.IconPhone & JSXBase.HTMLAttributes<HTMLIconPhoneElement>;
|
|
664
739
|
"login-form": LocalJSX.LoginForm & JSXBase.HTMLAttributes<HTMLLoginFormElement>;
|
|
665
740
|
"notify-sounds": LocalJSX.NotifySounds & JSXBase.HTMLAttributes<HTMLNotifySoundsElement>;
|
|
666
741
|
"powered-by-favesalon": LocalJSX.PoweredByFavesalon & JSXBase.HTMLAttributes<HTMLPoweredByFavesalonElement>;
|
|
@@ -129,19 +129,19 @@ declare class HttpService {
|
|
|
129
129
|
fetchGiftCardSettings(salonId: any): Promise<any>;
|
|
130
130
|
fetchSalonClientInfo(salonId: any, mobilePhone: any): Promise<{} | {}>;
|
|
131
131
|
fetchMagensaCredentials(salonId: any): Promise<{
|
|
132
|
-
processorName: string;
|
|
133
132
|
customerCode: string;
|
|
134
133
|
username: string;
|
|
135
134
|
password: string;
|
|
135
|
+
processorName: string;
|
|
136
136
|
token: string;
|
|
137
137
|
} | {
|
|
138
|
-
processorName?: undefined;
|
|
139
138
|
customerCode?: undefined;
|
|
140
139
|
username?: undefined;
|
|
141
140
|
password?: undefined;
|
|
141
|
+
processorName?: undefined;
|
|
142
142
|
token?: undefined;
|
|
143
143
|
}>;
|
|
144
|
-
magensaProcessToken(options: any): Promise<any>;
|
|
144
|
+
magensaProcessToken(salonId: any, options: any): Promise<any>;
|
|
145
145
|
magensaConfirmTransaction(options: any): Promise<any>;
|
|
146
146
|
}
|
|
147
147
|
declare const _default: () => HttpService;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "favesalon-embed",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.18",
|
|
4
4
|
"description": "Favesalon Embed",
|
|
5
5
|
"author": "Trung Luu <trung@favesalon.com> (https://favesalon.com)",
|
|
6
6
|
"main": "dist/index.cjs.js",
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"dayjs": "^1.10.7",
|
|
32
32
|
"firebase": "^10.0.0",
|
|
33
33
|
"glamor": "^2.20.40",
|
|
34
|
+
"inputmask": "^5.0.9",
|
|
34
35
|
"lodash": "^4.17.21"
|
|
35
36
|
},
|
|
36
37
|
"devDependencies": {
|