@nakedwines/naked-components 1.0.0 → 6.640.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of @nakedwines/naked-components might be problematic. Click here for more details.

Files changed (121) hide show
  1. package/README.md +33 -0
  2. package/build-utils/update-library.js +91 -0
  3. package/library/globals.js +4 -0
  4. package/library/index.js +69 -0
  5. package/package.json +22 -6
  6. package/src/components/badges/Badge.vue +20 -0
  7. package/src/components/badges/Badge.vue?1b45 +1 -0
  8. package/src/components/badges/Badge.vue?5424 +10 -0
  9. package/src/components/badges/Badge.vue?c5b6 +1 -0
  10. package/src/components/banners/Banner.vue +20 -0
  11. package/src/components/banners/Banner.vue?2006 +1 -0
  12. package/src/components/banners/Banner.vue?36d1 +1 -0
  13. package/src/components/banners/Banner.vue?9b97 +4 -0
  14. package/src/components/buttons/Button.vue +21 -0
  15. package/src/components/buttons/Button.vue?2035 +1 -0
  16. package/src/components/buttons/Button.vue?5c96 +1 -0
  17. package/src/components/buttons/Button.vue?838e +26 -0
  18. package/src/components/buttons/Button.vue?e88c +1 -0
  19. package/src/components/buttons/LoadingButton.vue +20 -0
  20. package/src/components/buttons/LoadingButton.vue?2f5e +17 -0
  21. package/src/components/buttons/LoadingButton.vue?4a65 +1 -0
  22. package/src/components/buttons/LoadingButton.vue?65be +1 -0
  23. package/src/components/buttons/Ripple.vue +20 -0
  24. package/src/components/buttons/Ripple.vue?130a +1 -0
  25. package/src/components/buttons/Ripple.vue?2026 +13 -0
  26. package/src/components/buttons/Ripple.vue?4835 +1 -0
  27. package/src/components/cards/ContentCard.vue +20 -0
  28. package/src/components/cards/ContentCard.vue?35c8 +10 -0
  29. package/src/components/cards/ContentCard.vue?7164 +1 -0
  30. package/src/components/cards/ContentCard.vue?ec15 +1 -0
  31. package/src/components/cards/bottle-cards/CaseContentsCard.vue +20 -0
  32. package/src/components/cards/bottle-cards/CaseContentsCard.vue?3ac7 +1 -0
  33. package/src/components/cards/bottle-cards/CaseContentsCard.vue?7e00 +4 -0
  34. package/src/components/cards/bottle-cards/CaseContentsCard.vue?dd6f +1 -0
  35. package/src/components/cards/bottle-cards/CaseProductCard.vue +21 -0
  36. package/src/components/cards/bottle-cards/CaseProductCard.vue?0cb0 +1 -0
  37. package/src/components/cards/bottle-cards/CaseProductCard.vue?1bd2 +1 -0
  38. package/src/components/cards/bottle-cards/CaseProductCard.vue?25e9 +4 -0
  39. package/src/components/cards/bottle-cards/CaseProductCard.vue?95f9 +1 -0
  40. package/src/components/cards/bottle-cards/WineBottleCard.vue +21 -0
  41. package/src/components/cards/bottle-cards/WineBottleCard.vue?61a8 +1 -0
  42. package/src/components/cards/bottle-cards/WineBottleCard.vue?7e9a +1 -0
  43. package/src/components/cards/bottle-cards/WineBottleCard.vue?bd3e +4 -0
  44. package/src/components/cards/bottle-cards/WineBottleCard.vue?bdcc +1 -0
  45. package/src/components/cards/bottle-cards/components/BiaText.vue +20 -0
  46. package/src/components/cards/bottle-cards/components/BiaText.vue?123e +1 -0
  47. package/src/components/cards/bottle-cards/components/BiaText.vue?3e10 +1 -0
  48. package/src/components/cards/bottle-cards/components/BiaText.vue?d135 +4 -0
  49. package/src/components/cards/bottle-cards/components/HeartRatingPanel.vue +20 -0
  50. package/src/components/cards/bottle-cards/components/HeartRatingPanel.vue?712f +4 -0
  51. package/src/components/cards/bottle-cards/components/HeartRatingPanel.vue?c55a +1 -0
  52. package/src/components/cards/bottle-cards/components/HeartRatingPanel.vue?ee3b +1 -0
  53. package/src/components/cards/bottle-cards/components/PriceBreakdownPanel.vue +20 -0
  54. package/src/components/cards/bottle-cards/components/PriceBreakdownPanel.vue?5052 +1 -0
  55. package/src/components/cards/bottle-cards/components/PriceBreakdownPanel.vue?5838 +4 -0
  56. package/src/components/cards/bottle-cards/components/PriceBreakdownPanel.vue?7aad +1 -0
  57. package/src/components/cards/bottle-cards/components/WineDetailPanel.vue +20 -0
  58. package/src/components/cards/bottle-cards/components/WineDetailPanel.vue?5047 +1 -0
  59. package/src/components/cards/bottle-cards/components/WineDetailPanel.vue?8e3b +1 -0
  60. package/src/components/cards/bottle-cards/components/WineDetailPanel.vue?d1ea +4 -0
  61. package/src/components/carousel/Carousel.vue +21 -0
  62. package/src/components/carousel/Carousel.vue?492f +1 -0
  63. package/src/components/carousel/Carousel.vue?4e80 +4 -0
  64. package/src/components/carousel/Carousel.vue?66a0 +1 -0
  65. package/src/components/carousel/Carousel.vue?72ce +1 -0
  66. package/src/components/chips/Chip.vue +20 -0
  67. package/src/components/chips/Chip.vue?7e2c +1 -0
  68. package/src/components/chips/Chip.vue?9563 +4 -0
  69. package/src/components/chips/Chip.vue?f42c +1 -0
  70. package/src/components/footers/sticky-footer/StickyFooter.vue +20 -0
  71. package/src/components/footers/sticky-footer/StickyFooter.vue?10bf +4 -0
  72. package/src/components/footers/sticky-footer/StickyFooter.vue?b195 +1 -0
  73. package/src/components/footers/sticky-footer/StickyFooter.vue?e2d9 +1 -0
  74. package/src/components/forms/CheckboxInput.vue +20 -0
  75. package/src/components/forms/CheckboxInput.vue?1713 +1 -0
  76. package/src/components/forms/CheckboxInput.vue?51c9 +1 -0
  77. package/src/components/forms/CheckboxInput.vue?feea +4 -0
  78. package/src/components/forms/QuantityInput.vue +20 -0
  79. package/src/components/forms/QuantityInput.vue?233a +25 -0
  80. package/src/components/forms/QuantityInput.vue?4975 +1 -0
  81. package/src/components/forms/QuantityInput.vue?bb30 +1 -0
  82. package/src/components/forms/SelectInput.vue +172 -0
  83. package/src/components/forms/SelectInput.vue?1d47 +1 -0
  84. package/src/components/forms/SelectInput.vue?642a +21 -0
  85. package/src/components/forms/SelectInput.vue?7590 +20 -0
  86. package/src/components/forms/SelectInput.vue?f210 +1 -0
  87. package/src/components/forms/SelectInput.vue?fc78 +1 -0
  88. package/src/components/icons/CustomisableHeart.vue +19 -0
  89. package/src/components/icons/CustomisableHeart.vue?30ab +1 -0
  90. package/src/components/icons/CustomisableHeart.vue?ce76 +4 -0
  91. package/src/components/icons/Icon.vue +21 -0
  92. package/src/components/icons/Icon.vue?47ee +9 -0
  93. package/src/components/icons/Icon.vue?6e26 +1 -0
  94. package/src/components/icons/Icon.vue?897e +1 -0
  95. package/src/components/icons/Icon.vue?e753 +1 -0
  96. package/src/components/modal/ProductDetailModal.vue +20 -0
  97. package/src/components/modal/ProductDetailModal.vue?5d3a +1 -0
  98. package/src/components/modal/ProductDetailModal.vue?9f0f +1 -0
  99. package/src/components/modal/ProductDetailModal.vue?a2a9 +4 -0
  100. package/src/components/popover/Popover.vue +20 -0
  101. package/src/components/popover/Popover.vue?088e +1 -0
  102. package/src/components/popover/Popover.vue?4dad +1 -0
  103. package/src/components/popover/Popover.vue?7034 +7 -0
  104. package/src/components/roundels/Roundel.vue +20 -0
  105. package/src/components/roundels/Roundel.vue?14bf +7 -0
  106. package/src/components/roundels/Roundel.vue?a97a +1 -0
  107. package/src/components/roundels/Roundel.vue?aa28 +1 -0
  108. package/src/components/shelf/Shelf.vue +20 -0
  109. package/src/components/shelf/Shelf.vue?50f3 +1 -0
  110. package/src/components/shelf/Shelf.vue?9eba +1 -0
  111. package/src/components/shelf/Shelf.vue?d8e7 +4 -0
  112. package/src/globals/assortments.js +80 -0
  113. package/src/globals/csrf.js +25 -0
  114. package/src/globals/functions.js +166 -0
  115. package/src/globals/products.js +251 -0
  116. package/src/globals/responsive.js +53 -0
  117. package/src/globals/validation.js +8 -0
  118. package/src/globals/variables.js +48 -0
  119. package/src/mixins/productCard.js +151 -0
  120. package/src/styles/js-modules/breakpoints.scss +2 -0
  121. package/index.js +0 -0
@@ -0,0 +1,21 @@
1
+ import { render, staticRenderFns } from "./SelectInput.vue?vue&type=template&id=477c36cb&scoped=true&"
2
+ import script from "./SelectInput.vue?vue&type=script&lang=js&"
3
+ export * from "./SelectInput.vue?vue&type=script&lang=js&"
4
+ import style0 from "./SelectInput.vue?vue&type=style&index=0&id=477c36cb&lang=scss&scoped=true&"
5
+ import style1 from "./SelectInput.vue?vue&type=style&index=1&lang=css&"
6
+
7
+
8
+ /* normalize component */
9
+ import normalizer from "!../../../../../vue-loader/lib/runtime/componentNormalizer.js"
10
+ var component = normalizer(
11
+ script,
12
+ render,
13
+ staticRenderFns,
14
+ false,
15
+ null,
16
+ "477c36cb",
17
+ null
18
+
19
+ )
20
+
21
+ export default component.exports
@@ -0,0 +1,20 @@
1
+ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:['nkd-select-input__wrapper', _vm.disabled ? 'nkd-select-input__wrapper--disabled' : '']},[_c('select',{directives:[{name:"model",rawName:"v-model",value:(_vm.inputvalue),expression:"inputvalue"}],ref:_vm.inputref,class:[
2
+ 'nkd-select-input',
3
+ ("nkd-select-input--" + _vm.color),
4
+ _vm.inputsize ? ("nkd-select-input--" + _vm.inputsize) : '',
5
+ _vm.showvalidation ? 'nkd-select-input--invalid' : '',
6
+ (!_vm.isFocused && _vm.inputvalue == '' && !_vm.hidelabel) ? 'label-shift' : '' ],attrs:{"id":_vm.inputid ? _vm.inputid : _vm.name,"name":_vm.name,"multiple":_vm.multiple,"aria-label":_vm.arialabel ? _vm.arialabel : undefined,"aria-labelledby":_vm.arialabel ? undefined : ("label-" + _vm.name),"aria-describedby":_vm.assistivetext ? ("desc-" + _vm.name) : undefined,"aria-disabled":_vm.disabled,"disabled":_vm.disabled ? 'disabled' : undefined,"required":_vm.required ? 'true' : undefined,"aria-required":_vm.required ? 'true' : 'false',"autocomplete":_vm.autocomplete ? 'on' : 'off'},on:{"change":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return val}); _vm.inputvalue=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_vm._t("default")],2),_c('label',{class:[
7
+ 'nkd-select-input__label',
8
+ ("nkd-select-input__label--" + _vm.color),
9
+ _vm.inputsize ? ("nkd-select-input__label--" + _vm.inputsize) : '',
10
+ _vm.isFocused ? 'focussed' : '',
11
+ _vm.hidelabel ? 'nkd-select-input__label--hidden' : '',
12
+ (!_vm.isFocused && _vm.inputvalue == '' && !_vm.hidelabel) ? 'label-shift' : '',
13
+ (!_vm.isFocused && _vm.showvalidation) ? 'nkd-select-input__label--error' : '' ],attrs:{"for":_vm.inputid ? _vm.inputid : _vm.name,"id":("label-" + _vm.name),"name":("label-" + _vm.name)}},[_vm._v(_vm._s(("" + _vm.label + (_vm.required ? ' *' : ''))))]),_c('nkd-icon',{class:['nkd-select-input--arrow', _vm.inputsize ? ("nkd-select-input--arrow-" + _vm.inputsize) : ''],attrs:{"name":'chevron-down',"size":'small'}}),(_vm.assistivetext && !_vm.showvalidation)?_c('span',{class:[
14
+ 'nkd-select-input__desc',
15
+ _vm.isFocused ? 'focussed' : '',
16
+ (_vm.hideassistive && !_vm.isFocused) ? 'visually-hidden' : ''
17
+ ],attrs:{"id":("desc-" + _vm.name),"name":("desc-" + _vm.name)},domProps:{"innerHTML":_vm._s(_vm.assistivetext)}}):_vm._e(),(_vm.showvalidation)?_c('span',{ref:"validation-message",staticClass:"nkd-select-input__validation",attrs:{"data-test-id":"select-input-validation-message"}},[_vm._v(" "+_vm._s(_vm.validationmessage())+" ")]):_vm._e()],1)}
18
+ var staticRenderFns = []
19
+
20
+ export { render, staticRenderFns }
@@ -0,0 +1 @@
1
+ export * from "-!../../../../../mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../vue-loader/lib/loaders/stylePostLoader.js!../../../../../postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./SelectInput.vue?vue&type=style&index=1&lang=css&"
@@ -0,0 +1 @@
1
+ import mod from "-!../../../../../cache-loader/dist/cjs.js??ref--13-0!../../../../../thread-loader/dist/cjs.js!../../../../../babel-loader/lib/index.js!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./SelectInput.vue?vue&type=script&lang=js&"; export default mod; export * from "-!../../../../../cache-loader/dist/cjs.js??ref--13-0!../../../../../thread-loader/dist/cjs.js!../../../../../babel-loader/lib/index.js!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./SelectInput.vue?vue&type=script&lang=js&"
@@ -0,0 +1,19 @@
1
+ import { render, staticRenderFns } from "./CustomisableHeart.vue?vue&type=template&id=ff5d2a74&"
2
+ import script from "./CustomisableHeart.vue?vue&type=script&lang=js&"
3
+ export * from "./CustomisableHeart.vue?vue&type=script&lang=js&"
4
+
5
+
6
+ /* normalize component */
7
+ import normalizer from "!../../../../../vue-loader/lib/runtime/componentNormalizer.js"
8
+ var component = normalizer(
9
+ script,
10
+ render,
11
+ staticRenderFns,
12
+ false,
13
+ null,
14
+ null,
15
+ null
16
+
17
+ )
18
+
19
+ export default component.exports
@@ -0,0 +1 @@
1
+ import mod from "-!../../../../../cache-loader/dist/cjs.js??ref--13-0!../../../../../thread-loader/dist/cjs.js!../../../../../babel-loader/lib/index.js!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./CustomisableHeart.vue?vue&type=script&lang=js&"; export default mod; export * from "-!../../../../../cache-loader/dist/cjs.js??ref--13-0!../../../../../thread-loader/dist/cjs.js!../../../../../babel-loader/lib/index.js!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./CustomisableHeart.vue?vue&type=script&lang=js&"
@@ -0,0 +1,4 @@
1
+ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{"width":_vm.size,"height":_vm.size,"viewBox":"0 0 24 24","version":"1.1","xmlns":"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"}},[_c('defs',[_c('clipPath',{attrs:{"id":"heart"}},[_c('path',{attrs:{"stroke":"black","stroke-width":"4","d":"M21.8309 2.72153C20.4215 1.27598 18.5452 0.48 16.5492 0.48C14.8811 0.48 13.2981 1.03586 11.9995 2.06185C10.702 1.03586 9.11802 0.48 7.44991 0.48C5.45329 0.480532 3.57807 1.27652 2.16873 2.72153C-0.722908 5.68771 -0.722908 10.5137 2.16873 13.4804L11.2637 22.8086C11.4581 23.0072 11.7237 23.1195 12.0006 23.1195C12.2785 23.1195 12.5442 23.0072 12.7375 22.8086L21.8309 13.4804C24.723 10.5137 24.723 5.68771 21.8309 2.72153Z"}})])]),(_vm.fillAmount && _vm.fillAmount != 0 && _vm.fillAmount != 100)?[_c('rect',{attrs:{"data-test-id":"heart-background","x":"0","y":"0","fill":_vm.bgColor,"width":"100%","height":"100%","clip-path":"url(#heart)"}}),_c('rect',{attrs:{"data-test-id":"heart-fill","x":"0","y":"0","fill":_vm.fillColor,"width":(_vm.fillAmount + "%"),"height":"100%","clip-path":"url(#heart)"}})]:[_c('rect',{attrs:{"data-test-id":"heart-fill","x":"0","y":"0","fill":_vm.fillAmount == 0 ? _vm.bgColor : _vm.fillColor,"width":"100%","height":"100%","clip-path":"url(#heart)"}})],(_vm.fillAmount != 100)?[_c('path',{attrs:{"data-test-id":"heart-outline","fill":_vm.strokeColorSet,"d":"M20.2858 12.483L11.9595 21.0258L3.63058 12.483C1.51784 10.3167 1.51784 6.79207 3.63058 4.6252C4.64504 3.58475 5.9927 3.0112 7.42419 3.0112C8.85621 3.01067 10.2039 3.58475 11.2189 4.6252C11.6051 5.02154 12.3118 5.02154 12.6976 4.6252C13.7125 3.58475 15.0597 3.0112 16.4922 3.0112C17.9242 3.0112 19.2714 3.58475 20.2858 4.6252C22.3986 6.79207 22.3986 10.3167 20.2858 12.483ZM16.4922 0.959999C14.8299 0.959999 13.2515 1.51392 11.9585 2.53633C10.6649 1.51392 9.08648 0.959999 7.42419 0.959999C5.43454 0.96053 3.56585 1.75374 2.16196 3.19372C-0.720652 6.14954 -0.720652 10.9587 2.16196 13.915L11.2247 23.2107C11.4178 23.408 11.6826 23.52 11.9595 23.52C12.236 23.52 12.5002 23.408 12.6933 23.2107L21.755 13.915C24.6371 10.9587 24.6371 6.14954 21.755 3.19372C20.35 1.75321 18.4813 0.959999 16.4922 0.959999Z"}})]:_vm._e()],2)}
2
+ var staticRenderFns = []
3
+
4
+ export { render, staticRenderFns }
@@ -0,0 +1,21 @@
1
+ import { render, staticRenderFns } from "./Icon.vue?vue&type=template&id=f2155804&scoped=true&"
2
+ import script from "./Icon.vue?vue&type=script&lang=js&"
3
+ export * from "./Icon.vue?vue&type=script&lang=js&"
4
+ import style0 from "./Icon.vue?vue&type=style&index=0&id=f2155804&lang=scss&scoped=true&"
5
+ import style1 from "./Icon.vue?vue&type=style&index=1&lang=scss&"
6
+
7
+
8
+ /* normalize component */
9
+ import normalizer from "!../../../../../vue-loader/lib/runtime/componentNormalizer.js"
10
+ var component = normalizer(
11
+ script,
12
+ render,
13
+ staticRenderFns,
14
+ false,
15
+ null,
16
+ "f2155804",
17
+ null
18
+
19
+ )
20
+
21
+ export default component.exports
@@ -0,0 +1,9 @@
1
+ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.ready)?_c(_vm.iconSvg,{tag:"component",class:[
2
+ 'icon',
3
+ _vm.color + '--text',
4
+ 'icon--' + _vm.color,
5
+ _vm.size ? 'icon-size--' + _vm.size : ''
6
+ ]}):_vm._e()}
7
+ var staticRenderFns = []
8
+
9
+ export { render, staticRenderFns }
@@ -0,0 +1 @@
1
+ export * from "-!../../../../../mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../vue-loader/lib/loaders/stylePostLoader.js!../../../../../postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./Icon.vue?vue&type=style&index=1&lang=scss&"
@@ -0,0 +1 @@
1
+ export * from "-!../../../../../mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../vue-loader/lib/loaders/stylePostLoader.js!../../../../../postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./Icon.vue?vue&type=style&index=0&id=f2155804&lang=scss&scoped=true&"
@@ -0,0 +1 @@
1
+ import mod from "-!../../../../../cache-loader/dist/cjs.js??ref--13-0!../../../../../thread-loader/dist/cjs.js!../../../../../babel-loader/lib/index.js!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./Icon.vue?vue&type=script&lang=js&"; export default mod; export * from "-!../../../../../cache-loader/dist/cjs.js??ref--13-0!../../../../../thread-loader/dist/cjs.js!../../../../../babel-loader/lib/index.js!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./Icon.vue?vue&type=script&lang=js&"
@@ -0,0 +1,20 @@
1
+ import { render, staticRenderFns } from "./ProductDetailModal.vue?vue&type=template&id=13d647f4&"
2
+ import script from "./ProductDetailModal.vue?vue&type=script&lang=js&"
3
+ export * from "./ProductDetailModal.vue?vue&type=script&lang=js&"
4
+ import style0 from "./ProductDetailModal.vue?vue&type=style&index=0&lang=scss&"
5
+
6
+
7
+ /* normalize component */
8
+ import normalizer from "!../../../../../vue-loader/lib/runtime/componentNormalizer.js"
9
+ var component = normalizer(
10
+ script,
11
+ render,
12
+ staticRenderFns,
13
+ false,
14
+ null,
15
+ null,
16
+ null
17
+
18
+ )
19
+
20
+ export default component.exports
@@ -0,0 +1 @@
1
+ export * from "-!../../../../../mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../vue-loader/lib/loaders/stylePostLoader.js!../../../../../postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./ProductDetailModal.vue?vue&type=style&index=0&lang=scss&"
@@ -0,0 +1 @@
1
+ import mod from "-!../../../../../cache-loader/dist/cjs.js??ref--13-0!../../../../../thread-loader/dist/cjs.js!../../../../../babel-loader/lib/index.js!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./ProductDetailModal.vue?vue&type=script&lang=js&"; export default mod; export * from "-!../../../../../cache-loader/dist/cjs.js??ref--13-0!../../../../../thread-loader/dist/cjs.js!../../../../../babel-loader/lib/index.js!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./ProductDetailModal.vue?vue&type=script&lang=js&"
@@ -0,0 +1,4 @@
1
+ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.product)?_c('div',{staticClass:"nkd-product-detail-modal"},[_c('section',{staticClass:"wine__modal--header"},[(_vm.quantity > 0)?_c('div',{staticClass:"quantity-badge"},[_c('span',[_vm._v("x"+_vm._s(_vm.quantity))])]):_vm._e(),_c('div',{staticClass:"wine__modal--hero"},[_c('div',{staticClass:"wine__modal--banner",style:({ 'background-image': 'url(' + _vm.staticUrl + _vm.productData.thumbnail + ')' }),attrs:{"data-test-id":"productdetailmodal-background"}},[_c('div',{class:['wine__style--border d-block d-md-none', _vm.styleCodeClassName ? _vm.styleCodeClassName + '--background' : ''],attrs:{"data-test-id":"productdetailmodal-style"}})]),_c('div',{staticClass:"header-overlay d-none d-md-block"}),_c('div',{class:['wine__style--border d-none d-md-block', _vm.styleCodeClassName ? _vm.styleCodeClassName + '--background' : ''],attrs:{"data-test-id":"productdetailmodal-background"}}),_c('div',{staticClass:"container"},[_c('div',{staticClass:"row"},[_c('div',{staticClass:"col col__md--6 offset__md--6 pr-md-7"},[_c('div',{staticClass:"card card__contents pa-1"},[_c('div',{staticClass:"row align__xs--start"},[_c('div',{staticClass:"col col__xs--7"},[_c('h5',{staticClass:"mb-4"},[_vm._v(_vm._s(_vm.productData.heading))]),_c('p',{staticClass:"body2 dark-blue--text semi-bold"},[_vm._v("By "+_vm._s(_vm.productData.producer.firstName)+" "+_vm._s(_vm.productData.producer.lastName))])]),_c('div',{staticClass:"col col__xs--5"},[(_vm.productData.bia && Object.keys(_vm.productData.bia))?_c('div',{staticClass:"float-right"},[_c('nkd-roundel',{attrs:{"color":"blue","size":"small"}},[_c('h4',[_vm._v(_vm._s(_vm.productData.bia.positiveRatingPercentage)),_c('span',{staticClass:"percent"},[_vm._v("%")])]),_c('p',[_vm._v("of "),_c('span',{attrs:{"data-test-id":"productdetailmodal-ratings"}},[_vm._v(_vm._s(_vm.numberWithCommas(_vm.productData.bia.numberOfRatings)))])])])],1):_vm._e()])]),_c('div',{staticClass:"row"},[_c('div',{staticClass:"col col__xs--12 col__md--8 col__lg--12"},[_c('p',{staticClass:"body1 mt-4"},[_vm._v(_vm._s(_vm.productData.originForSpiritsOrBeer))])])]),_c('div',{staticClass:"product__icons mt-5"},[(_vm.productData.origin)?_c('div',{staticClass:"product__icons--panel"},[_c('div',{staticClass:"card cream--background text-center pa-2"},[_c('nkd-icon',{staticClass:"d-block mb-1",attrs:{"name":"world-line"}}),_c('p',{staticClass:"caption ma-0"},[_vm._v(_vm._s(_vm.productData.origin))])],1)]):_vm._e(),(_vm.productData.wineGrape)?_c('div',{staticClass:"product__icons--panel"},[_c('div',{staticClass:"card cream--background text-center pa-2"},[_c('nkd-icon',{staticClass:"d-block mb-1",attrs:{"name":"grape-line"}}),_c('p',{staticClass:"caption ma-0"},[_vm._v(_vm._s(_vm.productData.wineGrape))])],1)]):_vm._e(),(_vm.productData.taste)?_c('div',{staticClass:"product__icons--panel"},[_c('div',{staticClass:"card cream--background text-center pa-2"},[_c('nkd-icon',{staticClass:"d-block mb-1",attrs:{"name":"drop-solid-half"}}),_c('p',{staticClass:"caption ma-0"},[_vm._v(_vm._s(_vm.productData.taste))])],1)]):_vm._e(),(_vm.productData.alcoholStrength)?_c('div',{staticClass:"product__icons--panel"},[_c('div',{staticClass:"card cream--background text-center pa-2"},[_c('nkd-icon',{staticClass:"d-block mb-1",attrs:{"name":"drop-line"}}),_c('p',{staticClass:"caption ma-0"},[_vm._v(_vm._s(_vm.productData.alcoholStrength)+"% Alc")])],1)]):_vm._e(),(_vm.productData.bottleSizeDesc)?_c('div',{staticClass:"product__icons--panel"},[_c('div',{staticClass:"card cream--background text-center pa-2"},[_c('nkd-icon',{staticClass:"d-block mb-1",attrs:{"name":"bottle-red"}}),_c('p',{staticClass:"caption ma-0"},[_vm._v(_vm._s(_vm.productData.bottleSizeDesc))])],1)]):_vm._e(),(_vm.productData.vegan)?_c('div',{staticClass:"product__icons--panel"},[_c('div',{staticClass:"card cream--background text-center pa-2"},[_c('nkd-icon',{staticClass:"d-block mb-1",attrs:{"name":"leaves-line"}}),_c('p',{staticClass:"caption ma-0"},[_vm._v("Vegan")])],1)]):_vm._e(),(_vm.productData.vegetarian)?_c('div',{staticClass:"product__icons--panel"},[_c('div',{staticClass:"card cream--background text-center pa-2"},[_c('nkd-icon',{staticClass:"d-block mb-1",attrs:{"name":"leaf-line"}}),_c('p',{staticClass:"caption ma-0"},[_vm._v("Vegetarian")])],1)]):_vm._e()])])])])])])]),_c('section',{staticClass:"wine__modal--body"},[_c('div',{staticClass:"row"},[_c('div',{staticClass:"col col__md--6 order__md--first order__xs--last"},[_c('div',{staticClass:"list__tick-points"},[_c('div',{domProps:{"innerHTML":_vm._s(_vm.productData.tickpoints)}})])])])])]):_vm._e()}
2
+ var staticRenderFns = []
3
+
4
+ export { render, staticRenderFns }
@@ -0,0 +1,20 @@
1
+ import { render, staticRenderFns } from "./Popover.vue?vue&type=template&id=b722a116&"
2
+ import script from "./Popover.vue?vue&type=script&lang=js&"
3
+ export * from "./Popover.vue?vue&type=script&lang=js&"
4
+ import style0 from "./Popover.vue?vue&type=style&index=0&lang=scss&"
5
+
6
+
7
+ /* normalize component */
8
+ import normalizer from "!../../../../../vue-loader/lib/runtime/componentNormalizer.js"
9
+ var component = normalizer(
10
+ script,
11
+ render,
12
+ staticRenderFns,
13
+ false,
14
+ null,
15
+ null,
16
+ null
17
+
18
+ )
19
+
20
+ export default component.exports
@@ -0,0 +1 @@
1
+ import mod from "-!../../../../../cache-loader/dist/cjs.js??ref--13-0!../../../../../thread-loader/dist/cjs.js!../../../../../babel-loader/lib/index.js!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./Popover.vue?vue&type=script&lang=js&"; export default mod; export * from "-!../../../../../cache-loader/dist/cjs.js??ref--13-0!../../../../../thread-loader/dist/cjs.js!../../../../../babel-loader/lib/index.js!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./Popover.vue?vue&type=script&lang=js&"
@@ -0,0 +1 @@
1
+ export * from "-!../../../../../mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../vue-loader/lib/loaders/stylePostLoader.js!../../../../../postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./Popover.vue?vue&type=style&index=0&lang=scss&"
@@ -0,0 +1,7 @@
1
+ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"nkd-popover__container"},[(this.hasTrigger)?_c('div',{staticClass:"nkd-popover__trigger",attrs:{"aria-describedby":_vm.id,"tabindex":"0","data-test-id":"popover-trigger"},on:{"mouseenter":_vm.enter,"mouseleave":_vm.leave,"focus":_vm.show,"blur":_vm.hide}},[_vm._t("trigger")],2):_vm._e(),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.open),expression:"open"}],class:[
2
+ 'nkd-popover',
3
+ this.hasTrigger ? 'nkd-popover--has-trigger' : 'nkd-popover--no-trigger',
4
+ this.anchor ? ("nkd-popover--is-anchored nkd-popover--anchor-" + (this.anchor)) : '' ],style:(_vm.offsetMargins),attrs:{"data-test-id":"popover-wrapper"},on:{"mouseenter":_vm.enter,"mouseleave":_vm.leave}},[(_vm.anchor !== false)?_c('div',{class:_vm.arrowClasses,style:(_vm.offsetYMarginInverse + _vm.offsetXMarginInverse),attrs:{"aria-hidden":"true","data-test-id":"popover-anchor"}}):_vm._e(),_c('div',{staticClass:"nkd-popover__card"},[_c('div',{staticClass:"nkd-popover__content",attrs:{"id":_vm.id,"role":"tooltip","data-test-id":"popover-content"}},[_vm._t("default")],2)])])])}
5
+ var staticRenderFns = []
6
+
7
+ export { render, staticRenderFns }
@@ -0,0 +1,20 @@
1
+ import { render, staticRenderFns } from "./Roundel.vue?vue&type=template&id=d4a1d008&"
2
+ import script from "./Roundel.vue?vue&type=script&lang=js&"
3
+ export * from "./Roundel.vue?vue&type=script&lang=js&"
4
+ import style0 from "./Roundel.vue?vue&type=style&index=0&lang=scss&"
5
+
6
+
7
+ /* normalize component */
8
+ import normalizer from "!../../../../../vue-loader/lib/runtime/componentNormalizer.js"
9
+ var component = normalizer(
10
+ script,
11
+ render,
12
+ staticRenderFns,
13
+ false,
14
+ null,
15
+ null,
16
+ null
17
+
18
+ )
19
+
20
+ export default component.exports
@@ -0,0 +1,7 @@
1
+ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"nkd-roundel"},[_c('div',{class:[
2
+ 'roundel__color--' + _vm.color,
3
+ 'roundel__size--' + _vm.size,
4
+ _vm.border ? 'roundel__border' : '' ]},[_vm._t("default"),(_vm.price)?_c('div',{staticClass:"roundel__price",attrs:{"data-test-id":"roundel-price"},domProps:{"innerHTML":_vm._s(_vm.formattedPrice)}}):_vm._e()],2)])}
5
+ var staticRenderFns = []
6
+
7
+ export { render, staticRenderFns }
@@ -0,0 +1 @@
1
+ import mod from "-!../../../../../cache-loader/dist/cjs.js??ref--13-0!../../../../../thread-loader/dist/cjs.js!../../../../../babel-loader/lib/index.js!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./Roundel.vue?vue&type=script&lang=js&"; export default mod; export * from "-!../../../../../cache-loader/dist/cjs.js??ref--13-0!../../../../../thread-loader/dist/cjs.js!../../../../../babel-loader/lib/index.js!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./Roundel.vue?vue&type=script&lang=js&"
@@ -0,0 +1 @@
1
+ export * from "-!../../../../../mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../vue-loader/lib/loaders/stylePostLoader.js!../../../../../postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./Roundel.vue?vue&type=style&index=0&lang=scss&"
@@ -0,0 +1,20 @@
1
+ import { render, staticRenderFns } from "./Shelf.vue?vue&type=template&id=5c7d9af2&scoped=true&"
2
+ import script from "./Shelf.vue?vue&type=script&lang=js&"
3
+ export * from "./Shelf.vue?vue&type=script&lang=js&"
4
+ import style0 from "./Shelf.vue?vue&type=style&index=0&id=5c7d9af2&lang=scss&scoped=true&"
5
+
6
+
7
+ /* normalize component */
8
+ import normalizer from "!../../../../../vue-loader/lib/runtime/componentNormalizer.js"
9
+ var component = normalizer(
10
+ script,
11
+ render,
12
+ staticRenderFns,
13
+ false,
14
+ null,
15
+ "5c7d9af2",
16
+ null
17
+
18
+ )
19
+
20
+ export default component.exports
@@ -0,0 +1 @@
1
+ import mod from "-!../../../../../cache-loader/dist/cjs.js??ref--13-0!../../../../../thread-loader/dist/cjs.js!../../../../../babel-loader/lib/index.js!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./Shelf.vue?vue&type=script&lang=js&"; export default mod; export * from "-!../../../../../cache-loader/dist/cjs.js??ref--13-0!../../../../../thread-loader/dist/cjs.js!../../../../../babel-loader/lib/index.js!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./Shelf.vue?vue&type=script&lang=js&"
@@ -0,0 +1 @@
1
+ export * from "-!../../../../../mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../vue-loader/lib/loaders/stylePostLoader.js!../../../../../postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../../vue-loader/lib/index.js??vue-loader-options!./Shelf.vue?vue&type=style&index=0&id=5c7d9af2&lang=scss&scoped=true&"
@@ -0,0 +1,4 @@
1
+ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:_vm.shelfref,staticClass:"nkd-shelf__wrapper"},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.loaded),expression:"loaded"}],staticClass:"nkd-shelf__headings-wrapper"},[_c('div',{staticClass:"nkd-shelf__headings--heading"},[_vm._t("heading")],2),_c('div',{staticClass:"nkd-shelf__headings--subheading"},[_vm._t("subheading")],2)]),_vm._t("default"),((_vm.productList.length > 0) && _vm.loaded)?_c('section',[_c('carousel',{ref:_vm.carouselref,attrs:{"shelfcarousel":true,"endpointexhausted":_vm.endpointExhausted,"carouselid":_vm.carouselref,"disabledrag":'desktop',"overflow":false,"arrows":'desktop',"fullslide":true,"fullwidth":true,"gutter":_vm.gutter,"responsive":_vm.responsive},on:{"slides-shown-change":_vm.handleSlidesShownChange,"active-slide-change":_vm.handleActiveSlideChange}},_vm._l((_vm.productList),function(item,index){return _c('div',{key:(_vm.source + "-" + index)},[(_vm.cardType === 'swap-free-bottle')?_c('case-contents-card',{attrs:{"product":item,"cartItem":item.cartItem,"loading":item.loading,"type":"swap-free-bottle","recommendationType":"percentageMatch"},on:{"primary-action":_vm.onPrimaryAction}}):(_vm.cardType === 'case-product')?_c('case-product-card',{attrs:{"product":item,"type":'shelf',"detailpanel":_vm.detailpanel,"pricebreakdown":_vm.pricebreakdown,"angelStatus":_vm.angel}}):_c('wine-bottle-card',{attrs:{"product":item,"type":'shelf',"detailpanel":_vm.detailpanel,"pricebreakdown":_vm.pricebreakdown,"ratingType":_vm.ratingType,"angelStatus":_vm.angel}})],1)}),0)],1):_vm._e(),((_vm.productList.length == 0) && _vm.loaded)?_c('section',[_vm._m(0)]):_vm._e(),(_vm.loaded)?_vm._t("belowshelf"):_vm._e()],2)}
2
+ var staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"nkd-shelf__no-results"},[_c('p',[_vm._v("Sorry, there are no results to show here yet. Please check again later!")])])}]
3
+
4
+ export { render, staticRenderFns }
@@ -0,0 +1,80 @@
1
+ /* eslint-disable no-prototype-builtins */
2
+
3
+ import { makeGetRequest } from "./functions";
4
+
5
+ export const Assortments = {
6
+ /**
7
+ * @param {String} assortmentName - name of the assortment to get. Note - be exact.
8
+ * @param {Number} pageSize - how many objects to a page
9
+ * @param {Number} pageNumber - what page to get
10
+ * @returns {Promise} - promise returned for use
11
+ */
12
+ getAssortmentByName( assortmentName, pageSize, pageNumber ) {
13
+ return new Promise((resolve, reject) => {
14
+ if (!assortmentName) {
15
+ reject({ error: 'assortmentName is required' });
16
+ return;
17
+ }
18
+ const config = {
19
+ url: this._buildURL(assortmentName, pageSize, pageNumber)
20
+ };
21
+
22
+ makeGetRequest(config)
23
+ .then(response => {
24
+ resolve({
25
+ results: this._extractResults(response),
26
+ context: {}
27
+ });
28
+ })
29
+ .catch(error => reject({ error: error }));
30
+ });
31
+ },
32
+
33
+ // Create request URL
34
+ _buildURL(assortmentName, pageSize, pageNumber) {
35
+ let params = {
36
+ pageSize: pageSize || 8,
37
+ pageNumber: pageNumber || 0,
38
+ };
39
+ return `/assortments/${assortmentName}/objects?pageSize=${params.pageSize}&pageNumber=${params.pageNumber}`;
40
+ },
41
+
42
+ // Parse response
43
+ _extractResults(response) {
44
+ let results = [];
45
+ if (response && response.hasOwnProperty('data') && response.data.hasOwnProperty('objects')) {
46
+ results = response.data.objects;
47
+ }
48
+ return results;
49
+ },
50
+
51
+ // get assortment data
52
+ _getAssortmentObject(assortmentObjects, key) {
53
+ if (!assortmentObjects || !key ||
54
+ !assortmentObjects.hasOwnProperty('names') ||
55
+ !assortmentObjects.hasOwnProperty('objects') ||
56
+ assortmentObjects.names.indexOf(key) < 0) {
57
+ return null;
58
+ }
59
+ let match = assortmentObjects.objects.find(item => {
60
+ return item.name == key;
61
+ });
62
+ let itemType = this._getAssortmentObjectType(match.objectType);
63
+ if (itemType == 'content' && match.hasOwnProperty('contentPath')) {
64
+ return match.contentPath;
65
+ } else if (itemType == 'string' && match.hasOwnProperty('labelText')) {
66
+ return match.labelText;
67
+ }
68
+ return null;
69
+ },
70
+
71
+ _getAssortmentObjectType(type) {
72
+ if (!type) { return ''; }
73
+ switch (type.toLowerCase()) {
74
+ case 'p': return 'product';
75
+ case 'c': return 'content';
76
+ case 's': return 'string';
77
+ case 'w': return 'winemaker';
78
+ }
79
+ },
80
+ }
@@ -0,0 +1,25 @@
1
+ export const csrf = {
2
+ getMetaTagContent(name) {
3
+ const metaTag = document.querySelector(`meta[name=${name}]`);
4
+ if (!metaTag || !metaTag.content) {
5
+ return null;
6
+ }
7
+ return metaTag.content;
8
+ },
9
+ get header() {
10
+ // Get header name / token
11
+ const headerName = this.getMetaTagContent('_csrf_header');
12
+ const token = this.getMetaTagContent('_csrf');
13
+
14
+ // If either are null, return empty objrct
15
+ if (!headerName || !token) {
16
+ return {};
17
+ }
18
+
19
+ // Output header / token as object
20
+ // e.g { 'csrf': 'token-123456' }
21
+ const output = {}
22
+ output[headerName] = token;
23
+ return output;
24
+ }
25
+ };
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Debounce function to reduce impact of resize event on performance
3
+ * @param {function} func - function to debounce
4
+ * @param {int} wait - timeout setting in ms
5
+ * @param {boolean} immediate - should it be immediate?
6
+ * @return {function} - timeout function ready for use
7
+ */
8
+ export function debounce(func, wait = 250, immediate = false) {
9
+ var timeout;
10
+ return function() {
11
+ var context = this, args = arguments;
12
+ var later = function() {
13
+ timeout = null;
14
+ if (!immediate) func.apply(context, args);
15
+ };
16
+ var callNow = immediate && !timeout;
17
+ clearTimeout(timeout);
18
+ timeout = setTimeout(later, wait);
19
+ if (callNow) func.apply(context, args);
20
+ };
21
+ }
22
+
23
+ /**
24
+ * Checker to see if device used is registering as a mobile/tablet
25
+ * or not.
26
+ * @returns {Boolean} - returns true if mobile/tablet, false otherwise
27
+ */
28
+ export function mobileAndTabletCheck() {
29
+ let check = false;
30
+ // eslint-disable-next-line no-useless-escape
31
+ (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);
32
+ return check;
33
+ }
34
+
35
+ /**
36
+ * Decoder for the string variable returned from vue-custom-element.
37
+ * Currently set up for returning as Numbers and Objects.
38
+ * @param {String} toDecode - string version of prop. Most likely passed through from custom-element.
39
+ * @returns {[String, Object, Number]} - returns in the type expected
40
+ */
41
+ export function decodeProp(toDecode = false) {
42
+ if (toDecode) {
43
+ const use = typeof toDecode === 'number' ? toDecode.toString() : toDecode.valueOf().replace(/'/g, '"');
44
+ if (use.indexOf('{') > -1) { return JSON.parse(use); }
45
+ else { return parseInt(use) ? parseInt(use) : use; }
46
+ }
47
+ else { console.error('decodeProp - ', 'The prop to decode is missing'); }
48
+ }
49
+
50
+ /**
51
+ * Remove placeholder ui inside the component
52
+ * @param {Object} component - the naked component
53
+ */
54
+ export function removePlaceholder(component) {
55
+ if (component) {
56
+ if (component.$slots && component.$slots.default && component.$slots.default.length > 0) {
57
+ component.$slots.default.forEach(slot => {
58
+
59
+ if (slot.data && slot.data.attrs && slot.data.attrs.id === 'placeholder') {
60
+
61
+ // using parentNode to support IE
62
+ let parentNode = slot.elm.parentNode;
63
+ parentNode.removeChild(slot.elm);
64
+ }
65
+ });
66
+ }
67
+ }
68
+ }
69
+
70
+ /**
71
+ * IE-friendly way to create a new event. Use `[elm].dispatchEvent('[eventName]')`
72
+ * to fire off the event on whatever is defined as the event target ([elm]).
73
+ * E.g `window.dispatchEvent('example-event');` will be listenable on the window object.
74
+ * @param {String} eventName - this is what to listen for (similar to 'click', 'scroll' etc)
75
+ * @return {Event} evt - will return an Event, including fallback for IE
76
+ */
77
+
78
+ export function createNewEvent(eventName) {
79
+ var evt;
80
+ if (typeof(Event) === 'function') {
81
+ evt = new Event(eventName);
82
+ } else {
83
+ evt = document.createEvent('Event');
84
+ evt.initEvent(eventName, true, true);
85
+ }
86
+ return evt;
87
+ }
88
+
89
+ /**
90
+ * Convert wine style code to a class name e.g DESSERT_FORTIFIED would be dessert-fortified
91
+ * and then can be used on a class like {{styleCode}}--background
92
+ * @param {Object} component - the naked component
93
+ */
94
+ export function convertStyleCodeToClassName(styleCode) {
95
+ if (styleCode) {
96
+ let styleLowercase = styleCode.toLowerCase(),
97
+ replaceUnderscores = styleLowercase.replace(/_/g, '-');
98
+
99
+ return replaceUnderscores;
100
+ } else {
101
+ return null;
102
+ }
103
+ }
104
+
105
+ /**
106
+ * makeGetRequest as used in Naked UI shared-methods
107
+ * @param {Object} params - Object to make get request with
108
+ * @returns {Promise} - returns promise to use
109
+ */
110
+ export function makeGetRequest({ url, headers }) {
111
+ return new Promise((resolve, reject) => {
112
+ headers = headers || {};
113
+ let csrf = {
114
+ key: window.nkd.settings.csrf.header || null,
115
+ val: window.nkd.settings.csrf.token || null,
116
+ };
117
+
118
+ // CSRF goodness
119
+ if (csrf.key && csrf.val) {
120
+ headers[csrf.key] = csrf.val;
121
+ } else {
122
+ reject({ error: 'missing CSRF headers' });
123
+ return;
124
+ }
125
+
126
+ let request = new Request(url, {
127
+ method: 'GET',
128
+ headers: headers,
129
+ cache: 'default',
130
+ credentials: 'include'
131
+ });
132
+
133
+ fetch(request)
134
+ .then(response => {
135
+ if (response.ok) {
136
+ // response.json fails if the body is empty
137
+ response.text().then(text => {
138
+ resolve(text ? JSON.parse(text) : {});
139
+ });
140
+ } else {
141
+ reject({ error: response.status });
142
+ }
143
+ })
144
+ .catch(error => {
145
+ reject({ error: error });
146
+ });
147
+ });
148
+ }
149
+
150
+ export const Logger = {
151
+ enabled: false,
152
+ log(message, data) {
153
+ if (location.hostname === 'localhost' || location.hostname === '127.0.0.1' || this.enabled) {
154
+ if (message) { console.log(`%c ${message} `, 'background: #EDF0F4; color: #0f70e8; border-radius: 6px;'); }
155
+ if (data) { console.log(data); }
156
+ }
157
+ },
158
+ };
159
+
160
+ export function formatNumberWithCommas(number) {
161
+ if ((number == null) || (typeof number != 'number')) {
162
+ return '0';
163
+ }
164
+
165
+ return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
166
+ }