@aotearoan/neon 22.3.0 → 22.4.1

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 (54) hide show
  1. package/dist/components/layout/swiper/NeonSwiper.cjs.js +1 -1
  2. package/dist/components/layout/swiper/NeonSwiper.cjs.js.map +1 -1
  3. package/dist/components/layout/swiper/NeonSwiper.es.js +27 -14
  4. package/dist/components/layout/swiper/NeonSwiper.es.js.map +1 -1
  5. package/dist/components/layout/swiper/NeonSwiper.vue.cjs.js +1 -1
  6. package/dist/components/layout/swiper/NeonSwiper.vue.cjs.js.map +1 -1
  7. package/dist/components/layout/swiper/NeonSwiper.vue.es.js +21 -16
  8. package/dist/components/layout/swiper/NeonSwiper.vue.es.js.map +1 -1
  9. package/dist/components/navigation/link/NeonLink.cjs.js +1 -1
  10. package/dist/components/navigation/link/NeonLink.cjs.js.map +1 -1
  11. package/dist/components/navigation/link/NeonLink.es.js +23 -22
  12. package/dist/components/navigation/link/NeonLink.es.js.map +1 -1
  13. package/dist/components/navigation/link/NeonLink.vue.cjs.js +1 -1
  14. package/dist/components/navigation/link/NeonLink.vue.cjs.js.map +1 -1
  15. package/dist/components/navigation/link/NeonLink.vue.es.js +14 -11
  16. package/dist/components/navigation/link/NeonLink.vue.es.js.map +1 -1
  17. package/dist/components/presentation/tabs/NeonTabs.cjs.js +1 -1
  18. package/dist/components/presentation/tabs/NeonTabs.cjs.js.map +1 -1
  19. package/dist/components/presentation/tabs/NeonTabs.es.js +35 -18
  20. package/dist/components/presentation/tabs/NeonTabs.es.js.map +1 -1
  21. package/dist/components/presentation/tabs/NeonTabs.vue.cjs.js +1 -1
  22. package/dist/components/presentation/tabs/NeonTabs.vue.cjs.js.map +1 -1
  23. package/dist/components/presentation/tabs/NeonTabs.vue.es.js +55 -42
  24. package/dist/components/presentation/tabs/NeonTabs.vue.es.js.map +1 -1
  25. package/dist/src/common/models/NeonTabModel.d.ts +2 -0
  26. package/dist/src/components/feedback/alert/NeonAlert.d.ts +1 -0
  27. package/dist/src/components/feedback/alert/container/NeonAlertContainer.d.ts +1 -0
  28. package/dist/src/components/feedback/dialog/NeonDialog.d.ts +6 -12
  29. package/dist/src/components/feedback/note/NeonNote.d.ts +9 -8
  30. package/dist/src/components/layout/card-list/NeonCardList.d.ts +4 -8
  31. package/dist/src/components/layout/modal/NeonModal.d.ts +1 -0
  32. package/dist/src/components/layout/swiper/NeonSwiper.d.ts +46 -0
  33. package/dist/src/components/navigation/action-menu/NeonActionMenu.d.ts +3 -6
  34. package/dist/src/components/navigation/dropdown-menu/NeonDropdownMenu.d.ts +7 -0
  35. package/dist/src/components/navigation/link/NeonLink.d.ts +1 -0
  36. package/dist/src/components/navigation/menu/NeonMenu.d.ts +8 -0
  37. package/dist/src/components/navigation/mobile-menu/NeonMobileMenu.d.ts +8 -0
  38. package/dist/src/components/navigation/tree-menu/NeonTreeMenu.d.ts +1 -0
  39. package/dist/src/components/presentation/badge/NeonBadge.d.ts +1 -0
  40. package/dist/src/components/presentation/dropdown/NeonDropdown.d.ts +8 -2
  41. package/dist/src/components/presentation/image-carousel/NeonImageCarousel.d.ts +2 -0
  42. package/dist/src/components/presentation/tabs/NeonTabs.d.ts +374 -0
  43. package/dist/src/components/user-input/button/NeonButton.d.ts +1 -0
  44. package/dist/src/components/user-input/date-picker/NeonDatePicker.d.ts +3 -0
  45. package/dist/src/components/user-input/file/NeonFile.d.ts +2 -4
  46. package/dist/src/components/user-input/filter-list/NeonFilterList.d.ts +1 -0
  47. package/dist/src/components/user-input/number/NeonNumber.d.ts +1 -0
  48. package/dist/src/components/user-input/search/NeonSearch.d.ts +30 -6
  49. package/dist/src/components/user-input/select/NeonSelect.d.ts +6 -0
  50. package/package.json +1 -1
  51. package/src/sass/components/_swiper.scss +91 -27
  52. package/src/sass/components/_tabs.scss +50 -30
  53. package/src/sass/includes/_dependencies.scss +1 -1
  54. package/src/sass/variables.scss +7 -3
@@ -1,2 +1,2 @@
1
- "use strict";const l=require("vue"),i=l.defineComponent({name:"NeonSwiper",props:{fade:{type:Boolean,default:!0}},setup(){const e=l.ref(null),t=l.ref(!1),n=l.ref(!1),a=l.ref(!1),r=()=>{e.value?(n.value=e.value.scrollLeft<=0,a.value=e.value.scrollLeft+e.value.clientWidth>e.value.scrollWidth-1):(n.value=!1,a.value=!1)},o=()=>{e.value?t.value=e.value.scrollWidth>e.value.clientWidth:t.value=!1,r()};return l.onMounted(()=>{var s;window.addEventListener("resize",o,{passive:!0}),(s=e.value)==null||s.addEventListener("scroll",r,{passive:!0}),o()}),l.onUnmounted(()=>{var s;window.removeEventListener("resize",o),(s=e.value)==null||s.removeEventListener("scroll",r)}),{isOverflowing:t,isScrollStart:n,isScrollEnd:a,scrollable:e}}});module.exports=i;
1
+ "use strict";const l=require("vue"),s=require("../../../common/enums/NeonOrientation.cjs.js"),v=l.defineComponent({name:"NeonSwiper",props:{fade:{type:Boolean,default:!0},orientation:{type:String,default:s.NeonOrientation.Horizontal},hideFadeStart:{type:Boolean,default:!1},hideFadeEnd:{type:Boolean,default:!1}},setup(u){const e=l.ref(null),n=l.ref(!1),a=l.ref(!1),o=l.ref(!1),i=()=>{e.value?u.orientation===s.NeonOrientation.Horizontal?(a.value=e.value.scrollLeft<=0,o.value=e.value.scrollLeft+e.value.clientWidth>e.value.scrollWidth-1):(a.value=e.value.scrollTop<=0,o.value=e.value.scrollTop+e.value.clientHeight>e.value.scrollHeight-1):(a.value=!1,o.value=!1)},r=()=>{e.value?u.orientation===s.NeonOrientation.Horizontal?n.value=e.value.scrollWidth>e.value.clientWidth:n.value=e.value.scrollHeight>e.value.clientHeight:n.value=!1,i()};return l.onMounted(()=>{var t;window.addEventListener("resize",r,{passive:!0}),(t=e.value)==null||t.addEventListener("scroll",i,{passive:!0}),r()}),l.onUnmounted(()=>{var t;window.removeEventListener("resize",r),(t=e.value)==null||t.removeEventListener("scroll",i)}),{isOverflowing:n,isScrollStart:a,isScrollEnd:o,scrollable:e}}});module.exports=v;
2
2
  //# sourceMappingURL=NeonSwiper.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NeonSwiper.cjs.js","sources":["../../../../src/components/layout/swiper/NeonSwiper.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { defineComponent, onMounted, onUnmounted, ref } from 'vue';\n\n/**\n * Automatically handle horizontally overflowing content by placing it in a NeonSwiper component allowing for smooth\n * horizontal scrolling with all input devices.\n */\nexport default defineComponent({\n name: 'NeonSwiper',\n props: {\n /**\n * Display fade in / fade out styling when there is an overflow.\n */\n fade: { type: Boolean, default: true },\n },\n setup() {\n const scrollable = ref<HTMLElement | null>(null);\n const isOverflowing = ref<boolean>(false);\n const isScrollStart = ref<boolean>(false);\n const isScrollEnd = ref<boolean>(false);\n\n const handleScroll = () => {\n if (scrollable.value) {\n isScrollStart.value = scrollable.value.scrollLeft <= 0;\n isScrollEnd.value =\n scrollable.value.scrollLeft + scrollable.value.clientWidth > scrollable.value.scrollWidth - 1;\n } else {\n isScrollStart.value = false;\n isScrollEnd.value = false;\n }\n };\n\n const handleResize = () => {\n if (scrollable.value) {\n isOverflowing.value = scrollable.value.scrollWidth > scrollable.value.clientWidth;\n } else {\n isOverflowing.value = false;\n }\n\n handleScroll();\n };\n\n onMounted(() => {\n window.addEventListener('resize', handleResize, { passive: true });\n scrollable.value?.addEventListener('scroll', handleScroll, { passive: true });\n handleResize();\n });\n\n onUnmounted(() => {\n window.removeEventListener('resize', handleResize);\n scrollable.value?.removeEventListener('scroll', handleScroll);\n });\n\n return {\n isOverflowing,\n isScrollStart,\n isScrollEnd,\n scrollable,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","scrollable","ref","isOverflowing","isScrollStart","isScrollEnd","handleScroll","handleResize","onMounted","_a","onUnmounted"],"mappings":"oCAMAA,EAAeC,kBAAgB,CAC7B,KAAM,aACN,MAAO,CAIL,KAAM,CAAE,KAAM,QAAS,QAAS,EAAA,CAAK,EAEvC,OAAQ,CACN,MAAMC,EAAaC,EAAAA,IAAwB,IAAI,EACzCC,EAAgBD,EAAAA,IAAa,EAAK,EAClCE,EAAgBF,EAAAA,IAAa,EAAK,EAClCG,EAAcH,EAAAA,IAAa,EAAK,EAEhCI,EAAe,IAAM,CACrBL,EAAW,OACbG,EAAc,MAAQH,EAAW,MAAM,YAAc,EACrDI,EAAY,MACVJ,EAAW,MAAM,WAAaA,EAAW,MAAM,YAAcA,EAAW,MAAM,YAAc,IAE9FG,EAAc,MAAQ,GACtBC,EAAY,MAAQ,GAExB,EAEME,EAAe,IAAM,CACrBN,EAAW,MACbE,EAAc,MAAQF,EAAW,MAAM,YAAcA,EAAW,MAAM,YAEtEE,EAAc,MAAQ,GAGxBG,EAAA,CACF,EAEAE,OAAAA,EAAAA,UAAU,IAAM,OACd,OAAO,iBAAiB,SAAUD,EAAc,CAAE,QAAS,GAAM,GACjEE,EAAAR,EAAW,QAAX,MAAAQ,EAAkB,iBAAiB,SAAUH,EAAc,CAAE,QAAS,KACtEC,EAAA,CACF,CAAC,EAEDG,EAAAA,YAAY,IAAM,OAChB,OAAO,oBAAoB,SAAUH,CAAY,GACjDE,EAAAR,EAAW,QAAX,MAAAQ,EAAkB,oBAAoB,SAAUH,EAClD,CAAC,EAEM,CACL,cAAAH,EACA,cAAAC,EACA,YAAAC,EACA,WAAAJ,CAAA,CAEJ,CACF,CAAC"}
1
+ {"version":3,"file":"NeonSwiper.cjs.js","sources":["../../../../src/components/layout/swiper/NeonSwiper.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { defineComponent, onMounted, onUnmounted, ref } from 'vue';\nimport { NeonOrientation } from '@/common/enums/NeonOrientation';\n\n/**\n * Automatically handle horizontally overflowing content by placing it in a NeonSwiper component allowing for smooth\n * horizontal scrolling with all input devices.\n */\nexport default defineComponent({\n name: 'NeonSwiper',\n props: {\n /**\n * Display fade in / fade out styling when there is an overflow.\n */\n fade: { type: Boolean, default: true },\n /**\n * Swiper orientation, i.e. whether to manage overflow horizontally or vertically.\n */\n orientation: { type: String as () => NeonOrientation, default: NeonOrientation.Horizontal },\n /**\n * Hide the starting fade (left or top depending on the orientation).\n */\n hideFadeStart: { type: Boolean, default: false },\n /**\n * Hide the ending fade (right or bottom depending on the orientation).\n */\n hideFadeEnd: { type: Boolean, default: false },\n },\n setup(props) {\n const scrollable = ref<HTMLElement | null>(null);\n const isOverflowing = ref<boolean>(false);\n const isScrollStart = ref<boolean>(false);\n const isScrollEnd = ref<boolean>(false);\n\n const handleScroll = () => {\n if (scrollable.value) {\n if (props.orientation === NeonOrientation.Horizontal) {\n isScrollStart.value = scrollable.value.scrollLeft <= 0;\n isScrollEnd.value =\n scrollable.value.scrollLeft + scrollable.value.clientWidth > scrollable.value.scrollWidth - 1;\n } else {\n isScrollStart.value = scrollable.value.scrollTop <= 0;\n isScrollEnd.value =\n scrollable.value.scrollTop + scrollable.value.clientHeight > scrollable.value.scrollHeight - 1;\n }\n } else {\n isScrollStart.value = false;\n isScrollEnd.value = false;\n }\n };\n\n const handleResize = () => {\n if (scrollable.value) {\n if (props.orientation === NeonOrientation.Horizontal) {\n isOverflowing.value = scrollable.value.scrollWidth > scrollable.value.clientWidth;\n } else {\n isOverflowing.value = scrollable.value.scrollHeight > scrollable.value.clientHeight;\n }\n } else {\n isOverflowing.value = false;\n }\n\n handleScroll();\n };\n\n onMounted(() => {\n window.addEventListener('resize', handleResize, { passive: true });\n scrollable.value?.addEventListener('scroll', handleScroll, { passive: true });\n handleResize();\n });\n\n onUnmounted(() => {\n window.removeEventListener('resize', handleResize);\n scrollable.value?.removeEventListener('scroll', handleScroll);\n });\n\n return {\n isOverflowing,\n isScrollStart,\n isScrollEnd,\n scrollable,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonOrientation","props","scrollable","ref","isOverflowing","isScrollStart","isScrollEnd","handleScroll","handleResize","onMounted","_a","onUnmounted"],"mappings":"8FAOAA,EAAeC,kBAAgB,CAC7B,KAAM,aACN,MAAO,CAIL,KAAM,CAAE,KAAM,QAAS,QAAS,EAAA,EAIhC,YAAa,CAAE,KAAM,OAAiC,QAASC,EAAAA,gBAAgB,UAAA,EAI/E,cAAe,CAAE,KAAM,QAAS,QAAS,EAAA,EAIzC,YAAa,CAAE,KAAM,QAAS,QAAS,EAAA,CAAM,EAE/C,MAAMC,EAAO,CACX,MAAMC,EAAaC,EAAAA,IAAwB,IAAI,EACzCC,EAAgBD,EAAAA,IAAa,EAAK,EAClCE,EAAgBF,EAAAA,IAAa,EAAK,EAClCG,EAAcH,EAAAA,IAAa,EAAK,EAEhCI,EAAe,IAAM,CACrBL,EAAW,MACTD,EAAM,cAAgBD,EAAAA,gBAAgB,YACxCK,EAAc,MAAQH,EAAW,MAAM,YAAc,EACrDI,EAAY,MACVJ,EAAW,MAAM,WAAaA,EAAW,MAAM,YAAcA,EAAW,MAAM,YAAc,IAE9FG,EAAc,MAAQH,EAAW,MAAM,WAAa,EACpDI,EAAY,MACVJ,EAAW,MAAM,UAAYA,EAAW,MAAM,aAAeA,EAAW,MAAM,aAAe,IAGjGG,EAAc,MAAQ,GACtBC,EAAY,MAAQ,GAExB,EAEME,EAAe,IAAM,CACrBN,EAAW,MACTD,EAAM,cAAgBD,EAAAA,gBAAgB,WACxCI,EAAc,MAAQF,EAAW,MAAM,YAAcA,EAAW,MAAM,YAEtEE,EAAc,MAAQF,EAAW,MAAM,aAAeA,EAAW,MAAM,aAGzEE,EAAc,MAAQ,GAGxBG,EAAA,CACF,EAEAE,OAAAA,EAAAA,UAAU,IAAM,OACd,OAAO,iBAAiB,SAAUD,EAAc,CAAE,QAAS,GAAM,GACjEE,EAAAR,EAAW,QAAX,MAAAQ,EAAkB,iBAAiB,SAAUH,EAAc,CAAE,QAAS,KACtEC,EAAA,CACF,CAAC,EAEDG,EAAAA,YAAY,IAAM,OAChB,OAAO,oBAAoB,SAAUH,CAAY,GACjDE,EAAAR,EAAW,QAAX,MAAAQ,EAAkB,oBAAoB,SAAUH,EAClD,CAAC,EAEM,CACL,cAAAH,EACA,cAAAC,EACA,YAAAC,EACA,WAAAJ,CAAA,CAEJ,CACF,CAAC"}
@@ -1,33 +1,46 @@
1
- import { defineComponent as i, ref as s, onMounted as u, onUnmounted as v } from "vue";
2
- const d = i({
1
+ import { defineComponent as v, ref as n, onMounted as d, onUnmounted as c } from "vue";
2
+ import { NeonOrientation as r } from "../../../common/enums/NeonOrientation.es.js";
3
+ const h = v({
3
4
  name: "NeonSwiper",
4
5
  props: {
5
6
  /**
6
7
  * Display fade in / fade out styling when there is an overflow.
7
8
  */
8
- fade: { type: Boolean, default: !0 }
9
+ fade: { type: Boolean, default: !0 },
10
+ /**
11
+ * Swiper orientation, i.e. whether to manage overflow horizontally or vertically.
12
+ */
13
+ orientation: { type: String, default: r.Horizontal },
14
+ /**
15
+ * Hide the starting fade (left or top depending on the orientation).
16
+ */
17
+ hideFadeStart: { type: Boolean, default: !1 },
18
+ /**
19
+ * Hide the ending fade (right or bottom depending on the orientation).
20
+ */
21
+ hideFadeEnd: { type: Boolean, default: !1 }
9
22
  },
10
- setup() {
11
- const e = s(null), t = s(!1), a = s(!1), n = s(!1), o = () => {
12
- e.value ? (a.value = e.value.scrollLeft <= 0, n.value = e.value.scrollLeft + e.value.clientWidth > e.value.scrollWidth - 1) : (a.value = !1, n.value = !1);
13
- }, r = () => {
14
- e.value ? t.value = e.value.scrollWidth > e.value.clientWidth : t.value = !1, o();
23
+ setup(u) {
24
+ const e = n(null), t = n(!1), a = n(!1), o = n(!1), i = () => {
25
+ e.value ? u.orientation === r.Horizontal ? (a.value = e.value.scrollLeft <= 0, o.value = e.value.scrollLeft + e.value.clientWidth > e.value.scrollWidth - 1) : (a.value = e.value.scrollTop <= 0, o.value = e.value.scrollTop + e.value.clientHeight > e.value.scrollHeight - 1) : (a.value = !1, o.value = !1);
26
+ }, s = () => {
27
+ e.value ? u.orientation === r.Horizontal ? t.value = e.value.scrollWidth > e.value.clientWidth : t.value = e.value.scrollHeight > e.value.clientHeight : t.value = !1, i();
15
28
  };
16
- return u(() => {
29
+ return d(() => {
17
30
  var l;
18
- window.addEventListener("resize", r, { passive: !0 }), (l = e.value) == null || l.addEventListener("scroll", o, { passive: !0 }), r();
19
- }), v(() => {
31
+ window.addEventListener("resize", s, { passive: !0 }), (l = e.value) == null || l.addEventListener("scroll", i, { passive: !0 }), s();
32
+ }), c(() => {
20
33
  var l;
21
- window.removeEventListener("resize", r), (l = e.value) == null || l.removeEventListener("scroll", o);
34
+ window.removeEventListener("resize", s), (l = e.value) == null || l.removeEventListener("scroll", i);
22
35
  }), {
23
36
  isOverflowing: t,
24
37
  isScrollStart: a,
25
- isScrollEnd: n,
38
+ isScrollEnd: o,
26
39
  scrollable: e
27
40
  };
28
41
  }
29
42
  });
30
43
  export {
31
- d as default
44
+ h as default
32
45
  };
33
46
  //# sourceMappingURL=NeonSwiper.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NeonSwiper.es.js","sources":["../../../../src/components/layout/swiper/NeonSwiper.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { defineComponent, onMounted, onUnmounted, ref } from 'vue';\n\n/**\n * Automatically handle horizontally overflowing content by placing it in a NeonSwiper component allowing for smooth\n * horizontal scrolling with all input devices.\n */\nexport default defineComponent({\n name: 'NeonSwiper',\n props: {\n /**\n * Display fade in / fade out styling when there is an overflow.\n */\n fade: { type: Boolean, default: true },\n },\n setup() {\n const scrollable = ref<HTMLElement | null>(null);\n const isOverflowing = ref<boolean>(false);\n const isScrollStart = ref<boolean>(false);\n const isScrollEnd = ref<boolean>(false);\n\n const handleScroll = () => {\n if (scrollable.value) {\n isScrollStart.value = scrollable.value.scrollLeft <= 0;\n isScrollEnd.value =\n scrollable.value.scrollLeft + scrollable.value.clientWidth > scrollable.value.scrollWidth - 1;\n } else {\n isScrollStart.value = false;\n isScrollEnd.value = false;\n }\n };\n\n const handleResize = () => {\n if (scrollable.value) {\n isOverflowing.value = scrollable.value.scrollWidth > scrollable.value.clientWidth;\n } else {\n isOverflowing.value = false;\n }\n\n handleScroll();\n };\n\n onMounted(() => {\n window.addEventListener('resize', handleResize, { passive: true });\n scrollable.value?.addEventListener('scroll', handleScroll, { passive: true });\n handleResize();\n });\n\n onUnmounted(() => {\n window.removeEventListener('resize', handleResize);\n scrollable.value?.removeEventListener('scroll', handleScroll);\n });\n\n return {\n isOverflowing,\n isScrollStart,\n isScrollEnd,\n scrollable,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","scrollable","ref","isOverflowing","isScrollStart","isScrollEnd","handleScroll","handleResize","onMounted","_a","onUnmounted"],"mappings":";AAMA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA,EAAK;AAAA,EAEvC,QAAQ;AACN,UAAMC,IAAaC,EAAwB,IAAI,GACzCC,IAAgBD,EAAa,EAAK,GAClCE,IAAgBF,EAAa,EAAK,GAClCG,IAAcH,EAAa,EAAK,GAEhCI,IAAe,MAAM;AACzB,MAAIL,EAAW,SACbG,EAAc,QAAQH,EAAW,MAAM,cAAc,GACrDI,EAAY,QACVJ,EAAW,MAAM,aAAaA,EAAW,MAAM,cAAcA,EAAW,MAAM,cAAc,MAE9FG,EAAc,QAAQ,IACtBC,EAAY,QAAQ;AAAA,IAExB,GAEME,IAAe,MAAM;AACzB,MAAIN,EAAW,QACbE,EAAc,QAAQF,EAAW,MAAM,cAAcA,EAAW,MAAM,cAEtEE,EAAc,QAAQ,IAGxBG,EAAA;AAAA,IACF;AAEA,WAAAE,EAAU,MAAM;;AACd,aAAO,iBAAiB,UAAUD,GAAc,EAAE,SAAS,IAAM,IACjEE,IAAAR,EAAW,UAAX,QAAAQ,EAAkB,iBAAiB,UAAUH,GAAc,EAAE,SAAS,OACtEC,EAAA;AAAA,IACF,CAAC,GAEDG,EAAY,MAAM;;AAChB,aAAO,oBAAoB,UAAUH,CAAY,IACjDE,IAAAR,EAAW,UAAX,QAAAQ,EAAkB,oBAAoB,UAAUH;AAAA,IAClD,CAAC,GAEM;AAAA,MACL,eAAAH;AAAA,MACA,eAAAC;AAAA,MACA,aAAAC;AAAA,MACA,YAAAJ;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;"}
1
+ {"version":3,"file":"NeonSwiper.es.js","sources":["../../../../src/components/layout/swiper/NeonSwiper.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { defineComponent, onMounted, onUnmounted, ref } from 'vue';\nimport { NeonOrientation } from '@/common/enums/NeonOrientation';\n\n/**\n * Automatically handle horizontally overflowing content by placing it in a NeonSwiper component allowing for smooth\n * horizontal scrolling with all input devices.\n */\nexport default defineComponent({\n name: 'NeonSwiper',\n props: {\n /**\n * Display fade in / fade out styling when there is an overflow.\n */\n fade: { type: Boolean, default: true },\n /**\n * Swiper orientation, i.e. whether to manage overflow horizontally or vertically.\n */\n orientation: { type: String as () => NeonOrientation, default: NeonOrientation.Horizontal },\n /**\n * Hide the starting fade (left or top depending on the orientation).\n */\n hideFadeStart: { type: Boolean, default: false },\n /**\n * Hide the ending fade (right or bottom depending on the orientation).\n */\n hideFadeEnd: { type: Boolean, default: false },\n },\n setup(props) {\n const scrollable = ref<HTMLElement | null>(null);\n const isOverflowing = ref<boolean>(false);\n const isScrollStart = ref<boolean>(false);\n const isScrollEnd = ref<boolean>(false);\n\n const handleScroll = () => {\n if (scrollable.value) {\n if (props.orientation === NeonOrientation.Horizontal) {\n isScrollStart.value = scrollable.value.scrollLeft <= 0;\n isScrollEnd.value =\n scrollable.value.scrollLeft + scrollable.value.clientWidth > scrollable.value.scrollWidth - 1;\n } else {\n isScrollStart.value = scrollable.value.scrollTop <= 0;\n isScrollEnd.value =\n scrollable.value.scrollTop + scrollable.value.clientHeight > scrollable.value.scrollHeight - 1;\n }\n } else {\n isScrollStart.value = false;\n isScrollEnd.value = false;\n }\n };\n\n const handleResize = () => {\n if (scrollable.value) {\n if (props.orientation === NeonOrientation.Horizontal) {\n isOverflowing.value = scrollable.value.scrollWidth > scrollable.value.clientWidth;\n } else {\n isOverflowing.value = scrollable.value.scrollHeight > scrollable.value.clientHeight;\n }\n } else {\n isOverflowing.value = false;\n }\n\n handleScroll();\n };\n\n onMounted(() => {\n window.addEventListener('resize', handleResize, { passive: true });\n scrollable.value?.addEventListener('scroll', handleScroll, { passive: true });\n handleResize();\n });\n\n onUnmounted(() => {\n window.removeEventListener('resize', handleResize);\n scrollable.value?.removeEventListener('scroll', handleScroll);\n });\n\n return {\n isOverflowing,\n isScrollStart,\n isScrollEnd,\n scrollable,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonOrientation","props","scrollable","ref","isOverflowing","isScrollStart","isScrollEnd","handleScroll","handleResize","onMounted","_a","onUnmounted"],"mappings":";;AAOA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA;AAAA;AAAA;AAAA,IAIhC,aAAa,EAAE,MAAM,QAAiC,SAASC,EAAgB,WAAA;AAAA;AAAA;AAAA;AAAA,IAI/E,eAAe,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA;AAAA;AAAA;AAAA,IAIzC,aAAa,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA,EAAM;AAAA,EAE/C,MAAMC,GAAO;AACX,UAAMC,IAAaC,EAAwB,IAAI,GACzCC,IAAgBD,EAAa,EAAK,GAClCE,IAAgBF,EAAa,EAAK,GAClCG,IAAcH,EAAa,EAAK,GAEhCI,IAAe,MAAM;AACzB,MAAIL,EAAW,QACTD,EAAM,gBAAgBD,EAAgB,cACxCK,EAAc,QAAQH,EAAW,MAAM,cAAc,GACrDI,EAAY,QACVJ,EAAW,MAAM,aAAaA,EAAW,MAAM,cAAcA,EAAW,MAAM,cAAc,MAE9FG,EAAc,QAAQH,EAAW,MAAM,aAAa,GACpDI,EAAY,QACVJ,EAAW,MAAM,YAAYA,EAAW,MAAM,eAAeA,EAAW,MAAM,eAAe,MAGjGG,EAAc,QAAQ,IACtBC,EAAY,QAAQ;AAAA,IAExB,GAEME,IAAe,MAAM;AACzB,MAAIN,EAAW,QACTD,EAAM,gBAAgBD,EAAgB,aACxCI,EAAc,QAAQF,EAAW,MAAM,cAAcA,EAAW,MAAM,cAEtEE,EAAc,QAAQF,EAAW,MAAM,eAAeA,EAAW,MAAM,eAGzEE,EAAc,QAAQ,IAGxBG,EAAA;AAAA,IACF;AAEA,WAAAE,EAAU,MAAM;;AACd,aAAO,iBAAiB,UAAUD,GAAc,EAAE,SAAS,IAAM,IACjEE,IAAAR,EAAW,UAAX,QAAAQ,EAAkB,iBAAiB,UAAUH,GAAc,EAAE,SAAS,OACtEC,EAAA;AAAA,IACF,CAAC,GAEDG,EAAY,MAAM;;AAChB,aAAO,oBAAoB,UAAUH,CAAY,IACjDE,IAAAR,EAAW,UAAX,QAAAQ,EAAkB,oBAAoB,UAAUH;AAAA,IAClD,CAAC,GAEM;AAAA,MACL,eAAAH;AAAA,MACA,eAAAC;AAAA,MACA,aAAAC;AAAA,MACA,YAAAJ;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;"}
@@ -1,2 +1,2 @@
1
- "use strict";const s=require("./NeonSwiper.cjs.js"),e=require("vue"),o=require("../../../_virtual/_plugin-vue_export-helper.cjs.js"),t={ref:"scrollable",class:"neon-swiper__container"};function i(r,n,p,a,c,d){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([{"neon-swiper--fade":r.fade,"neon-swiper--overflowing":r.isOverflowing,"neon-swiper--start":r.isScrollStart,"neon-swiper--end":r.isScrollEnd},"neon-swiper"])},[e.createElementVNode("div",t,[e.renderSlot(r.$slots,"default")],512),n[0]||(n[0]=e.createElementVNode("div",{class:"neon-swiper__fade-out"},null,-1))],2)}const l=o(s,[["render",i]]);module.exports=l;
1
+ "use strict";const o=require("./NeonSwiper.cjs.js"),n=require("vue"),s=require("../../../_virtual/_plugin-vue_export-helper.cjs.js"),i={ref:"scrollable",class:"neon-swiper__container"};function t(e,r,d,a,p,u){return n.openBlock(),n.createElementBlock("div",{class:n.normalizeClass([[`neon-swiper--${e.orientation}`,{"neon-swiper--fade":e.fade,"neon-swiper--overflowing":e.isOverflowing,"neon-swiper--start":e.isScrollStart,"neon-swiper--end":e.isScrollEnd,"neon-swiper--hide-fade-start":e.hideFadeStart,"neon-swiper--hide-fade-end":e.hideFadeEnd}],"neon-swiper"])},[n.createElementVNode("div",i,[n.renderSlot(e.$slots,"default")],512),r[0]||(r[0]=n.createElementVNode("div",{class:"neon-swiper__fade-out"},null,-1))],2)}const l=s(o,[["render",t]]);module.exports=l;
2
2
  //# sourceMappingURL=NeonSwiper.vue.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NeonSwiper.vue.cjs.js","sources":["../../../../src/components/layout/swiper/NeonSwiper.vue"],"sourcesContent":["<template>\n <div\n :class=\"{\n 'neon-swiper--fade': fade,\n 'neon-swiper--overflowing': isOverflowing,\n 'neon-swiper--start': isScrollStart,\n 'neon-swiper--end': isScrollEnd,\n }\"\n class=\"neon-swiper\"\n >\n <div ref=\"scrollable\" class=\"neon-swiper__container\">\n <!-- @slot contents of swiper with which to apply overflow scrolling. -->\n <slot></slot>\n </div>\n <div class=\"neon-swiper__fade-out\"></div>\n </div>\n</template>\n\n<script lang=\"ts\" src=\"./NeonSwiper.ts\"></script>\n"],"names":["_createElementBlock","_normalizeClass","_ctx","_createElementVNode","_hoisted_1","_renderSlot"],"mappings":"wIAUS,IAAI,aAAa,MAAM,uEAT9BA,EAAAA,mBAcM,MAAA,CAbH,MAAKC,EAAAA,eAAA,CAAA,qBAA+BC,EAAA,gCAAwCA,EAAA,mCAA2CA,EAAA,iCAAyCA,EAAA,aAM3J,aAAa,CAAA,IAEnBC,EAAAA,mBAGM,MAHNC,EAGM,CADJC,aAAaH,EAAA,OAAA,SAAA,oBAEfC,EAAAA,mBAAyC,MAAA,CAApC,MAAM,yBAAuB,KAAA,EAAA"}
1
+ {"version":3,"file":"NeonSwiper.vue.cjs.js","sources":["../../../../src/components/layout/swiper/NeonSwiper.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n `neon-swiper--${orientation}`,\n {\n 'neon-swiper--fade': fade,\n 'neon-swiper--overflowing': isOverflowing,\n 'neon-swiper--start': isScrollStart,\n 'neon-swiper--end': isScrollEnd,\n 'neon-swiper--hide-fade-start': hideFadeStart,\n 'neon-swiper--hide-fade-end': hideFadeEnd,\n },\n ]\"\n class=\"neon-swiper\"\n >\n <div ref=\"scrollable\" class=\"neon-swiper__container\">\n <!-- @slot contents of swiper with which to apply overflow scrolling. -->\n <slot></slot>\n </div>\n <div class=\"neon-swiper__fade-out\"></div>\n </div>\n</template>\n\n<script lang=\"ts\" src=\"./NeonSwiper.ts\"></script>\n"],"names":["_createElementBlock","_normalizeClass","_ctx","_createElementVNode","_hoisted_1","_renderSlot"],"mappings":"wIAeS,IAAI,aAAa,MAAM,uEAd9BA,EAAAA,mBAmBM,MAAA,CAlBH,MAAKC,EAAAA,eAAA,CAAA,iBAA0BC,EAAA,WAAW,wBAAyCA,EAAA,gCAA0CA,EAAA,mCAA6CA,EAAA,iCAA2CA,EAAA,2CAAqDA,EAAA,2CAAqDA,EAAA,cAW1T,aAAa,CAAA,IAEnBC,EAAAA,mBAGM,MAHNC,EAGM,CADJC,aAAaH,EAAA,OAAA,SAAA,oBAEfC,EAAAA,mBAAyC,MAAA,CAApC,MAAM,yBAAuB,KAAA,EAAA"}
@@ -1,27 +1,32 @@
1
- import n from "./NeonSwiper.es.js";
2
- import { openBlock as s, createElementBlock as i, normalizeClass as l, createElementVNode as r, renderSlot as t } from "vue";
3
- import a from "../../../_virtual/_plugin-vue_export-helper.es.js";
4
- const p = {
1
+ import r from "./NeonSwiper.es.js";
2
+ import { openBlock as s, createElementBlock as i, normalizeClass as a, createElementVNode as o, renderSlot as d } from "vue";
3
+ import t from "../../../_virtual/_plugin-vue_export-helper.es.js";
4
+ const l = {
5
5
  ref: "scrollable",
6
6
  class: "neon-swiper__container"
7
7
  };
8
- function d(e, o, f, c, m, w) {
8
+ function p(e, n, f, w, m, c) {
9
9
  return s(), i("div", {
10
- class: l([{
11
- "neon-swiper--fade": e.fade,
12
- "neon-swiper--overflowing": e.isOverflowing,
13
- "neon-swiper--start": e.isScrollStart,
14
- "neon-swiper--end": e.isScrollEnd
15
- }, "neon-swiper"])
10
+ class: a([[
11
+ `neon-swiper--${e.orientation}`,
12
+ {
13
+ "neon-swiper--fade": e.fade,
14
+ "neon-swiper--overflowing": e.isOverflowing,
15
+ "neon-swiper--start": e.isScrollStart,
16
+ "neon-swiper--end": e.isScrollEnd,
17
+ "neon-swiper--hide-fade-start": e.hideFadeStart,
18
+ "neon-swiper--hide-fade-end": e.hideFadeEnd
19
+ }
20
+ ], "neon-swiper"])
16
21
  }, [
17
- r("div", p, [
18
- t(e.$slots, "default")
22
+ o("div", l, [
23
+ d(e.$slots, "default")
19
24
  ], 512),
20
- o[0] || (o[0] = r("div", { class: "neon-swiper__fade-out" }, null, -1))
25
+ n[0] || (n[0] = o("div", { class: "neon-swiper__fade-out" }, null, -1))
21
26
  ], 2);
22
27
  }
23
- const S = /* @__PURE__ */ a(n, [["render", d]]);
28
+ const v = /* @__PURE__ */ t(r, [["render", p]]);
24
29
  export {
25
- S as default
30
+ v as default
26
31
  };
27
32
  //# sourceMappingURL=NeonSwiper.vue.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NeonSwiper.vue.es.js","sources":["../../../../src/components/layout/swiper/NeonSwiper.vue"],"sourcesContent":["<template>\n <div\n :class=\"{\n 'neon-swiper--fade': fade,\n 'neon-swiper--overflowing': isOverflowing,\n 'neon-swiper--start': isScrollStart,\n 'neon-swiper--end': isScrollEnd,\n }\"\n class=\"neon-swiper\"\n >\n <div ref=\"scrollable\" class=\"neon-swiper__container\">\n <!-- @slot contents of swiper with which to apply overflow scrolling. -->\n <slot></slot>\n </div>\n <div class=\"neon-swiper__fade-out\"></div>\n </div>\n</template>\n\n<script lang=\"ts\" src=\"./NeonSwiper.ts\"></script>\n"],"names":["_createElementBlock","_normalizeClass","_ctx","_createElementVNode","_hoisted_1","_renderSlot"],"mappings":";;;;EAUS,KAAI;AAAA,EAAa,OAAM;;;cAT9BA,EAcM,OAAA;AAAA,IAbH,OAAKC,EAAA,CAAA;AAAA,2BAA+BC,EAAA;AAAA,kCAAwCA,EAAA;AAAA,4BAA2CA,EAAA;AAAA,0BAAyCA,EAAA;AAAA,OAM3J,aAAa,CAAA;AAAA;IAEnBC,EAGM,OAHNC,GAGM;AAAA,MADJC,EAAaH,EAAA,QAAA,SAAA;AAAA;oBAEfC,EAAyC,OAAA,EAApC,OAAM,2BAAuB,MAAA,EAAA;AAAA;;;"}
1
+ {"version":3,"file":"NeonSwiper.vue.es.js","sources":["../../../../src/components/layout/swiper/NeonSwiper.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n `neon-swiper--${orientation}`,\n {\n 'neon-swiper--fade': fade,\n 'neon-swiper--overflowing': isOverflowing,\n 'neon-swiper--start': isScrollStart,\n 'neon-swiper--end': isScrollEnd,\n 'neon-swiper--hide-fade-start': hideFadeStart,\n 'neon-swiper--hide-fade-end': hideFadeEnd,\n },\n ]\"\n class=\"neon-swiper\"\n >\n <div ref=\"scrollable\" class=\"neon-swiper__container\">\n <!-- @slot contents of swiper with which to apply overflow scrolling. -->\n <slot></slot>\n </div>\n <div class=\"neon-swiper__fade-out\"></div>\n </div>\n</template>\n\n<script lang=\"ts\" src=\"./NeonSwiper.ts\"></script>\n"],"names":["_createElementBlock","_normalizeClass","_ctx","_createElementVNode","_hoisted_1","_renderSlot"],"mappings":";;;;EAeS,KAAI;AAAA,EAAa,OAAM;;;cAd9BA,EAmBM,OAAA;AAAA,IAlBH,OAAKC,EAAA,CAAA;AAAA,sBAA0BC,EAAA,WAAW;AAAA;6BAAyCA,EAAA;AAAA,oCAA0CA,EAAA;AAAA,8BAA6CA,EAAA;AAAA,4BAA2CA,EAAA;AAAA,wCAAqDA,EAAA;AAAA,sCAAqDA,EAAA;AAAA;OAW1T,aAAa,CAAA;AAAA;IAEnBC,EAGM,OAHNC,GAGM;AAAA,MADJC,EAAaH,EAAA,QAAA,SAAA;AAAA;oBAEfC,EAAyC,OAAA,EAApC,OAAM,2BAAuB,MAAA,EAAA;AAAA;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";const t=require("vue"),m=require("../../../common/enums/NeonOutlineStyle.cjs.js"),y=require("../../presentation/icon/NeonIcon.vue.cjs.js"),l=require("vue-router"),S=t.defineComponent({name:"NeonLink",components:{NeonIcon:y},props:{href:{type:String,default:null},noStyle:{type:Boolean,default:!1},outlineStyle:{type:String,default:m.NeonOutlineStyle.Text},externalIndicator:{type:Boolean,default:!1}},emits:["click"],setup(e,{emit:r}){const s=t.useAttrs(),a=l.useRouter(),o=l.useRoute(),u=t.computed(()=>{var n;return((n=e.href)==null?void 0:n.indexOf("/"))===0?e.href:void 0}),c=t.computed(()=>e.href&&e.href.indexOf(o.fullPath)===0),f=t.computed(()=>c.value&&e.href===o.fullPath),d=t.computed(()=>{const{onClick:n,...h}=s;return h}),i=()=>{r("click")};return{routerUrl:u,sanitizedAttributes:d,activeRoute:c,exactRoute:f,onClick:i,onSpace:async()=>{i(),u.value?await a.push(e.href):e.href&&window.location.replace(e.href)}}}});module.exports=S;
1
+ "use strict";const t=require("vue"),S=require("../../../common/enums/NeonOutlineStyle.cjs.js"),v=require("../../presentation/icon/NeonIcon.vue.cjs.js"),r=require("vue-router"),x=t.defineComponent({name:"NeonLink",components:{NeonIcon:v},props:{href:{type:String,default:null},noStyle:{type:Boolean,default:!1},outlineStyle:{type:String,default:S.NeonOutlineStyle.Text},externalIndicator:{type:Boolean,default:!1}},emits:["click"],setup(e,{emit:s,expose:a}){const o=t.ref(null),f=t.useAttrs(),d=r.useRouter(),u=r.useRoute(),c=t.computed(()=>{var n;return((n=e.href)==null?void 0:n.indexOf("/"))===0?e.href:void 0}),i=t.computed(()=>e.href&&e.href.indexOf(u.fullPath)===0),h=t.computed(()=>i.value&&e.href===u.fullPath),m=t.computed(()=>{const{onClick:n,...k}=f;return k}),l=()=>{s("click")},y=async()=>{l(),c.value?await d.push(e.href):e.href&&window.location.replace(e.href)};return a({neonLink:o}),{neonLink:o,routerUrl:c,sanitizedAttributes:m,activeRoute:i,exactRoute:h,onClick:l,onSpace:y}}});module.exports=x;
2
2
  //# sourceMappingURL=NeonLink.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NeonLink.cjs.js","sources":["../../../../src/components/navigation/link/NeonLink.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { computed, defineComponent, useAttrs } from 'vue';\nimport { NeonOutlineStyle } from '@/common/enums/NeonOutlineStyle';\nimport NeonIcon from '@/components/presentation/icon/NeonIcon.vue';\nimport { useRoute, useRouter } from 'vue-router';\n\n/**\n * An HTML anchor component which handles VueRouter links (internal), href links (external) and clickable links (no href).\n */\nexport default defineComponent({\n name: 'NeonLink',\n components: {\n NeonIcon,\n },\n props: {\n /**\n * The href of the link, this can be an internal (relative or absolute) or an external link.\n */\n href: { type: String, default: null },\n /**\n * set to true if you would like a completely unstyled link. This is useful for creating a complex component which may use NeonLink.\n */\n noStyle: { type: Boolean, default: false },\n /**\n * Style of the outline to use when the link has focus, use <em>text</em> for wrapping text content and\n * <em>border</em> for tooltips wrapping \"block\" elements, e.g. buttons.\n */\n outlineStyle: { type: String as () => NeonOutlineStyle, default: NeonOutlineStyle.Text },\n /**\n * Display an external link icon to the right of the link indicating clicking it will take the user to another site.\n */\n externalIndicator: { type: Boolean, default: false },\n },\n emits: [\n /**\n * Emitted when the user triggers the link by clicking on it or hitting Enter or Space when the link has focus.\n * @type {void}\n */\n 'click',\n ],\n setup(props, { emit }) {\n const attrs = useAttrs();\n const router = useRouter();\n const route = useRoute();\n const routerUrl = computed(() => (props.href?.indexOf('/') === 0 ? props.href : undefined));\n\n const activeRoute = computed(() => props.href && props.href.indexOf(route.fullPath) === 0);\n const exactRoute = computed(() => activeRoute.value && props.href === route.fullPath);\n\n const sanitizedAttributes = computed(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { onClick, ...sanitized } = attrs;\n return sanitized;\n });\n\n const onClick = () => {\n emit('click');\n };\n\n const onSpace = async () => {\n onClick();\n\n if (routerUrl.value) {\n await router.push(props.href);\n } else if (props.href) {\n window.location.replace(props.href);\n }\n };\n\n return {\n routerUrl,\n sanitizedAttributes,\n activeRoute,\n exactRoute,\n onClick,\n onSpace,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonIcon","NeonOutlineStyle","props","emit","attrs","useAttrs","router","useRouter","route","useRoute","routerUrl","computed","_a","activeRoute","exactRoute","sanitizedAttributes","onClick","sanitized"],"mappings":"gLAQAA,EAAeC,kBAAgB,CAC7B,KAAM,WACN,WAAY,CACV,SAAAC,CAAA,EAEF,MAAO,CAIL,KAAM,CAAE,KAAM,OAAQ,QAAS,IAAA,EAI/B,QAAS,CAAE,KAAM,QAAS,QAAS,EAAA,EAKnC,aAAc,CAAE,KAAM,OAAkC,QAASC,EAAAA,iBAAiB,IAAA,EAIlF,kBAAmB,CAAE,KAAM,QAAS,QAAS,EAAA,CAAM,EAErD,MAAO,CAKL,OAAA,EAEF,MAAMC,EAAO,CAAE,KAAAC,GAAQ,CACrB,MAAMC,EAAQC,EAAAA,SAAA,EACRC,EAASC,EAAAA,UAAA,EACTC,EAAQC,EAAAA,SAAA,EACRC,EAAYC,EAAAA,SAAS,IAAA,OAAO,QAAAC,EAAAV,EAAM,OAAN,YAAAU,EAAY,QAAQ,QAAS,EAAIV,EAAM,KAAO,OAAU,EAEpFW,EAAcF,EAAAA,SAAS,IAAMT,EAAM,MAAQA,EAAM,KAAK,QAAQM,EAAM,QAAQ,IAAM,CAAC,EACnFM,EAAaH,EAAAA,SAAS,IAAME,EAAY,OAASX,EAAM,OAASM,EAAM,QAAQ,EAE9EO,EAAsBJ,EAAAA,SAAS,IAAM,CAEzC,KAAM,CAAE,QAAAK,EAAS,GAAGC,GAAcb,EAClC,OAAOa,CACT,CAAC,EAEKD,EAAU,IAAM,CACpBb,EAAK,OAAO,CACd,EAYA,MAAO,CACL,UAAAO,EACA,oBAAAK,EACA,YAAAF,EACA,WAAAC,EACA,QAAAE,EACA,QAhBc,SAAY,CAC1BA,EAAA,EAEIN,EAAU,MACZ,MAAMJ,EAAO,KAAKJ,EAAM,IAAI,EACnBA,EAAM,MACf,OAAO,SAAS,QAAQA,EAAM,IAAI,CAEtC,CAQE,CAEJ,CACF,CAAC"}
1
+ {"version":3,"file":"NeonLink.cjs.js","sources":["../../../../src/components/navigation/link/NeonLink.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { computed, defineComponent, ref, useAttrs } from 'vue';\nimport { NeonOutlineStyle } from '@/common/enums/NeonOutlineStyle';\nimport NeonIcon from '@/components/presentation/icon/NeonIcon.vue';\nimport { useRoute, useRouter } from 'vue-router';\n\n/**\n * An HTML anchor component which handles VueRouter links (internal), href links (external) and clickable links (no href).\n */\nexport default defineComponent({\n name: 'NeonLink',\n components: {\n NeonIcon,\n },\n props: {\n /**\n * The href of the link, this can be an internal (relative or absolute) or an external link.\n */\n href: { type: String, default: null },\n /**\n * set to true if you would like a completely unstyled link. This is useful for creating a complex component which may use NeonLink.\n */\n noStyle: { type: Boolean, default: false },\n /**\n * Style of the outline to use when the link has focus, use <em>text</em> for wrapping text content and\n * <em>border</em> for tooltips wrapping \"block\" elements, e.g. buttons.\n */\n outlineStyle: { type: String as () => NeonOutlineStyle, default: NeonOutlineStyle.Text },\n /**\n * Display an external link icon to the right of the link indicating clicking it will take the user to another site.\n */\n externalIndicator: { type: Boolean, default: false },\n },\n emits: [\n /**\n * Emitted when the user triggers the link by clicking on it or hitting Enter or Space when the link has focus.\n * @type {void}\n */\n 'click',\n ],\n setup(props, { emit, expose }) {\n const neonLink = ref<HTMLAnchorElement | null>(null);\n const attrs = useAttrs();\n const router = useRouter();\n const route = useRoute();\n const routerUrl = computed(() => (props.href?.indexOf('/') === 0 ? props.href : undefined));\n\n const activeRoute = computed(() => props.href && props.href.indexOf(route.fullPath) === 0);\n const exactRoute = computed(() => activeRoute.value && props.href === route.fullPath);\n\n const sanitizedAttributes = computed(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { onClick, ...sanitized } = attrs;\n return sanitized;\n });\n\n const onClick = () => {\n emit('click');\n };\n\n const onSpace = async () => {\n onClick();\n\n if (routerUrl.value) {\n await router.push(props.href);\n } else if (props.href) {\n window.location.replace(props.href);\n }\n };\n\n expose({ neonLink });\n\n return {\n neonLink,\n routerUrl,\n sanitizedAttributes,\n activeRoute,\n exactRoute,\n onClick,\n onSpace,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonIcon","NeonOutlineStyle","props","emit","expose","neonLink","ref","attrs","useAttrs","router","useRouter","route","useRoute","routerUrl","computed","_a","activeRoute","exactRoute","sanitizedAttributes","onClick","sanitized","onSpace"],"mappings":"gLAQAA,EAAeC,kBAAgB,CAC7B,KAAM,WACN,WAAY,CACV,SAAAC,CAAA,EAEF,MAAO,CAIL,KAAM,CAAE,KAAM,OAAQ,QAAS,IAAA,EAI/B,QAAS,CAAE,KAAM,QAAS,QAAS,EAAA,EAKnC,aAAc,CAAE,KAAM,OAAkC,QAASC,EAAAA,iBAAiB,IAAA,EAIlF,kBAAmB,CAAE,KAAM,QAAS,QAAS,EAAA,CAAM,EAErD,MAAO,CAKL,OAAA,EAEF,MAAMC,EAAO,CAAE,KAAAC,EAAM,OAAAC,GAAU,CAC7B,MAAMC,EAAWC,EAAAA,IAA8B,IAAI,EAC7CC,EAAQC,EAAAA,SAAA,EACRC,EAASC,EAAAA,UAAA,EACTC,EAAQC,EAAAA,SAAA,EACRC,EAAYC,EAAAA,SAAS,IAAA,OAAO,QAAAC,EAAAb,EAAM,OAAN,YAAAa,EAAY,QAAQ,QAAS,EAAIb,EAAM,KAAO,OAAU,EAEpFc,EAAcF,EAAAA,SAAS,IAAMZ,EAAM,MAAQA,EAAM,KAAK,QAAQS,EAAM,QAAQ,IAAM,CAAC,EACnFM,EAAaH,EAAAA,SAAS,IAAME,EAAY,OAASd,EAAM,OAASS,EAAM,QAAQ,EAE9EO,EAAsBJ,EAAAA,SAAS,IAAM,CAEzC,KAAM,CAAE,QAAAK,EAAS,GAAGC,GAAcb,EAClC,OAAOa,CACT,CAAC,EAEKD,EAAU,IAAM,CACpBhB,EAAK,OAAO,CACd,EAEMkB,EAAU,SAAY,CAC1BF,EAAA,EAEIN,EAAU,MACZ,MAAMJ,EAAO,KAAKP,EAAM,IAAI,EACnBA,EAAM,MACf,OAAO,SAAS,QAAQA,EAAM,IAAI,CAEtC,EAEA,OAAAE,EAAO,CAAE,SAAAC,EAAU,EAEZ,CACL,SAAAA,EACA,UAAAQ,EACA,oBAAAK,EACA,YAAAF,EACA,WAAAC,EACA,QAAAE,EACA,QAAAE,CAAA,CAEJ,CACF,CAAC"}
@@ -1,11 +1,11 @@
1
- import { defineComponent as m, useAttrs as h, computed as t } from "vue";
2
- import { NeonOutlineStyle as y } from "../../../common/enums/NeonOutlineStyle.es.js";
3
- import S from "../../presentation/icon/NeonIcon.vue.es.js";
4
- import { useRouter as k, useRoute as x } from "vue-router";
5
- const N = m({
1
+ import { defineComponent as k, ref as x, useAttrs as S, computed as t } from "vue";
2
+ import { NeonOutlineStyle as p } from "../../../common/enums/NeonOutlineStyle.es.js";
3
+ import v from "../../presentation/icon/NeonIcon.vue.es.js";
4
+ import { useRouter as C, useRoute as R } from "vue-router";
5
+ const z = k({
6
6
  name: "NeonLink",
7
7
  components: {
8
- NeonIcon: S
8
+ NeonIcon: v
9
9
  },
10
10
  props: {
11
11
  /**
@@ -20,7 +20,7 @@ const N = m({
20
20
  * Style of the outline to use when the link has focus, use <em>text</em> for wrapping text content and
21
21
  * <em>border</em> for tooltips wrapping "block" elements, e.g. buttons.
22
22
  */
23
- outlineStyle: { type: String, default: y.Text },
23
+ outlineStyle: { type: String, default: p.Text },
24
24
  /**
25
25
  * Display an external link icon to the right of the link indicating clicking it will take the user to another site.
26
26
  */
@@ -33,29 +33,30 @@ const N = m({
33
33
  */
34
34
  "click"
35
35
  ],
36
- setup(e, { emit: a }) {
37
- const c = h(), f = k(), o = x(), i = t(() => {
36
+ setup(e, { emit: a, expose: f }) {
37
+ const o = x(null), u = S(), s = C(), l = R(), i = t(() => {
38
38
  var n;
39
39
  return ((n = e.href) == null ? void 0 : n.indexOf("/")) === 0 ? e.href : void 0;
40
- }), l = t(() => e.href && e.href.indexOf(o.fullPath) === 0), u = t(() => l.value && e.href === o.fullPath), s = t(() => {
41
- const { onClick: n, ...d } = c;
42
- return d;
43
- }), r = () => {
40
+ }), r = t(() => e.href && e.href.indexOf(l.fullPath) === 0), d = t(() => r.value && e.href === l.fullPath), m = t(() => {
41
+ const { onClick: n, ...y } = u;
42
+ return y;
43
+ }), c = () => {
44
44
  a("click");
45
+ }, h = async () => {
46
+ c(), i.value ? await s.push(e.href) : e.href && window.location.replace(e.href);
45
47
  };
46
- return {
48
+ return f({ neonLink: o }), {
49
+ neonLink: o,
47
50
  routerUrl: i,
48
- sanitizedAttributes: s,
49
- activeRoute: l,
50
- exactRoute: u,
51
- onClick: r,
52
- onSpace: async () => {
53
- r(), i.value ? await f.push(e.href) : e.href && window.location.replace(e.href);
54
- }
51
+ sanitizedAttributes: m,
52
+ activeRoute: r,
53
+ exactRoute: d,
54
+ onClick: c,
55
+ onSpace: h
55
56
  };
56
57
  }
57
58
  });
58
59
  export {
59
- N as default
60
+ z as default
60
61
  };
61
62
  //# sourceMappingURL=NeonLink.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NeonLink.es.js","sources":["../../../../src/components/navigation/link/NeonLink.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { computed, defineComponent, useAttrs } from 'vue';\nimport { NeonOutlineStyle } from '@/common/enums/NeonOutlineStyle';\nimport NeonIcon from '@/components/presentation/icon/NeonIcon.vue';\nimport { useRoute, useRouter } from 'vue-router';\n\n/**\n * An HTML anchor component which handles VueRouter links (internal), href links (external) and clickable links (no href).\n */\nexport default defineComponent({\n name: 'NeonLink',\n components: {\n NeonIcon,\n },\n props: {\n /**\n * The href of the link, this can be an internal (relative or absolute) or an external link.\n */\n href: { type: String, default: null },\n /**\n * set to true if you would like a completely unstyled link. This is useful for creating a complex component which may use NeonLink.\n */\n noStyle: { type: Boolean, default: false },\n /**\n * Style of the outline to use when the link has focus, use <em>text</em> for wrapping text content and\n * <em>border</em> for tooltips wrapping \"block\" elements, e.g. buttons.\n */\n outlineStyle: { type: String as () => NeonOutlineStyle, default: NeonOutlineStyle.Text },\n /**\n * Display an external link icon to the right of the link indicating clicking it will take the user to another site.\n */\n externalIndicator: { type: Boolean, default: false },\n },\n emits: [\n /**\n * Emitted when the user triggers the link by clicking on it or hitting Enter or Space when the link has focus.\n * @type {void}\n */\n 'click',\n ],\n setup(props, { emit }) {\n const attrs = useAttrs();\n const router = useRouter();\n const route = useRoute();\n const routerUrl = computed(() => (props.href?.indexOf('/') === 0 ? props.href : undefined));\n\n const activeRoute = computed(() => props.href && props.href.indexOf(route.fullPath) === 0);\n const exactRoute = computed(() => activeRoute.value && props.href === route.fullPath);\n\n const sanitizedAttributes = computed(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { onClick, ...sanitized } = attrs;\n return sanitized;\n });\n\n const onClick = () => {\n emit('click');\n };\n\n const onSpace = async () => {\n onClick();\n\n if (routerUrl.value) {\n await router.push(props.href);\n } else if (props.href) {\n window.location.replace(props.href);\n }\n };\n\n return {\n routerUrl,\n sanitizedAttributes,\n activeRoute,\n exactRoute,\n onClick,\n onSpace,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonIcon","NeonOutlineStyle","props","emit","attrs","useAttrs","router","useRouter","route","useRoute","routerUrl","computed","_a","activeRoute","exactRoute","sanitizedAttributes","onClick","sanitized"],"mappings":";;;;AAQA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV,UAAAC;AAAA,EAAA;AAAA,EAEF,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,EAAE,MAAM,QAAQ,SAAS,KAAA;AAAA;AAAA;AAAA;AAAA,IAI/B,SAAS,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKnC,cAAc,EAAE,MAAM,QAAkC,SAASC,EAAiB,KAAA;AAAA;AAAA;AAAA;AAAA,IAIlF,mBAAmB,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA,EAAM;AAAA,EAErD,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL;AAAA,EAAA;AAAA,EAEF,MAAMC,GAAO,EAAE,MAAAC,KAAQ;AACrB,UAAMC,IAAQC,EAAA,GACRC,IAASC,EAAA,GACTC,IAAQC,EAAA,GACRC,IAAYC,EAAS,MAAA;;AAAO,eAAAC,IAAAV,EAAM,SAAN,gBAAAU,EAAY,QAAQ,UAAS,IAAIV,EAAM,OAAO;AAAA,KAAU,GAEpFW,IAAcF,EAAS,MAAMT,EAAM,QAAQA,EAAM,KAAK,QAAQM,EAAM,QAAQ,MAAM,CAAC,GACnFM,IAAaH,EAAS,MAAME,EAAY,SAASX,EAAM,SAASM,EAAM,QAAQ,GAE9EO,IAAsBJ,EAAS,MAAM;AAEzC,YAAM,EAAE,SAAAK,GAAS,GAAGC,MAAcb;AAClC,aAAOa;AAAA,IACT,CAAC,GAEKD,IAAU,MAAM;AACpB,MAAAb,EAAK,OAAO;AAAA,IACd;AAYA,WAAO;AAAA,MACL,WAAAO;AAAA,MACA,qBAAAK;AAAA,MACA,aAAAF;AAAA,MACA,YAAAC;AAAA,MACA,SAAAE;AAAA,MACA,SAhBc,YAAY;AAC1B,QAAAA,EAAA,GAEIN,EAAU,QACZ,MAAMJ,EAAO,KAAKJ,EAAM,IAAI,IACnBA,EAAM,QACf,OAAO,SAAS,QAAQA,EAAM,IAAI;AAAA,MAEtC;AAAA,IAQE;AAAA,EAEJ;AACF,CAAC;"}
1
+ {"version":3,"file":"NeonLink.es.js","sources":["../../../../src/components/navigation/link/NeonLink.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { computed, defineComponent, ref, useAttrs } from 'vue';\nimport { NeonOutlineStyle } from '@/common/enums/NeonOutlineStyle';\nimport NeonIcon from '@/components/presentation/icon/NeonIcon.vue';\nimport { useRoute, useRouter } from 'vue-router';\n\n/**\n * An HTML anchor component which handles VueRouter links (internal), href links (external) and clickable links (no href).\n */\nexport default defineComponent({\n name: 'NeonLink',\n components: {\n NeonIcon,\n },\n props: {\n /**\n * The href of the link, this can be an internal (relative or absolute) or an external link.\n */\n href: { type: String, default: null },\n /**\n * set to true if you would like a completely unstyled link. This is useful for creating a complex component which may use NeonLink.\n */\n noStyle: { type: Boolean, default: false },\n /**\n * Style of the outline to use when the link has focus, use <em>text</em> for wrapping text content and\n * <em>border</em> for tooltips wrapping \"block\" elements, e.g. buttons.\n */\n outlineStyle: { type: String as () => NeonOutlineStyle, default: NeonOutlineStyle.Text },\n /**\n * Display an external link icon to the right of the link indicating clicking it will take the user to another site.\n */\n externalIndicator: { type: Boolean, default: false },\n },\n emits: [\n /**\n * Emitted when the user triggers the link by clicking on it or hitting Enter or Space when the link has focus.\n * @type {void}\n */\n 'click',\n ],\n setup(props, { emit, expose }) {\n const neonLink = ref<HTMLAnchorElement | null>(null);\n const attrs = useAttrs();\n const router = useRouter();\n const route = useRoute();\n const routerUrl = computed(() => (props.href?.indexOf('/') === 0 ? props.href : undefined));\n\n const activeRoute = computed(() => props.href && props.href.indexOf(route.fullPath) === 0);\n const exactRoute = computed(() => activeRoute.value && props.href === route.fullPath);\n\n const sanitizedAttributes = computed(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { onClick, ...sanitized } = attrs;\n return sanitized;\n });\n\n const onClick = () => {\n emit('click');\n };\n\n const onSpace = async () => {\n onClick();\n\n if (routerUrl.value) {\n await router.push(props.href);\n } else if (props.href) {\n window.location.replace(props.href);\n }\n };\n\n expose({ neonLink });\n\n return {\n neonLink,\n routerUrl,\n sanitizedAttributes,\n activeRoute,\n exactRoute,\n onClick,\n onSpace,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonIcon","NeonOutlineStyle","props","emit","expose","neonLink","ref","attrs","useAttrs","router","useRouter","route","useRoute","routerUrl","computed","_a","activeRoute","exactRoute","sanitizedAttributes","onClick","sanitized","onSpace"],"mappings":";;;;AAQA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV,UAAAC;AAAA,EAAA;AAAA,EAEF,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,EAAE,MAAM,QAAQ,SAAS,KAAA;AAAA;AAAA;AAAA;AAAA,IAI/B,SAAS,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKnC,cAAc,EAAE,MAAM,QAAkC,SAASC,EAAiB,KAAA;AAAA;AAAA;AAAA;AAAA,IAIlF,mBAAmB,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA,EAAM;AAAA,EAErD,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL;AAAA,EAAA;AAAA,EAEF,MAAMC,GAAO,EAAE,MAAAC,GAAM,QAAAC,KAAU;AAC7B,UAAMC,IAAWC,EAA8B,IAAI,GAC7CC,IAAQC,EAAA,GACRC,IAASC,EAAA,GACTC,IAAQC,EAAA,GACRC,IAAYC,EAAS,MAAA;;AAAO,eAAAC,IAAAb,EAAM,SAAN,gBAAAa,EAAY,QAAQ,UAAS,IAAIb,EAAM,OAAO;AAAA,KAAU,GAEpFc,IAAcF,EAAS,MAAMZ,EAAM,QAAQA,EAAM,KAAK,QAAQS,EAAM,QAAQ,MAAM,CAAC,GACnFM,IAAaH,EAAS,MAAME,EAAY,SAASd,EAAM,SAASS,EAAM,QAAQ,GAE9EO,IAAsBJ,EAAS,MAAM;AAEzC,YAAM,EAAE,SAAAK,GAAS,GAAGC,MAAcb;AAClC,aAAOa;AAAA,IACT,CAAC,GAEKD,IAAU,MAAM;AACpB,MAAAhB,EAAK,OAAO;AAAA,IACd,GAEMkB,IAAU,YAAY;AAC1B,MAAAF,EAAA,GAEIN,EAAU,QACZ,MAAMJ,EAAO,KAAKP,EAAM,IAAI,IACnBA,EAAM,QACf,OAAO,SAAS,QAAQA,EAAM,IAAI;AAAA,IAEtC;AAEA,WAAAE,EAAO,EAAE,UAAAC,GAAU,GAEZ;AAAA,MACL,UAAAA;AAAA,MACA,WAAAQ;AAAA,MACA,qBAAAK;AAAA,MACA,aAAAF;AAAA,MACA,YAAAC;AAAA,MACA,SAAAE;AAAA,MACA,SAAAE;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;"}
@@ -1,2 +1,2 @@
1
- "use strict";const r=require("./NeonLink.cjs.js"),n=require("vue"),s=require("../../../_virtual/_plugin-vue_export-helper.cjs.js"),k=["href"];function a(e,o,p,d,y,C){const l=n.resolveComponent("router-link"),t=n.resolveComponent("neon-icon");return e.routerUrl?(n.openBlock(),n.createBlock(l,n.mergeProps({key:0,class:[[{"neon-link--no-style":e.noStyle,"neon-link--active":e.activeRoute,"neon-link--exact-active":e.exactRoute},`neon-link--outline-${e.outlineStyle}`],"neon-link neon-link--router-link"],to:e.routerUrl,tabindex:"0"},e.sanitizedAttributes,{onClick:e.onClick,onKeydown:[n.withKeys(e.onClick,["enter"]),n.withKeys(n.withModifiers(e.onSpace,["prevent"]),["space"])]}),{default:n.withCtx(()=>[n.renderSlot(e.$slots,"default")]),_:3},16,["class","to","onClick","onKeydown"])):e.href?(n.openBlock(),n.createElementBlock("a",n.mergeProps({key:1,class:[[{"neon-link--no-style":e.noStyle,"neon-link--with-external-indicator":e.externalIndicator,"neon-link--active":e.activeRoute,"neon-link--exact-active":e.exactRoute},`neon-link--outline-${e.outlineStyle}`],"neon-link neon-link--external-link"],href:e.href,rel:"noopener",tabindex:"0"},e.sanitizedAttributes,{onClick:o[0]||(o[0]=(...i)=>e.onClick&&e.onClick(...i)),onKeydown:[o[1]||(o[1]=n.withKeys((...i)=>e.onClick&&e.onClick(...i),["enter"])),o[2]||(o[2]=n.withKeys(n.withModifiers((...i)=>e.onSpace&&e.onSpace(...i),["prevent"]),["space"]))]}),[n.renderSlot(e.$slots,"default"),e.externalIndicator?(n.openBlock(),n.createBlock(t,{key:0,class:"neon-link__external-indicator",color:"low-contrast",name:"share-external-link-1"})):n.createCommentVNode("",!0)],16,k)):(n.openBlock(),n.createElementBlock("a",n.mergeProps({key:2,class:[[{"neon-link--no-style":e.noStyle},`neon-link--outline-${e.outlineStyle}`],"neon-link"],tabindex:"0"},e.sanitizedAttributes,{onClick:o[3]||(o[3]=(...i)=>e.onClick&&e.onClick(...i)),onKeydown:[o[4]||(o[4]=n.withKeys((...i)=>e.onClick&&e.onClick(...i),["enter"])),o[5]||(o[5]=n.withKeys(n.withModifiers((...i)=>e.onSpace&&e.onSpace(...i),["prevent"]),["space"]))]}),[n.renderSlot(e.$slots,"default")],16))}const u=s(r,[["render",a]]);module.exports=u;
1
+ "use strict";const r=require("./NeonLink.cjs.js"),n=require("vue"),s=require("../../../_virtual/_plugin-vue_export-helper.cjs.js"),k=["href"];function a(e,o,p,d,y,C){const l=n.resolveComponent("router-link"),t=n.resolveComponent("neon-icon");return e.routerUrl?(n.openBlock(),n.createBlock(l,n.mergeProps({key:0,ref:"neonLink",class:[[{"neon-link--no-style":e.noStyle,"neon-link--active":e.activeRoute,"neon-link--exact-active":e.exactRoute},`neon-link--outline-${e.outlineStyle}`],"neon-link neon-link--router-link"],to:e.routerUrl,tabindex:"0"},e.sanitizedAttributes,{onClick:e.onClick,onKeydown:[n.withKeys(e.onClick,["enter"]),n.withKeys(n.withModifiers(e.onSpace,["prevent"]),["space"])]}),{default:n.withCtx(()=>[n.renderSlot(e.$slots,"default")]),_:3},16,["class","to","onClick","onKeydown"])):e.href?(n.openBlock(),n.createElementBlock("a",n.mergeProps({key:1,ref:"neonLink",class:[[{"neon-link--no-style":e.noStyle,"neon-link--with-external-indicator":e.externalIndicator,"neon-link--active":e.activeRoute,"neon-link--exact-active":e.exactRoute},`neon-link--outline-${e.outlineStyle}`],"neon-link neon-link--external-link"],href:e.href,rel:"noopener",tabindex:"0"},e.sanitizedAttributes,{onClick:o[0]||(o[0]=(...i)=>e.onClick&&e.onClick(...i)),onKeydown:[o[1]||(o[1]=n.withKeys((...i)=>e.onClick&&e.onClick(...i),["enter"])),o[2]||(o[2]=n.withKeys(n.withModifiers((...i)=>e.onSpace&&e.onSpace(...i),["prevent"]),["space"]))]}),[n.renderSlot(e.$slots,"default"),e.externalIndicator?(n.openBlock(),n.createBlock(t,{key:0,class:"neon-link__external-indicator",color:"low-contrast",name:"share-external-link-1"})):n.createCommentVNode("",!0)],16,k)):(n.openBlock(),n.createElementBlock("a",n.mergeProps({key:2,ref:"neonLink",class:[[{"neon-link--no-style":e.noStyle},`neon-link--outline-${e.outlineStyle}`],"neon-link"],tabindex:"0"},e.sanitizedAttributes,{onClick:o[3]||(o[3]=(...i)=>e.onClick&&e.onClick(...i)),onKeydown:[o[4]||(o[4]=n.withKeys((...i)=>e.onClick&&e.onClick(...i),["enter"])),o[5]||(o[5]=n.withKeys(n.withModifiers((...i)=>e.onSpace&&e.onSpace(...i),["prevent"]),["space"]))]}),[n.renderSlot(e.$slots,"default")],16))}const u=s(r,[["render",a]]);module.exports=u;
2
2
  //# sourceMappingURL=NeonLink.vue.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NeonLink.vue.cjs.js","sources":["../../../../src/components/navigation/link/NeonLink.vue"],"sourcesContent":["<template>\n <router-link\n v-if=\"routerUrl\"\n :class=\"[\n { 'neon-link--no-style': noStyle, 'neon-link--active': activeRoute, 'neon-link--exact-active': exactRoute },\n `neon-link--outline-${outlineStyle}`,\n ]\"\n :to=\"routerUrl\"\n class=\"neon-link neon-link--router-link\"\n tabindex=\"0\"\n v-bind=\"sanitizedAttributes\"\n @click=\"onClick\"\n @keydown.enter=\"onClick\"\n @keydown.space.prevent=\"onSpace\"\n >\n <!-- @slot the content of the link -->\n <slot></slot>\n </router-link>\n <a\n v-else-if=\"href\"\n :class=\"[\n {\n 'neon-link--no-style': noStyle,\n 'neon-link--with-external-indicator': externalIndicator,\n 'neon-link--active': activeRoute,\n 'neon-link--exact-active': exactRoute,\n },\n `neon-link--outline-${outlineStyle}`,\n ]\"\n :href=\"href\"\n class=\"neon-link neon-link--external-link\"\n rel=\"noopener\"\n tabindex=\"0\"\n v-bind=\"sanitizedAttributes\"\n @click=\"onClick\"\n @keydown.enter=\"onClick\"\n @keydown.space.prevent=\"onSpace\"\n >\n <!-- @slot the content of the link -->\n <slot></slot>\n <neon-icon\n v-if=\"externalIndicator\"\n class=\"neon-link__external-indicator\"\n color=\"low-contrast\"\n name=\"share-external-link-1\"\n />\n </a>\n <a\n v-else\n :class=\"[{ 'neon-link--no-style': noStyle }, `neon-link--outline-${outlineStyle}`]\"\n class=\"neon-link\"\n tabindex=\"0\"\n v-bind=\"sanitizedAttributes\"\n @click=\"onClick\"\n @keydown.enter=\"onClick\"\n @keydown.space.prevent=\"onSpace\"\n >\n <!-- @slot the content of the link -->\n <slot></slot>\n </a>\n</template>\n\n<script lang=\"ts\" src=\"./NeonLink.ts\" />\n"],"names":["_ctx","_openBlock","_createBlock","_component_router_link","_mergeProps","_renderSlot","_createElementBlock","args","_component_neon_icon"],"mappings":"yPAEUA,EAAA,WADRC,EAAAA,YAAAC,EAAAA,YAgBcC,EAhBdC,aAgBc,OAdX,MAAK,CAAA,wBAAmCJ,EAAA,QAAO,oBAAuBA,EAAA,YAAW,0BAA6BA,EAAA,UAAU,wBAAgCA,EAAA,YAAY,IAK/J,kCAAkC,EADvC,GAAIA,EAAA,UAEL,SAAS,KACDA,EAAA,oBAAmB,CAC1B,QAAOA,EAAA,QACP,UAAO,YAAQA,EAAA,QAAO,CAAA,OAAA,CAAA,6BACCA,EAAA,QAAO,CAAA,SAAA,CAAA,EAAA,CAAA,OAAA,CAAA,wBAG/B,IAAa,CAAbK,aAAaL,EAAA,OAAA,SAAA,mDAGFA,EAAA,MADbC,EAAAA,YAAAK,EAAAA,mBA4BI,IA5BJF,aA4BI,OA1BD,MAAK,CAAA,wBAA2CJ,EAAA,6CAAuDA,EAAA,sCAAgDA,EAAA,sCAAgDA,EAAA,kCAAiDA,EAAA,YAAY,IAU/P,oCAAoC,EADzC,KAAMA,EAAA,KAEP,IAAI,WACJ,SAAS,KACDA,EAAA,oBAAmB,CAC1B,4BAAOA,EAAA,SAAAA,EAAA,QAAA,GAAAO,CAAA,GACP,UAAO,gCAAQP,EAAA,SAAAA,EAAA,QAAA,GAAAO,CAAA,EAAO,CAAA,OAAA,CAAA,kDACCP,EAAA,SAAAA,EAAA,QAAA,GAAAO,CAAA,EAAO,CAAA,SAAA,CAAA,EAAA,CAAA,OAAA,CAAA,OAG/BF,aAAaL,EAAA,OAAA,SAAA,EAELA,EAAA,iCADRE,EAAAA,YAKEM,EAAA,OAHA,MAAM,gCACN,MAAM,eACN,KAAK,gEAGTP,EAAAA,YAAAK,EAAAA,mBAYI,IAZJF,aAYI,OAVD,MAAK,CAAA,CAAA,CAAA,sBAA4BJ,EAAA,OAAO,EAAA,sBAA0BA,EAAA,YAAY,IACzE,WAAW,EACjB,SAAS,KACDA,EAAA,oBAAmB,CAC1B,4BAAOA,EAAA,SAAAA,EAAA,QAAA,GAAAO,CAAA,GACP,UAAO,gCAAQP,EAAA,SAAAA,EAAA,QAAA,GAAAO,CAAA,EAAO,CAAA,OAAA,CAAA,kDACCP,EAAA,SAAAA,EAAA,QAAA,GAAAO,CAAA,EAAO,CAAA,SAAA,CAAA,EAAA,CAAA,OAAA,CAAA,OAG/BF,aAAaL,EAAA,OAAA,SAAA"}
1
+ {"version":3,"file":"NeonLink.vue.cjs.js","sources":["../../../../src/components/navigation/link/NeonLink.vue"],"sourcesContent":["<template>\n <router-link\n v-if=\"routerUrl\"\n ref=\"neonLink\"\n :class=\"[\n { 'neon-link--no-style': noStyle, 'neon-link--active': activeRoute, 'neon-link--exact-active': exactRoute },\n `neon-link--outline-${outlineStyle}`,\n ]\"\n :to=\"routerUrl\"\n class=\"neon-link neon-link--router-link\"\n tabindex=\"0\"\n v-bind=\"sanitizedAttributes\"\n @click=\"onClick\"\n @keydown.enter=\"onClick\"\n @keydown.space.prevent=\"onSpace\"\n >\n <!-- @slot the content of the link -->\n <slot></slot>\n </router-link>\n <a\n v-else-if=\"href\"\n ref=\"neonLink\"\n :class=\"[\n {\n 'neon-link--no-style': noStyle,\n 'neon-link--with-external-indicator': externalIndicator,\n 'neon-link--active': activeRoute,\n 'neon-link--exact-active': exactRoute,\n },\n `neon-link--outline-${outlineStyle}`,\n ]\"\n :href=\"href\"\n class=\"neon-link neon-link--external-link\"\n rel=\"noopener\"\n tabindex=\"0\"\n v-bind=\"sanitizedAttributes\"\n @click=\"onClick\"\n @keydown.enter=\"onClick\"\n @keydown.space.prevent=\"onSpace\"\n >\n <!-- @slot the content of the link -->\n <slot></slot>\n <neon-icon\n v-if=\"externalIndicator\"\n class=\"neon-link__external-indicator\"\n color=\"low-contrast\"\n name=\"share-external-link-1\"\n />\n </a>\n <a\n v-else\n ref=\"neonLink\"\n :class=\"[{ 'neon-link--no-style': noStyle }, `neon-link--outline-${outlineStyle}`]\"\n class=\"neon-link\"\n tabindex=\"0\"\n v-bind=\"sanitizedAttributes\"\n @click=\"onClick\"\n @keydown.enter=\"onClick\"\n @keydown.space.prevent=\"onSpace\"\n >\n <!-- @slot the content of the link -->\n <slot></slot>\n </a>\n</template>\n\n<script lang=\"ts\" src=\"./NeonLink.ts\" />\n"],"names":["_ctx","_openBlock","_createBlock","_component_router_link","_mergeProps","_renderSlot","_createElementBlock","args","_component_neon_icon"],"mappings":"yPAEUA,EAAA,WADRC,EAAAA,YAAAC,EAAAA,YAiBcC,EAjBdC,aAiBc,OAfZ,IAAI,WACH,MAAK,CAAA,wBAAmCJ,EAAA,QAAO,oBAAuBA,EAAA,YAAW,0BAA6BA,EAAA,UAAU,wBAAgCA,EAAA,YAAY,IAK/J,kCAAkC,EADvC,GAAIA,EAAA,UAEL,SAAS,KACDA,EAAA,oBAAmB,CAC1B,QAAOA,EAAA,QACP,UAAO,YAAQA,EAAA,QAAO,CAAA,OAAA,CAAA,6BACCA,EAAA,QAAO,CAAA,SAAA,CAAA,EAAA,CAAA,OAAA,CAAA,wBAG/B,IAAa,CAAbK,aAAaL,EAAA,OAAA,SAAA,mDAGFA,EAAA,MADbC,EAAAA,YAAAK,EAAAA,mBA6BI,IA7BJF,aA6BI,OA3BF,IAAI,WACH,MAAK,CAAA,wBAA2CJ,EAAA,6CAAuDA,EAAA,sCAAgDA,EAAA,sCAAgDA,EAAA,kCAAiDA,EAAA,YAAY,IAU/P,oCAAoC,EADzC,KAAMA,EAAA,KAEP,IAAI,WACJ,SAAS,KACDA,EAAA,oBAAmB,CAC1B,4BAAOA,EAAA,SAAAA,EAAA,QAAA,GAAAO,CAAA,GACP,UAAO,gCAAQP,EAAA,SAAAA,EAAA,QAAA,GAAAO,CAAA,EAAO,CAAA,OAAA,CAAA,kDACCP,EAAA,SAAAA,EAAA,QAAA,GAAAO,CAAA,EAAO,CAAA,SAAA,CAAA,EAAA,CAAA,OAAA,CAAA,OAG/BF,aAAaL,EAAA,OAAA,SAAA,EAELA,EAAA,iCADRE,EAAAA,YAKEM,EAAA,OAHA,MAAM,gCACN,MAAM,eACN,KAAK,gEAGTP,EAAAA,YAAAK,EAAAA,mBAaI,IAbJF,aAaI,OAXF,IAAI,WACH,MAAK,CAAA,CAAA,CAAA,sBAA4BJ,EAAA,OAAO,EAAA,sBAA0BA,EAAA,YAAY,IACzE,WAAW,EACjB,SAAS,KACDA,EAAA,oBAAmB,CAC1B,4BAAOA,EAAA,SAAAA,EAAA,QAAA,GAAAO,CAAA,GACP,UAAO,gCAAQP,EAAA,SAAAA,EAAA,QAAA,GAAAO,CAAA,EAAO,CAAA,OAAA,CAAA,kDACCP,EAAA,SAAAA,EAAA,QAAA,GAAAO,CAAA,EAAO,CAAA,SAAA,CAAA,EAAA,CAAA,OAAA,CAAA,OAG/BF,aAAaL,EAAA,OAAA,SAAA"}
@@ -1,11 +1,12 @@
1
- import y from "./NeonLink.es.js";
2
- import { resolveComponent as a, openBlock as l, createBlock as k, mergeProps as t, withKeys as i, withModifiers as r, withCtx as f, renderSlot as s, createElementBlock as u, createCommentVNode as C } from "vue";
1
+ import f from "./NeonLink.es.js";
2
+ import { resolveComponent as s, openBlock as l, createBlock as a, mergeProps as t, withKeys as i, withModifiers as r, withCtx as y, renderSlot as k, createElementBlock as u, createCommentVNode as C } from "vue";
3
3
  import m from "../../../_virtual/_plugin-vue_export-helper.es.js";
4
4
  const S = ["href"];
5
5
  function v(n, e, $, w, b, K) {
6
- const d = a("router-link"), p = a("neon-icon");
7
- return n.routerUrl ? (l(), k(d, t({
6
+ const d = s("router-link"), p = s("neon-icon");
7
+ return n.routerUrl ? (l(), a(d, t({
8
8
  key: 0,
9
+ ref: "neonLink",
9
10
  class: [[
10
11
  { "neon-link--no-style": n.noStyle, "neon-link--active": n.activeRoute, "neon-link--exact-active": n.exactRoute },
11
12
  `neon-link--outline-${n.outlineStyle}`
@@ -19,12 +20,13 @@ function v(n, e, $, w, b, K) {
19
20
  i(r(n.onSpace, ["prevent"]), ["space"])
20
21
  ]
21
22
  }), {
22
- default: f(() => [
23
- s(n.$slots, "default")
23
+ default: y(() => [
24
+ k(n.$slots, "default")
24
25
  ]),
25
26
  _: 3
26
27
  }, 16, ["class", "to", "onClick", "onKeydown"])) : n.href ? (l(), u("a", t({
27
28
  key: 1,
29
+ ref: "neonLink",
28
30
  class: [[
29
31
  {
30
32
  "neon-link--no-style": n.noStyle,
@@ -44,8 +46,8 @@ function v(n, e, $, w, b, K) {
44
46
  e[2] || (e[2] = i(r((...o) => n.onSpace && n.onSpace(...o), ["prevent"]), ["space"]))
45
47
  ]
46
48
  }), [
47
- s(n.$slots, "default"),
48
- n.externalIndicator ? (l(), k(p, {
49
+ k(n.$slots, "default"),
50
+ n.externalIndicator ? (l(), a(p, {
49
51
  key: 0,
50
52
  class: "neon-link__external-indicator",
51
53
  color: "low-contrast",
@@ -53,6 +55,7 @@ function v(n, e, $, w, b, K) {
53
55
  })) : C("", !0)
54
56
  ], 16, S)) : (l(), u("a", t({
55
57
  key: 2,
58
+ ref: "neonLink",
56
59
  class: [[{ "neon-link--no-style": n.noStyle }, `neon-link--outline-${n.outlineStyle}`], "neon-link"],
57
60
  tabindex: "0"
58
61
  }, n.sanitizedAttributes, {
@@ -62,11 +65,11 @@ function v(n, e, $, w, b, K) {
62
65
  e[5] || (e[5] = i(r((...o) => n.onSpace && n.onSpace(...o), ["prevent"]), ["space"]))
63
66
  ]
64
67
  }), [
65
- s(n.$slots, "default")
68
+ k(n.$slots, "default")
66
69
  ], 16));
67
70
  }
68
- const A = /* @__PURE__ */ m(y, [["render", v]]);
71
+ const z = /* @__PURE__ */ m(f, [["render", v]]);
69
72
  export {
70
- A as default
73
+ z as default
71
74
  };
72
75
  //# sourceMappingURL=NeonLink.vue.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NeonLink.vue.es.js","sources":["../../../../src/components/navigation/link/NeonLink.vue"],"sourcesContent":["<template>\n <router-link\n v-if=\"routerUrl\"\n :class=\"[\n { 'neon-link--no-style': noStyle, 'neon-link--active': activeRoute, 'neon-link--exact-active': exactRoute },\n `neon-link--outline-${outlineStyle}`,\n ]\"\n :to=\"routerUrl\"\n class=\"neon-link neon-link--router-link\"\n tabindex=\"0\"\n v-bind=\"sanitizedAttributes\"\n @click=\"onClick\"\n @keydown.enter=\"onClick\"\n @keydown.space.prevent=\"onSpace\"\n >\n <!-- @slot the content of the link -->\n <slot></slot>\n </router-link>\n <a\n v-else-if=\"href\"\n :class=\"[\n {\n 'neon-link--no-style': noStyle,\n 'neon-link--with-external-indicator': externalIndicator,\n 'neon-link--active': activeRoute,\n 'neon-link--exact-active': exactRoute,\n },\n `neon-link--outline-${outlineStyle}`,\n ]\"\n :href=\"href\"\n class=\"neon-link neon-link--external-link\"\n rel=\"noopener\"\n tabindex=\"0\"\n v-bind=\"sanitizedAttributes\"\n @click=\"onClick\"\n @keydown.enter=\"onClick\"\n @keydown.space.prevent=\"onSpace\"\n >\n <!-- @slot the content of the link -->\n <slot></slot>\n <neon-icon\n v-if=\"externalIndicator\"\n class=\"neon-link__external-indicator\"\n color=\"low-contrast\"\n name=\"share-external-link-1\"\n />\n </a>\n <a\n v-else\n :class=\"[{ 'neon-link--no-style': noStyle }, `neon-link--outline-${outlineStyle}`]\"\n class=\"neon-link\"\n tabindex=\"0\"\n v-bind=\"sanitizedAttributes\"\n @click=\"onClick\"\n @keydown.enter=\"onClick\"\n @keydown.space.prevent=\"onSpace\"\n >\n <!-- @slot the content of the link -->\n <slot></slot>\n </a>\n</template>\n\n<script lang=\"ts\" src=\"./NeonLink.ts\" />\n"],"names":["_ctx","_openBlock","_createBlock","_component_router_link","_mergeProps","_renderSlot","_createElementBlock","args","_component_neon_icon"],"mappings":";;;;;;SAEUA,EAAA,aADRC,KAAAC,EAgBcC,GAhBdC,EAgBc;AAAA;IAdX,OAAK,CAAA;AAAA,+BAAmCJ,EAAA,SAAO,qBAAuBA,EAAA,aAAW,2BAA6BA,EAAA,WAAU;AAAA,4BAAgCA,EAAA,YAAY;AAAA,OAK/J,kCAAkC;AAAA,IADvC,IAAIA,EAAA;AAAA,IAEL,UAAS;AAAA,KACDA,EAAA,qBAAmB;AAAA,IAC1B,SAAOA,EAAA;AAAA,IACP,WAAO;AAAA,QAAQA,EAAA,SAAO,CAAA,OAAA,CAAA;AAAA,UACCA,EAAA,SAAO,CAAA,SAAA,CAAA,GAAA,CAAA,OAAA,CAAA;AAAA;;eAG/B,MAAa;AAAA,MAAbK,EAAaL,EAAA,QAAA,SAAA;AAAA;;qDAGFA,EAAA,QADbC,KAAAK,EA4BI,KA5BJF,EA4BI;AAAA;IA1BD,OAAK,CAAA;AAAA;+BAA2CJ,EAAA;AAAA,8CAAuDA,EAAA;AAAA,6BAAgDA,EAAA;AAAA,mCAAgDA,EAAA;AAAA;4BAAiDA,EAAA,YAAY;AAAA,OAU/P,oCAAoC;AAAA,IADzC,MAAMA,EAAA;AAAA,IAEP,KAAI;AAAA,IACJ,UAAS;AAAA,KACDA,EAAA,qBAAmB;AAAA,IAC1B,mCAAOA,EAAA,WAAAA,EAAA,QAAA,GAAAO,CAAA;AAAA,IACP,WAAO;AAAA,kCAAQP,EAAA,WAAAA,EAAA,QAAA,GAAAO,CAAA,GAAO,CAAA,OAAA,CAAA;AAAA,oCACCP,EAAA,WAAAA,EAAA,QAAA,GAAAO,CAAA,GAAO,CAAA,SAAA,CAAA,GAAA,CAAA,OAAA,CAAA;AAAA;;IAG/BF,EAAaL,EAAA,QAAA,SAAA;AAAA,IAELA,EAAA,0BADRE,EAKEM,GAAA;AAAA;MAHA,OAAM;AAAA,MACN,OAAM;AAAA,MACN,MAAK;AAAA;gBAGTP,KAAAK,EAYI,KAZJF,EAYI;AAAA;IAVD,OAAK,CAAA,CAAA,EAAA,uBAA4BJ,EAAA,QAAO,GAAA,sBAA0BA,EAAA,YAAY,KACzE,WAAW;AAAA,IACjB,UAAS;AAAA,KACDA,EAAA,qBAAmB;AAAA,IAC1B,mCAAOA,EAAA,WAAAA,EAAA,QAAA,GAAAO,CAAA;AAAA,IACP,WAAO;AAAA,kCAAQP,EAAA,WAAAA,EAAA,QAAA,GAAAO,CAAA,GAAO,CAAA,OAAA,CAAA;AAAA,oCACCP,EAAA,WAAAA,EAAA,QAAA,GAAAO,CAAA,GAAO,CAAA,SAAA,CAAA,GAAA,CAAA,OAAA,CAAA;AAAA;;IAG/BF,EAAaL,EAAA,QAAA,SAAA;AAAA;;;"}
1
+ {"version":3,"file":"NeonLink.vue.es.js","sources":["../../../../src/components/navigation/link/NeonLink.vue"],"sourcesContent":["<template>\n <router-link\n v-if=\"routerUrl\"\n ref=\"neonLink\"\n :class=\"[\n { 'neon-link--no-style': noStyle, 'neon-link--active': activeRoute, 'neon-link--exact-active': exactRoute },\n `neon-link--outline-${outlineStyle}`,\n ]\"\n :to=\"routerUrl\"\n class=\"neon-link neon-link--router-link\"\n tabindex=\"0\"\n v-bind=\"sanitizedAttributes\"\n @click=\"onClick\"\n @keydown.enter=\"onClick\"\n @keydown.space.prevent=\"onSpace\"\n >\n <!-- @slot the content of the link -->\n <slot></slot>\n </router-link>\n <a\n v-else-if=\"href\"\n ref=\"neonLink\"\n :class=\"[\n {\n 'neon-link--no-style': noStyle,\n 'neon-link--with-external-indicator': externalIndicator,\n 'neon-link--active': activeRoute,\n 'neon-link--exact-active': exactRoute,\n },\n `neon-link--outline-${outlineStyle}`,\n ]\"\n :href=\"href\"\n class=\"neon-link neon-link--external-link\"\n rel=\"noopener\"\n tabindex=\"0\"\n v-bind=\"sanitizedAttributes\"\n @click=\"onClick\"\n @keydown.enter=\"onClick\"\n @keydown.space.prevent=\"onSpace\"\n >\n <!-- @slot the content of the link -->\n <slot></slot>\n <neon-icon\n v-if=\"externalIndicator\"\n class=\"neon-link__external-indicator\"\n color=\"low-contrast\"\n name=\"share-external-link-1\"\n />\n </a>\n <a\n v-else\n ref=\"neonLink\"\n :class=\"[{ 'neon-link--no-style': noStyle }, `neon-link--outline-${outlineStyle}`]\"\n class=\"neon-link\"\n tabindex=\"0\"\n v-bind=\"sanitizedAttributes\"\n @click=\"onClick\"\n @keydown.enter=\"onClick\"\n @keydown.space.prevent=\"onSpace\"\n >\n <!-- @slot the content of the link -->\n <slot></slot>\n </a>\n</template>\n\n<script lang=\"ts\" src=\"./NeonLink.ts\" />\n"],"names":["_ctx","_openBlock","_createBlock","_component_router_link","_mergeProps","_renderSlot","_createElementBlock","args","_component_neon_icon"],"mappings":";;;;;;SAEUA,EAAA,aADRC,KAAAC,EAiBcC,GAjBdC,EAiBc;AAAA;IAfZ,KAAI;AAAA,IACH,OAAK,CAAA;AAAA,+BAAmCJ,EAAA,SAAO,qBAAuBA,EAAA,aAAW,2BAA6BA,EAAA,WAAU;AAAA,4BAAgCA,EAAA,YAAY;AAAA,OAK/J,kCAAkC;AAAA,IADvC,IAAIA,EAAA;AAAA,IAEL,UAAS;AAAA,KACDA,EAAA,qBAAmB;AAAA,IAC1B,SAAOA,EAAA;AAAA,IACP,WAAO;AAAA,QAAQA,EAAA,SAAO,CAAA,OAAA,CAAA;AAAA,UACCA,EAAA,SAAO,CAAA,SAAA,CAAA,GAAA,CAAA,OAAA,CAAA;AAAA;;eAG/B,MAAa;AAAA,MAAbK,EAAaL,EAAA,QAAA,SAAA;AAAA;;qDAGFA,EAAA,QADbC,KAAAK,EA6BI,KA7BJF,EA6BI;AAAA;IA3BF,KAAI;AAAA,IACH,OAAK,CAAA;AAAA;+BAA2CJ,EAAA;AAAA,8CAAuDA,EAAA;AAAA,6BAAgDA,EAAA;AAAA,mCAAgDA,EAAA;AAAA;4BAAiDA,EAAA,YAAY;AAAA,OAU/P,oCAAoC;AAAA,IADzC,MAAMA,EAAA;AAAA,IAEP,KAAI;AAAA,IACJ,UAAS;AAAA,KACDA,EAAA,qBAAmB;AAAA,IAC1B,mCAAOA,EAAA,WAAAA,EAAA,QAAA,GAAAO,CAAA;AAAA,IACP,WAAO;AAAA,kCAAQP,EAAA,WAAAA,EAAA,QAAA,GAAAO,CAAA,GAAO,CAAA,OAAA,CAAA;AAAA,oCACCP,EAAA,WAAAA,EAAA,QAAA,GAAAO,CAAA,GAAO,CAAA,SAAA,CAAA,GAAA,CAAA,OAAA,CAAA;AAAA;;IAG/BF,EAAaL,EAAA,QAAA,SAAA;AAAA,IAELA,EAAA,0BADRE,EAKEM,GAAA;AAAA;MAHA,OAAM;AAAA,MACN,OAAM;AAAA,MACN,MAAK;AAAA;gBAGTP,KAAAK,EAaI,KAbJF,EAaI;AAAA;IAXF,KAAI;AAAA,IACH,OAAK,CAAA,CAAA,EAAA,uBAA4BJ,EAAA,QAAO,GAAA,sBAA0BA,EAAA,YAAY,KACzE,WAAW;AAAA,IACjB,UAAS;AAAA,KACDA,EAAA,qBAAmB;AAAA,IAC1B,mCAAOA,EAAA,WAAAA,EAAA,QAAA,GAAAO,CAAA;AAAA,IACP,WAAO;AAAA,kCAAQP,EAAA,WAAAA,EAAA,QAAA,GAAAO,CAAA,GAAO,CAAA,OAAA,CAAA;AAAA,oCACCP,EAAA,WAAAA,EAAA,QAAA,GAAAO,CAAA,GAAO,CAAA,SAAA,CAAA,GAAA,CAAA,OAAA,CAAA;AAAA;;IAG/BF,EAAaL,EAAA,QAAA,SAAA;AAAA;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";const r=require("vue"),u=require("../../../common/enums/NeonFunctionalColor.cjs.js"),i=require("../../../common/enums/NeonSize.cjs.js"),s=require("../icon/NeonIcon.vue.cjs.js"),a=r.defineComponent({name:"NeonTabs",components:{NeonIcon:s},props:{tabs:{type:Array,required:!0},modelValue:{type:String,required:!0},color:{type:String,default:u.NeonFunctionalColor.Primary},size:{type:String,default:i.NeonSize.Medium},underline:{type:Boolean,default:!0}},emits:["update:modelValue"],setup(l,{emit:o}){return{onClick:(e,n=!1)=>{if(n){const t=document.getElementById(`${e}ButtonContainer`);t&&t.focus()}o("update:modelValue",e)}}}});module.exports=a;
1
+ "use strict";const o=require("vue"),s=require("../../../common/enums/NeonFunctionalColor.cjs.js"),a=require("../../../common/enums/NeonSize.cjs.js"),c=require("../icon/NeonIcon.vue.cjs.js"),d=require("../../navigation/link/NeonLink.vue.cjs.js"),m=require("../../layout/swiper/NeonSwiper.vue.cjs.js"),f=o.defineComponent({name:"NeonTabs",components:{NeonIcon:c,NeonLink:d,NeonSwiper:m},props:{tabs:{type:Array,required:!0},modelValue:{type:String,required:!0},color:{type:String,default:s.NeonFunctionalColor.Primary},size:{type:String,default:a.NeonSize.Medium},underline:{type:Boolean,default:!0},fullWidthMobile:{type:Boolean,default:!0}},emits:["update:modelValue"],setup(r,{emit:u}){const i=o.ref([]),l=(n,t=!1)=>{if(t){const e=document.getElementById(`${n}ButtonContainer`);e&&e.focus()}u("update:modelValue",n)};return o.onMounted(()=>{var t;const n=r.tabs.findIndex(e=>e.key===r.modelValue);if(n>=0){const e=(t=i.value[n])==null?void 0:t.neonLink;e&&e.scrollIntoView({block:"nearest",inline:"nearest"})}}),{onClick:l,menuItem:i}}});module.exports=f;
2
2
  //# sourceMappingURL=NeonTabs.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NeonTabs.cjs.js","sources":["../../../../src/components/presentation/tabs/NeonTabs.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { defineComponent } from 'vue';\nimport type { NeonTabModel } from '@/common/models/NeonTabModel';\nimport { NeonFunctionalColor } from '@/common/enums/NeonFunctionalColor';\nimport { NeonSize } from '@/common/enums/NeonSize';\nimport NeonIcon from '@/components/presentation/icon/NeonIcon.vue';\n\n/**\n * A component for displaying tabbed content.\n */\nexport default defineComponent({\n name: 'NeonTabs',\n components: {\n NeonIcon,\n },\n props: {\n /**\n * The list of tabs to display.\n * */\n tabs: { type: Array as () => Array<NeonTabModel>, required: true },\n /**\n * The key of the selected tab.\n */\n modelValue: { type: String, required: true },\n /**\n * The tab highlight color (excludes low-contrast).\n */\n color: { type: String as () => NeonFunctionalColor, default: NeonFunctionalColor.Primary },\n /**\n * The tab size\n */\n size: { type: String as () => NeonSize, default: NeonSize.Medium },\n /**\n * Display a border underlining all tabs. When tabs are in an element with a border-bottom it is preferable to omit the tabs border-bottom\n */\n underline: { type: Boolean, default: true },\n },\n emits: [\n /**\n * Emitted when the selected tab is changed.\n * @type {string} The key of the selected tab.\n */\n 'update:modelValue',\n ],\n setup(_props, { emit }) {\n const onClick = (key: string, changeFocus = false) => {\n if (changeFocus) {\n const tab = document.getElementById(`${key}ButtonContainer`);\n if (tab) {\n tab.focus();\n }\n }\n emit('update:modelValue', key);\n };\n\n return {\n onClick,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonIcon","NeonFunctionalColor","NeonSize","_props","emit","key","changeFocus","tab"],"mappings":"8LASAA,EAAeC,kBAAgB,CAC7B,KAAM,WACN,WAAY,CACV,SAAAC,CAAA,EAEF,MAAO,CAIL,KAAM,CAAE,KAAM,MAAoC,SAAU,EAAA,EAI5D,WAAY,CAAE,KAAM,OAAQ,SAAU,EAAA,EAItC,MAAO,CAAE,KAAM,OAAqC,QAASC,EAAAA,oBAAoB,OAAA,EAIjF,KAAM,CAAE,KAAM,OAA0B,QAASC,EAAAA,SAAS,MAAA,EAI1D,UAAW,CAAE,KAAM,QAAS,QAAS,EAAA,CAAK,EAE5C,MAAO,CAKL,mBAAA,EAEF,MAAMC,EAAQ,CAAE,KAAAC,GAAQ,CAWtB,MAAO,CACL,QAXc,CAACC,EAAaC,EAAc,KAAU,CACpD,GAAIA,EAAa,CACf,MAAMC,EAAM,SAAS,eAAe,GAAGF,CAAG,iBAAiB,EACvDE,GACFA,EAAI,MAAA,CAER,CACAH,EAAK,oBAAqBC,CAAG,CAC/B,CAGE,CAEJ,CACF,CAAC"}
1
+ {"version":3,"file":"NeonTabs.cjs.js","sources":["../../../../src/components/presentation/tabs/NeonTabs.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { defineComponent, onMounted, ref } from 'vue';\nimport type { NeonTabModel } from '@/common/models/NeonTabModel';\nimport { NeonFunctionalColor } from '@/common/enums/NeonFunctionalColor';\nimport { NeonSize } from '@/common/enums/NeonSize';\nimport NeonIcon from '@/components/presentation/icon/NeonIcon.vue';\nimport NeonLink from '@/components/navigation/link/NeonLink.vue';\nimport NeonSwiper from '@/components/layout/swiper/NeonSwiper.vue';\n\n/**\n * A component for displaying tabbed content.\n */\nexport default defineComponent({\n name: 'NeonTabs',\n components: {\n NeonIcon,\n NeonLink,\n NeonSwiper,\n },\n props: {\n /**\n * The list of tabs to display.\n * */\n tabs: { type: Array as () => Array<NeonTabModel>, required: true },\n /**\n * The key of the selected tab.\n */\n modelValue: { type: String, required: true },\n /**\n * The tab highlight color (excludes low-contrast).\n */\n color: { type: String as () => NeonFunctionalColor, default: NeonFunctionalColor.Primary },\n /**\n * The tab size\n */\n size: { type: String as () => NeonSize, default: NeonSize.Medium },\n /**\n * Display a border underlining all tabs. When tabs are in an element with a border-bottom it is preferable to omit the tabs border-bottom\n */\n underline: { type: Boolean, default: true },\n /**\n * Display tab buttons full screen width at the mobile-large breakpoint.\n */\n fullWidthMobile: { type: Boolean, default: true },\n },\n emits: [\n /**\n * Emitted when the selected tab is changed.\n * @type {string} The key of the selected tab.\n */\n 'update:modelValue',\n ],\n setup(props, { emit }) {\n const menuItem = ref<Array<typeof NeonLink>>([]);\n\n const onClick = (key: string, changeFocus = false) => {\n if (changeFocus) {\n const tab = document.getElementById(`${key}ButtonContainer`);\n if (tab) {\n tab.focus();\n }\n }\n emit('update:modelValue', key);\n };\n\n onMounted(() => {\n const selectedIndex = props.tabs.findIndex((tab) => tab.key === props.modelValue);\n\n if (selectedIndex >= 0) {\n const selectedElement = menuItem.value[selectedIndex]?.neonLink;\n\n if (selectedElement) {\n selectedElement.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n }\n });\n\n return {\n onClick,\n menuItem,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonIcon","NeonLink","NeonSwiper","NeonFunctionalColor","NeonSize","props","emit","menuItem","ref","onClick","key","changeFocus","tab","onMounted","selectedIndex","selectedElement","_a"],"mappings":"4SAWAA,EAAeC,kBAAgB,CAC7B,KAAM,WACN,WAAY,CACV,SAAAC,EACA,SAAAC,EACA,WAAAC,CAAA,EAEF,MAAO,CAIL,KAAM,CAAE,KAAM,MAAoC,SAAU,EAAA,EAI5D,WAAY,CAAE,KAAM,OAAQ,SAAU,EAAA,EAItC,MAAO,CAAE,KAAM,OAAqC,QAASC,EAAAA,oBAAoB,OAAA,EAIjF,KAAM,CAAE,KAAM,OAA0B,QAASC,EAAAA,SAAS,MAAA,EAI1D,UAAW,CAAE,KAAM,QAAS,QAAS,EAAA,EAIrC,gBAAiB,CAAE,KAAM,QAAS,QAAS,EAAA,CAAK,EAElD,MAAO,CAKL,mBAAA,EAEF,MAAMC,EAAO,CAAE,KAAAC,GAAQ,CACrB,MAAMC,EAAWC,EAAAA,IAA4B,EAAE,EAEzCC,EAAU,CAACC,EAAaC,EAAc,KAAU,CACpD,GAAIA,EAAa,CACf,MAAMC,EAAM,SAAS,eAAe,GAAGF,CAAG,iBAAiB,EACvDE,GACFA,EAAI,MAAA,CAER,CACAN,EAAK,oBAAqBI,CAAG,CAC/B,EAEAG,OAAAA,EAAAA,UAAU,IAAM,OACd,MAAMC,EAAgBT,EAAM,KAAK,UAAWO,GAAQA,EAAI,MAAQP,EAAM,UAAU,EAEhF,GAAIS,GAAiB,EAAG,CACtB,MAAMC,GAAkBC,EAAAT,EAAS,MAAMO,CAAa,IAA5B,YAAAE,EAA+B,SAEnDD,GACFA,EAAgB,eAAe,CAAE,MAAO,UAAW,OAAQ,UAAW,CAE1E,CACF,CAAC,EAEM,CACL,QAAAN,EACA,SAAAF,CAAA,CAEJ,CACF,CAAC"}
@@ -1,11 +1,15 @@
1
- import { defineComponent as r } from "vue";
2
- import { NeonFunctionalColor as i } from "../../../common/enums/NeonFunctionalColor.es.js";
3
- import { NeonSize as u } from "../../../common/enums/NeonSize.es.js";
4
- import a from "../icon/NeonIcon.vue.es.js";
5
- const c = r({
1
+ import { defineComponent as u, ref as a, onMounted as m } from "vue";
2
+ import { NeonFunctionalColor as d } from "../../../common/enums/NeonFunctionalColor.es.js";
3
+ import { NeonSize as f } from "../../../common/enums/NeonSize.es.js";
4
+ import s from "../icon/NeonIcon.vue.es.js";
5
+ import p from "../../navigation/link/NeonLink.vue.es.js";
6
+ import c from "../../layout/swiper/NeonSwiper.vue.es.js";
7
+ const g = u({
6
8
  name: "NeonTabs",
7
9
  components: {
8
- NeonIcon: a
10
+ NeonIcon: s,
11
+ NeonLink: p,
12
+ NeonSwiper: c
9
13
  },
10
14
  props: {
11
15
  /**
@@ -19,15 +23,19 @@ const c = r({
19
23
  /**
20
24
  * The tab highlight color (excludes low-contrast).
21
25
  */
22
- color: { type: String, default: i.Primary },
26
+ color: { type: String, default: d.Primary },
23
27
  /**
24
28
  * The tab size
25
29
  */
26
- size: { type: String, default: u.Medium },
30
+ size: { type: String, default: f.Medium },
27
31
  /**
28
32
  * Display a border underlining all tabs. When tabs are in an element with a border-bottom it is preferable to omit the tabs border-bottom
29
33
  */
30
- underline: { type: Boolean, default: !0 }
34
+ underline: { type: Boolean, default: !0 },
35
+ /**
36
+ * Display tab buttons full screen width at the mobile-large breakpoint.
37
+ */
38
+ fullWidthMobile: { type: Boolean, default: !0 }
31
39
  },
32
40
  emits: [
33
41
  /**
@@ -36,19 +44,28 @@ const c = r({
36
44
  */
37
45
  "update:modelValue"
38
46
  ],
39
- setup(m, { emit: t }) {
40
- return {
41
- onClick: (e, n = !1) => {
42
- if (n) {
43
- const o = document.getElementById(`${e}ButtonContainer`);
44
- o && o.focus();
45
- }
46
- t("update:modelValue", e);
47
+ setup(n, { emit: i }) {
48
+ const r = a([]), l = (t, o = !1) => {
49
+ if (o) {
50
+ const e = document.getElementById(`${t}ButtonContainer`);
51
+ e && e.focus();
52
+ }
53
+ i("update:modelValue", t);
54
+ };
55
+ return m(() => {
56
+ var o;
57
+ const t = n.tabs.findIndex((e) => e.key === n.modelValue);
58
+ if (t >= 0) {
59
+ const e = (o = r.value[t]) == null ? void 0 : o.neonLink;
60
+ e && e.scrollIntoView({ block: "nearest", inline: "nearest" });
47
61
  }
62
+ }), {
63
+ onClick: l,
64
+ menuItem: r
48
65
  };
49
66
  }
50
67
  });
51
68
  export {
52
- c as default
69
+ g as default
53
70
  };
54
71
  //# sourceMappingURL=NeonTabs.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NeonTabs.es.js","sources":["../../../../src/components/presentation/tabs/NeonTabs.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { defineComponent } from 'vue';\nimport type { NeonTabModel } from '@/common/models/NeonTabModel';\nimport { NeonFunctionalColor } from '@/common/enums/NeonFunctionalColor';\nimport { NeonSize } from '@/common/enums/NeonSize';\nimport NeonIcon from '@/components/presentation/icon/NeonIcon.vue';\n\n/**\n * A component for displaying tabbed content.\n */\nexport default defineComponent({\n name: 'NeonTabs',\n components: {\n NeonIcon,\n },\n props: {\n /**\n * The list of tabs to display.\n * */\n tabs: { type: Array as () => Array<NeonTabModel>, required: true },\n /**\n * The key of the selected tab.\n */\n modelValue: { type: String, required: true },\n /**\n * The tab highlight color (excludes low-contrast).\n */\n color: { type: String as () => NeonFunctionalColor, default: NeonFunctionalColor.Primary },\n /**\n * The tab size\n */\n size: { type: String as () => NeonSize, default: NeonSize.Medium },\n /**\n * Display a border underlining all tabs. When tabs are in an element with a border-bottom it is preferable to omit the tabs border-bottom\n */\n underline: { type: Boolean, default: true },\n },\n emits: [\n /**\n * Emitted when the selected tab is changed.\n * @type {string} The key of the selected tab.\n */\n 'update:modelValue',\n ],\n setup(_props, { emit }) {\n const onClick = (key: string, changeFocus = false) => {\n if (changeFocus) {\n const tab = document.getElementById(`${key}ButtonContainer`);\n if (tab) {\n tab.focus();\n }\n }\n emit('update:modelValue', key);\n };\n\n return {\n onClick,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonIcon","NeonFunctionalColor","NeonSize","_props","emit","key","changeFocus","tab"],"mappings":";;;;AASA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV,UAAAC;AAAA,EAAA;AAAA,EAEF,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,EAAE,MAAM,OAAoC,UAAU,GAAA;AAAA;AAAA;AAAA;AAAA,IAI5D,YAAY,EAAE,MAAM,QAAQ,UAAU,GAAA;AAAA;AAAA;AAAA;AAAA,IAItC,OAAO,EAAE,MAAM,QAAqC,SAASC,EAAoB,QAAA;AAAA;AAAA;AAAA;AAAA,IAIjF,MAAM,EAAE,MAAM,QAA0B,SAASC,EAAS,OAAA;AAAA;AAAA;AAAA;AAAA,IAI1D,WAAW,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA,EAAK;AAAA,EAE5C,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL;AAAA,EAAA;AAAA,EAEF,MAAMC,GAAQ,EAAE,MAAAC,KAAQ;AAWtB,WAAO;AAAA,MACL,SAXc,CAACC,GAAaC,IAAc,OAAU;AACpD,YAAIA,GAAa;AACf,gBAAMC,IAAM,SAAS,eAAe,GAAGF,CAAG,iBAAiB;AAC3D,UAAIE,KACFA,EAAI,MAAA;AAAA,QAER;AACA,QAAAH,EAAK,qBAAqBC,CAAG;AAAA,MAC/B;AAAA,IAGE;AAAA,EAEJ;AACF,CAAC;"}
1
+ {"version":3,"file":"NeonTabs.es.js","sources":["../../../../src/components/presentation/tabs/NeonTabs.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { defineComponent, onMounted, ref } from 'vue';\nimport type { NeonTabModel } from '@/common/models/NeonTabModel';\nimport { NeonFunctionalColor } from '@/common/enums/NeonFunctionalColor';\nimport { NeonSize } from '@/common/enums/NeonSize';\nimport NeonIcon from '@/components/presentation/icon/NeonIcon.vue';\nimport NeonLink from '@/components/navigation/link/NeonLink.vue';\nimport NeonSwiper from '@/components/layout/swiper/NeonSwiper.vue';\n\n/**\n * A component for displaying tabbed content.\n */\nexport default defineComponent({\n name: 'NeonTabs',\n components: {\n NeonIcon,\n NeonLink,\n NeonSwiper,\n },\n props: {\n /**\n * The list of tabs to display.\n * */\n tabs: { type: Array as () => Array<NeonTabModel>, required: true },\n /**\n * The key of the selected tab.\n */\n modelValue: { type: String, required: true },\n /**\n * The tab highlight color (excludes low-contrast).\n */\n color: { type: String as () => NeonFunctionalColor, default: NeonFunctionalColor.Primary },\n /**\n * The tab size\n */\n size: { type: String as () => NeonSize, default: NeonSize.Medium },\n /**\n * Display a border underlining all tabs. When tabs are in an element with a border-bottom it is preferable to omit the tabs border-bottom\n */\n underline: { type: Boolean, default: true },\n /**\n * Display tab buttons full screen width at the mobile-large breakpoint.\n */\n fullWidthMobile: { type: Boolean, default: true },\n },\n emits: [\n /**\n * Emitted when the selected tab is changed.\n * @type {string} The key of the selected tab.\n */\n 'update:modelValue',\n ],\n setup(props, { emit }) {\n const menuItem = ref<Array<typeof NeonLink>>([]);\n\n const onClick = (key: string, changeFocus = false) => {\n if (changeFocus) {\n const tab = document.getElementById(`${key}ButtonContainer`);\n if (tab) {\n tab.focus();\n }\n }\n emit('update:modelValue', key);\n };\n\n onMounted(() => {\n const selectedIndex = props.tabs.findIndex((tab) => tab.key === props.modelValue);\n\n if (selectedIndex >= 0) {\n const selectedElement = menuItem.value[selectedIndex]?.neonLink;\n\n if (selectedElement) {\n selectedElement.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n }\n });\n\n return {\n onClick,\n menuItem,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonIcon","NeonLink","NeonSwiper","NeonFunctionalColor","NeonSize","props","emit","menuItem","ref","onClick","key","changeFocus","tab","onMounted","selectedIndex","selectedElement","_a"],"mappings":";;;;;;AAWA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,YAAAC;AAAA,EAAA;AAAA,EAEF,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,EAAE,MAAM,OAAoC,UAAU,GAAA;AAAA;AAAA;AAAA;AAAA,IAI5D,YAAY,EAAE,MAAM,QAAQ,UAAU,GAAA;AAAA;AAAA;AAAA;AAAA,IAItC,OAAO,EAAE,MAAM,QAAqC,SAASC,EAAoB,QAAA;AAAA;AAAA;AAAA;AAAA,IAIjF,MAAM,EAAE,MAAM,QAA0B,SAASC,EAAS,OAAA;AAAA;AAAA;AAAA;AAAA,IAI1D,WAAW,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA;AAAA;AAAA;AAAA,IAIrC,iBAAiB,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA,EAAK;AAAA,EAElD,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL;AAAA,EAAA;AAAA,EAEF,MAAMC,GAAO,EAAE,MAAAC,KAAQ;AACrB,UAAMC,IAAWC,EAA4B,EAAE,GAEzCC,IAAU,CAACC,GAAaC,IAAc,OAAU;AACpD,UAAIA,GAAa;AACf,cAAMC,IAAM,SAAS,eAAe,GAAGF,CAAG,iBAAiB;AAC3D,QAAIE,KACFA,EAAI,MAAA;AAAA,MAER;AACA,MAAAN,EAAK,qBAAqBI,CAAG;AAAA,IAC/B;AAEA,WAAAG,EAAU,MAAM;;AACd,YAAMC,IAAgBT,EAAM,KAAK,UAAU,CAACO,MAAQA,EAAI,QAAQP,EAAM,UAAU;AAEhF,UAAIS,KAAiB,GAAG;AACtB,cAAMC,KAAkBC,IAAAT,EAAS,MAAMO,CAAa,MAA5B,gBAAAE,EAA+B;AAEvD,QAAID,KACFA,EAAgB,eAAe,EAAE,OAAO,WAAW,QAAQ,WAAW;AAAA,MAE1E;AAAA,IACF,CAAC,GAEM;AAAA,MACL,SAAAN;AAAA,MACA,UAAAF;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;"}