hemfixarna-web-components 1.3.1 → 1.3.2

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.
@@ -1014,14 +1014,14 @@ const HemfixarnaComponent = class {
1014
1014
  return state.cart.reduce((acc, curr) => acc + curr.amount, 0);
1015
1015
  }
1016
1016
  render() {
1017
- var _a, _b, _c, _d, _e, _f, _g;
1017
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
1018
1018
  const logo = index.getAssetPath(`./assets/hemfixarna.svg`);
1019
1019
  const monteringLogo = index.getAssetPath(`./assets/montering.svg`);
1020
1020
  const navBackground = ((_a = this.nav) === null || _a === void 0 ? void 0 : _a.background) ? index.getAssetPath(this.nav.background) : '';
1021
1021
  const navLogo = ((_b = this.nav) === null || _b === void 0 ? void 0 : _b.logo) ? index.getAssetPath(this.nav.logo) : '';
1022
1022
  return (index.h("div", { class: `hemfixarna ${this.loadFromQuery ? 'hemfixarna_standalone' : ''}` }, this.loadFromQuery && !this.isDemo && this.nav ? (index.h("nav", { class: "hemfixarna_nav" }, index.h("div", null, index.h("div", { class: "hemfixarna_nav--logos" }, index.h("a", { href: this.nav.url, target: "_blank" }, index.h("img", { src: navLogo, alt: `${this.business} logo` })), index.h("a", { href: "https://hemfixarna.se/", target: "_blank" }, index.h("p", null, "I samarbete med:"), index.h("img", { src: logo, alt: "hemfixarna_logo", width: 104 }))), index.h("div", { class: "hemfixarna_nav--links" }, index.h("a", { href: this.nav.url, target: "_blank" }, "Till ", this.business), index.h("a", { href: "https://www.hemfixarna.se/", target: "_blank" }, "Till Hemfixarna")), index.h("img", { src: navBackground, alt: "nav_background" })))) : null, !this.loadFromQuery || this.isDemo ? (index.h("div", { class: `hemfixarna_box hemfixarna_box--${this.widgetStyle}` }, [WidgetStyle.alternative_2, WidgetStyle.alternative_3].includes(this.widgetStyle) ? index.h("img", { src: monteringLogo, alt: "montering logo", width: 32, height: 32 }) : null, index.h("div", null, index.h("div", null, index.h("p", { onClick: () => this.openModal(), class: `pointer ${[WidgetStyle.alternative_2, WidgetStyle.alternative_3].includes(this.widgetStyle) && state.selectedProduct ? 'underline' : ''}` }, ((_c = this.product) === null || _c === void 0 ? void 0 : _c.post_title) || ((_d = this.proppedProduct) === null || _d === void 0 ? void 0 : _d.post_title) || (index.h("span", null, "Montering", index.h("wbr", null), "/Installation ", (_f = (_e = state.selectedCustomerCategory) === null || _e === void 0 ? void 0 : _e.name) !== null && _f !== void 0 ? _f : 'på plats', " - ", index.h("strong", { class: "underline" }, "se priser h\u00E4r"))), (this.product && ((_g = this.slug) === null || _g === void 0 ? void 0 : _g.includes('product'))) || this.proppedProduct ? (index.h("span", null, ' från', " ", index.h("strong", null, getProductPriceWithRotAndRut(this.proppedProduct || this.product), "kr"))) : null)), this.widgetStyle === WidgetStyle.standard ? index.h("img", { src: logo, width: 104 }) : null, this.widgetStyle === WidgetStyle.alternative ? (index.h("span", { class: "p-s" }, "Utf\u00F6rs av ", index.h("strong", null, "Hemfixarna"))) : null), [WidgetStyle.standard, WidgetStyle.alternative].includes(this.widgetStyle) ? (index.h("button", { onClick: () => this.openModal(), class: "hemfixarna_btn", style: {
1023
- color: this.buttonColor.startsWith('#') || !this.buttonColor.length ? this.buttonColor : `#${this.buttonColor}`,
1024
- backgroundColor: this.buttonBg.startsWith('#') || !this.buttonBg.length ? this.buttonBg : `#${this.buttonBg}`,
1023
+ color: ((_h = this.buttonColor) === null || _h === void 0 ? void 0 : _h.startsWith('#')) || !((_j = this.buttonColor) === null || _j === void 0 ? void 0 : _j.length) ? this.buttonColor : `#${this.buttonColor}`,
1024
+ backgroundColor: ((_k = this.buttonBg) === null || _k === void 0 ? void 0 : _k.startsWith('#')) || !((_l = this.buttonBg) === null || _l === void 0 ? void 0 : _l.length) ? this.buttonBg : `#${this.buttonBg}`,
1025
1025
  } }, "Best\u00E4ll h\u00E4r", this.getCartLength() > 0 && index.h("span", null, this.getCartLength()))) : null, WidgetStyle.alternative_2 === this.widgetStyle ? (index.h("div", { class: "hemfixarna_altbtn" }, index.h("strong", { class: "p-s" }, "Utf\u00F6rs av"), index.h("img", { src: logo, alt: "hemfixarna logo", width: 98 }))) : null)) : null, this.modal && (index.h("div", null, index.h("div", { class: `hemfixarna_modal ${this.showModal ? 'hemfixarna_modal--open' : ''}` }, state.modal && (index.h("div", { class: "hemfixarna_infomodal" }, state.modal.title && index.h("h2", null, state.modal.title), state.modal.text.map((t) => (index.h("p", { innerHTML: t }))), index.h("div", null, index.h("button", { onClick: () => (state.modal = null) }, "St\u00E4ng")))), (this.tree || state.customer) && (index.h("hemfixarna-breadcrumbs", { isDemo: this.isDemo, loadFromQuery: this.loadFromQuery, closeModal: () => this.closeModal(), tree: this.tree })), !state.customer || this.slugIsOldFormat(this.slug) ? (index.h("div", { class: `hemfixarna_content hemfixarna_content--${state.step}` }, state.step === 1 && this.tree && index.h("hemfixarna-start", { tree: this.tree }), state.step === 2 && state.selectedCategory && index.h("hemfixarna-category", null), state.step === 3 && state.selectedService && index.h("hemfixarna-service", null), state.step === 4 && state.selectedProduct && index.h("hemfixarna-product", null), state.step === 5 && index.h("hemfixarna-cart", { tree: this.tree }), state.step === 6 && index.h("hemfixarna-order", { tree: this.tree }))) : (index.h("div", { class: `hemfixarna_content hemfixarna_content--${state.step}` }, state.step < 4 && index.h("hemfixarna-start", null), state.step === 4 && state.selectedProduct && index.h("hemfixarna-product", null), state.step === 5 && index.h("hemfixarna-cart", { tree: this.tree }), state.step === 6 && index.h("hemfixarna-order", { tree: this.tree })))), !this.isDemo ? index.h("div", { class: `hemfixarna_backdrop ${this.showModal ? 'hemfixarna_backdrop--open' : ''}` }) : null))));
1026
1026
  }
1027
1027
  static get assetsDirs() { return ["assets"]; }
@@ -208,14 +208,14 @@ export class HemfixarnaComponent {
208
208
  return state.cart.reduce((acc, curr) => acc + curr.amount, 0);
209
209
  }
210
210
  render() {
211
- var _a, _b, _c, _d, _e, _f, _g;
211
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
212
212
  const logo = getAssetPath(`./assets/hemfixarna.svg`);
213
213
  const monteringLogo = getAssetPath(`./assets/montering.svg`);
214
214
  const navBackground = ((_a = this.nav) === null || _a === void 0 ? void 0 : _a.background) ? getAssetPath(this.nav.background) : '';
215
215
  const navLogo = ((_b = this.nav) === null || _b === void 0 ? void 0 : _b.logo) ? getAssetPath(this.nav.logo) : '';
216
216
  return (h("div", { class: `hemfixarna ${this.loadFromQuery ? 'hemfixarna_standalone' : ''}` }, this.loadFromQuery && !this.isDemo && this.nav ? (h("nav", { class: "hemfixarna_nav" }, h("div", null, h("div", { class: "hemfixarna_nav--logos" }, h("a", { href: this.nav.url, target: "_blank" }, h("img", { src: navLogo, alt: `${this.business} logo` })), h("a", { href: "https://hemfixarna.se/", target: "_blank" }, h("p", null, "I samarbete med:"), h("img", { src: logo, alt: "hemfixarna_logo", width: 104 }))), h("div", { class: "hemfixarna_nav--links" }, h("a", { href: this.nav.url, target: "_blank" }, "Till ", this.business), h("a", { href: "https://www.hemfixarna.se/", target: "_blank" }, "Till Hemfixarna")), h("img", { src: navBackground, alt: "nav_background" })))) : null, !this.loadFromQuery || this.isDemo ? (h("div", { class: `hemfixarna_box hemfixarna_box--${this.widgetStyle}` }, [WidgetStyle.alternative_2, WidgetStyle.alternative_3].includes(this.widgetStyle) ? h("img", { src: monteringLogo, alt: "montering logo", width: 32, height: 32 }) : null, h("div", null, h("div", null, h("p", { onClick: () => this.openModal(), class: `pointer ${[WidgetStyle.alternative_2, WidgetStyle.alternative_3].includes(this.widgetStyle) && state.selectedProduct ? 'underline' : ''}` }, ((_c = this.product) === null || _c === void 0 ? void 0 : _c.post_title) || ((_d = this.proppedProduct) === null || _d === void 0 ? void 0 : _d.post_title) || (h("span", null, "Montering", h("wbr", null), "/Installation ", (_f = (_e = state.selectedCustomerCategory) === null || _e === void 0 ? void 0 : _e.name) !== null && _f !== void 0 ? _f : 'på plats', " - ", h("strong", { class: "underline" }, "se priser h\u00E4r"))), (this.product && ((_g = this.slug) === null || _g === void 0 ? void 0 : _g.includes('product'))) || this.proppedProduct ? (h("span", null, ' från', " ", h("strong", null, getProductPriceWithRotAndRut(this.proppedProduct || this.product), "kr"))) : null)), this.widgetStyle === WidgetStyle.standard ? h("img", { src: logo, width: 104 }) : null, this.widgetStyle === WidgetStyle.alternative ? (h("span", { class: "p-s" }, "Utf\u00F6rs av ", h("strong", null, "Hemfixarna"))) : null), [WidgetStyle.standard, WidgetStyle.alternative].includes(this.widgetStyle) ? (h("button", { onClick: () => this.openModal(), class: "hemfixarna_btn", style: {
217
- color: this.buttonColor.startsWith('#') || !this.buttonColor.length ? this.buttonColor : `#${this.buttonColor}`,
218
- backgroundColor: this.buttonBg.startsWith('#') || !this.buttonBg.length ? this.buttonBg : `#${this.buttonBg}`,
217
+ color: ((_h = this.buttonColor) === null || _h === void 0 ? void 0 : _h.startsWith('#')) || !((_j = this.buttonColor) === null || _j === void 0 ? void 0 : _j.length) ? this.buttonColor : `#${this.buttonColor}`,
218
+ backgroundColor: ((_k = this.buttonBg) === null || _k === void 0 ? void 0 : _k.startsWith('#')) || !((_l = this.buttonBg) === null || _l === void 0 ? void 0 : _l.length) ? this.buttonBg : `#${this.buttonBg}`,
219
219
  } }, "Best\u00E4ll h\u00E4r", this.getCartLength() > 0 && h("span", null, this.getCartLength()))) : null, WidgetStyle.alternative_2 === this.widgetStyle ? (h("div", { class: "hemfixarna_altbtn" }, h("strong", { class: "p-s" }, "Utf\u00F6rs av"), h("img", { src: logo, alt: "hemfixarna logo", width: 98 }))) : null)) : null, this.modal && (h("div", null, h("div", { class: `hemfixarna_modal ${this.showModal ? 'hemfixarna_modal--open' : ''}` }, state.modal && (h("div", { class: "hemfixarna_infomodal" }, state.modal.title && h("h2", null, state.modal.title), state.modal.text.map((t) => (h("p", { innerHTML: t }))), h("div", null, h("button", { onClick: () => (state.modal = null) }, "St\u00E4ng")))), (this.tree || state.customer) && (h("hemfixarna-breadcrumbs", { isDemo: this.isDemo, loadFromQuery: this.loadFromQuery, closeModal: () => this.closeModal(), tree: this.tree })), !state.customer || this.slugIsOldFormat(this.slug) ? (h("div", { class: `hemfixarna_content hemfixarna_content--${state.step}` }, state.step === 1 && this.tree && h("hemfixarna-start", { tree: this.tree }), state.step === 2 && state.selectedCategory && h("hemfixarna-category", null), state.step === 3 && state.selectedService && h("hemfixarna-service", null), state.step === 4 && state.selectedProduct && h("hemfixarna-product", null), state.step === 5 && h("hemfixarna-cart", { tree: this.tree }), state.step === 6 && h("hemfixarna-order", { tree: this.tree }))) : (h("div", { class: `hemfixarna_content hemfixarna_content--${state.step}` }, state.step < 4 && h("hemfixarna-start", null), state.step === 4 && state.selectedProduct && h("hemfixarna-product", null), state.step === 5 && h("hemfixarna-cart", { tree: this.tree }), state.step === 6 && h("hemfixarna-order", { tree: this.tree })))), !this.isDemo ? h("div", { class: `hemfixarna_backdrop ${this.showModal ? 'hemfixarna_backdrop--open' : ''}` }) : null))));
220
220
  }
221
221
  static get is() { return "hemfixarna-component"; }
@@ -1 +1 @@
1
- {"version":3,"file":"hemfixarna-component.js","sourceRoot":"","sources":["../../../src/components/hemfixarna-component/hemfixarna-component.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Listen, Prop, State, Watch, getAssetPath, h } from '@stencil/core';\nimport state from '../../store';\nimport { Business, Category, Product, Service, TopCategory, WidgetStyle } from '../../types';\nimport { getCustomer, getOptions, getRot, getRut, getTaxonomy } from '../../utils/api';\nimport { getProductPriceWithRotAndRut } from '../../utils/calc';\nimport { scrollToTop } from '../../utils/scroll';\n\n@Component({\n tag: 'hemfixarna-component',\n styleUrl: 'hemfixarna.scss',\n shadow: true,\n assetsDirs: ['assets'],\n})\nexport class HemfixarnaComponent {\n @State() modal: boolean = false;\n @State() showModal: boolean = false;\n @State() tree: Category | null = null;\n @State() product: Product | null = null;\n @State() proppedProduct: Product | null = null;\n @Prop() slug?: string;\n @Prop() id?: string;\n @Prop() business: Business;\n @Prop() topCategory?: TopCategory;\n @Prop() forceOldTree?: boolean = false;\n @Prop() loadFromQuery?: boolean = false;\n @Prop() isDemo?: boolean = false;\n @Prop() widgetStyle: WidgetStyle;\n @Prop() nav?: {\n url: string;\n logo: string;\n background?: string;\n } = undefined;\n @Prop() buttonColor?: string;\n @Prop() buttonBg?: string;\n\n @Element() private el: HTMLElement;\n\n loadCategoryOrProduct(id: string) {\n this.proppedProduct = null;\n if (id.startsWith('c-')) {\n const categories = [...state.customer.categories, ...state.customer.categories.map(c => c.sub_categories ?? [])].flat();\n const category = categories.find(c => c && c.id === id.replace('c-', ''));\n if (category) {\n state.selectedCustomerCategory = category;\n state.step = 2;\n }\n } else {\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 === parseInt(id));\n if (product) {\n state.selectedProduct = product.fields;\n state.step = 4;\n this.proppedProduct = product.fields;\n }\n }\n }\n\n @Watch('slug')\n async watchSlugChange(newValue: string) {\n if (this.slugIsOldFormat(newValue)) {\n this.fetchNewTaxonomy(newValue);\n } else if (state.customer && newValue) {\n this.loadCategoryOrProduct(newValue);\n }\n }\n\n @Watch('id')\n async watchIdChange(id: string) {\n if (id && state.customer) {\n this.loadCategoryOrProduct(id);\n }\n }\n\n async fetchNewTaxonomy(slug: string) {\n state.selectedCategory = null;\n state.selectedProduct = null;\n state.selectedService = null;\n\n const res = await getTaxonomy(slug);\n if (res?.code === 'not_found' || res?.code === 'rest_no_route') {\n console.log('taxonomy not found');\n } else if (res) {\n this.setTaxonomy(res);\n if ((res as Product)?.post_type === 'ikea_product') {\n this.product = res as Product;\n }\n }\n }\n\n slugIsOldFormat = (slug?: string) => {\n if (!slug) return false;\n return ['product', 'service', 'category'].some(str => slug.includes(str));\n };\n\n async componentWillLoad() {\n state.business = this.business;\n const cart = window.sessionStorage.getItem(`hemfixarna-${this.business}-cart`);\n if (cart) {\n state.cart = JSON.parse(cart);\n }\n const user = window.sessionStorage.getItem(`hemfixarna-${this.business}-user`);\n if (user) {\n state.user = JSON.parse(user);\n }\n const creditSafeUser = window.sessionStorage.getItem(`hemfixarna-${this.business}-creditSafeUser`);\n if (creditSafeUser) {\n state.creditSafeUser = JSON.parse(creditSafeUser);\n }\n\n const [tree, res, options, rut, rot] = await Promise.all([\n this.topCategory ? getTaxonomy(this.topCategory) : null,\n this.slug ? getTaxonomy(this.slug) : Promise.resolve(null),\n getOptions(),\n getRut(),\n getRot(),\n ]);\n\n if ((!this.slug || !this.slugIsOldFormat(this.slug)) && !this.forceOldTree) {\n try {\n const customer = await getCustomer(this.business);\n if (customer?.code === 'not_found') {\n console.warn('customer not found');\n } else if (customer) {\n state.customer = customer;\n if (this.id) {\n this.loadCategoryOrProduct(this.id);\n } else if (this.slug && !this.slugIsOldFormat(this.slug)) {\n this.loadCategoryOrProduct(this.slug);\n }\n }\n } catch (error) {\n console.warn('customer not found');\n }\n }\n\n if (tree?.code === 'not_found') {\n // console.warn('tree not found');\n } else if (tree) {\n this.tree = tree;\n }\n\n if (res?.code === 'not_found') {\n console.log('taxonomy not found');\n } else if (res) {\n this.setTaxonomy(res);\n if ((res as Product)?.post_type === 'ikea_product') {\n this.product = res as Product;\n }\n }\n\n if (this.loadFromQuery) {\n const params = new URL(document.location.toString()).searchParams;\n this.id = params.get('id');\n if (!this.isDemo) {\n this.openModal();\n }\n }\n\n state.rotOptions = rot;\n state.rutOptions = rut;\n state.options = options;\n }\n\n triggerScrollTotop = () => {\n const el = this.el.shadowRoot.querySelector('.hemfixarna_content');\n scrollToTop(el);\n };\n\n setTaxonomy(taxonomy: Category | Service | Product) {\n if (taxonomy) {\n if ((taxonomy as Category)?.taxonomy === 'service_cat') {\n state.selectedCategory = taxonomy as Category;\n state.step = 2;\n } else if ((taxonomy as Service)?.post_type === 'service') {\n state.selectedService = taxonomy as Service;\n state.selectedCategory = this.tree.sub_cats.find(c => c.services.find(s => s.ID === (taxonomy as Service).ID));\n state.step = 3;\n } else if ((taxonomy as Product)?.post_type === 'ikea_product') {\n state.selectedProduct = taxonomy as Product;\n state.selectedService = this.tree.sub_cats\n .map(c => c.services)\n .flat()\n .find(s => s.products.find(p => p.ID === state.selectedProduct.ID));\n state.selectedCategory = this.tree.sub_cats.find(c => c.services.find(s => s.ID === state.selectedService.ID));\n state.step = 4;\n }\n this.triggerScrollTotop();\n }\n }\n\n // Open close modal && click outside event\n openModal() {\n this.modal = true;\n setTimeout(() => {\n this.showModal = true;\n }, 50);\n }\n closeModal() {\n this.showModal = false;\n setTimeout(() => {\n this.modal = false;\n }, 200);\n }\n @Listen('click')\n handleClick(e: Event) {\n if (this.loadFromQuery && !this.isDemo) return;\n const el = this.el.shadowRoot.querySelector('.hemfixarna_modal');\n if (el) {\n const isClickInside = el.contains(e.composedPath()[0] as HTMLInputElement);\n if (!isClickInside) {\n this.closeModal();\n }\n }\n const infomodal = this.el.shadowRoot.querySelector('.hemfixarna_infomodal');\n if (infomodal) {\n const isClickInside = infomodal.contains(e.composedPath()[0] as HTMLInputElement);\n if (!isClickInside) {\n state.modal = null;\n }\n }\n }\n\n getCartLength() {\n return state.cart.reduce((acc, curr) => acc + curr.amount, 0);\n }\n\n render() {\n const logo = getAssetPath(`./assets/hemfixarna.svg`);\n const monteringLogo = getAssetPath(`./assets/montering.svg`);\n const navBackground = this.nav?.background ? getAssetPath(this.nav.background) : '';\n const navLogo = this.nav?.logo ? getAssetPath(this.nav.logo) : '';\n\n return (\n <div class={`hemfixarna ${this.loadFromQuery ? 'hemfixarna_standalone' : ''}`}>\n {this.loadFromQuery && !this.isDemo && this.nav ? (\n <nav class=\"hemfixarna_nav\">\n <div>\n <div class=\"hemfixarna_nav--logos\">\n <a href={this.nav.url} target=\"_blank\">\n <img src={navLogo} alt={`${this.business} logo`} />\n </a>\n <a href=\"https://hemfixarna.se/\" target=\"_blank\">\n <p>I samarbete med:</p>\n <img src={logo} alt=\"hemfixarna_logo\" width={104} />\n </a>\n </div>\n\n <div class=\"hemfixarna_nav--links\">\n <a href={this.nav.url} target=\"_blank\">\n Till {this.business}\n </a>\n <a href=\"https://www.hemfixarna.se/\" target=\"_blank\">\n Till Hemfixarna\n </a>\n </div>\n <img src={navBackground} alt=\"nav_background\" />\n </div>\n </nav>\n ) : null}\n {!this.loadFromQuery || this.isDemo ? (\n <div class={`hemfixarna_box hemfixarna_box--${this.widgetStyle}`}>\n {[WidgetStyle.alternative_2, WidgetStyle.alternative_3].includes(this.widgetStyle) ? <img src={monteringLogo} alt=\"montering logo\" width={32} height={32} /> : null}\n <div>\n <div>\n <p\n onClick={() => this.openModal()}\n class={`pointer ${[WidgetStyle.alternative_2, WidgetStyle.alternative_3].includes(this.widgetStyle) && state.selectedProduct ? 'underline' : ''}`}\n >\n {this.product?.post_title || this.proppedProduct?.post_title || (\n <span>\n Montering\n <wbr />\n /Installation {state.selectedCustomerCategory?.name ?? 'på plats'} - <strong class=\"underline\">se priser här</strong>\n </span>\n )}\n {(this.product && this.slug?.includes('product')) || this.proppedProduct ? (\n <span>\n {' från'} <strong>{getProductPriceWithRotAndRut(this.proppedProduct || this.product)}kr</strong>\n </span>\n ) : null}\n </p>\n </div>\n {this.widgetStyle === WidgetStyle.standard ? <img src={logo} width={104} /> : null}\n {this.widgetStyle === WidgetStyle.alternative ? (\n <span class=\"p-s\">\n Utförs av <strong>Hemfixarna</strong>\n </span>\n ) : null}\n </div>\n {[WidgetStyle.standard, WidgetStyle.alternative].includes(this.widgetStyle) ? (\n <button\n onClick={() => this.openModal()}\n class=\"hemfixarna_btn\"\n style={{\n color: this.buttonColor.startsWith('#') || !this.buttonColor.length ? this.buttonColor : `#${this.buttonColor}`,\n backgroundColor: this.buttonBg.startsWith('#') || !this.buttonBg.length ? this.buttonBg : `#${this.buttonBg}`,\n }}\n >\n Beställ här\n {this.getCartLength() > 0 && <span>{this.getCartLength()}</span>}\n </button>\n ) : null}\n {WidgetStyle.alternative_2 === this.widgetStyle ? (\n <div class=\"hemfixarna_altbtn\">\n <strong class=\"p-s\">Utförs av</strong>\n <img src={logo} alt=\"hemfixarna logo\" width={98} />\n </div>\n ) : null}\n </div>\n ) : null}\n {this.modal && (\n <div>\n <div class={`hemfixarna_modal ${this.showModal ? 'hemfixarna_modal--open' : ''}`}>\n {state.modal && (\n <div class=\"hemfixarna_infomodal\">\n {state.modal.title && <h2>{state.modal.title}</h2>}\n {state.modal.text.map((t: string) => (\n <p innerHTML={t}></p>\n ))}\n <div>\n <button onClick={() => (state.modal = null)}>Stäng</button>\n </div>\n </div>\n )}\n {(this.tree || state.customer) && (\n <hemfixarna-breadcrumbs isDemo={this.isDemo} loadFromQuery={this.loadFromQuery} closeModal={() => this.closeModal()} tree={this.tree} />\n )}\n {!state.customer || this.slugIsOldFormat(this.slug) ? (\n <div class={`hemfixarna_content hemfixarna_content--${state.step}`}>\n {/* // IF AT TOP LEVEL (step 1) */}\n {state.step === 1 && this.tree && <hemfixarna-start tree={this.tree} />}\n {/* // IF SELECTED CATEGORY (step 2) */}\n {state.step === 2 && state.selectedCategory && <hemfixarna-category />}\n {/* // IF SELECTED SERVICE (step 3) */}\n {state.step === 3 && state.selectedService && <hemfixarna-service />}\n {/* // IF SELECTED PRODUCT (step 4) */}\n {state.step === 4 && state.selectedProduct && <hemfixarna-product />}\n {/* // IF CHECKOUT (step 5) */}\n {state.step === 5 && <hemfixarna-cart tree={this.tree} />}\n {/* // IF ORDER CONFIRM (step 6) */}\n {state.step === 6 && <hemfixarna-order tree={this.tree} />}\n </div>\n ) : (\n <div class={`hemfixarna_content hemfixarna_content--${state.step}`}>\n {state.step < 4 && <hemfixarna-start />}\n {/* // IF SELECTED PRODUCT (step 4) */}\n {state.step === 4 && state.selectedProduct && <hemfixarna-product />}\n {/* // IF CHECKOUT (step 5) */}\n {state.step === 5 && <hemfixarna-cart tree={this.tree} />}\n {/* // IF ORDER CONFIRM (step 6) */}\n {state.step === 6 && <hemfixarna-order tree={this.tree} />}\n </div>\n )}\n </div>\n {!this.isDemo ? <div class={`hemfixarna_backdrop ${this.showModal ? 'hemfixarna_backdrop--open' : ''}`}></div> : null}\n </div>\n )}\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"hemfixarna-component.js","sourceRoot":"","sources":["../../../src/components/hemfixarna-component/hemfixarna-component.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Listen, Prop, State, Watch, getAssetPath, h } from '@stencil/core';\nimport state from '../../store';\nimport { Business, Category, Product, Service, TopCategory, WidgetStyle } from '../../types';\nimport { getCustomer, getOptions, getRot, getRut, getTaxonomy } from '../../utils/api';\nimport { getProductPriceWithRotAndRut } from '../../utils/calc';\nimport { scrollToTop } from '../../utils/scroll';\n\n@Component({\n tag: 'hemfixarna-component',\n styleUrl: 'hemfixarna.scss',\n shadow: true,\n assetsDirs: ['assets'],\n})\nexport class HemfixarnaComponent {\n @State() modal: boolean = false;\n @State() showModal: boolean = false;\n @State() tree: Category | null = null;\n @State() product: Product | null = null;\n @State() proppedProduct: Product | null = null;\n @Prop() slug?: string;\n @Prop() id?: string;\n @Prop() business: Business;\n @Prop() topCategory?: TopCategory;\n @Prop() forceOldTree?: boolean = false;\n @Prop() loadFromQuery?: boolean = false;\n @Prop() isDemo?: boolean = false;\n @Prop() widgetStyle: WidgetStyle;\n @Prop() nav?: {\n url: string;\n logo: string;\n background?: string;\n } = undefined;\n @Prop() buttonColor?: string;\n @Prop() buttonBg?: string;\n\n @Element() private el: HTMLElement;\n\n loadCategoryOrProduct(id: string) {\n this.proppedProduct = null;\n if (id.startsWith('c-')) {\n const categories = [...state.customer.categories, ...state.customer.categories.map(c => c.sub_categories ?? [])].flat();\n const category = categories.find(c => c && c.id === id.replace('c-', ''));\n if (category) {\n state.selectedCustomerCategory = category;\n state.step = 2;\n }\n } else {\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 === parseInt(id));\n if (product) {\n state.selectedProduct = product.fields;\n state.step = 4;\n this.proppedProduct = product.fields;\n }\n }\n }\n\n @Watch('slug')\n async watchSlugChange(newValue: string) {\n if (this.slugIsOldFormat(newValue)) {\n this.fetchNewTaxonomy(newValue);\n } else if (state.customer && newValue) {\n this.loadCategoryOrProduct(newValue);\n }\n }\n\n @Watch('id')\n async watchIdChange(id: string) {\n if (id && state.customer) {\n this.loadCategoryOrProduct(id);\n }\n }\n\n async fetchNewTaxonomy(slug: string) {\n state.selectedCategory = null;\n state.selectedProduct = null;\n state.selectedService = null;\n\n const res = await getTaxonomy(slug);\n if (res?.code === 'not_found' || res?.code === 'rest_no_route') {\n console.log('taxonomy not found');\n } else if (res) {\n this.setTaxonomy(res);\n if ((res as Product)?.post_type === 'ikea_product') {\n this.product = res as Product;\n }\n }\n }\n\n slugIsOldFormat = (slug?: string) => {\n if (!slug) return false;\n return ['product', 'service', 'category'].some(str => slug.includes(str));\n };\n\n async componentWillLoad() {\n state.business = this.business;\n const cart = window.sessionStorage.getItem(`hemfixarna-${this.business}-cart`);\n if (cart) {\n state.cart = JSON.parse(cart);\n }\n const user = window.sessionStorage.getItem(`hemfixarna-${this.business}-user`);\n if (user) {\n state.user = JSON.parse(user);\n }\n const creditSafeUser = window.sessionStorage.getItem(`hemfixarna-${this.business}-creditSafeUser`);\n if (creditSafeUser) {\n state.creditSafeUser = JSON.parse(creditSafeUser);\n }\n\n const [tree, res, options, rut, rot] = await Promise.all([\n this.topCategory ? getTaxonomy(this.topCategory) : null,\n this.slug ? getTaxonomy(this.slug) : Promise.resolve(null),\n getOptions(),\n getRut(),\n getRot(),\n ]);\n\n if ((!this.slug || !this.slugIsOldFormat(this.slug)) && !this.forceOldTree) {\n try {\n const customer = await getCustomer(this.business);\n if (customer?.code === 'not_found') {\n console.warn('customer not found');\n } else if (customer) {\n state.customer = customer;\n if (this.id) {\n this.loadCategoryOrProduct(this.id);\n } else if (this.slug && !this.slugIsOldFormat(this.slug)) {\n this.loadCategoryOrProduct(this.slug);\n }\n }\n } catch (error) {\n console.warn('customer not found');\n }\n }\n\n if (tree?.code === 'not_found') {\n // console.warn('tree not found');\n } else if (tree) {\n this.tree = tree;\n }\n\n if (res?.code === 'not_found') {\n console.log('taxonomy not found');\n } else if (res) {\n this.setTaxonomy(res);\n if ((res as Product)?.post_type === 'ikea_product') {\n this.product = res as Product;\n }\n }\n\n if (this.loadFromQuery) {\n const params = new URL(document.location.toString()).searchParams;\n this.id = params.get('id');\n if (!this.isDemo) {\n this.openModal();\n }\n }\n\n state.rotOptions = rot;\n state.rutOptions = rut;\n state.options = options;\n }\n\n triggerScrollTotop = () => {\n const el = this.el.shadowRoot.querySelector('.hemfixarna_content');\n scrollToTop(el);\n };\n\n setTaxonomy(taxonomy: Category | Service | Product) {\n if (taxonomy) {\n if ((taxonomy as Category)?.taxonomy === 'service_cat') {\n state.selectedCategory = taxonomy as Category;\n state.step = 2;\n } else if ((taxonomy as Service)?.post_type === 'service') {\n state.selectedService = taxonomy as Service;\n state.selectedCategory = this.tree.sub_cats.find(c => c.services.find(s => s.ID === (taxonomy as Service).ID));\n state.step = 3;\n } else if ((taxonomy as Product)?.post_type === 'ikea_product') {\n state.selectedProduct = taxonomy as Product;\n state.selectedService = this.tree.sub_cats\n .map(c => c.services)\n .flat()\n .find(s => s.products.find(p => p.ID === state.selectedProduct.ID));\n state.selectedCategory = this.tree.sub_cats.find(c => c.services.find(s => s.ID === state.selectedService.ID));\n state.step = 4;\n }\n this.triggerScrollTotop();\n }\n }\n\n // Open close modal && click outside event\n openModal() {\n this.modal = true;\n setTimeout(() => {\n this.showModal = true;\n }, 50);\n }\n closeModal() {\n this.showModal = false;\n setTimeout(() => {\n this.modal = false;\n }, 200);\n }\n @Listen('click')\n handleClick(e: Event) {\n if (this.loadFromQuery && !this.isDemo) return;\n const el = this.el.shadowRoot.querySelector('.hemfixarna_modal');\n if (el) {\n const isClickInside = el.contains(e.composedPath()[0] as HTMLInputElement);\n if (!isClickInside) {\n this.closeModal();\n }\n }\n const infomodal = this.el.shadowRoot.querySelector('.hemfixarna_infomodal');\n if (infomodal) {\n const isClickInside = infomodal.contains(e.composedPath()[0] as HTMLInputElement);\n if (!isClickInside) {\n state.modal = null;\n }\n }\n }\n\n getCartLength() {\n return state.cart.reduce((acc, curr) => acc + curr.amount, 0);\n }\n\n render() {\n const logo = getAssetPath(`./assets/hemfixarna.svg`);\n const monteringLogo = getAssetPath(`./assets/montering.svg`);\n const navBackground = this.nav?.background ? getAssetPath(this.nav.background) : '';\n const navLogo = this.nav?.logo ? getAssetPath(this.nav.logo) : '';\n\n return (\n <div class={`hemfixarna ${this.loadFromQuery ? 'hemfixarna_standalone' : ''}`}>\n {this.loadFromQuery && !this.isDemo && this.nav ? (\n <nav class=\"hemfixarna_nav\">\n <div>\n <div class=\"hemfixarna_nav--logos\">\n <a href={this.nav.url} target=\"_blank\">\n <img src={navLogo} alt={`${this.business} logo`} />\n </a>\n <a href=\"https://hemfixarna.se/\" target=\"_blank\">\n <p>I samarbete med:</p>\n <img src={logo} alt=\"hemfixarna_logo\" width={104} />\n </a>\n </div>\n\n <div class=\"hemfixarna_nav--links\">\n <a href={this.nav.url} target=\"_blank\">\n Till {this.business}\n </a>\n <a href=\"https://www.hemfixarna.se/\" target=\"_blank\">\n Till Hemfixarna\n </a>\n </div>\n <img src={navBackground} alt=\"nav_background\" />\n </div>\n </nav>\n ) : null}\n {!this.loadFromQuery || this.isDemo ? (\n <div class={`hemfixarna_box hemfixarna_box--${this.widgetStyle}`}>\n {[WidgetStyle.alternative_2, WidgetStyle.alternative_3].includes(this.widgetStyle) ? <img src={monteringLogo} alt=\"montering logo\" width={32} height={32} /> : null}\n <div>\n <div>\n <p\n onClick={() => this.openModal()}\n class={`pointer ${[WidgetStyle.alternative_2, WidgetStyle.alternative_3].includes(this.widgetStyle) && state.selectedProduct ? 'underline' : ''}`}\n >\n {this.product?.post_title || this.proppedProduct?.post_title || (\n <span>\n Montering\n <wbr />\n /Installation {state.selectedCustomerCategory?.name ?? 'på plats'} - <strong class=\"underline\">se priser här</strong>\n </span>\n )}\n {(this.product && this.slug?.includes('product')) || this.proppedProduct ? (\n <span>\n {' från'} <strong>{getProductPriceWithRotAndRut(this.proppedProduct || this.product)}kr</strong>\n </span>\n ) : null}\n </p>\n </div>\n {this.widgetStyle === WidgetStyle.standard ? <img src={logo} width={104} /> : null}\n {this.widgetStyle === WidgetStyle.alternative ? (\n <span class=\"p-s\">\n Utförs av <strong>Hemfixarna</strong>\n </span>\n ) : null}\n </div>\n {[WidgetStyle.standard, WidgetStyle.alternative].includes(this.widgetStyle) ? (\n <button\n onClick={() => this.openModal()}\n class=\"hemfixarna_btn\"\n style={{\n color: this.buttonColor?.startsWith('#') || !this.buttonColor?.length ? this.buttonColor : `#${this.buttonColor}`,\n backgroundColor: this.buttonBg?.startsWith('#') || !this.buttonBg?.length ? this.buttonBg : `#${this.buttonBg}`,\n }}\n >\n Beställ här\n {this.getCartLength() > 0 && <span>{this.getCartLength()}</span>}\n </button>\n ) : null}\n {WidgetStyle.alternative_2 === this.widgetStyle ? (\n <div class=\"hemfixarna_altbtn\">\n <strong class=\"p-s\">Utförs av</strong>\n <img src={logo} alt=\"hemfixarna logo\" width={98} />\n </div>\n ) : null}\n </div>\n ) : null}\n {this.modal && (\n <div>\n <div class={`hemfixarna_modal ${this.showModal ? 'hemfixarna_modal--open' : ''}`}>\n {state.modal && (\n <div class=\"hemfixarna_infomodal\">\n {state.modal.title && <h2>{state.modal.title}</h2>}\n {state.modal.text.map((t: string) => (\n <p innerHTML={t}></p>\n ))}\n <div>\n <button onClick={() => (state.modal = null)}>Stäng</button>\n </div>\n </div>\n )}\n {(this.tree || state.customer) && (\n <hemfixarna-breadcrumbs isDemo={this.isDemo} loadFromQuery={this.loadFromQuery} closeModal={() => this.closeModal()} tree={this.tree} />\n )}\n {!state.customer || this.slugIsOldFormat(this.slug) ? (\n <div class={`hemfixarna_content hemfixarna_content--${state.step}`}>\n {/* // IF AT TOP LEVEL (step 1) */}\n {state.step === 1 && this.tree && <hemfixarna-start tree={this.tree} />}\n {/* // IF SELECTED CATEGORY (step 2) */}\n {state.step === 2 && state.selectedCategory && <hemfixarna-category />}\n {/* // IF SELECTED SERVICE (step 3) */}\n {state.step === 3 && state.selectedService && <hemfixarna-service />}\n {/* // IF SELECTED PRODUCT (step 4) */}\n {state.step === 4 && state.selectedProduct && <hemfixarna-product />}\n {/* // IF CHECKOUT (step 5) */}\n {state.step === 5 && <hemfixarna-cart tree={this.tree} />}\n {/* // IF ORDER CONFIRM (step 6) */}\n {state.step === 6 && <hemfixarna-order tree={this.tree} />}\n </div>\n ) : (\n <div class={`hemfixarna_content hemfixarna_content--${state.step}`}>\n {state.step < 4 && <hemfixarna-start />}\n {/* // IF SELECTED PRODUCT (step 4) */}\n {state.step === 4 && state.selectedProduct && <hemfixarna-product />}\n {/* // IF CHECKOUT (step 5) */}\n {state.step === 5 && <hemfixarna-cart tree={this.tree} />}\n {/* // IF ORDER CONFIRM (step 6) */}\n {state.step === 6 && <hemfixarna-order tree={this.tree} />}\n </div>\n )}\n </div>\n {!this.isDemo ? <div class={`hemfixarna_backdrop ${this.showModal ? 'hemfixarna_backdrop--open' : ''}`}></div> : null}\n </div>\n )}\n </div>\n );\n }\n}\n"]}
@@ -1010,14 +1010,14 @@ const HemfixarnaComponent = class {
1010
1010
  return state.cart.reduce((acc, curr) => acc + curr.amount, 0);
1011
1011
  }
1012
1012
  render() {
1013
- var _a, _b, _c, _d, _e, _f, _g;
1013
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
1014
1014
  const logo = getAssetPath(`./assets/hemfixarna.svg`);
1015
1015
  const monteringLogo = getAssetPath(`./assets/montering.svg`);
1016
1016
  const navBackground = ((_a = this.nav) === null || _a === void 0 ? void 0 : _a.background) ? getAssetPath(this.nav.background) : '';
1017
1017
  const navLogo = ((_b = this.nav) === null || _b === void 0 ? void 0 : _b.logo) ? getAssetPath(this.nav.logo) : '';
1018
1018
  return (h("div", { class: `hemfixarna ${this.loadFromQuery ? 'hemfixarna_standalone' : ''}` }, this.loadFromQuery && !this.isDemo && this.nav ? (h("nav", { class: "hemfixarna_nav" }, h("div", null, h("div", { class: "hemfixarna_nav--logos" }, h("a", { href: this.nav.url, target: "_blank" }, h("img", { src: navLogo, alt: `${this.business} logo` })), h("a", { href: "https://hemfixarna.se/", target: "_blank" }, h("p", null, "I samarbete med:"), h("img", { src: logo, alt: "hemfixarna_logo", width: 104 }))), h("div", { class: "hemfixarna_nav--links" }, h("a", { href: this.nav.url, target: "_blank" }, "Till ", this.business), h("a", { href: "https://www.hemfixarna.se/", target: "_blank" }, "Till Hemfixarna")), h("img", { src: navBackground, alt: "nav_background" })))) : null, !this.loadFromQuery || this.isDemo ? (h("div", { class: `hemfixarna_box hemfixarna_box--${this.widgetStyle}` }, [WidgetStyle.alternative_2, WidgetStyle.alternative_3].includes(this.widgetStyle) ? h("img", { src: monteringLogo, alt: "montering logo", width: 32, height: 32 }) : null, h("div", null, h("div", null, h("p", { onClick: () => this.openModal(), class: `pointer ${[WidgetStyle.alternative_2, WidgetStyle.alternative_3].includes(this.widgetStyle) && state.selectedProduct ? 'underline' : ''}` }, ((_c = this.product) === null || _c === void 0 ? void 0 : _c.post_title) || ((_d = this.proppedProduct) === null || _d === void 0 ? void 0 : _d.post_title) || (h("span", null, "Montering", h("wbr", null), "/Installation ", (_f = (_e = state.selectedCustomerCategory) === null || _e === void 0 ? void 0 : _e.name) !== null && _f !== void 0 ? _f : 'på plats', " - ", h("strong", { class: "underline" }, "se priser h\u00E4r"))), (this.product && ((_g = this.slug) === null || _g === void 0 ? void 0 : _g.includes('product'))) || this.proppedProduct ? (h("span", null, ' från', " ", h("strong", null, getProductPriceWithRotAndRut(this.proppedProduct || this.product), "kr"))) : null)), this.widgetStyle === WidgetStyle.standard ? h("img", { src: logo, width: 104 }) : null, this.widgetStyle === WidgetStyle.alternative ? (h("span", { class: "p-s" }, "Utf\u00F6rs av ", h("strong", null, "Hemfixarna"))) : null), [WidgetStyle.standard, WidgetStyle.alternative].includes(this.widgetStyle) ? (h("button", { onClick: () => this.openModal(), class: "hemfixarna_btn", style: {
1019
- color: this.buttonColor.startsWith('#') || !this.buttonColor.length ? this.buttonColor : `#${this.buttonColor}`,
1020
- backgroundColor: this.buttonBg.startsWith('#') || !this.buttonBg.length ? this.buttonBg : `#${this.buttonBg}`,
1019
+ color: ((_h = this.buttonColor) === null || _h === void 0 ? void 0 : _h.startsWith('#')) || !((_j = this.buttonColor) === null || _j === void 0 ? void 0 : _j.length) ? this.buttonColor : `#${this.buttonColor}`,
1020
+ backgroundColor: ((_k = this.buttonBg) === null || _k === void 0 ? void 0 : _k.startsWith('#')) || !((_l = this.buttonBg) === null || _l === void 0 ? void 0 : _l.length) ? this.buttonBg : `#${this.buttonBg}`,
1021
1021
  } }, "Best\u00E4ll h\u00E4r", this.getCartLength() > 0 && h("span", null, this.getCartLength()))) : null, WidgetStyle.alternative_2 === this.widgetStyle ? (h("div", { class: "hemfixarna_altbtn" }, h("strong", { class: "p-s" }, "Utf\u00F6rs av"), h("img", { src: logo, alt: "hemfixarna logo", width: 98 }))) : null)) : null, this.modal && (h("div", null, h("div", { class: `hemfixarna_modal ${this.showModal ? 'hemfixarna_modal--open' : ''}` }, state.modal && (h("div", { class: "hemfixarna_infomodal" }, state.modal.title && h("h2", null, state.modal.title), state.modal.text.map((t) => (h("p", { innerHTML: t }))), h("div", null, h("button", { onClick: () => (state.modal = null) }, "St\u00E4ng")))), (this.tree || state.customer) && (h("hemfixarna-breadcrumbs", { isDemo: this.isDemo, loadFromQuery: this.loadFromQuery, closeModal: () => this.closeModal(), tree: this.tree })), !state.customer || this.slugIsOldFormat(this.slug) ? (h("div", { class: `hemfixarna_content hemfixarna_content--${state.step}` }, state.step === 1 && this.tree && h("hemfixarna-start", { tree: this.tree }), state.step === 2 && state.selectedCategory && h("hemfixarna-category", null), state.step === 3 && state.selectedService && h("hemfixarna-service", null), state.step === 4 && state.selectedProduct && h("hemfixarna-product", null), state.step === 5 && h("hemfixarna-cart", { tree: this.tree }), state.step === 6 && h("hemfixarna-order", { tree: this.tree }))) : (h("div", { class: `hemfixarna_content hemfixarna_content--${state.step}` }, state.step < 4 && h("hemfixarna-start", null), state.step === 4 && state.selectedProduct && h("hemfixarna-product", null), state.step === 5 && h("hemfixarna-cart", { tree: this.tree }), state.step === 6 && h("hemfixarna-order", { tree: this.tree })))), !this.isDemo ? h("div", { class: `hemfixarna_backdrop ${this.showModal ? 'hemfixarna_backdrop--open' : ''}` }) : null))));
1022
1022
  }
1023
1023
  static get assetsDirs() { return ["assets"]; }
@@ -1,2 +1,2 @@
1
- import{p as o,b as e}from"./p-62a7c1a2.js";export{s as setNonce}from"./p-62a7c1a2.js";const r=()=>{const e=import.meta.url;const r={};if(e!==""){r.resourcesUrl=new URL(".",e).href}return o(r)};r().then((o=>e([["p-58141d4b",[[1,"hemfixarna-demo",{selectedSlug:[32],selectedID:[32],tooltipText:[32],tree:[32],customer:[32],widgetStyle:[32],buttonBg:[32],buttonColor:[32],colorAccessibility:[32]}],[1,"hemfixarna-byggmax",{slug:[1],id:[1],forceOldTree:[4,"force-old-tree"],loadFromQuery:[4,"load-from-query"],customer:[1],widgetStyle:[1,"widget-style"],buttonColor:[1,"button-color"],buttonBg:[1,"button-bg"],tree:[32]}],[1,"hemfixarna-hornbach",{id:[1],loadFromQuery:[4,"load-from-query"],isDemo:[4,"is-demo"],widgetStyle:[1,"widget-style"],buttonColor:[1,"button-color"],buttonBg:[1,"button-bg"]}],[1,"hemfixarna-kund",{id:[1],loadFromQuery:[4,"load-from-query"],widgetStyle:[1,"widget-style"],buttonColor:[1,"button-color"],buttonBg:[1,"button-bg"]}],[1,"hemfixarna-skanska",{id:[1],customer:[1],loadFromQuery:[4,"load-from-query"],widgetStyle:[1,"widget-style"],buttonColor:[1,"button-color"],buttonBg:[1,"button-bg"]}],[1,"hemfixarna-string-furniture",{id:[1],loadFromQuery:[4,"load-from-query"],widgetStyle:[1,"widget-style"],buttonColor:[1,"button-color"],buttonBg:[1,"button-bg"]}],[1,"hemfixarna-component",{slug:[1],id:[1],business:[1],topCategory:[1,"top-category"],forceOldTree:[4,"force-old-tree"],loadFromQuery:[4,"load-from-query"],isDemo:[4,"is-demo"],widgetStyle:[1,"widget-style"],nav:[16],buttonColor:[1,"button-color"],buttonBg:[1,"button-bg"],modal:[32],showModal:[32],tree:[32],product:[32],proppedProduct:[32]},[[0,"click","handleClick"]]],[0,"hemfixarna-cart",{tree:[16]}],[0,"hemfixarna-category"],[0,"hemfixarna-order",{tree:[16]}],[0,"hemfixarna-service"],[0,"hemfixarna-start",{tree:[16],slug:[1]}],[0,"hemfixarna-product",{amount:[32],hideDescription:[32]}],[0,"hemfixarna-breadcrumbs",{tree:[16],closeModal:[16],loadFromQuery:[4,"load-from-query"],isDemo:[4,"is-demo"]}],[0,"hemfixarna-checkout",{date:[32],dateError:[32],generalError:[32],loading:[32]}],[0,"hemfixarna-address",{street:[32],streetError:[32],zip:[32],zipError:[32],town:[32],townError:[32]}],[0,"hemfixarna-getuser",{email:[32],emailError:[32],phone:[32],phoneError:[32],ssn:[32],ssnError:[32]}],[0,"hemfixarna-orderrows",{cart:[4],tree:[16]}],[0,"hemfixarna-box",{post:[16],category:[16],icon:[1],postTitle:[1,"post-title"]}],[0,"hemfixarna-info",{list:[16]}]]]],o)));
1
+ import{p as o,b as e}from"./p-62a7c1a2.js";export{s as setNonce}from"./p-62a7c1a2.js";const r=()=>{const e=import.meta.url;const r={};if(e!==""){r.resourcesUrl=new URL(".",e).href}return o(r)};r().then((o=>e([["p-33a71663",[[1,"hemfixarna-demo",{selectedSlug:[32],selectedID:[32],tooltipText:[32],tree:[32],customer:[32],widgetStyle:[32],buttonBg:[32],buttonColor:[32],colorAccessibility:[32]}],[1,"hemfixarna-byggmax",{slug:[1],id:[1],forceOldTree:[4,"force-old-tree"],loadFromQuery:[4,"load-from-query"],customer:[1],widgetStyle:[1,"widget-style"],buttonColor:[1,"button-color"],buttonBg:[1,"button-bg"],tree:[32]}],[1,"hemfixarna-hornbach",{id:[1],loadFromQuery:[4,"load-from-query"],isDemo:[4,"is-demo"],widgetStyle:[1,"widget-style"],buttonColor:[1,"button-color"],buttonBg:[1,"button-bg"]}],[1,"hemfixarna-kund",{id:[1],loadFromQuery:[4,"load-from-query"],widgetStyle:[1,"widget-style"],buttonColor:[1,"button-color"],buttonBg:[1,"button-bg"]}],[1,"hemfixarna-skanska",{id:[1],customer:[1],loadFromQuery:[4,"load-from-query"],widgetStyle:[1,"widget-style"],buttonColor:[1,"button-color"],buttonBg:[1,"button-bg"]}],[1,"hemfixarna-string-furniture",{id:[1],loadFromQuery:[4,"load-from-query"],widgetStyle:[1,"widget-style"],buttonColor:[1,"button-color"],buttonBg:[1,"button-bg"]}],[1,"hemfixarna-component",{slug:[1],id:[1],business:[1],topCategory:[1,"top-category"],forceOldTree:[4,"force-old-tree"],loadFromQuery:[4,"load-from-query"],isDemo:[4,"is-demo"],widgetStyle:[1,"widget-style"],nav:[16],buttonColor:[1,"button-color"],buttonBg:[1,"button-bg"],modal:[32],showModal:[32],tree:[32],product:[32],proppedProduct:[32]},[[0,"click","handleClick"]]],[0,"hemfixarna-cart",{tree:[16]}],[0,"hemfixarna-category"],[0,"hemfixarna-order",{tree:[16]}],[0,"hemfixarna-service"],[0,"hemfixarna-start",{tree:[16],slug:[1]}],[0,"hemfixarna-product",{amount:[32],hideDescription:[32]}],[0,"hemfixarna-breadcrumbs",{tree:[16],closeModal:[16],loadFromQuery:[4,"load-from-query"],isDemo:[4,"is-demo"]}],[0,"hemfixarna-checkout",{date:[32],dateError:[32],generalError:[32],loading:[32]}],[0,"hemfixarna-address",{street:[32],streetError:[32],zip:[32],zipError:[32],town:[32],townError:[32]}],[0,"hemfixarna-getuser",{email:[32],emailError:[32],phone:[32],phoneError:[32],ssn:[32],ssnError:[32]}],[0,"hemfixarna-orderrows",{cart:[4],tree:[16]}],[0,"hemfixarna-box",{post:[16],category:[16],icon:[1],postTitle:[1,"post-title"]}],[0,"hemfixarna-info",{list:[16]}]]]],o)));
2
2
  //# sourceMappingURL=hemfixarna-components.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{g as t,f as i,r as e,h as n,a as s,F as a,c as r}from"./p-62a7c1a2.js";const o=(t,i,e)=>{const n=t.get(i);if(!n){t.set(i,[e])}else if(!n.includes(e)){n.push(e)}};const l=(t,i)=>{let e;return(...n)=>{if(e){clearTimeout(e)}e=setTimeout((()=>{e=0;t(...n)}),i)}};const h=t=>!("isConnected"in t)||t.isConnected;const c=l((t=>{for(let i of t.keys()){t.set(i,t.get(i).filter(h))}}),2e3);const u=()=>{if(typeof t!=="function"){return{}}const e=new Map;return{dispose:()=>e.clear(),get:i=>{const n=t();if(n){o(e,i,n)}},set:t=>{const n=e.get(t);if(n){e.set(t,n.filter(i))}c(e)},reset:()=>{e.forEach((t=>t.forEach(i)));c(e)}}};const d=t=>typeof t==="function"?t():t;const p=(t,i=((t,i)=>t!==i))=>{const e=d(t);let n=new Map(Object.entries(e!==null&&e!==void 0?e:{}));const s={dispose:[],get:[],set:[],reset:[]};const a=()=>{var i;n=new Map(Object.entries((i=d(t))!==null&&i!==void 0?i:{}));s.reset.forEach((t=>t()))};const r=()=>{s.dispose.forEach((t=>t()));a()};const o=t=>{s.get.forEach((i=>i(t)));return n.get(t)};const l=(t,e)=>{const a=n.get(t);if(i(e,a,t)){n.set(t,e);s.set.forEach((i=>i(t,e,a)))}};const h=typeof Proxy==="undefined"?{}:new Proxy(e,{get(t,i){return o(i)},ownKeys(t){return Array.from(n.keys())},getOwnPropertyDescriptor(){return{enumerable:true,configurable:true}},has(t,i){return n.has(i)},set(t,i,e){l(i,e);return true}});const c=(t,i)=>{s[t].push(i);return()=>{f(s[t],i)}};const u=(i,e)=>{const n=c("set",((t,n)=>{if(t===i){e(n)}}));const s=c("reset",(()=>e(d(t)[i])));return()=>{n();s()}};const p=(...t)=>{const i=t.reduce(((t,i)=>{if(i.set){t.push(c("set",i.set))}if(i.get){t.push(c("get",i.get))}if(i.reset){t.push(c("reset",i.reset))}if(i.dispose){t.push(c("dispose",i.dispose))}return t}),[]);return()=>i.forEach((t=>t()))};const m=t=>{const i=n.get(t);s.set.forEach((e=>e(t,i,i)))};return{state:h,get:o,set:l,on:c,onChange:u,use:p,dispose:r,reset:a,forceUpdate:m}};const f=(t,i)=>{const e=t.indexOf(i);if(e>=0){t[e]=t[t.length-1];t.length--}};const m=(t,i)=>{const e=p(t,i);e.use(u());return e};const{state:x,onChange:g}=m({step:1,checkoutStep:1,checkoutEdit:false,selectedCategory:null,selectedService:null,selectedProduct:null,cart:[],business:"undefined",options:null,rut:true,rot:true,token:null,user:null,modal:null,rutOptions:null,rotOptions:null,customer:null,selectedCustomerCategory:null,parentCategory:null,creditSafeUser:null});g("cart",(t=>{window.sessionStorage.setItem(`hemfixarna-${x.business}-cart`,JSON.stringify(t))}));g("user",(t=>{window.sessionStorage.setItem(`hemfixarna-${x.business}-user`,JSON.stringify(t))}));g("creditSafeUser",(t=>{window.sessionStorage.setItem(`hemfixarna-${x.business}-creditSafeUser`,JSON.stringify(t))}));g("selectedProduct",(t=>{if(!x.customer||!t)return;const i=[...x.customer.categories,...x.customer.categories.map((t=>{var i;return(i=t.sub_categories)!==null&&i!==void 0?i:[]}))].flat();const e=i.find((i=>i&&i.id===t.category));if(e){x.parentCategory=e;return}x.parentCategory=null}));g("selectedCustomerCategory",(t=>{if(!x.customer||!t)return;if(t.parent){const i=x.customer.categories.find((i=>i.id===t.parent));if(i){x.parentCategory=i;return}}x.parentCategory=null}));const b=t=>t.split(" ").reduce(((t,i)=>{if(i.length<=2){return t+i.slice(0,1)+"* "}else{return t+i.slice(0,1)+"*".repeat(i.length-2)+i.slice(-1)+" "}}),"");const v=t=>{if(!t)return;t.scrollTo({top:0,behavior:"smooth"})};const _=class{constructor(t){e(this,t);this.handleSubmit=t=>{t.preventDefault();const i=this.street.length>0;if(!i){this.streetError="Ange en gatuadress"}const e=this.zip.length>0;const n=/^\s*\d[\d\s]*$/.test(this.zip);if(!n){this.zipError="Postnummer får endast innehålla siffror"}if(!e){this.zipError="Ange ett postnummer"}const s=/^[^\d\s]{2,}$/.test(this.town);if(!s){this.townError="Ange en ort"}if(i&&e&&s&&n){x.user=Object.assign(Object.assign({},x.user),{street:this.street,zip:this.zip,town:this.town});x.checkoutStep=2;x.checkoutEdit=false;const t=this.el.closest(".hemfixarna_content");v(t)}};this.handleChangeStreet=t=>{this.streetError=null;this.street=this.street===x.user.street?"":t.target.value};this.handleChangeZip=t=>{this.zipError=null;this.zip=this.zip===x.user.zip?"":t.target.value};this.handleChangeTown=t=>{this.townError=null;this.town=this.town===x.user.town?"":t.target.value};this.render=()=>n("form",{class:"hemfixarna_address",onSubmit:t=>this.handleSubmit(t)},n("div",null,n("input",{class:`${this.street.length?"input_active":""}`,onInput:this.handleChangeStreet,type:"text",name:"street",value:this.street===x.user.street?b(this.street):this.street}),n("label",{htmlFor:"street"},"Gatuaddress ")),this.streetError&&n("span",null,this.streetError),n("div",null,n("input",{class:`${this.zip.length?"input_active":""}`,onInput:this.handleChangeZip,type:"tel",name:"zip",value:this.zip===x.user.zip?b(this.zip):this.zip}),n("label",{htmlFor:"zip"},"Postnummer ")),this.zipError&&n("span",null,this.zipError),n("div",null,n("input",{class:`${this.town.length?"input_active":""}`,onInput:this.handleChangeTown,type:"text",name:"town",value:this.town===x.user.town?b(this.town):this.town}),n("label",{htmlFor:"town"},"Ort ")),this.townError&&n("span",null,this.townError),n("input",{type:"submit",value:"Fortsätt och Boka"}));this.street="";this.streetError=null;this.zip="";this.zipError=null;this.town="";this.townError=null}componentWillLoad(){if(x.user){this.street=x.user.street;this.zip=x.user.zip;this.town=x.user.town}}get el(){return s(this)}};const y=t=>Math.ceil(t/2);const w=t=>Math.ceil(t*.7);const k=(t,i,e=1)=>{if(t.rot&&x.rot){return w((i||t.price)*e)}else if(t.rut&&x.rut){return y((i||t.price)*e)}else{return(i||t.price)*e}};const C=t=>{if(t.rot){return w(t.price)}else if(t.rut&&x.rut){return y(t.price)}else{return t.price}};const $=(t,i,e=1)=>{if(i.rot&&x.rot){return w(t.price*e)}else if(i.rut&&x.rut){return y(t.price*e)}else{return t.price*e}};const S=()=>{if(!x.cart)return{rut:0,rot:0};const t=x.cart.some((t=>t.rut&&t.start_fee));const i=x.cart.some((t=>t.rot&&t.start_fee));const e=x.rut?y(x.options.start_fee):x.options.start_fee*1;const n=x.rot?w(x.options.start_fee):x.options.start_fee*1;if(t&&i){return{rut:e,rot:n,length:2}}else if(t){return{rut:e,rot:0,length:1}}else if(i){return{rut:0,rot:n,length:1}}else{return{rut:0,rot:0,length:0}}};const T=t=>{const i=t.parts.reduce(((t,i)=>t+i.price*i.amount),0);return k(t,t.price*t.amount+i)};const z=()=>{const t=x.cart.reduce(((t,i)=>i.rot?t+T(i):t),0)+S().rot;const i=x.cart.reduce(((t,i)=>{const e=i.parts.reduce(((t,i)=>t+i.price*i.amount),0);return i.rot?t+i.price*i.amount+e:t}),0)+Number(x.options.start_fee);return i-t};const j=()=>{const t=x.cart.reduce(((t,i)=>i.rut?t+T(i):t),0)+S().rut;const i=x.cart.reduce(((t,i)=>{const e=i.parts.reduce(((t,i)=>t+i.price*i.amount),0);return i.rut?t+i.price*i.amount+e:t}),0)+Number(x.options.start_fee);return i-t};const O=()=>x.cart.reduce(((t,i)=>t+T(i)),0)+S().rot+S().rut;const I=t=>t.post_name!==undefined;const N=class{constructor(t){e(this,t);this.post=undefined;this.category=undefined;this.icon=undefined;this.postTitle=undefined}setTaxonomy(t){if(t){if((t===null||t===void 0?void 0:t.taxonomy)==="service_cat"){x.selectedCategory=t;x.step=2}else if((t===null||t===void 0?void 0:t.post_type)==="service"){x.selectedService=t;x.step=3}else if((t===null||t===void 0?void 0:t.post_type)==="ikea_product"){x.selectedProduct=t;x.step=4}const i=this.el.closest(".hemfixarna_content");v(i)}}setProduct(){x.selectedProduct=this.category;x.step=4;x.selectedCustomerCategory=null;const t=this.el.closest(".hemfixarna_content");v(t)}render(){return this.category?n(a,null,I(this.category)?n("li",{onClick:()=>this.setProduct()},n("img",{class:"hemfixarna_logo",height:82,src:this.category.icon,alt:this.category.post_name}),n("div",null,n("p",null,this.category.post_title),n("p",{class:"price"},"Från ",k(this.category),"kr"))):n("li",{onClick:()=>x.selectedCustomerCategory=this.category},n("img",{class:"hemfixarna_logo",height:82,src:this.category.icon,alt:this.category.name}),n("div",null,n("p",null,this.category.name)))):n("li",{onClick:()=>this.setTaxonomy(this.post)},this.post.icon&&n("img",{class:"hemfixarna_logo",height:82,src:this.icon,alt:this.postTitle}),n("div",null,n("p",null,this.postTitle),x.step===3&&n("p",{class:"price"},"Från ",k(this.post),"kr")))}get el(){return s(this)}};const A=class{constructor(t){e(this,t);this.triggerScrollTotop=()=>{const t=this.el.nextSibling;v(t)};this.tree=undefined;this.closeModal=undefined;this.loadFromQuery=false;this.isDemo=false}getCartLength(){return x.cart.reduce(((t,i)=>t+i.amount),0)}handleCartClick(){var t;if((t=x.cart)===null||t===void 0?void 0:t.length){x.step=5;this.triggerScrollTotop()}}handleHomePageClick(){x.step=1;x.parentCategory=null;x.selectedCustomerCategory=null;this.triggerScrollTotop();setTimeout((()=>{x.selectedCategory=null;x.selectedProduct=null;x.selectedService=null}),200)}render(){const t=r(`./assets/hemfixarna.svg`);const i=r(`./assets/close.svg`);const e=r(`./assets/cart.svg`);const s=r(`./assets/back.svg`);return n("div",null,n("div",{class:"hemfixarna_crumbs"},n("div",{class:"hemfixarna_crumbs--links"},n("img",{onClick:()=>this.handleHomePageClick(),src:t,width:110}),!this.loadFromQuery||this.isDemo?n("img",{onClick:()=>this.closeModal(),class:"close",src:i,width:32}):null,n("div",null,n("button",{onClick:()=>this.handleHomePageClick()},"Alla tjänster"))),n("div",{onClick:()=>this.handleCartClick(),class:`cart ${this.getCartLength()>0?"cart_active":""}`},n("img",{src:e,width:24}),n("span",null,this.getCartLength()))),[3,4].includes(x.step)&&!x.customer&&n("button",{class:"hemfixarna_crumbs--back",onClick:()=>{x.step=x.step===4?3:2}},n("img",{width:24,src:s,alt:"back arrow"}),n("span",null,"Se allt ",x.step===4?x.selectedService.post_title:x.selectedCategory.name)),x.parentCategory&&x.step<5&&n("button",{class:"hemfixarna_crumbs--back",onClick:()=>{x.step=1;x.selectedCustomerCategory=x.parentCategory;x.selectedProduct=null}},n("img",{width:24,src:s,alt:"back arrow"}),n("span",null,"Se allt ",x.parentCategory.name)))}get el(){return s(this)}};var F;(function(t){t["kund"]="kund";t["byggmax"]="byggmax";t["skanska"]="skanska";t["string"]="string-furniture";t["hornbach"]="hornbach"})(F||(F={}));var L;(function(t){t["standard"]="standard";t["alternative"]="alternative";t["alternative_2"]="alternative_2";t["alternative_3"]="alternative_3"})(L||(L={}));var M;(function(t){t["byggmax"]="category/bygg"})(M||(M={}));const P="";const B=class{constructor(t){e(this,t);this.tree=null;this.slug=undefined;this.id=undefined;this.forceOldTree=false;this.loadFromQuery=false;this.customer=undefined;this.widgetStyle=L.standard;this.buttonColor=undefined;this.buttonBg=undefined}render(){return n("hemfixarna-component",{forceOldTree:this.forceOldTree,id:this.id,slug:this.slug,business:F.byggmax,topCategory:M.byggmax,loadFromQuery:this.loadFromQuery,widgetStyle:this.widgetStyle,buttonBg:this.buttonBg,buttonColor:this.buttonColor})}};B.style=P;const D=class{constructor(t){e(this,t);this.tree=undefined}render(){const t=r(`./assets/back.svg`);return n("div",{class:"hemfixarna_cart"},n("div",{class:"hemfixarna_cart--left"},n("h2",null,x.checkoutStep===2&&!x.checkoutEdit&&n("button",{onClick:()=>{x.checkoutStep=1}},n("img",{width:24,src:t,alt:"back arrow"})),"Din bokning"),n("hemfixarna-orderrows",{tree:this.tree})),n("div",{class:"hemfixarna_cart--right"},n("h2",null,x.checkoutStep===2&&!x.checkoutEdit&&n("button",{onClick:()=>{x.checkoutStep=1}},n("img",{width:24,src:t,alt:"back arrow"})),"Dina uppgifter"),n("hemfixarna-checkout",null),n("hemfixarna-info",null)))}};const K=class{constructor(t){e(this,t)}setSelectedService(t){x.selectedService=t;x.step=3}render(){return n("div",null,n("h2",null,x.selectedCategory.name),n("div",{class:"hemfixarna_categories--wrapper"},n("div",null,n("ul",{class:"hemfixarna_categories"},x.selectedCategory.services.sort(((t,i)=>t.post_title<i.post_title?-1:1)).map((t=>{var i;return n("hemfixarna-box",{post:t,icon:(i=t.icon.url)!==null&&i!==void 0?i:t.icon,postTitle:t.post_title})})))),n("hemfixarna-info",{list:x.options.trust})))}};const U=`${"https://hemfixarna.se"}/wp-json/headless`;async function J(t,i){const e=await fetch(t,i);const n=await e.json();return n}const R=async t=>{if(!t){return}const i=t.split("/")[0];const e=t.split("/")[1];try{const t=await fetch(`${U}/${i}/${e}`);return await t.json()}catch(t){console.log(t)}};const H=async t=>{try{const i=await fetch(`${U}/customer/${t}`);return await i.json()}catch(t){console.log(t)}};const W=async()=>{try{const t=await fetch(`${U}/webcoptions`);return await t.json()}catch(t){console.log(t)}};const E=async()=>{try{const t=await J(`${U}/rut`);return t}catch(t){console.log(t)}};const X=async()=>{try{const t=await fetch(`${U}/rot`);return await t.json()}catch(t){console.log(t)}};const V=async t=>{try{const i=await fetch(`${U}/weborder`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json"}});return await i.json()}catch(t){console.log(t)}};const Q=`${"https://hemfixarna.se"}/wp-json/felix`;const Y=async t=>{try{return await J(`${Q}/createperson`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json"}})}catch(t){console.log(t)}};const q=class{constructor(t){e(this,t);this.handleChangeDate=t=>{this.dateError=null;this.date=t.target.value};this.handleChangeTerms=()=>{this.generalError=null};this.sendOrder=async()=>{var t,i;if(this.loading)return;this.loading=true;let e={firstName:x.creditSafeUser.firstName,lastName:x.creditSafeUser.lastName,street:x.user.street,zip:x.user.zip,town:x.user.town,ssn:x.user.ssn,email:x.user.email,phone:x.user.phone,url:`${x.business===F.string?"string":x.business}-webk`,date:this.date,products:[...x.cart.map((t=>{const i=t.parts.map((t=>({id:String(t.id),name:t.name,quantity:t.amount,rut:0,rot:0})));return[{id:String(t.id),name:t.name,quantity:t.amount,rot:t.rot?1:0,rut:t.rut?1:0},...i]}))].flat(),creditSafe:x.creditSafeUser,customer:x.business};const n=await Y(e);if(!n||!((i=(t=n.response)===null||t===void 0?void 0:t.scriptResult)===null||i===void 0?void 0:i.includes("OK"))){e=Object.assign(Object.assign({},e),{felixStatus:"error"})}else{e=Object.assign(Object.assign({},e),{felixStatus:"success"})}try{const{data:t,status:i}=await V(e);if(t&&i&&i===200){x.step=6;const t=this.el.closest(".hemfixarna_content");v(t)}else{this.generalError="Något gick fel, försök igen senare"}}catch(t){this.generalError="Något gick fel, försök igen senare"}this.loading=false};this.handleSubmit=t=>{t.preventDefault();this.generalError=null;const i=this.date.length>0;if(!i){this.dateError="Ange ett giltigt datum"}const e=Array.from(this.el.querySelectorAll('input[type="checkbox"]'));const n=e.find((t=>!t.checked));if(n){this.generalError="Du måste godkänna villkoren"}if(i&&!n){this.sendOrder()}};this.render=()=>{const t=r(`./assets/date.svg`);const i=r(`./assets/down.svg`);const e=r(`./assets/spinner.gif`);if(x.checkoutEdit){return n("hemfixarna-address",null)}else if(x.checkoutStep===1){return n("hemfixarna-getuser",null)}else if(x.checkoutStep===2){return n("div",{class:"mb-2"},n("div",{class:"hemfixarna_addressinfo"},n("div",null,n("p",null,b(x.user.firstName)),n("p",null,b(x.user.lastName)),n("p",null,x.user.email),n("p",null,x.user.phone)),n("div",null,n("p",null,b(x.user.street)),n("p",null,b(x.user.zip)),n("p",null,b(x.user.town))),n("button",{onClick:()=>x.checkoutEdit=true},"Behöver du ändra adressen?")),n("form",{onSubmit:t=>this.handleSubmit(t)},n("div",null,n("img",{src:t,width:24}),n("input",{class:`${this.date.length?"input_active":""}`,min:(new Date).toISOString().split("T")[0],onChange:t=>this.handleChangeDate(t),type:"date",name:"date",value:this.date}),n("label",{htmlFor:"date"},"Tidigaste datum för hembesök"),n("img",{src:i,width:24})),this.dateError&&n("span",null,this.dateError),n("label",{class:"hemfixarna_checkbox"},n("input",{onChange:()=>this.handleChangeTerms(),type:"checkbox"}),n("span",{innerHTML:x.options.terms})),x.cart.filter((t=>t.terms_checkout&&t.terms_show_checkbox)).map((t=>n(a,null,n("label",{class:"hemfixarna_checkbox"},n("input",{onChange:()=>this.handleChangeTerms(),type:"checkbox"}),n("span",null,t.terms_checkout))))),this.generalError&&n("span",null,this.generalError),n("div",{class:this.loading?"loading":""},n("input",{type:"submit",value:this.loading?"":"Slutför Bokning"}),n("img",{width:20,height:20,src:e,alt:"spinner"}))))}};this.date="";this.dateError=null;this.generalError=null;this.loading=false}componentWillLoad(){if(Boolean(x.user&&x.user.street)){x.checkoutStep=2}}get el(){return s(this)}};const G='@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600&display=swap"); *{box-sizing:border-box}:host{font-family:"Inter", sans-serif}:host .mb-2{margin-bottom:32px}:host button{color:#474444}:host form{display:flex;flex-direction:column;gap:16px}:host form img{position:absolute;top:50%;transform:translateY(-50%);pointer-events:none}:host form img:first-of-type{left:16px}:host form img:last-of-type{right:16px}:host form span{margin-top:-8px;color:#ec6632}:host form p{text-align:center}:host form p{margin:0}:host form div{position:relative}:host form div label{pointer-events:none;position:absolute;left:16px;top:50%;transform:translateY(-50%);background:#fff;padding:4px;transition:0.2s all cubic-bezier(0.465, 0.183, 0.153, 0.946)}:host form div input{padding:16px;width:100%;font-size:16px;border:1px solid #fcd9c9}:host form div input:focus~label,:host form div .input_active~label{top:0;transform:translateY(-50%);background:linear-gradient(180deg, #fffaf2 50%, #fff 50%)}:host h1{font-size:24px;font-weight:400;line-height:32px;letter-spacing:-3%;text-align:left;margin:0 0 8px}:host h2{margin:0 0 24px;font-weight:700;font-size:20px;line-height:28px;letter-spacing:-3%}:host p{font-size:16px;font-weight:400;line-height:24px;letter-spacing:-3%}:host .hemfixarna{width:100%;}:host .hemfixarna_nav{position:absolute;top:0;width:100dvw;left:0;height:80px;z-index:9999}:host .hemfixarna_nav--links{display:none !important}@media (min-width: 769px){:host .hemfixarna_nav--links{display:flex !important}}:host .hemfixarna_nav--links a{color:#ec6632;text-decoration:none;border:1px solid rgba(255, 255, 255, 0.3);border-radius:56px;padding:8px 32px;text-transform:capitalize}:host .hemfixarna_nav>div{position:relative;overflow:hidden;width:100%;height:100%;display:flex;justify-content:space-between;align-items:center;padding:0 16px}@media (min-width: 769px){:host .hemfixarna_nav>div{padding:0 32px}}:host .hemfixarna_nav>div>div{display:flex;gap:32px;justify-content:space-between}:host .hemfixarna_nav>div>img{position:absolute;width:100%;height:100%;top:0;left:0;z-index:-1}:host .hemfixarna_nav p{color:#fff}:host .hemfixarna_standalone .hemfixarna_backdrop{background:#fffaf2;opacity:1}:host .hemfixarna_standalone .hemfixarna_modal{top:80px;transform:translateX(-50%);border:none;height:calc(100dvh - 80px);opacity:0}:host .hemfixarna_standalone .hemfixarna_modal--open{opacity:1}:host .hemfixarna .switch{position:relative;display:inline-block;width:40px;height:20px}:host .hemfixarna .switch input{opacity:0;width:0;height:0}:host .hemfixarna .slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:0.4s;transition:0.4s;border-radius:34px}:host .hemfixarna .slider:before{position:absolute;content:"";height:18px;width:18px;left:2px;bottom:1px;background-color:white;-webkit-transition:0.4s;transition:0.4s;border-radius:50%}:host .hemfixarna input:checked+.slider{background-color:#fcd9c9}:host .hemfixarna input:focus+.slider{box-shadow:0 0 1px #fcd9c9}:host .hemfixarna input:checked+.slider:before{-webkit-transform:translateX(18px);-ms-transform:translateX(18px);transform:translateX(18px);background:#ec6632}:host .hemfixarna_checkbox{display:grid;grid-template-columns:40px auto;font-size:16px;font-weight:400;line-height:24px;letter-spacing:-3%}:host .hemfixarna_checkbox>span{transform:translateY(6px)}:host .hemfixarna_checkbox span,:host .hemfixarna_checkbox span p{color:#474444;font-size:14px}:host .hemfixarna_checkbox p{text-align:left}:host .hemfixarna_info{display:flex;flex-direction:column;gap:24px;padding:32px;box-shadow:0px 4px 8px 0px rgba(0, 0, 0, 0.0392156863);border-radius:4px;border:1px solid #fcd9c9}:host .hemfixarna_info h2{margin:0}@media (min-width: 769px){:host .hemfixarna_info{position:sticky;top:0}}:host .hemfixarna_infomodal{position:absolute;top:40%;left:50%;transform:translate(-50%, -50%);width:100%;max-width:80%;background:#fffaf2;border:1px solid #fcd9c9;padding:32px;z-index:99;border-radius:4px;box-shadow:0px 4px 8px 0px rgba(0, 0, 0, 0.0392156863);display:flex;flex-direction:column;gap:16px}:host .hemfixarna_infomodal p,:host .hemfixarna_infomodal h4{margin:0}:host .hemfixarna_infomodal button{background:#ec6632;color:#fff;border-radius:60px;font-size:16px;padding:8px 16px}:host .hemfixarna_addressinfo{padding:16px 16px 64px;border:1px solid #fcd9c9;position:relative;margin-bottom:32px;display:grid;grid-template-columns:1fr;gap:8px}@media (min-width: 769px){:host .hemfixarna_addressinfo{grid-template-columns:1fr 1fr}}:host .hemfixarna_addressinfo button{position:absolute;bottom:16px;right:16px;font-weight:500;text-underline-offset:2px;text-decoration:underline}:host .hemfixarna_part{background:#fff;box-shadow:0px 4px 8px 0px rgba(0, 0, 0, 0.0392156863);display:grid;padding:16px;grid-template-columns:auto 75px}:host .hemfixarna_counter{display:flex;align-items:center}:host .hemfixarna_counter span{padding:0 8px}:host .hemfixarna_counter img{cursor:pointer}:host .hemfixarna_counter img:not(.disabled):hover{transition:0.1s all cubic-bezier(0.465, 0.183, 0.153, 0.946);filter:brightness(1.02);transform:scale(1.01);box-shadow:0px 8px 16px 2px rgba(0, 0, 0, 0.0392156863)}:host .hemfixarna_description{display:grid;gap:16px}:host .hemfixarna_description ul{list-style:disc;padding-right:12px;transform:translateX(12px)}:host .hemfixarna_description--hidden{max-height:140px;overflow:hidden;position:relative;cursor:pointer}:host .hemfixarna_description--hidden::after{content:"";position:absolute;bottom:0;left:0;right:0;height:128px;background:linear-gradient(180deg, rgba(255, 253, 250, 0), rgba(255, 253, 250, 0.46) 50%, #fffaf2)}:host .hemfixarna_terms{font-size:14px}:host .hemfixarna_terms a{color:inherit}:host .hemfixarna_logo{height:64px}:host .hemfixarna_box{padding:16px;display:flex;align-items:center;width:100%;box-sizing:border-box;border-radius:4px;gap:16px 8px;border-radius:4px;gap:16px 8px}:host .hemfixarna_box p,:host .hemfixarna_box span{font-size:15px}:host .hemfixarna_box .underline{text-decoration:underline;text-underline-offset:2px}:host .hemfixarna_box .pointer{cursor:pointer}:host .hemfixarna_box .p-s{font-size:12px}:host .hemfixarna_box>div{display:grid;gap:8px}:host .hemfixarna_box--standard{background:#fffaf2;border:1px solid #fcd9c9}:host .hemfixarna_box--alternative,:host .hemfixarna_box--alternative_2,:host .hemfixarna_box--alternative_3{background:transparent;border:1px solid #e3e3e3}:host .hemfixarna_box--alternative_2,:host .hemfixarna_box--alternative_3{box-shadow:0px 2px 16px 0px rgba(0, 0, 0, 0.0784313725)}:host .hemfixarna_box--alternative_3{justify-content:center}:host .hemfixarna_altbtn{display:flex !important;flex-direction:column;gap:8px;align-items:center;margin-left:auto}:host .hemfixarna_btn{margin-left:auto}:host .hemfixarna_btn,:host .hemfixarna_buy,:host .hemfixarna input[type=submit]{border:none;border-radius:60px;font-weight:600;letter-spacing:0.5px;line-height:20px;box-shadow:0px 4px 8px 0px rgba(0, 0, 0, 0.0392156863)}:host .hemfixarna_btn:not(.disabled):hover,:host .hemfixarna_buy:not(.disabled):hover,:host .hemfixarna input[type=submit]:not(.disabled):hover{transition:0.1s all cubic-bezier(0.465, 0.183, 0.153, 0.946);filter:brightness(1.02);transform:scale(1.01);box-shadow:0px 8px 16px 2px rgba(0, 0, 0, 0.0392156863)}:host .hemfixarna div:has(>input[type=submit]){position:relative}:host .hemfixarna div:has(>input[type=submit]) input{cursor:initial}:host .hemfixarna div:has(>input[type=submit]) img{display:none}:host .hemfixarna .loading{cursor:default;opacity:0.6}:host .hemfixarna .loading>img{display:initial !important;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}:host .hemfixarna_btn{font-size:14px;background:#c84e18;color:#fff;padding:16px 24px;white-space:nowrap;position:relative}:host .hemfixarna_btn span{position:absolute;background:#fff;border-radius:100%;width:24px;height:24px;display:flex;justify-content:center;align-items:center;font-weight:600;font-size:13px;line-height:11px;top:-8px;right:-12px}:host .hemfixarna_btn span{background:#25a710;color:#fff;right:0 !important}:host .hemfixarna_buy,:host .hemfixarna input[type=submit]{font-size:21px;background:#25a710;color:#fff;padding:16px 24px}:host .hemfixarna .disabled{opacity:0.5;cursor:default}:host .hemfixarna_modal{position:fixed;background:#fffaf2;border:1px solid #fcd9c9;border-radius:4px;top:50%;left:50%;z-index:1000;transition:0.1s all cubic-bezier(0.465, 0.183, 0.153, 0.946);transform:translate(-50%, -50%) scale(0.7);opacity:0;height:92%;width:92%;max-width:920px;display:flex;flex-direction:column;gap:8px}:host .hemfixarna_modal--open{opacity:1;transform:translate(-50%, -50%) scale(1)}:host .hemfixarna_backdrop{z-index:999;position:fixed;background:#474444;top:0;left:0;bottom:0;right:0;opacity:0;transition:transform 0.1s cubic-bezier(0.465, 0.183, 0.153, 0.946), opacity 0.1s cubic-bezier(0.465, 0.183, 0.153, 0.946)}:host .hemfixarna_backdrop--open{opacity:0.3}:host .hemfixarna_order{position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background-repeat:no-repeat !important;background-size:cover !important;background-position:center !important;display:grid;grid-template-columns:1fr 1fr;padding:48px 32px 64px}@media (max-width: 768px){:host .hemfixarna_order{grid-template-columns:1fr;grid-template-rows:0 auto}}:host .hemfixarna_order>div:last-of-type{background:#fffaf2;padding:32px;display:flex;flex-direction:column;max-height:100%;overflow:auto}:host .hemfixarna_order img{cursor:pointer}:host .hemfixarna_order button{margin:16px 0;padding:0;text-decoration:underline;text-underline-offset:2px;font-size:14px;font-weight:600}:host .hemfixarna_cart{display:grid;grid-template-columns:1fr 1fr;gap:32px}@media (max-width: 768px){:host .hemfixarna_cart{grid-template-columns:1fr;gap:0}}:host .hemfixarna_cart--right h2,:host .hemfixarna_cart--left h2{display:flex;align-items:center}:host .hemfixarna_cart--right h2 img,:host .hemfixarna_cart--left h2 img{margin-top:3.2px}@media (min-width: 769px){:host .hemfixarna_cart--left h2 button{display:none}}@media (max-width: 768px){:host .hemfixarna_cart--right h2 button{display:none}}:host .hemfixarna_cart--startfee{display:flex;justify-content:space-between}:host .hemfixarna_cart--rutrot{display:flex;justify-content:space-between}:host .hemfixarna_cart--rutrot div{display:flex;gap:16px;align-items:center}:host .hemfixarna_cart--additional{display:flex;flex-direction:column;gap:16px;padding:16px;border-top:1px solid #fcd9c9}:host .hemfixarna_cart--additional p{font-size:14px}:host .hemfixarna_cart--additional strong{text-decoration:underline;text-underline-offset:2px;cursor:pointer;position:relative}:host .hemfixarna_cart--additional strong img{position:absolute;top:50%;transform:translateY(-50%);right:-24px}:host .hemfixarna_cart--price{border-top:1px solid #fcd9c9;padding:16px;display:flex;justify-content:space-between}:host .hemfixarna_cart--price h3{margin:0}:host .hemfixarna_cart--item{display:flex;flex-direction:column;gap:8px;padding:16px 0;border-top:1px solid #fcd9c9}:host .hemfixarna_cart--item>div{display:flex;justify-content:space-between}:host .hemfixarna_cart--item>div>div{display:flex;align-items:center;gap:16px}:host .hemfixarna_cart--item>div button{color:#ec6632}:host .hemfixarna_categories{display:grid;gap:24px}:host .hemfixarna_categories--wrapper{gap:32px;display:grid;grid-template-columns:1fr 1fr}@media (max-width: 768px){:host .hemfixarna_categories--wrapper{grid-template-columns:1fr}}:host .hemfixarna_categories li{position:relative;background:#fff;border-radius:4px;min-height:132px;padding:24px;box-shadow:0px 4px 8px 0px rgba(0, 0, 0, 0.0392156863);display:flex;align-items:center;gap:24px;cursor:pointer}:host .hemfixarna_categories li:hover{transition:0.1s all cubic-bezier(0.465, 0.183, 0.153, 0.946);filter:brightness(1.02);transform:scale(1.01);box-shadow:0px 8px 16px 2px rgba(0, 0, 0, 0.0392156863)}:host .hemfixarna_categories li>button{height:100%;width:100%}:host .hemfixarna_categories li .price{font-weight:700}:host .hemfixarna_content{height:100%;overflow:auto;padding:0 32px 64px}:host .hemfixarna_content--5{padding-top:16px}:host .hemfixarna_crumbs{position:relative;padding:16px 24px;border-bottom:1px solid #fcd9c9;display:flex;justify-content:space-between}:host .hemfixarna_crumbs--back{padding:16px 24px 8px;display:flex;align-items:center;gap:8px;box-shadow:none !important}:host .hemfixarna_crumbs--back:hover{transition:0.1s all cubic-bezier(0.465, 0.183, 0.153, 0.946);filter:brightness(1.02);transform:scale(1.01);box-shadow:0px 8px 16px 2px rgba(0, 0, 0, 0.0392156863)}:host .hemfixarna_crumbs img{cursor:pointer}:host .hemfixarna_crumbs .close{position:absolute;right:-16px;top:-16px;z-index:9}:host .hemfixarna_crumbs .cart{padding-left:16px;position:relative}:host .hemfixarna_crumbs .cart img{cursor:inherit}:host .hemfixarna_crumbs .cart span{position:absolute;background:#fff;border-radius:100%;width:24px;height:24px;display:flex;justify-content:center;align-items:center;font-weight:600;font-size:13px;line-height:11px;top:-8px;right:-12px}:host .hemfixarna_crumbs .cart_active{cursor:pointer}:host .hemfixarna_crumbs .cart_active span{background:#25a710;color:#fff}:host .hemfixarna_crumbs--links{display:flex;align-items:center;gap:16px;overflow:auto}@media (min-width: 769px){:host .hemfixarna_crumbs--links{-ms-overflow-style:none}:host .hemfixarna_crumbs--links::-webkit-scrollbar{display:none}:host .hemfixarna_crumbs--links::-webkit-scrollbar-button{display:none}}:host .hemfixarna_crumbs button{white-space:nowrap;background:#f1ded6;border-radius:64px;padding:12px 16px;font-size:12px;font-weight:600;letter-spacing:0.3px;box-shadow:none !important}:host .hemfixarna_crumbs button:not(.active):hover{transition:0.1s all cubic-bezier(0.465, 0.183, 0.153, 0.946);filter:brightness(1.02);transform:scale(1.01);box-shadow:0px 8px 16px 2px rgba(0, 0, 0, 0.0392156863)}:host .hemfixarna_crumbs .active{background:#fffaf2;cursor:default}:host .hemfixarna_features{gap:12px !important}:host .hemfixarna_features li{display:flex;gap:16px;align-items:center}:host .hemfixarna_address{margin-bottom:16px}:host .hemfixarna_product{display:grid;gap:16px}:host .hemfixarna_product--link{font-weight:700;color:#474444;text-underline-offset:4px}:host .hemfixarna_product--left{gap:32px}:host .hemfixarna_product--right{gap:32px}:host .hemfixarna_product--price{margin-top:4px;font-weight:700}:host .hemfixarna_product--total{text-align:center;margin:-16px 0;font-size:21px;line-height:28px}:host .hemfixarna_product--item{background:#fff;padding:16px;display:grid;grid-template-columns:auto 75px;box-shadow:0px 4px 8px 0px rgba(0, 0, 0, 0.0392156863)}:host .hemfixarna_product--grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}@media (max-width: 768px){:host .hemfixarna_product--grid{grid-template-columns:1fr}}:host .hemfixarna_product--grid>div{display:flex;flex-direction:column}:host .hemfixarna_product--grid ul{display:flex;flex-direction:column;gap:4px}:host .hemfixarna_product p{margin:0}:host .hemfixarna_product--top{display:flex;gap:32px}:host .hemfixarna_product--top>div{width:100%}:host .hemfixarna_product--top>div h1{max-width:80%}@media (max-width: 768px){:host .hemfixarna_product--top>div h1{max-width:100%}}:host .hemfixarna_product--top h4{margin-bottom:8px}:host h5,:host p{margin:0}:host input[type=submit]{cursor:pointer}:host input[type=date]~label{left:56px}:host input[type=date]{border:1px solid #fcd9c9;padding-left:64px}:host input[type=checkbox]{height:18px;width:18px;border:1px solid #fcd9c9}:host input[type=checkbox]:checked{background:red}:host input[type=date]::-webkit-calendar-picker-indicator{background:transparent;bottom:0;color:transparent;cursor:pointer;height:auto;left:0;position:absolute;right:0;top:0;width:auto}:host button,:host a{cursor:pointer;background:none;border:none}:host ul{list-style:none;margin:0;padding:0}';const Z=class{constructor(t){e(this,t);this.slugIsOldFormat=t=>{if(!t)return false;return["product","service","category"].some((i=>t.includes(i)))};this.triggerScrollTotop=()=>{const t=this.el.shadowRoot.querySelector(".hemfixarna_content");v(t)};this.modal=false;this.showModal=false;this.tree=null;this.product=null;this.proppedProduct=null;this.slug=undefined;this.id=undefined;this.business=undefined;this.topCategory=undefined;this.forceOldTree=false;this.loadFromQuery=false;this.isDemo=false;this.widgetStyle=undefined;this.nav=undefined;this.buttonColor=undefined;this.buttonBg=undefined}loadCategoryOrProduct(t){this.proppedProduct=null;if(t.startsWith("c-")){const i=[...x.customer.categories,...x.customer.categories.map((t=>{var i;return(i=t.sub_categories)!==null&&i!==void 0?i:[]}))].flat();const e=i.find((i=>i&&i.id===t.replace("c-","")));if(e){x.selectedCustomerCategory=e;x.step=2}}else{const i=x.customer.categories.map((t=>t.show_products?t.products:t.sub_categories?t.sub_categories.map((t=>t.products)):[])).flat().flat();const e=i.find((i=>i&&i.fields.ID===parseInt(t)));if(e){x.selectedProduct=e.fields;x.step=4;this.proppedProduct=e.fields}}}async watchSlugChange(t){if(this.slugIsOldFormat(t)){this.fetchNewTaxonomy(t)}else if(x.customer&&t){this.loadCategoryOrProduct(t)}}async watchIdChange(t){if(t&&x.customer){this.loadCategoryOrProduct(t)}}async fetchNewTaxonomy(t){x.selectedCategory=null;x.selectedProduct=null;x.selectedService=null;const i=await R(t);if((i===null||i===void 0?void 0:i.code)==="not_found"||(i===null||i===void 0?void 0:i.code)==="rest_no_route"){console.log("taxonomy not found")}else if(i){this.setTaxonomy(i);if((i===null||i===void 0?void 0:i.post_type)==="ikea_product"){this.product=i}}}async componentWillLoad(){x.business=this.business;const t=window.sessionStorage.getItem(`hemfixarna-${this.business}-cart`);if(t){x.cart=JSON.parse(t)}const i=window.sessionStorage.getItem(`hemfixarna-${this.business}-user`);if(i){x.user=JSON.parse(i)}const e=window.sessionStorage.getItem(`hemfixarna-${this.business}-creditSafeUser`);if(e){x.creditSafeUser=JSON.parse(e)}const[n,s,a,r,o]=await Promise.all([this.topCategory?R(this.topCategory):null,this.slug?R(this.slug):Promise.resolve(null),W(),E(),X()]);if((!this.slug||!this.slugIsOldFormat(this.slug))&&!this.forceOldTree){try{const t=await H(this.business);if((t===null||t===void 0?void 0:t.code)==="not_found"){console.warn("customer not found")}else if(t){x.customer=t;if(this.id){this.loadCategoryOrProduct(this.id)}else if(this.slug&&!this.slugIsOldFormat(this.slug)){this.loadCategoryOrProduct(this.slug)}}}catch(t){console.warn("customer not found")}}if((n===null||n===void 0?void 0:n.code)==="not_found");else if(n){this.tree=n}if((s===null||s===void 0?void 0:s.code)==="not_found"){console.log("taxonomy not found")}else if(s){this.setTaxonomy(s);if((s===null||s===void 0?void 0:s.post_type)==="ikea_product"){this.product=s}}if(this.loadFromQuery){const t=new URL(document.location.toString()).searchParams;this.id=t.get("id");if(!this.isDemo){this.openModal()}}x.rotOptions=o;x.rutOptions=r;x.options=a}setTaxonomy(t){if(t){if((t===null||t===void 0?void 0:t.taxonomy)==="service_cat"){x.selectedCategory=t;x.step=2}else if((t===null||t===void 0?void 0:t.post_type)==="service"){x.selectedService=t;x.selectedCategory=this.tree.sub_cats.find((i=>i.services.find((i=>i.ID===t.ID))));x.step=3}else if((t===null||t===void 0?void 0:t.post_type)==="ikea_product"){x.selectedProduct=t;x.selectedService=this.tree.sub_cats.map((t=>t.services)).flat().find((t=>t.products.find((t=>t.ID===x.selectedProduct.ID))));x.selectedCategory=this.tree.sub_cats.find((t=>t.services.find((t=>t.ID===x.selectedService.ID))));x.step=4}this.triggerScrollTotop()}}openModal(){this.modal=true;setTimeout((()=>{this.showModal=true}),50)}closeModal(){this.showModal=false;setTimeout((()=>{this.modal=false}),200)}handleClick(t){if(this.loadFromQuery&&!this.isDemo)return;const i=this.el.shadowRoot.querySelector(".hemfixarna_modal");if(i){const e=i.contains(t.composedPath()[0]);if(!e){this.closeModal()}}const e=this.el.shadowRoot.querySelector(".hemfixarna_infomodal");if(e){const i=e.contains(t.composedPath()[0]);if(!i){x.modal=null}}}getCartLength(){return x.cart.reduce(((t,i)=>t+i.amount),0)}render(){var t,i,e,s,a,o,l,h,c,u,d;const p=r(`./assets/hemfixarna.svg`);const f=r(`./assets/montering.svg`);const m=((t=this.nav)===null||t===void 0?void 0:t.background)?r(this.nav.background):"";const g=((i=this.nav)===null||i===void 0?void 0:i.logo)?r(this.nav.logo):"";return n("div",{class:`hemfixarna ${this.loadFromQuery?"hemfixarna_standalone":""}`},this.loadFromQuery&&!this.isDemo&&this.nav?n("nav",{class:"hemfixarna_nav"},n("div",null,n("div",{class:"hemfixarna_nav--logos"},n("a",{href:this.nav.url,target:"_blank"},n("img",{src:g,alt:`${this.business} logo`})),n("a",{href:"https://hemfixarna.se/",target:"_blank"},n("p",null,"I samarbete med:"),n("img",{src:p,alt:"hemfixarna_logo",width:104}))),n("div",{class:"hemfixarna_nav--links"},n("a",{href:this.nav.url,target:"_blank"},"Till ",this.business),n("a",{href:"https://www.hemfixarna.se/",target:"_blank"},"Till Hemfixarna")),n("img",{src:m,alt:"nav_background"}))):null,!this.loadFromQuery||this.isDemo?n("div",{class:`hemfixarna_box hemfixarna_box--${this.widgetStyle}`},[L.alternative_2,L.alternative_3].includes(this.widgetStyle)?n("img",{src:f,alt:"montering logo",width:32,height:32}):null,n("div",null,n("div",null,n("p",{onClick:()=>this.openModal(),class:`pointer ${[L.alternative_2,L.alternative_3].includes(this.widgetStyle)&&x.selectedProduct?"underline":""}`},((e=this.product)===null||e===void 0?void 0:e.post_title)||((s=this.proppedProduct)===null||s===void 0?void 0:s.post_title)||n("span",null,"Montering",n("wbr",null),"/Installation ",(o=(a=x.selectedCustomerCategory)===null||a===void 0?void 0:a.name)!==null&&o!==void 0?o:"på plats"," - ",n("strong",{class:"underline"},"se priser här")),this.product&&((l=this.slug)===null||l===void 0?void 0:l.includes("product"))||this.proppedProduct?n("span",null," från"," ",n("strong",null,C(this.proppedProduct||this.product),"kr")):null)),this.widgetStyle===L.standard?n("img",{src:p,width:104}):null,this.widgetStyle===L.alternative?n("span",{class:"p-s"},"Utförs av ",n("strong",null,"Hemfixarna")):null),[L.standard,L.alternative].includes(this.widgetStyle)?n("button",{onClick:()=>this.openModal(),class:"hemfixarna_btn",style:{color:((h=this.buttonColor)===null||h===void 0?void 0:h.startsWith("#"))||!((c=this.buttonColor)===null||c===void 0?void 0:c.length)?this.buttonColor:`#${this.buttonColor}`,backgroundColor:((u=this.buttonBg)===null||u===void 0?void 0:u.startsWith("#"))||!((d=this.buttonBg)===null||d===void 0?void 0:d.length)?this.buttonBg:`#${this.buttonBg}`}},"Beställ här",this.getCartLength()>0&&n("span",null,this.getCartLength())):null,L.alternative_2===this.widgetStyle?n("div",{class:"hemfixarna_altbtn"},n("strong",{class:"p-s"},"Utförs av"),n("img",{src:p,alt:"hemfixarna logo",width:98})):null):null,this.modal&&n("div",null,n("div",{class:`hemfixarna_modal ${this.showModal?"hemfixarna_modal--open":""}`},x.modal&&n("div",{class:"hemfixarna_infomodal"},x.modal.title&&n("h2",null,x.modal.title),x.modal.text.map((t=>n("p",{innerHTML:t}))),n("div",null,n("button",{onClick:()=>x.modal=null},"Stäng"))),(this.tree||x.customer)&&n("hemfixarna-breadcrumbs",{isDemo:this.isDemo,loadFromQuery:this.loadFromQuery,closeModal:()=>this.closeModal(),tree:this.tree}),!x.customer||this.slugIsOldFormat(this.slug)?n("div",{class:`hemfixarna_content hemfixarna_content--${x.step}`},x.step===1&&this.tree&&n("hemfixarna-start",{tree:this.tree}),x.step===2&&x.selectedCategory&&n("hemfixarna-category",null),x.step===3&&x.selectedService&&n("hemfixarna-service",null),x.step===4&&x.selectedProduct&&n("hemfixarna-product",null),x.step===5&&n("hemfixarna-cart",{tree:this.tree}),x.step===6&&n("hemfixarna-order",{tree:this.tree})):n("div",{class:`hemfixarna_content hemfixarna_content--${x.step}`},x.step<4&&n("hemfixarna-start",null),x.step===4&&x.selectedProduct&&n("hemfixarna-product",null),x.step===5&&n("hemfixarna-cart",{tree:this.tree}),x.step===6&&n("hemfixarna-order",{tree:this.tree}))),!this.isDemo?n("div",{class:`hemfixarna_backdrop ${this.showModal?"hemfixarna_backdrop--open":""}`}):null))}static get assetsDirs(){return["assets"]}get el(){return s(this)}static get watchers(){return{slug:["watchSlugChange"],id:["watchIdChange"]}}};Z.style=G;const tt='@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600&display=swap"); :host{font-family:"Inter", sans-serif}:host .hemfixarna_widgetstyles label{cursor:pointer}:host .hemfixarna_widgetstyles>div{display:flex;gap:1rem}:host .hemfixarna_widgetstyles h5{margin:1rem 0}:host .hemfixarna_example{margin-bottom:16px;background:#000;padding:16px;color:#fff;display:flex;justify-content:space-between;cursor:pointer;max-width:500px;box-sizing:border-box;position:relative}:host .hemfixarna_example--tooltip{background:#000;top:-48px;font-size:16px;left:40%;color:white;padding:8px;position:absolute;opacity:0}:host .hemfixarna_example--tooltip::after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#000 transparent transparent transparent}:host .hemfixarna_example:hover .hemfixarna_example--tooltip{opacity:1}:host .hemfixarna_example p{font-size:14px}:host .hemfixarna_example img{filter:invert(1)}:host .hemfixarna_install{display:grid;gap:8px;margin-top:16px}:host .hemfixarna_product--label{background:#e1e0f5}:host .hemfixarna_categories{max-height:100%;overflow:auto;position:relative}:host .hemfixarna_categories--label{display:flex;align-items:center;justify-content:space-between;padding:8px}:host .hemfixarna_categories--label button{background:#3f3a92;border:none;font-weight:600;padding:3.2px 9.6px;border-radius:10px;margin-right:8px;color:#ece8e8}:host .hemfixarna_categories--label button:active{transform:scale(0.95)}:host .hemfixarna_categories--label--big{font-weight:600;border-bottom:1px solid black}:host p{margin:0}:host span{color:darkolivegreen;font-size:10px}:host button{cursor:pointer}:host>div{display:grid;gap:32px;width:100%;grid-template-columns:1fr 1fr;height:100vh;place-items:center;overflow:hidden;padding:16px 32px;box-sizing:border-box}:host>div>*{width:100%}:host>div>div{max-width:500px}:host>div ul{margin:0;padding:0;list-style:none}:host>div ul ul{gap:1px;display:grid}:host>div ul li{padding-left:16px;background:#fff}';const it=class{constructor(t){e(this,t);this.debounce=null;this.cdnLink='<script type="module" src="https://cdn.jsdelivr.net/npm//hemfixarna-web-components@latest/dist/hemfixarna-components/hemfixarna-components.esm.js"><\/script>';this.selectedSlug=undefined;this.selectedID=undefined;this.tooltipText="Kopiera till urklipp";this.tree=null;this.customer=null;this.widgetStyle=L.standard;this.buttonBg="";this.buttonColor="";this.colorAccessibility=undefined}debouncedFunction(){if(this.debounce!==null){clearTimeout(this.debounce);this.debounce=null}this.debounce=window.setTimeout((()=>{this.checkColorAccessibility();this.debounce=null}),1500)}async checkColorAccessibility(){const t="#fff";const i="#c84e18";const e=this.buttonBg.length?this.buttonBg.startsWith("#")?this.buttonBg:`#${this.buttonBg}`:i;const n=this.buttonColor.length?this.buttonColor.startsWith("#")?this.buttonColor:`#${this.buttonColor}`:t;fetch("https://www.aremycolorsaccessible.com/api/are-they",{mode:"cors",method:"POST",body:JSON.stringify({colors:[e,n]})}).then((t=>t.json())).then((t=>{console.log(t);if(t&&t){this.colorAccessibility=t}}))}getTopLevelCategory(){switch("byggmax"){case F.byggmax:return M.byggmax;default:return""}}getColor(t){switch(t){case"AAA":return"green";case"AA":return"orange";case"A":return"yellow";case"Fail":return"red";default:return"black"}}async componentWillLoad(){if(process.env.FORCE_OLD_TREE){const t=await R(this.getTopLevelCategory());if((t===null||t===void 0?void 0:t.code)==="not_found");else if(t){this.tree=t}}else{const t=await H("byggmax");if(t.code!=="not_found"&&t){this.customer=t}}}getExample(){return`<hemfixarna-${"byggmax"}${this.selectedSlug?` slug="${this.selectedSlug}" `:""}${this.selectedID?` id="${this.selectedID}" `:""} ${this.widgetStyle===L.standard?"":`widgetStyle="${this.widgetStyle}"`} ${this.buttonColor.length?`buttonColor="${this.buttonColor}"`:""} ${this.buttonBg.length?`buttonBg="${this.buttonBg}"`:""}></hemfixarna-${"byggmax"}>`}copyExample(){navigator.clipboard.writeText(this.getExample());this.tooltipText="Snippet kopierad";setTimeout((()=>{this.tooltipText="Kopiera till urklipp"}),2e3)}copyCdn(){navigator.clipboard.writeText(this.cdnLink);this.tooltipText="Text kopierad";setTimeout((()=>{this.tooltipText="Kopiera till urklipp"}),2e3)}copyNpmInstall(){navigator.clipboard.writeText("npm i hemfixarna-web-components");this.tooltipText="Text kopierad";setTimeout((()=>{this.tooltipText="Kopiera till urklipp"}),2e3)}render(){const t=r(`./assets/copy.png`);return n("div",null,n("div",null,n("div",{onClick:()=>this.copyExample(),class:"hemfixarna_example"},n("p",null,this.getExample()),n("img",{src:t,height:20}),n("span",{class:"hemfixarna_example--tooltip"},this.tooltipText)),"byggmax"===F.byggmax&&n("hemfixarna-byggmax",{buttonColor:this.buttonColor,buttonBg:this.buttonBg,widgetStyle:this.widgetStyle,forceOldTree:Boolean(process.env.FORCE_OLD_TREE),slug:this.selectedSlug,id:this.selectedID}),"byggmax"===F.skanska&&n("hemfixarna-skanska",{buttonColor:this.buttonColor,buttonBg:this.buttonBg,widgetStyle:this.widgetStyle,id:this.selectedID}),"byggmax"===F.string&&n("hemfixarna-string-furniture",{buttonColor:this.buttonColor,buttonBg:this.buttonBg,widgetStyle:this.widgetStyle,id:this.selectedID}),"byggmax"===F.hornbach&&n("hemfixarna-hornbach",{buttonColor:this.buttonColor,buttonBg:this.buttonBg,widgetStyle:this.widgetStyle,isDemo:true,id:this.selectedID}),"byggmax"===F.kund&&n("hemfixarna-kund",{buttonColor:this.buttonColor,buttonBg:this.buttonBg,widgetStyle:this.widgetStyle,id:this.selectedID}),n("div",{class:"hemfixarna_install"},n("div",{onClick:()=>this.copyCdn(),class:"hemfixarna_example"},n("p",null,this.cdnLink),n("span",{class:"hemfixarna_example--tooltip"},this.tooltipText),n("img",{src:t,height:20}))),n("div",{class:"hemfixarna_widgetstyles"},n("h5",null,"Widget styles"),n("div",null,Object.values(L).map((t=>n("label",{key:t},n("input",{type:"radio",value:t,checked:this.widgetStyle===t,onChange:()=>this.widgetStyle=t}),t)))),n("div",null,n("div",null,n("h5",null,"Button background color"),n("input",{type:"text",value:this.buttonBg,onInput:t=>this.buttonBg=t.target.value})),n("div",null,n("h5",null,"Button text color"),n("input",{type:"text",value:this.buttonColor,onInput:t=>this.buttonColor=t.target.value})))),n("span",null,"Write an hexa code no # needed"),this.colorAccessibility?n("div",null,n("h5",null,"Tillgänglighetsrapport"),n("div",null,n("strong",null,"Liten text:"),n("span",{style:{color:this.getColor(this.colorAccessibility.small)}},this.colorAccessibility.small),n("br",null),n("strong",null,"Fet text:"),n("span",{style:{color:this.getColor(this.colorAccessibility.bold)}},this.colorAccessibility.bold),n("br",null),n("strong",null,"Stor text:"),n("span",{style:{color:this.getColor(this.colorAccessibility.large)}},this.colorAccessibility.large),n("br",null),n("strong",null,"Kontrastförhållande:")," ",this.colorAccessibility.contrast)):null),n("ul",{class:"hemfixarna_categories"},this.customer?n("div",null,this.customer.categories.map((t=>n("li",null,n("div",{class:"hemfixarna_categories--label hemfixarna_categories--label--big"},n("div",null,n("p",null,t.name),n("span",null,`c-${t.id}`)),n("div",null,n("button",{onClick:()=>navigator.clipboard.writeText(`c-${t.id}`)},"Kopiera ID"),n("button",{onClick:()=>this.selectedID=`c-${t.id}`},"Ladda kategori"))),t.show_products&&t.products?n("ul",null,t.products.map((t=>n("li",null,n("div",{class:"hemfixarna_categories--label hemfixarna_product--label"},n("div",null,n("p",null,t.fields.post_title),n("span",null,t.fields.ID)),n("div",null,n("button",{onClick:()=>navigator.clipboard.writeText(String(t.fields.ID))},"Kopiera ID"),n("button",{onClick:()=>this.selectedID=String(t.fields.ID)},"Ladda produkt"))))))):n("ul",null,t.sub_categories&&t.sub_categories.map((t=>n("li",null,n("div",{class:"hemfixarna_categories--label"},n("div",null,n("p",null,t.name),n("span",null,`c-${t.id}`)),n("div",null,n("button",{onClick:()=>navigator.clipboard.writeText(`c-${t.id}`)},"Kopiera ID"),n("button",{onClick:()=>this.selectedID=`c-${t.id}`},"Ladda kategori"))),n("ul",null,t.products.map((t=>n("li",null,n("div",{class:"hemfixarna_categories--label hemfixarna_product--label"},n("div",null,n("p",null,t.fields.post_title),n("span",null,t.fields.ID)),n("div",null,n("button",{onClick:()=>navigator.clipboard.writeText(String(t.fields.ID))},"Kopiera ID"),n("button",{onClick:()=>this.selectedID=String(t.fields.ID)},"Ladda produkt"))))))))))))))):this.tree?n("div",null,this.tree.sub_cats.map((t=>n("li",null,n("div",{class:"hemfixarna_categories--label hemfixarna_categories--label--big"},n("div",null,n("p",null,t.name),n("span",null,`category/${t.slug}`)),n("div",null,n("button",{onClick:()=>navigator.clipboard.writeText(`category/${t.slug}`)},"Kopiera slug"),n("button",{onClick:()=>this.selectedSlug=`category/${t.slug}`},"Ladda kategori"))),n("ul",null,t.services.map((t=>n("li",null,n("div",{class:"hemfixarna_categories--label"},n("div",null,n("p",null,t.post_title),n("span",null,`service/${t.post_name}`)),n("div",null,n("button",{onClick:()=>navigator.clipboard.writeText(`service/${t.post_name}`)},"Kopiera slug"),n("button",{onClick:()=>this.selectedSlug=`service/${t.post_name}`},"Ladda kategori"))),n("ul",null,t.products.map((t=>n("li",null,n("div",{class:"hemfixarna_categories--label"},n("div",null,n("p",null,t.post_title),n("span",null,`product/${t.post_name}`)),n("div",null,n("button",{onClick:()=>navigator.clipboard.writeText(`product/${t.post_name}`)},"Kopiera slug"),n("button",{onClick:()=>this.selectedSlug=`product/${t.post_name}`},"Ladda kategori"))))))))))))))):null))}static get watchers(){return{buttonBg:["debouncedFunction"],buttonColor:["debouncedFunction"]}}};it.style=tt;var et=class extends Error{constructor(){super("Invalid swedish personal identity number")}};var nt=(t,i)=>{const e=t.getTime()-i.getTime();return e<0?-1:e>0?1:e};var st=(t,i)=>{const e=nt(t,i);const n=Math.abs(t.getFullYear()-i.getFullYear());t.setFullYear(t.getFullYear()-e*n);const s=nt(t,i)===-e;const a=e*(n-+s);return a===0?0:a};var at=t=>{let i=0;t+="";for(let e=0,n=t.length;e<n;e++){let n=parseInt(t[e]);n*=2-e%2;if(n>9){n-=9}i+=n}return Math.ceil(i/10)*10-i};var rt=(t,i,e)=>{i-=1;const n=new Date(t,i,e);return!(n.getFullYear()!==t||n.getMonth()!==i||n.getDate()!==e)};var ot=class{constructor(t,i){this._century="";this._fullYear="";this._year="";this._month="";this._day="";this._sep="";this._num="";this._check="";this.parse(t,{allowCoordinationNumber:true,allowInterimNumber:false,...i})}get century(){return this._century}get fullYear(){return this._fullYear}get year(){return this._year}get month(){return this._month}get day(){return this._day}get sep(){return this._sep}get num(){return this._num}get check(){return this._check}static parse(t,i){return new ot(t,i)}static valid(t,i){try{ot.parse(t,i);return true}catch(t){return false}}parse(t,i){if(t.length<10||t.length>13){throw new et}const e=/^(\d{2}){0,1}(\d{2})(\d{2})(\d{2})([+-]?)((?!000)\d{3}|[TRSUWXJKLMN]\d{2})(\d)$/;const n=e.exec(t);if(!n){throw new et}const s=n[1];const a=n[2];const r=n[3];const o=n[4];const l=n[5];const h=n[6];const c=n[7];if(typeof s==="undefined"||!s.length){const t=new Date;let i=0;if(l==="+"){this._sep="+";i=t.getFullYear()-100}else{this._sep="-";i=t.getFullYear()}this._century=(""+(i-(i-parseInt(a))%100)).substr(0,2)}else{this._century=s;if((new Date).getFullYear()-parseInt(s+a,10)<100){this._sep="-"}else{this._sep="+"}}this._year=a;this._fullYear=this._century+a;this._month=r;this._day=o;this._num=h;this._check=c;if(!this.valid()){throw new et}if(!(i==null?void 0:i.allowCoordinationNumber)&&this.isCoordinationNumber()){throw new et}if(!(i==null?void 0:i.allowInterimNumber)&&this.isInterimNumber()){throw new et}}valid(){const t=at(this.year+this.month+this.day+this.num.replace(/[TRSUWXJKLMN]/,"1"))===+this.check&&!!this.check;if(t&&rt(parseInt(this.century+this.year),+this.month,+this.day)){return t}return t&&rt(parseInt(this.century+this.year),+this.month,+this.day-60)}format(t=false){if(t){return`${this.century}${this.year}${this.month}${this.day}${this.num}${this.check}`}return`${this.year}${this.month}${this.day}${this.sep}${this.num}${this.check}`}getAge(){const t=this.getDate();return st(new Date(Date.now()),t)}getDate(){let t=+this.day;if(this.isCoordinationNumber()){t-=60}const i=this.century+this.year+"-"+this.month+"-"+(t<10?"0"+t:t);return new Date(i)}isInterimNumber(){return/[TRSUWXJKLMN]/.test(this.num[0])}isCoordinationNumber(){return rt(parseInt(this.century+this.year),+this.month,+this.day-60)}isFemale(){return!this.isMale()}isMale(){const t=parseInt(this.num.substr(-1));return t%2===1}};var lt=ot;function ht(t,i,e){return e={path:i,exports:{},require:function(t,i){return ct()}},t(e,e.exports),e.exports}function ct(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var ut=ht((function(t,i){Object.defineProperty(i,"__esModule",{value:true});i.utf8=void 0;i.utf8={encode:e,decode:n};function e(t){t=t.replace(/\r\n/g,"\n");var i="";for(var e=0;e<t.length;e++){var n=t.charCodeAt(e);if(n<128){i+=String.fromCharCode(n)}else if(n>127&&n<2048){i+=String.fromCharCode(n>>6|192);i+=String.fromCharCode(n&63|128)}else{i+=String.fromCharCode(n>>12|224);i+=String.fromCharCode(n>>6&63|128);i+=String.fromCharCode(n&63|128)}}return i}function n(t){var i="";var e=0;var n=0;var s=0;var a=0;while(e<t.length){n=t.charCodeAt(e);if(n<128){i+=String.fromCharCode(n);e++}else if(n>191&&n<224){s=t.charCodeAt(e+1);i+=String.fromCharCode((n&31)<<6|s&63);e+=2}else{s=t.charCodeAt(e+1);a=t.charCodeAt(e+2);i+=String.fromCharCode((n&15)<<12|(s&63)<<6|a&63);e+=3}}return i}}));var dt=ht((function(t,i){Object.defineProperty(i,"__esModule",{value:true});i.generate=void 0;function e(t){var i=[];var e;var n;var a;var r;var o;var l;var m;var x;var g;var b=7;var v=12;var _=17;var y=22;var w=5;var k=9;var C=14;var $=20;var S=4;var T=11;var z=16;var j=23;var O=6;var I=10;var N=15;var A=21;var F=ut.utf8.encode(t);i=p(F);l=1732584193;m=4023233417;x=2562383102;g=271733878;for(e=0;e<i.length;e+=16){n=l;a=m;r=x;o=g;l=h(l,m,x,g,i[e+0],b,3614090360);g=h(g,l,m,x,i[e+1],v,3905402710);x=h(x,g,l,m,i[e+2],_,606105819);m=h(m,x,g,l,i[e+3],y,3250441966);l=h(l,m,x,g,i[e+4],b,4118548399);g=h(g,l,m,x,i[e+5],v,1200080426);x=h(x,g,l,m,i[e+6],_,2821735955);m=h(m,x,g,l,i[e+7],y,4249261313);l=h(l,m,x,g,i[e+8],b,1770035416);g=h(g,l,m,x,i[e+9],v,2336552879);x=h(x,g,l,m,i[e+10],_,4294925233);m=h(m,x,g,l,i[e+11],y,2304563134);l=h(l,m,x,g,i[e+12],b,1804603682);g=h(g,l,m,x,i[e+13],v,4254626195);x=h(x,g,l,m,i[e+14],_,2792965006);m=h(m,x,g,l,i[e+15],y,1236535329);l=c(l,m,x,g,i[e+1],w,4129170786);g=c(g,l,m,x,i[e+6],k,3225465664);x=c(x,g,l,m,i[e+11],C,643717713);m=c(m,x,g,l,i[e+0],$,3921069994);l=c(l,m,x,g,i[e+5],w,3593408605);g=c(g,l,m,x,i[e+10],k,38016083);x=c(x,g,l,m,i[e+15],C,3634488961);m=c(m,x,g,l,i[e+4],$,3889429448);l=c(l,m,x,g,i[e+9],w,568446438);g=c(g,l,m,x,i[e+14],k,3275163606);x=c(x,g,l,m,i[e+3],C,4107603335);m=c(m,x,g,l,i[e+8],$,1163531501);l=c(l,m,x,g,i[e+13],w,2850285829);g=c(g,l,m,x,i[e+2],k,4243563512);x=c(x,g,l,m,i[e+7],C,1735328473);m=c(m,x,g,l,i[e+12],$,2368359562);l=u(l,m,x,g,i[e+5],S,4294588738);g=u(g,l,m,x,i[e+8],T,2272392833);x=u(x,g,l,m,i[e+11],z,1839030562);m=u(m,x,g,l,i[e+14],j,4259657740);l=u(l,m,x,g,i[e+1],S,2763975236);g=u(g,l,m,x,i[e+4],T,1272893353);x=u(x,g,l,m,i[e+7],z,4139469664);m=u(m,x,g,l,i[e+10],j,3200236656);l=u(l,m,x,g,i[e+13],S,681279174);g=u(g,l,m,x,i[e+0],T,3936430074);x=u(x,g,l,m,i[e+3],z,3572445317);m=u(m,x,g,l,i[e+6],j,76029189);l=u(l,m,x,g,i[e+9],S,3654602809);g=u(g,l,m,x,i[e+12],T,3873151461);x=u(x,g,l,m,i[e+15],z,530742520);m=u(m,x,g,l,i[e+2],j,3299628645);l=d(l,m,x,g,i[e+0],O,4096336452);g=d(g,l,m,x,i[e+7],I,1126891415);x=d(x,g,l,m,i[e+14],N,2878612391);m=d(m,x,g,l,i[e+5],A,4237533241);l=d(l,m,x,g,i[e+12],O,1700485571);g=d(g,l,m,x,i[e+3],I,2399980690);x=d(x,g,l,m,i[e+10],N,4293915773);m=d(m,x,g,l,i[e+1],A,2240044497);l=d(l,m,x,g,i[e+8],O,1873313359);g=d(g,l,m,x,i[e+15],I,4264355552);x=d(x,g,l,m,i[e+6],N,2734768916);m=d(m,x,g,l,i[e+13],A,1309151649);l=d(l,m,x,g,i[e+4],O,4149444226);g=d(g,l,m,x,i[e+11],I,3174756917);x=d(x,g,l,m,i[e+2],N,718787259);m=d(m,x,g,l,i[e+9],A,3951481745);l=s(l,n);m=s(m,a);x=s(x,r);g=s(g,o)}return f(l)+f(m)+f(x)+f(g)}i.generate=e;function n(t,i){return t<<i|t>>>32-i}function s(t,i){var e;var n;var s;var a;var r;s=t&2147483648;a=i&2147483648;e=t&1073741824;n=i&1073741824;r=(t&1073741823)+(i&1073741823);if(e&n){return r^2147483648^s^a}if(e|n){if(r&1073741824){return r^3221225472^s^a}else{return r^1073741824^s^a}}else{return r^s^a}}function a(t,i,e){return t&i|~t&e}function r(t,i,e){return t&e|i&~e}function o(t,i,e){return t^i^e}function l(t,i,e){return i^(t|~e)}function h(t,i,e,r,o,l,h){t=s(t,s(s(a(i,e,r),o),h));return s(n(t,l),i)}function c(t,i,e,a,o,l,h){t=s(t,s(s(r(i,e,a),o),h));return s(n(t,l),i)}function u(t,i,e,a,r,l,h){t=s(t,s(s(o(i,e,a),r),h));return s(n(t,l),i)}function d(t,i,e,a,r,o,h){t=s(t,s(s(l(i,e,a),r),h));return s(n(t,o),i)}function p(t){var i;var e=t.length;var n=e+8;var s=(n-n%64)/64;var a=(s+1)*16;var r=Array(a-1);var o=0;var l=0;while(l<e){i=(l-l%4)/4;o=l%4*8;r[i]=r[i]|t.charCodeAt(l)<<o;l++}i=(l-l%4)/4;o=l%4*8;r[i]=r[i]|128<<o;r[a-2]=e<<3;r[a-1]=e>>>29;return r}function f(t){var i="";var e="";var n;var s;for(s=0;s<=3;s++){n=t>>>s*8&255;e="0"+n.toString(16);i=i+e.substr(e.length-2,2)}return i}}));var pt=ht((function(t,i){Object.defineProperty(i,"__esModule",{value:true});i.MD5=i.generate=void 0;var e=dt;Object.defineProperty(i,"generate",{enumerable:true,get:function(){return e.generate}});i.MD5={generate:dt.generate}}));const ft=async t=>{var i;const e=await fetch((i="https://hemfixare-lookup.vercel.app/api")!==null&&i!==void 0?i:"https://hemfixare-lookup.vercel.app/api",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:t,hash:pt.MD5.generate(String.fromCharCode(83,101,67,82,101,116)+t)})});const n=await e.json();return n};const mt=class{constructor(t){e(this,t);this.handleChangeEmail=t=>{this.emailError=null;this.email=t.target.value};this.handleChangePhone=t=>{this.phoneError=null;this.phone=t.target.value};this.handleChangessn=t=>{this.ssnError=null;this.ssn=t.target.value};this.handleSubmit=async t=>{t.preventDefault();const i=new RegExp(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);const e=i.test(this.email);if(!e){this.emailError="Ange en giltig e-postadress"}const n=/^[\d\s()+-]{6,}$/.test(this.phone);if(!n){this.phoneError="Ange ett giltigt telefonnummer"}const s=lt.valid(this.ssn);if(!s){this.ssnError="Ange ett giltigt personnummer"}else if(s){const t=lt.parse(this.ssn).format(true);this.ssn=[t.slice(0,8),"-",t.slice(8)].join("")}if(e&&n&&s){try{const t=await ft(this.ssn);if(t){x.creditSafeUser=t;x.checkoutStep=2;x.user=Object.assign(Object.assign({},t),{email:this.email,phone:this.phone,ssn:this.ssn})}else{this.ssnError="Vi kunde tyvärr inte hitta en address med ditt angivna personnummer"}}catch(t){this.ssnError="Vi kunde tyvärr inte hitta en address med ditt angivna personnummer";console.log(t)}finally{const t=this.el.closest(".hemfixarna_content");v(t)}}};this.render=()=>n("form",{class:"mb-2",onSubmit:t=>this.handleSubmit(t)},n("div",null,n("input",{class:`${this.email.length?"input_active":""}`,onChange:t=>this.handleChangeEmail(t),type:"email",name:"email",value:this.email}),n("label",{htmlFor:"email"},"E-post ")),this.emailError&&n("span",null,this.emailError),n("div",null,n("input",{class:`${this.phone.length?"input_active":""}`,onChange:t=>this.handleChangePhone(t),type:"tel",name:"phone",value:this.phone}),n("label",{htmlFor:"phone"},"Mobiltelefon ")),this.phoneError&&n("span",null,this.phoneError),n("div",null,n("input",{class:`${this.ssn.length?"input_active":""}`,onChange:t=>this.handleChangessn(t),type:"tel",name:"ssn",value:this.ssn}),n("label",{htmlFor:"phone"},"Personnummer*")),this.ssnError&&n("span",null,this.ssnError),n("input",{type:"submit",value:"Fortsätt och Boka*"}),n("p",null,"*Vi hämtar din adress"));this.email="";this.emailError=null;this.phone="";this.phoneError=null;this.ssn="";this.ssnError=null}componentWillLoad(){if(x.user){this.email=x.user.email;this.phone=x.user.phone;this.ssn=x.user.ssn}}get el(){return s(this)}};const xt="";const gt=class{constructor(t){e(this,t);this.id=undefined;this.loadFromQuery=true;this.isDemo=false;this.widgetStyle=L.standard;this.buttonColor=undefined;this.buttonBg=undefined}render(){return n("hemfixarna-component",{widgetStyle:this.widgetStyle,buttonBg:this.buttonBg,buttonColor:this.buttonColor,nav:{url:"https://www.hornbach.se/",logo:"assets/hornbach/logo.svg",background:"./assets/hornbach/nav.jpg"},isDemo:this.isDemo,loadFromQuery:this.loadFromQuery,id:this.id,business:F.hornbach})}};gt.style=xt;const bt=class{constructor(t){e(this,t);this.logo=r(`./assets/hemfixarna.svg`);this.checkoutList=[{trust_badge:"Efter att du fyllt i formuläret blir du kontaktad av en Hemfixare för bokning av tid."},{trust_badge:"När jobbet är klart kommer du få en faktura med RUT/ROT-avdrag."}];this.list=null}getList(){return this.list?this.list:this.checkoutList}render(){const t=r(`./assets/checked.svg`);return n("div",{class:"hemfixarna_info"},x.step<5?n(a,null,n("h2",null,"Vilka är Hemfixarna?"),n("p",null,"Vi fixar allt från krångliga datorer till montering av möbler. Vi finns i hela Sverige och är alltid redo att rycka ut.")):n("h2",null,"Vad händer nu?"),n("ul",{class:"hemfixarna_features"},this.getList().map((i=>n("li",{key:i.trust_badge},n("img",{src:t,alt:"checked"}),n("p",null,i.trust_badge))))),n("img",{src:this.logo,width:200,alt:"hemfixarna"}),n("a",{class:"hemfixarna_product--link",target:"_blank",href:x.options.link.url},x.options.link.title))}};const vt=class{constructor(t){e(this,t);this.id=undefined;this.loadFromQuery=false;this.widgetStyle=L.standard;this.buttonColor=undefined;this.buttonBg=undefined}render(){return n("hemfixarna-component",{widgetStyle:this.widgetStyle,buttonBg:this.buttonBg,buttonColor:this.buttonColor,loadFromQuery:this.loadFromQuery,id:this.id,business:F.kund})}};const _t=class{constructor(t){e(this,t);this.render=()=>n("div",{style:{background:`url(${x.options.thank_you_image})`},class:"hemfixarna_order"},n("div",null),n("div",null,n("h2",null,"Tack för din bokning"),n("hemfixarna-orderrows",{tree:this.tree,cart:false}),n("span",{onClick:()=>this.resetShop()},n("button",null,"Gör en ny bokning")),n("hemfixarna-info",{list:[{trust_badge:"Du kommer bli kontaktad av en Hemfixare för bokning av tid."},{trust_badge:"När jobbet är klart kommer du få en faktura med RUT/ROT-avdrag."}]})));this.tree=undefined}resetShop(){x.step=1;x.cart=[];x.selectedCategory=null;x.selectedService=null;x.selectedProduct=null;x.checkoutStep=1}disconnectedCallback(){this.resetShop()}};const yt=class{constructor(t){e(this,t);this.cart=true;this.tree=undefined}goToProduct(t){if(x.customer){const i=x.customer.categories.map((t=>t.show_products?t.products:t.sub_categories?t.sub_categories.map((t=>t.products)):[])).flat().flat();const e=i.find((i=>i&&i.fields.ID===t));if(e){x.selectedProduct=e.fields;x.step=4}}else{const i=this.tree.sub_cats.map((t=>t.services)).flat();const e=i.map((t=>t.products)).flat();const n=e.find((i=>i.ID===t));const s=i.find((i=>i.products.find((i=>i.ID===t))));const a=this.tree.sub_cats.find((i=>i.services.find((i=>i.products.find((i=>i.ID===t))))));x.selectedCategory=a;x.selectedService=s;x.selectedProduct=n;x.step=4}}openRot(){x.modal={title:x.rotOptions.rot_start_fee_heading,text:[x.rotOptions.rot_start_fee_text,x.rotOptions.rot_start_fee_text_secondary]}}openRut(){x.modal={title:x.rutOptions.rut_start_fee_heading,text:[x.rutOptions.rut_start_fee_text,x.rutOptions.rut_start_fee_text_secondary]}}render(){const t=r(`./assets/info.svg`);return n(a,null,n("ul",{class:"hemfixarna_cart--items"},x.cart.map((t=>{var i;return n("li",{class:"hemfixarna_cart--item"},n("div",null,n("div",null,t.icon&&n("img",{width:30,src:(i=t.icon.url)!==null&&i!==void 0?i:t.icon,alt:t.name}),n("p",null,n("strong",null,t.amount,"x "),t.name)),this.cart&&n("button",{onClick:()=>this.goToProduct(t.id)},"Ändra")),n("p",null,n("strong",null,k(t,t.price,t.amount),"kr")),t.parts.length>0&&n("ul",null,t.parts.map((i=>n("li",null,n("p",null,n("strong",null,i.amount,"x "),i.name),n("p",null,n("strong",null,$(i,t,i.amount),"kr")))))))}))),n("div",{class:"hemfixarna_cart--additional"},S().rot>0&&n("div",{class:"hemfixarna_cart--startfee"},n("p",null,n("strong",{onClick:()=>this.openRot()},x.rotOptions.rot_start_fee_heading,n("img",{height:16,src:t,alt:"info monteringsavgift"}))),n("p",null,S().rot,"kr")),S().rut>0&&n("div",{class:"hemfixarna_cart--startfee"},n("p",null,n("strong",{onClick:()=>this.openRut()},x.rutOptions.rut_start_fee_heading,n("img",{height:16,src:t,alt:"info monteringsavgift"}))),n("p",null,S().rut,"kr")),x.cart.find((t=>t.rot))&&n("div",{class:"hemfixarna_cart--rutrot"},n("div",null,this.cart&&n("label",{class:"switch"},n("input",{checked:x.rot,onChange:()=>x.rot=!x.rot,type:"checkbox"}),n("span",{class:"slider"})),n("p",null,"ROT-avdrag")),n("p",null,"(-",x.rot?z():0,"kr)")),x.cart.find((t=>t.rut))&&n("div",{class:"hemfixarna_cart--rutrot"},n("div",null,n("label",{class:"switch"},n("input",{onChange:()=>x.rut=!x.rut,checked:x.rut,type:"checkbox"}),n("span",{class:"slider"})),n("p",null,"RUT-avdrag")),n("p",null,"(-",x.rut?j():0,"kr)"))),n("div",{class:"hemfixarna_cart--price"},n("h2",null,"Totalbelopp: "),n("h2",null,O(),"kr")))}};const wt=class{constructor(t){e(this,t);this.amount=0;this.hideDescription=true}addProduct(){const t=x.cart.find((t=>t.id===x.selectedProduct.ID));if(t){t.amount++;x.cart=[...x.cart]}else{x.cart=[...x.cart,{id:x.selectedProduct.ID,rut:x.selectedProduct.rut,rot:x.selectedProduct.rot,amount:1,parts:[],price:x.selectedProduct.price,name:x.selectedProduct.post_title,start_fee:!x.selectedProduct.hide_start_fee,terms_checkout:x.selectedProduct.terms_checkout,terms_show_checkbox:x.selectedProduct.terms_show_checkbox,icon:x.selectedProduct.icon}]}}removeProduct(){const t=x.cart.find((t=>t.id===x.selectedProduct.ID));if(t&&t.amount>1){t.amount--;x.cart=[...x.cart]}else{x.cart=x.cart.filter((t=>t.id!==x.selectedProduct.ID))}}addPart(t){var i;const e=x.cart.find((t=>t.id===x.selectedProduct.ID));if(e){const n=e.parts.find((i=>i.id===t.ID));if(n){n.amount++;e.parts=[...e.parts]}else{e.parts=[...e.parts,{id:t.ID,amount:1,price:t.price,name:(i=t.title)!==null&&i!==void 0?i:t.post_title}]}x.cart=[...x.cart.filter((t=>t.id!==e.id)),e]}}removePart(t){const i=x.cart.find((t=>t.id===x.selectedProduct.ID));if(i){const e=i.parts.find((i=>i.id===t.ID));if(e&&e.amount>1){e.amount--;i.parts=[...i.parts]}else{i.parts=i.parts.filter((i=>i.id!==t.ID))}x.cart=[...x.cart.filter((t=>t.id!==i.id)),i]}}goToCart(){const t=x.cart.find((t=>t.id===x.selectedProduct.ID));if(t){x.step=5;const t=this.el.closest(".hemfixarna_content");v(t)}}getAmount(){var t;return((t=x.cart.find((t=>t.id===x.selectedProduct.ID)))===null||t===void 0?void 0:t.amount)||0}getPartAmount(t){var i;const e=x.cart.find((t=>t.id===x.selectedProduct.ID));return((i=e===null||e===void 0?void 0:e.parts.find((i=>i.id===t)))===null||i===void 0?void 0:i.amount)||0}getTotalPrice(){let t=0;const i=x.cart.find((t=>t.id===x.selectedProduct.ID));if(i){const e=i.parts.reduce(((t,i)=>{const e=x.selectedProduct.parts.find((t=>t.ID===i.id));if(e){return t+e.price*i.amount}return t}),0);t=x.selectedProduct.price*i.amount+e}else{t=x.selectedProduct.price}return k(x.selectedProduct,t)}render(){var t,i,e;const s=r(`./assets/checked.svg`);const a=r(`./assets/plus.svg`);const o=r(`./assets/minus.svg`);return n("div",{class:"hemfixarna_product"},n("div",{class:"hemfixarna_product--top"},x.selectedProduct.icon&&n("img",{width:80,src:(t=x.selectedProduct.icon.url)!==null&&t!==void 0?t:x.selectedProduct.icon,alt:x.selectedProduct.post_title}),n("div",null,n("h1",null,x.selectedProduct.post_title),n("h2",null,"Från: ",k(x.selectedProduct)," kr"))),n("div",{class:"hemfixarna_product--grid"},n("div",{class:"hemfixarna_product--left"},((i=x.selectedProduct.list)===null||i===void 0?void 0:i.length)&&n("ul",{class:"hemfixarna_features"},x.selectedProduct.list.map((t=>n("li",{key:t.bullet},n("img",{src:s,alt:"checked"}),n("p",null,t.bullet))))),x.selectedProduct.description&&n("p",{onClick:()=>this.hideDescription=false,class:`hemfixarna_description ${this.hideDescription?"hemfixarna_description--hidden":""}`,innerHTML:x.selectedProduct.description})),n("div",{class:"hemfixarna_product--right"},n("ul",null,n("li",{class:"hemfixarna_product--item"},n("div",null,n("p",null,"Antal ",x.selectedProduct.post_title),n("p",{class:"hemfixarna_product--price"},k(x.selectedProduct),"kr/st")),n("div",{class:"hemfixarna_counter"},n("img",{class:`${this.getAmount()===0?"disabled":""}`,src:o,onClick:()=>this.removeProduct()}),n("span",null,this.getAmount()),n("img",{src:a,onClick:()=>this.addProduct()}))),((e=x.selectedProduct.parts)===null||e===void 0?void 0:e.length)&&x.selectedProduct.parts.map((t=>{var i;return n("li",{class:"hemfixarna_part"},n("div",null,n("p",null,(i=t.title)!==null&&i!==void 0?i:t.post_title),n("p",{class:"hemfixarna_product--price"},$(t,x.selectedProduct),"kr/st")),n("div",{class:"hemfixarna_counter"},n("img",{class:`${this.getPartAmount(t.ID)===0?"disabled":""}`,src:o,onClick:()=>this.removePart(t)}),n("span",null,this.getPartAmount(t.ID)),n("img",{class:`${this.getAmount()===0?"disabled":""}`,src:a,onClick:()=>this.addPart(t)})))}))),n("h4",{class:"hemfixarna_product--total"},"Totalt ",this.getTotalPrice()," kr"),n("button",{onClick:()=>this.goToCart(),class:`hemfixarna_buy ${this.getAmount()===0?"disabled":""}`},"Boka"),!x.selectedProduct.hide_start_fee&&(x.selectedProduct.rot||x.selectedProduct.rut)&&x.rutOptions&&x.rotOptions&&n("p",{class:"hemfixarna_terms"},n("strong",null,x.selectedProduct.rot?x.rotOptions.rot_start_fee_heading:x.rutOptions.rut_start_fee_heading),n("br",null),n("span",{innerHTML:x.selectedProduct.rot?x.rotOptions.rot_start_fee_text:x.rutOptions.rut_start_fee_text})),x.options&&n("hemfixarna-info",{list:x.options.trust}))))}get el(){return s(this)}};const kt=class{constructor(t){e(this,t)}render(){return n("div",null,n("h2",null,x.selectedService.post_title),n("div",{class:"hemfixarna_categories--wrapper"},n("div",null,n("ul",{class:"hemfixarna_categories"},x.selectedService.products.sort(((t,i)=>t.post_title<i.post_title?-1:1)).map((t=>{var i;return n("hemfixarna-box",{post:t,icon:(i=t.icon.url)!==null&&i!==void 0?i:t.icon,postTitle:t.post_title})})))),n("hemfixarna-info",{list:x.options.trust})))}};const Ct="";const $t=class{constructor(t){e(this,t);this.id=undefined;this.customer=undefined;this.loadFromQuery=false;this.widgetStyle=L.standard;this.buttonColor=undefined;this.buttonBg=undefined}render(){return n("hemfixarna-component",{widgetStyle:this.widgetStyle,buttonBg:this.buttonBg,buttonColor:this.buttonColor,loadFromQuery:this.loadFromQuery,id:this.id,business:F.skanska})}};$t.style=Ct;const St=class{constructor(t){e(this,t);this.tree=undefined;this.slug=undefined}isMainCategory(t){return t.show_products!==undefined}render(){return x.customer?n("div",null,n("h2",null,x.selectedCustomerCategory?x.selectedCustomerCategory.name:"Alla tjänster"),n("div",{class:"hemfixarna_categories--wrapper"},n("ul",{class:"hemfixarna_categories"},x.selectedCustomerCategory?this.isMainCategory(x.selectedCustomerCategory)&&x.selectedCustomerCategory.sub_categories&&!x.selectedCustomerCategory.show_products?x.selectedCustomerCategory.sub_categories.map((t=>n("hemfixarna-box",{category:t}))):x.selectedCustomerCategory.products?x.selectedCustomerCategory.products.map((t=>n("hemfixarna-box",{category:t.fields}))):null:x.customer.categories.map((t=>n("hemfixarna-box",{category:t})))),n("hemfixarna-info",{list:x.options.trust}))):n("div",null,n("h2",null,"Alla tjänster"),n("div",{class:"hemfixarna_categories--wrapper"},n("ul",{class:"hemfixarna_categories"},this.tree.sub_cats.sort(((t,i)=>t.name<i.name?-1:1)).map((t=>{var i;return n("hemfixarna-box",{post:t,icon:(i=t.icon.url)!==null&&i!==void 0?i:t.icon,postTitle:t.name})}))),n("hemfixarna-info",{list:x.options.trust})))}};const Tt="";const zt=class{constructor(t){e(this,t);this.id=undefined;this.loadFromQuery=false;this.widgetStyle=L.standard;this.buttonColor=undefined;this.buttonBg=undefined}render(){return n("hemfixarna-component",{widgetStyle:this.widgetStyle,buttonBg:this.buttonBg,buttonColor:this.buttonColor,loadFromQuery:this.loadFromQuery,id:this.id,business:F.string})}};zt.style=Tt;export{_ as hemfixarna_address,N as hemfixarna_box,A as hemfixarna_breadcrumbs,B as hemfixarna_byggmax,D as hemfixarna_cart,K as hemfixarna_category,q as hemfixarna_checkout,Z as hemfixarna_component,it as hemfixarna_demo,mt as hemfixarna_getuser,gt as hemfixarna_hornbach,bt as hemfixarna_info,vt as hemfixarna_kund,_t as hemfixarna_order,yt as hemfixarna_orderrows,wt as hemfixarna_product,kt as hemfixarna_service,$t as hemfixarna_skanska,St as hemfixarna_start,zt as hemfixarna_string_furniture};
2
+ //# sourceMappingURL=p-33a71663.entry.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hemfixarna-web-components",
3
- "version": "1.3.1",
3
+ "version": "1.3.2",
4
4
  "author": "Afonso <info@afonso.se> (http://afonso.se)",
5
5
  "description": "Web components to integrate with hemfixarna api",
6
6
  "main": "dist/index.cjs.js",
@@ -1,2 +0,0 @@
1
- import{g as t,f as i,r as e,h as n,a as s,F as a,c as r}from"./p-62a7c1a2.js";const o=(t,i,e)=>{const n=t.get(i);if(!n){t.set(i,[e])}else if(!n.includes(e)){n.push(e)}};const l=(t,i)=>{let e;return(...n)=>{if(e){clearTimeout(e)}e=setTimeout((()=>{e=0;t(...n)}),i)}};const h=t=>!("isConnected"in t)||t.isConnected;const c=l((t=>{for(let i of t.keys()){t.set(i,t.get(i).filter(h))}}),2e3);const u=()=>{if(typeof t!=="function"){return{}}const e=new Map;return{dispose:()=>e.clear(),get:i=>{const n=t();if(n){o(e,i,n)}},set:t=>{const n=e.get(t);if(n){e.set(t,n.filter(i))}c(e)},reset:()=>{e.forEach((t=>t.forEach(i)));c(e)}}};const d=t=>typeof t==="function"?t():t;const p=(t,i=((t,i)=>t!==i))=>{const e=d(t);let n=new Map(Object.entries(e!==null&&e!==void 0?e:{}));const s={dispose:[],get:[],set:[],reset:[]};const a=()=>{var i;n=new Map(Object.entries((i=d(t))!==null&&i!==void 0?i:{}));s.reset.forEach((t=>t()))};const r=()=>{s.dispose.forEach((t=>t()));a()};const o=t=>{s.get.forEach((i=>i(t)));return n.get(t)};const l=(t,e)=>{const a=n.get(t);if(i(e,a,t)){n.set(t,e);s.set.forEach((i=>i(t,e,a)))}};const h=typeof Proxy==="undefined"?{}:new Proxy(e,{get(t,i){return o(i)},ownKeys(t){return Array.from(n.keys())},getOwnPropertyDescriptor(){return{enumerable:true,configurable:true}},has(t,i){return n.has(i)},set(t,i,e){l(i,e);return true}});const c=(t,i)=>{s[t].push(i);return()=>{f(s[t],i)}};const u=(i,e)=>{const n=c("set",((t,n)=>{if(t===i){e(n)}}));const s=c("reset",(()=>e(d(t)[i])));return()=>{n();s()}};const p=(...t)=>{const i=t.reduce(((t,i)=>{if(i.set){t.push(c("set",i.set))}if(i.get){t.push(c("get",i.get))}if(i.reset){t.push(c("reset",i.reset))}if(i.dispose){t.push(c("dispose",i.dispose))}return t}),[]);return()=>i.forEach((t=>t()))};const m=t=>{const i=n.get(t);s.set.forEach((e=>e(t,i,i)))};return{state:h,get:o,set:l,on:c,onChange:u,use:p,dispose:r,reset:a,forceUpdate:m}};const f=(t,i)=>{const e=t.indexOf(i);if(e>=0){t[e]=t[t.length-1];t.length--}};const m=(t,i)=>{const e=p(t,i);e.use(u());return e};const{state:x,onChange:g}=m({step:1,checkoutStep:1,checkoutEdit:false,selectedCategory:null,selectedService:null,selectedProduct:null,cart:[],business:"undefined",options:null,rut:true,rot:true,token:null,user:null,modal:null,rutOptions:null,rotOptions:null,customer:null,selectedCustomerCategory:null,parentCategory:null,creditSafeUser:null});g("cart",(t=>{window.sessionStorage.setItem(`hemfixarna-${x.business}-cart`,JSON.stringify(t))}));g("user",(t=>{window.sessionStorage.setItem(`hemfixarna-${x.business}-user`,JSON.stringify(t))}));g("creditSafeUser",(t=>{window.sessionStorage.setItem(`hemfixarna-${x.business}-creditSafeUser`,JSON.stringify(t))}));g("selectedProduct",(t=>{if(!x.customer||!t)return;const i=[...x.customer.categories,...x.customer.categories.map((t=>{var i;return(i=t.sub_categories)!==null&&i!==void 0?i:[]}))].flat();const e=i.find((i=>i&&i.id===t.category));if(e){x.parentCategory=e;return}x.parentCategory=null}));g("selectedCustomerCategory",(t=>{if(!x.customer||!t)return;if(t.parent){const i=x.customer.categories.find((i=>i.id===t.parent));if(i){x.parentCategory=i;return}}x.parentCategory=null}));const b=t=>t.split(" ").reduce(((t,i)=>{if(i.length<=2){return t+i.slice(0,1)+"* "}else{return t+i.slice(0,1)+"*".repeat(i.length-2)+i.slice(-1)+" "}}),"");const v=t=>{if(!t)return;t.scrollTo({top:0,behavior:"smooth"})};const _=class{constructor(t){e(this,t);this.handleSubmit=t=>{t.preventDefault();const i=this.street.length>0;if(!i){this.streetError="Ange en gatuadress"}const e=this.zip.length>0;const n=/^\s*\d[\d\s]*$/.test(this.zip);if(!n){this.zipError="Postnummer får endast innehålla siffror"}if(!e){this.zipError="Ange ett postnummer"}const s=/^[^\d\s]{2,}$/.test(this.town);if(!s){this.townError="Ange en ort"}if(i&&e&&s&&n){x.user=Object.assign(Object.assign({},x.user),{street:this.street,zip:this.zip,town:this.town});x.checkoutStep=2;x.checkoutEdit=false;const t=this.el.closest(".hemfixarna_content");v(t)}};this.handleChangeStreet=t=>{this.streetError=null;this.street=this.street===x.user.street?"":t.target.value};this.handleChangeZip=t=>{this.zipError=null;this.zip=this.zip===x.user.zip?"":t.target.value};this.handleChangeTown=t=>{this.townError=null;this.town=this.town===x.user.town?"":t.target.value};this.render=()=>n("form",{class:"hemfixarna_address",onSubmit:t=>this.handleSubmit(t)},n("div",null,n("input",{class:`${this.street.length?"input_active":""}`,onInput:this.handleChangeStreet,type:"text",name:"street",value:this.street===x.user.street?b(this.street):this.street}),n("label",{htmlFor:"street"},"Gatuaddress ")),this.streetError&&n("span",null,this.streetError),n("div",null,n("input",{class:`${this.zip.length?"input_active":""}`,onInput:this.handleChangeZip,type:"tel",name:"zip",value:this.zip===x.user.zip?b(this.zip):this.zip}),n("label",{htmlFor:"zip"},"Postnummer ")),this.zipError&&n("span",null,this.zipError),n("div",null,n("input",{class:`${this.town.length?"input_active":""}`,onInput:this.handleChangeTown,type:"text",name:"town",value:this.town===x.user.town?b(this.town):this.town}),n("label",{htmlFor:"town"},"Ort ")),this.townError&&n("span",null,this.townError),n("input",{type:"submit",value:"Fortsätt och Boka"}));this.street="";this.streetError=null;this.zip="";this.zipError=null;this.town="";this.townError=null}componentWillLoad(){if(x.user){this.street=x.user.street;this.zip=x.user.zip;this.town=x.user.town}}get el(){return s(this)}};const y=t=>Math.ceil(t/2);const w=t=>Math.ceil(t*.7);const k=(t,i,e=1)=>{if(t.rot&&x.rot){return w((i||t.price)*e)}else if(t.rut&&x.rut){return y((i||t.price)*e)}else{return(i||t.price)*e}};const C=t=>{if(t.rot){return w(t.price)}else if(t.rut&&x.rut){return y(t.price)}else{return t.price}};const $=(t,i,e=1)=>{if(i.rot&&x.rot){return w(t.price*e)}else if(i.rut&&x.rut){return y(t.price*e)}else{return t.price*e}};const S=()=>{if(!x.cart)return{rut:0,rot:0};const t=x.cart.some((t=>t.rut&&t.start_fee));const i=x.cart.some((t=>t.rot&&t.start_fee));const e=x.rut?y(x.options.start_fee):x.options.start_fee*1;const n=x.rot?w(x.options.start_fee):x.options.start_fee*1;if(t&&i){return{rut:e,rot:n,length:2}}else if(t){return{rut:e,rot:0,length:1}}else if(i){return{rut:0,rot:n,length:1}}else{return{rut:0,rot:0,length:0}}};const T=t=>{const i=t.parts.reduce(((t,i)=>t+i.price*i.amount),0);return k(t,t.price*t.amount+i)};const z=()=>{const t=x.cart.reduce(((t,i)=>i.rot?t+T(i):t),0)+S().rot;const i=x.cart.reduce(((t,i)=>{const e=i.parts.reduce(((t,i)=>t+i.price*i.amount),0);return i.rot?t+i.price*i.amount+e:t}),0)+Number(x.options.start_fee);return i-t};const j=()=>{const t=x.cart.reduce(((t,i)=>i.rut?t+T(i):t),0)+S().rut;const i=x.cart.reduce(((t,i)=>{const e=i.parts.reduce(((t,i)=>t+i.price*i.amount),0);return i.rut?t+i.price*i.amount+e:t}),0)+Number(x.options.start_fee);return i-t};const O=()=>x.cart.reduce(((t,i)=>t+T(i)),0)+S().rot+S().rut;const I=t=>t.post_name!==undefined;const N=class{constructor(t){e(this,t);this.post=undefined;this.category=undefined;this.icon=undefined;this.postTitle=undefined}setTaxonomy(t){if(t){if((t===null||t===void 0?void 0:t.taxonomy)==="service_cat"){x.selectedCategory=t;x.step=2}else if((t===null||t===void 0?void 0:t.post_type)==="service"){x.selectedService=t;x.step=3}else if((t===null||t===void 0?void 0:t.post_type)==="ikea_product"){x.selectedProduct=t;x.step=4}const i=this.el.closest(".hemfixarna_content");v(i)}}setProduct(){x.selectedProduct=this.category;x.step=4;x.selectedCustomerCategory=null;const t=this.el.closest(".hemfixarna_content");v(t)}render(){return this.category?n(a,null,I(this.category)?n("li",{onClick:()=>this.setProduct()},n("img",{class:"hemfixarna_logo",height:82,src:this.category.icon,alt:this.category.post_name}),n("div",null,n("p",null,this.category.post_title),n("p",{class:"price"},"Från ",k(this.category),"kr"))):n("li",{onClick:()=>x.selectedCustomerCategory=this.category},n("img",{class:"hemfixarna_logo",height:82,src:this.category.icon,alt:this.category.name}),n("div",null,n("p",null,this.category.name)))):n("li",{onClick:()=>this.setTaxonomy(this.post)},this.post.icon&&n("img",{class:"hemfixarna_logo",height:82,src:this.icon,alt:this.postTitle}),n("div",null,n("p",null,this.postTitle),x.step===3&&n("p",{class:"price"},"Från ",k(this.post),"kr")))}get el(){return s(this)}};const A=class{constructor(t){e(this,t);this.triggerScrollTotop=()=>{const t=this.el.nextSibling;v(t)};this.tree=undefined;this.closeModal=undefined;this.loadFromQuery=false;this.isDemo=false}getCartLength(){return x.cart.reduce(((t,i)=>t+i.amount),0)}handleCartClick(){var t;if((t=x.cart)===null||t===void 0?void 0:t.length){x.step=5;this.triggerScrollTotop()}}handleHomePageClick(){x.step=1;x.parentCategory=null;x.selectedCustomerCategory=null;this.triggerScrollTotop();setTimeout((()=>{x.selectedCategory=null;x.selectedProduct=null;x.selectedService=null}),200)}render(){const t=r(`./assets/hemfixarna.svg`);const i=r(`./assets/close.svg`);const e=r(`./assets/cart.svg`);const s=r(`./assets/back.svg`);return n("div",null,n("div",{class:"hemfixarna_crumbs"},n("div",{class:"hemfixarna_crumbs--links"},n("img",{onClick:()=>this.handleHomePageClick(),src:t,width:110}),!this.loadFromQuery||this.isDemo?n("img",{onClick:()=>this.closeModal(),class:"close",src:i,width:32}):null,n("div",null,n("button",{onClick:()=>this.handleHomePageClick()},"Alla tjänster"))),n("div",{onClick:()=>this.handleCartClick(),class:`cart ${this.getCartLength()>0?"cart_active":""}`},n("img",{src:e,width:24}),n("span",null,this.getCartLength()))),[3,4].includes(x.step)&&!x.customer&&n("button",{class:"hemfixarna_crumbs--back",onClick:()=>{x.step=x.step===4?3:2}},n("img",{width:24,src:s,alt:"back arrow"}),n("span",null,"Se allt ",x.step===4?x.selectedService.post_title:x.selectedCategory.name)),x.parentCategory&&x.step<5&&n("button",{class:"hemfixarna_crumbs--back",onClick:()=>{x.step=1;x.selectedCustomerCategory=x.parentCategory;x.selectedProduct=null}},n("img",{width:24,src:s,alt:"back arrow"}),n("span",null,"Se allt ",x.parentCategory.name)))}get el(){return s(this)}};var F;(function(t){t["kund"]="kund";t["byggmax"]="byggmax";t["skanska"]="skanska";t["string"]="string-furniture";t["hornbach"]="hornbach"})(F||(F={}));var L;(function(t){t["standard"]="standard";t["alternative"]="alternative";t["alternative_2"]="alternative_2";t["alternative_3"]="alternative_3"})(L||(L={}));var M;(function(t){t["byggmax"]="category/bygg"})(M||(M={}));const P="";const B=class{constructor(t){e(this,t);this.tree=null;this.slug=undefined;this.id=undefined;this.forceOldTree=false;this.loadFromQuery=false;this.customer=undefined;this.widgetStyle=L.standard;this.buttonColor=undefined;this.buttonBg=undefined}render(){return n("hemfixarna-component",{forceOldTree:this.forceOldTree,id:this.id,slug:this.slug,business:F.byggmax,topCategory:M.byggmax,loadFromQuery:this.loadFromQuery,widgetStyle:this.widgetStyle,buttonBg:this.buttonBg,buttonColor:this.buttonColor})}};B.style=P;const D=class{constructor(t){e(this,t);this.tree=undefined}render(){const t=r(`./assets/back.svg`);return n("div",{class:"hemfixarna_cart"},n("div",{class:"hemfixarna_cart--left"},n("h2",null,x.checkoutStep===2&&!x.checkoutEdit&&n("button",{onClick:()=>{x.checkoutStep=1}},n("img",{width:24,src:t,alt:"back arrow"})),"Din bokning"),n("hemfixarna-orderrows",{tree:this.tree})),n("div",{class:"hemfixarna_cart--right"},n("h2",null,x.checkoutStep===2&&!x.checkoutEdit&&n("button",{onClick:()=>{x.checkoutStep=1}},n("img",{width:24,src:t,alt:"back arrow"})),"Dina uppgifter"),n("hemfixarna-checkout",null),n("hemfixarna-info",null)))}};const K=class{constructor(t){e(this,t)}setSelectedService(t){x.selectedService=t;x.step=3}render(){return n("div",null,n("h2",null,x.selectedCategory.name),n("div",{class:"hemfixarna_categories--wrapper"},n("div",null,n("ul",{class:"hemfixarna_categories"},x.selectedCategory.services.sort(((t,i)=>t.post_title<i.post_title?-1:1)).map((t=>{var i;return n("hemfixarna-box",{post:t,icon:(i=t.icon.url)!==null&&i!==void 0?i:t.icon,postTitle:t.post_title})})))),n("hemfixarna-info",{list:x.options.trust})))}};const U=`${"https://hemfixarna.se"}/wp-json/headless`;async function J(t,i){const e=await fetch(t,i);const n=await e.json();return n}const R=async t=>{if(!t){return}const i=t.split("/")[0];const e=t.split("/")[1];try{const t=await fetch(`${U}/${i}/${e}`);return await t.json()}catch(t){console.log(t)}};const H=async t=>{try{const i=await fetch(`${U}/customer/${t}`);return await i.json()}catch(t){console.log(t)}};const W=async()=>{try{const t=await fetch(`${U}/webcoptions`);return await t.json()}catch(t){console.log(t)}};const E=async()=>{try{const t=await J(`${U}/rut`);return t}catch(t){console.log(t)}};const X=async()=>{try{const t=await fetch(`${U}/rot`);return await t.json()}catch(t){console.log(t)}};const V=async t=>{try{const i=await fetch(`${U}/weborder`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json"}});return await i.json()}catch(t){console.log(t)}};const Q=`${"https://hemfixarna.se"}/wp-json/felix`;const Y=async t=>{try{return await J(`${Q}/createperson`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json"}})}catch(t){console.log(t)}};const q=class{constructor(t){e(this,t);this.handleChangeDate=t=>{this.dateError=null;this.date=t.target.value};this.handleChangeTerms=()=>{this.generalError=null};this.sendOrder=async()=>{var t,i;if(this.loading)return;this.loading=true;let e={firstName:x.creditSafeUser.firstName,lastName:x.creditSafeUser.lastName,street:x.user.street,zip:x.user.zip,town:x.user.town,ssn:x.user.ssn,email:x.user.email,phone:x.user.phone,url:`${x.business===F.string?"string":x.business}-webk`,date:this.date,products:[...x.cart.map((t=>{const i=t.parts.map((t=>({id:String(t.id),name:t.name,quantity:t.amount,rut:0,rot:0})));return[{id:String(t.id),name:t.name,quantity:t.amount,rot:t.rot?1:0,rut:t.rut?1:0},...i]}))].flat(),creditSafe:x.creditSafeUser,customer:x.business};const n=await Y(e);if(!n||!((i=(t=n.response)===null||t===void 0?void 0:t.scriptResult)===null||i===void 0?void 0:i.includes("OK"))){e=Object.assign(Object.assign({},e),{felixStatus:"error"})}else{e=Object.assign(Object.assign({},e),{felixStatus:"success"})}try{const{data:t,status:i}=await V(e);if(t&&i&&i===200){x.step=6;const t=this.el.closest(".hemfixarna_content");v(t)}else{this.generalError="Något gick fel, försök igen senare"}}catch(t){this.generalError="Något gick fel, försök igen senare"}this.loading=false};this.handleSubmit=t=>{t.preventDefault();this.generalError=null;const i=this.date.length>0;if(!i){this.dateError="Ange ett giltigt datum"}const e=Array.from(this.el.querySelectorAll('input[type="checkbox"]'));const n=e.find((t=>!t.checked));if(n){this.generalError="Du måste godkänna villkoren"}if(i&&!n){this.sendOrder()}};this.render=()=>{const t=r(`./assets/date.svg`);const i=r(`./assets/down.svg`);const e=r(`./assets/spinner.gif`);if(x.checkoutEdit){return n("hemfixarna-address",null)}else if(x.checkoutStep===1){return n("hemfixarna-getuser",null)}else if(x.checkoutStep===2){return n("div",{class:"mb-2"},n("div",{class:"hemfixarna_addressinfo"},n("div",null,n("p",null,b(x.user.firstName)),n("p",null,b(x.user.lastName)),n("p",null,x.user.email),n("p",null,x.user.phone)),n("div",null,n("p",null,b(x.user.street)),n("p",null,b(x.user.zip)),n("p",null,b(x.user.town))),n("button",{onClick:()=>x.checkoutEdit=true},"Behöver du ändra adressen?")),n("form",{onSubmit:t=>this.handleSubmit(t)},n("div",null,n("img",{src:t,width:24}),n("input",{class:`${this.date.length?"input_active":""}`,min:(new Date).toISOString().split("T")[0],onChange:t=>this.handleChangeDate(t),type:"date",name:"date",value:this.date}),n("label",{htmlFor:"date"},"Tidigaste datum för hembesök"),n("img",{src:i,width:24})),this.dateError&&n("span",null,this.dateError),n("label",{class:"hemfixarna_checkbox"},n("input",{onChange:()=>this.handleChangeTerms(),type:"checkbox"}),n("span",{innerHTML:x.options.terms})),x.cart.filter((t=>t.terms_checkout&&t.terms_show_checkbox)).map((t=>n(a,null,n("label",{class:"hemfixarna_checkbox"},n("input",{onChange:()=>this.handleChangeTerms(),type:"checkbox"}),n("span",null,t.terms_checkout))))),this.generalError&&n("span",null,this.generalError),n("div",{class:this.loading?"loading":""},n("input",{type:"submit",value:this.loading?"":"Slutför Bokning"}),n("img",{width:20,height:20,src:e,alt:"spinner"}))))}};this.date="";this.dateError=null;this.generalError=null;this.loading=false}componentWillLoad(){if(Boolean(x.user&&x.user.street)){x.checkoutStep=2}}get el(){return s(this)}};const G='@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600&display=swap"); *{box-sizing:border-box}:host{font-family:"Inter", sans-serif}:host .mb-2{margin-bottom:32px}:host button{color:#474444}:host form{display:flex;flex-direction:column;gap:16px}:host form img{position:absolute;top:50%;transform:translateY(-50%);pointer-events:none}:host form img:first-of-type{left:16px}:host form img:last-of-type{right:16px}:host form span{margin-top:-8px;color:#ec6632}:host form p{text-align:center}:host form p{margin:0}:host form div{position:relative}:host form div label{pointer-events:none;position:absolute;left:16px;top:50%;transform:translateY(-50%);background:#fff;padding:4px;transition:0.2s all cubic-bezier(0.465, 0.183, 0.153, 0.946)}:host form div input{padding:16px;width:100%;font-size:16px;border:1px solid #fcd9c9}:host form div input:focus~label,:host form div .input_active~label{top:0;transform:translateY(-50%);background:linear-gradient(180deg, #fffaf2 50%, #fff 50%)}:host h1{font-size:24px;font-weight:400;line-height:32px;letter-spacing:-3%;text-align:left;margin:0 0 8px}:host h2{margin:0 0 24px;font-weight:700;font-size:20px;line-height:28px;letter-spacing:-3%}:host p{font-size:16px;font-weight:400;line-height:24px;letter-spacing:-3%}:host .hemfixarna{width:100%;}:host .hemfixarna_nav{position:absolute;top:0;width:100dvw;left:0;height:80px;z-index:9999}:host .hemfixarna_nav--links{display:none !important}@media (min-width: 769px){:host .hemfixarna_nav--links{display:flex !important}}:host .hemfixarna_nav--links a{color:#ec6632;text-decoration:none;border:1px solid rgba(255, 255, 255, 0.3);border-radius:56px;padding:8px 32px;text-transform:capitalize}:host .hemfixarna_nav>div{position:relative;overflow:hidden;width:100%;height:100%;display:flex;justify-content:space-between;align-items:center;padding:0 16px}@media (min-width: 769px){:host .hemfixarna_nav>div{padding:0 32px}}:host .hemfixarna_nav>div>div{display:flex;gap:32px;justify-content:space-between}:host .hemfixarna_nav>div>img{position:absolute;width:100%;height:100%;top:0;left:0;z-index:-1}:host .hemfixarna_nav p{color:#fff}:host .hemfixarna_standalone .hemfixarna_backdrop{background:#fffaf2;opacity:1}:host .hemfixarna_standalone .hemfixarna_modal{top:80px;transform:translateX(-50%);border:none;height:calc(100dvh - 80px);opacity:0}:host .hemfixarna_standalone .hemfixarna_modal--open{opacity:1}:host .hemfixarna .switch{position:relative;display:inline-block;width:40px;height:20px}:host .hemfixarna .switch input{opacity:0;width:0;height:0}:host .hemfixarna .slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:0.4s;transition:0.4s;border-radius:34px}:host .hemfixarna .slider:before{position:absolute;content:"";height:18px;width:18px;left:2px;bottom:1px;background-color:white;-webkit-transition:0.4s;transition:0.4s;border-radius:50%}:host .hemfixarna input:checked+.slider{background-color:#fcd9c9}:host .hemfixarna input:focus+.slider{box-shadow:0 0 1px #fcd9c9}:host .hemfixarna input:checked+.slider:before{-webkit-transform:translateX(18px);-ms-transform:translateX(18px);transform:translateX(18px);background:#ec6632}:host .hemfixarna_checkbox{display:grid;grid-template-columns:40px auto;font-size:16px;font-weight:400;line-height:24px;letter-spacing:-3%}:host .hemfixarna_checkbox>span{transform:translateY(6px)}:host .hemfixarna_checkbox span,:host .hemfixarna_checkbox span p{color:#474444;font-size:14px}:host .hemfixarna_checkbox p{text-align:left}:host .hemfixarna_info{display:flex;flex-direction:column;gap:24px;padding:32px;box-shadow:0px 4px 8px 0px rgba(0, 0, 0, 0.0392156863);border-radius:4px;border:1px solid #fcd9c9}:host .hemfixarna_info h2{margin:0}@media (min-width: 769px){:host .hemfixarna_info{position:sticky;top:0}}:host .hemfixarna_infomodal{position:absolute;top:40%;left:50%;transform:translate(-50%, -50%);width:100%;max-width:80%;background:#fffaf2;border:1px solid #fcd9c9;padding:32px;z-index:99;border-radius:4px;box-shadow:0px 4px 8px 0px rgba(0, 0, 0, 0.0392156863);display:flex;flex-direction:column;gap:16px}:host .hemfixarna_infomodal p,:host .hemfixarna_infomodal h4{margin:0}:host .hemfixarna_infomodal button{background:#ec6632;color:#fff;border-radius:60px;font-size:16px;padding:8px 16px}:host .hemfixarna_addressinfo{padding:16px 16px 64px;border:1px solid #fcd9c9;position:relative;margin-bottom:32px;display:grid;grid-template-columns:1fr;gap:8px}@media (min-width: 769px){:host .hemfixarna_addressinfo{grid-template-columns:1fr 1fr}}:host .hemfixarna_addressinfo button{position:absolute;bottom:16px;right:16px;font-weight:500;text-underline-offset:2px;text-decoration:underline}:host .hemfixarna_part{background:#fff;box-shadow:0px 4px 8px 0px rgba(0, 0, 0, 0.0392156863);display:grid;padding:16px;grid-template-columns:auto 75px}:host .hemfixarna_counter{display:flex;align-items:center}:host .hemfixarna_counter span{padding:0 8px}:host .hemfixarna_counter img{cursor:pointer}:host .hemfixarna_counter img:not(.disabled):hover{transition:0.1s all cubic-bezier(0.465, 0.183, 0.153, 0.946);filter:brightness(1.02);transform:scale(1.01);box-shadow:0px 8px 16px 2px rgba(0, 0, 0, 0.0392156863)}:host .hemfixarna_description{display:grid;gap:16px}:host .hemfixarna_description ul{list-style:disc;padding-right:12px;transform:translateX(12px)}:host .hemfixarna_description--hidden{max-height:140px;overflow:hidden;position:relative;cursor:pointer}:host .hemfixarna_description--hidden::after{content:"";position:absolute;bottom:0;left:0;right:0;height:128px;background:linear-gradient(180deg, rgba(255, 253, 250, 0), rgba(255, 253, 250, 0.46) 50%, #fffaf2)}:host .hemfixarna_terms{font-size:14px}:host .hemfixarna_terms a{color:inherit}:host .hemfixarna_logo{height:64px}:host .hemfixarna_box{padding:16px;display:flex;align-items:center;width:100%;box-sizing:border-box;border-radius:4px;gap:16px 8px;border-radius:4px;gap:16px 8px}:host .hemfixarna_box p,:host .hemfixarna_box span{font-size:15px}:host .hemfixarna_box .underline{text-decoration:underline;text-underline-offset:2px}:host .hemfixarna_box .pointer{cursor:pointer}:host .hemfixarna_box .p-s{font-size:12px}:host .hemfixarna_box>div{display:grid;gap:8px}:host .hemfixarna_box--standard{background:#fffaf2;border:1px solid #fcd9c9}:host .hemfixarna_box--alternative,:host .hemfixarna_box--alternative_2,:host .hemfixarna_box--alternative_3{background:transparent;border:1px solid #e3e3e3}:host .hemfixarna_box--alternative_2,:host .hemfixarna_box--alternative_3{box-shadow:0px 2px 16px 0px rgba(0, 0, 0, 0.0784313725)}:host .hemfixarna_box--alternative_3{justify-content:center}:host .hemfixarna_altbtn{display:flex !important;flex-direction:column;gap:8px;align-items:center;margin-left:auto}:host .hemfixarna_btn{margin-left:auto}:host .hemfixarna_btn,:host .hemfixarna_buy,:host .hemfixarna input[type=submit]{border:none;border-radius:60px;font-weight:600;letter-spacing:0.5px;line-height:20px;box-shadow:0px 4px 8px 0px rgba(0, 0, 0, 0.0392156863)}:host .hemfixarna_btn:not(.disabled):hover,:host .hemfixarna_buy:not(.disabled):hover,:host .hemfixarna input[type=submit]:not(.disabled):hover{transition:0.1s all cubic-bezier(0.465, 0.183, 0.153, 0.946);filter:brightness(1.02);transform:scale(1.01);box-shadow:0px 8px 16px 2px rgba(0, 0, 0, 0.0392156863)}:host .hemfixarna div:has(>input[type=submit]){position:relative}:host .hemfixarna div:has(>input[type=submit]) input{cursor:initial}:host .hemfixarna div:has(>input[type=submit]) img{display:none}:host .hemfixarna .loading{cursor:default;opacity:0.6}:host .hemfixarna .loading>img{display:initial !important;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}:host .hemfixarna_btn{font-size:14px;background:#c84e18;color:#fff;padding:16px 24px;white-space:nowrap;position:relative}:host .hemfixarna_btn span{position:absolute;background:#fff;border-radius:100%;width:24px;height:24px;display:flex;justify-content:center;align-items:center;font-weight:600;font-size:13px;line-height:11px;top:-8px;right:-12px}:host .hemfixarna_btn span{background:#25a710;color:#fff;right:0 !important}:host .hemfixarna_buy,:host .hemfixarna input[type=submit]{font-size:21px;background:#25a710;color:#fff;padding:16px 24px}:host .hemfixarna .disabled{opacity:0.5;cursor:default}:host .hemfixarna_modal{position:fixed;background:#fffaf2;border:1px solid #fcd9c9;border-radius:4px;top:50%;left:50%;z-index:1000;transition:0.1s all cubic-bezier(0.465, 0.183, 0.153, 0.946);transform:translate(-50%, -50%) scale(0.7);opacity:0;height:92%;width:92%;max-width:920px;display:flex;flex-direction:column;gap:8px}:host .hemfixarna_modal--open{opacity:1;transform:translate(-50%, -50%) scale(1)}:host .hemfixarna_backdrop{z-index:999;position:fixed;background:#474444;top:0;left:0;bottom:0;right:0;opacity:0;transition:transform 0.1s cubic-bezier(0.465, 0.183, 0.153, 0.946), opacity 0.1s cubic-bezier(0.465, 0.183, 0.153, 0.946)}:host .hemfixarna_backdrop--open{opacity:0.3}:host .hemfixarna_order{position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background-repeat:no-repeat !important;background-size:cover !important;background-position:center !important;display:grid;grid-template-columns:1fr 1fr;padding:48px 32px 64px}@media (max-width: 768px){:host .hemfixarna_order{grid-template-columns:1fr;grid-template-rows:0 auto}}:host .hemfixarna_order>div:last-of-type{background:#fffaf2;padding:32px;display:flex;flex-direction:column;max-height:100%;overflow:auto}:host .hemfixarna_order img{cursor:pointer}:host .hemfixarna_order button{margin:16px 0;padding:0;text-decoration:underline;text-underline-offset:2px;font-size:14px;font-weight:600}:host .hemfixarna_cart{display:grid;grid-template-columns:1fr 1fr;gap:32px}@media (max-width: 768px){:host .hemfixarna_cart{grid-template-columns:1fr;gap:0}}:host .hemfixarna_cart--right h2,:host .hemfixarna_cart--left h2{display:flex;align-items:center}:host .hemfixarna_cart--right h2 img,:host .hemfixarna_cart--left h2 img{margin-top:3.2px}@media (min-width: 769px){:host .hemfixarna_cart--left h2 button{display:none}}@media (max-width: 768px){:host .hemfixarna_cart--right h2 button{display:none}}:host .hemfixarna_cart--startfee{display:flex;justify-content:space-between}:host .hemfixarna_cart--rutrot{display:flex;justify-content:space-between}:host .hemfixarna_cart--rutrot div{display:flex;gap:16px;align-items:center}:host .hemfixarna_cart--additional{display:flex;flex-direction:column;gap:16px;padding:16px;border-top:1px solid #fcd9c9}:host .hemfixarna_cart--additional p{font-size:14px}:host .hemfixarna_cart--additional strong{text-decoration:underline;text-underline-offset:2px;cursor:pointer;position:relative}:host .hemfixarna_cart--additional strong img{position:absolute;top:50%;transform:translateY(-50%);right:-24px}:host .hemfixarna_cart--price{border-top:1px solid #fcd9c9;padding:16px;display:flex;justify-content:space-between}:host .hemfixarna_cart--price h3{margin:0}:host .hemfixarna_cart--item{display:flex;flex-direction:column;gap:8px;padding:16px 0;border-top:1px solid #fcd9c9}:host .hemfixarna_cart--item>div{display:flex;justify-content:space-between}:host .hemfixarna_cart--item>div>div{display:flex;align-items:center;gap:16px}:host .hemfixarna_cart--item>div button{color:#ec6632}:host .hemfixarna_categories{display:grid;gap:24px}:host .hemfixarna_categories--wrapper{gap:32px;display:grid;grid-template-columns:1fr 1fr}@media (max-width: 768px){:host .hemfixarna_categories--wrapper{grid-template-columns:1fr}}:host .hemfixarna_categories li{position:relative;background:#fff;border-radius:4px;min-height:132px;padding:24px;box-shadow:0px 4px 8px 0px rgba(0, 0, 0, 0.0392156863);display:flex;align-items:center;gap:24px;cursor:pointer}:host .hemfixarna_categories li:hover{transition:0.1s all cubic-bezier(0.465, 0.183, 0.153, 0.946);filter:brightness(1.02);transform:scale(1.01);box-shadow:0px 8px 16px 2px rgba(0, 0, 0, 0.0392156863)}:host .hemfixarna_categories li>button{height:100%;width:100%}:host .hemfixarna_categories li .price{font-weight:700}:host .hemfixarna_content{height:100%;overflow:auto;padding:0 32px 64px}:host .hemfixarna_content--5{padding-top:16px}:host .hemfixarna_crumbs{position:relative;padding:16px 24px;border-bottom:1px solid #fcd9c9;display:flex;justify-content:space-between}:host .hemfixarna_crumbs--back{padding:16px 24px 8px;display:flex;align-items:center;gap:8px;box-shadow:none !important}:host .hemfixarna_crumbs--back:hover{transition:0.1s all cubic-bezier(0.465, 0.183, 0.153, 0.946);filter:brightness(1.02);transform:scale(1.01);box-shadow:0px 8px 16px 2px rgba(0, 0, 0, 0.0392156863)}:host .hemfixarna_crumbs img{cursor:pointer}:host .hemfixarna_crumbs .close{position:absolute;right:-16px;top:-16px;z-index:9}:host .hemfixarna_crumbs .cart{padding-left:16px;position:relative}:host .hemfixarna_crumbs .cart img{cursor:inherit}:host .hemfixarna_crumbs .cart span{position:absolute;background:#fff;border-radius:100%;width:24px;height:24px;display:flex;justify-content:center;align-items:center;font-weight:600;font-size:13px;line-height:11px;top:-8px;right:-12px}:host .hemfixarna_crumbs .cart_active{cursor:pointer}:host .hemfixarna_crumbs .cart_active span{background:#25a710;color:#fff}:host .hemfixarna_crumbs--links{display:flex;align-items:center;gap:16px;overflow:auto}@media (min-width: 769px){:host .hemfixarna_crumbs--links{-ms-overflow-style:none}:host .hemfixarna_crumbs--links::-webkit-scrollbar{display:none}:host .hemfixarna_crumbs--links::-webkit-scrollbar-button{display:none}}:host .hemfixarna_crumbs button{white-space:nowrap;background:#f1ded6;border-radius:64px;padding:12px 16px;font-size:12px;font-weight:600;letter-spacing:0.3px;box-shadow:none !important}:host .hemfixarna_crumbs button:not(.active):hover{transition:0.1s all cubic-bezier(0.465, 0.183, 0.153, 0.946);filter:brightness(1.02);transform:scale(1.01);box-shadow:0px 8px 16px 2px rgba(0, 0, 0, 0.0392156863)}:host .hemfixarna_crumbs .active{background:#fffaf2;cursor:default}:host .hemfixarna_features{gap:12px !important}:host .hemfixarna_features li{display:flex;gap:16px;align-items:center}:host .hemfixarna_address{margin-bottom:16px}:host .hemfixarna_product{display:grid;gap:16px}:host .hemfixarna_product--link{font-weight:700;color:#474444;text-underline-offset:4px}:host .hemfixarna_product--left{gap:32px}:host .hemfixarna_product--right{gap:32px}:host .hemfixarna_product--price{margin-top:4px;font-weight:700}:host .hemfixarna_product--total{text-align:center;margin:-16px 0;font-size:21px;line-height:28px}:host .hemfixarna_product--item{background:#fff;padding:16px;display:grid;grid-template-columns:auto 75px;box-shadow:0px 4px 8px 0px rgba(0, 0, 0, 0.0392156863)}:host .hemfixarna_product--grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}@media (max-width: 768px){:host .hemfixarna_product--grid{grid-template-columns:1fr}}:host .hemfixarna_product--grid>div{display:flex;flex-direction:column}:host .hemfixarna_product--grid ul{display:flex;flex-direction:column;gap:4px}:host .hemfixarna_product p{margin:0}:host .hemfixarna_product--top{display:flex;gap:32px}:host .hemfixarna_product--top>div{width:100%}:host .hemfixarna_product--top>div h1{max-width:80%}@media (max-width: 768px){:host .hemfixarna_product--top>div h1{max-width:100%}}:host .hemfixarna_product--top h4{margin-bottom:8px}:host h5,:host p{margin:0}:host input[type=submit]{cursor:pointer}:host input[type=date]~label{left:56px}:host input[type=date]{border:1px solid #fcd9c9;padding-left:64px}:host input[type=checkbox]{height:18px;width:18px;border:1px solid #fcd9c9}:host input[type=checkbox]:checked{background:red}:host input[type=date]::-webkit-calendar-picker-indicator{background:transparent;bottom:0;color:transparent;cursor:pointer;height:auto;left:0;position:absolute;right:0;top:0;width:auto}:host button,:host a{cursor:pointer;background:none;border:none}:host ul{list-style:none;margin:0;padding:0}';const Z=class{constructor(t){e(this,t);this.slugIsOldFormat=t=>{if(!t)return false;return["product","service","category"].some((i=>t.includes(i)))};this.triggerScrollTotop=()=>{const t=this.el.shadowRoot.querySelector(".hemfixarna_content");v(t)};this.modal=false;this.showModal=false;this.tree=null;this.product=null;this.proppedProduct=null;this.slug=undefined;this.id=undefined;this.business=undefined;this.topCategory=undefined;this.forceOldTree=false;this.loadFromQuery=false;this.isDemo=false;this.widgetStyle=undefined;this.nav=undefined;this.buttonColor=undefined;this.buttonBg=undefined}loadCategoryOrProduct(t){this.proppedProduct=null;if(t.startsWith("c-")){const i=[...x.customer.categories,...x.customer.categories.map((t=>{var i;return(i=t.sub_categories)!==null&&i!==void 0?i:[]}))].flat();const e=i.find((i=>i&&i.id===t.replace("c-","")));if(e){x.selectedCustomerCategory=e;x.step=2}}else{const i=x.customer.categories.map((t=>t.show_products?t.products:t.sub_categories?t.sub_categories.map((t=>t.products)):[])).flat().flat();const e=i.find((i=>i&&i.fields.ID===parseInt(t)));if(e){x.selectedProduct=e.fields;x.step=4;this.proppedProduct=e.fields}}}async watchSlugChange(t){if(this.slugIsOldFormat(t)){this.fetchNewTaxonomy(t)}else if(x.customer&&t){this.loadCategoryOrProduct(t)}}async watchIdChange(t){if(t&&x.customer){this.loadCategoryOrProduct(t)}}async fetchNewTaxonomy(t){x.selectedCategory=null;x.selectedProduct=null;x.selectedService=null;const i=await R(t);if((i===null||i===void 0?void 0:i.code)==="not_found"||(i===null||i===void 0?void 0:i.code)==="rest_no_route"){console.log("taxonomy not found")}else if(i){this.setTaxonomy(i);if((i===null||i===void 0?void 0:i.post_type)==="ikea_product"){this.product=i}}}async componentWillLoad(){x.business=this.business;const t=window.sessionStorage.getItem(`hemfixarna-${this.business}-cart`);if(t){x.cart=JSON.parse(t)}const i=window.sessionStorage.getItem(`hemfixarna-${this.business}-user`);if(i){x.user=JSON.parse(i)}const e=window.sessionStorage.getItem(`hemfixarna-${this.business}-creditSafeUser`);if(e){x.creditSafeUser=JSON.parse(e)}const[n,s,a,r,o]=await Promise.all([this.topCategory?R(this.topCategory):null,this.slug?R(this.slug):Promise.resolve(null),W(),E(),X()]);if((!this.slug||!this.slugIsOldFormat(this.slug))&&!this.forceOldTree){try{const t=await H(this.business);if((t===null||t===void 0?void 0:t.code)==="not_found"){console.warn("customer not found")}else if(t){x.customer=t;if(this.id){this.loadCategoryOrProduct(this.id)}else if(this.slug&&!this.slugIsOldFormat(this.slug)){this.loadCategoryOrProduct(this.slug)}}}catch(t){console.warn("customer not found")}}if((n===null||n===void 0?void 0:n.code)==="not_found");else if(n){this.tree=n}if((s===null||s===void 0?void 0:s.code)==="not_found"){console.log("taxonomy not found")}else if(s){this.setTaxonomy(s);if((s===null||s===void 0?void 0:s.post_type)==="ikea_product"){this.product=s}}if(this.loadFromQuery){const t=new URL(document.location.toString()).searchParams;this.id=t.get("id");if(!this.isDemo){this.openModal()}}x.rotOptions=o;x.rutOptions=r;x.options=a}setTaxonomy(t){if(t){if((t===null||t===void 0?void 0:t.taxonomy)==="service_cat"){x.selectedCategory=t;x.step=2}else if((t===null||t===void 0?void 0:t.post_type)==="service"){x.selectedService=t;x.selectedCategory=this.tree.sub_cats.find((i=>i.services.find((i=>i.ID===t.ID))));x.step=3}else if((t===null||t===void 0?void 0:t.post_type)==="ikea_product"){x.selectedProduct=t;x.selectedService=this.tree.sub_cats.map((t=>t.services)).flat().find((t=>t.products.find((t=>t.ID===x.selectedProduct.ID))));x.selectedCategory=this.tree.sub_cats.find((t=>t.services.find((t=>t.ID===x.selectedService.ID))));x.step=4}this.triggerScrollTotop()}}openModal(){this.modal=true;setTimeout((()=>{this.showModal=true}),50)}closeModal(){this.showModal=false;setTimeout((()=>{this.modal=false}),200)}handleClick(t){if(this.loadFromQuery&&!this.isDemo)return;const i=this.el.shadowRoot.querySelector(".hemfixarna_modal");if(i){const e=i.contains(t.composedPath()[0]);if(!e){this.closeModal()}}const e=this.el.shadowRoot.querySelector(".hemfixarna_infomodal");if(e){const i=e.contains(t.composedPath()[0]);if(!i){x.modal=null}}}getCartLength(){return x.cart.reduce(((t,i)=>t+i.amount),0)}render(){var t,i,e,s,a,o,l;const h=r(`./assets/hemfixarna.svg`);const c=r(`./assets/montering.svg`);const u=((t=this.nav)===null||t===void 0?void 0:t.background)?r(this.nav.background):"";const d=((i=this.nav)===null||i===void 0?void 0:i.logo)?r(this.nav.logo):"";return n("div",{class:`hemfixarna ${this.loadFromQuery?"hemfixarna_standalone":""}`},this.loadFromQuery&&!this.isDemo&&this.nav?n("nav",{class:"hemfixarna_nav"},n("div",null,n("div",{class:"hemfixarna_nav--logos"},n("a",{href:this.nav.url,target:"_blank"},n("img",{src:d,alt:`${this.business} logo`})),n("a",{href:"https://hemfixarna.se/",target:"_blank"},n("p",null,"I samarbete med:"),n("img",{src:h,alt:"hemfixarna_logo",width:104}))),n("div",{class:"hemfixarna_nav--links"},n("a",{href:this.nav.url,target:"_blank"},"Till ",this.business),n("a",{href:"https://www.hemfixarna.se/",target:"_blank"},"Till Hemfixarna")),n("img",{src:u,alt:"nav_background"}))):null,!this.loadFromQuery||this.isDemo?n("div",{class:`hemfixarna_box hemfixarna_box--${this.widgetStyle}`},[L.alternative_2,L.alternative_3].includes(this.widgetStyle)?n("img",{src:c,alt:"montering logo",width:32,height:32}):null,n("div",null,n("div",null,n("p",{onClick:()=>this.openModal(),class:`pointer ${[L.alternative_2,L.alternative_3].includes(this.widgetStyle)&&x.selectedProduct?"underline":""}`},((e=this.product)===null||e===void 0?void 0:e.post_title)||((s=this.proppedProduct)===null||s===void 0?void 0:s.post_title)||n("span",null,"Montering",n("wbr",null),"/Installation ",(o=(a=x.selectedCustomerCategory)===null||a===void 0?void 0:a.name)!==null&&o!==void 0?o:"på plats"," - ",n("strong",{class:"underline"},"se priser här")),this.product&&((l=this.slug)===null||l===void 0?void 0:l.includes("product"))||this.proppedProduct?n("span",null," från"," ",n("strong",null,C(this.proppedProduct||this.product),"kr")):null)),this.widgetStyle===L.standard?n("img",{src:h,width:104}):null,this.widgetStyle===L.alternative?n("span",{class:"p-s"},"Utförs av ",n("strong",null,"Hemfixarna")):null),[L.standard,L.alternative].includes(this.widgetStyle)?n("button",{onClick:()=>this.openModal(),class:"hemfixarna_btn",style:{color:this.buttonColor.startsWith("#")||!this.buttonColor.length?this.buttonColor:`#${this.buttonColor}`,backgroundColor:this.buttonBg.startsWith("#")||!this.buttonBg.length?this.buttonBg:`#${this.buttonBg}`}},"Beställ här",this.getCartLength()>0&&n("span",null,this.getCartLength())):null,L.alternative_2===this.widgetStyle?n("div",{class:"hemfixarna_altbtn"},n("strong",{class:"p-s"},"Utförs av"),n("img",{src:h,alt:"hemfixarna logo",width:98})):null):null,this.modal&&n("div",null,n("div",{class:`hemfixarna_modal ${this.showModal?"hemfixarna_modal--open":""}`},x.modal&&n("div",{class:"hemfixarna_infomodal"},x.modal.title&&n("h2",null,x.modal.title),x.modal.text.map((t=>n("p",{innerHTML:t}))),n("div",null,n("button",{onClick:()=>x.modal=null},"Stäng"))),(this.tree||x.customer)&&n("hemfixarna-breadcrumbs",{isDemo:this.isDemo,loadFromQuery:this.loadFromQuery,closeModal:()=>this.closeModal(),tree:this.tree}),!x.customer||this.slugIsOldFormat(this.slug)?n("div",{class:`hemfixarna_content hemfixarna_content--${x.step}`},x.step===1&&this.tree&&n("hemfixarna-start",{tree:this.tree}),x.step===2&&x.selectedCategory&&n("hemfixarna-category",null),x.step===3&&x.selectedService&&n("hemfixarna-service",null),x.step===4&&x.selectedProduct&&n("hemfixarna-product",null),x.step===5&&n("hemfixarna-cart",{tree:this.tree}),x.step===6&&n("hemfixarna-order",{tree:this.tree})):n("div",{class:`hemfixarna_content hemfixarna_content--${x.step}`},x.step<4&&n("hemfixarna-start",null),x.step===4&&x.selectedProduct&&n("hemfixarna-product",null),x.step===5&&n("hemfixarna-cart",{tree:this.tree}),x.step===6&&n("hemfixarna-order",{tree:this.tree}))),!this.isDemo?n("div",{class:`hemfixarna_backdrop ${this.showModal?"hemfixarna_backdrop--open":""}`}):null))}static get assetsDirs(){return["assets"]}get el(){return s(this)}static get watchers(){return{slug:["watchSlugChange"],id:["watchIdChange"]}}};Z.style=G;const tt='@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600&display=swap"); :host{font-family:"Inter", sans-serif}:host .hemfixarna_widgetstyles label{cursor:pointer}:host .hemfixarna_widgetstyles>div{display:flex;gap:1rem}:host .hemfixarna_widgetstyles h5{margin:1rem 0}:host .hemfixarna_example{margin-bottom:16px;background:#000;padding:16px;color:#fff;display:flex;justify-content:space-between;cursor:pointer;max-width:500px;box-sizing:border-box;position:relative}:host .hemfixarna_example--tooltip{background:#000;top:-48px;font-size:16px;left:40%;color:white;padding:8px;position:absolute;opacity:0}:host .hemfixarna_example--tooltip::after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#000 transparent transparent transparent}:host .hemfixarna_example:hover .hemfixarna_example--tooltip{opacity:1}:host .hemfixarna_example p{font-size:14px}:host .hemfixarna_example img{filter:invert(1)}:host .hemfixarna_install{display:grid;gap:8px;margin-top:16px}:host .hemfixarna_product--label{background:#e1e0f5}:host .hemfixarna_categories{max-height:100%;overflow:auto;position:relative}:host .hemfixarna_categories--label{display:flex;align-items:center;justify-content:space-between;padding:8px}:host .hemfixarna_categories--label button{background:#3f3a92;border:none;font-weight:600;padding:3.2px 9.6px;border-radius:10px;margin-right:8px;color:#ece8e8}:host .hemfixarna_categories--label button:active{transform:scale(0.95)}:host .hemfixarna_categories--label--big{font-weight:600;border-bottom:1px solid black}:host p{margin:0}:host span{color:darkolivegreen;font-size:10px}:host button{cursor:pointer}:host>div{display:grid;gap:32px;width:100%;grid-template-columns:1fr 1fr;height:100vh;place-items:center;overflow:hidden;padding:16px 32px;box-sizing:border-box}:host>div>*{width:100%}:host>div>div{max-width:500px}:host>div ul{margin:0;padding:0;list-style:none}:host>div ul ul{gap:1px;display:grid}:host>div ul li{padding-left:16px;background:#fff}';const it=class{constructor(t){e(this,t);this.debounce=null;this.cdnLink='<script type="module" src="https://cdn.jsdelivr.net/npm//hemfixarna-web-components@latest/dist/hemfixarna-components/hemfixarna-components.esm.js"><\/script>';this.selectedSlug=undefined;this.selectedID=undefined;this.tooltipText="Kopiera till urklipp";this.tree=null;this.customer=null;this.widgetStyle=L.standard;this.buttonBg="";this.buttonColor="";this.colorAccessibility=undefined}debouncedFunction(){if(this.debounce!==null){clearTimeout(this.debounce);this.debounce=null}this.debounce=window.setTimeout((()=>{this.checkColorAccessibility();this.debounce=null}),1500)}async checkColorAccessibility(){const t="#fff";const i="#c84e18";const e=this.buttonBg.length?this.buttonBg.startsWith("#")?this.buttonBg:`#${this.buttonBg}`:i;const n=this.buttonColor.length?this.buttonColor.startsWith("#")?this.buttonColor:`#${this.buttonColor}`:t;fetch("https://www.aremycolorsaccessible.com/api/are-they",{mode:"cors",method:"POST",body:JSON.stringify({colors:[e,n]})}).then((t=>t.json())).then((t=>{console.log(t);if(t&&t){this.colorAccessibility=t}}))}getTopLevelCategory(){switch("byggmax"){case F.byggmax:return M.byggmax;default:return""}}getColor(t){switch(t){case"AAA":return"green";case"AA":return"orange";case"A":return"yellow";case"Fail":return"red";default:return"black"}}async componentWillLoad(){if(process.env.FORCE_OLD_TREE){const t=await R(this.getTopLevelCategory());if((t===null||t===void 0?void 0:t.code)==="not_found");else if(t){this.tree=t}}else{const t=await H("byggmax");if(t.code!=="not_found"&&t){this.customer=t}}}getExample(){return`<hemfixarna-${"byggmax"}${this.selectedSlug?` slug="${this.selectedSlug}" `:""}${this.selectedID?` id="${this.selectedID}" `:""} ${this.widgetStyle===L.standard?"":`widgetStyle="${this.widgetStyle}"`} ${this.buttonColor.length?`buttonColor="${this.buttonColor}"`:""} ${this.buttonBg.length?`buttonBg="${this.buttonBg}"`:""}></hemfixarna-${"byggmax"}>`}copyExample(){navigator.clipboard.writeText(this.getExample());this.tooltipText="Snippet kopierad";setTimeout((()=>{this.tooltipText="Kopiera till urklipp"}),2e3)}copyCdn(){navigator.clipboard.writeText(this.cdnLink);this.tooltipText="Text kopierad";setTimeout((()=>{this.tooltipText="Kopiera till urklipp"}),2e3)}copyNpmInstall(){navigator.clipboard.writeText("npm i hemfixarna-web-components");this.tooltipText="Text kopierad";setTimeout((()=>{this.tooltipText="Kopiera till urklipp"}),2e3)}render(){const t=r(`./assets/copy.png`);return n("div",null,n("div",null,n("div",{onClick:()=>this.copyExample(),class:"hemfixarna_example"},n("p",null,this.getExample()),n("img",{src:t,height:20}),n("span",{class:"hemfixarna_example--tooltip"},this.tooltipText)),"byggmax"===F.byggmax&&n("hemfixarna-byggmax",{buttonColor:this.buttonColor,buttonBg:this.buttonBg,widgetStyle:this.widgetStyle,forceOldTree:Boolean(process.env.FORCE_OLD_TREE),slug:this.selectedSlug,id:this.selectedID}),"byggmax"===F.skanska&&n("hemfixarna-skanska",{buttonColor:this.buttonColor,buttonBg:this.buttonBg,widgetStyle:this.widgetStyle,id:this.selectedID}),"byggmax"===F.string&&n("hemfixarna-string-furniture",{buttonColor:this.buttonColor,buttonBg:this.buttonBg,widgetStyle:this.widgetStyle,id:this.selectedID}),"byggmax"===F.hornbach&&n("hemfixarna-hornbach",{buttonColor:this.buttonColor,buttonBg:this.buttonBg,widgetStyle:this.widgetStyle,isDemo:true,id:this.selectedID}),"byggmax"===F.kund&&n("hemfixarna-kund",{buttonColor:this.buttonColor,buttonBg:this.buttonBg,widgetStyle:this.widgetStyle,id:this.selectedID}),n("div",{class:"hemfixarna_install"},n("div",{onClick:()=>this.copyCdn(),class:"hemfixarna_example"},n("p",null,this.cdnLink),n("span",{class:"hemfixarna_example--tooltip"},this.tooltipText),n("img",{src:t,height:20}))),n("div",{class:"hemfixarna_widgetstyles"},n("h5",null,"Widget styles"),n("div",null,Object.values(L).map((t=>n("label",{key:t},n("input",{type:"radio",value:t,checked:this.widgetStyle===t,onChange:()=>this.widgetStyle=t}),t)))),n("div",null,n("div",null,n("h5",null,"Button background color"),n("input",{type:"text",value:this.buttonBg,onInput:t=>this.buttonBg=t.target.value})),n("div",null,n("h5",null,"Button text color"),n("input",{type:"text",value:this.buttonColor,onInput:t=>this.buttonColor=t.target.value})))),n("span",null,"Write an hexa code no # needed"),this.colorAccessibility?n("div",null,n("h5",null,"Tillgänglighetsrapport"),n("div",null,n("strong",null,"Liten text:"),n("span",{style:{color:this.getColor(this.colorAccessibility.small)}},this.colorAccessibility.small),n("br",null),n("strong",null,"Fet text:"),n("span",{style:{color:this.getColor(this.colorAccessibility.bold)}},this.colorAccessibility.bold),n("br",null),n("strong",null,"Stor text:"),n("span",{style:{color:this.getColor(this.colorAccessibility.large)}},this.colorAccessibility.large),n("br",null),n("strong",null,"Kontrastförhållande:")," ",this.colorAccessibility.contrast)):null),n("ul",{class:"hemfixarna_categories"},this.customer?n("div",null,this.customer.categories.map((t=>n("li",null,n("div",{class:"hemfixarna_categories--label hemfixarna_categories--label--big"},n("div",null,n("p",null,t.name),n("span",null,`c-${t.id}`)),n("div",null,n("button",{onClick:()=>navigator.clipboard.writeText(`c-${t.id}`)},"Kopiera ID"),n("button",{onClick:()=>this.selectedID=`c-${t.id}`},"Ladda kategori"))),t.show_products&&t.products?n("ul",null,t.products.map((t=>n("li",null,n("div",{class:"hemfixarna_categories--label hemfixarna_product--label"},n("div",null,n("p",null,t.fields.post_title),n("span",null,t.fields.ID)),n("div",null,n("button",{onClick:()=>navigator.clipboard.writeText(String(t.fields.ID))},"Kopiera ID"),n("button",{onClick:()=>this.selectedID=String(t.fields.ID)},"Ladda produkt"))))))):n("ul",null,t.sub_categories&&t.sub_categories.map((t=>n("li",null,n("div",{class:"hemfixarna_categories--label"},n("div",null,n("p",null,t.name),n("span",null,`c-${t.id}`)),n("div",null,n("button",{onClick:()=>navigator.clipboard.writeText(`c-${t.id}`)},"Kopiera ID"),n("button",{onClick:()=>this.selectedID=`c-${t.id}`},"Ladda kategori"))),n("ul",null,t.products.map((t=>n("li",null,n("div",{class:"hemfixarna_categories--label hemfixarna_product--label"},n("div",null,n("p",null,t.fields.post_title),n("span",null,t.fields.ID)),n("div",null,n("button",{onClick:()=>navigator.clipboard.writeText(String(t.fields.ID))},"Kopiera ID"),n("button",{onClick:()=>this.selectedID=String(t.fields.ID)},"Ladda produkt"))))))))))))))):this.tree?n("div",null,this.tree.sub_cats.map((t=>n("li",null,n("div",{class:"hemfixarna_categories--label hemfixarna_categories--label--big"},n("div",null,n("p",null,t.name),n("span",null,`category/${t.slug}`)),n("div",null,n("button",{onClick:()=>navigator.clipboard.writeText(`category/${t.slug}`)},"Kopiera slug"),n("button",{onClick:()=>this.selectedSlug=`category/${t.slug}`},"Ladda kategori"))),n("ul",null,t.services.map((t=>n("li",null,n("div",{class:"hemfixarna_categories--label"},n("div",null,n("p",null,t.post_title),n("span",null,`service/${t.post_name}`)),n("div",null,n("button",{onClick:()=>navigator.clipboard.writeText(`service/${t.post_name}`)},"Kopiera slug"),n("button",{onClick:()=>this.selectedSlug=`service/${t.post_name}`},"Ladda kategori"))),n("ul",null,t.products.map((t=>n("li",null,n("div",{class:"hemfixarna_categories--label"},n("div",null,n("p",null,t.post_title),n("span",null,`product/${t.post_name}`)),n("div",null,n("button",{onClick:()=>navigator.clipboard.writeText(`product/${t.post_name}`)},"Kopiera slug"),n("button",{onClick:()=>this.selectedSlug=`product/${t.post_name}`},"Ladda kategori"))))))))))))))):null))}static get watchers(){return{buttonBg:["debouncedFunction"],buttonColor:["debouncedFunction"]}}};it.style=tt;var et=class extends Error{constructor(){super("Invalid swedish personal identity number")}};var nt=(t,i)=>{const e=t.getTime()-i.getTime();return e<0?-1:e>0?1:e};var st=(t,i)=>{const e=nt(t,i);const n=Math.abs(t.getFullYear()-i.getFullYear());t.setFullYear(t.getFullYear()-e*n);const s=nt(t,i)===-e;const a=e*(n-+s);return a===0?0:a};var at=t=>{let i=0;t+="";for(let e=0,n=t.length;e<n;e++){let n=parseInt(t[e]);n*=2-e%2;if(n>9){n-=9}i+=n}return Math.ceil(i/10)*10-i};var rt=(t,i,e)=>{i-=1;const n=new Date(t,i,e);return!(n.getFullYear()!==t||n.getMonth()!==i||n.getDate()!==e)};var ot=class{constructor(t,i){this._century="";this._fullYear="";this._year="";this._month="";this._day="";this._sep="";this._num="";this._check="";this.parse(t,{allowCoordinationNumber:true,allowInterimNumber:false,...i})}get century(){return this._century}get fullYear(){return this._fullYear}get year(){return this._year}get month(){return this._month}get day(){return this._day}get sep(){return this._sep}get num(){return this._num}get check(){return this._check}static parse(t,i){return new ot(t,i)}static valid(t,i){try{ot.parse(t,i);return true}catch(t){return false}}parse(t,i){if(t.length<10||t.length>13){throw new et}const e=/^(\d{2}){0,1}(\d{2})(\d{2})(\d{2})([+-]?)((?!000)\d{3}|[TRSUWXJKLMN]\d{2})(\d)$/;const n=e.exec(t);if(!n){throw new et}const s=n[1];const a=n[2];const r=n[3];const o=n[4];const l=n[5];const h=n[6];const c=n[7];if(typeof s==="undefined"||!s.length){const t=new Date;let i=0;if(l==="+"){this._sep="+";i=t.getFullYear()-100}else{this._sep="-";i=t.getFullYear()}this._century=(""+(i-(i-parseInt(a))%100)).substr(0,2)}else{this._century=s;if((new Date).getFullYear()-parseInt(s+a,10)<100){this._sep="-"}else{this._sep="+"}}this._year=a;this._fullYear=this._century+a;this._month=r;this._day=o;this._num=h;this._check=c;if(!this.valid()){throw new et}if(!(i==null?void 0:i.allowCoordinationNumber)&&this.isCoordinationNumber()){throw new et}if(!(i==null?void 0:i.allowInterimNumber)&&this.isInterimNumber()){throw new et}}valid(){const t=at(this.year+this.month+this.day+this.num.replace(/[TRSUWXJKLMN]/,"1"))===+this.check&&!!this.check;if(t&&rt(parseInt(this.century+this.year),+this.month,+this.day)){return t}return t&&rt(parseInt(this.century+this.year),+this.month,+this.day-60)}format(t=false){if(t){return`${this.century}${this.year}${this.month}${this.day}${this.num}${this.check}`}return`${this.year}${this.month}${this.day}${this.sep}${this.num}${this.check}`}getAge(){const t=this.getDate();return st(new Date(Date.now()),t)}getDate(){let t=+this.day;if(this.isCoordinationNumber()){t-=60}const i=this.century+this.year+"-"+this.month+"-"+(t<10?"0"+t:t);return new Date(i)}isInterimNumber(){return/[TRSUWXJKLMN]/.test(this.num[0])}isCoordinationNumber(){return rt(parseInt(this.century+this.year),+this.month,+this.day-60)}isFemale(){return!this.isMale()}isMale(){const t=parseInt(this.num.substr(-1));return t%2===1}};var lt=ot;function ht(t,i,e){return e={path:i,exports:{},require:function(t,i){return ct()}},t(e,e.exports),e.exports}function ct(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var ut=ht((function(t,i){Object.defineProperty(i,"__esModule",{value:true});i.utf8=void 0;i.utf8={encode:e,decode:n};function e(t){t=t.replace(/\r\n/g,"\n");var i="";for(var e=0;e<t.length;e++){var n=t.charCodeAt(e);if(n<128){i+=String.fromCharCode(n)}else if(n>127&&n<2048){i+=String.fromCharCode(n>>6|192);i+=String.fromCharCode(n&63|128)}else{i+=String.fromCharCode(n>>12|224);i+=String.fromCharCode(n>>6&63|128);i+=String.fromCharCode(n&63|128)}}return i}function n(t){var i="";var e=0;var n=0;var s=0;var a=0;while(e<t.length){n=t.charCodeAt(e);if(n<128){i+=String.fromCharCode(n);e++}else if(n>191&&n<224){s=t.charCodeAt(e+1);i+=String.fromCharCode((n&31)<<6|s&63);e+=2}else{s=t.charCodeAt(e+1);a=t.charCodeAt(e+2);i+=String.fromCharCode((n&15)<<12|(s&63)<<6|a&63);e+=3}}return i}}));var dt=ht((function(t,i){Object.defineProperty(i,"__esModule",{value:true});i.generate=void 0;function e(t){var i=[];var e;var n;var a;var r;var o;var l;var m;var x;var g;var b=7;var v=12;var _=17;var y=22;var w=5;var k=9;var C=14;var $=20;var S=4;var T=11;var z=16;var j=23;var O=6;var I=10;var N=15;var A=21;var F=ut.utf8.encode(t);i=p(F);l=1732584193;m=4023233417;x=2562383102;g=271733878;for(e=0;e<i.length;e+=16){n=l;a=m;r=x;o=g;l=h(l,m,x,g,i[e+0],b,3614090360);g=h(g,l,m,x,i[e+1],v,3905402710);x=h(x,g,l,m,i[e+2],_,606105819);m=h(m,x,g,l,i[e+3],y,3250441966);l=h(l,m,x,g,i[e+4],b,4118548399);g=h(g,l,m,x,i[e+5],v,1200080426);x=h(x,g,l,m,i[e+6],_,2821735955);m=h(m,x,g,l,i[e+7],y,4249261313);l=h(l,m,x,g,i[e+8],b,1770035416);g=h(g,l,m,x,i[e+9],v,2336552879);x=h(x,g,l,m,i[e+10],_,4294925233);m=h(m,x,g,l,i[e+11],y,2304563134);l=h(l,m,x,g,i[e+12],b,1804603682);g=h(g,l,m,x,i[e+13],v,4254626195);x=h(x,g,l,m,i[e+14],_,2792965006);m=h(m,x,g,l,i[e+15],y,1236535329);l=c(l,m,x,g,i[e+1],w,4129170786);g=c(g,l,m,x,i[e+6],k,3225465664);x=c(x,g,l,m,i[e+11],C,643717713);m=c(m,x,g,l,i[e+0],$,3921069994);l=c(l,m,x,g,i[e+5],w,3593408605);g=c(g,l,m,x,i[e+10],k,38016083);x=c(x,g,l,m,i[e+15],C,3634488961);m=c(m,x,g,l,i[e+4],$,3889429448);l=c(l,m,x,g,i[e+9],w,568446438);g=c(g,l,m,x,i[e+14],k,3275163606);x=c(x,g,l,m,i[e+3],C,4107603335);m=c(m,x,g,l,i[e+8],$,1163531501);l=c(l,m,x,g,i[e+13],w,2850285829);g=c(g,l,m,x,i[e+2],k,4243563512);x=c(x,g,l,m,i[e+7],C,1735328473);m=c(m,x,g,l,i[e+12],$,2368359562);l=u(l,m,x,g,i[e+5],S,4294588738);g=u(g,l,m,x,i[e+8],T,2272392833);x=u(x,g,l,m,i[e+11],z,1839030562);m=u(m,x,g,l,i[e+14],j,4259657740);l=u(l,m,x,g,i[e+1],S,2763975236);g=u(g,l,m,x,i[e+4],T,1272893353);x=u(x,g,l,m,i[e+7],z,4139469664);m=u(m,x,g,l,i[e+10],j,3200236656);l=u(l,m,x,g,i[e+13],S,681279174);g=u(g,l,m,x,i[e+0],T,3936430074);x=u(x,g,l,m,i[e+3],z,3572445317);m=u(m,x,g,l,i[e+6],j,76029189);l=u(l,m,x,g,i[e+9],S,3654602809);g=u(g,l,m,x,i[e+12],T,3873151461);x=u(x,g,l,m,i[e+15],z,530742520);m=u(m,x,g,l,i[e+2],j,3299628645);l=d(l,m,x,g,i[e+0],O,4096336452);g=d(g,l,m,x,i[e+7],I,1126891415);x=d(x,g,l,m,i[e+14],N,2878612391);m=d(m,x,g,l,i[e+5],A,4237533241);l=d(l,m,x,g,i[e+12],O,1700485571);g=d(g,l,m,x,i[e+3],I,2399980690);x=d(x,g,l,m,i[e+10],N,4293915773);m=d(m,x,g,l,i[e+1],A,2240044497);l=d(l,m,x,g,i[e+8],O,1873313359);g=d(g,l,m,x,i[e+15],I,4264355552);x=d(x,g,l,m,i[e+6],N,2734768916);m=d(m,x,g,l,i[e+13],A,1309151649);l=d(l,m,x,g,i[e+4],O,4149444226);g=d(g,l,m,x,i[e+11],I,3174756917);x=d(x,g,l,m,i[e+2],N,718787259);m=d(m,x,g,l,i[e+9],A,3951481745);l=s(l,n);m=s(m,a);x=s(x,r);g=s(g,o)}return f(l)+f(m)+f(x)+f(g)}i.generate=e;function n(t,i){return t<<i|t>>>32-i}function s(t,i){var e;var n;var s;var a;var r;s=t&2147483648;a=i&2147483648;e=t&1073741824;n=i&1073741824;r=(t&1073741823)+(i&1073741823);if(e&n){return r^2147483648^s^a}if(e|n){if(r&1073741824){return r^3221225472^s^a}else{return r^1073741824^s^a}}else{return r^s^a}}function a(t,i,e){return t&i|~t&e}function r(t,i,e){return t&e|i&~e}function o(t,i,e){return t^i^e}function l(t,i,e){return i^(t|~e)}function h(t,i,e,r,o,l,h){t=s(t,s(s(a(i,e,r),o),h));return s(n(t,l),i)}function c(t,i,e,a,o,l,h){t=s(t,s(s(r(i,e,a),o),h));return s(n(t,l),i)}function u(t,i,e,a,r,l,h){t=s(t,s(s(o(i,e,a),r),h));return s(n(t,l),i)}function d(t,i,e,a,r,o,h){t=s(t,s(s(l(i,e,a),r),h));return s(n(t,o),i)}function p(t){var i;var e=t.length;var n=e+8;var s=(n-n%64)/64;var a=(s+1)*16;var r=Array(a-1);var o=0;var l=0;while(l<e){i=(l-l%4)/4;o=l%4*8;r[i]=r[i]|t.charCodeAt(l)<<o;l++}i=(l-l%4)/4;o=l%4*8;r[i]=r[i]|128<<o;r[a-2]=e<<3;r[a-1]=e>>>29;return r}function f(t){var i="";var e="";var n;var s;for(s=0;s<=3;s++){n=t>>>s*8&255;e="0"+n.toString(16);i=i+e.substr(e.length-2,2)}return i}}));var pt=ht((function(t,i){Object.defineProperty(i,"__esModule",{value:true});i.MD5=i.generate=void 0;var e=dt;Object.defineProperty(i,"generate",{enumerable:true,get:function(){return e.generate}});i.MD5={generate:dt.generate}}));const ft=async t=>{var i;const e=await fetch((i="https://hemfixare-lookup.vercel.app/api")!==null&&i!==void 0?i:"https://hemfixare-lookup.vercel.app/api",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:t,hash:pt.MD5.generate(String.fromCharCode(83,101,67,82,101,116)+t)})});const n=await e.json();return n};const mt=class{constructor(t){e(this,t);this.handleChangeEmail=t=>{this.emailError=null;this.email=t.target.value};this.handleChangePhone=t=>{this.phoneError=null;this.phone=t.target.value};this.handleChangessn=t=>{this.ssnError=null;this.ssn=t.target.value};this.handleSubmit=async t=>{t.preventDefault();const i=new RegExp(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);const e=i.test(this.email);if(!e){this.emailError="Ange en giltig e-postadress"}const n=/^[\d\s()+-]{6,}$/.test(this.phone);if(!n){this.phoneError="Ange ett giltigt telefonnummer"}const s=lt.valid(this.ssn);if(!s){this.ssnError="Ange ett giltigt personnummer"}else if(s){const t=lt.parse(this.ssn).format(true);this.ssn=[t.slice(0,8),"-",t.slice(8)].join("")}if(e&&n&&s){try{const t=await ft(this.ssn);if(t){x.creditSafeUser=t;x.checkoutStep=2;x.user=Object.assign(Object.assign({},t),{email:this.email,phone:this.phone,ssn:this.ssn})}else{this.ssnError="Vi kunde tyvärr inte hitta en address med ditt angivna personnummer"}}catch(t){this.ssnError="Vi kunde tyvärr inte hitta en address med ditt angivna personnummer";console.log(t)}finally{const t=this.el.closest(".hemfixarna_content");v(t)}}};this.render=()=>n("form",{class:"mb-2",onSubmit:t=>this.handleSubmit(t)},n("div",null,n("input",{class:`${this.email.length?"input_active":""}`,onChange:t=>this.handleChangeEmail(t),type:"email",name:"email",value:this.email}),n("label",{htmlFor:"email"},"E-post ")),this.emailError&&n("span",null,this.emailError),n("div",null,n("input",{class:`${this.phone.length?"input_active":""}`,onChange:t=>this.handleChangePhone(t),type:"tel",name:"phone",value:this.phone}),n("label",{htmlFor:"phone"},"Mobiltelefon ")),this.phoneError&&n("span",null,this.phoneError),n("div",null,n("input",{class:`${this.ssn.length?"input_active":""}`,onChange:t=>this.handleChangessn(t),type:"tel",name:"ssn",value:this.ssn}),n("label",{htmlFor:"phone"},"Personnummer*")),this.ssnError&&n("span",null,this.ssnError),n("input",{type:"submit",value:"Fortsätt och Boka*"}),n("p",null,"*Vi hämtar din adress"));this.email="";this.emailError=null;this.phone="";this.phoneError=null;this.ssn="";this.ssnError=null}componentWillLoad(){if(x.user){this.email=x.user.email;this.phone=x.user.phone;this.ssn=x.user.ssn}}get el(){return s(this)}};const xt="";const gt=class{constructor(t){e(this,t);this.id=undefined;this.loadFromQuery=true;this.isDemo=false;this.widgetStyle=L.standard;this.buttonColor=undefined;this.buttonBg=undefined}render(){return n("hemfixarna-component",{widgetStyle:this.widgetStyle,buttonBg:this.buttonBg,buttonColor:this.buttonColor,nav:{url:"https://www.hornbach.se/",logo:"assets/hornbach/logo.svg",background:"./assets/hornbach/nav.jpg"},isDemo:this.isDemo,loadFromQuery:this.loadFromQuery,id:this.id,business:F.hornbach})}};gt.style=xt;const bt=class{constructor(t){e(this,t);this.logo=r(`./assets/hemfixarna.svg`);this.checkoutList=[{trust_badge:"Efter att du fyllt i formuläret blir du kontaktad av en Hemfixare för bokning av tid."},{trust_badge:"När jobbet är klart kommer du få en faktura med RUT/ROT-avdrag."}];this.list=null}getList(){return this.list?this.list:this.checkoutList}render(){const t=r(`./assets/checked.svg`);return n("div",{class:"hemfixarna_info"},x.step<5?n(a,null,n("h2",null,"Vilka är Hemfixarna?"),n("p",null,"Vi fixar allt från krångliga datorer till montering av möbler. Vi finns i hela Sverige och är alltid redo att rycka ut.")):n("h2",null,"Vad händer nu?"),n("ul",{class:"hemfixarna_features"},this.getList().map((i=>n("li",{key:i.trust_badge},n("img",{src:t,alt:"checked"}),n("p",null,i.trust_badge))))),n("img",{src:this.logo,width:200,alt:"hemfixarna"}),n("a",{class:"hemfixarna_product--link",target:"_blank",href:x.options.link.url},x.options.link.title))}};const vt=class{constructor(t){e(this,t);this.id=undefined;this.loadFromQuery=false;this.widgetStyle=L.standard;this.buttonColor=undefined;this.buttonBg=undefined}render(){return n("hemfixarna-component",{widgetStyle:this.widgetStyle,buttonBg:this.buttonBg,buttonColor:this.buttonColor,loadFromQuery:this.loadFromQuery,id:this.id,business:F.kund})}};const _t=class{constructor(t){e(this,t);this.render=()=>n("div",{style:{background:`url(${x.options.thank_you_image})`},class:"hemfixarna_order"},n("div",null),n("div",null,n("h2",null,"Tack för din bokning"),n("hemfixarna-orderrows",{tree:this.tree,cart:false}),n("span",{onClick:()=>this.resetShop()},n("button",null,"Gör en ny bokning")),n("hemfixarna-info",{list:[{trust_badge:"Du kommer bli kontaktad av en Hemfixare för bokning av tid."},{trust_badge:"När jobbet är klart kommer du få en faktura med RUT/ROT-avdrag."}]})));this.tree=undefined}resetShop(){x.step=1;x.cart=[];x.selectedCategory=null;x.selectedService=null;x.selectedProduct=null;x.checkoutStep=1}disconnectedCallback(){this.resetShop()}};const yt=class{constructor(t){e(this,t);this.cart=true;this.tree=undefined}goToProduct(t){if(x.customer){const i=x.customer.categories.map((t=>t.show_products?t.products:t.sub_categories?t.sub_categories.map((t=>t.products)):[])).flat().flat();const e=i.find((i=>i&&i.fields.ID===t));if(e){x.selectedProduct=e.fields;x.step=4}}else{const i=this.tree.sub_cats.map((t=>t.services)).flat();const e=i.map((t=>t.products)).flat();const n=e.find((i=>i.ID===t));const s=i.find((i=>i.products.find((i=>i.ID===t))));const a=this.tree.sub_cats.find((i=>i.services.find((i=>i.products.find((i=>i.ID===t))))));x.selectedCategory=a;x.selectedService=s;x.selectedProduct=n;x.step=4}}openRot(){x.modal={title:x.rotOptions.rot_start_fee_heading,text:[x.rotOptions.rot_start_fee_text,x.rotOptions.rot_start_fee_text_secondary]}}openRut(){x.modal={title:x.rutOptions.rut_start_fee_heading,text:[x.rutOptions.rut_start_fee_text,x.rutOptions.rut_start_fee_text_secondary]}}render(){const t=r(`./assets/info.svg`);return n(a,null,n("ul",{class:"hemfixarna_cart--items"},x.cart.map((t=>{var i;return n("li",{class:"hemfixarna_cart--item"},n("div",null,n("div",null,t.icon&&n("img",{width:30,src:(i=t.icon.url)!==null&&i!==void 0?i:t.icon,alt:t.name}),n("p",null,n("strong",null,t.amount,"x "),t.name)),this.cart&&n("button",{onClick:()=>this.goToProduct(t.id)},"Ändra")),n("p",null,n("strong",null,k(t,t.price,t.amount),"kr")),t.parts.length>0&&n("ul",null,t.parts.map((i=>n("li",null,n("p",null,n("strong",null,i.amount,"x "),i.name),n("p",null,n("strong",null,$(i,t,i.amount),"kr")))))))}))),n("div",{class:"hemfixarna_cart--additional"},S().rot>0&&n("div",{class:"hemfixarna_cart--startfee"},n("p",null,n("strong",{onClick:()=>this.openRot()},x.rotOptions.rot_start_fee_heading,n("img",{height:16,src:t,alt:"info monteringsavgift"}))),n("p",null,S().rot,"kr")),S().rut>0&&n("div",{class:"hemfixarna_cart--startfee"},n("p",null,n("strong",{onClick:()=>this.openRut()},x.rutOptions.rut_start_fee_heading,n("img",{height:16,src:t,alt:"info monteringsavgift"}))),n("p",null,S().rut,"kr")),x.cart.find((t=>t.rot))&&n("div",{class:"hemfixarna_cart--rutrot"},n("div",null,this.cart&&n("label",{class:"switch"},n("input",{checked:x.rot,onChange:()=>x.rot=!x.rot,type:"checkbox"}),n("span",{class:"slider"})),n("p",null,"ROT-avdrag")),n("p",null,"(-",x.rot?z():0,"kr)")),x.cart.find((t=>t.rut))&&n("div",{class:"hemfixarna_cart--rutrot"},n("div",null,n("label",{class:"switch"},n("input",{onChange:()=>x.rut=!x.rut,checked:x.rut,type:"checkbox"}),n("span",{class:"slider"})),n("p",null,"RUT-avdrag")),n("p",null,"(-",x.rut?j():0,"kr)"))),n("div",{class:"hemfixarna_cart--price"},n("h2",null,"Totalbelopp: "),n("h2",null,O(),"kr")))}};const wt=class{constructor(t){e(this,t);this.amount=0;this.hideDescription=true}addProduct(){const t=x.cart.find((t=>t.id===x.selectedProduct.ID));if(t){t.amount++;x.cart=[...x.cart]}else{x.cart=[...x.cart,{id:x.selectedProduct.ID,rut:x.selectedProduct.rut,rot:x.selectedProduct.rot,amount:1,parts:[],price:x.selectedProduct.price,name:x.selectedProduct.post_title,start_fee:!x.selectedProduct.hide_start_fee,terms_checkout:x.selectedProduct.terms_checkout,terms_show_checkbox:x.selectedProduct.terms_show_checkbox,icon:x.selectedProduct.icon}]}}removeProduct(){const t=x.cart.find((t=>t.id===x.selectedProduct.ID));if(t&&t.amount>1){t.amount--;x.cart=[...x.cart]}else{x.cart=x.cart.filter((t=>t.id!==x.selectedProduct.ID))}}addPart(t){var i;const e=x.cart.find((t=>t.id===x.selectedProduct.ID));if(e){const n=e.parts.find((i=>i.id===t.ID));if(n){n.amount++;e.parts=[...e.parts]}else{e.parts=[...e.parts,{id:t.ID,amount:1,price:t.price,name:(i=t.title)!==null&&i!==void 0?i:t.post_title}]}x.cart=[...x.cart.filter((t=>t.id!==e.id)),e]}}removePart(t){const i=x.cart.find((t=>t.id===x.selectedProduct.ID));if(i){const e=i.parts.find((i=>i.id===t.ID));if(e&&e.amount>1){e.amount--;i.parts=[...i.parts]}else{i.parts=i.parts.filter((i=>i.id!==t.ID))}x.cart=[...x.cart.filter((t=>t.id!==i.id)),i]}}goToCart(){const t=x.cart.find((t=>t.id===x.selectedProduct.ID));if(t){x.step=5;const t=this.el.closest(".hemfixarna_content");v(t)}}getAmount(){var t;return((t=x.cart.find((t=>t.id===x.selectedProduct.ID)))===null||t===void 0?void 0:t.amount)||0}getPartAmount(t){var i;const e=x.cart.find((t=>t.id===x.selectedProduct.ID));return((i=e===null||e===void 0?void 0:e.parts.find((i=>i.id===t)))===null||i===void 0?void 0:i.amount)||0}getTotalPrice(){let t=0;const i=x.cart.find((t=>t.id===x.selectedProduct.ID));if(i){const e=i.parts.reduce(((t,i)=>{const e=x.selectedProduct.parts.find((t=>t.ID===i.id));if(e){return t+e.price*i.amount}return t}),0);t=x.selectedProduct.price*i.amount+e}else{t=x.selectedProduct.price}return k(x.selectedProduct,t)}render(){var t,i,e;const s=r(`./assets/checked.svg`);const a=r(`./assets/plus.svg`);const o=r(`./assets/minus.svg`);return n("div",{class:"hemfixarna_product"},n("div",{class:"hemfixarna_product--top"},x.selectedProduct.icon&&n("img",{width:80,src:(t=x.selectedProduct.icon.url)!==null&&t!==void 0?t:x.selectedProduct.icon,alt:x.selectedProduct.post_title}),n("div",null,n("h1",null,x.selectedProduct.post_title),n("h2",null,"Från: ",k(x.selectedProduct)," kr"))),n("div",{class:"hemfixarna_product--grid"},n("div",{class:"hemfixarna_product--left"},((i=x.selectedProduct.list)===null||i===void 0?void 0:i.length)&&n("ul",{class:"hemfixarna_features"},x.selectedProduct.list.map((t=>n("li",{key:t.bullet},n("img",{src:s,alt:"checked"}),n("p",null,t.bullet))))),x.selectedProduct.description&&n("p",{onClick:()=>this.hideDescription=false,class:`hemfixarna_description ${this.hideDescription?"hemfixarna_description--hidden":""}`,innerHTML:x.selectedProduct.description})),n("div",{class:"hemfixarna_product--right"},n("ul",null,n("li",{class:"hemfixarna_product--item"},n("div",null,n("p",null,"Antal ",x.selectedProduct.post_title),n("p",{class:"hemfixarna_product--price"},k(x.selectedProduct),"kr/st")),n("div",{class:"hemfixarna_counter"},n("img",{class:`${this.getAmount()===0?"disabled":""}`,src:o,onClick:()=>this.removeProduct()}),n("span",null,this.getAmount()),n("img",{src:a,onClick:()=>this.addProduct()}))),((e=x.selectedProduct.parts)===null||e===void 0?void 0:e.length)&&x.selectedProduct.parts.map((t=>{var i;return n("li",{class:"hemfixarna_part"},n("div",null,n("p",null,(i=t.title)!==null&&i!==void 0?i:t.post_title),n("p",{class:"hemfixarna_product--price"},$(t,x.selectedProduct),"kr/st")),n("div",{class:"hemfixarna_counter"},n("img",{class:`${this.getPartAmount(t.ID)===0?"disabled":""}`,src:o,onClick:()=>this.removePart(t)}),n("span",null,this.getPartAmount(t.ID)),n("img",{class:`${this.getAmount()===0?"disabled":""}`,src:a,onClick:()=>this.addPart(t)})))}))),n("h4",{class:"hemfixarna_product--total"},"Totalt ",this.getTotalPrice()," kr"),n("button",{onClick:()=>this.goToCart(),class:`hemfixarna_buy ${this.getAmount()===0?"disabled":""}`},"Boka"),!x.selectedProduct.hide_start_fee&&(x.selectedProduct.rot||x.selectedProduct.rut)&&x.rutOptions&&x.rotOptions&&n("p",{class:"hemfixarna_terms"},n("strong",null,x.selectedProduct.rot?x.rotOptions.rot_start_fee_heading:x.rutOptions.rut_start_fee_heading),n("br",null),n("span",{innerHTML:x.selectedProduct.rot?x.rotOptions.rot_start_fee_text:x.rutOptions.rut_start_fee_text})),x.options&&n("hemfixarna-info",{list:x.options.trust}))))}get el(){return s(this)}};const kt=class{constructor(t){e(this,t)}render(){return n("div",null,n("h2",null,x.selectedService.post_title),n("div",{class:"hemfixarna_categories--wrapper"},n("div",null,n("ul",{class:"hemfixarna_categories"},x.selectedService.products.sort(((t,i)=>t.post_title<i.post_title?-1:1)).map((t=>{var i;return n("hemfixarna-box",{post:t,icon:(i=t.icon.url)!==null&&i!==void 0?i:t.icon,postTitle:t.post_title})})))),n("hemfixarna-info",{list:x.options.trust})))}};const Ct="";const $t=class{constructor(t){e(this,t);this.id=undefined;this.customer=undefined;this.loadFromQuery=false;this.widgetStyle=L.standard;this.buttonColor=undefined;this.buttonBg=undefined}render(){return n("hemfixarna-component",{widgetStyle:this.widgetStyle,buttonBg:this.buttonBg,buttonColor:this.buttonColor,loadFromQuery:this.loadFromQuery,id:this.id,business:F.skanska})}};$t.style=Ct;const St=class{constructor(t){e(this,t);this.tree=undefined;this.slug=undefined}isMainCategory(t){return t.show_products!==undefined}render(){return x.customer?n("div",null,n("h2",null,x.selectedCustomerCategory?x.selectedCustomerCategory.name:"Alla tjänster"),n("div",{class:"hemfixarna_categories--wrapper"},n("ul",{class:"hemfixarna_categories"},x.selectedCustomerCategory?this.isMainCategory(x.selectedCustomerCategory)&&x.selectedCustomerCategory.sub_categories&&!x.selectedCustomerCategory.show_products?x.selectedCustomerCategory.sub_categories.map((t=>n("hemfixarna-box",{category:t}))):x.selectedCustomerCategory.products?x.selectedCustomerCategory.products.map((t=>n("hemfixarna-box",{category:t.fields}))):null:x.customer.categories.map((t=>n("hemfixarna-box",{category:t})))),n("hemfixarna-info",{list:x.options.trust}))):n("div",null,n("h2",null,"Alla tjänster"),n("div",{class:"hemfixarna_categories--wrapper"},n("ul",{class:"hemfixarna_categories"},this.tree.sub_cats.sort(((t,i)=>t.name<i.name?-1:1)).map((t=>{var i;return n("hemfixarna-box",{post:t,icon:(i=t.icon.url)!==null&&i!==void 0?i:t.icon,postTitle:t.name})}))),n("hemfixarna-info",{list:x.options.trust})))}};const Tt="";const zt=class{constructor(t){e(this,t);this.id=undefined;this.loadFromQuery=false;this.widgetStyle=L.standard;this.buttonColor=undefined;this.buttonBg=undefined}render(){return n("hemfixarna-component",{widgetStyle:this.widgetStyle,buttonBg:this.buttonBg,buttonColor:this.buttonColor,loadFromQuery:this.loadFromQuery,id:this.id,business:F.string})}};zt.style=Tt;export{_ as hemfixarna_address,N as hemfixarna_box,A as hemfixarna_breadcrumbs,B as hemfixarna_byggmax,D as hemfixarna_cart,K as hemfixarna_category,q as hemfixarna_checkout,Z as hemfixarna_component,it as hemfixarna_demo,mt as hemfixarna_getuser,gt as hemfixarna_hornbach,bt as hemfixarna_info,vt as hemfixarna_kund,_t as hemfixarna_order,yt as hemfixarna_orderrows,wt as hemfixarna_product,kt as hemfixarna_service,$t as hemfixarna_skanska,St as hemfixarna_start,zt as hemfixarna_string_furniture};
2
- //# sourceMappingURL=p-58141d4b.entry.js.map