@dubai-design-system/components-js 3.12.9 → 3.12.10

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/cjs/dda-header.cjs.entry.js +4 -4
  2. package/dist/cjs/dda-header.cjs.entry.js.map +1 -1
  3. package/dist/cjs/dda-home-banner.cjs.entry.js +34 -5
  4. package/dist/cjs/dda-home-banner.cjs.entry.js.map +1 -1
  5. package/dist/cjs/dda-select.cjs.entry.js +2 -9
  6. package/dist/cjs/dda-select.cjs.entry.js.map +1 -1
  7. package/dist/collection/components/dda-header/dda-header-main.css +1 -0
  8. package/dist/collection/components/dda-header/dda-header.js +3 -3
  9. package/dist/collection/components/dda-header/dda-header.js.map +1 -1
  10. package/dist/collection/components/dda-home-banner/dda-home-banner.js +34 -5
  11. package/dist/collection/components/dda-home-banner/dda-home-banner.js.map +1 -1
  12. package/dist/collection/components/dda-select/dda-select.js +2 -12
  13. package/dist/collection/components/dda-select/dda-select.js.map +1 -1
  14. package/dist/components/dda-header.js +4 -4
  15. package/dist/components/dda-header.js.map +1 -1
  16. package/dist/components/dda-home-banner.js +34 -5
  17. package/dist/components/dda-home-banner.js.map +1 -1
  18. package/dist/components/dda-select.js +2 -9
  19. package/dist/components/dda-select.js.map +1 -1
  20. package/dist/dda/dda.esm.js +1 -1
  21. package/dist/dda/p-0ebdb27f.entry.js +2 -0
  22. package/dist/dda/p-0ebdb27f.entry.js.map +1 -0
  23. package/dist/dda/p-0fa24558.entry.js +2 -0
  24. package/dist/dda/p-0fa24558.entry.js.map +1 -0
  25. package/dist/dda/p-24da4601.entry.js +2 -0
  26. package/dist/dda/p-24da4601.entry.js.map +1 -0
  27. package/dist/esm/dda-header.entry.js +4 -4
  28. package/dist/esm/dda-header.entry.js.map +1 -1
  29. package/dist/esm/dda-home-banner.entry.js +34 -5
  30. package/dist/esm/dda-home-banner.entry.js.map +1 -1
  31. package/dist/esm/dda-select.entry.js +2 -9
  32. package/dist/esm/dda-select.entry.js.map +1 -1
  33. package/package.json +2 -2
  34. package/readme.md +4 -0
  35. package/www/build/dda.esm.js +1 -1
  36. package/www/build/p-0ebdb27f.entry.js +2 -0
  37. package/www/build/p-0ebdb27f.entry.js.map +1 -0
  38. package/www/build/p-0fa24558.entry.js +2 -0
  39. package/www/build/p-0fa24558.entry.js.map +1 -0
  40. package/www/build/p-24da4601.entry.js +2 -0
  41. package/www/build/p-24da4601.entry.js.map +1 -0
  42. package/dist/collection/global/global.css +0 -3007
  43. package/dist/dda/p-8a9c5267.entry.js +0 -2
  44. package/dist/dda/p-8a9c5267.entry.js.map +0 -1
  45. package/dist/dda/p-a11bf02a.entry.js +0 -2
  46. package/dist/dda/p-a11bf02a.entry.js.map +0 -1
  47. package/dist/dda/p-dc443758.entry.js +0 -2
  48. package/dist/dda/p-dc443758.entry.js.map +0 -1
  49. package/www/build/p-8a9c5267.entry.js +0 -2
  50. package/www/build/p-8a9c5267.entry.js.map +0 -1
  51. package/www/build/p-a11bf02a.entry.js +0 -2
  52. package/www/build/p-a11bf02a.entry.js.map +0 -1
  53. package/www/build/p-dc443758.entry.js +0 -2
  54. package/www/build/p-dc443758.entry.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["homeBannerCss","DdaHomeBannerStyle0","DdaHomeBanner","constructor","hostRef","this","autoplay","interval","currentSlide","slides","autoPlayActive","pausedProgressOffset","animationFrameId","componentDidLoad","updateSlides","slot","el","querySelector","addEventListener","length","playVideoInCurrentSlide","tryStart","circle","startAutoplay","animateProgress","requestAnimationFrame","disconnectedCallback","stopAutoplay","cancelAnimationFrame","componentDidRender","forEach","slide","index","classList","toggle","Array","from","querySelectorAll","video","setupTimer","durationMs","autoPlayInterval","setInterval","nextSlide","readyState","duration","once","clearInterval","toggleAutoplay","_a","offset","totalLength","getTotalLength","startRatio","play","style","window","getComputedStyle","strokeDashoffset","parseFloat","pause","currentTime","prevSlide","setSlide","onSlideChanged","start","performance","now","strokeDasharray","transition","animate","elapsed","progress","Math","min","newOffset","resetProgress","render","hasMultipleSlides","h","Host","key","class","role","type","onClick","width","height","viewBox","fill","xmlns","d","stroke","cx","cy","r","map","_","scroll_icon_size","scroll_icon_color","custom_class","component_mode"],"sources":["src/components/dda-home-banner/home-banner.css?tag=dda-home-banner","src/components/dda-home-banner/dda-home-banner.tsx"],"sourcesContent":[".dda-home-banner {\r\n width: 100%;\r\n height: calc(100vh);\r\n background-color: black;\r\n position: relative;\r\n overflow: hidden;\r\n display: block;\r\n}\r\n\r\n.dda-home-banner .dda-home-slides .dda-home-banner-slide::before {\r\n content: '';\r\n width: 100%;\r\n height: 80%;\r\n position: absolute;\r\n bottom: 0;\r\n background: rgb(0, 0, 0);\r\n background: linear-gradient(0deg, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0) 100%);\r\n z-index: 1;\r\n}\r\n\r\n.dda-home-slides {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n /* transition: all 0.7s ease-in-out; */\r\n}\r\n\r\n.dda-home-banner .dda-home-slides img,\r\n.dda-home-banner .dda-home-slides video {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n}\r\n\r\n.dda-home-banner .dda-home-slides .dda-home-banner-slide {\r\n position: relative;\r\n width: 100vw;\r\n height: 100vh;\r\n}\r\n\r\n.dda-home-banner .dda-home-slides .dda-home-banner-slide {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n opacity: 0;\r\n /* transition: opacity 1s ease-in-out; */\r\n pointer-events: none;\r\n z-index: 0;\r\n box-sizing: border-box;\r\n}\r\n\r\n.dda-home-banner .dda-home-slides .dda-home-banner-slide.active {\r\n opacity: 1;\r\n pointer-events: auto;\r\n z-index: 1;\r\n}\r\n\r\n.dda-home-banner-slider-nav {\r\n width: 100%;\r\n text-align: center;\r\n position: absolute;\r\n bottom: 279px;\r\n left: 0;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 5px;\r\n height: 30px;\r\n z-index: 3;\r\n}\r\n\r\n.dda-home-banner-slider-nav .dda-home-banner-slider-nav-content{\r\n width: 100%;\r\n text-align: center;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 15px;\r\n}\r\n\r\n.dda-home-banner-slider-nav .dda-home-banner-prev,\r\n.dda-home-banner-slider-nav .dda-home-banner-next,\r\n.dda-home-banner-slider-nav .dda-home-banner-Pause {\r\n height: 28px;\r\n width: 28px;\r\n padding: 0;\r\n margin: 0;\r\n border: 0;\r\n background: none;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: #ffffff;\r\n background: rgba(0, 0, 0, 0);\r\n border-radius: 50%;\r\n font-size: 25px;\r\n /* transition: all 0.2s linear; */\r\n}\r\n.dda-home-banner-slider-nav .dda-home-banner-prev:hover,\r\n.dda-home-banner-slider-nav .dda-home-banner-next:hover {\r\n background: rgba(0, 0, 0, 0.15);\r\n}\r\n\r\n.dda-home-banner-slider-nav .dda-home-banner-Pause span{\r\n width: 28px;\r\n height: 28px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: relative;\r\n}\r\n.dda-home-banner-slider-nav .dda-home-banner-Pause span svg.main-circle{\r\n width: 30px;\r\n height: 30px;\r\n}\r\n.dda-home-banner-slider-nav .dda-home-banner-Pause span svg.nav-play-icon{\r\n width: 10px;\r\n height: 10px;\r\n position: absolute;\r\n top: 9px;\r\n left: 9px;\r\n}\r\n.dda-home-banner-slider-nav .dda-home-banner-Pause span svg.nav-pause-icon{\r\n width: 9px;\r\n height: 9px;\r\n position: absolute;\r\n top: 9px;\r\n left: 9px;\r\n}\r\n.dda-home-banner-slider-nav ul {\r\n display: flex;\r\n align-items: center;\r\n gap: 15px;\r\n}\r\n\r\n.dda-home-banner-slider-nav .dots {\r\n display: block;\r\n width: 10px;\r\n height: 10px;\r\n background: rgba(256,256,256,0.2);\r\n overflow: hidden;\r\n text-indent: -100px;\r\n margin: 0;\r\n padding: 0;\r\n border: 0px;\r\n border-radius: 20px;\r\n cursor: pointer;\r\n /* transition: all 0.2s linear; */\r\n}\r\n\r\n.dda-home-banner-slider-nav .dots.active {\r\n background: rgba(256,256,256,0.85);\r\n}\r\n\r\n\r\n\r\n\r\n/* .dda-slider-timer-circle {\r\n transition: stroke-dashoffset 3s linear;\r\n} */\r\n\r\n\r\n[dir=\"rtl\"] .dda-home-banner-slider-nav .dda-home-banner-next i.material-icons {\r\n transform: rotate(180deg);\r\n}\r\n\r\n[dir=\"rtl\"] .dda-home-banner-slider-nav .dda-home-banner-prev i.material-icons {\r\n transform: rotate(-180deg);\r\n}\r\n\r\n\r\n\r\n\r\n/*Customizable slider content based on entity design*/\r\n.dda-home-banner .dda-slide-contant-wrap {\r\n position: relative;\r\n width: 100vw;\r\n height: 100vh;\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.dda-home-banner .dda-slide-contant {\r\n width: 90vw;\r\n margin: 0 auto;\r\n padding: 0 20px;\r\n position: relative;\r\n z-index: 1;\r\n}\r\n\r\n.dda-home-banner .dda-slide-contant h2 {\r\n font-size: var(--dda-fs-display-sm);\r\n color: #fff;\r\n font-weight: var(--dda-fw-700);\r\n}\r\n\r\n.dda-home-banner .dda-slide-contant p {\r\n font-size: var(--dda-fs-headline-sm);\r\n color: #fff;\r\n font-weight: var(--dda-fw-300);\r\n}\r\n\r\n\r\n\r\n.material-symbols-outlined {\r\n font-variation-settings:\r\n 'FILL' 1,\r\n 'wght' 400,\r\n 'GRAD' 0,\r\n 'opsz' 24\r\n}\r\n\r\n\r\n@media screen and (max-width:992px) {\r\n \r\n}\r\n@media (max-width: 1024px) {\r\n .dda-home-banner {\r\n height: calc(100vh);\r\n }\r\n .dda-home-banner .dda-slide-contant {\r\n width: 100vw;\r\n }\r\n .dda-home-banner-slider-nav {\r\n bottom: 300px;\r\n }\r\n .dda-mouse-scroll,\r\n .dda-home-banner-prev,\r\n .dda-home-banner-Pause,\r\n .dda-home-banner-next{\r\n display: none !important;\r\n }\r\n .dda-home-banner .dda-slide-contant-wrap{\r\n display: inherit;\r\n height: auto;\r\n position: absolute;\r\n bottom: 350px;\r\n }\r\n \r\n}\r\n\r\n\r\n@media (prefers-reduced-motion: no-preference) {\r\n .dda-home-slides {\r\n transition: all 0.7s ease-in-out;\r\n }\r\n .dda-home-banner .dda-home-slides .dda-home-banner-slide {\r\n transition: opacity 1s ease-in-out;\r\n }\r\n .dda-home-banner-slider-nav .dda-home-banner-prev,\r\n .dda-home-banner-slider-nav .dda-home-banner-next,\r\n .dda-home-banner-slider-nav .dda-home-banner-Pause {\r\n transition: all 0.2s linear;\r\n }\r\n .dda-home-banner-slider-nav .dots {\r\n transition: all 0.2s linear;\r\n }\r\n .dda-slider-timer-circle {\r\n transition: stroke-dashoffset 3s linear;\r\n }\r\n\r\n}","import { Host, Component, h, State, Element, Prop, Watch } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'dda-home-banner',\r\n styleUrls: ['home-banner.css'],\r\n shadow: false,\r\n})\r\nexport class DdaHomeBanner {\r\n @Element() el: HTMLElement;\r\n\r\n /** Props */\r\n @Prop() autoplay: boolean = true;\r\n @Prop() interval: number = 3000;\r\n\r\n /** States */\r\n @State() currentSlide: number = 0;\r\n @State() slides: HTMLElement[] = [];\r\n @State() autoPlayActive: boolean = true;\r\n\r\n private autoPlayInterval: any;\r\n private pausedProgressOffset: number = 0;\r\n private animationFrameId: number | null = null;\r\n\r\n // componentDidLoad() {\r\n // this.updateSlides();\r\n // const slot = this.el.querySelector('slot');\r\n // slot?.addEventListener('slotchange', () => this.updateSlides());\r\n\r\n // this.autoPlayActive = this.autoplay && this.slides.length > 1;\r\n // this.playVideoInCurrentSlide();\r\n\r\n // if (this.autoPlayActive) {\r\n // this.startAutoplay();\r\n // this.animateProgress(); // Initial animation\r\n // }\r\n // }\r\n\r\n componentDidLoad() {\r\n this.updateSlides();\r\n const slot = this.el.querySelector('slot');\r\n slot?.addEventListener('slotchange', () => this.updateSlides());\r\n\r\n this.autoPlayActive = this.autoplay && this.slides.length > 1;\r\n this.playVideoInCurrentSlide();\r\n\r\n // ✅ Wait for the DOM to fully render slides before animating\r\n if (this.autoPlayActive) {\r\n const tryStart = () => {\r\n const circle = this.el.querySelector('.circle-loader');\r\n if (circle) {\r\n this.startAutoplay();\r\n this.animateProgress();\r\n } else {\r\n requestAnimationFrame(tryStart);\r\n }\r\n };\r\n tryStart();\r\n }\r\n}\r\n\r\n disconnectedCallback() {\r\n this.stopAutoplay();\r\n if (this.animationFrameId) {\r\n cancelAnimationFrame(this.animationFrameId);\r\n }\r\n }\r\n\r\n componentDidRender() {\r\n this.slides.forEach((slide, index) => {\r\n slide.classList.toggle('active', index === this.currentSlide);\r\n });\r\n }\r\n\r\n updateSlides() {\r\n this.slides = Array.from(this.el.querySelectorAll('.dda-home-banner-slide'));\r\n if (this.slides.length > 0) {\r\n this.currentSlide = 0;\r\n }\r\n\r\n // Disable autoplay if there's only one slide\r\n if (this.slides.length <= 1) {\r\n this.autoPlayActive = false;\r\n this.stopAutoplay();\r\n }\r\n }\r\n\r\n startAutoplay() {\r\n this.stopAutoplay();\r\n\r\n if (this.autoPlayActive && this.slides.length > 1) {\r\n const slide = this.slides[this.currentSlide];\r\n const video = slide?.querySelector('video') as HTMLVideoElement;\r\n\r\n const setupTimer = (durationMs: number) => {\r\n this.autoPlayInterval = setInterval(() => {\r\n this.nextSlide();\r\n }, durationMs);\r\n this.animateProgress(1); // animate full ring\r\n };\r\n\r\n if (video) {\r\n if (video.readyState >= 1) {\r\n setupTimer(video.duration * 1000);\r\n } else {\r\n video.addEventListener(\r\n 'loadedmetadata',\r\n () => {\r\n setupTimer(video.duration * 1000);\r\n },\r\n { once: true }\r\n );\r\n }\r\n } else {\r\n setupTimer(this.interval);\r\n }\r\n }\r\n }\r\n\r\n stopAutoplay() {\r\n if (this.autoPlayInterval) {\r\n clearInterval(this.autoPlayInterval);\r\n this.autoPlayInterval = null;\r\n }\r\n }\r\n\r\n toggleAutoplay() {\r\n const circle = this.el.querySelector('.circle-loader') as SVGPathElement;\r\n const video = this.slides[this.currentSlide]?.querySelector('video') as HTMLVideoElement;\r\n\r\n this.autoPlayActive = !this.autoPlayActive;\r\n\r\n if (this.autoPlayActive) {\r\n this.startAutoplay();\r\n\r\n const offset = this.pausedProgressOffset;\r\n const totalLength = circle?.getTotalLength() || 1;\r\n const startRatio = offset / totalLength;\r\n\r\n if (video) video.play();\r\n this.animateProgress(startRatio);\r\n } else {\r\n this.stopAutoplay();\r\n\r\n if (this.animationFrameId) {\r\n cancelAnimationFrame(this.animationFrameId);\r\n this.animationFrameId = null;\r\n }\r\n\r\n if (circle) {\r\n const style = window.getComputedStyle(circle);\r\n const strokeDashoffset = parseFloat(style.strokeDashoffset || '0');\r\n this.pausedProgressOffset = strokeDashoffset;\r\n }\r\n\r\n if (video) video.pause();\r\n }\r\n }\r\n\r\n playVideoInCurrentSlide() {\r\n this.slides.forEach((slide, index) => {\r\n const video = slide.querySelector('video') as HTMLVideoElement;\r\n if (video) {\r\n if (index === this.currentSlide) {\r\n video.currentTime = 0;\r\n video.play();\r\n } else {\r\n video.pause();\r\n }\r\n }\r\n });\r\n }\r\n\r\n nextSlide() {\r\n this.currentSlide = (this.currentSlide + 1) % this.slides.length;\r\n }\r\n\r\n prevSlide() {\r\n this.currentSlide = (this.currentSlide - 1 + this.slides.length) % this.slides.length;\r\n }\r\n\r\n setSlide(index: number) {\r\n this.currentSlide = index;\r\n }\r\n\r\n @Watch('currentSlide')\r\n onSlideChanged() {\r\n this.animateProgress();\r\n this.playVideoInCurrentSlide();\r\n this.startAutoplay(); // restart with correct duration\r\n }\r\n\r\n animateProgress(startRatio = 1) {\r\n const circle = this.el.querySelector('.circle-loader') as SVGPathElement;\r\n if (!circle) return;\r\n\r\n const length = circle.getTotalLength();\r\n const slide = this.slides[this.currentSlide];\r\n const video = slide?.querySelector('video') as HTMLVideoElement;\r\n const duration = (video && video.duration ? video.duration * 1000 : this.interval) * startRatio;\r\n const start = performance.now();\r\n this.pausedProgressOffset = length * startRatio;\r\n\r\n circle.style.strokeDasharray = `${length}`;\r\n circle.style.strokeDashoffset = `${this.pausedProgressOffset}`;\r\n circle.style.transition = 'none';\r\n\r\n const animate = (now: number) => {\r\n const elapsed = now - start;\r\n const progress = Math.min(elapsed / duration, 1);\r\n const newOffset = length * (1 - progress) * startRatio;\r\n circle.style.strokeDashoffset = `${newOffset}`;\r\n\r\n if (progress < 1) {\r\n this.animationFrameId = requestAnimationFrame(animate);\r\n }\r\n };\r\n\r\n if (this.animationFrameId) {\r\n cancelAnimationFrame(this.animationFrameId);\r\n }\r\n this.animationFrameId = requestAnimationFrame(animate);\r\n }\r\n\r\n resetProgress() {\r\n const circle = this.el.querySelector('.circle-loader') as SVGPathElement;\r\n if (circle) {\r\n const length = circle.getTotalLength();\r\n circle.style.transition = 'none';\r\n circle.style.strokeDashoffset = `${length}`;\r\n this.pausedProgressOffset = length;\r\n }\r\n }\r\n\r\n render() {\r\n const hasMultipleSlides = this.slides.length > 1;\r\n\r\n return (\r\n <Host>\r\n <div class=\"dda-home-banner\" role=\"region\" aria-label=\"Homepage banner with slides\">\r\n <div class=\"dda-home-slides\" role=\"list\" aria-live=\"polite\" aria-atomic=\"true\">\r\n <slot></slot>\r\n </div>\r\n\r\n <div class=\"dda-home-banner-slider-nav\">\r\n {hasMultipleSlides && (\r\n <div class=\"dda-home-banner-slider-nav-content\">\r\n <button\r\n type=\"button\"\r\n class=\"dda-home-banner-prev\"\r\n onClick={() => this.prevSlide()}\r\n >\r\n <i class=\"material-icons\" aria-hidden=\"true\">chevron_left</i>\r\n <span class=\"visually-hidden\">Previous slide</span>\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n class=\"dda-home-banner-Pause\"\r\n onClick={() => this.toggleAutoplay()}\r\n aria-pressed={this.autoPlayActive ? 'true' : 'false'}\r\n aria-label={this.autoPlayActive ? 'Pause slideshow autoplay' : 'Play slideshow autoplay'}\r\n >\r\n <span>\r\n <svg\r\n class=\"main-circle\"\r\n width=\"25\"\r\n height=\"26\"\r\n viewBox=\"0 0 25 26\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n class=\"circle-loader\"\r\n d=\"M8.61616 4.62474C9.35885 4.35949 10.4729 3.92017 12.146 3.92017C16.7619 3.92017 21.1489 7.55969 21.1489 12.9247C20.9849 18.8126 16.4271 21.9202 12.146 21.9202C7.78471 21.9202 3.16382 18.5036 3.16382 12.9601C3.16382 11.8748 3.2148 11.4931 3.48806 10.4602\"\r\n stroke=\"white\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n />\r\n <circle class=\"dott\" cx=\"5.17456\" cy=\"6.92017\" r=\"1.44751\" fill=\"white\" />\r\n </svg>\r\n {this.autoPlayActive ? (\r\n <svg\r\n class=\"nav-pause-icon\"\r\n width=\"7\"\r\n height=\"7\"\r\n viewBox=\"0 0 7 7\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n aria-hidden=\"true\"\r\n >\r\n <path d=\"M0.482666 0.548584H2.48267V6.54858H0.482666V0.548584Z\" fill=\"white\" />\r\n <path d=\"M4.47974 0.548584H6.47974V6.54858H4.47974V0.548584Z\" fill=\"white\" />\r\n </svg>\r\n ) : (\r\n <svg\r\n class=\"nav-play-icon\"\r\n width=\"9\"\r\n height=\"9\"\r\n viewBox=\"0 0 9 9\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M7.9682 3.68255C8.63487 4.06745 8.63487 5.0297 7.9682 5.4146L2.31372 8.67922C1.64705 9.06412 0.813721 8.58299 0.813721 7.81319L0.813721 1.28396C0.813721 0.51416 1.64705 0.0330374 2.31372 0.417938L7.9682 3.68255Z\"\r\n fill=\"white\"\r\n />\r\n </svg>\r\n )}\r\n </span>\r\n </button>\r\n\r\n <ul aria-label=\"Select slide\">\r\n {this.slides.map((_, index) => (\r\n <li key={index}>\r\n <button\r\n type=\"button\"\r\n class={this.currentSlide === index ? 'dots active' : 'dots'}\r\n onClick={() => this.setSlide(index)}\r\n aria-label={`Go to slide ${index + 1}`}\r\n aria-current={this.currentSlide === index ? 'true' : 'false'}\r\n ></button>\r\n </li>\r\n ))}\r\n </ul>\r\n\r\n <button\r\n type=\"button\"\r\n class=\"dda-home-banner-next\"\r\n onClick={() => this.nextSlide()}\r\n aria-label=\"Next slide\"\r\n >\r\n <i class=\"material-icons\" aria-hidden=\"true\">chevron_right</i>\r\n <span class=\"visually-hidden\">Next slide</span>\r\n </button>\r\n </div>\r\n )}\r\n\r\n <div class=\"dda-mouse-scroll\">\r\n <dda-scroll-icon\r\n scroll_icon_size=\"sm\"\r\n scroll_icon_color=\"white\"\r\n custom_class=\"\"\r\n component_mode=\"\"\r\n class=\"hydrated\"\r\n aria-hidden=\"true\"\r\n ></dda-scroll-icon>\r\n </div>\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as t,c as s,h as e,H as i,g as a}from"./p-1b339a0a.js";const h=class{constructor(e){t(this,e);this.selectChanged=s(this,"selectChanged",7);this.onChanged=s(this,"onChanged",7);this.selectBlurred=s(this,"selectBlurred",7);this.onBlurred=s(this,"onBlurred",7);this.disabled=false;this.validation_id="text";this.custom_class="";this.placeholder="";this.main_aria_label="";this.input_name="";this.is_open=false;this.handleClickOutside=t=>{if(this.is_open&&!this.el.contains(t.target)){this.is_open=false}};this.handleBlur=()=>{this.selectBlurred.emit({name:this.input_name||this.button_id,value:this.selectedText||""});this.onBlurred.emit(this.selectedId);this.el.dispatchEvent(new FocusEvent("blur",{bubbles:true,composed:true}))}}get parsedOptions(){try{return JSON.parse(this.options)}catch(t){return[]}}componentWillLoad(){const t=this.parsedOptions.find((t=>t.id.toString()===this.selected||t.text===this.selected));if(t){this.selectedId=t.id;this.selectedText=t.text}if(this.selected){this.watchSelected(this.selected)}}toggleSelect(){if(!this.disabled){this.is_open=!this.is_open}}selectOption(t){if(!this.disabled){this.selectedId=t.id;this.selectedText=t.text;this.is_open=false;this.selectChanged.emit(t);this.onChanged.emit(t.id);this.el.dispatchEvent(new InputEvent("input",{bubbles:true,composed:true,data:t.id,inputType:"select"}))}}connectedCallback(){document.addEventListener("click",this.handleClickOutside)}disconnectedCallback(){document.removeEventListener("click",this.handleClickOutside)}async setSelected(t){const s=this.parsedOptions.find((s=>s.id.toString()===t.toString()||s.text===t));if(s){this.selectedId=s.id;this.selectedText=s.text;this.selected=s.id.toString()}else{this.selectedId=undefined;this.selectedText="";this.selected=""}}async setValue(t){const s=this.parsedOptions.find((s=>s.id.toString()===t.toString()||s.text===t));if(s){this.selectedId=s.id;this.selectedText=s.text;this.selected=s.id.toString()}else{this.selectedId=undefined;this.selectedText="";this.selected=""}}async getSelectedText(){return this.selectedText}async getValue(){return this.selectedText||""}watchSelected(t){const s=this.parsedOptions.find((s=>s.id.toString()===t||s.text===t));if(s){this.selectedId=s.id;this.selectedText=s.text}else{this.selectedId=undefined;this.selectedText=""}}numberToWord(t){const s=["One","Two","Three","Four","Five"];return s[t-1]||t.toString()}render(){const t=`${this.button_id}-label`;const s=`${this.button_id}-value`;return e(i,{key:"ecf43cd602ef0f98974d1c76cfd50ac7357b6a08"},e("div",{key:"4c15c3048ad62d235b7259cbf3f39921909ce5e5",class:`\n dda-input-container ${this.custom_class} \n ${this.component_mode} \n ${this.disabled?"dda-input-disabled":""} \n dda-input-size-${this.size} dda-validation-${this.validation_type}\n `},this.label&&e("span",{key:"e58cda1941ef732a951dc06f7c01f7d904a1c8c3",id:t,class:"dda-input-label"},this.label),e("div",{key:"6885ef524717d3b8f9850b3995f56ae5194e748a",class:"dda-dropdown-container"},e("button",{key:"a4e6e30acdf55e12aa4742f9dc824c9e1eec0b57",name:this.toggle_button_name,id:this.button_id,type:"button",class:"dda-input-field dda-select-header","aria-labelledby":`${t} ${this.button_id}`,disabled:this.disabled,onClick:()=>this.toggleSelect(),onBlur:this.handleBlur},e("span",{key:"8f67e50593affdb2b558200091c2aecd53e9c387",id:s,class:"dda-select-button-label"},this.selectedText||this.placeholder),e("i",{key:"423ca7dcd2b51118ffa5e5cddaa86d05ae981e5d",class:"material-icons","aria-hidden":"true"},this.is_open?"keyboard_arrow_up":"keyboard_arrow_down")),this.is_open&&e("div",{key:"ffcefb669f4400f26ffff871092cf22ac977a2d4",class:"dda-input-dropdown-list dda-select-list"},this.parsedOptions.length>0?this.parsedOptions.map(((t,s)=>e("button",{name:`option${this.numberToWord(s+1)}`,type:"button",class:`dda-input-dropdown-item ${this.selectedId===t.id?"selected":""}`,role:"option","aria-selected":this.selectedId===t.id?"true":"false",onClick:()=>this.selectOption(t)},t.text))):e("div",{class:"dda-input-dropdown-item"},"No options available"))),this.validation_type==="error"&&this.error_message?e("span",{class:"dda-error-message",id:this.validation_id,role:"alert"},this.error_message):this.helper_text&&e("span",{class:"dda-helper-text",id:this.validation_id},this.helper_text)))}get el(){return a(this)}static get watchers(){return{selected:["watchSelected"]}}};export{h as dda_select};
2
+ //# sourceMappingURL=p-24da4601.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Ddaselect","constructor","hostRef","this","disabled","validation_id","custom_class","placeholder","main_aria_label","input_name","is_open","handleClickOutside","event","el","contains","target","handleBlur","selectBlurred","emit","name","button_id","value","selectedText","onBlurred","selectedId","dispatchEvent","FocusEvent","bubbles","composed","parsedOptions","JSON","parse","options","_a","componentWillLoad","selectedOption","find","opt","id","toString","selected","text","watchSelected","toggleSelect","selectOption","option","selectChanged","onChanged","InputEvent","data","inputType","connectedCallback","document","addEventListener","disconnectedCallback","removeEventListener","setSelected","undefined","setValue","getSelectedText","getValue","newVal","numberToWord","num","words","render","labelId","valueId","h","Host","key","class","component_mode","size","validation_type","label","toggle_button_name","type","onClick","onBlur","length","map","index","role","error_message","helper_text"],"sources":["src/components/dda-select/dda-select.tsx"],"sourcesContent":["import { Component, Prop, State, h, Host, Element, Event, EventEmitter, Watch, Method } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'dda-select',\r\n // styleUrls: ['../../global/input.css', '../../global/global.css'],\r\n shadow: false,\r\n})\r\nexport class Ddaselect {\r\n @Element() el: HTMLElement;\r\n\r\n @Prop() label: string;\r\n @Prop() options: string;\r\n @Prop() selected: string; // can be id or text\r\n @Prop() disabled: boolean = false;\r\n @Prop() error?: string;\r\n @Prop() error_message: string;\r\n @Prop() helper_text: string;\r\n @Prop() validation_type?: string;\r\n @Prop() validation_id: string = 'text';\r\n @Prop() size?: string;\r\n @Prop() custom_class?: string = '';\r\n @Prop() component_mode?: string;\r\n @Prop() button_id: string;\r\n @Prop() toggle_button_name: string;\r\n @Prop() option_select_button_name: string;\r\n @Prop() placeholder: string = '';\r\n @Prop() main_aria_label: string = '';\r\n @Prop() input_name: string = '';\r\n\r\n @State() is_open: boolean = false;\r\n @State() selectedId: number;\r\n @State() selectedText: string;\r\n\r\n @Event() selectChanged: EventEmitter<{ id: number; text: string }>;\r\n @Event() onChanged: EventEmitter<any>;\r\n\r\n @Event() selectBlurred: EventEmitter<{ name: string; value: string }>;\r\n @Event() onBlurred: EventEmitter<any>;\r\n\r\n private get parsedOptions(): { id: number; text: string }[] {\r\n try {\r\n return JSON.parse(this.options);\r\n } catch {\r\n return [];\r\n }\r\n }\r\n\r\n componentWillLoad() {\r\n const selectedOption = this.parsedOptions.find(opt => opt.id.toString() === this.selected || opt.text === this.selected);\r\n if (selectedOption) {\r\n this.selectedId = selectedOption.id;\r\n this.selectedText = selectedOption.text;\r\n }\r\n if (this.selected) {\r\n this.watchSelected(this.selected);\r\n }\r\n }\r\n\r\n toggleSelect() {\r\n if (!this.disabled) {\r\n this.is_open = !this.is_open;\r\n }\r\n }\r\n\r\n selectOption(option: { id: any; text: string }) {\r\n if (!this.disabled) {\r\n this.selectedId = option.id;\r\n this.selectedText = option.text;\r\n this.is_open = false;\r\n this.selectChanged.emit(option);\r\n this.onChanged.emit(option.id);\r\n\r\n this.el.dispatchEvent(\r\n new InputEvent('input', {\r\n bubbles: true,\r\n composed: true,\r\n data: option.id,\r\n inputType: 'select',\r\n }),\r\n );\r\n }\r\n }\r\n\r\n handleClickOutside = (event: MouseEvent) => {\r\n if (this.is_open && !this.el.contains(event.target as Node)) {\r\n this.is_open = false;\r\n }\r\n };\r\n\r\n handleBlur = () => {\r\n this.selectBlurred.emit({\r\n name: this.input_name || this.button_id,\r\n value: this.selectedText || '',\r\n });\r\n this.onBlurred.emit(this.selectedId);\r\n\r\n this.el.dispatchEvent(\r\n new FocusEvent('blur', {\r\n bubbles: true,\r\n composed: true,\r\n }),\r\n );\r\n };\r\n\r\n connectedCallback() {\r\n document.addEventListener('click', this.handleClickOutside);\r\n }\r\n\r\n disconnectedCallback() {\r\n document.removeEventListener('click', this.handleClickOutside);\r\n }\r\n\r\n @Method()\r\n async setSelected(value: string | number) {\r\n const selectedOption = this.parsedOptions.find(opt => opt.id.toString() === value.toString() || opt.text === value);\r\n\r\n if (selectedOption) {\r\n this.selectedId = selectedOption.id;\r\n this.selectedText = selectedOption.text;\r\n this.selected = selectedOption.id.toString();\r\n } else {\r\n this.selectedId = undefined;\r\n this.selectedText = '';\r\n this.selected = '';\r\n }\r\n }\r\n\r\n async setValue(value: string | number) {\r\n const selectedOption = this.parsedOptions.find(opt => opt.id.toString() === value.toString() || opt.text === value);\r\n\r\n if (selectedOption) {\r\n this.selectedId = selectedOption.id;\r\n this.selectedText = selectedOption.text;\r\n this.selected = selectedOption.id.toString();\r\n } else {\r\n this.selectedId = undefined;\r\n this.selectedText = '';\r\n this.selected = '';\r\n }\r\n }\r\n\r\n @Method()\r\n async getSelectedText() {\r\n return this.selectedText;\r\n }\r\n\r\n async getValue() {\r\n return this.selectedText || '';\r\n }\r\n\r\n @Watch('selected')\r\n watchSelected(newVal: string) {\r\n const selectedOption = this.parsedOptions.find(opt => opt.id.toString() === newVal || opt.text === newVal);\r\n\r\n if (selectedOption) {\r\n this.selectedId = selectedOption.id;\r\n this.selectedText = selectedOption.text;\r\n } else {\r\n this.selectedId = undefined;\r\n this.selectedText = '';\r\n }\r\n }\r\n\r\n private numberToWord(num: number): string {\r\n const words = ['One', 'Two', 'Three', 'Four', 'Five'];\r\n return words[num - 1] || num.toString();\r\n }\r\n\r\n render() {\r\n const labelId = `${this.button_id}-label`;\r\n const valueId = `${this.button_id}-value`;\r\n\r\n return (\r\n <Host>\r\n <div\r\n class={`\r\n dda-input-container ${this.custom_class} \r\n ${this.component_mode} \r\n ${this.disabled ? 'dda-input-disabled' : ''} \r\n dda-input-size-${this.size} dda-validation-${this.validation_type}\r\n `}\r\n >\r\n {this.label && (\r\n <span id={labelId} class=\"dda-input-label\">\r\n {this.label}\r\n </span>\r\n )}\r\n <div class=\"dda-dropdown-container\">\r\n <button\r\n name={this.toggle_button_name}\r\n id={this.button_id}\r\n type=\"button\"\r\n class=\"dda-input-field dda-select-header\"\r\n aria-labelledby={`${labelId} ${this.button_id}`}\r\n disabled={this.disabled}\r\n onClick={() => this.toggleSelect()}\r\n onBlur={this.handleBlur}\r\n >\r\n <span id={valueId} class=\"dda-select-button-label\">\r\n {this.selectedText || this.placeholder}\r\n </span>\r\n <i class=\"material-icons\" aria-hidden=\"true\">\r\n {this.is_open ? 'keyboard_arrow_up' : 'keyboard_arrow_down'}\r\n </i>\r\n </button>\r\n\r\n {this.is_open && (\r\n <div class=\"dda-input-dropdown-list dda-select-list\">\r\n {this.parsedOptions.length > 0 ? (\r\n this.parsedOptions.map((option, index) => (\r\n <button\r\n name={`option${this.numberToWord(index + 1)}`}\r\n type=\"button\"\r\n class={`dda-input-dropdown-item ${this.selectedId === option.id ? 'selected' : ''}`}\r\n role=\"option\"\r\n aria-selected={this.selectedId === option.id ? 'true' : 'false'}\r\n onClick={() => this.selectOption(option)}\r\n >\r\n {option.text}\r\n </button>\r\n ))\r\n ) : (\r\n <div class=\"dda-input-dropdown-item\">No options available</div>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {this.validation_type === 'error' && this.error_message ? (\r\n <span class=\"dda-error-message\" id={this.validation_id} role=\"alert\">\r\n {this.error_message}\r\n </span>\r\n ) : (\r\n this.helper_text && (\r\n <span class=\"dda-helper-text\" id={this.validation_id}>\r\n {this.helper_text}\r\n </span>\r\n )\r\n )}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}