hemfixarna-web-components 1.6.3 → 1.7.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 (261) hide show
  1. package/dist/cjs/{hemfixarna-address_36.cjs.entry.js → hemfixarna-address_15.cjs.entry.js} +341 -1030
  2. package/dist/cjs/hemfixarna-address_15.cjs.entry.js.map +1 -0
  3. package/dist/cjs/hemfixarna-byggmax.cjs.entry.js +26 -0
  4. package/dist/cjs/hemfixarna-byggmax.cjs.entry.js.map +1 -0
  5. package/dist/cjs/hemfixarna-category.cjs.entry.js +28 -0
  6. package/dist/cjs/hemfixarna-category.cjs.entry.js.map +1 -0
  7. package/dist/cjs/hemfixarna-components.cjs.js +1 -1
  8. package/dist/cjs/hemfixarna-components.cjs.js.map +1 -1
  9. package/dist/cjs/hemfixarna-doro.cjs.entry.js +26 -0
  10. package/dist/cjs/hemfixarna-doro.cjs.entry.js.map +1 -0
  11. package/dist/cjs/hemfixarna-elfa.cjs.entry.js +26 -0
  12. package/dist/cjs/hemfixarna-elfa.cjs.entry.js.map +1 -0
  13. package/dist/cjs/hemfixarna-fargvaruhuset.cjs.entry.js +23 -0
  14. package/dist/cjs/hemfixarna-fargvaruhuset.cjs.entry.js.map +1 -0
  15. package/dist/cjs/hemfixarna-flyttsmart.cjs.entry.js +23 -0
  16. package/dist/cjs/hemfixarna-flyttsmart.cjs.entry.js.map +1 -0
  17. package/dist/cjs/hemfixarna-forebygg.cjs.entry.js +26 -0
  18. package/dist/cjs/hemfixarna-forebygg.cjs.entry.js.map +1 -0
  19. package/dist/cjs/hemfixarna-hornbach.cjs.entry.js +26 -0
  20. package/dist/cjs/hemfixarna-hornbach.cjs.entry.js.map +1 -0
  21. package/dist/cjs/hemfixarna-kbygg.cjs.entry.js +23 -0
  22. package/dist/cjs/hemfixarna-kbygg.cjs.entry.js.map +1 -0
  23. package/dist/cjs/hemfixarna-klint.cjs.entry.js +23 -0
  24. package/dist/cjs/hemfixarna-klint.cjs.entry.js.map +1 -0
  25. package/dist/cjs/hemfixarna-kund.cjs.entry.js +23 -0
  26. package/dist/cjs/hemfixarna-kund.cjs.entry.js.map +1 -0
  27. package/dist/cjs/hemfixarna-norrgavel.cjs.entry.js +23 -0
  28. package/dist/cjs/hemfixarna-norrgavel.cjs.entry.js.map +1 -0
  29. package/dist/cjs/hemfixarna-power.cjs.entry.js +23 -0
  30. package/dist/cjs/hemfixarna-power.cjs.entry.js.map +1 -0
  31. package/dist/cjs/hemfixarna-service.cjs.entry.js +24 -0
  32. package/dist/cjs/hemfixarna-service.cjs.entry.js.map +1 -0
  33. package/dist/cjs/hemfixarna-skanska.cjs.entry.js +26 -0
  34. package/dist/cjs/hemfixarna-skanska.cjs.entry.js.map +1 -0
  35. package/dist/cjs/hemfixarna-sparfonster.cjs.entry.js +23 -0
  36. package/dist/cjs/hemfixarna-sparfonster.cjs.entry.js.map +1 -0
  37. package/dist/cjs/hemfixarna-string-furniture.cjs.entry.js +26 -0
  38. package/dist/cjs/hemfixarna-string-furniture.cjs.entry.js.map +1 -0
  39. package/dist/cjs/hemfixarna-superfront.cjs.entry.js +24 -0
  40. package/dist/cjs/hemfixarna-superfront.cjs.entry.js.map +1 -0
  41. package/dist/cjs/hemfixarna-tesla.cjs.entry.js +23 -0
  42. package/dist/cjs/hemfixarna-tesla.cjs.entry.js.map +1 -0
  43. package/dist/cjs/hemfixarna-traningspartner.cjs.entry.js +23 -0
  44. package/dist/cjs/hemfixarna-traningspartner.cjs.entry.js.map +1 -0
  45. package/dist/cjs/hemfixarna-zaptec.cjs.entry.js +23 -0
  46. package/dist/cjs/hemfixarna-zaptec.cjs.entry.js.map +1 -0
  47. package/dist/cjs/index-4695c475.js +258 -0
  48. package/dist/cjs/index-4695c475.js.map +1 -0
  49. package/dist/cjs/index-8054ce93.js +42 -0
  50. package/dist/cjs/index-8054ce93.js.map +1 -0
  51. package/dist/cjs/index-b83343b9.js.map +1 -1
  52. package/dist/cjs/loader.cjs.js +1 -1
  53. package/dist/cjs/loader.cjs.js.map +1 -1
  54. package/dist/collection/components/customers/hemfixarna-byggmax/hemfixarna-byggmax.js +2 -82
  55. package/dist/collection/components/customers/hemfixarna-byggmax/hemfixarna-byggmax.js.map +1 -1
  56. package/dist/collection/components/customers/hemfixarna-doro/hemfixarna-doro.js +1 -20
  57. package/dist/collection/components/customers/hemfixarna-doro/hemfixarna-doro.js.map +1 -1
  58. package/dist/collection/components/customers/hemfixarna-elfa/hemfixarna-elfa.js +1 -39
  59. package/dist/collection/components/customers/hemfixarna-elfa/hemfixarna-elfa.js.map +1 -1
  60. package/dist/collection/components/customers/hemfixarna-fargvaruhuset/hemfixarna-fargvaruhuset.js +1 -39
  61. package/dist/collection/components/customers/hemfixarna-fargvaruhuset/hemfixarna-fargvaruhuset.js.map +1 -1
  62. package/dist/collection/components/customers/hemfixarna-flyttsmart/hemfixarna-flyttsmart.js +1 -39
  63. package/dist/collection/components/customers/hemfixarna-flyttsmart/hemfixarna-flyttsmart.js.map +1 -1
  64. package/dist/collection/components/customers/hemfixarna-forebygg/hemfixarna-forebygg.js +1 -20
  65. package/dist/collection/components/customers/hemfixarna-forebygg/hemfixarna-forebygg.js.map +1 -1
  66. package/dist/collection/components/customers/hemfixarna-hornbach/hemfixarna-hornbach.js +1 -39
  67. package/dist/collection/components/customers/hemfixarna-hornbach/hemfixarna-hornbach.js.map +1 -1
  68. package/dist/collection/components/customers/hemfixarna-kbygg/hemfixarna-kbygg.js +1 -39
  69. package/dist/collection/components/customers/hemfixarna-kbygg/hemfixarna-kbygg.js.map +1 -1
  70. package/dist/collection/components/customers/hemfixarna-klint/hemfixarna-klint.js +1 -20
  71. package/dist/collection/components/customers/hemfixarna-klint/hemfixarna-klint.js.map +1 -1
  72. package/dist/collection/components/customers/hemfixarna-kund/hemfixarna-kund.js +1 -20
  73. package/dist/collection/components/customers/hemfixarna-kund/hemfixarna-kund.js.map +1 -1
  74. package/dist/collection/components/customers/hemfixarna-norrgavel/hemfixarna-norrgavel.js +1 -39
  75. package/dist/collection/components/customers/hemfixarna-norrgavel/hemfixarna-norrgavel.js.map +1 -1
  76. package/dist/collection/components/customers/hemfixarna-power/hemfixarna-power.js +1 -38
  77. package/dist/collection/components/customers/hemfixarna-power/hemfixarna-power.js.map +1 -1
  78. package/dist/collection/components/customers/hemfixarna-skanska/hemfixarna-skanska.js +1 -38
  79. package/dist/collection/components/customers/hemfixarna-skanska/hemfixarna-skanska.js.map +1 -1
  80. package/dist/collection/components/customers/hemfixarna-sparfonster/hemfixarna-sparfonster.js +1 -38
  81. package/dist/collection/components/customers/hemfixarna-sparfonster/hemfixarna-sparfonster.js.map +1 -1
  82. package/dist/collection/components/customers/hemfixarna-string/hemfixarna-string-furniture.js +1 -20
  83. package/dist/collection/components/customers/hemfixarna-string/hemfixarna-string-furniture.js.map +1 -1
  84. package/dist/collection/components/customers/hemfixarna-superfront.tsx/hemfixarna-superfront.js +1 -1
  85. package/dist/collection/components/customers/hemfixarna-superfront.tsx/hemfixarna-superfront.js.map +1 -1
  86. package/dist/collection/components/customers/hemfixarna-tesla/hemfixarna-tesla.js +1 -39
  87. package/dist/collection/components/customers/hemfixarna-tesla/hemfixarna-tesla.js.map +1 -1
  88. package/dist/collection/components/customers/hemfixarna-traningspartner/hemfixarna-traningspartner.js +1 -20
  89. package/dist/collection/components/customers/hemfixarna-traningspartner/hemfixarna-traningspartner.js.map +1 -1
  90. package/dist/collection/components/customers/hemfixarna-zaptec/hemfixarna-zaptec.js +1 -39
  91. package/dist/collection/components/customers/hemfixarna-zaptec/hemfixarna-zaptec.js.map +1 -1
  92. package/dist/collection/components/hemfixarna-breadcrumbs/hemfixarna-breadcrumbs.js +1 -60
  93. package/dist/collection/components/hemfixarna-breadcrumbs/hemfixarna-breadcrumbs.js.map +1 -1
  94. package/dist/collection/components/hemfixarna-cart/hemfixarna-cart.js +1 -28
  95. package/dist/collection/components/hemfixarna-cart/hemfixarna-cart.js.map +1 -1
  96. package/dist/collection/components/hemfixarna-component/hemfixarna-component.js +27 -236
  97. package/dist/collection/components/hemfixarna-component/hemfixarna-component.js.map +1 -1
  98. package/dist/collection/components/hemfixarna-demo/hemfixarna-demo.js +75 -39
  99. package/dist/collection/components/hemfixarna-demo/hemfixarna-demo.js.map +1 -1
  100. package/dist/collection/components/hemfixarna-info/hemfixarna-info.js +2 -2
  101. package/dist/collection/components/hemfixarna-info/hemfixarna-info.js.map +1 -1
  102. package/dist/collection/components/hemfixarna-invoice/hemfixarna-invoice.js +2 -1
  103. package/dist/collection/components/hemfixarna-invoice/hemfixarna-invoice.js.map +1 -1
  104. package/dist/collection/components/hemfixarna-order/hemfixarna-order.js +1 -26
  105. package/dist/collection/components/hemfixarna-order/hemfixarna-order.js.map +1 -1
  106. package/dist/collection/components/hemfixarna-orderrows/hemfixarna-orderrows.js +7 -41
  107. package/dist/collection/components/hemfixarna-orderrows/hemfixarna-orderrows.js.map +1 -1
  108. package/dist/collection/types/index.js +4 -0
  109. package/dist/collection/types/index.js.map +1 -1
  110. package/dist/collection/utils/api.js +18 -2
  111. package/dist/collection/utils/api.js.map +1 -1
  112. package/dist/collection/utils/creditSafe.js +2 -2
  113. package/dist/collection/utils/creditSafe.js.map +1 -1
  114. package/dist/collection/utils/enviroment.js +31 -0
  115. package/dist/collection/utils/enviroment.js.map +1 -0
  116. package/dist/collection/utils/felixApi.js +2 -1
  117. package/dist/collection/utils/felixApi.js.map +1 -1
  118. package/dist/collection/utils/felixFunctions.js +0 -1
  119. package/dist/collection/utils/felixFunctions.js.map +1 -1
  120. package/dist/esm/{hemfixarna-address_36.entry.js → hemfixarna-address_15.entry.js} +150 -818
  121. package/dist/esm/hemfixarna-address_15.entry.js.map +1 -0
  122. package/dist/esm/hemfixarna-byggmax.entry.js +22 -0
  123. package/dist/esm/hemfixarna-byggmax.entry.js.map +1 -0
  124. package/dist/esm/hemfixarna-category.entry.js +24 -0
  125. package/dist/esm/hemfixarna-category.entry.js.map +1 -0
  126. package/dist/esm/hemfixarna-components.js +3 -3
  127. package/dist/esm/hemfixarna-components.js.map +1 -1
  128. package/dist/esm/hemfixarna-doro.entry.js +22 -0
  129. package/dist/esm/hemfixarna-doro.entry.js.map +1 -0
  130. package/dist/esm/hemfixarna-elfa.entry.js +22 -0
  131. package/dist/esm/hemfixarna-elfa.entry.js.map +1 -0
  132. package/dist/esm/hemfixarna-fargvaruhuset.entry.js +19 -0
  133. package/dist/esm/hemfixarna-fargvaruhuset.entry.js.map +1 -0
  134. package/dist/esm/hemfixarna-flyttsmart.entry.js +19 -0
  135. package/dist/esm/hemfixarna-flyttsmart.entry.js.map +1 -0
  136. package/dist/esm/hemfixarna-forebygg.entry.js +22 -0
  137. package/dist/esm/hemfixarna-forebygg.entry.js.map +1 -0
  138. package/dist/esm/hemfixarna-hornbach.entry.js +22 -0
  139. package/dist/esm/hemfixarna-hornbach.entry.js.map +1 -0
  140. package/dist/esm/hemfixarna-kbygg.entry.js +19 -0
  141. package/dist/esm/hemfixarna-kbygg.entry.js.map +1 -0
  142. package/dist/esm/hemfixarna-klint.entry.js +19 -0
  143. package/dist/esm/hemfixarna-klint.entry.js.map +1 -0
  144. package/dist/esm/hemfixarna-kund.entry.js +19 -0
  145. package/dist/esm/hemfixarna-kund.entry.js.map +1 -0
  146. package/dist/esm/hemfixarna-norrgavel.entry.js +19 -0
  147. package/dist/esm/hemfixarna-norrgavel.entry.js.map +1 -0
  148. package/dist/esm/hemfixarna-power.entry.js +19 -0
  149. package/dist/esm/hemfixarna-power.entry.js.map +1 -0
  150. package/dist/esm/hemfixarna-service.entry.js +20 -0
  151. package/dist/esm/hemfixarna-service.entry.js.map +1 -0
  152. package/dist/esm/hemfixarna-skanska.entry.js +22 -0
  153. package/dist/esm/hemfixarna-skanska.entry.js.map +1 -0
  154. package/dist/esm/hemfixarna-sparfonster.entry.js +19 -0
  155. package/dist/esm/hemfixarna-sparfonster.entry.js.map +1 -0
  156. package/dist/esm/hemfixarna-string-furniture.entry.js +22 -0
  157. package/dist/esm/hemfixarna-string-furniture.entry.js.map +1 -0
  158. package/dist/esm/hemfixarna-superfront.entry.js +20 -0
  159. package/dist/esm/hemfixarna-superfront.entry.js.map +1 -0
  160. package/dist/esm/hemfixarna-tesla.entry.js +19 -0
  161. package/dist/esm/hemfixarna-tesla.entry.js.map +1 -0
  162. package/dist/esm/hemfixarna-traningspartner.entry.js +19 -0
  163. package/dist/esm/hemfixarna-traningspartner.entry.js.map +1 -0
  164. package/dist/esm/hemfixarna-zaptec.entry.js +19 -0
  165. package/dist/esm/hemfixarna-zaptec.entry.js.map +1 -0
  166. package/dist/esm/{index-8c417125.js → index-04bcf90e.js} +2 -2
  167. package/dist/esm/index-04bcf90e.js.map +1 -0
  168. package/dist/esm/index-113a6b21.js +256 -0
  169. package/dist/esm/index-113a6b21.js.map +1 -0
  170. package/dist/esm/index-1fbc7a74.js +42 -0
  171. package/dist/esm/index-1fbc7a74.js.map +1 -0
  172. package/dist/esm/loader.js +3 -3
  173. package/dist/esm/loader.js.map +1 -1
  174. package/dist/hemfixarna-components/hemfixarna-components.esm.js +1 -1
  175. package/dist/hemfixarna-components/hemfixarna-components.esm.js.map +1 -1
  176. package/dist/hemfixarna-components/p-12dbf4e6.entry.js +2 -0
  177. package/dist/hemfixarna-components/p-12dbf4e6.entry.js.map +1 -0
  178. package/dist/hemfixarna-components/p-1b80999e.entry.js +2 -0
  179. package/dist/hemfixarna-components/p-1b80999e.entry.js.map +1 -0
  180. package/dist/hemfixarna-components/p-1f875c7a.entry.js +2 -0
  181. package/dist/hemfixarna-components/p-1f875c7a.entry.js.map +1 -0
  182. package/dist/hemfixarna-components/{p-852e7173.js → p-32a8152b.js} +2 -2
  183. package/dist/hemfixarna-components/p-32a8152b.js.map +1 -0
  184. package/dist/hemfixarna-components/p-3acd1346.entry.js +2 -0
  185. package/dist/hemfixarna-components/p-3acd1346.entry.js.map +1 -0
  186. package/dist/hemfixarna-components/p-53afbc10.entry.js +2 -0
  187. package/dist/hemfixarna-components/p-53afbc10.entry.js.map +1 -0
  188. package/dist/hemfixarna-components/p-53f0abfa.entry.js +2 -0
  189. package/dist/hemfixarna-components/p-53f0abfa.entry.js.map +1 -0
  190. package/dist/hemfixarna-components/p-61b4597f.entry.js +2 -0
  191. package/dist/hemfixarna-components/p-61b4597f.entry.js.map +1 -0
  192. package/dist/hemfixarna-components/p-6c1d21dd.entry.js +2 -0
  193. package/dist/hemfixarna-components/p-6c1d21dd.entry.js.map +1 -0
  194. package/dist/hemfixarna-components/p-6f6601b8.entry.js +2 -0
  195. package/dist/hemfixarna-components/p-6f6601b8.entry.js.map +1 -0
  196. package/dist/hemfixarna-components/p-7c122f15.entry.js +2 -0
  197. package/dist/hemfixarna-components/p-7c122f15.entry.js.map +1 -0
  198. package/dist/hemfixarna-components/p-8356796a.entry.js +2 -0
  199. package/dist/hemfixarna-components/p-8356796a.entry.js.map +1 -0
  200. package/dist/hemfixarna-components/p-8d509bf1.entry.js +2 -0
  201. package/dist/hemfixarna-components/p-8d509bf1.entry.js.map +1 -0
  202. package/dist/hemfixarna-components/p-8f0a688c.entry.js +2 -0
  203. package/dist/hemfixarna-components/p-8f0a688c.entry.js.map +1 -0
  204. package/dist/hemfixarna-components/p-9b1e6bc2.entry.js +2 -0
  205. package/dist/hemfixarna-components/p-9b1e6bc2.entry.js.map +1 -0
  206. package/dist/hemfixarna-components/p-a3d759d9.js +2 -0
  207. package/dist/hemfixarna-components/p-a3d759d9.js.map +1 -0
  208. package/dist/hemfixarna-components/p-a9845efc.entry.js +2 -0
  209. package/dist/hemfixarna-components/p-a9845efc.entry.js.map +1 -0
  210. package/dist/hemfixarna-components/p-ae3fc85c.entry.js +2 -0
  211. package/dist/hemfixarna-components/p-ae3fc85c.entry.js.map +1 -0
  212. package/dist/hemfixarna-components/p-b6bc1537.entry.js +2 -0
  213. package/dist/hemfixarna-components/p-b6bc1537.entry.js.map +1 -0
  214. package/dist/hemfixarna-components/p-cb1634e8.entry.js +2 -0
  215. package/dist/hemfixarna-components/p-cb1634e8.entry.js.map +1 -0
  216. package/dist/hemfixarna-components/p-cfdc93e9.js +2 -0
  217. package/dist/hemfixarna-components/p-cfdc93e9.js.map +1 -0
  218. package/dist/hemfixarna-components/p-dabad8a7.entry.js +2 -0
  219. package/dist/hemfixarna-components/p-dabad8a7.entry.js.map +1 -0
  220. package/dist/hemfixarna-components/p-dfcefa54.entry.js +2 -0
  221. package/dist/hemfixarna-components/p-dfcefa54.entry.js.map +1 -0
  222. package/dist/hemfixarna-components/p-e0aad0ff.entry.js +2 -0
  223. package/dist/hemfixarna-components/p-e0aad0ff.entry.js.map +1 -0
  224. package/dist/hemfixarna-components/p-edac9f21.entry.js +2 -0
  225. package/dist/hemfixarna-components/p-edac9f21.entry.js.map +1 -0
  226. package/dist/types/components/customers/hemfixarna-byggmax/hemfixarna-byggmax.d.ts +1 -6
  227. package/dist/types/components/customers/hemfixarna-doro/hemfixarna-doro.d.ts +0 -1
  228. package/dist/types/components/customers/hemfixarna-elfa/hemfixarna-elfa.d.ts +0 -2
  229. package/dist/types/components/customers/hemfixarna-fargvaruhuset/hemfixarna-fargvaruhuset.d.ts +0 -2
  230. package/dist/types/components/customers/hemfixarna-flyttsmart/hemfixarna-flyttsmart.d.ts +0 -2
  231. package/dist/types/components/customers/hemfixarna-forebygg/hemfixarna-forebygg.d.ts +0 -1
  232. package/dist/types/components/customers/hemfixarna-hornbach/hemfixarna-hornbach.d.ts +0 -2
  233. package/dist/types/components/customers/hemfixarna-kbygg/hemfixarna-kbygg.d.ts +0 -2
  234. package/dist/types/components/customers/hemfixarna-klint/hemfixarna-klint.d.ts +0 -1
  235. package/dist/types/components/customers/hemfixarna-kund/hemfixarna-kund.d.ts +0 -1
  236. package/dist/types/components/customers/hemfixarna-norrgavel/hemfixarna-norrgavel.d.ts +0 -2
  237. package/dist/types/components/customers/hemfixarna-power/hemfixarna-power.d.ts +0 -2
  238. package/dist/types/components/customers/hemfixarna-skanska/hemfixarna-skanska.d.ts +0 -2
  239. package/dist/types/components/customers/hemfixarna-sparfonster/hemfixarna-sparfonster.d.ts +0 -2
  240. package/dist/types/components/customers/hemfixarna-string/hemfixarna-string-furniture.d.ts +0 -1
  241. package/dist/types/components/customers/hemfixarna-tesla/hemfixarna-tesla.d.ts +0 -2
  242. package/dist/types/components/customers/hemfixarna-traningspartner/hemfixarna-traningspartner.d.ts +0 -1
  243. package/dist/types/components/customers/hemfixarna-zaptec/hemfixarna-zaptec.d.ts +0 -2
  244. package/dist/types/components/hemfixarna-breadcrumbs/hemfixarna-breadcrumbs.d.ts +0 -4
  245. package/dist/types/components/hemfixarna-cart/hemfixarna-cart.d.ts +0 -2
  246. package/dist/types/components/hemfixarna-component/hemfixarna-component.d.ts +2 -18
  247. package/dist/types/components/hemfixarna-demo/hemfixarna-demo.d.ts +4 -2
  248. package/dist/types/components/hemfixarna-order/hemfixarna-order.d.ts +0 -2
  249. package/dist/types/components/hemfixarna-orderrows/hemfixarna-orderrows.d.ts +1 -2
  250. package/dist/types/components.d.ts +2 -100
  251. package/dist/types/types/index.d.ts +24 -22
  252. package/dist/types/utils/api.d.ts +5 -1
  253. package/dist/types/utils/enviroment.d.ts +3 -0
  254. package/package.json +4 -3
  255. package/readme.md +22 -0
  256. package/dist/cjs/hemfixarna-address_36.cjs.entry.js.map +0 -1
  257. package/dist/esm/hemfixarna-address_36.entry.js.map +0 -1
  258. package/dist/esm/index-8c417125.js.map +0 -1
  259. package/dist/hemfixarna-components/p-852e7173.js.map +0 -1
  260. package/dist/hemfixarna-components/p-97461831.entry.js +0 -2
  261. package/dist/hemfixarna-components/p-97461831.entry.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"hemfixarna-invoice.js","sourceRoot":"","sources":["../../../src/components/hemfixarna-invoice/hemfixarna-invoice.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, State, getAssetPath, h } from '@stencil/core';\nimport state from '../../store';\n\nconst base = process.env.API_URL ? `${process.env.API_URL}/wp-json/headless` : 'https://hemfixarna.se/wp-json/headless';\n\ninterface FormElements extends HTMLCollection {\n descriptionInput: {\n value: string;\n };\n emailInput: {\n value: string;\n };\n telInput: {\n value: string;\n };\n termsInput: {\n checked: boolean;\n };\n}\n\n@Component({\n tag: 'hemfixarna-invoice',\n styleUrl: 'hemfixarna-invoice.scss',\n shadow: false,\n})\nexport class HemfixarnaInvoice {\n @State() formError: string | null = null;\n @Element() private el: HTMLElement;\n @State() displayImages: Array<string | ArrayBuffer> = [];\n @State() formImages: Array<File> = [];\n @State() formState: 'initial' | 'loading' = 'initial';\n\n isValidEmail(email: string) {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emailRegex.test(email);\n }\n\n componentDidRender() {\n const form = this.el.querySelector('form') as HTMLFormElement;\n if (form) {\n form.addEventListener('input', () => {\n this.formError = null;\n });\n }\n }\n\n disconnectedCallback() {\n const form = this.el.querySelector('form') as HTMLFormElement;\n if (form) {\n form.removeEventListener('input', () => {\n this.formError = null;\n });\n }\n }\n\n async submit(e: Event) {\n e.preventDefault();\n this.formState = 'loading';\n this.formError = null;\n const form = (e.currentTarget as HTMLFormElement).elements as FormElements;\n const values = {\n description: form.descriptionInput.value.length ? form.descriptionInput.value : null,\n email: form.emailInput.value.length ? form.emailInput.value : null,\n tel: form.telInput.value.length ? form.telInput.value : null,\n terms: form.termsInput?.checked,\n };\n\n if (!values.description) {\n this.formError = 'Vänligen fyll i formulärtexten';\n this.formState = 'initial';\n return;\n }\n if (!values.email || !this.isValidEmail(values.email)) {\n this.formError = 'Vänligen ange en giltig e-postadress';\n this.formState = 'initial';\n return;\n }\n if (!values.tel) {\n this.formError = 'Vänligen ange ditt telefonnummer';\n this.formState = 'initial';\n return;\n }\n if (state.selectedProduct.terms_show_checkbox && !values.terms) {\n this.formError = 'Vänligen acceptera villkoren';\n this.formState = 'initial';\n return;\n }\n\n const formData = new FormData();\n formData.append('text', values.description);\n formData.append('email', values.email);\n formData.append('phone', values.tel);\n formData.append('customer', state.business);\n\n this.formImages.forEach(file => {\n formData.append('images[]', file);\n });\n\n formData.append(\n 'product',\n JSON.stringify({\n title: state.selectedProduct.title,\n amount: 1,\n has_rut: state.selectedProduct.rut,\n has_rot: state.selectedProduct.rot,\n has_green: state.selectedProduct.green,\n ID: state.selectedProduct.ID,\n parts: [],\n }),\n );\n\n try {\n const res = await fetch(`${base}/saveinvoiceproduct`, {\n method: 'POST',\n body: formData,\n });\n const { response } = await res.json();\n if (response.code === 200) {\n state.checkoutInvoice = true;\n state.step = 6;\n } else {\n this.formError = 'Vi kan inte ta emot din beställning just nu';\n this.formState = 'initial';\n }\n } catch (error) {\n this.formError = 'Vi kan inte ta emot din beställning just nu';\n this.formState = 'initial';\n }\n }\n\n handleImageDrop(e: DragEvent) {\n e.preventDefault();\n const files = e.dataTransfer.files;\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n\n if (file.type.startsWith('image/')) {\n const reader = new FileReader();\n\n reader.onload = () => {\n this.displayImages = [...this.displayImages, reader.result];\n this.formImages = [...this.formImages, file];\n };\n\n reader.readAsDataURL(file);\n }\n }\n }\n\n handleFileInputChange(e: Event) {\n e.preventDefault();\n const files = (e.target as HTMLInputElement).files;\n\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n if (file.type.startsWith('image/')) {\n const reader = new FileReader();\n reader.onload = () => {\n this.displayImages = [...this.displayImages, reader.result];\n this.formImages = [...this.formImages, file];\n };\n\n reader.readAsDataURL(file);\n }\n }\n }\n\n handleImageClick() {\n (this.el.querySelector('.hemfixarna-file-upload') as HTMLInputElement).click();\n }\n\n preventDragOver(e: DragEvent) {\n e.preventDefault();\n }\n\n removeImage(index: number) {\n this.displayImages = this.displayImages.filter((_, i) => i !== index);\n this.formImages = this.formImages.filter((_, i) => i !== index);\n }\n\n render() {\n const upload = getAssetPath(`./assets/drag-drop.svg`);\n return (\n <div class=\"invoice\">\n <p>{state.selectedProduct.invoice_description}</p>\n <form onSubmit={e => this.submit(e)}>\n <textarea name=\"descriptionInput\" placeholder=\"Beskriv ditt ärende\" />\n <div role=\"button\" aria-label=\"upload image\" onDragOver={e => this.preventDragOver(e)} onDrop={e => this.handleImageDrop(e)} onClick={() => this.handleImageClick()}>\n <img src={upload} alt=\"hemfixarna_logo\" width={24} />\n <div>\n <p>Bifoga ev bilder</p>\n <span>(dra bilder hit)</span>\n </div>\n <input onChange={e => this.handleFileInputChange(e)} class=\"hemfixarna-file-upload\" accept=\"image/*\" type=\"file\" multiple name=\"fileInput\" />\n </div>\n <div class=\"invoice-preview\">\n {this.displayImages.map((img, i) => (\n <div key={i}>\n <img src={img as string} alt=\"uploaded image\" />\n <button onClick={() => this.removeImage(i)}>\n <img src={getAssetPath(`./assets/close.svg`)} alt=\"close\" />\n </button>\n </div>\n ))}\n </div>\n <input placeholder=\"E-post\" type=\"email\" name=\"emailInput\" />\n <input placeholder=\"Telefonnummer\" type=\"tel\" name=\"telInput\" />\n {state.selectedProduct.terms_show_checkbox ? (\n <label>\n <input type=\"checkbox\" name=\"termsInput\" />\n {state.selectedProduct.terms}\n </label>\n ) : null}\n {this.formError ? <span>{this.formError}</span> : null}\n <input type=\"submit\" value={this.formState === 'loading' ? 'Skickar' : 'Kontakta mig'} />\n </form>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"hemfixarna-invoice.js","sourceRoot":"","sources":["../../../src/components/hemfixarna-invoice/hemfixarna-invoice.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, State, getAssetPath, h } from '@stencil/core';\nimport state from '../../store';\nimport { getApiUrl } from '../../utils/enviroment';\n\nconst base = `${getApiUrl()}/wp-json/headless`;\n\ninterface FormElements extends HTMLCollection {\n descriptionInput: {\n value: string;\n };\n emailInput: {\n value: string;\n };\n telInput: {\n value: string;\n };\n termsInput: {\n checked: boolean;\n };\n}\n\n@Component({\n tag: 'hemfixarna-invoice',\n styleUrl: 'hemfixarna-invoice.scss',\n shadow: false,\n})\nexport class HemfixarnaInvoice {\n @State() formError: string | null = null;\n @Element() private el: HTMLElement;\n @State() displayImages: Array<string | ArrayBuffer> = [];\n @State() formImages: Array<File> = [];\n @State() formState: 'initial' | 'loading' = 'initial';\n\n isValidEmail(email: string) {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emailRegex.test(email);\n }\n\n componentDidRender() {\n const form = this.el.querySelector('form') as HTMLFormElement;\n if (form) {\n form.addEventListener('input', () => {\n this.formError = null;\n });\n }\n }\n\n disconnectedCallback() {\n const form = this.el.querySelector('form') as HTMLFormElement;\n if (form) {\n form.removeEventListener('input', () => {\n this.formError = null;\n });\n }\n }\n\n async submit(e: Event) {\n e.preventDefault();\n this.formState = 'loading';\n this.formError = null;\n const form = (e.currentTarget as HTMLFormElement).elements as FormElements;\n const values = {\n description: form.descriptionInput.value.length ? form.descriptionInput.value : null,\n email: form.emailInput.value.length ? form.emailInput.value : null,\n tel: form.telInput.value.length ? form.telInput.value : null,\n terms: form.termsInput?.checked,\n };\n\n if (!values.description) {\n this.formError = 'Vänligen fyll i formulärtexten';\n this.formState = 'initial';\n return;\n }\n if (!values.email || !this.isValidEmail(values.email)) {\n this.formError = 'Vänligen ange en giltig e-postadress';\n this.formState = 'initial';\n return;\n }\n if (!values.tel) {\n this.formError = 'Vänligen ange ditt telefonnummer';\n this.formState = 'initial';\n return;\n }\n if (state.selectedProduct.terms_show_checkbox && !values.terms) {\n this.formError = 'Vänligen acceptera villkoren';\n this.formState = 'initial';\n return;\n }\n\n const formData = new FormData();\n formData.append('text', values.description);\n formData.append('email', values.email);\n formData.append('phone', values.tel);\n formData.append('customer', state.business);\n\n this.formImages.forEach(file => {\n formData.append('images[]', file);\n });\n\n formData.append(\n 'product',\n JSON.stringify({\n title: state.selectedProduct.title,\n amount: 1,\n has_rut: state.selectedProduct.rut,\n has_rot: state.selectedProduct.rot,\n has_green: state.selectedProduct.green,\n ID: state.selectedProduct.ID,\n parts: [],\n }),\n );\n\n try {\n const res = await fetch(`${base}/saveinvoiceproduct`, {\n method: 'POST',\n body: formData,\n });\n const { response } = await res.json();\n if (response.code === 200) {\n state.checkoutInvoice = true;\n state.step = 6;\n } else {\n this.formError = 'Vi kan inte ta emot din beställning just nu';\n this.formState = 'initial';\n }\n } catch (error) {\n this.formError = 'Vi kan inte ta emot din beställning just nu';\n this.formState = 'initial';\n }\n }\n\n handleImageDrop(e: DragEvent) {\n e.preventDefault();\n const files = e.dataTransfer.files;\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n\n if (file.type.startsWith('image/')) {\n const reader = new FileReader();\n\n reader.onload = () => {\n this.displayImages = [...this.displayImages, reader.result];\n this.formImages = [...this.formImages, file];\n };\n\n reader.readAsDataURL(file);\n }\n }\n }\n\n handleFileInputChange(e: Event) {\n e.preventDefault();\n const files = (e.target as HTMLInputElement).files;\n\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n if (file.type.startsWith('image/')) {\n const reader = new FileReader();\n reader.onload = () => {\n this.displayImages = [...this.displayImages, reader.result];\n this.formImages = [...this.formImages, file];\n };\n\n reader.readAsDataURL(file);\n }\n }\n }\n\n handleImageClick() {\n (this.el.querySelector('.hemfixarna-file-upload') as HTMLInputElement).click();\n }\n\n preventDragOver(e: DragEvent) {\n e.preventDefault();\n }\n\n removeImage(index: number) {\n this.displayImages = this.displayImages.filter((_, i) => i !== index);\n this.formImages = this.formImages.filter((_, i) => i !== index);\n }\n\n render() {\n const upload = getAssetPath(`./assets/drag-drop.svg`);\n return (\n <div class=\"invoice\">\n <p>{state.selectedProduct.invoice_description}</p>\n <form onSubmit={e => this.submit(e)}>\n <textarea name=\"descriptionInput\" placeholder=\"Beskriv ditt ärende\" />\n <div role=\"button\" aria-label=\"upload image\" onDragOver={e => this.preventDragOver(e)} onDrop={e => this.handleImageDrop(e)} onClick={() => this.handleImageClick()}>\n <img src={upload} alt=\"hemfixarna_logo\" width={24} />\n <div>\n <p>Bifoga ev bilder</p>\n <span>(dra bilder hit)</span>\n </div>\n <input onChange={e => this.handleFileInputChange(e)} class=\"hemfixarna-file-upload\" accept=\"image/*\" type=\"file\" multiple name=\"fileInput\" />\n </div>\n <div class=\"invoice-preview\">\n {this.displayImages.map((img, i) => (\n <div key={i}>\n <img src={img as string} alt=\"uploaded image\" />\n <button onClick={() => this.removeImage(i)}>\n <img src={getAssetPath(`./assets/close.svg`)} alt=\"close\" />\n </button>\n </div>\n ))}\n </div>\n <input placeholder=\"E-post\" type=\"email\" name=\"emailInput\" />\n <input placeholder=\"Telefonnummer\" type=\"tel\" name=\"telInput\" />\n {state.selectedProduct.terms_show_checkbox ? (\n <label>\n <input type=\"checkbox\" name=\"termsInput\" />\n {state.selectedProduct.terms}\n </label>\n ) : null}\n {this.formError ? <span>{this.formError}</span> : null}\n <input type=\"submit\" value={this.formState === 'loading' ? 'Skickar' : 'Kontakta mig'} />\n </form>\n </div>\n );\n }\n}\n"]}
@@ -3,9 +3,8 @@ import state from '../../store';
3
3
  export class HemfixarnaOrder {
4
4
  constructor() {
5
5
  this.render = () => {
6
- return (h("div", { style: { background: `url(${state.options.thank_you_image})` }, class: "hemfixarna_order" }, h("div", null), h("div", null, h("h2", null, state.checkoutInvoice ? 'Tack för din förfrågan' : 'Tack för din bokning'), state.checkoutInvoice ? h("p", null, "Vi \u00E5terkommer inom kort till dig p\u00E5 angivet telefonnummer eller epost") : null, state.checkoutInvoice ? h("div", null) : h("hemfixarna-orderrows", { tree: this.tree, cart: false }), h("span", { onClick: () => this.resetShop() }, h("button", null, "G\u00F6r en ny bokning")), h("hemfixarna-info", null))));
6
+ return (h("div", { style: { background: `url(${state.options.thank_you_image})` }, class: "hemfixarna_order" }, h("div", null), h("div", null, h("h2", null, state.checkoutInvoice ? 'Tack för din förfrågan' : 'Tack för din bokning'), state.checkoutInvoice ? h("p", null, "Vi \u00E5terkommer inom kort till dig p\u00E5 angivet telefonnummer eller epost") : null, state.checkoutInvoice ? h("div", null) : h("hemfixarna-orderrows", { cart: false }), h("span", { onClick: () => this.resetShop() }, h("button", null, "G\u00F6r en ny bokning")), h("hemfixarna-info", null))));
7
7
  };
8
- this.tree = undefined;
9
8
  }
10
9
  resetShop() {
11
10
  state.step = 1;
@@ -20,29 +19,5 @@ export class HemfixarnaOrder {
20
19
  this.resetShop();
21
20
  }
22
21
  static get is() { return "hemfixarna-order"; }
23
- static get properties() {
24
- return {
25
- "tree": {
26
- "type": "unknown",
27
- "mutable": false,
28
- "complexType": {
29
- "original": "Category",
30
- "resolved": "Category",
31
- "references": {
32
- "Category": {
33
- "location": "import",
34
- "path": "../../types"
35
- }
36
- }
37
- },
38
- "required": false,
39
- "optional": false,
40
- "docs": {
41
- "tags": [],
42
- "text": ""
43
- }
44
- }
45
- };
46
- }
47
22
  }
48
23
  //# sourceMappingURL=hemfixarna-order.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hemfixarna-order.js","sourceRoot":"","sources":["../../../src/components/hemfixarna-order/hemfixarna-order.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,MAAM,aAAa,CAAC;AAOhC,MAAM,OAAO,eAAe;;IAiB1B,WAAM,GAAG,GAAG,EAAE;MACZ,OAAO,CACL,WAAK,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,GAAG,EAAE,EAAE,KAAK,EAAC,kBAAkB;QAC3F,cAAW;QACX;UACE,cAAK,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,sBAAsB,CAAM;UACnF,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,+FAA4E,CAAC,CAAC,CAAC,IAAI;UAC3G,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,cAAW,CAAC,CAAC,CAAC,4BAAsB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,GAAyB;UAClH,YAAM,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;YACnC,2CAAkC,CAC7B;UACP,0BAAmB,CACf,CACF,CACP,CAAC;IACJ,CAAC,CAAC;;;EA7BF,SAAS;IACP,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;IAChB,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC9B,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;EACzB,CAAC;EAED,oBAAoB;IAClB,IAAI,CAAC,SAAS,EAAE,CAAC;EACnB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;CAkBF","sourcesContent":["import { Component, Prop, h } from '@stencil/core';\nimport state from '../../store';\nimport { Category } from '../../types';\n\n@Component({\n tag: 'hemfixarna-order',\n shadow: false,\n})\nexport class HemfixarnaOrder {\n @Prop() tree: Category;\n\n resetShop() {\n state.step = 1;\n state.cart = [];\n state.selectedCategory = null;\n state.selectedService = null;\n state.selectedProduct = null;\n state.maleri = null;\n state.checkoutStep = 1;\n }\n\n disconnectedCallback() {\n this.resetShop();\n }\n\n render = () => {\n return (\n <div style={{ background: `url(${state.options.thank_you_image})` }} class=\"hemfixarna_order\">\n <div></div>\n <div>\n <h2>{state.checkoutInvoice ? 'Tack för din förfrågan' : 'Tack för din bokning'}</h2>\n {state.checkoutInvoice ? <p>Vi återkommer inom kort till dig på angivet telefonnummer eller epost</p> : null}\n {state.checkoutInvoice ? <div></div> : <hemfixarna-orderrows tree={this.tree} cart={false}></hemfixarna-orderrows>}\n <span onClick={() => this.resetShop()}>\n <button>Gör en ny bokning</button>\n </span>\n <hemfixarna-info />\n </div>\n </div>\n );\n };\n}\n"]}
1
+ {"version":3,"file":"hemfixarna-order.js","sourceRoot":"","sources":["../../../src/components/hemfixarna-order/hemfixarna-order.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,MAAM,aAAa,CAAC;AAMhC,MAAM,OAAO,eAAe;EAJ5B;IAmBE,WAAM,GAAG,GAAG,EAAE;MACZ,OAAO,CACL,WAAK,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,GAAG,EAAE,EAAE,KAAK,EAAC,kBAAkB;QAC3F,cAAW;QACX;UACE,cAAK,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,sBAAsB,CAAM;UACnF,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,+FAA4E,CAAC,CAAC,CAAC,IAAI;UAC3G,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,cAAW,CAAC,CAAC,CAAC,4BAAsB,IAAI,EAAE,KAAK,GAAyB;UACjG,YAAM,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;YACnC,2CAAkC,CAC7B;UACP,0BAAmB,CACf,CACF,CACP,CAAC;IACJ,CAAC,CAAC;GACH;EA9BC,SAAS;IACP,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;IAChB,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC9B,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;EACzB,CAAC;EAED,oBAAoB;IAClB,IAAI,CAAC,SAAS,EAAE,CAAC;EACnB,CAAC;;CAkBF","sourcesContent":["import { Component, h } from '@stencil/core';\nimport state from '../../store';\n\n@Component({\n tag: 'hemfixarna-order',\n shadow: false,\n})\nexport class HemfixarnaOrder {\n resetShop() {\n state.step = 1;\n state.cart = [];\n state.selectedCategory = null;\n state.selectedService = null;\n state.selectedProduct = null;\n state.maleri = null;\n state.checkoutStep = 1;\n }\n\n disconnectedCallback() {\n this.resetShop();\n }\n\n render = () => {\n return (\n <div style={{ background: `url(${state.options.thank_you_image})` }} class=\"hemfixarna_order\">\n <div></div>\n <div>\n <h2>{state.checkoutInvoice ? 'Tack för din förfrågan' : 'Tack för din bokning'}</h2>\n {state.checkoutInvoice ? <p>Vi återkommer inom kort till dig på angivet telefonnummer eller epost</p> : null}\n {state.checkoutInvoice ? <div></div> : <hemfixarna-orderrows cart={false}></hemfixarna-orderrows>}\n <span onClick={() => this.resetShop()}>\n <button>Gör en ny bokning</button>\n </span>\n <hemfixarna-info />\n </div>\n </div>\n );\n };\n}\n"]}
@@ -4,29 +4,15 @@ import { calculateGreenDiscount, calculateRot, calculateRut, getPartPrice, getPr
4
4
  export class HemfixarnaOrderrows {
5
5
  constructor() {
6
6
  this.cart = true;
7
- this.tree = undefined;
8
7
  }
9
8
  goToProduct(id) {
10
- if (state.customer) {
11
- const products = state.customer.categories
12
- .map(c => (c.show_products ? c.products : c.sub_categories ? c.sub_categories.map(c => c.products) : []))
13
- .flat()
14
- .flat();
15
- const product = products.find(p => p && p.fields.ID === id);
16
- if (product) {
17
- state.selectedProduct = product.fields;
18
- state.step = 4;
19
- }
20
- }
21
- else {
22
- const services = this.tree.sub_cats.map((c) => c.services).flat();
23
- const products = services.map((s) => s.products).flat();
24
- const product = products.find((p) => p.ID === id);
25
- const service = services.find((s) => s.products.find((p) => p.ID === id));
26
- const category = this.tree.sub_cats.find((c) => c.services.find((s) => s.products.find((p) => p.ID === id)));
27
- state.selectedCategory = category;
28
- state.selectedService = service;
29
- state.selectedProduct = product;
9
+ const products = state.customer.categories
10
+ .map(c => (c.show_products ? c.products : c.sub_categories ? c.sub_categories.map(c => c.products) : []))
11
+ .flat()
12
+ .flat();
13
+ const product = products.find(p => p && p.fields.ID === id);
14
+ if (product) {
15
+ state.selectedProduct = product.fields;
30
16
  state.step = 4;
31
17
  }
32
18
  }
@@ -89,26 +75,6 @@ export class HemfixarnaOrderrows {
89
75
  "attribute": "cart",
90
76
  "reflect": false,
91
77
  "defaultValue": "true"
92
- },
93
- "tree": {
94
- "type": "unknown",
95
- "mutable": false,
96
- "complexType": {
97
- "original": "Category",
98
- "resolved": "Category",
99
- "references": {
100
- "Category": {
101
- "location": "import",
102
- "path": "../../types"
103
- }
104
- }
105
- },
106
- "required": false,
107
- "optional": false,
108
- "docs": {
109
- "tags": [],
110
- "text": ""
111
- }
112
78
  }
113
79
  };
114
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hemfixarna-orderrows.js","sourceRoot":"","sources":["../../../src/components/hemfixarna-orderrows/hemfixarna-orderrows.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Fragment, Prop, getAssetPath, h } from '@stencil/core';\nimport state from '../../store';\nimport { CartItem, Category, Icon } from '../../types';\nimport { calculateGreenDiscount, calculateRot, calculateRut, getPartPrice, getProductPrice, getStartFee, getTotalPrice } from '../../utils/calc';\n\n@Component({\n tag: 'hemfixarna-orderrows',\n shadow: false,\n})\nexport class HemfixarnaOrderrows {\n @Prop() cart: boolean = true;\n @Prop() tree: Category;\n\n goToProduct(id: number) {\n if (state.customer) {\n const products = state.customer.categories\n .map(c => (c.show_products ? c.products : c.sub_categories ? c.sub_categories.map(c => c.products) : []))\n .flat()\n .flat();\n const product = products.find(p => p && p.fields.ID === id);\n if (product) {\n state.selectedProduct = product.fields;\n state.step = 4;\n }\n } else {\n const services = this.tree.sub_cats.map((c: Category) => c.services).flat();\n const products = services.map((s: any) => s.products).flat();\n const product = products.find((p: any) => p.ID === id);\n const service = services.find((s: any) => s.products.find((p: any) => p.ID === id));\n const category = this.tree.sub_cats.find((c: any) => c.services.find((s: any) => s.products.find((p: any) => p.ID === id)));\n state.selectedCategory = category;\n state.selectedService = service;\n state.selectedProduct = product;\n state.step = 4;\n }\n }\n\n openRot() {\n state.modal = {\n title: state.rotOptions.rot_start_fee_heading,\n text: [state.rotOptions.rot_start_fee_text, state.rotOptions.rot_start_fee_text_secondary],\n };\n }\n\n openRut() {\n state.modal = {\n title: state.rutOptions.rut_start_fee_heading,\n text: [state.rutOptions.rut_start_fee_text, state.rutOptions.rut_start_fee_text_secondary],\n };\n }\n\n openGreen() {\n state.modal = {\n title: state.greenOptions.green_start_fee_heading,\n text: [state.greenOptions.green_start_fee_text, state.greenOptions.green_start_fee_text_secondary],\n };\n }\n\n getDiscountedInfo(item: CartItem) {\n if (item.rut && state.rut) {\n return ' (efter RUT-avdrag)';\n } else if (item.rot && state.rot) {\n return ' (efter ROT-avdrag)';\n } else if (item.green && state.green) {\n return ' (efter Grön teknik avdrag)';\n } else {\n return '';\n }\n }\n\n render() {\n const info = getAssetPath(`./assets/info.svg`);\n\n return (\n <Fragment>\n <ul class=\"hemfixarna_cart--items\">\n {state.cart.map(item => (\n <li class=\"hemfixarna_cart--item\">\n <div>\n <div>\n {item.icon && <img width={30} src={(item.icon as Icon).url ?? (item.icon as string)} alt={item.name} />}\n <p>\n <strong>{item.amount}x </strong>\n {item.name}\n </p>\n </div>\n {this.cart && <button onClick={() => this.goToProduct(item.id)}>Ändra</button>}\n </div>\n <p>\n <strong>{getProductPrice(item, item.price, item.amount)}kr</strong>\n <span>{this.getDiscountedInfo(item)}</span>\n </p>\n {item.parts.length > 0 && (\n <ul>\n {item.parts.map(part => (\n <li>\n <p>\n <strong>{part.amount}x </strong>\n {part.name}\n </p>\n <p>\n <strong>{getPartPrice(part, item, part.amount)}kr</strong>\n </p>\n </li>\n ))}\n </ul>\n )}\n </li>\n ))}\n </ul>\n <div class=\"hemfixarna_cart--additional\">\n <div>\n {getStartFee().rot > 0 && (\n <div class=\"hemfixarna_cart--startfee\">\n <p>\n <strong onClick={() => this.openRot()}>\n {state.rotOptions.rot_start_fee_heading}\n <img height={16} src={info} alt=\"info monteringsavgift\" />\n </strong>\n </p>\n <p>{getStartFee().rot}kr</p>\n </div>\n )}\n {getStartFee().rut > 0 && (\n <div class=\"hemfixarna_cart--startfee\">\n <p>\n <strong onClick={() => this.openRut()}>\n {state.rutOptions.rut_start_fee_heading}\n <img height={16} src={info} alt=\"info monteringsavgift\" />\n </strong>\n </p>\n <p>{getStartFee().rut}kr</p>\n </div>\n )}\n {getStartFee().green > 0 && (\n <div class=\"hemfixarna_cart--startfee\">\n <p>\n <strong onClick={() => this.openGreen()}>\n {state.greenOptions.green_start_fee_heading}\n <img height={16} src={info} alt=\"info monteringsavgift\" />\n </strong>\n </p>\n <p>{getStartFee().green}kr</p>\n </div>\n )}\n </div>\n {state.cart.find((item: CartItem) => item.rot) && (\n <div class=\"hemfixarna_cart--rutrot\">\n <div>\n {this.cart && (\n <label class=\"switch\">\n <input checked={state.rot} onChange={() => (state.rot = !state.rot)} type=\"checkbox\" />\n <span class=\"slider\"></span>\n </label>\n )}\n <p>ROT-avdrag</p>\n </div>\n <p>(-{state.rot ? calculateRot() : 0}kr)</p>\n </div>\n )}\n {state.cart.find((item: CartItem) => item.rut) && (\n <div class=\"hemfixarna_cart--rutrot\">\n <div>\n <label class=\"switch\">\n <input onChange={() => (state.rut = !state.rut)} checked={state.rut} type=\"checkbox\" />\n <span class=\"slider\"></span>\n </label>\n <p>RUT-avdrag</p>\n </div>\n <p>(-{state.rut ? calculateRut() : 0}kr)</p>\n </div>\n )}\n {state.cart.find((item: CartItem) => item.green) && (\n <div class=\"hemfixarna_cart--rutrot\">\n <div>\n <label class=\"switch\">\n <input onChange={() => (state.green = !state.green)} checked={state.green} type=\"checkbox\" />\n <span class=\"slider\"></span>\n </label>\n <p>Grön teknik avdrag</p>\n </div>\n <p>(-{state.green ? calculateGreenDiscount() : 0}kr)</p>\n </div>\n )}\n </div>\n <div class=\"hemfixarna_cart--price\">\n <h2>Totalbelopp: </h2>\n <h2>{getTotalPrice()}kr</h2>\n </div>\n </Fragment>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"hemfixarna-orderrows.js","sourceRoot":"","sources":["../../../src/components/hemfixarna-orderrows/hemfixarna-orderrows.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,MAAM,aAAa,CAAC;AAEhC,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMjJ,MAAM,OAAO,mBAAmB;;gBACN,IAAI;;EAE5B,WAAW,CAAC,EAAU;IACpB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU;OACvC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;OACxG,IAAI,EAAE;OACN,IAAI,EAAE,CAAC;IACV,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,IAAI,OAAO,EAAE;MACX,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;MACvC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;KAChB;EACH,CAAC;EAED,OAAO;IACL,KAAK,CAAC,KAAK,GAAG;MACZ,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,qBAAqB;MAC7C,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,kBAAkB,EAAE,KAAK,CAAC,UAAU,CAAC,4BAA4B,CAAC;KAC3F,CAAC;EACJ,CAAC;EAED,OAAO;IACL,KAAK,CAAC,KAAK,GAAG;MACZ,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,qBAAqB;MAC7C,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,kBAAkB,EAAE,KAAK,CAAC,UAAU,CAAC,4BAA4B,CAAC;KAC3F,CAAC;EACJ,CAAC;EAED,SAAS;IACP,KAAK,CAAC,KAAK,GAAG;MACZ,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,uBAAuB;MACjD,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,oBAAoB,EAAE,KAAK,CAAC,YAAY,CAAC,8BAA8B,CAAC;KACnG,CAAC;EACJ,CAAC;EAED,iBAAiB,CAAC,IAAc;IAC9B,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE;MACzB,OAAO,qBAAqB,CAAC;KAC9B;SAAM,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE;MAChC,OAAO,qBAAqB,CAAC;KAC9B;SAAM,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;MACpC,OAAO,6BAA6B,CAAC;KACtC;SAAM;MACL,OAAO,EAAE,CAAC;KACX;EACH,CAAC;EAED,MAAM;IACJ,MAAM,IAAI,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;IAE/C,OAAO,CACL,EAAC,QAAQ;MACP,UAAI,KAAK,EAAC,wBAAwB,IAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;;QAAC,OAAA,CACtB,UAAI,KAAK,EAAC,uBAAuB;UAC/B;YACE;cACG,IAAI,CAAC,IAAI,IAAI,WAAK,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,MAAC,IAAI,CAAC,IAAa,CAAC,GAAG,mCAAK,IAAI,CAAC,IAAe,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,GAAI;cACvG;gBACE;kBAAS,IAAI,CAAC,MAAM;uBAAY;gBAC/B,IAAI,CAAC,IAAI,CACR,CACA;YACL,IAAI,CAAC,IAAI,IAAI,cAAQ,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAgB,CAC1E;UACN;YACE;cAAS,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;mBAAY;YACnE,gBAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAQ,CACzC;UACH,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CACxB,cACG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CACtB;YACE;cACE;gBAAS,IAAI,CAAC,MAAM;qBAAY;cAC/B,IAAI,CAAC,IAAI,CACR;YACJ;cACE;gBAAS,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;qBAAY,CACxD,CACD,CACN,CAAC,CACC,CACN,CACE,CACN,CAAA;OAAA,CAAC,CACC;MACL,WAAK,KAAK,EAAC,6BAA6B;QACtC;UACG,WAAW,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CACxB,WAAK,KAAK,EAAC,2BAA2B;YACpC;cACE,cAAQ,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;gBAClC,KAAK,CAAC,UAAU,CAAC,qBAAqB;gBACvC,WAAK,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC,uBAAuB,GAAG,CACnD,CACP;YACJ;cAAI,WAAW,EAAE,CAAC,GAAG;mBAAO,CACxB,CACP;UACA,WAAW,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CACxB,WAAK,KAAK,EAAC,2BAA2B;YACpC;cACE,cAAQ,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;gBAClC,KAAK,CAAC,UAAU,CAAC,qBAAqB;gBACvC,WAAK,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC,uBAAuB,GAAG,CACnD,CACP;YACJ;cAAI,WAAW,EAAE,CAAC,GAAG;mBAAO,CACxB,CACP;UACA,WAAW,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,CAC1B,WAAK,KAAK,EAAC,2BAA2B;YACpC;cACE,cAAQ,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;gBACpC,KAAK,CAAC,YAAY,CAAC,uBAAuB;gBAC3C,WAAK,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC,uBAAuB,GAAG,CACnD,CACP;YACJ;cAAI,WAAW,EAAE,CAAC,KAAK;mBAAO,CAC1B,CACP,CACG;QACL,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAChD,WAAK,KAAK,EAAC,yBAAyB;UAClC;YACG,IAAI,CAAC,IAAI,IAAI,CACZ,aAAO,KAAK,EAAC,QAAQ;cACnB,aAAO,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAC,UAAU,GAAG;cACvF,YAAM,KAAK,EAAC,QAAQ,GAAQ,CACtB,CACT;YACD,0BAAiB,CACb;UACN;;YAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;kBAAQ,CACxC,CACP;QACA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAChD,WAAK,KAAK,EAAC,yBAAyB;UAClC;YACE,aAAO,KAAK,EAAC,QAAQ;cACnB,aAAO,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAC,UAAU,GAAG;cACvF,YAAM,KAAK,EAAC,QAAQ,GAAQ,CACtB;YACR,0BAAiB,CACb;UACN;;YAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;kBAAQ,CACxC,CACP;QACA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAClD,WAAK,KAAK,EAAC,yBAAyB;UAClC;YACE,aAAO,KAAK,EAAC,QAAQ;cACnB,aAAO,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAC,UAAU,GAAG;cAC7F,YAAM,KAAK,EAAC,QAAQ,GAAQ,CACtB;YACR,uCAAyB,CACrB;UACN;;YAAM,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,CAAC;kBAAQ,CACpD,CACP,CACG;MACN,WAAK,KAAK,EAAC,wBAAwB;QACjC,8BAAsB;QACtB;UAAK,aAAa,EAAE;eAAQ,CACxB,CACG,CACZ,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Fragment, Prop, getAssetPath, h } from '@stencil/core';\nimport state from '../../store';\nimport { CartItem, Icon } from '../../types';\nimport { calculateGreenDiscount, calculateRot, calculateRut, getPartPrice, getProductPrice, getStartFee, getTotalPrice } from '../../utils/calc';\n\n@Component({\n tag: 'hemfixarna-orderrows',\n shadow: false,\n})\nexport class HemfixarnaOrderrows {\n @Prop() cart: boolean = true;\n\n goToProduct(id: number) {\n const products = state.customer.categories\n .map(c => (c.show_products ? c.products : c.sub_categories ? c.sub_categories.map(c => c.products) : []))\n .flat()\n .flat();\n const product = products.find(p => p && p.fields.ID === id);\n if (product) {\n state.selectedProduct = product.fields;\n state.step = 4;\n }\n }\n\n openRot() {\n state.modal = {\n title: state.rotOptions.rot_start_fee_heading,\n text: [state.rotOptions.rot_start_fee_text, state.rotOptions.rot_start_fee_text_secondary],\n };\n }\n\n openRut() {\n state.modal = {\n title: state.rutOptions.rut_start_fee_heading,\n text: [state.rutOptions.rut_start_fee_text, state.rutOptions.rut_start_fee_text_secondary],\n };\n }\n\n openGreen() {\n state.modal = {\n title: state.greenOptions.green_start_fee_heading,\n text: [state.greenOptions.green_start_fee_text, state.greenOptions.green_start_fee_text_secondary],\n };\n }\n\n getDiscountedInfo(item: CartItem) {\n if (item.rut && state.rut) {\n return ' (efter RUT-avdrag)';\n } else if (item.rot && state.rot) {\n return ' (efter ROT-avdrag)';\n } else if (item.green && state.green) {\n return ' (efter Grön teknik avdrag)';\n } else {\n return '';\n }\n }\n\n render() {\n const info = getAssetPath(`./assets/info.svg`);\n\n return (\n <Fragment>\n <ul class=\"hemfixarna_cart--items\">\n {state.cart.map(item => (\n <li class=\"hemfixarna_cart--item\">\n <div>\n <div>\n {item.icon && <img width={30} src={(item.icon as Icon).url ?? (item.icon as string)} alt={item.name} />}\n <p>\n <strong>{item.amount}x </strong>\n {item.name}\n </p>\n </div>\n {this.cart && <button onClick={() => this.goToProduct(item.id)}>Ändra</button>}\n </div>\n <p>\n <strong>{getProductPrice(item, item.price, item.amount)}kr</strong>\n <span>{this.getDiscountedInfo(item)}</span>\n </p>\n {item.parts.length > 0 && (\n <ul>\n {item.parts.map(part => (\n <li>\n <p>\n <strong>{part.amount}x </strong>\n {part.name}\n </p>\n <p>\n <strong>{getPartPrice(part, item, part.amount)}kr</strong>\n </p>\n </li>\n ))}\n </ul>\n )}\n </li>\n ))}\n </ul>\n <div class=\"hemfixarna_cart--additional\">\n <div>\n {getStartFee().rot > 0 && (\n <div class=\"hemfixarna_cart--startfee\">\n <p>\n <strong onClick={() => this.openRot()}>\n {state.rotOptions.rot_start_fee_heading}\n <img height={16} src={info} alt=\"info monteringsavgift\" />\n </strong>\n </p>\n <p>{getStartFee().rot}kr</p>\n </div>\n )}\n {getStartFee().rut > 0 && (\n <div class=\"hemfixarna_cart--startfee\">\n <p>\n <strong onClick={() => this.openRut()}>\n {state.rutOptions.rut_start_fee_heading}\n <img height={16} src={info} alt=\"info monteringsavgift\" />\n </strong>\n </p>\n <p>{getStartFee().rut}kr</p>\n </div>\n )}\n {getStartFee().green > 0 && (\n <div class=\"hemfixarna_cart--startfee\">\n <p>\n <strong onClick={() => this.openGreen()}>\n {state.greenOptions.green_start_fee_heading}\n <img height={16} src={info} alt=\"info monteringsavgift\" />\n </strong>\n </p>\n <p>{getStartFee().green}kr</p>\n </div>\n )}\n </div>\n {state.cart.find((item: CartItem) => item.rot) && (\n <div class=\"hemfixarna_cart--rutrot\">\n <div>\n {this.cart && (\n <label class=\"switch\">\n <input checked={state.rot} onChange={() => (state.rot = !state.rot)} type=\"checkbox\" />\n <span class=\"slider\"></span>\n </label>\n )}\n <p>ROT-avdrag</p>\n </div>\n <p>(-{state.rot ? calculateRot() : 0}kr)</p>\n </div>\n )}\n {state.cart.find((item: CartItem) => item.rut) && (\n <div class=\"hemfixarna_cart--rutrot\">\n <div>\n <label class=\"switch\">\n <input onChange={() => (state.rut = !state.rut)} checked={state.rut} type=\"checkbox\" />\n <span class=\"slider\"></span>\n </label>\n <p>RUT-avdrag</p>\n </div>\n <p>(-{state.rut ? calculateRut() : 0}kr)</p>\n </div>\n )}\n {state.cart.find((item: CartItem) => item.green) && (\n <div class=\"hemfixarna_cart--rutrot\">\n <div>\n <label class=\"switch\">\n <input onChange={() => (state.green = !state.green)} checked={state.green} type=\"checkbox\" />\n <span class=\"slider\"></span>\n </label>\n <p>Grön teknik avdrag</p>\n </div>\n <p>(-{state.green ? calculateGreenDiscount() : 0}kr)</p>\n </div>\n )}\n </div>\n <div class=\"hemfixarna_cart--price\">\n <h2>Totalbelopp: </h2>\n <h2>{getTotalPrice()}kr</h2>\n </div>\n </Fragment>\n );\n }\n}\n"]}
@@ -1,3 +1,6 @@
1
+ // Match slug with partner slug in wp admin
2
+ // Dont forget to add the partners url to cors for creditsafe
3
+ // https://bitbucket.org/afonso-sweden/creditsafe-lookup/src/main/api/index.ts
1
4
  export var Business;
2
5
  (function (Business) {
3
6
  Business["kund"] = "kund";
@@ -20,6 +23,7 @@ export var Business;
20
23
  Business["power"] = "power";
21
24
  Business["traningspartner"] = "traningspartner";
22
25
  Business["superfront"] = "superfront";
26
+ Business["inet"] = "inet";
23
27
  })(Business || (Business = {}));
24
28
  export var WidgetStyle;
25
29
  (function (WidgetStyle) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAgMA,MAAM,CAAN,IAAY,QAqBX;AArBD,WAAY,QAAQ;EAClB,yBAAa,CAAA;EACb,+BAAmB,CAAA;EACnB,+BAAmB,CAAA;EACnB,uCAA2B,CAAA;EAC3B,iCAAqB,CAAA;EACrB,iCAAqB,CAAA;EACrB,yBAAa,CAAA;EACb,yBAAa,CAAA;EACb,4BAAgB,CAAA;EAChB,mCAAuB,CAAA;EACvB,2CAA+B,CAAA;EAC/B,6BAAiB,CAAA;EACjB,2BAAe,CAAA;EACf,2BAAe,CAAA;EACf,qCAAyB,CAAA;EACzB,qBAAS,CAAA;EACT,uCAA2B,CAAA;EAC3B,2BAAe,CAAA;EACf,+CAAmC,CAAA;EACnC,qCAAyB,CAAA;AAC3B,CAAC,EArBW,QAAQ,KAAR,QAAQ,QAqBnB;AAED,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;EACrB,oCAAqB,CAAA;EACrB,0CAA2B,CAAA;EAC3B,8CAA+B,CAAA;EAC/B,8CAA+B,CAAA;AACjC,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAED,MAAM,CAAN,IAAY,WAEX;AAFD,WAAY,WAAW;EACrB,wCAAyB,CAAA;AAC3B,CAAC,EAFW,WAAW,KAAX,WAAW,QAEtB","sourcesContent":["type Icon = {\n url: string;\n};\n\ninterface Customer {\n ID: number;\n post_title: string;\n post_name: string;\n post_type: string;\n filter: string;\n categories: CustomerCategory[];\n logo?: Icon;\n partner_url?: string;\n at_hemfixarna: boolean;\n info_title: string;\n widget_title?: string;\n info_text: string;\n checkout_title: string;\n checkout_trust_badges: { text: string }[];\n trust_badges: { text: string }[];\n source?: Source;\n}\n\ninterface CustomerCategory {\n id: string;\n name: string;\n widget_title?: string;\n icon: string;\n show_products: boolean;\n products: { fields: Product }[] | false;\n sub_categories: CustomerSubCategory[] | false;\n add_painting: boolean;\n}\n\ninterface CustomerSubCategory {\n id: string;\n name: string;\n widget_title?: string;\n icon: string;\n products: { fields: Product }[];\n parent: string;\n add_painting: boolean;\n}\n\ninterface Part {\n ID: number;\n post_author: number;\n post_date: Date;\n post_date_gmt: Date;\n post_content: string;\n post_title: string;\n post_excerpt: string;\n post_status: string;\n comment_status: string;\n ping_status: string;\n post_password: string;\n post_name: string;\n to_ping: string;\n pinged: string;\n post_modified: Date;\n post_modified_gmt: Date;\n post_content_filtered: string;\n post_parent: 0 | 1;\n guid: string;\n menu_order: 0;\n post_type: string;\n post_mime_type: string;\n comment_count: number;\n filter: string;\n price: number;\n title: string;\n}\n\ninterface Product {\n ID: number;\n post_author: string;\n post_date: Date;\n post_date_gmt: Date;\n post_content: string;\n post_title: string;\n post_excerpt: string;\n post_status: string;\n comment_status: string;\n ping_status: string;\n post_password: string;\n post_name: string;\n to_ping: string;\n pinged: string;\n post_modified: Date;\n post_modified_gmt: Date;\n post_content_filtered: string;\n post_parent: 0;\n guid: string;\n menu_order: 0;\n post_type: string;\n post_mime_type: string;\n comment_count: 0;\n filter: string;\n price: number;\n icon?: Icon | string;\n parts?: Array<Part>;\n list: Array<{ bullet: string }>;\n terms: string;\n terms_checkout: string;\n terms_show_checkbox: boolean;\n rut: boolean;\n rot: boolean;\n green: boolean;\n hide_start_fee: boolean;\n description: string;\n category: string;\n title: string;\n invoice: string;\n invoice_price: string;\n invoice_description: string;\n}\n\ninterface Service {\n ID: 41857;\n icon?: Icon | string;\n post_author: 34419;\n post_date: Date;\n post_date_gmt: Date;\n post_content: string;\n post_title: string;\n post_excerpt: string;\n post_status: string;\n comment_status: string;\n ping_status: string;\n post_password: string;\n post_name: string;\n to_ping: string;\n pinged: string;\n post_modified: Date;\n post_modified_gmt: Date;\n post_content_filtered: string;\n post_parent: 0;\n guid: string;\n menu_order: 0;\n post_type: 'service';\n post_mime_type: string;\n comment_count: 0;\n filter: string;\n products: Array<Product>;\n}\n\ninterface Category {\n count: number;\n description: string;\n name: string;\n icon?: Icon | string;\n parent: 0 | 1;\n slug: string;\n taxonomy: 'service_cat';\n term_group: 0 | 1;\n term_id: number;\n term_order: string;\n term_taxonomy_id: number;\n sub_cats?: Array<Category>;\n services?: Array<Service>;\n}\n\ninterface WpOptions {\n link: { title: string; url: string };\n trust: { trust_badge: string }[];\n thank_you_image: string;\n start_fee: number;\n terms: string;\n maleri_title: string;\n maleri_text: string;\n}\ninterface CartPart {\n id: number;\n amount: number;\n price: number;\n name: string;\n}\n\ninterface CartItem {\n id: number;\n price: number;\n name: string;\n amount: number;\n parts: CartPart[];\n rut: boolean;\n rot: boolean;\n green: boolean;\n start_fee: boolean;\n terms_checkout: string;\n icon?: Icon | string;\n}\n\nexport enum Business {\n kund = 'kund',\n byggmax = 'byggmax',\n skanska = 'skanska',\n string = 'string-furniture',\n hornbach = 'hornbach',\n forebygg = 'forebygg',\n doro = 'doro',\n elfa = 'elfa',\n kbygg = 'k-bygg',\n norrgavel = 'norrgavel',\n fargvaruhuset = 'fargvaruhuset',\n zaptec = 'zaptec',\n tesla = 'tesla',\n klint = 'klint',\n flyttsmart = 'flyttsmart',\n lg = 'lg',\n sparfonster = 'sparfonster',\n power = 'power',\n traningspartner = 'traningspartner',\n superfront = 'superfront',\n}\n\nexport enum WidgetStyle {\n standard = 'standard',\n alternative = 'alternative',\n alternative_2 = 'alternative_2',\n alternative_3 = 'alternative_3',\n}\n\nexport enum TopCategory {\n byggmax = 'category/bygg',\n}\n\ninterface User {\n email: string;\n phone: string;\n ssn: string;\n firstName: string;\n lastName: string;\n street: string;\n zip: string;\n town: string;\n}\n\ninterface RutOptions {\n rut_start_fee_heading: string;\n rut_start_fee_text: string;\n rut_start_fee_text_secondary: string;\n}\n\ninterface RotOptions {\n rot_start_fee_heading: string;\n rot_start_fee_text: string;\n rot_start_fee_text_secondary: string;\n}\n\ninterface GreenOptions {\n green_start_fee_heading: string;\n green_start_fee_text: string;\n green_start_fee_text_secondary: string;\n}\n\ninterface SubSource {\n 'recordId': string;\n 'So_SubSource::Sus01_Name': string;\n 'So_SubSource::_id': string;\n 'So_SubSource::_id_Source': string;\n 'modId': string;\n}\n\ninterface FieldData {\n _id: string;\n So01_Name: string;\n So457_Aktiv_ac: number;\n So40_WebSubSource: string | number;\n So39_WebSource: number;\n rec_id: number;\n}\n\ninterface Source {\n fieldData: FieldData;\n sub_sources: SubSource[];\n}\n\ninterface SourcesRespone {\n dataInfo: {\n database: string;\n layout: string;\n table: string;\n totalRecordCount: number;\n foundCount: number;\n returnedCount: number;\n };\n data: Source[];\n}\n\nexport type {\n CartItem,\n CartPart,\n Category,\n Customer,\n CustomerCategory,\n CustomerSubCategory,\n GreenOptions,\n Icon,\n Part,\n Product,\n RotOptions,\n RutOptions,\n Service,\n Source,\n SourcesRespone,\n User,\n WpOptions,\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,6DAA6D;AAC7D,8EAA8E;AAE9E,MAAM,CAAN,IAAY,QAsBX;AAtBD,WAAY,QAAQ;EAClB,yBAAa,CAAA;EACb,+BAAmB,CAAA;EACnB,+BAAmB,CAAA;EACnB,uCAA2B,CAAA;EAC3B,iCAAqB,CAAA;EACrB,iCAAqB,CAAA;EACrB,yBAAa,CAAA;EACb,yBAAa,CAAA;EACb,4BAAgB,CAAA;EAChB,mCAAuB,CAAA;EACvB,2CAA+B,CAAA;EAC/B,6BAAiB,CAAA;EACjB,2BAAe,CAAA;EACf,2BAAe,CAAA;EACf,qCAAyB,CAAA;EACzB,qBAAS,CAAA;EACT,uCAA2B,CAAA;EAC3B,2BAAe,CAAA;EACf,+CAAmC,CAAA;EACnC,qCAAyB,CAAA;EACzB,yBAAa,CAAA;AACf,CAAC,EAtBW,QAAQ,KAAR,QAAQ,QAsBnB;AAmMD,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;EACrB,oCAAqB,CAAA;EACrB,0CAA2B,CAAA;EAC3B,8CAA+B,CAAA;EAC/B,8CAA+B,CAAA;AACjC,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAED,MAAM,CAAN,IAAY,WAEX;AAFD,WAAY,WAAW;EACrB,wCAAyB,CAAA;AAC3B,CAAC,EAFW,WAAW,KAAX,WAAW,QAEtB","sourcesContent":["// Match slug with partner slug in wp admin\n// Dont forget to add the partners url to cors for creditsafe\n// https://bitbucket.org/afonso-sweden/creditsafe-lookup/src/main/api/index.ts\n\nexport enum Business {\n kund = 'kund',\n byggmax = 'byggmax',\n skanska = 'skanska',\n string = 'string-furniture',\n hornbach = 'hornbach',\n forebygg = 'forebygg',\n doro = 'doro',\n elfa = 'elfa',\n kbygg = 'k-bygg',\n norrgavel = 'norrgavel',\n fargvaruhuset = 'fargvaruhuset',\n zaptec = 'zaptec',\n tesla = 'tesla',\n klint = 'klint',\n flyttsmart = 'flyttsmart',\n lg = 'lg',\n sparfonster = 'sparfonster',\n power = 'power',\n traningspartner = 'traningspartner',\n superfront = 'superfront',\n inet = 'inet',\n}\n\ntype Icon = {\n url: string;\n};\n\ninterface Customer {\n ID: number;\n post_title: string;\n post_name: string;\n post_type: string;\n filter: string;\n categories: CustomerCategory[];\n logo?: Icon;\n partner_url?: string;\n at_hemfixarna: boolean;\n info_title: string;\n widget_title?: string;\n info_text: string;\n checkout_title: string;\n checkout_trust_badges: { text: string }[];\n trust_badges: { text: string }[];\n source?: Source;\n password_protected: boolean;\n}\n\ninterface CustomerCategory {\n id: string;\n name: string;\n widget_title?: string;\n icon: string;\n show_products: boolean;\n products: { fields: Product }[] | false;\n sub_categories: CustomerSubCategory[] | false;\n add_painting: boolean;\n}\n\ninterface CustomerSubCategory {\n id: string;\n name: string;\n widget_title?: string;\n icon: string;\n products: { fields: Product }[];\n parent: string;\n add_painting: boolean;\n}\n\ninterface Part {\n ID: number;\n post_author: number;\n post_date: Date;\n post_date_gmt: Date;\n post_content: string;\n post_title: string;\n post_excerpt: string;\n post_status: string;\n comment_status: string;\n ping_status: string;\n post_password: string;\n post_name: string;\n to_ping: string;\n pinged: string;\n post_modified: Date;\n post_modified_gmt: Date;\n post_content_filtered: string;\n post_parent: 0 | 1;\n guid: string;\n menu_order: 0;\n post_type: string;\n post_mime_type: string;\n comment_count: number;\n filter: string;\n price: number;\n title: string;\n}\n\ninterface Product {\n ID: number;\n post_author: string;\n post_date: Date;\n post_date_gmt: Date;\n post_content: string;\n post_title: string;\n post_excerpt: string;\n post_status: string;\n comment_status: string;\n ping_status: string;\n post_password: string;\n post_name: string;\n to_ping: string;\n pinged: string;\n post_modified: Date;\n post_modified_gmt: Date;\n post_content_filtered: string;\n post_parent: 0;\n guid: string;\n menu_order: 0;\n post_type: string;\n post_mime_type: string;\n comment_count: 0;\n filter: string;\n price: number;\n icon?: Icon | string;\n parts?: Array<Part>;\n list: Array<{ bullet: string }>;\n terms: string;\n terms_checkout: string;\n terms_show_checkbox: boolean;\n rut: boolean;\n rot: boolean;\n green: boolean;\n hide_start_fee: boolean;\n description: string;\n category: string;\n title: string;\n invoice: string;\n invoice_price: string;\n invoice_description: string;\n}\n\ninterface Service {\n ID: 41857;\n icon?: Icon | string;\n post_author: 34419;\n post_date: Date;\n post_date_gmt: Date;\n post_content: string;\n post_title: string;\n post_excerpt: string;\n post_status: string;\n comment_status: string;\n ping_status: string;\n post_password: string;\n post_name: string;\n to_ping: string;\n pinged: string;\n post_modified: Date;\n post_modified_gmt: Date;\n post_content_filtered: string;\n post_parent: 0;\n guid: string;\n menu_order: 0;\n post_type: 'service';\n post_mime_type: string;\n comment_count: 0;\n filter: string;\n products: Array<Product>;\n}\n\ninterface Category {\n count: number;\n description: string;\n name: string;\n icon?: Icon | string;\n parent: 0 | 1;\n slug: string;\n taxonomy: 'service_cat';\n term_group: 0 | 1;\n term_id: number;\n term_order: string;\n term_taxonomy_id: number;\n sub_cats?: Array<Category>;\n services?: Array<Service>;\n}\n\ninterface WpOptions {\n link: { title: string; url: string };\n trust: { trust_badge: string }[];\n thank_you_image: string;\n start_fee: number;\n terms: string;\n maleri_title: string;\n maleri_text: string;\n}\ninterface CartPart {\n id: number;\n amount: number;\n price: number;\n name: string;\n}\n\ninterface CartItem {\n id: number;\n price: number;\n name: string;\n amount: number;\n parts: CartPart[];\n rut: boolean;\n rot: boolean;\n green: boolean;\n start_fee: boolean;\n terms_checkout: string;\n icon?: Icon | string;\n}\n\nexport enum WidgetStyle {\n standard = 'standard',\n alternative = 'alternative',\n alternative_2 = 'alternative_2',\n alternative_3 = 'alternative_3',\n}\n\nexport enum TopCategory {\n byggmax = 'category/bygg',\n}\n\ninterface User {\n email: string;\n phone: string;\n ssn: string;\n firstName: string;\n lastName: string;\n street: string;\n zip: string;\n town: string;\n}\n\ninterface RutOptions {\n rut_start_fee_heading: string;\n rut_start_fee_text: string;\n rut_start_fee_text_secondary: string;\n}\n\ninterface RotOptions {\n rot_start_fee_heading: string;\n rot_start_fee_text: string;\n rot_start_fee_text_secondary: string;\n}\n\ninterface GreenOptions {\n green_start_fee_heading: string;\n green_start_fee_text: string;\n green_start_fee_text_secondary: string;\n}\n\ninterface SubSource {\n 'recordId': string;\n 'So_SubSource::Sus01_Name': string;\n 'So_SubSource::_id': string;\n 'So_SubSource::_id_Source': string;\n 'modId': string;\n}\n\ninterface FieldData {\n _id: string;\n So01_Name: string;\n So457_Aktiv_ac: number;\n So40_WebSubSource: string | number;\n So39_WebSource: number;\n rec_id: number;\n}\n\ninterface Source {\n fieldData: FieldData;\n sub_sources: SubSource[];\n}\n\ninterface SourcesRespone {\n dataInfo: {\n database: string;\n layout: string;\n table: string;\n totalRecordCount: number;\n foundCount: number;\n returnedCount: number;\n };\n data: Source[];\n}\n\nexport type {\n CartItem,\n CartPart,\n Category,\n Customer,\n CustomerCategory,\n CustomerSubCategory,\n GreenOptions,\n Icon,\n Part,\n Product,\n RotOptions,\n RutOptions,\n Service,\n Source,\n SourcesRespone,\n User,\n WpOptions,\n};\n"]}
@@ -1,4 +1,5 @@
1
- const base = process.env.API_URL ? `${process.env.API_URL}/wp-json/headless` : 'https://hemfixarna.se/wp-json/headless';
1
+ import { getApiUrl } from './enviroment';
2
+ const base = `${getApiUrl()}/wp-json/headless`;
2
3
  export async function fetchWithType(request, options) {
3
4
  const response = await fetch(request, options);
4
5
  const body = await response.json();
@@ -27,6 +28,21 @@ const getCustomer = async (slug) => {
27
28
  console.log(error);
28
29
  }
29
30
  };
31
+ const loginCustomer = async ({ id, password }) => {
32
+ try {
33
+ const res = await fetch(`${base}/customer/login`, {
34
+ method: 'POST',
35
+ body: JSON.stringify({ id, password }),
36
+ headers: {
37
+ 'Content-Type': 'application/json',
38
+ },
39
+ });
40
+ return res.status;
41
+ }
42
+ catch (error) {
43
+ console.log(error);
44
+ }
45
+ };
30
46
  const getOptions = async () => {
31
47
  try {
32
48
  const res = await fetch(`${base}/webcoptions`);
@@ -78,5 +94,5 @@ const postOrder = async (data) => {
78
94
  console.log(error);
79
95
  }
80
96
  };
81
- export { getCustomer, getGreenDiscount, getOptions, getRot, getRut, getTaxonomy, postOrder };
97
+ export { getCustomer, getGreenDiscount, getOptions, getRot, getRut, getTaxonomy, loginCustomer, postOrder };
82
98
  //# sourceMappingURL=api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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","sourcesContent":["import { RotOptions, RutOptions, WpOptions } from '../types';\nimport { FelixOrder } from './felixApi';\n\nconst base = process.env.API_URL ? `${process.env.API_URL}/wp-json/headless` : 'https://hemfixarna.se/wp-json/headless';\n\nexport async function fetchWithType<T>(request: RequestInfo, options?: RequestInit): Promise<T> {\n const response = await fetch(request, options);\n const body = await response.json();\n return body;\n}\n\nconst getTaxonomy = async (endpoint: string) => {\n if (!endpoint) {\n return;\n }\n const type = endpoint.split('/')[0];\n const slug = endpoint.split('/')[1];\n try {\n const res = await fetch(`${base}/${type}/${slug}`);\n return await res.json();\n } catch (error) {\n console.log(error);\n }\n};\n\nconst getCustomer = async (slug: string) => {\n try {\n const res = await fetch(`${base}/customer/${slug}`);\n return await res.json();\n } catch (error) {\n console.log(error);\n }\n};\n\nconst getOptions = async () => {\n try {\n const res = await fetch(`${base}/webcoptions`);\n return (await res.json()) as WpOptions;\n } catch (error) {\n console.log(error);\n }\n};\n\nconst getRut = async () => {\n try {\n const data = await fetchWithType<RutOptions>(`${base}/rut`);\n return data;\n } catch (error) {\n console.log(error);\n }\n};\n\nconst getRot = async () => {\n try {\n const res = await fetch(`${base}/rot`);\n return (await res.json()) as RotOptions;\n } catch (error) {\n console.log(error);\n }\n};\n\nconst getGreenDiscount = async () => {\n try {\n const res = await fetch(`${base}/green-discount`);\n return await res.json();\n } catch (error) {\n console.log(error);\n }\n};\n\nconst postOrder = async (data: FelixOrder) => {\n try {\n const res = await fetch(`${base}/weborder`, {\n method: 'POST',\n body: JSON.stringify(data),\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n return (await res.json()) as { message: string; post_id: number; data: FelixOrder; status?: number };\n } catch (error) {\n console.log(error);\n }\n};\n\nexport { getCustomer, getGreenDiscount, getOptions, getRot, getRut, getTaxonomy, postOrder };\n"]}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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","sourcesContent":["import { RotOptions, RutOptions, WpOptions } from '../types';\nimport { getApiUrl } from './enviroment';\nimport { FelixOrder } from './felixApi';\n\nconst base = `${getApiUrl()}/wp-json/headless`;\n\nexport async function fetchWithType<T>(request: RequestInfo, options?: RequestInit): Promise<T> {\n const response = await fetch(request, options);\n const body = await response.json();\n return body;\n}\n\nconst getTaxonomy = async (endpoint: string) => {\n if (!endpoint) {\n return;\n }\n const type = endpoint.split('/')[0];\n const slug = endpoint.split('/')[1];\n try {\n const res = await fetch(`${base}/${type}/${slug}`);\n return await res.json();\n } catch (error) {\n console.log(error);\n }\n};\n\nconst getCustomer = async (slug: string) => {\n try {\n const res = await fetch(`${base}/customer/${slug}`);\n return await res.json();\n } catch (error) {\n console.log(error);\n }\n};\n\nconst loginCustomer = async ({ id, password }: { id: number; password: string }) => {\n try {\n const res = await fetch(`${base}/customer/login`, {\n method: 'POST',\n body: JSON.stringify({ id, password }),\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n return res.status;\n } catch (error) {\n console.log(error);\n }\n};\n\nconst getOptions = async () => {\n try {\n const res = await fetch(`${base}/webcoptions`);\n return (await res.json()) as WpOptions;\n } catch (error) {\n console.log(error);\n }\n};\n\nconst getRut = async () => {\n try {\n const data = await fetchWithType<RutOptions>(`${base}/rut`);\n return data;\n } catch (error) {\n console.log(error);\n }\n};\n\nconst getRot = async () => {\n try {\n const res = await fetch(`${base}/rot`);\n return (await res.json()) as RotOptions;\n } catch (error) {\n console.log(error);\n }\n};\n\nconst getGreenDiscount = async () => {\n try {\n const res = await fetch(`${base}/green-discount`);\n return await res.json();\n } catch (error) {\n console.log(error);\n }\n};\n\nconst postOrder = async (data: FelixOrder) => {\n try {\n const res = await fetch(`${base}/weborder`, {\n method: 'POST',\n body: JSON.stringify(data),\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n return (await res.json()) as { message: string; post_id: number; data: FelixOrder; status?: number };\n } catch (error) {\n console.log(error);\n }\n};\n\nexport { getCustomer, getGreenDiscount, getOptions, getRot, getRut, getTaxonomy, loginCustomer, postOrder };\n"]}
@@ -1,7 +1,7 @@
1
1
  import { MD5 } from 'md5-js-tools';
2
+ import { getCreditSafeApiUrl } from './enviroment';
2
3
  const apiSearch = async (query) => {
3
- var _a;
4
- const res = await fetch((_a = process.env.CREDIT_SAFE_API_URL) !== null && _a !== void 0 ? _a : 'https://hemfixare-lookup.vercel.app/api', {
4
+ const res = await fetch(getCreditSafeApiUrl(), {
5
5
  method: 'POST',
6
6
  headers: {
7
7
  'Content-Type': 'application/json',
@@ -1 +1 @@
1
- {"version":3,"file":"creditSafe.js","sourceRoot":"","sources":["../../src/utils/creditSafe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,MAAM,SAAS,GAAG,KAAK,EAAE,KAAa,EAA2B,EAAE;;EACjE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,mCAAI,yCAAyC,EAAE;IACpG,MAAM,EAAE,MAAM;IACd,OAAO,EAAE;MACP,cAAc,EAAE,kBAAkB;KACnC;IACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;MACnB,KAAK;MACL,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;KAC3E,CAAC;GACH,CAAC,CAAC;EACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;EAC9B,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC","sourcesContent":["import { MD5 } from 'md5-js-tools';\nimport { CreditSafeUser } from '../types/felixtypes';\n\nconst apiSearch = async (query: string): Promise<CreditSafeUser> => {\n const res = await fetch(process.env.CREDIT_SAFE_API_URL ?? 'https://hemfixare-lookup.vercel.app/api', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n query,\n hash: MD5.generate(String.fromCharCode(83, 101, 67, 82, 101, 116) + query),\n }),\n });\n const data = await res.json();\n return data;\n};\n\nexport default apiSearch;\n"]}
1
+ {"version":3,"file":"creditSafe.js","sourceRoot":"","sources":["../../src/utils/creditSafe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,SAAS,GAAG,KAAK,EAAE,KAAa,EAA2B,EAAE;EACjE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE,EAAE;IAC7C,MAAM,EAAE,MAAM;IACd,OAAO,EAAE;MACP,cAAc,EAAE,kBAAkB;KACnC;IACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;MACnB,KAAK;MACL,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;KAC3E,CAAC;GACH,CAAC,CAAC;EACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;EAC9B,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC","sourcesContent":["import { MD5 } from 'md5-js-tools';\nimport { CreditSafeUser } from '../types/felixtypes';\nimport { getCreditSafeApiUrl } from './enviroment';\n\nconst apiSearch = async (query: string): Promise<CreditSafeUser> => {\n const res = await fetch(getCreditSafeApiUrl(), {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n query,\n hash: MD5.generate(String.fromCharCode(83, 101, 67, 82, 101, 116) + query),\n }),\n });\n const data = await res.json();\n return data;\n};\n\nexport default apiSearch;\n"]}
@@ -0,0 +1,31 @@
1
+ const livePreviewUrl = 'hemfixarna-partner.vercel.app';
2
+ const getDefaultApiUrl = () => {
3
+ if (window.location.href.includes('vercel.app') && !window.location.href.includes(livePreviewUrl)) {
4
+ return 'https://hemfixare.dev.afonso.se';
5
+ }
6
+ else {
7
+ return 'https://hemfixarna.se';
8
+ }
9
+ };
10
+ const getApiUrl = () => {
11
+ if (typeof process !== 'undefined' && process.env && process.env.API_URL) {
12
+ return process.env.API_URL;
13
+ }
14
+ return getDefaultApiUrl();
15
+ };
16
+ const getDefaultCreditSafeApiUrl = () => {
17
+ if (window.location.href.includes('vercel.app')) {
18
+ return 'https://hemfixare-lookup-dev.vercel.app/api';
19
+ }
20
+ else {
21
+ return 'https://hemfixare-lookup.vercel.app/api';
22
+ }
23
+ };
24
+ const getCreditSafeApiUrl = () => {
25
+ if (typeof process !== 'undefined' && process.env && process.env.CREDIT_SAFE_API_URL) {
26
+ return process.env.CREDIT_SAFE_API_URL;
27
+ }
28
+ return getDefaultCreditSafeApiUrl();
29
+ };
30
+ export { getApiUrl, getCreditSafeApiUrl };
31
+ //# sourceMappingURL=enviroment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enviroment.js","sourceRoot":"","sources":["../../src/utils/enviroment.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,+BAA+B,CAAC;AAEvD,MAAM,gBAAgB,GAAG,GAAG,EAAE;EAC5B,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;IACjG,OAAO,iCAAiC,CAAC;GAC1C;OAAM;IACL,OAAO,uBAAuB,CAAC;GAChC;AACH,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,GAAG,EAAE;EACrB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;IACxE,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;GAC5B;EAED,OAAO,gBAAgB,EAAE,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,GAAG,EAAE;EACtC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;IAC/C,OAAO,6CAA6C,CAAC;GACtD;OAAM;IACL,OAAO,yCAAyC,CAAC;GAClD;AACH,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAAG,EAAE;EAC/B,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE;IACpF,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;GACxC;EAED,OAAO,0BAA0B,EAAE,CAAC;AACtC,CAAC,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC","sourcesContent":["const livePreviewUrl = 'hemfixarna-partner.vercel.app';\n\nconst getDefaultApiUrl = () => {\n if (window.location.href.includes('vercel.app') && !window.location.href.includes(livePreviewUrl)) {\n return 'https://hemfixare.dev.afonso.se';\n } else {\n return 'https://hemfixarna.se';\n }\n};\n\nconst getApiUrl = () => {\n if (typeof process !== 'undefined' && process.env && process.env.API_URL) {\n return process.env.API_URL;\n }\n\n return getDefaultApiUrl();\n};\n\nconst getDefaultCreditSafeApiUrl = () => {\n if (window.location.href.includes('vercel.app')) {\n return 'https://hemfixare-lookup-dev.vercel.app/api';\n } else {\n return 'https://hemfixare-lookup.vercel.app/api';\n }\n};\n\nconst getCreditSafeApiUrl = () => {\n if (typeof process !== 'undefined' && process.env && process.env.CREDIT_SAFE_API_URL) {\n return process.env.CREDIT_SAFE_API_URL;\n }\n\n return getDefaultCreditSafeApiUrl();\n};\n\nexport { getApiUrl, getCreditSafeApiUrl };\n"]}
@@ -1,5 +1,6 @@
1
1
  import { fetchWithType } from './api';
2
- const base = process.env.API_URL ? `${process.env.API_URL}/wp-json/felix` : 'https://hemfixarna.se/wp-json/felix';
2
+ import { getApiUrl } from './enviroment';
3
+ const base = `${getApiUrl()}/wp-json/felix`;
3
4
  const postPerson = async (felixOrder) => {
4
5
  try {
5
6
  return await fetchWithType(`${base}/createperson`, {
@@ -1 +1 @@
1
- {"version":3,"file":"felixApi.js","sourceRoot":"","sources":["../../src/utils/felixApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,qCAAqC,CAAC;AAsClH,MAAM,UAAU,GAAG,KAAK,EAAE,UAAsB,EAAE,EAAE;EAClD,IAAI;IACF,OAAO,MAAM,aAAa,CAcxB,GAAG,IAAI,eAAe,EAAE;MACxB,MAAM,EAAE,MAAM;MACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;MAChC,OAAO,EAAE;QACP,cAAc,EAAE,kBAAkB;OACnC;KACF,CAAC,CAAC;GACJ;EAAC,OAAO,KAAK,EAAE;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;GACpB;AACH,CAAC,CAAC;AAEF,OAAO,EAAc,UAAU,EAAE,CAAC","sourcesContent":["import { fetchWithType } from './api';\n\nconst base = process.env.API_URL ? `${process.env.API_URL}/wp-json/felix` : 'https://hemfixarna.se/wp-json/felix';\n\ninterface FelixOrder {\n firstName: string;\n lastName: string;\n street: string;\n zip: string;\n town: string;\n ssn: string;\n email: string;\n phone: string;\n url: string;\n date: string;\n notes?: string;\n wws?: string;\n referral_id?: string;\n id_source?: string;\n id_sub_source?: string;\n products: {\n id: string;\n name: string;\n quantity: number;\n rut: number;\n rot: number;\n }[];\n creditSafe: {\n firstName: string;\n lastName: string;\n street: string;\n zip: string;\n town: string;\n };\n felixStatus?: 'success' | 'error';\n customer?: string;\n seller_id?: string;\n refferal_id?: string;\n}\n\nconst postPerson = async (felixOrder: FelixOrder) => {\n try {\n return await fetchWithType<\n | {\n response: {\n scriptResult: string;\n scriptError: string;\n };\n messages: [\n {\n code: string;\n message: string;\n },\n ];\n }\n | false\n >(`${base}/createperson`, {\n method: 'POST',\n body: JSON.stringify(felixOrder),\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n } catch (error) {\n console.log(error);\n }\n};\n\nexport { FelixOrder, postPerson };\n"]}
1
+ {"version":3,"file":"felixApi.js","sourceRoot":"","sources":["../../src/utils/felixApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,IAAI,GAAG,GAAG,SAAS,EAAE,gBAAgB,CAAC;AAsC5C,MAAM,UAAU,GAAG,KAAK,EAAE,UAAsB,EAAE,EAAE;EAClD,IAAI;IACF,OAAO,MAAM,aAAa,CAcxB,GAAG,IAAI,eAAe,EAAE;MACxB,MAAM,EAAE,MAAM;MACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;MAChC,OAAO,EAAE;QACP,cAAc,EAAE,kBAAkB;OACnC;KACF,CAAC,CAAC;GACJ;EAAC,OAAO,KAAK,EAAE;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;GACpB;AACH,CAAC,CAAC;AAEF,OAAO,EAAc,UAAU,EAAE,CAAC","sourcesContent":["import { fetchWithType } from './api';\nimport { getApiUrl } from './enviroment';\n\nconst base = `${getApiUrl()}/wp-json/felix`;\n\ninterface FelixOrder {\n firstName: string;\n lastName: string;\n street: string;\n zip: string;\n town: string;\n ssn: string;\n email: string;\n phone: string;\n url: string;\n date: string;\n notes?: string;\n wws?: string;\n referral_id?: string;\n id_source?: string;\n id_sub_source?: string;\n products: {\n id: string;\n name: string;\n quantity: number;\n rut: number;\n rot: number;\n }[];\n creditSafe: {\n firstName: string;\n lastName: string;\n street: string;\n zip: string;\n town: string;\n };\n felixStatus?: 'success' | 'error';\n customer?: string;\n seller_id?: string;\n refferal_id?: string;\n}\n\nconst postPerson = async (felixOrder: FelixOrder) => {\n try {\n return await fetchWithType<\n | {\n response: {\n scriptResult: string;\n scriptError: string;\n };\n messages: [\n {\n code: string;\n message: string;\n },\n ];\n }\n | false\n >(`${base}/createperson`, {\n method: 'POST',\n body: JSON.stringify(felixOrder),\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n } catch (error) {\n console.log(error);\n }\n};\n\nexport { FelixOrder, postPerson };\n"]}
@@ -19,7 +19,6 @@ async function apiCall(endpoint, method, data, basic = false) {
19
19
  validateStatus: () => true,
20
20
  });
21
21
  }
22
- // console.log(basic);
23
22
  const headers = {
24
23
  'Content-Type': 'application/json',
25
24
  'Authorization': basic ? `Basic ${basic}` : `Bearer ${state.token ? state.token : ''}`,
@@ -1 +1 @@
1
- {"version":3,"file":"felixFunctions.js","sourceRoot":"","sources":["../../src/utils/felixFunctions.ts"],"names":[],"mappings":"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","sourcesContent":["import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { Buffer } from 'buffer';\nimport state from '../store';\nconst baseURL = process.env.FELIX_URL || 'https://stage.hemfixare.se/fmi/data/v1/databases/Hemfix_web/sessions';\n\n// @ts-ignore\nwindow.Buffer = Buffer;\n\ninterface Product {\n [index: number]: string;\n}\n\ninterface Service {\n [index: number]: string;\n}\n\ninterface PortalParameter {\n 'Parameter::Pad001_Name': string;\n 'Parameter::Pad002_Data': string;\n 'Parameter::Pad031_Antal'?: string;\n}\n\ninterface FieldData {\n Pa01_FirstName: string;\n Pa02_LastName: string;\n Pa03_Address1: string;\n Pa04_Address2: string;\n Pa05_Zipcode: string;\n Pa06_City: string;\n Pa07_State: string;\n Pa08_Country: string;\n Pa11_StatusExternal: string;\n Pa12_PersonalNo: string;\n Pa20_Email: string;\n Pa30_Phone: string;\n Pa50_Type: string;\n Pa51_Notes: string;\n Pa041_AssignmentAddress?: string;\n Pa042_AssignmentZipCode?: string;\n Pa043_AssignmentCity?: string;\n}\n\ninterface PortalData {\n Parameter: PortalParameter[];\n}\n\ninterface ApiCallResponse {\n error?: number;\n message?: string;\n response?: Record<string, any>;\n}\n\nlet client: AxiosInstance;\n\nasync function initializeFelix(): Promise<string> {\n const auth = Buffer.from('CustomWebForm:aFMZ4iJzoaEBcwskBDxqb4Pb').toString('base64');\n const res = await apiCall('sessions', 'POST', null, auth);\n return res?.response?.token || null;\n}\n\nasync function apiCall(endpoint: string, method: 'GET' | 'POST' | 'PATCH', data?: any, basic: boolean | string = false): Promise<ApiCallResponse> {\n if (!client) {\n client = axios.create({\n baseURL,\n validateStatus: () => true,\n });\n }\n\n // console.log(basic);\n\n const headers: { [key: string]: string } = {\n 'Content-Type': 'application/json',\n 'Authorization': basic ? `Basic ${basic}` : `Bearer ${state.token ? state.token : ''}`,\n // 'Access-Control-Allow-Origin': 'stage.hemfixare.se',\n };\n\n const config: AxiosRequestConfig = {\n method,\n url: endpoint,\n headers,\n data,\n };\n\n try {\n const response: AxiosResponse = await client.request(config);\n return {\n response: response.data,\n };\n } catch (error) {\n return {\n error: error.response?.status,\n message: error.response?.data || error.message,\n };\n }\n}\n\nasync function sendPerson(data: {\n products: Product[];\n serviceArr: Service[];\n // ... Define the data structure\n}): Promise<string | false> {\n // Implement the logic for sending a person\n const endpoint = 'layouts/pa.Passage/records';\n const method = 'POST';\n\n const fieldData: FieldData = {\n // ... Initialize fieldData object with data\n Pa01_FirstName: 'change',\n Pa02_LastName: 'change',\n Pa03_Address1: 'change',\n Pa04_Address2: 'change',\n Pa05_Zipcode: 'change',\n Pa06_City: 'change',\n Pa07_State: 'change',\n Pa08_Country: 'change',\n Pa11_StatusExternal: 'change',\n Pa12_PersonalNo: 'change',\n Pa20_Email: 'change',\n Pa30_Phone: 'change',\n Pa50_Type: 'change',\n Pa51_Notes: 'change',\n Pa041_AssignmentAddress: 'change',\n Pa042_AssignmentZipCode: 'change',\n Pa043_AssignmentCity: 'change',\n };\n\n const portalData: PortalData = {\n Parameter: [\n // ... Initialize portalData array with data\n ],\n };\n\n // If products are present in data\n if (data.products && Array.isArray(data.products)) {\n // ... Process products and add them to portalData\n }\n\n const requestData = {\n fieldData,\n portalData,\n };\n\n const res = await apiCall(endpoint, method, requestData);\n if (res?.response?.recordId) {\n // ... Process recordId\n }\n return res?.response?.recordId || false;\n}\n\nasync function checkPerson(ssn: string, url: string): Promise<string | null> {\n // Implement the logic for checking a person\n const endpoint = 'layouts/pa.Passage/records';\n const method = 'POST';\n\n const data = {\n 'fieldData': {\n Pa50_Type: url,\n },\n 'script': 'pa.pub.PassageCheckPerson',\n 'script.param': ssn,\n };\n\n const res = await apiCall(endpoint, method, data);\n return res?.response?.recordId || null;\n}\n\nasync function getPersonData(id: string): Promise<any> {\n // Implement the logic for getting person data\n const endpoint = `layouts/pa.PassageGetData/records/${id}`;\n const method = 'GET';\n\n const res = await apiCall(endpoint, method);\n return res?.response?.data || null;\n}\n\nasync function updatePerson(\n data: {\n // ... Define the data structure\n products: Product[];\n serviceArr: Service[];\n recievedChanged: boolean;\n },\n id: string,\n): Promise<string | false> {\n // Implement the logic for updating a person\n const endpoint = `layouts/pa.Passage/records/${id}`;\n const method = 'PATCH';\n\n const fieldData: FieldData = {\n // ... Initialize fieldData object with data\n Pa01_FirstName: 'change',\n Pa02_LastName: 'change',\n Pa03_Address1: 'change',\n Pa04_Address2: 'change',\n Pa05_Zipcode: 'change',\n Pa06_City: 'change',\n Pa07_State: 'change',\n Pa08_Country: 'change',\n Pa11_StatusExternal: 'change',\n Pa12_PersonalNo: 'change',\n Pa20_Email: 'change',\n Pa30_Phone: 'change',\n Pa50_Type: 'change',\n Pa51_Notes: 'change',\n Pa041_AssignmentAddress: 'change',\n Pa042_AssignmentZipCode: 'change',\n Pa043_AssignmentCity: 'change',\n };\n\n const portalData: PortalData = {\n Parameter: [\n // ... Initialize portalData array with data\n ],\n };\n\n // If products are present in data\n if (data.products && Array.isArray(data.products)) {\n // ... Process products and add them to portalData\n }\n\n // If serviceArr is present in data\n if (data.serviceArr && Array.isArray(data.serviceArr) && !data.products?.length) {\n // ... Process serviceArr and add them to portalData\n }\n\n // If recievedChanged is \"true\" in data\n if (data.recievedChanged) {\n // ... Add assignment data to fieldData\n }\n\n const requestData = {\n fieldData,\n portalData,\n };\n\n const res = await apiCall(endpoint, method, requestData);\n if (res?.message === 'OK') {\n // ... Process response\n return id;\n }\n return false;\n}\n\nasync function findPricing(data: string): Promise<any> {\n // Implement the logic for finding pricing\n const endpoint = 'layouts/pa.PassagePricing/_find';\n const method = 'POST';\n\n const query = {\n query: [\n {\n As014_WebFormType_c: data,\n },\n ],\n };\n\n const res = await apiCall(endpoint, method, query);\n return res;\n}\n\nasync function processPassageRecords(data: string): Promise<any> {\n // Implement the logic for processing passage records\n const endpoint = `layouts/pa.Passage/script/pa.pub.ProcessCustomWebForm?script.param=${data}`;\n const method = 'GET';\n\n const res = await apiCall(endpoint, method);\n return res;\n}\n\nexport { checkPerson, findPricing, getPersonData, initializeFelix, processPassageRecords, sendPerson, updatePerson };\n"]}
1
+ {"version":3,"file":"felixFunctions.js","sourceRoot":"","sources":["../../src/utils/felixFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,MAAM,UAAU,CAAC;AAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,sEAAsE,CAAC;AAEhH,aAAa;AACb,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AA8CvB,IAAI,MAAqB,CAAC;AAE1B,KAAK,UAAU,eAAe;;EAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;EACtF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;EAC1D,OAAO,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,0CAAE,KAAK,KAAI,IAAI,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,QAAgB,EAAE,MAAgC,EAAE,IAAU,EAAE,QAA0B,KAAK;;EACpH,IAAI,CAAC,MAAM,EAAE;IACX,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;MACpB,OAAO;MACP,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;KAC3B,CAAC,CAAC;GACJ;EAED,MAAM,OAAO,GAA8B;IACzC,cAAc,EAAE,kBAAkB;IAClC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;IACtF,uDAAuD;GACxD,CAAC;EAEF,MAAM,MAAM,GAAuB;IACjC,MAAM;IACN,GAAG,EAAE,QAAQ;IACb,OAAO;IACP,IAAI;GACL,CAAC;EAEF,IAAI;IACF,MAAM,QAAQ,GAAkB,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D,OAAO;MACL,QAAQ,EAAE,QAAQ,CAAC,IAAI;KACxB,CAAC;GACH;EAAC,OAAO,KAAK,EAAE;IACd,OAAO;MACL,KAAK,EAAE,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM;MAC7B,OAAO,EAAE,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,IAAI,KAAI,KAAK,CAAC,OAAO;KAC/C,CAAC;GACH;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAIzB;;EACC,2CAA2C;EAC3C,MAAM,QAAQ,GAAG,4BAA4B,CAAC;EAC9C,MAAM,MAAM,GAAG,MAAM,CAAC;EAEtB,MAAM,SAAS,GAAc;IAC3B,4CAA4C;IAC5C,cAAc,EAAE,QAAQ;IACxB,aAAa,EAAE,QAAQ;IACvB,aAAa,EAAE,QAAQ;IACvB,aAAa,EAAE,QAAQ;IACvB,YAAY,EAAE,QAAQ;IACtB,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,QAAQ;IACpB,YAAY,EAAE,QAAQ;IACtB,mBAAmB,EAAE,QAAQ;IAC7B,eAAe,EAAE,QAAQ;IACzB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,QAAQ;IACpB,uBAAuB,EAAE,QAAQ;IACjC,uBAAuB,EAAE,QAAQ;IACjC,oBAAoB,EAAE,QAAQ;GAC/B,CAAC;EAEF,MAAM,UAAU,GAAe;IAC7B,SAAS,EAAE;IACT,4CAA4C;KAC7C;GACF,CAAC;EAEF,kCAAkC;EAClC,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;IACjD,kDAAkD;GACnD;EAED,MAAM,WAAW,GAAG;IAClB,SAAS;IACT,UAAU;GACX,CAAC;EAEF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;EACzD,IAAI,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,0CAAE,QAAQ,EAAE;IAC3B,uBAAuB;GACxB;EACD,OAAO,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,0CAAE,QAAQ,KAAI,KAAK,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,GAAW;;EACjD,4CAA4C;EAC5C,MAAM,QAAQ,GAAG,4BAA4B,CAAC;EAC9C,MAAM,MAAM,GAAG,MAAM,CAAC;EAEtB,MAAM,IAAI,GAAG;IACX,WAAW,EAAE;MACX,SAAS,EAAE,GAAG;KACf;IACD,QAAQ,EAAE,2BAA2B;IACrC,cAAc,EAAE,GAAG;GACpB,CAAC;EAEF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;EAClD,OAAO,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,0CAAE,QAAQ,KAAI,IAAI,CAAC;AACzC,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,EAAU;;EACrC,8CAA8C;EAC9C,MAAM,QAAQ,GAAG,qCAAqC,EAAE,EAAE,CAAC;EAC3D,MAAM,MAAM,GAAG,KAAK,CAAC;EAErB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;EAC5C,OAAO,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,0CAAE,IAAI,KAAI,IAAI,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,IAKC,EACD,EAAU;;EAEV,4CAA4C;EAC5C,MAAM,QAAQ,GAAG,8BAA8B,EAAE,EAAE,CAAC;EACpD,MAAM,MAAM,GAAG,OAAO,CAAC;EAEvB,MAAM,SAAS,GAAc;IAC3B,4CAA4C;IAC5C,cAAc,EAAE,QAAQ;IACxB,aAAa,EAAE,QAAQ;IACvB,aAAa,EAAE,QAAQ;IACvB,aAAa,EAAE,QAAQ;IACvB,YAAY,EAAE,QAAQ;IACtB,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,QAAQ;IACpB,YAAY,EAAE,QAAQ;IACtB,mBAAmB,EAAE,QAAQ;IAC7B,eAAe,EAAE,QAAQ;IACzB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,QAAQ;IACpB,uBAAuB,EAAE,QAAQ;IACjC,uBAAuB,EAAE,QAAQ;IACjC,oBAAoB,EAAE,QAAQ;GAC/B,CAAC;EAEF,MAAM,UAAU,GAAe;IAC7B,SAAS,EAAE;IACT,4CAA4C;KAC7C;GACF,CAAC;EAEF,kCAAkC;EAClC,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;IACjD,kDAAkD;GACnD;EAED,mCAAmC;EACnC,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,CAAA,EAAE;IAC/E,oDAAoD;GACrD;EAED,uCAAuC;EACvC,IAAI,IAAI,CAAC,eAAe,EAAE;IACxB,uCAAuC;GACxC;EAED,MAAM,WAAW,GAAG;IAClB,SAAS;IACT,UAAU;GACX,CAAC;EAEF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;EACzD,IAAI,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,MAAK,IAAI,EAAE;IACzB,uBAAuB;IACvB,OAAO,EAAE,CAAC;GACX;EACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAAY;EACrC,0CAA0C;EAC1C,MAAM,QAAQ,GAAG,iCAAiC,CAAC;EACnD,MAAM,MAAM,GAAG,MAAM,CAAC;EAEtB,MAAM,KAAK,GAAG;IACZ,KAAK,EAAE;MACL;QACE,mBAAmB,EAAE,IAAI;OAC1B;KACF;GACF,CAAC;EAEF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;EACnD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,IAAY;EAC/C,qDAAqD;EACrD,MAAM,QAAQ,GAAG,sEAAsE,IAAI,EAAE,CAAC;EAC9F,MAAM,MAAM,GAAG,KAAK,CAAC;EAErB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;EAC5C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC","sourcesContent":["import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { Buffer } from 'buffer';\nimport state from '../store';\nconst baseURL = process.env.FELIX_URL || 'https://stage.hemfixare.se/fmi/data/v1/databases/Hemfix_web/sessions';\n\n// @ts-ignore\nwindow.Buffer = Buffer;\n\ninterface Product {\n [index: number]: string;\n}\n\ninterface Service {\n [index: number]: string;\n}\n\ninterface PortalParameter {\n 'Parameter::Pad001_Name': string;\n 'Parameter::Pad002_Data': string;\n 'Parameter::Pad031_Antal'?: string;\n}\n\ninterface FieldData {\n Pa01_FirstName: string;\n Pa02_LastName: string;\n Pa03_Address1: string;\n Pa04_Address2: string;\n Pa05_Zipcode: string;\n Pa06_City: string;\n Pa07_State: string;\n Pa08_Country: string;\n Pa11_StatusExternal: string;\n Pa12_PersonalNo: string;\n Pa20_Email: string;\n Pa30_Phone: string;\n Pa50_Type: string;\n Pa51_Notes: string;\n Pa041_AssignmentAddress?: string;\n Pa042_AssignmentZipCode?: string;\n Pa043_AssignmentCity?: string;\n}\n\ninterface PortalData {\n Parameter: PortalParameter[];\n}\n\ninterface ApiCallResponse {\n error?: number;\n message?: string;\n response?: Record<string, any>;\n}\n\nlet client: AxiosInstance;\n\nasync function initializeFelix(): Promise<string> {\n const auth = Buffer.from('CustomWebForm:aFMZ4iJzoaEBcwskBDxqb4Pb').toString('base64');\n const res = await apiCall('sessions', 'POST', null, auth);\n return res?.response?.token || null;\n}\n\nasync function apiCall(endpoint: string, method: 'GET' | 'POST' | 'PATCH', data?: any, basic: boolean | string = false): Promise<ApiCallResponse> {\n if (!client) {\n client = axios.create({\n baseURL,\n validateStatus: () => true,\n });\n }\n\n const headers: { [key: string]: string } = {\n 'Content-Type': 'application/json',\n 'Authorization': basic ? `Basic ${basic}` : `Bearer ${state.token ? state.token : ''}`,\n // 'Access-Control-Allow-Origin': 'stage.hemfixare.se',\n };\n\n const config: AxiosRequestConfig = {\n method,\n url: endpoint,\n headers,\n data,\n };\n\n try {\n const response: AxiosResponse = await client.request(config);\n return {\n response: response.data,\n };\n } catch (error) {\n return {\n error: error.response?.status,\n message: error.response?.data || error.message,\n };\n }\n}\n\nasync function sendPerson(data: {\n products: Product[];\n serviceArr: Service[];\n // ... Define the data structure\n}): Promise<string | false> {\n // Implement the logic for sending a person\n const endpoint = 'layouts/pa.Passage/records';\n const method = 'POST';\n\n const fieldData: FieldData = {\n // ... Initialize fieldData object with data\n Pa01_FirstName: 'change',\n Pa02_LastName: 'change',\n Pa03_Address1: 'change',\n Pa04_Address2: 'change',\n Pa05_Zipcode: 'change',\n Pa06_City: 'change',\n Pa07_State: 'change',\n Pa08_Country: 'change',\n Pa11_StatusExternal: 'change',\n Pa12_PersonalNo: 'change',\n Pa20_Email: 'change',\n Pa30_Phone: 'change',\n Pa50_Type: 'change',\n Pa51_Notes: 'change',\n Pa041_AssignmentAddress: 'change',\n Pa042_AssignmentZipCode: 'change',\n Pa043_AssignmentCity: 'change',\n };\n\n const portalData: PortalData = {\n Parameter: [\n // ... Initialize portalData array with data\n ],\n };\n\n // If products are present in data\n if (data.products && Array.isArray(data.products)) {\n // ... Process products and add them to portalData\n }\n\n const requestData = {\n fieldData,\n portalData,\n };\n\n const res = await apiCall(endpoint, method, requestData);\n if (res?.response?.recordId) {\n // ... Process recordId\n }\n return res?.response?.recordId || false;\n}\n\nasync function checkPerson(ssn: string, url: string): Promise<string | null> {\n // Implement the logic for checking a person\n const endpoint = 'layouts/pa.Passage/records';\n const method = 'POST';\n\n const data = {\n 'fieldData': {\n Pa50_Type: url,\n },\n 'script': 'pa.pub.PassageCheckPerson',\n 'script.param': ssn,\n };\n\n const res = await apiCall(endpoint, method, data);\n return res?.response?.recordId || null;\n}\n\nasync function getPersonData(id: string): Promise<any> {\n // Implement the logic for getting person data\n const endpoint = `layouts/pa.PassageGetData/records/${id}`;\n const method = 'GET';\n\n const res = await apiCall(endpoint, method);\n return res?.response?.data || null;\n}\n\nasync function updatePerson(\n data: {\n // ... Define the data structure\n products: Product[];\n serviceArr: Service[];\n recievedChanged: boolean;\n },\n id: string,\n): Promise<string | false> {\n // Implement the logic for updating a person\n const endpoint = `layouts/pa.Passage/records/${id}`;\n const method = 'PATCH';\n\n const fieldData: FieldData = {\n // ... Initialize fieldData object with data\n Pa01_FirstName: 'change',\n Pa02_LastName: 'change',\n Pa03_Address1: 'change',\n Pa04_Address2: 'change',\n Pa05_Zipcode: 'change',\n Pa06_City: 'change',\n Pa07_State: 'change',\n Pa08_Country: 'change',\n Pa11_StatusExternal: 'change',\n Pa12_PersonalNo: 'change',\n Pa20_Email: 'change',\n Pa30_Phone: 'change',\n Pa50_Type: 'change',\n Pa51_Notes: 'change',\n Pa041_AssignmentAddress: 'change',\n Pa042_AssignmentZipCode: 'change',\n Pa043_AssignmentCity: 'change',\n };\n\n const portalData: PortalData = {\n Parameter: [\n // ... Initialize portalData array with data\n ],\n };\n\n // If products are present in data\n if (data.products && Array.isArray(data.products)) {\n // ... Process products and add them to portalData\n }\n\n // If serviceArr is present in data\n if (data.serviceArr && Array.isArray(data.serviceArr) && !data.products?.length) {\n // ... Process serviceArr and add them to portalData\n }\n\n // If recievedChanged is \"true\" in data\n if (data.recievedChanged) {\n // ... Add assignment data to fieldData\n }\n\n const requestData = {\n fieldData,\n portalData,\n };\n\n const res = await apiCall(endpoint, method, requestData);\n if (res?.message === 'OK') {\n // ... Process response\n return id;\n }\n return false;\n}\n\nasync function findPricing(data: string): Promise<any> {\n // Implement the logic for finding pricing\n const endpoint = 'layouts/pa.PassagePricing/_find';\n const method = 'POST';\n\n const query = {\n query: [\n {\n As014_WebFormType_c: data,\n },\n ],\n };\n\n const res = await apiCall(endpoint, method, query);\n return res;\n}\n\nasync function processPassageRecords(data: string): Promise<any> {\n // Implement the logic for processing passage records\n const endpoint = `layouts/pa.Passage/script/pa.pub.ProcessCustomWebForm?script.param=${data}`;\n const method = 'GET';\n\n const res = await apiCall(endpoint, method);\n return res;\n}\n\nexport { checkPerson, findPricing, getPersonData, initializeFelix, processPassageRecords, sendPerson, updatePerson };\n"]}