{"version":3,"file":"AvailabilityStatus-CmQgrrus.js","sources":["../../src/components/atoms/availability-status/AvailabilityStatus.vue"],"sourcesContent":["<template>\n  <component\n    :is=\"statusTag\"\n    :class=\"[\n      'availability-status',\n      getAvailabilityStatus.class,\n      theme ? `availability-status--${theme}` : null,\n      showSmallIndicatorDot ? 'availability-status--small-indicator-dot' : null,\n    ]\"\n  >\n    <tooltip-fi\n      :class=\"['availability-status__tooltip', customTooltipClass]\"\n      :tooltip=\"getAvailabilityStatus.text\"\n      :custom-class=\"getAvailabilityStatus.class\"\n      :disabled=\"disableTooltip || isLG\"\n    >\n      <template #trigger>\n        <span :class=\"['availability-status__trigger', getAvailabilityStatus.class]\" />\n      </template>\n    </tooltip-fi>\n    <div\n      v-if=\"isLG || theme === 'buy-box' || theme === 'checkout' || showStatusText\"\n      class=\"availability-status__text\"\n      data-test=\"availability-status\"\n      :data-test-2=\"getAvailabilityStatus.speed\"\n    >\n      {{ getAvailabilityStatus.text }}\n    </div>\n  </component>\n</template>\n\n<script>\nimport TooltipFi from 'atoms/tooltip-fi/TooltipFi';\nimport breakpointMixin from 'mixins/breakpointMixin';\n\nexport default {\n  name: 'AvailabilityStatus',\n  components: {\n    TooltipFi,\n  },\n  mixins: [breakpointMixin],\n  props: {\n    deliverySpeed: {\n      type: String,\n      default: 'NODELIVERY',\n    },\n    disableTooltip: {\n      type: Boolean,\n      default: false,\n    },\n    customTooltipClass: {\n      type: String,\n      default: '',\n    },\n    id: {\n      type: String,\n      default: '',\n    },\n    theme: {\n      type: String,\n      default: '',\n    },\n    tag: {\n      type: String,\n      default: '',\n    },\n    showStatusText: {\n      type: Boolean,\n      default: false,\n    },\n    showSmallIndicatorDot: {\n      type: Boolean,\n      default: false,\n    },\n    stockLevels: {\n      type: Array,\n      default: null,\n    },\n  },\n  data() {\n    return {\n      allowedTags: ['div', 'span'],\n    };\n  },\n  computed: {\n    statusTag() {\n      let tag = 'div';\n\n      if (this.allowedTags.includes(this.tag)) {\n        tag = this.tag;\n      }\n\n      return tag;\n    },\n    getAvailabilityStatus() {\n      const stockWithCode = this.stockLevels?.find(({ warehouse }) => warehouse?.code);\n      const code = stockWithCode?.warehouse.code;\n\n      const deliverySpeed =\n        (code &&\n          this.$dict.get(\n            `online-Shop.Product.Warehouse.${code}-${this.deliverySpeed}-Speed`,\n            null,\n            { noDevFallback: true },\n          )) ||\n        this.deliverySpeed;\n      const warehouseText =\n        code &&\n        this.$dict.get(`online-Shop.Product.Warehouse.${code}-${this.deliverySpeed}`, null, {\n          noDevFallback: true,\n        });\n\n      const isFastDelivery = deliverySpeed === 'FASTDELIVERY';\n      const isSlowDelivery = !deliverySpeed || deliverySpeed === 'SLOWDELIVERY';\n      let availabilityText = this.$dict.get('online-Shop.Product.No-Delivery');\n      let availabilityClass = 'availability-status--no-delivery';\n\n      if (isFastDelivery) {\n        availabilityText = this.$dict.get('online-Shop.Product.Fast-Delivery');\n        availabilityClass = 'availability-status--fast-delivery';\n      } else if (isSlowDelivery) {\n        availabilityText = this.$dict.get('online-Shop.Product.Slow-Delivery');\n        availabilityClass = 'availability-status--slow-delivery';\n      }\n\n      return {\n        class: availabilityClass,\n        text: warehouseText || availabilityText,\n        speed: deliverySpeed,\n      };\n    },\n  },\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import './availability-status';\n</style>\n\n<style lang=\"scss\">\n@import './availability-status-unscoped';\n</style>\n"],"names":["_sfc_main","TooltipFi","breakpointMixin","tag","stockWithCode","_a","warehouse","code","deliverySpeed","warehouseText","isFastDelivery","isSlowDelivery","availabilityText","availabilityClass","_hoisted_1","_createBlock","_resolveDynamicComponent","$options","_normalizeClass","$props","_withCtx","_createVNode","_component_tooltip_fi","_ctx","_createElementVNode","_createElementBlock","_createCommentVNode"],"mappings":"mIAmCA,MAAKA,EAAU,CACb,KAAM,qBACN,WAAY,CACV,UAAAC,CACD,EACD,OAAQ,CAACC,CAAe,EACxB,MAAO,CACL,cAAe,CACb,KAAM,OACN,QAAS,YACV,EACD,eAAgB,CACd,KAAM,QACN,QAAS,EACV,EACD,mBAAoB,CAClB,KAAM,OACN,QAAS,EACV,EACD,GAAI,CACF,KAAM,OACN,QAAS,EACV,EACD,MAAO,CACL,KAAM,OACN,QAAS,EACV,EACD,IAAK,CACH,KAAM,OACN,QAAS,EACV,EACD,eAAgB,CACd,KAAM,QACN,QAAS,EACV,EACD,sBAAuB,CACrB,KAAM,QACN,QAAS,EACV,EACD,YAAa,CACX,KAAM,MACN,QAAS,IACV,CACF,EACD,MAAO,CACL,MAAO,CACL,YAAa,CAAC,MAAO,MAAM,EAE9B,EACD,SAAU,CACR,WAAY,CACV,IAAIC,EAAM,MAEV,OAAI,KAAK,YAAY,SAAS,KAAK,GAAG,IACpCA,EAAM,KAAK,KAGNA,CACR,EACD,uBAAwB,OACtB,MAAMC,GAAgBC,EAAA,KAAK,cAAL,YAAAA,EAAkB,KAAK,CAAC,CAAE,UAAAC,CAAW,IAAKA,GAAA,YAAAA,EAAW,MACrEC,EAAOH,GAAA,YAAAA,EAAe,UAAU,KAEhCI,EACHD,GACC,KAAK,MAAM,IACT,iCAAiCA,CAAI,IAAI,KAAK,aAAa,SAC3D,KACA,CAAE,cAAe,EAAM,CACxB,GACH,KAAK,cACDE,EACJF,GACA,KAAK,MAAM,IAAI,iCAAiCA,CAAI,IAAI,KAAK,aAAa,GAAI,KAAM,CAClF,cAAe,EACjB,CAAC,EAEGG,EAAiBF,IAAkB,eACnCG,EAAiB,CAACH,GAAiBA,IAAkB,eAC3D,IAAII,EAAmB,KAAK,MAAM,IAAI,iCAAiC,EACnEC,EAAoB,mCAExB,OAAIH,GACFE,EAAmB,KAAK,MAAM,IAAI,mCAAmC,EACrEC,EAAoB,sCACXF,IACTC,EAAmB,KAAK,MAAM,IAAI,mCAAmC,EACrEC,EAAoB,sCAGf,CACL,MAAOA,EACP,KAAMJ,GAAiBG,EACvB,MAAOJ,EAEV,CACF,CACH,EApIAM,EAAA,CAAA,aAAA,6DACEC,EADFC,EAESC,EAAS,SAAA,EAAA,CACb,MAHLC,EAAA,uBAGiDD,EAAA,sBAAsB,MAAaE,EAAA,8BAAgCA,EAAK,KAAA,GAAA,KAAiBA,EAAqB,sBAAA,2CAAA,SAH/J,QAAAC,EAUI,IASa,CATbC,EASaC,EAAA,CARV,MAXPJ,kCAW+CC,EAAkB,kBAAA,CAAA,EAC1D,QAASF,EAAqB,sBAAC,KAC/B,eAAcA,EAAqB,sBAAC,MACpC,SAAUE,EAAc,gBAAII,EAAI,OAEtB,UACT,IAA+E,CAA/EC,EAA+E,OAAA,CAAxE,MAjBfN,EAAA,CAAA,+BAiBuDD,EAAqB,sBAAC,KAAK,CAAA,aAjBlF,EAAA,oDAqBYM,EAAA,MAAQJ,EAAA,QAAuB,WAAAA,EAAA,oBAAwBA,EAAc,oBAD7EM,EAOM,MAAA,CA3BV,IAAA,EAsBM,MAAM,4BACN,YAAU,sBACT,cAAaR,EAAqB,sBAAC,SAEjCA,EAAqB,sBAAC,IAAI,EA1BnC,EAAAH,CAAA,GAAAY,EAAA,GAAA,EAAA,IAAA,EAAA"}