hemfixarna-web-components 1.2.2 → 1.2.3

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.
@@ -989,7 +989,7 @@ const MyComponent$4 = class {
989
989
  }
990
990
  render() {
991
991
  const copy = index.getAssetPath(`./assets/copy.png`);
992
- return (index.h("div", null, index.h("div", null, index.h("div", { onClick: () => this.copyExample(), class: "hemfixarna_example" }, index.h("p", null, this.getExample()), index.h("img", { src: copy, height: 20 }), index.h("span", { class: "hemfixarna_example--tooltip" }, this.tooltipText)), "hornbach" === Business.byggmax && (index.h("hemfixarna-byggmax", { forceOldTree: Boolean(process.env.FORCE_OLD_TREE), slug: this.selectedSlug, id: this.selectedID })), "hornbach" === Business.skanska && index.h("hemfixarna-skanska", { id: this.selectedID }), "hornbach" === Business.string && index.h("hemfixarna-string-furniture", { id: this.selectedID }), "hornbach" === Business.hornbach && index.h("hemfixarna-hornbach", { id: this.selectedID }), "hornbach" === Business.kund && index.h("hemfixarna-kund", { id: this.selectedID }), index.h("div", { class: "hemfixarna_install" }, index.h("div", { onClick: () => this.copyCdn(), class: "hemfixarna_example" }, index.h("p", null, this.cdnLink), index.h("span", { class: "hemfixarna_example--tooltip" }, this.tooltipText), index.h("img", { src: copy, height: 20 })))), index.h("ul", { class: "hemfixarna_categories" }, this.customer ? (index.h("div", null, this.customer.categories.map(c => (index.h("li", null, index.h("div", { class: "hemfixarna_categories--label hemfixarna_categories--label--big" }, index.h("div", null, index.h("p", null, c.name), index.h("span", null, `c-${c.id}`)), index.h("div", null, index.h("button", { onClick: () => navigator.clipboard.writeText(`c-${c.id}`) }, "Kopiera ID"), index.h("button", { onClick: () => (this.selectedID = `c-${c.id}`) }, "Ladda kategori"))), c.show_products && c.products ? (index.h("ul", null, c.products.map(p => (index.h("li", null, index.h("div", { class: "hemfixarna_categories--label hemfixarna_product--label" }, index.h("div", null, index.h("p", null, p.fields.post_title), index.h("span", null, p.fields.ID)), index.h("div", null, index.h("button", { onClick: () => navigator.clipboard.writeText(String(p.fields.ID)) }, "Kopiera ID"), index.h("button", { onClick: () => (this.selectedID = String(p.fields.ID)) }, "Ladda produkt")))))))) : (index.h("ul", null, c.sub_categories &&
992
+ return (index.h("div", null, index.h("div", null, index.h("div", { onClick: () => this.copyExample(), class: "hemfixarna_example" }, index.h("p", null, this.getExample()), index.h("img", { src: copy, height: 20 }), index.h("span", { class: "hemfixarna_example--tooltip" }, this.tooltipText)), "hornbach" === Business.byggmax && (index.h("hemfixarna-byggmax", { forceOldTree: Boolean(process.env.FORCE_OLD_TREE), slug: this.selectedSlug, id: this.selectedID })), "hornbach" === Business.skanska && index.h("hemfixarna-skanska", { id: this.selectedID }), "hornbach" === Business.string && index.h("hemfixarna-string-furniture", { id: this.selectedID }), "hornbach" === Business.hornbach && index.h("hemfixarna-hornbach", { isDemo: true, id: this.selectedID }), "hornbach" === Business.kund && index.h("hemfixarna-kund", { id: this.selectedID }), index.h("div", { class: "hemfixarna_install" }, index.h("div", { onClick: () => this.copyCdn(), class: "hemfixarna_example" }, index.h("p", null, this.cdnLink), index.h("span", { class: "hemfixarna_example--tooltip" }, this.tooltipText), index.h("img", { src: copy, height: 20 })))), index.h("ul", { class: "hemfixarna_categories" }, this.customer ? (index.h("div", null, this.customer.categories.map(c => (index.h("li", null, index.h("div", { class: "hemfixarna_categories--label hemfixarna_categories--label--big" }, index.h("div", null, index.h("p", null, c.name), index.h("span", null, `c-${c.id}`)), index.h("div", null, index.h("button", { onClick: () => navigator.clipboard.writeText(`c-${c.id}`) }, "Kopiera ID"), index.h("button", { onClick: () => (this.selectedID = `c-${c.id}`) }, "Ladda kategori"))), c.show_products && c.products ? (index.h("ul", null, c.products.map(p => (index.h("li", null, index.h("div", { class: "hemfixarna_categories--label hemfixarna_product--label" }, index.h("div", null, index.h("p", null, p.fields.post_title), index.h("span", null, p.fields.ID)), index.h("div", null, index.h("button", { onClick: () => navigator.clipboard.writeText(String(p.fields.ID)) }, "Kopiera ID"), index.h("button", { onClick: () => (this.selectedID = String(p.fields.ID)) }, "Ladda produkt")))))))) : (index.h("ul", null, c.sub_categories &&
993
993
  c.sub_categories.map(sc => (index.h("li", null, index.h("div", { class: "hemfixarna_categories--label" }, index.h("div", null, index.h("p", null, sc.name), index.h("span", null, `c-${sc.id}`)), index.h("div", null, index.h("button", { onClick: () => navigator.clipboard.writeText(`c-${sc.id}`) }, "Kopiera ID"), index.h("button", { onClick: () => (this.selectedID = `c-${sc.id}`) }, "Ladda kategori"))), index.h("ul", null, sc.products.map(p => (index.h("li", null, index.h("div", { class: "hemfixarna_categories--label hemfixarna_product--label" }, index.h("div", null, index.h("p", null, p.fields.post_title), index.h("span", null, p.fields.ID)), index.h("div", null, index.h("button", { onClick: () => navigator.clipboard.writeText(String(p.fields.ID)) }, "Kopiera ID"), index.h("button", { onClick: () => (this.selectedID = String(p.fields.ID)) }, "Ladda produkt"))))))))))))))))) : (index.h("div", null, this.tree.sub_cats.map(c => (index.h("li", null, index.h("div", { class: "hemfixarna_categories--label hemfixarna_categories--label--big" }, index.h("div", null, index.h("p", null, c.name), index.h("span", null, `category/${c.slug}`)), index.h("div", null, index.h("button", { onClick: () => navigator.clipboard.writeText(`category/${c.slug}`) }, "Kopiera slug"), index.h("button", { onClick: () => (this.selectedSlug = `category/${c.slug}`) }, "Ladda kategori"))), index.h("ul", null, c.services.map(sc => (index.h("li", null, index.h("div", { class: "hemfixarna_categories--label" }, index.h("div", null, index.h("p", null, sc.post_title), index.h("span", null, `service/${sc.post_name}`)), index.h("div", null, index.h("button", { onClick: () => navigator.clipboard.writeText(`service/${sc.post_name}`) }, "Kopiera slug"), index.h("button", { onClick: () => (this.selectedSlug = `service/${sc.post_name}`) }, "Ladda kategori"))), index.h("ul", null, sc.products.map(sc => (index.h("li", null, index.h("div", { class: "hemfixarna_categories--label" }, index.h("div", null, index.h("p", null, sc.post_title), index.h("span", null, `product/${sc.post_name}`)), index.h("div", null, index.h("button", { onClick: () => navigator.clipboard.writeText(`product/${sc.post_name}`) }, "Kopiera slug"), index.h("button", { onClick: () => (this.selectedSlug = `product/${sc.post_name}`) }, "Ladda kategori")))))))))))))))))));
994
994
  }
995
995
  };
@@ -1724,7 +1724,7 @@ const MyComponent$3 = class {
1724
1724
  index.registerInstance(this, hostRef);
1725
1725
  this.id = undefined;
1726
1726
  this.loadFromQuery = true;
1727
- this.isDemo = true;
1727
+ this.isDemo = false;
1728
1728
  }
1729
1729
  render() {
1730
1730
  return (index.h("hemfixarna-component", { 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: Business.hornbach }));
@@ -61,7 +61,7 @@ export class MyComponent {
61
61
  }
62
62
  render() {
63
63
  const copy = getAssetPath(`./assets/copy.png`);
64
- return (h("div", null, h("div", null, h("div", { onClick: () => this.copyExample(), class: "hemfixarna_example" }, h("p", null, this.getExample()), h("img", { src: copy, height: 20 }), h("span", { class: "hemfixarna_example--tooltip" }, this.tooltipText)), process.env.BUSINESS === Business.byggmax && (h("hemfixarna-byggmax", { forceOldTree: Boolean(process.env.FORCE_OLD_TREE), slug: this.selectedSlug, id: this.selectedID })), process.env.BUSINESS === Business.skanska && h("hemfixarna-skanska", { id: this.selectedID }), process.env.BUSINESS === Business.string && h("hemfixarna-string-furniture", { id: this.selectedID }), process.env.BUSINESS === Business.hornbach && h("hemfixarna-hornbach", { id: this.selectedID }), process.env.BUSINESS === Business.kund && h("hemfixarna-kund", { id: this.selectedID }), h("div", { class: "hemfixarna_install" }, h("div", { onClick: () => this.copyCdn(), class: "hemfixarna_example" }, h("p", null, this.cdnLink), h("span", { class: "hemfixarna_example--tooltip" }, this.tooltipText), h("img", { src: copy, height: 20 })))), h("ul", { class: "hemfixarna_categories" }, this.customer ? (h("div", null, this.customer.categories.map(c => (h("li", null, h("div", { class: "hemfixarna_categories--label hemfixarna_categories--label--big" }, h("div", null, h("p", null, c.name), h("span", null, `c-${c.id}`)), h("div", null, h("button", { onClick: () => navigator.clipboard.writeText(`c-${c.id}`) }, "Kopiera ID"), h("button", { onClick: () => (this.selectedID = `c-${c.id}`) }, "Ladda kategori"))), c.show_products && c.products ? (h("ul", null, c.products.map(p => (h("li", null, h("div", { class: "hemfixarna_categories--label hemfixarna_product--label" }, h("div", null, h("p", null, p.fields.post_title), h("span", null, p.fields.ID)), h("div", null, h("button", { onClick: () => navigator.clipboard.writeText(String(p.fields.ID)) }, "Kopiera ID"), h("button", { onClick: () => (this.selectedID = String(p.fields.ID)) }, "Ladda produkt")))))))) : (h("ul", null, c.sub_categories &&
64
+ return (h("div", null, h("div", null, h("div", { onClick: () => this.copyExample(), class: "hemfixarna_example" }, h("p", null, this.getExample()), h("img", { src: copy, height: 20 }), h("span", { class: "hemfixarna_example--tooltip" }, this.tooltipText)), process.env.BUSINESS === Business.byggmax && (h("hemfixarna-byggmax", { forceOldTree: Boolean(process.env.FORCE_OLD_TREE), slug: this.selectedSlug, id: this.selectedID })), process.env.BUSINESS === Business.skanska && h("hemfixarna-skanska", { id: this.selectedID }), process.env.BUSINESS === Business.string && h("hemfixarna-string-furniture", { id: this.selectedID }), process.env.BUSINESS === Business.hornbach && h("hemfixarna-hornbach", { isDemo: true, id: this.selectedID }), process.env.BUSINESS === Business.kund && h("hemfixarna-kund", { id: this.selectedID }), h("div", { class: "hemfixarna_install" }, h("div", { onClick: () => this.copyCdn(), class: "hemfixarna_example" }, h("p", null, this.cdnLink), h("span", { class: "hemfixarna_example--tooltip" }, this.tooltipText), h("img", { src: copy, height: 20 })))), h("ul", { class: "hemfixarna_categories" }, this.customer ? (h("div", null, this.customer.categories.map(c => (h("li", null, h("div", { class: "hemfixarna_categories--label hemfixarna_categories--label--big" }, h("div", null, h("p", null, c.name), h("span", null, `c-${c.id}`)), h("div", null, h("button", { onClick: () => navigator.clipboard.writeText(`c-${c.id}`) }, "Kopiera ID"), h("button", { onClick: () => (this.selectedID = `c-${c.id}`) }, "Ladda kategori"))), c.show_products && c.products ? (h("ul", null, c.products.map(p => (h("li", null, h("div", { class: "hemfixarna_categories--label hemfixarna_product--label" }, h("div", null, h("p", null, p.fields.post_title), h("span", null, p.fields.ID)), h("div", null, h("button", { onClick: () => navigator.clipboard.writeText(String(p.fields.ID)) }, "Kopiera ID"), h("button", { onClick: () => (this.selectedID = String(p.fields.ID)) }, "Ladda produkt")))))))) : (h("ul", null, c.sub_categories &&
65
65
  c.sub_categories.map(sc => (h("li", null, h("div", { class: "hemfixarna_categories--label" }, h("div", null, h("p", null, sc.name), h("span", null, `c-${sc.id}`)), h("div", null, h("button", { onClick: () => navigator.clipboard.writeText(`c-${sc.id}`) }, "Kopiera ID"), h("button", { onClick: () => (this.selectedID = `c-${sc.id}`) }, "Ladda kategori"))), h("ul", null, sc.products.map(p => (h("li", null, h("div", { class: "hemfixarna_categories--label hemfixarna_product--label" }, h("div", null, h("p", null, p.fields.post_title), h("span", null, p.fields.ID)), h("div", null, h("button", { onClick: () => navigator.clipboard.writeText(String(p.fields.ID)) }, "Kopiera ID"), h("button", { onClick: () => (this.selectedID = String(p.fields.ID)) }, "Ladda produkt"))))))))))))))))) : (h("div", null, this.tree.sub_cats.map(c => (h("li", null, h("div", { class: "hemfixarna_categories--label hemfixarna_categories--label--big" }, h("div", null, h("p", null, c.name), h("span", null, `category/${c.slug}`)), h("div", null, h("button", { onClick: () => navigator.clipboard.writeText(`category/${c.slug}`) }, "Kopiera slug"), h("button", { onClick: () => (this.selectedSlug = `category/${c.slug}`) }, "Ladda kategori"))), h("ul", null, c.services.map(sc => (h("li", null, h("div", { class: "hemfixarna_categories--label" }, h("div", null, h("p", null, sc.post_title), h("span", null, `service/${sc.post_name}`)), h("div", null, h("button", { onClick: () => navigator.clipboard.writeText(`service/${sc.post_name}`) }, "Kopiera slug"), h("button", { onClick: () => (this.selectedSlug = `service/${sc.post_name}`) }, "Ladda kategori"))), h("ul", null, sc.products.map(sc => (h("li", null, h("div", { class: "hemfixarna_categories--label" }, h("div", null, h("p", null, sc.post_title), h("span", null, `product/${sc.post_name}`)), h("div", null, h("button", { onClick: () => navigator.clipboard.writeText(`product/${sc.post_name}`) }, "Kopiera slug"), h("button", { onClick: () => (this.selectedSlug = `product/${sc.post_name}`) }, "Ladda kategori")))))))))))))))))));
66
66
  }
67
67
  static get is() { return "hemfixarna-demo"; }
@@ -1 +1 @@
1
- {"version":3,"file":"hemfixarna-demo.js","sourceRoot":"","sources":["../../../src/components/hemfixarna-demo/hemfixarna-demo.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, State, getAssetPath, h } from '@stencil/core';\nimport { Business, Category, Customer, TopCategory } from '../../types';\nimport { getCustomer, getTaxonomy } from '../../utils/api';\n\n@Component({\n tag: 'hemfixarna-demo',\n styleUrl: 'hemfixarna-demo.scss',\n shadow: true,\n})\nexport class MyComponent {\n @State() selectedSlug: string;\n @State() selectedID: string;\n @State() tooltipText: string = 'Kopiera till urklipp';\n @State() tree: Category | null = null;\n @State() customer: Customer | null = null;\n\n getTopLevelCategory() {\n switch (process.env.BUSINESS as Business) {\n case Business.byggmax:\n return TopCategory.byggmax;\n default:\n return '';\n }\n }\n\n async componentWillLoad() {\n if (process.env.FORCE_OLD_TREE) {\n const tree = await getTaxonomy(this.getTopLevelCategory());\n if (tree?.code === 'not_found') {\n // console.warn('tree not found');\n } else if (tree) {\n this.tree = tree;\n }\n } else {\n const customer = await getCustomer(process.env.BUSINESS);\n if (customer.code !== 'not_found' && customer) {\n this.customer = customer;\n }\n }\n }\n\n getExample() {\n return `<hemfixarna-${process.env.BUSINESS}${this.selectedSlug ? ` slug=\"${this.selectedSlug}\" ` : ''}${this.selectedID ? ` id=\"${this.selectedID}\" ` : ''}></hemfixarna-${\n process.env.BUSINESS\n }>`;\n }\n\n copyExample() {\n navigator.clipboard.writeText(this.getExample());\n this.tooltipText = 'Snippet kopierad';\n setTimeout(() => {\n this.tooltipText = 'Kopiera till urklipp';\n }, 2000);\n }\n\n cdnLink = '<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm//hemfixarna-web-components@latest/dist/hemfixarna-components/hemfixarna-components.esm.js\"></script>';\n\n copyCdn() {\n navigator.clipboard.writeText(this.cdnLink);\n this.tooltipText = 'Text kopierad';\n setTimeout(() => {\n this.tooltipText = 'Kopiera till urklipp';\n }, 2000);\n }\n\n copyNpmInstall() {\n navigator.clipboard.writeText('npm i hemfixarna-web-components');\n this.tooltipText = 'Text kopierad';\n setTimeout(() => {\n this.tooltipText = 'Kopiera till urklipp';\n }, 2000);\n }\n\n render() {\n const copy = getAssetPath(`./assets/copy.png`);\n\n return (\n <div>\n <div>\n <div onClick={() => this.copyExample()} class=\"hemfixarna_example\">\n <p>{this.getExample()}</p>\n <img src={copy} height={20} />\n <span class=\"hemfixarna_example--tooltip\">{this.tooltipText}</span>\n </div>\n {(process.env.BUSINESS as Business) === Business.byggmax && (\n <hemfixarna-byggmax forceOldTree={Boolean(process.env.FORCE_OLD_TREE)} slug={this.selectedSlug} id={this.selectedID} />\n )}\n {(process.env.BUSINESS as Business) === Business.skanska && <hemfixarna-skanska id={this.selectedID} />}\n {(process.env.BUSINESS as Business) === Business.string && <hemfixarna-string-furniture id={this.selectedID} />}\n {(process.env.BUSINESS as Business) === Business.hornbach && <hemfixarna-hornbach id={this.selectedID} />}\n {(process.env.BUSINESS as Business) === Business.kund && <hemfixarna-kund id={this.selectedID} />}\n <div class=\"hemfixarna_install\">\n <div onClick={() => this.copyCdn()} class=\"hemfixarna_example\">\n <p>{this.cdnLink}</p>\n <span class=\"hemfixarna_example--tooltip\">{this.tooltipText}</span>\n <img src={copy} height={20} />\n </div>\n </div>\n </div>\n <ul class=\"hemfixarna_categories\">\n {this.customer ? (\n <div>\n {this.customer.categories.map(c => (\n <li>\n <div class=\"hemfixarna_categories--label hemfixarna_categories--label--big\">\n <div>\n <p>{c.name}</p>\n <span>{`c-${c.id}`}</span>\n </div>\n <div>\n <button onClick={() => navigator.clipboard.writeText(`c-${c.id}`)}>Kopiera ID</button>\n <button onClick={() => (this.selectedID = `c-${c.id}`)}>Ladda kategori</button>\n </div>\n </div>\n {c.show_products && c.products ? (\n <ul>\n {c.products.map(p => (\n <li>\n <div class=\"hemfixarna_categories--label hemfixarna_product--label\">\n <div>\n <p>{p.fields.post_title}</p>\n <span>{p.fields.ID}</span>\n </div>\n <div>\n <button onClick={() => navigator.clipboard.writeText(String(p.fields.ID))}>Kopiera ID</button>\n <button onClick={() => (this.selectedID = String(p.fields.ID))}>Ladda produkt</button>\n </div>\n </div>\n </li>\n ))}\n </ul>\n ) : (\n <ul>\n {c.sub_categories &&\n c.sub_categories.map(sc => (\n <li>\n <div class=\"hemfixarna_categories--label\">\n <div>\n <p>{sc.name}</p>\n <span>{`c-${sc.id}`}</span>\n </div>\n <div>\n <button onClick={() => navigator.clipboard.writeText(`c-${sc.id}`)}>Kopiera ID</button>\n <button onClick={() => (this.selectedID = `c-${sc.id}`)}>Ladda kategori</button>\n </div>\n </div>\n <ul>\n {sc.products.map(p => (\n <li>\n <div class=\"hemfixarna_categories--label hemfixarna_product--label\">\n <div>\n <p>{p.fields.post_title}</p>\n <span>{p.fields.ID}</span>\n </div>\n <div>\n <button onClick={() => navigator.clipboard.writeText(String(p.fields.ID))}>Kopiera ID</button>\n <button onClick={() => (this.selectedID = String(p.fields.ID))}>Ladda produkt</button>\n </div>\n </div>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n )}\n </li>\n ))}\n </div>\n ) : (\n <div>\n {this.tree.sub_cats.map(c => (\n <li>\n <div class=\"hemfixarna_categories--label hemfixarna_categories--label--big\">\n <div>\n <p>{c.name}</p>\n <span>{`category/${c.slug}`}</span>\n </div>\n <div>\n <button onClick={() => navigator.clipboard.writeText(`category/${c.slug}`)}>Kopiera slug</button>\n <button onClick={() => (this.selectedSlug = `category/${c.slug}`)}>Ladda kategori</button>\n </div>\n </div>\n <ul>\n {c.services.map(sc => (\n <li>\n <div class=\"hemfixarna_categories--label\">\n <div>\n <p>{sc.post_title}</p>\n <span>{`service/${sc.post_name}`}</span>\n </div>\n <div>\n <button onClick={() => navigator.clipboard.writeText(`service/${sc.post_name}`)}>Kopiera slug</button>\n <button onClick={() => (this.selectedSlug = `service/${sc.post_name}`)}>Ladda kategori</button>\n </div>\n </div>\n <ul>\n {sc.products.map(sc => (\n <li>\n <div class=\"hemfixarna_categories--label\">\n <div>\n <p>{sc.post_title}</p>\n <span>{`product/${sc.post_name}`}</span>\n </div>\n <div>\n <button onClick={() => navigator.clipboard.writeText(`product/${sc.post_name}`)}>Kopiera slug</button>\n <button onClick={() => (this.selectedSlug = `product/${sc.post_name}`)}>Ladda kategori</button>\n </div>\n </div>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </div>\n )}\n </ul>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"hemfixarna-demo.js","sourceRoot":"","sources":["../../../src/components/hemfixarna-demo/hemfixarna-demo.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, State, getAssetPath, h } from '@stencil/core';\nimport { Business, Category, Customer, TopCategory } from '../../types';\nimport { getCustomer, getTaxonomy } from '../../utils/api';\n\n@Component({\n tag: 'hemfixarna-demo',\n styleUrl: 'hemfixarna-demo.scss',\n shadow: true,\n})\nexport class MyComponent {\n @State() selectedSlug: string;\n @State() selectedID: string;\n @State() tooltipText: string = 'Kopiera till urklipp';\n @State() tree: Category | null = null;\n @State() customer: Customer | null = null;\n\n getTopLevelCategory() {\n switch (process.env.BUSINESS as Business) {\n case Business.byggmax:\n return TopCategory.byggmax;\n default:\n return '';\n }\n }\n\n async componentWillLoad() {\n if (process.env.FORCE_OLD_TREE) {\n const tree = await getTaxonomy(this.getTopLevelCategory());\n if (tree?.code === 'not_found') {\n // console.warn('tree not found');\n } else if (tree) {\n this.tree = tree;\n }\n } else {\n const customer = await getCustomer(process.env.BUSINESS);\n if (customer.code !== 'not_found' && customer) {\n this.customer = customer;\n }\n }\n }\n\n getExample() {\n return `<hemfixarna-${process.env.BUSINESS}${this.selectedSlug ? ` slug=\"${this.selectedSlug}\" ` : ''}${this.selectedID ? ` id=\"${this.selectedID}\" ` : ''}></hemfixarna-${\n process.env.BUSINESS\n }>`;\n }\n\n copyExample() {\n navigator.clipboard.writeText(this.getExample());\n this.tooltipText = 'Snippet kopierad';\n setTimeout(() => {\n this.tooltipText = 'Kopiera till urklipp';\n }, 2000);\n }\n\n cdnLink = '<script type=\"module\" src=\"https://cdn.jsdelivr.net/npm//hemfixarna-web-components@latest/dist/hemfixarna-components/hemfixarna-components.esm.js\"></script>';\n\n copyCdn() {\n navigator.clipboard.writeText(this.cdnLink);\n this.tooltipText = 'Text kopierad';\n setTimeout(() => {\n this.tooltipText = 'Kopiera till urklipp';\n }, 2000);\n }\n\n copyNpmInstall() {\n navigator.clipboard.writeText('npm i hemfixarna-web-components');\n this.tooltipText = 'Text kopierad';\n setTimeout(() => {\n this.tooltipText = 'Kopiera till urklipp';\n }, 2000);\n }\n\n render() {\n const copy = getAssetPath(`./assets/copy.png`);\n\n return (\n <div>\n <div>\n <div onClick={() => this.copyExample()} class=\"hemfixarna_example\">\n <p>{this.getExample()}</p>\n <img src={copy} height={20} />\n <span class=\"hemfixarna_example--tooltip\">{this.tooltipText}</span>\n </div>\n {(process.env.BUSINESS as Business) === Business.byggmax && (\n <hemfixarna-byggmax forceOldTree={Boolean(process.env.FORCE_OLD_TREE)} slug={this.selectedSlug} id={this.selectedID} />\n )}\n {(process.env.BUSINESS as Business) === Business.skanska && <hemfixarna-skanska id={this.selectedID} />}\n {(process.env.BUSINESS as Business) === Business.string && <hemfixarna-string-furniture id={this.selectedID} />}\n {(process.env.BUSINESS as Business) === Business.hornbach && <hemfixarna-hornbach isDemo id={this.selectedID} />}\n {(process.env.BUSINESS as Business) === Business.kund && <hemfixarna-kund id={this.selectedID} />}\n <div class=\"hemfixarna_install\">\n <div onClick={() => this.copyCdn()} class=\"hemfixarna_example\">\n <p>{this.cdnLink}</p>\n <span class=\"hemfixarna_example--tooltip\">{this.tooltipText}</span>\n <img src={copy} height={20} />\n </div>\n </div>\n </div>\n <ul class=\"hemfixarna_categories\">\n {this.customer ? (\n <div>\n {this.customer.categories.map(c => (\n <li>\n <div class=\"hemfixarna_categories--label hemfixarna_categories--label--big\">\n <div>\n <p>{c.name}</p>\n <span>{`c-${c.id}`}</span>\n </div>\n <div>\n <button onClick={() => navigator.clipboard.writeText(`c-${c.id}`)}>Kopiera ID</button>\n <button onClick={() => (this.selectedID = `c-${c.id}`)}>Ladda kategori</button>\n </div>\n </div>\n {c.show_products && c.products ? (\n <ul>\n {c.products.map(p => (\n <li>\n <div class=\"hemfixarna_categories--label hemfixarna_product--label\">\n <div>\n <p>{p.fields.post_title}</p>\n <span>{p.fields.ID}</span>\n </div>\n <div>\n <button onClick={() => navigator.clipboard.writeText(String(p.fields.ID))}>Kopiera ID</button>\n <button onClick={() => (this.selectedID = String(p.fields.ID))}>Ladda produkt</button>\n </div>\n </div>\n </li>\n ))}\n </ul>\n ) : (\n <ul>\n {c.sub_categories &&\n c.sub_categories.map(sc => (\n <li>\n <div class=\"hemfixarna_categories--label\">\n <div>\n <p>{sc.name}</p>\n <span>{`c-${sc.id}`}</span>\n </div>\n <div>\n <button onClick={() => navigator.clipboard.writeText(`c-${sc.id}`)}>Kopiera ID</button>\n <button onClick={() => (this.selectedID = `c-${sc.id}`)}>Ladda kategori</button>\n </div>\n </div>\n <ul>\n {sc.products.map(p => (\n <li>\n <div class=\"hemfixarna_categories--label hemfixarna_product--label\">\n <div>\n <p>{p.fields.post_title}</p>\n <span>{p.fields.ID}</span>\n </div>\n <div>\n <button onClick={() => navigator.clipboard.writeText(String(p.fields.ID))}>Kopiera ID</button>\n <button onClick={() => (this.selectedID = String(p.fields.ID))}>Ladda produkt</button>\n </div>\n </div>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n )}\n </li>\n ))}\n </div>\n ) : (\n <div>\n {this.tree.sub_cats.map(c => (\n <li>\n <div class=\"hemfixarna_categories--label hemfixarna_categories--label--big\">\n <div>\n <p>{c.name}</p>\n <span>{`category/${c.slug}`}</span>\n </div>\n <div>\n <button onClick={() => navigator.clipboard.writeText(`category/${c.slug}`)}>Kopiera slug</button>\n <button onClick={() => (this.selectedSlug = `category/${c.slug}`)}>Ladda kategori</button>\n </div>\n </div>\n <ul>\n {c.services.map(sc => (\n <li>\n <div class=\"hemfixarna_categories--label\">\n <div>\n <p>{sc.post_title}</p>\n <span>{`service/${sc.post_name}`}</span>\n </div>\n <div>\n <button onClick={() => navigator.clipboard.writeText(`service/${sc.post_name}`)}>Kopiera slug</button>\n <button onClick={() => (this.selectedSlug = `service/${sc.post_name}`)}>Ladda kategori</button>\n </div>\n </div>\n <ul>\n {sc.products.map(sc => (\n <li>\n <div class=\"hemfixarna_categories--label\">\n <div>\n <p>{sc.post_title}</p>\n <span>{`product/${sc.post_name}`}</span>\n </div>\n <div>\n <button onClick={() => navigator.clipboard.writeText(`product/${sc.post_name}`)}>Kopiera slug</button>\n <button onClick={() => (this.selectedSlug = `product/${sc.post_name}`)}>Ladda kategori</button>\n </div>\n </div>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </div>\n )}\n </ul>\n </div>\n );\n }\n}\n"]}
@@ -4,7 +4,7 @@ export class MyComponent {
4
4
  constructor() {
5
5
  this.id = undefined;
6
6
  this.loadFromQuery = true;
7
- this.isDemo = true;
7
+ this.isDemo = false;
8
8
  }
9
9
  render() {
10
10
  return (h("hemfixarna-component", { 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: Business.hornbach }));
@@ -74,7 +74,7 @@ export class MyComponent {
74
74
  },
75
75
  "attribute": "is-demo",
76
76
  "reflect": false,
77
- "defaultValue": "true"
77
+ "defaultValue": "false"
78
78
  }
79
79
  };
80
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hemfixarna-hornbach.js","sourceRoot":"","sources":["../../../src/components/hemfixarna-hornbach/hemfixarna-hornbach.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAOvC,MAAM,OAAO,WAAW;;;yBAEY,IAAI;kBACX,IAAI;;EAE/B,MAAM;IACJ,OAAO,CACL,4BACE,GAAG,EAAE,EAAE,GAAG,EAAE,0BAA0B,EAAE,IAAI,EAAE,0BAA0B,EAAE,UAAU,EAAE,2BAA2B,EAAE,EACnH,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GACL,CACzB,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h } from '@stencil/core';\nimport { Business } from '../../types';\n\n@Component({\n tag: 'hemfixarna-hornbach',\n styleUrl: 'hemfixarna-hornbach.scss',\n shadow: true,\n})\nexport class MyComponent {\n @Prop() id?: string;\n @Prop() loadFromQuery?: boolean = true;\n @Prop() isDemo?: boolean = true;\n\n render() {\n return (\n <hemfixarna-component\n nav={{ url: 'https://www.hornbach.se/', logo: 'assets/hornbach/logo.svg', background: './assets/hornbach/nav.jpg' }}\n isDemo={this.isDemo}\n loadFromQuery={this.loadFromQuery}\n id={this.id}\n business={Business.hornbach}\n ></hemfixarna-component>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"hemfixarna-hornbach.js","sourceRoot":"","sources":["../../../src/components/hemfixarna-hornbach/hemfixarna-hornbach.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAOvC,MAAM,OAAO,WAAW;;;yBAEY,IAAI;kBACX,KAAK;;EAEhC,MAAM;IACJ,OAAO,CACL,4BACE,GAAG,EAAE,EAAE,GAAG,EAAE,0BAA0B,EAAE,IAAI,EAAE,0BAA0B,EAAE,UAAU,EAAE,2BAA2B,EAAE,EACnH,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GACL,CACzB,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h } from '@stencil/core';\nimport { Business } from '../../types';\n\n@Component({\n tag: 'hemfixarna-hornbach',\n styleUrl: 'hemfixarna-hornbach.scss',\n shadow: true,\n})\nexport class MyComponent {\n @Prop() id?: string;\n @Prop() loadFromQuery?: boolean = true;\n @Prop() isDemo?: boolean = false;\n\n render() {\n return (\n <hemfixarna-component\n nav={{ url: 'https://www.hornbach.se/', logo: 'assets/hornbach/logo.svg', background: './assets/hornbach/nav.jpg' }}\n isDemo={this.isDemo}\n loadFromQuery={this.loadFromQuery}\n id={this.id}\n business={Business.hornbach}\n ></hemfixarna-component>\n );\n }\n}\n"]}
@@ -985,7 +985,7 @@ const MyComponent$4 = class {
985
985
  }
986
986
  render() {
987
987
  const copy = getAssetPath(`./assets/copy.png`);
988
- return (h("div", null, h("div", null, h("div", { onClick: () => this.copyExample(), class: "hemfixarna_example" }, h("p", null, this.getExample()), h("img", { src: copy, height: 20 }), h("span", { class: "hemfixarna_example--tooltip" }, this.tooltipText)), "hornbach" === Business.byggmax && (h("hemfixarna-byggmax", { forceOldTree: Boolean(process.env.FORCE_OLD_TREE), slug: this.selectedSlug, id: this.selectedID })), "hornbach" === Business.skanska && h("hemfixarna-skanska", { id: this.selectedID }), "hornbach" === Business.string && h("hemfixarna-string-furniture", { id: this.selectedID }), "hornbach" === Business.hornbach && h("hemfixarna-hornbach", { id: this.selectedID }), "hornbach" === Business.kund && h("hemfixarna-kund", { id: this.selectedID }), h("div", { class: "hemfixarna_install" }, h("div", { onClick: () => this.copyCdn(), class: "hemfixarna_example" }, h("p", null, this.cdnLink), h("span", { class: "hemfixarna_example--tooltip" }, this.tooltipText), h("img", { src: copy, height: 20 })))), h("ul", { class: "hemfixarna_categories" }, this.customer ? (h("div", null, this.customer.categories.map(c => (h("li", null, h("div", { class: "hemfixarna_categories--label hemfixarna_categories--label--big" }, h("div", null, h("p", null, c.name), h("span", null, `c-${c.id}`)), h("div", null, h("button", { onClick: () => navigator.clipboard.writeText(`c-${c.id}`) }, "Kopiera ID"), h("button", { onClick: () => (this.selectedID = `c-${c.id}`) }, "Ladda kategori"))), c.show_products && c.products ? (h("ul", null, c.products.map(p => (h("li", null, h("div", { class: "hemfixarna_categories--label hemfixarna_product--label" }, h("div", null, h("p", null, p.fields.post_title), h("span", null, p.fields.ID)), h("div", null, h("button", { onClick: () => navigator.clipboard.writeText(String(p.fields.ID)) }, "Kopiera ID"), h("button", { onClick: () => (this.selectedID = String(p.fields.ID)) }, "Ladda produkt")))))))) : (h("ul", null, c.sub_categories &&
988
+ return (h("div", null, h("div", null, h("div", { onClick: () => this.copyExample(), class: "hemfixarna_example" }, h("p", null, this.getExample()), h("img", { src: copy, height: 20 }), h("span", { class: "hemfixarna_example--tooltip" }, this.tooltipText)), "hornbach" === Business.byggmax && (h("hemfixarna-byggmax", { forceOldTree: Boolean(process.env.FORCE_OLD_TREE), slug: this.selectedSlug, id: this.selectedID })), "hornbach" === Business.skanska && h("hemfixarna-skanska", { id: this.selectedID }), "hornbach" === Business.string && h("hemfixarna-string-furniture", { id: this.selectedID }), "hornbach" === Business.hornbach && h("hemfixarna-hornbach", { isDemo: true, id: this.selectedID }), "hornbach" === Business.kund && h("hemfixarna-kund", { id: this.selectedID }), h("div", { class: "hemfixarna_install" }, h("div", { onClick: () => this.copyCdn(), class: "hemfixarna_example" }, h("p", null, this.cdnLink), h("span", { class: "hemfixarna_example--tooltip" }, this.tooltipText), h("img", { src: copy, height: 20 })))), h("ul", { class: "hemfixarna_categories" }, this.customer ? (h("div", null, this.customer.categories.map(c => (h("li", null, h("div", { class: "hemfixarna_categories--label hemfixarna_categories--label--big" }, h("div", null, h("p", null, c.name), h("span", null, `c-${c.id}`)), h("div", null, h("button", { onClick: () => navigator.clipboard.writeText(`c-${c.id}`) }, "Kopiera ID"), h("button", { onClick: () => (this.selectedID = `c-${c.id}`) }, "Ladda kategori"))), c.show_products && c.products ? (h("ul", null, c.products.map(p => (h("li", null, h("div", { class: "hemfixarna_categories--label hemfixarna_product--label" }, h("div", null, h("p", null, p.fields.post_title), h("span", null, p.fields.ID)), h("div", null, h("button", { onClick: () => navigator.clipboard.writeText(String(p.fields.ID)) }, "Kopiera ID"), h("button", { onClick: () => (this.selectedID = String(p.fields.ID)) }, "Ladda produkt")))))))) : (h("ul", null, c.sub_categories &&
989
989
  c.sub_categories.map(sc => (h("li", null, h("div", { class: "hemfixarna_categories--label" }, h("div", null, h("p", null, sc.name), h("span", null, `c-${sc.id}`)), h("div", null, h("button", { onClick: () => navigator.clipboard.writeText(`c-${sc.id}`) }, "Kopiera ID"), h("button", { onClick: () => (this.selectedID = `c-${sc.id}`) }, "Ladda kategori"))), h("ul", null, sc.products.map(p => (h("li", null, h("div", { class: "hemfixarna_categories--label hemfixarna_product--label" }, h("div", null, h("p", null, p.fields.post_title), h("span", null, p.fields.ID)), h("div", null, h("button", { onClick: () => navigator.clipboard.writeText(String(p.fields.ID)) }, "Kopiera ID"), h("button", { onClick: () => (this.selectedID = String(p.fields.ID)) }, "Ladda produkt"))))))))))))))))) : (h("div", null, this.tree.sub_cats.map(c => (h("li", null, h("div", { class: "hemfixarna_categories--label hemfixarna_categories--label--big" }, h("div", null, h("p", null, c.name), h("span", null, `category/${c.slug}`)), h("div", null, h("button", { onClick: () => navigator.clipboard.writeText(`category/${c.slug}`) }, "Kopiera slug"), h("button", { onClick: () => (this.selectedSlug = `category/${c.slug}`) }, "Ladda kategori"))), h("ul", null, c.services.map(sc => (h("li", null, h("div", { class: "hemfixarna_categories--label" }, h("div", null, h("p", null, sc.post_title), h("span", null, `service/${sc.post_name}`)), h("div", null, h("button", { onClick: () => navigator.clipboard.writeText(`service/${sc.post_name}`) }, "Kopiera slug"), h("button", { onClick: () => (this.selectedSlug = `service/${sc.post_name}`) }, "Ladda kategori"))), h("ul", null, sc.products.map(sc => (h("li", null, h("div", { class: "hemfixarna_categories--label" }, h("div", null, h("p", null, sc.post_title), h("span", null, `product/${sc.post_name}`)), h("div", null, h("button", { onClick: () => navigator.clipboard.writeText(`product/${sc.post_name}`) }, "Kopiera slug"), h("button", { onClick: () => (this.selectedSlug = `product/${sc.post_name}`) }, "Ladda kategori")))))))))))))))))));
990
990
  }
991
991
  };
@@ -1720,7 +1720,7 @@ const MyComponent$3 = class {
1720
1720
  registerInstance(this, hostRef);
1721
1721
  this.id = undefined;
1722
1722
  this.loadFromQuery = true;
1723
- this.isDemo = true;
1723
+ this.isDemo = false;
1724
1724
  }
1725
1725
  render() {
1726
1726
  return (h("hemfixarna-component", { 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: Business.hornbach }));
@@ -1,2 +1,2 @@
1
- import{p as r,b as e}from"./p-62a7c1a2.js";export{s as setNonce}from"./p-62a7c1a2.js";const o=()=>{const e=import.meta.url;const o={};if(e!==""){o.resourcesUrl=new URL(".",e).href}return r(o)};o().then((r=>e([["p-24be8f8d",[[1,"hemfixarna-demo",{selectedSlug:[32],selectedID:[32],tooltipText:[32],tree:[32],customer:[32]}],[1,"hemfixarna-byggmax",{slug:[1],id:[1],forceOldTree:[4,"force-old-tree"],loadFromQuery:[4,"load-from-query"],tree:[32]}],[1,"hemfixarna-hornbach",{id:[1],loadFromQuery:[4,"load-from-query"],isDemo:[4,"is-demo"]}],[1,"hemfixarna-kund",{id:[1],loadFromQuery:[4,"load-from-query"]}],[1,"hemfixarna-skanska",{id:[1],customer:[1],loadFromQuery:[4,"load-from-query"]}],[1,"hemfixarna-string-furniture",{id:[1],loadFromQuery:[4,"load-from-query"]}],[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"],nav:[16],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]}],[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]}]]]],r)));
1
+ import{p as r,b as e}from"./p-62a7c1a2.js";export{s as setNonce}from"./p-62a7c1a2.js";const o=()=>{const e=import.meta.url;const o={};if(e!==""){o.resourcesUrl=new URL(".",e).href}return r(o)};o().then((r=>e([["p-1adf10af",[[1,"hemfixarna-demo",{selectedSlug:[32],selectedID:[32],tooltipText:[32],tree:[32],customer:[32]}],[1,"hemfixarna-byggmax",{slug:[1],id:[1],forceOldTree:[4,"force-old-tree"],loadFromQuery:[4,"load-from-query"],tree:[32]}],[1,"hemfixarna-hornbach",{id:[1],loadFromQuery:[4,"load-from-query"],isDemo:[4,"is-demo"]}],[1,"hemfixarna-kund",{id:[1],loadFromQuery:[4,"load-from-query"]}],[1,"hemfixarna-skanska",{id:[1],customer:[1],loadFromQuery:[4,"load-from-query"]}],[1,"hemfixarna-string-furniture",{id:[1],loadFromQuery:[4,"load-from-query"]}],[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"],nav:[16],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]}],[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]}]]]],r)));
2
2
  //# sourceMappingURL=hemfixarna-components.esm.js.map
@@ -1,2 +1,2 @@
1
- import{g as t,f as i,r as e,h as n,a as r,F as s,c as a}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 f=(t,i=((t,i)=>t!==i))=>{const e=d(t);let n=new Map(Object.entries(e!==null&&e!==void 0?e:{}));const r={dispose:[],get:[],set:[],reset:[]};const s=()=>{var i;n=new Map(Object.entries((i=d(t))!==null&&i!==void 0?i:{}));r.reset.forEach((t=>t()))};const a=()=>{r.dispose.forEach((t=>t()));s()};const o=t=>{r.get.forEach((i=>i(t)));return n.get(t)};const l=(t,e)=>{const s=n.get(t);if(i(e,s,t)){n.set(t,e);r.set.forEach((i=>i(t,e,s)))}};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)=>{r[t].push(i);return()=>{m(r[t],i)}};const u=(i,e)=>{const n=c("set",((t,n)=>{if(t===i){e(n)}}));const r=c("reset",(()=>e(d(t)[i])));return()=>{n();r()}};const f=(...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 p=t=>{const i=n.get(t);r.set.forEach((e=>e(t,i,i)))};return{state:h,get:o,set:l,on:c,onChange:u,use:f,dispose:a,reset:s,forceUpdate:p}};const m=(t,i)=>{const e=t.indexOf(i);if(e>=0){t[e]=t[t.length-1];t.length--}};const p=(t,i)=>{const e=f(t,i);e.use(u());return e};const{state:x,onChange:g}=p({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});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("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)=>i.length<2?i:t+i.slice(0,1)+"*".repeat(i.length-2)+i.slice(i.length-1,i.length)+" "),"");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;if(!e){this.zipError="Ange ett postnummer"}const n=this.town.length>0;if(!n){this.townError="Ange en ort"}if(i&&e&&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 r(this)}};const k=t=>Math.ceil(t/2);const w=t=>Math.ceil(t*.7);const y=(t,i,e=1)=>{if(t.rot&&x.rot){return w((i||t.price)*e)}else if(t.rut&&x.rut){return k((i||t.price)*e)}else{return(i||t.price)*e}};const $=t=>{if(t.rot){return w(t.price)}else if(t.rut&&x.rut){return k(t.price)}else{return t.price}};const C=(t,i,e=1)=>{if(i.rot&&x.rot){return w(t.price*e)}else if(i.rut&&x.rut){return k(t.price*e)}else{return t.price*e}};const T=()=>{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?k(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 z=t=>{const i=t.parts.reduce(((t,i)=>t+i.price*i.amount),0);return y(t,t.price*t.amount+i)};const S=()=>{const t=x.cart.reduce(((t,i)=>i.rot?t+z(i):t),0)+T().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+z(i):t),0)+T().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+z(i)),0)+T().rot+T().rut;const I=t=>t.post_name!==undefined;const L=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(s,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 ",y(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 ",y(this.post),"kr")))}get el(){return r(this)}};const M=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=a(`./assets/hemfixarna.svg`);const i=a(`./assets/close.svg`);const e=a(`./assets/cart.svg`);const r=a(`./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:r,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:r,alt:"back arrow"}),n("span",null,"Se allt ",x.parentCategory.name)))}get el(){return r(this)}};var N;(function(t){t["kund"]="kund";t["byggmax"]="byggmax";t["skanska"]="skanska";t["string"]="string-furniture";t["hornbach"]="hornbach"})(N||(N={}));var D;(function(t){t["byggmax"]="category/bygg"})(D||(D={}));const P="";const F=class{constructor(t){e(this,t);this.tree=null;this.slug=undefined;this.id=undefined;this.forceOldTree=false;this.loadFromQuery=false}render(){return n("hemfixarna-component",{loadFromQuery:this.loadFromQuery,forceOldTree:this.forceOldTree,id:this.id,slug:this.slug,business:N.byggmax,topCategory:D.byggmax})}};F.style=P;const A=class{constructor(t){e(this,t);this.tree=undefined}render(){const t=a(`./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 R=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 K=`${"https://hemfixarna.se"}/wp-json/headless`;const J=async t=>{if(!t){return}const i=t.split("/")[0];const e=t.split("/")[1];try{const t=await fetch(`${K}/${i}/${e}`);return await t.json()}catch(t){console.log(t)}};const H=async t=>{try{const i=await fetch(`${K}/customer/${t}`);return await i.json()}catch(t){console.log(t)}};const E=async()=>{try{const t=await fetch(`${K}/webcoptions`);return await t.json()}catch(t){console.log(t)}};const U=async()=>{try{const t=await fetch(`${K}/rut`);return await t.json()}catch(t){console.log(t)}};const W=async()=>{try{const t=await fetch(`${K}/rot`);return await t.json()}catch(t){console.log(t)}};const X=async t=>{try{const i=await fetch(`${K}/weborder`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json"}});return await i.json()}catch(t){console.log(t)}};const B=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()=>{const t={name:x.user.firstName+" "+x.user.lastName,customer:x.business,phone:x.user.phone,social_security_number:x.user.ssn,email:x.user.email,address:`${x.user.street} | ${x.user.zip} | ${x.user.town}`,earliest_visit_date:this.date,order_items:JSON.stringify(x.cart.map((t=>`${t.amount}st ${t.name} ${y(t,t.price,t.amount)}kr ${t.parts.length?`| ${t.parts.map((i=>`${i.amount}st ${i.name} ${C(i,t,i.amount)}kr`)).join(" | ")} `:""} ${t.rot&&x.rot?"(med rot)":x.rut&&t.rut?"(med rut)":"(utan rut/rot)"}`))),start_fee:`${T().rut>0?`Rut: ${T().rut}kr`:"Rut: 0"} `+`${T().rot>0?`Rot: ${T().rot}kr`:"Rot: 0"}`,total:O()};try{const{data:i,status:e}=await X(t);if(i&&e&&e===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.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=a(`./assets/date.svg`);const i=a(`./assets/down.svg`);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(s,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("input",{type:"submit",value:"Slutför Bokning"})))}};this.date="";this.dateError=null;this.generalError=null}componentWillLoad(){if(Boolean(x.user&&x.user.street)){x.checkoutStep=2}}get el(){return r(this)}};const V='@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:2rem}:host button{color:#474444}:host form{display:flex;flex-direction:column;gap:1rem}:host form img{position:absolute;top:50%;transform:translateY(-50%);pointer-events:none}:host form img:first-of-type{left:1rem}:host form img:last-of-type{right:1rem}:host form span{margin-top:-0.5rem;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:1rem;top:50%;transform:translateY(-50%);background:#fff;padding:0.25rem;transition:0.2s all cubic-bezier(0.465, 0.183, 0.153, 0.946)}:host form div input{padding:1rem;width:100%;font-size:1rem;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 0.5rem}:host h2{margin:0 0 1.5rem;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:3.5rem;padding:0.5rem 2rem}:host .hemfixarna_nav>div{position:relative;overflow:hidden;width:100%;height:100%;display:flex;justify-content:space-between;align-items:center;padding:0 1rem}@media (min-width: 769px){:host .hemfixarna_nav>div{padding:0 2rem}}:host .hemfixarna_nav>div>div{display:flex;gap:2rem;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:2.5rem 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:1.5rem;padding:2rem;box-shadow:0px 4px 8px 0px rgba(0, 0, 0, 0.0392156863);border-radius:0.25rem;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:2rem;z-index:99;border-radius:0.25rem;box-shadow:0px 4px 8px 0px rgba(0, 0, 0, 0.0392156863);display:flex;flex-direction:column;gap:1rem}: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:0.5rem 1rem}:host .hemfixarna_addressinfo{padding:1rem 1rem 4rem;border:1px solid #fcd9c9;position:relative;margin-bottom:2rem;display:grid;grid-template-columns:1fr;gap:0.5rem}@media (min-width: 769px){:host .hemfixarna_addressinfo{grid-template-columns:1fr 1fr}}:host .hemfixarna_addressinfo button{position:absolute;bottom:1rem;right:1rem;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:1rem;grid-template-columns:auto 75px}:host .hemfixarna_counter{display:flex;align-items:center}:host .hemfixarna_counter span{padding:0 0.5rem}: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:1rem}:host .hemfixarna_description ul{list-style:disc;padding-right:0.75rem;transform:translateX(0.75rem)}: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:8rem;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:4rem}:host .hemfixarna_box{padding:1rem;display:flex;align-items:center;justify-content:space-between;background:#fffaf2;border:1px solid #fcd9c9;width:100%;box-sizing:border-box;border-radius:0.25rem;gap:1rem 0.5rem}:host .hemfixarna_box>div{display:grid;gap:0.5rem}: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_btn{font-size:14px;background:#c84e18;color:#fff;padding:1rem 1.5rem;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:-0.5rem;right:-0.75rem}: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:1rem 1.5rem}:host .hemfixarna .disabled{opacity:0.5;cursor:default}:host .hemfixarna_modal{position:fixed;background:#fffaf2;border:1px solid #fcd9c9;border-radius:0.25rem;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:0.5rem}: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:3rem 2rem 4rem}@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:2rem;display:flex;flex-direction:column;max-height:100%;overflow:auto}:host .hemfixarna_order img{cursor:pointer}:host .hemfixarna_order button{margin:1rem 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:2rem}@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:0.2rem}@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:1rem;align-items:center}:host .hemfixarna_cart--additional{display:flex;flex-direction:column;gap:1rem;padding:1rem;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:-1.5rem}:host .hemfixarna_cart--price{border-top:1px solid #fcd9c9;padding:1rem;display:flex;justify-content:space-between}:host .hemfixarna_cart--price h3{margin:0}:host .hemfixarna_cart--item{display:flex;flex-direction:column;gap:0.5rem;padding:1rem 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:1rem}:host .hemfixarna_cart--item>div button{color:#ec6632}:host .hemfixarna_categories{display:grid;gap:1.5rem}:host .hemfixarna_categories--wrapper{gap:2rem;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:0.25rem;min-height:132px;padding:1.5rem;box-shadow:0px 4px 8px 0px rgba(0, 0, 0, 0.0392156863);display:flex;align-items:center;gap:1.5rem;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 2rem 4rem}:host .hemfixarna_content--5{padding-top:1rem}:host .hemfixarna_crumbs{position:relative;padding:1rem 1.5rem;border-bottom:1px solid #fcd9c9;display:flex;justify-content:space-between}:host .hemfixarna_crumbs--back{padding:1rem 1.5rem 0.5rem;display:flex;align-items:center;gap:0.5rem;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:-1rem;top:-1rem;z-index:9}:host .hemfixarna_crumbs .cart{padding-left:1rem;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:-0.5rem;right:-0.75rem}: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:1rem;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:4rem;padding:0.75rem 1rem;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:0.75rem !important}:host .hemfixarna_features li{display:flex;gap:1rem;align-items:center}:host .hemfixarna_address{margin-bottom:1rem}:host .hemfixarna_product{display:grid;gap:1rem}:host .hemfixarna_product--link{font-weight:700;color:#474444;text-underline-offset:0.25rem}:host .hemfixarna_product--left{gap:2rem}:host .hemfixarna_product--right{gap:2rem}:host .hemfixarna_product--price{margin-top:0.25rem;font-weight:700}:host .hemfixarna_product--total{text-align:center;margin:-1rem 0;font-size:21px;line-height:28px}:host .hemfixarna_product--item{background:#fff;padding:1rem;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:2rem}@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:0.25rem}:host .hemfixarna_product p{margin:0}:host .hemfixarna_product--top{display:flex;gap:2rem}: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:0.5rem}:host h5,:host p{margin:0}:host input[type=submit]{cursor:pointer}:host input[type=date]~label{left:3.5rem}:host input[type=date]{border:1px solid #fcd9c9;padding-left:4rem}:host input[type=checkbox]{height:1.125rem;width:1.125rem;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 Q=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.nav=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 J(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,n,r,s,a]=await Promise.all([this.topCategory?J(this.topCategory):null,this.slug?J(this.slug):Promise.resolve(null),E(),U(),W()]);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((e===null||e===void 0?void 0:e.code)==="not_found");else if(e){this.tree=e}if((n===null||n===void 0?void 0:n.code)==="not_found"){console.log("taxonomy not found")}else if(n){this.setTaxonomy(n);if((n===null||n===void 0?void 0:n.post_type)==="ikea_product"){this.product=n}}if(this.loadFromQuery){const t=new URL(document.location.toString()).searchParams;this.id=t.get("id");if(!this.isDemo){this.openModal()}}x.rotOptions=a;x.rutOptions=s;x.options=r}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,r,s;const o=a(`./assets/hemfixarna.svg`);const l=((t=this.nav)===null||t===void 0?void 0:t.background)?a(this.nav.background):"";const h=((i=this.nav)===null||i===void 0?void 0:i.logo)?a(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:h,alt:`${this.business} logo`})),n("a",{href:"https://hemfixarna.se/",target:"_blank"},n("p",null,"I samarbete med:"),n("img",{src:o,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:l,alt:"nav_background"}))):null,!this.loadFromQuery||this.isDemo?n("div",{class:"hemfixarna_box"},n("div",null,n("div",null,n("p",null,((e=this.product)===null||e===void 0?void 0:e.post_title)||((r=this.proppedProduct)===null||r===void 0?void 0:r.post_title)||n("span",null,"Montering",n("wbr",null),"/Installation på plats - ",n("strong",null,"se priser här")),this.product&&((s=this.slug)===null||s===void 0?void 0:s.includes("product"))||this.proppedProduct?n("span",null," från"," ",n("strong",null,$(this.proppedProduct||this.product),"kr")):null)),n("img",{src:o,width:104})),n("button",{onClick:()=>this.openModal(),class:"hemfixarna_btn"},"Till montering",this.getCartLength()>0&&n("span",null,this.getCartLength()))):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 r(this)}static get watchers(){return{slug:["watchSlugChange"],id:["watchIdChange"]}}};Q.style=V;const Y='@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600&display=swap"); :host{font-family:"Inter", sans-serif}:host .hemfixarna_example{margin-bottom:1rem;background:#000;padding:1rem;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:-3rem;font-size:16px;left:40%;color:white;padding:0.5rem;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:0.5rem;margin-top:1rem}: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:0.5rem}:host .hemfixarna_categories--label button{background:#3f3a92;border:none;font-weight:600;padding:0.2rem 0.6rem;border-radius:10px;margin-right:0.5rem;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:2rem;width:100%;grid-template-columns:1fr 1fr;height:100vh;place-items:center;overflow:hidden;padding:1rem 2rem;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:1rem;background:#fff}';const q=class{constructor(t){e(this,t);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}getTopLevelCategory(){switch("hornbach"){case N.byggmax:return D.byggmax;default:return""}}async componentWillLoad(){if(process.env.FORCE_OLD_TREE){const t=await J(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("hornbach");if(t.code!=="not_found"&&t){this.customer=t}}}getExample(){return`<hemfixarna-${"hornbach"}${this.selectedSlug?` slug="${this.selectedSlug}" `:""}${this.selectedID?` id="${this.selectedID}" `:""}></hemfixarna-${"hornbach"}>`}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=a(`./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)),"hornbach"===N.byggmax&&n("hemfixarna-byggmax",{forceOldTree:Boolean(process.env.FORCE_OLD_TREE),slug:this.selectedSlug,id:this.selectedID}),"hornbach"===N.skanska&&n("hemfixarna-skanska",{id:this.selectedID}),"hornbach"===N.string&&n("hemfixarna-string-furniture",{id:this.selectedID}),"hornbach"===N.hornbach&&n("hemfixarna-hornbach",{id:this.selectedID}),"hornbach"===N.kund&&n("hemfixarna-kund",{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("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"))))))))))))))):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")))))))))))))))))}};q.style=Y;var G=class extends Error{constructor(){super("Invalid swedish personal identity number")}};var Z=(t,i)=>{const e=t.getTime()-i.getTime();return e<0?-1:e>0?1:e};var tt=(t,i)=>{const e=Z(t,i);const n=Math.abs(t.getFullYear()-i.getFullYear());t.setFullYear(t.getFullYear()-e*n);const r=Z(t,i)===-e;const s=e*(n-+r);return s===0?0:s};var it=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 et=(t,i,e)=>{i-=1;const n=new Date(t,i,e);return!(n.getFullYear()!==t||n.getMonth()!==i||n.getDate()!==e)};var nt=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 nt(t,i)}static valid(t,i){try{nt.parse(t,i);return true}catch(t){return false}}parse(t,i){if(t.length<10||t.length>13){throw new G}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 G}const r=n[1];const s=n[2];const a=n[3];const o=n[4];const l=n[5];const h=n[6];const c=n[7];if(typeof r==="undefined"||!r.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(s))%100)).substr(0,2)}else{this._century=r;if((new Date).getFullYear()-parseInt(r+s,10)<100){this._sep="-"}else{this._sep="+"}}this._year=s;this._fullYear=this._century+s;this._month=a;this._day=o;this._num=h;this._check=c;if(!this.valid()){throw new G}if(!(i==null?void 0:i.allowCoordinationNumber)&&this.isCoordinationNumber()){throw new G}if(!(i==null?void 0:i.allowInterimNumber)&&this.isInterimNumber()){throw new G}}valid(){const t=it(this.year+this.month+this.day+this.num.replace(/[TRSUWXJKLMN]/,"1"))===+this.check&&!!this.check;if(t&&et(parseInt(this.century+this.year),+this.month,+this.day)){return t}return t&&et(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 tt(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 et(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 rt=nt;function st(t,i,e){return e={path:i,exports:{},require:function(t,i){return at()}},t(e,e.exports),e.exports}function at(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var ot=st((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 r=0;var s=0;while(e<t.length){n=t.charCodeAt(e);if(n<128){i+=String.fromCharCode(n);e++}else if(n>191&&n<224){r=t.charCodeAt(e+1);i+=String.fromCharCode((n&31)<<6|r&63);e+=2}else{r=t.charCodeAt(e+1);s=t.charCodeAt(e+2);i+=String.fromCharCode((n&15)<<12|(r&63)<<6|s&63);e+=3}}return i}}));var lt=st((function(t,i){Object.defineProperty(i,"__esModule",{value:true});i.generate=void 0;function e(t){var i=[];var e;var n;var s;var a;var o;var l;var p;var x;var g;var b=7;var v=12;var _=17;var k=22;var w=5;var y=9;var $=14;var C=20;var T=4;var z=11;var S=16;var j=23;var O=6;var I=10;var L=15;var M=21;var N=ot.utf8.encode(t);i=f(N);l=1732584193;p=4023233417;x=2562383102;g=271733878;for(e=0;e<i.length;e+=16){n=l;s=p;a=x;o=g;l=h(l,p,x,g,i[e+0],b,3614090360);g=h(g,l,p,x,i[e+1],v,3905402710);x=h(x,g,l,p,i[e+2],_,606105819);p=h(p,x,g,l,i[e+3],k,3250441966);l=h(l,p,x,g,i[e+4],b,4118548399);g=h(g,l,p,x,i[e+5],v,1200080426);x=h(x,g,l,p,i[e+6],_,2821735955);p=h(p,x,g,l,i[e+7],k,4249261313);l=h(l,p,x,g,i[e+8],b,1770035416);g=h(g,l,p,x,i[e+9],v,2336552879);x=h(x,g,l,p,i[e+10],_,4294925233);p=h(p,x,g,l,i[e+11],k,2304563134);l=h(l,p,x,g,i[e+12],b,1804603682);g=h(g,l,p,x,i[e+13],v,4254626195);x=h(x,g,l,p,i[e+14],_,2792965006);p=h(p,x,g,l,i[e+15],k,1236535329);l=c(l,p,x,g,i[e+1],w,4129170786);g=c(g,l,p,x,i[e+6],y,3225465664);x=c(x,g,l,p,i[e+11],$,643717713);p=c(p,x,g,l,i[e+0],C,3921069994);l=c(l,p,x,g,i[e+5],w,3593408605);g=c(g,l,p,x,i[e+10],y,38016083);x=c(x,g,l,p,i[e+15],$,3634488961);p=c(p,x,g,l,i[e+4],C,3889429448);l=c(l,p,x,g,i[e+9],w,568446438);g=c(g,l,p,x,i[e+14],y,3275163606);x=c(x,g,l,p,i[e+3],$,4107603335);p=c(p,x,g,l,i[e+8],C,1163531501);l=c(l,p,x,g,i[e+13],w,2850285829);g=c(g,l,p,x,i[e+2],y,4243563512);x=c(x,g,l,p,i[e+7],$,1735328473);p=c(p,x,g,l,i[e+12],C,2368359562);l=u(l,p,x,g,i[e+5],T,4294588738);g=u(g,l,p,x,i[e+8],z,2272392833);x=u(x,g,l,p,i[e+11],S,1839030562);p=u(p,x,g,l,i[e+14],j,4259657740);l=u(l,p,x,g,i[e+1],T,2763975236);g=u(g,l,p,x,i[e+4],z,1272893353);x=u(x,g,l,p,i[e+7],S,4139469664);p=u(p,x,g,l,i[e+10],j,3200236656);l=u(l,p,x,g,i[e+13],T,681279174);g=u(g,l,p,x,i[e+0],z,3936430074);x=u(x,g,l,p,i[e+3],S,3572445317);p=u(p,x,g,l,i[e+6],j,76029189);l=u(l,p,x,g,i[e+9],T,3654602809);g=u(g,l,p,x,i[e+12],z,3873151461);x=u(x,g,l,p,i[e+15],S,530742520);p=u(p,x,g,l,i[e+2],j,3299628645);l=d(l,p,x,g,i[e+0],O,4096336452);g=d(g,l,p,x,i[e+7],I,1126891415);x=d(x,g,l,p,i[e+14],L,2878612391);p=d(p,x,g,l,i[e+5],M,4237533241);l=d(l,p,x,g,i[e+12],O,1700485571);g=d(g,l,p,x,i[e+3],I,2399980690);x=d(x,g,l,p,i[e+10],L,4293915773);p=d(p,x,g,l,i[e+1],M,2240044497);l=d(l,p,x,g,i[e+8],O,1873313359);g=d(g,l,p,x,i[e+15],I,4264355552);x=d(x,g,l,p,i[e+6],L,2734768916);p=d(p,x,g,l,i[e+13],M,1309151649);l=d(l,p,x,g,i[e+4],O,4149444226);g=d(g,l,p,x,i[e+11],I,3174756917);x=d(x,g,l,p,i[e+2],L,718787259);p=d(p,x,g,l,i[e+9],M,3951481745);l=r(l,n);p=r(p,s);x=r(x,a);g=r(g,o)}return m(l)+m(p)+m(x)+m(g)}i.generate=e;function n(t,i){return t<<i|t>>>32-i}function r(t,i){var e;var n;var r;var s;var a;r=t&2147483648;s=i&2147483648;e=t&1073741824;n=i&1073741824;a=(t&1073741823)+(i&1073741823);if(e&n){return a^2147483648^r^s}if(e|n){if(a&1073741824){return a^3221225472^r^s}else{return a^1073741824^r^s}}else{return a^r^s}}function s(t,i,e){return t&i|~t&e}function a(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,a,o,l,h){t=r(t,r(r(s(i,e,a),o),h));return r(n(t,l),i)}function c(t,i,e,s,o,l,h){t=r(t,r(r(a(i,e,s),o),h));return r(n(t,l),i)}function u(t,i,e,s,a,l,h){t=r(t,r(r(o(i,e,s),a),h));return r(n(t,l),i)}function d(t,i,e,s,a,o,h){t=r(t,r(r(l(i,e,s),a),h));return r(n(t,o),i)}function f(t){var i;var e=t.length;var n=e+8;var r=(n-n%64)/64;var s=(r+1)*16;var a=Array(s-1);var o=0;var l=0;while(l<e){i=(l-l%4)/4;o=l%4*8;a[i]=a[i]|t.charCodeAt(l)<<o;l++}i=(l-l%4)/4;o=l%4*8;a[i]=a[i]|128<<o;a[s-2]=e<<3;a[s-1]=e>>>29;return a}function m(t){var i="";var e="";var n;var r;for(r=0;r<=3;r++){n=t>>>r*8&255;e="0"+n.toString(16);i=i+e.substr(e.length-2,2)}return i}}));var ht=st((function(t,i){Object.defineProperty(i,"__esModule",{value:true});i.MD5=i.generate=void 0;var e=lt;Object.defineProperty(i,"generate",{enumerable:true,get:function(){return e.generate}});i.MD5={generate:lt.generate}}));const ct=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:ht.MD5.generate(String.fromCharCode(83,101,67,82,101,116)+t)})});const n=await e.json();return n};const ut=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=this.phone.length>6;if(!n){this.phoneError="Ange ett giltigt telefonnummer"}const r=rt.valid(this.ssn);if(!r){this.ssnError="Ange ett giltigt personnummer"}else if(r){const t=rt.parse(this.ssn).format(true);this.ssn=[t.slice(0,8),"-",t.slice(8)].join("")}if(e&&n&&r){try{const t=await ct(this.ssn);if(t){x.checkoutStep=2;x.user=Object.assign(Object.assign({},t),{email:this.email,phone:this.phone,ssn:this.ssn});const i=this.el.closest(".hemfixarna_content");v(i)}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)}}};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 r(this)}};const dt="";const ft=class{constructor(t){e(this,t);this.id=undefined;this.loadFromQuery=true;this.isDemo=true}render(){return n("hemfixarna-component",{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:N.hornbach})}};ft.style=dt;const mt=class{constructor(t){e(this,t);this.logo=a(`./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=a(`./assets/checked.svg`);return n("div",{class:"hemfixarna_info"},x.step<5?n(s,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 pt=class{constructor(t){e(this,t);this.id=undefined;this.loadFromQuery=false}render(){return n("hemfixarna-component",{loadFromQuery:this.loadFromQuery,id:this.id,business:N.kund})}};const xt=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 gt=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 r=i.find((i=>i.products.find((i=>i.ID===t))));const s=this.tree.sub_cats.find((i=>i.services.find((i=>i.products.find((i=>i.ID===t))))));x.selectedCategory=s;x.selectedService=r;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=a(`./assets/info.svg`);return n(s,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,y(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,C(i,t,i.amount),"kr")))))))}))),n("div",{class:"hemfixarna_cart--additional"},T().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,T().rot,"kr")),T().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,T().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?S():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 bt=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){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++;i.parts=[...i.parts]}else{i.parts=[...i.parts,{id:t.ID,amount:1,price:t.price,name:t.post_title}]}x.cart=[...x.cart.filter((t=>t.id!==i.id)),i]}}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 y(x.selectedProduct,t)}render(){var t,i,e;const r=a(`./assets/checked.svg`);const s=a(`./assets/plus.svg`);const o=a(`./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: ",y(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:r,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"},y(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:s,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"},C(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:s,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 r(this)}};const vt=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 _t="";const kt=class{constructor(t){e(this,t);this.id=undefined;this.customer=undefined;this.loadFromQuery=false}render(){return n("hemfixarna-component",{loadFromQuery:this.loadFromQuery,id:this.id,business:N.skanska})}};kt.style=_t;const wt=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 yt="";const $t=class{constructor(t){e(this,t);this.id=undefined;this.loadFromQuery=false}render(){return n("hemfixarna-component",{loadFromQuery:this.loadFromQuery,id:this.id,business:N.string})}};$t.style=yt;export{_ as hemfixarna_address,L as hemfixarna_box,M as hemfixarna_breadcrumbs,F as hemfixarna_byggmax,A as hemfixarna_cart,R as hemfixarna_category,B as hemfixarna_checkout,Q as hemfixarna_component,q as hemfixarna_demo,ut as hemfixarna_getuser,ft as hemfixarna_hornbach,mt as hemfixarna_info,pt as hemfixarna_kund,xt as hemfixarna_order,gt as hemfixarna_orderrows,bt as hemfixarna_product,vt as hemfixarna_service,kt as hemfixarna_skanska,wt as hemfixarna_start,$t as hemfixarna_string_furniture};
2
- //# sourceMappingURL=p-24be8f8d.entry.js.map
1
+ import{g as t,f as i,r as e,h as n,a as r,F as s,c as a}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 f=(t,i=((t,i)=>t!==i))=>{const e=d(t);let n=new Map(Object.entries(e!==null&&e!==void 0?e:{}));const r={dispose:[],get:[],set:[],reset:[]};const s=()=>{var i;n=new Map(Object.entries((i=d(t))!==null&&i!==void 0?i:{}));r.reset.forEach((t=>t()))};const a=()=>{r.dispose.forEach((t=>t()));s()};const o=t=>{r.get.forEach((i=>i(t)));return n.get(t)};const l=(t,e)=>{const s=n.get(t);if(i(e,s,t)){n.set(t,e);r.set.forEach((i=>i(t,e,s)))}};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)=>{r[t].push(i);return()=>{m(r[t],i)}};const u=(i,e)=>{const n=c("set",((t,n)=>{if(t===i){e(n)}}));const r=c("reset",(()=>e(d(t)[i])));return()=>{n();r()}};const f=(...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 p=t=>{const i=n.get(t);r.set.forEach((e=>e(t,i,i)))};return{state:h,get:o,set:l,on:c,onChange:u,use:f,dispose:a,reset:s,forceUpdate:p}};const m=(t,i)=>{const e=t.indexOf(i);if(e>=0){t[e]=t[t.length-1];t.length--}};const p=(t,i)=>{const e=f(t,i);e.use(u());return e};const{state:x,onChange:g}=p({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});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("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)=>i.length<2?i:t+i.slice(0,1)+"*".repeat(i.length-2)+i.slice(i.length-1,i.length)+" "),"");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;if(!e){this.zipError="Ange ett postnummer"}const n=this.town.length>0;if(!n){this.townError="Ange en ort"}if(i&&e&&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 r(this)}};const k=t=>Math.ceil(t/2);const w=t=>Math.ceil(t*.7);const y=(t,i,e=1)=>{if(t.rot&&x.rot){return w((i||t.price)*e)}else if(t.rut&&x.rut){return k((i||t.price)*e)}else{return(i||t.price)*e}};const $=t=>{if(t.rot){return w(t.price)}else if(t.rut&&x.rut){return k(t.price)}else{return t.price}};const C=(t,i,e=1)=>{if(i.rot&&x.rot){return w(t.price*e)}else if(i.rut&&x.rut){return k(t.price*e)}else{return t.price*e}};const T=()=>{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?k(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 z=t=>{const i=t.parts.reduce(((t,i)=>t+i.price*i.amount),0);return y(t,t.price*t.amount+i)};const S=()=>{const t=x.cart.reduce(((t,i)=>i.rot?t+z(i):t),0)+T().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+z(i):t),0)+T().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+z(i)),0)+T().rot+T().rut;const I=t=>t.post_name!==undefined;const L=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(s,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 ",y(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 ",y(this.post),"kr")))}get el(){return r(this)}};const M=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=a(`./assets/hemfixarna.svg`);const i=a(`./assets/close.svg`);const e=a(`./assets/cart.svg`);const r=a(`./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:r,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:r,alt:"back arrow"}),n("span",null,"Se allt ",x.parentCategory.name)))}get el(){return r(this)}};var D;(function(t){t["kund"]="kund";t["byggmax"]="byggmax";t["skanska"]="skanska";t["string"]="string-furniture";t["hornbach"]="hornbach"})(D||(D={}));var N;(function(t){t["byggmax"]="category/bygg"})(N||(N={}));const P="";const F=class{constructor(t){e(this,t);this.tree=null;this.slug=undefined;this.id=undefined;this.forceOldTree=false;this.loadFromQuery=false}render(){return n("hemfixarna-component",{loadFromQuery:this.loadFromQuery,forceOldTree:this.forceOldTree,id:this.id,slug:this.slug,business:D.byggmax,topCategory:N.byggmax})}};F.style=P;const A=class{constructor(t){e(this,t);this.tree=undefined}render(){const t=a(`./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 R=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 K=`${"https://hemfixarna.se"}/wp-json/headless`;const J=async t=>{if(!t){return}const i=t.split("/")[0];const e=t.split("/")[1];try{const t=await fetch(`${K}/${i}/${e}`);return await t.json()}catch(t){console.log(t)}};const H=async t=>{try{const i=await fetch(`${K}/customer/${t}`);return await i.json()}catch(t){console.log(t)}};const E=async()=>{try{const t=await fetch(`${K}/webcoptions`);return await t.json()}catch(t){console.log(t)}};const U=async()=>{try{const t=await fetch(`${K}/rut`);return await t.json()}catch(t){console.log(t)}};const W=async()=>{try{const t=await fetch(`${K}/rot`);return await t.json()}catch(t){console.log(t)}};const X=async t=>{try{const i=await fetch(`${K}/weborder`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json"}});return await i.json()}catch(t){console.log(t)}};const B=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()=>{const t={name:x.user.firstName+" "+x.user.lastName,customer:x.business,phone:x.user.phone,social_security_number:x.user.ssn,email:x.user.email,address:`${x.user.street} | ${x.user.zip} | ${x.user.town}`,earliest_visit_date:this.date,order_items:JSON.stringify(x.cart.map((t=>`${t.amount}st ${t.name} ${y(t,t.price,t.amount)}kr ${t.parts.length?`| ${t.parts.map((i=>`${i.amount}st ${i.name} ${C(i,t,i.amount)}kr`)).join(" | ")} `:""} ${t.rot&&x.rot?"(med rot)":x.rut&&t.rut?"(med rut)":"(utan rut/rot)"}`))),start_fee:`${T().rut>0?`Rut: ${T().rut}kr`:"Rut: 0"} `+`${T().rot>0?`Rot: ${T().rot}kr`:"Rot: 0"}`,total:O()};try{const{data:i,status:e}=await X(t);if(i&&e&&e===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.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=a(`./assets/date.svg`);const i=a(`./assets/down.svg`);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(s,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("input",{type:"submit",value:"Slutför Bokning"})))}};this.date="";this.dateError=null;this.generalError=null}componentWillLoad(){if(Boolean(x.user&&x.user.street)){x.checkoutStep=2}}get el(){return r(this)}};const V='@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:2rem}:host button{color:#474444}:host form{display:flex;flex-direction:column;gap:1rem}:host form img{position:absolute;top:50%;transform:translateY(-50%);pointer-events:none}:host form img:first-of-type{left:1rem}:host form img:last-of-type{right:1rem}:host form span{margin-top:-0.5rem;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:1rem;top:50%;transform:translateY(-50%);background:#fff;padding:0.25rem;transition:0.2s all cubic-bezier(0.465, 0.183, 0.153, 0.946)}:host form div input{padding:1rem;width:100%;font-size:1rem;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 0.5rem}:host h2{margin:0 0 1.5rem;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:3.5rem;padding:0.5rem 2rem}:host .hemfixarna_nav>div{position:relative;overflow:hidden;width:100%;height:100%;display:flex;justify-content:space-between;align-items:center;padding:0 1rem}@media (min-width: 769px){:host .hemfixarna_nav>div{padding:0 2rem}}:host .hemfixarna_nav>div>div{display:flex;gap:2rem;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:2.5rem 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:1.5rem;padding:2rem;box-shadow:0px 4px 8px 0px rgba(0, 0, 0, 0.0392156863);border-radius:0.25rem;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:2rem;z-index:99;border-radius:0.25rem;box-shadow:0px 4px 8px 0px rgba(0, 0, 0, 0.0392156863);display:flex;flex-direction:column;gap:1rem}: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:0.5rem 1rem}:host .hemfixarna_addressinfo{padding:1rem 1rem 4rem;border:1px solid #fcd9c9;position:relative;margin-bottom:2rem;display:grid;grid-template-columns:1fr;gap:0.5rem}@media (min-width: 769px){:host .hemfixarna_addressinfo{grid-template-columns:1fr 1fr}}:host .hemfixarna_addressinfo button{position:absolute;bottom:1rem;right:1rem;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:1rem;grid-template-columns:auto 75px}:host .hemfixarna_counter{display:flex;align-items:center}:host .hemfixarna_counter span{padding:0 0.5rem}: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:1rem}:host .hemfixarna_description ul{list-style:disc;padding-right:0.75rem;transform:translateX(0.75rem)}: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:8rem;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:4rem}:host .hemfixarna_box{padding:1rem;display:flex;align-items:center;justify-content:space-between;background:#fffaf2;border:1px solid #fcd9c9;width:100%;box-sizing:border-box;border-radius:0.25rem;gap:1rem 0.5rem}:host .hemfixarna_box>div{display:grid;gap:0.5rem}: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_btn{font-size:14px;background:#c84e18;color:#fff;padding:1rem 1.5rem;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:-0.5rem;right:-0.75rem}: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:1rem 1.5rem}:host .hemfixarna .disabled{opacity:0.5;cursor:default}:host .hemfixarna_modal{position:fixed;background:#fffaf2;border:1px solid #fcd9c9;border-radius:0.25rem;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:0.5rem}: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:3rem 2rem 4rem}@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:2rem;display:flex;flex-direction:column;max-height:100%;overflow:auto}:host .hemfixarna_order img{cursor:pointer}:host .hemfixarna_order button{margin:1rem 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:2rem}@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:0.2rem}@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:1rem;align-items:center}:host .hemfixarna_cart--additional{display:flex;flex-direction:column;gap:1rem;padding:1rem;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:-1.5rem}:host .hemfixarna_cart--price{border-top:1px solid #fcd9c9;padding:1rem;display:flex;justify-content:space-between}:host .hemfixarna_cart--price h3{margin:0}:host .hemfixarna_cart--item{display:flex;flex-direction:column;gap:0.5rem;padding:1rem 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:1rem}:host .hemfixarna_cart--item>div button{color:#ec6632}:host .hemfixarna_categories{display:grid;gap:1.5rem}:host .hemfixarna_categories--wrapper{gap:2rem;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:0.25rem;min-height:132px;padding:1.5rem;box-shadow:0px 4px 8px 0px rgba(0, 0, 0, 0.0392156863);display:flex;align-items:center;gap:1.5rem;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 2rem 4rem}:host .hemfixarna_content--5{padding-top:1rem}:host .hemfixarna_crumbs{position:relative;padding:1rem 1.5rem;border-bottom:1px solid #fcd9c9;display:flex;justify-content:space-between}:host .hemfixarna_crumbs--back{padding:1rem 1.5rem 0.5rem;display:flex;align-items:center;gap:0.5rem;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:-1rem;top:-1rem;z-index:9}:host .hemfixarna_crumbs .cart{padding-left:1rem;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:-0.5rem;right:-0.75rem}: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:1rem;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:4rem;padding:0.75rem 1rem;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:0.75rem !important}:host .hemfixarna_features li{display:flex;gap:1rem;align-items:center}:host .hemfixarna_address{margin-bottom:1rem}:host .hemfixarna_product{display:grid;gap:1rem}:host .hemfixarna_product--link{font-weight:700;color:#474444;text-underline-offset:0.25rem}:host .hemfixarna_product--left{gap:2rem}:host .hemfixarna_product--right{gap:2rem}:host .hemfixarna_product--price{margin-top:0.25rem;font-weight:700}:host .hemfixarna_product--total{text-align:center;margin:-1rem 0;font-size:21px;line-height:28px}:host .hemfixarna_product--item{background:#fff;padding:1rem;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:2rem}@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:0.25rem}:host .hemfixarna_product p{margin:0}:host .hemfixarna_product--top{display:flex;gap:2rem}: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:0.5rem}:host h5,:host p{margin:0}:host input[type=submit]{cursor:pointer}:host input[type=date]~label{left:3.5rem}:host input[type=date]{border:1px solid #fcd9c9;padding-left:4rem}:host input[type=checkbox]{height:1.125rem;width:1.125rem;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 Q=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.nav=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 J(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,n,r,s,a]=await Promise.all([this.topCategory?J(this.topCategory):null,this.slug?J(this.slug):Promise.resolve(null),E(),U(),W()]);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((e===null||e===void 0?void 0:e.code)==="not_found");else if(e){this.tree=e}if((n===null||n===void 0?void 0:n.code)==="not_found"){console.log("taxonomy not found")}else if(n){this.setTaxonomy(n);if((n===null||n===void 0?void 0:n.post_type)==="ikea_product"){this.product=n}}if(this.loadFromQuery){const t=new URL(document.location.toString()).searchParams;this.id=t.get("id");if(!this.isDemo){this.openModal()}}x.rotOptions=a;x.rutOptions=s;x.options=r}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,r,s;const o=a(`./assets/hemfixarna.svg`);const l=((t=this.nav)===null||t===void 0?void 0:t.background)?a(this.nav.background):"";const h=((i=this.nav)===null||i===void 0?void 0:i.logo)?a(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:h,alt:`${this.business} logo`})),n("a",{href:"https://hemfixarna.se/",target:"_blank"},n("p",null,"I samarbete med:"),n("img",{src:o,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:l,alt:"nav_background"}))):null,!this.loadFromQuery||this.isDemo?n("div",{class:"hemfixarna_box"},n("div",null,n("div",null,n("p",null,((e=this.product)===null||e===void 0?void 0:e.post_title)||((r=this.proppedProduct)===null||r===void 0?void 0:r.post_title)||n("span",null,"Montering",n("wbr",null),"/Installation på plats - ",n("strong",null,"se priser här")),this.product&&((s=this.slug)===null||s===void 0?void 0:s.includes("product"))||this.proppedProduct?n("span",null," från"," ",n("strong",null,$(this.proppedProduct||this.product),"kr")):null)),n("img",{src:o,width:104})),n("button",{onClick:()=>this.openModal(),class:"hemfixarna_btn"},"Till montering",this.getCartLength()>0&&n("span",null,this.getCartLength()))):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 r(this)}static get watchers(){return{slug:["watchSlugChange"],id:["watchIdChange"]}}};Q.style=V;const Y='@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600&display=swap"); :host{font-family:"Inter", sans-serif}:host .hemfixarna_example{margin-bottom:1rem;background:#000;padding:1rem;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:-3rem;font-size:16px;left:40%;color:white;padding:0.5rem;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:0.5rem;margin-top:1rem}: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:0.5rem}:host .hemfixarna_categories--label button{background:#3f3a92;border:none;font-weight:600;padding:0.2rem 0.6rem;border-radius:10px;margin-right:0.5rem;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:2rem;width:100%;grid-template-columns:1fr 1fr;height:100vh;place-items:center;overflow:hidden;padding:1rem 2rem;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:1rem;background:#fff}';const q=class{constructor(t){e(this,t);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}getTopLevelCategory(){switch("hornbach"){case D.byggmax:return N.byggmax;default:return""}}async componentWillLoad(){if(process.env.FORCE_OLD_TREE){const t=await J(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("hornbach");if(t.code!=="not_found"&&t){this.customer=t}}}getExample(){return`<hemfixarna-${"hornbach"}${this.selectedSlug?` slug="${this.selectedSlug}" `:""}${this.selectedID?` id="${this.selectedID}" `:""}></hemfixarna-${"hornbach"}>`}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=a(`./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)),"hornbach"===D.byggmax&&n("hemfixarna-byggmax",{forceOldTree:Boolean(process.env.FORCE_OLD_TREE),slug:this.selectedSlug,id:this.selectedID}),"hornbach"===D.skanska&&n("hemfixarna-skanska",{id:this.selectedID}),"hornbach"===D.string&&n("hemfixarna-string-furniture",{id:this.selectedID}),"hornbach"===D.hornbach&&n("hemfixarna-hornbach",{isDemo:true,id:this.selectedID}),"hornbach"===D.kund&&n("hemfixarna-kund",{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("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"))))))))))))))):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")))))))))))))))))}};q.style=Y;var G=class extends Error{constructor(){super("Invalid swedish personal identity number")}};var Z=(t,i)=>{const e=t.getTime()-i.getTime();return e<0?-1:e>0?1:e};var tt=(t,i)=>{const e=Z(t,i);const n=Math.abs(t.getFullYear()-i.getFullYear());t.setFullYear(t.getFullYear()-e*n);const r=Z(t,i)===-e;const s=e*(n-+r);return s===0?0:s};var it=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 et=(t,i,e)=>{i-=1;const n=new Date(t,i,e);return!(n.getFullYear()!==t||n.getMonth()!==i||n.getDate()!==e)};var nt=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 nt(t,i)}static valid(t,i){try{nt.parse(t,i);return true}catch(t){return false}}parse(t,i){if(t.length<10||t.length>13){throw new G}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 G}const r=n[1];const s=n[2];const a=n[3];const o=n[4];const l=n[5];const h=n[6];const c=n[7];if(typeof r==="undefined"||!r.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(s))%100)).substr(0,2)}else{this._century=r;if((new Date).getFullYear()-parseInt(r+s,10)<100){this._sep="-"}else{this._sep="+"}}this._year=s;this._fullYear=this._century+s;this._month=a;this._day=o;this._num=h;this._check=c;if(!this.valid()){throw new G}if(!(i==null?void 0:i.allowCoordinationNumber)&&this.isCoordinationNumber()){throw new G}if(!(i==null?void 0:i.allowInterimNumber)&&this.isInterimNumber()){throw new G}}valid(){const t=it(this.year+this.month+this.day+this.num.replace(/[TRSUWXJKLMN]/,"1"))===+this.check&&!!this.check;if(t&&et(parseInt(this.century+this.year),+this.month,+this.day)){return t}return t&&et(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 tt(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 et(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 rt=nt;function st(t,i,e){return e={path:i,exports:{},require:function(t,i){return at()}},t(e,e.exports),e.exports}function at(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var ot=st((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 r=0;var s=0;while(e<t.length){n=t.charCodeAt(e);if(n<128){i+=String.fromCharCode(n);e++}else if(n>191&&n<224){r=t.charCodeAt(e+1);i+=String.fromCharCode((n&31)<<6|r&63);e+=2}else{r=t.charCodeAt(e+1);s=t.charCodeAt(e+2);i+=String.fromCharCode((n&15)<<12|(r&63)<<6|s&63);e+=3}}return i}}));var lt=st((function(t,i){Object.defineProperty(i,"__esModule",{value:true});i.generate=void 0;function e(t){var i=[];var e;var n;var s;var a;var o;var l;var p;var x;var g;var b=7;var v=12;var _=17;var k=22;var w=5;var y=9;var $=14;var C=20;var T=4;var z=11;var S=16;var j=23;var O=6;var I=10;var L=15;var M=21;var D=ot.utf8.encode(t);i=f(D);l=1732584193;p=4023233417;x=2562383102;g=271733878;for(e=0;e<i.length;e+=16){n=l;s=p;a=x;o=g;l=h(l,p,x,g,i[e+0],b,3614090360);g=h(g,l,p,x,i[e+1],v,3905402710);x=h(x,g,l,p,i[e+2],_,606105819);p=h(p,x,g,l,i[e+3],k,3250441966);l=h(l,p,x,g,i[e+4],b,4118548399);g=h(g,l,p,x,i[e+5],v,1200080426);x=h(x,g,l,p,i[e+6],_,2821735955);p=h(p,x,g,l,i[e+7],k,4249261313);l=h(l,p,x,g,i[e+8],b,1770035416);g=h(g,l,p,x,i[e+9],v,2336552879);x=h(x,g,l,p,i[e+10],_,4294925233);p=h(p,x,g,l,i[e+11],k,2304563134);l=h(l,p,x,g,i[e+12],b,1804603682);g=h(g,l,p,x,i[e+13],v,4254626195);x=h(x,g,l,p,i[e+14],_,2792965006);p=h(p,x,g,l,i[e+15],k,1236535329);l=c(l,p,x,g,i[e+1],w,4129170786);g=c(g,l,p,x,i[e+6],y,3225465664);x=c(x,g,l,p,i[e+11],$,643717713);p=c(p,x,g,l,i[e+0],C,3921069994);l=c(l,p,x,g,i[e+5],w,3593408605);g=c(g,l,p,x,i[e+10],y,38016083);x=c(x,g,l,p,i[e+15],$,3634488961);p=c(p,x,g,l,i[e+4],C,3889429448);l=c(l,p,x,g,i[e+9],w,568446438);g=c(g,l,p,x,i[e+14],y,3275163606);x=c(x,g,l,p,i[e+3],$,4107603335);p=c(p,x,g,l,i[e+8],C,1163531501);l=c(l,p,x,g,i[e+13],w,2850285829);g=c(g,l,p,x,i[e+2],y,4243563512);x=c(x,g,l,p,i[e+7],$,1735328473);p=c(p,x,g,l,i[e+12],C,2368359562);l=u(l,p,x,g,i[e+5],T,4294588738);g=u(g,l,p,x,i[e+8],z,2272392833);x=u(x,g,l,p,i[e+11],S,1839030562);p=u(p,x,g,l,i[e+14],j,4259657740);l=u(l,p,x,g,i[e+1],T,2763975236);g=u(g,l,p,x,i[e+4],z,1272893353);x=u(x,g,l,p,i[e+7],S,4139469664);p=u(p,x,g,l,i[e+10],j,3200236656);l=u(l,p,x,g,i[e+13],T,681279174);g=u(g,l,p,x,i[e+0],z,3936430074);x=u(x,g,l,p,i[e+3],S,3572445317);p=u(p,x,g,l,i[e+6],j,76029189);l=u(l,p,x,g,i[e+9],T,3654602809);g=u(g,l,p,x,i[e+12],z,3873151461);x=u(x,g,l,p,i[e+15],S,530742520);p=u(p,x,g,l,i[e+2],j,3299628645);l=d(l,p,x,g,i[e+0],O,4096336452);g=d(g,l,p,x,i[e+7],I,1126891415);x=d(x,g,l,p,i[e+14],L,2878612391);p=d(p,x,g,l,i[e+5],M,4237533241);l=d(l,p,x,g,i[e+12],O,1700485571);g=d(g,l,p,x,i[e+3],I,2399980690);x=d(x,g,l,p,i[e+10],L,4293915773);p=d(p,x,g,l,i[e+1],M,2240044497);l=d(l,p,x,g,i[e+8],O,1873313359);g=d(g,l,p,x,i[e+15],I,4264355552);x=d(x,g,l,p,i[e+6],L,2734768916);p=d(p,x,g,l,i[e+13],M,1309151649);l=d(l,p,x,g,i[e+4],O,4149444226);g=d(g,l,p,x,i[e+11],I,3174756917);x=d(x,g,l,p,i[e+2],L,718787259);p=d(p,x,g,l,i[e+9],M,3951481745);l=r(l,n);p=r(p,s);x=r(x,a);g=r(g,o)}return m(l)+m(p)+m(x)+m(g)}i.generate=e;function n(t,i){return t<<i|t>>>32-i}function r(t,i){var e;var n;var r;var s;var a;r=t&2147483648;s=i&2147483648;e=t&1073741824;n=i&1073741824;a=(t&1073741823)+(i&1073741823);if(e&n){return a^2147483648^r^s}if(e|n){if(a&1073741824){return a^3221225472^r^s}else{return a^1073741824^r^s}}else{return a^r^s}}function s(t,i,e){return t&i|~t&e}function a(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,a,o,l,h){t=r(t,r(r(s(i,e,a),o),h));return r(n(t,l),i)}function c(t,i,e,s,o,l,h){t=r(t,r(r(a(i,e,s),o),h));return r(n(t,l),i)}function u(t,i,e,s,a,l,h){t=r(t,r(r(o(i,e,s),a),h));return r(n(t,l),i)}function d(t,i,e,s,a,o,h){t=r(t,r(r(l(i,e,s),a),h));return r(n(t,o),i)}function f(t){var i;var e=t.length;var n=e+8;var r=(n-n%64)/64;var s=(r+1)*16;var a=Array(s-1);var o=0;var l=0;while(l<e){i=(l-l%4)/4;o=l%4*8;a[i]=a[i]|t.charCodeAt(l)<<o;l++}i=(l-l%4)/4;o=l%4*8;a[i]=a[i]|128<<o;a[s-2]=e<<3;a[s-1]=e>>>29;return a}function m(t){var i="";var e="";var n;var r;for(r=0;r<=3;r++){n=t>>>r*8&255;e="0"+n.toString(16);i=i+e.substr(e.length-2,2)}return i}}));var ht=st((function(t,i){Object.defineProperty(i,"__esModule",{value:true});i.MD5=i.generate=void 0;var e=lt;Object.defineProperty(i,"generate",{enumerable:true,get:function(){return e.generate}});i.MD5={generate:lt.generate}}));const ct=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:ht.MD5.generate(String.fromCharCode(83,101,67,82,101,116)+t)})});const n=await e.json();return n};const ut=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=this.phone.length>6;if(!n){this.phoneError="Ange ett giltigt telefonnummer"}const r=rt.valid(this.ssn);if(!r){this.ssnError="Ange ett giltigt personnummer"}else if(r){const t=rt.parse(this.ssn).format(true);this.ssn=[t.slice(0,8),"-",t.slice(8)].join("")}if(e&&n&&r){try{const t=await ct(this.ssn);if(t){x.checkoutStep=2;x.user=Object.assign(Object.assign({},t),{email:this.email,phone:this.phone,ssn:this.ssn});const i=this.el.closest(".hemfixarna_content");v(i)}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)}}};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 r(this)}};const dt="";const ft=class{constructor(t){e(this,t);this.id=undefined;this.loadFromQuery=true;this.isDemo=false}render(){return n("hemfixarna-component",{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:D.hornbach})}};ft.style=dt;const mt=class{constructor(t){e(this,t);this.logo=a(`./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=a(`./assets/checked.svg`);return n("div",{class:"hemfixarna_info"},x.step<5?n(s,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 pt=class{constructor(t){e(this,t);this.id=undefined;this.loadFromQuery=false}render(){return n("hemfixarna-component",{loadFromQuery:this.loadFromQuery,id:this.id,business:D.kund})}};const xt=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 gt=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 r=i.find((i=>i.products.find((i=>i.ID===t))));const s=this.tree.sub_cats.find((i=>i.services.find((i=>i.products.find((i=>i.ID===t))))));x.selectedCategory=s;x.selectedService=r;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=a(`./assets/info.svg`);return n(s,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,y(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,C(i,t,i.amount),"kr")))))))}))),n("div",{class:"hemfixarna_cart--additional"},T().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,T().rot,"kr")),T().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,T().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?S():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 bt=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){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++;i.parts=[...i.parts]}else{i.parts=[...i.parts,{id:t.ID,amount:1,price:t.price,name:t.post_title}]}x.cart=[...x.cart.filter((t=>t.id!==i.id)),i]}}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 y(x.selectedProduct,t)}render(){var t,i,e;const r=a(`./assets/checked.svg`);const s=a(`./assets/plus.svg`);const o=a(`./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: ",y(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:r,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"},y(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:s,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"},C(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:s,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 r(this)}};const vt=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 _t="";const kt=class{constructor(t){e(this,t);this.id=undefined;this.customer=undefined;this.loadFromQuery=false}render(){return n("hemfixarna-component",{loadFromQuery:this.loadFromQuery,id:this.id,business:D.skanska})}};kt.style=_t;const wt=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 yt="";const $t=class{constructor(t){e(this,t);this.id=undefined;this.loadFromQuery=false}render(){return n("hemfixarna-component",{loadFromQuery:this.loadFromQuery,id:this.id,business:D.string})}};$t.style=yt;export{_ as hemfixarna_address,L as hemfixarna_box,M as hemfixarna_breadcrumbs,F as hemfixarna_byggmax,A as hemfixarna_cart,R as hemfixarna_category,B as hemfixarna_checkout,Q as hemfixarna_component,q as hemfixarna_demo,ut as hemfixarna_getuser,ft as hemfixarna_hornbach,mt as hemfixarna_info,pt as hemfixarna_kund,xt as hemfixarna_order,gt as hemfixarna_orderrows,bt as hemfixarna_product,vt as hemfixarna_service,kt as hemfixarna_skanska,wt as hemfixarna_start,$t as hemfixarna_string_furniture};
2
+ //# sourceMappingURL=p-1adf10af.entry.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hemfixarna-web-components",
3
- "version": "1.2.2",
3
+ "version": "1.2.3",
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",