favesalon-embed 0.0.3 → 0.0.5

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 (237) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/_commonjsHelpers-5cfcba41.js +36 -0
  3. package/dist/cjs/chat-button.cjs.entry.js +118 -0
  4. package/dist/cjs/colors-38421769.js +69 -0
  5. package/dist/cjs/favesalon-embed.cjs.js +24 -0
  6. package/dist/cjs/google-map_5.cjs.entry.js +310 -0
  7. package/{cjs/index-7d179a70.js → dist/cjs/index-47c2a5f6.js} +587 -199
  8. package/dist/cjs/index-7f190886.js +4396 -0
  9. package/dist/cjs/loader.cjs.js +23 -0
  10. package/dist/cjs/relativeTime-3721080d.js +9 -0
  11. package/dist/cjs/salon-booking-modal.cjs.entry.js +30 -0
  12. package/dist/cjs/salon-booking.cjs.entry.js +51 -0
  13. package/dist/cjs/salon-gift-card-modal.cjs.entry.js +29 -0
  14. package/dist/cjs/salon-gift-card.cjs.entry.js +51 -0
  15. package/dist/cjs/salon-latest-reviews.cjs.entry.js +97 -0
  16. package/dist/cjs/salon-lookbook.cjs.entry.js +222 -0
  17. package/dist/cjs/salon-ranking.cjs.entry.js +60 -0
  18. package/dist/cjs/salon-reviews.cjs.entry.js +193 -0
  19. package/dist/cjs/salon-services.cjs.entry.js +81 -0
  20. package/dist/cjs/salon-stylists.cjs.entry.js +118 -0
  21. package/dist/cjs/services-125c82d8.js +21492 -0
  22. package/dist/cjs/style-detail.cjs.entry.js +312 -0
  23. package/dist/cjs/user-avatar.cjs.entry.js +45 -0
  24. package/dist/cjs/utils-c5a33b3c.js +23 -0
  25. package/{collection → dist/collection}/collection-manifest.json +5 -4
  26. package/dist/collection/components/chat-button/index.css +122 -0
  27. package/dist/collection/components/chat-button/index.js +218 -0
  28. package/dist/collection/components/chat-conversation/index.js +103 -0
  29. package/dist/collection/components/google-map/assets/map--placeholder.jpeg +0 -0
  30. package/{collection → dist/collection}/components/google-map/index.css +0 -1
  31. package/dist/collection/components/google-map/index.js +90 -0
  32. package/{collection → dist/collection}/components/salon-booking/index.css +11 -20
  33. package/dist/collection/components/salon-booking/index.js +126 -0
  34. package/dist/collection/components/salon-booking/salon-booking-modal.js +92 -0
  35. package/dist/collection/components/salon-gift-card/index.css +30 -0
  36. package/dist/collection/components/salon-gift-card/index.js +126 -0
  37. package/dist/collection/components/salon-gift-card/salon-gift-card-modal.js +73 -0
  38. package/dist/collection/components/salon-info/index.js +77 -0
  39. package/dist/collection/components/salon-latest-reviews/index.js +163 -0
  40. package/dist/collection/components/salon-latest-styles/index.css +12 -0
  41. package/dist/collection/components/salon-latest-styles/index.js +183 -0
  42. package/{collection/components/salon-contact → dist/collection/components/salon-locations}/index.css +7 -4
  43. package/dist/collection/components/salon-locations/index.js +143 -0
  44. package/dist/collection/components/salon-lookbook/index.css +15 -0
  45. package/dist/collection/components/salon-lookbook/index.js +368 -0
  46. package/dist/collection/components/salon-ranking/index.js +117 -0
  47. package/dist/collection/components/salon-reviews/index.css +18 -0
  48. package/dist/collection/components/salon-reviews/index.js +249 -0
  49. package/dist/collection/components/salon-schedules/index.css +18 -0
  50. package/dist/collection/components/salon-schedules/index.js +167 -0
  51. package/dist/collection/components/salon-services/index.css +1 -0
  52. package/dist/collection/components/salon-services/index.js +146 -0
  53. package/dist/collection/components/salon-stylists/index.js +184 -0
  54. package/dist/collection/components/style-detail/index.css +76 -0
  55. package/dist/collection/components/style-detail/index.js +386 -0
  56. package/dist/collection/components/user-avatar/index.js +134 -0
  57. package/dist/collection/constants/colors.js +65 -0
  58. package/dist/collection/mocks/users.js +10 -0
  59. package/dist/collection/services/services.js +295 -0
  60. package/dist/collection/types/chat.js +23 -0
  61. package/dist/collection/types/common.js +11 -0
  62. package/{collection → dist/collection}/types/review.js +9 -5
  63. package/dist/collection/types/salon.js +58 -0
  64. package/dist/collection/types/style.js +128 -0
  65. package/dist/collection/types/stylist.js +30 -0
  66. package/dist/collection/types/user.js +10 -0
  67. package/{custom-elements → dist/custom-elements}/index.d.ts +18 -12
  68. package/dist/custom-elements/index.js +28340 -0
  69. package/dist/esm/_commonjsHelpers-098d5b27.js +32 -0
  70. package/dist/esm/chat-button.entry.js +114 -0
  71. package/dist/esm/colors-ea36347a.js +67 -0
  72. package/dist/esm/favesalon-embed.js +19 -0
  73. package/dist/esm/google-map_5.entry.js +302 -0
  74. package/{esm/index-2160b80b.js → dist/esm/index-3fae868e.js} +586 -200
  75. package/dist/esm/index-80523fec.js +4393 -0
  76. package/dist/esm/index.js +1 -0
  77. package/dist/esm/loader.js +19 -0
  78. package/dist/esm/polyfills/css-shim.js +1 -0
  79. package/dist/esm/relativeTime-cd452e6d.js +7 -0
  80. package/dist/esm/salon-booking-modal.entry.js +26 -0
  81. package/dist/esm/salon-booking.entry.js +47 -0
  82. package/dist/esm/salon-gift-card-modal.entry.js +25 -0
  83. package/dist/esm/salon-gift-card.entry.js +47 -0
  84. package/dist/esm/salon-latest-reviews.entry.js +93 -0
  85. package/dist/esm/salon-lookbook.entry.js +218 -0
  86. package/dist/esm/salon-ranking.entry.js +56 -0
  87. package/dist/esm/salon-reviews.entry.js +189 -0
  88. package/dist/esm/salon-services.entry.js +77 -0
  89. package/dist/esm/salon-stylists.entry.js +114 -0
  90. package/dist/esm/services-40a3e622.js +21485 -0
  91. package/dist/esm/style-detail.entry.js +308 -0
  92. package/dist/esm/user-avatar.entry.js +41 -0
  93. package/dist/esm/utils-e97485e0.js +19 -0
  94. package/dist/favesalon-embed/assets/map--placeholder.jpeg +0 -0
  95. package/{favesalon-embed → dist/favesalon-embed}/favesalon-embed.css +1 -1
  96. package/dist/favesalon-embed/favesalon-embed.esm.js +1 -0
  97. package/dist/favesalon-embed/p-019c5ccd.entry.js +1 -0
  98. package/dist/favesalon-embed/p-083a8821.entry.js +1 -0
  99. package/dist/favesalon-embed/p-0d0ed9ea.entry.js +1 -0
  100. package/dist/favesalon-embed/p-119db8de.entry.js +1 -0
  101. package/dist/favesalon-embed/p-1432c51b.entry.js +1 -0
  102. package/dist/favesalon-embed/p-22093506.entry.js +1 -0
  103. package/dist/favesalon-embed/p-32b314e9.js +2 -0
  104. package/dist/favesalon-embed/p-47e646f8.js +1 -0
  105. package/dist/favesalon-embed/p-4a5eca9a.js +6 -0
  106. package/dist/favesalon-embed/p-58d2e9be.js +1 -0
  107. package/dist/favesalon-embed/p-71404b6a.entry.js +1 -0
  108. package/dist/favesalon-embed/p-857c3a61.entry.js +1 -0
  109. package/dist/favesalon-embed/p-99ec77f7.entry.js +1 -0
  110. package/dist/favesalon-embed/p-a33331cc.js +1 -0
  111. package/dist/favesalon-embed/p-b0c3673a.entry.js +1 -0
  112. package/dist/favesalon-embed/p-b287b1ea.entry.js +1 -0
  113. package/dist/favesalon-embed/p-b3af7842.entry.js +1 -0
  114. package/dist/favesalon-embed/p-b630ae68.js +1580 -0
  115. package/dist/favesalon-embed/p-ce2c1c9a.entry.js +1 -0
  116. package/dist/favesalon-embed/p-d6083940.js +1 -0
  117. package/dist/favesalon-embed/p-d9b7ad58.entry.js +1 -0
  118. package/dist/favesalon-embed/p-fc9a5551.js +6 -0
  119. package/dist/types/components/chat-button/index.d.ts +24 -0
  120. package/dist/types/components/google-map/index.d.ts +5 -0
  121. package/{types → dist/types}/components/salon-booking/salon-booking-modal.d.ts +1 -0
  122. package/{types → dist/types}/components/salon-gift-card/index.d.ts +2 -1
  123. package/{types → dist/types}/components/salon-gift-card/salon-gift-card-modal.d.ts +2 -0
  124. package/{types → dist/types}/components/salon-info/index.d.ts +0 -1
  125. package/{types → dist/types}/components/salon-latest-reviews/index.d.ts +2 -0
  126. package/dist/types/components/salon-latest-styles/index.d.ts +12 -0
  127. package/{types → dist/types}/components/salon-locations/index.d.ts +2 -0
  128. package/{types → dist/types}/components/salon-lookbook/index.d.ts +7 -2
  129. package/dist/types/components/salon-reviews/index.d.ts +24 -0
  130. package/{types → dist/types}/components/salon-schedules/index.d.ts +2 -0
  131. package/{types → dist/types}/components/salon-services/index.d.ts +1 -0
  132. package/{types → dist/types}/components/salon-stylists/index.d.ts +6 -0
  133. package/dist/types/components/style-detail/index.d.ts +24 -0
  134. package/{types → dist/types}/components.d.ts +82 -41
  135. package/dist/types/constants/colors.d.ts +65 -0
  136. package/dist/types/mocks/users.d.ts +10 -0
  137. package/dist/types/services/services.d.ts +75 -0
  138. package/{types → dist/types}/stencil-public-runtime.d.ts +85 -11
  139. package/dist/types/types/chat.d.ts +17 -0
  140. package/dist/types/types/common.d.ts +11 -0
  141. package/{types → dist/types}/types/review.d.ts +4 -0
  142. package/{types → dist/types}/types/salon.d.ts +3 -1
  143. package/dist/types/types/style.d.ts +88 -0
  144. package/{types → dist/types}/types/stylist.d.ts +2 -1
  145. package/{types → dist/types}/types/user.d.ts +2 -2
  146. package/loader/cdn.js +3 -0
  147. package/loader/index.cjs.js +3 -0
  148. package/loader/index.d.ts +21 -0
  149. package/loader/index.es2017.js +3 -0
  150. package/loader/index.js +4 -0
  151. package/loader/package.json +11 -0
  152. package/package.json +19 -14
  153. package/readme.md +25 -2
  154. package/cjs/favesalon-embed.cjs.js +0 -20
  155. package/cjs/google-map_15.cjs.entry.js +0 -6632
  156. package/cjs/loader.cjs.js +0 -22
  157. package/cjs/salon-booking-modal.cjs.entry.js +0 -23
  158. package/cjs/salon-gift-card-modal.cjs.entry.js +0 -20
  159. package/collection/components/google-map/index.js +0 -97
  160. package/collection/components/salon-booking/index.js +0 -103
  161. package/collection/components/salon-booking/salon-booking-modal.js +0 -82
  162. package/collection/components/salon-contact/index.js +0 -88
  163. package/collection/components/salon-gift-card/index.css +0 -25
  164. package/collection/components/salon-gift-card/index.js +0 -83
  165. package/collection/components/salon-gift-card/salon-gift-card-modal.js +0 -43
  166. package/collection/components/salon-info/index.css +0 -3
  167. package/collection/components/salon-info/index.js +0 -97
  168. package/collection/components/salon-latest-reviews/index.js +0 -108
  169. package/collection/components/salon-locations/index.js +0 -80
  170. package/collection/components/salon-lookbook/index.css +0 -12
  171. package/collection/components/salon-lookbook/index.js +0 -303
  172. package/collection/components/salon-ranking/index.js +0 -114
  173. package/collection/components/salon-reviews/index.js +0 -291
  174. package/collection/components/salon-schedules/index.css +0 -14
  175. package/collection/components/salon-schedules/index.js +0 -103
  176. package/collection/components/salon-services/index.css +0 -0
  177. package/collection/components/salon-services/index.js +0 -113
  178. package/collection/components/salon-styles/index.css +0 -23
  179. package/collection/components/salon-styles/index.js +0 -100
  180. package/collection/components/salon-stylists/index.js +0 -96
  181. package/collection/components/user-avatar/index.css +0 -0
  182. package/collection/components/user-avatar/index.js +0 -127
  183. package/collection/constants/colors.js +0 -91
  184. package/collection/services/services.js +0 -203
  185. package/collection/types/common.js +0 -2
  186. package/collection/types/salon.js +0 -52
  187. package/collection/types/style.js +0 -28
  188. package/collection/types/stylist.js +0 -13
  189. package/collection/types/user.js +0 -10
  190. package/custom-elements/index.js +0 -7410
  191. package/esm/favesalon-embed.js +0 -18
  192. package/esm/google-map_15.entry.js +0 -6614
  193. package/esm/loader.js +0 -18
  194. package/esm/polyfills/css-shim.js +0 -1
  195. package/esm/salon-booking-modal.entry.js +0 -19
  196. package/esm/salon-gift-card-modal.entry.js +0 -16
  197. package/favesalon-embed/favesalon-embed.esm.js +0 -1
  198. package/favesalon-embed/p-1432ab16.entry.js +0 -1
  199. package/favesalon-embed/p-2da2ed75.js +0 -1
  200. package/favesalon-embed/p-4a5eca9a.js +0 -6
  201. package/favesalon-embed/p-94a0991e.entry.js +0 -1
  202. package/favesalon-embed/p-f15bcb43.entry.js +0 -1
  203. package/types/components/google-map/index.d.ts +0 -10
  204. package/types/components/salon-contact/index.d.ts +0 -9
  205. package/types/components/salon-reviews/index.d.ts +0 -23
  206. package/types/components/salon-styles/index.d.ts +0 -9
  207. package/types/constants/colors.d.ts +0 -88
  208. package/types/services/services.d.ts +0 -24
  209. package/types/types/common.d.ts +0 -2
  210. package/types/types/style.d.ts +0 -49
  211. package/{cjs → dist/cjs}/global-9073d10e.js +0 -0
  212. package/{cjs → dist/cjs}/index.cjs.js +0 -0
  213. package/{esm/index.js → dist/collection/components/salon-info/index.css} +0 -0
  214. package/{collection → dist/collection}/components/salon-latest-reviews/index.css +0 -0
  215. package/{collection → dist/collection}/components/salon-ranking/index.css +0 -0
  216. package/{collection → dist/collection}/components/salon-stylists/index.css +0 -0
  217. package/{collection/components/salon-locations → dist/collection/components/user-avatar}/index.css +0 -0
  218. package/{collection → dist/collection}/global/global.js +0 -0
  219. package/{collection → dist/collection}/index.js +0 -0
  220. package/{collection → dist/collection}/types/service.js +0 -0
  221. package/{collection → dist/collection}/utils/utils.js +0 -0
  222. package/{esm → dist/esm}/global-e1089ffd.js +0 -0
  223. package/{esm → dist/esm}/polyfills/core-js.js +0 -0
  224. package/{esm → dist/esm}/polyfills/dom.js +0 -0
  225. package/{esm → dist/esm}/polyfills/es5-html-element.js +0 -0
  226. package/{esm → dist/esm}/polyfills/index.js +0 -0
  227. package/{esm → dist/esm}/polyfills/system.js +0 -0
  228. package/{favesalon-embed → dist/favesalon-embed}/index.esm.js +0 -0
  229. package/{index.cjs.js → dist/index.cjs.js} +0 -0
  230. package/{index.js → dist/index.js} +0 -0
  231. package/{collection/components/salon-reviews/index.css → dist/types/components/chat-conversation/index.d.ts} +0 -0
  232. package/{types → dist/types}/components/salon-booking/index.d.ts +1 -1
  233. /package/{types → dist/types}/components/salon-ranking/index.d.ts +0 -0
  234. /package/{types → dist/types}/components/user-avatar/index.d.ts +0 -0
  235. /package/{types → dist/types}/index.d.ts +0 -0
  236. /package/{types → dist/types}/types/service.d.ts +0 -0
  237. /package/{types → dist/types}/utils/utils.d.ts +0 -0
@@ -1,100 +0,0 @@
1
- import { Component, Prop, h, Method, State } from '@stencil/core';
2
- import { Colors } from '../../constants/colors';
3
- import HttpService from '../../services/services';
4
- export class SalonStyles {
5
- componentDidLoad() {
6
- this.fetchData();
7
- }
8
- async fetchData() {
9
- try {
10
- const promises = [
11
- HttpService().fetchSalonPhotos(this.salonId).then(salonStyles => this.firstPageStyles = salonStyles),
12
- HttpService().fetchAllSalonPhotos(this.salonId, { page: 2 }).then(nestPageStyles => this.nestPageStyles = nestPageStyles),
13
- ];
14
- return Promise.all(promises);
15
- }
16
- catch (e) { }
17
- }
18
- render() {
19
- return (h("div", { class: "view view--salon-styles" },
20
- h("div", { class: "view-content" },
21
- h("div", { class: "salon-styles--slides" },
22
- h("div", { id: "salon-styles-carousel", class: "carousel slide", "data-bs-ride": "carousel" },
23
- h("div", { class: "carousel-inner" }, (this.firstPageStyles || []).concat(this.nestPageStyles || []).map((photo, index) => {
24
- const { caption, description,
25
- // mediaType,
26
- fullImageUrl, fullImageUrlThumb, fullImageUrlMedium, imgWidth, imgHeight, } = photo;
27
- const isLandscape = imgWidth > imgHeight;
28
- return (h("div", { class: `carousel-item salon-styles--item ${index === 0 ? 'active' : ''}` },
29
- h("div", { class: "salon-styles--item", style: {
30
- flexDirection: isLandscape ? 'column' : 'row',
31
- justifyContent: 'center',
32
- alignItems: 'center',
33
- overflow: 'hidden',
34
- position: 'relative',
35
- display: 'flex',
36
- height: '380px',
37
- borderRadius: '8px',
38
- } },
39
- h("div", { class: "salon-styles--item-background", style: Object.assign(Object.assign({}, fullImageUrlThumb ? { backgroundImage: `url(${fullImageUrlThumb})` } : {}), { backgroundColor: Colors.Gray06, backgroundPosition: 'center', backgroundRepeat: 'no-repeat', backgroundSize: 'cover', position: 'absolute', bottom: '0px', right: '0px', left: '0px', top: '0px' }) }),
40
- h("img", { alt: caption, class: "salon-styles--item-image", src: fullImageUrlMedium || fullImageUrl, style: Object.assign({ display: 'inline-block' }, isLandscape ? { width: '100%' } : { height: '100%' }) }),
41
- h("div", { class: "carousel-caption d-none d-md-block" },
42
- caption && h("h5", null, caption),
43
- description && h("p", null, description)))));
44
- })),
45
- h("button", { type: "button", "data-bs-slide": "prev", class: "carousel-control-prev", "data-bs-target": "#salon-styles-carousel" },
46
- h("span", { class: "carousel-control-prev-icon", "aria-hidden": "true" }),
47
- h("span", { class: "visually-hidden" }, "Previous")),
48
- h("button", { type: "button", "data-bs-slide": "next", class: "carousel-control-next", "data-bs-target": "#salon-styles-carousel" },
49
- h("span", { class: "carousel-control-next-icon", "aria-hidden": "true" }),
50
- h("span", { class: "visually-hidden" }, "Next")))))));
51
- }
52
- static get is() { return "salon-styles"; }
53
- static get originalStyleUrls() { return {
54
- "$": ["index.css"]
55
- }; }
56
- static get styleUrls() { return {
57
- "$": ["index.css"]
58
- }; }
59
- static get properties() { return {
60
- "salonId": {
61
- "type": "number",
62
- "mutable": false,
63
- "complexType": {
64
- "original": "number",
65
- "resolved": "number",
66
- "references": {}
67
- },
68
- "required": false,
69
- "optional": false,
70
- "docs": {
71
- "tags": [],
72
- "text": ""
73
- },
74
- "attribute": "salon-id",
75
- "reflect": false
76
- }
77
- }; }
78
- static get states() { return {
79
- "firstPageStyles": {},
80
- "nestPageStyles": {}
81
- }; }
82
- static get methods() { return {
83
- "fetchData": {
84
- "complexType": {
85
- "signature": "() => Promise<any[]>",
86
- "parameters": [],
87
- "references": {
88
- "Promise": {
89
- "location": "global"
90
- }
91
- },
92
- "return": "Promise<any[]>"
93
- },
94
- "docs": {
95
- "text": "",
96
- "tags": []
97
- }
98
- }
99
- }; }
100
- }
@@ -1,96 +0,0 @@
1
- import { Component, Prop, h, Method, State } from '@stencil/core';
2
- import { Colors } from '../../constants/colors';
3
- import HttpService from '../../services/services';
4
- export class SalonStylists {
5
- componentWillLoad() {
6
- this.fetchData();
7
- }
8
- async fetchData() {
9
- try {
10
- this.salonStylists = await HttpService().fetchSalonStylists(this.salonId);
11
- }
12
- catch (e) { }
13
- }
14
- render() {
15
- return (h("div", { class: "view--salon-stylists" }, (this.salonStylists || []).map(stylist => (h("div", { class: "salon-stylist" },
16
- h("div", { class: "card", style: {
17
- border: `1px solid ${Colors.Gray05}`,
18
- borderRadius: '8px',
19
- overflow: 'hidden',
20
- } },
21
- h("div", { class: "salon-stylist--avatar", style: {
22
- backgroundImage: `url("${stylist.avatar}")`,
23
- backgroundColor: Colors.Gray06,
24
- backgroundRepeat: 'no-repeat',
25
- backgroundPosition: 'center top',
26
- backgroundSize: 'cover',
27
- position: 'relative',
28
- display: 'flex',
29
- width: '100%',
30
- alignItems: 'center',
31
- justifyContent: 'center',
32
- } }, !stylist.avatar && (h("span", { style: {
33
- fontSize: '32px',
34
- fontWeight: 'bold',
35
- textTransform: 'uppercase',
36
- } },
37
- (stylist.firstName || '').charAt(0),
38
- " ",
39
- (stylist.lastName || '').charAt(0)))),
40
- h("div", { class: "card-body" },
41
- h("div", { style: {
42
- fontSize: '16px',
43
- fontWeight: 'bold',
44
- textAlign: 'center',
45
- } }, stylist.name),
46
- h("div", { style: { marginTop: '4px' } },
47
- h("salon-ranking", { ranking: stylist.rating })))))))));
48
- }
49
- static get is() { return "salon-stylists"; }
50
- static get originalStyleUrls() { return {
51
- "$": ["index.css"]
52
- }; }
53
- static get styleUrls() { return {
54
- "$": ["index.css"]
55
- }; }
56
- static get properties() { return {
57
- "salonId": {
58
- "type": "number",
59
- "mutable": false,
60
- "complexType": {
61
- "original": "number",
62
- "resolved": "number",
63
- "references": {}
64
- },
65
- "required": false,
66
- "optional": false,
67
- "docs": {
68
- "tags": [],
69
- "text": ""
70
- },
71
- "attribute": "salon-id",
72
- "reflect": false
73
- }
74
- }; }
75
- static get states() { return {
76
- "salonStylists": {}
77
- }; }
78
- static get methods() { return {
79
- "fetchData": {
80
- "complexType": {
81
- "signature": "() => Promise<void>",
82
- "parameters": [],
83
- "references": {
84
- "Promise": {
85
- "location": "global"
86
- }
87
- },
88
- "return": "Promise<void>"
89
- },
90
- "docs": {
91
- "text": "",
92
- "tags": []
93
- }
94
- }
95
- }; }
96
- }
File without changes
@@ -1,127 +0,0 @@
1
- import { Component, Prop, h } from '@stencil/core';
2
- import { Colors } from '../../constants/colors';
3
- export class UserAvatar {
4
- constructor() {
5
- this.size = 24;
6
- }
7
- render() {
8
- return (h("div", { style: { display: "flex", alignItems: "center" } },
9
- this.avatar && (h("div", { style: {
10
- backgroundImage: `url("${this.avatar}")`,
11
- backgroundColor: Colors.Gray06,
12
- backgroundPosition: 'center center',
13
- backgroundSize: 'cover',
14
- borderRadius: '50%',
15
- height: `${this.size}px`,
16
- width: `${this.size}px`,
17
- minWidth: `${this.size}px`,
18
- } })),
19
- !this.avatar && (h("div", { style: {
20
- backgroundColor: Colors.Gray06,
21
- backgroundPosition: 'center center',
22
- backgroundSize: 'cover',
23
- borderRadius: '50%',
24
- display: 'flex',
25
- alignItems: 'center',
26
- justifyContent: 'center',
27
- height: `${this.size}px`,
28
- width: `${this.size}px`,
29
- minWidth: `${this.size}px`,
30
- } }, this.shortName)),
31
- h("div", { style: Object.assign({ flexShrink: '1', flexGrow: '1', marginLeft: '12px', overflow: 'hidden', whiteSpace: 'nowrap', textOverflow: 'ellipsis' }, this.nameStyle) }, this.name)));
32
- }
33
- static get is() { return "user-avatar"; }
34
- static get originalStyleUrls() { return {
35
- "$": ["index.css"]
36
- }; }
37
- static get styleUrls() { return {
38
- "$": ["index.css"]
39
- }; }
40
- static get properties() { return {
41
- "size": {
42
- "type": "number",
43
- "mutable": false,
44
- "complexType": {
45
- "original": "number",
46
- "resolved": "number",
47
- "references": {}
48
- },
49
- "required": false,
50
- "optional": false,
51
- "docs": {
52
- "tags": [],
53
- "text": ""
54
- },
55
- "attribute": "size",
56
- "reflect": false,
57
- "defaultValue": "24"
58
- },
59
- "name": {
60
- "type": "string",
61
- "mutable": false,
62
- "complexType": {
63
- "original": "string",
64
- "resolved": "string",
65
- "references": {}
66
- },
67
- "required": false,
68
- "optional": false,
69
- "docs": {
70
- "tags": [],
71
- "text": ""
72
- },
73
- "attribute": "name",
74
- "reflect": false
75
- },
76
- "nameStyle": {
77
- "type": "unknown",
78
- "mutable": false,
79
- "complexType": {
80
- "original": "object",
81
- "resolved": "object",
82
- "references": {}
83
- },
84
- "required": false,
85
- "optional": true,
86
- "docs": {
87
- "tags": [],
88
- "text": ""
89
- }
90
- },
91
- "shortName": {
92
- "type": "string",
93
- "mutable": false,
94
- "complexType": {
95
- "original": "string",
96
- "resolved": "string",
97
- "references": {}
98
- },
99
- "required": false,
100
- "optional": false,
101
- "docs": {
102
- "tags": [],
103
- "text": ""
104
- },
105
- "attribute": "short-name",
106
- "reflect": false
107
- },
108
- "avatar": {
109
- "type": "string",
110
- "mutable": false,
111
- "complexType": {
112
- "original": "string",
113
- "resolved": "string",
114
- "references": {}
115
- },
116
- "required": false,
117
- "optional": false,
118
- "docs": {
119
- "tags": [],
120
- "text": ""
121
- },
122
- "attribute": "avatar",
123
- "reflect": false
124
- }
125
- }; }
126
- }
127
- ;
@@ -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,203 +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 { createFavesalonStyle } 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
- }
203
- 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
- }