@jumpgroup/jump-design-system 0.3.95 → 0.3.97

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/cjs/jump-card-ecommerce.cjs.entry.js +3 -2
  2. package/dist/cjs/jump-card-ecommerce.cjs.entry.js.map +1 -1
  3. package/dist/cjs/jump-design-system.cjs.js +1 -1
  4. package/dist/cjs/jump-notice.cjs.entry.js +41 -0
  5. package/dist/cjs/jump-notice.cjs.entry.js.map +1 -0
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/collection/collection-manifest.json +1 -0
  8. package/dist/collection/components/jump-card-ecommerce/jump-card-ecommerce.js +3 -2
  9. package/dist/collection/components/jump-card-ecommerce/jump-card-ecommerce.js.map +1 -1
  10. package/dist/collection/components/jump-card-ecommerce/jump-card-ecommerce.stories.js +2 -0
  11. package/dist/collection/components/jump-card-ecommerce/jump-card-ecommerce.stories.js.map +1 -1
  12. package/dist/collection/components/jump-notice/jump-notice.css +59 -0
  13. package/dist/collection/components/jump-notice/jump-notice.js +190 -0
  14. package/dist/collection/components/jump-notice/jump-notice.js.map +1 -0
  15. package/dist/collection/components/jump-notice/jump-notice.stories.js +90 -0
  16. package/dist/collection/components/jump-notice/jump-notice.stories.js.map +1 -0
  17. package/dist/components/jump-card-ecommerce.js +3 -2
  18. package/dist/components/jump-card-ecommerce.js.map +1 -1
  19. package/dist/components/jump-notice.d.ts +11 -0
  20. package/dist/components/jump-notice.js +76 -0
  21. package/dist/components/jump-notice.js.map +1 -0
  22. package/dist/esm/jump-card-ecommerce.entry.js +3 -2
  23. package/dist/esm/jump-card-ecommerce.entry.js.map +1 -1
  24. package/dist/esm/jump-design-system.js +1 -1
  25. package/dist/esm/jump-notice.entry.js +37 -0
  26. package/dist/esm/jump-notice.entry.js.map +1 -0
  27. package/dist/esm/loader.js +1 -1
  28. package/dist/jump-design-system/jump-design-system.esm.js +1 -1
  29. package/dist/jump-design-system/jump-design-system.esm.js.map +1 -1
  30. package/dist/jump-design-system/p-4737672b.entry.js +2 -0
  31. package/dist/jump-design-system/p-4737672b.entry.js.map +1 -0
  32. package/dist/jump-design-system/{p-04194e1a.entry.js → p-b0dade73.entry.js} +2 -2
  33. package/dist/jump-design-system/{p-04194e1a.entry.js.map → p-b0dade73.entry.js.map} +1 -1
  34. package/dist/jump-design-system-elements.json +37 -0
  35. package/dist/types/components/jump-notice/jump-notice.d.ts +19 -0
  36. package/dist/types/components/jump-notice/jump-notice.stories.d.ts +48 -0
  37. package/dist/types/components.d.ts +49 -0
  38. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["patchBrowser","importMeta","url","opts","resourcesUrl","URL","href","promiseResolve","then","async","options","globalScripts","bootstrapLazy","onlyIconButton","hasBackground","badge","favorite","hasFavorite","hasSlotForFavorite","hasSlotAddToCart","link","img","imgAlt","hoverImg","hoverImgAlt","videoSrc","notificationUrl","notificationText","productName","subtitle","productId","price","salePrice","currency","addToCartColor","badgeColor","outOfStock","outOfStockText","addToCartText","waitingListText","addToWaitingList","isMini","disallowAddToCart","disallowAddToCartLabel","enableZoom","imageObjectFit","autoSelectFirstVariation","addedToCart","endAddedToCart","variations","selectedVariation","priceFormatted","salePriceFormatted","optionsOrdered","setPrice","forceVariationsOrder","selectVariation","selectFirstVariation","getSelectedVariation","direction","filterHeading","filterButtonLabel","filterButtonIcon","mobileThreshold","filters","showCount","offCanvasOverlay","activeFilters","showMobileFilters","isMobile","offCanvasClasses","getFilters","name","heading","otherLabel","lessLabel","maxElements","variant","label","values","value","slotItems","inputs","showMore","getValues","getActiveAmount","getInputs","getName","logo","navItems","secondaryNavItems","type","navPosition","megaMenuAlignment","sticky","stickyThreshold","mobileLogo","user","pagLabel","last","showFirstAndLast","current","elementsRanges","elPerPage","labelElementsPerPage","total","first","elementsRangesArray","min","max","step","showButtons","internalValue","getValue","setMax","reset","searchValue","placeholder","noResultText","loadingText","resultsText","showAllResText","identifier","debounceTime","withBtn","recentsTitle","recents","results","dropdown","linearIconOnly","dropdownPosition","dropdownVisible","resType","innerResults","totalResults","isExpanded","setResults","isOpen","summary","disabled","open","icon","isCartOpen","position","cartItems","iconName","iconPosition","active","groupIdentifier","horizontal","dark","shadow","border","borderRadius","topBorderContentRadius","boxed","roundedMedia","imgSrc","code","imgUrl","sku","taxonomy","order","checked","count","isChecked","labelMinBefore","labelMinAfter","labelMaxBefore","labelMaxAfter","minVal","maxVal","internalMinVal","internalMaxVal","multiple","required","loading","getSelectedValue","getSelectedOption","setValue","details","alignment","fullBorder","tabGroupName","items","discountThreshold","freeShippingThreshold","progressPercentage","checkoutLabel","viewCartLabel","shippingInfo","dimension","soft","outline","size","full","pill","text","onlyIcon","target","ariaLabel","class","buttonId","library","category","src"],"sources":["node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v4.18.2 | MIT Licensed | https://stenciljs.com\n */\n\n// src/client/client-patch-browser.ts\nimport { BUILD, NAMESPACE } from \"@stencil/core/internal/app-data\";\nimport { consoleDevInfo, doc, H, promiseResolve } from \"@stencil/core\";\nvar patchBrowser = () => {\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo(\"Running in development mode.\");\n }\n if (BUILD.cloneNodeFix) {\n patchCloneNodeFix(H.prototype);\n }\n const scriptElm = BUILD.scriptDataOpts ? Array.from(doc.querySelectorAll(\"script\")).find(\n (s) => new RegExp(`/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) || s.getAttribute(\"data-stencil-namespace\") === NAMESPACE\n ) : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? (scriptElm || {})[\"data-opts\"] || {} : {};\n if (importMeta !== \"\") {\n opts.resourcesUrl = new URL(\".\", importMeta).href;\n }\n return promiseResolve(opts);\n};\nvar patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function(deep) {\n if (this.nodeName === \"TEMPLATE\") {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport {\n patchBrowser\n};\n","export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(async (options) => {\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["patchBrowser","importMeta","url","opts","resourcesUrl","URL","href","promiseResolve","then","async","options","globalScripts","bootstrapLazy","onlyIconButton","hasBackground","badge","favorite","hasFavorite","hasSlotForFavorite","hasSlotAddToCart","link","img","imgAlt","hoverImg","hoverImgAlt","videoSrc","notificationUrl","notificationText","productName","subtitle","productId","price","salePrice","currency","addToCartColor","badgeColor","outOfStock","outOfStockText","addToCartText","waitingListText","addToWaitingList","isMini","disallowAddToCart","disallowAddToCartLabel","enableZoom","imageObjectFit","autoSelectFirstVariation","addedToCart","endAddedToCart","variations","selectedVariation","priceFormatted","salePriceFormatted","optionsOrdered","setPrice","forceVariationsOrder","selectVariation","selectFirstVariation","getSelectedVariation","direction","filterHeading","filterButtonLabel","filterButtonIcon","mobileThreshold","filters","showCount","offCanvasOverlay","activeFilters","showMobileFilters","isMobile","offCanvasClasses","getFilters","name","heading","otherLabel","lessLabel","maxElements","variant","label","values","value","slotItems","inputs","showMore","getValues","getActiveAmount","getInputs","getName","logo","navItems","secondaryNavItems","type","navPosition","megaMenuAlignment","sticky","stickyThreshold","mobileLogo","user","id","title","description","linkText","closable","visible","pagLabel","last","showFirstAndLast","current","elementsRanges","elPerPage","labelElementsPerPage","total","first","elementsRangesArray","min","max","step","showButtons","internalValue","getValue","setMax","reset","searchValue","placeholder","noResultText","loadingText","resultsText","showAllResText","identifier","debounceTime","withBtn","recentsTitle","recents","results","dropdown","linearIconOnly","dropdownPosition","dropdownVisible","resType","innerResults","totalResults","isExpanded","setResults","isOpen","summary","disabled","open","icon","position","items","discountThreshold","freeShippingThreshold","progressPercentage","checkoutLabel","viewCartLabel","shippingInfo","cartItems","isCartOpen","iconName","iconPosition","active","groupIdentifier","horizontal","dark","shadow","border","borderRadius","topBorderContentRadius","boxed","roundedMedia","imgSrc","code","imgUrl","sku","taxonomy","order","checked","count","isChecked","labelMinBefore","labelMinAfter","labelMaxBefore","labelMaxAfter","minVal","maxVal","internalMinVal","internalMaxVal","multiple","required","loading","getSelectedValue","getSelectedOption","setValue","details","alignment","fullBorder","tabGroupName","dimension","soft","outline","size","full","pill","text","onlyIcon","target","ariaLabel","class","buttonId","library","category","src"],"sources":["node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v4.18.2 | MIT Licensed | https://stenciljs.com\n */\n\n// src/client/client-patch-browser.ts\nimport { BUILD, NAMESPACE } from \"@stencil/core/internal/app-data\";\nimport { consoleDevInfo, doc, H, promiseResolve } from \"@stencil/core\";\nvar patchBrowser = () => {\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo(\"Running in development mode.\");\n }\n if (BUILD.cloneNodeFix) {\n patchCloneNodeFix(H.prototype);\n }\n const scriptElm = BUILD.scriptDataOpts ? Array.from(doc.querySelectorAll(\"script\")).find(\n (s) => new RegExp(`/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) || s.getAttribute(\"data-stencil-namespace\") === NAMESPACE\n ) : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? (scriptElm || {})[\"data-opts\"] || {} : {};\n if (importMeta !== \"\") {\n opts.resourcesUrl = new URL(\".\", importMeta).href;\n }\n return promiseResolve(opts);\n};\nvar patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function(deep) {\n if (this.nodeName === \"TEMPLATE\") {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport {\n patchBrowser\n};\n","export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(async (options) => {\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{r as t,c as o,h as r,H as e}from"./p-98d5dd1f.js";const i=':host{--jump-notice-info-text-color:var(--status-interaction-standard, #2C6ECB);--jump-notice-info-bg-color:var(--status-interaction-soft, #F2F7FE);--jump-notice-warning-text-color:var(--status-warning-standard, #D8A800);--jump-notice-warning-bg-color:var(--status-warning-soft, #FFF8E6);--jump-notice-error-text-color:var(--status-error-standard, #D80000);--jump-notice-error-bg-color:var(--status-error-soft, #FFF0F0);--jump-notice-success-text-color:var(--status-success-standard, #007A00);--jump-notice-success-bg-color:var(--status-success-soft, #EFF8E6);--jump-notice-text-font-size:var(--fs-400, 14px);--jump-notice-title-font-size:var(--fs-500, 18px);--jump-notice-max-width:600px;font-family:var(--ff-primary, "Arial"), sans-serif;max-width:var(--jump-notice-max-width)}.JumpNotice__Wrapper{padding:16px;border-radius:3px;border-left-width:6px;border-left-style:solid;display:flex;gap:16px}.JumpNotice__Wrapper--info{border-left-color:var(--jump-notice-info-text-color);color:var(--jump-notice-info-text-color);background-color:var(--jump-notice-info-bg-color)}.JumpNotice__Wrapper--warning{border-left-color:var(--jump-notice-warning-text-color);color:var(--jump-notice-warning-text-color);background-color:var(--jump-notice-warning-bg-color)}.JumpNotice__Wrapper--error{border-left-color:var(--jump-notice-error-text-color);color:var(--jump-notice-error-text-color);background-color:var(--jump-notice-error-bg-color)}.JumpNotice__Wrapper--success{border-left-color:var(--jump-notice-success-text-color);color:var(--jump-notice-success-text-color);background-color:var(--jump-notice-success-bg-color)}.JumpNotice__Content{display:flex;flex-direction:column;gap:8px}.JumpNotice__Content .JumpNotice__Title{font-size:var(--jump-notice-title-font-size);font-weight:700;margin:0px}.JumpNotice__Content .JumpNotice__Description{font-size:var(--jump-notice-text-font-size);margin:0}';const c=i;const s=class{constructor(r){t(this,r);this.closeNoticeEv=o(this,"jump-notice-close",7);this.visible=true;this.id=undefined;this.title=undefined;this.description=undefined;this.link=undefined;this.linkText=undefined;this.closable=false;this.type="info"}closeNotice(){let t={id:this.id};this.closeNoticeEv.emit(t);this.visible=false}render(){console.log("closable",this.closable,this.visible);if(!this.visible)return null;return r(e,{ref:t=>this.host=t},r("div",{class:`JumpNotice__Wrapper JumpNotice__Wrapper--${this.type}`},r("div",{class:"JumpNotice__Icon"},this.type==="info"&&r("jump-icon",{library:"fa",category:"solid",name:"circle-info",size:"medium"}),this.type==="warning"&&r("jump-icon",{library:"fa",category:"solid",name:"circle-exclamation",size:"medium"}),this.type==="error"&&r("jump-icon",{library:"fa",category:"solid",name:"triangle-exclamation",size:"medium"}),this.type==="success"&&r("jump-icon",{library:"fa",category:"solid",name:"circle-check",size:"medium"})),r("div",{class:"JumpNotice__Content"},this.title&&r("p",{class:"JumpNotice__Title"},this.title),this.description&&r("p",{class:"JumpNotice__Description"},this.description),this.link&&r("jump-button",{variant:"primary",size:"small",text:true,href:this.link,target:"_blank"}," ",r("jump-icon",{slot:"suffix",name:"arrow-right"})," ",this.linkText," "))))}};s.style=c;export{s as jump_notice};
2
+ //# sourceMappingURL=p-4737672b.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jumpNoticeCss","JumpNoticeStyle0","JumpNotice","closeNotice","data","id","this","closeNoticeEv","emit","visible","render","console","log","closable","h","Host","ref","host","class","type","library","category","name","size","title","description","link","variant","text","href","target","slot","linkText"],"sources":["src/components/jump-notice/jump-notice.scss?tag=jump-notice&encapsulation=shadow","src/components/jump-notice/jump-notice.tsx"],"sourcesContent":[":host {\n --jump-notice-info-text-color: var(--status-interaction-standard, #2C6ECB);\n --jump-notice-info-bg-color: var(--status-interaction-soft, #F2F7FE);\n --jump-notice-warning-text-color: var(--status-warning-standard, #D8A800);\n --jump-notice-warning-bg-color: var(--status-warning-soft, #FFF8E6);\n --jump-notice-error-text-color: var(--status-error-standard, #D80000);\n --jump-notice-error-bg-color: var(--status-error-soft, #FFF0F0);\n --jump-notice-success-text-color: var(--status-success-standard, #007A00);\n --jump-notice-success-bg-color: var(--status-success-soft, #EFF8E6);\n --jump-notice-text-font-size: var(--fs-400, 14px);\n --jump-notice-title-font-size: var(--fs-500, 18px);\n --jump-notice-max-width: 600px;\n\n font-family: var(--ff-primary, 'Arial'), sans-serif;\n max-width: var(--jump-notice-max-width);\n\n}\n\n.JumpNotice__Wrapper {\n\n padding: 16px;\n border-radius: 3px;\n border-left-width: 6px;\n border-left-style: solid;\n display: flex;\n gap: 16px;\n\n &--info {\n border-left-color: var(--jump-notice-info-text-color);\n color: var(--jump-notice-info-text-color);\n background-color: var(--jump-notice-info-bg-color);\n }\n\n &--warning {\n border-left-color: var(--jump-notice-warning-text-color);\n color: var(--jump-notice-warning-text-color);\n background-color: var(--jump-notice-warning-bg-color);\n }\n\n &--error {\n border-left-color: var(--jump-notice-error-text-color);\n color: var(--jump-notice-error-text-color);\n background-color: var(--jump-notice-error-bg-color);\n }\n\n &--success {\n border-left-color: var(--jump-notice-success-text-color);\n color: var(--jump-notice-success-text-color);\n background-color: var(--jump-notice-success-bg-color);\n }\n\n \n}\n\n.JumpNotice__Content {\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n .JumpNotice__Title {\n font-size: var(--jump-notice-title-font-size);\n font-weight: 700;\n margin: 0px;\n }\n\n .JumpNotice__Description {\n font-size: var(--jump-notice-text-font-size);\n margin: 0;\n }\n}","import { Component, Host, Prop, h, Event, EventEmitter, State } from '@stencil/core';\n\n@Component({\n tag: 'jump-notice',\n styleUrl: 'jump-notice.scss',\n shadow: true,\n})\nexport class JumpNotice {\n\n host: HTMLElement;\n\n @State() visible: boolean = true;\n\n /**\n * @Prop() id: string;\n * Serve per identificare il componente nel DOM, utile per test o script esterni.\n */\n @Prop() id: string; \n @Prop() title: string;\n @Prop() description: string;\n @Prop() link: string;\n @Prop() linkText: string;\n @Prop() closable: boolean = false; // Serve a mostrare la x di chiusura. logica da implementare\n @Prop() type: string = 'info'; //'info' | 'warning' | 'error' | 'success' \n\n @Event({ eventName: 'jump-notice-close' }) closeNoticeEv: EventEmitter;\n\n closeNotice(){\n let data = {\n id: this.id\n }\n this.closeNoticeEv.emit(data);\n this.visible = false;\n }\n\n render() {\n console.log('closable', this.closable, this.visible);\n if (!this.visible) return null;\n return (\n <Host ref={(host: HTMLElement) => this.host = host}>\n <div class={`JumpNotice__Wrapper JumpNotice__Wrapper--${this.type}`}>\n <div class=\"JumpNotice__Icon\">\n {this.type === 'info' && <jump-icon library=\"fa\" category=\"solid\" name=\"circle-info\" size=\"medium\"></jump-icon>}\n {this.type === 'warning' && <jump-icon library=\"fa\" category=\"solid\" name=\"circle-exclamation\" size=\"medium\"></jump-icon>}\n {this.type === 'error' && <jump-icon library=\"fa\" category=\"solid\" name=\"triangle-exclamation\" size=\"medium\"></jump-icon>}\n {this.type === 'success' && <jump-icon library=\"fa\" category=\"solid\" name=\"circle-check\" size=\"medium\"></jump-icon>}\n </div>\n <div class=\"JumpNotice__Content\">\n {this.title && <p class=\"JumpNotice__Title\">{this.title}</p>}\n {this.description && <p class=\"JumpNotice__Description\">{this.description}</p>}\n {this.link && <jump-button variant=\"primary\" size=\"small\" text href={this.link} target=\"_blank\"> <jump-icon slot=\"suffix\" name=\"arrow-right\"></jump-icon> {this.linkText} </jump-button>}\n </div>\n {/* {this.closable &&\n <div class=\"JumpNotice__Close\">\n <jump-button onClick={() => this.closeNotice()} variant=\"primary\" text size=\"small\" name=\"scopri\" value=\"value\" aria-label=\"Scopri di più\" id=\"button\" only-icon> <jump-icon slot=\"suffix\" library=\"fa\" category=\"regular\" name=\"xmark\" size=\"medium\"></jump-icon> </jump-button>\n </div>\n } */}\n </div>\n </Host>\n );\n }\n\n}\n"],"mappings":"yDAAA,MAAMA,EAAgB,i2DACtB,MAAAC,EAAeD,E,MCMFE,EAAU,M,uFAIO,K,4HAWA,M,UACL,M,CAIvB,WAAAC,GACE,IAAIC,EAAO,CACTC,GAAIC,KAAKD,IAEXC,KAAKC,cAAcC,KAAKJ,GACxBE,KAAKG,QAAU,K,CAGjB,MAAAC,GACEC,QAAQC,IAAI,WAAYN,KAAKO,SAAUP,KAAKG,SAC5C,IAAKH,KAAKG,QAAS,OAAO,KAC1B,OACEK,EAACC,EAAI,CAACC,IAAMC,GAAsBX,KAAKW,KAAOA,GAC5CH,EAAA,OAAKI,MAAO,4CAA4CZ,KAAKa,QAC3DL,EAAA,OAAKI,MAAM,oBACRZ,KAAKa,OAAS,QAAUL,EAAA,aAAWM,QAAQ,KAAKC,SAAS,QAAQC,KAAK,cAAcC,KAAK,WACzFjB,KAAKa,OAAS,WAAaL,EAAA,aAAWM,QAAQ,KAAKC,SAAS,QAAQC,KAAK,qBAAqBC,KAAK,WACnGjB,KAAKa,OAAS,SAAWL,EAAA,aAAWM,QAAQ,KAAKC,SAAS,QAAQC,KAAK,uBAAuBC,KAAK,WACnGjB,KAAKa,OAAS,WAAaL,EAAA,aAAWM,QAAQ,KAAKC,SAAS,QAAQC,KAAK,eAAeC,KAAK,YAEhGT,EAAA,OAAKI,MAAM,uBACRZ,KAAKkB,OAASV,EAAA,KAAGI,MAAM,qBAAqBZ,KAAKkB,OACjDlB,KAAKmB,aAAeX,EAAA,KAAGI,MAAM,2BAA2BZ,KAAKmB,aAC7DnB,KAAKoB,MAAQZ,EAAA,eAAaa,QAAQ,UAAUJ,KAAK,QAAQK,KAAI,KAACC,KAAMvB,KAAKoB,KAAMI,OAAO,UAAQ,IAAEhB,EAAA,aAAWiB,KAAK,SAAST,KAAK,gBAA0B,IAAEhB,KAAK0B,SAAQ,O"}
@@ -1,2 +1,2 @@
1
- import{r as t,c as n,h as i,H as s,g as o}from"./p-98d5dd1f.js";const e=":host {\n --card-max-width: 450px;\n --jump-card-max-width-horizontal: 100%;\n --jump-card-color: var(--neutral-grey-primary);\n --jump-card-background: transparent;\n --jump-card-border-color: var(--neutral-grey-background);\n --jump-card-padding: 0.5rem;\n --jump-card-commerce-out-of-stock-color: var(--status-danger-standard);\n --jump-card-ecommerce-discount-color: var(--status-danger-standard);\n --image-object-fit: cover;\n max-width: var(--card-max-width);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n font-family: var(--ff-primary, \"Arial\"), sans-serif;\n line-height: var(--lh-400, 1.3);\n background-color: var(--jump-card-background);\n color: var(--jump-card-color);\n}\n:host .Footer,\n:host .Body {\n display: flex;\n width: 100%;\n}\n:host .Footer {\n container-type: inline-size;\n flex-direction: row;\n}\n@container (max-width: 239px) {\n :host .Footer {\n flex-direction: column;\n }\n :host .Footer .OutOfStock {\n margin-bottom: 0.25rem;\n }\n}\n:host jump-badge {\n position: absolute;\n top: 1rem;\n left: 1rem;\n z-index: 2;\n}\n:host jump-badge.hasBackground.iconOnly {\n top: calc(1rem + 8px);\n left: calc(1rem + 8px);\n}\n:host .Media {\n container-type: inline-size;\n}\n@container (max-width: 239px) {\n :host .Media jump-badge {\n top: auto;\n bottom: 1rem;\n left: 1rem;\n right: auto;\n }\n}\n:host .Favorite {\n position: absolute;\n top: 1rem;\n right: 1rem;\n z-index: 2;\n}\n:host .Favorite.hasBackground.iconOnly {\n top: calc(1rem + 8px);\n right: calc(1rem + 8px);\n}\n:host .Media {\n overflow: hidden;\n position: relative;\n border-radius: 3px;\n aspect-ratio: 1/1;\n}\n:host .Media .Images {\n height: 100%;\n margin: 0;\n position: relative;\n}\n:host .Media .Images img {\n height: 100%;\n width: 100%;\n position: absolute;\n top: 0;\n left: 0;\n overflow: hidden;\n object-fit: var(--image-object-fit, cover);\n}\n:host .Media .Images__Front {\n z-index: 1;\n transition: opacity 0.5s linear;\n cursor: pointer;\n}\n:host .Media .Images.has-hover-image:hover .Images__Front {\n opacity: 0;\n}\n:host .Media .Images.enable-zoom {\n overflow: hidden;\n}\n:host .Media .Images.enable-zoom .Images__Front {\n transition: transform 0s ease-out;\n cursor: zoom-in;\n}\n:host .Media .Images.enable-zoom:hover .Images__Front {\n transform: scale(1.5);\n}\n:host .Media.hasBackground {\n background-color: var(--neutral-white);\n}\n:host .Media.hasBackground.iconOnly {\n border-top-left-radius: 6px;\n border-top-right-radius: 6px;\n padding: var(--jump-card-padding) var(--jump-card-padding) 0;\n}\n:host .Media.hasBackground.iconOnly img {\n border-radius: 6px;\n}\n:host .Media.iconOnly {\n border-bottom-right-radius: 0;\n}\n:host .Media.is-mini {\n max-width: 180px;\n}\n:host .NotificationCart {\n display: none;\n position: absolute;\n bottom: 0px;\n width: 100%;\n padding: 2rem 1rem;\n background-color: hsla(0, 0%, 0%, 0.35);\n box-sizing: border-box;\n z-index: 2;\n transform: translate3d(0, 0, 0);\n}\n:host .NotificationCart.is-active {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n:host .Content {\n container-type: inline-size;\n}\n:host .Content.hasBackground {\n background-color: var(--neutral-white);\n padding: calc(var(--jump-card-padding) * 2);\n}\n:host .Content.iconOnly {\n padding: calc(var(--jump-card-padding) * 2) var(--jump-card-padding);\n}\n:host .Content.is-mini {\n max-width: 180px;\n}\n:host .Body {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n padding: var(--jump-card-padding) 0;\n container-type: inline-size;\n}\n:host .Body > * {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n}\n:host .Body > * > * {\n flex: 0 1 auto;\n}\n:host .Body .Body__Top {\n display: flex;\n flex-direction: row;\n}\n:host .Body .Body__Bottom {\n display: flex;\n flex-direction: row;\n}\n@container (max-width: 239px) {\n :host .Body .Body__Top {\n flex-direction: column;\n }\n :host .Body .Body__Bottom {\n flex-direction: column;\n }\n :host .Body .SelectVariations {\n max-width: 100%;\n margin-bottom: 0.5rem;\n }\n :host .Body .SelectVariations select {\n width: 100%;\n }\n :host .Body .Price {\n display: flex;\n flex-direction: column-reverse;\n margin-top: 0.5rem;\n align-items: start;\n }\n}\n:host .Body.hasBackground {\n padding: 0 0 var(--jump-card-padding);\n}\n:host .Body.iconOnly {\n padding: 0;\n}\n:host .Body.is-mini {\n padding: calc(var(--jump-card-padding) / 2) 0;\n}\n:host .Body.is-mini > * {\n flex-direction: column;\n}\n:host .Product {\n font-size: var(--fs-400);\n color: var(--neutral-grey-primary);\n text-decoration: none;\n}\n:host .Subtitle {\n font-size: var(--fs-300);\n color: var(--neutral-grey-secondary);\n line-height: 1.2;\n}\n:host .Footer {\n line-height: var(--lh-400);\n justify-content: end;\n padding: var(--jump-card-padding) 0;\n align-items: flex-end;\n}\n:host .Footer.justify-between {\n justify-content: space-between;\n}\n:host .Footer.hasBackground {\n padding-bottom: 0;\n}\n:host .Footer.iconOnly {\n padding: 0;\n}\n:host .Footer.is-mini {\n padding: calc(var(--jump-card-padding) / 2) 0;\n}\n:host .Footer__AddToCart {\n --jump-button-color: var(--jump-card-ecommerce-add-to-cart-color);\n --jump-button-background: var(--jump-card-ecommerce-add-to-cart-background);\n --jump-button-color-hover: var(--jump-card-ecommerce-add-to-cart-color-hover);\n --jump-button-background-hover: var(--jump-card-ecommerce-add-to-cart-background-hover);\n}\n:host .OutOfStock {\n justify-items: start;\n font-size: var(--fs-300);\n font-weight: var(--fw-900);\n color: var(--jump-card-commerce-out-of-stock-color);\n}\n:host .OnlyIconButton {\n position: absolute;\n bottom: 0;\n right: 0;\n background: var(--neutral-white);\n border-top-left-radius: 20px;\n padding: 8px 8px 0px 8px;\n z-index: 2;\n}\n:host .Price {\n position: relative;\n display: grid;\n grid-template-columns: auto auto;\n grid-template-rows: 1.5rem 1.5rem auto;\n justify-items: end;\n align-items: end;\n column-gap: 0.5rem;\n margin-top: 0;\n font-size: var(--fs-500);\n font-weight: var(--fw-900);\n line-height: var(--lh-400);\n}\n:host .Price > * {\n display: inline-flex;\n}\n:host .Price__Regular {\n text-align: right;\n}\n:host .Price__Regular.sale {\n text-decoration: line-through;\n color: var(--neutral-grey-secondary);\n font-weight: var(--fw-400);\n font-size: var(--fs-400);\n grid-column: 2;\n grid-row: 1;\n}\n:host .Price__Sale {\n grid-column: 2;\n grid-row: 2;\n}\n:host .Price__Discount {\n color: var(--jump-card-ecommerce-discount-color);\n font-weight: var(--fw-400);\n font-size: var(--fs-300);\n grid-column: 1;\n grid-row: 1;\n}\n:host .Price.is-mini {\n display: flex;\n font-size: var(--fs-400);\n}\n:host .SelectVariations {\n display: flex;\n align-items: flex-end;\n max-width: calc(50% - 1rem);\n margin-bottom: 0;\n}\n:host .SelectVariations select {\n appearance: none;\n background-color: transparent;\n border: 1px solid var(--neutral-grey-secondary);\n border-radius: 3px;\n color: var(--neutral-grey-secondary);\n font-size: var(--fs-300);\n padding: 0.5rem 0.75rem;\n max-width: 100%;\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E\");\n background-position: right 0.5rem center;\n background-repeat: no-repeat;\n background-size: 1.5em 1.5em;\n padding-right: 2.5rem;\n -webkit-print-color-adjust: exact;\n}\n\n.slide-in-bottom {\n animation: slide-in-bottom 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;\n}\n\n.slide-out-bottom {\n animation: slide-out-bottom 0.5s cubic-bezier(0.55, 0.085, 0.68, 0.53) both;\n}\n\n.fade-in-out {\n animation-name: fade-in-out;\n animation-duration: 6s;\n animation-timing-function: ease-in-out;\n}\n\n@keyframes fade-in-out {\n from {\n opacity: 0;\n transform: translateY(100px);\n }\n 50% {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(100px);\n }\n}";const a=e;const r=class{constructor(i){t(this,i);this.toggleFavorite=n(this,"jump-toggle-favorite",7);this.productAddToCart=n(this,"jump-add-to-cart",7);this.productWaitingList=n(this,"jump-add-to-waiting-list",7);this.variationSelected=n(this,"jump-variation-selected",7);this.goToProductPage=n(this,"jump-card-go-to-product-page",7);this.handleMouseMove=t=>{if(!this.enableZoom||!this.imageEl)return;const{left:n,top:i,width:s,height:o}=t.currentTarget.getBoundingClientRect();const e=t.clientX-n;const a=t.clientY-i;const r=(e/s-.5)*-80;const h=(a/o-.5)*-80;this.imageEl.style.transform=`scale(1.5) translate(${r}px, ${h}px)`};this.handleMouseLeave=()=>{if(!this.enableZoom||!this.imageEl)return;this.imageEl.style.transform="scale(1) translate(0, 0)"};this.onlyIconButton=false;this.hasBackground=false;this.badge=undefined;this.favorite=false;this.hasFavorite=false;this.hasSlotForFavorite=false;this.hasSlotAddToCart=false;this.link=undefined;this.img=undefined;this.imgAlt=undefined;this.hoverImg=undefined;this.hoverImgAlt=undefined;this.videoSrc=undefined;this.notificationUrl=undefined;this.notificationText="Aggiunto al carrello";this.productName=undefined;this.subtitle=undefined;this.productId=undefined;this.price=undefined;this.salePrice=undefined;this.currency="€";this.addToCartColor="secondary";this.badgeColor="secondary";this.outOfStock=false;this.outOfStockText=undefined;this.addToCartText="Aggiungi al carrello";this.waitingListText="Notifica disponibilità";this.addToWaitingList=false;this.isMini=false;this.disallowAddToCart=false;this.disallowAddToCartLabel="Scopri";this.enableZoom=false;this.imageObjectFit="cover";this.autoSelectFirstVariation=true;this.addedToCart=false;this.endAddedToCart=false;this.variations=[];this.selectedVariation=undefined;this.priceFormatted=undefined;this.salePriceFormatted=undefined;this.optionsOrdered=false}async setPrice(t,n){let i=false;if(t&&t>0){i=true;this.price=t}if(n&&n>0){this.salePrice=n}if(i){this.formatPrices()}}async forceVariationsOrder(){this.optionsOrdered=false;setTimeout((()=>{this.optionsOrdered=true}),1)}selectFirstVariationIfEnabled(){if(this.autoSelectFirstVariation&&!this.selectedVariation&&this.variations.length>0){const t=[...this.variations].sort(((t,n)=>{const i=t.order||999;const s=n.order||999;if(i!==s){return i-s}return t.code.localeCompare(n.code)}));const n=t[0];this.selectedVariation=n;setTimeout((()=>{if(this.variationSelectEl){this.variationSelectEl.value=n.code}}),50);this.variationSelected.emit(n)}}async selectVariation(t){const n=this.variations.find((n=>n.code===t));if(n){this.selectedVariation=n;if(this.variationSelectEl){this.variationSelectEl.value=t}this.variationSelected.emit(n);return true}return false}async selectFirstVariation(){if(this.variations.length>0){const t=[...this.variations].sort(((t,n)=>{const i=t.order||999;const s=n.order||999;if(i!==s){return i-s}return t.code.localeCompare(n.code)}));return await this.selectVariation(t[0].code)}return false}async getSelectedVariation(){return this.selectedVariation||null}addOption(t){let n=t.detail;const i=this.variations.findIndex((t=>t.code===n.code));if(i===-1){this.variations=[...this.variations,Object.assign({},n)]}else{this.variations=this.variations.map(((t,s)=>s===i?Object.assign({},n):t))}this.optionsOrdered=false;setTimeout((()=>{this.optionsOrdered=true;this.selectFirstVariationIfEnabled()}),10)}onVariationSelected(){let t=this.variationSelectEl.value;const n=[...this.variations].sort(((t,n)=>{const i=t.order||999;const s=n.order||999;if(i!==s){return i-s}return t.code.localeCompare(n.code)}));let i=n.find((n=>n.code==t));this.selectedVariation=i;this.variationSelected.emit(i)}componentWillLoad(){}componentDidLoad(){this.jumpQuantityEl=this.JumpCardEcommerce.querySelector("jump-quantity");if(this.jumpQuantityEl){this.jumpQuantityEl.addEventListener("jump-change",this.onQuantityChange.bind(this));this.quantity=this.jumpQuantityEl.getValue().then((t=>{this.quantity=t}))}this.formatPrices()}disconnectedCallback(){this.jumpQuantityEl=this.JumpCardEcommerce.querySelector("jump-quantity");if(this.jumpQuantityEl){this.jumpQuantityEl.removeEventListener("jump-change",this.onQuantityChange)}}onQuantityChange(t){var n;this.quantity=(n=t.detail.value)!==null&&n!==void 0?n:false}onToggleFavorite(){this.favorite=!this.favorite;this.toggleFavorite.emit({productId:this.productId,favorite:this.favorite})}goToProduct(){this.goToProductPage.emit({productId:this.productId,link:this.link})}addProductToCart(){var t;this.addedToCart=true;let n=this.selectedVariation;if(!n&&this.variations.length>0){n=this.variations[0]}const i={productId:this.productId,addedToCart:this.addedToCart,quantity:(t=this.quantity)!==null&&t!==void 0?t:null,variation:n!==null&&n!==void 0?n:null};this.productAddToCart.emit(i);setTimeout((()=>{this.addedToCart=false}),6e3)}waitingList(){this.addToWaitingList=true;this.productWaitingList.emit({productId:this.productId,addToWaitingList:this.addToWaitingList})}formatPrices(){var t;let n=(t=document.documentElement.lang)!==null&&t!==void 0?t:"it-IT";if(n.length==2){n=`${n}-${n.toUpperCase()}`}this.priceFormatted=this.price.toLocaleString(n,{minimumFractionDigits:2,maximumFractionDigits:2});this.salePriceFormatted=this.salePrice.toLocaleString(n,{minimumFractionDigits:2,maximumFractionDigits:2})}render(){const t=this.hasBackground&&!this.isMini?"hasBackground":"";const n=this.onlyIconButton&&!this.isMini?"iconOnly":"";const o=this.outOfStock?"justify-between":"";const e=this.hoverImg?"has-hover-image":"";const a=this.isMini?"is-mini":"";const r=this.enableZoom?"enable-zoom":"";const h=[...this.variations].sort(((t,n)=>{const i=t.order||999;const s=n.order||999;if(i!==s){return i-s}return t.code.localeCompare(n.code)}));function d(t,n){const i=(t-n)/t*100;return i.toFixed(0)}return i(s,{style:{"--image-object-fit":this.imageObjectFit}},!this.isMini&&this.hasFavorite?i("jump-button",{onClick:()=>this.onToggleFavorite(),class:`Favorite ${t} ${n}`,variant:this.favorite?"primary":"neutral",size:"small",text:true,onlyIcon:true},i("jump-icon",{slot:"prefix",name:"heart",category:this.favorite?"solid":"light",size:"medium"})):this.hasSlotForFavorite?i("div",{class:"Favorite"},i("slot",{name:"favorite"})):null,i("div",{class:`Media ${n} ${t} ${a}`,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave},!this.isMini&&this.badge?i("jump-badge",{class:`${t} ${n}`,variant:this.badgeColor,dimension:"small",label:this.badge}):"",i("a",{href:this.link},i("figure",{class:`Images ${e} ${r}`},this.img&&!this.videoSrc?i("img",{class:"Images__Front",src:this.img,alt:this.imgAlt,ref:t=>this.imageEl=t}):"",this.hoverImg&&!this.videoSrc?i("img",{class:"Images__OnHover",src:this.hoverImg,alt:this.hoverImgAlt}):""),this.videoSrc&&!this.img?i("video",{autoplay:true},i("source",{src:this.videoSrc,type:"video/mp4"}),i("source",{src:this.videoSrc,type:"video/mov"}),i("source",{src:this.videoSrc,type:"video/webm"})):""),!this.isMini?i("div",{class:`NotificationCart ${this.addedToCart==true?"is-active fade-in-out":""}`},i("jump-button",{href:this.notificationUrl,variant:"white",text:true},i("jump-icon",{slot:"prefix",name:"check"}),i("span",null," ",this.notificationText," "))):null,!this.isMini&&this.onlyIconButton&&!this.hasSlotAddToCart?i("div",{class:"OnlyIconButton"},i("jump-button",{variant:"secondary",size:"large",pill:true,onlyIcon:true,onClick:()=>this.addProductToCart()},i("jump-icon",{slot:"prefix",name:"cart-shopping",category:"regular"}))):"",!this.isMini&&this.onlyIconButton&&this.hasSlotAddToCart?i("div",{class:"OnlyIconButton"},i("slot",{name:"add-to-cart"})):""),i("div",{class:`Content ${t} ${n} ${a}`},i("div",{class:`Body ${t} ${n} ${a}`},i("div",{class:"Body__Top"},i("div",{class:"Info"},i("a",{href:this.link,class:"Product"},this.productName),this.subtitle?i("div",{class:"Subtitle"},this.subtitle):null),this.price?i("div",{class:`Price ${a}`},!this.isMini&&this.salePrice&&this.salePrice<this.price?i("div",{class:"Price__Discount"}," ",d(this.price,this.salePrice),"% "):null,!this.isMini?i("div",{class:`Price__Regular ${this.salePrice&&this.salePrice<this.price?"sale":""}`},this.currency,this.priceFormatted):i("div",{class:`Price__Regular`},this.currency,this.salePrice&&this.salePrice<this.price?this.salePriceFormatted:this.priceFormatted),!this.isMini&&this.salePrice&&this.salePrice<this.price?i("div",{class:"Price__Sale"},this.currency,this.salePriceFormatted):null):null),!this.isMini||h.length!=0?i("div",{class:"Body__Bottom"},h.length!=0?i("div",{class:"SelectVariations"},i("select",{ref:t=>this.variationSelectEl=t,onChange:()=>{this.onVariationSelected()}},h.filter((t=>!t.imgUrl)).map(((t,n)=>{var s;return i("option",{key:`${t.code}-${t.order||999}-${n}`,value:t.code,selected:((s=this.selectedVariation)===null||s===void 0?void 0:s.code)===t.code},t.label)})))):null,i("slot",{name:"quantity"})):null),i("div",{class:`Footer ${o} ${t} ${n} ${a}`},this.outOfStock&&!this.isMini?i("div",{class:"OutOfStock"},this.outOfStockText?this.outOfStockText:"Esaurito"):"",this.outOfStock?i("jump-button",{class:"Footer__AddToCart",variant:this.addToCartColor,size:"small",text:true,onClick:()=>this.waitingList()},i("jump-icon",{slot:"prefix",name:"bell",category:"regular",size:"small"}),this.waitingListText):"",!this.outOfStock&&!this.onlyIconButton&&!this.hasSlotAddToCart&&!this.disallowAddToCart?i("jump-button",{class:"Footer__AddToCart",variant:this.addToCartColor,size:"small",text:true,onClick:()=>this.addProductToCart()},i("jump-icon",{slot:"prefix",name:"cart-shopping",category:"regular",size:"small"}),this.addToCartText):"",!this.outOfStock&&!this.onlyIconButton&&this.hasSlotAddToCart?i("slot",{name:"add-to-cart"}):null,!this.outOfStock&&this.disallowAddToCart?i("jump-button",{class:"Footer__AddToCart",variant:this.addToCartColor,size:"small",text:true,onClick:()=>this.goToProduct()},i("jump-icon",{slot:"suffix",name:"arrow-right"})," ",this.disallowAddToCartLabel):"")))}get JumpCardEcommerce(){return o(this)}};r.style=a;export{r as jump_card_ecommerce};
2
- //# sourceMappingURL=p-04194e1a.entry.js.map
1
+ import{r as t,c as n,h as i,H as s,g as o}from"./p-98d5dd1f.js";const e=":host {\n --card-max-width: 450px;\n --jump-card-max-width-horizontal: 100%;\n --jump-card-color: var(--neutral-grey-primary);\n --jump-card-background: transparent;\n --jump-card-border-color: var(--neutral-grey-background);\n --jump-card-padding: 0.5rem;\n --jump-card-commerce-out-of-stock-color: var(--status-danger-standard);\n --jump-card-ecommerce-discount-color: var(--status-danger-standard);\n --image-object-fit: cover;\n max-width: var(--card-max-width);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n font-family: var(--ff-primary, \"Arial\"), sans-serif;\n line-height: var(--lh-400, 1.3);\n background-color: var(--jump-card-background);\n color: var(--jump-card-color);\n}\n:host .Footer,\n:host .Body {\n display: flex;\n width: 100%;\n}\n:host .Footer {\n container-type: inline-size;\n flex-direction: row;\n}\n@container (max-width: 239px) {\n :host .Footer {\n flex-direction: column;\n }\n :host .Footer .OutOfStock {\n margin-bottom: 0.25rem;\n }\n}\n:host jump-badge {\n position: absolute;\n top: 1rem;\n left: 1rem;\n z-index: 2;\n}\n:host jump-badge.hasBackground.iconOnly {\n top: calc(1rem + 8px);\n left: calc(1rem + 8px);\n}\n:host .Media {\n container-type: inline-size;\n}\n@container (max-width: 239px) {\n :host .Media jump-badge {\n top: auto;\n bottom: 1rem;\n left: 1rem;\n right: auto;\n }\n}\n:host .Favorite {\n position: absolute;\n top: 1rem;\n right: 1rem;\n z-index: 2;\n}\n:host .Favorite.hasBackground.iconOnly {\n top: calc(1rem + 8px);\n right: calc(1rem + 8px);\n}\n:host .Media {\n overflow: hidden;\n position: relative;\n border-radius: 3px;\n aspect-ratio: 1/1;\n}\n:host .Media .Images {\n height: 100%;\n margin: 0;\n position: relative;\n}\n:host .Media .Images img {\n height: 100%;\n width: 100%;\n position: absolute;\n top: 0;\n left: 0;\n overflow: hidden;\n object-fit: var(--image-object-fit, cover);\n}\n:host .Media .Images__Front {\n z-index: 1;\n transition: opacity 0.5s linear;\n cursor: pointer;\n}\n:host .Media .Images.has-hover-image:hover .Images__Front {\n opacity: 0;\n}\n:host .Media .Images.enable-zoom {\n overflow: hidden;\n}\n:host .Media .Images.enable-zoom .Images__Front {\n transition: transform 0s ease-out;\n cursor: zoom-in;\n}\n:host .Media .Images.enable-zoom:hover .Images__Front {\n transform: scale(1.5);\n}\n:host .Media.hasBackground {\n background-color: var(--neutral-white);\n}\n:host .Media.hasBackground.iconOnly {\n border-top-left-radius: 6px;\n border-top-right-radius: 6px;\n padding: var(--jump-card-padding) var(--jump-card-padding) 0;\n}\n:host .Media.hasBackground.iconOnly img {\n border-radius: 6px;\n}\n:host .Media.iconOnly {\n border-bottom-right-radius: 0;\n}\n:host .Media.is-mini {\n max-width: 180px;\n}\n:host .NotificationCart {\n display: none;\n position: absolute;\n bottom: 0px;\n width: 100%;\n padding: 2rem 1rem;\n background-color: hsla(0, 0%, 0%, 0.35);\n box-sizing: border-box;\n z-index: 2;\n transform: translate3d(0, 0, 0);\n}\n:host .NotificationCart.is-active {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n:host .Content {\n container-type: inline-size;\n}\n:host .Content.hasBackground {\n background-color: var(--neutral-white);\n padding: calc(var(--jump-card-padding) * 2);\n}\n:host .Content.iconOnly {\n padding: calc(var(--jump-card-padding) * 2) var(--jump-card-padding);\n}\n:host .Content.is-mini {\n max-width: 180px;\n}\n:host .Body {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n padding: var(--jump-card-padding) 0;\n container-type: inline-size;\n}\n:host .Body > * {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n}\n:host .Body > * > * {\n flex: 0 1 auto;\n}\n:host .Body .Body__Top {\n display: flex;\n flex-direction: row;\n}\n:host .Body .Body__Bottom {\n display: flex;\n flex-direction: row;\n}\n@container (max-width: 239px) {\n :host .Body .Body__Top {\n flex-direction: column;\n }\n :host .Body .Body__Bottom {\n flex-direction: column;\n }\n :host .Body .SelectVariations {\n max-width: 100%;\n margin-bottom: 0.5rem;\n }\n :host .Body .SelectVariations select {\n width: 100%;\n }\n :host .Body .Price {\n display: flex;\n flex-direction: column-reverse;\n margin-top: 0.5rem;\n align-items: start;\n }\n}\n:host .Body.hasBackground {\n padding: 0 0 var(--jump-card-padding);\n}\n:host .Body.iconOnly {\n padding: 0;\n}\n:host .Body.is-mini {\n padding: calc(var(--jump-card-padding) / 2) 0;\n}\n:host .Body.is-mini > * {\n flex-direction: column;\n}\n:host .Product {\n font-size: var(--fs-400);\n color: var(--neutral-grey-primary);\n text-decoration: none;\n}\n:host .Subtitle {\n font-size: var(--fs-300);\n color: var(--neutral-grey-secondary);\n line-height: 1.2;\n}\n:host .Footer {\n line-height: var(--lh-400);\n justify-content: end;\n padding: var(--jump-card-padding) 0;\n align-items: flex-end;\n}\n:host .Footer.justify-between {\n justify-content: space-between;\n}\n:host .Footer.hasBackground {\n padding-bottom: 0;\n}\n:host .Footer.iconOnly {\n padding: 0;\n}\n:host .Footer.is-mini {\n padding: calc(var(--jump-card-padding) / 2) 0;\n}\n:host .Footer__AddToCart {\n --jump-button-color: var(--jump-card-ecommerce-add-to-cart-color);\n --jump-button-background: var(--jump-card-ecommerce-add-to-cart-background);\n --jump-button-color-hover: var(--jump-card-ecommerce-add-to-cart-color-hover);\n --jump-button-background-hover: var(--jump-card-ecommerce-add-to-cart-background-hover);\n}\n:host .OutOfStock {\n justify-items: start;\n font-size: var(--fs-300);\n font-weight: var(--fw-900);\n color: var(--jump-card-commerce-out-of-stock-color);\n}\n:host .OnlyIconButton {\n position: absolute;\n bottom: 0;\n right: 0;\n background: var(--neutral-white);\n border-top-left-radius: 20px;\n padding: 8px 8px 0px 8px;\n z-index: 2;\n}\n:host .Price {\n position: relative;\n display: grid;\n grid-template-columns: auto auto;\n grid-template-rows: 1.5rem 1.5rem auto;\n justify-items: end;\n align-items: end;\n column-gap: 0.5rem;\n margin-top: 0;\n font-size: var(--fs-500);\n font-weight: var(--fw-900);\n line-height: var(--lh-400);\n}\n:host .Price > * {\n display: inline-flex;\n}\n:host .Price__Regular {\n text-align: right;\n}\n:host .Price__Regular.sale {\n text-decoration: line-through;\n color: var(--neutral-grey-secondary);\n font-weight: var(--fw-400);\n font-size: var(--fs-400);\n grid-column: 2;\n grid-row: 1;\n}\n:host .Price__Sale {\n grid-column: 2;\n grid-row: 2;\n}\n:host .Price__Discount {\n color: var(--jump-card-ecommerce-discount-color);\n font-weight: var(--fw-400);\n font-size: var(--fs-300);\n grid-column: 1;\n grid-row: 1;\n}\n:host .Price.is-mini {\n display: flex;\n font-size: var(--fs-400);\n}\n:host .SelectVariations {\n display: flex;\n align-items: flex-end;\n max-width: calc(50% - 1rem);\n margin-bottom: 0;\n}\n:host .SelectVariations select {\n appearance: none;\n background-color: transparent;\n border: 1px solid var(--neutral-grey-secondary);\n border-radius: 3px;\n color: var(--neutral-grey-secondary);\n font-size: var(--fs-300);\n padding: 0.5rem 0.75rem;\n max-width: 100%;\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E\");\n background-position: right 0.5rem center;\n background-repeat: no-repeat;\n background-size: 1.5em 1.5em;\n padding-right: 2.5rem;\n -webkit-print-color-adjust: exact;\n}\n\n.slide-in-bottom {\n animation: slide-in-bottom 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;\n}\n\n.slide-out-bottom {\n animation: slide-out-bottom 0.5s cubic-bezier(0.55, 0.085, 0.68, 0.53) both;\n}\n\n.fade-in-out {\n animation-name: fade-in-out;\n animation-duration: 6s;\n animation-timing-function: ease-in-out;\n}\n\n@keyframes fade-in-out {\n from {\n opacity: 0;\n transform: translateY(100px);\n }\n 50% {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(100px);\n }\n}";const a=e;const r=class{constructor(i){t(this,i);this.toggleFavorite=n(this,"jump-toggle-favorite",7);this.productAddToCart=n(this,"jump-add-to-cart",7);this.productWaitingList=n(this,"jump-add-to-waiting-list",7);this.variationSelected=n(this,"jump-variation-selected",7);this.goToProductPage=n(this,"jump-card-go-to-product-page",7);this.handleMouseMove=t=>{if(!this.enableZoom||!this.imageEl)return;const{left:n,top:i,width:s,height:o}=t.currentTarget.getBoundingClientRect();const e=t.clientX-n;const a=t.clientY-i;const r=(e/s-.5)*-80;const h=(a/o-.5)*-80;this.imageEl.style.transform=`scale(1.5) translate(${r}px, ${h}px)`};this.handleMouseLeave=()=>{if(!this.enableZoom||!this.imageEl)return;this.imageEl.style.transform="scale(1) translate(0, 0)"};this.onlyIconButton=false;this.hasBackground=false;this.badge=undefined;this.favorite=false;this.hasFavorite=false;this.hasSlotForFavorite=false;this.hasSlotAddToCart=false;this.link=undefined;this.img=undefined;this.imgAlt=undefined;this.hoverImg=undefined;this.hoverImgAlt=undefined;this.videoSrc=undefined;this.notificationUrl=undefined;this.notificationText="Aggiunto al carrello";this.productName=undefined;this.subtitle=undefined;this.productId=undefined;this.price=undefined;this.salePrice=undefined;this.currency="€";this.addToCartColor="secondary";this.badgeColor="secondary";this.outOfStock=false;this.outOfStockText=undefined;this.addToCartText="Aggiungi al carrello";this.waitingListText="Notifica disponibilità";this.addToWaitingList=false;this.isMini=false;this.disallowAddToCart=false;this.disallowAddToCartLabel="Scopri";this.enableZoom=false;this.imageObjectFit="cover";this.autoSelectFirstVariation=true;this.addedToCart=false;this.endAddedToCart=false;this.variations=[];this.selectedVariation=undefined;this.priceFormatted=undefined;this.salePriceFormatted=undefined;this.optionsOrdered=false}async setPrice(t,n){let i=false;if(t&&t>0){i=true;this.price=t}if(n&&n>0){this.salePrice=n}if(i){this.formatPrices()}}async forceVariationsOrder(){this.optionsOrdered=false;setTimeout((()=>{this.optionsOrdered=true}),1)}selectFirstVariationIfEnabled(){if(this.autoSelectFirstVariation&&!this.selectedVariation&&this.variations.length>0){const t=[...this.variations].sort(((t,n)=>{const i=t.order||999;const s=n.order||999;if(i!==s){return i-s}return t.code.localeCompare(n.code)}));const n=t[0];this.selectedVariation=n;setTimeout((()=>{if(this.variationSelectEl){this.variationSelectEl.value=n.code}}),50);this.variationSelected.emit(n)}}async selectVariation(t){const n=this.variations.find((n=>n.code===t));if(n){this.selectedVariation=n;if(this.variationSelectEl){this.variationSelectEl.value=t}this.variationSelected.emit(n);return true}return false}async selectFirstVariation(){if(this.variations.length>0){const t=[...this.variations].sort(((t,n)=>{const i=t.order||999;const s=n.order||999;if(i!==s){return i-s}return t.code.localeCompare(n.code)}));return await this.selectVariation(t[0].code)}return false}async getSelectedVariation(){return this.selectedVariation||null}addOption(t){let n=t.detail;const i=this.variations.findIndex((t=>t.code===n.code));if(i===-1){this.variations=[...this.variations,Object.assign({},n)]}else{this.variations=this.variations.map(((t,s)=>s===i?Object.assign({},n):t))}this.optionsOrdered=false;setTimeout((()=>{this.optionsOrdered=true;this.selectFirstVariationIfEnabled()}),10)}onVariationSelected(){let t=this.variationSelectEl.value;const n=[...this.variations].sort(((t,n)=>{const i=t.order||999;const s=n.order||999;if(i!==s){return i-s}return t.code.localeCompare(n.code)}));let i=n.find((n=>n.code==t));this.selectedVariation=i;this.variationSelected.emit(i)}componentWillLoad(){}componentDidLoad(){this.jumpQuantityEl=this.JumpCardEcommerce.querySelector("jump-quantity");if(this.jumpQuantityEl){this.jumpQuantityEl.addEventListener("jump-change",this.onQuantityChange.bind(this));this.quantity=this.jumpQuantityEl.getValue().then((t=>{this.quantity=t}))}this.formatPrices()}disconnectedCallback(){this.jumpQuantityEl=this.JumpCardEcommerce.querySelector("jump-quantity");if(this.jumpQuantityEl){this.jumpQuantityEl.removeEventListener("jump-change",this.onQuantityChange)}}onQuantityChange(t){var n;this.quantity=(n=t.detail.value)!==null&&n!==void 0?n:false}onToggleFavorite(){this.favorite=!this.favorite;this.toggleFavorite.emit({productId:this.productId,favorite:this.favorite})}goToProduct(){this.goToProductPage.emit({productId:this.productId,link:this.link})}addProductToCart(){var t;this.addedToCart=true;let n=this.selectedVariation;if(!n&&this.variations.length>0){n=this.variations[0]}const i={productId:this.productId,addedToCart:this.addedToCart,quantity:(t=this.quantity)!==null&&t!==void 0?t:null,variation:n!==null&&n!==void 0?n:null};this.productAddToCart.emit(i);setTimeout((()=>{this.addedToCart=false}),6e3)}waitingList(){this.addToWaitingList=true;this.productWaitingList.emit({productId:this.productId,addToWaitingList:this.addToWaitingList})}formatPrices(){var t;let n=(t=document.documentElement.lang)!==null&&t!==void 0?t:"it-IT";if(n.length==2){n=`${n}-${n.toUpperCase()}`}this.priceFormatted=this.price.toLocaleString(n,{minimumFractionDigits:2,maximumFractionDigits:2});this.salePriceFormatted=this.salePrice.toLocaleString(n,{minimumFractionDigits:2,maximumFractionDigits:2})}render(){const t=this.hasBackground&&!this.isMini?"hasBackground":"";const n=this.onlyIconButton&&!this.isMini?"iconOnly":"";const o=this.outOfStock?"justify-between":"";const e=this.hoverImg?"has-hover-image":"";const a=this.isMini?"is-mini":"";const r=this.enableZoom?"enable-zoom":"";const h=[...this.variations].sort(((t,n)=>{const i=t.order||999;const s=n.order||999;if(i!==s){return i-s}return t.code.localeCompare(n.code)}));function d(t,n){const i=(t-n)/t*100;return i.toFixed(0)}return i(s,{style:{"--image-object-fit":this.imageObjectFit}},!this.isMini&&this.hasFavorite?i("jump-button",{onClick:()=>this.onToggleFavorite(),class:`Favorite ${t} ${n}`,variant:this.favorite?"primary":"neutral",size:"small",text:true,onlyIcon:true},i("jump-icon",{slot:"prefix",name:"heart",category:this.favorite?"solid":"light",size:"medium"})):this.hasSlotForFavorite?i("div",{class:"Favorite"},i("slot",{name:"favorite"})):null,i("div",{class:`Media ${n} ${t} ${a}`,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave},!this.isMini&&this.badge?i("jump-badge",{class:`${t} ${n}`,variant:this.badgeColor,dimension:"small",label:this.badge}):"",i("a",{href:this.link},i("figure",{class:`Images ${e} ${r}`},this.img&&!this.videoSrc?i("img",{class:"Images__Front",src:this.img,alt:this.imgAlt,ref:t=>this.imageEl=t}):"",this.hoverImg&&!this.videoSrc?i("img",{class:"Images__OnHover",src:this.hoverImg,alt:this.hoverImgAlt}):""),this.videoSrc&&!this.img?i("video",{autoplay:true},i("source",{src:this.videoSrc,type:"video/mp4"}),i("source",{src:this.videoSrc,type:"video/mov"}),i("source",{src:this.videoSrc,type:"video/webm"})):""),!this.isMini?i("div",{class:`NotificationCart ${this.addedToCart==true?"is-active fade-in-out":""}`},i("jump-button",{href:this.notificationUrl,variant:"white",text:true},i("jump-icon",{slot:"prefix",name:"check"}),i("span",null," ",this.notificationText," "))):null,!this.isMini&&this.onlyIconButton&&!this.hasSlotAddToCart?i("div",{class:"OnlyIconButton"},i("jump-button",{variant:"secondary",size:"large",pill:true,onlyIcon:true,onClick:()=>this.addProductToCart()},i("jump-icon",{slot:"prefix",name:"cart-shopping",category:"regular"}))):"",!this.isMini&&this.onlyIconButton&&this.hasSlotAddToCart?i("div",{class:"OnlyIconButton"},i("slot",{name:"add-to-cart"})):""),i("div",{class:`Content ${t} ${n} ${a}`},i("div",{class:`Body ${t} ${n} ${a}`},i("div",{class:"Body__Top"},i("div",{class:"Info"},i("a",{href:this.link,class:"Product"},this.productName),this.subtitle?i("div",{class:"Subtitle"},this.subtitle):null),this.price?i("div",{class:`Price ${a}`},!this.isMini&&this.salePrice&&this.salePrice<this.price?i("div",{class:"Price__Discount"}," ",d(this.price,this.salePrice),"% "):null,!this.isMini?i("div",{class:`Price__Regular ${this.salePrice&&this.salePrice<this.price?"sale":""}`},this.currency,this.priceFormatted):i("div",{class:`Price__Regular`},this.currency,this.salePrice&&this.salePrice<this.price?this.salePriceFormatted:this.priceFormatted),!this.isMini&&this.salePrice&&this.salePrice<this.price?i("div",{class:"Price__Sale"},this.currency,this.salePriceFormatted):null):null),!this.isMini||h.length!=0?i("div",{class:"Body__Bottom"},h.length!=0&&!this.disallowAddToCart?i("div",{class:"SelectVariations"},i("select",{ref:t=>this.variationSelectEl=t,onChange:()=>{this.onVariationSelected()}},h.filter((t=>!t.imgUrl)).map(((t,n)=>{var s;return i("option",{key:`${t.code}-${t.order||999}-${n}`,value:t.code,selected:((s=this.selectedVariation)===null||s===void 0?void 0:s.code)===t.code},t.label)})))):null,!this.disallowAddToCart&&i("slot",{name:"quantity"})):null),i("div",{class:`Footer ${o} ${t} ${n} ${a}`},this.outOfStock&&!this.isMini?i("div",{class:"OutOfStock"},this.outOfStockText?this.outOfStockText:"Esaurito"):"",this.outOfStock?i("jump-button",{class:"Footer__AddToCart",variant:this.addToCartColor,size:"small",text:true,onClick:()=>this.waitingList()},i("jump-icon",{slot:"prefix",name:"bell",category:"regular",size:"small"}),this.waitingListText):"",!this.outOfStock&&!this.onlyIconButton&&!this.hasSlotAddToCart&&!this.disallowAddToCart?i("jump-button",{class:"Footer__AddToCart",variant:this.addToCartColor,size:"small",text:true,onClick:()=>this.addProductToCart()},i("jump-icon",{slot:"prefix",name:"cart-shopping",category:"regular",size:"small"}),this.addToCartText):"",!this.outOfStock&&!this.onlyIconButton&&this.hasSlotAddToCart?i("slot",{name:"add-to-cart"}):null,!this.outOfStock&&this.disallowAddToCart?i("jump-button",{class:"Footer__AddToCart",variant:this.addToCartColor,size:"small",text:true,onClick:()=>this.goToProduct()},i("jump-icon",{slot:"suffix",name:"arrow-right"})," ",this.disallowAddToCartLabel):"")))}get JumpCardEcommerce(){return o(this)}};r.style=a;export{r as jump_card_ecommerce};
2
+ //# sourceMappingURL=p-b0dade73.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["jumpCardEcommerceCss","JumpCardEcommerceStyle0","JumpCardEcommerce","this","handleMouseMove","e","enableZoom","imageEl","left","top","width","height","currentTarget","getBoundingClientRect","x","clientX","y","clientY","moveX","moveY","style","transform","handleMouseLeave","setPrice","price","salePrice","shouldFormat","formatPrices","forceVariationsOrder","optionsOrdered","setTimeout","selectFirstVariationIfEnabled","autoSelectFirstVariation","selectedVariation","variations","length","sortedVariations","sort","a","b","orderA","order","orderB","code","localeCompare","firstVariation","variationSelectEl","value","variationSelected","emit","selectVariation","variationCode","variation","find","v","selectFirstVariation","getSelectedVariation","addOption","props","detail","existingIndex","findIndex","Object","assign","map","i","onVariationSelected","currentValue","componentWillLoad","componentDidLoad","jumpQuantityEl","querySelector","addEventListener","onQuantityChange","bind","quantity","getValue","then","disconnectedCallback","removeEventListener","_a","onToggleFavorite","favorite","toggleFavorite","productId","goToProduct","goToProductPage","link","addProductToCart","addedToCart","payload","productAddToCart","waitingList","addToWaitingList","productWaitingList","locale","document","documentElement","lang","toUpperCase","priceFormatted","toLocaleString","minimumFractionDigits","maximumFractionDigits","salePriceFormatted","render","backgroundClass","hasBackground","isMini","iconOnlyClass","onlyIconButton","justifyClass","outOfStock","hasImageOnHover","hoverImg","miniCard","enableZoomClass","calculateDiscount","discount","toFixed","h","Host","imageObjectFit","hasFavorite","onClick","class","variant","size","text","onlyIcon","slot","name","category","hasSlotForFavorite","onMouseMove","onMouseLeave","badge","badgeColor","dimension","label","href","img","videoSrc","src","alt","imgAlt","ref","el","hoverImgAlt","autoplay","type","notificationUrl","notificationText","hasSlotAddToCart","pill","productName","subtitle","currency","onChange","filter","imgUrl","index","key","selected","outOfStockText","addToCartColor","waitingListText","disallowAddToCart","addToCartText","disallowAddToCartLabel"],"sources":["src/components/jump-card-ecommerce/jump-card-ecommerce.scss?tag=jump-card-ecommerce&encapsulation=shadow","src/components/jump-card-ecommerce/jump-card-ecommerce.tsx"],"sourcesContent":[":host {\n --card-max-width: 450px;\n --jump-card-max-width-horizontal: 100%;\n --jump-card-color: var(--neutral-grey-primary);\n --jump-card-background: transparent;\n --jump-card-border-color: var(--neutral-grey-background);\n --jump-card-padding: 0.5rem;\n --jump-card-commerce-out-of-stock-color: var(--status-danger-standard);\n --jump-card-ecommerce-discount-color: var(--status-danger-standard);\n --image-object-fit: cover;\n\n max-width: var(--card-max-width);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n font-family: var(--ff-primary, 'Arial'), sans-serif;\n line-height: var(--lh-400, 1.3);\n background-color: var(--jump-card-background);\n color: var(--jump-card-color);\n\n .Footer,\n .Body {\n display: flex;\n width: 100%;\n }\n\n .Footer {\n container-type: inline-size;\n flex-direction: row;\n\n @container (max-width: 239px) {\n flex-direction: column;\n\n .OutOfStock {\n margin-bottom: 0.25rem;\n }\n\n }\n }\n\n jump-badge {\n position: absolute;\n top: 1rem;\n left: 1rem;\n z-index: 2;\n\n &.hasBackground.iconOnly {\n top: calc(1rem + 8px);\n left: calc(1rem + 8px);\n }\n }\n\n .Media {\n container-type: inline-size;\n\n @container (max-width: 239px) {\n jump-badge {\n top: auto;\n bottom: 1rem;\n left: 1rem;\n right: auto;\n }\n }\n }\n\n .Favorite {\n position: absolute;\n top: 1rem;\n right: 1rem;\n z-index: 2;\n\n &.hasBackground.iconOnly {\n top: calc(1rem + 8px);\n right: calc(1rem + 8px);\n }\n }\n\n .Media {\n // aspect-ratio: 3/4;\n overflow: hidden;\n position: relative;\n border-radius: 3px;\n aspect-ratio: 1/1;\n\n .Images {\n height: 100%;\n margin: 0;\n position: relative;\n\n img {\n height: 100%;\n width: 100%;\n position: absolute;\n top: 0;\n left: 0;\n overflow: hidden;\n object-fit: var(--image-object-fit, cover);\n }\n\n &__Front {\n z-index: 1;\n transition: opacity 0.5s linear;\n cursor: pointer;\n }\n\n &.has-hover-image {\n &:hover .Images__Front {\n opacity: 0;\n }\n }\n\n &.enable-zoom {\n overflow: hidden;\n\n .Images__Front {\n transition: transform 0s ease-out;\n cursor: zoom-in;\n }\n\n &:hover {\n .Images__Front {\n transform: scale(1.5);\n }\n }\n }\n }\n\n &.hasBackground {\n background-color: var(--neutral-white);\n\n &.iconOnly {\n border-top-left-radius: 6px;\n border-top-right-radius: 6px;\n padding: var(--jump-card-padding) var(--jump-card-padding) 0;\n\n img {\n border-radius: 6px;\n }\n }\n }\n\n &.iconOnly {\n border-bottom-right-radius: 0;\n }\n\n &.is-mini {\n max-width: 180px;\n }\n }\n\n .NotificationCart {\n display: none;\n position: absolute;\n bottom: 0px;\n width: 100%;\n padding: 2rem 1rem;\n background-color: hsl(0 0% 0% / 35%);\n box-sizing: border-box;\n z-index: 2;\n transform: translate3d(0, 0, 0);\n\n &.is-active {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n }\n\n .Content {\n container-type: inline-size;\n\n &.hasBackground {\n background-color: var(--neutral-white);\n padding: calc(var(--jump-card-padding) * 2);\n }\n\n &.iconOnly {\n padding: calc(var(--jump-card-padding) * 2) var(--jump-card-padding);\n }\n\n &.is-mini {\n max-width: 180px;\n }\n\n \n }\n\n .Body {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n padding: var(--jump-card-padding) 0;\n container-type: inline-size;\n\n & > * {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n\n & > * {\n flex: 0 1 auto;\n }\n }\n\n .Body__Top {\n display: flex;\n flex-direction: row;\n }\n\n .Body__Bottom {\n display: flex;\n flex-direction: row;\n }\n\n @container (max-width: 239px) {\n .Body__Top {\n flex-direction: column;\n }\n\n .Body__Bottom {\n flex-direction: column;\n }\n\n .SelectVariations {\n max-width: 100%;\n margin-bottom: 0.5rem;\n\n select {\n width: 100%;\n }\n }\n\n .Price {\n display: flex;\n flex-direction: column-reverse;\n margin-top: 0.5rem;\n align-items: start;\n }\n\n\n }\n\n &.hasBackground {\n padding: 0 0 var(--jump-card-padding);\n }\n\n &.iconOnly {\n padding: 0;\n }\n\n &.is-mini {\n & > * {\n flex-direction: column;\n }\n\n padding: calc(var(--jump-card-padding) / 2) 0;\n }\n }\n\n .Product {\n font-size: var(--fs-400);\n color: var(--neutral-grey-primary);\n text-decoration: none;\n }\n\n .Subtitle {\n font-size: var(--fs-300);\n color: var(--neutral-grey-secondary);\n line-height: 1.2;\n }\n\n .Footer {\n line-height: var(--lh-400);\n justify-content: end;\n padding: var(--jump-card-padding) 0;\n align-items: flex-end;\n\n &.justify-between {\n justify-content: space-between;\n }\n\n &.hasBackground {\n padding-bottom: 0;\n }\n\n &.iconOnly {\n padding: 0;\n }\n\n &.is-mini {\n padding: calc(var(--jump-card-padding) / 2) 0;\n }\n\n &__AddToCart {\n --jump-button-color: var(--jump-card-ecommerce-add-to-cart-color);\n --jump-button-background: var(--jump-card-ecommerce-add-to-cart-background);\n --jump-button-color-hover: var(--jump-card-ecommerce-add-to-cart-color-hover);\n --jump-button-background-hover: var(--jump-card-ecommerce-add-to-cart-background-hover);\n }\n }\n\n .OutOfStock {\n justify-items: start;\n font-size: var(--fs-300);\n font-weight: var(--fw-900);\n color: var(--jump-card-commerce-out-of-stock-color);\n }\n\n .OnlyIconButton {\n position: absolute;\n bottom: 0;\n right: 0;\n background: var(--neutral-white);\n border-top-left-radius: 20px;\n padding: 8px 8px 0px 8px;\n z-index: 2;\n }\n\n .Price {\n position: relative;\n display: grid;\n grid-template-columns: auto auto;\n grid-template-rows: 1.5rem 1.5rem auto;\n justify-items: end;\n align-items: end;\n column-gap: 0.5rem;\n margin-top: 0;\n \n\n font-size: var(--fs-500);\n font-weight: var(--fw-900);\n line-height: var(--lh-400);\n\n & > * {\n display: inline-flex;\n }\n\n &__Regular {\n text-align: right;\n\n &.sale {\n text-decoration: line-through;\n color: var(--neutral-grey-secondary);\n font-weight: var(--fw-400);\n font-size: var(--fs-400);\n grid-column: 2;\n grid-row: 1;\n }\n }\n\n &__Sale {\n grid-column: 2;\n grid-row: 2;\n }\n\n &__Discount {\n color: var(--jump-card-ecommerce-discount-color);\n font-weight: var(--fw-400);\n font-size: var(--fs-300);\n grid-column: 1;\n grid-row: 1;\n }\n\n &.is-mini {\n display: flex;\n font-size: var(--fs-400);\n }\n }\n\n .SelectVariations {\n display: flex;\n align-items: flex-end;\n max-width: calc(50% - 1rem);\n margin-bottom: 0;\n\n select {\n appearance: none;\n background-color: transparent;\n border: 1px solid var(--neutral-grey-secondary);\n border-radius: 3px;\n color: var(--neutral-grey-secondary);\n font-size: var(--fs-300);\n padding: 0.5rem 0.75rem;\n max-width: 100%;\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E\");\n background-position: right 0.5rem center;\n background-repeat: no-repeat;\n background-size: 1.5em 1.5em;\n padding-right: 2.5rem;\n -webkit-print-color-adjust: exact;\n \n }\n }\n}\n\n.slide-in-bottom {\n animation: slide-in-bottom 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;\n}\n\n.slide-out-bottom {\n animation: slide-out-bottom 0.5s cubic-bezier(0.55, 0.085, 0.68, 0.53) both;\n}\n\n.fade-in-out {\n animation-name: fade-in-out;\n animation-duration: 6s;\n animation-timing-function: ease-in-out;\n}\n\n@keyframes fade-in-out {\n from {\n opacity: 0;\n transform: translateY(100px);\n }\n\n 50% {\n opacity: 1;\n transform: translateY(0);\n }\n\n to {\n opacity: 0;\n transform: translateY(100px);\n }\n}\n","import { Component, Host, h, Prop, Event, EventEmitter, Element, State, Listen, Method } from '@stencil/core';\n\nexport interface Variation {\n code: string;\n imgUrl: string;\n label: string;\n taxonomy: string;\n order?: number; // Aggiunta proprietà order\n // Add more keys as needed\n}\n\n@Component({\n tag: 'jump-card-ecommerce',\n styleUrl: 'jump-card-ecommerce.scss',\n shadow: true,\n})\nexport class JumpCardEcommerce {\n\n @Element() JumpCardEcommerce: HTMLElement;\n jumpQuantityEl;\n private imageEl: HTMLImageElement;\n\n /* ---------------------- @PROPERTIES ------------------------- */\n\n /** Indicate if card has only icon button*/\n @Prop() onlyIconButton: boolean = false;\n\n /** Indicate if card has background*/\n @Prop() hasBackground: boolean = false;\n\n /** Indicates the badge of the card*/\n @Prop() badge: string;\n\n /** Indicates if the product is favorite */\n @Prop({ mutable: true, reflect: true }) favorite: boolean = false;\n\n /** Indicate if the whislist is active in shop*/\n @Prop() hasFavorite: boolean = false;\n\n /** Indicate if the whislist will be slotted*/\n @Prop() hasSlotForFavorite: boolean = false;\n\n /** Indicate if the add to cart btn will be slotted*/\n @Prop() hasSlotAddToCart: boolean = false;\n\n /** Indicates the link of the card*/\n @Prop() link: string;\n\n /** Indicates the image's src of the card*/\n @Prop() img: string;\n\n /** Indicates the img's alt of the card*/\n @Prop() imgAlt: string;\n\n /** Indicates the over image's src of the card*/\n @Prop() hoverImg: string;\n\n /** Indicates the hover img's alt of the card*/\n @Prop() hoverImgAlt: string;\n\n /** Indicates the videoSrc of the card*/\n @Prop() videoSrc: string;\n\n /** Indicates the notificationUrl of the card*/\n @Prop() notificationUrl: string;\n\n /** Indicates the notificationText of the card*/\n @Prop() notificationText: string = 'Aggiunto al carrello';\n\n /** Indicates the title of the card*/\n @Prop() productName: string;\n\n /** Indicates the subtitle of the card*/\n @Prop() subtitle: string;\n\n /** Indicates the ID of the product, can be also a SKU*/\n @Prop() productId: string;\n\n /** Indicates the price of the card */\n @Prop() price: number;\n\n /** Indicates the sale price of the card */\n @Prop() salePrice: number;\n\n /** Indicates the currency of the card */\n @Prop() currency: string = '€';\n\n /** Indicates the variant of the button */\n @Prop() addToCartColor: 'primary' | 'secondary'|'white'|'neutral' = 'secondary';\n\n /** Indicates the variant of the button */\n @Prop() badgeColor: 'primary' | 'secondary' | 'neutral' | 'warning' | 'success' | 'danger' = 'secondary';\n\n /** Indicates if the product is outOfStock */\n @Prop({ mutable: true, reflect: true }) outOfStock: boolean = false;\n\n /** Indicates the outOfStockText of the product*/\n @Prop() outOfStockText: string;\n\n /** Indicates the button class of the add to cart / notification button */\n @Prop() addToCartText: string = 'Aggiungi al carrello';\n\n /** Indicates the button class of the add to cart / notification button */\n @Prop() waitingListText: string = 'Notifica disponibilità';\n\n /** Indicate if the user request to be notified when te product is avaible*/\n @Prop() addToWaitingList: boolean = false;\n\n /** Indicate if the card is Mini Card*/\n @Prop() isMini: boolean = false;\n\n /** Indica se si tratta di un prodotto che può essere aggiunto al carrello solo dalla pagina prodotto */\n @Prop() disallowAddToCart: boolean = false;\n\n /** Label del pulsante che appare quando il prodotto non può essere aggiunto al carrello */\n @Prop() disallowAddToCartLabel: string = 'Scopri';\n\n /** Indica se è attivo lo zoom all'hover */\n @Prop() enableZoom: boolean = false;\n\n /** Controlla il comportamento dell'object-fit delle immagini */\n @Prop() imageObjectFit: 'cover' | 'scale-down' | 'contain' | 'fill' | 'none' = 'cover';\n\n /** Indica se selezionare automaticamente la prima variazione */\n @Prop() autoSelectFirstVariation: boolean = true;\n\n /* ---------------------- @STATE ------------------------- */\n\n /** Indicate if the product is added to cart --> non deve esserci nelle storie! */\n @Prop() addedToCart: boolean = false;\n\n @Prop() endAddedToCart: boolean = false;\n\n @State() variations: Variation[] = [];\n\n @State() selectedVariation: Variation;\n\n @State() priceFormatted: string;\n\n @State() salePriceFormatted: string;\n\n /** Flag per tracciare se le opzioni sono state ordinate */\n @State() optionsOrdered: boolean = false;\n\n // è una proprietà che viene cambiata solo da dentro\n quantity: number;\n\n variationSelectEl: HTMLSelectElement;\n\n /* ---------------------- @EVENTS ------------------------- */\n\n @Event({ eventName: 'jump-toggle-favorite' }) toggleFavorite: EventEmitter;\n\n @Event({ eventName: 'jump-add-to-cart' }) productAddToCart: EventEmitter;\n\n @Event({ eventName: 'jump-add-to-waiting-list' }) productWaitingList: EventEmitter;\n\n @Event({ eventName: 'jump-variation-selected' }) variationSelected: EventEmitter; // verificare se corretto: aggiungo un evento\n\n @Event({ eventName: 'jump-card-go-to-product-page' }) goToProductPage: EventEmitter;\n\n /**\n * Set the price of the product\n * @param price\n * @param salePrice\n */\n @Method()\n async setPrice(price: number, salePrice: number) {\n let shouldFormat = false;\n if (price && price > 0) {\n shouldFormat = true;\n this.price = price;\n }\n\n if (salePrice && salePrice > 0) {\n this.salePrice = salePrice;\n }\n\n if (shouldFormat) {\n this.formatPrices();\n }\n }\n\n /**\n * Forza l'ordinamento delle variazioni (utile per debugging o situazioni edge-case)\n */\n @Method()\n async forceVariationsOrder() {\n this.optionsOrdered = false;\n setTimeout(() => {\n this.optionsOrdered = true;\n }, 1);\n }\n\n /**\n * Seleziona automaticamente la prima variazione se abilitato e se nessuna è già selezionata\n */\n private selectFirstVariationIfEnabled() {\n if (this.autoSelectFirstVariation && !this.selectedVariation && this.variations.length > 0) {\n // Ordiniamo le variazioni per ottenere la prima\n const sortedVariations = [...this.variations].sort((a, b) => {\n const orderA = a.order || 999;\n const orderB = b.order || 999;\n \n if (orderA !== orderB) {\n return orderA - orderB;\n }\n \n return a.code.localeCompare(b.code);\n });\n \n // Selezioniamo la prima variazione\n const firstVariation = sortedVariations[0];\n this.selectedVariation = firstVariation;\n \n // Aggiorniamo anche la select se esiste\n setTimeout(() => {\n if (this.variationSelectEl) {\n this.variationSelectEl.value = firstVariation.code;\n }\n }, 50);\n \n // Emettiamo l'evento di selezione\n this.variationSelected.emit(firstVariation);\n }\n }\n\n /**\n * Seleziona una variazione specifica tramite code\n */\n @Method()\n async selectVariation(variationCode: string) {\n const variation = this.variations.find(v => v.code === variationCode);\n if (variation) {\n this.selectedVariation = variation;\n \n if (this.variationSelectEl) {\n this.variationSelectEl.value = variationCode;\n }\n \n this.variationSelected.emit(variation);\n return true;\n }\n return false;\n }\n\n /**\n * Seleziona la prima variazione disponibile\n */\n @Method()\n async selectFirstVariation() {\n if (this.variations.length > 0) {\n const sortedVariations = [...this.variations].sort((a, b) => {\n const orderA = a.order || 999;\n const orderB = b.order || 999;\n \n if (orderA !== orderB) {\n return orderA - orderB;\n }\n \n return a.code.localeCompare(b.code);\n });\n \n return await this.selectVariation(sortedVariations[0].code);\n }\n return false;\n }\n\n /**\n * Ottiene la variazione attualmente selezionata\n */\n @Method()\n async getSelectedVariation(): Promise<Variation | null> {\n return this.selectedVariation || null;\n }\n\n @Listen('jump-card-ecommerce-option-connected')\n addOption(e) {\n let props = e.detail; // es {code: 'sku1', imageUrl: 'https://google.com/', order: 1}\n \n // Aggiungiamo la nuova variazione solo se non esiste già\n const existingIndex = this.variations.findIndex(v => v.code === props.code);\n if (existingIndex === -1) {\n this.variations = [...this.variations, { ...props }];\n } else {\n // Se esiste già, la aggiorniamo\n this.variations = this.variations.map((v, i) => i === existingIndex ? { ...props } : v);\n }\n \n // Resettiamo il flag di ordinamento\n this.optionsOrdered = false;\n \n // Forziamo il re-render per applicare l'ordinamento dopo un brevissimo delay\n setTimeout(() => {\n this.optionsOrdered = true;\n // Selezioniamo automaticamente la prima variazione se abilitato\n this.selectFirstVariationIfEnabled();\n }, 10);\n }\n\n onVariationSelected() {\n let currentValue = this.variationSelectEl.value;\n \n // Ordiniamo sempre le variazioni prima di cercare quella selezionata\n const sortedVariations = [...this.variations].sort((a, b) => {\n const orderA = a.order || 999;\n const orderB = b.order || 999;\n \n if (orderA !== orderB) {\n return orderA - orderB;\n }\n \n return a.code.localeCompare(b.code);\n });\n \n let variation = sortedVariations.find(\n (variation) => variation.code == currentValue,\n );\n this.selectedVariation = variation;\n this.variationSelected.emit(variation); // verificare se corretto: emetto l'evento\n }\n\n /* ---------------------- @LIFECYCLE ------------------------- */\n\n componentWillLoad() {\n }\n\n componentDidLoad() {\n this.jumpQuantityEl = this.JumpCardEcommerce.querySelector('jump-quantity');\n\n if (this.jumpQuantityEl) {\n this.jumpQuantityEl.addEventListener('jump-change', this.onQuantityChange.bind(this));\n this.quantity = this.jumpQuantityEl.getValue().then((quantity) => {\n this.quantity = quantity;\n });\n }\n\n this.formatPrices();\n }\n\n disconnectedCallback() {\n this.jumpQuantityEl = this.JumpCardEcommerce.querySelector('jump-quantity');\n if (this.jumpQuantityEl) {\n this.jumpQuantityEl.removeEventListener('jump-change', this.onQuantityChange);\n }\n }\n\n /* ---------------------- @METHODS ------------------------- */\n\n private handleMouseMove = (e: MouseEvent) => {\n if (!this.enableZoom || !this.imageEl) return;\n\n const { left, top, width, height } = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const x = e.clientX - left;\n const y = e.clientY - top;\n\n const moveX = (x / width - 0.5) * -80; // Controlla l'ampiezza del movimento\n const moveY = (y / height - 0.5) * -80; // Controlla l'ampiezza del movimento\n\n this.imageEl.style.transform = `scale(1.5) translate(${moveX}px, ${moveY}px)`;\n };\n\n private handleMouseLeave = () => {\n if (!this.enableZoom || !this.imageEl) return;\n this.imageEl.style.transform = 'scale(1) translate(0, 0)';\n };\n\n onQuantityChange(e) {\n this.quantity = e.detail.value ?? false;\n }\n\n onToggleFavorite() {\n this.favorite = !this.favorite;\n this.toggleFavorite.emit(\n {\n productId: this.productId,\n favorite: this.favorite,\n },\n );\n }\n\n goToProduct(){\n this.goToProductPage.emit({\n productId: this.productId,\n link: this.link,\n });\n }\n\n addProductToCart() {\n this.addedToCart = true;\n let variations = this.selectedVariation;\n if (!variations && this.variations.length > 0) {\n variations = this.variations[0];\n }\n\n const payload = {\n productId: this.productId,\n addedToCart: this.addedToCart,\n quantity: this.quantity ?? null,\n variation: variations ?? null,\n };\n this.productAddToCart.emit(payload);\n\n setTimeout(() => {\n this.addedToCart = false;\n }, 6000);\n }\n\n waitingList() {\n this.addToWaitingList = true;\n this.productWaitingList.emit(\n {\n productId: this.productId,\n addToWaitingList: this.addToWaitingList,\n },\n );\n }\n\n formatPrices() {\n let locale = document.documentElement.lang ?? 'it-IT';\n if (locale.length == 2) {\n locale = `${locale}-${locale.toUpperCase()}`;\n }\n\n // Format price with 2 decimal digits and in locale\n this.priceFormatted = this.price.toLocaleString(locale, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n this.salePriceFormatted = this.salePrice.toLocaleString(locale, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n });\n }\n\n render() {\n const backgroundClass = this.hasBackground && !this.isMini ? 'hasBackground' : '';\n const iconOnlyClass = this.onlyIconButton && !this.isMini ? 'iconOnly' : '';\n const justifyClass = this.outOfStock ? 'justify-between' : '';\n const hasImageOnHover = this.hoverImg ? 'has-hover-image' : '';\n const miniCard = this.isMini ? 'is-mini' : '';\n const enableZoomClass = this.enableZoom ? 'enable-zoom' : '';\n\n // Ordiniamo sempre le variazioni al momento del render per garantire consistenza\n const sortedVariations = [...this.variations].sort((a, b) => {\n const orderA = a.order || 999;\n const orderB = b.order || 999;\n \n if (orderA !== orderB) {\n return orderA - orderB;\n }\n \n // Se order è uguale, ordina per codice alfanumericamente\n return a.code.localeCompare(b.code);\n });\n\n function calculateDiscount(price: number, salePrice: number): string {\n const discount = ((price - salePrice) / price) * 100;\n return discount.toFixed(0);\n };\n\n return (\n <Host style={{'--image-object-fit': this.imageObjectFit}}>\n \n {!this.isMini && this.hasFavorite ?\n <jump-button onClick={() => this.onToggleFavorite()} class={`Favorite ${backgroundClass} ${iconOnlyClass}`}\n variant={this.favorite ? 'primary' : 'neutral'} size=\"small\" text onlyIcon>\n <jump-icon slot=\"prefix\" name=\"heart\" category={this.favorite ? 'solid' : 'light'}\n size=\"medium\"></jump-icon>\n </jump-button>\n :\n this.hasSlotForFavorite ? <div class=\"Favorite\">\n <slot name=\"favorite\"></slot>\n </div> : null\n }\n\n <div\n class={`Media ${iconOnlyClass} ${backgroundClass} ${miniCard}`}\n onMouseMove={this.handleMouseMove}\n onMouseLeave={this.handleMouseLeave}\n >\n {!this.isMini && this.badge ?\n <jump-badge class={`${backgroundClass} ${iconOnlyClass}`} variant={this.badgeColor} dimension=\"small\"\n label={this.badge}></jump-badge> : ''}\n <a href={this.link}>\n <figure class={`Images ${hasImageOnHover} ${enableZoomClass}`}>\n {this.img && !this.videoSrc ? <img class=\"Images__Front\" src={this.img} alt={this.imgAlt} ref={el => this.imageEl = el as HTMLImageElement}></img> : ''}\n {this.hoverImg && !this.videoSrc ?\n <img class=\"Images__OnHover\" src={this.hoverImg} alt={this.hoverImgAlt}></img> : ''}\n </figure>\n {this.videoSrc && !this.img ?\n <video autoplay>\n <source src={this.videoSrc} type=\"video/mp4\" />\n <source src={this.videoSrc} type=\"video/mov\" />\n <source src={this.videoSrc} type=\"video/webm\" />\n </video> : ''}\n </a>\n {!this.isMini ?\n <div class={`NotificationCart ${this.addedToCart == true ? 'is-active fade-in-out' : ''}`}>\n <jump-button href={this.notificationUrl} variant=\"white\" text>\n <jump-icon slot=\"prefix\" name=\"check\"></jump-icon>\n <span> {this.notificationText} </span>\n </jump-button>\n </div>\n : null\n }\n\n {!this.isMini && this.onlyIconButton && !this.hasSlotAddToCart ?\n <div class=\"OnlyIconButton\">\n <jump-button variant=\"secondary\" size=\"large\" pill onlyIcon onClick={() => this.addProductToCart()}>\n <jump-icon slot=\"prefix\" name=\"cart-shopping\" category=\"regular\"></jump-icon>\n </jump-button>\n </div>\n : ''\n }\n\n {!this.isMini && this.onlyIconButton && this.hasSlotAddToCart ?\n <div class=\"OnlyIconButton\">\n <slot name=\"add-to-cart\"></slot>\n </div>\n : ''\n }\n </div>\n\n <div class={`Content ${backgroundClass} ${iconOnlyClass} ${miniCard}`}>\n <div class={`Body ${backgroundClass} ${iconOnlyClass} ${miniCard}`}>\n <div class=\"Body__Top\">\n <div class=\"Info\">\n <a href={this.link} class=\"Product\">{this.productName}</a>\n {this.subtitle ? <div class=\"Subtitle\">{this.subtitle}</div> : null}\n </div>\n\n {this.price ?\n <div class={`Price ${miniCard}`}>\n {!this.isMini && this.salePrice && this.salePrice < this.price ?\n <div class=\"Price__Discount\"> {calculateDiscount(this.price, this.salePrice)}% </div>\n : null}\n\n {!this.isMini ?\n <div class={`Price__Regular ${this.salePrice && this.salePrice < this.price ? 'sale' : ''}`}>\n {this.currency}{this.priceFormatted}\n </div>\n :\n <div class={`Price__Regular`}>\n {this.currency}{this.salePrice && this.salePrice < this.price ? this.salePriceFormatted : this.priceFormatted}\n </div>\n }\n\n {!this.isMini && this.salePrice && this.salePrice < this.price ?\n <div class=\"Price__Sale\">{this.currency}{this.salePriceFormatted}</div>\n : null}\n </div>\n : null}\n </div>\n\n {!this.isMini || sortedVariations.length != 0 ?\n <div class=\"Body__Bottom\">\n {sortedVariations.length != 0 ?\n <div class=\"SelectVariations\">\n <select\n ref={(el) => (this.variationSelectEl = el)} //salvo questo elemento in this.variationSelectEl\n onChange={() => {\n this.onVariationSelected();\n }}\n >\n {sortedVariations\n .filter((variation) => !variation.imgUrl)\n .map((variation, index) => (\n <option \n key={`${variation.code}-${variation.order || 999}-${index}`} \n value={variation.code}\n selected={this.selectedVariation?.code === variation.code}\n >\n {variation.label}\n </option>\n ))}\n </select>\n </div>\n : null}\n <slot name=\"quantity\"></slot>\n </div>\n : null}\n </div>\n\n <div class={`Footer ${justifyClass} ${backgroundClass} ${iconOnlyClass} ${miniCard}`}>\n\n {this.outOfStock && !this.isMini?\n <div class=\"OutOfStock\">{this.outOfStockText ? this.outOfStockText : 'Esaurito'}</div> : ''}\n\n {this.outOfStock ?\n <jump-button class=\"Footer__AddToCart\" variant={this.addToCartColor} size=\"small\" text onClick={() => this.waitingList()}>\n <jump-icon slot=\"prefix\" name=\"bell\" category=\"regular\" size=\"small\"></jump-icon>\n {this.waitingListText}\n </jump-button> : ''\n }\n\n {!this.outOfStock && !this.onlyIconButton && !this.hasSlotAddToCart && !this.disallowAddToCart ?\n <jump-button class=\"Footer__AddToCart\" variant={this.addToCartColor} size=\"small\" text onClick={() => this.addProductToCart()}>\n <jump-icon slot=\"prefix\" name=\"cart-shopping\" category=\"regular\" size=\"small\"></jump-icon>\n {this.addToCartText}\n </jump-button> : ''\n }\n\n {!this.outOfStock && !this.onlyIconButton && this.hasSlotAddToCart ?\n <slot name=\"add-to-cart\"></slot>\n : null\n }\n\n {!this.outOfStock && this.disallowAddToCart ?\n <jump-button class=\"Footer__AddToCart\" variant={this.addToCartColor} size=\"small\" text onClick={() => this.goToProduct()}>\n <jump-icon slot=\"suffix\" name=\"arrow-right\"></jump-icon> {this.disallowAddToCartLabel}\n </jump-button> : ''\n }\n </div>\n </div>\n </Host>\n );\n }\n\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["jumpCardEcommerceCss","JumpCardEcommerceStyle0","JumpCardEcommerce","this","handleMouseMove","e","enableZoom","imageEl","left","top","width","height","currentTarget","getBoundingClientRect","x","clientX","y","clientY","moveX","moveY","style","transform","handleMouseLeave","setPrice","price","salePrice","shouldFormat","formatPrices","forceVariationsOrder","optionsOrdered","setTimeout","selectFirstVariationIfEnabled","autoSelectFirstVariation","selectedVariation","variations","length","sortedVariations","sort","a","b","orderA","order","orderB","code","localeCompare","firstVariation","variationSelectEl","value","variationSelected","emit","selectVariation","variationCode","variation","find","v","selectFirstVariation","getSelectedVariation","addOption","props","detail","existingIndex","findIndex","Object","assign","map","i","onVariationSelected","currentValue","componentWillLoad","componentDidLoad","jumpQuantityEl","querySelector","addEventListener","onQuantityChange","bind","quantity","getValue","then","disconnectedCallback","removeEventListener","_a","onToggleFavorite","favorite","toggleFavorite","productId","goToProduct","goToProductPage","link","addProductToCart","addedToCart","payload","productAddToCart","waitingList","addToWaitingList","productWaitingList","locale","document","documentElement","lang","toUpperCase","priceFormatted","toLocaleString","minimumFractionDigits","maximumFractionDigits","salePriceFormatted","render","backgroundClass","hasBackground","isMini","iconOnlyClass","onlyIconButton","justifyClass","outOfStock","hasImageOnHover","hoverImg","miniCard","enableZoomClass","calculateDiscount","discount","toFixed","h","Host","imageObjectFit","hasFavorite","onClick","class","variant","size","text","onlyIcon","slot","name","category","hasSlotForFavorite","onMouseMove","onMouseLeave","badge","badgeColor","dimension","label","href","img","videoSrc","src","alt","imgAlt","ref","el","hoverImgAlt","autoplay","type","notificationUrl","notificationText","hasSlotAddToCart","pill","productName","subtitle","currency","disallowAddToCart","onChange","filter","imgUrl","index","key","selected","outOfStockText","addToCartColor","waitingListText","addToCartText","disallowAddToCartLabel"],"sources":["src/components/jump-card-ecommerce/jump-card-ecommerce.scss?tag=jump-card-ecommerce&encapsulation=shadow","src/components/jump-card-ecommerce/jump-card-ecommerce.tsx"],"sourcesContent":[":host {\n --card-max-width: 450px;\n --jump-card-max-width-horizontal: 100%;\n --jump-card-color: var(--neutral-grey-primary);\n --jump-card-background: transparent;\n --jump-card-border-color: var(--neutral-grey-background);\n --jump-card-padding: 0.5rem;\n --jump-card-commerce-out-of-stock-color: var(--status-danger-standard);\n --jump-card-ecommerce-discount-color: var(--status-danger-standard);\n --image-object-fit: cover;\n\n max-width: var(--card-max-width);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n font-family: var(--ff-primary, 'Arial'), sans-serif;\n line-height: var(--lh-400, 1.3);\n background-color: var(--jump-card-background);\n color: var(--jump-card-color);\n\n .Footer,\n .Body {\n display: flex;\n width: 100%;\n }\n\n .Footer {\n container-type: inline-size;\n flex-direction: row;\n\n @container (max-width: 239px) {\n flex-direction: column;\n\n .OutOfStock {\n margin-bottom: 0.25rem;\n }\n\n }\n }\n\n jump-badge {\n position: absolute;\n top: 1rem;\n left: 1rem;\n z-index: 2;\n\n &.hasBackground.iconOnly {\n top: calc(1rem + 8px);\n left: calc(1rem + 8px);\n }\n }\n\n .Media {\n container-type: inline-size;\n\n @container (max-width: 239px) {\n jump-badge {\n top: auto;\n bottom: 1rem;\n left: 1rem;\n right: auto;\n }\n }\n }\n\n .Favorite {\n position: absolute;\n top: 1rem;\n right: 1rem;\n z-index: 2;\n\n &.hasBackground.iconOnly {\n top: calc(1rem + 8px);\n right: calc(1rem + 8px);\n }\n }\n\n .Media {\n // aspect-ratio: 3/4;\n overflow: hidden;\n position: relative;\n border-radius: 3px;\n aspect-ratio: 1/1;\n\n .Images {\n height: 100%;\n margin: 0;\n position: relative;\n\n img {\n height: 100%;\n width: 100%;\n position: absolute;\n top: 0;\n left: 0;\n overflow: hidden;\n object-fit: var(--image-object-fit, cover);\n }\n\n &__Front {\n z-index: 1;\n transition: opacity 0.5s linear;\n cursor: pointer;\n }\n\n &.has-hover-image {\n &:hover .Images__Front {\n opacity: 0;\n }\n }\n\n &.enable-zoom {\n overflow: hidden;\n\n .Images__Front {\n transition: transform 0s ease-out;\n cursor: zoom-in;\n }\n\n &:hover {\n .Images__Front {\n transform: scale(1.5);\n }\n }\n }\n }\n\n &.hasBackground {\n background-color: var(--neutral-white);\n\n &.iconOnly {\n border-top-left-radius: 6px;\n border-top-right-radius: 6px;\n padding: var(--jump-card-padding) var(--jump-card-padding) 0;\n\n img {\n border-radius: 6px;\n }\n }\n }\n\n &.iconOnly {\n border-bottom-right-radius: 0;\n }\n\n &.is-mini {\n max-width: 180px;\n }\n }\n\n .NotificationCart {\n display: none;\n position: absolute;\n bottom: 0px;\n width: 100%;\n padding: 2rem 1rem;\n background-color: hsl(0 0% 0% / 35%);\n box-sizing: border-box;\n z-index: 2;\n transform: translate3d(0, 0, 0);\n\n &.is-active {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n }\n\n .Content {\n container-type: inline-size;\n\n &.hasBackground {\n background-color: var(--neutral-white);\n padding: calc(var(--jump-card-padding) * 2);\n }\n\n &.iconOnly {\n padding: calc(var(--jump-card-padding) * 2) var(--jump-card-padding);\n }\n\n &.is-mini {\n max-width: 180px;\n }\n\n \n }\n\n .Body {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n padding: var(--jump-card-padding) 0;\n container-type: inline-size;\n\n & > * {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n\n & > * {\n flex: 0 1 auto;\n }\n }\n\n .Body__Top {\n display: flex;\n flex-direction: row;\n }\n\n .Body__Bottom {\n display: flex;\n flex-direction: row;\n }\n\n @container (max-width: 239px) {\n .Body__Top {\n flex-direction: column;\n }\n\n .Body__Bottom {\n flex-direction: column;\n }\n\n .SelectVariations {\n max-width: 100%;\n margin-bottom: 0.5rem;\n\n select {\n width: 100%;\n }\n }\n\n .Price {\n display: flex;\n flex-direction: column-reverse;\n margin-top: 0.5rem;\n align-items: start;\n }\n\n\n }\n\n &.hasBackground {\n padding: 0 0 var(--jump-card-padding);\n }\n\n &.iconOnly {\n padding: 0;\n }\n\n &.is-mini {\n & > * {\n flex-direction: column;\n }\n\n padding: calc(var(--jump-card-padding) / 2) 0;\n }\n }\n\n .Product {\n font-size: var(--fs-400);\n color: var(--neutral-grey-primary);\n text-decoration: none;\n }\n\n .Subtitle {\n font-size: var(--fs-300);\n color: var(--neutral-grey-secondary);\n line-height: 1.2;\n }\n\n .Footer {\n line-height: var(--lh-400);\n justify-content: end;\n padding: var(--jump-card-padding) 0;\n align-items: flex-end;\n\n &.justify-between {\n justify-content: space-between;\n }\n\n &.hasBackground {\n padding-bottom: 0;\n }\n\n &.iconOnly {\n padding: 0;\n }\n\n &.is-mini {\n padding: calc(var(--jump-card-padding) / 2) 0;\n }\n\n &__AddToCart {\n --jump-button-color: var(--jump-card-ecommerce-add-to-cart-color);\n --jump-button-background: var(--jump-card-ecommerce-add-to-cart-background);\n --jump-button-color-hover: var(--jump-card-ecommerce-add-to-cart-color-hover);\n --jump-button-background-hover: var(--jump-card-ecommerce-add-to-cart-background-hover);\n }\n }\n\n .OutOfStock {\n justify-items: start;\n font-size: var(--fs-300);\n font-weight: var(--fw-900);\n color: var(--jump-card-commerce-out-of-stock-color);\n }\n\n .OnlyIconButton {\n position: absolute;\n bottom: 0;\n right: 0;\n background: var(--neutral-white);\n border-top-left-radius: 20px;\n padding: 8px 8px 0px 8px;\n z-index: 2;\n }\n\n .Price {\n position: relative;\n display: grid;\n grid-template-columns: auto auto;\n grid-template-rows: 1.5rem 1.5rem auto;\n justify-items: end;\n align-items: end;\n column-gap: 0.5rem;\n margin-top: 0;\n \n\n font-size: var(--fs-500);\n font-weight: var(--fw-900);\n line-height: var(--lh-400);\n\n & > * {\n display: inline-flex;\n }\n\n &__Regular {\n text-align: right;\n\n &.sale {\n text-decoration: line-through;\n color: var(--neutral-grey-secondary);\n font-weight: var(--fw-400);\n font-size: var(--fs-400);\n grid-column: 2;\n grid-row: 1;\n }\n }\n\n &__Sale {\n grid-column: 2;\n grid-row: 2;\n }\n\n &__Discount {\n color: var(--jump-card-ecommerce-discount-color);\n font-weight: var(--fw-400);\n font-size: var(--fs-300);\n grid-column: 1;\n grid-row: 1;\n }\n\n &.is-mini {\n display: flex;\n font-size: var(--fs-400);\n }\n }\n\n .SelectVariations {\n display: flex;\n align-items: flex-end;\n max-width: calc(50% - 1rem);\n margin-bottom: 0;\n\n select {\n appearance: none;\n background-color: transparent;\n border: 1px solid var(--neutral-grey-secondary);\n border-radius: 3px;\n color: var(--neutral-grey-secondary);\n font-size: var(--fs-300);\n padding: 0.5rem 0.75rem;\n max-width: 100%;\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E\");\n background-position: right 0.5rem center;\n background-repeat: no-repeat;\n background-size: 1.5em 1.5em;\n padding-right: 2.5rem;\n -webkit-print-color-adjust: exact;\n \n }\n }\n}\n\n.slide-in-bottom {\n animation: slide-in-bottom 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;\n}\n\n.slide-out-bottom {\n animation: slide-out-bottom 0.5s cubic-bezier(0.55, 0.085, 0.68, 0.53) both;\n}\n\n.fade-in-out {\n animation-name: fade-in-out;\n animation-duration: 6s;\n animation-timing-function: ease-in-out;\n}\n\n@keyframes fade-in-out {\n from {\n opacity: 0;\n transform: translateY(100px);\n }\n\n 50% {\n opacity: 1;\n transform: translateY(0);\n }\n\n to {\n opacity: 0;\n transform: translateY(100px);\n }\n}\n","import { Component, Host, h, Prop, Event, EventEmitter, Element, State, Listen, Method } from '@stencil/core';\n\nexport interface Variation {\n code: string;\n imgUrl: string;\n label: string;\n taxonomy: string;\n order?: number; // Aggiunta proprietà order\n // Add more keys as needed\n}\n\n@Component({\n tag: 'jump-card-ecommerce',\n styleUrl: 'jump-card-ecommerce.scss',\n shadow: true,\n})\nexport class JumpCardEcommerce {\n\n @Element() JumpCardEcommerce: HTMLElement;\n jumpQuantityEl;\n private imageEl: HTMLImageElement;\n\n /* ---------------------- @PROPERTIES ------------------------- */\n\n /** Indicate if card has only icon button*/\n @Prop() onlyIconButton: boolean = false;\n\n /** Indicate if card has background*/\n @Prop() hasBackground: boolean = false;\n\n /** Indicates the badge of the card*/\n @Prop() badge: string;\n\n /** Indicates if the product is favorite */\n @Prop({ mutable: true, reflect: true }) favorite: boolean = false;\n\n /** Indicate if the whislist is active in shop*/\n @Prop() hasFavorite: boolean = false;\n\n /** Indicate if the whislist will be slotted*/\n @Prop() hasSlotForFavorite: boolean = false;\n\n /** Indicate if the add to cart btn will be slotted*/\n @Prop() hasSlotAddToCart: boolean = false;\n\n /** Indicates the link of the card*/\n @Prop() link: string;\n\n /** Indicates the image's src of the card*/\n @Prop() img: string;\n\n /** Indicates the img's alt of the card*/\n @Prop() imgAlt: string;\n\n /** Indicates the over image's src of the card*/\n @Prop() hoverImg: string;\n\n /** Indicates the hover img's alt of the card*/\n @Prop() hoverImgAlt: string;\n\n /** Indicates the videoSrc of the card*/\n @Prop() videoSrc: string;\n\n /** Indicates the notificationUrl of the card*/\n @Prop() notificationUrl: string;\n\n /** Indicates the notificationText of the card*/\n @Prop() notificationText: string = 'Aggiunto al carrello';\n\n /** Indicates the title of the card*/\n @Prop() productName: string;\n\n /** Indicates the subtitle of the card*/\n @Prop() subtitle: string;\n\n /** Indicates the ID of the product, can be also a SKU*/\n @Prop() productId: string;\n\n /** Indicates the price of the card */\n @Prop() price: number;\n\n /** Indicates the sale price of the card */\n @Prop() salePrice: number;\n\n /** Indicates the currency of the card */\n @Prop() currency: string = '€';\n\n /** Indicates the variant of the button */\n @Prop() addToCartColor: 'primary' | 'secondary'|'white'|'neutral' = 'secondary';\n\n /** Indicates the variant of the button */\n @Prop() badgeColor: 'primary' | 'secondary' | 'neutral' | 'warning' | 'success' | 'danger' = 'secondary';\n\n /** Indicates if the product is outOfStock */\n @Prop({ mutable: true, reflect: true }) outOfStock: boolean = false;\n\n /** Indicates the outOfStockText of the product*/\n @Prop() outOfStockText: string;\n\n /** Indicates the button class of the add to cart / notification button */\n @Prop() addToCartText: string = 'Aggiungi al carrello';\n\n /** Indicates the button class of the add to cart / notification button */\n @Prop() waitingListText: string = 'Notifica disponibilità';\n\n /** Indicate if the user request to be notified when te product is avaible*/\n @Prop() addToWaitingList: boolean = false;\n\n /** Indicate if the card is Mini Card*/\n @Prop() isMini: boolean = false;\n\n /** Indica se si tratta di un prodotto che può essere aggiunto al carrello solo dalla pagina prodotto */\n @Prop() disallowAddToCart: boolean = false;\n\n /** Label del pulsante che appare quando il prodotto non può essere aggiunto al carrello */\n @Prop() disallowAddToCartLabel: string = 'Scopri';\n\n /** Indica se è attivo lo zoom all'hover */\n @Prop() enableZoom: boolean = false;\n\n /** Controlla il comportamento dell'object-fit delle immagini */\n @Prop() imageObjectFit: 'cover' | 'scale-down' | 'contain' | 'fill' | 'none' = 'cover';\n\n /** Indica se selezionare automaticamente la prima variazione */\n @Prop() autoSelectFirstVariation: boolean = true;\n\n /* ---------------------- @STATE ------------------------- */\n\n /** Indicate if the product is added to cart --> non deve esserci nelle storie! */\n @Prop() addedToCart: boolean = false;\n\n @Prop() endAddedToCart: boolean = false;\n\n @State() variations: Variation[] = [];\n\n @State() selectedVariation: Variation;\n\n @State() priceFormatted: string;\n\n @State() salePriceFormatted: string;\n\n /** Flag per tracciare se le opzioni sono state ordinate */\n @State() optionsOrdered: boolean = false;\n\n // è una proprietà che viene cambiata solo da dentro\n quantity: number;\n\n variationSelectEl: HTMLSelectElement;\n\n /* ---------------------- @EVENTS ------------------------- */\n\n @Event({ eventName: 'jump-toggle-favorite' }) toggleFavorite: EventEmitter;\n\n @Event({ eventName: 'jump-add-to-cart' }) productAddToCart: EventEmitter;\n\n @Event({ eventName: 'jump-add-to-waiting-list' }) productWaitingList: EventEmitter;\n\n @Event({ eventName: 'jump-variation-selected' }) variationSelected: EventEmitter; // verificare se corretto: aggiungo un evento\n\n @Event({ eventName: 'jump-card-go-to-product-page' }) goToProductPage: EventEmitter;\n\n /**\n * Set the price of the product\n * @param price\n * @param salePrice\n */\n @Method()\n async setPrice(price: number, salePrice: number) {\n let shouldFormat = false;\n if (price && price > 0) {\n shouldFormat = true;\n this.price = price;\n }\n\n if (salePrice && salePrice > 0) {\n this.salePrice = salePrice;\n }\n\n if (shouldFormat) {\n this.formatPrices();\n }\n }\n\n /**\n * Forza l'ordinamento delle variazioni (utile per debugging o situazioni edge-case)\n */\n @Method()\n async forceVariationsOrder() {\n this.optionsOrdered = false;\n setTimeout(() => {\n this.optionsOrdered = true;\n }, 1);\n }\n\n /**\n * Seleziona automaticamente la prima variazione se abilitato e se nessuna è già selezionata\n */\n private selectFirstVariationIfEnabled() {\n if (this.autoSelectFirstVariation && !this.selectedVariation && this.variations.length > 0) {\n // Ordiniamo le variazioni per ottenere la prima\n const sortedVariations = [...this.variations].sort((a, b) => {\n const orderA = a.order || 999;\n const orderB = b.order || 999;\n \n if (orderA !== orderB) {\n return orderA - orderB;\n }\n \n return a.code.localeCompare(b.code);\n });\n \n // Selezioniamo la prima variazione\n const firstVariation = sortedVariations[0];\n this.selectedVariation = firstVariation;\n \n // Aggiorniamo anche la select se esiste\n setTimeout(() => {\n if (this.variationSelectEl) {\n this.variationSelectEl.value = firstVariation.code;\n }\n }, 50);\n \n // Emettiamo l'evento di selezione\n this.variationSelected.emit(firstVariation);\n }\n }\n\n /**\n * Seleziona una variazione specifica tramite code\n */\n @Method()\n async selectVariation(variationCode: string) {\n const variation = this.variations.find(v => v.code === variationCode);\n if (variation) {\n this.selectedVariation = variation;\n \n if (this.variationSelectEl) {\n this.variationSelectEl.value = variationCode;\n }\n \n this.variationSelected.emit(variation);\n return true;\n }\n return false;\n }\n\n /**\n * Seleziona la prima variazione disponibile\n */\n @Method()\n async selectFirstVariation() {\n if (this.variations.length > 0) {\n const sortedVariations = [...this.variations].sort((a, b) => {\n const orderA = a.order || 999;\n const orderB = b.order || 999;\n \n if (orderA !== orderB) {\n return orderA - orderB;\n }\n \n return a.code.localeCompare(b.code);\n });\n \n return await this.selectVariation(sortedVariations[0].code);\n }\n return false;\n }\n\n /**\n * Ottiene la variazione attualmente selezionata\n */\n @Method()\n async getSelectedVariation(): Promise<Variation | null> {\n return this.selectedVariation || null;\n }\n\n @Listen('jump-card-ecommerce-option-connected')\n addOption(e) {\n let props = e.detail; // es {code: 'sku1', imageUrl: 'https://google.com/', order: 1}\n \n // Aggiungiamo la nuova variazione solo se non esiste già\n const existingIndex = this.variations.findIndex(v => v.code === props.code);\n if (existingIndex === -1) {\n this.variations = [...this.variations, { ...props }];\n } else {\n // Se esiste già, la aggiorniamo\n this.variations = this.variations.map((v, i) => i === existingIndex ? { ...props } : v);\n }\n \n // Resettiamo il flag di ordinamento\n this.optionsOrdered = false;\n \n // Forziamo il re-render per applicare l'ordinamento dopo un brevissimo delay\n setTimeout(() => {\n this.optionsOrdered = true;\n // Selezioniamo automaticamente la prima variazione se abilitato\n this.selectFirstVariationIfEnabled();\n }, 10);\n }\n\n onVariationSelected() {\n let currentValue = this.variationSelectEl.value;\n \n // Ordiniamo sempre le variazioni prima di cercare quella selezionata\n const sortedVariations = [...this.variations].sort((a, b) => {\n const orderA = a.order || 999;\n const orderB = b.order || 999;\n \n if (orderA !== orderB) {\n return orderA - orderB;\n }\n \n return a.code.localeCompare(b.code);\n });\n \n let variation = sortedVariations.find(\n (variation) => variation.code == currentValue,\n );\n this.selectedVariation = variation;\n this.variationSelected.emit(variation); // verificare se corretto: emetto l'evento\n }\n\n /* ---------------------- @LIFECYCLE ------------------------- */\n\n componentWillLoad() {\n }\n\n componentDidLoad() {\n this.jumpQuantityEl = this.JumpCardEcommerce.querySelector('jump-quantity');\n\n if (this.jumpQuantityEl) {\n this.jumpQuantityEl.addEventListener('jump-change', this.onQuantityChange.bind(this));\n this.quantity = this.jumpQuantityEl.getValue().then((quantity) => {\n this.quantity = quantity;\n });\n }\n\n this.formatPrices();\n }\n\n disconnectedCallback() {\n this.jumpQuantityEl = this.JumpCardEcommerce.querySelector('jump-quantity');\n if (this.jumpQuantityEl) {\n this.jumpQuantityEl.removeEventListener('jump-change', this.onQuantityChange);\n }\n }\n\n /* ---------------------- @METHODS ------------------------- */\n\n private handleMouseMove = (e: MouseEvent) => {\n if (!this.enableZoom || !this.imageEl) return;\n\n const { left, top, width, height } = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const x = e.clientX - left;\n const y = e.clientY - top;\n\n const moveX = (x / width - 0.5) * -80; // Controlla l'ampiezza del movimento\n const moveY = (y / height - 0.5) * -80; // Controlla l'ampiezza del movimento\n\n this.imageEl.style.transform = `scale(1.5) translate(${moveX}px, ${moveY}px)`;\n };\n\n private handleMouseLeave = () => {\n if (!this.enableZoom || !this.imageEl) return;\n this.imageEl.style.transform = 'scale(1) translate(0, 0)';\n };\n\n onQuantityChange(e) {\n this.quantity = e.detail.value ?? false;\n }\n\n onToggleFavorite() {\n this.favorite = !this.favorite;\n this.toggleFavorite.emit(\n {\n productId: this.productId,\n favorite: this.favorite,\n },\n );\n }\n\n goToProduct(){\n this.goToProductPage.emit({\n productId: this.productId,\n link: this.link,\n });\n }\n\n addProductToCart() {\n this.addedToCart = true;\n let variations = this.selectedVariation;\n if (!variations && this.variations.length > 0) {\n variations = this.variations[0];\n }\n\n const payload = {\n productId: this.productId,\n addedToCart: this.addedToCart,\n quantity: this.quantity ?? null,\n variation: variations ?? null,\n };\n this.productAddToCart.emit(payload);\n\n setTimeout(() => {\n this.addedToCart = false;\n }, 6000);\n }\n\n waitingList() {\n this.addToWaitingList = true;\n this.productWaitingList.emit(\n {\n productId: this.productId,\n addToWaitingList: this.addToWaitingList,\n },\n );\n }\n\n formatPrices() {\n let locale = document.documentElement.lang ?? 'it-IT';\n if (locale.length == 2) {\n locale = `${locale}-${locale.toUpperCase()}`;\n }\n\n // Format price with 2 decimal digits and in locale\n this.priceFormatted = this.price.toLocaleString(locale, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n this.salePriceFormatted = this.salePrice.toLocaleString(locale, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n });\n }\n\n render() {\n const backgroundClass = this.hasBackground && !this.isMini ? 'hasBackground' : '';\n const iconOnlyClass = this.onlyIconButton && !this.isMini ? 'iconOnly' : '';\n const justifyClass = this.outOfStock ? 'justify-between' : '';\n const hasImageOnHover = this.hoverImg ? 'has-hover-image' : '';\n const miniCard = this.isMini ? 'is-mini' : '';\n const enableZoomClass = this.enableZoom ? 'enable-zoom' : '';\n\n // Ordiniamo sempre le variazioni al momento del render per garantire consistenza\n const sortedVariations = [...this.variations].sort((a, b) => {\n const orderA = a.order || 999;\n const orderB = b.order || 999;\n \n if (orderA !== orderB) {\n return orderA - orderB;\n }\n \n // Se order è uguale, ordina per codice alfanumericamente\n return a.code.localeCompare(b.code);\n });\n\n function calculateDiscount(price: number, salePrice: number): string {\n const discount = ((price - salePrice) / price) * 100;\n return discount.toFixed(0);\n };\n\n return (\n <Host style={{'--image-object-fit': this.imageObjectFit}}>\n \n {!this.isMini && this.hasFavorite ?\n <jump-button onClick={() => this.onToggleFavorite()} class={`Favorite ${backgroundClass} ${iconOnlyClass}`}\n variant={this.favorite ? 'primary' : 'neutral'} size=\"small\" text onlyIcon>\n <jump-icon slot=\"prefix\" name=\"heart\" category={this.favorite ? 'solid' : 'light'}\n size=\"medium\"></jump-icon>\n </jump-button>\n :\n this.hasSlotForFavorite ? <div class=\"Favorite\">\n <slot name=\"favorite\"></slot>\n </div> : null\n }\n\n <div\n class={`Media ${iconOnlyClass} ${backgroundClass} ${miniCard}`}\n onMouseMove={this.handleMouseMove}\n onMouseLeave={this.handleMouseLeave}\n >\n {!this.isMini && this.badge ?\n <jump-badge class={`${backgroundClass} ${iconOnlyClass}`} variant={this.badgeColor} dimension=\"small\"\n label={this.badge}></jump-badge> : ''}\n <a href={this.link}>\n <figure class={`Images ${hasImageOnHover} ${enableZoomClass}`}>\n {this.img && !this.videoSrc ? <img class=\"Images__Front\" src={this.img} alt={this.imgAlt} ref={el => this.imageEl = el as HTMLImageElement}></img> : ''}\n {this.hoverImg && !this.videoSrc ?\n <img class=\"Images__OnHover\" src={this.hoverImg} alt={this.hoverImgAlt}></img> : ''}\n </figure>\n {this.videoSrc && !this.img ?\n <video autoplay>\n <source src={this.videoSrc} type=\"video/mp4\" />\n <source src={this.videoSrc} type=\"video/mov\" />\n <source src={this.videoSrc} type=\"video/webm\" />\n </video> : ''}\n </a>\n {!this.isMini ?\n <div class={`NotificationCart ${this.addedToCart == true ? 'is-active fade-in-out' : ''}`}>\n <jump-button href={this.notificationUrl} variant=\"white\" text>\n <jump-icon slot=\"prefix\" name=\"check\"></jump-icon>\n <span> {this.notificationText} </span>\n </jump-button>\n </div>\n : null\n }\n\n {!this.isMini && this.onlyIconButton && !this.hasSlotAddToCart ?\n <div class=\"OnlyIconButton\">\n <jump-button variant=\"secondary\" size=\"large\" pill onlyIcon onClick={() => this.addProductToCart()}>\n <jump-icon slot=\"prefix\" name=\"cart-shopping\" category=\"regular\"></jump-icon>\n </jump-button>\n </div>\n : ''\n }\n\n {!this.isMini && this.onlyIconButton && this.hasSlotAddToCart ?\n <div class=\"OnlyIconButton\">\n <slot name=\"add-to-cart\"></slot>\n </div>\n : ''\n }\n </div>\n\n <div class={`Content ${backgroundClass} ${iconOnlyClass} ${miniCard}`}>\n <div class={`Body ${backgroundClass} ${iconOnlyClass} ${miniCard}`}>\n <div class=\"Body__Top\">\n <div class=\"Info\">\n <a href={this.link} class=\"Product\">{this.productName}</a>\n {this.subtitle ? <div class=\"Subtitle\">{this.subtitle}</div> : null}\n </div>\n\n {this.price ?\n <div class={`Price ${miniCard}`}>\n {!this.isMini && this.salePrice && this.salePrice < this.price ?\n <div class=\"Price__Discount\"> {calculateDiscount(this.price, this.salePrice)}% </div>\n : null}\n\n {!this.isMini ?\n <div class={`Price__Regular ${this.salePrice && this.salePrice < this.price ? 'sale' : ''}`}>\n {this.currency}{this.priceFormatted}\n </div>\n :\n <div class={`Price__Regular`}>\n {this.currency}{this.salePrice && this.salePrice < this.price ? this.salePriceFormatted : this.priceFormatted}\n </div>\n }\n\n {!this.isMini && this.salePrice && this.salePrice < this.price ?\n <div class=\"Price__Sale\">{this.currency}{this.salePriceFormatted}</div>\n : null}\n </div>\n : null}\n </div>\n\n {!this.isMini || sortedVariations.length != 0 ?\n <div class=\"Body__Bottom\">\n {(sortedVariations.length != 0 && !this.disallowAddToCart) ?\n <div class=\"SelectVariations\">\n <select\n ref={(el) => (this.variationSelectEl = el)} //salvo questo elemento in this.variationSelectEl\n onChange={() => {\n this.onVariationSelected();\n }}\n >\n {sortedVariations\n .filter((variation) => !variation.imgUrl)\n .map((variation, index) => (\n <option \n key={`${variation.code}-${variation.order || 999}-${index}`} \n value={variation.code}\n selected={this.selectedVariation?.code === variation.code}\n >\n {variation.label}\n </option>\n ))}\n </select>\n </div>\n : null}\n {!this.disallowAddToCart &&\n <slot name=\"quantity\"></slot>\n }\n </div>\n : null}\n </div>\n\n <div class={`Footer ${justifyClass} ${backgroundClass} ${iconOnlyClass} ${miniCard}`}>\n\n {this.outOfStock && !this.isMini?\n <div class=\"OutOfStock\">{this.outOfStockText ? this.outOfStockText : 'Esaurito'}</div> : ''}\n\n {this.outOfStock ?\n <jump-button class=\"Footer__AddToCart\" variant={this.addToCartColor} size=\"small\" text onClick={() => this.waitingList()}>\n <jump-icon slot=\"prefix\" name=\"bell\" category=\"regular\" size=\"small\"></jump-icon>\n {this.waitingListText}\n </jump-button> : ''\n }\n\n {!this.outOfStock && !this.onlyIconButton && !this.hasSlotAddToCart && !this.disallowAddToCart ?\n <jump-button class=\"Footer__AddToCart\" variant={this.addToCartColor} size=\"small\" text onClick={() => this.addProductToCart()}>\n <jump-icon slot=\"prefix\" name=\"cart-shopping\" category=\"regular\" size=\"small\"></jump-icon>\n {this.addToCartText}\n </jump-button> : ''\n }\n\n {!this.outOfStock && !this.onlyIconButton && this.hasSlotAddToCart ?\n <slot name=\"add-to-cart\"></slot>\n : null\n }\n\n {!this.outOfStock && this.disallowAddToCart ?\n <jump-button class=\"Footer__AddToCart\" variant={this.addToCartColor} size=\"small\" text onClick={() => this.goToProduct()}>\n <jump-icon slot=\"suffix\" name=\"arrow-right\"></jump-icon> {this.disallowAddToCartLabel}\n </jump-button> : ''\n }\n </div>\n </div>\n </Host>\n );\n }\n\n}\n"],"mappings":"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"}
@@ -926,6 +926,43 @@
926
926
  }
927
927
  ]
928
928
  },
929
+ {
930
+ "name": "jump-notice",
931
+ "description": {
932
+ "kind": "markdown",
933
+ "value": ""
934
+ },
935
+ "attributes": [
936
+ {
937
+ "name": "closable",
938
+ "description": ""
939
+ },
940
+ {
941
+ "name": "description",
942
+ "description": ""
943
+ },
944
+ {
945
+ "name": "id",
946
+ "description": ""
947
+ },
948
+ {
949
+ "name": "link",
950
+ "description": ""
951
+ },
952
+ {
953
+ "name": "link-text",
954
+ "description": ""
955
+ },
956
+ {
957
+ "name": "title",
958
+ "description": ""
959
+ },
960
+ {
961
+ "name": "type",
962
+ "description": ""
963
+ }
964
+ ]
965
+ },
929
966
  {
930
967
  "name": "jump-pagination",
931
968
  "description": {
@@ -0,0 +1,19 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ export declare class JumpNotice {
3
+ host: HTMLElement;
4
+ visible: boolean;
5
+ /**
6
+ * @Prop() id: string;
7
+ * Serve per identificare il componente nel DOM, utile per test o script esterni.
8
+ */
9
+ id: string;
10
+ title: string;
11
+ description: string;
12
+ link: string;
13
+ linkText: string;
14
+ closable: boolean;
15
+ type: string;
16
+ closeNoticeEv: EventEmitter;
17
+ closeNotice(): void;
18
+ render(): any;
19
+ }
@@ -0,0 +1,48 @@
1
+ declare const _default: {
2
+ title: string;
3
+ tags: string[];
4
+ argTypes: {
5
+ id: {
6
+ name: string;
7
+ description: string;
8
+ control: string;
9
+ };
10
+ title: {
11
+ name: string;
12
+ description: string;
13
+ control: string;
14
+ };
15
+ description: {
16
+ name: string;
17
+ description: string;
18
+ control: string;
19
+ };
20
+ link: {
21
+ name: string;
22
+ description: string;
23
+ control: string;
24
+ };
25
+ linkText: {
26
+ name: string;
27
+ description: string;
28
+ control: string;
29
+ };
30
+ type: {
31
+ name: string;
32
+ description: string;
33
+ control: string;
34
+ options: string[];
35
+ };
36
+ closable: {
37
+ name: string;
38
+ description: string;
39
+ control: string;
40
+ defaultValue: boolean;
41
+ };
42
+ };
43
+ };
44
+ export default _default;
45
+ export declare const Info: any;
46
+ export declare const Warning: any;
47
+ export declare const Error: any;
48
+ export declare const Success: any;
@@ -600,6 +600,18 @@ export namespace Components {
600
600
  target: '_blank' | '_parent' | '_self' | '_top'
601
601
  } | null;
602
602
  }
603
+ interface JumpNotice {
604
+ "closable": boolean;
605
+ "description": string;
606
+ /**
607
+ * @Prop () id: string; Serve per identificare il componente nel DOM, utile per test o script esterni.
608
+ */
609
+ "id": string;
610
+ "link": string;
611
+ "linkText": string;
612
+ "title": string;
613
+ "type": string;
614
+ }
603
615
  interface JumpPagination {
604
616
  /**
605
617
  * Last element of the page
@@ -781,6 +793,10 @@ export interface JumpFiltergroupCustomEvent<T> extends CustomEvent<T> {
781
793
  detail: T;
782
794
  target: HTMLJumpFiltergroupElement;
783
795
  }
796
+ export interface JumpNoticeCustomEvent<T> extends CustomEvent<T> {
797
+ detail: T;
798
+ target: HTMLJumpNoticeElement;
799
+ }
784
800
  export interface JumpPaginationCustomEvent<T> extends CustomEvent<T> {
785
801
  detail: T;
786
802
  target: HTMLJumpPaginationElement;
@@ -1010,6 +1026,23 @@ declare global {
1010
1026
  prototype: HTMLJumpNavbarElement;
1011
1027
  new (): HTMLJumpNavbarElement;
1012
1028
  };
1029
+ interface HTMLJumpNoticeElementEventMap {
1030
+ "jump-notice-close": any;
1031
+ }
1032
+ interface HTMLJumpNoticeElement extends Components.JumpNotice, HTMLStencilElement {
1033
+ addEventListener<K extends keyof HTMLJumpNoticeElementEventMap>(type: K, listener: (this: HTMLJumpNoticeElement, ev: JumpNoticeCustomEvent<HTMLJumpNoticeElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1034
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1035
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1036
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1037
+ removeEventListener<K extends keyof HTMLJumpNoticeElementEventMap>(type: K, listener: (this: HTMLJumpNoticeElement, ev: JumpNoticeCustomEvent<HTMLJumpNoticeElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1038
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1039
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1040
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1041
+ }
1042
+ var HTMLJumpNoticeElement: {
1043
+ prototype: HTMLJumpNoticeElement;
1044
+ new (): HTMLJumpNoticeElement;
1045
+ };
1013
1046
  interface HTMLJumpPaginationElementEventMap {
1014
1047
  "jump-change-page": any;
1015
1048
  }
@@ -1202,6 +1235,7 @@ declare global {
1202
1235
  "jump-filtergroup": HTMLJumpFiltergroupElement;
1203
1236
  "jump-icon": HTMLJumpIconElement;
1204
1237
  "jump-navbar": HTMLJumpNavbarElement;
1238
+ "jump-notice": HTMLJumpNoticeElement;
1205
1239
  "jump-pagination": HTMLJumpPaginationElement;
1206
1240
  "jump-pagination-table": HTMLJumpPaginationTableElement;
1207
1241
  "jump-quantity": HTMLJumpQuantityElement;
@@ -1756,6 +1790,19 @@ declare namespace LocalJSX {
1756
1790
  target: '_blank' | '_parent' | '_self' | '_top'
1757
1791
  } | null;
1758
1792
  }
1793
+ interface JumpNotice {
1794
+ "closable"?: boolean;
1795
+ "description"?: string;
1796
+ /**
1797
+ * @Prop () id: string; Serve per identificare il componente nel DOM, utile per test o script esterni.
1798
+ */
1799
+ "id"?: string;
1800
+ "link"?: string;
1801
+ "linkText"?: string;
1802
+ "onJump-notice-close"?: (event: JumpNoticeCustomEvent<any>) => void;
1803
+ "title"?: string;
1804
+ "type"?: string;
1805
+ }
1759
1806
  interface JumpPagination {
1760
1807
  /**
1761
1808
  * Last element of the page
@@ -1938,6 +1985,7 @@ declare namespace LocalJSX {
1938
1985
  "jump-filtergroup": JumpFiltergroup;
1939
1986
  "jump-icon": JumpIcon;
1940
1987
  "jump-navbar": JumpNavbar;
1988
+ "jump-notice": JumpNotice;
1941
1989
  "jump-pagination": JumpPagination;
1942
1990
  "jump-pagination-table": JumpPaginationTable;
1943
1991
  "jump-quantity": JumpQuantity;
@@ -1976,6 +2024,7 @@ declare module "@stencil/core" {
1976
2024
  "jump-filtergroup": LocalJSX.JumpFiltergroup & JSXBase.HTMLAttributes<HTMLJumpFiltergroupElement>;
1977
2025
  "jump-icon": LocalJSX.JumpIcon & JSXBase.HTMLAttributes<HTMLJumpIconElement>;
1978
2026
  "jump-navbar": LocalJSX.JumpNavbar & JSXBase.HTMLAttributes<HTMLJumpNavbarElement>;
2027
+ "jump-notice": LocalJSX.JumpNotice & JSXBase.HTMLAttributes<HTMLJumpNoticeElement>;
1979
2028
  "jump-pagination": LocalJSX.JumpPagination & JSXBase.HTMLAttributes<HTMLJumpPaginationElement>;
1980
2029
  "jump-pagination-table": LocalJSX.JumpPaginationTable & JSXBase.HTMLAttributes<HTMLJumpPaginationTableElement>;
1981
2030
  "jump-quantity": LocalJSX.JumpQuantity & JSXBase.HTMLAttributes<HTMLJumpQuantityElement>;