favesalon-embed 0.0.4 → 0.1.0

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 (241) hide show
  1. package/LICENSE +21 -0
  2. package/{cjs → dist/cjs}/_commonjsHelpers-5cfcba41.js +0 -0
  3. package/dist/cjs/colors-38421769.js +69 -0
  4. package/dist/cjs/favesalon-embed.cjs.js +20 -0
  5. package/{cjs → dist/cjs}/global-9073d10e.js +0 -0
  6. package/dist/cjs/google-map_5.cjs.entry.js +291 -0
  7. package/{cjs/index-48ac68d0.js → dist/cjs/index-7f190886.js} +1924 -0
  8. package/{cjs/index-d5de0b9d.js → dist/cjs/index-e6bea8f5.js} +10 -0
  9. package/{cjs → dist/cjs}/index.cjs.js +0 -0
  10. package/dist/cjs/loader.cjs.js +22 -0
  11. package/{cjs → dist/cjs}/salon-booking-modal.cjs.entry.js +5 -5
  12. package/{cjs → dist/cjs}/salon-booking.cjs.entry.js +6 -7
  13. package/dist/cjs/salon-gift-card-modal.cjs.entry.js +28 -0
  14. package/{cjs → dist/cjs}/salon-gift-card.cjs.entry.js +7 -7
  15. package/dist/cjs/salon-latest-reviews.cjs.entry.js +95 -0
  16. package/{cjs/salon-lookbook_2.cjs.entry.js → dist/cjs/salon-lookbook.cjs.entry.js} +23 -57
  17. package/{cjs → dist/cjs}/salon-ranking.cjs.entry.js +7 -7
  18. package/dist/cjs/salon-reviews.cjs.entry.js +186 -0
  19. package/dist/cjs/salon-services.cjs.entry.js +78 -0
  20. package/dist/cjs/salon-stylists.cjs.entry.js +112 -0
  21. package/{cjs/services-f1102d4a.js → dist/cjs/services-eee8f251.js} +265 -393
  22. package/dist/cjs/style-detail.cjs.entry.js +310 -0
  23. package/dist/cjs/user-avatar.cjs.entry.js +41 -0
  24. package/{cjs → dist/cjs}/utils-c5a33b3c.js +0 -0
  25. package/{collection → dist/collection}/collection-manifest.json +2 -3
  26. package/dist/collection/components/google-map/assets/map--placeholder.jpeg +0 -0
  27. package/{collection → dist/collection}/components/google-map/index.css +0 -1
  28. package/dist/collection/components/google-map/index.js +86 -0
  29. package/{collection → dist/collection}/components/salon-booking/index.css +10 -24
  30. package/{collection → dist/collection}/components/salon-booking/index.js +3 -3
  31. package/{collection → dist/collection}/components/salon-booking/salon-booking-modal.js +4 -4
  32. package/dist/collection/components/salon-gift-card/index.css +25 -0
  33. package/{collection → dist/collection}/components/salon-gift-card/index.js +4 -3
  34. package/{collection → dist/collection}/components/salon-gift-card/salon-gift-card-modal.js +24 -3
  35. package/{collection/components/salon-locations → dist/collection/components/salon-info}/index.css +0 -0
  36. package/{collection → dist/collection}/components/salon-info/index.js +6 -32
  37. package/{collection → dist/collection}/components/salon-latest-reviews/index.css +0 -3
  38. package/dist/collection/components/salon-latest-reviews/index.js +176 -0
  39. package/dist/collection/components/salon-latest-styles/index.css +10 -0
  40. package/dist/collection/components/salon-latest-styles/index.js +178 -0
  41. package/{collection/components/salon-contact → dist/collection/components/salon-locations}/index.css +6 -6
  42. package/dist/collection/components/salon-locations/index.js +151 -0
  43. package/{collection → dist/collection}/components/salon-lookbook/index.css +0 -9
  44. package/{collection → dist/collection}/components/salon-lookbook/index.js +19 -19
  45. package/{collection → dist/collection}/components/salon-ranking/index.css +0 -0
  46. package/{collection → dist/collection}/components/salon-ranking/index.js +5 -5
  47. package/{collection → dist/collection}/components/salon-reviews/index.css +0 -0
  48. package/dist/collection/components/salon-reviews/index.js +286 -0
  49. package/dist/collection/components/salon-schedules/index.css +15 -0
  50. package/dist/collection/components/salon-schedules/index.js +189 -0
  51. package/{collection → dist/collection}/components/salon-services/index.css +0 -0
  52. package/{collection → dist/collection}/components/salon-services/index.js +51 -8
  53. package/{collection → dist/collection}/components/salon-stylists/index.css +0 -8
  54. package/dist/collection/components/salon-stylists/index.js +183 -0
  55. package/dist/collection/components/style-detail/index.css +62 -0
  56. package/dist/collection/components/style-detail/index.js +461 -0
  57. package/{collection → dist/collection}/components/user-avatar/index.css +0 -0
  58. package/{collection → dist/collection}/components/user-avatar/index.js +2 -2
  59. package/dist/collection/constants/colors.js +65 -0
  60. package/{collection → dist/collection}/global/global.js +0 -0
  61. package/{collection → dist/collection}/index.js +0 -0
  62. package/dist/collection/services/services.js +174 -0
  63. package/dist/collection/types/common.js +11 -0
  64. package/{collection → dist/collection}/types/review.js +9 -5
  65. package/dist/collection/types/salon.js +58 -0
  66. package/{collection → dist/collection}/types/service.js +0 -0
  67. package/dist/collection/types/style.js +128 -0
  68. package/{collection → dist/collection}/types/stylist.js +12 -9
  69. package/{favesalon-embed/index.esm.js → dist/collection/types/tmp.js} +0 -0
  70. package/{collection → dist/collection}/types/user.js +2 -2
  71. package/{collection → dist/collection}/utils/utils.js +0 -0
  72. package/{custom-elements → dist/custom-elements}/index.d.ts +12 -18
  73. package/{custom-elements → dist/custom-elements}/index.js +1227 -1035
  74. package/{esm → dist/esm}/_commonjsHelpers-098d5b27.js +0 -0
  75. package/dist/esm/colors-ea36347a.js +67 -0
  76. package/dist/esm/favesalon-embed.js +18 -0
  77. package/{esm → dist/esm}/global-e1089ffd.js +0 -0
  78. package/dist/esm/google-map_5.entry.js +283 -0
  79. package/{esm/index-0f8eed73.js → dist/esm/index-6af0a03d.js} +10 -1
  80. package/{esm/index-67d677ba.js → dist/esm/index-80523fec.js} +1924 -1
  81. package/{esm → dist/esm}/index.js +0 -0
  82. package/dist/esm/loader.js +18 -0
  83. package/{esm → dist/esm}/polyfills/core-js.js +0 -0
  84. package/{esm → dist/esm}/polyfills/css-shim.js +0 -0
  85. package/{esm → dist/esm}/polyfills/dom.js +0 -0
  86. package/{esm → dist/esm}/polyfills/es5-html-element.js +0 -0
  87. package/{esm → dist/esm}/polyfills/index.js +0 -0
  88. package/{esm → dist/esm}/polyfills/system.js +0 -0
  89. package/{esm → dist/esm}/salon-booking-modal.entry.js +5 -5
  90. package/{esm → dist/esm}/salon-booking.entry.js +5 -6
  91. package/dist/esm/salon-gift-card-modal.entry.js +24 -0
  92. package/{esm → dist/esm}/salon-gift-card.entry.js +6 -6
  93. package/dist/esm/salon-latest-reviews.entry.js +91 -0
  94. package/{esm/salon-lookbook_2.entry.js → dist/esm/salon-lookbook.entry.js} +24 -57
  95. package/{esm → dist/esm}/salon-ranking.entry.js +7 -7
  96. package/dist/esm/salon-reviews.entry.js +182 -0
  97. package/dist/esm/salon-services.entry.js +74 -0
  98. package/dist/esm/salon-stylists.entry.js +108 -0
  99. package/{esm/services-74d84ca9.js → dist/esm/services-295247b1.js} +263 -392
  100. package/dist/esm/style-detail.entry.js +306 -0
  101. package/dist/esm/user-avatar.entry.js +37 -0
  102. package/{esm → dist/esm}/utils-e97485e0.js +0 -0
  103. package/dist/favesalon-embed/assets/map--placeholder.jpeg +0 -0
  104. package/{favesalon-embed → dist/favesalon-embed}/favesalon-embed.css +1 -1
  105. package/dist/favesalon-embed/favesalon-embed.esm.js +1 -0
  106. package/dist/favesalon-embed/index.esm.js +0 -0
  107. package/dist/favesalon-embed/p-292b97ba.entry.js +1 -0
  108. package/{favesalon-embed → dist/favesalon-embed}/p-47e646f8.js +0 -0
  109. package/dist/favesalon-embed/p-4869dfed.entry.js +1 -0
  110. package/{favesalon-embed → dist/favesalon-embed}/p-4a5eca9a.js +0 -0
  111. package/dist/favesalon-embed/p-4aee4fd9.entry.js +1 -0
  112. package/dist/favesalon-embed/p-5528c705.entry.js +1 -0
  113. package/dist/favesalon-embed/p-612ad685.entry.js +1 -0
  114. package/dist/favesalon-embed/p-75aef7e0.entry.js +1 -0
  115. package/dist/favesalon-embed/p-8c780874.entry.js +1 -0
  116. package/dist/favesalon-embed/p-8dbf04c5.js +1 -0
  117. package/dist/favesalon-embed/p-9f31061a.entry.js +1 -0
  118. package/dist/favesalon-embed/p-a33331cc.js +1 -0
  119. package/dist/favesalon-embed/p-a60d78e9.entry.js +1 -0
  120. package/dist/favesalon-embed/p-a6debdae.entry.js +1 -0
  121. package/dist/favesalon-embed/p-bad1e9a7.entry.js +1 -0
  122. package/dist/favesalon-embed/p-c2ecb365.js +1 -0
  123. package/dist/favesalon-embed/p-c7dea70c.entry.js +1 -0
  124. package/{favesalon-embed → dist/favesalon-embed}/p-d6083940.js +0 -0
  125. package/dist/favesalon-embed/p-f0e14641.entry.js +1 -0
  126. package/dist/favesalon-embed/p-fc9a5551.js +6 -0
  127. package/{index.cjs.js → dist/index.cjs.js} +0 -0
  128. package/{index.js → dist/index.js} +0 -0
  129. package/dist/types/components/google-map/index.d.ts +5 -0
  130. package/{types → dist/types}/components/salon-booking/index.d.ts +0 -0
  131. package/{types → dist/types}/components/salon-booking/salon-booking-modal.d.ts +0 -0
  132. package/{types → dist/types}/components/salon-gift-card/index.d.ts +0 -0
  133. package/{types → dist/types}/components/salon-gift-card/salon-gift-card-modal.d.ts +1 -0
  134. package/{types → dist/types}/components/salon-info/index.d.ts +0 -1
  135. package/{types → dist/types}/components/salon-latest-reviews/index.d.ts +2 -0
  136. package/dist/types/components/salon-latest-styles/index.d.ts +12 -0
  137. package/{types → dist/types}/components/salon-locations/index.d.ts +2 -0
  138. package/{types → dist/types}/components/salon-lookbook/index.d.ts +3 -3
  139. package/{types → dist/types}/components/salon-ranking/index.d.ts +0 -0
  140. package/dist/types/components/salon-reviews/index.d.ts +24 -0
  141. package/{types → dist/types}/components/salon-schedules/index.d.ts +2 -0
  142. package/{types → dist/types}/components/salon-services/index.d.ts +1 -0
  143. package/{types → dist/types}/components/salon-stylists/index.d.ts +6 -0
  144. package/dist/types/components/style-detail/index.d.ts +24 -0
  145. package/{types → dist/types}/components/user-avatar/index.d.ts +0 -0
  146. package/{types → dist/types}/components.d.ts +54 -59
  147. package/dist/types/constants/colors.d.ts +65 -0
  148. package/{types → dist/types}/index.d.ts +0 -0
  149. package/dist/types/services/services.d.ts +60 -0
  150. package/{types → dist/types}/stencil-public-runtime.d.ts +0 -0
  151. package/dist/types/types/common.d.ts +11 -0
  152. package/{types → dist/types}/types/review.d.ts +4 -0
  153. package/{types → dist/types}/types/salon.d.ts +3 -1
  154. package/{types → dist/types}/types/service.d.ts +0 -0
  155. package/dist/types/types/style.d.ts +88 -0
  156. package/{types → dist/types}/types/stylist.d.ts +1 -1
  157. package/dist/types/types/tmp.d.ts +0 -0
  158. package/{types → dist/types}/types/user.d.ts +2 -2
  159. package/{types → dist/types}/utils/utils.d.ts +0 -0
  160. package/loader/cdn.js +3 -0
  161. package/loader/index.cjs.js +3 -0
  162. package/loader/index.d.ts +12 -0
  163. package/loader/index.es2017.js +3 -0
  164. package/loader/index.js +4 -0
  165. package/loader/package.json +10 -0
  166. package/package.json +18 -13
  167. package/readme.md +24 -7
  168. package/cjs/colors-7f354880.js +0 -95
  169. package/cjs/favesalon-embed.cjs.js +0 -20
  170. package/cjs/google-map.cjs.entry.js +0 -47
  171. package/cjs/index-95daad08.js +0 -1928
  172. package/cjs/loader.cjs.js +0 -22
  173. package/cjs/salon-contact_4.cjs.entry.js +0 -155
  174. package/cjs/salon-gift-card-modal.cjs.entry.js +0 -25
  175. package/cjs/salon-info.cjs.entry.js +0 -35
  176. package/cjs/salon-latest-reviews.cjs.entry.js +0 -58
  177. package/cjs/salon-lookbook-modal.cjs.entry.js +0 -141
  178. package/cjs/salon-reviews.cjs.entry.js +0 -205
  179. package/cjs/salon-services.cjs.entry.js +0 -47
  180. package/cjs/salon-stylists.cjs.entry.js +0 -54
  181. package/collection/components/google-map/index.js +0 -97
  182. package/collection/components/salon-contact/index.js +0 -88
  183. package/collection/components/salon-gift-card/index.css +0 -25
  184. package/collection/components/salon-info/index.css +0 -3
  185. package/collection/components/salon-latest-reviews/index.js +0 -108
  186. package/collection/components/salon-locations/index.js +0 -80
  187. package/collection/components/salon-lookbook/lookbook-modal.css +0 -72
  188. package/collection/components/salon-lookbook/salon-lookbook-modal.js +0 -248
  189. package/collection/components/salon-reviews/index.js +0 -317
  190. package/collection/components/salon-schedules/index.css +0 -14
  191. package/collection/components/salon-schedules/index.js +0 -103
  192. package/collection/components/salon-styles/index.css +0 -23
  193. package/collection/components/salon-styles/index.js +0 -100
  194. package/collection/components/salon-stylists/index.js +0 -96
  195. package/collection/constants/colors.js +0 -91
  196. package/collection/services/services.js +0 -225
  197. package/collection/types/common.js +0 -2
  198. package/collection/types/salon.js +0 -52
  199. package/collection/types/style.js +0 -103
  200. package/esm/colors-1ec90c5f.js +0 -93
  201. package/esm/favesalon-embed.js +0 -18
  202. package/esm/google-map.entry.js +0 -43
  203. package/esm/index-09d43e3e.js +0 -1926
  204. package/esm/loader.js +0 -18
  205. package/esm/salon-contact_4.entry.js +0 -148
  206. package/esm/salon-gift-card-modal.entry.js +0 -21
  207. package/esm/salon-info.entry.js +0 -31
  208. package/esm/salon-latest-reviews.entry.js +0 -54
  209. package/esm/salon-lookbook-modal.entry.js +0 -137
  210. package/esm/salon-reviews.entry.js +0 -201
  211. package/esm/salon-services.entry.js +0 -43
  212. package/esm/salon-stylists.entry.js +0 -50
  213. package/favesalon-embed/favesalon-embed.esm.js +0 -1
  214. package/favesalon-embed/p-0188d4dc.entry.js +0 -1
  215. package/favesalon-embed/p-0318501e.js +0 -1
  216. package/favesalon-embed/p-078f242d.entry.js +0 -1
  217. package/favesalon-embed/p-13e23c61.entry.js +0 -1
  218. package/favesalon-embed/p-17df13ad.js +0 -1
  219. package/favesalon-embed/p-1a3179c8.entry.js +0 -1
  220. package/favesalon-embed/p-20aa75de.js +0 -6
  221. package/favesalon-embed/p-2901a6d6.entry.js +0 -1
  222. package/favesalon-embed/p-2b861430.entry.js +0 -1
  223. package/favesalon-embed/p-44d810a0.js +0 -1
  224. package/favesalon-embed/p-4c68700f.entry.js +0 -1
  225. package/favesalon-embed/p-4e2d7b29.js +0 -1
  226. package/favesalon-embed/p-6b845bf1.entry.js +0 -1
  227. package/favesalon-embed/p-7350f6b5.entry.js +0 -1
  228. package/favesalon-embed/p-897c2b1c.entry.js +0 -1
  229. package/favesalon-embed/p-8e60f56f.entry.js +0 -1
  230. package/favesalon-embed/p-a49afdc1.entry.js +0 -1
  231. package/favesalon-embed/p-c93867c4.entry.js +0 -1
  232. package/favesalon-embed/p-ea6a097f.entry.js +0 -1
  233. package/types/components/google-map/index.d.ts +0 -10
  234. package/types/components/salon-contact/index.d.ts +0 -9
  235. package/types/components/salon-lookbook/salon-lookbook-modal.d.ts +0 -13
  236. package/types/components/salon-reviews/index.d.ts +0 -24
  237. package/types/components/salon-styles/index.d.ts +0 -9
  238. package/types/constants/colors.d.ts +0 -88
  239. package/types/services/services.d.ts +0 -26
  240. package/types/types/common.d.ts +0 -2
  241. package/types/types/style.d.ts +0 -59
@@ -1,91 +0,0 @@
1
- export const Colors = {
2
- // Neutral Color
3
- Black: '#000000',
4
- White: '#ffffff',
5
- Primary: '#5C1973',
6
- Danger: '#E92626',
7
- Success: '#3FB34F',
8
- Warning: '#F17714',
9
- Info: '#013385',
10
- Black01: '#141414',
11
- Black02: '#1f1f1f',
12
- Black03: '#262626',
13
- Gray01: '#333333',
14
- Gray02: '#666666',
15
- Gray03: '#999999',
16
- Gray04: '#DBDBDB',
17
- Gray05: '#EFEFEF',
18
- Gray06: '#F5F5F5',
19
- // Accent Colors
20
- DarkBlue01: '#E8E8EF',
21
- DarkBlue02: '#7674A0',
22
- DarkBlue03: '#1B1761',
23
- DarkBlue04: '#100E3A',
24
- DarkBlue05: '#08071D',
25
- Violet01: '#EFE8F1',
26
- Violet02: '#9D75AB',
27
- Violet03: '#5C1973',
28
- Violet04: '#370F45',
29
- Violet05: '#1C0722',
30
- Pink01: '#FDE9F2',
31
- Pink02: '#F27DAF',
32
- Pink03: '#E9267A',
33
- Pink04: '#8C1749',
34
- Pink05: '#2F0818',
35
- Blue01: '#E6EBF3',
36
- Blue02: '#6785B6',
37
- Blue03: '#013385',
38
- Blue04: '#011F50',
39
- Blue05: '#000F28',
40
- Green01: '#ECF7ED',
41
- Green02: '#8CD195',
42
- Green03: '#3FB34F',
43
- Green04: '#266B2F',
44
- Green05: '#0D2410',
45
- Orange01: '#FEF1E8',
46
- Orange02: '#F7AD72',
47
- Orange03: '#F17714',
48
- Orange04: '#91470C',
49
- Orange05: '#301804',
50
- Yellow01: '#FFFAED',
51
- Yellow02: '#FDE392',
52
- Yellow03: '#FCD14A',
53
- Yellow04: '#977D2C',
54
- Yellow05: '#322A0F',
55
- Red01: '#FD2727',
56
- Red02: '#FF4D4F',
57
- Red03: '#FFA39E',
58
- Red04: '#FFCCC7',
59
- Red05: '#FFF1F0',
60
- // deprecated
61
- BluePurple01: '#2D3B8A',
62
- BluePurple02: '#36459D',
63
- BluePurple03: '#5760A1',
64
- BluePurple04: '#828AB9',
65
- BluePurple05: '#ABB0D0',
66
- Coral01: '#F16B68',
67
- Coral02: '#F68A87',
68
- Coral03: '#F7A6A3',
69
- Coral04: '#FAC4C2',
70
- Coral05: '#FCE0DF',
71
- YellowLight01: '#F0E902',
72
- YellowLight02: '#F5ED33',
73
- YellowLight03: '#F8F266',
74
- YellowLight04: '#FAF599',
75
- YellowLight05: '#FCF9CC',
76
- YellowCyber01: '#FDCF00',
77
- YellowCyber02: '#FCD932',
78
- YellowCyber03: '#FFE365',
79
- YellowCyber04: '#FFED99',
80
- YellowCyber05: '#FFF5CC',
81
- Turquoise01: '#00E4CB',
82
- Turquoise02: '#33E8D6',
83
- Turquoise03: '#67F0DF',
84
- Turquoise04: '#99F4EB',
85
- Turquoise05: '#CCFAF5',
86
- Purple01: '#8A5BED',
87
- Purple02: '#9970F0',
88
- Purple03: '#B394F2',
89
- Purple04: '#CCB8F7',
90
- Purple05: '#E6DBFA',
91
- };
@@ -1,225 +0,0 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
- import sortBy from 'lodash/sortBy';
13
- import groupBy from 'lodash/groupBy';
14
- import axios from 'axios';
15
- import { createSalon } from '../types/salon';
16
- import { createFavesalonLookbook, createFavesalonStyle, createFaveStyleComent } from '../types/style';
17
- import { createService } from '../types/service';
18
- import { createStylist } from '../types/stylist';
19
- import { createReview } from '../types/review';
20
- class HttpService {
21
- constructor() {
22
- this.http = null;
23
- this.http = axios.create({
24
- baseURL: 'https://favesalon.com',
25
- headers: {},
26
- });
27
- }
28
- fetchSalonInfo(salonId) {
29
- const url = 'api/salon/settings-public';
30
- return this.http.post(url, { salon_id: salonId })
31
- .then((response) => {
32
- const { status, data } = response.data;
33
- return status && data ? createSalon(data.Salon) : null;
34
- })
35
- .catch(() => (null));
36
- }
37
- fetchReviews(url, options, allReviews) {
38
- const { noLoop } = options, restOptions = __rest(options, ["noLoop"]);
39
- return this.http.post(url, restOptions)
40
- .then((response) => {
41
- const { status, data } = response.data;
42
- if (status) {
43
- const reviews = (data || []).filter(blob => Math.ceil(Number(blob.avg_point)) > 0).map(createReview);
44
- // fetch next page's reviews
45
- if (!noLoop && reviews.length >= options.limit) {
46
- return this.fetchReviews(url, Object.assign(Object.assign({}, options), { page: options.page + 1 }), allReviews.concat(reviews));
47
- }
48
- const finalReviews = options.page === 1 ? reviews : allReviews.concat(reviews);
49
- return {
50
- totalReviews: finalReviews.length || 0,
51
- allReviews: finalReviews,
52
- };
53
- }
54
- return { totalReviews: 0, allReviews: [] };
55
- });
56
- }
57
- fetchSalonReviews(salonId, options) {
58
- const url = '/api/salon/reviews';
59
- return this.fetchReviews(url, Object.assign({ page: 1, limit: 5, salon_id: salonId, avg_point_greater_than: 0 }, options), [])
60
- .then(response => {
61
- const { totalReviews, allReviews } = response;
62
- return {
63
- total: totalReviews,
64
- allItems: allReviews,
65
- };
66
- })
67
- .catch(() => ({ total: 0, allItems: [] }));
68
- }
69
- decorateServiceGroups(groups) {
70
- return groups.map((cate, index) => {
71
- const cateName = cate.name;
72
- const categoryId = `${cate.service_id}-${String(cateName).toLowerCase().split(' ').join('-')}-${cate.order}-index-${index}`;
73
- const sortedSubCates = sortBy(cate.service_groups, [subCate => subCate.order]);
74
- return {
75
- id: categoryId,
76
- name: cateName,
77
- type: 'category',
78
- data: sortedSubCates.map((subCate, subCateIndex) => {
79
- const subCateId = `${categoryId}-${String(subCate.name).toLowerCase().split(' ').join('-')}-${subCate.order}-index-${subCateIndex}`;
80
- return {
81
- key: subCateId,
82
- name: subCate.category,
83
- type: 'sub-category',
84
- data: (subCate.services || []).map(rawService => {
85
- const serviceObj = createService(rawService);
86
- return Object.assign(Object.assign({}, serviceObj), { type: 'service' });
87
- }),
88
- };
89
- }),
90
- };
91
- });
92
- }
93
- fetchSalonServices(salonId) {
94
- const url = `api/salon/services?v=2&id=${salonId}`;
95
- return this.http.get(url)
96
- .then(response => {
97
- const { status, data } = response.data;
98
- if (status) {
99
- return this.decorateServiceGroups(data || []);
100
- }
101
- return [];
102
- })
103
- .catch(() => ([]));
104
- }
105
- fetchSalonStylists(salonId) {
106
- const fetchStylistSchedules = this.http.get(`api/calendar/resource/stylists?salon_id=${salonId}`)
107
- .then((response) => {
108
- const { status, data } = response.data;
109
- return status ? (data || []) : [];
110
- })
111
- .catch(() => ([]));
112
- const fetchStylistSkills = this.http.get(`api/salon/skill-stylists/${salonId}`)
113
- .then((response) => {
114
- const { status, data } = response.data;
115
- return status ? (data || []).map(blob => (Object.assign(Object.assign({}, blob), { id: blob.stylist_id }))) : [];
116
- })
117
- .catch(() => ([]));
118
- return Promise.all([fetchStylistSchedules, fetchStylistSkills])
119
- .then(results => {
120
- const [stylistSchedules, stylistSkills] = results;
121
- const allStylistGroups = groupBy(stylistSchedules.concat(stylistSkills), stylist => stylist.id);
122
- return Object.keys(allStylistGroups)
123
- .filter(stylistId => Number(stylistId) > 0)
124
- .map(stylistId => {
125
- const [schedule, skills] = allStylistGroups[stylistId];
126
- return createStylist(Object.assign(Object.assign({}, schedule), skills));
127
- });
128
- })
129
- .catch(() => []);
130
- }
131
- fetchSalonCategories() {
132
- return this.http.post('api/home/get-service', { limit: 50 })
133
- .then((response) => {
134
- const { status, data } = response.data;
135
- if (status) {
136
- return (data || []).map(blob => {
137
- return {
138
- id: blob.id,
139
- name: blob.name,
140
- image: blob.full_image,
141
- imageThumb: blob.full_thumb_image,
142
- };
143
- });
144
- }
145
- return [];
146
- })
147
- .catch(() => ([]));
148
- }
149
- fetchSalonLookbooks(salonId, options) {
150
- const noResult = { total: 0, allLookbooks: [] };
151
- return this.http.post('api/style/filter', Object.assign({ page: 1, limit: 20, salon_id: salonId }, options))
152
- .then((response) => {
153
- const { status, data, paging } = response.data;
154
- if (status) {
155
- return {
156
- total: paging.total_item || 0,
157
- allLookbooks: (data || []).map(createFavesalonStyle),
158
- };
159
- }
160
- return noResult;
161
- })
162
- .catch(() => (noResult));
163
- }
164
- fetchSalonPhotos(salonId) {
165
- return this.http
166
- .post('api/style/filter', {
167
- page: 1,
168
- limit: 20,
169
- salon_id: salonId,
170
- })
171
- .then((response) => {
172
- const { status, data } = response.data;
173
- if (status) {
174
- return (data || []).map(createFavesalonStyle);
175
- }
176
- return [];
177
- })
178
- .catch(() => {
179
- return [];
180
- });
181
- }
182
- fetchAllStyles(url, options, allStyles) {
183
- return this.http.post(url, options)
184
- .then((response) => {
185
- const { status, data } = response.data;
186
- if (status) {
187
- const styles = (data || []).map(createFavesalonStyle);
188
- // fetch next page styles
189
- if (styles.length >= options.limit) {
190
- return this.fetchAllStyles(url, Object.assign(Object.assign({}, options), { page: options.page + 1 }), allStyles.concat(styles));
191
- }
192
- return options.page === 1 ? styles : allStyles;
193
- }
194
- return allStyles;
195
- });
196
- }
197
- fetchAllSalonPhotos(salonId, options) {
198
- return this.fetchAllStyles('api/style/filter', Object.assign({ page: 1, limit: 20, salon_id: salonId }, options), []).catch(() => {
199
- return [];
200
- });
201
- }
202
- fetchStyleDetail(styleId) {
203
- return this.http.post('api/home/style-info', { photo_id: styleId })
204
- .then((response) => {
205
- const { status, data } = response.data;
206
- if (status) {
207
- return createFavesalonLookbook(data);
208
- }
209
- return null;
210
- })
211
- .catch(() => (null));
212
- }
213
- fetchStyleComments(options) {
214
- return this.http.post('api/comment/filter', options)
215
- .then(response => {
216
- const { status, data } = response.data;
217
- if (status) {
218
- return (data || []).map(createFaveStyleComent);
219
- }
220
- return [];
221
- })
222
- .catch(() => ([]));
223
- }
224
- }
225
- export default () => new HttpService();
@@ -1,2 +0,0 @@
1
- export const shortDate = 'DD MMM YYYY';
2
- export const apiDateFormat = 'YYYY-MM-DD HH:mm:ss';
@@ -1,52 +0,0 @@
1
- export var BusinessHourStatus;
2
- (function (BusinessHourStatus) {
3
- BusinessHourStatus[BusinessHourStatus["Open"] = 0] = "Open";
4
- BusinessHourStatus[BusinessHourStatus["Close"] = 1] = "Close";
5
- BusinessHourStatus[BusinessHourStatus["ByAppointment"] = 2] = "ByAppointment";
6
- })(BusinessHourStatus || (BusinessHourStatus = {}));
7
- export function createSalon(blob) {
8
- const salonGeoLocations = blob.salon_geolocation || [];
9
- const themeColors = {
10
- 'allure24-blue': '89c8d2',
11
- 'allure24-pink': 'ff7fa2',
12
- 'the-shave': 'af8c45',
13
- 'theme2-dark-green': '90c245',
14
- 'theme2-green': 'bed451',
15
- 'theme2-light-pink': 'd47b99',
16
- 'theme2-purple': 'ab345c',
17
- 'theme3-blue': '076dec',
18
- 'theme3-layout1': 'd59b76',
19
- 'theme3-layout2': 'b02858',
20
- 'theme4-green': '5da826',
21
- 'theme4': '08b89d',
22
- 'theme5': 'f64c4d',
23
- };
24
- return {
25
- id: blob.id,
26
- about: blob.about,
27
- email: blob.email,
28
- fullProfileImage: blob.full_profile_image,
29
- fullCoverImage: blob.full_cover_image,
30
- ownerName: blob.owner_name,
31
- subdomain: blob.subdomain,
32
- website: blob.website,
33
- businessName: blob.business_name,
34
- businessPhone: blob.business_phone,
35
- businessAddress: blob.business_address,
36
- businessLocationLat: salonGeoLocations.length > 0 ? salonGeoLocations[0].location_lat : null,
37
- businessLocationLng: salonGeoLocations.length > 0 ? salonGeoLocations[0].location_lng : null,
38
- city: blob.city,
39
- state: blob.state,
40
- zipcode: blob.zipcode ? Number(blob.zipcode) : null,
41
- businessHours: (blob.business_hours || blob.salon_workingtime || []).map(bh => {
42
- return {
43
- dayName: bh.day_name,
44
- openTime: bh.open_time,
45
- closeTime: bh.close_time,
46
- status: bh.status,
47
- };
48
- }),
49
- rating: Number(blob.rating_point),
50
- primaryColor: themeColors[blob.default_mini_site_template] || themeColors['allure24-blue'],
51
- };
52
- }
@@ -1,103 +0,0 @@
1
- import dayjs from 'dayjs';
2
- import { apiDateFormat } from './common';
3
- import { createSalon } from './salon';
4
- import { createService } from './service';
5
- import { createStylistFromLookbook } from './stylist';
6
- import { createUser } from './user';
7
- export class FaveStyleComent {
8
- constructor(fields) {
9
- Object.assign(this, fields);
10
- }
11
- }
12
- export function createFaveStyleComent(blob) {
13
- const [createdDay, createdTime] = String(blob.create_date).split(' ');
14
- const [updatedDay, updatedTime] = String(blob.update_date).split(' ');
15
- return {
16
- id: blob.id,
17
- type: blob.type,
18
- content: blob.content,
19
- createdDate: dayjs(`${createdDay} ${createdTime}`, apiDateFormat).valueOf(),
20
- updatedDate: dayjs(`${updatedDay} ${updatedTime}`, apiDateFormat).valueOf(),
21
- parentCommentId: blob.parentCommentId,
22
- childComments: blob.child_comment ? blob.child_comment.map(createFaveStyleComent) : [],
23
- owner: createUser(blob.user),
24
- };
25
- }
26
- export class FavesalonAlbum {
27
- constructor(fields) {
28
- Object.assign(this, fields);
29
- }
30
- }
31
- export function createFavesalonAlbum(blob) {
32
- return {
33
- id: blob.id,
34
- name: blob.name,
35
- caption: blob.caption,
36
- description: blob.description,
37
- tags: blob.tags ? blob.tags.filter(tag => !!tag) : [],
38
- salonId: blob.salon_id,
39
- stylistId: blob.beautician_id,
40
- totalMedias: blob.total_medias || 0,
41
- service: blob.service ? createService(blob.service) : null,
42
- isPublic: (typeof blob.is_public !== 'undefined') ? Boolean(blob.is_public) : true,
43
- };
44
- }
45
- export function createFavesalonStyle(blob) {
46
- const [createdDay, createdTime] = String(blob.create_date).split(' ');
47
- const [updatedDay, updatedTime] = String(blob.update_date).split(' ');
48
- return {
49
- id: blob.id,
50
- caption: blob.caption,
51
- description: blob.description,
52
- createdDate: dayjs(`${createdDay} ${createdTime}`, apiDateFormat).valueOf(),
53
- updatedDate: dayjs(`${updatedDay} ${updatedTime}`, apiDateFormat).valueOf(),
54
- mediaType: blob.media_type,
55
- fullImageUrl: blob.full_image_url,
56
- fullImageUrlThumb: blob.full_image_url_thumb,
57
- fullImageUrlMedium: blob.full_image_url_medium,
58
- imgWidth: blob.img_w,
59
- imgHeight: blob.img_h,
60
- s3ImgWidth: blob.s3_img_w,
61
- s3ImgHeight: blob.s3_img_h,
62
- totalLike: blob.total_like,
63
- totalDislike: blob.total_dislike,
64
- totalShare: blob.total_shared,
65
- totalView: blob.view_count,
66
- totalBooking: blob.total_booking,
67
- owner: blob.user ? createUser(blob.user) : null,
68
- };
69
- }
70
- export function createFavesalonLookbook(blob) {
71
- const [createdDay, createdTime] = String(blob.create_date).split(' ');
72
- const [updatedDay, updatedTime] = String(blob.update_date).split(' ');
73
- let albumPhotos = blob.style_in_album ? blob.style_in_album.map(createFavesalonStyle) : [];
74
- if (!albumPhotos.find(ap => ap.id === blob.id)) {
75
- const currentPhoto = createFavesalonStyle(blob);
76
- albumPhotos = [currentPhoto].concat(albumPhotos);
77
- }
78
- return {
79
- id: blob.id,
80
- caption: blob.caption,
81
- description: blob.description,
82
- createdDate: dayjs(`${createdDay} ${createdTime}`, apiDateFormat).valueOf(),
83
- updatedDate: dayjs(`${updatedDay} ${updatedTime}`, apiDateFormat).valueOf(),
84
- mediaType: blob.media_type,
85
- fullImageUrl: blob.full_image_url,
86
- fullImageUrlThumb: blob.full_image_url_thumb,
87
- fullImageUrlMedium: blob.full_image_url_medium,
88
- imgWidth: blob.img_w,
89
- imgHeight: blob.img_h,
90
- s3ImgWidth: blob.s3_img_w,
91
- s3ImgHeight: blob.s3_img_h,
92
- totalLike: blob.total_like,
93
- totalDislike: blob.total_dislike,
94
- totalShare: blob.total_shared,
95
- totalView: blob.view_count,
96
- totalBooking: blob.total_booking,
97
- owner: blob.user ? createUser(blob.user) : null,
98
- salon: blob.salon ? createSalon(blob.salon) : null,
99
- stylist: blob.beautician && blob.beautician.user ? createStylistFromLookbook(blob.beautician) : null,
100
- album: blob.album ? createFavesalonAlbum(blob.album) : null,
101
- albumPhotos,
102
- };
103
- }
@@ -1,93 +0,0 @@
1
- const Colors = {
2
- // Neutral Color
3
- Black: '#000000',
4
- White: '#ffffff',
5
- Primary: '#5C1973',
6
- Danger: '#E92626',
7
- Success: '#3FB34F',
8
- Warning: '#F17714',
9
- Info: '#013385',
10
- Black01: '#141414',
11
- Black02: '#1f1f1f',
12
- Black03: '#262626',
13
- Gray01: '#333333',
14
- Gray02: '#666666',
15
- Gray03: '#999999',
16
- Gray04: '#DBDBDB',
17
- Gray05: '#EFEFEF',
18
- Gray06: '#F5F5F5',
19
- // Accent Colors
20
- DarkBlue01: '#E8E8EF',
21
- DarkBlue02: '#7674A0',
22
- DarkBlue03: '#1B1761',
23
- DarkBlue04: '#100E3A',
24
- DarkBlue05: '#08071D',
25
- Violet01: '#EFE8F1',
26
- Violet02: '#9D75AB',
27
- Violet03: '#5C1973',
28
- Violet04: '#370F45',
29
- Violet05: '#1C0722',
30
- Pink01: '#FDE9F2',
31
- Pink02: '#F27DAF',
32
- Pink03: '#E9267A',
33
- Pink04: '#8C1749',
34
- Pink05: '#2F0818',
35
- Blue01: '#E6EBF3',
36
- Blue02: '#6785B6',
37
- Blue03: '#013385',
38
- Blue04: '#011F50',
39
- Blue05: '#000F28',
40
- Green01: '#ECF7ED',
41
- Green02: '#8CD195',
42
- Green03: '#3FB34F',
43
- Green04: '#266B2F',
44
- Green05: '#0D2410',
45
- Orange01: '#FEF1E8',
46
- Orange02: '#F7AD72',
47
- Orange03: '#F17714',
48
- Orange04: '#91470C',
49
- Orange05: '#301804',
50
- Yellow01: '#FFFAED',
51
- Yellow02: '#FDE392',
52
- Yellow03: '#FCD14A',
53
- Yellow04: '#977D2C',
54
- Yellow05: '#322A0F',
55
- Red01: '#FD2727',
56
- Red02: '#FF4D4F',
57
- Red03: '#FFA39E',
58
- Red04: '#FFCCC7',
59
- Red05: '#FFF1F0',
60
- // deprecated
61
- BluePurple01: '#2D3B8A',
62
- BluePurple02: '#36459D',
63
- BluePurple03: '#5760A1',
64
- BluePurple04: '#828AB9',
65
- BluePurple05: '#ABB0D0',
66
- Coral01: '#F16B68',
67
- Coral02: '#F68A87',
68
- Coral03: '#F7A6A3',
69
- Coral04: '#FAC4C2',
70
- Coral05: '#FCE0DF',
71
- YellowLight01: '#F0E902',
72
- YellowLight02: '#F5ED33',
73
- YellowLight03: '#F8F266',
74
- YellowLight04: '#FAF599',
75
- YellowLight05: '#FCF9CC',
76
- YellowCyber01: '#FDCF00',
77
- YellowCyber02: '#FCD932',
78
- YellowCyber03: '#FFE365',
79
- YellowCyber04: '#FFED99',
80
- YellowCyber05: '#FFF5CC',
81
- Turquoise01: '#00E4CB',
82
- Turquoise02: '#33E8D6',
83
- Turquoise03: '#67F0DF',
84
- Turquoise04: '#99F4EB',
85
- Turquoise05: '#CCFAF5',
86
- Purple01: '#8A5BED',
87
- Purple02: '#9970F0',
88
- Purple03: '#B394F2',
89
- Purple04: '#CCB8F7',
90
- Purple05: '#E6DBFA',
91
- };
92
-
93
- export { Colors as C };
@@ -1,18 +0,0 @@
1
- import { p as promiseResolve, b as bootstrapLazy } from './index-0f8eed73.js';
2
- import './global-e1089ffd.js';
3
-
4
- /*
5
- Stencil Client Patch Browser v2.9.0 | MIT Licensed | https://stenciljs.com
6
- */
7
- const patchBrowser = () => {
8
- const importMeta = import.meta.url;
9
- const opts = {};
10
- if (importMeta !== '') {
11
- opts.resourcesUrl = new URL('.', importMeta).href;
12
- }
13
- return promiseResolve(opts);
14
- };
15
-
16
- patchBrowser().then(options => {
17
- return bootstrapLazy([["salon-info",[[0,"salon-info",{"salonId":[2,"salon-id"],"backgroundColor":[1,"background-color"],"salonInfo":[32],"fetchData":[64]}]]],["salon-latest-reviews",[[0,"salon-latest-reviews",{"salonId":[2,"salon-id"],"salonReviews":[32],"fetchData":[64]}]]],["salon-lookbook-modal",[[0,"salon-lookbook-modal",{"salonId":[2,"salon-id"],"salonLookbook":[1,"salon-lookbook"],"lookbookInfo":[32],"lookbookComments":[32],"isModalOpen":[32],"fetchData":[64]}]]],["salon-reviews",[[0,"salon-reviews",{"salonId":[2,"salon-id"],"primaryColor":[1,"primary-color"],"salonInfo":[32],"totalReviews":[32],"salonReviews":[32],"canLoadMore":[32],"isLoadingMore":[32],"pageOffset":[32],"ratings":[32],"sorting":[32],"fetchData":[64]}]]],["salon-stylists",[[0,"salon-stylists",{"salonId":[2,"salon-id"],"salonStylists":[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"],"isModalOpen":[32]}]]],["salon-services",[[0,"salon-services",{"salonId":[2,"salon-id"],"buttonClass":[1,"button-class"],"salonServices":[32],"fetchData":[64]}]]],["salon-ranking",[[0,"salon-ranking",{"ranking":[2],"height":[2],"width":[2]}]]],["google-map",[[0,"google-map",{"apiKey":[1,"api-key"],"lat":[2],"lng":[2]}]]],["salon-contact_4",[[0,"salon-locations",{"salonId":[2,"salon-id"],"salonInfo":[1,"salon-info"],"salonInfoState":[32]}],[0,"salon-contact",{"salonId":[2,"salon-id"],"salonInfo":[1,"salon-info"],"salonInfoState":[32]}],[0,"salon-schedules",{"salonId":[2,"salon-id"],"salonInfo":[1,"salon-info"],"salonInfoState":[32]}],[0,"salon-styles",{"salonId":[2,"salon-id"],"firstPageStyles":[32],"nestPageStyles":[32],"fetchData":[64]}]]],["salon-lookbook_2",[[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]}],[0,"user-avatar",{"size":[2],"name":[1],"nameStyle":[16],"shortName":[1,"short-name"],"avatar":[1]}]]]], options);
18
- });
@@ -1,43 +0,0 @@
1
- import { r as registerInstance, h } from './index-0f8eed73.js';
2
-
3
- const indexCss = "#google-map-container,google-map{display:block;width:100%;height:100%}";
4
-
5
- let GoogleMap = class {
6
- constructor(hostRef) {
7
- registerInstance(this, hostRef);
8
- this.apiKey = 'AIzaSyBW4PbW9aM2FXZl83Gs7jeRmekEWSzC1sY';
9
- }
10
- componentDidLoad() {
11
- this.injectSDK().then(() => {
12
- setTimeout(() => this.initMap(), 300);
13
- });
14
- }
15
- injectSDK() {
16
- return new Promise((resolve) => {
17
- window['mapInit'] = () => resolve(true);
18
- const script = document.createElement('script');
19
- script.id = 'googleMaps';
20
- if (this.apiKey) {
21
- script.src = 'https://maps.googleapis.com/maps/api/js?key=' + this.apiKey + '&callback=mapInit';
22
- }
23
- else {
24
- script.src = 'https://maps.googleapis.com/maps/api/js?callback=mapInit';
25
- }
26
- document.body.appendChild(script);
27
- return resolve(true);
28
- });
29
- }
30
- initMap() {
31
- const mapOptions = {
32
- center: { lat: this.lat, lng: this.lng },
33
- zoom: 8,
34
- };
35
- this.map = new window.google.maps.Map(document.getElementById('google-map-container'), mapOptions);
36
- }
37
- render() {
38
- return h("div", { id: 'google-map-container' });
39
- }
40
- };
41
- GoogleMap.style = indexCss;
42
-
43
- export { GoogleMap as google_map };