@orangesk/orange-design-system 2.0.0-alpha.0 → 2.0.0-alpha.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.
- package/build/404.html +1 -1
- package/build/_next/static/CRhIjUFtohDOfdDfzvfXM/_buildManifest.js +1 -0
- package/build/_next/static/chunks/925.75d0c8afa7ab7cfa.js +1 -0
- package/build/_next/static/chunks/998-a45c3cf6f575e126.js +1 -0
- package/build/_next/static/chunks/app/components/alert/page-d591b03a7394f81e.js +1 -0
- package/build/_next/static/chunks/app/components/button/page-b922a8f5114b0a69.js +1 -0
- package/build/_next/static/chunks/app/components/buttons/page-0a5bf7e5ac7991fb.js +1 -0
- package/build/_next/static/chunks/app/components/icon/page-dac6ba29b85d924d.js +1 -0
- package/build/_next/static/chunks/app/components/modal/page-4a249b6d271eea91.js +1 -0
- package/build/_next/static/chunks/app/components/tabs/page-7d82e8eafd25b86e.js +1 -0
- package/build/_next/static/chunks/app/layout-f74d44a2772d8d63.js +1 -0
- package/build/_next/static/chunks/app/page-9efa16a51ef59461.js +1 -0
- package/build/_next/static/chunks/webpack-623f6e616651e1c0.js +1 -0
- package/build/_next/static/css/14f3a3e0186fb7a8.css +3 -0
- package/build/_next/static/css/168dd2b7e791cf72.css +1 -0
- package/build/_next/static/css/28a41a1d7dcdbfd9.css +1 -0
- package/build/_next/static/css/291602d64f1f3570.css +1 -0
- package/build/_next/static/css/4c4366b3963177f0.css +1 -0
- package/build/_next/static/css/5481aeac9adca710.css +1 -0
- package/build/_next/static/css/73b136688c14b891.css +1 -0
- package/build/_next/static/css/91c8cf755bf9ff19.css +1 -0
- package/build/_next/static/css/c1b0424033f305ff.css +1 -0
- package/build/_next/static/css/eea9fd9ccdd56c76.css +1 -0
- package/build/_next/static/media/671791babd225be4-s.p.woff2 +0 -0
- package/build/_next/static/media/c62d990acddde5f0-s.p.woff2 +0 -0
- package/build/_next/static/media/dfdbb1c4973e0bd7-s.p.woff2 +0 -0
- package/build/components/Accordion/index.js +1170 -0
- package/build/components/Accordion/index.js.map +1 -0
- package/build/components/Accordion/style.css +2 -0
- package/build/components/Accordion/style.css.map +1 -0
- package/build/components/Alert/index.js +1920 -0
- package/build/components/Alert/index.js.map +1 -0
- package/build/components/Alert/style.css +2 -0
- package/build/components/Alert/style.css.map +1 -0
- package/build/components/Badge/index.js +6 -3
- package/build/components/Badge/index.js.map +1 -1
- package/build/components/Badge/style.css +1 -1
- package/build/components/Badge/style.css.map +1 -1
- package/build/components/Breadcrumbs/index.js +687 -0
- package/build/components/Breadcrumbs/index.js.map +1 -0
- package/build/components/Breadcrumbs/style.css +2 -0
- package/build/components/Breadcrumbs/style.css.map +1 -0
- package/build/components/Button/index.js +734 -0
- package/build/components/Button/index.js.map +1 -0
- package/build/components/Button/style.css +2 -0
- package/build/components/Button/style.css.map +1 -0
- package/build/components/Buttons/index.js +614 -0
- package/build/components/Buttons/index.js.map +1 -0
- package/build/components/Buttons/style.css +2 -0
- package/build/components/Buttons/style.css.map +1 -0
- package/build/components/Container/index.js +611 -0
- package/build/components/Container/index.js.map +1 -0
- package/build/components/Container/style.css +2 -0
- package/build/components/Container/style.css.map +1 -0
- package/build/components/Grid/index.js +1082 -0
- package/build/components/Grid/index.js.map +1 -0
- package/build/components/Grid/style.css +2 -0
- package/build/components/Grid/style.css.map +1 -0
- package/build/components/Icon/index.js +628 -0
- package/build/components/Icon/index.js.map +1 -0
- package/build/components/Icon/style.css +2 -0
- package/build/components/Icon/style.css.map +1 -0
- package/build/components/Image/index.js +659 -0
- package/build/components/Image/index.js.map +1 -0
- package/build/components/Image/style.css +2 -0
- package/build/components/Image/style.css.map +1 -0
- package/build/components/Link/index.js +173 -0
- package/build/components/Link/index.js.map +1 -0
- package/build/components/Link/style.css +2 -0
- package/build/components/Link/style.css.map +1 -0
- package/build/components/Modal/index.js +3170 -0
- package/build/components/Modal/index.js.map +1 -0
- package/build/components/Modal/style.css +2 -0
- package/build/components/Modal/style.css.map +1 -0
- package/build/components/Section/index.js +632 -0
- package/build/components/Section/index.js.map +1 -0
- package/build/components/Section/style.css +2 -0
- package/build/components/Section/style.css.map +1 -0
- package/build/components/Tabs/index.js +1056 -0
- package/build/components/Tabs/index.js.map +1 -0
- package/build/components/Tabs/style.css +2 -0
- package/build/components/Tabs/style.css.map +1 -0
- package/build/components/alert.html +2 -0
- package/build/components/alert.txt +30 -0
- package/build/components/badge.html +4 -1
- package/build/components/badge.txt +23 -18
- package/build/components/button.html +2 -0
- package/build/components/button.txt +27 -0
- package/build/components/buttons.html +1 -0
- package/build/components/buttons.txt +27 -0
- package/build/components/icon.html +1 -0
- package/build/components/icon.txt +23 -0
- package/build/components/index.css +1 -1
- package/build/components/index.css.map +1 -1
- package/build/components/index.js +3079 -17
- package/build/components/index.js.map +1 -1
- package/build/components/modal.html +1 -0
- package/build/components/modal.txt +29 -0
- package/build/components/static.js +1261 -17
- package/build/components/static.js.map +1 -1
- package/build/components/tabs.html +1 -0
- package/build/components/tabs.txt +27 -0
- package/build/components/types/components/Alert/Alert.d.ts +25 -0
- package/build/components/types/components/Alert/data.d.ts +7 -0
- package/build/components/types/components/Alert/index.d.ts +2 -0
- package/build/components/types/{Badge → components/Badge}/Badge.d.ts +2 -2
- package/build/components/types/components/Badge/index.d.ts +2 -0
- package/build/components/types/components/Button/Button.d.ts +25 -0
- package/build/components/types/components/Button/IconButton.d.ts +18 -0
- package/build/components/types/components/Button/index.d.ts +17 -0
- package/build/components/types/components/Buttons/Buttons.d.ts +8 -0
- package/build/components/types/components/Buttons/index.d.ts +2 -0
- package/build/components/types/components/Container/Container.d.ts +6 -0
- package/build/components/types/components/Container/index.d.ts +3 -0
- package/build/components/types/components/Icon/Icon.d.ts +18 -0
- package/build/components/types/components/Icon/SpritePathContext.d.ts +8 -0
- package/build/components/types/components/Icon/index.d.ts +3 -0
- package/build/components/types/components/Modal/Modal.d.ts +33 -0
- package/build/components/types/components/Modal/Modal.static.d.ts +33 -0
- package/build/components/types/components/Modal/ModalBody.d.ts +10 -0
- package/build/components/types/components/Modal/ModalCloseButton.d.ts +8 -0
- package/build/components/types/components/Modal/ModalTitle.d.ts +9 -0
- package/build/components/types/components/Modal/index.d.ts +5 -0
- package/build/components/types/components/Section/Section.d.ts +23 -0
- package/build/components/types/components/Section/index.d.ts +2 -0
- package/build/components/types/components/Tabs/Tab.d.ts +13 -0
- package/build/components/types/components/Tabs/TabPanel.d.ts +14 -0
- package/build/components/types/components/Tabs/Tabs.d.ts +33 -0
- package/build/components/types/components/Tabs/Tabs.static.d.ts +28 -0
- package/build/components/types/components/Tabs/index.d.ts +4 -0
- package/build/components/types/components/index.d.ts +11 -0
- package/build/components/types/utils/ConditionalWrapper.d.ts +13 -0
- package/build/components/types/utils/constants.d.ts +18 -0
- package/build/components/types/utils/generateId.d.ts +6 -0
- package/build/components/types/utils/hooks.d.ts +29 -0
- package/build/components/types/utils/keyboard.d.ts +14 -0
- package/build/fonts/HelveticaNeue-Bold.woff2 +0 -0
- package/build/fonts/HelveticaNeue-Light.woff2 +0 -0
- package/build/fonts/HelveticaNeue-Roman.woff2 +0 -0
- package/build/index.html +11 -46
- package/build/index.txt +22 -17
- package/build/lib/after-components.css +1 -1
- package/build/lib/after-components.css.map +1 -1
- package/build/lib/before-components.css +1 -1
- package/build/lib/before-components.css.map +1 -1
- package/build/lib/components.css +1 -1
- package/build/lib/components.css.map +1 -1
- package/build/lib/fonts.css +1 -1
- package/build/lib/fonts.css.map +1 -1
- package/build/lib/scripts.js +1261 -17
- package/build/lib/scripts.js.map +1 -1
- package/build/lib/style.css +1 -1
- package/build/lib/style.css.map +1 -1
- package/build/sprite.svg +1 -0
- package/package.json +8 -4
- package/public/fonts/HelveticaNeue-Bold.woff2 +0 -0
- package/public/fonts/HelveticaNeue-Light.woff2 +0 -0
- package/public/fonts/HelveticaNeue-Roman.woff2 +0 -0
- package/src/assets/icons/4g.svg +1 -0
- package/src/assets/icons/5g.svg +1 -0
- package/src/assets/icons/accessibility-mobility.svg +1 -0
- package/src/assets/icons/accessibility-motor.svg +1 -0
- package/src/assets/icons/accessibility-vision.svg +1 -0
- package/src/assets/icons/accessibility.svg +1 -0
- package/src/assets/icons/add.svg +1 -0
- package/src/assets/icons/advertising.svg +1 -0
- package/src/assets/icons/aeroplane.svg +1 -0
- package/src/assets/icons/age-rating-3.svg +1 -0
- package/src/assets/icons/airbox-auto.svg +1 -0
- package/src/assets/icons/alias-numbers.svg +1 -0
- package/src/assets/icons/android-manage.svg +1 -0
- package/src/assets/icons/antenna.svg +1 -0
- package/src/assets/icons/apartment-building.svg +1 -0
- package/src/assets/icons/apps.svg +1 -0
- package/src/assets/icons/assistance.svg +1 -0
- package/src/assets/icons/assistent.svg +1 -0
- package/src/assets/icons/at.svg +1 -0
- package/src/assets/icons/avatar.svg +1 -0
- package/src/assets/icons/backup-internet.svg +1 -0
- package/src/assets/icons/bank.svg +1 -0
- package/src/assets/icons/battery-charging.svg +1 -0
- package/src/assets/icons/battery-full.svg +1 -0
- package/src/assets/icons/battery-status-1-3.svg +1 -0
- package/src/assets/icons/battery-status-charging.svg +1 -0
- package/src/assets/icons/battery-status-full.svg +1 -0
- package/src/assets/icons/bed.svg +1 -0
- package/src/assets/icons/birth.svg +1 -0
- package/src/assets/icons/birthday.svg +1 -0
- package/src/assets/icons/bluetooth.svg +1 -0
- package/src/assets/icons/boarding-pass.svg +1 -0
- package/src/assets/icons/book-award.svg +1 -0
- package/src/assets/icons/book.svg +1 -0
- package/src/assets/icons/boxes.svg +1 -0
- package/src/assets/icons/briefcase.svg +1 -0
- package/src/assets/icons/browser-plug-in.svg +1 -0
- package/src/assets/icons/business-advisor.svg +1 -0
- package/src/assets/icons/business-consultant.svg +1 -0
- package/src/assets/icons/business-lounge.svg +1 -0
- package/src/assets/icons/buy.svg +1 -0
- package/src/assets/icons/calendar-30.svg +1 -0
- package/src/assets/icons/calendar-alarm.svg +1 -0
- package/src/assets/icons/calendar-day.svg +1 -0
- package/src/assets/icons/calendar-month.svg +1 -0
- package/src/assets/icons/call-in.svg +1 -0
- package/src/assets/icons/call-out.svg +1 -0
- package/src/assets/icons/call.svg +1 -0
- package/src/assets/icons/camera.svg +1 -0
- package/src/assets/icons/car-park.svg +1 -0
- package/src/assets/icons/car.svg +1 -0
- package/src/assets/icons/card-reader.svg +1 -0
- package/src/assets/icons/casting.svg +1 -0
- package/src/assets/icons/cest-ici.svg +1 -0
- package/src/assets/icons/charger.svg +1 -0
- package/src/assets/icons/chatbot.svg +1 -0
- package/src/assets/icons/check-your-balance.svg +1 -0
- package/src/assets/icons/checked.svg +1 -0
- package/src/assets/icons/chevron-down.svg +1 -0
- package/src/assets/icons/chevron-end.svg +1 -0
- package/src/assets/icons/chevron-left.svg +1 -0
- package/src/assets/icons/chevron-right.svg +1 -0
- package/src/assets/icons/chevron-start.svg +1 -0
- package/src/assets/icons/chevron-up.svg +1 -0
- package/src/assets/icons/child.svg +1 -0
- package/src/assets/icons/children-channel.svg +1 -0
- package/src/assets/icons/childrens-content.svg +1 -0
- package/src/assets/icons/christmas-tree.svg +1 -0
- package/src/assets/icons/cinema-ticket-2-for-1.svg +1 -0
- package/src/assets/icons/cle-pc.svg +1 -0
- package/src/assets/icons/clock.svg +1 -0
- package/src/assets/icons/close.svg +5 -0
- package/src/assets/icons/closed-captions.svg +1 -0
- package/src/assets/icons/cloud-backup.svg +1 -0
- package/src/assets/icons/cloud-security.svg +1 -0
- package/src/assets/icons/collective-class-training.svg +1 -0
- package/src/assets/icons/community-sms.svg +1 -0
- package/src/assets/icons/company-structure.svg +1 -0
- package/src/assets/icons/connections.svg +1 -0
- package/src/assets/icons/control-centre.svg +1 -0
- package/src/assets/icons/control-my-data.svg +3 -0
- package/src/assets/icons/cpu.svg +1 -0
- package/src/assets/icons/currency-euro.svg +1 -0
- package/src/assets/icons/cyber-shield.svg +1 -0
- package/src/assets/icons/dashboard-display.svg +1 -0
- package/src/assets/icons/data-analytics.svg +1 -0
- package/src/assets/icons/data-centre.svg +1 -0
- package/src/assets/icons/data-services.svg +1 -0
- package/src/assets/icons/data-traffic.svg +1 -0
- package/src/assets/icons/data.svg +1 -0
- package/src/assets/icons/delete.svg +1 -0
- package/src/assets/icons/desk-phone.svg +1 -0
- package/src/assets/icons/desktop-pc.svg +1 -0
- package/src/assets/icons/device-fixed-line-phone.svg +1 -0
- package/src/assets/icons/device-laptop-computer-connected.svg +1 -0
- package/src/assets/icons/device-laptop-computer.svg +1 -0
- package/src/assets/icons/device-smart-phone.svg +1 -0
- package/src/assets/icons/device-tablet.svg +1 -0
- package/src/assets/icons/device-tv.svg +1 -0
- package/src/assets/icons/diagnostic.svg +1 -0
- package/src/assets/icons/digital-frame.svg +1 -0
- package/src/assets/icons/discussion-more.svg +1 -0
- package/src/assets/icons/doctor.svg +1 -0
- package/src/assets/icons/documentary.svg +1 -0
- package/src/assets/icons/donation.svg +1 -0
- package/src/assets/icons/download-file.svg +1 -0
- package/src/assets/icons/download.svg +1 -0
- package/src/assets/icons/e-reader.svg +1 -0
- package/src/assets/icons/e-shop.svg +1 -0
- package/src/assets/icons/easy-internet.svg +1 -0
- package/src/assets/icons/eco-mode.svg +1 -0
- package/src/assets/icons/edit.svg +1 -0
- package/src/assets/icons/electrcar.svg +1 -0
- package/src/assets/icons/email.svg +1 -0
- package/src/assets/icons/employees.svg +1 -0
- package/src/assets/icons/empty-trash.svg +1 -0
- package/src/assets/icons/entertainment.svg +1 -0
- package/src/assets/icons/epg.svg +1 -0
- package/src/assets/icons/error-severe.svg +1 -0
- package/src/assets/icons/ethernet.svg +1 -0
- package/src/assets/icons/euro.svg +1 -0
- package/src/assets/icons/exit.svg +1 -0
- package/src/assets/icons/facebook-2.svg +1 -0
- package/src/assets/icons/facebook.svg +1 -0
- package/src/assets/icons/factory.svg +1 -0
- package/src/assets/icons/family-place.svg +1 -0
- package/src/assets/icons/fashion.svg +1 -0
- package/src/assets/icons/fast-delivery.svg +1 -0
- package/src/assets/icons/file-compressed.svg +1 -0
- package/src/assets/icons/file-copy.svg +1 -0
- package/src/assets/icons/file-document-compose.svg +1 -0
- package/src/assets/icons/file-download.svg +1 -0
- package/src/assets/icons/file-draft-edit.svg +1 -0
- package/src/assets/icons/file-pdf.svg +1 -0
- package/src/assets/icons/file-terms-and-conditions.svg +1 -0
- package/src/assets/icons/files.svg +1 -0
- package/src/assets/icons/film.svg +1 -0
- package/src/assets/icons/filter.svg +1 -0
- package/src/assets/icons/finance.svg +1 -0
- package/src/assets/icons/firewall.svg +1 -0
- package/src/assets/icons/flag.svg +1 -0
- package/src/assets/icons/flashlight.svg +1 -0
- package/src/assets/icons/flexible-storage.svg +1 -0
- package/src/assets/icons/folder.svg +1 -0
- package/src/assets/icons/football-match.svg +1 -0
- package/src/assets/icons/football-quiz.svg +1 -0
- package/src/assets/icons/football.svg +1 -0
- package/src/assets/icons/form-tick.svg +1 -0
- package/src/assets/icons/front-end-dashboard.svg +1 -0
- package/src/assets/icons/funny.svg +1 -0
- package/src/assets/icons/futher-education.svg +1 -0
- package/src/assets/icons/games.svg +1 -0
- package/src/assets/icons/garage-closed.svg +1 -0
- package/src/assets/icons/gauge-rate.svg +1 -0
- package/src/assets/icons/gears.svg +1 -0
- package/src/assets/icons/geolocation.svg +1 -0
- package/src/assets/icons/guide-info.svg +1 -0
- package/src/assets/icons/hammer.svg +1 -0
- package/src/assets/icons/hand-shake.svg +1 -0
- package/src/assets/icons/hard-drive.svg +1 -0
- package/src/assets/icons/hdmi-key.svg +1 -0
- package/src/assets/icons/headphones.svg +1 -0
- package/src/assets/icons/health-app.svg +1 -0
- package/src/assets/icons/health-monitor.svg +1 -0
- package/src/assets/icons/health-patient.svg +1 -0
- package/src/assets/icons/heart.svg +1 -0
- package/src/assets/icons/home-appliance.svg +1 -0
- package/src/assets/icons/home.svg +1 -0
- package/src/assets/icons/homelive.svg +1 -0
- package/src/assets/icons/hourglass.svg +1 -0
- package/src/assets/icons/house.svg +1 -0
- package/src/assets/icons/id-card.svg +1 -0
- package/src/assets/icons/image.svg +1 -0
- package/src/assets/icons/important.svg +1 -0
- package/src/assets/icons/improvement.svg +1 -0
- package/src/assets/icons/inbox.svg +1 -0
- package/src/assets/icons/info.svg +1 -0
- package/src/assets/icons/information-data.svg +1 -0
- package/src/assets/icons/instagram.svg +1 -0
- package/src/assets/icons/international-globe.svg +1 -0
- package/src/assets/icons/internet-browser.svg +1 -0
- package/src/assets/icons/internet-security-desktop.svg +1 -0
- package/src/assets/icons/internet-security-mobile.svg +1 -0
- package/src/assets/icons/internet-security-password.svg +1 -0
- package/src/assets/icons/internet-usage.svg +1 -0
- package/src/assets/icons/internet.svg +1 -0
- package/src/assets/icons/invoice-euro.svg +1 -0
- package/src/assets/icons/invoices-euro.svg +1 -0
- package/src/assets/icons/iso.svg +1 -0
- package/src/assets/icons/it-infrastructure.svg +1 -0
- package/src/assets/icons/keyboard.svg +1 -0
- package/src/assets/icons/la-cle-tv.svg +1 -0
- package/src/assets/icons/laptop-connected.svg +1 -0
- package/src/assets/icons/laptop.svg +1 -0
- package/src/assets/icons/le-vote.svg +1 -0
- package/src/assets/icons/link.svg +1 -0
- package/src/assets/icons/linkedin-2.svg +1 -0
- package/src/assets/icons/linkedin.svg +1 -0
- package/src/assets/icons/location-on-map.svg +1 -0
- package/src/assets/icons/location-pin.svg +1 -0
- package/src/assets/icons/lock-open.svg +1 -0
- package/src/assets/icons/lock.svg +1 -0
- package/src/assets/icons/logistics.svg +1 -0
- package/src/assets/icons/love-logo.svg +1 -0
- package/src/assets/icons/mahali.svg +1 -0
- package/src/assets/icons/maintenance-man.svg +1 -0
- package/src/assets/icons/map-pin.svg +1 -0
- package/src/assets/icons/map.svg +1 -0
- package/src/assets/icons/medal.svg +1 -0
- package/src/assets/icons/medical-app.svg +1 -0
- package/src/assets/icons/medical-chart.svg +1 -0
- package/src/assets/icons/medicine.svg +1 -0
- package/src/assets/icons/menu-arrow.svg +1 -0
- package/src/assets/icons/menu-grid.svg +1 -0
- package/src/assets/icons/menu.svg +1 -0
- package/src/assets/icons/message-alert.svg +1 -0
- package/src/assets/icons/messages.svg +1 -0
- package/src/assets/icons/micro-sd-card.svg +1 -0
- package/src/assets/icons/microphone-mute.svg +1 -0
- package/src/assets/icons/microphone.svg +1 -0
- package/src/assets/icons/mini-games.svg +1 -0
- package/src/assets/icons/mobile-applications.svg +1 -0
- package/src/assets/icons/mobile-data-toggle.svg +1 -0
- package/src/assets/icons/mobile-insurance.svg +1 -0
- package/src/assets/icons/mobile-network-coverage.svg +1 -0
- package/src/assets/icons/mobile-payment.svg +1 -0
- package/src/assets/icons/mobile-security.svg +1 -0
- package/src/assets/icons/mobile-setup.svg +1 -0
- package/src/assets/icons/modem.svg +1 -0
- package/src/assets/icons/modifier-delete.svg +1 -0
- package/src/assets/icons/modifier-done.svg +1 -0
- package/src/assets/icons/modifier-download.svg +1 -0
- package/src/assets/icons/modifier-upload.svg +1 -0
- package/src/assets/icons/money-box.svg +1 -0
- package/src/assets/icons/more-dots.svg +1 -0
- package/src/assets/icons/multi-sim.svg +1 -0
- package/src/assets/icons/music.svg +1 -0
- package/src/assets/icons/my-account.svg +1 -0
- package/src/assets/icons/my-orange.svg +1 -0
- package/src/assets/icons/my-skills.svg +1 -0
- package/src/assets/icons/my-vacation.svg +1 -0
- package/src/assets/icons/network-dslam.svg +1 -0
- package/src/assets/icons/network-gatekeeper.svg +1 -0
- package/src/assets/icons/network-gateway.svg +1 -0
- package/src/assets/icons/network-optical-amplifier.svg +1 -0
- package/src/assets/icons/network-optical-transport.svg +1 -0
- package/src/assets/icons/network-wan-optimisation-engine.svg +1 -0
- package/src/assets/icons/networks.svg +1 -0
- package/src/assets/icons/newspaper.svg +1 -0
- package/src/assets/icons/not-checked.svg +1 -0
- package/src/assets/icons/notification-alert.svg +1 -0
- package/src/assets/icons/office.svg +1 -0
- package/src/assets/icons/online-help.svg +1 -0
- package/src/assets/icons/orange-assistant.svg +1 -0
- package/src/assets/icons/orange-cash.svg +1 -0
- package/src/assets/icons/orange-detente.svg +1 -0
- package/src/assets/icons/orange-dialler.svg +1 -0
- package/src/assets/icons/orange-events.svg +1 -0
- package/src/assets/icons/orange-experts-expert.svg +1 -0
- package/src/assets/icons/orange-experts-insurance.svg +1 -0
- package/src/assets/icons/orange-experts-orange-business-consultant.svg +1 -0
- package/src/assets/icons/orange-experts-recycle.svg +1 -0
- package/src/assets/icons/orange-experts-repair.svg +1 -0
- package/src/assets/icons/orange-football-club.svg +1 -0
- package/src/assets/icons/orange-games.svg +1 -0
- package/src/assets/icons/orange-messenger.svg +1 -0
- package/src/assets/icons/orange-money-nfc.svg +1 -0
- package/src/assets/icons/orange-reflect.svg +1 -0
- package/src/assets/icons/orange-rewards.svg +1 -0
- package/src/assets/icons/orange-tv.svg +1 -0
- package/src/assets/icons/orange-vr-experience.svg +1 -0
- package/src/assets/icons/outbox.svg +1 -0
- package/src/assets/icons/package-content.svg +1 -0
- package/src/assets/icons/package-services.svg +1 -0
- package/src/assets/icons/package.svg +1 -0
- package/src/assets/icons/packaging-icon-hd.svg +1 -0
- package/src/assets/icons/parabole-tv.svg +1 -0
- package/src/assets/icons/parental-control.svg +1 -0
- package/src/assets/icons/pause.svg +1 -0
- package/src/assets/icons/payment-card.svg +1 -0
- package/src/assets/icons/payment-euro.svg +1 -0
- package/src/assets/icons/pda.svg +1 -0
- package/src/assets/icons/pdf-file.svg +1 -0
- package/src/assets/icons/pencil.svg +1 -0
- package/src/assets/icons/personal-hotspot.svg +1 -0
- package/src/assets/icons/personal-smartphone-trainer.svg +1 -0
- package/src/assets/icons/phone-advisor.svg +1 -0
- package/src/assets/icons/play-and-win.svg +1 -0
- package/src/assets/icons/play.svg +1 -0
- package/src/assets/icons/plug-socket.svg +1 -0
- package/src/assets/icons/power.svg +1 -0
- package/src/assets/icons/powerstation.svg +1 -0
- package/src/assets/icons/presentation.svg +1 -0
- package/src/assets/icons/print.svg +1 -0
- package/src/assets/icons/printer.svg +1 -0
- package/src/assets/icons/real-time.svg +1 -0
- package/src/assets/icons/recycle-device.svg +1 -0
- package/src/assets/icons/recycle.svg +1 -0
- package/src/assets/icons/reduction.svg +1 -0
- package/src/assets/icons/reload.svg +1 -0
- package/src/assets/icons/reminders.svg +1 -0
- package/src/assets/icons/remote-desktop-protocol.svg +1 -0
- package/src/assets/icons/remove.svg +1 -0
- package/src/assets/icons/repair.svg +1 -0
- package/src/assets/icons/reseau.svg +1 -0
- package/src/assets/icons/restaurant.svg +1 -0
- package/src/assets/icons/rewards.svg +1 -0
- package/src/assets/icons/running.svg +1 -0
- package/src/assets/icons/safety.svg +1 -0
- package/src/assets/icons/satallite.svg +1 -0
- package/src/assets/icons/save.svg +1 -0
- package/src/assets/icons/school.svg +1 -0
- package/src/assets/icons/science.svg +1 -0
- package/src/assets/icons/sd-card.svg +1 -0
- package/src/assets/icons/search.svg +1 -0
- package/src/assets/icons/security-status-good.svg +1 -0
- package/src/assets/icons/send.svg +1 -0
- package/src/assets/icons/senior-person.svg +1 -0
- package/src/assets/icons/server-storage-array.svg +1 -0
- package/src/assets/icons/server-tower.svg +1 -0
- package/src/assets/icons/session-enter.svg +1 -0
- package/src/assets/icons/session-leave.svg +1 -0
- package/src/assets/icons/settings.svg +1 -0
- package/src/assets/icons/share.svg +1 -0
- package/src/assets/icons/shop-pin.svg +1 -0
- package/src/assets/icons/shop.svg +1 -0
- package/src/assets/icons/showroom-mobile-pro.svg +1 -0
- package/src/assets/icons/signal-5-5.svg +1 -0
- package/src/assets/icons/silence.svg +1 -0
- package/src/assets/icons/sim-e.svg +1 -0
- package/src/assets/icons/sim.svg +1 -0
- package/src/assets/icons/simple-mode.svg +1 -0
- package/src/assets/icons/simplicity.svg +1 -0
- package/src/assets/icons/siren.svg +1 -0
- package/src/assets/icons/skiing.svg +1 -0
- package/src/assets/icons/skip-to-end.svg +1 -0
- package/src/assets/icons/skip-to-start.svg +1 -0
- package/src/assets/icons/sleep.svg +1 -0
- package/src/assets/icons/smart-care.svg +1 -0
- package/src/assets/icons/smart-home.svg +1 -0
- package/src/assets/icons/smart-tap.svg +1 -0
- package/src/assets/icons/smart-watch.svg +1 -0
- package/src/assets/icons/sms-alert.svg +1 -0
- package/src/assets/icons/sms-message-compose.svg +1 -0
- package/src/assets/icons/sms-message.svg +1 -0
- package/src/assets/icons/social-network.svg +1 -0
- package/src/assets/icons/sofa.svg +1 -0
- package/src/assets/icons/sort.svg +1 -0
- package/src/assets/icons/stadium.svg +1 -0
- package/src/assets/icons/star-empty.svg +1 -0
- package/src/assets/icons/star-favourite-half.svg +1 -0
- package/src/assets/icons/star-favourite.svg +1 -0
- package/src/assets/icons/startover.svg +1 -0
- package/src/assets/icons/statistics.svg +1 -0
- package/src/assets/icons/stop-secret.svg +1 -0
- package/src/assets/icons/storage-cloud.svg +1 -0
- package/src/assets/icons/store-locator.svg +1 -0
- package/src/assets/icons/street.svg +1 -0
- package/src/assets/icons/subscription-package.svg +1 -0
- package/src/assets/icons/suitcase.svg +1 -0
- package/src/assets/icons/support.svg +1 -0
- package/src/assets/icons/surveillance-camera.svg +1 -0
- package/src/assets/icons/syncronise.svg +1 -0
- package/src/assets/icons/tag-advertising.svg +1 -0
- package/src/assets/icons/tag.svg +1 -0
- package/src/assets/icons/target-location.svg +1 -0
- package/src/assets/icons/tarif.svg +1 -0
- package/src/assets/icons/task-list.svg +1 -0
- package/src/assets/icons/team-connect.svg +1 -0
- package/src/assets/icons/thumb-up.svg +1 -0
- package/src/assets/icons/tick.svg +1 -0
- package/src/assets/icons/ticket.svg +1 -0
- package/src/assets/icons/top-up-card-euro.svg +1 -0
- package/src/assets/icons/top-up-euro.svg +1 -0
- package/src/assets/icons/top-up-time.svg +1 -0
- package/src/assets/icons/town.svg +1 -0
- package/src/assets/icons/townhall.svg +1 -0
- package/src/assets/icons/train.svg +1 -0
- package/src/assets/icons/training-session.svg +1 -0
- package/src/assets/icons/tranquility.svg +1 -0
- package/src/assets/icons/transfer-data.svg +1 -0
- package/src/assets/icons/transfers.svg +1 -0
- package/src/assets/icons/trash.svg +1 -0
- package/src/assets/icons/tv-channel-list.svg +1 -0
- package/src/assets/icons/tv-commande.svg +1 -0
- package/src/assets/icons/unlimited-calls.svg +1 -0
- package/src/assets/icons/upload.svg +1 -0
- package/src/assets/icons/usb-hard-drive.svg +1 -0
- package/src/assets/icons/usb-key.svg +1 -0
- package/src/assets/icons/user-manual.svg +1 -0
- package/src/assets/icons/user.svg +1 -0
- package/src/assets/icons/video-call.svg +1 -0
- package/src/assets/icons/video-live.svg +1 -0
- package/src/assets/icons/video-phone.svg +1 -0
- package/src/assets/icons/video-record.svg +1 -0
- package/src/assets/icons/video.svg +1 -0
- package/src/assets/icons/vip-contact.svg +1 -0
- package/src/assets/icons/virtual-gamepad.svg +1 -0
- package/src/assets/icons/vod-portrait.svg +1 -0
- package/src/assets/icons/volte.svg +1 -0
- package/src/assets/icons/volume-status-4-4.svg +1 -0
- package/src/assets/icons/vowifi.svg +1 -0
- package/src/assets/icons/wallet.svg +1 -0
- package/src/assets/icons/warning-important.svg +1 -0
- package/src/assets/icons/washroom.svg +1 -0
- package/src/assets/icons/watch.svg +1 -0
- package/src/assets/icons/water.svg +1 -0
- package/src/assets/icons/weather.svg +1 -0
- package/src/assets/icons/web-browser.svg +1 -0
- package/src/assets/icons/web-camera.svg +1 -0
- package/src/assets/icons/weighing-scales.svg +1 -0
- package/src/assets/icons/widget.svg +1 -0
- package/src/assets/icons/wifi-home.svg +1 -0
- package/src/assets/icons/wifi.svg +1 -0
- package/src/assets/icons/x.svg +1 -0
- package/src/assets/icons/your-balance.svg +1 -0
- package/src/assets/icons/youtube.svg +1 -0
- package/src/assets/icons/zoom-in.svg +1 -0
- package/src/assets/icons/zoom-out.svg +1 -0
- package/src/assets/images/developers/hands-with-phones.svg +90 -0
- package/src/assets/images/developers/iphone-size-2x.png +0 -0
- package/src/assets/images/developers/iphone-xr-white-select.png +0 -0
- package/src/assets/images/developers/phones.png +0 -0
- package/src/assets/images/developers/router.png +0 -0
- package/src/assets/images/developers/rule-component-block.png +0 -0
- package/src/assets/images/developers/rule-component-inline.png +0 -0
- package/src/assets/images/developers/rule-container.png +0 -0
- package/src/assets/images/developers/rule-content.png +0 -0
- package/src/assets/images/developers/two-phones.png +0 -0
- package/src/assets/logo/logo.svg +1 -0
- package/src/components/Accordion/Accordion.mdx +222 -0
- package/src/components/Accordion/Accordion.static.ts +104 -0
- package/src/components/Accordion/Accordion.tsx +70 -0
- package/src/components/Accordion/AccordionHeader.tsx +59 -0
- package/src/components/Accordion/AccordionItem.tsx +76 -0
- package/src/components/Accordion/HeadingContext.tsx +5 -0
- package/src/components/Accordion/index.ts +4 -0
- package/src/components/Accordion/styles/config.scss +8 -0
- package/src/components/Accordion/styles/mixins.scss +91 -0
- package/src/components/Accordion/styles/style.scss +47 -0
- package/src/components/Accordion/tests/Accordion.static.test.js +207 -0
- package/src/components/Accordion/tests/Accordion.unit.test.js +822 -0
- package/src/components/Accordion/tests/data.js +18 -0
- package/src/components/Alert/Alert.mdx +141 -0
- package/src/components/Alert/Alert.tsx +119 -0
- package/src/components/Alert/CHANGELOG.md +33 -0
- package/src/components/Alert/data.ts +8 -0
- package/src/components/Alert/index.ts +3 -0
- package/src/components/Alert/styles/config.scss +58 -0
- package/src/components/Alert/styles/mixins.scss +54 -0
- package/src/components/Alert/styles/style.scss +44 -0
- package/src/components/Alert/tests/Alert.conformance.test.js +30 -0
- package/src/components/Alert/tests/Alert.test.js +87 -0
- package/src/components/Badge/Badge.tsx +5 -3
- package/src/components/Badge/index.ts +1 -1
- package/src/components/Badge/styles/config.scss +53 -17
- package/src/components/Badge/styles/mixins.scss +8 -2
- package/src/components/Badge/styles/style.scss +7 -3
- package/src/components/Badge/tests/Badge.conformance.test.js +8 -8
- package/src/components/Badge/tests/Badge.unit.test.js +3 -3
- package/src/components/Breadcrumbs/BreadcrumbItem.tsx +54 -0
- package/src/components/Breadcrumbs/Breadcrumbs.mdx +84 -0
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +60 -0
- package/src/components/Breadcrumbs/index.ts +5 -0
- package/src/components/Breadcrumbs/styles/config.scss +2 -0
- package/src/components/Breadcrumbs/styles/mixins.scss +105 -0
- package/src/components/Breadcrumbs/styles/style.scss +37 -0
- package/src/components/Breadcrumbs/tests/BreadcrumbItem.unit.test.js +295 -0
- package/src/components/Breadcrumbs/tests/Breadcrumbs.conformance.test.js +53 -0
- package/src/components/Breadcrumbs/tests/Breadcrumbs.integration.test.js +309 -0
- package/src/components/Breadcrumbs/tests/Breadcrumbs.unit.test.js +280 -0
- package/src/components/Button/Button.mdx +273 -0
- package/src/components/Button/Button.tsx +105 -0
- package/src/components/Button/IconButton.tsx +67 -0
- package/src/components/Button/index.tsx +23 -0
- package/src/components/Button/styles/config.scss +229 -0
- package/src/components/Button/styles/mixins.scss +164 -0
- package/src/components/Button/styles/style.scss +66 -0
- package/src/components/Button/tests/Button.conformance.test.js +37 -0
- package/src/components/Button/tests/Button.test.js +114 -0
- package/src/components/Button/tests/IconButton.unit.test.js +107 -0
- package/src/components/Buttons/Buttons.mdx +39 -0
- package/src/components/Buttons/Buttons.tsx +34 -0
- package/src/components/Buttons/index.ts +3 -0
- package/src/components/Buttons/styles/config.scss +3 -0
- package/src/components/Buttons/styles/mixins.scss +39 -0
- package/src/components/Buttons/styles/style.scss +10 -0
- package/src/components/Buttons/tests/Buttons.conformance.test.js +22 -0
- package/src/components/Buttons/tests/Buttons.unit.test.js +26 -0
- package/src/components/Container/Container.mdx +73 -0
- package/src/components/Container/Container.tsx +15 -0
- package/src/components/Container/index.ts +5 -0
- package/src/components/Container/styles/config.scss +11 -0
- package/src/components/Container/styles/mixins.scss +22 -0
- package/src/components/Container/styles/style.scss +5 -0
- package/src/components/Container/tests/Container.conformance.test.js +209 -0
- package/src/components/Container/tests/Container.unit.test.js +320 -0
- package/src/components/Grid/Grid.mdx +319 -0
- package/src/components/Grid/Grid.tsx +51 -0
- package/src/components/Grid/GridCol.tsx +33 -0
- package/src/components/Grid/index.ts +6 -0
- package/src/components/Grid/styles/config.scss +10 -0
- package/src/components/Grid/styles/mixins.scss +126 -0
- package/src/components/Grid/styles/style.scss +41 -0
- package/src/components/Grid/tests/Grid.unit.test.tsx +533 -0
- package/src/components/Grid/tests/GridCol.unit.test.tsx +199 -0
- package/src/components/Icon/Icon.mdx +172 -0
- package/src/components/Icon/Icon.tsx +73 -0
- package/src/components/Icon/IconSearch.jsx +247 -0
- package/src/components/Icon/SpritePathContext.tsx +22 -0
- package/src/components/Icon/iconSearchTags.ts +437 -0
- package/src/components/Icon/index.ts +5 -0
- package/src/components/Icon/styles/config.scss +27 -0
- package/src/components/Icon/styles/export/color.scss +8 -0
- package/src/components/Icon/styles/export/size.scss +13 -0
- package/src/components/Icon/styles/mixins.scss +31 -0
- package/src/components/Icon/styles/style.scss +13 -0
- package/src/components/Icon/tests/Icon.conformance.test.js +22 -0
- package/src/components/Icon/tests/Icon.unit.test.js +112 -0
- package/src/components/Image/Image.mdx +166 -0
- package/src/components/Image/Image.tsx +65 -0
- package/src/components/Image/index.ts +7 -0
- package/src/components/Image/styles/mixins.scss +12 -0
- package/src/components/Image/styles/style.scss +9 -0
- package/src/components/Image/tests/Image.conformance.test.js +264 -0
- package/src/components/Image/tests/Image.unit.test.js +338 -0
- package/src/components/Link/Link.mdx +224 -0
- package/src/components/Link/Link.tsx +52 -0
- package/src/components/Link/index.ts +3 -0
- package/src/components/Link/styles/config.scss +85 -0
- package/src/components/Link/styles/mixins.scss +42 -0
- package/src/components/Link/styles/style.scss +59 -0
- package/src/components/Link/tests/Link.conformance.test.js +302 -0
- package/src/components/Link/tests/Link.integration.test.js +393 -0
- package/src/components/Link/tests/Link.unit.test.js +308 -0
- package/src/components/Modal/Modal.mdx +449 -0
- package/src/components/Modal/Modal.static.ts +223 -0
- package/src/components/Modal/Modal.tsx +145 -0
- package/src/components/Modal/ModalBody.tsx +46 -0
- package/src/components/Modal/ModalCloseButton.tsx +26 -0
- package/src/components/Modal/ModalTitle.tsx +32 -0
- package/src/components/Modal/TODO.md +2 -0
- package/src/components/Modal/index.ts +6 -0
- package/src/components/Modal/styles/config.scss +42 -0
- package/src/components/Modal/styles/mixins.scss +200 -0
- package/src/components/Modal/styles/style.scss +97 -0
- package/src/components/Modal/tests/Modal.conformance.test.js +41 -0
- package/src/components/Modal/tests/Modal.unit.test.js +56 -0
- package/src/components/Modal/tests/ModalBody.unit.test.js +39 -0
- package/src/components/Modal/tests/ModalCloseButton.unit.test.js +84 -0
- package/src/components/Modal/tests/ModalTitle.unit.test.js +25 -0
- package/src/components/Section/Section.mdx +397 -0
- package/src/components/Section/Section.tsx +54 -0
- package/src/components/Section/index.ts +3 -0
- package/src/components/Section/styles/config.scss +38 -0
- package/src/components/Section/styles/mixins.scss +30 -0
- package/src/components/Section/styles/style.scss +35 -0
- package/src/components/Section/tests/Section.conformance.test.js +502 -0
- package/src/components/Section/tests/Section.unit.test.js +642 -0
- package/src/components/Tabs/TODO.md +2 -0
- package/src/components/Tabs/Tab.tsx +55 -0
- package/src/components/Tabs/TabPanel.tsx +42 -0
- package/src/components/Tabs/Tabs.mdx +373 -0
- package/src/components/Tabs/Tabs.static.ts +185 -0
- package/src/components/Tabs/Tabs.tsx +130 -0
- package/src/components/Tabs/index.ts +5 -0
- package/src/components/Tabs/styles/config.scss +78 -0
- package/src/components/Tabs/styles/mixins.scss +107 -0
- package/src/components/Tabs/styles/style.scss +64 -0
- package/src/components/Tabs/tests/Tab.unit.test.js +85 -0
- package/src/components/Tabs/tests/TabPanel.unit.test.js +53 -0
- package/src/components/Tabs/tests/Tabs.unit.test.js +260 -0
- package/src/components/index.ts +33 -2
- package/src/styles/base/globals.scss +18 -13
- package/src/styles/base/styleguide.scss +1 -1
- package/src/styles/before-components.scss +1 -1
- package/src/styles/export/breakpoint.ts +12 -0
- package/src/styles/export/color.scss +1 -1
- package/src/styles/tokens/base.scss +6 -4
- package/src/styles/tokens/color.scss +127 -25
- package/src/styles/tools/convert.scss +1 -1
- package/src/styles/typography/config.scss +187 -0
- package/src/{components/Typography/styles → styles/typography}/mixins.scss +31 -24
- package/src/{components/Typography/styles → styles/typography}/style.scss +9 -3
- package/src/styles/utilities/text.scss +2 -2
- package/build/.htaccess +0 -7
- package/build/_next/static/chunks/app/layout-69efc42b1696abf9.js +0 -1
- package/build/_next/static/chunks/app/page-687dfdffc8d1b6e5.js +0 -1
- package/build/_next/static/chunks/webpack-778f3ec87f8d2826.js +0 -1
- package/build/_next/static/css/08a2fcd6f5aac3e0.css +0 -1
- package/build/_next/static/css/d2fc2f581fe4b371.css +0 -1
- package/build/_next/static/rsiMOOYAxBtOjvpzBN4vJ/_buildManifest.js +0 -1
- package/build/_redirects +0 -1
- package/build/components/types/Badge/index.d.ts +0 -2
- package/build/components/types/index.d.ts +0 -4
- package/build/fonts/HelvNeue55_W1G.eot +0 -0
- package/build/fonts/HelvNeue55_W1G.svg +0 -653
- package/build/fonts/HelvNeue55_W1G.ttf +0 -0
- package/build/fonts/HelvNeue55_W1G.woff +0 -0
- package/build/fonts/HelvNeue55_W1G.woff2 +0 -0
- package/build/fonts/HelvNeue75_W1G.eot +0 -0
- package/build/fonts/HelvNeue75_W1G.svg +0 -653
- package/build/fonts/HelvNeue75_W1G.ttf +0 -0
- package/build/fonts/HelvNeue75_W1G.woff +0 -0
- package/build/fonts/HelvNeue75_W1G.woff2 +0 -0
- package/build/manifest.json +0 -15
- package/build/sprite-sg.svg +0 -1
- package/public/fonts/HelvNeue55_W1G.eot +0 -0
- package/public/fonts/HelvNeue55_W1G.svg +0 -653
- package/public/fonts/HelvNeue55_W1G.ttf +0 -0
- package/public/fonts/HelvNeue55_W1G.woff +0 -0
- package/public/fonts/HelvNeue55_W1G.woff2 +0 -0
- package/public/fonts/HelvNeue75_W1G.eot +0 -0
- package/public/fonts/HelvNeue75_W1G.svg +0 -653
- package/public/fonts/HelvNeue75_W1G.ttf +0 -0
- package/public/fonts/HelvNeue75_W1G.woff +0 -0
- package/public/fonts/HelvNeue75_W1G.woff2 +0 -0
- package/src/components/Badge/Badge.test.js +0 -45
- package/src/components/Typography/styles/config.scss +0 -181
- /package/build/_next/static/{rsiMOOYAxBtOjvpzBN4vJ → CRhIjUFtohDOfdDfzvfXM}/_ssgManifest.js +0 -0
- /package/build/_next/static/chunks/{4bd1b696-67ee12fb04071d3b.js → 4bd1b696-40a218329c8ae32b.js} +0 -0
- /package/build/_next/static/chunks/{684-2d117c50cbadadca.js → 684-c72f8f73e7f2d568.js} +0 -0
- /package/build/_next/static/chunks/app/_not-found/{page-f08302ee705a96b1.js → page-c799b4c91b89a5c2.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static.js","sources":["../../node_modules/wnumb/wNumb.js","../../src/utils/helpers.js","../../src/scripts/lib/moduleFactory.js","../../src/scripts/modules/toggleUtil.js","../../src/scripts/modules/Toggle.js","../../src/scripts/modules/SameHeight.js","../../src/scripts/index.ts"],"sourcesContent":["(function(factory) {\r\n if (typeof define === \"function\" && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define([], factory);\r\n } else if (typeof exports === \"object\") {\r\n // Node/CommonJS\r\n module.exports = factory();\r\n } else {\r\n // Browser globals\r\n window.wNumb = factory();\r\n }\r\n})(function() {\r\n \"use strict\";\r\n\r\n var FormatOptions = [\r\n \"decimals\",\r\n \"thousand\",\r\n \"mark\",\r\n \"prefix\",\r\n \"suffix\",\r\n \"encoder\",\r\n \"decoder\",\r\n \"negativeBefore\",\r\n \"negative\",\r\n \"edit\",\r\n \"undo\"\r\n ];\r\n\r\n // General\r\n\r\n // Reverse a string\r\n function strReverse(a) {\r\n return a\r\n .split(\"\")\r\n .reverse()\r\n .join(\"\");\r\n }\r\n\r\n // Check if a string starts with a specified prefix.\r\n function strStartsWith(input, match) {\r\n return input.substring(0, match.length) === match;\r\n }\r\n\r\n // Check is a string ends in a specified suffix.\r\n function strEndsWith(input, match) {\r\n return input.slice(-1 * match.length) === match;\r\n }\r\n\r\n // Throw an error if formatting options are incompatible.\r\n function throwEqualError(F, a, b) {\r\n if ((F[a] || F[b]) && F[a] === F[b]) {\r\n throw new Error(a);\r\n }\r\n }\r\n\r\n // Check if a number is finite and not NaN\r\n function isValidNumber(input) {\r\n return typeof input === \"number\" && isFinite(input);\r\n }\r\n\r\n // Provide rounding-accurate toFixed method.\r\n // Borrowed: http://stackoverflow.com/a/21323330/775265\r\n function toFixed(value, exp) {\r\n value = value.toString().split(\"e\");\r\n value = Math.round(+(value[0] + \"e\" + (value[1] ? +value[1] + exp : exp)));\r\n value = value.toString().split(\"e\");\r\n return (+(value[0] + \"e\" + (value[1] ? +value[1] - exp : -exp))).toFixed(exp);\r\n }\r\n\r\n // Formatting\r\n\r\n // Accept a number as input, output formatted string.\r\n function formatTo(\r\n decimals,\r\n thousand,\r\n mark,\r\n prefix,\r\n suffix,\r\n encoder,\r\n decoder,\r\n negativeBefore,\r\n negative,\r\n edit,\r\n undo,\r\n input\r\n ) {\r\n var originalInput = input,\r\n inputIsNegative,\r\n inputPieces,\r\n inputBase,\r\n inputDecimals = \"\",\r\n output = \"\";\r\n\r\n // Apply user encoder to the input.\r\n // Expected outcome: number.\r\n if (encoder) {\r\n input = encoder(input);\r\n }\r\n\r\n // Stop if no valid number was provided, the number is infinite or NaN.\r\n if (!isValidNumber(input)) {\r\n return false;\r\n }\r\n\r\n // Rounding away decimals might cause a value of -0\r\n // when using very small ranges. Remove those cases.\r\n if (decimals !== false && parseFloat(input.toFixed(decimals)) === 0) {\r\n input = 0;\r\n }\r\n\r\n // Formatting is done on absolute numbers,\r\n // decorated by an optional negative symbol.\r\n if (input < 0) {\r\n inputIsNegative = true;\r\n input = Math.abs(input);\r\n }\r\n\r\n // Reduce the number of decimals to the specified option.\r\n if (decimals !== false) {\r\n input = toFixed(input, decimals);\r\n }\r\n\r\n // Transform the number into a string, so it can be split.\r\n input = input.toString();\r\n\r\n // Break the number on the decimal separator.\r\n if (input.indexOf(\".\") !== -1) {\r\n inputPieces = input.split(\".\");\r\n\r\n inputBase = inputPieces[0];\r\n\r\n if (mark) {\r\n inputDecimals = mark + inputPieces[1];\r\n }\r\n } else {\r\n // If it isn't split, the entire number will do.\r\n inputBase = input;\r\n }\r\n\r\n // Group numbers in sets of three.\r\n if (thousand) {\r\n inputBase = strReverse(inputBase).match(/.{1,3}/g);\r\n inputBase = strReverse(inputBase.join(strReverse(thousand)));\r\n }\r\n\r\n // If the number is negative, prefix with negation symbol.\r\n if (inputIsNegative && negativeBefore) {\r\n output += negativeBefore;\r\n }\r\n\r\n // Prefix the number\r\n if (prefix) {\r\n output += prefix;\r\n }\r\n\r\n // Normal negative option comes after the prefix. Defaults to '-'.\r\n if (inputIsNegative && negative) {\r\n output += negative;\r\n }\r\n\r\n // Append the actual number.\r\n output += inputBase;\r\n output += inputDecimals;\r\n\r\n // Apply the suffix.\r\n if (suffix) {\r\n output += suffix;\r\n }\r\n\r\n // Run the output through a user-specified post-formatter.\r\n if (edit) {\r\n output = edit(output, originalInput);\r\n }\r\n\r\n // All done.\r\n return output;\r\n }\r\n\r\n // Accept a sting as input, output decoded number.\r\n function formatFrom(\r\n decimals,\r\n thousand,\r\n mark,\r\n prefix,\r\n suffix,\r\n encoder,\r\n decoder,\r\n negativeBefore,\r\n negative,\r\n edit,\r\n undo,\r\n input\r\n ) {\r\n var originalInput = input,\r\n inputIsNegative,\r\n output = \"\";\r\n\r\n // User defined pre-decoder. Result must be a non empty string.\r\n if (undo) {\r\n input = undo(input);\r\n }\r\n\r\n // Test the input. Can't be empty.\r\n if (!input || typeof input !== \"string\") {\r\n return false;\r\n }\r\n\r\n // If the string starts with the negativeBefore value: remove it.\r\n // Remember is was there, the number is negative.\r\n if (negativeBefore && strStartsWith(input, negativeBefore)) {\r\n input = input.replace(negativeBefore, \"\");\r\n inputIsNegative = true;\r\n }\r\n\r\n // Repeat the same procedure for the prefix.\r\n if (prefix && strStartsWith(input, prefix)) {\r\n input = input.replace(prefix, \"\");\r\n }\r\n\r\n // And again for negative.\r\n if (negative && strStartsWith(input, negative)) {\r\n input = input.replace(negative, \"\");\r\n inputIsNegative = true;\r\n }\r\n\r\n // Remove the suffix.\r\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/slice\r\n if (suffix && strEndsWith(input, suffix)) {\r\n input = input.slice(0, -1 * suffix.length);\r\n }\r\n\r\n // Remove the thousand grouping.\r\n if (thousand) {\r\n input = input.split(thousand).join(\"\");\r\n }\r\n\r\n // Set the decimal separator back to period.\r\n if (mark) {\r\n input = input.replace(mark, \".\");\r\n }\r\n\r\n // Prepend the negative symbol.\r\n if (inputIsNegative) {\r\n output += \"-\";\r\n }\r\n\r\n // Add the number\r\n output += input;\r\n\r\n // Trim all non-numeric characters (allow '.' and '-');\r\n output = output.replace(/[^0-9\\.\\-.]/g, \"\");\r\n\r\n // The value contains no parse-able number.\r\n if (output === \"\") {\r\n return false;\r\n }\r\n\r\n // Covert to number.\r\n output = Number(output);\r\n\r\n // Run the user-specified post-decoder.\r\n if (decoder) {\r\n output = decoder(output);\r\n }\r\n\r\n // Check is the output is valid, otherwise: return false.\r\n if (!isValidNumber(output)) {\r\n return false;\r\n }\r\n\r\n return output;\r\n }\r\n\r\n // Framework\r\n\r\n // Validate formatting options\r\n function validate(inputOptions) {\r\n var i,\r\n optionName,\r\n optionValue,\r\n filteredOptions = {};\r\n\r\n if (inputOptions[\"suffix\"] === undefined) {\r\n inputOptions[\"suffix\"] = inputOptions[\"postfix\"];\r\n }\r\n\r\n for (i = 0; i < FormatOptions.length; i += 1) {\r\n optionName = FormatOptions[i];\r\n optionValue = inputOptions[optionName];\r\n\r\n if (optionValue === undefined) {\r\n // Only default if negativeBefore isn't set.\r\n if (optionName === \"negative\" && !filteredOptions.negativeBefore) {\r\n filteredOptions[optionName] = \"-\";\r\n // Don't set a default for mark when 'thousand' is set.\r\n } else if (optionName === \"mark\" && filteredOptions.thousand !== \".\") {\r\n filteredOptions[optionName] = \".\";\r\n } else {\r\n filteredOptions[optionName] = false;\r\n }\r\n\r\n // Floating points in JS are stable up to 7 decimals.\r\n } else if (optionName === \"decimals\") {\r\n if (optionValue >= 0 && optionValue < 8) {\r\n filteredOptions[optionName] = optionValue;\r\n } else {\r\n throw new Error(optionName);\r\n }\r\n\r\n // These options, when provided, must be functions.\r\n } else if (\r\n optionName === \"encoder\" ||\r\n optionName === \"decoder\" ||\r\n optionName === \"edit\" ||\r\n optionName === \"undo\"\r\n ) {\r\n if (typeof optionValue === \"function\") {\r\n filteredOptions[optionName] = optionValue;\r\n } else {\r\n throw new Error(optionName);\r\n }\r\n\r\n // Other options are strings.\r\n } else {\r\n if (typeof optionValue === \"string\") {\r\n filteredOptions[optionName] = optionValue;\r\n } else {\r\n throw new Error(optionName);\r\n }\r\n }\r\n }\r\n\r\n // Some values can't be extracted from a\r\n // string if certain combinations are present.\r\n throwEqualError(filteredOptions, \"mark\", \"thousand\");\r\n throwEqualError(filteredOptions, \"prefix\", \"negative\");\r\n throwEqualError(filteredOptions, \"prefix\", \"negativeBefore\");\r\n\r\n return filteredOptions;\r\n }\r\n\r\n // Pass all options as function arguments\r\n function passAll(options, method, input) {\r\n var i,\r\n args = [];\r\n\r\n // Add all options in order of FormatOptions\r\n for (i = 0; i < FormatOptions.length; i += 1) {\r\n args.push(options[FormatOptions[i]]);\r\n }\r\n\r\n // Append the input, then call the method, presenting all\r\n // options as arguments.\r\n args.push(input);\r\n return method.apply(\"\", args);\r\n }\r\n\r\n function wNumb(options) {\r\n if (!(this instanceof wNumb)) {\r\n return new wNumb(options);\r\n }\r\n\r\n if (typeof options !== \"object\") {\r\n return;\r\n }\r\n\r\n options = validate(options);\r\n\r\n // Call 'formatTo' with proper arguments.\r\n this.to = function(input) {\r\n return passAll(options, formatTo, input);\r\n };\r\n\r\n // Call 'formatFrom' with proper arguments.\r\n this.from = function(input) {\r\n return passAll(options, formatFrom, input);\r\n };\r\n }\r\n\r\n return wNumb;\r\n});\r\n","import wnumb from 'wnumb';\n\nexport function isObject(val) {\n return val != null && typeof val === 'object' && Array.isArray(val) === false;\n}\n\nexport function dateToYYYYMMDD(date) {\n if (!date || !(date instanceof Date)) {\n return '';\n }\n\n return `${date.getFullYear()}-${(date.getMonth() + 1)\n .toString()\n .padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`;\n}\n\n// Get element position relative to document\nexport function windowOffset(el) {\n const position = { x: 0, y: 0 };\n\n /* eslint-disable no-cond-assign, no-param-reassign */\n if (el.offsetParent) {\n do {\n position.x += el.offsetLeft;\n position.y += el.offsetTop;\n } while ((el = el.offsetParent));\n }\n /* eslint-enable */\n\n return position;\n}\n\n// Get element siblings\nexport function getSiblings(el) {\n if (!(el instanceof Element)) {\n return false;\n }\n\n const parent = el.parentNode;\n if (!parent) {\n return false;\n }\n\n const parentChildren = [];\n const siblings = [];\n\n parentChildren.push.apply(parentChildren, parent.children); // eslint-disable-line prefer-spread\n\n for (let i = 0, l = parentChildren.length; i < l; i += 1) {\n if (parentChildren[i] !== el) {\n siblings.push(parentChildren[i]);\n }\n }\n\n return siblings;\n}\n\n/**\n * Converts object to string\n *\n * Should be able to handle all types\n * objectToString({\n * 'boolean': true,\n * 'function': () => { return 'test'; },\n * 'namedfunction': function test() { return 'test'; },\n * 'null': null,\n * 'number1': 1,\n * 'number2': 2.345,\n * 'object1': { test: 'test' },\n * 'string': 'String',\n * 'undefined' : undefined,\n * })\n *\n * @param {object} object object to convert\n * @returns object converted to string\n */\nexport const objectToString = (object, spaceCount = 2) => {\n let str = '';\n for (var key in object) {\n if (object.hasOwnProperty(key)) {\n let value = object?.[key];\n if (typeof value === 'string') {\n value = `\"${value}\"`;\n } else if (value === null) {\n value = 'null';\n } else if (typeof value === 'object') {\n value = objectToString(value, spaceCount + 2);\n } else if (typeof value === 'function') {\n value = value.toString();\n } else if (value === undefined) {\n value = 'undefined';\n }\n str += `${' '.repeat(spaceCount)}${key}: ${value},\\n`;\n }\n }\n return `{\\n${str}${' '.repeat(spaceCount - 2)}}`;\n};\nexport function capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport function lowerCamelCase(string) {\n return string.charAt(0).toLowerCase() + string.slice(1);\n}\n\nconst defaultPriceFormat = {\n decimals: 2,\n mark: ',',\n thousand: ' ',\n suffix: `\\xa0€`,\n};\n\nexport function formatPrice(price, format) {\n return wnumb({\n ...defaultPriceFormat,\n ...format,\n ...(price % 1 === 0 ? { decimals: 0 } : {}), // integers without decimals\n }).to(price);\n}\n","import { lowerCamelCase } from '../../utils/helpers';\n\nexport default function moduleFactory(Module, selector, options = {}) {\n const elements = Array.from(document.querySelectorAll(selector));\n\n return elements.map(element => new Module(element, options));\n}\n\nexport function destroyModulesWithin(container, removeOrphanedNodes = false) {\n const destroyedInstances = {};\n\n Object.keys(window.ODS.instances).forEach(moduleName => {\n window.ODS.instances[moduleName].forEach(instance => {\n if (typeof destroyedInstances[moduleName] !== 'object') {\n destroyedInstances[moduleName] = [];\n }\n\n let isInContainer = container.contains(instance.element);\n if (moduleName === 'modal') {\n // eslint-disable-next-line\n isInContainer = instance.instance?._openers.every(opener =>\n container.contains(opener)\n );\n } else if (moduleName === 'tooltip') {\n isInContainer = container.contains(instance.trigger);\n }\n\n if (isInContainer) {\n instance.destroy();\n destroyedInstances[moduleName].push(instance);\n }\n\n if (\n isInContainer &&\n removeOrphanedNodes &&\n ['modal', 'tooltip'].includes(moduleName)\n ) {\n instance.element.remove();\n }\n });\n\n window.ODS.instances[moduleName] = window.ODS.instances[moduleName].filter(\n instance => !destroyedInstances[moduleName].includes(instance)\n );\n });\n\n return destroyedInstances;\n}\n\nexport function initModulesWithin(container) {\n const instances = {};\n window.ODS.moduleSelectorPairs.forEach(module => {\n const name = lowerCamelCase(module.name);\n const elements = Array.from(container.querySelectorAll(module.selector));\n if (window && window.ODS && window.ODS.instances[name]) {\n window.ODS.instances[name].forEach(instance => {\n elements.forEach((element, index) => {\n if (element.isSameNode(instance.element)) {\n elements.splice(index, 1);\n }\n });\n });\n }\n if (elements.length) {\n instances[name] = elements.map(element => new module.Module(element));\n window.ODS.instances[name] = [\n ...window.ODS.instances[name],\n ...instances[name],\n ];\n }\n });\n return instances;\n}\n","// eslint-disable-next-line import/no-cycle\nimport { TOGGLE_EVT } from './Toggle';\n\nexport default function toggle(props) {\n const {\n element,\n attribute,\n action,\n value,\n dispatchEvent = true,\n eventDetail,\n } = props;\n let returnValue = null;\n\n if (!element || !(element instanceof Element)) {\n return returnValue;\n }\n\n if (action === 'focus') {\n setTimeout(element.focus(), 20);\n }\n\n if (action === 'click') {\n element.click();\n }\n\n if (attribute === 'class') {\n element.classList.toggle(value);\n returnValue = value;\n }\n\n if (attribute === 'text') {\n const oldText = element.textContent;\n element.textContent = value;\n returnValue = oldText;\n }\n\n if (\n attribute !== 'class' &&\n attribute !== 'text' &&\n typeof action === 'undefined'\n ) {\n returnValue = element.getAttribute(attribute);\n\n if (attribute === 'hidden') {\n if (element.hasAttribute(attribute)) {\n element.removeAttribute(attribute);\n } else {\n element.setAttribute(attribute, '');\n }\n } else if (!value) {\n element.setAttribute(attribute, !(returnValue === 'true'));\n } else {\n element.setAttribute(attribute, value);\n }\n }\n\n if (dispatchEvent) {\n element.dispatchEvent(\n new CustomEvent(TOGGLE_EVT, {\n detail: eventDetail,\n bubbles: true,\n })\n );\n }\n\n return returnValue;\n}\n","// ---------------------------------------------------\n// Toggle\n// module for handling toggle actions\n// eslint-disable-next-line import/no-cycle\nimport toggle from './toggleUtil';\n\nexport const TRIGGER_EVT = 'toggleTrigger';\nexport const TOGGLE_EVT = 'toggle';\n\nconst defaultConfig = {\n activeClass: 'is-active',\n settingsAttr: 'data-toggle',\n};\n\nclass Toggle {\n constructor(element, config) {\n this.element = element;\n this.config = { ...defaultConfig, ...config };\n\n this.settings = {};\n this.targets = [];\n\n this.handleClick = this.handleClick.bind(this);\n\n this.element.ODS_Toggle = this;\n\n this.init();\n\n return this;\n }\n\n doToggle(props) {\n const { dispatchEvent = true } = props;\n let { element, attribute, value, action } = props;\n\n const returnProps = { ...props };\n const eventDetail = { trigger: this.element, element };\n\n if (attribute === 'icon') {\n attribute = 'xlink:href';\n element = element.querySelector('use');\n }\n\n if (attribute === 'text') {\n element = element.querySelector('[data-toggle-text-target]') || element;\n }\n\n if (typeof value === 'undefined') {\n value = false;\n }\n\n returnProps.value = toggle({\n element,\n attribute,\n action,\n value,\n dispatchEvent,\n eventDetail,\n });\n\n return returnProps;\n }\n\n init() {\n this.settings = this.parseSettings();\n\n this.targets = this.setupTargets();\n\n this.element.addEventListener('click', this.handleClick);\n\n return this.targets;\n }\n\n handleClick() {\n this.targets = this.targets.map(target => this.doToggle(target));\n\n this.element.dispatchEvent(new CustomEvent(TRIGGER_EVT, { bubbles: true }));\n }\n\n destroy() {\n this.element.removeEventListener('click', this.handleClick);\n this.settings = [];\n this.targets = [];\n }\n\n update() {\n this.removeNonExistentTargets();\n this.addNewTargets();\n }\n\n static getTargetElementsFromString({ target, trigger }) {\n const selector = target.trim();\n\n if (selector === 'self') {\n return [trigger];\n }\n\n if (selector === 'parent') {\n return [trigger.parentNode];\n }\n\n if (selector === 'previous') {\n return [trigger.previousElementSibling];\n }\n\n if (selector === 'next') {\n return [trigger.nextElementSibling];\n }\n\n if (typeof selector === 'string') {\n // don't be tempted to remove this querySelectorAll\n // selector like '.target-elements' whould not work as expected\n return Array.from(document.querySelectorAll(selector));\n }\n\n // add log why we endup here\n return selector;\n }\n\n parseSettings() {\n const jsonSettings = this.element.getAttribute(this.config.settingsAttr);\n const ariaControls = this.element.getAttribute('aria-controls');\n\n let settings = JSON.parse(jsonSettings);\n\n if (ariaControls) {\n const ariaExpanded = this.element.getAttribute('aria-expanded');\n\n settings = [\n ...(ariaExpanded\n ? [\n {\n target: 'self',\n attribute: 'aria-expanded',\n },\n ]\n : []),\n {\n target: ariaControls\n .split(' ')\n .map(a => `#${a}`)\n .join(','),\n attribute: 'hidden',\n },\n ...(Array.isArray(settings) ? settings : []),\n ];\n }\n\n return settings;\n }\n\n // get all the possible settings for all target elements\n setupTargets() {\n const trigger = this.element;\n\n return this.settings.reduce(\n (allSettings, setting) => [\n ...allSettings,\n ...setting?.target\n .split(',') // separate target selectors\n .reduce(\n (targetSettings, target) => [\n ...targetSettings,\n ...Toggle\n // get target elements from DOM\n .getTargetElementsFromString({\n target,\n trigger,\n })\n // duplicate setting for each DOM element\n .map(element => ({\n ...setting,\n element,\n })),\n ],\n []\n ),\n ],\n []\n );\n }\n\n removeNonExistentTargets() {\n this.targets = this.targets.filter(target =>\n document.contains(target.element)\n );\n }\n\n addNewTargets() {\n const allTargets = this.setupTargets();\n const newTargets = allTargets.filter(\n newTarget =>\n !this.targets.find(\n target =>\n target.element === newTarget.element &&\n target.action === newTarget.action\n )\n );\n\n this.targets = [...this.targets, ...newTargets];\n }\n\n static getInstance(el) {\n return el && el.ODS_Toggle ? el.ODS_Toggle : null;\n }\n}\n\nexport default Toggle;\n\nexport const { getTargetElements } = Toggle;\nexport const { setTargets } = Toggle;\n","export default class SameHeight {\n constructor(element) {\n this.element = element;\n this.children = null;\n this.updateHeight = this.updateHeight.bind(this);\n this.element.ODS_SameHeight = this;\n this.intervalId = null; // Add this line to store interval ID\n this.init();\n }\n\n // This method temporarily shows hidden elements by changing their display style to 'block' and removing the 'hidden' attribute.\n temporarilyShowHiddenElements() {\n // Initialize an array to store the original display states of the elements.\n this.originalDisplayStates = [];\n\n // Iterate over each child element.\n this.children.forEach((child) => {\n // Find the closest ancestor with the role 'tabpanel'.\n const tabPanel = child.closest('[role=\"tabpanel\"]');\n // Find the closest ancestor with the role 'dialog'.\n const modal = child.closest('[role=\"dialog\"]');\n\n // If the tabPanel exists and has the 'hidden' attribute.\n if (tabPanel && tabPanel.hasAttribute(\"hidden\")) {\n // Store the original display state of the tabPanel.\n this.originalDisplayStates.push({\n element: tabPanel,\n display: tabPanel.style.display,\n });\n // Change the display style to 'block' and remove the 'hidden' attribute.\n tabPanel.style.display = \"block\";\n tabPanel.removeAttribute(\"hidden\");\n }\n\n // If the modal exists and has the 'aria-hidden' attribute.\n if (modal && modal.hasAttribute(\"aria-hidden\")) {\n // Store the original display state of the modal.\n this.originalDisplayStates.push({\n element: modal,\n display: modal.style.display,\n });\n // Change the display style to 'block' and remove the 'aria-hidden' attribute.\n modal.style.display = \"block\";\n modal.removeAttribute(\"aria-hidden\");\n }\n });\n }\n\n // This method restores the hidden elements to their original display states.\n restoreHiddenElements() {\n // Iterate over each stored original display state.\n this.originalDisplayStates.forEach(({ element, display }) => {\n // Restore the original display style.\n element.style.display = display;\n\n // Check if the element has the role 'tabpanel'.\n if (element.getAttribute(\"role\") === \"tabpanel\") {\n // If so, set the 'hidden' attribute to true.\n element.setAttribute(\"hidden\", true);\n }\n // Check if the element has the role 'dialog'.\n else if (element.getAttribute(\"role\") === \"dialog\") {\n // If so, set the 'aria-hidden' attribute to true.\n element.setAttribute(\"aria-hidden\", true);\n }\n });\n }\n\n updateHeight() {\n // Temporarily show hidden elements to ensure they are included in the height calculations.\n this.temporarilyShowHiddenElements();\n\n // Get all elements with data-same-height-child attribute\n const allSameHeightChildren = this.element.querySelectorAll(\n '[data-same-height-child=\"true\"]',\n );\n\n // Group elements by their \"type\" (using data-same-height-group if available)\n const groupedElements = this.groupElementsByTypeAndPosition(\n allSameHeightChildren,\n );\n\n // Process each group separately\n\n for (const [, elements] of Object.entries(groupedElements)) {\n const rows = [];\n let newRow = [];\n\n if (elements.length) {\n let lastOffset = elements[0].getBoundingClientRect().top;\n\n for (let child of elements) {\n if (child.getBoundingClientRect().top === lastOffset) {\n newRow.push(child);\n } else {\n rows.push([...newRow]);\n newRow = [];\n newRow.push(child);\n }\n lastOffset = child.getBoundingClientRect().top;\n }\n\n rows.push([...newRow]);\n\n rows.forEach((row) => {\n if (row.length > 1) {\n let maxHeight = 0;\n row.forEach((child) => {\n if (child) {\n if (child.style.height) {\n child.style.height = \"\";\n }\n if (child.offsetHeight > maxHeight) {\n maxHeight = child.offsetHeight;\n }\n }\n });\n row.forEach((child) => {\n child.style.height = maxHeight + \"px\";\n });\n } else {\n row.forEach((child) => {\n if (child.style.height) {\n child.style.height = null;\n }\n });\n }\n });\n }\n }\n\n // Restore the hidden elements to their original display states after height calculations are done.\n this.restoreHiddenElements();\n }\n\n groupElementsByTypeAndPosition(elements) {\n const groups = {};\n\n elements.forEach((element) => {\n // Get group identifier - either from data-same-height-group attribute or default to 'default'\n const groupKey =\n element.getAttribute(\"data-same-height-group\") || \"default\";\n\n if (!groups[groupKey]) {\n groups[groupKey] = [];\n }\n\n groups[groupKey].push(element);\n });\n\n return groups;\n }\n\n init() {\n console.log(\"test\");\n let imgLoaded = [];\n // Instead of finding one child per parent element, we find all elements with the attribute\n this.children = this.element.querySelectorAll(\n '[data-same-height-child=\"true\"]',\n );\n\n // Check if any of the data-same-height-child elements contain images\n this.children.forEach((child) => {\n const images = child.querySelectorAll(\"img\");\n images.forEach((img) => {\n if (!img.complete) {\n imgLoaded.push(img);\n }\n });\n });\n\n // Function executed on init when there are no img children or all img are loaded\n if (imgLoaded.length === 0) {\n this.updateHeight();\n }\n // If there are unloaded images we check if they did load every 400ms\n else {\n let x = 0;\n this.intervalId = setInterval(() => {\n let completed = false;\n imgLoaded.forEach((img, index, array) => {\n if (img.complete) {\n array.splice(index, 1);\n completed = true;\n }\n });\n if (completed && this.updateHeight) {\n this.updateHeight();\n }\n if (++x >= 15 || imgLoaded.length === 0) {\n if (imgLoaded.length && this.updateHeight) {\n this.updateHeight();\n }\n window.clearInterval(this.intervalId);\n }\n }, 400);\n }\n window.addEventListener(\"resize\", this.updateHeight);\n }\n\n update() {\n this.destroy();\n this.init();\n }\n\n destroy() {\n window.removeEventListener(\"resize\", this.updateHeight);\n if (this.intervalId) {\n clearInterval(this.intervalId);\n this.intervalId = null;\n }\n }\n\n static getInstance(el) {\n return el && el.ODS_SameHeight ? el.ODS_SameHeight : null;\n }\n}\n","import { lowerCamelCase } from \"../utils/helpers\";\n// import Accordion from '../components/Accordion/Accordion.static';\n// import Autocomplete from '../components/Forms/Autocomplete/Autocomplete.static';\n// import DatePicker from '../components/Forms/DatePicker/DatePicker.static';\n// import BlockAction from '../components/BlockAction/BlockAction.static';\n// import Carousel from '../components/Carousel/Carousel.static';\n// import CarouselPromotions from '../components/CarouselPromotions/CarouselPromotions.static';\n// import Dropdown from '../components/Dropdown/Dropdown.static';\n// import Expander from '../components/Expander/Expander.static';\n// import File from '../components/Forms/File/File.static';\n// import Loader from '../components/Loader/Loader.static';\n// import Modal from '../components/Modal/Modal.static';\n// import RangeSlider from '../components/Forms/RangeSlider/RangeSlider.static';\n// import Table from '../components/Table/Table.static';\n// import Tabs from '../components/Tabs/Tabs.static';\n// import Tooltip from '../components/Tooltip/Tooltip.static';\n// import InputStepper from '../components/Forms/InputStepper/InputStepper.static';\n\nimport moduleFactory, {\n initModulesWithin,\n destroyModulesWithin,\n} from \"./lib/moduleFactory\";\nimport Toggle from \"./modules/Toggle\";\nimport SameHeight from \"./modules/SameHeight\";\n\nexport const moduleSelectorPairs = [\n // {\n // Module: Accordion,\n // name: 'Accordion',\n // selector: '[data-accordion]',\n // },\n // {\n // Module: Autocomplete,\n // name: 'Autocomplete',\n // selector: '[data-autocomplete]',\n // },\n // {\n // Module: DatePicker,\n // name: 'DatePicker',\n // selector: '[data-datepicker]',\n // },\n // {\n // Module: Dropdown,\n // name: 'Dropdown',\n // selector: '[data-dropdown]',\n // },\n // {\n // Module: Expander,\n // name: 'Expander',\n // selector: '[data-expander]',\n // },\n // {\n // Module: BlockAction,\n // name: 'BlockAction',\n // selector: '[data-block-action]',\n // },\n // {\n // Module: Carousel,\n // name: 'Carousel',\n // selector: '[data-carousel]',\n // },\n // {\n // Module: CarouselPromotions,\n // name: 'CarouselPromotions',\n // selector: '[data-carousel-promotions]',\n // },\n // {\n // Module: File,\n // name: 'File',\n // selector: '[data-file-input]',\n // },\n // {\n // Module: Loader,\n // name: 'Loader',\n // selector: '[data-loader]',\n // },\n // {\n // Module: Modal,\n // name: 'Modal',\n // selector: '[data-modal]',\n // },\n {\n Module: SameHeight,\n name: \"SameHeight\",\n selector: \"[data-same-height]\",\n },\n // {\n // Module: RangeSlider,\n // name: 'RangeSlider',\n // selector: '[data-rangeslider]',\n // },\n // {\n // Module: InputStepper,\n // name: 'InputStepper',\n // selector: '[data-inputstepper]',\n // },\n // {\n // Module: Table,\n // name: 'Table',\n // selector: '[data-table]',\n // },\n // {\n // Module: Tabs,\n // name: 'Tabs',\n // selector: '[data-tabs]',\n // },\n {\n Module: Toggle,\n name: \"Toggle\",\n selector: \"[data-toggle]\",\n },\n // {\n // Module: Tooltip,\n // name: 'Tooltip',\n // selector: '[data-tooltip]',\n // },\n];\n\ndeclare global {\n interface Window {\n ODS: {\n modules: Record<string, any>;\n instances: Record<string, any>;\n moduleSelectorPairs: Array<{\n name: string;\n Module: any;\n selector: string;\n }>;\n initModulesWithin: typeof initModulesWithin;\n destroyModulesWithin: typeof destroyModulesWithin;\n };\n }\n}\n\nwindow.ODS = window.ODS || {\n modules: {},\n instances: {},\n moduleSelectorPairs: {},\n};\nwindow.ODS.initModulesWithin = initModulesWithin;\nwindow.ODS.destroyModulesWithin = destroyModulesWithin;\nwindow.ODS.moduleSelectorPairs = moduleSelectorPairs;\n\nwindow.addEventListener(\"DOMContentLoaded\", () => {\n console.log(\"ODS modules loaded\");\n\n moduleSelectorPairs.forEach((module) => {\n window.ODS.modules[module.name] = module.Module;\n window.ODS.instances[lowerCamelCase(module.name)] = moduleFactory(\n module.Module,\n module.selector,\n );\n });\n\n window.dispatchEvent(new Event(\"ODSLoaded\"));\n});\n"],"names":["lowerCamelCase","string","charAt","toLowerCase","slice","moduleFactory","Module","selector","options","arguments","length","undefined","elements","Array","from","document","querySelectorAll","map","element","destroyModulesWithin","container","removeOrphanedNodes","destroyedInstances","Object","keys","window","ODS","instances","forEach","moduleName","instance","_typeof","isInContainer","contains","_instance$instance","_openers","every","opener","trigger","destroy","push","includes","remove","filter","initModulesWithin","moduleSelectorPairs","module","name","index","isSameNode","splice","concat","_toConsumableArray","toggle","props","attribute","action","value","_props$dispatchEvent","dispatchEvent","eventDetail","returnValue","Element","setTimeout","focus","click","classList","oldText","textContent","getAttribute","hasAttribute","removeAttribute","setAttribute","CustomEvent","TOGGLE_EVT","detail","bubbles","TRIGGER_EVT","defaultConfig","activeClass","settingsAttr","Toggle","config","_classCallCheck","_objectSpread","settings","targets","handleClick","bind","ODS_Toggle","init","_createClass","key","doToggle","returnProps","querySelector","parseSettings","setupTargets","addEventListener","_this","target","removeEventListener","update","removeNonExistentTargets","addNewTargets","jsonSettings","ariaControls","JSON","parse","ariaExpanded","split","a","join","isArray","reduce","allSettings","setting","targetSettings","getTargetElementsFromString","_this2","allTargets","newTargets","newTarget","find","_ref","trim","parentNode","previousElementSibling","nextElementSibling","getInstance","el","getTargetElements","setTargets","SameHeight","children","updateHeight","ODS_SameHeight","intervalId","temporarilyShowHiddenElements","originalDisplayStates","child","tabPanel","closest","modal","display","style","restoreHiddenElements","allSameHeightChildren","groupedElements","groupElementsByTypeAndPosition","_i","_Object$entries","entries","_Object$entries$_i","_slicedToArray","rows","newRow","lastOffset","getBoundingClientRect","top","_iterator","_createForOfIteratorHelper","_step","s","n","done","err","e","f","row","maxHeight","height","offsetHeight","groups","groupKey","console","log","imgLoaded","images","img","complete","x","setInterval","completed","array","clearInterval","modules","Event"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAA,CAAC,SAAS,OAAO,EAAE;IAIuB;AAC1C;MACI,MAAA,CAAA,OAAA,GAAiB,OAAO,EAAE,CAAC;AAC/B,KAGG;AACH,GAAC,EAAE,WAAW;AAEd;IACE,IAAI,aAAa,GAAG;AACtB,MAAI,UAAU;AACd,MAAI,UAAU;AACd,MAAI,MAAM;AACV,MAAI,QAAQ;AACZ,MAAI,QAAQ;AACZ,MAAI,SAAS;AACb,MAAI,SAAS;AACb,MAAI,gBAAgB;AACpB,MAAI,UAAU;AACd,MAAI,MAAM;AACV,MAAI,MAAM;AACV,KAAG,CAAC;AACJ;AACA;AACA;AACA;AACA,IAAE,SAAS,UAAU,CAAC,CAAC,EAAE;AACzB,MAAI,OAAO,CAAC;SACL,KAAK,CAAC,EAAE,CAAC;AAChB,SAAO,OAAO,EAAE;AAChB,SAAO,IAAI,CAAC,EAAE,CAAC,CAAC;KACb;AACH;AACA;AACA,IAAE,SAAS,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE;AACvC,MAAI,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC;KACnD;AACH;AACA;AACA,IAAE,SAAS,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE;AACrC,MAAI,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC;KACjD;AACH;AACA;IACE,SAAS,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;MAChC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACzC,QAAM,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;OACpB;KACF;AACH;AACA;AACA,IAAE,SAAS,aAAa,CAAC,KAAK,EAAE;MAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;KACrD;AACH;AACA;AACA;AACA,IAAE,SAAS,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE;MAC3B,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,MAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;MAC3E,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,MAAI,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;KAC/E;AACH;AACA;AACA;AACA;AACA,IAAE,SAAS,QAAQ;AACnB,MAAI,QAAQ;AACZ,MAAI,QAAQ;AACZ,MAAI,IAAI;AACR,MAAI,MAAM;AACV,MAAI,MAAM;AACV,MAAI,OAAO;AACX,MAAI,OAAO;AACX,MAAI,cAAc;AAClB,MAAI,QAAQ;AACZ,MAAI,IAAI;AACR,MAAI,IAAI;AACR,MAAI,KAAK;MACL;MACA,IAAI,aAAa,GAAG,KAAK;AAC7B,QAAM,eAAe;AACrB,QAAM,WAAW;AACjB,QAAM,SAAS;QACT,aAAa,GAAG,EAAE;QAClB,MAAM,GAAG,EAAE,CAAC;AAClB;AACA;AACA;MACI,IAAI,OAAO,EAAE;AACjB,QAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;OACxB;AACL;AACA;AACA,MAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;QACzB,OAAO,KAAK,CAAC;OACd;AACL;AACA;AACA;AACA,MAAI,IAAI,QAAQ,KAAK,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE;QACnE,KAAK,GAAG,CAAC,CAAC;OACX;AACL;AACA;AACA;AACA,MAAI,IAAI,KAAK,GAAG,CAAC,EAAE;QACb,eAAe,GAAG,IAAI,CAAC;QACvB,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;OACzB;AACL;AACA;AACA,MAAI,IAAI,QAAQ,KAAK,KAAK,EAAE;QACtB,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;OAClC;AACL;AACA;AACA,MAAI,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC7B;AACA;MACI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE;QAC7B,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrC;AACA,QAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACjC;QACM,IAAI,IAAI,EAAE;UACR,aAAa,GAAG,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;SACvC;AACP,OAAK,MAAM;AACX;QACM,SAAS,GAAG,KAAK,CAAC;OACnB;AACL;AACA;MACI,IAAI,QAAQ,EAAE;QACZ,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACzD,QAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;OAC9D;AACL;AACA;AACA,MAAI,IAAI,eAAe,IAAI,cAAc,EAAE;QACrC,MAAM,IAAI,cAAc,CAAC;OAC1B;AACL;AACA;MACI,IAAI,MAAM,EAAE;QACV,MAAM,IAAI,MAAM,CAAC;OAClB;AACL;AACA;AACA,MAAI,IAAI,eAAe,IAAI,QAAQ,EAAE;QAC/B,MAAM,IAAI,QAAQ,CAAC;OACpB;AACL;AACA;MACI,MAAM,IAAI,SAAS,CAAC;MACpB,MAAM,IAAI,aAAa,CAAC;AAC5B;AACA;MACI,IAAI,MAAM,EAAE;QACV,MAAM,IAAI,MAAM,CAAC;OAClB;AACL;AACA;MACI,IAAI,IAAI,EAAE;QACR,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;OACtC;AACL;AACA;MACI,OAAO,MAAM,CAAC;KACf;AACH;AACA;AACA,IAAE,SAAS,UAAU;AACrB,MAAI,QAAQ;AACZ,MAAI,QAAQ;AACZ,MAAI,IAAI;AACR,MAAI,MAAM;AACV,MAAI,MAAM;AACV,MAAI,OAAO;AACX,MAAI,OAAO;AACX,MAAI,cAAc;AAClB,MAAI,QAAQ;AACZ,MAAI,IAAI;AACR,MAAI,IAAI;AACR,MAAI,KAAK;MACL;MACA,IACE,eAAe,CAAA;QACf,MAAM,GAAG,GAAG;AAClB;AACA;MACI,IAAI,IAAI,EAAE;AACd,QAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;OACrB;AACL;AACA;MACI,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACvC,OAAO,KAAK,CAAC;OACd;AACL;AACA;AACA;MACI,IAAI,cAAc,IAAI,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE;QAC1D,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC1C,eAAe,GAAG,IAAI,CAAC;OACxB;AACL;AACA;MACI,IAAI,MAAM,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;QAC1C,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;OACnC;AACL;AACA;MACI,IAAI,QAAQ,IAAI,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;QAC9C,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpC,eAAe,GAAG,IAAI,CAAC;OACxB;AACL;AACA;AACA;MACI,IAAI,MAAM,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;AAC9C,QAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;OAC5C;AACL;AACA;MACI,IAAI,QAAQ,EAAE;AAClB,QAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;OACxC;AACL;AACA;MACI,IAAI,IAAI,EAAE;QACR,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;OAClC;AACL;AACA;MACI,IAAI,eAAe,EAAE;QACnB,MAAM,IAAI,GAAG,CAAC;OACf;AACL;AACA;MACI,MAAM,IAAI,KAAK,CAAC;AACpB;AACA;MACI,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AAChD;AACA;AACA,MAAI,IAAI,MAAM,KAAK,EAAE,EAAE;QACjB,OAAO,KAAK,CAAC;OACd;AACL;AACA;AACA,MAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5B;AACA;MACI,IAAI,OAAO,EAAE;AACjB,QAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;OAC1B;AACL;AACA;AACA,MAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;QAC1B,OAAO,KAAK,CAAC;OACd;AACL;MACI,OAAO,MAAM,CAAC;KACf;AACH;AACA;AACA;AACA;AACA,IAAE,SAAS,QAAQ,CAAC,YAAY,EAAE;AAClC,MAAI,IAAI,CAAC;AACT,QAAM,UAAU;AAChB,QAAM,WAAW;QACX,eAAe,GAAG,EAAE,CAAC;AAC3B;AACA,MAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;QACxC,YAAY,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;OAClD;AACL;AACA,MAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAClD,QAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AACpC,QAAM,WAAW,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AAC7C;AACA,QAAM,IAAI,WAAW,KAAK,SAAS,EAAE;AACrC;UACQ,IAAI,UAAU,KAAK,UAAU,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE;AAC1E,YAAU,eAAe,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;AAC5C;WACS,MAAM,IAAI,UAAU,KAAK,MAAM,IAAI,eAAe,CAAC,QAAQ,KAAK,GAAG,EAAE;AAC9E,YAAU,eAAe,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;AAC5C,WAAS,MAAM;AACf,YAAU,eAAe,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;WACrC;AACT;AACA;AACA,SAAO,MAAM,IAAI,UAAU,KAAK,UAAU,EAAE;UACpC,IAAI,WAAW,IAAI,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE;AACjD,YAAU,eAAe,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;AACpD,WAAS,MAAM;AACf,YAAU,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;WAC7B;AACT;AACA;AACA,SAAO,MAAM;UACL,UAAU,KAAK,SAAS;UACxB,UAAU,KAAK,SAAS;UACxB,UAAU,KAAK,MAAM;UACrB,UAAU,KAAK,MAAM;UACrB;AACR,UAAQ,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;AAC/C,YAAU,eAAe,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;AACpD,WAAS,MAAM;AACf,YAAU,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;WAC7B;AACT;AACA;AACA,SAAO,MAAM;AACb,UAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AAC7C,YAAU,eAAe,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;AACpD,WAAS,MAAM;AACf,YAAU,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;WAC7B;SACF;OACF;AACL;AACA;AACA;MACI,eAAe,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;MACrD,eAAe,CAAC,eAAe,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;MACvD,eAAe,CAAC,eAAe,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AACjE;MACI,OAAO,eAAe,CAAC;KACxB;AACH;AACA;IACE,SAAS,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3C,MAAI,IAAI,CAAC;QACH,IAAI,GAAG,EAAE,CAAC;AAChB;AACA;AACA,MAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAClD,QAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;OACtC;AACL;AACA;AACA;AACA,MAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;MACjB,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;KAC/B;AACH;AACA,IAAE,SAAS,KAAK,CAAC,OAAO,EAAE;AAC1B,MAAI,IAAI,EAAE,IAAI,YAAY,KAAK,CAAC,EAAE;AAClC,QAAM,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;OAC3B;AACL;AACA,MAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACrC,QAAM,OAAO;OACR;AACL;AACA,MAAI,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;AAChC;AACA;AACA,MAAI,IAAI,CAAC,EAAE,GAAG,SAAS,KAAK,EAAE;QACxB,OAAO,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC/C,OAAK,CAAC;AACN;AACA;AACA,MAAI,IAAI,CAAC,IAAI,GAAG,SAAS,KAAK,EAAE;QAC1B,OAAO,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AACjD,OAAK,CAAC;KACH;AACH;IACE,OAAO,KAAK,CAAC;AACf,GAAC,CAAC,CAAA;;;;;;;ACvRK,SAASA,cAAcA,CAACC,MAAM,EAAE;AACrC,EAAA,OAAOA,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,EAAE,GAAGF,MAAM,CAACG,KAAK,CAAC,CAAC,CAAC;AACzD;;ACrGe,SAASC,aAAaA,CAACC,MAAM,EAAEC,QAAQ,EAAgB;AAAA,EAAA,IAAdC,OAAO,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAClE,EAAA,IAAMG,QAAQ,GAAGC,KAAK,CAACC,IAAI,CAACC,QAAQ,CAACC,gBAAgB,CAACT,QAAQ,CAAC,CAAC;AAEhE,EAAA,OAAOK,QAAQ,CAACK,GAAG,CAAC,UAAAC,OAAO,EAAA;AAAA,IAAA,OAAI,IAAIZ,MAAM,CAACY,OAAO,EAAEV,OAAO,CAAC;GAAA,CAAC;AAC9D;AAEO,SAASW,oBAAoBA,CAACC,SAAS,EAA+B;AAAA,EAAA,IAA7BC,mBAAmB,GAAAZ,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,KAAK;EACzE,IAAMa,kBAAkB,GAAG,EAAE;AAE7BC,EAAAA,MAAM,CAACC,IAAI,CAACC,MAAM,CAACC,GAAG,CAACC,SAAS,CAAC,CAACC,OAAO,CAAC,UAAAC,UAAU,EAAI;AACtDJ,IAAAA,MAAM,CAACC,GAAG,CAACC,SAAS,CAACE,UAAU,CAAC,CAACD,OAAO,CAAC,UAAAE,QAAQ,EAAI;MACnD,IAAIC,OAAA,CAAOT,kBAAkB,CAACO,UAAU,CAAC,CAAA,KAAK,QAAQ,EAAE;AACtDP,QAAAA,kBAAkB,CAACO,UAAU,CAAC,GAAG,EAAE;AACrC;MAEA,IAAIG,aAAa,GAAGZ,SAAS,CAACa,QAAQ,CAACH,QAAQ,CAACZ,OAAO,CAAC;MACxD,IAAIW,UAAU,KAAK,OAAO,EAAE;AAAA,QAAA,IAAAK,kBAAA;AAC1B;AACAF,QAAAA,aAAa,IAAAE,kBAAA,GAAGJ,QAAQ,CAACA,QAAQ,MAAA,IAAA,IAAAI,kBAAA,KAAA,MAAA,GAAA,MAAA,GAAjBA,kBAAA,CAAmBC,QAAQ,CAACC,KAAK,CAAC,UAAAC,MAAM,EAAA;AAAA,UAAA,OACtDjB,SAAS,CAACa,QAAQ,CAACI,MAAM,CAAC;AAAA,SAC5B,CAAC;AACH,OAAC,MAAM,IAAIR,UAAU,KAAK,SAAS,EAAE;QACnCG,aAAa,GAAGZ,SAAS,CAACa,QAAQ,CAACH,QAAQ,CAACQ,OAAO,CAAC;AACtD;AAEA,MAAA,IAAIN,aAAa,EAAE;QACjBF,QAAQ,CAACS,OAAO,EAAE;AAClBjB,QAAAA,kBAAkB,CAACO,UAAU,CAAC,CAACW,IAAI,CAACV,QAAQ,CAAC;AAC/C;AAEA,MAAA,IACEE,aAAa,IACbX,mBAAmB,IACnB,CAAC,OAAO,EAAE,SAAS,CAAC,CAACoB,QAAQ,CAACZ,UAAU,CAAC,EACzC;AACAC,QAAAA,QAAQ,CAACZ,OAAO,CAACwB,MAAM,EAAE;AAC3B;AACF,KAAC,CAAC;IAEFjB,MAAM,CAACC,GAAG,CAACC,SAAS,CAACE,UAAU,CAAC,GAAGJ,MAAM,CAACC,GAAG,CAACC,SAAS,CAACE,UAAU,CAAC,CAACc,MAAM,CACxE,UAAAb,QAAQ,EAAA;MAAA,OAAI,CAACR,kBAAkB,CAACO,UAAU,CAAC,CAACY,QAAQ,CAACX,QAAQ,CAAC;AAAA,KAChE,CAAC;AACH,GAAC,CAAC;AAEF,EAAA,OAAOR,kBAAkB;AAC3B;AAEO,SAASsB,iBAAiBA,CAACxB,SAAS,EAAE;EAC3C,IAAMO,SAAS,GAAG,EAAE;EACpBF,MAAM,CAACC,GAAG,CAACmB,mBAAmB,CAACjB,OAAO,CAAC,UAAAkB,MAAM,EAAI;AAC/C,IAAA,IAAMC,IAAI,GAAG/C,cAAc,CAAC8C,MAAM,CAACC,IAAI,CAAC;AACxC,IAAA,IAAMnC,QAAQ,GAAGC,KAAK,CAACC,IAAI,CAACM,SAAS,CAACJ,gBAAgB,CAAC8B,MAAM,CAACvC,QAAQ,CAAC,CAAC;AACxE,IAAA,IAAIkB,MAAM,IAAIA,MAAM,CAACC,GAAG,IAAID,MAAM,CAACC,GAAG,CAACC,SAAS,CAACoB,IAAI,CAAC,EAAE;AACtDtB,MAAAA,MAAM,CAACC,GAAG,CAACC,SAAS,CAACoB,IAAI,CAAC,CAACnB,OAAO,CAAC,UAAAE,QAAQ,EAAI;AAC7ClB,QAAAA,QAAQ,CAACgB,OAAO,CAAC,UAACV,OAAO,EAAE8B,KAAK,EAAK;UACnC,IAAI9B,OAAO,CAAC+B,UAAU,CAACnB,QAAQ,CAACZ,OAAO,CAAC,EAAE;AACxCN,YAAAA,QAAQ,CAACsC,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;AAC3B;AACF,SAAC,CAAC;AACJ,OAAC,CAAC;AACJ;IACA,IAAIpC,QAAQ,CAACF,MAAM,EAAE;MACnBiB,SAAS,CAACoB,IAAI,CAAC,GAAGnC,QAAQ,CAACK,GAAG,CAAC,UAAAC,OAAO,EAAA;AAAA,QAAA,OAAI,IAAI4B,MAAM,CAACxC,MAAM,CAACY,OAAO,CAAC;OAAA,CAAC;MACrEO,MAAM,CAACC,GAAG,CAACC,SAAS,CAACoB,IAAI,CAAC,GAAA,EAAA,CAAAI,MAAA,CAAAC,kBAAA,CACrB3B,MAAM,CAACC,GAAG,CAACC,SAAS,CAACoB,IAAI,CAAC,CAAA,EAAAK,kBAAA,CAC1BzB,SAAS,CAACoB,IAAI,CAAC,CAAA,CACnB;AACH;AACF,GAAC,CAAC;AACF,EAAA,OAAOpB,SAAS;AAClB;;ACxEA;AAGe,SAAS0B,MAAMA,CAACC,KAAK,EAAE;AACpC,EAAA,IACEpC,OAAO,GAMLoC,KAAK,CANPpC,OAAO;IACPqC,SAAS,GAKPD,KAAK,CALPC,SAAS;IACTC,MAAM,GAIJF,KAAK,CAJPE,MAAM;IACNC,KAAK,GAGHH,KAAK,CAHPG,KAAK;IAAAC,oBAAA,GAGHJ,KAAK,CAFPK,aAAa;AAAbA,IAAAA,aAAa,GAAAD,oBAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,oBAAA;IACpBE,WAAW,GACTN,KAAK,CADPM,WAAW;EAEb,IAAIC,WAAW,GAAG,IAAI;EAEtB,IAAI,CAAC3C,OAAO,IAAI,EAAEA,OAAO,YAAY4C,OAAO,CAAC,EAAE;AAC7C,IAAA,OAAOD,WAAW;AACpB;EAEA,IAAIL,MAAM,KAAK,OAAO,EAAE;IACtBO,UAAU,CAAC7C,OAAO,CAAC8C,KAAK,EAAE,EAAE,EAAE,CAAC;AACjC;EAEA,IAAIR,MAAM,KAAK,OAAO,EAAE;IACtBtC,OAAO,CAAC+C,KAAK,EAAE;AACjB;EAEA,IAAIV,SAAS,KAAK,OAAO,EAAE;AACzBrC,IAAAA,OAAO,CAACgD,SAAS,CAACb,MAAM,CAACI,KAAK,CAAC;AAC/BI,IAAAA,WAAW,GAAGJ,KAAK;AACrB;EAEA,IAAIF,SAAS,KAAK,MAAM,EAAE;AACxB,IAAA,IAAMY,OAAO,GAAGjD,OAAO,CAACkD,WAAW;IACnClD,OAAO,CAACkD,WAAW,GAAGX,KAAK;AAC3BI,IAAAA,WAAW,GAAGM,OAAO;AACvB;AAEA,EAAA,IACEZ,SAAS,KAAK,OAAO,IACrBA,SAAS,KAAK,MAAM,IACpB,OAAOC,MAAM,KAAK,WAAW,EAC7B;AACAK,IAAAA,WAAW,GAAG3C,OAAO,CAACmD,YAAY,CAACd,SAAS,CAAC;IAE7C,IAAIA,SAAS,KAAK,QAAQ,EAAE;AAC1B,MAAA,IAAIrC,OAAO,CAACoD,YAAY,CAACf,SAAS,CAAC,EAAE;AACnCrC,QAAAA,OAAO,CAACqD,eAAe,CAAChB,SAAS,CAAC;AACpC,OAAC,MAAM;AACLrC,QAAAA,OAAO,CAACsD,YAAY,CAACjB,SAAS,EAAE,EAAE,CAAC;AACrC;AACF,KAAC,MAAM,IAAI,CAACE,KAAK,EAAE;MACjBvC,OAAO,CAACsD,YAAY,CAACjB,SAAS,EAAE,EAAEM,WAAW,KAAK,MAAM,CAAC,CAAC;AAC5D,KAAC,MAAM;AACL3C,MAAAA,OAAO,CAACsD,YAAY,CAACjB,SAAS,EAAEE,KAAK,CAAC;AACxC;AACF;AAEA,EAAA,IAAIE,aAAa,EAAE;AACjBzC,IAAAA,OAAO,CAACyC,aAAa,CACnB,IAAIc,WAAW,CAACC,UAAU,EAAE;AAC1BC,MAAAA,MAAM,EAAEf,WAAW;AACnBgB,MAAAA,OAAO,EAAE;AACX,KAAC,CACH,CAAC;AACH;AAEA,EAAA,OAAOf,WAAW;AACpB;;AC7DO,IAAMgB,WAAW,GAAG,eAAe;AACnC,IAAMH,UAAU,GAAG,QAAQ;AAElC,IAAMI,aAAa,GAAG;AACpBC,EAAAA,WAAW,EAAE,WAAW;AACxBC,EAAAA,YAAY,EAAE;AAChB,CAAC;AAAC,IAEIC,MAAM,gBAAA,YAAA;AACV,EAAA,SAAAA,MAAAA,CAAY/D,OAAO,EAAEgE,MAAM,EAAE;AAAAC,IAAAA,eAAA,OAAAF,MAAA,CAAA;IAC3B,IAAI,CAAC/D,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACgE,MAAM,GAAAE,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAQN,aAAa,CAAA,EAAKI,MAAM,CAAE;AAE7C,IAAA,IAAI,CAACG,QAAQ,GAAG,EAAE;IAClB,IAAI,CAACC,OAAO,GAAG,EAAE;IAEjB,IAAI,CAACC,WAAW,GAAG,IAAI,CAACA,WAAW,CAACC,IAAI,CAAC,IAAI,CAAC;AAE9C,IAAA,IAAI,CAACtE,OAAO,CAACuE,UAAU,GAAG,IAAI;IAE9B,IAAI,CAACC,IAAI,EAAE;AAEX,IAAA,OAAO,IAAI;AACb;EAAC,OAAAC,YAAA,CAAAV,MAAA,EAAA,CAAA;IAAAW,GAAA,EAAA,UAAA;AAAAnC,IAAAA,KAAA,EAED,SAAAoC,QAAQA,CAACvC,KAAK,EAAE;AACd,MAAA,IAAAI,oBAAA,GAAiCJ,KAAK,CAA9BK,aAAa;AAAbA,QAAAA,aAAa,GAAAD,oBAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,oBAAA;AAC5B,MAAA,IAAMxC,OAAO,GAA+BoC,KAAK,CAA3CpC,OAAO;QAAEqC,SAAS,GAAoBD,KAAK,CAAlCC,SAAS;QAAEE,KAAK,GAAaH,KAAK,CAAvBG,KAAK;QAAED,MAAM,GAAKF,KAAK,CAAhBE,MAAM;AAEvC,MAAA,IAAMsC,WAAW,GAAAV,cAAA,CAAA,EAAA,EAAQ9B,KAAK,CAAE;AAChC,MAAA,IAAMM,WAAW,GAAG;QAAEtB,OAAO,EAAE,IAAI,CAACpB,OAAO;AAAEA,QAAAA,OAAO,EAAPA;OAAS;MAEtD,IAAIqC,SAAS,KAAK,MAAM,EAAE;AACxBA,QAAAA,SAAS,GAAG,YAAY;AACxBrC,QAAAA,OAAO,GAAGA,OAAO,CAAC6E,aAAa,CAAC,KAAK,CAAC;AACxC;MAEA,IAAIxC,SAAS,KAAK,MAAM,EAAE;QACxBrC,OAAO,GAAGA,OAAO,CAAC6E,aAAa,CAAC,2BAA2B,CAAC,IAAI7E,OAAO;AACzE;AAEA,MAAA,IAAI,OAAOuC,KAAK,KAAK,WAAW,EAAE;AAChCA,QAAAA,KAAK,GAAG,KAAK;AACf;AAEAqC,MAAAA,WAAW,CAACrC,KAAK,GAAGJ,MAAM,CAAC;AACzBnC,QAAAA,OAAO,EAAPA,OAAO;AACPqC,QAAAA,SAAS,EAATA,SAAS;AACTC,QAAAA,MAAM,EAANA,MAAM;AACNC,QAAAA,KAAK,EAALA,KAAK;AACLE,QAAAA,aAAa,EAAbA,aAAa;AACbC,QAAAA,WAAW,EAAXA;AACF,OAAC,CAAC;AAEF,MAAA,OAAOkC,WAAW;AACpB;AAAC,GAAA,EAAA;IAAAF,GAAA,EAAA,MAAA;AAAAnC,IAAAA,KAAA,EAED,SAAAiC,IAAIA,GAAG;AACL,MAAA,IAAI,CAACL,QAAQ,GAAG,IAAI,CAACW,aAAa,EAAE;AAEpC,MAAA,IAAI,CAACV,OAAO,GAAG,IAAI,CAACW,YAAY,EAAE;MAElC,IAAI,CAAC/E,OAAO,CAACgF,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAACX,WAAW,CAAC;MAExD,OAAO,IAAI,CAACD,OAAO;AACrB;AAAC,GAAA,EAAA;IAAAM,GAAA,EAAA,aAAA;AAAAnC,IAAAA,KAAA,EAED,SAAA8B,WAAWA,GAAG;AAAA,MAAA,IAAAY,KAAA,GAAA,IAAA;MACZ,IAAI,CAACb,OAAO,GAAG,IAAI,CAACA,OAAO,CAACrE,GAAG,CAAC,UAAAmF,MAAM,EAAA;AAAA,QAAA,OAAID,KAAI,CAACN,QAAQ,CAACO,MAAM,CAAC;OAAA,CAAC;MAEhE,IAAI,CAAClF,OAAO,CAACyC,aAAa,CAAC,IAAIc,WAAW,CAACI,WAAW,EAAE;AAAED,QAAAA,OAAO,EAAE;AAAK,OAAC,CAAC,CAAC;AAC7E;AAAC,GAAA,EAAA;IAAAgB,GAAA,EAAA,SAAA;AAAAnC,IAAAA,KAAA,EAED,SAAAlB,OAAOA,GAAG;MACR,IAAI,CAACrB,OAAO,CAACmF,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAACd,WAAW,CAAC;MAC3D,IAAI,CAACF,QAAQ,GAAG,EAAE;MAClB,IAAI,CAACC,OAAO,GAAG,EAAE;AACnB;AAAC,GAAA,EAAA;IAAAM,GAAA,EAAA,QAAA;AAAAnC,IAAAA,KAAA,EAED,SAAA6C,MAAMA,GAAG;MACP,IAAI,CAACC,wBAAwB,EAAE;MAC/B,IAAI,CAACC,aAAa,EAAE;AACtB;AAAC,GAAA,EAAA;IAAAZ,GAAA,EAAA,eAAA;AAAAnC,IAAAA,KAAA,EA+BD,SAAAuC,aAAaA,GAAG;AACd,MAAA,IAAMS,YAAY,GAAG,IAAI,CAACvF,OAAO,CAACmD,YAAY,CAAC,IAAI,CAACa,MAAM,CAACF,YAAY,CAAC;MACxE,IAAM0B,YAAY,GAAG,IAAI,CAACxF,OAAO,CAACmD,YAAY,CAAC,eAAe,CAAC;AAE/D,MAAA,IAAIgB,QAAQ,GAAGsB,IAAI,CAACC,KAAK,CAACH,YAAY,CAAC;AAEvC,MAAA,IAAIC,YAAY,EAAE;QAChB,IAAMG,YAAY,GAAG,IAAI,CAAC3F,OAAO,CAACmD,YAAY,CAAC,eAAe,CAAC;AAE/DgB,QAAAA,QAAQ,MAAAlC,MAAA,CAAAC,kBAAA,CACFyD,YAAY,GACZ,CACE;AACET,UAAAA,MAAM,EAAE,MAAM;AACd7C,UAAAA,SAAS,EAAE;SACZ,CACF,GACD,EAAE,CAAA,EAAA,CACN;UACE6C,MAAM,EAAEM,YAAY,CACjBI,KAAK,CAAC,GAAG,CAAC,CACV7F,GAAG,CAAC,UAAA8F,CAAC,EAAA;YAAA,OAAA,GAAA,CAAA5D,MAAA,CAAQ4D,CAAC,CAAA;AAAA,WAAE,CAAC,CACjBC,IAAI,CAAC,GAAG,CAAC;AACZzD,UAAAA,SAAS,EAAE;AACb,SAAC,CAAA,EAAAH,kBAAA,CACGvC,KAAK,CAACoG,OAAO,CAAC5B,QAAQ,CAAC,GAAGA,QAAQ,GAAG,EAAE,CAAA,CAC5C;AACH;AAEA,MAAA,OAAOA,QAAQ;AACjB;;AAEA;AAAA,GAAA,EAAA;IAAAO,GAAA,EAAA,cAAA;AAAAnC,IAAAA,KAAA,EACA,SAAAwC,YAAYA,GAAG;AACb,MAAA,IAAM3D,OAAO,GAAG,IAAI,CAACpB,OAAO;MAE5B,OAAO,IAAI,CAACmE,QAAQ,CAAC6B,MAAM,CACzB,UAACC,WAAW,EAAEC,OAAO,EAAA;QAAA,OAAA,EAAA,CAAAjE,MAAA,CAAAC,kBAAA,CAChB+D,WAAW,CAAA,EAAA/D,kBAAA,CACXgE,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAEhB,MAAM,CACfU,KAAK,CAAC,GAAG,CAAC;AAAC,SACXI,MAAM,CACL,UAACG,cAAc,EAAEjB,MAAM,EAAA;AAAA,UAAA,OAAA,EAAA,CAAAjD,MAAA,CAAAC,kBAAA,CAClBiE,cAAc,CAAA,EAAAjE,kBAAA,CACd6B;AACD;AAAA,WACCqC,2BAA2B,CAAC;AAC3BlB,YAAAA,MAAM,EAANA,MAAM;AACN9D,YAAAA,OAAO,EAAPA;WACD;AACD;WACCrB,GAAG,CAAC,UAAAC,OAAO,EAAA;AAAA,YAAA,OAAAkE,cAAA,CAAAA,cAAA,CAAA,EAAA,EACPgC,OAAO,CAAA,EAAA,EAAA,EAAA;AACVlG,cAAAA,OAAO,EAAPA;AAAO,aAAA,CAAA;AAAA,WACP,CAAC,CAAA,CAAA;SACN,EACD,EACF,CAAC,CAAA,CAAA;OACJ,EACD,EACF,CAAC;AACH;AAAC,GAAA,EAAA;IAAA0E,GAAA,EAAA,0BAAA;AAAAnC,IAAAA,KAAA,EAED,SAAA8C,wBAAwBA,GAAG;MACzB,IAAI,CAACjB,OAAO,GAAG,IAAI,CAACA,OAAO,CAAC3C,MAAM,CAAC,UAAAyD,MAAM,EAAA;AAAA,QAAA,OACvCrF,QAAQ,CAACkB,QAAQ,CAACmE,MAAM,CAAClF,OAAO,CAAC;AAAA,OACnC,CAAC;AACH;AAAC,GAAA,EAAA;IAAA0E,GAAA,EAAA,eAAA;AAAAnC,IAAAA,KAAA,EAED,SAAA+C,aAAaA,GAAG;AAAA,MAAA,IAAAe,MAAA,GAAA,IAAA;AACd,MAAA,IAAMC,UAAU,GAAG,IAAI,CAACvB,YAAY,EAAE;AACtC,MAAA,IAAMwB,UAAU,GAAGD,UAAU,CAAC7E,MAAM,CAClC,UAAA+E,SAAS,EAAA;QAAA,OACP,CAACH,MAAI,CAACjC,OAAO,CAACqC,IAAI,CAChB,UAAAvB,MAAM,EAAA;AAAA,UAAA,OACJA,MAAM,CAAClF,OAAO,KAAKwG,SAAS,CAACxG,OAAO,IACpCkF,MAAM,CAAC5C,MAAM,KAAKkE,SAAS,CAAClE,MAAM;AAAA,SACtC,CAAC;AAAA,OACL,CAAC;AAED,MAAA,IAAI,CAAC8B,OAAO,GAAA,EAAA,CAAAnC,MAAA,CAAAC,kBAAA,CAAO,IAAI,CAACkC,OAAO,CAAA,EAAAlC,kBAAA,CAAKqE,UAAU,CAAA,CAAC;AACjD;AAAC,GAAA,CAAA,EAAA,CAAA;IAAA7B,GAAA,EAAA,6BAAA;AAAAnC,IAAAA,KAAA,EA9GD,SAAO6D,2BAA2BA,CAAAM,IAAA,EAAsB;AAAA,MAAA,IAAnBxB,MAAM,GAAAwB,IAAA,CAANxB,MAAM;QAAE9D,OAAO,GAAAsF,IAAA,CAAPtF,OAAO;AAClD,MAAA,IAAM/B,QAAQ,GAAG6F,MAAM,CAACyB,IAAI,EAAE;MAE9B,IAAItH,QAAQ,KAAK,MAAM,EAAE;QACvB,OAAO,CAAC+B,OAAO,CAAC;AAClB;MAEA,IAAI/B,QAAQ,KAAK,QAAQ,EAAE;AACzB,QAAA,OAAO,CAAC+B,OAAO,CAACwF,UAAU,CAAC;AAC7B;MAEA,IAAIvH,QAAQ,KAAK,UAAU,EAAE;AAC3B,QAAA,OAAO,CAAC+B,OAAO,CAACyF,sBAAsB,CAAC;AACzC;MAEA,IAAIxH,QAAQ,KAAK,MAAM,EAAE;AACvB,QAAA,OAAO,CAAC+B,OAAO,CAAC0F,kBAAkB,CAAC;AACrC;AAEA,MAAA,IAAI,OAAOzH,QAAQ,KAAK,QAAQ,EAAE;AAChC;AACA;QACA,OAAOM,KAAK,CAACC,IAAI,CAACC,QAAQ,CAACC,gBAAgB,CAACT,QAAQ,CAAC,CAAC;AACxD;;AAEA;AACA,MAAA,OAAOA,QAAQ;AACjB;AAAC,GAAA,EAAA;IAAAqF,GAAA,EAAA,aAAA;AAAAnC,IAAAA,KAAA,EAqFD,SAAOwE,WAAWA,CAACC,EAAE,EAAE;MACrB,OAAOA,EAAE,IAAIA,EAAE,CAACzC,UAAU,GAAGyC,EAAE,CAACzC,UAAU,GAAG,IAAI;AACnD;AAAC,GAAA,CAAA,CAAA;AAAA,CAAA,EAAA;AAKkCR,MAAM,CAA5BkD;AACelD,MAAM,CAArBmD;;IClNMC,UAAU,gBAAA,YAAA;EAC7B,SAAAA,UAAAA,CAAYnH,OAAO,EAAE;AAAAiE,IAAAA,eAAA,OAAAkD,UAAA,CAAA;IACnB,IAAI,CAACnH,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACoH,QAAQ,GAAG,IAAI;IACpB,IAAI,CAACC,YAAY,GAAG,IAAI,CAACA,YAAY,CAAC/C,IAAI,CAAC,IAAI,CAAC;AAChD,IAAA,IAAI,CAACtE,OAAO,CAACsH,cAAc,GAAG,IAAI;AAClC,IAAA,IAAI,CAACC,UAAU,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC/C,IAAI,EAAE;AACb;;AAEA;EAAA,OAAAC,YAAA,CAAA0C,UAAA,EAAA,CAAA;IAAAzC,GAAA,EAAA,+BAAA;AAAAnC,IAAAA,KAAA,EACA,SAAAiF,6BAA6BA,GAAG;AAAA,MAAA,IAAAvC,KAAA,GAAA,IAAA;AAC9B;MACA,IAAI,CAACwC,qBAAqB,GAAG,EAAE;;AAE/B;AACA,MAAA,IAAI,CAACL,QAAQ,CAAC1G,OAAO,CAAC,UAACgH,KAAK,EAAK;AAC/B;AACA,QAAA,IAAMC,QAAQ,GAAGD,KAAK,CAACE,OAAO,CAAC,mBAAmB,CAAC;AACnD;AACA,QAAA,IAAMC,KAAK,GAAGH,KAAK,CAACE,OAAO,CAAC,iBAAiB,CAAC;;AAE9C;QACA,IAAID,QAAQ,IAAIA,QAAQ,CAACvE,YAAY,CAAC,QAAQ,CAAC,EAAE;AAC/C;AACA6B,UAAAA,KAAI,CAACwC,qBAAqB,CAACnG,IAAI,CAAC;AAC9BtB,YAAAA,OAAO,EAAE2H,QAAQ;AACjBG,YAAAA,OAAO,EAAEH,QAAQ,CAACI,KAAK,CAACD;AAC1B,WAAC,CAAC;AACF;AACAH,UAAAA,QAAQ,CAACI,KAAK,CAACD,OAAO,GAAG,OAAO;AAChCH,UAAAA,QAAQ,CAACtE,eAAe,CAAC,QAAQ,CAAC;AACpC;;AAEA;QACA,IAAIwE,KAAK,IAAIA,KAAK,CAACzE,YAAY,CAAC,aAAa,CAAC,EAAE;AAC9C;AACA6B,UAAAA,KAAI,CAACwC,qBAAqB,CAACnG,IAAI,CAAC;AAC9BtB,YAAAA,OAAO,EAAE6H,KAAK;AACdC,YAAAA,OAAO,EAAED,KAAK,CAACE,KAAK,CAACD;AACvB,WAAC,CAAC;AACF;AACAD,UAAAA,KAAK,CAACE,KAAK,CAACD,OAAO,GAAG,OAAO;AAC7BD,UAAAA,KAAK,CAACxE,eAAe,CAAC,aAAa,CAAC;AACtC;AACF,OAAC,CAAC;AACJ;;AAEA;AAAA,GAAA,EAAA;IAAAqB,GAAA,EAAA,uBAAA;AAAAnC,IAAAA,KAAA,EACA,SAAAyF,qBAAqBA,GAAG;AACtB;AACA,MAAA,IAAI,CAACP,qBAAqB,CAAC/G,OAAO,CAAC,UAAAgG,IAAA,EAA0B;AAAA,QAAA,IAAvB1G,OAAO,GAAA0G,IAAA,CAAP1G,OAAO;UAAE8H,OAAO,GAAApB,IAAA,CAAPoB,OAAO;AACpD;AACA9H,QAAAA,OAAO,CAAC+H,KAAK,CAACD,OAAO,GAAGA,OAAO;;AAE/B;QACA,IAAI9H,OAAO,CAACmD,YAAY,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE;AAC/C;AACAnD,UAAAA,OAAO,CAACsD,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC;AACtC;AACA;aACK,IAAItD,OAAO,CAACmD,YAAY,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE;AAClD;AACAnD,UAAAA,OAAO,CAACsD,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC;AAC3C;AACF,OAAC,CAAC;AACJ;AAAC,GAAA,EAAA;IAAAoB,GAAA,EAAA,cAAA;AAAAnC,IAAAA,KAAA,EAED,SAAA8E,YAAYA,GAAG;AACb;MACA,IAAI,CAACG,6BAA6B,EAAE;;AAEpC;MACA,IAAMS,qBAAqB,GAAG,IAAI,CAACjI,OAAO,CAACF,gBAAgB,CACzD,iCACF,CAAC;;AAED;AACA,MAAA,IAAMoI,eAAe,GAAG,IAAI,CAACC,8BAA8B,CACzDF,qBACF,CAAC;;AAED;;AAEA,MAAA,KAAA,IAAAG,EAAA,GAAA,CAAA,EAAAC,eAAA,GAA2BhI,MAAM,CAACiI,OAAO,CAACJ,eAAe,CAAC,EAAAE,EAAA,GAAAC,eAAA,CAAA7I,MAAA,EAAA4I,EAAA,EAAA,EAAE;AAAvD,QAAA,IAAAG,kBAAA,GAAAC,cAAA,CAAAH,eAAA,CAAAD,EAAA,CAAA,EAAA,CAAA,CAAA;AAAS1I,UAAAA,QAAQ,GAAA6I,kBAAA,CAAA,CAAA,CAAA;QACpB,IAAME,IAAI,GAAG,EAAE;QACf,IAAIC,MAAM,GAAG,EAAE;QAEf,IAAIhJ,QAAQ,CAACF,MAAM,EAAE;UACnB,IAAImJ,UAAU,GAAGjJ,QAAQ,CAAC,CAAC,CAAC,CAACkJ,qBAAqB,EAAE,CAACC,GAAG;AAAC,UAAA,IAAAC,SAAA,GAAAC,0BAAA,CAEvCrJ,QAAQ,CAAA;YAAAsJ,KAAA;AAAA,UAAA,IAAA;YAA1B,KAAAF,SAAA,CAAAG,CAAA,EAAA,EAAA,CAAA,CAAAD,KAAA,GAAAF,SAAA,CAAAI,CAAA,EAAA,EAAAC,IAAA,GAA4B;AAAA,cAAA,IAAnBzB,KAAK,GAAAsB,KAAA,CAAAzG,KAAA;cACZ,IAAImF,KAAK,CAACkB,qBAAqB,EAAE,CAACC,GAAG,KAAKF,UAAU,EAAE;AACpDD,gBAAAA,MAAM,CAACpH,IAAI,CAACoG,KAAK,CAAC;AACpB,eAAC,MAAM;AACLe,gBAAAA,IAAI,CAACnH,IAAI,CAAAY,kBAAA,CAAKwG,MAAM,CAAC,CAAC;AACtBA,gBAAAA,MAAM,GAAG,EAAE;AACXA,gBAAAA,MAAM,CAACpH,IAAI,CAACoG,KAAK,CAAC;AACpB;AACAiB,cAAAA,UAAU,GAAGjB,KAAK,CAACkB,qBAAqB,EAAE,CAACC,GAAG;AAChD;AAAC,WAAA,CAAA,OAAAO,GAAA,EAAA;YAAAN,SAAA,CAAAO,CAAA,CAAAD,GAAA,CAAA;AAAA,WAAA,SAAA;AAAAN,YAAAA,SAAA,CAAAQ,CAAA,EAAA;AAAA;AAEDb,UAAAA,IAAI,CAACnH,IAAI,CAAAY,kBAAA,CAAKwG,MAAM,CAAC,CAAC;AAEtBD,UAAAA,IAAI,CAAC/H,OAAO,CAAC,UAAC6I,GAAG,EAAK;AACpB,YAAA,IAAIA,GAAG,CAAC/J,MAAM,GAAG,CAAC,EAAE;cAClB,IAAIgK,SAAS,GAAG,CAAC;AACjBD,cAAAA,GAAG,CAAC7I,OAAO,CAAC,UAACgH,KAAK,EAAK;AACrB,gBAAA,IAAIA,KAAK,EAAE;AACT,kBAAA,IAAIA,KAAK,CAACK,KAAK,CAAC0B,MAAM,EAAE;AACtB/B,oBAAAA,KAAK,CAACK,KAAK,CAAC0B,MAAM,GAAG,EAAE;AACzB;AACA,kBAAA,IAAI/B,KAAK,CAACgC,YAAY,GAAGF,SAAS,EAAE;oBAClCA,SAAS,GAAG9B,KAAK,CAACgC,YAAY;AAChC;AACF;AACF,eAAC,CAAC;AACFH,cAAAA,GAAG,CAAC7I,OAAO,CAAC,UAACgH,KAAK,EAAK;AACrBA,gBAAAA,KAAK,CAACK,KAAK,CAAC0B,MAAM,GAAGD,SAAS,GAAG,IAAI;AACvC,eAAC,CAAC;AACJ,aAAC,MAAM;AACLD,cAAAA,GAAG,CAAC7I,OAAO,CAAC,UAACgH,KAAK,EAAK;AACrB,gBAAA,IAAIA,KAAK,CAACK,KAAK,CAAC0B,MAAM,EAAE;AACtB/B,kBAAAA,KAAK,CAACK,KAAK,CAAC0B,MAAM,GAAG,IAAI;AAC3B;AACF,eAAC,CAAC;AACJ;AACF,WAAC,CAAC;AACJ;AACF;;AAEA;MACA,IAAI,CAACzB,qBAAqB,EAAE;AAC9B;AAAC,GAAA,EAAA;IAAAtD,GAAA,EAAA,gCAAA;AAAAnC,IAAAA,KAAA,EAED,SAAA4F,8BAA8BA,CAACzI,QAAQ,EAAE;MACvC,IAAMiK,MAAM,GAAG,EAAE;AAEjBjK,MAAAA,QAAQ,CAACgB,OAAO,CAAC,UAACV,OAAO,EAAK;AAC5B;QACA,IAAM4J,QAAQ,GACZ5J,OAAO,CAACmD,YAAY,CAAC,wBAAwB,CAAC,IAAI,SAAS;AAE7D,QAAA,IAAI,CAACwG,MAAM,CAACC,QAAQ,CAAC,EAAE;AACrBD,UAAAA,MAAM,CAACC,QAAQ,CAAC,GAAG,EAAE;AACvB;AAEAD,QAAAA,MAAM,CAACC,QAAQ,CAAC,CAACtI,IAAI,CAACtB,OAAO,CAAC;AAChC,OAAC,CAAC;AAEF,MAAA,OAAO2J,MAAM;AACf;AAAC,GAAA,EAAA;IAAAjF,GAAA,EAAA,MAAA;AAAAnC,IAAAA,KAAA,EAED,SAAAiC,IAAIA,GAAG;AAAA,MAAA,IAAA6B,MAAA,GAAA,IAAA;AACLwD,MAAAA,OAAO,CAACC,GAAG,CAAC,MAAM,CAAC;MACnB,IAAIC,SAAS,GAAG,EAAE;AAClB;MACA,IAAI,CAAC3C,QAAQ,GAAG,IAAI,CAACpH,OAAO,CAACF,gBAAgB,CAC3C,iCACF,CAAC;;AAED;AACA,MAAA,IAAI,CAACsH,QAAQ,CAAC1G,OAAO,CAAC,UAACgH,KAAK,EAAK;AAC/B,QAAA,IAAMsC,MAAM,GAAGtC,KAAK,CAAC5H,gBAAgB,CAAC,KAAK,CAAC;AAC5CkK,QAAAA,MAAM,CAACtJ,OAAO,CAAC,UAACuJ,GAAG,EAAK;AACtB,UAAA,IAAI,CAACA,GAAG,CAACC,QAAQ,EAAE;AACjBH,YAAAA,SAAS,CAACzI,IAAI,CAAC2I,GAAG,CAAC;AACrB;AACF,SAAC,CAAC;AACJ,OAAC,CAAC;;AAEF;AACA,MAAA,IAAIF,SAAS,CAACvK,MAAM,KAAK,CAAC,EAAE;QAC1B,IAAI,CAAC6H,YAAY,EAAE;AACrB;AACA;WACK;QACH,IAAI8C,CAAC,GAAG,CAAC;AACT,QAAA,IAAI,CAAC5C,UAAU,GAAG6C,WAAW,CAAC,YAAM;UAClC,IAAIC,SAAS,GAAG,KAAK;UACrBN,SAAS,CAACrJ,OAAO,CAAC,UAACuJ,GAAG,EAAEnI,KAAK,EAAEwI,KAAK,EAAK;YACvC,IAAIL,GAAG,CAACC,QAAQ,EAAE;AAChBI,cAAAA,KAAK,CAACtI,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;AACtBuI,cAAAA,SAAS,GAAG,IAAI;AAClB;AACF,WAAC,CAAC;AACF,UAAA,IAAIA,SAAS,IAAIhE,MAAI,CAACgB,YAAY,EAAE;YAClChB,MAAI,CAACgB,YAAY,EAAE;AACrB;UACA,IAAI,EAAE8C,CAAC,IAAI,EAAE,IAAIJ,SAAS,CAACvK,MAAM,KAAK,CAAC,EAAE;AACvC,YAAA,IAAIuK,SAAS,CAACvK,MAAM,IAAI6G,MAAI,CAACgB,YAAY,EAAE;cACzChB,MAAI,CAACgB,YAAY,EAAE;AACrB;AACA9G,YAAAA,MAAM,CAACgK,aAAa,CAAClE,MAAI,CAACkB,UAAU,CAAC;AACvC;SACD,EAAE,GAAG,CAAC;AACT;MACAhH,MAAM,CAACyE,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAACqC,YAAY,CAAC;AACtD;AAAC,GAAA,EAAA;IAAA3C,GAAA,EAAA,QAAA;AAAAnC,IAAAA,KAAA,EAED,SAAA6C,MAAMA,GAAG;MACP,IAAI,CAAC/D,OAAO,EAAE;MACd,IAAI,CAACmD,IAAI,EAAE;AACb;AAAC,GAAA,EAAA;IAAAE,GAAA,EAAA,SAAA;AAAAnC,IAAAA,KAAA,EAED,SAAAlB,OAAOA,GAAG;MACRd,MAAM,CAAC4E,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAACkC,YAAY,CAAC;MACvD,IAAI,IAAI,CAACE,UAAU,EAAE;AACnBgD,QAAAA,aAAa,CAAC,IAAI,CAAChD,UAAU,CAAC;QAC9B,IAAI,CAACA,UAAU,GAAG,IAAI;AACxB;AACF;AAAC,GAAA,CAAA,EAAA,CAAA;IAAA7C,GAAA,EAAA,aAAA;AAAAnC,IAAAA,KAAA,EAED,SAAOwE,WAAWA,CAACC,EAAE,EAAE;MACrB,OAAOA,EAAE,IAAIA,EAAE,CAACM,cAAc,GAAGN,EAAE,CAACM,cAAc,GAAG,IAAI;AAC3D;AAAC,GAAA,CAAA,CAAA;AAAA,CAAA,EAAA;;AC9LI,IAAM3F,mBAAmB,GAAG;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEvC,EAAAA,MAAM,EAAE+H,UAAU;AAClBtF,EAAAA,IAAI,EAAE,YAAY;AAClBxC,EAAAA,QAAQ,EAAE;AACX,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACED,EAAAA,MAAM,EAAE2E,MAAM;AACdlC,EAAAA,IAAI,EAAE,QAAQ;AACdxC,EAAAA,QAAQ,EAAE;AACX;AACD;AACA;AACA;AACA;AACA;AAAA,CACD;AAkBDkB,MAAM,CAACC,GAAG,GAAGD,MAAM,CAACC,GAAG,IAAI;EACzBgK,OAAO,EAAE,EAAE;EACX/J,SAAS,EAAE,EAAE;AACbkB,EAAAA,mBAAmB,EAAE;CACtB;AACDpB,MAAM,CAACC,GAAG,CAACkB,iBAAiB,GAAGA,iBAAiB;AAChDnB,MAAM,CAACC,GAAG,CAACP,oBAAoB,GAAGA,oBAAoB;AACtDM,MAAM,CAACC,GAAG,CAACmB,mBAAmB,GAAGA,mBAAmB;AAEpDpB,MAAM,CAACyE,gBAAgB,CAAC,kBAAkB,EAAE,YAAK;AAC/C6E,EAAAA,OAAO,CAACC,GAAG,CAAC,oBAAoB,CAAC;AAEjCnI,EAAAA,mBAAmB,CAACjB,OAAO,CAAC,UAACkB,MAAM,EAAI;AACrCrB,IAAAA,MAAM,CAACC,GAAG,CAACgK,OAAO,CAAC5I,MAAM,CAACC,IAAI,CAAC,GAAGD,MAAM,CAACxC,MAAM;IAC/CmB,MAAM,CAACC,GAAG,CAACC,SAAS,CAAC3B,cAAc,CAAC8C,MAAM,CAACC,IAAI,CAAC,CAAC,GAAG1C,aAAa,CAC/DyC,MAAM,CAACxC,MAAM,EACbwC,MAAM,CAACvC,QAAQ,CAChB;AACH,GAAC,CAAC;EAEFkB,MAAM,CAACkC,aAAa,CAAC,IAAIgI,KAAK,CAAC,WAAW,CAAC,CAAC;AAC9C,CAAC,CAAC","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"static.js","sources":["../../node_modules/wnumb/wNumb.js","../../src/utils/helpers.js","../../node_modules/a11y-dialog/dist/a11y-dialog.esm.js","../../node_modules/tabbable/dist/index.esm.js","../../src/components/Modal/Modal.static.ts","../../src/utils/constants.js","../../src/utils/keyboard.js","../../src/components/Tabs/Tabs.static.ts","../../src/scripts/lib/moduleFactory.js","../../src/scripts/modules/toggleUtil.js","../../src/scripts/modules/Toggle.js","../../src/scripts/modules/SameHeight.js","../../src/scripts/index.ts"],"sourcesContent":["(function(factory) {\r\n if (typeof define === \"function\" && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define([], factory);\r\n } else if (typeof exports === \"object\") {\r\n // Node/CommonJS\r\n module.exports = factory();\r\n } else {\r\n // Browser globals\r\n window.wNumb = factory();\r\n }\r\n})(function() {\r\n \"use strict\";\r\n\r\n var FormatOptions = [\r\n \"decimals\",\r\n \"thousand\",\r\n \"mark\",\r\n \"prefix\",\r\n \"suffix\",\r\n \"encoder\",\r\n \"decoder\",\r\n \"negativeBefore\",\r\n \"negative\",\r\n \"edit\",\r\n \"undo\"\r\n ];\r\n\r\n // General\r\n\r\n // Reverse a string\r\n function strReverse(a) {\r\n return a\r\n .split(\"\")\r\n .reverse()\r\n .join(\"\");\r\n }\r\n\r\n // Check if a string starts with a specified prefix.\r\n function strStartsWith(input, match) {\r\n return input.substring(0, match.length) === match;\r\n }\r\n\r\n // Check is a string ends in a specified suffix.\r\n function strEndsWith(input, match) {\r\n return input.slice(-1 * match.length) === match;\r\n }\r\n\r\n // Throw an error if formatting options are incompatible.\r\n function throwEqualError(F, a, b) {\r\n if ((F[a] || F[b]) && F[a] === F[b]) {\r\n throw new Error(a);\r\n }\r\n }\r\n\r\n // Check if a number is finite and not NaN\r\n function isValidNumber(input) {\r\n return typeof input === \"number\" && isFinite(input);\r\n }\r\n\r\n // Provide rounding-accurate toFixed method.\r\n // Borrowed: http://stackoverflow.com/a/21323330/775265\r\n function toFixed(value, exp) {\r\n value = value.toString().split(\"e\");\r\n value = Math.round(+(value[0] + \"e\" + (value[1] ? +value[1] + exp : exp)));\r\n value = value.toString().split(\"e\");\r\n return (+(value[0] + \"e\" + (value[1] ? +value[1] - exp : -exp))).toFixed(exp);\r\n }\r\n\r\n // Formatting\r\n\r\n // Accept a number as input, output formatted string.\r\n function formatTo(\r\n decimals,\r\n thousand,\r\n mark,\r\n prefix,\r\n suffix,\r\n encoder,\r\n decoder,\r\n negativeBefore,\r\n negative,\r\n edit,\r\n undo,\r\n input\r\n ) {\r\n var originalInput = input,\r\n inputIsNegative,\r\n inputPieces,\r\n inputBase,\r\n inputDecimals = \"\",\r\n output = \"\";\r\n\r\n // Apply user encoder to the input.\r\n // Expected outcome: number.\r\n if (encoder) {\r\n input = encoder(input);\r\n }\r\n\r\n // Stop if no valid number was provided, the number is infinite or NaN.\r\n if (!isValidNumber(input)) {\r\n return false;\r\n }\r\n\r\n // Rounding away decimals might cause a value of -0\r\n // when using very small ranges. Remove those cases.\r\n if (decimals !== false && parseFloat(input.toFixed(decimals)) === 0) {\r\n input = 0;\r\n }\r\n\r\n // Formatting is done on absolute numbers,\r\n // decorated by an optional negative symbol.\r\n if (input < 0) {\r\n inputIsNegative = true;\r\n input = Math.abs(input);\r\n }\r\n\r\n // Reduce the number of decimals to the specified option.\r\n if (decimals !== false) {\r\n input = toFixed(input, decimals);\r\n }\r\n\r\n // Transform the number into a string, so it can be split.\r\n input = input.toString();\r\n\r\n // Break the number on the decimal separator.\r\n if (input.indexOf(\".\") !== -1) {\r\n inputPieces = input.split(\".\");\r\n\r\n inputBase = inputPieces[0];\r\n\r\n if (mark) {\r\n inputDecimals = mark + inputPieces[1];\r\n }\r\n } else {\r\n // If it isn't split, the entire number will do.\r\n inputBase = input;\r\n }\r\n\r\n // Group numbers in sets of three.\r\n if (thousand) {\r\n inputBase = strReverse(inputBase).match(/.{1,3}/g);\r\n inputBase = strReverse(inputBase.join(strReverse(thousand)));\r\n }\r\n\r\n // If the number is negative, prefix with negation symbol.\r\n if (inputIsNegative && negativeBefore) {\r\n output += negativeBefore;\r\n }\r\n\r\n // Prefix the number\r\n if (prefix) {\r\n output += prefix;\r\n }\r\n\r\n // Normal negative option comes after the prefix. Defaults to '-'.\r\n if (inputIsNegative && negative) {\r\n output += negative;\r\n }\r\n\r\n // Append the actual number.\r\n output += inputBase;\r\n output += inputDecimals;\r\n\r\n // Apply the suffix.\r\n if (suffix) {\r\n output += suffix;\r\n }\r\n\r\n // Run the output through a user-specified post-formatter.\r\n if (edit) {\r\n output = edit(output, originalInput);\r\n }\r\n\r\n // All done.\r\n return output;\r\n }\r\n\r\n // Accept a sting as input, output decoded number.\r\n function formatFrom(\r\n decimals,\r\n thousand,\r\n mark,\r\n prefix,\r\n suffix,\r\n encoder,\r\n decoder,\r\n negativeBefore,\r\n negative,\r\n edit,\r\n undo,\r\n input\r\n ) {\r\n var originalInput = input,\r\n inputIsNegative,\r\n output = \"\";\r\n\r\n // User defined pre-decoder. Result must be a non empty string.\r\n if (undo) {\r\n input = undo(input);\r\n }\r\n\r\n // Test the input. Can't be empty.\r\n if (!input || typeof input !== \"string\") {\r\n return false;\r\n }\r\n\r\n // If the string starts with the negativeBefore value: remove it.\r\n // Remember is was there, the number is negative.\r\n if (negativeBefore && strStartsWith(input, negativeBefore)) {\r\n input = input.replace(negativeBefore, \"\");\r\n inputIsNegative = true;\r\n }\r\n\r\n // Repeat the same procedure for the prefix.\r\n if (prefix && strStartsWith(input, prefix)) {\r\n input = input.replace(prefix, \"\");\r\n }\r\n\r\n // And again for negative.\r\n if (negative && strStartsWith(input, negative)) {\r\n input = input.replace(negative, \"\");\r\n inputIsNegative = true;\r\n }\r\n\r\n // Remove the suffix.\r\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/slice\r\n if (suffix && strEndsWith(input, suffix)) {\r\n input = input.slice(0, -1 * suffix.length);\r\n }\r\n\r\n // Remove the thousand grouping.\r\n if (thousand) {\r\n input = input.split(thousand).join(\"\");\r\n }\r\n\r\n // Set the decimal separator back to period.\r\n if (mark) {\r\n input = input.replace(mark, \".\");\r\n }\r\n\r\n // Prepend the negative symbol.\r\n if (inputIsNegative) {\r\n output += \"-\";\r\n }\r\n\r\n // Add the number\r\n output += input;\r\n\r\n // Trim all non-numeric characters (allow '.' and '-');\r\n output = output.replace(/[^0-9\\.\\-.]/g, \"\");\r\n\r\n // The value contains no parse-able number.\r\n if (output === \"\") {\r\n return false;\r\n }\r\n\r\n // Covert to number.\r\n output = Number(output);\r\n\r\n // Run the user-specified post-decoder.\r\n if (decoder) {\r\n output = decoder(output);\r\n }\r\n\r\n // Check is the output is valid, otherwise: return false.\r\n if (!isValidNumber(output)) {\r\n return false;\r\n }\r\n\r\n return output;\r\n }\r\n\r\n // Framework\r\n\r\n // Validate formatting options\r\n function validate(inputOptions) {\r\n var i,\r\n optionName,\r\n optionValue,\r\n filteredOptions = {};\r\n\r\n if (inputOptions[\"suffix\"] === undefined) {\r\n inputOptions[\"suffix\"] = inputOptions[\"postfix\"];\r\n }\r\n\r\n for (i = 0; i < FormatOptions.length; i += 1) {\r\n optionName = FormatOptions[i];\r\n optionValue = inputOptions[optionName];\r\n\r\n if (optionValue === undefined) {\r\n // Only default if negativeBefore isn't set.\r\n if (optionName === \"negative\" && !filteredOptions.negativeBefore) {\r\n filteredOptions[optionName] = \"-\";\r\n // Don't set a default for mark when 'thousand' is set.\r\n } else if (optionName === \"mark\" && filteredOptions.thousand !== \".\") {\r\n filteredOptions[optionName] = \".\";\r\n } else {\r\n filteredOptions[optionName] = false;\r\n }\r\n\r\n // Floating points in JS are stable up to 7 decimals.\r\n } else if (optionName === \"decimals\") {\r\n if (optionValue >= 0 && optionValue < 8) {\r\n filteredOptions[optionName] = optionValue;\r\n } else {\r\n throw new Error(optionName);\r\n }\r\n\r\n // These options, when provided, must be functions.\r\n } else if (\r\n optionName === \"encoder\" ||\r\n optionName === \"decoder\" ||\r\n optionName === \"edit\" ||\r\n optionName === \"undo\"\r\n ) {\r\n if (typeof optionValue === \"function\") {\r\n filteredOptions[optionName] = optionValue;\r\n } else {\r\n throw new Error(optionName);\r\n }\r\n\r\n // Other options are strings.\r\n } else {\r\n if (typeof optionValue === \"string\") {\r\n filteredOptions[optionName] = optionValue;\r\n } else {\r\n throw new Error(optionName);\r\n }\r\n }\r\n }\r\n\r\n // Some values can't be extracted from a\r\n // string if certain combinations are present.\r\n throwEqualError(filteredOptions, \"mark\", \"thousand\");\r\n throwEqualError(filteredOptions, \"prefix\", \"negative\");\r\n throwEqualError(filteredOptions, \"prefix\", \"negativeBefore\");\r\n\r\n return filteredOptions;\r\n }\r\n\r\n // Pass all options as function arguments\r\n function passAll(options, method, input) {\r\n var i,\r\n args = [];\r\n\r\n // Add all options in order of FormatOptions\r\n for (i = 0; i < FormatOptions.length; i += 1) {\r\n args.push(options[FormatOptions[i]]);\r\n }\r\n\r\n // Append the input, then call the method, presenting all\r\n // options as arguments.\r\n args.push(input);\r\n return method.apply(\"\", args);\r\n }\r\n\r\n function wNumb(options) {\r\n if (!(this instanceof wNumb)) {\r\n return new wNumb(options);\r\n }\r\n\r\n if (typeof options !== \"object\") {\r\n return;\r\n }\r\n\r\n options = validate(options);\r\n\r\n // Call 'formatTo' with proper arguments.\r\n this.to = function(input) {\r\n return passAll(options, formatTo, input);\r\n };\r\n\r\n // Call 'formatFrom' with proper arguments.\r\n this.from = function(input) {\r\n return passAll(options, formatFrom, input);\r\n };\r\n }\r\n\r\n return wNumb;\r\n});\r\n","import wnumb from 'wnumb';\n\nexport function isObject(val) {\n return val != null && typeof val === 'object' && Array.isArray(val) === false;\n}\n\nexport function dateToYYYYMMDD(date) {\n if (!date || !(date instanceof Date)) {\n return '';\n }\n\n return `${date.getFullYear()}-${(date.getMonth() + 1)\n .toString()\n .padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`;\n}\n\n// Get element position relative to document\nexport function windowOffset(el) {\n const position = { x: 0, y: 0 };\n\n \n if (el.offsetParent) {\n do {\n position.x += el.offsetLeft;\n position.y += el.offsetTop;\n } while ((el = el.offsetParent));\n }\n \n\n return position;\n}\n\n// Get element siblings\nexport function getSiblings(el) {\n if (!(el instanceof Element)) {\n return false;\n }\n\n const parent = el.parentNode;\n if (!parent) {\n return false;\n }\n\n const parentChildren = [];\n const siblings = [];\n\n parentChildren.push.apply(parentChildren, parent.children); \n\n for (let i = 0, l = parentChildren.length; i < l; i += 1) {\n if (parentChildren[i] !== el) {\n siblings.push(parentChildren[i]);\n }\n }\n\n return siblings;\n}\n\n/**\n * Converts object to string\n *\n * Should be able to handle all types\n * objectToString({\n * 'boolean': true,\n * 'function': () => { return 'test'; },\n * 'namedfunction': function test() { return 'test'; },\n * 'null': null,\n * 'number1': 1,\n * 'number2': 2.345,\n * 'object1': { test: 'test' },\n * 'string': 'String',\n * 'undefined' : undefined,\n * })\n *\n * @param {object} object object to convert\n * @returns object converted to string\n */\nexport const objectToString = (object, spaceCount = 2) => {\n let str = '';\n for (var key in object) {\n if (object.hasOwnProperty(key)) {\n let value = object?.[key];\n if (typeof value === 'string') {\n value = `\"${value}\"`;\n } else if (value === null) {\n value = 'null';\n } else if (typeof value === 'object') {\n value = objectToString(value, spaceCount + 2);\n } else if (typeof value === 'function') {\n value = value.toString();\n } else if (value === undefined) {\n value = 'undefined';\n }\n str += `${' '.repeat(spaceCount)}${key}: ${value},\\n`;\n }\n }\n return `{\\n${str}${' '.repeat(spaceCount - 2)}}`;\n};\nexport function capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport function lowerCamelCase(string) {\n return string.charAt(0).toLowerCase() + string.slice(1);\n}\n\nconst defaultPriceFormat = {\n decimals: 2,\n mark: ',',\n thousand: ' ',\n suffix: `\\xa0€`,\n};\n\nexport function formatPrice(price, format) {\n return wnumb({\n ...defaultPriceFormat,\n ...format,\n ...(price % 1 === 0 ? { decimals: 0 } : {}), // integers without decimals\n }).to(price);\n}\n","const not = {\n inert: ':not([inert]):not([inert] *)',\n negTabIndex: ':not([tabindex^=\"-\"])',\n disabled: ':not(:disabled)',\n};\n\nvar focusableSelectors = [\n `a[href]${not.inert}${not.negTabIndex}`,\n `area[href]${not.inert}${not.negTabIndex}`,\n `input:not([type=\"hidden\"]):not([type=\"radio\"])${not.inert}${not.negTabIndex}${not.disabled}`,\n `input[type=\"radio\"]${not.inert}${not.negTabIndex}${not.disabled}`,\n `select${not.inert}${not.negTabIndex}${not.disabled}`,\n `textarea${not.inert}${not.negTabIndex}${not.disabled}`,\n `button${not.inert}${not.negTabIndex}${not.disabled}`,\n `details${not.inert} > summary:first-of-type${not.negTabIndex}`,\n // Discard until Firefox supports `:has()`\n // See: https://github.com/KittyGiraudel/focusable-selectors/issues/12\n // `details:not(:has(> summary))${not.inert}${not.negTabIndex}`,\n `iframe${not.inert}${not.negTabIndex}`,\n `audio[controls]${not.inert}${not.negTabIndex}`,\n `video[controls]${not.inert}${not.negTabIndex}`,\n `[contenteditable]${not.inert}${not.negTabIndex}`,\n `[tabindex]${not.inert}${not.negTabIndex}`,\n];\n\n/**\n * Set the focus to the first element with `autofocus` with the element or the\n * element itself.\n */\nfunction focus(el) {\n (el.querySelector('[autofocus]') || el).focus();\n}\n/**\n * Get the first and last focusable elements within a given element.\n */\nfunction getFocusableEdges(el) {\n // Check for a focusable element within the subtree of the given element.\n const firstEl = findFocusableEl(el, true);\n // Only if we find the first element do we need to look for the last one. If\n // there’s no last element, we set `lastEl` as a reference to `firstEl` so\n // that the returned array is still always of length 2.\n const lastEl = firstEl ? findFocusableEl(el, false) || firstEl : null;\n return [firstEl, lastEl];\n}\n/**\n * Find the first focusable element inside the given element if `forward` is\n * truthy or the last focusable element otherwise.\n */\nfunction findFocusableEl(el, forward) {\n // If we’re walking forward, check if this element is focusable, and return it\n // immediately if it is.\n if (forward && isFocusable(el))\n return el;\n // We should only search the subtree of this element if it can have focusable\n // children.\n if (canHaveFocusableChildren(el)) {\n // Start walking the DOM tree, looking for focusable elements.\n // Case 1: If this element has a shadow root, search it recursively.\n if (el.shadowRoot) {\n // Descend into this subtree.\n let next = getNextChildEl(el.shadowRoot, forward);\n // Traverse the siblings, searching the subtree of each one for focusable\n // elements.\n while (next) {\n const focusableEl = findFocusableEl(next, forward);\n if (focusableEl)\n return focusableEl;\n next = getNextSiblingEl(next, forward);\n }\n }\n // Case 2: If this element is a slot for a Custom Element, search its\n // assigned elements recursively.\n else if (el.localName === 'slot') {\n const assignedElements = el.assignedElements({\n flatten: true,\n });\n if (!forward)\n assignedElements.reverse();\n for (const assignedElement of assignedElements) {\n const focusableEl = findFocusableEl(assignedElement, forward);\n if (focusableEl)\n return focusableEl;\n }\n }\n // Case 3: this is a regular Light DOM element. Search its subtree.\n else {\n // Descend into this subtree.\n let next = getNextChildEl(el, forward);\n // Traverse siblings, searching the subtree of each one\n // for focusable elements.\n while (next) {\n const focusableEl = findFocusableEl(next, forward);\n if (focusableEl)\n return focusableEl;\n next = getNextSiblingEl(next, forward);\n }\n }\n }\n // If we’re walking backward, we want to check the element’s entire subtree\n // before checking the element itself. If this element is focusable, return\n // it.\n if (!forward && isFocusable(el))\n return el;\n return null;\n}\nfunction getNextChildEl(el, forward) {\n return forward ? el.firstElementChild : el.lastElementChild;\n}\nfunction getNextSiblingEl(el, forward) {\n return forward ? el.nextElementSibling : el.previousElementSibling;\n}\n/**\n * Determine if an element is hidden from the user.\n */\nconst isHidden = (el) => {\n // Browsers hide all non-<summary> descendants of closed <details> elements\n // from user interaction, but those non-<summary> elements may still match our\n // focusable-selectors and may still have dimensions, so we need a special\n // case to ignore them.\n if (el.matches('details:not([open]) *') &&\n !el.matches('details>summary:first-of-type'))\n return true;\n // If this element has no painted dimensions, it's hidden.\n return !(el.offsetWidth || el.offsetHeight || el.getClientRects().length);\n};\n/**\n * Determine if an element is focusable and has user-visible painted dimensions.\n */\nconst isFocusable = (el) => {\n // A shadow host that delegates focus will never directly receive focus,\n // even with `tabindex=0`. Consider our <fancy-button> custom element, which\n // delegates focus to its shadow button:\n //\n // <fancy-button tabindex=\"0\">\n // #shadow-root\n // <button><slot></slot></button>\n // </fancy-button>\n //\n // The browser acts as as if there is only one focusable element – the shadow\n // button. Our library should behave the same way.\n if (el.shadowRoot?.delegatesFocus)\n return false;\n return el.matches(focusableSelectors.join(',')) && !isHidden(el);\n};\n/**\n * Determine if an element can have focusable children. Useful for bailing out\n * early when walking the DOM tree.\n * @example\n * This div is inert, so none of its children can be focused, even though they\n * meet our criteria for what is focusable. Once we check the div, we can skip\n * the rest of the subtree.\n * ```html\n * <div inert>\n * <button>Button</button>\n * <a href=\"#\">Link</a>\n * </div>\n * ```\n */\nfunction canHaveFocusableChildren(el) {\n // The browser will never send focus into a Shadow DOM if the host element\n // has a negative tabindex. This applies to both slotted Light DOM Shadow DOM\n // children\n if (el.shadowRoot && el.getAttribute('tabindex') === '-1')\n return false;\n // Elemments matching this selector are either hidden entirely from the user,\n // or are visible but unavailable for interaction. Their descentants can never\n // receive focus.\n return !el.matches(':disabled,[hidden],[inert]');\n}\n/**\n * Get the active element, accounting for Shadow DOM subtrees.\n * @author Cory LaViska\n * @see: https://www.abeautifulsite.net/posts/finding-the-active-element-in-a-shadow-root/\n */\nfunction getActiveEl(root = document) {\n const activeEl = root.activeElement;\n if (!activeEl)\n return null;\n // If there’s a shadow root, recursively find the active element within it.\n // If the recursive call returns null, return the active element\n // of the top-level Document.\n if (activeEl.shadowRoot)\n return getActiveEl(activeEl.shadowRoot) || document.activeElement;\n // If not, we can just return the active element\n return activeEl;\n}\n/**\n * Trap the focus inside the given element\n */\nfunction trapTabKey(el, event) {\n const [firstFocusableEl, lastFocusableEl] = getFocusableEdges(el);\n // If there are no focusable children in the dialog, prevent the user from\n // tabbing out of it\n if (!firstFocusableEl)\n return event.preventDefault();\n const activeEl = getActiveEl();\n // If the SHIFT key is pressed while tabbing (moving backwards) and the\n // currently focused item is the first one, move the focus to the last\n // focusable item from the dialog element\n if (event.shiftKey && activeEl === firstFocusableEl) {\n // @ts-ignore: we know that `lastFocusableEl` is not null here\n lastFocusableEl.focus();\n event.preventDefault();\n }\n // If the SHIFT key is not pressed (moving forwards) and the currently focused\n // item is the last one, move the focus to the first focusable item from the\n // dialog element\n else if (!event.shiftKey && activeEl === lastFocusableEl) {\n firstFocusableEl.focus();\n event.preventDefault();\n }\n}\n/**\n * Find the closest element to the given element matching the given selector,\n * accounting for Shadow DOM subtrees.\n * @author Louis St-Amour\n * @see: https://stackoverflow.com/a/56105394\n */\nfunction closest(selector, base) {\n function from(el) {\n if (!el || el === document || el === window)\n return null;\n // Reading the `assignedSlot` property from the element (as suggested by the\n // aforementioned StackOverflow answer) is not enough, because it does not\n // take into consideration elements nested deeply within a <slot>. For these\n // elements, the `assignedSlot` property is `null` as it is only specified\n // for top-level elements within a <slot>. To still find the closest <slot>,\n // we walk up the tree looking for the `assignedSlot` property.\n const slot = findAssignedSlot(el);\n if (slot)\n el = slot;\n return (el.closest(selector) ||\n from(el.getRootNode().host));\n }\n return from(base);\n}\nfunction findAssignedSlot(node) {\n return (node.assignedSlot ||\n (node.parentNode ? findAssignedSlot(node.parentNode) : null));\n}\n\nconst SCOPE = 'data-a11y-dialog';\nclass A11yDialog {\n $el;\n id;\n previouslyFocused;\n shown;\n constructor(element) {\n this.$el = element;\n this.id = this.$el.getAttribute(SCOPE) || this.$el.id;\n this.previouslyFocused = null;\n this.shown = false;\n this.maintainFocus = this.maintainFocus.bind(this);\n this.bindKeypress = this.bindKeypress.bind(this);\n this.handleTriggerClicks = this.handleTriggerClicks.bind(this);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this);\n this.$el.setAttribute('aria-hidden', 'true');\n this.$el.setAttribute('aria-modal', 'true');\n this.$el.setAttribute('tabindex', '-1');\n if (!this.$el.hasAttribute('role')) {\n this.$el.setAttribute('role', 'dialog');\n }\n document.addEventListener('click', this.handleTriggerClicks, true);\n }\n /**\n * Destroy the current instance (after making sure the dialog has been hidden)\n * and remove all associated listeners from dialog openers and closers\n */\n destroy() {\n // Dispatch a `destroy` event\n const destroyEvent = this.fire('destroy');\n // If the event was prevented, do not continue with the normal behavior\n if (destroyEvent.defaultPrevented)\n return this;\n // Hide the dialog to avoid destroying an open instance\n this.hide();\n // Remove the click event delegates for our openers and closers\n document.removeEventListener('click', this.handleTriggerClicks, true);\n // Clone and replace the dialog element to prevent memory leaks caused by\n // event listeners that the author might not have cleaned up.\n this.$el.replaceWith(this.$el.cloneNode(true));\n return this;\n }\n /**\n * Show the dialog element, trap the current focus within it, listen for some\n * specific key presses and fire all registered callbacks for `show` event\n */\n show(event) {\n // If the dialog is already open, abort\n if (this.shown)\n return this;\n // Dispatch a `show` event\n const showEvent = this.fire('show', event);\n // If the event was prevented, do not continue with the normal behavior\n if (showEvent.defaultPrevented)\n return this;\n // Keep a reference to the currently focused element to be able to restore\n // it later\n this.shown = true;\n this.$el.removeAttribute('aria-hidden');\n this.previouslyFocused = getActiveEl();\n // Due to a long lasting bug in Safari, clicking an interactive element\n // (like a <button>) does *not* move the focus to that element, which means\n // `document.activeElement` is whatever element is currently focused (like\n // an <input>), or the <body> element otherwise. We can work around that\n // problem by checking whether the focused element is the <body>, and if it,\n // store the click event target.\n // See: https://bugs.webkit.org/show_bug.cgi?id=22261\n if (this.previouslyFocused?.tagName === 'BODY' && event?.target) {\n this.previouslyFocused = event.target;\n }\n // Set the focus to the dialog element\n // See: https://github.com/KittyGiraudel/a11y-dialog/pull/583\n if (event?.type === 'focus') {\n this.maintainFocus();\n }\n else {\n focus(this.$el);\n }\n // Bind a focus event listener to the body element to make sure the focus\n // stays trapped inside the dialog while open, and start listening for some\n // specific key presses (TAB and ESC)\n document.body.addEventListener('focus', this.maintainFocus, true);\n this.$el.addEventListener('keydown', this.bindKeypress, true);\n return this;\n }\n /**\n * Hide the dialog element, restore the focus to the previously active\n * element, stop listening for some specific key presses and fire all\n * registered callbacks for `hide` event\n */\n hide(event) {\n // If the dialog is already closed, abort\n if (!this.shown)\n return this;\n // Dispatch a `hide` event\n const hideEvent = this.fire('hide', event);\n // If the event was prevented, do not continue with the normal behavior\n if (hideEvent.defaultPrevented)\n return this;\n this.shown = false;\n this.$el.setAttribute('aria-hidden', 'true');\n // Remove the focus event listener to the body element and stop listening\n // for specific key presses\n document.body.removeEventListener('focus', this.maintainFocus, true);\n this.$el.removeEventListener('keydown', this.bindKeypress, true);\n // Ensure the previously focused element (if any) has a `focus` method\n // before attempting to call it to account for SVG elements\n // See: https://github.com/KittyGiraudel/a11y-dialog/issues/108\n this.previouslyFocused?.focus?.();\n return this;\n }\n /**\n * Register a new callback for the given event type\n */\n on(type, handler, options) {\n this.$el.addEventListener(type, handler, options);\n return this;\n }\n /**\n * Unregister an existing callback for the given event type\n */\n off(type, handler, options) {\n this.$el.removeEventListener(type, handler, options);\n return this;\n }\n /**\n * Dispatch and return a custom event from the DOM element associated with\n * this dialog; this allows authors to listen for and respond to the events\n * in their own code\n */\n fire(type, event) {\n const customEvent = new CustomEvent(type, {\n detail: event,\n cancelable: true,\n });\n this.$el.dispatchEvent(customEvent);\n return customEvent;\n }\n /**\n * Add a delegated event listener for when elememts that open or close the\n * dialog are clicked, and call `show` or `hide`, respectively\n */\n handleTriggerClicks(event) {\n // We need to retrieve the click target while accounting for Shadow DOM.\n // When within a web component, `event.target` is the shadow root (e.g.\n // `<my-dialog>`), so we need to use `event.composedPath()` to get the click\n // target\n // See: https://github.com/KittyGiraudel/a11y-dialog/issues/582\n const target = event.composedPath()[0];\n const opener = closest(`[${SCOPE}-show=\"${this.id}\"]`, target);\n const explicitCloser = closest(`[${SCOPE}-hide=\"${this.id}\"]`, target);\n const implicitCloser = closest(`[${SCOPE}-hide]`, target) &&\n closest('[aria-modal=\"true\"]', target) === this.$el;\n // We use `closest(..)` (instead of `matches(..)`) so that clicking an\n // element nested within a dialog opener does cause the dialog to open, and\n // we use our custom `closest(..)` function so that it can cross shadow\n // boundaries\n // See: https://github.com/KittyGiraudel/a11y-dialog/issues/712\n if (opener)\n this.show(event);\n if (explicitCloser || implicitCloser)\n this.hide(event);\n }\n /**\n * Private event handler used when listening to some specific key presses\n * (namely ESC and TAB)\n */\n bindKeypress(event) {\n // This is an escape hatch in case there are nested open dialogs, so that\n // only the top most dialog gets interacted with (`closest` is basically\n // `Element.prototype.closest()` accounting for Shadow DOM subtrees)\n if (closest('[aria-modal=\"true\"]', getActiveEl()) !== this.$el) {\n return;\n }\n let hasOpenPopover = false;\n try {\n hasOpenPopover = !!this.$el.querySelector('[popover]:not([popover=\"manual\"]):popover-open');\n }\n catch {\n // Run that DOM query in a try/catch because not all browsers support the\n // `:popover-open` selector, which would cause the whole expression to\n // fail\n // See: https://caniuse.com/mdn-css_selectors_popover-open\n // See: https://github.com/KittyGiraudel/a11y-dialog/pull/578#discussion_r1343215149\n }\n // If the dialog is shown and the ESC key is pressed, prevent any further\n // effects from the ESC key and hide the dialog, unless:\n // - its role is `alertdialog`, which means it should be modal\n // - or it contains an open popover, in which case ESC should close it\n if (event.key === 'Escape' &&\n this.$el.getAttribute('role') !== 'alertdialog' &&\n !hasOpenPopover) {\n event.preventDefault();\n this.hide(event);\n }\n // If the dialog is shown and the TAB key is pressed, make sure the focus\n // stays trapped within the dialog element\n if (event.key === 'Tab') {\n trapTabKey(this.$el, event);\n }\n }\n /**\n * If the dialog is shown and the focus is not within a dialog element (either\n * this one or another one in case of nested dialogs) or an element with the\n * ignore attribute, move it back to the dialog container\n * See: https://github.com/KittyGiraudel/a11y-dialog/issues/177\n */\n maintainFocus() {\n // We use `getActiveEl()` and not `event.target` here because the latter can\n // be a shadow root. This can happen when having a focusable element after\n // slotted content: tabbing out of it causes this focus listener to trigger\n // with the shadow root as a target event. In such a case, the focus would\n // be incorrectly moved to the dialog, which shouldn’t happen. Getting the\n // active element (while accounting for Shadow DOM) avoids that problem.\n // See: https://github.com/KittyGiraudel/a11y-dialog/issues/778\n const target = getActiveEl();\n if (!closest(`[aria-modal=\"true\"], [${SCOPE}-ignore-focus-trap]`, target)) {\n focus(this.$el);\n }\n }\n}\n\nfunction instantiateDialogs() {\n for (const el of document.querySelectorAll('[data-a11y-dialog]')) {\n new A11yDialog(el);\n }\n}\nif (typeof document !== 'undefined') {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', instantiateDialogs);\n }\n else {\n instantiateDialogs();\n }\n}\n\nexport { A11yDialog as default };\n","/*!\n* tabbable 6.2.0\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\n// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\n// CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes\n// the entire query to fail, resulting in no nodes found, which will break a lot\n// of things... so we have to rely on JS to identify nodes inside an inert container\nvar candidateSelectors = ['input:not([inert])', 'select:not([inert])', 'textarea:not([inert])', 'a[href]:not([inert])', 'button:not([inert])', '[tabindex]:not(slot):not([inert])', 'audio[controls]:not([inert])', 'video[controls]:not([inert])', '[contenteditable]:not([contenteditable=\"false\"]):not([inert])', 'details>summary:first-of-type:not([inert])', 'details:not([inert])'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n} : function (element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n};\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Element} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nvar isInert = function isInert(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'inert');\n var inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)`\n // so it likely would not support `:is([inert] *)` either...\n var result = inert || lookUp && node && isInert(node.parentNode); // recursive\n\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nvar isContentEditable = function isContentEditable(node) {\n var _node$getAttribute2;\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, 'contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert, all its children are inert\n if (isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidateScope>}\n */\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (isInert(element, false)) {\n // no need to look up since we're drilling down\n // anything inside this container will also be inert\n continue;\n }\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n var shadowRoot = element.shadowRoot ||\n // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n\n // no inert look up because we're already drilling down and checking for inertness\n // on the way down, so all containers to this root node should have already been\n // vetted as non-inert\n var validShadowRoot = !isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\n\n/**\n * @private\n * Determines if the node has an explicitly specified `tabindex` attribute.\n * @param {HTMLElement} node\n * @returns {boolean} True if so; false if not.\n */\nvar hasTabIndex = function hasTabIndex(node) {\n return !isNaN(parseInt(node.getAttribute('tabindex'), 10));\n};\n\n/**\n * Determine the tab index of a given node.\n * @param {HTMLElement} node\n * @returns {number} Tab order (negative, 0, or positive number).\n * @throws {Error} If `node` is falsy.\n */\nvar getTabIndex = function getTabIndex(node) {\n if (!node) {\n throw new Error('No node provided');\n }\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) {\n return 0;\n }\n }\n return node.tabIndex;\n};\n\n/**\n * Determine the tab index of a given node __for sort order purposes__.\n * @param {HTMLElement} node\n * @param {boolean} [isScope] True for a custom element with shadow root or slot that, by default,\n * has tabIndex -1, but needs to be sorted by document order in order for its content to be\n * inserted into the correct sort position.\n * @returns {number} Tab order (negative, 0, or positive number).\n */\nvar getSortOrderTabIndex = function getSortOrderTabIndex(node, isScope) {\n var tabIndex = getTabIndex(node);\n if (tabIndex < 0 && isScope && !hasTabIndex(node)) {\n return 0;\n }\n return tabIndex;\n};\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n var radioScope = node.form || getRootNode(node);\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n var radioSet;\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\n// determines if a node is ultimately attached to the window's document\nvar isNodeAttached = function isNodeAttached(node) {\n var _nodeRoot;\n // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // To further complicate things, we have to look all the way up until we find a shadow HOST\n // that is attached (or find none) because the node might be in nested shadows...\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n // NOTE: If `nodeRootHost` or `node` happens to be the `document` itself (which is possible\n // if a tabbable/focusable node was quickly added to the DOM, focused, and then removed\n // from the DOM as in https://github.com/focus-trap/focus-trap-react/issues/905), then\n // `ownerDocument` will be `null`, hence the optional chaining on it.\n var nodeRoot = node && getRootNode(node);\n var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;\n\n // in some cases, a detached node will return itself as the root instead of a document or\n // shadow root object, in which case, we shouldn't try to look further up the host chain\n var attached = false;\n if (nodeRoot && nodeRoot !== node) {\n var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;\n attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));\n while (!attached && nodeRootHost) {\n var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;\n // since it's not attached and we have a root host, the node MUST be in a nested shadow DOM,\n // which means we need to get the host's host and check if that parent host is contained\n // in (i.e. attached to) the document\n nodeRoot = getRootNode(nodeRootHost);\n nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;\n attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));\n }\n }\n return attached;\n};\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n return width === 0 && height === 0;\n};\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n }\n if (!displayCheck || displayCheck === 'full' || displayCheck === 'legacy-full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n node = originalNode;\n }\n // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n if (isNodeAttached(node)) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n }\n\n // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n //\n // v6.0.0: As of this major release, the default 'full' option __no longer treats detached\n // nodes as visible with the 'none' fallback.__\n if (displayCheck !== 'legacy-full') {\n return true; // hidden\n }\n // else, fallback to 'none' mode and consider the node visible\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n }\n\n // visible, as far as we can tell, or per current `displayCheck=none` mode, we assume\n // it's visible\n return false;\n};\n\n// form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement;\n // check if `node` is contained in a disabled <fieldset>\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i);\n // when the first <legend> (in document order) is found\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n }\n // the disabled <fieldset> containing `node` has no <legend>\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n\n // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n return false;\n};\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled ||\n // we must do an inert look up to filter out any elements inside an inert ancestor\n // because we're limited in the type of selectors we can use in JSDom (see related\n // note related to `candidateSelectors`)\n isInert(node) || isHiddenInput(node) || isHidden(node, options) ||\n // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n return true;\n};\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n return true;\n};\nvar isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n return false;\n};\n\n/**\n * @param {Array.<Element|CandidateScope>} candidates\n * @returns Element[]\n */\nvar sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scopeParent;\n var element = isScope ? item.scopeParent : item;\n var candidateTabindex = getSortOrderTabIndex(element, isScope);\n var elements = isScope ? sortByOrder(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\nvar tabbable = function tabbable(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return sortByOrder(candidates);\n};\nvar focusable = function focusable(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n return candidates;\n};\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n};\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, getTabIndex, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","import A11yDialog from \"a11y-dialog\";\nimport { isTabbable } from \"tabbable\";\n\ninterface ModalConfig {\n /** Class which indicates that modal is open */\n classModalIsOpen: string;\n /** Class on body which indicates that modal is open */\n classModalIsOpenBody: string;\n /** Root of page content which should be hidden when modal is open */\n root: string;\n /** Move modal into this element selector (must be unique in DOM) */\n modalsRoot: string;\n}\n\nconst defaultConfig = (): ModalConfig => ({\n /** Class which indicates that modal is open */\n classModalIsOpen: \"is-active\",\n /** Class on body which indicates that modal is open */\n classModalIsOpenBody: \"has-modal\",\n /** Root of page content which should be hidden when modal is open */\n root: \"#root\",\n /** Move modal into this element selector (must be unique in DOM) */\n modalsRoot: \"#root-modals\",\n});\n\ninterface HTMLElementWithModal extends HTMLElement {\n ODS_Modal?: Modal;\n}\n\nexport default class Modal {\n element: HTMLElementWithModal;\n config: ModalConfig;\n instance!: A11yDialog; // Using definite assignment assertion as it's initialized in init()\n\n constructor(element: HTMLElement, config?: Partial<ModalConfig>) {\n this.element = element as HTMLElementWithModal;\n this.config = { ...defaultConfig(), ...config };\n\n this.handleShow = this.handleShow.bind(this);\n this.handleHide = this.handleHide.bind(this);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this);\n this.headerFirstItemSpacing = this.headerFirstItemSpacing.bind(this);\n\n Modal.moveToModalRoot = Modal.moveToModalRoot.bind(this);\n Modal.lockBody = Modal.lockBody.bind(this);\n Modal.unlockBody = Modal.unlockBody.bind(this);\n\n this.element.ODS_Modal = this;\n\n this.init();\n\n return this;\n }\n\n static getInstance(el: HTMLElement | null): Modal | null {\n if (!el) return null;\n const modalEl = el as HTMLElementWithModal;\n return modalEl.ODS_Modal || null;\n }\n\n handleShow(el: HTMLElement): void {\n Modal.lockBody();\n if (el) el.classList.add(this.config.classModalIsOpen);\n\n // Long modals can have first focusabble element under the fold, so static content above the fold should be focused instead to prevent undesirable scrolling\n const initialFocusEl = el.querySelector(\"[data-a11y-dialog-initial-focus]\");\n\n if (!initialFocusEl) {\n return;\n }\n\n // set tabindex to -1 so element can't be focused via keyboard\n if (!isTabbable(initialFocusEl as HTMLElement)) {\n initialFocusEl.setAttribute(\"tabindex\", \"-1\");\n }\n\n (initialFocusEl as HTMLElement).focus();\n }\n\n handleHide(el: HTMLElement): void {\n Modal.unlockBody();\n if (el) el.classList.remove(this.config.classModalIsOpen);\n }\n\n show(): void {\n this.instance.show();\n }\n\n hide(): void {\n this.instance.hide();\n }\n\n headerFirstItemSpacing(): void {\n /**\n * Target the first element which is not .btn inside .modal__header and add margin-right 40px.\n * css has its limitations and it is not possible with pseudo selectors\n */\n const modalHeader = this.element.querySelector(\".modal__header\");\n if (modalHeader) {\n const firstNonBtnElement = Array.from(modalHeader.children).find(\n (child) => !child.classList.contains(\"btn\"),\n );\n if (firstNonBtnElement) {\n (firstNonBtnElement as HTMLElement).style.marginRight = \"40px\";\n }\n }\n }\n\n init(): void {\n if (this.config.modalsRoot) {\n Modal.moveToModalRoot(\n this.element,\n document.querySelector(this.config.modalsRoot),\n );\n }\n\n this.instance = new A11yDialog(this.element);\n\n this.instance.on(\"show\", (event: Event) => {\n const dialogEl = event.currentTarget as HTMLElement;\n this.handleShow(dialogEl);\n });\n\n this.instance.on(\"hide\", (event: Event) => {\n const dialogEl = event.currentTarget as HTMLElement;\n this.handleHide(dialogEl);\n });\n\n this.headerFirstItemSpacing();\n }\n\n destroy(): void {\n this.instance.destroy();\n this.element.ODS_Modal = this;\n }\n\n update(): void {\n this.destroy();\n this.init();\n }\n\n static moveToModalRoot(el: HTMLElement, container: Element | null): void {\n if (container) {\n container.appendChild(el);\n } else {\n console.warn(\n `\\`modalsRoot: ${(this as unknown as Modal).config?.modalsRoot}\\` element is not present in DOM. Modal will be placed inside content which can affect it's styling. Please provide \\`modalsRoot\\` selector (should be placed outside of main contant, usualy in end of <body /> tag)`,\n );\n }\n }\n\n static lockBody(className?: string, root?: string): void {\n const actualClassName =\n className || (this as unknown as Modal).config?.classModalIsOpenBody;\n const actualRoot = root || (this as unknown as Modal).config?.root;\n\n const container = document.querySelector(actualRoot);\n // store current scrollTop value\n const scrollTop =\n document.documentElement.scrollTop || document.body.scrollTop;\n document.body.setAttribute(\"data-lock-scrolltop\", scrollTop.toString());\n\n // add locking styles to body\n document.body.style.height = \"100%\";\n document.body.style.width = \"100%\";\n document.body.style.overflow = \"hidden\";\n document.body.style.position = \"fixed\";\n\n // add locking styles to scrollTop\n if (container) {\n (container as HTMLElement).style.height = \"100%\";\n (container as HTMLElement).style.width = \"100%\";\n (container as HTMLElement).style.overflow = \"hidden\";\n (container as HTMLElement).style.position = \"fixed\";\n // scroll page-container to scrollTop position\n (container as HTMLElement).scrollTop = scrollTop;\n }\n\n // add modal class\n document.body.classList.add(actualClassName);\n\n // attempt to scroll top fixed position\n window.requestAnimationFrame(() => {\n window.scrollTo(0, scrollTop);\n });\n }\n\n static unlockBody(className?: string, root?: string): void {\n const actualClassName =\n className || (this as unknown as Modal).config?.classModalIsOpenBody;\n const actualRoot = root || (this as unknown as Modal).config?.root;\n\n const container = document.querySelector(actualRoot);\n const scrollTop = document.body.getAttribute(\"data-lock-scrolltop\") || \"0\";\n\n // remove locking styles from body\n document.body.style.height = \"\";\n document.body.style.width = \"\";\n document.body.style.overflow = \"\";\n document.body.style.position = \"\";\n\n // add modal class\n document.body.classList.remove(actualClassName);\n\n // remove locking styles from page-container\n if (container) {\n (container as HTMLElement).style.height = \"\";\n (container as HTMLElement).style.width = \"\";\n (container as HTMLElement).style.overflow = \"\";\n (container as HTMLElement).style.position = \"\";\n }\n\n // set scroll position back\n window.requestAnimationFrame(() => {\n window.scrollTo({\n left: 0,\n top: parseInt(scrollTop, 10),\n behavior: \"instant\" as ScrollBehavior,\n });\n });\n }\n}\n","export const breakpoints = {\n xs: 0,\n sm: 480,\n md: 768,\n lg: 992,\n xl: 1240,\n xxl: 1380,\n};\n\n// we use array to include old browser key names like IE11\n// ie. navigation keys https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values#navigation_keys\nexport const keys = {\n TAB: ['Tab'],\n ENTER: ['Enter'],\n ESC: ['Esc', 'Escape'],\n SPACE: ['Spacebar', ' '],\n ARROWLEFT: ['Left', 'ArrowLeft'],\n ARROWUP: ['Up', 'ArrowUp'],\n ARROWRIGHT: ['Right', 'ArrowRight'],\n ARROWDOWN: ['Down', 'ArrowDown'],\n};\n","import { keys } from './constants';\n\n \nexport class RovingTabindex {\n constructor(\n elems,\n config = {\n direction: 'horizontal',\n }\n ) {\n this.elems = elems;\n this.config = config;\n\n this.isActive = false;\n\n this.onKeydown = this.onKeydown.bind(this);\n }\n\n init() {\n document.addEventListener('keydown', this.onKeydown);\n this.isActive = true;\n }\n\n destroy() {\n document.removeEventListener('keydown', this.onKeydown);\n this.isActive = false;\n }\n\n update(elems) {\n this.elems = elems;\n }\n\n onKeydown(e) {\n const activeElemIndex = this.elems.indexOf(document.activeElement);\n\n if (\n (keys.ARROWUP.includes(e.key) || keys.ARROWDOWN.includes(e.key)) &&\n this.config.direction === 'horizontal'\n ) {\n return;\n }\n\n if (\n (keys.ARROWLEFT.includes(e.key) || keys.ARROWRIGHT.includes(e.key)) &&\n this.config.direction === 'vertical'\n ) {\n return;\n }\n\n if (keys.ARROWDOWN.includes(e.key) || keys.ARROWRIGHT.includes(e.key)) {\n e.preventDefault();\n if (activeElemIndex >= 0 && activeElemIndex < this.elems.length - 1) {\n this.elems[activeElemIndex + 1].focus();\n } else {\n this.elems[0].focus();\n }\n }\n\n if (keys.ARROWUP.includes(e.key) || keys.ARROWLEFT.includes(e.key)) {\n e.preventDefault();\n if (activeElemIndex >= 1) {\n this.elems[activeElemIndex - 1].focus();\n } else {\n this.elems[this.elems.length - 1].focus();\n }\n }\n\n if (keys.TAB.includes(e.key)) {\n this.destroy();\n }\n }\n}\n","import { RovingTabindex } from \"../../utils/keyboard\";\n\ninterface TabsConfig {\n tabSelector: string;\n}\n\nexport const defaultConfig: TabsConfig = {\n tabSelector: '[role=\"tab\"]',\n};\n\nexport const configDocs = {\n tabSelector: \"Tab element selector\",\n};\n\nexport default class Tabs {\n private element: HTMLElement;\n private config: TabsConfig;\n private tabs: HTMLElement[];\n private tabPanels: (HTMLElement | null)[];\n private activeTabIndex: number | null;\n private rovingTabindex: RovingTabindex | null;\n\n constructor(element: HTMLElement, config?: Partial<TabsConfig>) {\n this.element = element;\n this.config = { ...defaultConfig, ...config };\n\n this.tabs = [];\n this.tabPanels = [];\n this.activeTabIndex = null;\n\n this.rovingTabindex = null;\n\n this.handleClick = this.handleClick.bind(this);\n this.handleTabFocus = this.handleTabFocus.bind(this);\n\n (this.element as any).ODS_Tabs = this;\n\n this.init();\n\n return this;\n }\n\n static getInstance(el: HTMLElement): Tabs | null {\n return el && (el as any).ODS_Tabs ? (el as any).ODS_Tabs : null;\n }\n\n private init(): void {\n this.tabs = Array.from(\n this.element.querySelectorAll<HTMLElement>(this.config.tabSelector),\n );\n\n this.tabs.map((tab, index) => {\n const controlId = tab.getAttribute(\"aria-controls\");\n this.tabPanels.push(\n controlId ? document.getElementById(controlId) : null,\n );\n tab.addEventListener(\"click\", this.handleClick);\n tab.addEventListener(\"focus\", this.handleTabFocus);\n\n if (this.isSelected(tab)) {\n this.activeTabIndex = index;\n }\n\n return tab;\n });\n\n if (!this.rovingTabindex) {\n this.rovingTabindex = new RovingTabindex(this.tabs, {\n direction: \"any\",\n });\n } else {\n this.rovingTabindex.update(this.tabs);\n }\n\n if (this.activeTabIndex !== null) {\n this.toggleTabPanel(this.tabPanels[this.activeTabIndex], \"on\");\n } else if (this.tabs.length > 0) {\n this.activateNthTab(0);\n }\n }\n\n destroy(): void {\n this.tabs.map((tab) => {\n tab.removeEventListener(\"click\", this.handleClick);\n tab.removeEventListener(\"focus\", this.handleTabFocus);\n return tab;\n });\n\n this.tabs = [];\n this.tabPanels = [];\n if (this.rovingTabindex) {\n this.rovingTabindex.destroy();\n }\n (this.element as any).ODS_Tabs = null;\n }\n\n update(): void {\n this.destroy();\n this.init();\n }\n\n private isActive = (el: HTMLElement | null): boolean =>\n el ? !el.hasAttribute(\"hidden\") : false;\n\n private isSelected = (el: HTMLElement): boolean =>\n el.getAttribute(\"aria-selected\") === \"true\";\n\n private handleClick(e: MouseEvent): void {\n const clickedTab = e.currentTarget as HTMLElement;\n\n if (clickedTab.hasAttribute(\"aria-disabled\")) {\n e.preventDefault();\n return;\n }\n\n this.tabs.map((tab, i) => {\n if (tab === clickedTab) {\n this.activeTabIndex = i;\n return this.toggleTab(tab, \"on\");\n }\n return this.toggleTab(tab, \"off\");\n });\n\n this.tabPanels.map((tabPanel) => {\n if (\n tabPanel &&\n tabPanel.getAttribute(\"id\") === clickedTab.getAttribute(\"aria-controls\")\n ) {\n return this.toggleTabPanel(tabPanel, \"on\");\n }\n return this.toggleTabPanel(tabPanel, \"off\");\n });\n }\n\n private toggleTab(el: HTMLElement, state: \"on\" | \"off\"): void {\n const isActive = this.isSelected(el);\n\n if (state === \"on\" && !isActive) {\n el.setAttribute(\"aria-selected\", \"true\");\n el.setAttribute(\"tabindex\", \"0\");\n }\n\n if (state === \"off\" && isActive) {\n el.setAttribute(\"aria-selected\", \"false\");\n el.setAttribute(\"tabindex\", \"-1\");\n }\n }\n\n private toggleTabPanel(el: HTMLElement | null, state: \"on\" | \"off\"): void {\n if (!el) return;\n\n const isActive = this.isActive(el);\n\n if (state === \"on\" && !isActive) {\n el.removeAttribute(\"hidden\");\n }\n\n if (state === \"off\" && isActive) {\n el.setAttribute(\"hidden\", \"\");\n }\n }\n\n activateNthTab(index: number): void {\n this.tabs.map((tab, i) => {\n if (i === index) {\n this.activeTabIndex = i;\n return this.toggleTab(tab, \"on\");\n }\n return this.toggleTab(tab, \"off\");\n });\n\n this.tabPanels.map((tabPanel, i) => {\n if (i === index) {\n return this.toggleTabPanel(tabPanel, \"on\");\n }\n return this.toggleTabPanel(tabPanel, \"off\");\n });\n }\n\n private handleTabFocus(): void {\n if (this.rovingTabindex && !this.rovingTabindex.isActive) {\n this.rovingTabindex.init();\n }\n }\n}\n","import { lowerCamelCase } from \"../../utils/helpers\";\n\nexport default function moduleFactory(Module, selector, options = {}) {\n const elements = Array.from(document.querySelectorAll(selector));\n\n return elements.map((element) => new Module(element, options));\n}\n\nexport function destroyModulesWithin(container, removeOrphanedNodes = false) {\n const destroyedInstances = {};\n\n Object.keys(window.ODS.instances).forEach((moduleName) => {\n window.ODS.instances[moduleName].forEach((instance) => {\n if (typeof destroyedInstances[moduleName] !== \"object\") {\n destroyedInstances[moduleName] = [];\n }\n\n let isInContainer = container.contains(instance.element);\n if (moduleName === \"modal\") {\n isInContainer = instance.instance?._openers.every((opener) =>\n container.contains(opener),\n );\n } else if (moduleName === \"tooltip\") {\n isInContainer = container.contains(instance.trigger);\n }\n\n if (isInContainer) {\n instance.destroy();\n destroyedInstances[moduleName].push(instance);\n }\n\n if (\n isInContainer &&\n removeOrphanedNodes &&\n [\"modal\", \"tooltip\"].includes(moduleName)\n ) {\n instance.element.remove();\n }\n });\n\n window.ODS.instances[moduleName] = window.ODS.instances[moduleName].filter(\n (instance) => !destroyedInstances[moduleName].includes(instance),\n );\n });\n\n return destroyedInstances;\n}\n\nexport function initModulesWithin(container) {\n const instances = {};\n window.ODS.moduleSelectorPairs.forEach((module) => {\n const name = lowerCamelCase(module.name);\n const elements = Array.from(container.querySelectorAll(module.selector));\n if (window && window.ODS && window.ODS.instances[name]) {\n window.ODS.instances[name].forEach((instance) => {\n elements.forEach((element, index) => {\n if (element.isSameNode(instance.element)) {\n elements.splice(index, 1);\n }\n });\n });\n }\n if (elements.length) {\n if (!Array.isArray(window.ODS.instances[name])) {\n window.ODS.instances[name] = [];\n }\n instances[name] = elements.map((element) => new module.Module(element));\n window.ODS.instances[name] = [\n ...window.ODS.instances[name],\n ...instances[name],\n ];\n }\n });\n return instances;\n}\n"," \nimport { TOGGLE_EVT } from './Toggle';\n\nexport default function toggle(props) {\n const {\n element,\n attribute,\n action,\n value,\n dispatchEvent = true,\n eventDetail,\n } = props;\n let returnValue = null;\n\n if (!element || !(element instanceof Element)) {\n return returnValue;\n }\n\n if (action === 'focus') {\n setTimeout(element.focus(), 20);\n }\n\n if (action === 'click') {\n element.click();\n }\n\n if (attribute === 'class') {\n element.classList.toggle(value);\n returnValue = value;\n }\n\n if (attribute === 'text') {\n const oldText = element.textContent;\n element.textContent = value;\n returnValue = oldText;\n }\n\n if (\n attribute !== 'class' &&\n attribute !== 'text' &&\n typeof action === 'undefined'\n ) {\n returnValue = element.getAttribute(attribute);\n\n if (attribute === 'hidden') {\n if (element.hasAttribute(attribute)) {\n element.removeAttribute(attribute);\n } else {\n element.setAttribute(attribute, '');\n }\n } else if (!value) {\n element.setAttribute(attribute, !(returnValue === 'true'));\n } else {\n element.setAttribute(attribute, value);\n }\n }\n\n if (dispatchEvent) {\n element.dispatchEvent(\n new CustomEvent(TOGGLE_EVT, {\n detail: eventDetail,\n bubbles: true,\n })\n );\n }\n\n return returnValue;\n}\n","// ---------------------------------------------------\n// Toggle\n// module for handling toggle actions\n \nimport toggle from './toggleUtil';\n\nexport const TRIGGER_EVT = 'toggleTrigger';\nexport const TOGGLE_EVT = 'toggle';\n\nconst defaultConfig = {\n activeClass: 'is-active',\n settingsAttr: 'data-toggle',\n};\n\nclass Toggle {\n constructor(element, config) {\n this.element = element;\n this.config = { ...defaultConfig, ...config };\n\n this.settings = {};\n this.targets = [];\n\n this.handleClick = this.handleClick.bind(this);\n\n this.element.ODS_Toggle = this;\n\n this.init();\n\n return this;\n }\n\n doToggle(props) {\n const { dispatchEvent = true } = props;\n let { element, attribute, value, action } = props;\n\n const returnProps = { ...props };\n const eventDetail = { trigger: this.element, element };\n\n if (attribute === 'icon') {\n attribute = 'xlink:href';\n element = element.querySelector('use');\n }\n\n if (attribute === 'text') {\n element = element.querySelector('[data-toggle-text-target]') || element;\n }\n\n if (typeof value === 'undefined') {\n value = false;\n }\n\n returnProps.value = toggle({\n element,\n attribute,\n action,\n value,\n dispatchEvent,\n eventDetail,\n });\n\n return returnProps;\n }\n\n init() {\n this.settings = this.parseSettings();\n\n this.targets = this.setupTargets();\n\n this.element.addEventListener('click', this.handleClick);\n\n return this.targets;\n }\n\n handleClick() {\n this.targets = this.targets.map(target => this.doToggle(target));\n\n this.element.dispatchEvent(new CustomEvent(TRIGGER_EVT, { bubbles: true }));\n }\n\n destroy() {\n this.element.removeEventListener('click', this.handleClick);\n this.settings = [];\n this.targets = [];\n }\n\n update() {\n this.removeNonExistentTargets();\n this.addNewTargets();\n }\n\n static getTargetElementsFromString({ target, trigger }) {\n const selector = target.trim();\n\n if (selector === 'self') {\n return [trigger];\n }\n\n if (selector === 'parent') {\n return [trigger.parentNode];\n }\n\n if (selector === 'previous') {\n return [trigger.previousElementSibling];\n }\n\n if (selector === 'next') {\n return [trigger.nextElementSibling];\n }\n\n if (typeof selector === 'string') {\n // don't be tempted to remove this querySelectorAll\n // selector like '.target-elements' whould not work as expected\n return Array.from(document.querySelectorAll(selector));\n }\n\n // add log why we endup here\n return selector;\n }\n\n parseSettings() {\n const jsonSettings = this.element.getAttribute(this.config.settingsAttr);\n const ariaControls = this.element.getAttribute('aria-controls');\n\n let settings = JSON.parse(jsonSettings);\n\n if (ariaControls) {\n const ariaExpanded = this.element.getAttribute('aria-expanded');\n\n settings = [\n ...(ariaExpanded\n ? [\n {\n target: 'self',\n attribute: 'aria-expanded',\n },\n ]\n : []),\n {\n target: ariaControls\n .split(' ')\n .map(a => `#${a}`)\n .join(','),\n attribute: 'hidden',\n },\n ...(Array.isArray(settings) ? settings : []),\n ];\n }\n\n return settings;\n }\n\n // get all the possible settings for all target elements\n setupTargets() {\n const trigger = this.element;\n\n return this.settings.reduce(\n (allSettings, setting) => [\n ...allSettings,\n ...setting?.target\n .split(',') // separate target selectors\n .reduce(\n (targetSettings, target) => [\n ...targetSettings,\n ...Toggle\n // get target elements from DOM\n .getTargetElementsFromString({\n target,\n trigger,\n })\n // duplicate setting for each DOM element\n .map(element => ({\n ...setting,\n element,\n })),\n ],\n []\n ),\n ],\n []\n );\n }\n\n removeNonExistentTargets() {\n this.targets = this.targets.filter(target =>\n document.contains(target.element)\n );\n }\n\n addNewTargets() {\n const allTargets = this.setupTargets();\n const newTargets = allTargets.filter(\n newTarget =>\n !this.targets.find(\n target =>\n target.element === newTarget.element &&\n target.action === newTarget.action\n )\n );\n\n this.targets = [...this.targets, ...newTargets];\n }\n\n static getInstance(el) {\n return el && el.ODS_Toggle ? el.ODS_Toggle : null;\n }\n}\n\nexport default Toggle;\n\nexport const { getTargetElements } = Toggle;\nexport const { setTargets } = Toggle;\n","export default class SameHeight {\n constructor(element) {\n this.element = element;\n this.children = null;\n this.updateHeight = this.updateHeight.bind(this);\n this.element.ODS_SameHeight = this;\n this.intervalId = null; // Add this line to store interval ID\n this.init();\n }\n\n // This method temporarily shows hidden elements by changing their display style to 'block' and removing the 'hidden' attribute.\n temporarilyShowHiddenElements() {\n // Initialize an array to store the original display states of the elements.\n this.originalDisplayStates = [];\n\n // Iterate over each child element.\n this.children.forEach((child) => {\n // Find the closest ancestor with the role 'tabpanel'.\n const tabPanel = child.closest('[role=\"tabpanel\"]');\n // Find the closest ancestor with the role 'dialog'.\n const modal = child.closest('[role=\"dialog\"]');\n\n // If the tabPanel exists and has the 'hidden' attribute.\n if (tabPanel && tabPanel.hasAttribute(\"hidden\")) {\n // Store the original display state of the tabPanel.\n this.originalDisplayStates.push({\n element: tabPanel,\n display: tabPanel.style.display,\n });\n // Change the display style to 'block' and remove the 'hidden' attribute.\n tabPanel.style.display = \"block\";\n tabPanel.removeAttribute(\"hidden\");\n }\n\n // If the modal exists and has the 'aria-hidden' attribute.\n if (modal && modal.hasAttribute(\"aria-hidden\")) {\n // Store the original display state of the modal.\n this.originalDisplayStates.push({\n element: modal,\n display: modal.style.display,\n });\n // Change the display style to 'block' and remove the 'aria-hidden' attribute.\n modal.style.display = \"block\";\n modal.removeAttribute(\"aria-hidden\");\n }\n });\n }\n\n // This method restores the hidden elements to their original display states.\n restoreHiddenElements() {\n // Iterate over each stored original display state.\n this.originalDisplayStates.forEach(({ element, display }) => {\n // Restore the original display style.\n element.style.display = display;\n\n // Check if the element has the role 'tabpanel'.\n if (element.getAttribute(\"role\") === \"tabpanel\") {\n // If so, set the 'hidden' attribute to true.\n element.setAttribute(\"hidden\", true);\n }\n // Check if the element has the role 'dialog'.\n else if (element.getAttribute(\"role\") === \"dialog\") {\n // If so, set the 'aria-hidden' attribute to true.\n element.setAttribute(\"aria-hidden\", true);\n }\n });\n }\n\n updateHeight() {\n // Temporarily show hidden elements to ensure they are included in the height calculations.\n this.temporarilyShowHiddenElements();\n\n // Get all elements with data-same-height-child attribute\n const allSameHeightChildren = this.element.querySelectorAll(\n '[data-same-height-child=\"true\"]',\n );\n\n // Group elements by their \"type\" (using data-same-height-group if available)\n const groupedElements = this.groupElementsByTypeAndPosition(\n allSameHeightChildren,\n );\n\n // Process each group separately\n\n for (const [, elements] of Object.entries(groupedElements)) {\n const rows = [];\n let newRow = [];\n\n if (elements.length) {\n let lastOffset = elements[0].getBoundingClientRect().top;\n\n for (let child of elements) {\n if (child.getBoundingClientRect().top === lastOffset) {\n newRow.push(child);\n } else {\n rows.push([...newRow]);\n newRow = [];\n newRow.push(child);\n }\n lastOffset = child.getBoundingClientRect().top;\n }\n\n rows.push([...newRow]);\n\n rows.forEach((row) => {\n if (row.length > 1) {\n let maxHeight = 0;\n row.forEach((child) => {\n if (child) {\n if (child.style.height) {\n child.style.height = \"\";\n }\n if (child.offsetHeight > maxHeight) {\n maxHeight = child.offsetHeight;\n }\n }\n });\n row.forEach((child) => {\n child.style.height = maxHeight + \"px\";\n });\n } else {\n row.forEach((child) => {\n if (child.style.height) {\n child.style.height = null;\n }\n });\n }\n });\n }\n }\n\n // Restore the hidden elements to their original display states after height calculations are done.\n this.restoreHiddenElements();\n }\n\n groupElementsByTypeAndPosition(elements) {\n const groups = {};\n\n elements.forEach((element) => {\n // Get group identifier - either from data-same-height-group attribute or default to 'default'\n const groupKey =\n element.getAttribute(\"data-same-height-group\") || \"default\";\n\n if (!groups[groupKey]) {\n groups[groupKey] = [];\n }\n\n groups[groupKey].push(element);\n });\n\n return groups;\n }\n\n init() {\n let imgLoaded = [];\n // Instead of finding one child per parent element, we find all elements with the attribute\n this.children = this.element.querySelectorAll(\n '[data-same-height-child=\"true\"]',\n );\n\n // Check if any of the data-same-height-child elements contain images\n this.children.forEach((child) => {\n const images = child.querySelectorAll(\"img\");\n images.forEach((img) => {\n if (!img.complete) {\n imgLoaded.push(img);\n }\n });\n });\n\n // Function executed on init when there are no img children or all img are loaded\n if (imgLoaded.length === 0) {\n this.updateHeight();\n }\n // If there are unloaded images we check if they did load every 400ms\n else {\n let x = 0;\n this.intervalId = setInterval(() => {\n let completed = false;\n imgLoaded.forEach((img, index, array) => {\n if (img.complete) {\n array.splice(index, 1);\n completed = true;\n }\n });\n if (completed && this.updateHeight) {\n this.updateHeight();\n }\n if (++x >= 15 || imgLoaded.length === 0) {\n if (imgLoaded.length && this.updateHeight) {\n this.updateHeight();\n }\n window.clearInterval(this.intervalId);\n }\n }, 400);\n }\n window.addEventListener(\"resize\", this.updateHeight);\n }\n\n update() {\n this.destroy();\n this.init();\n }\n\n destroy() {\n window.removeEventListener(\"resize\", this.updateHeight);\n if (this.intervalId) {\n clearInterval(this.intervalId);\n this.intervalId = null;\n }\n }\n\n static getInstance(el) {\n return el && el.ODS_SameHeight ? el.ODS_SameHeight : null;\n }\n}\n","import { lowerCamelCase } from \"../utils/helpers\";\n// import Accordion from '../components/Accordion/Accordion.static';\n// import Autocomplete from '../components/Forms/Autocomplete/Autocomplete.static';\n// import DatePicker from '../components/Forms/DatePicker/DatePicker.static';\n// import BlockAction from '../components/BlockAction/BlockAction.static';\n// import Carousel from '../components/Carousel/Carousel.static';\n// import CarouselPromotions from '../components/CarouselPromotions/CarouselPromotions.static';\n// import Dropdown from '../components/Dropdown/Dropdown.static';\n// import Expander from '../components/Expander/Expander.static';\n// import File from '../components/Forms/File/File.static';\n// import Loader from '../components/Loader/Loader.static';\nimport Modal from \"../components/Modal/Modal.static\";\n// import RangeSlider from '../components/Forms/RangeSlider/RangeSlider.static';\n// import Table from '../components/Table/Table.static';\nimport Tabs from \"../components/Tabs/Tabs.static\";\n// import Tooltip from '../components/Tooltip/Tooltip.static';\n// import InputStepper from '../components/Forms/InputStepper/InputStepper.static';\n\nimport moduleFactory, {\n initModulesWithin,\n destroyModulesWithin,\n} from \"./lib/moduleFactory\";\nimport Toggle from \"./modules/Toggle\";\nimport SameHeight from \"./modules/SameHeight\";\n\nexport const moduleSelectorPairs = [\n // {\n // Module: Accordion,\n // name: 'Accordion',\n // selector: '[data-accordion]',\n // },\n // {\n // Module: Autocomplete,\n // name: 'Autocomplete',\n // selector: '[data-autocomplete]',\n // },\n // {\n // Module: DatePicker,\n // name: 'DatePicker',\n // selector: '[data-datepicker]',\n // },\n // {\n // Module: Dropdown,\n // name: 'Dropdown',\n // selector: '[data-dropdown]',\n // },\n // {\n // Module: Expander,\n // name: 'Expander',\n // selector: '[data-expander]',\n // },\n // {\n // Module: BlockAction,\n // name: 'BlockAction',\n // selector: '[data-block-action]',\n // },\n // {\n // Module: Carousel,\n // name: 'Carousel',\n // selector: '[data-carousel]',\n // },\n // {\n // Module: CarouselPromotions,\n // name: 'CarouselPromotions',\n // selector: '[data-carousel-promotions]',\n // },\n // {\n // Module: File,\n // name: 'File',\n // selector: '[data-file-input]',\n // },\n // {\n // Module: Loader,\n // name: 'Loader',\n // selector: '[data-loader]',\n // },\n {\n Module: Modal,\n name: \"Modal\",\n selector: \"[data-modal]\",\n },\n {\n Module: SameHeight,\n name: \"SameHeight\",\n selector: \"[data-same-height]\",\n },\n // {\n // Module: RangeSlider,\n // name: 'RangeSlider',\n // selector: '[data-rangeslider]',\n // },\n // {\n // Module: InputStepper,\n // name: 'InputStepper',\n // selector: '[data-inputstepper]',\n // },\n // {\n // Module: Table,\n // name: 'Table',\n // selector: '[data-table]',\n // },\n {\n Module: Tabs,\n name: \"Tabs\",\n selector: \"[data-tabs]\",\n },\n {\n Module: Toggle,\n name: \"Toggle\",\n selector: \"[data-toggle]\",\n },\n // {\n // Module: Tooltip,\n // name: 'Tooltip',\n // selector: '[data-tooltip]',\n // },\n];\n\ndeclare global {\n interface Window {\n ODS: {\n modules: Record<string, any>;\n instances: Record<string, any>;\n moduleSelectorPairs: Array<{\n name: string;\n Module: any;\n selector: string;\n }>;\n initModulesWithin: typeof initModulesWithin;\n destroyModulesWithin: typeof destroyModulesWithin;\n };\n }\n}\n\nwindow.ODS = window.ODS || {\n modules: {},\n instances: {},\n moduleSelectorPairs: {},\n};\nwindow.ODS.initModulesWithin = initModulesWithin;\nwindow.ODS.destroyModulesWithin = destroyModulesWithin;\nwindow.ODS.moduleSelectorPairs = moduleSelectorPairs;\n\nwindow.addEventListener(\"DOMContentLoaded\", () => {\n console.log(\"ODS modules loaded\");\n\n moduleSelectorPairs.forEach((module) => {\n window.ODS.modules[module.name] = module.Module;\n window.ODS.instances[lowerCamelCase(module.name)] = moduleFactory(\n module.Module,\n module.selector,\n );\n });\n\n window.dispatchEvent(new Event(\"ODSLoaded\"));\n});\n"],"names":["lowerCamelCase","string","charAt","toLowerCase","slice","isHidden","defaultConfig","classModalIsOpen","classModalIsOpenBody","root","modalsRoot","Modal","element","config","_classCallCheck","Object","assign","handleShow","bind","handleHide","show","hide","headerFirstItemSpacing","moveToModalRoot","lockBody","unlockBody","ODS_Modal","init","_createClass","key","value","el","classList","add","initialFocusEl","querySelector","isTabbable","setAttribute","focus","remove","instance","modalHeader","firstNonBtnElement","Array","from","children","find","child","contains","style","marginRight","_this","document","A11yDialog","on","event","dialogEl","currentTarget","destroy","update","getInstance","modalEl","container","appendChild","console","warn","concat","_a","className","actualClassName","actualRoot","_b","scrollTop","documentElement","body","toString","height","width","overflow","position","window","requestAnimationFrame","scrollTo","getAttribute","left","top","parseInt","behavior","keys","TAB","ARROWLEFT","ARROWUP","ARROWRIGHT","ARROWDOWN","RovingTabindex","elems","arguments","length","undefined","direction","isActive","onKeydown","addEventListener","removeEventListener","e","activeElemIndex","indexOf","activeElement","includes","preventDefault","tabSelector","Tabs","hasAttribute","isSelected","tabs","tabPanels","activeTabIndex","rovingTabindex","handleClick","handleTabFocus","ODS_Tabs","querySelectorAll","map","tab","index","controlId","push","getElementById","toggleTabPanel","activateNthTab","_this2","_this3","clickedTab","i","toggleTab","tabPanel","state","removeAttribute","_this4","moduleFactory","Module","selector","options","elements","destroyModulesWithin","removeOrphanedNodes","destroyedInstances","ODS","instances","forEach","moduleName","_typeof","isInContainer","_instance$instance","_openers","every","opener","trigger","filter","initModulesWithin","moduleSelectorPairs","module","name","isSameNode","splice","isArray","_toConsumableArray","toggle","props","attribute","action","_props$dispatchEvent","dispatchEvent","eventDetail","returnValue","Element","setTimeout","click","oldText","textContent","CustomEvent","TOGGLE_EVT","detail","bubbles","TRIGGER_EVT","activeClass","settingsAttr","Toggle","_objectSpread","settings","targets","ODS_Toggle","doToggle","returnProps","parseSettings","setupTargets","target","removeNonExistentTargets","addNewTargets","jsonSettings","ariaControls","JSON","parse","ariaExpanded","split","a","join","reduce","allSettings","setting","targetSettings","getTargetElementsFromString","allTargets","newTargets","newTarget","_ref","trim","parentNode","previousElementSibling","nextElementSibling","getTargetElements","setTargets","SameHeight","updateHeight","ODS_SameHeight","intervalId","temporarilyShowHiddenElements","originalDisplayStates","closest","modal","display","restoreHiddenElements","allSameHeightChildren","groupedElements","groupElementsByTypeAndPosition","_i","_Object$entries","entries","_Object$entries$_i","_slicedToArray","rows","newRow","lastOffset","getBoundingClientRect","_iterator","_createForOfIteratorHelper","_step","s","n","done","err","f","row","maxHeight","offsetHeight","groups","groupKey","imgLoaded","images","img","complete","x","setInterval","completed","array","clearInterval","modules","log","Event"],"mappings":"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","x_google_ignoreList":[0,2,3]}
|