smoothly 1.0.0-alpha.13 → 1.0.0-alpha.130
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/dist/cjs/{Listenable-63ea2d90.js → Data-e345d3cd.js} +74 -4
- package/dist/cjs/Data-e345d3cd.js.map +1 -0
- package/dist/cjs/Observers-6450f075.js +25 -0
- package/dist/cjs/Observers-6450f075.js.map +1 -0
- package/dist/cjs/{getLanguage-430ecf04.js → getLanguage-28ce96e4.js} +1111 -890
- package/dist/cjs/getLanguage-28ce96e4.js.map +1 -0
- package/dist/cjs/{index-8352a4e0.js → index-43af753b.js} +9 -43
- package/dist/cjs/index-43af753b.js.map +1 -0
- package/dist/cjs/index.cjs.js +386 -22
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +4 -3
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/redirect-2e5d4524.js +104 -0
- package/dist/cjs/redirect-2e5d4524.js.map +1 -0
- package/dist/cjs/smoothly-accordion_70.cjs.entry.js +17206 -0
- package/dist/cjs/smoothly-accordion_70.cjs.entry.js.map +1 -0
- package/dist/cjs/smoothly-address-display.cjs.entry.js +1 -1
- package/dist/cjs/smoothly-address.cjs.entry.js +1 -1
- package/dist/cjs/smoothly-addresses.cjs.entry.js +1 -1
- package/dist/cjs/smoothly-color.cjs.entry.js +1 -1
- package/dist/cjs/smoothly-country.cjs.entry.js +9 -9
- package/dist/cjs/smoothly-country.cjs.entry.js.map +1 -1
- package/dist/cjs/smoothly-display-date-time.cjs.entry.js +26 -0
- package/dist/cjs/smoothly-display-date-time.cjs.entry.js.map +1 -0
- package/dist/cjs/smoothly-google-font.cjs.entry.js +1 -1
- package/dist/cjs/smoothly-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/smoothly-reorder.cjs.entry.js +1 -1
- package/dist/cjs/smoothly-trigger-sink.cjs.entry.js +4 -4
- package/dist/cjs/smoothly-trigger-sink.cjs.entry.js.map +1 -1
- package/dist/cjs/smoothly-trigger-source.cjs.entry.js +6 -6
- package/dist/cjs/smoothly-trigger-source.cjs.entry.js.map +1 -1
- package/dist/cjs/smoothly.cjs.js +4 -3
- package/dist/cjs/smoothly.cjs.js.map +1 -1
- package/dist/collection/collection-manifest.json +23 -12
- package/dist/collection/components/Button.js +16 -2
- package/dist/collection/components/Button.js.map +1 -1
- package/dist/collection/components/accordion/index.js +32 -12
- package/dist/collection/components/accordion/index.js.map +1 -1
- package/dist/collection/components/accordion-item/index.js +18 -25
- package/dist/collection/components/accordion-item/index.js.map +1 -1
- package/dist/collection/components/app/index.js +147 -1
- package/dist/collection/components/app/index.js.map +1 -1
- package/dist/collection/components/app/room/index.js +240 -0
- package/dist/collection/components/app/room/index.js.map +1 -0
- package/dist/collection/components/app/room/style.css +55 -0
- package/dist/collection/components/app/style.css +89 -101
- package/dist/collection/components/app-demo/index.js +5 -19
- package/dist/collection/components/app-demo/index.js.map +1 -1
- package/dist/collection/components/backtotop/index.js +3 -3
- package/dist/collection/components/backtotop/index.js.map +1 -1
- package/dist/collection/components/burger/index.js +174 -0
- package/dist/collection/components/burger/index.js.map +1 -0
- package/dist/collection/components/burger/style.css +22 -0
- package/dist/collection/components/button/index.js +10 -23
- package/dist/collection/components/button/index.js.map +1 -1
- package/dist/collection/components/button/style.css +13 -17
- package/dist/collection/components/button-demo/index.js +6 -2
- package/dist/collection/components/button-demo/index.js.map +1 -1
- package/dist/collection/components/button-demo/style.css +1 -0
- package/dist/collection/components/calendar/generate.js +1 -1
- package/dist/collection/components/calendar/generate.js.map +1 -1
- package/dist/collection/components/checkbox/index.js +25 -3
- package/dist/collection/components/checkbox/index.js.map +1 -1
- package/dist/collection/components/country/index.js +1 -1
- package/dist/collection/components/display/index.js +24 -3
- package/dist/collection/components/display/index.js.map +1 -1
- package/dist/collection/components/display-amount/index.js +1 -1
- package/dist/collection/components/display-demo/index.js +1 -1
- package/dist/collection/components/display-demo/index.js.map +1 -1
- package/dist/collection/components/filter/index.js +1 -1
- package/dist/collection/components/filter/index.js.map +1 -1
- package/dist/collection/components/filter/input/index.js +16 -9
- package/dist/collection/components/filter/input/index.js.map +1 -1
- package/dist/collection/components/form/index.js +132 -9
- package/dist/collection/components/form/index.js.map +1 -1
- package/dist/collection/components/form/style.css +9 -16
- package/dist/collection/components/frame/index.js +1 -2
- package/dist/collection/components/frame/index.js.map +1 -1
- package/dist/collection/components/icon/index.js +28 -35
- package/dist/collection/components/icon/index.js.map +1 -1
- package/dist/collection/components/icon-demo/index.js.map +1 -1
- package/dist/collection/components/icon-demo/style.css +1 -0
- package/dist/collection/components/input/Changeable.js +8 -0
- package/dist/collection/components/input/Changeable.js.map +1 -0
- package/dist/collection/components/input/Clearable.js.map +1 -0
- package/dist/collection/components/input/Input.js +2 -0
- package/dist/collection/components/input/Input.js.map +1 -0
- package/dist/collection/components/input/Looks.js +2 -0
- package/dist/collection/components/input/Looks.js.map +1 -0
- package/dist/collection/components/input/Submittable.js +8 -0
- package/dist/collection/components/input/Submittable.js.map +1 -0
- package/dist/collection/components/input/clear/index.js +237 -0
- package/dist/collection/components/input/clear/index.js.map +1 -0
- package/dist/collection/components/input/clear/style.css +254 -0
- package/dist/collection/components/{input-date → input/date}/index.js +160 -3
- package/dist/collection/components/input/date/index.js.map +1 -0
- package/dist/collection/components/{input-date-range → input/date/range}/index.js +161 -23
- package/dist/collection/components/input/date/range/index.js.map +1 -0
- package/dist/collection/components/input/date/range/style.css +69 -0
- package/dist/collection/components/input/date/style.css +58 -0
- package/dist/collection/components/input/demo/index.js +95 -0
- package/dist/collection/components/input/demo/index.js.map +1 -0
- package/dist/collection/components/{input-demo → input/demo}/style.css +1 -0
- package/dist/collection/components/input/file/index.js +305 -0
- package/dist/collection/components/input/file/index.js.map +1 -0
- package/dist/collection/components/input/file/style.css +85 -0
- package/dist/collection/components/input/index.js +131 -8
- package/dist/collection/components/input/index.js.map +1 -1
- package/dist/collection/components/{input-month → input/month}/index.js +5 -5
- package/dist/collection/components/input/month/index.js.map +1 -0
- package/dist/collection/components/{selector → input/select}/index.js +176 -5
- package/dist/collection/components/input/select/index.js.map +1 -0
- package/dist/collection/components/input/select/style.css +80 -0
- package/dist/collection/components/input/style.css +23 -8
- package/dist/collection/components/notification/index.js +45 -8
- package/dist/collection/components/notification/index.js.map +1 -1
- package/dist/collection/components/notification/style.css +25 -1
- package/dist/collection/components/notifier/style.css +1 -3
- package/dist/collection/components/picker/demo/index.js +91 -0
- package/dist/collection/components/picker/demo/index.js.map +1 -0
- package/dist/collection/components/picker/demo/style.css +26 -0
- package/dist/collection/components/picker/index.js +197 -396
- package/dist/collection/components/picker/index.js.map +1 -1
- package/dist/collection/components/picker/menu/index.js +422 -0
- package/dist/collection/components/picker/menu/index.js.map +1 -0
- package/dist/collection/components/picker/menu/style.css +44 -0
- package/dist/collection/components/picker/option/index.js +298 -0
- package/dist/collection/components/picker/option/index.js.map +1 -0
- package/dist/collection/components/picker/option/style.css +30 -0
- package/dist/collection/components/picker/slot-elements/index.js +109 -0
- package/dist/collection/components/picker/slot-elements/index.js.map +1 -0
- package/dist/collection/components/picker/slot-elements/style.css +3 -0
- package/dist/collection/components/picker/slotted-elements/index.js +84 -0
- package/dist/collection/components/picker/slotted-elements/index.js.map +1 -0
- package/dist/collection/components/picker/slotted-elements/style.css +3 -0
- package/dist/collection/components/picker/style.css +60 -144
- package/dist/collection/components/radio/index.js +4 -4
- package/dist/collection/components/radio/index.js.map +1 -1
- package/dist/collection/components/radio-button/index.js +35 -10
- package/dist/collection/components/radio-button/index.js.map +1 -1
- package/dist/collection/components/select-demo/index.js +0 -87
- package/dist/collection/components/select-demo/index.js.map +1 -1
- package/dist/collection/components/spinner/style.css +1 -0
- package/dist/collection/components/submit/index.js +64 -5
- package/dist/collection/components/submit/index.js.map +1 -1
- package/dist/collection/components/submit/style.css +224 -0
- package/dist/collection/components/summary/index.js +44 -1
- package/dist/collection/components/summary/index.js.map +1 -1
- package/dist/collection/components/svg/style.css +2 -2
- package/dist/collection/components/table/cell/index.js +1 -1
- package/dist/collection/components/table/cell/index.js.map +1 -1
- package/dist/collection/components/table/cell/style.css +19 -10
- package/dist/collection/components/table/demo/filtered/index.js +4 -3
- package/dist/collection/components/table/demo/filtered/index.js.map +1 -1
- package/dist/collection/components/table/demo/index.js +8 -2
- package/dist/collection/components/table/demo/index.js.map +1 -1
- package/dist/collection/components/table/demo/style.css +2 -0
- package/dist/collection/components/table/expandable/cell/index.js +14 -14
- package/dist/collection/components/table/expandable/cell/index.js.map +1 -1
- package/dist/collection/components/table/expandable/cell/style.css +32 -22
- package/dist/collection/components/table/expandable/row/index.js +9 -32
- package/dist/collection/components/table/expandable/row/index.js.map +1 -1
- package/dist/collection/components/table/expandable/row/style.css +32 -29
- package/dist/collection/components/table/footer/index.js +19 -0
- package/dist/collection/components/table/footer/index.js.map +1 -0
- package/dist/collection/components/table/footer/style.css +13 -0
- package/dist/collection/components/table/header/style.css +2 -2
- package/dist/collection/components/table/index.js +55 -12
- package/dist/collection/components/table/index.js.map +1 -1
- package/dist/collection/components/table/row/index.js +37 -5
- package/dist/collection/components/table/row/index.js.map +1 -1
- package/dist/collection/components/table/row/style.css +4 -1
- package/dist/collection/components/table/style.css +0 -2
- package/dist/collection/components/table/testing/data.js +28 -0
- package/dist/collection/components/table/testing/data.js.map +1 -0
- package/dist/collection/components/table/testing/index.js +28 -0
- package/dist/collection/components/table/testing/index.js.map +1 -0
- package/dist/collection/components/table/testing/style.css +22 -0
- package/dist/collection/components/theme/color/index.js +48 -0
- package/dist/collection/components/theme/color/index.js.map +1 -0
- package/dist/collection/components/theme/color/style.css +8 -0
- package/dist/collection/components/theme/color/variant/index.js +66 -0
- package/dist/collection/components/theme/color/variant/index.js.map +1 -0
- package/dist/collection/components/theme/color/variant/style.css +18 -0
- package/dist/collection/components/theme/colors/index.js +30 -0
- package/dist/collection/components/theme/colors/index.js.map +1 -0
- package/dist/collection/components/theme/colors/style.css +7 -0
- package/dist/collection/components/toggle-switch/index.js +69 -17
- package/dist/collection/components/toggle-switch/index.js.map +1 -1
- package/dist/collection/components/toggle-switch/style.css +19 -12
- package/dist/collection/components/trigger-source/index.js +3 -3
- package/dist/collection/components/trigger-source/index.js.map +1 -1
- package/dist/collection/global/Observers.js +22 -0
- package/dist/collection/global/Observers.js.map +1 -0
- package/dist/collection/global/index.js +5 -0
- package/dist/collection/global/index.js.map +1 -0
- package/dist/collection/index.js +2 -3
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/model/Data.js.map +1 -0
- package/dist/collection/model/Icon.js +23 -0
- package/dist/collection/model/Icon.js.map +1 -0
- package/dist/collection/model/Listenable.js +2 -2
- package/dist/collection/model/Listenable.js.map +1 -1
- package/dist/collection/model/Notice.js +1 -1
- package/dist/collection/model/Notice.js.map +1 -1
- package/dist/collection/model/Option.js.map +1 -1
- package/dist/collection/model/index.js +3 -0
- package/dist/collection/model/index.js.map +1 -1
- package/dist/collection/model/redirect.js +8 -0
- package/dist/collection/model/redirect.js.map +1 -0
- package/dist/collection/smoothly.js +3 -0
- package/dist/collection/smoothly.js.map +1 -0
- package/dist/custom-elements/index.d.ts +94 -34
- package/dist/custom-elements/index.js +5359 -16299
- package/dist/custom-elements/index.js.map +1 -1
- package/dist/esm/{Listenable-fb6f4723.js → Data-37e7c0b9.js} +75 -5
- package/dist/esm/Data-37e7c0b9.js.map +1 -0
- package/dist/esm/Observers-5f08e828.js +25 -0
- package/dist/esm/Observers-5f08e828.js.map +1 -0
- package/dist/esm/{getLanguage-cccb8418.js → getLanguage-5233a597.js} +1111 -890
- package/dist/esm/getLanguage-5233a597.js.map +1 -0
- package/dist/esm/{index-7b57a52c.js → index-258984d3.js} +10 -42
- package/dist/esm/index-258984d3.js.map +1 -0
- package/dist/esm/index.js +388 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +5 -4
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/redirect-b0f87e88.js +101 -0
- package/dist/esm/redirect-b0f87e88.js.map +1 -0
- package/dist/esm/smoothly-accordion_70.entry.js +17133 -0
- package/dist/esm/smoothly-accordion_70.entry.js.map +1 -0
- package/dist/esm/smoothly-address-display.entry.js +1 -1
- package/dist/esm/smoothly-address.entry.js +1 -1
- package/dist/esm/smoothly-addresses.entry.js +1 -1
- package/dist/esm/smoothly-color.entry.js +1 -1
- package/dist/esm/smoothly-country.entry.js +9 -9
- package/dist/esm/smoothly-country.entry.js.map +1 -1
- package/dist/esm/smoothly-display-date-time.entry.js +22 -0
- package/dist/esm/smoothly-display-date-time.entry.js.map +1 -0
- package/dist/esm/smoothly-google-font.entry.js +1 -1
- package/dist/esm/smoothly-radio-group.entry.js +1 -1
- package/dist/esm/smoothly-reorder.entry.js +1 -1
- package/dist/esm/smoothly-trigger-sink.entry.js +2 -2
- package/dist/esm/smoothly-trigger-source.entry.js +4 -4
- package/dist/esm/smoothly-trigger-source.entry.js.map +1 -1
- package/dist/esm/smoothly.js +5 -4
- package/dist/esm/smoothly.js.map +1 -1
- package/dist/smoothly/index.esm.js +1 -1
- package/dist/smoothly/index.esm.js.map +1 -1
- package/dist/smoothly/{p-c49d2094.entry.js → p-12182a73.entry.js} +2 -2
- package/dist/smoothly/p-2a0c2387.js +2 -0
- package/dist/smoothly/p-2a0c2387.js.map +1 -0
- package/dist/smoothly/{p-940af6d3.entry.js → p-47151a53.entry.js} +2 -2
- package/dist/smoothly/{p-be2ff772.entry.js → p-4c1bb81e.entry.js} +2 -2
- package/dist/smoothly/p-5e387578.js +3 -0
- package/dist/smoothly/p-5e387578.js.map +1 -0
- package/dist/smoothly/{p-d4182274.entry.js → p-66e9a8b1.entry.js} +2 -2
- package/dist/smoothly/{p-79025273.entry.js → p-6aebb818.entry.js} +2 -2
- package/dist/smoothly/p-6fad95bf.entry.js +2 -0
- package/dist/smoothly/p-6fad95bf.entry.js.map +1 -0
- package/dist/smoothly/{p-e136b93e.entry.js → p-7bf147bf.entry.js} +2 -2
- package/dist/smoothly/{p-5b28795c.entry.js → p-b3eac6af.entry.js} +2 -2
- package/dist/smoothly/p-b9cb0514.js +2 -0
- package/dist/smoothly/p-b9cb0514.js.map +1 -0
- package/dist/smoothly/p-bf63d2e6.entry.js +2 -0
- package/dist/smoothly/p-bf63d2e6.entry.js.map +1 -0
- package/dist/smoothly/p-c833c402.js +2 -0
- package/dist/smoothly/p-c833c402.js.map +1 -0
- package/dist/smoothly/{p-712b362e.entry.js → p-cb493516.entry.js} +2 -2
- package/dist/smoothly/p-d6185f62.entry.js +2 -0
- package/dist/smoothly/p-d6185f62.entry.js.map +1 -0
- package/dist/smoothly/p-ede93d69.js +2 -0
- package/dist/smoothly/p-ede93d69.js.map +1 -0
- package/dist/smoothly/p-eef1c80b.entry.js +2 -0
- package/dist/smoothly/p-eef1c80b.entry.js.map +1 -0
- package/dist/smoothly/smoothly.esm.js +1 -1
- package/dist/smoothly/smoothly.esm.js.map +1 -1
- package/dist/types/components/Button.d.ts +1 -2
- package/dist/types/components/accordion/index.d.ts +1 -1
- package/dist/types/components/accordion-item/index.d.ts +5 -4
- package/dist/types/components/app/index.d.ts +25 -0
- package/dist/types/components/app/room/index.d.ts +25 -0
- package/dist/types/components/app-demo/index.d.ts +2 -0
- package/dist/types/components/backtotop/index.d.ts +1 -1
- package/dist/types/components/burger/index.d.ts +15 -0
- package/dist/types/components/button/index.d.ts +2 -2
- package/dist/types/components/checkbox/index.d.ts +4 -2
- package/dist/types/components/display/index.d.ts +1 -0
- package/dist/types/components/filter/input/index.d.ts +1 -1
- package/dist/types/components/form/index.d.ts +16 -3
- package/dist/types/components/frame/index.d.ts +1 -1
- package/dist/types/components/icon/index.d.ts +4 -9
- package/dist/types/components/input/Changeable.d.ts +7 -0
- package/dist/types/components/input/Input.d.ts +10 -0
- package/dist/types/components/input/Looks.d.ts +1 -0
- package/dist/types/components/input/Submittable.d.ts +6 -0
- package/dist/types/components/input/clear/index.d.ts +17 -0
- package/dist/types/components/input/date/index.d.ts +28 -0
- package/dist/types/components/input/date/range/index.d.ts +33 -0
- package/dist/types/components/input/demo/index.d.ts +8 -0
- package/dist/types/components/input/file/index.d.ts +24 -0
- package/dist/types/components/input/index.d.ts +17 -4
- package/dist/types/components/{input-month → input/month}/index.d.ts +1 -1
- package/dist/types/components/{selector → input/select}/index.d.ts +15 -3
- package/dist/types/components/notification/index.d.ts +3 -1
- package/dist/types/components/picker/demo/index.d.ts +18 -0
- package/dist/types/components/picker/index.d.ts +33 -45
- package/dist/types/components/picker/menu/index.d.ts +53 -0
- package/dist/types/components/picker/option/index.d.ts +23 -0
- package/dist/types/components/picker/slot-elements/index.d.ts +15 -0
- package/dist/types/components/picker/slotted-elements/index.d.ts +8 -0
- package/dist/types/components/radio/index.d.ts +1 -1
- package/dist/types/components/radio-button/index.d.ts +3 -5
- package/dist/types/components/select-demo/index.d.ts +0 -9
- package/dist/types/components/submit/index.d.ts +6 -1
- package/dist/types/components/summary/index.d.ts +4 -0
- package/dist/types/components/table/demo/filtered/index.d.ts +1 -1
- package/dist/types/components/table/expandable/cell/index.d.ts +4 -4
- package/dist/types/components/table/expandable/row/index.d.ts +3 -7
- package/dist/types/components/table/footer/index.d.ts +3 -0
- package/dist/types/components/table/index.d.ts +6 -3
- package/dist/types/components/table/row/index.d.ts +3 -1
- package/dist/types/components/table/testing/data.d.ts +5 -0
- package/dist/types/components/table/testing/index.d.ts +4 -0
- package/dist/types/components/theme/color/index.d.ts +5 -0
- package/dist/types/components/theme/color/variant/index.d.ts +6 -0
- package/dist/types/components/theme/colors/index.d.ts +3 -0
- package/dist/types/components/toggle-switch/index.d.ts +7 -2
- package/dist/types/components/trigger-source/index.d.ts +1 -1
- package/dist/types/components.d.ts +490 -226
- package/dist/types/global/Observers.d.ts +8 -0
- package/dist/types/global/index.d.ts +4 -0
- package/dist/types/index.d.ts +1 -4
- package/dist/types/model/Icon.d.ts +8 -0
- package/dist/types/model/Notice.d.ts +1 -1
- package/dist/types/model/Option.d.ts +24 -6
- package/dist/types/model/index.d.ts +4 -1
- package/dist/types/model/redirect.d.ts +1 -0
- package/dist/types/smoothly.d.ts +3 -0
- package/package.json +16 -16
- package/dist/cjs/Listenable-63ea2d90.js.map +0 -1
- package/dist/cjs/getLanguage-430ecf04.js.map +0 -1
- package/dist/cjs/index-8352a4e0.js.map +0 -1
- package/dist/cjs/index-b282ee83.js +0 -865
- package/dist/cjs/index-b282ee83.js.map +0 -1
- package/dist/cjs/smoothly-accordion_61.cjs.entry.js +0 -28113
- package/dist/cjs/smoothly-accordion_61.cjs.entry.js.map +0 -1
- package/dist/collection/components/App.js +0 -71
- package/dist/collection/components/App.js.map +0 -1
- package/dist/collection/components/form/Clearable.js.map +0 -1
- package/dist/collection/components/form/Data.js.map +0 -1
- package/dist/collection/components/input-date/index.js.map +0 -1
- package/dist/collection/components/input-date/style.css +0 -39
- package/dist/collection/components/input-date-range/index.js.map +0 -1
- package/dist/collection/components/input-date-range/style.css +0 -51
- package/dist/collection/components/input-demo/index.js +0 -45
- package/dist/collection/components/input-demo/index.js.map +0 -1
- package/dist/collection/components/input-month/index.js.map +0 -1
- package/dist/collection/components/menu-options/index.js +0 -413
- package/dist/collection/components/menu-options/index.js.map +0 -1
- package/dist/collection/components/menu-options/style.css +0 -18
- package/dist/collection/components/option/index.js +0 -270
- package/dist/collection/components/option/index.js.map +0 -1
- package/dist/collection/components/option/style.css +0 -42
- package/dist/collection/components/room/index.js +0 -90
- package/dist/collection/components/room/index.js.map +0 -1
- package/dist/collection/components/select/index.js +0 -108
- package/dist/collection/components/select/index.js.map +0 -1
- package/dist/collection/components/select/style.css +0 -20
- package/dist/collection/components/selector/index.js.map +0 -1
- package/dist/collection/components/selector/style.css +0 -46
- package/dist/esm/Listenable-fb6f4723.js.map +0 -1
- package/dist/esm/getLanguage-cccb8418.js.map +0 -1
- package/dist/esm/index-2e948fc3.js +0 -861
- package/dist/esm/index-2e948fc3.js.map +0 -1
- package/dist/esm/index-7b57a52c.js.map +0 -1
- package/dist/esm/smoothly-accordion_61.entry.js +0 -28049
- package/dist/esm/smoothly-accordion_61.entry.js.map +0 -1
- package/dist/smoothly/p-06337b89.js +0 -2
- package/dist/smoothly/p-06337b89.js.map +0 -1
- package/dist/smoothly/p-21341e18.entry.js +0 -2
- package/dist/smoothly/p-21341e18.entry.js.map +0 -1
- package/dist/smoothly/p-5b6351f6.js +0 -2
- package/dist/smoothly/p-5b6351f6.js.map +0 -1
- package/dist/smoothly/p-70280a11.js +0 -2
- package/dist/smoothly/p-70280a11.js.map +0 -1
- package/dist/smoothly/p-b49664d8.entry.js +0 -2
- package/dist/smoothly/p-b49664d8.entry.js.map +0 -1
- package/dist/smoothly/p-b82efb2e.entry.js +0 -2
- package/dist/smoothly/p-b82efb2e.entry.js.map +0 -1
- package/dist/smoothly/p-c88ae468.js +0 -3
- package/dist/smoothly/p-c88ae468.js.map +0 -1
- package/dist/types/components/App.d.ts +0 -5
- package/dist/types/components/input-date/index.d.ts +0 -14
- package/dist/types/components/input-date-range/index.d.ts +0 -23
- package/dist/types/components/input-demo/index.d.ts +0 -3
- package/dist/types/components/menu-options/index.d.ts +0 -35
- package/dist/types/components/option/index.d.ts +0 -32
- package/dist/types/components/room/index.d.ts +0 -7
- package/dist/types/components/select/index.d.ts +0 -14
- /package/dist/collection/components/{form → input}/Clearable.js +0 -0
- /package/dist/collection/components/{input-month → input/month}/style.css +0 -0
- /package/dist/collection/{components/form → model}/Data.js +0 -0
- /package/dist/smoothly/{p-c49d2094.entry.js.map → p-12182a73.entry.js.map} +0 -0
- /package/dist/smoothly/{p-940af6d3.entry.js.map → p-47151a53.entry.js.map} +0 -0
- /package/dist/smoothly/{p-be2ff772.entry.js.map → p-4c1bb81e.entry.js.map} +0 -0
- /package/dist/smoothly/{p-d4182274.entry.js.map → p-66e9a8b1.entry.js.map} +0 -0
- /package/dist/smoothly/{p-79025273.entry.js.map → p-6aebb818.entry.js.map} +0 -0
- /package/dist/smoothly/{p-e136b93e.entry.js.map → p-7bf147bf.entry.js.map} +0 -0
- /package/dist/smoothly/{p-5b28795c.entry.js.map → p-b3eac6af.entry.js.map} +0 -0
- /package/dist/smoothly/{p-712b362e.entry.js.map → p-cb493516.entry.js.map} +0 -0
- /package/dist/types/components/{form → input}/Clearable.d.ts +0 -0
- /package/dist/types/{components/form → model}/Data.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Observers","styleCss","SmoothlyAccordion","this","items","valueChanged","value","updateItems","handleOpenClose","event","detail","open","name","undefined","onAccordionItemDidLoad","ev","item","target","push","componentDidLoad","hasChecked","async","el","index","indexOf","splice","render","h","SmoothlyAccordionItem","openChanged","isChecked","smoothlyOpen","emit","componentWillLoad","summary","element","getElementsByTagName","length","onClick","e","smoothlyClose","preventDefault","addEventListener","smoothlyAccordionItemWillLoad","parent","disconnectedCallback","_a","removeItem","xmlns","viewBox","d","brand","class","toLowerCase","Array","isArray","map","b","disabled","SmoothlyApp","rooms","selectRoom","path","setSelected","Object","values","forEach","room","selected","content","getContent","mainElement","innerHTML","appendChild","burgerVisibilityHandler","burgerVisibility","burgerStatusHandler","stopPropagation","menuOpen","state","smoothlyPath","history","roomSelectedHandler","toString","location","URL","window","pathname","href","origin","pushState","roomLoadedHandler","replaceState","clickHandler","composedPath","some","burgerElement","navElement","color","label","ref","onNavStatus","onVisibleStatus","SmoothlyAppDemo","app","slot","type","toolTip","size","link","style","padding","maxWidth","fill","alert","icon","to","componentDidRender","regexIdentifierStart","regexIdentifierPart","isASCII","str","extended","test","lexer","lenient","tokens","i","char","ErrorOrInvalid","msg","TypeError","j","code","substr","count","pattern","error","parse","options","prefixes","defaultPattern","escapeString","delimiter","result","key","nameSet","Set","tryConsume","tryConsumeModifier","r","mustConsume","nextType","consumeText","result2","DefaultEncodePart","encodePart","prefix","finalName","has","add","suffix","modifier","name2","pattern2","replace","flags","ignoreCase","regexpToRegexp","keys","groupsRegex","execResult","exec","source","arrayToRegexp","paths","parts","pathToRegexp","RegExp","join","stringToRegexp","tokensToRegexp","strict","start","end","encode","x","endsWith","route","token","mod","endToken","isEndDelimited","DEFAULT_OPTIONS","sensitive","HOSTNAME_OPTIONS","PATHNAME_OPTIONS","isAbsolutePathname","isPattern","maybeStripPrefix","startsWith","substring","maybeStripSuffix","treatAsIPv6Hostname","SPECIAL_SCHEMES","isSpecialScheme","protocol_regexp","scheme","canonicalizeHash","hash","url","canonicalizeSearch","search","canonicalizeHostname","hostname","ipv6HostnameEncodeCallback","hostnameEncodeCallback","canonicalizePassword","password","canonicalizeUsername","username","canonicalizePathname","protocol","includes","leadingSlash","canonicalizePort","port","defaultPortForProtocol","portEncodeCallback","canonicalizeProtocol","protocolEncodeCallback","input","usernameEncodeCallback","passwordEncodeCallback","parseInt","standardURLPathnameEncodeCallback","pathURLPathnameEncodeCallback","searchEncodeCallback","hashEncodeCallback","Parser","constructor","tokenList","internalResult","tokenIndex","tokenIncrement","componentStart","groupDepth","hostnameIPv6BracketDepth","shouldTreatAsStandardURL","rewind","isHashPrefix","changeState","isSearchPrefix","rewindAndSetState","isGroupClose","isGroupOpen","isProtocolSuffix","computeShouldTreatAsStandardURL","nextState","skip","nextIsAuthoritySlashes","isIdentityTerminator","isPathnameStart","isPasswordPrefix","isIPv6Open","isIPv6Close","isPortPrefix","newState","makeComponentString","changeStateWithoutSettingComponent","safeToken","isNonSpecialPatternChar","previousToken","componentCharStart","assign","regexp","COMPONENTS","DEFAULT_PATTERN","extractValues","baseURL","o","processBaseURLString","escapePatternString","applyInit","init","slashIndex","lastIndexOf","escapeRegexpString","tokensToPattern","wildcardPattern","segmentWildcardPattern","regexIdentifierPart2","lastToken","nextToken","customName","optionsPrefixes","needsGrouping","URLPattern","baseURLOrOptions","component_pattern","parser","ignoreCaseOptions","defaults","component","options2","err","message","inputs","match","groups","entries","globalThis","SmoothlyAppRoom","smoothlyRoomLoaded","contentElement","smoothlyRoomSelected","metaKey","ctrlKey","which","button","Host","SmoothlyBackToTop","visible","document","body","scrollTop","documentElement","cssVariables","opacity","bottom","right","scrollTo","top","left","behavior","SmoothlyBurger","matchMedia","mediaQuery","matches","navStatus","visibleStatus","resizeHandler","Button","local","redirect","convert","download","SmoothlyButton","SmoothlyButtonDemo","checkmark","onSmoothlyToggleSwitchChange","console","log","shape","expand","month","date","Date","setDate","day","getDay","row","column","setUTCDate","isoly.Date","create","firstOfMonth","weekdays","getDate","toLocaleString","weekday","months","current","setMonth","years","getFullYear","setFullYear","year","Calendar","clickCounter","now","onStart","next","startChanged","onEnd","endChanged","doubleInput","frozenDate","dateSet","dateRangeSet","onHover","onValueChanged","generate.weekdays","generate.month","_b","week","tabindex","onMouseOver","min","max","concat","_c","translations","language","translation","argument","fallback","isoly.Language","is","getLanguage","reduce","a","sv","Select","Deselect","langly.create","SmoothlyCheckbox","t","translation.create","checked","intermediate","smoothlyInput","toggle","htmlFor","SmoothlyDialog","TriggerListener","Trigger","hostData","display","__stencil_render","closable","header","SmoothlyDialogDemo","height","getForwardWordBreakIndex","wordRegex","lastIndex","getBackwardWordBreakIndex","execArray","getAdjecentWordBreakIndex","direction","Selection","getCursor","selection","getStalker","State","copy","StateEditor","get","character","c","isDigit","matcher","s","slice","Math","insert","append","prepend","delete","truncate","pad","padEnd","padStart","mapping","replacement","static","Action","apply","formatter","action","unformat","autocomplete","select","ctrlArrow","ctrlBackspaceDelete","arrowHomeEnd","erase","allowed","format","paste","pasted","cursorPosition","stalkPosition","shiftKey","adjecentIndex","from","insertString","handlers","data","handler","modify","fromString","Handler","unformatted","formatted","symbol","Number","issuer","getIssuer","verification","classes","defaultIssuer","issuers","prototype","hasOwnProperty","call","identification","amex","dankort","diners","discover","electron","interpayment","jcb","unionpay","maestro","mastercard","visa","CallingCode","country","alpha2toCallingCode","callingCode","callingCodetoAlpha2","seperate","phoneNumber","AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RO","RU","RW","RE","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SK","SI","SB","SO","ZA","SS","GS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UY","UZ","VU","VE","VN","VG","VI","WF","YE","ZM","ZW","Alpha2","types","numericToAlpha2","alpha3ToAlpha2","isEEA","eea","AFG","ALA","ALB","DZA","ASM","AND","AGO","AIA","ATA","ATG","ARG","ARM","ABW","AUS","AUT","AZE","BHS","BHR","BGD","BRB","BLR","BEL","BLZ","BEN","BMU","BTN","BOL","BES","BIH","BWA","BVT","BRA","IOT","BRN","BGR","BFA","BDI","CPV","KHM","CMR","CAN","CYM","CAF","TCD","CHL","CHN","CXR","CCK","COL","COM","COG","COD","COK","CRI","CIV","HRV","CUB","CUW","CYP","CZE","DNK","DJI","DMA","DOM","ECU","EGY","SLV","GNQ","ERI","EST","SWZ","ETH","FLK","FRO","FJI","FIN","FRA","GUF","PYF","ATF","GAB","GMB","GEO","DEU","GHA","GIB","GRC","GRL","GRD","GLP","GUM","GTM","GGY","GIN","GNB","GUY","HTI","HMD","VAT","HND","HKG","HUN","ISL","IND","IDN","IRN","IRQ","IRL","IMN","ISR","ITA","JAM","JPN","JEY","JOR","KAZ","KEN","KIR","PRK","KOR","KWT","KGZ","LAO","LVA","LBN","LSO","LBR","LBY","LIE","LTU","LUX","MAC","MDG","MWI","MYS","MDV","MLI","MLT","MHL","MTQ","MRT","MUS","MYT","MEX","FSM","MDA","MCO","MNG","MNE","MSR","MAR","MOZ","MMR","NAM","NRU","NPL","NLD","NCL","NZL","NIC","NER","NGA","NIU","NFK","MKD","MNP","NOR","OMN","PAK","PLW","PSE","PAN","PNG","PRY","PER","PHL","PCN","POL","PRT","PRI","QAT","REU","ROU","RUS","RWA","BLM","SHN","KNA","LCA","MAF","SPM","VCT","WSM","SMR","STP","SAU","SEN","SRB","SYC","SLE","SGP","SXM","SVK","SVN","SLB","SOM","ZAF","SGS","SSD","ESP","LKA","SDN","SUR","SJM","SWE","CHE","SYR","TWN","TJK","TZA","THA","TLS","TGO","TKL","TON","TTO","TUN","TUR","TKM","TCA","TUV","UGA","UKR","ARE","GBR","USA","UMI","URY","UZB","VUT","VEN","VNM","VGB","VIR","WLF","ESH","YEM","ZMB","ZWE","XKX","Alpha3","alpha2ToAlpha3","BV","CW","TF","HM","SX","UM","EH","XK","Numeric","isInteger","alpha2ToNumeric","currencies","Currency","currency","currencyCode","round","decimalDigits","factor","pow","decimals","split","EPSILON","value1","value2","divide","amount","denominator","multiply","multiplicand","outputCurrency","subtract","minuend","subtrahend","toMinor","fromMinor","isRounded","isNaN","AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BWP","BYN","BZD","CAD","CDF","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UYW","UZS","VES","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","XXX","YER","ZAR","ZMW","ZWL","CurrencyCode","time","toISOString","localize","locale","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","replaceAll","days","nextYear","nextMonth","previous","previousYear","previousMonth","getMonth","firstOfYear","lastOfYear","lastOfMonth","firstOfWeek","relativeDay","lastOfWeek","getYear","getWeek","parsed","setHours","week1","getTime","getWeekDay","toLocaleDateString","nextWeekday","holidays","holidaySet","span","relative","epochStart","epochEnd","invert","toFixed","DateRange","toDates","includeLast","getDays","ceil","DateSpan","TimeZoneOffset","DateTime","isHours","v","isMinutes","isSeconds","every","resolution","fixIncorrect","fromLocalDateTime","localDateTime","utcDateTime","localDate","diffInMinutes","offsetHours","floor","abs","offsetMinutes","timeZoneString","formatOrLocale","localeOrTimeZone","localeString","precision","hour","minute","second","timeZoneOffset","timeZoneShort","getTimezoneOffset","zone","epoch","nextSecond","nextDay","hours","nextHour","minutes","nextMinute","seconds","milliseconds","nextMillisecond","previousSecond","previousDay","previousHour","previousMinute","previousMillisecond","setMilliseconds","getMilliseconds","setSeconds","getSeconds","setMinutes","getMinutes","getHours","offset","getHour","getMinute","getSecond","getMillisecond","greatestUnit","sign","Transcoder","Iso88591","Uint8Array","utf8ToIso88591","decode","buffer","byteOffset","byteLength","iso88591ToUtf8","$","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","_","f","g","k","l","m","n","p","q","u","w","y","z","Utf8","unescape","encodeURIComponent","charCodeAt","decodeURIComponent","escape","String","fromCharCode","Encoding","toUpperCase","encoding","transcoders","Language","toName","ab","aa","af","ak","sq","am","ar","an","hy","as","av","ae","ay","az","bm","ba","eu","be","bn","bh","bi","bs","br","bg","my","ca","ch","ce","ny","zh","cv","kw","co","cr","hr","cs","da","dv","nl","dz","en","eo","et","ee","fo","fj","fi","fr","ff","gl","ka","de","gn","gu","ht","ha","he","hz","hi","ho","hu","ia","id","ie","ga","ig","ik","io","it","iu","ja","jv","kl","kn","kr","ks","kk","km","ki","rw","ky","kv","kg","ko","ku","kj","la","lb","lg","li","ln","lo","lt","lu","lv","gv","mk","mg","ms","ml","mt","mi","mr","mh","mn","na","nv","nd","ne","ng","nb","nn","no","ii","nr","oc","oj","cu","om","or","os","pa","pi","fa","pl","ps","pt","qu","rm","rn","ro","ru","sa","sc","sd","se","sm","sg","sr","gd","sn","si","sk","sl","so","st","es","su","sw","ss","ta","te","tg","th","ti","bo","tk","tl","tn","tr","ts","tt","tw","ty","ug","uk","ur","uz","ve","vi","vo","wa","cy","wo","fy","xh","yi","yo","za","zu","toNativeName","Locale","toLanguage","shift","toAlpha2","pop","toLocale","alpha2","TimeRange","TimeSpan","toHours","dateToMilliseconds","performRound","toMinutes","toSeconds","toMilliseconds","UTC","future","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","valueOf","TimeZone","DateFormat","fromLocale","Base","separator","validMonth","register","parameters","super","daysInMonth","fillerDate","isoly.DateTime","formatDate","validDate","daysPerMonth","decimal","splitted","isFinite","splittedString","nextValue","parseFloat","phonePrefix","countryCode","areaCodes","first","digitIndex","digitCount","spaces","position","adjust","isoly.Currency","repeat","charAt","settings","SmoothlyDisplay","getLocale","unit","navigator","SmoothlyDisplayAmount","digitsPerGroup","defaultDecimals","maxDecimals","beforeSeparator","toInteger","SmoothlyDisplayDemo","noticeWarning","notice","period","distance","width","align","justifyContent","whiteSpace","Notice","warn","succeeded","failed","execute","Promise","resolve","setTimeout","delay","active","gap","defineProperty","exports","setFallback","Rule","filter","stringify","precedence","creators","criteria","always","Always","Rule_1","MAX_SAFE_INTEGER","any","Any","getOwnPropertyNames","property","and","And","rules","generalize","Any_1","criterias","isCriteria","Criteria","recursive","Level","Message","description","level","Level_1","Recoverable","region","ConsoleHandler","raise","Message_1","Position","line","Location","Position_1","resource","Region","merge","other","ConsoleHandler_1","Location_1","Region_1","User","isEmpty","Endpoint","host","Authority","user","User_1","endpoint","Endpoint_1","Locator","authority","Authority_1","query","fragment","isRelative","isFolder","folder","extension","createArray","normalize","reverse","absolute","appendPath","hasAuthority","unshift","empty","Locator_1","Device","InDevice","Device_1","Reader","InDevice_1","priority","openers","sort","locator","Reader_2","Reader_1","BufferedReader","backend","lastContent","lastMark","locationValue","tabSize","readable","opened","Uri","Error","close","peek","read","peekIs","readIf","readAll","mark","__awaiter","thisArg","_arguments","generator","adopt","reject","fulfilled","step","rejected","done","then","fd","fsync","mode","write","bytesWritten","lstatSync","isDirectory","readdirSync","readFileSync","sep","StringReader","lastPosition","FileReader","StringReader_1","fs","addOpener","FolderReader","files","tabSizeValue","lastLocation","FileReader_1","filetype","ignoreFiles","file","filename","getFiles","generate","isIterator","Function","Enumerator","iterator","last","fetch","toArray","isIterable","Symbol","Enumerable","getEnumerator","Enumerator_1","ArrayEnumerator","BufferedEnumerator","paddingCharacter","padLeft","Enumerable_1","ArrayEnumerator_1","BufferedEnumerator_1","String_1","OutDevice","Writer","OutDevice_1","arguments","newLineSymbol","Utilities_1","writeImplementation","writeLine","Indenter","Writer_1","autoFlush","indentionSymbol","indentionCount","indentNext","writable","flush","increase","decrease","getIndention","all","PrefixReader","BufferedReader_1","FileWriter","descriptor","Buffer","TillReader","endMark","UntilReader","peeked","FolderReader_1","Indenter_1","PrefixReader_1","FileWriter_1","TillReader_1","UntilReader_1","Utilities","Source","mend_1","reader","errorHandler","Critical","requirePrefix","till","until","peekIsSymbol","symbols","peekIsWhitespace","tokenize","enumerable","Source_1","peekSymbolLength","lexer_1","Base_1","array","complete","baseObject","completor","flatMap","cursor","isType","global","Cursor","Completion","completions","completion","Cursor_1","suggestion","Boolean","literals","Completion_1","Completor","functions","_d","string","expressions","operators","completorArgument","TObject","properties","filtered","filterByType","matched","found","addDot","wildcard","find","partial","_e","_f","Union","Type","template","full","addon","Array_1","Object_1","Number_1","Boolean_1","Union_1","Completor_1","EndsWith","needle","Type_1","Every","arrayArgumentor","FunctionCall","identifier","definition","Expression","Value","Expression_1","evaluate","variable","greaterThan","GreaterThan","object","Value_1","greaterThanOrEqual","GreaterThanOrEqual","Has","Includes","Some","Is","Criteria_1","Some_1","lesserThan","LesserThan","lesserThanOrEqual","LesserThanOrEqual","Match","not","Not","Or","addArgument","clone","nestingCount","needles","fetchIf","operator","comparator","binaryOperator","parseNext","Or_1","And_1","precedenceTest","parsers","addExpression","parseNextExpression","parseExpression","algebra","NaN","expressionParser","expressionParsers","parse_1","Every_1","getAdder","GreaterThan_1","GreaterThanOrEqual_1","LesserThan_1","LesserThanOrEqual_1","Not_1","fetched","Has_1","within","Within","Within_1","FunctionCall_1","Property","reduceRight","Property_1","Includes_1","StartsWith","StartsWith_1","EndsWith_1","InfixOperator","getPrecedence","getSymbol","nextPrecedence","InfixOperator_1","fetchedArray","fetchedValue","expression","Is_1","definitions","rule","resolvers","className","resolver","resolve_1","parameter","replace_1","definitionRule","Tuple","Match_1","Tuple_1","selectively","require$$1","Clearable","clear","SmoothlyFilter","Map","filterHandler","set","freeSearchValue","filters","selectively.and","selectively.any","selectively.includes","onKeyDown","freeSearchElement","inputValue","looks","selectivelyCreate","placeholder","expanded","hidden","SmoothlyFilterInput","POSITIVE_INFINITY","onFilter","comparison","selectively.lesserThan","selectively.greaterThan","selectively.startsWith","selectively.endsWith","previousValue","currentValue","onSmoothlyInput","Method","contentType","request","headers","text","serializers","serializer","serialize","fields","Header","isString","isStringArray","field","fromEntries","camelCase","CamelCase.from","isHeaders","trim","CamelCase.to","Request","method","remote","RequestHeader","Serializer.serialize","searchParams","Parser.parse","cloudflare","cf","PlatformResponse","Response","__classPrivateFieldGet","receiver","kind","__classPrivateFieldSet","_Socket_instances","_Socket_receiveQueue","_Socket_sendQueue","_Socket_closed","_Socket_backend","_Socket_onMessage","_Socket_onClose","_Socket_handleOpen","_Socket_onOpen","Socket","onMessage","onClose","onOpen","isOpen","bind","processReceived","send","processSend","WeakMap","WeakSet","ArrayBuffer","arrayBuffer","TextEncoder","Json","JSON","TextDecoder","_Factory_json","_Factory_string","_Factory_arrayBuffer","Factory","json","SocketJson","SocketString","SocketArrayBuffer","createResponse","status","socket","reason","SocketFactory","getEntries","Like","ResponseHeader","WebSocket","Platform.Response","Headers","webSocket","response","ResponseLike","isView","FormData","isPdf","bytes","Blob","toHelperObject","form","toHelperArray","head","tail","sources","isObject","convertArrays","entry","Parser.add","formData","Search.parse","Serializer.add","Search.stringify","SmoothlyForm","clearables","listeners","listen","listener","watchValue","changed","smoothlyInputLooksHandler","smoothlyFormInput","Data","clearable","processing","submit","smoothlyFormSubmit","http.fetch","http.Search.stringify","onSubmit","prevent","SmoothlyFrame","contentWindow","iframe","firstElementChild","defaultOrigin","destination","trigger","message2","SmoothlyIcon","Icon","load","loadDocument","SmoothlyIconDemo","hostRef","page","SmoothlyInput","keepFocusOnReRender","typeChange","valueWatcher","before","lastValue","onCurrency","smoothlyInputLooks","inputElement","focus","forms","namedItem","elements","hasNameAndValue","smoothlyInputs","keepFocus","after","updateBackend","onBlur","smoothlyBlur","initialValue","smoothlyChange","onFocus","selectionStart","selectionEnd","selectionDirection","processKey","onPaste","clipboardData","getData","expiresAutocompleteFix","letter","onInput","inputType","attributes","getNamedItem","readonly","onclick","required","readOnly","_g","Changeable","SmoothlyInputClear","smoothlyInputLoad","InputDate","smoothlyInputHandler","dateSetHandler","showLabel","InputDateRange","onValue","onStartChanged","onEndChanged","onDateRangeSet","isoly.DateRange","labelStart","labelEnd","SmoothlyInputDemo","handleSelectionChanged","duration","onSmoothlyFormSubmit","onSmoothlyBlur","onSmoothlyChange","deselectable","decoration","yes","showSelected","initialPrompt","selectElement","reset","camera","SmoothlyInputFile","transfer","DataTransfer","dragging","onDragOver","onDragEnter","click","onDrop","dataTransfer","onDragLeave","capture","accept","onChange","MonthSelector","adjustMonth","delta","onSelected","generate.years","generate.months","SmoothlyInputSelect","selectedElement","onSelectedChange","old","missing","onItemSelected","onClosed","marked","move","markedIndex","findIndex","tabIndex","aside","children","querySelectorAll","node","isItem","Item","onSelectedChanged","itemSelected","innerText","Notification","remove","tick","onTrigger","onUpdatedNotice","newValue","oldValue","unlisten","Notifier","onNotice","notices","onRemove","SmoothlyPicker","selectedChanged","option","controls","synced","multiple","at","createElement","slotted","cloneNode","smoothlyPickerLoaded","__rest$1","menuLoadedHandler","optionLoadedHandler","optionChangeHandler","focusHandler","nodes","mutable","validator","validateEmail","email","SmoothlyPickerDemo","users","emails","inputHandler","change","submitHandler","remember","restore","loadedHandler","counter","onSmoothlyFormInput","onSmoothlyPickerLoaded","flat","chain","iterables","iterable","restoreListener","SmoothlyPickerMenu","threshold","IntersectionObserver","intersectionRatio","flipChecked","flip","sync","smoothlyPickerMenuLoaded","memory","created","parentElement","disconnect","openChange","observer","observe","unobserve","readonlyChanged","scrollHandler","optionLoadHandler","listElement","valid","toLocaleLowerCase","searches","addHandler","validation","searchElement","keyDownHandler","emptyDisplayHandler","onSmoothlySlottedChange","SmoothlyPickerOption","emitChange","smoothlyPickerOptionChange","smoothlyPickerOptionLoad","__rest","smoothlyPickerOptionLoaded","slottedChangeHandler","part","SmoothlyPopup","setProperty","getBoundingClientRect","innerWidth","removeProperty","popup","SmoothlyQuiet","SmoothlyRadio","smoothlySelected","tab","SmoothlyRadioButton","radioSelectHandler","SmoothlyRadioButtonItem","radioItemSelectInternal","SmoothlySelectDemo","SmoothlySkeleton","widths","random","SmoothlySlotElements","smoothlySlotEmpty","SmoothlySottedElement","childNodes","child","HTMLSlotElement","assigned","assignedNodes","smoothlySlottedChange","SmoothlySpinner","strokeWidth","cx","Submittable","SmoothlySubmit","SmoothlySummary","toggleHandler","HTMLDetailsElement","smoothlySummaryOpen","onToggle","SmoothlySvg","defaultSizes","large","medium","small","tiny","SmoothlyTab","expansionElement","expansionOpen","SmoothlyTabSwitch","Table","expandable","smoothlyNestedTable","root","smoothlyTableLoad","owner","handleExpandableLoaded","handleExpandableState","smoothlySpotlightChange","allowSpotlight","handleSpotlightState","handleNestedTable","handleEvents","TableCell","TableDemo","Selector","_Selector_selected","handle","TableDemoFiltered","onFilterUpdate","selector","selectively.filter","cat","breed","coat","TableExpandableCell","beginOpen","smoothlyExpandableChange","handleSpotlight","spotlight","smoothlyExpansionLoad","smoothlyExpandableLoad","smoothlyExpansionOpen","handleTableLoaded","textAlign","colSpan","TableExpandableRow","hide","TableFooter","TableHeader","TableRow","expansions","onExpansionLoad","onExpansionChange","expansion","onExpansionOpen","cell","age","SmoothlyTableTesting","animal","SmoothlyThemeColor","variant","SmoothlyThemeColorVariant","SmoothlyThemeColors","SmoothlyToggle","SmoothlyToggleSwitch","handleClick","smoothlyToggleSwitchChange","SmoothlyTrigger","SmoothlyTuple","tuple","Urlencoded"],"sources":["./src/global/index.ts","./src/components/accordion/style.css?tag=smoothly-accordion&encapsulation=scoped","./src/components/accordion/index.tsx","./src/components/accordion-item/style.css?tag=smoothly-accordion-item&encapsulation=scoped","./src/components/accordion-item/index.tsx","./src/components/app/style.css?tag=smoothly-app","./src/components/app/index.tsx","./src/components/app-demo/index.tsx","./node_modules/urlpattern-polyfill/dist/urlpattern.js","./node_modules/urlpattern-polyfill/index.js","./src/components/app/room/style.css?tag=smoothly-app-room&encapsulation=scoped","./src/components/app/room/index.tsx","./src/components/backtotop/style.scss?tag=smoothly-back-to-top&encapsulation=scoped","./src/components/backtotop/index.tsx","./src/components/burger/style.css?tag=smoothly-burger&encapsulation=scoped","./src/components/burger/index.tsx","./src/components/Button.tsx","./src/components/button/style.css?tag=smoothly-button&encapsulation=scoped","./src/components/button/index.tsx","./src/components/button-demo/style.css?tag=smoothly-button-demo","./src/components/button-demo/index.tsx","./src/components/calendar/generate.ts","./src/components/calendar/style.css?tag=smoothly-calendar&encapsulation=scoped","./src/components/calendar/index.tsx","./node_modules/langly/dist/create.js","./src/components/checkbox/translation/sv.ts","./src/components/checkbox/translation/index.ts","./src/components/checkbox/style.css?tag=smoothly-checkbox&encapsulation=scoped","./src/components/checkbox/index.tsx","./src/components/dialog/style.css?tag=smoothly-dialog&encapsulation=scoped","./src/components/dialog/index.tsx","./src/components/dialog-demo/index.tsx","./node_modules/tidily/dist/mjs/getAdjecentWordBreakIndex.js","./node_modules/tidily/dist/mjs/Selection.js","./node_modules/tidily/dist/mjs/State.js","./node_modules/tidily/dist/mjs/StateEditor.js","./node_modules/tidily/dist/mjs/Action.js","./node_modules/tidily/dist/mjs/Handler/base.js","./node_modules/tidily/dist/mjs/Handler/card-csc.js","./node_modules/tidily/dist/mjs/Handler/card-expires.js","./node_modules/tidily/dist/mjs/Handler/card-number.js","./node_modules/tidily/node_modules/isoly/dist/mjs/CallingCode.js","./node_modules/tidily/node_modules/isoly/dist/mjs/CountryCode/Alpha2.js","./node_modules/tidily/node_modules/isoly/dist/mjs/CountryCode/Alpha3.js","./node_modules/tidily/node_modules/isoly/dist/mjs/CountryCode/Numeric.js","./node_modules/tidily/node_modules/isoly/dist/mjs/Currency.js","./node_modules/tidily/node_modules/isoly/dist/mjs/CurrencyCode.js","./node_modules/tidily/node_modules/isoly/dist/mjs/Date.js","./node_modules/tidily/node_modules/isoly/dist/mjs/DateRange.js","./node_modules/tidily/node_modules/isoly/dist/mjs/DateSpan.js","./node_modules/tidily/node_modules/isoly/dist/mjs/TimeZoneOffset.js","./node_modules/tidily/node_modules/isoly/dist/mjs/DateTime.js","./node_modules/tidily/node_modules/isoly/dist/mjs/Encoding/Transcoder.js","./node_modules/tidily/node_modules/isoly/dist/mjs/Encoding/Iso88591.js","./node_modules/tidily/node_modules/isoly/dist/mjs/Encoding/Utf8.js","./node_modules/tidily/node_modules/isoly/dist/mjs/Encoding/index.js","./node_modules/tidily/node_modules/isoly/dist/mjs/Language.js","./node_modules/tidily/node_modules/isoly/dist/mjs/Locale.js","./node_modules/tidily/node_modules/isoly/dist/mjs/TimeRange.js","./node_modules/tidily/node_modules/isoly/dist/mjs/TimeSpan.js","./node_modules/tidily/node_modules/isoly/dist/mjs/TimeZone.js","./node_modules/tidily/dist/mjs/DateFormat.js","./node_modules/tidily/dist/mjs/Handler/date/Base.js","./node_modules/tidily/dist/mjs/Handler/date/dmy.js","./node_modules/tidily/dist/mjs/Handler/date/mdy.js","./node_modules/tidily/dist/mjs/Handler/date/ymd.js","./node_modules/tidily/dist/mjs/Handler/date-time.js","./node_modules/tidily/dist/mjs/Handler/divisor.js","./node_modules/tidily/dist/mjs/Handler/duration.js","./node_modules/tidily/dist/mjs/Handler/identity-number.js","./node_modules/tidily/dist/mjs/Handler/password.js","./node_modules/tidily/dist/mjs/Handler/percent.js","./node_modules/tidily/dist/mjs/Handler/phonePrefix.js","./node_modules/tidily/dist/mjs/Handler/phone.js","./node_modules/tidily/dist/mjs/Handler/postal-code.js","./node_modules/tidily/dist/mjs/Handler/price.js","./node_modules/tidily/dist/mjs/Handler/text.js","./src/components/display/style.css?tag=smoothly-display&encapsulation=scoped","./src/components/display/index.tsx","./src/components/display-amount/style.css?tag=smoothly-display-amount&encapsulation=scoped","./src/components/display-amount/index.tsx","./src/components/display-demo/index.tsx","./node_modules/selectively/dist/Rule.js","./node_modules/selectively/dist/Always.js","./node_modules/selectively/dist/Any.js","./node_modules/selectively/dist/And.js","./node_modules/selectively/dist/Criteria.js","./node_modules/@cogneco/mend/build/Error/Level.js","./node_modules/@cogneco/mend/build/Error/Message.js","./node_modules/@cogneco/mend/build/Error/ConsoleHandler.js","./node_modules/@cogneco/mend/build/Error/Position.js","./node_modules/@cogneco/mend/build/Error/Location.js","./node_modules/@cogneco/mend/build/Error/Region.js","./node_modules/@cogneco/mend/build/Error/index.js","./node_modules/@cogneco/mend/build/Uri/User.js","./node_modules/@cogneco/mend/build/Uri/Endpoint.js","./node_modules/@cogneco/mend/build/Uri/Authority.js","./node_modules/@cogneco/mend/build/Uri/Locator.js","./node_modules/@cogneco/mend/build/Uri/index.js","./node_modules/@cogneco/mend/build/IO/Device.js","./node_modules/@cogneco/mend/build/IO/InDevice.js","./node_modules/@cogneco/mend/build/IO/Reader.js","./node_modules/@cogneco/mend/build/IO/BufferedReader.js","./node_modules/@cogneco/mend/build/IO/fs.browser.js","./node_modules/@cogneco/mend/build/IO/path.browser.js","./node_modules/@cogneco/mend/build/IO/StringReader.js","./node_modules/@cogneco/mend/build/IO/FileReader.js","./node_modules/@cogneco/mend/build/IO/FolderReader.js","./node_modules/@cogneco/mend/build/Utilities/Enumerator.js","./node_modules/@cogneco/mend/build/Utilities/Enumerable.js","./node_modules/@cogneco/mend/build/Utilities/ArrayEnumerator.js","./node_modules/@cogneco/mend/build/Utilities/BufferedEnumerator.js","./node_modules/@cogneco/mend/build/Utilities/String.js","./node_modules/@cogneco/mend/build/Utilities/index.js","./node_modules/@cogneco/mend/build/IO/OutDevice.js","./node_modules/@cogneco/mend/build/IO/Writer.js","./node_modules/@cogneco/mend/build/IO/Indenter.js","./node_modules/@cogneco/mend/build/IO/PrefixReader.js","./node_modules/@cogneco/mend/build/IO/FileWriter.js","./node_modules/@cogneco/mend/build/IO/TillReader.js","./node_modules/@cogneco/mend/build/IO/UntilReader.js","./node_modules/@cogneco/mend/build/IO/index.js","./node_modules/@cogneco/mend/build/index.js","./node_modules/selectively/dist/lexer/Source.js","./node_modules/selectively/dist/lexer/index.js","./node_modules/selectively/dist/Type/Base.js","./node_modules/selectively/dist/Type/Array.js","./node_modules/selectively/dist/Type/Cursor.js","./node_modules/selectively/dist/Type/Completion.js","./node_modules/selectively/dist/Type/Boolean.js","./node_modules/selectively/dist/Type/Completor.js","./node_modules/selectively/dist/Type/Number.js","./node_modules/selectively/dist/Type/Object.js","./node_modules/selectively/dist/Type/String.js","./node_modules/selectively/dist/Type/Union.js","./node_modules/selectively/dist/Type/index.js","./node_modules/selectively/dist/EndsWith.js","./node_modules/selectively/dist/Every.js","./node_modules/selectively/dist/FunctionCall.js","./node_modules/selectively/dist/Expression.js","./node_modules/selectively/dist/Value.js","./node_modules/selectively/dist/GreaterThan.js","./node_modules/selectively/dist/GreaterThanOrEqual.js","./node_modules/selectively/dist/Has.js","./node_modules/selectively/dist/Includes.js","./node_modules/selectively/dist/Some.js","./node_modules/selectively/dist/Is.js","./node_modules/selectively/dist/LesserThan.js","./node_modules/selectively/dist/LesserThanOrEqual.js","./node_modules/selectively/dist/Match.js","./node_modules/selectively/dist/Not.js","./node_modules/selectively/dist/Or.js","./node_modules/selectively/dist/parse/Source.js","./node_modules/selectively/dist/parse/parse.js","./node_modules/selectively/dist/parse/Expression.js","./node_modules/selectively/dist/parse/Every.js","./node_modules/selectively/dist/parse/Some.js","./node_modules/selectively/dist/parse/group.js","./node_modules/selectively/dist/parse/GreaterThan.js","./node_modules/selectively/dist/parse/GreaterThanOrEqual.js","./node_modules/selectively/dist/parse/LesserThan.js","./node_modules/selectively/dist/parse/LesserThanOrEqual.js","./node_modules/selectively/dist/parse/Not.js","./node_modules/selectively/dist/parse/Has.js","./node_modules/selectively/dist/Within.js","./node_modules/selectively/dist/parse/Within.js","./node_modules/selectively/dist/parse/FunctionCall.js","./node_modules/selectively/dist/Property.js","./node_modules/selectively/dist/parse/Property.js","./node_modules/selectively/dist/parse/Includes.js","./node_modules/selectively/dist/StartsWith.js","./node_modules/selectively/dist/parse/StartsWith.js","./node_modules/selectively/dist/parse/EndsWith.js","./node_modules/selectively/dist/InfixOperator.js","./node_modules/selectively/dist/parse/InfixOperator.js","./node_modules/selectively/dist/parse/Value.js","./node_modules/selectively/dist/parse/Is.js","./node_modules/selectively/dist/parse/ignore.js","./node_modules/selectively/dist/parse/index.js","./node_modules/selectively/dist/resolve/resolve.js","./node_modules/selectively/dist/resolve/And.js","./node_modules/selectively/dist/resolve/replace.js","./node_modules/selectively/dist/resolve/Endswith.js","./node_modules/selectively/dist/resolve/Every.js","./node_modules/selectively/dist/resolve/FunctionCall.js","./node_modules/selectively/dist/resolve/GreaterThan.js","./node_modules/selectively/dist/resolve/GreaterThanOrEqual.js","./node_modules/selectively/dist/resolve/Has.js","./node_modules/selectively/dist/resolve/Includes.js","./node_modules/selectively/dist/resolve/LesserThan.js","./node_modules/selectively/dist/resolve/LesserThanOrEqual.js","./node_modules/selectively/dist/resolve/Not.js","./node_modules/selectively/dist/resolve/Or.js","./node_modules/selectively/dist/resolve/Property.js","./node_modules/selectively/dist/resolve/Some.js","./node_modules/selectively/dist/resolve/Startswith.js","./node_modules/selectively/dist/resolve/Is.js","./node_modules/selectively/dist/resolve/index.js","./node_modules/selectively/dist/Tuple.js","./node_modules/selectively/dist/selectively.js","./node_modules/selectively/dist/index.js","./src/components/filter/Clearable.ts","./src/components/filter/style.css?tag=smoothly-filter&encapsulation=shadow","./src/components/filter/index.tsx","./src/components/filter/input/style.css?tag=smoothly-filter-input&encapsulation=shadow","./src/components/filter/input/index.tsx","./node_modules/cloudly-http/dist/Method.js","./node_modules/cloudly-http/dist/Parser.js","./node_modules/cloudly-http/dist/Serializer.js","./node_modules/cloudly-http/dist/CamelCase.js","./node_modules/cloudly-http/dist/Request/Header.js","./node_modules/cloudly-http/dist/Request/index.js","./node_modules/cloudly-http/dist/Platform.js","./node_modules/cloudly-http/dist/Socket/Socket.js","./node_modules/cloudly-http/dist/Socket/ArrayBuffer.js","./node_modules/cloudly-http/dist/Socket/Json.js","./node_modules/cloudly-http/dist/Socket/String.js","./node_modules/cloudly-http/dist/Socket/Factory.js","./node_modules/cloudly-http/dist/Socket/index.js","./node_modules/cloudly-http/dist/Response/Header.js","./node_modules/cloudly-http/dist/Response/Like.js","./node_modules/cloudly-http/dist/Response/index.js","./node_modules/cloudly-http/dist/fetch.js","./node_modules/cloudly-http/dist/FormData.js","./node_modules/cloudly-http/dist/Search.js","./node_modules/cloudly-http/dist/index.js","./src/components/input/Clearable.ts","./src/components/form/style.css?tag=smoothly-form","./src/components/form/index.tsx","./src/components/frame/style.css?tag=smoothly-frame&encapsulation=scoped","./src/components/frame/index.tsx","./src/components/icon/style.css?tag=smoothly-icon&encapsulation=scoped","./src/components/icon/index.tsx","./src/components/icon-demo/style.css?tag=smoothly-icon-demo&encapsulation=scoped","./src/components/icon-demo/index.tsx","./src/components/input/style.css?tag=smoothly-input&encapsulation=scoped","./src/components/input/index.tsx","./src/components/input/Changeable.ts","./src/components/input/clear/style.css?tag=smoothly-input-clear&encapsulation=scoped","./src/components/input/clear/index.tsx","./src/components/input/date/style.css?tag=smoothly-input-date&encapsulation=scoped","./src/components/input/date/index.tsx","./src/components/input/date/range/style.scss?tag=smoothly-input-date-range&encapsulation=scoped","./src/components/input/date/range/index.tsx","./src/components/input/demo/style.css?tag=smoothly-input-demo","./src/components/input/demo/index.tsx","./src/components/input/file/style.css?tag=smoothly-input-file&encapsulation=scoped","./src/components/input/file/index.tsx","./src/components/input/month/style.css?tag=smoothly-input-month&encapsulation=scoped","./src/components/input/month/index.tsx","./src/components/input/select/style.css?tag=smoothly-input-select&encapsulation=scoped","./src/components/input/select/index.tsx","./src/components/item/style.css?tag=smoothly-item&encapsulation=scoped","./src/components/item/index.tsx","./src/components/notification/style.css?tag=smoothly-notification&encapsulation=scoped","./src/components/notification/index.tsx","./src/components/notifier/style.css?tag=smoothly-notifier&encapsulation=scoped","./src/components/notifier/index.tsx","./src/components/picker/style.css?tag=smoothly-picker&encapsulation=scoped","./src/components/picker/index.tsx","./src/components/picker/demo/style.css?tag=smoothly-picker-demo&encapsulation=scoped","./src/components/picker/demo/index.tsx","./src/components/picker/menu/style.css?tag=smoothly-picker-menu&encapsulation=scoped","./src/components/picker/menu/index.tsx","./src/components/picker/option/style.css?tag=smoothly-picker-option&encapsulation=shadow","./src/components/picker/option/index.tsx","./src/components/popup/style.css?tag=smoothly-popup&encapsulation=scoped","./src/components/popup/index.tsx","./src/components/quiet/style.css?tag=smoothly-quiet&encapsulation=scoped","./src/components/quiet/index.tsx","./src/components/radio/style.css?tag=smoothly-radio&encapsulation=scoped","./src/components/radio/index.tsx","./src/components/radio-button/style.css?tag=smoothly-radio-button&encapsulation=scoped","./src/components/radio-button/index.tsx","./src/components/radio-button/item/style.css?tag=smoothly-radio-button-item&encapsulation=scoped","./src/components/radio-button/item/index.tsx","./src/components/select-demo/style.css?tag=smoothly-select-demo&encapsulation=scoped","./src/components/select-demo/index.tsx","./src/components/skeleton/style.css?tag=smoothly-skeleton&encapsulation=scoped","./src/components/skeleton/index.tsx","./src/components/picker/slot-elements/style.css?tag=smoothly-slot-elements&encapsulation=scoped","./src/components/picker/slot-elements/index.tsx","./src/components/picker/slotted-elements/style.css?tag=smoothly-slotted-elements&encapsulation=scoped","./src/components/picker/slotted-elements/index.tsx","./src/components/spinner/style.scss?tag=smoothly-spinner&encapsulation=scoped","./src/components/spinner/index.tsx","./src/components/input/Submittable.ts","./src/components/submit/style.css?tag=smoothly-submit&encapsulation=scoped","./src/components/submit/index.tsx","./src/components/summary/style.css?tag=smoothly-summary&encapsulation=scoped","./src/components/summary/index.tsx","./src/components/svg/style.css?tag=smoothly-svg&encapsulation=scoped","./src/components/svg/index.tsx","./src/components/tab/style.css?tag=smoothly-tab&encapsulation=scoped","./src/components/tab/index.tsx","./src/components/tab-switch/style.css?tag=smoothly-tab-switch&encapsulation=scoped","./src/components/tab-switch/index.tsx","./src/components/table/style.css?tag=smoothly-table&encapsulation=scoped","./src/components/table/index.tsx","./src/components/table/cell/style.css?tag=smoothly-table-cell&encapsulation=scoped","./src/components/table/cell/index.tsx","./src/components/table/demo/style.css?tag=smoothly-table-demo&encapsulation=scoped","./src/components/table/demo/index.tsx","./src/components/table/Selector.tsx","./src/components/table/demo/filtered/style.css?tag=smoothly-table-demo-filtered&encapsulation=scoped","./src/components/table/demo/filtered/index.tsx","./src/components/table/expandable/cell/style.css?tag=smoothly-table-expandable-cell&encapsulation=scoped","./src/components/table/expandable/cell/index.tsx","./src/components/table/expandable/row/style.css?tag=smoothly-table-expandable-row&encapsulation=scoped","./src/components/table/expandable/row/index.tsx","./src/components/table/footer/style.css?tag=smoothly-table-footer&encapsulation=scoped","./src/components/table/footer/index.tsx","./src/components/table/header/style.css?tag=smoothly-table-header&encapsulation=scoped","./src/components/table/header/index.tsx","./src/components/table/row/style.css?tag=smoothly-table-row&encapsulation=scoped","./src/components/table/row/index.tsx","./src/components/table/testing/data.ts","./src/components/table/testing/style.css?tag=smoothly-table-testing&encapsulation=scoped","./src/components/table/testing/index.tsx","./src/components/theme/color/style.css?tag=smoothly-theme-color&encapsulation=scoped","./src/components/theme/color/index.tsx","./src/components/theme/color/variant/style.css?tag=smoothly-theme-color-variant&encapsulation=scoped","./src/components/theme/color/variant/index.tsx","./src/components/theme/colors/style.css?tag=smoothly-theme-colors&encapsulation=scoped","./src/components/theme/colors/index.tsx","./src/components/toggle/style.css?tag=smoothly-toggle&encapsulation=scoped","./src/components/toggle/toggle.tsx","./src/components/toggle-switch/style.css?tag=smoothly-toggle-switch&encapsulation=shadow","./src/components/toggle-switch/index.tsx","./src/components/trigger/style.css?tag=smoothly-trigger&encapsulation=scoped","./src/components/trigger/index.tsx","./src/components/tuple/index.tsx","./src/components/urlencoded/index.tsx"],"sourcesContent":["import { Observers } from \"./Observers\"\nexport default function () {\n\treturn { Observers }\n}\n","smoothly-accordion-item {\n\tborder: 1px solid rgb(var(--smoothly-dark-color));\n\tborder-bottom: none;\n}\nsmoothly-accordion-item:first-of-type {\n\tborder-top-left-radius: 4px;\n\tborder-top-right-radius: 4px;\n\tmargin-top: 0.4em;\n}\nsmoothly-accordion-item:last-of-type {\n\tborder-bottom-left-radius: 4px;\n\tborder-bottom-right-radius: 4px;\n\tborder-bottom: 1px solid rgb(var(--smoothly-dark-color));\n\tmargin-bottom: 0.6em;\n}\nsmoothly-accordion-item[open] {\n\tborder-color: rgb(var(--smoothly-primary-color));\n\tborder-bottom: 1px solid rgb(var(--smoothly-primary-color));\n}\nsmoothly-accordion-item[open] + smoothly-accordion-item {\n\tborder-top: none;\n}\n","import { Component, Element, h, Listen, Method, Prop, Watch } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-accordion\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyAccordion {\n\tprivate items: HTMLSmoothlyAccordionItemElement[] = []\n\t@Element() me: HTMLElement\n\t@Prop({ mutable: true }) value?: string\n\t@Watch(\"value\")\n\tvalueChanged(value: string | undefined) {\n\t\tthis.updateItems()\n\t}\n\t@Listen(\"smoothlyOpen\")\n\t@Listen(\"smoothlyClose\")\n\thandleOpenClose(event: CustomEvent<{ name: string; open: boolean }>) {\n\t\tif (event.detail.open)\n\t\t\tthis.value = event.detail.name\n\t\telse if (this.value == event.detail.name)\n\t\t\tthis.value = undefined\n\t}\n\t@Listen(\"smoothlyAccordionItemWillLoad\")\n\tonAccordionItemDidLoad(ev: Event) {\n\t\tconst item = ev.target as HTMLSmoothlyAccordionItemElement\n\t\tthis.items.push(item)\n\t\tif (this.value == undefined && item.open)\n\t\t\tthis.value = item.name\n\t\telse\n\t\t\tthis.updateItems()\n\t}\n\tcomponentDidLoad() {\n\t\tthis.updateItems()\n\t}\n\tprivate updateItems() {\n\t\tlet hasChecked = false\n\t\tfor (const item of this.items)\n\t\t\tif ((item.open = !hasChecked && item.name == this.value))\n\t\t\t\thasChecked = true\n\t}\n\t@Method()\n\tasync removeItem(el: HTMLSmoothlyAccordionItemElement) {\n\t\tconst index = this.items.indexOf(el)\n\t\tif (index > -1)\n\t\t\tthis.items.splice(index, 1)\n\t}\n\trender() {\n\t\treturn [<slot></slot>]\n\t}\n}\n",":host {\n\tdisplay: block;\n}\n:host[hidden] {\n\tdisplay: none;\n}\ndetails {\n\tpadding: 0;\n}\ndetails > summary > span {\n\tfloat: right;\n\tmargin: 0.2em;\n\tfont-size: 60%;\n}\ndetails > summary {\n\tfont-size: 120%;\n\tlist-style-type: none;\n\tcursor: pointer;\n\tpadding: 0.4em;\n\tcolor: rgb(var(--smoothly-text-tint));\n}\ndetails > fieldset {\n\tborder: none;\n\tmargin: 0;\n\tpadding: 0;\n}\n:host[open] > details > summary {\n\tcolor: rgb(var(--smoothly-primary-contrast));\n\tbackground: rgb(var(--smoothly-primary-color));\n}\ndetails > summary::-webkit-details-marker {\n\tdisplay: none;\n}\ndetails > summary > svg {\n\twidth: 1em;\n\theight: auto;\n\tmargin-bottom: -0.2em;\n\tmargin-right: 0.4em;\n}\n:host[open] > details > summary > svg {\n\tfill: rgb(var(--smoothly-primary-contrast));\n}\n:host:not([open]) > details > summary > svg {\n\tfill: rgb(var(--smoothly-text-tint));\n}\n","import { Component, Element, Event, EventEmitter, h, Prop, Watch } from \"@stencil/core\"\nimport { SmoothlyAccordion } from \"../accordion\"\n\n@Component({\n\ttag: \"smoothly-accordion-item\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyAccordionItem {\n\t@Prop() name: string\n\t@Prop() brand?: string | string[]\n\t@Prop({ mutable: true, reflect: true }) open?: boolean\n\t@Element() element: HTMLSmoothlyAccordionItemElement\n\t@Event() smoothlyAccordionItemWillLoad!: EventEmitter<(parent: SmoothlyAccordion) => void>\n\t@Event() smoothlyOpen!: EventEmitter<{ name: string; open: boolean }>\n\t@Event() smoothlyClose!: EventEmitter<{ name: string; open: boolean }>\n\tprivate parent?: SmoothlyAccordion\n\t@Watch(\"open\")\n\topenChanged(isChecked: boolean) {\n\t\tthis.open = isChecked\n\t\tif (isChecked) {\n\t\t\tthis.smoothlyOpen.emit({\n\t\t\t\topen: true,\n\t\t\t\tname: this.name,\n\t\t\t})\n\t\t}\n\t}\n\tcomponentWillLoad() {\n\t\tconst summary = this.element.getElementsByTagName(\"summary\")\n\t\tif (summary.length > 0) {\n\t\t\tconst onClick = (e: UIEvent) => {\n\t\t\t\tif (this.open)\n\t\t\t\t\tthis.smoothlyClose.emit({ open: this.open, name: this.name })\n\t\t\t\telse\n\t\t\t\t\tthis.open = true\n\t\t\t\te.preventDefault()\n\t\t\t}\n\t\t\tsummary[0].addEventListener(\"click\", onClick)\n\t\t\tsummary[0].addEventListener(\"touch\", onClick)\n\t\t}\n\t\tthis.smoothlyAccordionItemWillLoad.emit(parent => {\n\t\t\tthis.parent = parent\n\t\t})\n\t}\n\tdisconnectedCallback() {\n\t\tthis.parent?.removeItem(this.element)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<details open={this.open}>\n\t\t\t\t<summary>\n\t\t\t\t\t{this.open ? (\n\t\t\t\t\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n\t\t\t\t\t\t\t<path d=\"M256 48C141.6 48 48 141.6 48 256s93.6 208 208 208 208-93.6 208-208S370.4 48 256 48zm-42.7 318.9L106.7 260.3l29.9-29.9 76.8 76.8 162.1-162.1 29.9 29.9-192.1 191.9z\" />\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n\t\t\t\t\t\t\t<path d=\"M256 48C141.601 48 48 141.601 48 256s93.601 208 208 208 208-93.601 208-208S370.399 48 256 48zm0 374.399c-91.518 0-166.399-74.882-166.399-166.399S164.482 89.6 256 89.6 422.4 164.482 422.4 256 347.518 422.399 256 422.399z\" />\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t)}\n\t\t\t\t\t{this.name}\n\t\t\t\t\t{typeof this.brand == \"string\" ? (\n\t\t\t\t\t\t<span class={this.brand.toLowerCase()}>{this.brand}</span>\n\t\t\t\t\t) : Array.isArray(this.brand) ? (\n\t\t\t\t\t\tthis.brand.map(b => <span class={b.toLowerCase()}>{b}</span>)\n\t\t\t\t\t) : (\n\t\t\t\t\t\t[]\n\t\t\t\t\t)}\n\t\t\t\t</summary>\n\t\t\t\t<fieldset disabled={!this.open} name={this.name}>\n\t\t\t\t\t<slot />\n\t\t\t\t</fieldset>\n\t\t\t</details>\n\t\t)\n\t}\n}\n","smoothly-app {\n\t--margin: -0.5rem;\n\tdisplay: block;\n\tscrollbar-width: none;\n\tmargin-left: var(--margin);\n\tmargin-right: var(--margin);\n\tmargin-top: var(--margin);\n}\nsmoothly-app[hidden] {\n\tdisplay: none;\n}\nsmoothly-app > smoothly-notifier {\n\tbackground: none;\n}\nsmoothly-app > smoothly-notifier > header {\n\tposition: sticky;\n\ttop: 0;\n\tz-index: 5;\n\twidth: 100%;\n\theight: 5rem;\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n\tbox-shadow: 0 2px 5px 0 rgba(var(--smoothly-dark-shadow));\n\tborder-bottom: 1px solid rgba(var(--smoothly-dark-color));\n\tbackground: rgba(var(--smoothly-color));\n\tcolor: rgba(var(--smoothly-color-contrast));\n}\nsmoothly-app > smoothly-notifier > header > nav {\n\twidth: 100%;\n\tflex-shrink: 2;\n\theight: 100%;\n}\n\nsmoothly-app > smoothly-notifier > header > nav,\nsmoothly-app > smoothly-notifier > header > nav > ul {\n\tdisplay: flex;\n\tmargin: 0;\n}\nsmoothly-app > smoothly-notifier > header > h1 {\n\tmargin-left: 1rem;\n\tmargin-bottom: 0.8em;\n\tdisplay: flex;\n\theight: 100%;\n}\nsmoothly-app > smoothly-notifier > header > h1 > a {\n\tdisplay: inline-block;\n\talign-self: center;\n\tsize: 100%;\n\tbackground-position-y: center;\n\ttext-decoration: none;\n\twhite-space: nowrap;\n}\nsmoothly-app > smoothly-notifier > header > nav > ul li a {\n\tline-height: 1.6cm;\n}\nsmoothly-app > smoothly-notifier > header > nav > ul li a {\n\tline-height: 1.6cm;\n}\nsmoothly-app > smoothly-notifier > header > nav > ul {\n\twidth: 100%;\n}\nsmoothly-app > smoothly-notifier > header > nav > ul > div.nav-start-container {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 100%;\n}\nsmoothly-app > smoothly-notifier > header > nav > ul > div.nav-end-container {\n\tdisplay: flex;\n\tgap: 1rem;\n\talign-items: center;\n\theight: 100%;\n\tmargin-left: auto;\n\tmargin-right: 1rem;\n}\nsmoothly-app > smoothly-notifier > header > nav > ul > [slot=\"nav-end\"] {\n\twidth: fit-content;\n\tgap: 0.5em;\n\talign-self: center;\n\theight: fit-content;\n\tmargin-left: 10rem;\n}\nsmoothly-app > smoothly-notifier > header > nav > ul li a {\n\tdisplay: flex;\n\theight: 2.3rem;\n\ttext-decoration: none;\n\talign-items: center;\n\talign-self: center;\n}\n\n@media screen and (max-width: 900px) {\n\tsmoothly-app > smoothly-notifier > header > nav {\n\t\twidth: 50dvw;\n\t\tmax-width: 15rem;\n\t\ttop: 100%;\n\t\tposition: absolute;\n\t\tright: 0;\n\t\theight: auto;\n\t}\n\tsmoothly-app > smoothly-notifier > header > nav,\n\tsmoothly-app > smoothly-notifier > header > nav > ul {\n\t\tflex-direction: column;\n\t\tbackground-color: rgba(var(--smoothly-color));\n\t}\n\tsmoothly-app > smoothly-notifier > header > nav > ul {\n\t\tpadding: 1.5rem;\n\t\tbox-sizing: border-box;\n\t}\n\tsmoothly-app > smoothly-notifier > header > nav > ul li {\n\t\tmargin-right: 0;\n\t\tmargin-bottom: 1em;\n\t\twidth: 100%;\n\t}\n\n\tsmoothly-app > smoothly-notifier > header > smoothly-burger {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tright: 0;\n\t}\n\tsmoothly-app > smoothly-notifier > header > nav > ul > [slot=\"nav-start\"] {\n\t\tdisplay: none;\n\t}\n\tsmoothly-app > smoothly-notifier > header > nav > ul > div.nav-start-container,\n\tsmoothly-app > smoothly-notifier > header > nav > ul > div.nav-end-container {\n\t\tflex-direction: column;\n\t\tmargin: 0;\n\t\talign-items: start;\n\t\tjustify-content: center;\n\t\tgap: 1em;\n\t}\n\tsmoothly-app > smoothly-notifier > header > nav > ul > div.nav-start-container > *:last-child {\n\t\tmargin-bottom: 1em;\n\t}\n}\nsmoothly-app > smoothly-notifier > header > nav:not(.menu-open) {\n\tdisplay: none;\n}\n","import { Component, h, Listen, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { SmoothlyAppRoomCustomEvent } from \"../../components\"\nimport { Color } from \"../../model\"\n\ntype Room = {\n\telement: HTMLSmoothlyAppRoomElement\n}\n@Component({\n\ttag: \"smoothly-app\",\n\tstyleUrl: \"style.css\",\n\tscoped: false,\n})\nexport class SmoothlyApp {\n\t@Prop() label = \"App\"\n\t@Prop() color: Color\n\t@Prop({ mutable: true, reflect: true }) menuOpen = false\n\t@State() selected?: Room\n\tprivate burgerVisibility: boolean\n\tprivate burgerElement?: HTMLElement\n\tprivate navElement?: HTMLElement\n\tmainElement?: HTMLElement\n\trooms: Record<string, Room | undefined> = {}\n\t@Method()\n\tselectRoom(path: string) {\n\t\tthis.rooms[path]?.element.setSelected(true)\n\t}\n\t@Watch(\"selected\")\n\tasync selectedChanged() {\n\t\tObject.values(this.rooms).forEach(\n\t\t\troom => room?.element.path != this.selected?.element.path && room?.element.setSelected(false)\n\t\t)\n\t\tconst content = await this.selected?.element.getContent()\n\t\tif (this.mainElement && content) {\n\t\t\tthis.mainElement.innerHTML = \"\"\n\t\t\tthis.mainElement.appendChild(content)\n\t\t}\n\t}\n\tburgerVisibilityHandler(event: CustomEvent<boolean>) {\n\t\tthis.burgerVisibility = event.detail\n\t}\n\tburgerStatusHandler(event: CustomEvent<boolean>) {\n\t\tevent.stopPropagation()\n\t\tthis.menuOpen = event.detail\n\t}\n\t@Listen(\"popstate\", { target: \"window\" })\n\tasync locationChangeHandler(event: PopStateEvent) {\n\t\tthis.rooms[event.state.smoothlyPath]?.element.setSelected(true, { history: true })\n\t}\n\t@Listen(\"smoothlyRoomSelected\")\n\troomSelectedHandler(event: SmoothlyAppRoomCustomEvent<{ history: boolean }>) {\n\t\tthis.selected = { element: event.target }\n\t\tif (this.burgerVisibility)\n\t\t\tthis.menuOpen = false\n\t\tif (!event.detail.history) {\n\t\t\tconst path = this.selected.element.path.toString()\n\t\t\tconst location = new URL(window.location.pathname == path ? window.location.href : window.location.origin)\n\t\t\tlocation.pathname = path\n\t\t\twindow.history.pushState({ smoothlyPath: path }, \"\", location.href)\n\t\t}\n\t}\n\t@Listen(\"smoothlyRoomLoaded\")\n\troomLoadedHandler(event: SmoothlyAppRoomCustomEvent<{ selected: boolean }>) {\n\t\tconst room = (this.rooms[event.target.path.toString()] = { element: event.target })\n\t\tif (room.element.selected) {\n\t\t\tthis.selected = room\n\t\t\twindow.history.replaceState({ smoothlyPath: room.element.path }, \"\", window.location.href)\n\t\t}\n\t}\n\t@Listen(\"click\", { target: \"window\" })\n\tclickHandler(event: MouseEvent) {\n\t\tif (this.burgerVisibility)\n\t\t\tif (event.composedPath().some(e => e == this.burgerElement || e == this.navElement))\n\t\t\t\t!this.menuOpen\n\t\t\telse\n\t\t\t\tthis.menuOpen = false\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<smoothly-notifier>\n\t\t\t\t<header color={this.color}>\n\t\t\t\t\t<h1>\n\t\t\t\t\t\t<a href={\"\"}>{this.label}</a>\n\t\t\t\t\t</h1>\n\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t<nav ref={e => (this.navElement = e)} class={{ \"menu-open\": this.menuOpen }}>\n\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t<div class={\"nav-start-container\"}>\n\t\t\t\t\t\t\t\t<slot name=\"nav-start\"></slot>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<slot> </slot>\n\t\t\t\t\t\t\t<div class={\"nav-end-container\"}>\n\t\t\t\t\t\t\t\t<slot name=\"nav-end\"></slot>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</nav>\n\t\t\t\t\t<smoothly-burger\n\t\t\t\t\t\tref={e => (this.burgerElement = e)}\n\t\t\t\t\t\topen={this.menuOpen}\n\t\t\t\t\t\tonNavStatus={e => this.burgerStatusHandler(e)}\n\t\t\t\t\t\tonVisibleStatus={e => this.burgerVisibilityHandler(e)}\n\t\t\t\t\t/>\n\t\t\t\t</header>\n\t\t\t\t<main ref={e => (this.mainElement = e)}></main>\n\t\t\t</smoothly-notifier>\n\t\t)\n\t}\n}\n","import { Component, h, Prop } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-app-demo\",\n})\nexport class SmoothlyAppDemo {\n\t@Prop() baseUrl: string\n\tapp?: HTMLSmoothlyAppElement\n\trender() {\n\t\treturn (\n\t\t\t<smoothly-app color=\"dark\" label=\"Smoothly Demo\" ref={e => (this.app = e)}>\n\t\t\t\t<smoothly-trigger slot=\"nav-start\" type=\"link\" name=\"logout\">\n\t\t\t\t\t<smoothly-icon toolTip={\"Log out\"} name=\"log-out\" size=\"medium\"></smoothly-icon>\n\t\t\t\t</smoothly-trigger>\n\t\t\t\t<smoothly-app-room path=\"/root\" label=\"root\">\n\t\t\t\t\t<smoothly-button type=\"link\" link=\"/redirect\">\n\t\t\t\t\t\tTo redirect\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button type=\"link\" link=\"/redirect\">\n\t\t\t\t\t\tTo /redirect\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button type=\"link\" link={new URL(\"/redirect\", window.location.origin).href}>\n\t\t\t\t\t\tTo new URL(\"redirect\")\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button type=\"link\" link=\"redirect/nested\">\n\t\t\t\t\t\tTo redirect nested\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t</smoothly-app-room>\n\t\t\t\t<smoothly-app-room path=\"/links\" label=\"Links\">\n\t\t\t\t\t<smoothly-input type=\"text\">Default</smoothly-input>\n\t\t\t\t\t<div style={{ padding: \"1em\", maxWidth: \"12em\" }}>\n\t\t\t\t\t\t<smoothly-button fill=\"solid\" color=\"danger\" link=\"https://google.com\">\n\t\t\t\t\t\t\topen\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t<smoothly-button\n\t\t\t\t\t\t\tfill=\"solid\"\n\t\t\t\t\t\t\tcolor=\"danger\"\n\t\t\t\t\t\t\tlink=\"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf\"\n\t\t\t\t\t\t\ttype=\"download\">\n\t\t\t\t\t\t\tdownload\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t<smoothly-button fill=\"solid\" color=\"danger\" onClick={() => alert(\"clicked\")}>\n\t\t\t\t\t\t\taction\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t<smoothly-button disabled fill=\"solid\" color=\"danger\" onClick={() => alert(\"clicked\")}>\n\t\t\t\t\t\t\taction\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t<smoothly-button type=\"link\" fill=\"clear\" color=\"danger\" onClick={() => alert(\"clicked\")}>\n\t\t\t\t\t\t\taction link\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t</div>\n\t\t\t\t</smoothly-app-room>\n\t\t\t\t<smoothly-app-room path=\"/input\" label=\"Input\">\n\t\t\t\t\t<smoothly-input-demo />\n\t\t\t\t</smoothly-app-room>\n\t\t\t\t<smoothly-app-room path=\"/button\" label=\"Button\">\n\t\t\t\t\t<smoothly-button-demo />\n\t\t\t\t</smoothly-app-room>\n\t\t\t\t<smoothly-app-room path=\"/dialog\" label=\"Dialog\">\n\t\t\t\t\t<smoothly-dialog-demo />\n\t\t\t\t</smoothly-app-room>\n\t\t\t\t<smoothly-app-room path=\"/display\" label=\"Display\" icon=\"eye-outline\">\n\t\t\t\t\t<smoothly-display-demo />\n\t\t\t\t</smoothly-app-room>\n\t\t\t\t<smoothly-app-room path=\"/table\" label=\"Table\">\n\t\t\t\t\t<smoothly-table-demo />\n\t\t\t\t</smoothly-app-room>\n\t\t\t\t<smoothly-app-room path=\"/select\" label=\"Select\">\n\t\t\t\t\t<smoothly-select-demo />\n\t\t\t\t</smoothly-app-room>\n\t\t\t\t<smoothly-app-room path=\"/icon\" label=\"Icon\">\n\t\t\t\t\t<smoothly-icon-demo />\n\t\t\t\t</smoothly-app-room>\n\t\t\t\t<smoothly-app-room path=\"/old\" label=\"Old\" to=\"select\"></smoothly-app-room>\n\t\t\t\t<smoothly-app-room path=\"/redirect\" label=\"Redirect\">\n\t\t\t\t\t<smoothly-button type=\"link\" link=\"/input\">\n\t\t\t\t\t\tTo input\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button type=\"link\" link=\"../button\">\n\t\t\t\t\t\tTo button\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button type=\"link\" link={new URL(\"/hidden\", window.location.origin).href}>\n\t\t\t\t\t\tTo hidden\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button type=\"link\" link=\"/redirect\">\n\t\t\t\t\t\tTo redirect\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button type=\"link\" link=\"nested\">\n\t\t\t\t\t\tTo redirect nested, relative path\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t</smoothly-app-room>\n\t\t\t\t<smoothly-app-room path=\"/hidden\">\n\t\t\t\t\t<p>hello world!</p>\n\t\t\t\t</smoothly-app-room>\n\t\t\t\t<smoothly-app-room path=\"/redirect/nested\">this is a nested room</smoothly-app-room>\n\t\t\t</smoothly-app>\n\t\t)\n\t}\n\tcomponentDidRender() {\n\t\tthis.app?.selectRoom(\"/root\")\n\t}\n}\n","// src/path-to-regex-modified.ts\nvar regexIdentifierStart = /[$_\\p{ID_Start}]/u;\nvar regexIdentifierPart = /[$_\\u200C\\u200D\\p{ID_Continue}]/u;\nfunction isASCII(str, extended) {\n return (extended ? /^[\\x00-\\xFF]*$/ : /^[\\x00-\\x7F]*$/).test(str);\n}\nfunction lexer(str, lenient = false) {\n const tokens = [];\n let i = 0;\n while (i < str.length) {\n const char = str[i];\n const ErrorOrInvalid = function(msg) {\n if (!lenient)\n throw new TypeError(msg);\n tokens.push({ type: \"INVALID_CHAR\", index: i, value: str[i++] });\n };\n if (char === \"*\") {\n tokens.push({ type: \"ASTERISK\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"+\" || char === \"?\") {\n tokens.push({ type: \"MODIFIER\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"\\\\\") {\n tokens.push({ type: \"ESCAPED_CHAR\", index: i++, value: str[i++] });\n continue;\n }\n if (char === \"{\") {\n tokens.push({ type: \"OPEN\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"}\") {\n tokens.push({ type: \"CLOSE\", index: i, value: str[i++] });\n continue;\n }\n if (char === \":\") {\n let name = \"\";\n let j = i + 1;\n while (j < str.length) {\n const code = str.substr(j, 1);\n if (j === i + 1 && regexIdentifierStart.test(code) || j !== i + 1 && regexIdentifierPart.test(code)) {\n name += str[j++];\n continue;\n }\n break;\n }\n if (!name) {\n ErrorOrInvalid(`Missing parameter name at ${i}`);\n continue;\n }\n tokens.push({ type: \"NAME\", index: i, value: name });\n i = j;\n continue;\n }\n if (char === \"(\") {\n let count = 1;\n let pattern = \"\";\n let j = i + 1;\n let error = false;\n if (str[j] === \"?\") {\n ErrorOrInvalid(`Pattern cannot start with \"?\" at ${j}`);\n continue;\n }\n while (j < str.length) {\n if (!isASCII(str[j], false)) {\n ErrorOrInvalid(`Invalid character '${str[j]}' at ${j}.`);\n error = true;\n break;\n }\n if (str[j] === \"\\\\\") {\n pattern += str[j++] + str[j++];\n continue;\n }\n if (str[j] === \")\") {\n count--;\n if (count === 0) {\n j++;\n break;\n }\n } else if (str[j] === \"(\") {\n count++;\n if (str[j + 1] !== \"?\") {\n ErrorOrInvalid(`Capturing groups are not allowed at ${j}`);\n error = true;\n break;\n }\n }\n pattern += str[j++];\n }\n if (error) {\n continue;\n }\n if (count) {\n ErrorOrInvalid(`Unbalanced pattern at ${i}`);\n continue;\n }\n if (!pattern) {\n ErrorOrInvalid(`Missing pattern at ${i}`);\n continue;\n }\n tokens.push({ type: \"PATTERN\", index: i, value: pattern });\n i = j;\n continue;\n }\n tokens.push({ type: \"CHAR\", index: i, value: str[i++] });\n }\n tokens.push({ type: \"END\", index: i, value: \"\" });\n return tokens;\n}\nfunction parse(str, options = {}) {\n const tokens = lexer(str);\n const { prefixes = \"./\" } = options;\n const defaultPattern = `[^${escapeString(options.delimiter === void 0 ? \"/#?\" : options.delimiter)}]+?`;\n const result = [];\n let key = 0;\n let i = 0;\n let path = \"\";\n let nameSet = /* @__PURE__ */ new Set();\n const tryConsume = (type) => {\n if (i < tokens.length && tokens[i].type === type)\n return tokens[i++].value;\n };\n const tryConsumeModifier = () => {\n const r = tryConsume(\"MODIFIER\");\n if (r) {\n return r;\n }\n return tryConsume(\"ASTERISK\");\n };\n const mustConsume = (type) => {\n const value = tryConsume(type);\n if (value !== void 0)\n return value;\n const { type: nextType, index } = tokens[i];\n throw new TypeError(`Unexpected ${nextType} at ${index}, expected ${type}`);\n };\n const consumeText = () => {\n let result2 = \"\";\n let value;\n while (value = tryConsume(\"CHAR\") || tryConsume(\"ESCAPED_CHAR\")) {\n result2 += value;\n }\n return result2;\n };\n const DefaultEncodePart = (value) => {\n return value;\n };\n const encodePart = options.encodePart || DefaultEncodePart;\n while (i < tokens.length) {\n const char = tryConsume(\"CHAR\");\n const name = tryConsume(\"NAME\");\n let pattern = tryConsume(\"PATTERN\");\n if (!name && !pattern && tryConsume(\"ASTERISK\")) {\n pattern = \".*\";\n }\n if (name || pattern) {\n let prefix = char || \"\";\n if (prefixes.indexOf(prefix) === -1) {\n path += prefix;\n prefix = \"\";\n }\n if (path) {\n result.push(encodePart(path));\n path = \"\";\n }\n const finalName = name || key++;\n if (nameSet.has(finalName)) {\n throw new TypeError(`Duplicate name '${finalName}'.`);\n }\n nameSet.add(finalName);\n result.push({\n name: finalName,\n prefix: encodePart(prefix),\n suffix: \"\",\n pattern: pattern || defaultPattern,\n modifier: tryConsumeModifier() || \"\"\n });\n continue;\n }\n const value = char || tryConsume(\"ESCAPED_CHAR\");\n if (value) {\n path += value;\n continue;\n }\n const open = tryConsume(\"OPEN\");\n if (open) {\n const prefix = consumeText();\n const name2 = tryConsume(\"NAME\") || \"\";\n let pattern2 = tryConsume(\"PATTERN\") || \"\";\n if (!name2 && !pattern2 && tryConsume(\"ASTERISK\")) {\n pattern2 = \".*\";\n }\n const suffix = consumeText();\n mustConsume(\"CLOSE\");\n const modifier = tryConsumeModifier() || \"\";\n if (!name2 && !pattern2 && !modifier) {\n path += prefix;\n continue;\n }\n if (!name2 && !pattern2 && !prefix) {\n continue;\n }\n if (path) {\n result.push(encodePart(path));\n path = \"\";\n }\n result.push({\n name: name2 || (pattern2 ? key++ : \"\"),\n pattern: name2 && !pattern2 ? defaultPattern : pattern2,\n prefix: encodePart(prefix),\n suffix: encodePart(suffix),\n modifier\n });\n continue;\n }\n if (path) {\n result.push(encodePart(path));\n path = \"\";\n }\n mustConsume(\"END\");\n }\n return result;\n}\nfunction escapeString(str) {\n return str.replace(/([.+*?^${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\nfunction flags(options) {\n return options && options.ignoreCase ? \"ui\" : \"u\";\n}\nfunction regexpToRegexp(path, keys) {\n if (!keys)\n return path;\n const groupsRegex = /\\((?:\\?<(.*?)>)?(?!\\?)/g;\n let index = 0;\n let execResult = groupsRegex.exec(path.source);\n while (execResult) {\n keys.push({\n name: execResult[1] || index++,\n prefix: \"\",\n suffix: \"\",\n modifier: \"\",\n pattern: \"\"\n });\n execResult = groupsRegex.exec(path.source);\n }\n return path;\n}\nfunction arrayToRegexp(paths, keys, options) {\n const parts = paths.map((path) => pathToRegexp(path, keys, options).source);\n return new RegExp(`(?:${parts.join(\"|\")})`, flags(options));\n}\nfunction stringToRegexp(path, keys, options) {\n return tokensToRegexp(parse(path, options), keys, options);\n}\nfunction tokensToRegexp(tokens, keys, options = {}) {\n const {\n strict = false,\n start = true,\n end = true,\n encode = (x) => x\n } = options;\n const endsWith = `[${escapeString(options.endsWith === void 0 ? \"\" : options.endsWith)}]|$`;\n const delimiter = `[${escapeString(options.delimiter === void 0 ? \"/#?\" : options.delimiter)}]`;\n let route = start ? \"^\" : \"\";\n for (const token of tokens) {\n if (typeof token === \"string\") {\n route += escapeString(encode(token));\n } else {\n const prefix = escapeString(encode(token.prefix));\n const suffix = escapeString(encode(token.suffix));\n if (token.pattern) {\n if (keys)\n keys.push(token);\n if (prefix || suffix) {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n const mod = token.modifier === \"*\" ? \"?\" : \"\";\n route += `(?:${prefix}((?:${token.pattern})(?:${suffix}${prefix}(?:${token.pattern}))*)${suffix})${mod}`;\n } else {\n route += `(?:${prefix}(${token.pattern})${suffix})${token.modifier}`;\n }\n } else {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n route += `((?:${token.pattern})${token.modifier})`;\n } else {\n route += `(${token.pattern})${token.modifier}`;\n }\n }\n } else {\n route += `(?:${prefix}${suffix})${token.modifier}`;\n }\n }\n }\n if (end) {\n if (!strict)\n route += `${delimiter}?`;\n route += !options.endsWith ? \"$\" : `(?=${endsWith})`;\n } else {\n const endToken = tokens[tokens.length - 1];\n const isEndDelimited = typeof endToken === \"string\" ? delimiter.indexOf(endToken[endToken.length - 1]) > -1 : endToken === void 0;\n if (!strict) {\n route += `(?:${delimiter}(?=${endsWith}))?`;\n }\n if (!isEndDelimited) {\n route += `(?=${delimiter}|${endsWith})`;\n }\n }\n return new RegExp(route, flags(options));\n}\nfunction pathToRegexp(path, keys, options) {\n if (path instanceof RegExp)\n return regexpToRegexp(path, keys);\n if (Array.isArray(path))\n return arrayToRegexp(path, keys, options);\n return stringToRegexp(path, keys, options);\n}\n\n// src/url-utils.ts\nvar DEFAULT_OPTIONS = {\n delimiter: \"\",\n prefixes: \"\",\n sensitive: true,\n strict: true\n};\nvar HOSTNAME_OPTIONS = {\n delimiter: \".\",\n prefixes: \"\",\n sensitive: true,\n strict: true\n};\nvar PATHNAME_OPTIONS = {\n delimiter: \"/\",\n prefixes: \"/\",\n sensitive: true,\n strict: true\n};\nfunction isAbsolutePathname(pathname, isPattern) {\n if (!pathname.length) {\n return false;\n }\n if (pathname[0] === \"/\") {\n return true;\n }\n if (!isPattern) {\n return false;\n }\n if (pathname.length < 2) {\n return false;\n }\n if ((pathname[0] == \"\\\\\" || pathname[0] == \"{\") && pathname[1] == \"/\") {\n return true;\n }\n return false;\n}\nfunction maybeStripPrefix(value, prefix) {\n if (value.startsWith(prefix)) {\n return value.substring(prefix.length, value.length);\n }\n return value;\n}\nfunction maybeStripSuffix(value, suffix) {\n if (value.endsWith(suffix)) {\n return value.substr(0, value.length - suffix.length);\n }\n return value;\n}\nfunction treatAsIPv6Hostname(value) {\n if (!value || value.length < 2) {\n return false;\n }\n if (value[0] === \"[\") {\n return true;\n }\n if ((value[0] === \"\\\\\" || value[0] === \"{\") && value[1] === \"[\") {\n return true;\n }\n return false;\n}\nvar SPECIAL_SCHEMES = [\n \"ftp\",\n \"file\",\n \"http\",\n \"https\",\n \"ws\",\n \"wss\"\n];\nfunction isSpecialScheme(protocol_regexp) {\n if (!protocol_regexp) {\n return true;\n }\n for (const scheme of SPECIAL_SCHEMES) {\n if (protocol_regexp.test(scheme)) {\n return true;\n }\n }\n return false;\n}\nfunction canonicalizeHash(hash, isPattern) {\n hash = maybeStripPrefix(hash, \"#\");\n if (isPattern || hash === \"\") {\n return hash;\n }\n const url = new URL(\"https://example.com\");\n url.hash = hash;\n return url.hash ? url.hash.substring(1, url.hash.length) : \"\";\n}\nfunction canonicalizeSearch(search, isPattern) {\n search = maybeStripPrefix(search, \"?\");\n if (isPattern || search === \"\") {\n return search;\n }\n const url = new URL(\"https://example.com\");\n url.search = search;\n return url.search ? url.search.substring(1, url.search.length) : \"\";\n}\nfunction canonicalizeHostname(hostname, isPattern) {\n if (isPattern || hostname === \"\") {\n return hostname;\n }\n if (treatAsIPv6Hostname(hostname)) {\n return ipv6HostnameEncodeCallback(hostname);\n } else {\n return hostnameEncodeCallback(hostname);\n }\n}\nfunction canonicalizePassword(password, isPattern) {\n if (isPattern || password === \"\") {\n return password;\n }\n const url = new URL(\"https://example.com\");\n url.password = password;\n return url.password;\n}\nfunction canonicalizeUsername(username, isPattern) {\n if (isPattern || username === \"\") {\n return username;\n }\n const url = new URL(\"https://example.com\");\n url.username = username;\n return url.username;\n}\nfunction canonicalizePathname(pathname, protocol, isPattern) {\n if (isPattern || pathname === \"\") {\n return pathname;\n }\n if (protocol && !SPECIAL_SCHEMES.includes(protocol)) {\n const url = new URL(`${protocol}:${pathname}`);\n return url.pathname;\n }\n const leadingSlash = pathname[0] == \"/\";\n pathname = new URL(\n !leadingSlash ? \"/-\" + pathname : pathname,\n \"https://example.com\"\n ).pathname;\n if (!leadingSlash) {\n pathname = pathname.substring(2, pathname.length);\n }\n return pathname;\n}\nfunction canonicalizePort(port, protocol, isPattern) {\n if (defaultPortForProtocol(protocol) === port) {\n port = \"\";\n }\n if (isPattern || port === \"\") {\n return port;\n }\n return portEncodeCallback(port);\n}\nfunction canonicalizeProtocol(protocol, isPattern) {\n protocol = maybeStripSuffix(protocol, \":\");\n if (isPattern || protocol === \"\") {\n return protocol;\n }\n return protocolEncodeCallback(protocol);\n}\nfunction defaultPortForProtocol(protocol) {\n switch (protocol) {\n case \"ws\":\n case \"http\":\n return \"80\";\n case \"wws\":\n case \"https\":\n return \"443\";\n case \"ftp\":\n return \"21\";\n default:\n return \"\";\n }\n}\nfunction protocolEncodeCallback(input) {\n if (input === \"\") {\n return input;\n }\n if (/^[-+.A-Za-z0-9]*$/.test(input))\n return input.toLowerCase();\n throw new TypeError(`Invalid protocol '${input}'.`);\n}\nfunction usernameEncodeCallback(input) {\n if (input === \"\") {\n return input;\n }\n const url = new URL(\"https://example.com\");\n url.username = input;\n return url.username;\n}\nfunction passwordEncodeCallback(input) {\n if (input === \"\") {\n return input;\n }\n const url = new URL(\"https://example.com\");\n url.password = input;\n return url.password;\n}\nfunction hostnameEncodeCallback(input) {\n if (input === \"\") {\n return input;\n }\n if (/[\\t\\n\\r #%/:<>?@[\\]^\\\\|]/g.test(input)) {\n throw new TypeError(`Invalid hostname '${input}'`);\n }\n const url = new URL(\"https://example.com\");\n url.hostname = input;\n return url.hostname;\n}\nfunction ipv6HostnameEncodeCallback(input) {\n if (input === \"\") {\n return input;\n }\n if (/[^0-9a-fA-F[\\]:]/g.test(input)) {\n throw new TypeError(`Invalid IPv6 hostname '${input}'`);\n }\n return input.toLowerCase();\n}\nfunction portEncodeCallback(input) {\n if (input === \"\") {\n return input;\n }\n if (/^[0-9]*$/.test(input) && parseInt(input) <= 65535) {\n return input;\n }\n throw new TypeError(`Invalid port '${input}'.`);\n}\nfunction standardURLPathnameEncodeCallback(input) {\n if (input === \"\") {\n return input;\n }\n const url = new URL(\"https://example.com\");\n url.pathname = input[0] !== \"/\" ? \"/-\" + input : input;\n if (input[0] !== \"/\") {\n return url.pathname.substring(2, url.pathname.length);\n }\n return url.pathname;\n}\nfunction pathURLPathnameEncodeCallback(input) {\n if (input === \"\") {\n return input;\n }\n const url = new URL(`data:${input}`);\n return url.pathname;\n}\nfunction searchEncodeCallback(input) {\n if (input === \"\") {\n return input;\n }\n const url = new URL(\"https://example.com\");\n url.search = input;\n return url.search.substring(1, url.search.length);\n}\nfunction hashEncodeCallback(input) {\n if (input === \"\") {\n return input;\n }\n const url = new URL(\"https://example.com\");\n url.hash = input;\n return url.hash.substring(1, url.hash.length);\n}\n\n// src/url-pattern-parser.ts\nvar Parser = class {\n constructor(input) {\n this.tokenList = [];\n this.internalResult = {};\n this.tokenIndex = 0;\n this.tokenIncrement = 1;\n this.componentStart = 0;\n this.state = 0 /* INIT */;\n this.groupDepth = 0;\n this.hostnameIPv6BracketDepth = 0;\n this.shouldTreatAsStandardURL = false;\n this.input = input;\n }\n get result() {\n return this.internalResult;\n }\n parse() {\n this.tokenList = lexer(this.input, true);\n for (; this.tokenIndex < this.tokenList.length; this.tokenIndex += this.tokenIncrement) {\n this.tokenIncrement = 1;\n if (this.tokenList[this.tokenIndex].type === \"END\") {\n if (this.state === 0 /* INIT */) {\n this.rewind();\n if (this.isHashPrefix()) {\n this.changeState(9 /* HASH */, 1);\n } else if (this.isSearchPrefix()) {\n this.changeState(8 /* SEARCH */, 1);\n this.internalResult.hash = \"\";\n } else {\n this.changeState(7 /* PATHNAME */, 0);\n this.internalResult.search = \"\";\n this.internalResult.hash = \"\";\n }\n continue;\n } else if (this.state === 2 /* AUTHORITY */) {\n this.rewindAndSetState(5 /* HOSTNAME */);\n continue;\n }\n this.changeState(10 /* DONE */, 0);\n break;\n }\n if (this.groupDepth > 0) {\n if (this.isGroupClose()) {\n this.groupDepth -= 1;\n } else {\n continue;\n }\n }\n if (this.isGroupOpen()) {\n this.groupDepth += 1;\n continue;\n }\n switch (this.state) {\n case 0 /* INIT */:\n if (this.isProtocolSuffix()) {\n this.internalResult.username = \"\";\n this.internalResult.password = \"\";\n this.internalResult.hostname = \"\";\n this.internalResult.port = \"\";\n this.internalResult.pathname = \"\";\n this.internalResult.search = \"\";\n this.internalResult.hash = \"\";\n this.rewindAndSetState(1 /* PROTOCOL */);\n }\n break;\n case 1 /* PROTOCOL */:\n if (this.isProtocolSuffix()) {\n this.computeShouldTreatAsStandardURL();\n let nextState = 7 /* PATHNAME */;\n let skip = 1;\n if (this.shouldTreatAsStandardURL) {\n this.internalResult.pathname = \"/\";\n }\n if (this.nextIsAuthoritySlashes()) {\n nextState = 2 /* AUTHORITY */;\n skip = 3;\n } else if (this.shouldTreatAsStandardURL) {\n nextState = 2 /* AUTHORITY */;\n }\n this.changeState(nextState, skip);\n }\n break;\n case 2 /* AUTHORITY */:\n if (this.isIdentityTerminator()) {\n this.rewindAndSetState(3 /* USERNAME */);\n } else if (this.isPathnameStart() || this.isSearchPrefix() || this.isHashPrefix()) {\n this.rewindAndSetState(5 /* HOSTNAME */);\n }\n break;\n case 3 /* USERNAME */:\n if (this.isPasswordPrefix()) {\n this.changeState(4 /* PASSWORD */, 1);\n } else if (this.isIdentityTerminator()) {\n this.changeState(5 /* HOSTNAME */, 1);\n }\n break;\n case 4 /* PASSWORD */:\n if (this.isIdentityTerminator()) {\n this.changeState(5 /* HOSTNAME */, 1);\n }\n break;\n case 5 /* HOSTNAME */:\n if (this.isIPv6Open()) {\n this.hostnameIPv6BracketDepth += 1;\n } else if (this.isIPv6Close()) {\n this.hostnameIPv6BracketDepth -= 1;\n }\n if (this.isPortPrefix() && !this.hostnameIPv6BracketDepth) {\n this.changeState(6 /* PORT */, 1);\n } else if (this.isPathnameStart()) {\n this.changeState(7 /* PATHNAME */, 0);\n } else if (this.isSearchPrefix()) {\n this.changeState(8 /* SEARCH */, 1);\n } else if (this.isHashPrefix()) {\n this.changeState(9 /* HASH */, 1);\n }\n break;\n case 6 /* PORT */:\n if (this.isPathnameStart()) {\n this.changeState(7 /* PATHNAME */, 0);\n } else if (this.isSearchPrefix()) {\n this.changeState(8 /* SEARCH */, 1);\n } else if (this.isHashPrefix()) {\n this.changeState(9 /* HASH */, 1);\n }\n break;\n case 7 /* PATHNAME */:\n if (this.isSearchPrefix()) {\n this.changeState(8 /* SEARCH */, 1);\n } else if (this.isHashPrefix()) {\n this.changeState(9 /* HASH */, 1);\n }\n break;\n case 8 /* SEARCH */:\n if (this.isHashPrefix()) {\n this.changeState(9 /* HASH */, 1);\n }\n break;\n case 9 /* HASH */:\n break;\n case 10 /* DONE */:\n break;\n }\n }\n }\n changeState(newState, skip) {\n switch (this.state) {\n case 0 /* INIT */:\n break;\n case 1 /* PROTOCOL */:\n this.internalResult.protocol = this.makeComponentString();\n break;\n case 2 /* AUTHORITY */:\n break;\n case 3 /* USERNAME */:\n this.internalResult.username = this.makeComponentString();\n break;\n case 4 /* PASSWORD */:\n this.internalResult.password = this.makeComponentString();\n break;\n case 5 /* HOSTNAME */:\n this.internalResult.hostname = this.makeComponentString();\n break;\n case 6 /* PORT */:\n this.internalResult.port = this.makeComponentString();\n break;\n case 7 /* PATHNAME */:\n this.internalResult.pathname = this.makeComponentString();\n break;\n case 8 /* SEARCH */:\n this.internalResult.search = this.makeComponentString();\n break;\n case 9 /* HASH */:\n this.internalResult.hash = this.makeComponentString();\n break;\n case 10 /* DONE */:\n break;\n }\n this.changeStateWithoutSettingComponent(newState, skip);\n }\n changeStateWithoutSettingComponent(newState, skip) {\n this.state = newState;\n this.componentStart = this.tokenIndex + skip;\n this.tokenIndex += skip;\n this.tokenIncrement = 0;\n }\n rewind() {\n this.tokenIndex = this.componentStart;\n this.tokenIncrement = 0;\n }\n rewindAndSetState(newState) {\n this.rewind();\n this.state = newState;\n }\n safeToken(index) {\n if (index < 0) {\n index = this.tokenList.length - index;\n }\n if (index < this.tokenList.length) {\n return this.tokenList[index];\n }\n return this.tokenList[this.tokenList.length - 1];\n }\n isNonSpecialPatternChar(index, value) {\n const token = this.safeToken(index);\n return token.value === value && (token.type === \"CHAR\" || token.type === \"ESCAPED_CHAR\" || token.type === \"INVALID_CHAR\");\n }\n isProtocolSuffix() {\n return this.isNonSpecialPatternChar(this.tokenIndex, \":\");\n }\n nextIsAuthoritySlashes() {\n return this.isNonSpecialPatternChar(this.tokenIndex + 1, \"/\") && this.isNonSpecialPatternChar(this.tokenIndex + 2, \"/\");\n }\n isIdentityTerminator() {\n return this.isNonSpecialPatternChar(this.tokenIndex, \"@\");\n }\n isPasswordPrefix() {\n return this.isNonSpecialPatternChar(this.tokenIndex, \":\");\n }\n isPortPrefix() {\n return this.isNonSpecialPatternChar(this.tokenIndex, \":\");\n }\n isPathnameStart() {\n return this.isNonSpecialPatternChar(this.tokenIndex, \"/\");\n }\n isSearchPrefix() {\n if (this.isNonSpecialPatternChar(this.tokenIndex, \"?\")) {\n return true;\n }\n if (this.tokenList[this.tokenIndex].value !== \"?\") {\n return false;\n }\n const previousToken = this.safeToken(this.tokenIndex - 1);\n return previousToken.type !== \"NAME\" && previousToken.type !== \"PATTERN\" && previousToken.type !== \"CLOSE\" && previousToken.type !== \"ASTERISK\";\n }\n isHashPrefix() {\n return this.isNonSpecialPatternChar(this.tokenIndex, \"#\");\n }\n isGroupOpen() {\n return this.tokenList[this.tokenIndex].type == \"OPEN\";\n }\n isGroupClose() {\n return this.tokenList[this.tokenIndex].type == \"CLOSE\";\n }\n isIPv6Open() {\n return this.isNonSpecialPatternChar(this.tokenIndex, \"[\");\n }\n isIPv6Close() {\n return this.isNonSpecialPatternChar(this.tokenIndex, \"]\");\n }\n makeComponentString() {\n const token = this.tokenList[this.tokenIndex];\n const componentCharStart = this.safeToken(this.componentStart).index;\n return this.input.substring(componentCharStart, token.index);\n }\n computeShouldTreatAsStandardURL() {\n const options = {};\n Object.assign(options, DEFAULT_OPTIONS);\n options.encodePart = protocolEncodeCallback;\n const regexp = pathToRegexp(this.makeComponentString(), void 0, options);\n this.shouldTreatAsStandardURL = isSpecialScheme(regexp);\n }\n};\n\n// src/url-pattern.ts\nvar COMPONENTS = [\n \"protocol\",\n \"username\",\n \"password\",\n \"hostname\",\n \"port\",\n \"pathname\",\n \"search\",\n \"hash\"\n];\nvar DEFAULT_PATTERN = \"*\";\nfunction extractValues(url, baseURL) {\n if (typeof url !== \"string\") {\n throw new TypeError(`parameter 1 is not of type 'string'.`);\n }\n const o = new URL(url, baseURL);\n return {\n protocol: o.protocol.substring(0, o.protocol.length - 1),\n username: o.username,\n password: o.password,\n hostname: o.hostname,\n port: o.port,\n pathname: o.pathname,\n search: o.search != \"\" ? o.search.substring(1, o.search.length) : void 0,\n hash: o.hash != \"\" ? o.hash.substring(1, o.hash.length) : void 0\n };\n}\nfunction processBaseURLString(input, isPattern) {\n if (!isPattern) {\n return input;\n }\n return escapePatternString(input);\n}\nfunction applyInit(o, init, isPattern) {\n let baseURL;\n if (typeof init.baseURL === \"string\") {\n try {\n baseURL = new URL(init.baseURL);\n o.protocol = processBaseURLString(baseURL.protocol.substring(0, baseURL.protocol.length - 1), isPattern);\n o.username = processBaseURLString(baseURL.username, isPattern);\n o.password = processBaseURLString(baseURL.password, isPattern);\n o.hostname = processBaseURLString(baseURL.hostname, isPattern);\n o.port = processBaseURLString(baseURL.port, isPattern);\n o.pathname = processBaseURLString(baseURL.pathname, isPattern);\n o.search = processBaseURLString(baseURL.search.substring(1, baseURL.search.length), isPattern);\n o.hash = processBaseURLString(baseURL.hash.substring(1, baseURL.hash.length), isPattern);\n } catch {\n throw new TypeError(`invalid baseURL '${init.baseURL}'.`);\n }\n }\n if (typeof init.protocol === \"string\") {\n o.protocol = canonicalizeProtocol(init.protocol, isPattern);\n }\n if (typeof init.username === \"string\") {\n o.username = canonicalizeUsername(init.username, isPattern);\n }\n if (typeof init.password === \"string\") {\n o.password = canonicalizePassword(init.password, isPattern);\n }\n if (typeof init.hostname === \"string\") {\n o.hostname = canonicalizeHostname(init.hostname, isPattern);\n }\n if (typeof init.port === \"string\") {\n o.port = canonicalizePort(init.port, o.protocol, isPattern);\n }\n if (typeof init.pathname === \"string\") {\n o.pathname = init.pathname;\n if (baseURL && !isAbsolutePathname(o.pathname, isPattern)) {\n const slashIndex = baseURL.pathname.lastIndexOf(\"/\");\n if (slashIndex >= 0) {\n o.pathname = processBaseURLString(baseURL.pathname.substring(0, slashIndex + 1), isPattern) + o.pathname;\n }\n }\n o.pathname = canonicalizePathname(o.pathname, o.protocol, isPattern);\n }\n if (typeof init.search === \"string\") {\n o.search = canonicalizeSearch(init.search, isPattern);\n }\n if (typeof init.hash === \"string\") {\n o.hash = canonicalizeHash(init.hash, isPattern);\n }\n return o;\n}\nfunction escapePatternString(value) {\n return value.replace(/([+*?:{}()\\\\])/g, \"\\\\$1\");\n}\nfunction escapeRegexpString(value) {\n return value.replace(/([.+*?^${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\nfunction tokensToPattern(tokens, options) {\n const wildcardPattern = \".*\";\n const segmentWildcardPattern = `[^${escapeRegexpString(options.delimiter === void 0 ? \"/#?\" : options.delimiter)}]+?`;\n const regexIdentifierPart2 = /[$_\\u200C\\u200D\\p{ID_Continue}]/u;\n let result = \"\";\n for (let i = 0; i < tokens.length; ++i) {\n const token = tokens[i];\n const lastToken = i > 0 ? tokens[i - 1] : null;\n const nextToken = i < tokens.length - 1 ? tokens[i + 1] : null;\n if (typeof token === \"string\") {\n result += escapePatternString(token);\n continue;\n }\n if (token.pattern === \"\") {\n if (token.modifier === \"\") {\n result += escapePatternString(token.prefix);\n continue;\n }\n result += `{${escapePatternString(token.prefix)}}${token.modifier}`;\n continue;\n }\n const customName = typeof token.name !== \"number\";\n const optionsPrefixes = options.prefixes !== void 0 ? options.prefixes : \"./\";\n let needsGrouping = token.suffix !== \"\" || token.prefix !== \"\" && (token.prefix.length !== 1 || !optionsPrefixes.includes(token.prefix));\n if (!needsGrouping && customName && token.pattern === segmentWildcardPattern && token.modifier === \"\" && nextToken && !nextToken.prefix && !nextToken.suffix) {\n if (typeof nextToken === \"string\") {\n const code = nextToken.length > 0 ? nextToken[0] : \"\";\n needsGrouping = regexIdentifierPart2.test(code);\n } else {\n needsGrouping = typeof nextToken.name === \"number\";\n }\n }\n if (!needsGrouping && token.prefix === \"\" && lastToken && typeof lastToken === \"string\" && lastToken.length > 0) {\n const code = lastToken[lastToken.length - 1];\n needsGrouping = optionsPrefixes.includes(code);\n }\n if (needsGrouping) {\n result += \"{\";\n }\n result += escapePatternString(token.prefix);\n if (customName) {\n result += `:${token.name}`;\n }\n if (token.pattern === wildcardPattern) {\n if (!customName && (!lastToken || typeof lastToken === \"string\" || lastToken.modifier || needsGrouping || token.prefix !== \"\")) {\n result += \"*\";\n } else {\n result += `(${wildcardPattern})`;\n }\n } else if (token.pattern === segmentWildcardPattern) {\n if (!customName) {\n result += `(${segmentWildcardPattern})`;\n }\n } else {\n result += `(${token.pattern})`;\n }\n if (token.pattern === segmentWildcardPattern && customName && token.suffix !== \"\") {\n if (regexIdentifierPart2.test(token.suffix[0])) {\n result += \"\\\\\";\n }\n }\n result += escapePatternString(token.suffix);\n if (needsGrouping) {\n result += \"}\";\n }\n result += token.modifier;\n }\n return result;\n}\nvar URLPattern = class {\n constructor(init = {}, baseURLOrOptions, options) {\n this.regexp = {};\n this.keys = {};\n this.component_pattern = {};\n try {\n let baseURL = void 0;\n if (typeof baseURLOrOptions === \"string\") {\n baseURL = baseURLOrOptions;\n } else {\n options = baseURLOrOptions;\n }\n if (typeof init === \"string\") {\n const parser = new Parser(init);\n parser.parse();\n init = parser.result;\n if (baseURL === void 0 && typeof init.protocol !== \"string\") {\n throw new TypeError(`A base URL must be provided for a relative constructor string.`);\n }\n init.baseURL = baseURL;\n } else {\n if (!init || typeof init !== \"object\") {\n throw new TypeError(`parameter 1 is not of type 'string' and cannot convert to dictionary.`);\n }\n if (baseURL) {\n throw new TypeError(`parameter 1 is not of type 'string'.`);\n }\n }\n if (typeof options === \"undefined\") {\n options = { ignoreCase: false };\n }\n const ignoreCaseOptions = { ignoreCase: options.ignoreCase === true };\n const defaults = {\n pathname: DEFAULT_PATTERN,\n protocol: DEFAULT_PATTERN,\n username: DEFAULT_PATTERN,\n password: DEFAULT_PATTERN,\n hostname: DEFAULT_PATTERN,\n port: DEFAULT_PATTERN,\n search: DEFAULT_PATTERN,\n hash: DEFAULT_PATTERN\n };\n this.pattern = applyInit(defaults, init, true);\n if (defaultPortForProtocol(this.pattern.protocol) === this.pattern.port) {\n this.pattern.port = \"\";\n }\n let component;\n for (component of COMPONENTS) {\n if (!(component in this.pattern))\n continue;\n const options2 = {};\n const pattern = this.pattern[component];\n this.keys[component] = [];\n switch (component) {\n case \"protocol\":\n Object.assign(options2, DEFAULT_OPTIONS);\n options2.encodePart = protocolEncodeCallback;\n break;\n case \"username\":\n Object.assign(options2, DEFAULT_OPTIONS);\n options2.encodePart = usernameEncodeCallback;\n break;\n case \"password\":\n Object.assign(options2, DEFAULT_OPTIONS);\n options2.encodePart = passwordEncodeCallback;\n break;\n case \"hostname\":\n Object.assign(options2, HOSTNAME_OPTIONS);\n if (treatAsIPv6Hostname(pattern)) {\n options2.encodePart = ipv6HostnameEncodeCallback;\n } else {\n options2.encodePart = hostnameEncodeCallback;\n }\n break;\n case \"port\":\n Object.assign(options2, DEFAULT_OPTIONS);\n options2.encodePart = portEncodeCallback;\n break;\n case \"pathname\":\n if (isSpecialScheme(this.regexp.protocol)) {\n Object.assign(options2, PATHNAME_OPTIONS, ignoreCaseOptions);\n options2.encodePart = standardURLPathnameEncodeCallback;\n } else {\n Object.assign(options2, DEFAULT_OPTIONS, ignoreCaseOptions);\n options2.encodePart = pathURLPathnameEncodeCallback;\n }\n break;\n case \"search\":\n Object.assign(options2, DEFAULT_OPTIONS, ignoreCaseOptions);\n options2.encodePart = searchEncodeCallback;\n break;\n case \"hash\":\n Object.assign(options2, DEFAULT_OPTIONS, ignoreCaseOptions);\n options2.encodePart = hashEncodeCallback;\n break;\n }\n try {\n const tokens = parse(pattern, options2);\n this.regexp[component] = tokensToRegexp(tokens, this.keys[component], options2);\n this.component_pattern[component] = tokensToPattern(tokens, options2);\n } catch {\n throw new TypeError(`invalid ${component} pattern '${this.pattern[component]}'.`);\n }\n }\n } catch (err) {\n throw new TypeError(`Failed to construct 'URLPattern': ${err.message}`);\n }\n }\n test(input = {}, baseURL) {\n let values = {\n pathname: \"\",\n protocol: \"\",\n username: \"\",\n password: \"\",\n hostname: \"\",\n port: \"\",\n search: \"\",\n hash: \"\"\n };\n if (typeof input !== \"string\" && baseURL) {\n throw new TypeError(`parameter 1 is not of type 'string'.`);\n }\n if (typeof input === \"undefined\") {\n return false;\n }\n try {\n if (typeof input === \"object\") {\n values = applyInit(values, input, false);\n } else {\n values = applyInit(values, extractValues(input, baseURL), false);\n }\n } catch (err) {\n return false;\n }\n let component;\n for (component of COMPONENTS) {\n if (!this.regexp[component].exec(values[component])) {\n return false;\n }\n }\n return true;\n }\n exec(input = {}, baseURL) {\n let values = {\n pathname: \"\",\n protocol: \"\",\n username: \"\",\n password: \"\",\n hostname: \"\",\n port: \"\",\n search: \"\",\n hash: \"\"\n };\n if (typeof input !== \"string\" && baseURL) {\n throw new TypeError(`parameter 1 is not of type 'string'.`);\n }\n if (typeof input === \"undefined\") {\n return;\n }\n try {\n if (typeof input === \"object\") {\n values = applyInit(values, input, false);\n } else {\n values = applyInit(values, extractValues(input, baseURL), false);\n }\n } catch (err) {\n return null;\n }\n let result = {};\n if (baseURL) {\n result.inputs = [input, baseURL];\n } else {\n result.inputs = [input];\n }\n let component;\n for (component of COMPONENTS) {\n let match = this.regexp[component].exec(values[component]);\n if (!match) {\n return null;\n }\n let groups = {};\n for (let [i, key] of this.keys[component].entries()) {\n if (typeof key.name === \"string\" || typeof key.name === \"number\") {\n let value = match[i + 1];\n groups[key.name] = value;\n }\n }\n result[component] = {\n input: values[component] || \"\",\n groups\n };\n }\n return result;\n }\n get protocol() {\n return this.component_pattern.protocol;\n }\n get username() {\n return this.component_pattern.username;\n }\n get password() {\n return this.component_pattern.password;\n }\n get hostname() {\n return this.component_pattern.hostname;\n }\n get port() {\n return this.component_pattern.port;\n }\n get pathname() {\n return this.component_pattern.pathname;\n }\n get search() {\n return this.component_pattern.search;\n }\n get hash() {\n return this.component_pattern.hash;\n }\n};\nexport {\n URLPattern\n};\n","import { URLPattern } from \"./dist/urlpattern.js\";\n\nexport { URLPattern };\n\nif (!globalThis.URLPattern) {\n globalThis.URLPattern = URLPattern;\n}\n",":host {\n\tdisplay: flex;\n\tjustify-content: center;\n\ttext-align: center;\n\tcursor: pointer;\n}\n\n:not(:host[label], :host[icon]),\n:host[disabled] {\n\tdisplay: none;\n}\n\n:host>main {\n\tdisplay: none;\n}\n\n:host>li {\n\theight: 100%;\n\tlist-style: none;\n}\n\n:host>li>a {\n\tpadding: 0 1.5em;\n\theight: 100%;\n}\n\n:host[selected]>li>a {\n\tdisplay: flex;\n\tcolor: rgb(var(--smoothly-color-contrast));\n\tbackground: rgb(var(--smoothly-color-shade));\n}\n\n:host:hover>li>a {\n\tcolor: rgb(var(--smoothly-color-contrast));\n\tbackground-color: rgb(var(--smoothly-color-tint));\n\ttransition: 0.2s;\n}\n\n:host>li>a>smoothly-icon {\n\talign-self: inherit;\n\tmargin-bottom: 1em;\n}\n\n@media screen and (max-width: 900px) {\n\t:host>li>a {\n\t\tpadding: 0;\n\t}\n\n\t:host>li>a {\n\t\tmargin-left: -1.5rem;\n\t\tmargin-right: -1.5rem;\n\t\tpadding-left: 1.5rem;\n\t\tpadding-right: 1.5rem;\n\t}\n}\n","import { Component, Event, EventEmitter, h, Host, Method, Prop } from \"@stencil/core\"\nimport \"urlpattern-polyfill\"\nimport { Icon } from \"../../../model\"\n\n@Component({\n\ttag: \"smoothly-app-room\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyAppRoom {\n\t@Prop({ reflect: true }) label?: string\n\t@Prop({ reflect: true }) icon?: Icon\n\t@Prop({ reflect: true }) disabled: boolean\n\t@Prop() path: string | URLPattern = \"\"\n\t@Prop() to?: string\n\t@Prop({ reflect: true, mutable: true }) selected?: boolean\n\t@Event() smoothlyRoomSelected: EventEmitter<{ history: boolean }>\n\t@Event() smoothlyRoomLoaded: EventEmitter<{ selected: boolean }>\n\tprivate contentElement?: HTMLElement\n\n\tcomponentWillLoad() {\n\t\tthis.selected = (typeof this.path == \"string\" ? new URLPattern({ pathname: this.path }) : this.path).test(\n\t\t\twindow.location\n\t\t)\n\t\tthis.smoothlyRoomLoaded.emit({ selected: this.selected })\n\t}\n\n\t@Method()\n\tasync getContent(): Promise<HTMLElement | undefined> {\n\t\treturn this.contentElement\n\t}\n\t@Method()\n\tasync setSelected(selected: boolean, options?: { history?: boolean }): Promise<void> {\n\t\tthis.selected = selected\n\t\tif (selected)\n\t\t\tthis.smoothlyRoomSelected.emit({ history: !!options?.history })\n\t}\n\n\tclickHandler(event: MouseEvent) {\n\t\tif (!event.metaKey && !event.ctrlKey && event.which != 2 && event.button != 1) {\n\t\t\tevent.preventDefault()\n\t\t\tthis.setSelected(true)\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<li>\n\t\t\t\t\t<a href={typeof this.path == \"string\" ? this.path : this.path.pathname} onClick={e => this.clickHandler(e)}>\n\t\t\t\t\t\t{this.icon ? <smoothly-icon name={this.icon} toolTip={this.label}></smoothly-icon> : this.label}\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t\t<main ref={e => (this.contentElement = e)}>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</main>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tbackground-color: rgba(var(--smoothly-default-color), 1);\n\topacity: var(--opacity);\n\tpointer-events: var(--pointer-events);\n\ttransition: opacity 400ms;\n\tz-index: 3;\n\tborder-radius: 50%;\n\tbox-shadow: var(--smoothly-shadow);\n\theight: 3rem;\n\twidth: 3rem;\n\tposition: fixed;\n\tbottom: var(--bottom);\n\tright: var(--right);\n\toutline: none;\n\tcursor: pointer;\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n}\n","import { Component, h, Host, Prop, State } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-back-to-top\",\n\tstyleUrl: \"style.scss\",\n\tscoped: true,\n})\nexport class SmoothlyBackToTop {\n\t@Prop() opacity = \"0.5\"\n\t@Prop() bottom = \"1rem\"\n\t@Prop() right = \"1rem\"\n\t@State() visible: boolean\n\tcomponentWillLoad() {\n\t\twindow.addEventListener(\"scroll\", () => {\n\t\t\tthis.visible = document.body.scrollTop > 20 || document.documentElement.scrollTop > 20\n\t\t})\n\t}\n\trender() {\n\t\tconst cssVariables = {\n\t\t\t\"--opacity\": this.visible ? this.opacity : \"0\",\n\t\t\t\"--pointer-events\": this.visible ? \"auto\" : \"none\",\n\t\t\t\"--bottom\": this.bottom,\n\t\t\t\"--right\": this.right,\n\t\t}\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tstyle={cssVariables}\n\t\t\t\tonClick={() =>\n\t\t\t\t\twindow.scrollTo({\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\tbehavior: \"smooth\",\n\t\t\t\t\t})\n\t\t\t\t}>\n\t\t\t\t<smoothly-icon name=\"caret-up-outline\"></smoothly-icon>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host([visible]){\ndisplay: flex;\njustify-content: center;\nalign-items: center;\nheight: 100%;\n}\n:host([visible]) .burger smoothly-icon{\n\tfont-size: 1.7em;\n\tcursor: pointer;\n\tmargin-right: 1em;\n}\n:host:not([visible]){\n\tdisplay: none;\n}\n:host:not([open]) smoothly-icon{\n\ttransform: rotate(0deg);\n\ttransition: transform 100ms ease-in-out;\n}\n:host([open]) smoothly-icon{\n\ttransform: rotate(-90deg);\n\ttransition: transform 100ms ease-in-out;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop, State, Watch } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-burger\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyBurger {\n\t@Element() element: HTMLSmoothlyBurgerElement\n\t@Prop({ mutable: true, reflect: true }) visible: boolean\n\t@Prop({ mutable: true, reflect: true }) open = false\n\t@Prop({ reflect: true }) mediaQuery = \"(max-width: 900px)\"\n\t@State() history: boolean\n\t@Event() navStatus: EventEmitter<boolean>\n\t@Event() visibleStatus: EventEmitter<boolean>\n\n\tcomponentWillLoad() {\n\t\tthis.history = window.matchMedia(this.mediaQuery).matches\n\t\tif (!window.matchMedia(this.mediaQuery).matches)\n\t\t\tthis.visible = false\n\t\telse\n\t\t\tthis.visible = true\n\t\tthis.navStatus.emit(!this.visible)\n\t\tthis.visibleStatus.emit(this.visible)\n\t}\n\n\t@Watch(\"open\")\n\topenChanged() {\n\t\tthis.navStatus.emit(this.open)\n\t}\n\n\t@Listen(\"click\")\n\tclickHandler(event: MouseEvent) {\n\t\tif (this.visible)\n\t\t\tthis.open = !this.open\n\t}\n\n\t@Listen(\"resize\", { target: \"window\" })\n\tresizeHandler() {\n\t\tconst result = window.matchMedia(this.mediaQuery).matches\n\t\tif (result != this.history) {\n\t\t\tif (result) {\n\t\t\t\tthis.visible = true\n\t\t\t\tthis.open = false\n\t\t\t} else {\n\t\t\t\tthis.visible = false\n\t\t\t\tthis.open = false\n\t\t\t}\n\t\t\tthis.visibleStatus.emit(this.visible)\n\t\t\tthis.navStatus.emit(!this.visible)\n\t\t}\n\t\tthis.history = result\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<span class=\"burger\">\n\t\t\t\t\t<smoothly-icon name=\"menu\" />\n\t\t\t\t</span>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { FunctionalComponent, h } from \"@stencil/core\"\nimport { redirect } from \"../model\"\n\nexport const Button: FunctionalComponent<Button.Properties> = ({ disabled, type, link }) => {\n\treturn disabled && (link || type == \"link\") ? (\n\t\t<slot></slot>\n\t) : type == \"link\" ? (\n\t\t<a href={link} onClick={!link || !local(link) ? undefined : e => (e.preventDefault(), redirect(convert(link)))}>\n\t\t\t<slot name=\"start\"></slot>\n\t\t\t<slot></slot>\n\t\t\t<slot name=\"end\"></slot>\n\t\t</a>\n\t) : type == \"download\" ? (\n\t\t<a href={link} target=\"_blank\" download>\n\t\t\t<slot name=\"start\"></slot>\n\t\t\t<slot></slot>\n\t\t\t<slot name=\"end\"></slot>\n\t\t</a>\n\t) : (\n\t\t<button disabled={disabled}>\n\t\t\t<slot name=\"start\"></slot>\n\t\t\t<slot></slot>\n\t\t\t<slot name=\"end\"></slot>\n\t\t</button>\n\t)\n}\nfunction convert(path: string): string {\n\tlet result: ReturnType<typeof convert>\n\tif (path.startsWith(window.location.origin))\n\t\tresult = new URL(path).pathname\n\telse if (path.match(/^\\//))\n\t\tresult = new URL(path, window.location.origin).pathname\n\telse\n\t\tresult = new URL(`${window.location.pathname.replace(/\\/+$/, \"\")}/${path}`, window.location.origin).pathname\n\n\treturn result\n}\n\nfunction local(path: string): boolean {\n\treturn new URL(path, window.location.origin).origin == window.location.origin\n}\nexport namespace Button {\n\texport interface Properties {\n\t\tdisabled: boolean\n\t\ttype: \"link\" | \"button\" | \"download\"\n\t\tlink?: string\n\t}\n}\n","@import \"../color/style.css\";\n\n:host{\n\tdisplay: inline-block;\n\tmargin: 1em;\n\tbox-sizing: border-box;\n\tborder-radius: 0.5rem;\n\tborder: solid 1px;\n\ttransition: background 150ms ease-in-out;\n\tcursor: pointer;\n}\n:host([type=link]){\n\tdisplay: inline;\n\tborder: none;\n}\n:host([disabled]){\n\topacity: 0.5;\n\tpointer-events: none;\n}\na,\nbutton{\n\tfont-size: 110%;\n\tfont-weight: 400;\n\tborder: none;\n\tbackground-color: transparent;\n\tcursor: pointer;\n\tdisplay: inline-flex;\n\tgap: 0.5rem;\n}\nbutton {\n\tjustify-content: center;\n\theight: 100%;\n\twidth: 100%;\n\tborder-radius: 0.5rem;\n\tmin-width: 8em;\n\talign-items: center;\n}\n:host(:not([size=icon])) > button {\n\tpadding: 0.8em;\n}\n:host([size=icon]) > button{\n\tpadding: 0.5em;\n}\n:host([shape=rounded]) > button,\n:host([shape=rounded]){\n\tborder-radius: 2rem;\n}\n:host([type=button]) > a {\n\ttext-align: center;\n\ttext-decoration: inherit;\n\twidth: calc(100% - 0.6em);\n}\n:host([size=small]) > button{\n\tfont-size: 100%;\n}\n:host([size=large]) > button{\n\tfont-size: 130%;\n}\n:host(:not([size=icon])){\n\tmin-width: 8em;\n}\n:host([size=flexible]) {\n\tmin-width: unset;\n\tpadding: 0;\n\tmargin: 0;\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tborder: none;\n}\n:host([size=flexible]) > button {\n\tmin-width: unset;\n\tpadding: 0;\n\tmargin: 0 !important;\n}\n:host([expand]) {\n\twidth: 100%;\n}\n:host([expand=full]) {\n\tborder-left: none;\n\tborder-right: none;\n\tborder-radius: 0;\n}\n:host([shape=rounded]) > button,\n:host([shape=rounded]){\n\tborder-radius: 2rem;\n}\n:host(:not([fill=clear]):hover),\n:host(:not([fill=clear]):focus),\t\n:host(:not([fill=clear]):active){\n\tborder-color: rgb(var(--smoothly-color-tint)) !important;\n\tbackground: rgb(var(--smoothly-color-tint)) !important;\n}\n:host(:not([fill=clear]):hover) > button,\n:host(:not([fill=clear]):focus) > button,\n:host(:not([fill=clear]):active) > button,\n:host(:not([fill=clear]):hover) ::slotted(smoothly-icon),\n:host(:not([fill=clear]):focus) ::slotted(smoothly-icon),\n:host(:not([fill=clear]):active) ::slotted(smoothly-icon){\n\tcolor: rgb(var(--smoothly-color-contrast)) !important;\n\tstroke: rgb(var(--smoothly-color-contrast)) !important;\n\tfill: rgb(var(--smoothly-color-contrast)) !important;\n}\n:host([fill=clear]:hover) > button,\n:host([fill=clear]:focus) > button,\n:host([fill=clear]:active) > button{\n\tcolor: rgb(var(--smoothly-color-tint)) !important;\n\tstroke: rgb(var(--smoothly-color-tint)) !important;\n\tfill: rgb(var(--smoothly-color-tint)) !important;\n}\n:host([disabled]){\n\topacity: 0.5;\n\tpointer-events: none;\n}\n:host(:not([fill])),\n:host([fill=default]) {\n\tbackground: rgb(var(--smoothly-color));\n\tborder-color: transparent;\n}\n:host([fill=solid]) {\n\tbackground: rgb(var(--smoothly-color));\n\tborder-color: rgb(var(--smoothly-color));\n}\n:host([fill=solid]) > button,\n:host([fill=default]) > button{\n\tstroke: rgb(var(--smoothly-color-contrast));\n\tfill: rgb(var(--smoothly-color-contrast));\n\tcolor: rgb(var(--smoothly-color-contrast));\n}\n:host([fill=outline]) > button,\n:host([fill=clear]) > button{\n\tstroke: rgb(var(--smoothly-color));\n\tfill: rgb(var(--smoothly-color));\n\tcolor: rgb(var(--smoothly-color));\n}\n:host([fill=outline]) {\n\tbackground: transparent;\n\tborder-color: rgb(var(--smoothly-color));\n}\n:host([fill=clear]) {\n\tbackground: transparent;\n\tborder-color: transparent;\n}\n::slotted(smoothly-icon[slot=start]),\n::slotted(smoothly-icon[slot=end]){\n\tfont-size: 0.65em;\n}\n:host([hidden]){\n\tdisplay: none;\n}\n","import { Component, h, Prop } from \"@stencil/core\"\nimport { Color, Fill } from \"../../model\"\nimport { Button } from \"../Button\"\n\n@Component({\n\ttag: \"smoothly-button\",\n\tstyleUrl: \"../button/style.css\",\n\tscoped: true,\n})\nexport class SmoothlyButton {\n\t@Prop({ reflect: true }) color?: Color\n\t@Prop({ reflect: true }) expand?: \"block\" | \"full\"\n\t@Prop({ reflect: true }) fill?: Fill\n\t@Prop({ reflect: true }) disabled = false\n\t@Prop({ reflect: true }) type: Button.Properties[\"type\"] = \"button\"\n\t@Prop({ reflect: true }) size: \"small\" | \"large\" | \"icon\" | \"flexible\"\n\t@Prop({ reflect: true }) shape?: \"rounded\"\n\t@Prop() link?: string\n\n\trender() {\n\t\treturn (\n\t\t\t<Button disabled={this.disabled} type={this.type} link={this.link}>\n\t\t\t\t<slot />\n\t\t\t</Button>\n\t\t)\n\t}\n}\n","smoothly-button-demo {\n\tdisplay: block;\n\tmargin: 1rem;\n}\n\nsmoothly-button-demo > section > div {\n\tdisplay: flex;\n\talign-items: center;\n}\n","import { Component, h } from \"@stencil/core\"\n@Component({\n\ttag: \"smoothly-button-demo\",\n\tstyleUrl: \"style.css\",\n})\nexport class SmoothlyButtonDemo {\n\trender() {\n\t\treturn [\n\t\t\t<h2>Theme</h2>,\n\t\t\t<smoothly-theme-colors></smoothly-theme-colors>,\n\t\t\t<h2>Buttons</h2>,\n\t\t\t<section>\n\t\t\t\t<h4>Toggle button</h4>\n\t\t\t\t<smoothly-toggle>\n\t\t\t\t\t<smoothly-icon name=\"card\" fill=\"solid\" slot=\"icon-slot\"></smoothly-icon>\n\t\t\t\t</smoothly-toggle>\n\t\t\t\t<smoothly-toggle>\n\t\t\t\t\t<smoothly-icon name=\"briefcase\" slot=\"icon-slot\"></smoothly-icon>\n\t\t\t\t</smoothly-toggle>\n\t\t\t\t<smoothly-toggle>\n\t\t\t\t\t<smoothly-icon name=\"airplane\" slot=\"icon-slot\"></smoothly-icon>\n\t\t\t\t</smoothly-toggle>\n\t\t\t\t<h4>Toggle switches</h4>\n\t\t\t\t<smoothly-toggle-switch\n\t\t\t\t\tcheckmark={false}\n\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\tdisabled={false}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tonSmoothlyToggleSwitchChange={e => {\n\t\t\t\t\t\tconsole.log(\"toggleSwitch \", e.detail)\n\t\t\t\t\t}}></smoothly-toggle-switch>\n\t\t\t\t<smoothly-toggle-switch disabled={false}></smoothly-toggle-switch>\n\t\t\t\t<smoothly-toggle-switch disabled={false} size=\"large\"></smoothly-toggle-switch>\n\t\t\t\t<h4>Links with icons</h4>\n\t\t\t\t<smoothly-button type=\"link\">\n\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"start\"></smoothly-icon>\n\t\t\t\t\ttype link\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-button type=\"button\" color=\"warning\" fill=\"default\">\n\t\t\t\t\t<smoothly-icon name=\"call\" slot=\"start\"></smoothly-icon>\n\t\t\t\t\t<a href=\"https://google.com\">link</a>\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-button link=\"https://google.com\" type=\"link\">\n\t\t\t\t\t<smoothly-icon name=\"arrow-forward\" slot=\"end\"></smoothly-icon>\n\t\t\t\t\tlink + type link\n\t\t\t\t</smoothly-button>\n\t\t\t\t<h4>Size and Color test</h4>\n\t\t\t\t<smoothly-button color=\"primary\" fill=\"solid\" size=\"small\" shape=\"rounded\">\n\t\t\t\t\tColor Primary + Small\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-button color=\"secondary\" fill=\"solid\" shape=\"rounded\">\n\t\t\t\t\tColor Secondary + Default\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-button color=\"warning\" fill=\"solid\" size=\"large\">\n\t\t\t\t\tColor Warning + Large\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-button color=\"danger\" fill=\"solid\" size=\"small\" shape=\"rounded\">\n\t\t\t\t\tColor Danger + Small\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-button color=\"success\" fill=\"solid\" size=\"small\" shape=\"rounded\">\n\t\t\t\t\tColor Success + Small\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-button color=\"tertiary\" fill=\"solid\" size=\"small\" shape=\"rounded\">\n\t\t\t\t\tColor Tertiary + Small\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-button color=\"dark\" fill=\"solid\" size=\"small\" shape=\"rounded\">\n\t\t\t\t\tColor Dark + Small\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-button color=\"medium\" fill=\"solid\" size=\"small\" shape=\"rounded\">\n\t\t\t\t\tColor Medium + Small\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-button color=\"light\" fill=\"solid\" size=\"small\" shape=\"rounded\">\n\t\t\t\t\tColor Light + Small\n\t\t\t\t</smoothly-button>\n\t\t\t\t<h4>Expand examples</h4>\n\t\t\t\t<smoothly-button color=\"secondary\" fill=\"solid\" expand=\"full\">\n\t\t\t\t\tColor Secondary + Default\n\t\t\t\t</smoothly-button>\n\t\t\t\t<smoothly-button color=\"warning\" fill=\"solid\" expand=\"block\">\n\t\t\t\t\tColor Warning + Large\n\t\t\t\t</smoothly-button>\n\t\t\t\t<h4>Fill examples</h4>\n\t\t\t\t<div>\n\t\t\t\t\t<smoothly-button shape=\"rounded\" color=\"primary\" fill=\"solid\">\n\t\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"start\"></smoothly-icon>\n\t\t\t\t\t\tFill Solid\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button shape=\"rounded\" color=\"secondary\" fill=\"outline\">\n\t\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"start\" fill=\"clear\"></smoothly-icon>\n\t\t\t\t\t\tFill Outline\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button shape=\"rounded\" color=\"tertiary\" fill=\"clear\">\n\t\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"start\" fill=\"clear\"></smoothly-icon>\n\t\t\t\t\t\tFill Clear\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button size=\"icon\" shape=\"rounded\" color=\"success\" fill=\"solid\">\n\t\t\t\t\t\t<smoothly-icon name=\"basketball\" fill=\"solid\"></smoothly-icon>\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t</div>\n\t\t\t\t<h4>Buttons with Icon in \"start\"</h4>\n\t\t\t\t<div>\n\t\t\t\t\t<smoothly-button shape=\"rounded\" fill=\"solid\" color=\"warning\">\n\t\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"start\"></smoothly-icon>\n\t\t\t\t\t\tCheck\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button shape=\"rounded\" fill=\"solid\" color=\"secondary\">\n\t\t\t\t\t\t<smoothly-icon name=\"basketball\" slot=\"start\"></smoothly-icon>\n\t\t\t\t\t\tCheck\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button shape=\"rounded\" fill=\"solid\" color=\"success\">\n\t\t\t\t\t\t<smoothly-icon name=\"call\" slot=\"start\"></smoothly-icon>\n\t\t\t\t\t\tCheck\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button size=\"icon\" fill=\"solid\" shape=\"rounded\" color=\"success\">\n\t\t\t\t\t\t<smoothly-icon name=\"call\"></smoothly-icon>\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t</div>\n\t\t\t\t<h4>Buttons with Icon in \"end\"</h4>\n\t\t\t\t<smoothly-button fill=\"solid\" color=\"light\">\n\t\t\t\t\tGo Forward\n\t\t\t\t\t<smoothly-icon name=\"arrow-forward\" slot=\"end\"></smoothly-icon>\n\t\t\t\t</smoothly-button>\n\t\t\t\t<h4>Test for icon button</h4>\n\t\t\t\t<div>\n\t\t\t\t\t<smoothly-button size=\"icon\" fill=\"solid\" shape=\"rounded\" color=\"success\">\n\t\t\t\t\t\t<smoothly-icon name=\"call\"></smoothly-icon>\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button size=\"icon\" shape=\"rounded\" color=\"warning\" fill=\"solid\">\n\t\t\t\t\t\t<smoothly-icon name=\"search-outline\"></smoothly-icon>\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button size=\"icon\" shape=\"rounded\" color=\"secondary\">\n\t\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\"></smoothly-icon>\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t</div>\n\t\t\t\t<h4>Link examples</h4>\n\t\t\t\t<div>\n\t\t\t\t\t<smoothly-button type=\"link\">type link</smoothly-button>\n\t\t\t\t\t<smoothly-button type=\"button\" fill=\"clear\">\n\t\t\t\t\t\t<a href=\"https://google.com\">link</a>\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button link=\"https://google.com\" type=\"link\">\n\t\t\t\t\t\tlink + type link\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t</div>\n\t\t\t\t<h4>Disabled buttons</h4>\n\t\t\t\t<div>\n\t\t\t\t\t<smoothly-button disabled fill=\"solid\" color=\"secondary\">\n\t\t\t\t\t\tDisabled\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<smoothly-button type=\"link\" link=\"https://google.com\" disabled>\n\t\t\t\t\t\tDisabled link\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t</div>\n\t\t\t</section>,\n\t\t\t<smoothly-back-to-top />,\n\t\t]\n\t}\n}\n","import * as isoly from \"isoly\"\n\nexport function month(date: isoly.Date): isoly.Date[][] {\n\tconst d = new Date(date)\n\td.setDate(1)\n\tlet day = -((d.getDay() + 6) % 7) + 1\n\tconst result: string[][] = []\n\tfor (let row = 0; row < 6; row++) {\n\t\tconst r = []\n\t\tfor (let column = 0; column < 7; column++) {\n\t\t\tconst d = new Date(date)\n\t\t\td.setUTCDate(day++)\n\t\t\tr.push(isoly.Date.create(d))\n\t\t}\n\t\tif (row < 5 || isoly.Date.firstOfMonth(r[0]) == isoly.Date.firstOfMonth(date))\n\t\t\tresult.push(r)\n\t}\n\treturn result\n}\n\nexport function weekdays(): string[] {\n\tconst day = new globalThis.Date()\n\tday.setDate(day.getDate() - day.getDay() + 1)\n\tconst result: string[] = []\n\tfor (let i = 0; i < 7; i++) {\n\t\tresult.push(day.toLocaleString(undefined, { weekday: \"short\" }))\n\t\tday.setDate(day.getDate() + 1)\n\t}\n\treturn result\n}\n\nexport function months(current: isoly.Date): { date: isoly.Date; name: string; selected?: boolean }[] {\n\tconst day = new globalThis.Date(current)\n\tconst result: { date: isoly.Date; name: string; selected?: boolean }[] = []\n\tfor (let i = 0; i < 12; i++) {\n\t\tday.setMonth(i, 28)\n\t\tconst date = isoly.Date.create(day)\n\t\tresult.push({\n\t\t\tdate,\n\t\t\tname: day.toLocaleString(undefined, { month: \"long\" }),\n\t\t\tselected: date.substr(0, 7) == current.substr(0, 7),\n\t\t})\n\t}\n\treturn result\n}\nexport function years(current: isoly.Date): { date: isoly.Date; name: string; selected?: boolean }[] {\n\tconst day = new globalThis.Date(current)\n\tconst start = new Date().getFullYear() - 10\n\tconst end = new Date().getFullYear() + 10\n\tconst result: { date: isoly.Date; name: string; selected?: boolean }[] = []\n\tfor (let i = start; i <= end; i++) {\n\t\tday.setFullYear(i)\n\t\tconst date = isoly.Date.create(day)\n\t\tresult.push({\n\t\t\tdate,\n\t\t\tname: day.toLocaleString(undefined, { year: \"numeric\" }),\n\t\t\tselected: date == current,\n\t\t})\n\t}\n\treturn result\n}\n",":host {\n\tdisplay: block;\n\t--other-month-opacity: 0.5;\n\tmargin-bottom: 1rem;\n}\n:host > smoothly-input-month {\n\twidth: calc(100% - 1em);\n\tpadding: 0.5em 0.5em 0 0.5em;\n}\n:host > table {\n\ttable-layout: fixed;\n\twidth: 100%;\n}\nth,\ntd {\n\ttext-align: center;\n\tpadding: 0.5em;\n\tmin-width: 2em;\n\tbackground-color: rgb(var(--smoothly-default-shade));\n\tcursor: pointer;\n\tuser-select: none;\n}\ntd.currentMonth {\n\tcolor: rgb(var(--smoothly-default-contrast));\n}\ntd:not(.currentMonth) {\n\tcolor: rgba(var(--smoothly-default-contrast), var(--other-month-opacity));\n}\ntd:nth-child(6):not(.currentMonth).selected,\ntd:nth-child(6):not(.currentMonth).dateRange,\ntd:nth-child(7):not(.currentMonth).selected,\ntd:nth-child(7):not(.currentMonth).dateRange {\n\tcolor: rgba(var(--smoothly-default-contrast));\n}\ntd:nth-child(6),\ntd:nth-child(7) {\n\tcolor: rgb(var(--smoothly-danger-tint));\n}\ntd:nth-child(6):not(.currentMonth),\ntd:nth-child(7):not(.currentMonth) {\n\tcolor: rgba(var(--smoothly-danger-tint), var(--other-month-opacity));\n}\ntd:not(.selected, .disable):hover {\n\tcolor: rgb(var(--smoothly-primary-contrast));\n\tbackground: rgb(var(--smoothly-primary-tint));\n}\ntd.selected {\n\tcolor: rgb(var(--smoothly-primary-contrast));\n\tbackground: rgb(var(--smoothly-primary-color));\n}\ntd:not(.selected, .dateRange):not(:hover).today {\n\tbackground: rgb(var(--smoothly-dark-tint));\n\tcolor: rgb(var(--smoothly-dark-contrast));\n}\ntd.dateRange {\n\tcolor: rgb(var(--smoothly-primary-contrast));\n\tbackground: rgb(var(--smoothly-primary-tint));\n}\ntd.disable {\n\tcursor: not-allowed;\n\tbackground-color: rgb(var(--smoothly-default-tint), 0.5);\n\tcolor: rgb(var(--smoothly-default-contrast), 0.5);\n}\n","import { Component, Element, Event, EventEmitter, h, Prop, State, Watch } from \"@stencil/core\"\nimport { Date, DateRange } from \"isoly\"\nimport * as generate from \"./generate\"\n\n@Component({\n\ttag: \"smoothly-calendar\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class Calendar {\n\t@Element() element: HTMLTableRowElement\n\t@Prop({ mutable: true }) month?: Date\n\t@Prop({ mutable: true }) value: Date = Date.now()\n\t@Prop({ mutable: true }) start?: Date\n\t@Prop({ mutable: true }) end?: Date\n\t@Prop({ mutable: true }) max: Date\n\t@Prop({ mutable: true }) min: Date\n\t@Prop({ reflect: true }) doubleInput: boolean\n\t@Event() valueChanged: EventEmitter<Date>\n\t@Event() startChanged: EventEmitter<Date>\n\t@Event() endChanged: EventEmitter<Date>\n\t@Event() dateSet: EventEmitter<Date>\n\t@Event() dateRangeSet: EventEmitter<DateRange>\n\tprivate frozenDate: Date\n\t@State() firstSelected: boolean\n\t@Watch(\"start\")\n\tonStart(next: Date) {\n\t\tthis.startChanged.emit(next)\n\t}\n\t@Watch(\"end\")\n\tonEnd(next: Date) {\n\t\tthis.endChanged.emit(next)\n\t}\n\tprivate clickCounter = 0\n\tprivate onClick(date: Date) {\n\t\tthis.valueChanged.emit((this.value = date))\n\t\tthis.clickCounter += 1\n\t\tif (this.doubleInput) {\n\t\t\tif (this.clickCounter % 2 == 1)\n\t\t\t\tthis.start = this.end = this.frozenDate = date\n\t\t\telse {\n\t\t\t\tif (this.start && date > this.start)\n\t\t\t\t\tthis.end = date\n\t\t\t\telse\n\t\t\t\t\tthis.start = date\n\t\t\t}\n\t\t}\n\t\t!this.doubleInput && this.dateSet.emit(this.value)\n\t\tthis.doubleInput &&\n\t\t\tthis.clickCounter % 2 == 0 &&\n\t\t\tthis.start &&\n\t\t\tthis.end &&\n\t\t\tthis.dateRangeSet.emit({ start: this.start, end: this.end })\n\t}\n\tprivate onHover(date: Date) {\n\t\tif (this.doubleInput && this.clickCounter % 2 == 1) {\n\t\t\tif (date < this.frozenDate) {\n\t\t\t\tthis.start = date\n\t\t\t\tthis.end = this.frozenDate\n\t\t\t} else {\n\t\t\t\tthis.start = this.frozenDate\n\t\t\t\tthis.end = date\n\t\t\t}\n\t\t}\n\t}\n\trender() {\n\t\treturn [\n\t\t\t<smoothly-input-month\n\t\t\t\tvalue={this.month ?? this.value}\n\t\t\t\tonValueChanged={event => {\n\t\t\t\t\tthis.month = event.detail\n\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t}}></smoothly-input-month>,\n\t\t\t<table>\n\t\t\t\t<thead>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t{generate.weekdays().map(day => (\n\t\t\t\t\t\t\t<th>{day}</th>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t{generate.month(this.month ?? this.value).map(week => (\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t{week.map(date => (\n\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\ttabindex={1}\n\t\t\t\t\t\t\t\tonMouseOver={() => {\n\t\t\t\t\t\t\t\t\t!this.doubleInput && (this.min || this.max) && (date < this.min || date > this.max)\n\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t: this.onHover(date)\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t(this.min || this.max) && (date < this.min || date > this.max) ? undefined : () => this.onClick(date)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclass={(date == this.value ? [\"selected\"] : [])\n\t\t\t\t\t\t\t\t\t.concat(\n\t\t\t\t\t\t\t\t\t\t...(date == Date.now() ? [\"today\"] : []),\n\t\t\t\t\t\t\t\t\t\tDate.firstOfMonth(this.month ?? this.value) == Date.firstOfMonth(date) ? [\"currentMonth\"] : [],\n\t\t\t\t\t\t\t\t\t\tthis.doubleInput\n\t\t\t\t\t\t\t\t\t\t\t? this.start == date || this.end == date\n\t\t\t\t\t\t\t\t\t\t\t\t? [\"selected\"]\n\t\t\t\t\t\t\t\t\t\t\t\t: date >= (this.start ?? \"\") && date <= (this.end ?? \"\")\n\t\t\t\t\t\t\t\t\t\t\t\t? [\"dateRange\"]\n\t\t\t\t\t\t\t\t\t\t\t\t: []\n\t\t\t\t\t\t\t\t\t\t\t: \"\"\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.concat(...(this.min || this.max ? (date < this.min || date > this.max ? [\"disable\"] : []) : \"\"))\n\t\t\t\t\t\t\t\t\t.join(\" \")}>\n\t\t\t\t\t\t\t\t{date.substring(8, 10)}\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</tr>\n\t\t\t\t))}\n\t\t\t</table>,\n\t\t]\n\t}\n}\n","import * as isoly from \"isoly\";\nimport { getLanguage } from \"./getLanguage\";\nexport function create(translations, language) {\n let result;\n if (!language) {\n const translation = translations;\n result = (message, ...argument) => {\n const r = translation[message];\n return !r\n ? fallback(message, ...argument)\n : typeof r == \"function\"\n ? r(...argument)\n : argument.length > 0\n ? fallback(r, ...argument)\n : r;\n };\n }\n else {\n if (!isoly.Language.is(language))\n language = getLanguage(language);\n const translation = language && translations[language];\n result = translation ? create(translation) : fallback;\n }\n return result;\n}\nfunction fallback(message, ...argument) {\n return argument.length > 0 ? argument.reduce((r, a, i) => r.replace(\"$\" + i, a), message) : message;\n}\n//# sourceMappingURL=create.js.map","export const sv = {\n\t\"Select all\": \"Markera alla\",\n\t\"Deselect all\": \"Avmarkera alla\",\n\tSelect: \"Markera\",\n\tDeselect: \"Avmarkera\",\n}\n","import * as isoly from \"isoly\"\nimport * as langly from \"langly\"\nimport { sv } from \"./sv\"\n\nexport function create(language: isoly.Language | HTMLElement): langly.Translate {\n\treturn langly.create(\n\t\t{\n\t\t\tsv,\n\t\t},\n\t\tlanguage\n\t)\n}\n","* {\n\tbox-sizing: border-box;\n}\n\n:host {\n\tdisplay: block;\n}\n\n:host > main {\n\tdisplay: flex;\n\talign-items: center;\n\twidth: fit-content;\n\theight: max-content;\n\tmargin: 0.3rem 0;\n\tline-height: 0;\n}\n\n:host > main > label {\n\tdisplay:flex;\n\tjustify-content: center;\n\talign-items: center;\n\tmargin: 0 0.2em;\n}\n\n:host > main > div {\n\tborder: 1px solid rgb(var(--smoothly-color-contrast));\n}\n\n:host > main > div > smoothly-icon {\n\tdisplay: flex;\n\tjustify-content: center;\t\n\talign-items: center;\n}\n\n:host:not([checked]) > main > div > smoothly-icon,\n:host:not([intermediate]) > main > div > smoothly-icon {\n\tstroke: rgb(var(--smoothly-color-contrast));\n}\n\n:host[disabled] > main > div {\n\tborder: 1px solid rgb(var(--smoothly-color-contrast), 0.3);\n}\n\n::slotted([slot=expansion]) {\n\tdisplay: none;\n\tbackground-color: rgb(var(--smoothly-secondary-color));\n\tcolor: rgb(var(--smoothly-secondary-contrast));\n}\n\n[checked]::slotted([slot=expansion]) {\n\tdisplay: block;\n\tpadding: 0.5em;\n\tborder-radius: 5px;\n\tmargin: 0.5rem 0;\n}\n\n[checked]::slotted([slot=expansion])::before {\n\tcontent: \"\\25B2\";\n\tposition: relative;\n\ttop: -1.35em;\n\tleft: 2rem;\n\tcolor: rgb(var(--smoothly-secondary-color))\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from \"@stencil/core\"\nimport * as langly from \"langly\"\nimport { Clearable } from \"../filter/Clearable\"\nimport * as translation from \"./translation\"\n@Component({\n\ttag: \"smoothly-checkbox\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyCheckbox implements Clearable {\n\t@Element() element: HTMLElement\n\t@Prop() size: \"tiny\" | \"small\" | \"medium\" | \"large\" = \"tiny\"\n\t@Prop({ mutable: true, reflect: true }) checked = false\n\t@Prop({ mutable: true, reflect: true }) intermediate = false\n\t@Prop() name: string\n\t@Prop() value: any\n\t@Prop({ reflect: true }) disabled: boolean\n\t@Event() smoothlyInput: EventEmitter<Record<string, any>>\n\t@State() t: langly.Translate\n\n\tcomponentWillLoad() {\n\t\tthis.t = translation.create(this.element)\n\t}\n\n\t@Method()\n\tasync toggle(): Promise<void> {\n\t\tif (!this.disabled) {\n\t\t\tconst checked = this.intermediate || this.checked == false\n\t\t\tthis.smoothlyInput.emit({\n\t\t\t\t[this.name]: checked ? this.value : undefined,\n\t\t\t})\n\t\t\tthis.checked = checked\n\t\t}\n\t}\n\t@Method()\n\tasync clear() {\n\t\tthis.checked = false\n\t\tthis.smoothlyInput.emit({\n\t\t\t[this.name]: undefined,\n\t\t})\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<main>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\t\ttoolTip={this.t(!this.checked ? \"Select\" : \"De-select\")}\n\t\t\t\t\t\t\tonClick={e => {\n\t\t\t\t\t\t\t\tthis.toggle()\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\t\tname={\n\t\t\t\t\t\t\t\tthis.intermediate && !this.checked\n\t\t\t\t\t\t\t\t\t? \"remove-outline\"\n\t\t\t\t\t\t\t\t\t: this.checked && !this.intermediate\n\t\t\t\t\t\t\t\t\t? \"checkmark-outline\"\n\t\t\t\t\t\t\t\t\t: \"empty\"\n\t\t\t\t\t\t\t}></smoothly-icon>\n\t\t\t\t\t</div>\n\t\t\t\t\t<label htmlFor={this.name}>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</label>\n\t\t\t\t</main>\n\t\t\t\t<slot name=\"expansion\" />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n\tposition: fixed;\n\tleft: 0;\n\ttop: 0;\n\twidth: 100%;\n\theight: 100%;\n\tz-index: 1;\n\t/* stylelint-disable-next-line declaration-no-important */\n\tbackground: rgba(var(--smoothly-default-color), var(--smoothly-semitransparent)) !important;\n}\n:host[hidden] {\n\tdisplay: none;\n}\n:host > header {\n\tborder-top-left-radius: 8px;\n\tborder-top-right-radius: 8px;\n\tmargin-top: 2em;\n\tcolor: rgb(var(--smoothly-primary-contrast));\n\tbackground: rgb(var(--smoothly-primary-color));\n\tborder-color: rgb(var(--smoothly-primary-color));\n}\n:host:not([header]) header {\n\tborder: none;\n}\n:host > * {\n\tposition: relative;\n\tcolor: rgb(var(--smoothly-default-contrast));\n\tbackground-color: rgb(var(--smoothly-default-color));\n\tborder-color: rgb(var(--smoothly-color));\n\tborder-width: 1px;\n\tborder-style: solid;\n\tmax-width: 40em;\n\twidth: calc(100vw - 4em - 2px);\n\tmax-height: calc(100vh - 6em - 2px);\n\theight: auto;\n\tmargin-left: auto;\n\tmargin-right: auto;\n\tborder-collapse: collapse;\n}\n:host > main {\n\tborder-bottom-left-radius: 8px;\n\tborder-bottom-right-radius: 8px;\n\tmargin-bottom: 2em;\n\tborder: 1px solid rgb(var(--smoothly-default-contrast));\n\tbox-sizing: border-box;\n\toverflow: hidden;\n}\n:host:not([header]) main {\n\tborder-radius: 8px;\n}\n:host > * > smoothly-trigger {\n\tposition: absolute;\n\tright: -2em;\n\ttop: -2em;\n\tz-index: 1;\n\tborder-color: transparent;\n}\n:host > * > smoothly-trigger:hover {\n\tborder-color: transparent;\n}\n:host smoothly-icon {\n\tbackground-color: rgb(var(--smoothly-color));\n\tborder-radius: 50%;\n}\n:host > * > * {\n\tmargin: 10px;\n}\n","import { Component, h, Listen, Prop } from \"@stencil/core\"\nimport { Color, Trigger } from \"../../model\"\n\n@Component({\n\ttag: \"smoothly-dialog\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyDialog {\n\t@Prop({ reflect: true }) color: Color | undefined\n\t@Prop({ mutable: true, reflect: true }) open = true\n\t@Prop({ reflect: true }) closable = false\n\t@Prop({ reflect: true }) header: string | undefined\n\t@Listen(\"trigger\")\n\tTriggerListener(event: CustomEvent<Trigger>) {\n\t\tif (Trigger.is(event.detail) && event.detail.name == \"close\")\n\t\t\tthis.open = false\n\t}\n\thostData() {\n\t\treturn {\n\t\t\tstyle: {\n\t\t\t\tdisplay: this.open ? \"block\" : \"none\",\n\t\t\t},\n\t\t}\n\t}\n\trender() {\n\t\treturn [\n\t\t\t<header>\n\t\t\t\t{this.closable ? (\n\t\t\t\t\t<smoothly-trigger fill=\"clear\" name=\"close\">\n\t\t\t\t\t\t<smoothly-icon name=\"close-circle\" fill=\"solid\" color={this.color}></smoothly-icon>\n\t\t\t\t\t</smoothly-trigger>\n\t\t\t\t) : (\n\t\t\t\t\t[]\n\t\t\t\t)}\n\t\t\t\t{this.header ? <h1>{this.header}</h1> : <slot name=\"header\"></slot>}\n\t\t\t</header>,\n\t\t\t<main>\n\t\t\t\t<slot></slot>\n\t\t\t</main>,\n\t\t]\n\t}\n}\n//\n","import { Component, h } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-dialog-demo\",\n})\nexport class SmoothlyDialogDemo {\n\trender() {\n\t\treturn (\n\t\t\t<smoothly-dialog color=\"default\" style={{ \"margin-top\": \"6vh\" }} closable>\n\t\t\t\t<smoothly-frame url=\"https://www.wikipedia.org/\" name=\"parent\" style={{ height: \"80vh\" }}></smoothly-frame>\n\t\t\t</smoothly-dialog>\n\t\t)\n\t}\n}\n","function getForwardWordBreakIndex(str, index, wordRegex) {\n let result = 0;\n while (wordRegex.exec(str) != null) {\n result = wordRegex.lastIndex;\n if (wordRegex.lastIndex > index)\n break;\n }\n wordRegex.lastIndex <= index && (result = str.length);\n return result;\n}\nfunction getBackwardWordBreakIndex(str, index, wordRegex) {\n let result = 0;\n let execArray;\n while ((execArray = wordRegex.exec(str)) != null) {\n if (wordRegex.lastIndex - execArray[0].length < index)\n result = wordRegex.lastIndex - execArray[0].length;\n else\n break;\n }\n return result;\n}\nexport function getAdjecentWordBreakIndex(str, index, direction) {\n const wordRegex = /([\\wåäöüéáúíóßðœøæñµçþ_]+|[@-]+)/gi;\n return direction == \"backward\"\n ? getBackwardWordBreakIndex(str, index, wordRegex)\n : getForwardWordBreakIndex(str, index, wordRegex);\n}\n//# sourceMappingURL=getAdjecentWordBreakIndex.js.map","export var Selection;\n(function (Selection) {\n function getCursor(selection) {\n return selection.direction == \"backward\" ? selection.start : selection.end;\n }\n Selection.getCursor = getCursor;\n function getStalker(selection) {\n return selection.direction != \"backward\" ? selection.start : selection.end;\n }\n Selection.getStalker = getStalker;\n})(Selection || (Selection = {}));\n//# sourceMappingURL=Selection.js.map","export var State;\n(function (State) {\n function copy(state) {\n return {\n value: state.value,\n selection: { start: state.selection.start, end: state.selection.end, direction: state.selection.direction },\n };\n }\n State.copy = copy;\n})(State || (State = {}));\n//# sourceMappingURL=State.js.map","export class StateEditor {\n constructor(state) {\n this.value = state.value;\n this.selection = { start: state.selection?.start, end: state.selection?.end, direction: state.selection?.direction };\n }\n get(index, length = 1) {\n return this.value.substr(index, length);\n }\n is(index, ...character) {\n const c = this.get(index);\n return character.some(d => c == d);\n }\n isDigit(index) {\n const character = this.get(index);\n return character >= \"0\" && character <= \"9\";\n }\n match(matcher) {\n return this.value.match(matcher);\n }\n replace(start, end, value) {\n let result;\n if (typeof start == \"string\" && typeof end == \"string\") {\n let s;\n result = this;\n while ((s = result.value.indexOf(start)) > -1)\n result = result.replace(s, s + start.length, end);\n }\n else if (typeof start == \"number\" && typeof end == \"number\") {\n const state = {\n value: this.value,\n selection: { start: this.selection.start, end: this.selection.end, direction: this.selection.direction },\n };\n if (!value)\n value = \"\";\n state.value = this.value.slice(0, start) + value + this.value.slice(end, this.value.length);\n if (this.selection.start >= end)\n state.selection.start = this.selection.start + value.length - end + start;\n else if (this.selection.start > start && this.selection.start < end)\n state.selection.start = Math.min(this.selection.start, start + value.length);\n if (this.selection.end >= end)\n state.selection.end = this.selection.end + value.length - end + start;\n else if (this.selection.end > start && this.selection.end < end)\n state.selection.end = Math.min(this.selection.end, start + value.length);\n result = new StateEditor(state);\n }\n return result || this;\n }\n insert(index, value) {\n return this.replace(index, index, value);\n }\n append(value) {\n return this.insert(this.value.length, value);\n }\n prepend(value) {\n return this.insert(0, value);\n }\n suffix(value) {\n return new StateEditor({ value: this.value + value, selection: this.selection });\n }\n delete(start, end) {\n let result;\n if (!this.value)\n result = this;\n else if (typeof start == \"string\") {\n let s;\n result = this;\n while (start && (s = result.value.indexOf(start)) > -1)\n result = result.delete(s, s + start.length);\n }\n else\n result = this.replace(start, end || start + 1, \"\");\n return result;\n }\n truncate(end) {\n return this.value.length >= end ? this.delete(end, this.value.length) : this;\n }\n pad(length, padding, index) {\n let result = this;\n while (length > result.value.length + padding.length)\n result = result.insert(index, padding);\n if (length > result.value.length)\n result = result.insert(index, padding.substring(0, length - result.value.length));\n return result;\n }\n padEnd(length, padding) {\n return this.pad(length, padding, this.value.length);\n }\n padStart(length, padding) {\n return this.pad(length, padding, 0);\n }\n map(mapping) {\n let result = this;\n let j = 0;\n for (let i = 0; i < this.value.length; i++) {\n const replacement = mapping(this.get(i), i);\n result = result.replace(j, j + 1, replacement);\n j += replacement.length;\n }\n return result;\n }\n static copy(state) {\n return new StateEditor({ ...state });\n }\n static create() {\n return new StateEditor({ value: \"\", selection: { start: 0, end: 0 } });\n }\n static modify(state) {\n return new StateEditor(typeof state == \"string\" ? { value: state, selection: { start: state.length, end: state.length } } : state);\n }\n}\n//# sourceMappingURL=StateEditor.js.map","import { getAdjecentWordBreakIndex } from \"./getAdjecentWordBreakIndex\";\nimport { Selection } from \"./Selection\";\nimport { State } from \"./State\";\nimport { StateEditor } from \"./StateEditor\";\nexport var Action;\n(function (Action) {\n function apply(formatter, state, action) {\n let result = State.copy(formatter.unformat(StateEditor.copy(state)));\n if (state.autocomplete == \"cc-exp\" && /^\\d\\d \\/$/g.test(state.value))\n action?.key && (action.key = \"Backspace\");\n if (action) {\n if (action.ctrlKey || action.metaKey) {\n if (action.key == \"a\")\n select(result, 0, result.value.length, \"forward\");\n else if ([\"ArrowLeft\", \"ArrowRight\"].includes(action.key) && state?.type != \"password\")\n result = ctrlArrow(formatter, state, action);\n else if ([\"Delete\", \"Backspace\"].includes(action.key) && state?.type != \"password\")\n result = ctrlBackspaceDelete(formatter, state, action);\n }\n else if ([\"ArrowLeft\", \"ArrowRight\", \"Home\", \"End\"].includes(action.key))\n arrowHomeEnd(result, action);\n else if ([\"Delete\", \"Backspace\"].includes(action.key)) {\n result.selection.start == result.selection.end &&\n select(result, result.selection.start + (action.key == \"Backspace\" ? -1 : 0), result.selection.end + (action.key == \"Delete\" ? 1 : 0));\n erase(result);\n }\n else if (action.key != \"Unidentified\") {\n erase(result);\n formatter.allowed(action.key, result) && replace(result, action.key);\n }\n }\n return formatter.format(StateEditor.copy(result));\n }\n Action.apply = apply;\n function paste(formatter, state, pasted) {\n const result = State.copy(formatter.unformat(StateEditor.copy(state)));\n replace(result, pasted);\n return formatter.format(StateEditor.copy(result));\n }\n Action.paste = paste;\n function ctrlArrow(formatter, state, action) {\n let cursorPosition = Selection.getCursor(state.selection);\n let stalkPosition = Selection.getStalker(state.selection);\n cursorPosition = getAdjecentWordBreakIndex(state.value, cursorPosition, action.key == \"ArrowLeft\" ? \"backward\" : \"forward\");\n stalkPosition = action.shiftKey ? stalkPosition : cursorPosition;\n return State.copy(formatter.unformat(StateEditor.copy({\n ...state,\n selection: {\n start: Math.min(stalkPosition, cursorPosition),\n end: Math.max(stalkPosition, cursorPosition),\n direction: stalkPosition < cursorPosition ? \"forward\" : stalkPosition > cursorPosition ? \"backward\" : \"none\",\n },\n })));\n }\n function ctrlBackspaceDelete(formatter, state, action) {\n const cursorPosition = Selection.getCursor(state.selection);\n const adjecentIndex = getAdjecentWordBreakIndex(state.value, cursorPosition, action.key == \"Backspace\" ? \"backward\" : \"forward\");\n const result = State.copy(formatter.unformat(StateEditor.copy({\n ...state,\n selection: {\n start: Math.min(cursorPosition, adjecentIndex),\n end: Math.max(cursorPosition, adjecentIndex),\n direction: \"none\",\n },\n })));\n result.value = result.value.substring(0, result.selection.start) + result.value.substring(result.selection.end);\n result.selection.end = result.selection.start;\n return result;\n }\n function arrowHomeEnd(state, action) {\n let cursorPosition = Selection.getCursor(state.selection);\n let stalkPosition = Selection.getStalker(state.selection);\n cursorPosition =\n action.key == \"Home\"\n ? 0\n : action.key == \"End\"\n ? state.value.length\n : state.selection.start == state.selection.end || action.shiftKey\n ? Math.min(Math.max(cursorPosition + (action.key == \"ArrowLeft\" ? -1 : 1), 0), state.value.length)\n : action.key == \"ArrowLeft\"\n ? state.selection.start\n : state.selection.end;\n stalkPosition = action.shiftKey ? stalkPosition : cursorPosition;\n state.selection.direction =\n stalkPosition < cursorPosition ? \"forward\" : stalkPosition > cursorPosition ? \"backward\" : \"none\";\n state.selection.start = Math.min(stalkPosition, cursorPosition);\n state.selection.end = Math.max(stalkPosition, cursorPosition);\n }\n function select(state, from, to, direction) {\n state.selection.start = from;\n state.selection.end = to;\n direction && (state.selection.direction = direction);\n }\n function erase(state) {\n replace(state, \"\");\n }\n function replace(state, insertString) {\n state.value =\n state.value.substring(0, state.selection.start) + insertString + state.value.substring(state.selection.end);\n state.selection.start = state.selection.start + insertString.length;\n state.selection.end = state.selection.start;\n }\n})(Action || (Action = {}));\n//# sourceMappingURL=Action.js.map","import { StateEditor } from \"../StateEditor\";\nconst handlers = {};\nexport function add(type, create) {\n handlers[type] = create;\n}\nexport function get(type, ...argument) {\n const create = handlers[type];\n return create && create(argument);\n}\nexport function format(data, type, ...argument) {\n const handler = get(type, ...argument);\n return handler\n ? handler.format(StateEditor.modify(handler.toString(typeof data == \"string\" ? parse(data, type, argument) : data)))\n .value\n : \"\";\n}\nexport function parse(value, type, ...argument) {\n const handler = get(type, argument);\n return handler ? handler.fromString(handler.unformat(StateEditor.modify(value)).value) : undefined;\n}\n//# sourceMappingURL=base.js.map","import { add } from \"./base\";\nclass Handler {\n toString(data) {\n return typeof data == \"string\" ? data : \"\";\n }\n fromString(value) {\n return typeof value == \"string\" ? value : undefined;\n }\n format(unformatted) {\n return { ...unformatted, type: \"tel\", autocomplete: \"cc-csc\", length: [3, 3], pattern: /^\\d{3}$/ };\n }\n unformat(formatted) {\n return formatted;\n }\n allowed(symbol, state) {\n return state.value.length < 3 && symbol >= \"0\" && symbol <= \"9\";\n }\n}\nadd(\"card-csc\", () => new Handler());\n//# sourceMappingURL=card-csc.js.map","import { add } from \"./base\";\nclass Handler {\n toString(data) {\n return Array.isArray(data) && data.length == 2 && typeof data[0] == \"number\" && typeof data[1] == \"number\"\n ? data[0].toString().padStart(2, \"0\") + data[1].toString().padStart(2, \"0\")\n : \"\";\n }\n fromString(value) {\n return typeof value == \"string\" && value.length == 4\n ? [Number.parseInt(value.slice(0, 2)), Number.parseInt(value.slice(2))]\n : undefined;\n }\n format(unformatted) {\n let result = unformatted;\n if (unformatted.value.length > 0 && !unformatted.is(0, \"0\", \"1\"))\n result = result.prepend(\"0\");\n if (result.value.length > 1)\n result = result.insert(2, \" / \");\n return { ...result, type: \"tel\", autocomplete: \"cc-exp\", length: [7, 7], pattern: /^(0[1-9]|1[012]) \\/ \\d\\d$/ };\n }\n unformat(formatted) {\n return formatted.delete(\" / \");\n }\n allowed(symbol, state) {\n return state.value.length < 4 && symbol >= \"0\" && symbol <= \"9\";\n }\n}\nadd(\"card-expires\", () => new Handler());\n//# sourceMappingURL=card-expires.js.map","import { add } from \"./base\";\nclass Handler {\n toString(data) {\n return typeof data == \"string\" ? data : \"\";\n }\n fromString(value) {\n return typeof value == \"string\" ? value : undefined;\n }\n format(unformatted) {\n const issuer = getIssuer(unformatted.value);\n const result = unformatted.map((symbol, index) => (index != 0 && index % 4 == 0 && index + 1 < issuer.length[0] ? \" \" : \"\") + symbol);\n return {\n ...result,\n type: \"tel\",\n autocomplete: \"cc-number\",\n length: issuer.length.slice(1),\n pattern: issuer.verification,\n classes: [\"issuer-\" + issuer.icon],\n };\n }\n unformat(formatted) {\n return formatted.delete(\" \");\n }\n allowed(symbol, state) {\n const issuer = getIssuer(state.value);\n return symbol >= \"0\" && symbol <= \"9\" && state.value.length < issuer.length[0];\n }\n}\nadd(\"card-number\", () => new Handler());\nfunction getIssuer(value) {\n let result = defaultIssuer;\n for (const key in issuers)\n if (Object.prototype.hasOwnProperty.call(issuers, key) && issuers[key].identification.test(value)) {\n result = { ...defaultIssuer, name: key, ...issuers[key] };\n break;\n }\n return result;\n}\nconst defaultIssuer = {\n name: \"unknown\",\n verification: /^\\d{19}$/,\n identification: /^\\d/,\n length: [16, 16, 19],\n icon: \"generic\",\n};\nconst issuers = {\n amex: {\n verification: /^3[47][0-9]{2}\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{3}$/,\n identification: /^3[47]/,\n length: [15, 18, 18],\n icon: \"amex\",\n },\n dankort: {\n verification: /^(5019)\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{4}$/,\n identification: /^(5019)\\d+/,\n length: [16, 19, 19],\n icon: \"generic\",\n },\n diners: {\n verification: /^3(?:0[0-5]|[68][0-9])[0-9]\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{2}$/,\n identification: /^3(?:0[0-5]|[68][0-9])/,\n length: [14, 17, 17],\n icon: \"diners\",\n },\n discover: {\n verification: /^6(?:011|5[0-9]{2})\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{4}$/,\n identification: /^6(?:011|5[0-9]{2})/,\n length: [16, 19, 19],\n icon: \"generic\",\n },\n electron: {\n verification: /^((4026|4405|4508|4844|4913|4917)\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{4})|((4175)\\s(00)[0-9]{2}\\s[0-9]{4}\\s[0-9]{4})$/,\n identification: /^(4026|417500|4405|4508|4844|4913|4917)/,\n length: [16, 19, 19],\n icon: \"generic\",\n },\n interpayment: {\n verification: /^(636)[0-9]\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{4}$/,\n identification: /^(636)/,\n length: [16, 19, 19],\n icon: \"generic\",\n },\n jcb: {\n verification: /^((?:2131|1800)\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{4})|(35[0-9]{2}\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{4})$/,\n identification: /^(?:2131|1800|35\\d{3})/,\n length: [16, 19, 19],\n icon: \"generic\",\n },\n unionpay: {\n verification: /^(62|88)[0-9]{2}\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{4}$/,\n identification: /^(62|88)/,\n length: [16, 19, 19],\n icon: \"generic\",\n },\n maestro: {\n verification: /^(5018|5020|5038|5612|5893|6304|6759|6761|6762|6763|0604|6390)\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{4}$/,\n identification: /^(5018|5020|5038|5612|5893|6304|6759|6761|6762|6763|0604|6390)/,\n length: [16, 19, 19],\n icon: \"maestro\",\n },\n mastercard: {\n verification: /^5[1-5][0-9]{2}\\s[0-9]{4}\\s[0-9]{4}\\s[0-9]{4}$/,\n identification: /^5[1-5][0-9]/,\n length: [16, 19, 19],\n icon: \"mastercard\",\n },\n visa: {\n verification: /^4[0-9]{3}\\s[0-9]{4}\\s[0-9]{4}\\s[0-9](?:[0-9]{3})?$/,\n identification: /^4[0-9]/,\n length: [16, 16, 19],\n icon: \"visa\",\n },\n};\n//# sourceMappingURL=card-number.js.map","export var CallingCode;\n(function (CallingCode) {\n function is(value) {\n return (typeof value == \"string\" &&\n value.length <= 5 &&\n (value == \"+93\" ||\n value == \"+358\" ||\n value == \"+355\" ||\n value == \"+213\" ||\n value == \"+1684\" ||\n value == \"+376\" ||\n value == \"+244\" ||\n value == \"+1264\" ||\n value == \"+672\" ||\n value == \"+1268\" ||\n value == \"+54\" ||\n value == \"+374\" ||\n value == \"+297\" ||\n value == \"+61\" ||\n value == \"+43\" ||\n value == \"+994\" ||\n value == \"+1242\" ||\n value == \"+973\" ||\n value == \"+880\" ||\n value == \"+1246\" ||\n value == \"+375\" ||\n value == \"+32\" ||\n value == \"+501\" ||\n value == \"+229\" ||\n value == \"+1441\" ||\n value == \"+975\" ||\n value == \"+591\" ||\n value == \"+387\" ||\n value == \"+267\" ||\n value == \"+55\" ||\n value == \"+246\" ||\n value == \"+673\" ||\n value == \"+359\" ||\n value == \"+226\" ||\n value == \"+257\" ||\n value == \"+855\" ||\n value == \"+237\" ||\n value == \"+1\" ||\n value == \"+238\" ||\n value == \"+345\" ||\n value == \"+236\" ||\n value == \"+235\" ||\n value == \"+56\" ||\n value == \"+86\" ||\n value == \"+61\" ||\n value == \"+61\" ||\n value == \"+57\" ||\n value == \"+269\" ||\n value == \"+242\" ||\n value == \"+243\" ||\n value == \"+682\" ||\n value == \"+506\" ||\n value == \"+225\" ||\n value == \"+385\" ||\n value == \"+53\" ||\n value == \"+357\" ||\n value == \"+420\" ||\n value == \"+45\" ||\n value == \"+253\" ||\n value == \"+1767\" ||\n value == \"+1849\" ||\n value == \"+593\" ||\n value == \"+20\" ||\n value == \"+503\" ||\n value == \"+240\" ||\n value == \"+291\" ||\n value == \"+372\" ||\n value == \"+251\" ||\n value == \"+500\" ||\n value == \"+298\" ||\n value == \"+679\" ||\n value == \"+358\" ||\n value == \"+33\" ||\n value == \"+594\" ||\n value == \"+689\" ||\n value == \"+241\" ||\n value == \"+220\" ||\n value == \"+995\" ||\n value == \"+49\" ||\n value == \"+233\" ||\n value == \"+350\" ||\n value == \"+30\" ||\n value == \"+299\" ||\n value == \"+1473\" ||\n value == \"+590\" ||\n value == \"+1671\" ||\n value == \"+502\" ||\n value == \"+44\" ||\n value == \"+224\" ||\n value == \"+245\" ||\n value == \"+592\" ||\n value == \"+509\" ||\n value == \"+379\" ||\n value == \"+504\" ||\n value == \"+852\" ||\n value == \"+36\" ||\n value == \"+354\" ||\n value == \"+91\" ||\n value == \"+62\" ||\n value == \"+98\" ||\n value == \"+964\" ||\n value == \"+353\" ||\n value == \"+44\" ||\n value == \"+972\" ||\n value == \"+39\" ||\n value == \"+1876\" ||\n value == \"+81\" ||\n value == \"+44\" ||\n value == \"+962\" ||\n value == \"+77\" ||\n value == \"+254\" ||\n value == \"+686\" ||\n value == \"+850\" ||\n value == \"+82\" ||\n value == \"+965\" ||\n value == \"+996\" ||\n value == \"+856\" ||\n value == \"+371\" ||\n value == \"+961\" ||\n value == \"+266\" ||\n value == \"+231\" ||\n value == \"+218\" ||\n value == \"+423\" ||\n value == \"+370\" ||\n value == \"+352\" ||\n value == \"+853\" ||\n value == \"+389\" ||\n value == \"+261\" ||\n value == \"+265\" ||\n value == \"+60\" ||\n value == \"+960\" ||\n value == \"+223\" ||\n value == \"+356\" ||\n value == \"+692\" ||\n value == \"+596\" ||\n value == \"+222\" ||\n value == \"+230\" ||\n value == \"+262\" ||\n value == \"+52\" ||\n value == \"+691\" ||\n value == \"+373\" ||\n value == \"+377\" ||\n value == \"+976\" ||\n value == \"+382\" ||\n value == \"+1664\" ||\n value == \"+212\" ||\n value == \"+258\" ||\n value == \"+95\" ||\n value == \"+264\" ||\n value == \"+674\" ||\n value == \"+977\" ||\n value == \"+31\" ||\n value == \"+599\" ||\n value == \"+687\" ||\n value == \"+64\" ||\n value == \"+505\" ||\n value == \"+227\" ||\n value == \"+234\" ||\n value == \"+683\" ||\n value == \"+672\" ||\n value == \"+1670\" ||\n value == \"+47\" ||\n value == \"+968\" ||\n value == \"+92\" ||\n value == \"+680\" ||\n value == \"+970\" ||\n value == \"+507\" ||\n value == \"+675\" ||\n value == \"+595\" ||\n value == \"+51\" ||\n value == \"+63\" ||\n value == \"+872\" ||\n value == \"+48\" ||\n value == \"+351\" ||\n value == \"+1939\" ||\n value == \"+974\" ||\n value == \"+40\" ||\n value == \"+7\" ||\n value == \"+250\" ||\n value == \"+262\" ||\n value == \"+590\" ||\n value == \"+290\" ||\n value == \"+1869\" ||\n value == \"+1758\" ||\n value == \"+590\" ||\n value == \"+508\" ||\n value == \"+1784\" ||\n value == \"+685\" ||\n value == \"+378\" ||\n value == \"+239\" ||\n value == \"+966\" ||\n value == \"+221\" ||\n value == \"+381\" ||\n value == \"+248\" ||\n value == \"+232\" ||\n value == \"+65\" ||\n value == \"+421\" ||\n value == \"+386\" ||\n value == \"+677\" ||\n value == \"+252\" ||\n value == \"+27\" ||\n value == \"+211\" ||\n value == \"+500\" ||\n value == \"+34\" ||\n value == \"+94\" ||\n value == \"+249\" ||\n value == \"+597\" ||\n value == \"+47\" ||\n value == \"+268\" ||\n value == \"+46\" ||\n value == \"+41\" ||\n value == \"+963\" ||\n value == \"+886\" ||\n value == \"+992\" ||\n value == \"+255\" ||\n value == \"+66\" ||\n value == \"+670\" ||\n value == \"+228\" ||\n value == \"+690\" ||\n value == \"+676\" ||\n value == \"+1868\" ||\n value == \"+216\" ||\n value == \"+90\" ||\n value == \"+993\" ||\n value == \"+1649\" ||\n value == \"+688\" ||\n value == \"+256\" ||\n value == \"+380\" ||\n value == \"+971\" ||\n value == \"+44\" ||\n value == \"+1\" ||\n value == \"+598\" ||\n value == \"+998\" ||\n value == \"+678\" ||\n value == \"+58\" ||\n value == \"+84\" ||\n value == \"+1284\" ||\n value == \"+1340\" ||\n value == \"+681\" ||\n value == \"+967\" ||\n value == \"+260\" ||\n value == \"+263\"));\n }\n CallingCode.is = is;\n function from(country) {\n return alpha2toCallingCode[country];\n }\n CallingCode.from = from;\n function to(callingCode) {\n return callingCodetoAlpha2[callingCode];\n }\n CallingCode.to = to;\n function seperate(phoneNumber) {\n let result = [undefined, phoneNumber];\n if (phoneNumber.substring(0, 1) == \"+\") {\n for (let end = 5; end > 1; end--) {\n const callingCode = phoneNumber.substring(0, end);\n if (CallingCode.is(callingCode)) {\n result = [callingCode, phoneNumber.substring(end)];\n break;\n }\n }\n }\n return result;\n }\n CallingCode.seperate = seperate;\n})(CallingCode || (CallingCode = {}));\nconst callingCodetoAlpha2 = {\n \"+93\": \"AF\",\n \"+358\": [\"FI\", \"AX\"],\n \"+355\": \"AL\",\n \"+213\": \"DZ\",\n \"+1684\": \"AS\",\n \"+376\": \"AD\",\n \"+244\": \"AO\",\n \"+1264\": \"AI\",\n \"+672\": [\"NF\", \"AQ\"],\n \"+1268\": \"AG\",\n \"+54\": \"AR\",\n \"+374\": \"AM\",\n \"+297\": \"AW\",\n \"+61\": [\"AU\", \"CX\", \"CC\"],\n \"+43\": \"AT\",\n \"+994\": \"AZ\",\n \"+1242\": \"BS\",\n \"+973\": \"BH\",\n \"+880\": \"BD\",\n \"+1246\": \"BB\",\n \"+375\": \"BY\",\n \"+32\": \"BE\",\n \"+501\": \"BZ\",\n \"+229\": \"BJ\",\n \"+1441\": \"BM\",\n \"+975\": \"BT\",\n \"+591\": \"BO\",\n \"+599\": \"BQ\",\n \"+387\": \"BA\",\n \"+267\": \"BW\",\n \"+55\": \"BR\",\n \"+246\": \"IO\",\n \"+673\": \"BN\",\n \"+359\": \"BG\",\n \"+226\": \"BF\",\n \"+257\": \"BI\",\n \"+855\": \"KH\",\n \"+237\": \"CM\",\n \"+1\": [\"US\", \"CA\"],\n \"+238\": \"CV\",\n \"+345\": \"KY\",\n \"+236\": \"CF\",\n \"+235\": \"TD\",\n \"+56\": \"CL\",\n \"+86\": \"CN\",\n \"+57\": \"CO\",\n \"+269\": \"KM\",\n \"+242\": \"CG\",\n \"+243\": \"CD\",\n \"+682\": \"CK\",\n \"+506\": \"CR\",\n \"+225\": \"CI\",\n \"+385\": \"HR\",\n \"+53\": \"CU\",\n \"+357\": \"CY\",\n \"+420\": \"CZ\",\n \"+45\": \"DK\",\n \"+253\": \"DJ\",\n \"+1767\": \"DM\",\n \"+1849\": \"DO\",\n \"+593\": \"EC\",\n \"+20\": \"EG\",\n \"+503\": \"SV\",\n \"+240\": \"GQ\",\n \"+291\": \"ER\",\n \"+372\": \"EE\",\n \"+251\": \"ET\",\n \"+500\": [\"FK\", \"GS\"],\n \"+298\": \"FO\",\n \"+679\": \"FJ\",\n \"+33\": \"FR\",\n \"+594\": \"GF\",\n \"+689\": \"PF\",\n \"+241\": \"GA\",\n \"+220\": \"GM\",\n \"+995\": \"GE\",\n \"+49\": \"DE\",\n \"+233\": \"GH\",\n \"+350\": \"GI\",\n \"+30\": \"GR\",\n \"+299\": \"GL\",\n \"+1473\": \"GD\",\n \"+590\": [\"GP\", \"BL\", \"MF\"],\n \"+1671\": \"GU\",\n \"+502\": \"GT\",\n \"+44\": [\"GB\", \"JE\", \"IM\", \"GG\"],\n \"+224\": \"GN\",\n \"+245\": \"GW\",\n \"+592\": \"GY\",\n \"+595\": \"PY\",\n \"+509\": \"HT\",\n \"+379\": \"VA\",\n \"+504\": \"HN\",\n \"+852\": \"HK\",\n \"+36\": \"HU\",\n \"+354\": \"IS\",\n \"+91\": \"IN\",\n \"+62\": \"ID\",\n \"+98\": \"IR\",\n \"+964\": \"IQ\",\n \"+353\": \"IE\",\n \"+972\": \"IL\",\n \"+39\": \"IT\",\n \"+1876\": \"JM\",\n \"+81\": \"JP\",\n \"+962\": \"JO\",\n \"+77\": \"KZ\",\n \"+254\": \"KE\",\n \"+686\": \"KI\",\n \"+850\": \"KP\",\n \"+82\": \"KR\",\n \"+965\": \"KW\",\n \"+996\": \"KG\",\n \"+856\": \"LA\",\n \"+371\": \"LV\",\n \"+961\": \"LB\",\n \"+266\": \"LS\",\n \"+231\": \"LR\",\n \"+218\": \"LY\",\n \"+423\": \"LI\",\n \"+370\": \"LT\",\n \"+352\": \"LU\",\n \"+853\": \"MO\",\n \"+389\": \"MK\",\n \"+261\": \"MG\",\n \"+265\": \"MW\",\n \"+60\": \"MY\",\n \"+960\": \"MV\",\n \"+223\": \"ML\",\n \"+356\": \"MT\",\n \"+692\": \"MH\",\n \"+596\": \"MQ\",\n \"+222\": \"MR\",\n \"+230\": \"MU\",\n \"+262\": [\"RE\", \"YT\"],\n \"+52\": \"MX\",\n \"+691\": \"FM\",\n \"+373\": \"MD\",\n \"+377\": \"MC\",\n \"+976\": \"MN\",\n \"+382\": \"ME\",\n \"+1664\": \"MS\",\n \"+212\": \"MA\",\n \"+258\": \"MZ\",\n \"+95\": \"MM\",\n \"+264\": \"NA\",\n \"+674\": \"NR\",\n \"+977\": \"NP\",\n \"+31\": \"NL\",\n \"+687\": \"NC\",\n \"+64\": \"NZ\",\n \"+505\": \"NI\",\n \"+227\": \"NE\",\n \"+234\": \"NG\",\n \"+683\": \"NU\",\n \"+1670\": \"MP\",\n \"+47\": [\"NO\", \"SJ\"],\n \"+968\": \"OM\",\n \"+92\": \"PK\",\n \"+680\": \"PW\",\n \"+970\": \"PS\",\n \"+507\": \"PA\",\n \"+675\": \"PG\",\n \"+51\": \"PE\",\n \"+63\": \"PH\",\n \"+872\": \"PN\",\n \"+48\": \"PL\",\n \"+351\": \"PT\",\n \"+1939\": \"PR\",\n \"+974\": \"QA\",\n \"+40\": \"RO\",\n \"+7\": \"RU\",\n \"+250\": \"RW\",\n \"+290\": \"SH\",\n \"+1869\": \"KN\",\n \"+1758\": \"LC\",\n \"+508\": \"PM\",\n \"+1784\": \"VC\",\n \"+685\": \"WS\",\n \"+378\": \"SM\",\n \"+239\": \"ST\",\n \"+966\": \"SA\",\n \"+221\": \"SN\",\n \"+381\": \"RS\",\n \"+248\": \"SC\",\n \"+232\": \"SL\",\n \"+65\": \"SG\",\n \"+421\": \"SK\",\n \"+386\": \"SI\",\n \"+677\": \"SB\",\n \"+252\": \"SO\",\n \"+27\": \"ZA\",\n \"+211\": \"SS\",\n \"+34\": \"ES\",\n \"+94\": \"LK\",\n \"+249\": \"SD\",\n \"+597\": \"SR\",\n \"+268\": \"SZ\",\n \"+46\": \"SE\",\n \"+41\": \"CH\",\n \"+963\": \"SY\",\n \"+886\": \"TW\",\n \"+992\": \"TJ\",\n \"+255\": \"TZ\",\n \"+66\": \"TH\",\n \"+670\": \"TL\",\n \"+228\": \"TG\",\n \"+690\": \"TK\",\n \"+676\": \"TO\",\n \"+1868\": \"TT\",\n \"+216\": \"TN\",\n \"+90\": \"TR\",\n \"+993\": \"TM\",\n \"+1649\": \"TC\",\n \"+688\": \"TV\",\n \"+256\": \"UG\",\n \"+380\": \"UA\",\n \"+971\": \"AE\",\n \"+598\": \"UY\",\n \"+998\": \"UZ\",\n \"+678\": \"VU\",\n \"+58\": \"VE\",\n \"+84\": \"VN\",\n \"+1284\": \"VG\",\n \"+1340\": \"VI\",\n \"+681\": \"WF\",\n \"+967\": \"YE\",\n \"+260\": \"ZM\",\n \"+263\": \"ZW\",\n};\nconst alpha2toCallingCode = {\n AF: \"+93\",\n AX: \"+358\",\n AL: \"+355\",\n DZ: \"+213\",\n AS: \"+1684\",\n AD: \"+376\",\n AO: \"+244\",\n AI: \"+1264\",\n AQ: \"+672\",\n AG: \"+1268\",\n AR: \"+54\",\n AM: \"+374\",\n AW: \"+297\",\n AU: \"+61\",\n AT: \"+43\",\n AZ: \"+994\",\n BS: \"+1242\",\n BH: \"+973\",\n BD: \"+880\",\n BB: \"+1246\",\n BY: \"+375\",\n BE: \"+32\",\n BZ: \"+501\",\n BJ: \"+229\",\n BM: \"+1441\",\n BT: \"+975\",\n BO: \"+591\",\n BQ: \"+599\",\n BA: \"+387\",\n BW: \"+267\",\n BR: \"+55\",\n IO: \"+246\",\n BN: \"+673\",\n BG: \"+359\",\n BF: \"+226\",\n BI: \"+257\",\n KH: \"+855\",\n CM: \"+237\",\n CA: \"+1\",\n CV: \"+238\",\n KY: \"+345\",\n CF: \"+236\",\n TD: \"+235\",\n CL: \"+56\",\n CN: \"+86\",\n CX: \"+61\",\n CC: \"+61\",\n CO: \"+57\",\n KM: \"+269\",\n CG: \"+242\",\n CD: \"+243\",\n CK: \"+682\",\n CR: \"+506\",\n CI: \"+225\",\n HR: \"+385\",\n CU: \"+53\",\n CY: \"+357\",\n CZ: \"+420\",\n DK: \"+45\",\n DJ: \"+253\",\n DM: \"+1767\",\n DO: \"+1849\",\n EC: \"+593\",\n EG: \"+20\",\n SV: \"+503\",\n GQ: \"+240\",\n ER: \"+291\",\n EE: \"+372\",\n ET: \"+251\",\n FK: \"+500\",\n FO: \"+298\",\n FJ: \"+679\",\n FI: \"+358\",\n FR: \"+33\",\n GF: \"+594\",\n PF: \"+689\",\n GA: \"+241\",\n GM: \"+220\",\n GE: \"+995\",\n DE: \"+49\",\n GH: \"+233\",\n GI: \"+350\",\n GR: \"+30\",\n GL: \"+299\",\n GD: \"+1473\",\n GP: \"+590\",\n GU: \"+1671\",\n GT: \"+502\",\n GG: \"+44\",\n GN: \"+224\",\n GW: \"+245\",\n GY: \"+592\",\n HT: \"+509\",\n VA: \"+379\",\n HN: \"+504\",\n HK: \"+852\",\n HU: \"+36\",\n IS: \"+354\",\n IN: \"+91\",\n ID: \"+62\",\n IR: \"+98\",\n IQ: \"+964\",\n IE: \"+353\",\n IM: \"+44\",\n IL: \"+972\",\n IT: \"+39\",\n JM: \"+1876\",\n JP: \"+81\",\n JE: \"+44\",\n JO: \"+962\",\n KZ: \"+77\",\n KE: \"+254\",\n KI: \"+686\",\n KP: \"+850\",\n KR: \"+82\",\n KW: \"+965\",\n KG: \"+996\",\n LA: \"+856\",\n LV: \"+371\",\n LB: \"+961\",\n LS: \"+266\",\n LR: \"+231\",\n LY: \"+218\",\n LI: \"+423\",\n LT: \"+370\",\n LU: \"+352\",\n MO: \"+853\",\n MK: \"+389\",\n MG: \"+261\",\n MW: \"+265\",\n MY: \"+60\",\n MV: \"+960\",\n ML: \"+223\",\n MT: \"+356\",\n MH: \"+692\",\n MQ: \"+596\",\n MR: \"+222\",\n MU: \"+230\",\n YT: \"+262\",\n MX: \"+52\",\n FM: \"+691\",\n MD: \"+373\",\n MC: \"+377\",\n MN: \"+976\",\n ME: \"+382\",\n MS: \"+1664\",\n MA: \"+212\",\n MZ: \"+258\",\n MM: \"+95\",\n NA: \"+264\",\n NR: \"+674\",\n NP: \"+977\",\n NL: \"+31\",\n NC: \"+687\",\n NZ: \"+64\",\n NI: \"+505\",\n NE: \"+227\",\n NG: \"+234\",\n NU: \"+683\",\n NF: \"+672\",\n MP: \"+1670\",\n NO: \"+47\",\n OM: \"+968\",\n PK: \"+92\",\n PW: \"+680\",\n PS: \"+970\",\n PA: \"+507\",\n PG: \"+675\",\n PY: \"+595\",\n PE: \"+51\",\n PH: \"+63\",\n PN: \"+872\",\n PL: \"+48\",\n PT: \"+351\",\n PR: \"+1939\",\n QA: \"+974\",\n RO: \"+40\",\n RU: \"+7\",\n RW: \"+250\",\n RE: \"+262\",\n BL: \"+590\",\n SH: \"+290\",\n KN: \"+1869\",\n LC: \"+1758\",\n MF: \"+590\",\n PM: \"+508\",\n VC: \"+1784\",\n WS: \"+685\",\n SM: \"+378\",\n ST: \"+239\",\n SA: \"+966\",\n SN: \"+221\",\n RS: \"+381\",\n SC: \"+248\",\n SL: \"+232\",\n SG: \"+65\",\n SK: \"+421\",\n SI: \"+386\",\n SB: \"+677\",\n SO: \"+252\",\n ZA: \"+27\",\n SS: \"+211\",\n GS: \"+500\",\n ES: \"+34\",\n LK: \"+94\",\n SD: \"+249\",\n SR: \"+597\",\n SJ: \"+47\",\n SZ: \"+268\",\n SE: \"+46\",\n CH: \"+41\",\n SY: \"+963\",\n TW: \"+886\",\n TJ: \"+992\",\n TZ: \"+255\",\n TH: \"+66\",\n TL: \"+670\",\n TG: \"+228\",\n TK: \"+690\",\n TO: \"+676\",\n TT: \"+1868\",\n TN: \"+216\",\n TR: \"+90\",\n TM: \"+993\",\n TC: \"+1649\",\n TV: \"+688\",\n UG: \"+256\",\n UA: \"+380\",\n AE: \"+971\",\n GB: \"+44\",\n US: \"+1\",\n UY: \"+598\",\n UZ: \"+998\",\n VU: \"+678\",\n VE: \"+58\",\n VN: \"+84\",\n VG: \"+1284\",\n VI: \"+1340\",\n WF: \"+681\",\n YE: \"+967\",\n ZM: \"+260\",\n ZW: \"+263\",\n};\n//# sourceMappingURL=CallingCode.js.map","export var Alpha2;\n(function (Alpha2) {\n Alpha2.types = [\n \"AD\",\n \"AE\",\n \"AF\",\n \"AG\",\n \"AI\",\n \"AL\",\n \"AM\",\n \"AO\",\n \"AQ\",\n \"AR\",\n \"AS\",\n \"AT\",\n \"AU\",\n \"AW\",\n \"AX\",\n \"AZ\",\n \"BA\",\n \"BB\",\n \"BD\",\n \"BE\",\n \"BF\",\n \"BG\",\n \"BH\",\n \"BI\",\n \"BJ\",\n \"BL\",\n \"BM\",\n \"BN\",\n \"BO\",\n \"BQ\",\n \"BR\",\n \"BS\",\n \"BT\",\n \"BV\",\n \"BW\",\n \"BY\",\n \"BZ\",\n \"CA\",\n \"CC\",\n \"CD\",\n \"CF\",\n \"CG\",\n \"CH\",\n \"CI\",\n \"CK\",\n \"CL\",\n \"CM\",\n \"CN\",\n \"CO\",\n \"CR\",\n \"CU\",\n \"CV\",\n \"CW\",\n \"CX\",\n \"CY\",\n \"CZ\",\n \"DE\",\n \"DJ\",\n \"DK\",\n \"DM\",\n \"DO\",\n \"DZ\",\n \"EC\",\n \"EE\",\n \"EG\",\n \"EH\",\n \"ER\",\n \"ES\",\n \"ET\",\n \"FI\",\n \"FJ\",\n \"FK\",\n \"FM\",\n \"FO\",\n \"FR\",\n \"GA\",\n \"GB\",\n \"GD\",\n \"GE\",\n \"GF\",\n \"GG\",\n \"GH\",\n \"GI\",\n \"GL\",\n \"GM\",\n \"GN\",\n \"GP\",\n \"GQ\",\n \"GR\",\n \"GS\",\n \"GT\",\n \"GU\",\n \"GW\",\n \"GY\",\n \"HK\",\n \"HM\",\n \"HN\",\n \"HR\",\n \"HT\",\n \"HU\",\n \"ID\",\n \"IE\",\n \"IL\",\n \"IM\",\n \"IN\",\n \"IO\",\n \"IQ\",\n \"IR\",\n \"IS\",\n \"IT\",\n \"JE\",\n \"JM\",\n \"JO\",\n \"JP\",\n \"KE\",\n \"KG\",\n \"KH\",\n \"KI\",\n \"KM\",\n \"KN\",\n \"KP\",\n \"KR\",\n \"KW\",\n \"KY\",\n \"KZ\",\n \"LA\",\n \"LB\",\n \"LC\",\n \"LI\",\n \"LK\",\n \"LR\",\n \"LS\",\n \"LT\",\n \"LU\",\n \"LV\",\n \"LY\",\n \"MA\",\n \"MC\",\n \"MD\",\n \"ME\",\n \"MF\",\n \"MG\",\n \"MH\",\n \"MK\",\n \"ML\",\n \"MM\",\n \"MN\",\n \"MO\",\n \"MP\",\n \"MQ\",\n \"MR\",\n \"MS\",\n \"MT\",\n \"MU\",\n \"MV\",\n \"MW\",\n \"MX\",\n \"MY\",\n \"MZ\",\n \"NA\",\n \"NC\",\n \"NE\",\n \"NF\",\n \"NG\",\n \"NI\",\n \"NL\",\n \"NO\",\n \"NP\",\n \"NR\",\n \"NU\",\n \"NZ\",\n \"OM\",\n \"PA\",\n \"PE\",\n \"PF\",\n \"PG\",\n \"PH\",\n \"PK\",\n \"PL\",\n \"PM\",\n \"PN\",\n \"PR\",\n \"PS\",\n \"PT\",\n \"PW\",\n \"PY\",\n \"QA\",\n \"RE\",\n \"RO\",\n \"RS\",\n \"RU\",\n \"RW\",\n \"SA\",\n \"SB\",\n \"SC\",\n \"SD\",\n \"SE\",\n \"SG\",\n \"SH\",\n \"SI\",\n \"SJ\",\n \"SK\",\n \"SL\",\n \"SM\",\n \"SN\",\n \"SO\",\n \"SR\",\n \"SS\",\n \"ST\",\n \"SV\",\n \"SX\",\n \"SY\",\n \"SZ\",\n \"TC\",\n \"TD\",\n \"TF\",\n \"TG\",\n \"TH\",\n \"TJ\",\n \"TK\",\n \"TL\",\n \"TM\",\n \"TN\",\n \"TO\",\n \"TR\",\n \"TT\",\n \"TV\",\n \"TW\",\n \"TZ\",\n \"UA\",\n \"UG\",\n \"UM\",\n \"US\",\n \"UY\",\n \"UZ\",\n \"VA\",\n \"VC\",\n \"VE\",\n \"VG\",\n \"VI\",\n \"VN\",\n \"VU\",\n \"WF\",\n \"WS\",\n \"XK\",\n \"YE\",\n \"YT\",\n \"ZA\",\n \"ZM\",\n \"ZW\",\n ];\n function is(value) {\n return Alpha2.types.includes(value);\n }\n Alpha2.is = is;\n function from(country) {\n return typeof country == \"number\" ? numericToAlpha2[country] : alpha3ToAlpha2[country];\n }\n Alpha2.from = from;\n function isEEA(country) {\n const eea = [\n \"AT\",\n \"BE\",\n \"BG\",\n \"HR\",\n \"CY\",\n \"DK\",\n \"EE\",\n \"FI\",\n \"FR\",\n \"DE\",\n \"GR\",\n \"HU\",\n \"IS\",\n \"IE\",\n \"IT\",\n \"LV\",\n \"LT\",\n \"MT\",\n \"NL\",\n \"NO\",\n \"PL\",\n \"PT\",\n \"RO\",\n \"SI\",\n \"ES\",\n \"SE\",\n \"LI\",\n \"LU\",\n \"SK\",\n \"CZ\",\n ];\n return eea.includes(country);\n }\n Alpha2.isEEA = isEEA;\n})(Alpha2 || (Alpha2 = {}));\nconst numericToAlpha2 = {\n \"4\": \"AF\",\n \"248\": \"AX\",\n \"8\": \"AL\",\n \"12\": \"DZ\",\n \"16\": \"AS\",\n \"20\": \"AD\",\n \"24\": \"AO\",\n \"660\": \"AI\",\n \"10\": \"AQ\",\n \"28\": \"AG\",\n \"32\": \"AR\",\n \"51\": \"AM\",\n \"533\": \"AW\",\n \"36\": \"AU\",\n \"40\": \"AT\",\n \"31\": \"AZ\",\n \"44\": \"BS\",\n \"48\": \"BH\",\n \"50\": \"BD\",\n \"52\": \"BB\",\n \"112\": \"BY\",\n \"56\": \"BE\",\n \"84\": \"BZ\",\n \"204\": \"BJ\",\n \"60\": \"BM\",\n \"64\": \"BT\",\n \"68\": \"BO\",\n \"535\": \"BQ\",\n \"70\": \"BA\",\n \"72\": \"BW\",\n \"74\": \"BV\",\n \"76\": \"BR\",\n \"86\": \"IO\",\n \"96\": \"BN\",\n \"100\": \"BG\",\n \"854\": \"BF\",\n \"108\": \"BI\",\n \"132\": \"CV\",\n \"116\": \"KH\",\n \"120\": \"CM\",\n \"124\": \"CA\",\n \"136\": \"KY\",\n \"140\": \"CF\",\n \"148\": \"TD\",\n \"152\": \"CL\",\n \"156\": \"CN\",\n \"162\": \"CX\",\n \"166\": \"CC\",\n \"170\": \"CO\",\n \"174\": \"KM\",\n \"178\": \"CG\",\n \"180\": \"CD\",\n \"184\": \"CK\",\n \"188\": \"CR\",\n \"384\": \"CI\",\n \"191\": \"HR\",\n \"192\": \"CU\",\n \"531\": \"CW\",\n \"196\": \"CY\",\n \"203\": \"CZ\",\n \"208\": \"DK\",\n \"262\": \"DJ\",\n \"212\": \"DM\",\n \"214\": \"DO\",\n \"218\": \"EC\",\n \"818\": \"EG\",\n \"222\": \"SV\",\n \"226\": \"GQ\",\n \"232\": \"ER\",\n \"233\": \"EE\",\n \"748\": \"SZ\",\n \"231\": \"ET\",\n \"238\": \"FK\",\n \"234\": \"FO\",\n \"242\": \"FJ\",\n \"246\": \"FI\",\n \"250\": \"FR\",\n \"254\": \"GF\",\n \"258\": \"PF\",\n \"260\": \"TF\",\n \"266\": \"GA\",\n \"270\": \"GM\",\n \"268\": \"GE\",\n \"276\": \"DE\",\n \"280\": \"DE\",\n \"288\": \"GH\",\n \"292\": \"GI\",\n \"300\": \"GR\",\n \"304\": \"GL\",\n \"308\": \"GD\",\n \"312\": \"GP\",\n \"316\": \"GU\",\n \"320\": \"GT\",\n \"831\": \"GG\",\n \"324\": \"GN\",\n \"624\": \"GW\",\n \"328\": \"GY\",\n \"332\": \"HT\",\n \"334\": \"HM\",\n \"336\": \"VA\",\n \"340\": \"HN\",\n \"344\": \"HK\",\n \"348\": \"HU\",\n \"352\": \"IS\",\n \"356\": \"IN\",\n \"360\": \"ID\",\n \"364\": \"IR\",\n \"368\": \"IQ\",\n \"372\": \"IE\",\n \"833\": \"IM\",\n \"376\": \"IL\",\n \"380\": \"IT\",\n \"388\": \"JM\",\n \"392\": \"JP\",\n \"832\": \"JE\",\n \"400\": \"JO\",\n \"398\": \"KZ\",\n \"404\": \"KE\",\n \"296\": \"KI\",\n \"408\": \"KP\",\n \"410\": \"KR\",\n \"414\": \"KW\",\n \"417\": \"KG\",\n \"418\": \"LA\",\n \"428\": \"LV\",\n \"422\": \"LB\",\n \"426\": \"LS\",\n \"430\": \"LR\",\n \"434\": \"LY\",\n \"438\": \"LI\",\n \"440\": \"LT\",\n \"442\": \"LU\",\n \"446\": \"MO\",\n \"450\": \"MG\",\n \"454\": \"MW\",\n \"458\": \"MY\",\n \"462\": \"MV\",\n \"466\": \"ML\",\n \"470\": \"MT\",\n \"584\": \"MH\",\n \"474\": \"MQ\",\n \"478\": \"MR\",\n \"480\": \"MU\",\n \"175\": \"YT\",\n \"484\": \"MX\",\n \"583\": \"FM\",\n \"498\": \"MD\",\n \"492\": \"MC\",\n \"496\": \"MN\",\n \"499\": \"ME\",\n \"500\": \"MS\",\n \"504\": \"MA\",\n \"508\": \"MZ\",\n \"104\": \"MM\",\n \"516\": \"NA\",\n \"520\": \"NR\",\n \"524\": \"NP\",\n \"528\": \"NL\",\n \"540\": \"NC\",\n \"554\": \"NZ\",\n \"558\": \"NI\",\n \"562\": \"NE\",\n \"566\": \"NG\",\n \"570\": \"NU\",\n \"574\": \"NF\",\n \"807\": \"MK\",\n \"580\": \"MP\",\n \"578\": \"NO\",\n \"512\": \"OM\",\n \"586\": \"PK\",\n \"585\": \"PW\",\n \"275\": \"PS\",\n \"591\": \"PA\",\n \"598\": \"PG\",\n \"600\": \"PY\",\n \"604\": \"PE\",\n \"608\": \"PH\",\n \"612\": \"PN\",\n \"616\": \"PL\",\n \"620\": \"PT\",\n \"630\": \"PR\",\n \"634\": \"QA\",\n \"638\": \"RE\",\n \"642\": \"RO\",\n \"643\": \"RU\",\n \"646\": \"RW\",\n \"652\": \"BL\",\n \"654\": \"SH\",\n \"659\": \"KN\",\n \"662\": \"LC\",\n \"663\": \"MF\",\n \"666\": \"PM\",\n \"670\": \"VC\",\n \"882\": \"WS\",\n \"674\": \"SM\",\n \"678\": \"ST\",\n \"682\": \"SA\",\n \"686\": \"SN\",\n \"688\": \"RS\",\n \"690\": \"SC\",\n \"694\": \"SL\",\n \"702\": \"SG\",\n \"534\": \"SX\",\n \"703\": \"SK\",\n \"705\": \"SI\",\n \"90\": \"SB\",\n \"706\": \"SO\",\n \"710\": \"ZA\",\n \"239\": \"GS\",\n \"728\": \"SS\",\n \"724\": \"ES\",\n \"144\": \"LK\",\n \"729\": \"SD\",\n \"740\": \"SR\",\n \"744\": \"SJ\",\n \"752\": \"SE\",\n \"756\": \"CH\",\n \"760\": \"SY\",\n \"158\": \"TW\",\n \"762\": \"TJ\",\n \"834\": \"TZ\",\n \"764\": \"TH\",\n \"626\": \"TL\",\n \"768\": \"TG\",\n \"772\": \"TK\",\n \"776\": \"TO\",\n \"780\": \"TT\",\n \"788\": \"TN\",\n \"792\": \"TR\",\n \"795\": \"TM\",\n \"796\": \"TC\",\n \"798\": \"TV\",\n \"800\": \"UG\",\n \"804\": \"UA\",\n \"784\": \"AE\",\n \"826\": \"GB\",\n \"840\": \"US\",\n \"581\": \"UM\",\n \"858\": \"UY\",\n \"860\": \"UZ\",\n \"548\": \"VU\",\n \"862\": \"VE\",\n \"704\": \"VN\",\n \"92\": \"VG\",\n \"850\": \"VI\",\n \"876\": \"WF\",\n \"732\": \"EH\",\n \"887\": \"YE\",\n \"894\": \"ZM\",\n \"716\": \"ZW\",\n \"926\": \"XK\",\n};\nconst alpha3ToAlpha2 = {\n AFG: \"AF\",\n ALA: \"AX\",\n ALB: \"AL\",\n DZA: \"DZ\",\n ASM: \"AS\",\n AND: \"AD\",\n AGO: \"AO\",\n AIA: \"AI\",\n ATA: \"AQ\",\n ATG: \"AG\",\n ARG: \"AR\",\n ARM: \"AM\",\n ABW: \"AW\",\n AUS: \"AU\",\n AUT: \"AT\",\n AZE: \"AZ\",\n BHS: \"BS\",\n BHR: \"BH\",\n BGD: \"BD\",\n BRB: \"BB\",\n BLR: \"BY\",\n BEL: \"BE\",\n BLZ: \"BZ\",\n BEN: \"BJ\",\n BMU: \"BM\",\n BTN: \"BT\",\n BOL: \"BO\",\n BES: \"BQ\",\n BIH: \"BA\",\n BWA: \"BW\",\n BVT: \"BV\",\n BRA: \"BR\",\n IOT: \"IO\",\n BRN: \"BN\",\n BGR: \"BG\",\n BFA: \"BF\",\n BDI: \"BI\",\n CPV: \"CV\",\n KHM: \"KH\",\n CMR: \"CM\",\n CAN: \"CA\",\n CYM: \"KY\",\n CAF: \"CF\",\n TCD: \"TD\",\n CHL: \"CL\",\n CHN: \"CN\",\n CXR: \"CX\",\n CCK: \"CC\",\n COL: \"CO\",\n COM: \"KM\",\n COG: \"CG\",\n COD: \"CD\",\n COK: \"CK\",\n CRI: \"CR\",\n CIV: \"CI\",\n HRV: \"HR\",\n CUB: \"CU\",\n CUW: \"CW\",\n CYP: \"CY\",\n CZE: \"CZ\",\n DNK: \"DK\",\n DJI: \"DJ\",\n DMA: \"DM\",\n DOM: \"DO\",\n ECU: \"EC\",\n EGY: \"EG\",\n SLV: \"SV\",\n GNQ: \"GQ\",\n ERI: \"ER\",\n EST: \"EE\",\n SWZ: \"SZ\",\n ETH: \"ET\",\n FLK: \"FK\",\n FRO: \"FO\",\n FJI: \"FJ\",\n FIN: \"FI\",\n FRA: \"FR\",\n GUF: \"GF\",\n PYF: \"PF\",\n ATF: \"TF\",\n GAB: \"GA\",\n GMB: \"GM\",\n GEO: \"GE\",\n DEU: \"DE\",\n GHA: \"GH\",\n GIB: \"GI\",\n GRC: \"GR\",\n GRL: \"GL\",\n GRD: \"GD\",\n GLP: \"GP\",\n GUM: \"GU\",\n GTM: \"GT\",\n GGY: \"GG\",\n GIN: \"GN\",\n GNB: \"GW\",\n GUY: \"GY\",\n HTI: \"HT\",\n HMD: \"HM\",\n VAT: \"VA\",\n HND: \"HN\",\n HKG: \"HK\",\n HUN: \"HU\",\n ISL: \"IS\",\n IND: \"IN\",\n IDN: \"ID\",\n IRN: \"IR\",\n IRQ: \"IQ\",\n IRL: \"IE\",\n IMN: \"IM\",\n ISR: \"IL\",\n ITA: \"IT\",\n JAM: \"JM\",\n JPN: \"JP\",\n JEY: \"JE\",\n JOR: \"JO\",\n KAZ: \"KZ\",\n KEN: \"KE\",\n KIR: \"KI\",\n PRK: \"KP\",\n KOR: \"KR\",\n KWT: \"KW\",\n KGZ: \"KG\",\n LAO: \"LA\",\n LVA: \"LV\",\n LBN: \"LB\",\n LSO: \"LS\",\n LBR: \"LR\",\n LBY: \"LY\",\n LIE: \"LI\",\n LTU: \"LT\",\n LUX: \"LU\",\n MAC: \"MO\",\n MDG: \"MG\",\n MWI: \"MW\",\n MYS: \"MY\",\n MDV: \"MV\",\n MLI: \"ML\",\n MLT: \"MT\",\n MHL: \"MH\",\n MTQ: \"MQ\",\n MRT: \"MR\",\n MUS: \"MU\",\n MYT: \"YT\",\n MEX: \"MX\",\n FSM: \"FM\",\n MDA: \"MD\",\n MCO: \"MC\",\n MNG: \"MN\",\n MNE: \"ME\",\n MSR: \"MS\",\n MAR: \"MA\",\n MOZ: \"MZ\",\n MMR: \"MM\",\n NAM: \"NA\",\n NRU: \"NR\",\n NPL: \"NP\",\n NLD: \"NL\",\n NCL: \"NC\",\n NZL: \"NZ\",\n NIC: \"NI\",\n NER: \"NE\",\n NGA: \"NG\",\n NIU: \"NU\",\n NFK: \"NF\",\n MKD: \"MK\",\n MNP: \"MP\",\n NOR: \"NO\",\n OMN: \"OM\",\n PAK: \"PK\",\n PLW: \"PW\",\n PSE: \"PS\",\n PAN: \"PA\",\n PNG: \"PG\",\n PRY: \"PY\",\n PER: \"PE\",\n PHL: \"PH\",\n PCN: \"PN\",\n POL: \"PL\",\n PRT: \"PT\",\n PRI: \"PR\",\n QAT: \"QA\",\n REU: \"RE\",\n ROU: \"RO\",\n RUS: \"RU\",\n RWA: \"RW\",\n BLM: \"BL\",\n SHN: \"SH\",\n KNA: \"KN\",\n LCA: \"LC\",\n MAF: \"MF\",\n SPM: \"PM\",\n VCT: \"VC\",\n WSM: \"WS\",\n SMR: \"SM\",\n STP: \"ST\",\n SAU: \"SA\",\n SEN: \"SN\",\n SRB: \"RS\",\n SYC: \"SC\",\n SLE: \"SL\",\n SGP: \"SG\",\n SXM: \"SX\",\n SVK: \"SK\",\n SVN: \"SI\",\n SLB: \"SB\",\n SOM: \"SO\",\n ZAF: \"ZA\",\n SGS: \"GS\",\n SSD: \"SS\",\n ESP: \"ES\",\n LKA: \"LK\",\n SDN: \"SD\",\n SUR: \"SR\",\n SJM: \"SJ\",\n SWE: \"SE\",\n CHE: \"CH\",\n SYR: \"SY\",\n TWN: \"TW\",\n TJK: \"TJ\",\n TZA: \"TZ\",\n THA: \"TH\",\n TLS: \"TL\",\n TGO: \"TG\",\n TKL: \"TK\",\n TON: \"TO\",\n TTO: \"TT\",\n TUN: \"TN\",\n TUR: \"TR\",\n TKM: \"TM\",\n TCA: \"TC\",\n TUV: \"TV\",\n UGA: \"UG\",\n UKR: \"UA\",\n ARE: \"AE\",\n GBR: \"GB\",\n USA: \"US\",\n UMI: \"UM\",\n URY: \"UY\",\n UZB: \"UZ\",\n VUT: \"VU\",\n VEN: \"VE\",\n VNM: \"VN\",\n VGB: \"VG\",\n VIR: \"VI\",\n WLF: \"WF\",\n ESH: \"EH\",\n YEM: \"YE\",\n ZMB: \"ZM\",\n ZWE: \"ZW\",\n XKX: \"XK\",\n};\n//# sourceMappingURL=Alpha2.js.map","import { Alpha2 } from \"./Alpha2\";\nexport var Alpha3;\n(function (Alpha3) {\n Alpha3.types = [\n \"ABW\",\n \"AFG\",\n \"AGO\",\n \"AIA\",\n \"ALA\",\n \"ALB\",\n \"AND\",\n \"ARE\",\n \"ARG\",\n \"ARM\",\n \"ASM\",\n \"ATA\",\n \"ATF\",\n \"ATG\",\n \"AUS\",\n \"AUT\",\n \"AZE\",\n \"BDI\",\n \"BEL\",\n \"BEN\",\n \"BES\",\n \"BFA\",\n \"BGD\",\n \"BGR\",\n \"BHR\",\n \"BHS\",\n \"BIH\",\n \"BLM\",\n \"BLR\",\n \"BLZ\",\n \"BMU\",\n \"BOL\",\n \"BRA\",\n \"BRB\",\n \"BRN\",\n \"BTN\",\n \"BVT\",\n \"BWA\",\n \"CAF\",\n \"CAN\",\n \"CCK\",\n \"CHE\",\n \"CHL\",\n \"CHN\",\n \"CIV\",\n \"CMR\",\n \"COD\",\n \"COG\",\n \"COK\",\n \"COL\",\n \"COM\",\n \"CPV\",\n \"CRI\",\n \"CUB\",\n \"CUW\",\n \"CXR\",\n \"CYM\",\n \"CYP\",\n \"CZE\",\n \"DEU\",\n \"DJI\",\n \"DMA\",\n \"DNK\",\n \"DOM\",\n \"DZA\",\n \"ECU\",\n \"EGY\",\n \"ERI\",\n \"ESH\",\n \"ESP\",\n \"EST\",\n \"ETH\",\n \"FIN\",\n \"FJI\",\n \"FLK\",\n \"FRA\",\n \"FRO\",\n \"FSM\",\n \"GAB\",\n \"GBR\",\n \"GEO\",\n \"GGY\",\n \"GHA\",\n \"GIB\",\n \"GIN\",\n \"GLP\",\n \"GMB\",\n \"GNB\",\n \"GNQ\",\n \"GRC\",\n \"GRD\",\n \"GRL\",\n \"GTM\",\n \"GUF\",\n \"GUM\",\n \"GUY\",\n \"HKG\",\n \"HMD\",\n \"HND\",\n \"HRV\",\n \"HTI\",\n \"HUN\",\n \"IDN\",\n \"IMN\",\n \"IND\",\n \"IOT\",\n \"IRL\",\n \"IRN\",\n \"IRQ\",\n \"ISL\",\n \"ISR\",\n \"ITA\",\n \"JAM\",\n \"JEY\",\n \"JOR\",\n \"JPN\",\n \"KAZ\",\n \"KEN\",\n \"KGZ\",\n \"KHM\",\n \"KIR\",\n \"KNA\",\n \"KOR\",\n \"KWT\",\n \"LAO\",\n \"LBN\",\n \"LBR\",\n \"LBY\",\n \"LCA\",\n \"LIE\",\n \"LKA\",\n \"LSO\",\n \"LTU\",\n \"LUX\",\n \"LVA\",\n \"MAC\",\n \"MAF\",\n \"MAR\",\n \"MCO\",\n \"MDA\",\n \"MDG\",\n \"MDV\",\n \"MEX\",\n \"MHL\",\n \"MKD\",\n \"MLI\",\n \"MLT\",\n \"MMR\",\n \"MNE\",\n \"MNG\",\n \"MNP\",\n \"MOZ\",\n \"MRT\",\n \"MSR\",\n \"MTQ\",\n \"MUS\",\n \"MWI\",\n \"MYS\",\n \"MYT\",\n \"NAM\",\n \"NCL\",\n \"NER\",\n \"NFK\",\n \"NGA\",\n \"NIC\",\n \"NIU\",\n \"NLD\",\n \"NOR\",\n \"NPL\",\n \"NRU\",\n \"NZL\",\n \"OMN\",\n \"PAK\",\n \"PAN\",\n \"PCN\",\n \"PER\",\n \"PHL\",\n \"PLW\",\n \"PNG\",\n \"POL\",\n \"PRI\",\n \"PRK\",\n \"PRT\",\n \"PRY\",\n \"PSE\",\n \"PYF\",\n \"QAT\",\n \"REU\",\n \"ROU\",\n \"RUS\",\n \"RWA\",\n \"SAU\",\n \"SDN\",\n \"SEN\",\n \"SGP\",\n \"SGS\",\n \"SHN\",\n \"SJM\",\n \"SLB\",\n \"SLE\",\n \"SLV\",\n \"SMR\",\n \"SOM\",\n \"SPM\",\n \"SRB\",\n \"SSD\",\n \"STP\",\n \"SUR\",\n \"SVK\",\n \"SVN\",\n \"SWE\",\n \"SWZ\",\n \"SXM\",\n \"SYC\",\n \"SYR\",\n \"TCA\",\n \"TCD\",\n \"TGO\",\n \"THA\",\n \"TJK\",\n \"TKL\",\n \"TKM\",\n \"TLS\",\n \"TON\",\n \"TTO\",\n \"TUN\",\n \"TUR\",\n \"TUV\",\n \"TWN\",\n \"TZA\",\n \"UGA\",\n \"UKR\",\n \"UMI\",\n \"URY\",\n \"USA\",\n \"UZB\",\n \"VAT\",\n \"VCT\",\n \"VEN\",\n \"VGB\",\n \"VIR\",\n \"VNM\",\n \"VUT\",\n \"WLF\",\n \"WSM\",\n \"XKX\",\n \"YEM\",\n \"ZAF\",\n \"ZMB\",\n \"ZWE\",\n ];\n function is(value) {\n return typeof value == \"string\" && value.length == 3 && Alpha3.types.includes(value);\n }\n Alpha3.is = is;\n function from(country) {\n return typeof country == \"number\" ? from(Alpha2.from(country)) : alpha2ToAlpha3[country];\n }\n Alpha3.from = from;\n})(Alpha3 || (Alpha3 = {}));\nconst alpha2ToAlpha3 = {\n AF: \"AFG\",\n AX: \"ALA\",\n AL: \"ALB\",\n DZ: \"DZA\",\n AS: \"ASM\",\n AD: \"AND\",\n AO: \"AGO\",\n AI: \"AIA\",\n AQ: \"ATA\",\n AG: \"ATG\",\n AR: \"ARG\",\n AM: \"ARM\",\n AW: \"ABW\",\n AU: \"AUS\",\n AT: \"AUT\",\n AZ: \"AZE\",\n BS: \"BHS\",\n BH: \"BHR\",\n BD: \"BGD\",\n BB: \"BRB\",\n BY: \"BLR\",\n BE: \"BEL\",\n BZ: \"BLZ\",\n BJ: \"BEN\",\n BM: \"BMU\",\n BT: \"BTN\",\n BO: \"BOL\",\n BQ: \"BES\",\n BA: \"BIH\",\n BW: \"BWA\",\n BV: \"BVT\",\n BR: \"BRA\",\n IO: \"IOT\",\n BN: \"BRN\",\n BG: \"BGR\",\n BF: \"BFA\",\n BI: \"BDI\",\n CV: \"CPV\",\n KH: \"KHM\",\n CM: \"CMR\",\n CA: \"CAN\",\n KY: \"CYM\",\n CF: \"CAF\",\n TD: \"TCD\",\n CL: \"CHL\",\n CN: \"CHN\",\n CX: \"CXR\",\n CC: \"CCK\",\n CO: \"COL\",\n KM: \"COM\",\n CG: \"COG\",\n CD: \"COD\",\n CK: \"COK\",\n CR: \"CRI\",\n CI: \"CIV\",\n HR: \"HRV\",\n CU: \"CUB\",\n CW: \"CUW\",\n CY: \"CYP\",\n CZ: \"CZE\",\n DK: \"DNK\",\n DJ: \"DJI\",\n DM: \"DMA\",\n DO: \"DOM\",\n EC: \"ECU\",\n EG: \"EGY\",\n SV: \"SLV\",\n GQ: \"GNQ\",\n ER: \"ERI\",\n EE: \"EST\",\n SZ: \"SWZ\",\n ET: \"ETH\",\n FK: \"FLK\",\n FO: \"FRO\",\n FJ: \"FJI\",\n FI: \"FIN\",\n FR: \"FRA\",\n GF: \"GUF\",\n PF: \"PYF\",\n TF: \"ATF\",\n GA: \"GAB\",\n GM: \"GMB\",\n GE: \"GEO\",\n DE: \"DEU\",\n GH: \"GHA\",\n GI: \"GIB\",\n GR: \"GRC\",\n GL: \"GRL\",\n GD: \"GRD\",\n GP: \"GLP\",\n GU: \"GUM\",\n GT: \"GTM\",\n GG: \"GGY\",\n GN: \"GIN\",\n GW: \"GNB\",\n GY: \"GUY\",\n HT: \"HTI\",\n HM: \"HMD\",\n VA: \"VAT\",\n HN: \"HND\",\n HK: \"HKG\",\n HU: \"HUN\",\n IS: \"ISL\",\n IN: \"IND\",\n ID: \"IDN\",\n IR: \"IRN\",\n IQ: \"IRQ\",\n IE: \"IRL\",\n IM: \"IMN\",\n IL: \"ISR\",\n IT: \"ITA\",\n JM: \"JAM\",\n JP: \"JPN\",\n JE: \"JEY\",\n JO: \"JOR\",\n KZ: \"KAZ\",\n KE: \"KEN\",\n KI: \"KIR\",\n KP: \"PRK\",\n KR: \"KOR\",\n KW: \"KWT\",\n KG: \"KGZ\",\n LA: \"LAO\",\n LV: \"LVA\",\n LB: \"LBN\",\n LS: \"LSO\",\n LR: \"LBR\",\n LY: \"LBY\",\n LI: \"LIE\",\n LT: \"LTU\",\n LU: \"LUX\",\n MO: \"MAC\",\n MG: \"MDG\",\n MW: \"MWI\",\n MY: \"MYS\",\n MV: \"MDV\",\n ML: \"MLI\",\n MT: \"MLT\",\n MH: \"MHL\",\n MQ: \"MTQ\",\n MR: \"MRT\",\n MU: \"MUS\",\n YT: \"MYT\",\n MX: \"MEX\",\n FM: \"FSM\",\n MD: \"MDA\",\n MC: \"MCO\",\n MN: \"MNG\",\n ME: \"MNE\",\n MS: \"MSR\",\n MA: \"MAR\",\n MZ: \"MOZ\",\n MM: \"MMR\",\n NA: \"NAM\",\n NR: \"NRU\",\n NP: \"NPL\",\n NL: \"NLD\",\n NC: \"NCL\",\n NZ: \"NZL\",\n NI: \"NIC\",\n NE: \"NER\",\n NG: \"NGA\",\n NU: \"NIU\",\n NF: \"NFK\",\n MK: \"MKD\",\n MP: \"MNP\",\n NO: \"NOR\",\n OM: \"OMN\",\n PK: \"PAK\",\n PW: \"PLW\",\n PS: \"PSE\",\n PA: \"PAN\",\n PG: \"PNG\",\n PY: \"PRY\",\n PE: \"PER\",\n PH: \"PHL\",\n PN: \"PCN\",\n PL: \"POL\",\n PT: \"PRT\",\n PR: \"PRI\",\n QA: \"QAT\",\n RE: \"REU\",\n RO: \"ROU\",\n RU: \"RUS\",\n RW: \"RWA\",\n BL: \"BLM\",\n SH: \"SHN\",\n KN: \"KNA\",\n LC: \"LCA\",\n MF: \"MAF\",\n PM: \"SPM\",\n VC: \"VCT\",\n WS: \"WSM\",\n SM: \"SMR\",\n ST: \"STP\",\n SA: \"SAU\",\n SN: \"SEN\",\n RS: \"SRB\",\n SC: \"SYC\",\n SL: \"SLE\",\n SG: \"SGP\",\n SX: \"SXM\",\n SK: \"SVK\",\n SI: \"SVN\",\n SB: \"SLB\",\n SO: \"SOM\",\n ZA: \"ZAF\",\n GS: \"SGS\",\n SS: \"SSD\",\n ES: \"ESP\",\n LK: \"LKA\",\n SD: \"SDN\",\n SR: \"SUR\",\n SJ: \"SJM\",\n SE: \"SWE\",\n CH: \"CHE\",\n SY: \"SYR\",\n TW: \"TWN\",\n TJ: \"TJK\",\n TZ: \"TZA\",\n TH: \"THA\",\n TL: \"TLS\",\n TG: \"TGO\",\n TK: \"TKL\",\n TO: \"TON\",\n TT: \"TTO\",\n TN: \"TUN\",\n TR: \"TUR\",\n TM: \"TKM\",\n TC: \"TCA\",\n TV: \"TUV\",\n UG: \"UGA\",\n UA: \"UKR\",\n AE: \"ARE\",\n GB: \"GBR\",\n US: \"USA\",\n UM: \"UMI\",\n UY: \"URY\",\n UZ: \"UZB\",\n VU: \"VUT\",\n VE: \"VEN\",\n VN: \"VNM\",\n VG: \"VGB\",\n VI: \"VIR\",\n WF: \"WLF\",\n EH: \"ESH\",\n YE: \"YEM\",\n ZM: \"ZMB\",\n ZW: \"ZWE\",\n XK: \"XKX\",\n};\n//# sourceMappingURL=Alpha3.js.map","import { Alpha2 } from \"./Alpha2\";\nexport var Numeric;\n(function (Numeric) {\n Numeric.types = [\n 4, 8, 10, 12, 16, 20, 24, 28, 31, 32, 36, 40, 44, 48, 50, 51, 52, 56, 60, 64, 68, 70, 72, 74, 76, 84, 86, 90, 92,\n 96, 100, 104, 108, 112, 116, 120, 124, 132, 136, 140, 144, 148, 152, 156, 158, 162, 166, 170, 174, 175, 178, 180,\n 184, 188, 191, 192, 196, 203, 204, 208, 212, 214, 218, 222, 226, 231, 232, 233, 234, 238, 239, 242, 246, 248, 250,\n 254, 258, 260, 262, 266, 268, 270, 275, 276, 280, 288, 292, 296, 300, 304, 308, 312, 316, 320, 324, 328, 332, 334,\n 336, 340, 344, 348, 352, 356, 360, 364, 368, 372, 376, 380, 384, 388, 392, 398, 400, 404, 408, 410, 414, 417, 418,\n 422, 426, 428, 430, 434, 438, 440, 442, 446, 450, 454, 458, 462, 466, 470, 474, 478, 480, 484, 492, 496, 498, 499,\n 500, 504, 508, 512, 516, 520, 524, 528, 531, 533, 534, 535, 540, 548, 554, 558, 562, 566, 570, 574, 578, 580, 581,\n 583, 584, 585, 586, 591, 598, 600, 604, 608, 612, 616, 620, 624, 626, 630, 634, 638, 642, 643, 646, 652, 654, 659,\n 660, 662, 663, 666, 670, 674, 678, 682, 686, 688, 690, 694, 702, 703, 704, 705, 706, 710, 716, 724, 728, 729, 732,\n 740, 744, 748, 752, 756, 760, 762, 764, 768, 772, 776, 780, 784, 788, 792, 795, 796, 798, 800, 804, 807, 818, 826,\n 831, 832, 833, 834, 840, 850, 854, 858, 860, 862, 876, 882, 887, 894, 926,\n ];\n function is(value) {\n return (typeof value == \"number\" &&\n value >= 0 &&\n value <= 999 &&\n Number.isInteger(value) &&\n Numeric.types.includes(value));\n }\n Numeric.is = is;\n function from(country) {\n return country.length == 2 ? alpha2ToNumeric[country] : from(Alpha2.from(country));\n }\n Numeric.from = from;\n})(Numeric || (Numeric = {}));\nconst alpha2ToNumeric = {\n AF: 4,\n AX: 248,\n AL: 8,\n DZ: 12,\n AS: 16,\n AD: 20,\n AO: 24,\n AI: 660,\n AQ: 10,\n AG: 28,\n AR: 32,\n AM: 51,\n AW: 533,\n AU: 36,\n AT: 40,\n AZ: 31,\n BS: 44,\n BH: 48,\n BD: 50,\n BB: 52,\n BY: 112,\n BE: 56,\n BZ: 84,\n BJ: 204,\n BM: 60,\n BT: 64,\n BO: 68,\n BQ: 535,\n BA: 70,\n BW: 72,\n BV: 74,\n BR: 76,\n IO: 86,\n BN: 96,\n BG: 100,\n BF: 854,\n BI: 108,\n CV: 132,\n KH: 116,\n CM: 120,\n CA: 124,\n KY: 136,\n CF: 140,\n TD: 148,\n CL: 152,\n CN: 156,\n CX: 162,\n CC: 166,\n CO: 170,\n KM: 174,\n CG: 178,\n CD: 180,\n CK: 184,\n CR: 188,\n CI: 384,\n HR: 191,\n CU: 192,\n CW: 531,\n CY: 196,\n CZ: 203,\n DK: 208,\n DJ: 262,\n DM: 212,\n DO: 214,\n EC: 218,\n EG: 818,\n SV: 222,\n GQ: 226,\n ER: 232,\n EE: 233,\n SZ: 748,\n ET: 231,\n FK: 238,\n FO: 234,\n FJ: 242,\n FI: 246,\n FR: 250,\n GF: 254,\n PF: 258,\n TF: 260,\n GA: 266,\n GM: 270,\n GE: 268,\n DE: 276,\n GH: 288,\n GI: 292,\n GR: 300,\n GL: 304,\n GD: 308,\n GP: 312,\n GU: 316,\n GT: 320,\n GG: 831,\n GN: 324,\n GW: 624,\n GY: 328,\n HT: 332,\n HM: 334,\n VA: 336,\n HN: 340,\n HK: 344,\n HU: 348,\n IS: 352,\n IN: 356,\n ID: 360,\n IR: 364,\n IQ: 368,\n IE: 372,\n IM: 833,\n IL: 376,\n IT: 380,\n JM: 388,\n JP: 392,\n JE: 832,\n JO: 400,\n KZ: 398,\n KE: 404,\n KI: 296,\n KP: 408,\n KR: 410,\n KW: 414,\n KG: 417,\n LA: 418,\n LV: 428,\n LB: 422,\n LS: 426,\n LR: 430,\n LY: 434,\n LI: 438,\n LT: 440,\n LU: 442,\n MO: 446,\n MG: 450,\n MW: 454,\n MY: 458,\n MV: 462,\n ML: 466,\n MT: 470,\n MH: 584,\n MQ: 474,\n MR: 478,\n MU: 480,\n YT: 175,\n MX: 484,\n FM: 583,\n MD: 498,\n MC: 492,\n MN: 496,\n ME: 499,\n MS: 500,\n MA: 504,\n MZ: 508,\n MM: 104,\n NA: 516,\n NR: 520,\n NP: 524,\n NL: 528,\n NC: 540,\n NZ: 554,\n NI: 558,\n NE: 562,\n NG: 566,\n NU: 570,\n NF: 574,\n MK: 807,\n MP: 580,\n NO: 578,\n OM: 512,\n PK: 586,\n PW: 585,\n PS: 275,\n PA: 591,\n PG: 598,\n PY: 600,\n PE: 604,\n PH: 608,\n PN: 612,\n PL: 616,\n PT: 620,\n PR: 630,\n QA: 634,\n RE: 638,\n RO: 642,\n RU: 643,\n RW: 646,\n BL: 652,\n SH: 654,\n KN: 659,\n LC: 662,\n MF: 663,\n PM: 666,\n VC: 670,\n WS: 882,\n SM: 674,\n ST: 678,\n SA: 682,\n SN: 686,\n RS: 688,\n SC: 690,\n SL: 694,\n SG: 702,\n SX: 534,\n SK: 703,\n SI: 705,\n SB: 90,\n SO: 706,\n ZA: 710,\n GS: 239,\n SS: 728,\n ES: 724,\n LK: 144,\n SD: 729,\n SR: 740,\n SJ: 744,\n SE: 752,\n CH: 756,\n SY: 760,\n TW: 158,\n TJ: 762,\n TZ: 834,\n TH: 764,\n TL: 626,\n TG: 768,\n TK: 772,\n TO: 776,\n TT: 780,\n TN: 788,\n TR: 792,\n TM: 795,\n TC: 796,\n TV: 798,\n UG: 800,\n UA: 804,\n AE: 784,\n GB: 826,\n US: 840,\n UM: 581,\n UY: 858,\n UZ: 860,\n VU: 548,\n VE: 862,\n VN: 704,\n VG: 92,\n VI: 850,\n WF: 876,\n EH: 732,\n YE: 887,\n ZM: 894,\n ZW: 716,\n XK: 926,\n};\n//# sourceMappingURL=Numeric.js.map","const currencies = [\n \"AED\",\n \"AFN\",\n \"ALL\",\n \"AMD\",\n \"ANG\",\n \"AOA\",\n \"ARS\",\n \"AUD\",\n \"AWG\",\n \"AZN\",\n \"BAM\",\n \"BBD\",\n \"BDT\",\n \"BGN\",\n \"BHD\",\n \"BIF\",\n \"BMD\",\n \"BND\",\n \"BOB\",\n \"BOV\",\n \"BRL\",\n \"BSD\",\n \"BTN\",\n \"BWP\",\n \"BYN\",\n \"BZD\",\n \"CAD\",\n \"CDF\",\n \"CHE\",\n \"CHF\",\n \"CHW\",\n \"CLF\",\n \"CLP\",\n \"CNY\",\n \"COP\",\n \"COU\",\n \"CRC\",\n \"CUC\",\n \"CUP\",\n \"CVE\",\n \"CZK\",\n \"DJF\",\n \"DKK\",\n \"DOP\",\n \"DZD\",\n \"EGP\",\n \"ERN\",\n \"ETB\",\n \"EUR\",\n \"FJD\",\n \"FKP\",\n \"GBP\",\n \"GEL\",\n \"GHS\",\n \"GIP\",\n \"GMD\",\n \"GNF\",\n \"GTQ\",\n \"GYD\",\n \"HKD\",\n \"HNL\",\n \"HRK\",\n \"HTG\",\n \"HUF\",\n \"IDR\",\n \"ILS\",\n \"INR\",\n \"IQD\",\n \"IRR\",\n \"ISK\",\n \"JMD\",\n \"JOD\",\n \"JPY\",\n \"KES\",\n \"KGS\",\n \"KHR\",\n \"KMF\",\n \"KPW\",\n \"KRW\",\n \"KWD\",\n \"KYD\",\n \"KZT\",\n \"LAK\",\n \"LBP\",\n \"LKR\",\n \"LRD\",\n \"LSL\",\n \"LYD\",\n \"MAD\",\n \"MDL\",\n \"MGA\",\n \"MKD\",\n \"MMK\",\n \"MNT\",\n \"MOP\",\n \"MRU\",\n \"MUR\",\n \"MVR\",\n \"MWK\",\n \"MXN\",\n \"MXV\",\n \"MYR\",\n \"MZN\",\n \"NAD\",\n \"NGN\",\n \"NIO\",\n \"NOK\",\n \"NPR\",\n \"NZD\",\n \"OMR\",\n \"PAB\",\n \"PEN\",\n \"PGK\",\n \"PHP\",\n \"PKR\",\n \"PLN\",\n \"PYG\",\n \"QAR\",\n \"RON\",\n \"RSD\",\n \"RUB\",\n \"RWF\",\n \"SAR\",\n \"SBD\",\n \"SCR\",\n \"SDG\",\n \"SEK\",\n \"SGD\",\n \"SHP\",\n \"SLL\",\n \"SOS\",\n \"SRD\",\n \"SSP\",\n \"STN\",\n \"SVC\",\n \"SYP\",\n \"SZL\",\n \"THB\",\n \"TJS\",\n \"TMT\",\n \"TND\",\n \"TOP\",\n \"TRY\",\n \"TTD\",\n \"TWD\",\n \"TZS\",\n \"UAH\",\n \"UGX\",\n \"USD\",\n \"USN\",\n \"UYI\",\n \"UYU\",\n \"UYW\",\n \"UZS\",\n \"VES\",\n \"VND\",\n \"VUV\",\n \"WST\",\n \"XAF\",\n \"XAG\",\n \"XAU\",\n \"XBA\",\n \"XBB\",\n \"XBC\",\n \"XBD\",\n \"XCD\",\n \"XDR\",\n \"XOF\",\n \"XPD\",\n \"XPF\",\n \"XPT\",\n \"XSU\",\n \"XTS\",\n \"XUA\",\n \"XXX\",\n \"YER\",\n \"ZAR\",\n \"ZMW\",\n \"ZWL\",\n];\nexport var Currency;\n(function (Currency) {\n Currency.types = [...currencies];\n function is(currency) {\n return Currency.types.includes(currency);\n }\n Currency.is = is;\n function from(currencyCode) {\n return {\n \"784\": \"AED\",\n \"971\": \"AFN\",\n \"008\": \"ALL\",\n \"051\": \"AMD\",\n \"532\": \"ANG\",\n \"973\": \"AOA\",\n \"032\": \"ARS\",\n \"036\": \"AUD\",\n \"533\": \"AWG\",\n \"944\": \"AZN\",\n \"977\": \"BAM\",\n \"052\": \"BBD\",\n \"050\": \"BDT\",\n \"975\": \"BGN\",\n \"048\": \"BHD\",\n \"108\": \"BIF\",\n \"060\": \"BMD\",\n \"096\": \"BND\",\n \"068\": \"BOB\",\n \"984\": \"BOV\",\n \"986\": \"BRL\",\n \"044\": \"BSD\",\n \"064\": \"BTN\",\n \"072\": \"BWP\",\n \"933\": \"BYN\",\n \"084\": \"BZD\",\n \"124\": \"CAD\",\n \"976\": \"CDF\",\n \"947\": \"CHE\",\n \"756\": \"CHF\",\n \"948\": \"CHW\",\n \"990\": \"CLF\",\n \"152\": \"CLP\",\n \"156\": \"CNY\",\n \"170\": \"COP\",\n \"970\": \"COU\",\n \"188\": \"CRC\",\n \"931\": \"CUC\",\n \"192\": \"CUP\",\n \"132\": \"CVE\",\n \"203\": \"CZK\",\n \"262\": \"DJF\",\n \"208\": \"DKK\",\n \"214\": \"DOP\",\n \"012\": \"DZD\",\n \"818\": \"EGP\",\n \"232\": \"ERN\",\n \"230\": \"ETB\",\n \"978\": \"EUR\",\n \"242\": \"FJD\",\n \"238\": \"FKP\",\n \"826\": \"GBP\",\n \"981\": \"GEL\",\n \"936\": \"GHS\",\n \"292\": \"GIP\",\n \"270\": \"GMD\",\n \"324\": \"GNF\",\n \"320\": \"GTQ\",\n \"328\": \"GYD\",\n \"344\": \"HKD\",\n \"340\": \"HNL\",\n \"191\": \"HRK\",\n \"332\": \"HTG\",\n \"348\": \"HUF\",\n \"360\": \"IDR\",\n \"376\": \"ILS\",\n \"356\": \"INR\",\n \"368\": \"IQD\",\n \"364\": \"IRR\",\n \"352\": \"ISK\",\n \"388\": \"JMD\",\n \"400\": \"JOD\",\n \"392\": \"JPY\",\n \"404\": \"KES\",\n \"417\": \"KGS\",\n \"116\": \"KHR\",\n \"174\": \"KMF\",\n \"408\": \"KPW\",\n \"410\": \"KRW\",\n \"414\": \"KWD\",\n \"136\": \"KYD\",\n \"398\": \"KZT\",\n \"418\": \"LAK\",\n \"422\": \"LBP\",\n \"144\": \"LKR\",\n \"430\": \"LRD\",\n \"426\": \"LSL\",\n \"434\": \"LYD\",\n \"504\": \"MAD\",\n \"498\": \"MDL\",\n \"969\": \"MGA\",\n \"807\": \"MKD\",\n \"104\": \"MMK\",\n \"496\": \"MNT\",\n \"446\": \"MOP\",\n \"929\": \"MRU\",\n \"480\": \"MUR\",\n \"462\": \"MVR\",\n \"454\": \"MWK\",\n \"484\": \"MXN\",\n \"979\": \"MXV\",\n \"458\": \"MYR\",\n \"943\": \"MZN\",\n \"516\": \"NAD\",\n \"566\": \"NGN\",\n \"558\": \"NIO\",\n \"578\": \"NOK\",\n \"524\": \"NPR\",\n \"554\": \"NZD\",\n \"512\": \"OMR\",\n \"590\": \"PAB\",\n \"604\": \"PEN\",\n \"598\": \"PGK\",\n \"608\": \"PHP\",\n \"586\": \"PKR\",\n \"985\": \"PLN\",\n \"600\": \"PYG\",\n \"634\": \"QAR\",\n \"946\": \"RON\",\n \"941\": \"RSD\",\n \"643\": \"RUB\",\n \"646\": \"RWF\",\n \"682\": \"SAR\",\n \"090\": \"SBD\",\n \"690\": \"SCR\",\n \"938\": \"SDG\",\n \"752\": \"SEK\",\n \"702\": \"SGD\",\n \"654\": \"SHP\",\n \"694\": \"SLL\",\n \"706\": \"SOS\",\n \"968\": \"SRD\",\n \"728\": \"SSP\",\n \"930\": \"STN\",\n \"222\": \"SVC\",\n \"760\": \"SYP\",\n \"748\": \"SZL\",\n \"764\": \"THB\",\n \"972\": \"TJS\",\n \"934\": \"TMT\",\n \"788\": \"TND\",\n \"776\": \"TOP\",\n \"949\": \"TRY\",\n \"780\": \"TTD\",\n \"901\": \"TWD\",\n \"834\": \"TZS\",\n \"980\": \"UAH\",\n \"800\": \"UGX\",\n \"840\": \"USD\",\n \"997\": \"USN\",\n \"940\": \"UYI\",\n \"858\": \"UYU\",\n \"927\": \"UYW\",\n \"860\": \"UZS\",\n \"928\": \"VES\",\n \"704\": \"VND\",\n \"548\": \"VUV\",\n \"882\": \"WST\",\n \"950\": \"XAF\",\n \"961\": \"XAG\",\n \"959\": \"XAU\",\n \"955\": \"XBA\",\n \"956\": \"XBB\",\n \"957\": \"XBC\",\n \"958\": \"XBD\",\n \"951\": \"XCD\",\n \"960\": \"XDR\",\n \"952\": \"XOF\",\n \"964\": \"XPD\",\n \"953\": \"XPF\",\n \"962\": \"XPT\",\n \"994\": \"XSU\",\n \"963\": \"XTS\",\n \"965\": \"XUA\",\n \"999\": \"XXX\",\n \"886\": \"YER\",\n \"710\": \"ZAR\",\n \"967\": \"ZMW\",\n \"932\": \"ZWL\",\n }[currencyCode];\n }\n Currency.from = from;\n function round(value, currency) {\n const decimalDigits = Currency.decimalDigits(currency) ?? 2;\n const factor = Math.pow(10, decimalDigits);\n const decimals = (value.toString().split(\".\")?.[1]?.length ?? 0) - 1;\n return (Math.round((value + (decimals <= decimalDigits + 5 ? Number.EPSILON : Math.pow(10, -decimals))) * factor) / factor);\n }\n Currency.round = round;\n function add(currency, value1, value2) {\n return round(round(value1, currency) + round(value2, currency), currency);\n }\n Currency.add = add;\n function divide(currency, amount, denominator) {\n return round(round(amount, currency) / denominator, currency);\n }\n Currency.divide = divide;\n function multiply(currency, amount, multiplicand, outputCurrency) {\n return round(round(amount, currency) * multiplicand, outputCurrency ?? currency);\n }\n Currency.multiply = multiply;\n function subtract(currency, minuend, subtrahend) {\n return round(round(minuend, currency) - round(subtrahend, currency), currency);\n }\n Currency.subtract = subtract;\n function toMinor(amount, currency) {\n const decimals = Currency.decimalDigits(currency);\n return typeof decimals == \"number\" ? Math.round(amount * 10 ** decimals) : amount;\n }\n Currency.toMinor = toMinor;\n function fromMinor(amount, currency) {\n const decimals = Currency.decimalDigits(currency);\n return typeof decimals == \"number\" ? Currency.divide(currency, amount, 10 ** decimals) : amount;\n }\n Currency.fromMinor = fromMinor;\n function isRounded(amount, currency) {\n const decimals = Currency.decimalDigits(currency);\n return decimals == undefined\n ? true\n : isNaN(amount)\n ? false\n : (amount.toString().split(\".\")[1]?.length ?? 0) <= decimals;\n }\n Currency.isRounded = isRounded;\n function decimalDigits(currency) {\n return {\n AED: 2,\n AFN: 2,\n ALL: 2,\n AMD: 2,\n ANG: 2,\n AOA: 2,\n ARS: 2,\n AUD: 2,\n AWG: 2,\n AZN: 2,\n BAM: 2,\n BBD: 2,\n BDT: 2,\n BGN: 2,\n BHD: 3,\n BIF: 0,\n BMD: 2,\n BND: 2,\n BOB: 2,\n BOV: 2,\n BRL: 2,\n BSD: 2,\n BTN: 2,\n BWP: 2,\n BYN: 2,\n BZD: 2,\n CAD: 2,\n CDF: 2,\n CHE: 2,\n CHF: 2,\n CHW: 2,\n CLF: 4,\n CLP: 0,\n CNY: 2,\n COP: 2,\n COU: 2,\n CRC: 2,\n CUC: 2,\n CUP: 2,\n CVE: 2,\n CZK: 2,\n DJF: 0,\n DKK: 2,\n DOP: 2,\n DZD: 2,\n EGP: 2,\n ERN: 2,\n ETB: 2,\n EUR: 2,\n FJD: 2,\n FKP: 2,\n GBP: 2,\n GEL: 2,\n GHS: 2,\n GIP: 2,\n GMD: 2,\n GNF: 0,\n GTQ: 2,\n GYD: 2,\n HKD: 2,\n HNL: 2,\n HRK: 2,\n HTG: 2,\n HUF: 2,\n IDR: 2,\n ILS: 2,\n INR: 2,\n IQD: 3,\n IRR: 2,\n ISK: 0,\n JMD: 2,\n JOD: 3,\n JPY: 0,\n KES: 2,\n KGS: 2,\n KHR: 2,\n KMF: 0,\n KPW: 2,\n KRW: 0,\n KWD: 3,\n KYD: 2,\n KZT: 2,\n LAK: 2,\n LBP: 2,\n LKR: 2,\n LRD: 2,\n LSL: 2,\n LYD: 3,\n MAD: 2,\n MDL: 2,\n MGA: 2,\n MKD: 2,\n MMK: 2,\n MNT: 2,\n MOP: 2,\n MRU: 2,\n MUR: 2,\n MVR: 2,\n MWK: 2,\n MXN: 2,\n MXV: 2,\n MYR: 2,\n MZN: 2,\n NAD: 2,\n NGN: 2,\n NIO: 2,\n NOK: 2,\n NPR: 2,\n NZD: 2,\n OMR: 3,\n PAB: 2,\n PEN: 2,\n PGK: 2,\n PHP: 2,\n PKR: 2,\n PLN: 2,\n PYG: 0,\n QAR: 2,\n RON: 2,\n RSD: 2,\n RUB: 2,\n RWF: 0,\n SAR: 2,\n SBD: 2,\n SCR: 2,\n SDG: 2,\n SEK: 2,\n SGD: 2,\n SHP: 2,\n SLL: 2,\n SOS: 2,\n SRD: 2,\n SSP: 2,\n STN: 2,\n SVC: 2,\n SYP: 2,\n SZL: 2,\n THB: 2,\n TJS: 2,\n TMT: 2,\n TND: 3,\n TOP: 2,\n TRY: 2,\n TTD: 2,\n TWD: 2,\n TZS: 2,\n UAH: 2,\n UGX: 0,\n USD: 2,\n USN: 2,\n UYI: 0,\n UYU: 2,\n UYW: 4,\n UZS: 2,\n VES: 2,\n VND: 0,\n VUV: 0,\n WST: 2,\n XAF: 0,\n XAG: undefined,\n XAU: undefined,\n XBA: undefined,\n XBB: undefined,\n XBC: undefined,\n XBD: undefined,\n XCD: 2,\n XDR: undefined,\n XOF: 0,\n XPD: undefined,\n XPF: 0,\n XPT: undefined,\n XSU: undefined,\n XTS: undefined,\n XUA: undefined,\n XXX: undefined,\n YER: 2,\n ZAR: 2,\n ZMW: 2,\n ZWL: 2,\n }[currency];\n }\n Currency.decimalDigits = decimalDigits;\n})(Currency || (Currency = {}));\n//# sourceMappingURL=Currency.js.map","export var CurrencyCode;\n(function (CurrencyCode) {\n CurrencyCode.types = [\n \"008\",\n \"012\",\n \"032\",\n \"036\",\n \"044\",\n \"048\",\n \"050\",\n \"051\",\n \"052\",\n \"060\",\n \"064\",\n \"068\",\n \"072\",\n \"084\",\n \"090\",\n \"096\",\n \"104\",\n \"108\",\n \"116\",\n \"124\",\n \"132\",\n \"136\",\n \"144\",\n \"152\",\n \"156\",\n \"170\",\n \"174\",\n \"188\",\n \"191\",\n \"192\",\n \"203\",\n \"208\",\n \"214\",\n \"222\",\n \"230\",\n \"232\",\n \"238\",\n \"242\",\n \"262\",\n \"270\",\n \"292\",\n \"320\",\n \"324\",\n \"328\",\n \"332\",\n \"340\",\n \"344\",\n \"348\",\n \"352\",\n \"356\",\n \"360\",\n \"364\",\n \"368\",\n \"376\",\n \"388\",\n \"392\",\n \"398\",\n \"400\",\n \"404\",\n \"408\",\n \"410\",\n \"414\",\n \"417\",\n \"418\",\n \"422\",\n \"426\",\n \"430\",\n \"434\",\n \"446\",\n \"454\",\n \"458\",\n \"462\",\n \"480\",\n \"484\",\n \"496\",\n \"498\",\n \"504\",\n \"512\",\n \"516\",\n \"524\",\n \"532\",\n \"533\",\n \"548\",\n \"554\",\n \"558\",\n \"566\",\n \"578\",\n \"586\",\n \"590\",\n \"598\",\n \"600\",\n \"604\",\n \"608\",\n \"634\",\n \"643\",\n \"646\",\n \"654\",\n \"682\",\n \"690\",\n \"694\",\n \"702\",\n \"704\",\n \"706\",\n \"710\",\n \"728\",\n \"748\",\n \"752\",\n \"756\",\n \"760\",\n \"764\",\n \"776\",\n \"780\",\n \"784\",\n \"788\",\n \"800\",\n \"807\",\n \"818\",\n \"826\",\n \"834\",\n \"840\",\n \"858\",\n \"860\",\n \"882\",\n \"886\",\n \"901\",\n \"927\",\n \"928\",\n \"929\",\n \"930\",\n \"931\",\n \"932\",\n \"933\",\n \"934\",\n \"936\",\n \"938\",\n \"940\",\n \"941\",\n \"943\",\n \"944\",\n \"946\",\n \"947\",\n \"948\",\n \"949\",\n \"950\",\n \"951\",\n \"952\",\n \"953\",\n \"955\",\n \"956\",\n \"957\",\n \"958\",\n \"959\",\n \"960\",\n \"961\",\n \"962\",\n \"963\",\n \"964\",\n \"965\",\n \"967\",\n \"968\",\n \"969\",\n \"970\",\n \"971\",\n \"972\",\n \"973\",\n \"975\",\n \"976\",\n \"977\",\n \"978\",\n \"979\",\n \"980\",\n \"981\",\n \"984\",\n \"985\",\n \"986\",\n \"990\",\n \"994\",\n \"997\",\n \"999\",\n ];\n function is(value) {\n return CurrencyCode.types.includes(value);\n }\n CurrencyCode.is = is;\n function from(currency) {\n return {\n ALL: \"008\",\n DZD: \"012\",\n ARS: \"032\",\n AUD: \"036\",\n BSD: \"044\",\n BHD: \"048\",\n BDT: \"050\",\n AMD: \"051\",\n BBD: \"052\",\n BMD: \"060\",\n BTN: \"064\",\n BOB: \"068\",\n BWP: \"072\",\n BZD: \"084\",\n SBD: \"090\",\n BND: \"096\",\n MMK: \"104\",\n BIF: \"108\",\n KHR: \"116\",\n CAD: \"124\",\n CVE: \"132\",\n KYD: \"136\",\n LKR: \"144\",\n CLP: \"152\",\n CNY: \"156\",\n COP: \"170\",\n KMF: \"174\",\n CRC: \"188\",\n HRK: \"191\",\n CUP: \"192\",\n CZK: \"203\",\n DKK: \"208\",\n DOP: \"214\",\n SVC: \"222\",\n ETB: \"230\",\n ERN: \"232\",\n FKP: \"238\",\n FJD: \"242\",\n DJF: \"262\",\n GMD: \"270\",\n GIP: \"292\",\n GTQ: \"320\",\n GNF: \"324\",\n GYD: \"328\",\n HTG: \"332\",\n HNL: \"340\",\n HKD: \"344\",\n HUF: \"348\",\n ISK: \"352\",\n INR: \"356\",\n IDR: \"360\",\n IRR: \"364\",\n IQD: \"368\",\n ILS: \"376\",\n JMD: \"388\",\n JPY: \"392\",\n KZT: \"398\",\n JOD: \"400\",\n KES: \"404\",\n KPW: \"408\",\n KRW: \"410\",\n KWD: \"414\",\n KGS: \"417\",\n LAK: \"418\",\n LBP: \"422\",\n LSL: \"426\",\n LRD: \"430\",\n LYD: \"434\",\n MOP: \"446\",\n MWK: \"454\",\n MYR: \"458\",\n MVR: \"462\",\n MUR: \"480\",\n MXN: \"484\",\n MNT: \"496\",\n MDL: \"498\",\n MAD: \"504\",\n OMR: \"512\",\n NAD: \"516\",\n NPR: \"524\",\n ANG: \"532\",\n AWG: \"533\",\n VUV: \"548\",\n NZD: \"554\",\n NIO: \"558\",\n NGN: \"566\",\n NOK: \"578\",\n PKR: \"586\",\n PAB: \"590\",\n PGK: \"598\",\n PYG: \"600\",\n PEN: \"604\",\n PHP: \"608\",\n QAR: \"634\",\n RUB: \"643\",\n RWF: \"646\",\n SHP: \"654\",\n SAR: \"682\",\n SCR: \"690\",\n SLL: \"694\",\n SGD: \"702\",\n VND: \"704\",\n SOS: \"706\",\n ZAR: \"710\",\n SSP: \"728\",\n SZL: \"748\",\n SEK: \"752\",\n CHF: \"756\",\n SYP: \"760\",\n THB: \"764\",\n TOP: \"776\",\n TTD: \"780\",\n AED: \"784\",\n TND: \"788\",\n UGX: \"800\",\n MKD: \"807\",\n EGP: \"818\",\n GBP: \"826\",\n TZS: \"834\",\n USD: \"840\",\n UYU: \"858\",\n UZS: \"860\",\n WST: \"882\",\n YER: \"886\",\n TWD: \"901\",\n UYW: \"927\",\n VES: \"928\",\n MRU: \"929\",\n STN: \"930\",\n CUC: \"931\",\n ZWL: \"932\",\n BYN: \"933\",\n TMT: \"934\",\n GHS: \"936\",\n SDG: \"938\",\n UYI: \"940\",\n RSD: \"941\",\n MZN: \"943\",\n AZN: \"944\",\n RON: \"946\",\n CHE: \"947\",\n CHW: \"948\",\n TRY: \"949\",\n XAF: \"950\",\n XCD: \"951\",\n XOF: \"952\",\n XPF: \"953\",\n XBA: \"955\",\n XBB: \"956\",\n XBC: \"957\",\n XBD: \"958\",\n XAU: \"959\",\n XDR: \"960\",\n XAG: \"961\",\n XPT: \"962\",\n XTS: \"963\",\n XPD: \"964\",\n XUA: \"965\",\n ZMW: \"967\",\n SRD: \"968\",\n MGA: \"969\",\n COU: \"970\",\n AFN: \"971\",\n TJS: \"972\",\n AOA: \"973\",\n BGN: \"975\",\n CDF: \"976\",\n BAM: \"977\",\n EUR: \"978\",\n MXV: \"979\",\n UAH: \"980\",\n GEL: \"981\",\n BOV: \"984\",\n PLN: \"985\",\n BRL: \"986\",\n CLF: \"990\",\n XSU: \"994\",\n USN: \"997\",\n XXX: \"999\",\n }[currency];\n }\n CurrencyCode.from = from;\n function decimalDigits(currencyCode) {\n return {\n \"008\": 2,\n \"012\": 2,\n \"032\": 2,\n \"036\": 2,\n \"044\": 2,\n \"048\": 3,\n \"050\": 2,\n \"051\": 2,\n \"052\": 2,\n \"060\": 2,\n \"064\": 2,\n \"068\": 2,\n \"072\": 2,\n \"084\": 2,\n \"090\": 2,\n \"096\": 2,\n \"104\": 2,\n \"108\": 0,\n \"116\": 2,\n \"124\": 2,\n \"132\": 2,\n \"136\": 2,\n \"144\": 2,\n \"152\": 0,\n \"156\": 2,\n \"170\": 2,\n \"174\": 0,\n \"188\": 2,\n \"191\": 2,\n \"192\": 2,\n \"203\": 2,\n \"208\": 2,\n \"214\": 2,\n \"222\": 2,\n \"230\": 2,\n \"232\": 2,\n \"238\": 2,\n \"242\": 2,\n \"262\": 0,\n \"270\": 2,\n \"292\": 2,\n \"320\": 2,\n \"324\": 0,\n \"328\": 2,\n \"332\": 2,\n \"340\": 2,\n \"344\": 2,\n \"348\": 2,\n \"352\": 0,\n \"356\": 2,\n \"360\": 2,\n \"364\": 2,\n \"368\": 3,\n \"376\": 2,\n \"388\": 2,\n \"392\": 0,\n \"398\": 2,\n \"400\": 3,\n \"404\": 2,\n \"408\": 2,\n \"410\": 0,\n \"414\": 3,\n \"417\": 2,\n \"418\": 2,\n \"422\": 2,\n \"426\": 2,\n \"430\": 2,\n \"434\": 3,\n \"446\": 2,\n \"454\": 2,\n \"458\": 2,\n \"462\": 2,\n \"480\": 2,\n \"484\": 2,\n \"496\": 2,\n \"498\": 2,\n \"504\": 2,\n \"512\": 3,\n \"516\": 2,\n \"524\": 2,\n \"532\": 2,\n \"533\": 2,\n \"548\": 0,\n \"554\": 2,\n \"558\": 2,\n \"566\": 2,\n \"578\": 2,\n \"586\": 2,\n \"590\": 2,\n \"598\": 2,\n \"600\": 0,\n \"604\": 2,\n \"608\": 2,\n \"634\": 2,\n \"643\": 2,\n \"646\": 0,\n \"654\": 2,\n \"682\": 2,\n \"690\": 2,\n \"694\": 2,\n \"702\": 2,\n \"704\": 0,\n \"706\": 2,\n \"710\": 2,\n \"728\": 2,\n \"748\": 2,\n \"752\": 2,\n \"756\": 2,\n \"760\": 2,\n \"764\": 2,\n \"776\": 2,\n \"780\": 2,\n \"784\": 2,\n \"788\": 3,\n \"800\": 0,\n \"807\": 2,\n \"818\": 2,\n \"826\": 2,\n \"834\": 2,\n \"840\": 2,\n \"858\": 2,\n \"860\": 2,\n \"882\": 2,\n \"886\": 2,\n \"901\": 2,\n \"927\": 4,\n \"928\": 2,\n \"929\": 2,\n \"930\": 2,\n \"931\": 2,\n \"932\": 2,\n \"933\": 2,\n \"934\": 2,\n \"936\": 2,\n \"938\": 2,\n \"940\": 0,\n \"941\": 2,\n \"943\": 2,\n \"944\": 2,\n \"946\": 2,\n \"947\": 2,\n \"948\": 2,\n \"949\": 2,\n \"950\": 0,\n \"951\": 2,\n \"952\": 0,\n \"953\": 0,\n \"955\": undefined,\n \"956\": undefined,\n \"957\": undefined,\n \"958\": undefined,\n \"959\": undefined,\n \"960\": undefined,\n \"961\": undefined,\n \"962\": undefined,\n \"963\": undefined,\n \"964\": undefined,\n \"965\": undefined,\n \"967\": 2,\n \"968\": 2,\n \"969\": 2,\n \"970\": 2,\n \"971\": 2,\n \"972\": 2,\n \"973\": 2,\n \"975\": 2,\n \"976\": 2,\n \"977\": 2,\n \"978\": 2,\n \"979\": 2,\n \"980\": 2,\n \"981\": 2,\n \"984\": 2,\n \"985\": 2,\n \"986\": 2,\n \"990\": 4,\n \"994\": undefined,\n \"997\": 2,\n \"999\": undefined,\n }[currencyCode];\n }\n CurrencyCode.decimalDigits = decimalDigits;\n})(CurrencyCode || (CurrencyCode = {}));\n//# sourceMappingURL=CurrencyCode.js.map","export var Date;\n(function (Date) {\n function is(value) {\n return (typeof value == \"string\" &&\n value.length == 10 &&\n new globalThis.Date(value).toString() != \"Invalid Date\" &&\n create(new globalThis.Date(value)) == value);\n }\n Date.is = is;\n function parse(value, time) {\n return new globalThis.Date(value + (time ?? \"T12:00:00.000Z\"));\n }\n Date.parse = parse;\n function create(value) {\n return value.toISOString().substring(0, 10);\n }\n Date.create = create;\n function now() {\n return create(new globalThis.Date());\n }\n Date.now = now;\n function localize(value, locale, timezone) {\n return ((is(value) ? parse(value) : value)\n .toLocaleString(locale ? locale : Intl.DateTimeFormat().resolvedOptions().locale, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n timeZone: timezone ?? Intl.DateTimeFormat().resolvedOptions().timeZone,\n })\n .substring(0, 10)\n // See DateTime:localize for note.\n .replaceAll(\" \", \" \"));\n }\n Date.localize = localize;\n function next(date, days = 1) {\n let result;\n if (typeof days == \"number\") {\n const r = parse(date);\n r.setDate(r.getDate() + days);\n result = Date.create(r);\n }\n else {\n result = date;\n if (days.years)\n result = nextYear(result, days.years);\n if (days.months)\n result = nextMonth(result, days.months);\n if (days.days)\n result = next(result, days.days);\n }\n return result;\n }\n Date.next = next;\n function previous(date, days = 1) {\n let result;\n if (typeof days == \"number\") {\n const r = parse(date);\n r.setDate(r.getDate() - days);\n result = Date.create(r);\n }\n else {\n result = date;\n if (days.years)\n result = previousYear(result, days.years);\n if (days.months)\n result = previousMonth(result, days.months);\n if (days.days)\n result = previous(result, days.days);\n }\n return result;\n }\n Date.previous = previous;\n function nextMonth(date, months = 1) {\n const result = parse(date);\n result.setMonth(result.getMonth() + months);\n return Date.create(result);\n }\n Date.nextMonth = nextMonth;\n function previousMonth(date, months = 1) {\n return nextMonth(date, -months);\n }\n Date.previousMonth = previousMonth;\n function nextYear(date, years = 1) {\n const result = parse(date);\n result.setFullYear(result.getFullYear() + years);\n return Date.create(result);\n }\n Date.nextYear = nextYear;\n function previousYear(date, years = 1) {\n return nextYear(date, -years);\n }\n Date.previousYear = previousYear;\n function firstOfYear(date) {\n const result = parse(date);\n result.setMonth(0);\n result.setDate(1);\n return Date.create(result);\n }\n Date.firstOfYear = firstOfYear;\n function lastOfYear(date) {\n const result = parse(date);\n result.setFullYear(result.getFullYear() + 1);\n result.setMonth(0);\n result.setDate(0);\n return Date.create(result);\n }\n Date.lastOfYear = lastOfYear;\n function firstOfMonth(date) {\n const result = parse(date);\n result.setDate(1);\n return Date.create(result);\n }\n Date.firstOfMonth = firstOfMonth;\n function lastOfMonth(date) {\n const result = parse(date);\n result.setMonth(result.getMonth() + 1);\n result.setDate(0);\n return Date.create(result);\n }\n Date.lastOfMonth = lastOfMonth;\n function firstOfWeek(date) {\n const result = parse(date);\n const relativeDay = result.getDate() - (result.getDay() || 7) + 1;\n result.setDate(relativeDay);\n return Date.create(result);\n }\n Date.firstOfWeek = firstOfWeek;\n function lastOfWeek(date) {\n const result = parse(date);\n const relativeDay = result.getDate() - result.getDay() + 7;\n result.setDate(relativeDay);\n return Date.create(result);\n }\n Date.lastOfWeek = lastOfWeek;\n function getYear(date) {\n return Number.parseInt(date.substring(0, 4));\n }\n Date.getYear = getYear;\n function getMonth(date) {\n return Number.parseInt(date.substring(5, 7));\n }\n Date.getMonth = getMonth;\n function getWeek(date) {\n const parsed = new globalThis.Date(date);\n parsed.setHours(0, 0, 0, 0);\n parsed.setDate(parsed.getDate() + 3 - ((parsed.getDay() + 6) % 7));\n const week1 = new globalThis.Date(parsed.getFullYear(), 0, 4);\n return 1 + Math.round(((parsed.getTime() - week1.getTime()) / 86400000 - 3 + ((week1.getDay() + 6) % 7)) / 7);\n }\n Date.getWeek = getWeek;\n function getDay(date) {\n return Number.parseInt(date.substring(8, 10));\n }\n Date.getDay = getDay;\n function getWeekDay(date, locale, options) {\n const format = options?.format ?? \"long\";\n return locale\n ? new globalThis.Date(date).toLocaleDateString(locale, { weekday: format })\n : new globalThis.Date(date).getDay();\n }\n Date.getWeekDay = getWeekDay;\n function nextWeekday(date, days = 1, holidays = []) {\n const holidaySet = new Set(holidays);\n let result = next(date, days);\n let weekday = getWeekDay(result);\n while (weekday == 6 || weekday == 0 || holidaySet.has(result)) {\n result = next(result, weekday == 6 ? 2 : 1);\n weekday = getWeekDay(result);\n }\n return result;\n }\n Date.nextWeekday = nextWeekday;\n function span(date, relative) {\n return {\n years: getYear(date) - getYear(relative),\n months: getMonth(date) - getMonth(relative),\n days: getDay(date) - getDay(relative),\n };\n }\n Date.span = span;\n Date.epochStart = \"0000-01-01\";\n Date.epochEnd = \"9999-12-31\";\n function invert(date) {\n return `${(9999 - getYear(date)).toFixed(0).padStart(4, \"0\")}-${(13 - getMonth(date))\n .toFixed(0)\n .padStart(2, \"0\")}-${(32 - getDay(date)).toFixed(0).padStart(2, \"0\")}`;\n }\n Date.invert = invert;\n})(Date || (Date = {}));\n//# sourceMappingURL=Date.js.map","import { Date } from \"./Date\";\nexport var DateRange;\n(function (DateRange) {\n function is(value) {\n return typeof value == \"object\" && Date.is(value.start) && Date.is(value.end);\n }\n DateRange.is = is;\n function create(start, end) {\n return !Date.is(end)\n ? create(start, Date.next(start, end))\n : start <= end\n ? { start, end }\n : { start: end, end: start };\n }\n DateRange.create = create;\n function toDates(value, includeLast = true) {\n const result = [];\n for (let current = value.start; includeLast ? current <= value.end : current < value.end; current = Date.next(current))\n result.push(current);\n return result;\n }\n DateRange.toDates = toDates;\n function getDays(value) {\n const result = value.start <= value.end\n ? Math.ceil((new globalThis.Date(value.end).getTime() - new globalThis.Date(value.start).getTime()) / (1000 * 3600 * 24))\n : -getDays({ start: value.end, end: value.start });\n return result;\n }\n DateRange.getDays = getDays;\n})(DateRange || (DateRange = {}));\n//# sourceMappingURL=DateRange.js.map","export var DateSpan;\n(function (DateSpan) {\n function is(value) {\n return (typeof value == \"object\" &&\n (typeof value.years == \"number\" || value.years == undefined) &&\n (typeof value.months == \"number\" || value.months == undefined) &&\n (typeof value.days == \"number\" || value.days == undefined) &&\n (typeof value.years == \"number\" || typeof value.months == \"number\" || typeof value.days == \"number\"));\n }\n DateSpan.is = is;\n})(DateSpan || (DateSpan = {}));\n//# sourceMappingURL=DateSpan.js.map","export var TimeZoneOffset;\n(function (TimeZoneOffset) {\n TimeZoneOffset.values = [\n \"-12:00\",\n \"-11:00\",\n \"-10:00\",\n \"-09:30\",\n \"-09:00\",\n \"-08:00\",\n \"-07:00\",\n \"-06:00\",\n \"-05:00\",\n \"-04:00\",\n \"-03:30\",\n \"-03:00\",\n \"-02:00\",\n \"-01:00\",\n \"-00:00\",\n \"Z\",\n \"+00:00\",\n \"+01:00\",\n \"+02:00\",\n \"+03:00\",\n \"+03:30\",\n \"+04:00\",\n \"+04:30\",\n \"+05:00\",\n \"+05:30\",\n \"+05:45\",\n \"+06:00\",\n \"+06:30\",\n \"+07:00\",\n \"+08:00\",\n \"+08:45\",\n \"+09:00\",\n \"+09:30\",\n \"+10:00\",\n \"+10:30\",\n \"+11:00\",\n \"+12:00\",\n \"+12:45\",\n \"+13:00\",\n \"+14:00\",\n ];\n function is(value) {\n return typeof value == \"string\" && TimeZoneOffset.values.includes(value);\n }\n TimeZoneOffset.is = is;\n})(TimeZoneOffset || (TimeZoneOffset = {}));\n//# sourceMappingURL=TimeZoneOffset.js.map","import { Date } from \"./Date\";\nimport { TimeZoneOffset } from \"./TimeZoneOffset\";\nexport var DateTime;\n(function (DateTime) {\n function isHours(v) {\n return (v[0] >= \"0\" && v[0] <= \"1\" && v[1] >= \"0\" && v[1] <= \"9\") || (v[0] == \"2\" && v[1] >= \"0\" && v[1] <= \"3\");\n }\n function isMinutes(v) {\n return v[0] >= \"0\" && v[0] <= \"5\" && v[1] >= \"0\" && v[1] <= \"9\";\n }\n function isSeconds(v) {\n return (v[0] >= \"0\" && v[0] <= \"5\" && v[1] >= \"0\" && v[1] <= \"9\") || v == \"60\" || v == \"61\";\n }\n function is(value) {\n // 2019-04-01T01\n // 2019-04-01T01Z\n // 2019-04-01T01+01:00\n // 2019-04-01T01:11\n // 2019-04-01T01:11Z\n // 2019-04-01T01:11+01:00\n // 2019-04-01T01:11:29\n // 2019-04-01T01:11:29Z\n // 2019-04-01T01:11:29+01:00\n // 2019-04-01T01:11:29.000\n // 2019-04-01T01:11:29.000Z\n // 2019-04-01T01:11:29.000+01:00\n // 01234567890123456789012345678\n // 0 1 2\n return (typeof value == \"string\" &&\n value.length >= 13 &&\n value.length <= 29 &&\n Date.is(value.substring(0, 10)) &&\n value[10] == \"T\" &&\n isHours(value.substring(11, 13)) &&\n (value.length == 13 ||\n TimeZoneOffset.is(value.substring(13)) ||\n (value[13] == \":\" &&\n value.length >= 16 &&\n isMinutes(value.substring(14, 16)) &&\n (value.length == 16 ||\n TimeZoneOffset.is(value.substring(16)) ||\n (value[16] == \":\" &&\n value.length >= 19 &&\n isSeconds(value.substring(17, 19)) &&\n (value.length == 19 ||\n TimeZoneOffset.is(value.substring(19)) ||\n (value[19] == \".\" &&\n value.length >= 23 &&\n [...value.substring(20, 23)].every(c => c >= \"0\" && c <= \"9\") &&\n (value.length == 23 || TimeZoneOffset.is(value.substring(23))))))))));\n }\n DateTime.is = is;\n function parse(value) {\n return new globalThis.Date(DateTime.truncate(value, \"milliseconds\"));\n }\n DateTime.parse = parse;\n function create(value, resolution = \"seconds\") {\n if (typeof value == \"number\") {\n switch (resolution) {\n case \"days\":\n value = value * 24;\n // fallthrough...\n case \"hours\":\n value = value * 60;\n // fallthrough...\n case \"minutes\":\n value = value * 60;\n // fallthrough...\n case \"seconds\":\n value = value * 1000;\n // fallthrough...\n case \"milliseconds\":\n }\n value = new globalThis.Date(value);\n }\n return fixIncorrect(value.toISOString());\n }\n DateTime.create = create;\n function fixIncorrect(value) {\n if (value.length == 22 && value.match(/\\.\\dZ$/))\n value = value.substring(0, 21) + \"00Z\";\n else if (value.length == 23 && value.match(/\\.\\d\\dZ$/))\n value = value.substring(0, 22) + \"0Z\";\n return value;\n }\n DateTime.fixIncorrect = fixIncorrect;\n /**\n * Return local time with offset.\n * Note: During DST-change, this might be wrong.\n */\n function fromLocalDateTime(localDateTime, timeZone) {\n // Cut off any time-zone-information:\n // TODO: Use the information, and just change offset.\n localDateTime = localDateTime.replace(/(Z|([+-].{5}))?$/, \"\");\n // Create a Date object with the specified time as UTC\n const utcDateTime = new globalThis.Date(`${localDateTime}Z`);\n const localDate = new globalThis.Date(utcDateTime.toLocaleString(\"sv-SE\", { timeZone: timeZone }).replace(\" \", \"T\") + \"Z\");\n // Calculate the time difference in minutes\n const diffInMinutes = (localDate.getTime() - utcDateTime.getTime()) / 60000;\n // Calculate the timezone's offset in hours and minutes\n const offsetHours = Math.floor(Math.abs(diffInMinutes) / 60)\n .toString()\n .padStart(2, \"0\");\n const offsetMinutes = (Math.abs(diffInMinutes) % 60).toString().padStart(2, \"0\");\n // Create the timezone string\n const timeZoneString = `${diffInMinutes >= 0 ? \"+\" : \"-\"}${offsetHours}:${offsetMinutes}`;\n // Return the formatted date string with timezone information\n return `${localDateTime}${timeZoneString}`;\n }\n DateTime.fromLocalDateTime = fromLocalDateTime;\n function now() {\n return create(new globalThis.Date());\n }\n DateTime.now = now;\n function localize(value, formatOrLocale, localeOrTimeZone) {\n let result;\n if (typeof formatOrLocale == \"object\") {\n // formatOrLocale is Format\n // localeOrTimeZone is Locale | undefined\n const localeString = localeOrTimeZone ? localeOrTimeZone : Intl.DateTimeFormat().resolvedOptions().locale;\n result = (is(value) ? parse(value) : value)\n .toLocaleString(localeString, formatOrLocale)\n // For consistency, replace NNBSP with space:\n // Unicode has decided to use `Narrow No-Break Space (NNBSP)` (U+202F) instead of space in some cases.\n // It breaks tests, when running in different environments.\n // https://icu.unicode.org/download/72#:~:text=In%20many%20formatting%20patterns%2C%20ASCII%20spaces%20are%20replaced%20with%20Unicode%20spaces%20(e.g.%2C%20a%20%22thin%20space%22)\n // This can be removed, with a breaking change and updated tests, when all systems use updated versions of ICU.\n .replaceAll(\" \", \" \");\n }\n else {\n // formatOrLocale is Locale | undefined\n // localeOrTimeZone is timeZone | undefined\n const precision = is(value) ? DateTime.precision(value) : \"milliseconds\";\n result = localize(value, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: precision == \"minutes\" || precision == \"seconds\" || precision == \"milliseconds\" ? \"2-digit\" : undefined,\n second: precision == \"seconds\" || precision == \"milliseconds\" ? \"2-digit\" : undefined,\n timeZone: localeOrTimeZone,\n }, formatOrLocale);\n }\n return result;\n }\n DateTime.localize = localize;\n /** @deprecated Use timeZoneOffset() */\n function timeZone(value) {\n return timeZoneOffset(value);\n }\n DateTime.timeZone = timeZone;\n function timeZoneOffset(value) {\n const result = value[value.length - 1] == \"Z\" ? \"Z\" : value.substring(value.length - 6);\n return TimeZoneOffset.is(result) ? result : \"\";\n }\n DateTime.timeZoneOffset = timeZoneOffset;\n function timeZoneShort(value) {\n return parse(value).getTimezoneOffset();\n }\n DateTime.timeZoneShort = timeZoneShort;\n function precision(value) {\n const zone = timeZoneOffset(value);\n const time = value.substring(0, value.length - zone.length).split(\"T\", 2)[1];\n let result;\n switch (time.length) {\n case 2:\n result = \"hours\";\n break;\n case 5:\n result = \"minutes\";\n break;\n case 8:\n result = \"seconds\";\n break;\n default:\n case 12:\n result = \"milliseconds\";\n break;\n }\n return result;\n }\n DateTime.precision = precision;\n function truncate(value, precision) {\n const zone = timeZoneOffset(value);\n // eslint-disable-next-line prefer-const\n let [date, time] = value.split(\"T\", 2);\n time = time.substring(0, time.length - zone.length);\n switch (time.length) {\n case 2:\n time += \":00:00.000\";\n break;\n case 5:\n time += \":00.000\";\n break;\n case 8:\n time += \".000\";\n break;\n }\n let result;\n switch (precision) {\n case \"hours\":\n result = time.substring(0, 2);\n break;\n case \"minutes\":\n result = time.substring(0, 5);\n break;\n case \"seconds\":\n result = time.substring(0, 8);\n break;\n case \"milliseconds\":\n result = time.substring(0, 12);\n break;\n }\n return date + \"T\" + result + zone;\n }\n DateTime.truncate = truncate;\n function epoch(value, resolution = \"seconds\") {\n let result = (typeof value == \"string\" ? parse(value) : value).getTime();\n switch (resolution) {\n case \"days\":\n result = Math.round(result / 24);\n // fallthrough...\n case \"hours\":\n result = Math.round(result / 60);\n // fallthrough...\n case \"minutes\":\n result = Math.round(result / 60);\n // fallthrough...\n case \"seconds\":\n result = Math.round(result / 1000);\n // fallthrough...\n case \"milliseconds\":\n }\n return result;\n }\n DateTime.epoch = epoch;\n function next(time, span = 1) {\n let result;\n if (typeof span == \"number\")\n result = nextSecond(time, span);\n else {\n result = time;\n if (span.years)\n result = nextYear(result, span.years);\n if (span.months)\n result = nextMonth(result, span.months);\n if (span.days)\n result = nextDay(result, span.days);\n if (span.hours)\n result = nextHour(result, span.hours);\n if (span.minutes)\n result = nextMinute(result, span.minutes);\n if (span.seconds)\n result = nextSecond(result, span.seconds);\n if (span.milliseconds)\n result = nextMillisecond(result, span.milliseconds);\n }\n return result;\n }\n DateTime.next = next;\n function previous(time, span = 1) {\n let result;\n if (typeof span == \"number\")\n result = previousSecond(time, span);\n else {\n result = time;\n if (span.years)\n result = previousYear(result, span.years);\n if (span.months)\n result = previousMonth(result, span.months);\n if (span.days)\n result = previousDay(result, span.days);\n if (span.hours)\n result = previousHour(result, span.hours);\n if (span.minutes)\n result = previousMinute(result, span.minutes);\n if (span.seconds)\n result = previousSecond(result, span.seconds);\n if (span.milliseconds)\n result = previousMillisecond(result, span.milliseconds);\n }\n return result;\n }\n DateTime.previous = previous;\n function nextMillisecond(time, milliseconds = 1) {\n const result = parse(time);\n result.setMilliseconds(result.getMilliseconds() + milliseconds);\n return DateTime.create(result);\n }\n DateTime.nextMillisecond = nextMillisecond;\n function previousMillisecond(time, milliseconds = 1) {\n return nextMillisecond(time, -milliseconds);\n }\n DateTime.previousMillisecond = previousMillisecond;\n function nextSecond(time, seconds = 1) {\n const result = parse(time);\n result.setSeconds(result.getSeconds() + seconds);\n return DateTime.create(result);\n }\n DateTime.nextSecond = nextSecond;\n function previousSecond(time, seconds = 1) {\n return nextSecond(time, -seconds);\n }\n DateTime.previousSecond = previousSecond;\n function nextMinute(time, minutes = 1) {\n const result = parse(time);\n result.setMinutes(result.getMinutes() + minutes);\n return DateTime.create(result);\n }\n DateTime.nextMinute = nextMinute;\n function previousMinute(time, minutes = 1) {\n return nextMinute(time, -minutes);\n }\n DateTime.previousMinute = previousMinute;\n function nextHour(time, hours = 1) {\n const result = parse(time);\n result.setHours(result.getHours() + hours);\n return DateTime.create(result);\n }\n DateTime.nextHour = nextHour;\n function previousHour(time, hours = 1) {\n return nextHour(time, -hours);\n }\n DateTime.previousHour = previousHour;\n function nextDay(time, days = 1) {\n const result = parse(time);\n const offset = result.getTimezoneOffset();\n result.setDate(result.getDate() + days);\n result.setMinutes(result.getMinutes() + offset - result.getTimezoneOffset()); // handle changing potential daylight saving time\n return DateTime.create(result);\n }\n DateTime.nextDay = nextDay;\n function previousDay(time, days = 1) {\n return nextDay(time, -days);\n }\n DateTime.previousDay = previousDay;\n function nextMonth(time, months = 1) {\n const result = parse(time);\n const offset = result.getTimezoneOffset();\n result.setMonth(result.getMonth() + months);\n result.setMinutes(result.getMinutes() + offset - result.getTimezoneOffset()); // handle changing potential daylight saving time\n return DateTime.create(result);\n }\n DateTime.nextMonth = nextMonth;\n function previousMonth(time, months = 1) {\n return nextMonth(time, -months);\n }\n DateTime.previousMonth = previousMonth;\n function nextYear(time, years = 1) {\n const result = parse(time);\n result.setFullYear(result.getFullYear() + years);\n return DateTime.create(result);\n }\n DateTime.nextYear = nextYear;\n function previousYear(time, years = 1) {\n return nextYear(time, -years);\n }\n DateTime.previousYear = previousYear;\n function getDate(time) {\n return time.substring(0, 10);\n }\n DateTime.getDate = getDate;\n function getTime(time) {\n return time.substring(11);\n }\n DateTime.getTime = getTime;\n function getYear(time) {\n return Number.parseInt(time.substring(0, 4));\n }\n DateTime.getYear = getYear;\n function getMonth(time) {\n return Number.parseInt(time.substring(5, 7));\n }\n DateTime.getMonth = getMonth;\n function getDay(time) {\n return Number.parseInt(time.substring(8, 10));\n }\n DateTime.getDay = getDay;\n function getHour(time) {\n return Number.parseInt(time.substring(11, 13));\n }\n DateTime.getHour = getHour;\n function getMinute(time) {\n return Number.parseInt(time.substring(14, 16));\n }\n DateTime.getMinute = getMinute;\n function getSecond(time) {\n return Number.parseInt(time.substring(17, 19));\n }\n DateTime.getSecond = getSecond;\n function getMillisecond(time) {\n return Number.parseInt(time.substring(20, 23));\n }\n DateTime.getMillisecond = getMillisecond;\n function span(time, relative, greatestUnit = \"years\") {\n let result;\n if (greatestUnit == \"years\") {\n result = {\n ...Date.span(time, relative),\n hours: getHour(time) - getHour(relative),\n minutes: getMinute(time) - getMinute(relative),\n seconds: getSecond(time) - getSecond(relative),\n milliseconds: getMillisecond(time) - getMillisecond(relative),\n };\n }\n else {\n let milliseconds = epoch(time, \"milliseconds\") - epoch(relative, \"milliseconds\");\n const sign = Math.sign(milliseconds);\n milliseconds = Math.abs(milliseconds);\n result = {};\n switch (greatestUnit) {\n case \"hours\":\n result.hours = sign * Math.floor(milliseconds / (3600 * 1000));\n milliseconds -= sign * result.hours * 3600 * 1000;\n // Fallthrough...\n case \"minutes\":\n result.minutes = sign * Math.floor(milliseconds / (60 * 1000));\n milliseconds -= sign * result.minutes * 60 * 1000;\n // Fallthrough...\n case \"seconds\":\n result.seconds = sign * Math.floor(milliseconds / 1000);\n milliseconds -= sign * result.seconds * 1000;\n // Fallthrough...\n case \"milliseconds\":\n result.milliseconds = sign * milliseconds;\n }\n }\n return result;\n }\n DateTime.span = span;\n DateTime.epochStart = \"0000-01-01T00:00:00.000Z\";\n DateTime.epochEnd = \"9999-12-31T23:59:59.999Z\";\n function invert(time) {\n return `${Date.invert(getDate(time))}T${(24 - getHour(time)).toFixed(0).padStart(2, \"0\")}:${(60 - getMinute(time))\n .toFixed(0)\n .padStart(2, \"0\")}:${(60 - getSecond(time)).toFixed(0).padStart(2, \"0\")}.${(999 - getMillisecond(time))\n .toFixed(0)\n .padStart(3, \"0\")}Z`;\n }\n DateTime.invert = invert;\n})(DateTime || (DateTime = {}));\n/*\n2021-01-10T13:37:42.000Z\n012345678901234567890123\n0 1 2\n*/\n//# sourceMappingURL=DateTime.js.map","export class Transcoder {\n}\n//# sourceMappingURL=Transcoder.js.map","import { Transcoder } from \"./Transcoder\";\nexport class Iso88591 extends Transcoder {\n encode(data) {\n return Uint8Array.from(data.split(\"\"), c => utf8ToIso88591[c]);\n }\n decode(data) {\n return !data\n ? \"\"\n : new Uint8Array(data.buffer, data.byteOffset, data.byteLength).reduce((r, v) => r + iso88591ToUtf8[v], \"\");\n }\n}\nconst iso88591ToUtf8 = [\n \"\\u0000\",\n \"\\u0001\",\n \"\\u0002\",\n \"\\u0003\",\n \"\\u0004\",\n \"\\u0005\",\n \"\\u0006\",\n \"\\u0007\",\n \"\\u0008\",\n \"\\u0009\",\n \"\\n\",\n \"\\u000b\",\n \"\\u000c\",\n \"\\r\",\n \"\\u000e\",\n \"\\u000f\",\n \"\\u0010\",\n \"\\u0011\",\n \"\\u0012\",\n \"\\u0013\",\n \"\\u0014\",\n \"\\u0015\",\n \"\\u0016\",\n \"\\u0017\",\n \"\\u0018\",\n \"\\u0019\",\n \"\\u001a\",\n \"\\u001b\",\n \"\\u001c\",\n \"\\u001d\",\n \"\\u001e\",\n \"\\u001f\",\n \" \",\n \"!\",\n '\"',\n \"#\",\n \"$\",\n \"%\",\n \"&\",\n \"\\u0022\",\n \"(\",\n \")\",\n \"*\",\n \"+\",\n \",\",\n \"-\",\n \".\",\n \"/\",\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\",\n \"5\",\n \"6\",\n \"7\",\n \"8\",\n \"9\",\n \":\",\n \";\",\n \"<\",\n \"=\",\n \">\",\n \"?\",\n \"@\",\n \"A\",\n \"B\",\n \"C\",\n \"D\",\n \"E\",\n \"F\",\n \"G\",\n \"H\",\n \"I\",\n \"J\",\n \"K\",\n \"L\",\n \"M\",\n \"N\",\n \"O\",\n \"P\",\n \"Q\",\n \"R\",\n \"S\",\n \"T\",\n \"U\",\n \"V\",\n \"W\",\n \"X\",\n \"Y\",\n \"Z\",\n \"[\",\n \"\\\\\",\n \"]\",\n \"^\",\n \"_\",\n \"`\",\n \"a\",\n \"b\",\n \"c\",\n \"d\",\n \"e\",\n \"f\",\n \"g\",\n \"h\",\n \"i\",\n \"j\",\n \"k\",\n \"l\",\n \"m\",\n \"n\",\n \"o\",\n \"p\",\n \"q\",\n \"r\",\n \"s\",\n \"t\",\n \"u\",\n \"v\",\n \"w\",\n \"x\",\n \"y\",\n \"z\",\n \"{\",\n \"|\",\n \"}\",\n \"~\",\n \"\",\n \"€\",\n \"\",\n \"‚\",\n \"ƒ\",\n \"„\",\n \"…\",\n \"†\",\n \"‡\",\n \"ˆ\",\n \"‰\",\n \"Š\",\n \"‹\",\n \"Œ\",\n \"\",\n \"Ž\",\n \"\",\n \"\",\n \"‘\",\n \"’\",\n \"“\",\n \"”\",\n \"•\",\n \"–\",\n \"—\",\n \"˜\",\n \"™\",\n \"š\",\n \"›\",\n \"œ\",\n \"\",\n \"ž\",\n \"Ÿ\",\n \"\\u00a0\",\n \"¡\",\n \"¢\",\n \"£\",\n \"¤\",\n \"¥\",\n \"¦\",\n \"§\",\n \"¨\",\n \"©\",\n \"ª\",\n \"«\",\n \"¬\",\n \"\",\n \"®\",\n \"¯\",\n \"°\",\n \"±\",\n \"²\",\n \"³\",\n \"´\",\n \"µ\",\n \"¶\",\n \"·\",\n \"¸\",\n \"¹\",\n \"º\",\n \"»\",\n \"¼\",\n \"½\",\n \"¾\",\n \"¿\",\n \"À\",\n \"Á\",\n \"Â\",\n \"Ã\",\n \"Ä\",\n \"Å\",\n \"Æ\",\n \"Ç\",\n \"È\",\n \"É\",\n \"Ê\",\n \"Ë\",\n \"Ì\",\n \"Í\",\n \"Î\",\n \"Ï\",\n \"Ð\",\n \"Ñ\",\n \"Ò\",\n \"Ó\",\n \"Ô\",\n \"Õ\",\n \"Ö\",\n \"×\",\n \"Ø\",\n \"Ù\",\n \"Ú\",\n \"Û\",\n \"Ü\",\n \"Ý\",\n \"Þ\",\n \"ß\",\n \"à\",\n \"á\",\n \"â\",\n \"ã\",\n \"ä\",\n \"å\",\n \"æ\",\n \"ç\",\n \"è\",\n \"é\",\n \"ê\",\n \"ë\",\n \"ì\",\n \"í\",\n \"î\",\n \"ï\",\n \"ð\",\n \"ñ\",\n \"ò\",\n \"ó\",\n \"ô\",\n \"õ\",\n \"ö\",\n \"÷\",\n \"ø\",\n \"ù\",\n \"ú\",\n \"û\",\n \"ü\",\n \"ý\",\n \"þ\",\n \"ÿ\",\n];\nconst utf8ToIso88591 = {\n \"\\u0000\": 0,\n \"\\u0001\": 1,\n \"\\u0002\": 2,\n \"\\u0003\": 3,\n \"\\u0004\": 4,\n \"\\u0005\": 5,\n \"\\u0006\": 6,\n \"\\u0007\": 7,\n \"\\u0008\": 8,\n \"\\u0009\": 9,\n \"\\n\": 10,\n \"\\u000b\": 11,\n \"\\u000c\": 12,\n \"\\r\": 13,\n \"\\u000e\": 14,\n \"\\u000f\": 15,\n \"\\u0010\": 16,\n \"\\u0011\": 17,\n \"\\u0012\": 18,\n \"\\u0013\": 19,\n \"\\u0014\": 20,\n \"\\u0015\": 21,\n \"\\u0016\": 22,\n \"\\u0017\": 23,\n \"\\u0018\": 24,\n \"\\u0019\": 25,\n \"\\u001a\": 26,\n \"\\u001b\": 27,\n \"\\u001c\": 28,\n \"\\u001d\": 29,\n \"\\u001e\": 30,\n \"\\u001f\": 31,\n \" \": 32,\n \"!\": 33,\n '\"': 34,\n \"#\": 35,\n $: 36,\n \"%\": 37,\n \"&\": 38,\n \"\\u0027\": 39,\n \"(\": 40,\n \")\": 41,\n \"*\": 42,\n \"+\": 43,\n \",\": 44,\n \"-\": 45,\n \".\": 46,\n \"/\": 47,\n \"0\": 48,\n \"1\": 49,\n \"2\": 50,\n \"3\": 51,\n \"4\": 52,\n \"5\": 53,\n \"6\": 54,\n \"7\": 55,\n \"8\": 56,\n \"9\": 57,\n \":\": 58,\n \";\": 59,\n \"<\": 60,\n \"=\": 61,\n \">\": 62,\n \"?\": 63,\n \"@\": 64,\n A: 65,\n B: 66,\n C: 67,\n D: 68,\n E: 69,\n F: 70,\n G: 71,\n H: 72,\n I: 73,\n J: 74,\n K: 75,\n L: 76,\n M: 77,\n N: 78,\n O: 79,\n P: 80,\n Q: 81,\n R: 82,\n S: 83,\n T: 84,\n U: 85,\n V: 86,\n W: 87,\n X: 88,\n Y: 89,\n Z: 90,\n \"[\": 91,\n \"\\\\\": 92,\n \"]\": 93,\n \"^\": 94,\n _: 95,\n \"`\": 96,\n a: 97,\n b: 98,\n c: 99,\n d: 100,\n e: 101,\n f: 102,\n g: 103,\n h: 104,\n i: 105,\n j: 106,\n k: 107,\n l: 108,\n m: 109,\n n: 110,\n o: 111,\n p: 112,\n q: 113,\n r: 114,\n s: 115,\n t: 116,\n u: 117,\n v: 118,\n w: 119,\n x: 120,\n y: 121,\n z: 122,\n \"{\": 123,\n \"|\": 124,\n \"}\": 125,\n \"~\": 126,\n \"\": 127,\n \"€\": 128,\n \"\": 129,\n \"‚\": 130,\n ƒ: 131,\n \"„\": 132,\n \"…\": 133,\n \"†\": 134,\n \"‡\": 135,\n ˆ: 136,\n \"‰\": 137,\n Š: 138,\n \"‹\": 139,\n Œ: 140,\n \"\": 141,\n Ž: 142,\n \"\": 143,\n \"\": 144,\n \"‘\": 145,\n \"’\": 146,\n \"“\": 147,\n \"”\": 148,\n \"•\": 149,\n \"–\": 150,\n \"—\": 151,\n \"˜\": 152,\n \"™\": 153,\n š: 154,\n \"›\": 155,\n œ: 156,\n \"\": 157,\n ž: 158,\n Ÿ: 159,\n \"\\u00a0\": 160,\n \"¡\": 161,\n \"¢\": 162,\n \"£\": 163,\n \"¤\": 164,\n \"¥\": 165,\n \"¦\": 166,\n \"§\": 167,\n \"¨\": 168,\n \"©\": 169,\n ª: 170,\n \"«\": 171,\n \"¬\": 172,\n \"\": 173,\n \"®\": 174,\n \"¯\": 175,\n \"°\": 176,\n \"±\": 177,\n \"²\": 178,\n \"³\": 179,\n \"´\": 180,\n µ: 181,\n \"¶\": 182,\n \"·\": 183,\n \"¸\": 184,\n \"¹\": 185,\n º: 186,\n \"»\": 187,\n \"¼\": 188,\n \"½\": 189,\n \"¾\": 190,\n \"¿\": 191,\n À: 192,\n Á: 193,\n Â: 194,\n Ã: 195,\n Ä: 196,\n Å: 197,\n Æ: 198,\n Ç: 199,\n È: 200,\n É: 201,\n Ê: 202,\n Ë: 203,\n Ì: 204,\n Í: 205,\n Î: 206,\n Ï: 207,\n Ð: 208,\n Ñ: 209,\n Ò: 210,\n Ó: 211,\n Ô: 212,\n Õ: 213,\n Ö: 214,\n \"×\": 215,\n Ø: 216,\n Ù: 217,\n Ú: 218,\n Û: 219,\n Ü: 220,\n Ý: 221,\n Þ: 222,\n ß: 223,\n à: 224,\n á: 225,\n â: 226,\n ã: 227,\n ä: 228,\n å: 229,\n æ: 230,\n ç: 231,\n è: 232,\n é: 233,\n ê: 234,\n ë: 235,\n ì: 236,\n í: 237,\n î: 238,\n ï: 239,\n ð: 240,\n ñ: 241,\n ò: 242,\n ó: 243,\n ô: 244,\n õ: 245,\n ö: 246,\n \"÷\": 247,\n ø: 248,\n ù: 249,\n ú: 250,\n û: 251,\n ü: 252,\n ý: 253,\n þ: 254,\n ÿ: 255,\n};\n//# sourceMappingURL=Iso88591.js.map","import { Transcoder } from \"./Transcoder\";\nexport class Utf8 extends Transcoder {\n encode(data) {\n return Uint8Array.from(unescape(encodeURIComponent(data)).split(\"\"), c => c.charCodeAt(0));\n }\n decode(data) {\n return !data\n ? \"\"\n : decodeURIComponent(escape(Array.from(new Uint8Array(data.buffer, data.byteOffset, data.byteLength), c => String.fromCharCode(c)).join(\"\")));\n }\n}\n//# sourceMappingURL=Utf8.js.map","import { Iso88591 } from \"./Iso88591\";\nimport { Utf8 } from \"./Utf8\";\nexport var Encoding;\n(function (Encoding) {\n Encoding.values = [\n \"UTF-8\",\n \"UTF-16\",\n \"UTF-32\",\n \"ASCII\",\n \"CP037\",\n \"CP930\",\n \"CP1047\",\n \"ISO-8859-1\",\n \"ISO-8859-2\",\n \"ISO-8859-3\",\n \"ISO-8859-4\",\n \"ISO-8859-5\",\n \"ISO-8859-6\",\n \"ISO-8859-7\",\n \"ISO-8859-8\",\n \"ISO-8859-9\",\n \"ISO-8859-10\",\n \"ISO-8859-11\",\n \"ISO-8859-13\",\n \"ISO-8859-14\",\n \"ISO-8859-15\",\n \"ISO-8859-16\",\n \"CP437\",\n \"CP720\",\n \"CP737\",\n \"CP850\",\n \"CP852\",\n \"CP855\",\n \"CP857\",\n \"CP858\",\n \"CP860\",\n \"CP861\",\n \"CP862\",\n \"CP863\",\n \"CP865\",\n \"CP866\",\n \"CP869\",\n \"CP872\",\n \"Windows-1250\",\n \"Windows-1251\",\n \"Windows-1252\",\n \"Windows-1253\",\n \"Windows-1254\",\n \"Windows-1255\",\n \"Windows-1256\",\n \"Windows-1257\",\n \"Windows-1258\",\n \"Mac OS Roman\",\n \"KOI8-R\",\n \"KOI8-U\",\n \"KOI7\",\n \"MIK\",\n \"ISCII\",\n \"TSCII\",\n \"VISCII\",\n \"Shift_JIS\",\n \"EUC-JP\",\n \"ISO-2022-JP\",\n \"Shift_JIS-2004\",\n \"EUC-JIS-2004\",\n \"ISO-2022-2004\",\n \"GB 2312\",\n \"GBK\",\n \"GB 18030\",\n \"Big5\",\n \"HKSCS\",\n \"KS X 1001\",\n \"EUC-KR\",\n \"ISO-2022-KR\",\n \"T.51\",\n ];\n function is(value) {\n return typeof value == \"string\" && Encoding.values.some(v => v == value);\n }\n Encoding.is = is;\n function parse(value) {\n let result;\n switch (value.toUpperCase()) {\n case \"UTF-8\":\n case \"UTF8\":\n case \"UTF 8\":\n result = \"UTF-8\";\n break;\n case \"UTF-16\":\n result = \"UTF-16\";\n break;\n case \"UTF-32\":\n result = \"UTF-32\";\n break;\n case \"US-ASCII\":\n case \"ASCII\":\n result = \"ASCII\";\n break;\n case \"CP037\":\n result = \"CP037\";\n break;\n case \"CP930\":\n result = \"CP930\";\n break;\n case \"CP1047\":\n result = \"CP1047\";\n break;\n case \"ISO-IR-100\":\n case \"CSISOLATIN1\":\n case \"LATIN1\":\n case \"LATIN-1\":\n case \"L1\":\n case \"IBM819\":\n case \"CODE PAGE 28591\":\n case \"WINDOWS-28591\":\n case \"CODE PAGE 819\":\n case \"CP819\":\n case \"CCSID 819\":\n case \"WE8ISO8859P1\":\n case \"ISO 8859-1\":\n case \"ISO-8859-1\": // Western Europe\n result = \"ISO-8859-1\";\n break;\n case \"ISO-8859-2\":\n result = \"ISO-8859-2\";\n break; // Western and Central Europe\n case \"ISO-8859-3\":\n result = \"ISO-8859-3\";\n break; // Western Europe and South European (Turkish, Maltese plus Esperanto)\n case \"ISO-8859-4\":\n result = \"ISO-8859-4\";\n break; // Western Europe and Baltic countries (Lithuania, Estonia, Latvia and Lapp)\n case \"ISO-8859-5\":\n result = \"ISO-8859-5\";\n break; // Cyrillic alphabet\n case \"ISO-8859-6\":\n result = \"ISO-8859-6\";\n break; // Arabic\n case \"ISO-8859-7\":\n result = \"ISO-8859-7\";\n break; // Greek\n case \"ISO-8859-8\":\n result = \"ISO-8859-8\";\n break; // Hebrew\n case \"ISO-8859-9\":\n result = \"ISO-8859-9\";\n break; // Western Europe with amended Turkish character set\n case \"ISO-8859-10\":\n result = \"ISO-8859-10\";\n break; // Western Europe with rationalised character set for Nordic languages, including complete Icelandic set\n case \"ISO-8859-11\":\n result = \"ISO-8859-11\";\n break; // Thai\n case \"ISO-8859-13\":\n result = \"ISO-8859-13\";\n break; // Baltic languages plus Polish\n case \"ISO-8859-14\":\n result = \"ISO-8859-14\";\n break; // Celtic languages (Irish Gaelic, Scottish, Welsh)\n case \"ISO-8859-15\":\n result = \"ISO-8859-15\";\n break; // Added the Euro sign and other rationalisations to ISO 8859-1\n case \"ISO-8859-16\":\n result = \"ISO-8859-16\";\n break; // Central, Eastern and Southern European languages (Albanian, Bosnian, Croatian, Hungarian, Polish, Romanian, Serbian and Slovenian, but also French, German, Italian and Irish Gaelic)\n case \"CP437\":\n result = \"CP437\";\n break;\n case \"CP720\":\n result = \"CP720\";\n break;\n case \"CP737\":\n result = \"CP737\";\n break;\n case \"CP850\":\n result = \"CP850\";\n break;\n case \"CP852\":\n result = \"CP852\";\n break;\n case \"CP855\":\n result = \"CP855\";\n break;\n case \"CP857\":\n result = \"CP857\";\n break;\n case \"CP858\":\n result = \"CP858\";\n break;\n case \"CP860\":\n result = \"CP860\";\n break;\n case \"CP861\":\n result = \"CP861\";\n break;\n case \"CP862\":\n result = \"CP862\";\n break;\n case \"CP863\":\n result = \"CP863\";\n break;\n case \"CP865\":\n result = \"CP865\";\n break;\n case \"CP866\":\n result = \"CP866\";\n break;\n case \"CP869\":\n result = \"CP869\";\n break;\n case \"CP872\":\n result = \"CP872\";\n break;\n case \"WINDOWS-1250\":\n result = \"Windows-1250\";\n break; // Central European languages that use Latin script, (Polish, Czech, Slovak, Hungarian, Slovene, Serbian, Croatian, Bosnian, Romanian and Albanian)\n case \"WINDOWS-1251\":\n result = \"Windows-1251\";\n break; // Cyrillic alphabets\n case \"WINDOWS-1252\":\n result = \"Windows-1252\";\n break; // Western languages\n case \"WINDOWS-1253\":\n result = \"Windows-1253\";\n break; // Greek\n case \"WINDOWS-1254\":\n result = \"Windows-1254\";\n break; // Turkish\n case \"WINDOWS-1255\":\n result = \"Windows-1255\";\n break; // Hebrew\n case \"WINDOWS-1256\":\n result = \"Windows-1256\";\n break; // Arabic\n case \"WINDOWS-1257\":\n result = \"Windows-1257\";\n break; // Baltic languages\n case \"WINDOWS-1258\":\n result = \"Windows-1258\";\n break; // Vietnamese\n case \"MAC OS ROMAN\":\n result = \"Mac OS Roman\";\n break;\n case \"KOI8-R\":\n result = \"KOI8-R\";\n break;\n case \"KOI8-U\":\n result = \"KOI8-U\";\n break;\n case \"KOI7\":\n result = \"KOI7\";\n break;\n case \"MIK\":\n result = \"MIK\";\n break;\n case \"ISCII\":\n result = \"ISCII\";\n break;\n case \"TSCII\":\n result = \"TSCII\";\n break;\n case \"VISCII\":\n result = \"VISCII\";\n break;\n case \"SHIFT_JIS\":\n result = \"Shift_JIS\";\n break;\n case \"EUC-JP\":\n result = \"EUC-JP\";\n break;\n case \"ISO-2022-JP\":\n result = \"ISO-2022-JP\";\n break;\n case \"SHIFT_JIS-2004\":\n result = \"Shift_JIS-2004\";\n break;\n case \"EUC-JIS-2004\":\n result = \"EUC-JIS-2004\";\n break;\n case \"ISO-2022-2004\":\n result = \"ISO-2022-2004\";\n break;\n case \"GB 2312\":\n result = \"GB 2312\";\n break;\n case \"GBK\":\n result = \"GBK\";\n break;\n case \"GB 18030\":\n result = \"GB 18030\";\n break;\n case \"BIG5\":\n result = \"Big5\";\n break;\n case \"HKSCS\":\n result = \"HKSCS\";\n break;\n case \"KS X 1001\":\n result = \"KS X 1001\";\n break;\n case \"EUC-KR\":\n result = \"EUC-KR\";\n break;\n case \"ISO-2022-KR\":\n result = \"ISO-2022-KR\";\n break;\n case \"T.51\":\n result = \"T.51\";\n break;\n }\n return result;\n }\n Encoding.parse = parse;\n function encode(encoding, data) {\n return transcoders[encoding].encode(data);\n }\n Encoding.encode = encode;\n function decode(encoding, data) {\n return transcoders[encoding].decode(data);\n }\n Encoding.decode = decode;\n const transcoders = {\n \"ISO-8859-1\": new Iso88591(),\n \"UTF-8\": new Utf8(),\n };\n})(Encoding || (Encoding = {}));\n//# sourceMappingURL=index.js.map","export var Language;\n(function (Language) {\n function is(value) {\n return (typeof value == \"string\" &&\n (value == \"ab\" ||\n value == \"aa\" ||\n value == \"af\" ||\n value == \"ak\" ||\n value == \"sq\" ||\n value == \"am\" ||\n value == \"ar\" ||\n value == \"an\" ||\n value == \"hy\" ||\n value == \"as\" ||\n value == \"av\" ||\n value == \"ae\" ||\n value == \"ay\" ||\n value == \"az\" ||\n value == \"bm\" ||\n value == \"ba\" ||\n value == \"eu\" ||\n value == \"be\" ||\n value == \"bn\" ||\n value == \"bh\" ||\n value == \"bi\" ||\n value == \"bs\" ||\n value == \"br\" ||\n value == \"bg\" ||\n value == \"my\" ||\n value == \"ca\" ||\n value == \"ch\" ||\n value == \"ce\" ||\n value == \"ny\" ||\n value == \"zh\" ||\n value == \"cv\" ||\n value == \"kw\" ||\n value == \"co\" ||\n value == \"cr\" ||\n value == \"hr\" ||\n value == \"cs\" ||\n value == \"da\" ||\n value == \"dv\" ||\n value == \"nl\" ||\n value == \"dz\" ||\n value == \"en\" ||\n value == \"eo\" ||\n value == \"et\" ||\n value == \"ee\" ||\n value == \"fo\" ||\n value == \"fj\" ||\n value == \"fi\" ||\n value == \"fr\" ||\n value == \"ff\" ||\n value == \"gl\" ||\n value == \"ka\" ||\n value == \"de\" ||\n value == \"el\" ||\n value == \"gn\" ||\n value == \"gu\" ||\n value == \"ht\" ||\n value == \"ha\" ||\n value == \"he\" ||\n value == \"hz\" ||\n value == \"hi\" ||\n value == \"ho\" ||\n value == \"hu\" ||\n value == \"ia\" ||\n value == \"id\" ||\n value == \"ie\" ||\n value == \"ga\" ||\n value == \"ig\" ||\n value == \"ik\" ||\n value == \"io\" ||\n value == \"is\" ||\n value == \"it\" ||\n value == \"iu\" ||\n value == \"ja\" ||\n value == \"jv\" ||\n value == \"kl\" ||\n value == \"kn\" ||\n value == \"kr\" ||\n value == \"ks\" ||\n value == \"kk\" ||\n value == \"km\" ||\n value == \"ki\" ||\n value == \"rw\" ||\n value == \"ky\" ||\n value == \"kv\" ||\n value == \"kg\" ||\n value == \"ko\" ||\n value == \"ku\" ||\n value == \"kj\" ||\n value == \"la\" ||\n value == \"lb\" ||\n value == \"lg\" ||\n value == \"li\" ||\n value == \"ln\" ||\n value == \"lo\" ||\n value == \"lt\" ||\n value == \"lu\" ||\n value == \"lv\" ||\n value == \"gv\" ||\n value == \"mk\" ||\n value == \"mg\" ||\n value == \"ms\" ||\n value == \"ml\" ||\n value == \"mt\" ||\n value == \"mi\" ||\n value == \"mr\" ||\n value == \"mh\" ||\n value == \"mn\" ||\n value == \"na\" ||\n value == \"nv\" ||\n value == \"nd\" ||\n value == \"ne\" ||\n value == \"ng\" ||\n value == \"nb\" ||\n value == \"nn\" ||\n value == \"no\" ||\n value == \"ii\" ||\n value == \"nr\" ||\n value == \"oc\" ||\n value == \"oj\" ||\n value == \"cu\" ||\n value == \"om\" ||\n value == \"or\" ||\n value == \"os\" ||\n value == \"pa\" ||\n value == \"pi\" ||\n value == \"fa\" ||\n value == \"pl\" ||\n value == \"ps\" ||\n value == \"pt\" ||\n value == \"qu\" ||\n value == \"rm\" ||\n value == \"rn\" ||\n value == \"ro\" ||\n value == \"ru\" ||\n value == \"sa\" ||\n value == \"sc\" ||\n value == \"sd\" ||\n value == \"se\" ||\n value == \"sm\" ||\n value == \"sg\" ||\n value == \"sr\" ||\n value == \"gd\" ||\n value == \"sn\" ||\n value == \"si\" ||\n value == \"sk\" ||\n value == \"sl\" ||\n value == \"so\" ||\n value == \"st\" ||\n value == \"es\" ||\n value == \"su\" ||\n value == \"sw\" ||\n value == \"ss\" ||\n value == \"sv\" ||\n value == \"ta\" ||\n value == \"te\" ||\n value == \"tg\" ||\n value == \"th\" ||\n value == \"ti\" ||\n value == \"bo\" ||\n value == \"tk\" ||\n value == \"tl\" ||\n value == \"tn\" ||\n value == \"to\" ||\n value == \"tr\" ||\n value == \"ts\" ||\n value == \"tt\" ||\n value == \"tw\" ||\n value == \"ty\" ||\n value == \"ug\" ||\n value == \"uk\" ||\n value == \"ur\" ||\n value == \"uz\" ||\n value == \"ve\" ||\n value == \"vi\" ||\n value == \"vo\" ||\n value == \"wa\" ||\n value == \"cy\" ||\n value == \"wo\" ||\n value == \"fy\" ||\n value == \"xh\" ||\n value == \"yi\" ||\n value == \"yo\" ||\n value == \"za\" ||\n value == \"zu\"));\n }\n Language.is = is;\n function toName(language) {\n return {\n ab: \"Abkhazian\",\n aa: \"Afar\",\n af: \"Afrikaans\",\n ak: \"Akan\",\n sq: \"Albanian\",\n am: \"Amharic\",\n ar: \"Arabic\",\n an: \"Aragonese\",\n hy: \"Armenian\",\n as: \"Assamese\",\n av: \"Avaric\",\n ae: \"Avestan\",\n ay: \"Aymara\",\n az: \"Azerbaijani\",\n bm: \"Bambara\",\n ba: \"Bashkir\",\n eu: \"Basque\",\n be: \"Belarusian\",\n bn: \"Bengali\",\n bh: \"Bihari languages\",\n bi: \"Bislama\",\n bs: \"Bosnian\",\n br: \"Breton\",\n bg: \"Bulgarian\",\n my: \"Burmese\",\n ca: \"Catalan, Valencian\",\n ch: \"Chamorro\",\n ce: \"Chechen\",\n ny: \"Chichewa, Chewa, Nyanja\",\n zh: \"Chinese\",\n cv: \"Chuvash\",\n kw: \"Cornish\",\n co: \"Corsican\",\n cr: \"Cree\",\n hr: \"Croatian\",\n cs: \"Czech\",\n da: \"Danish\",\n dv: \"Divehi, Dhivehi, Maldivian\",\n nl: \"Dutch, Flemish\",\n dz: \"Dzongkha\",\n en: \"English\",\n eo: \"Esperanto\",\n et: \"Estonian\",\n ee: \"Ewe\",\n fo: \"Faroese\",\n fj: \"Fijian\",\n fi: \"Finnish\",\n fr: \"French\",\n ff: \"Fulah\",\n gl: \"Galician\",\n ka: \"Georgian\",\n de: \"German\",\n el: \"Greek, Modern (1453-)\",\n gn: \"Guarani\",\n gu: \"Gujarati\",\n ht: \"Haitian, Haitian Creole\",\n ha: \"Hausa\",\n he: \"Hebrew\",\n hz: \"Herero\",\n hi: \"Hindi\",\n ho: \"Hiri Motu\",\n hu: \"Hungarian\",\n ia: \"Interlingua (International Auxiliary Language Association)\",\n id: \"Indonesian\",\n ie: \"Interlingue, Occidental\",\n ga: \"Irish\",\n ig: \"Igbo\",\n ik: \"Inupiaq\",\n io: \"Ido\",\n is: \"Icelandic\",\n it: \"Italian\",\n iu: \"Inuktitut\",\n ja: \"Japanese\",\n jv: \"Javanese\",\n kl: \"Kalaallisut, Greenlandic\",\n kn: \"Kannada\",\n kr: \"Kanuri\",\n ks: \"Kashmiri\",\n kk: \"Kazakh\",\n km: \"Central Khmer\",\n ki: \"Kikuyu, Gikuyu\",\n rw: \"Kinyarwanda\",\n ky: \"Kirghiz, Kyrgyz\",\n kv: \"Komi\",\n kg: \"Kongo\",\n ko: \"Korean\",\n ku: \"Kurdish\",\n kj: \"Kuanyama, Kwanyama\",\n la: \"Latin\",\n lb: \"Luxembourgish, Letzeburgesch\",\n lg: \"Ganda\",\n li: \"Limburgan, Limburger, Limburgish\",\n ln: \"Lingala\",\n lo: \"Lao\",\n lt: \"Lithuanian\",\n lu: \"Luba-Katanga\",\n lv: \"Latvian\",\n gv: \"Manx\",\n mk: \"Macedonian\",\n mg: \"Malagasy\",\n ms: \"Malay\",\n ml: \"Malayalam\",\n mt: \"Maltese\",\n mi: \"Maori\",\n mr: \"Marathi\",\n mh: \"Marshallese\",\n mn: \"Mongolian\",\n na: \"Nauru\",\n nv: \"Navajo, Navaho\",\n nd: \"North Ndebele\",\n ne: \"Nepali\",\n ng: \"Ndonga\",\n nb: \"Norwegian Bokmål\",\n nn: \"Norwegian Nynorsk\",\n no: \"Norwegian\",\n ii: \"Sichuan Yi, Nuosu\",\n nr: \"South Ndebele\",\n oc: \"Occitan\",\n oj: \"Ojibwa\",\n cu: \"Church Slavic, Old Slavonic, Church Slavonic, Old Bulgarian, Old Church Slavonic\",\n om: \"Oromo\",\n or: \"Oriya\",\n os: \"Ossetian, Ossetic\",\n pa: \"Panjabi, Punjabi\",\n pi: \"Pali\",\n fa: \"Persian\",\n pl: \"Polish\",\n ps: \"Pashto, Pushto\",\n pt: \"Portuguese\",\n qu: \"Quechua\",\n rm: \"Romansh\",\n rn: \"Rundi\",\n ro: \"Romanian, Moldavian, Moldovan\",\n ru: \"Russian\",\n sa: \"Sanskrit\",\n sc: \"Sardinian\",\n sd: \"Sindhi\",\n se: \"Northern Sami\",\n sm: \"Samoan\",\n sg: \"Sango\",\n sr: \"Serbian\",\n gd: \"Gaelic, Scottish Gaelic\",\n sn: \"Shona\",\n si: \"Sinhala, Sinhalese\",\n sk: \"Slovak\",\n sl: \"Slovenian\",\n so: \"Somali\",\n st: \"Southern Sotho\",\n es: \"Spanish, Castilian\",\n su: \"Sundanese\",\n sw: \"Swahili\",\n ss: \"Swati\",\n sv: \"Swedish\",\n ta: \"Tamil\",\n te: \"Telugu\",\n tg: \"Tajik\",\n th: \"Thai\",\n ti: \"Tigrinya\",\n bo: \"Tibetan\",\n tk: \"Turkmen\",\n tl: \"Tagalog\",\n tn: \"Tswana\",\n to: \"Tonga (Tonga Islands)\",\n tr: \"Turkish\",\n ts: \"Tsonga\",\n tt: \"Tatar\",\n tw: \"Twi\",\n ty: \"Tahitian\",\n ug: \"Uighur, Uyghur\",\n uk: \"Ukrainian\",\n ur: \"Urdu\",\n uz: \"Uzbek\",\n ve: \"Venda\",\n vi: \"Vietnamese\",\n vo: \"Volapük\",\n wa: \"Walloon\",\n cy: \"Welsh\",\n wo: \"Wolof\",\n fy: \"Western Frisian\",\n xh: \"Xhosa\",\n yi: \"Yiddish\",\n yo: \"Yoruba\",\n za: \"Zhuang, Chuang\",\n zu: \"Zulu\",\n }[language];\n }\n Language.toName = toName;\n function toNativeName(language) {\n return {\n ab: \"аҧсуа бызшәа, аҧсшәа\",\n aa: \"Afaraf\",\n af: \"Afrikaans\",\n ak: \"Akan\",\n sq: \"Shqip\",\n am: \"አማርኛ\",\n ar: \"العربية\",\n an: \"aragonés\",\n hy: \"Հայերեն\",\n as: \"অসমীয়া\",\n av: \"авар мацӀ, магӀарул мацӀ\",\n ae: \"avesta\",\n ay: \"aymar aru\",\n az: \"azərbaycan dili\",\n bm: \"bamanankan\",\n ba: \"башҡорт теле\",\n eu: \"euskara, euskera\",\n be: \"беларуская мова\",\n bn: \"বাংলা\",\n bh: \"ोजपुरी\",\n bi: \"Bislama\",\n bs: \"bosanski jezik\",\n br: \"brezhoneg\",\n bg: \"български език\",\n my: \"ဗမာစာ\",\n ca: \";català, valencià\",\n ch: \"Chamoru\",\n ce: \"нохчийн мотт\",\n ny: \"chiCheŵa, chinyanja\",\n zh: \"中文 (Zhōngwén), 汉语, 漢語\",\n cv: \"чӑваш чӗлхи\",\n kw: \"Kernewek\",\n co: \"corsu, lingua corsa\",\n cr: \"ᓀᐦᐃᔭᐍᐏᐣ\",\n hr: \"hrvatski jezik\",\n cs: \"čeština, český jazyk\",\n da: \"dansk\",\n dv: \";ދިވެހި\",\n nl: \"Nederlands, Vlaams\",\n dz: \"རྫོང་ཁ\",\n en: \"English\",\n eo: \"Esperanto\",\n et: \"eesti, eesti keel\",\n ee: \"Eʋegbe\",\n fo: \"føroyskt\",\n fj: \"vosa Vakaviti\",\n fi: \"suomi, suomen kieli\",\n fr: \"français, langue française\",\n ff: \"Fulfulde, Pulaar, Pular\",\n gl: \"Galego\",\n ka: \"ქართული\",\n de: \"Deutsch\",\n el: \"ελληνικά\",\n gn: \"Avañe'ẽ\",\n gu: \"ગુજરાતી\",\n ht: \"Kreyòl ayisyen\",\n ha: \"(Hausa) هَوُسَ\",\n he: \"עברית\",\n hz: \"Otjiherero\",\n hi: \"हिन्दी, हिंदी\",\n ho: \";Hiri Motu\",\n hu: \"magyar\",\n ia: \"Interlingua\",\n id: \"Bahasa Indonesia\",\n ie: \"Interlingue\",\n ga: \"Gaeilge\",\n ig: \"Asụsụ Igbo\",\n ik: \"Iñupiaq, Iñupiatun\",\n io: \"Ido\",\n is: \"Íslenska\",\n it: \"Italiano\",\n iu: \"ᐃᓄᒃᑎᑐᑦ\",\n ja: \"日本語 (にほんご)\",\n jv: \"ꦧꦱꦗꦮ, Basa Jawa\",\n kl: \"kalaallisut, kalaallit oqaasii\",\n kn: \"ಕನ್ನಡ\",\n kr: \"Kanuri\",\n ks: \"कश्मीरी, كشميري\",\n kk: \"қазақ тілі\",\n km: \"្មែរ, ខេមរភាសា, ភាសាខ្មែរ\",\n ki: \"Gĩkũyũ\",\n rw: \"Ikinyarwanda\",\n ky: \"Кыргызча, Кыргыз тили\",\n kv: \"коми кыв\",\n kg: \"Kikongo\",\n ko: \"한국어\",\n ku: \"Kurdî, کوردی\",\n kj: \"Kuanyama\",\n la: \"latine, lingua latina\",\n lb: \"Lëtzebuergesch\",\n lg: \"Luganda\",\n li: \"Limburgs\",\n ln: \"Lingála\",\n lo: \"ພາສາລາວ\",\n lt: \"lietuvių kalba\",\n lu: \";Kiluba\",\n lv: \"latviešu valoda\",\n gv: \"Gaelg, Gailck\",\n mk: \"македонски јазик\",\n mg: \"fiteny malagasy\",\n ms: \"Bahasa Melayu, بهاس ملايو\",\n ml: \"മലയാളം\",\n mt: \"Malti\",\n mi: \"te reo Māori\",\n mr: \"मराठी\",\n mh: \"Kajin M̧ajeļ\",\n mn: \"Монгол хэл\",\n na: \"Dorerin Naoero\",\n nv: \";Diné bizaad\",\n nd: \";isiNdebele\",\n ne: \"नेपाली\",\n ng: \"Owambo\",\n nb: \"Norsk Bokmål\",\n nn: \"Norsk Nynorsk\",\n no: \"Norsk\",\n ii: \";ꆈꌠ꒿ Nuosuhxop\",\n nr: \";isiNdebele\",\n oc: \"occitan, lenga d'òc\",\n oj: \"ᐊᓂᔑᓈᐯᒧᐎᓐ\",\n cu: \";ѩзыкъ словѣньскъ\",\n om: \"Afaan Oromoo\",\n or: \"ଓଡ଼ିଆ\",\n os: \";ирон æвзаг\",\n pa: \";ਪੰਜਾਬੀ\",\n pi: \"पाऴि\",\n fa: \"فارسی\",\n pl: \"język polski, polszczyzna\",\n ps: \"پښتو\",\n pt: \"Português\",\n qu: \"Runa Simi, Kichwa\",\n rm: \"Rumantsch Grischun\",\n rn: \"Ikirundi\",\n ro: \";Română\",\n ru: \"русский\",\n sa: \"संस्कृतम्\",\n sc: \"sardu\",\n sd: \"सिन्धी, سنڌي، سندھی\",\n se: \";Davvisámegiella\",\n sm: \"gagana fa'a Samoa\",\n sg: \"yângâ tî sängö\",\n sr: \"српски језик\",\n gd: \";Gàidhlig\",\n sn: \"chiShona\",\n si: \";සිංහල\",\n sk: \"Slovenčina, Slovenský Jazyk\",\n sl: \"Slovenski Jezik, Slovenščina\",\n so: \"Soomaaliga, af Soomaali\",\n st: \";Sesotho\",\n es: \";Español\",\n su: \"Basa Sunda\",\n sw: \"Kiswahili\",\n ss: \"SiSwati\",\n sv: \"Svenska\",\n ta: \"தமிழ்\",\n te: \"తెలుగు\",\n tg: \"тоҷикӣ, toçikī, تاجیکی\",\n th: \"ไทย\",\n ti: \"ትግርኛ\",\n bo: \"བོད་ཡིག\",\n tk: \"Türkmen, Түркмен\",\n tl: \"Wikang Tagalog\",\n tn: \"Setswana\",\n to: \"Faka Tonga\",\n tr: \"Türkçe\",\n ts: \"Xitsonga\",\n tt: \"татар теле, tatar tele\",\n tw: \"Twi\",\n ty: \"Reo Tahiti\",\n ug: \";ئۇيغۇرچە, Uyghurche\",\n uk: \"Українська\",\n ur: \"اردو\",\n uz: \"Oʻzbek, Ўзбек, أۇزبېك\",\n ve: \"Tshivenḓa\",\n vi: \"Tiếng Việt\",\n vo: \"Volapük\",\n wa: \"Walon\",\n cy: \"Cymraeg\",\n wo: \"Wollof\",\n fy: \";Frysk\",\n xh: \"isiXhosa\",\n yi: \"ייִדיש\",\n yo: \"Yorùbá\",\n za: \"Saɯ cueŋƅ, Saw cuengh\",\n zu: \"isiZu\",\n }[language];\n }\n Language.toNativeName = toNativeName;\n})(Language || (Language = {}));\n//# sourceMappingURL=Language.js.map","import { Alpha2 } from \"./CountryCode\";\nimport { Language } from \"./Language\";\nexport var Locale;\n(function (Locale) {\n function is(value) {\n return (value == \"af-ZA\" ||\n value == \"am-ET\" ||\n value == \"ar-AE\" ||\n value == \"ar-BH\" ||\n value == \"ar-DZ\" ||\n value == \"ar-EG\" ||\n value == \"ar-IQ\" ||\n value == \"ar-JO\" ||\n value == \"ar-KW\" ||\n value == \"ar-LB\" ||\n value == \"ar-LY\" ||\n value == \"ar-MA\" ||\n value == \"arn-CL\" ||\n value == \"ar-OM\" ||\n value == \"ar-QA\" ||\n value == \"ar-SA\" ||\n value == \"ar-SY\" ||\n value == \"ar-TN\" ||\n value == \"ar-YE\" ||\n value == \"as-IN\" ||\n value == \"az-AZ\" ||\n value == \"az-Cyrl-AZ\" ||\n value == \"az-Latn-AZ\" ||\n value == \"ba-RU\" ||\n value == \"be-BY\" ||\n value == \"bg-BG\" ||\n value == \"bn-BD\" ||\n value == \"bn-IN\" ||\n value == \"bo-CN\" ||\n value == \"br-FR\" ||\n value == \"bs-BA\" ||\n value == \"bs-Cyrl-BA\" ||\n value == \"bs-Latn-BA\" ||\n value == \"ca-ES\" ||\n value == \"co-FR\" ||\n value == \"cs-CZ\" ||\n value == \"cy-GB\" ||\n value == \"da-DK\" ||\n value == \"de-AT\" ||\n value == \"de-CH\" ||\n value == \"de-DE\" ||\n value == \"de-LI\" ||\n value == \"de-LU\" ||\n value == \"dsb-DE\" ||\n value == \"dv-MV\" ||\n value == \"el-GR\" ||\n value == \"en-029\" ||\n value == \"en-AU\" ||\n value == \"en-BZ\" ||\n value == \"en-CA\" ||\n value == \"en-GB\" ||\n value == \"en-IE\" ||\n value == \"en-IN\" ||\n value == \"en-JM\" ||\n value == \"en-MY\" ||\n value == \"en-NZ\" ||\n value == \"en-PH\" ||\n value == \"en-SG\" ||\n value == \"en-TT\" ||\n value == \"en-US\" ||\n value == \"en-ZA\" ||\n value == \"en-ZW\" ||\n value == \"es-AR\" ||\n value == \"es-BO\" ||\n value == \"es-CL\" ||\n value == \"es-CO\" ||\n value == \"es-CR\" ||\n value == \"es-DO\" ||\n value == \"es-EC\" ||\n value == \"es-ES\" ||\n value == \"es-GT\" ||\n value == \"es-HN\" ||\n value == \"es-MX\" ||\n value == \"es-NI\" ||\n value == \"es-PA\" ||\n value == \"es-PE\" ||\n value == \"es-PR\" ||\n value == \"es-PY\" ||\n value == \"es-SV\" ||\n value == \"es-US\" ||\n value == \"es-UY\" ||\n value == \"es-VE\" ||\n value == \"et-EE\" ||\n value == \"eu-ES\" ||\n value == \"fa-IR\" ||\n value == \"fi-FI\" ||\n value == \"fil-PH\" ||\n value == \"fo-FO\" ||\n value == \"fr-BE\" ||\n value == \"fr-CA\" ||\n value == \"fr-CH\" ||\n value == \"fr-FR\" ||\n value == \"fr-LU\" ||\n value == \"fr-MC\" ||\n value == \"fy-NL\" ||\n value == \"ga-IE\" ||\n value == \"gd-GB\" ||\n value == \"gl-ES\" ||\n value == \"gsw-FR\" ||\n value == \"gu-IN\" ||\n value == \"ha-Latn-NG\" ||\n value == \"he-IL\" ||\n value == \"hi-IN\" ||\n value == \"hr-BA\" ||\n value == \"hr-HR\" ||\n value == \"hsb-DE\" ||\n value == \"hu-HU\" ||\n value == \"hy-AM\" ||\n value == \"id-ID\" ||\n value == \"ig-NG\" ||\n value == \"ii-CN\" ||\n value == \"is-IS\" ||\n value == \"it-CH\" ||\n value == \"it-IT\" ||\n value == \"iu-Cans-CA\" ||\n value == \"iu-Latn-CA\" ||\n value == \"ja-JP\" ||\n value == \"ka-GE\" ||\n value == \"kk-KZ\" ||\n value == \"kl-GL\" ||\n value == \"km-KH\" ||\n value == \"kn-IN\" ||\n value == \"kok-IN\" ||\n value == \"ko-KR\" ||\n value == \"ky-KG\" ||\n value == \"lb-LU\" ||\n value == \"lo-LA\" ||\n value == \"lt-LT\" ||\n value == \"lv-LV\" ||\n value == \"mi-NZ\" ||\n value == \"mk-MK\" ||\n value == \"ml-IN\" ||\n value == \"mn-MN\" ||\n value == \"mn-Mong-CN\" ||\n value == \"moh-CA\" ||\n value == \"mr-IN\" ||\n value == \"ms-BN\" ||\n value == \"ms-MY\" ||\n value == \"mt-MT\" ||\n value == \"nb-NO\" ||\n value == \"ne-NP\" ||\n value == \"nl-BE\" ||\n value == \"nl-NL\" ||\n value == \"nn-NO\" ||\n value == \"nso-ZA\" ||\n value == \"oc-FR\" ||\n value == \"or-IN\" ||\n value == \"pa-IN\" ||\n value == \"pl-PL\" ||\n value == \"prs-AF\" ||\n value == \"ps-AF\" ||\n value == \"pt-BR\" ||\n value == \"pt-PT\" ||\n value == \"qut-GT\" ||\n value == \"quz-BO\" ||\n value == \"quz-EC\" ||\n value == \"quz-PE\" ||\n value == \"rm-CH\" ||\n value == \"ro-RO\" ||\n value == \"ru-RU\" ||\n value == \"rw-RW\" ||\n value == \"sah-RU\" ||\n value == \"sa-IN\" ||\n value == \"se-FI\" ||\n value == \"se-NO\" ||\n value == \"se-SE\" ||\n value == \"si-LK\" ||\n value == \"sk-SK\" ||\n value == \"sl-SI\" ||\n value == \"sma-NO\" ||\n value == \"sma-SE\" ||\n value == \"smj-NO\" ||\n value == \"smj-SE\" ||\n value == \"smn-FI\" ||\n value == \"sms-FI\" ||\n value == \"sq-AL\" ||\n value == \"sr-BA\" ||\n value == \"sr-CS\" ||\n value == \"sr-ME\" ||\n value == \"sr-RS\" ||\n value == \"sr-Cyrl-BA\" ||\n value == \"sr-Cyrl-CS\" ||\n value == \"sr-Cyrl-ME\" ||\n value == \"sr-Cyrl-RS\" ||\n value == \"sr-Latn-BA\" ||\n value == \"sr-Latn-CS\" ||\n value == \"sr-Latn-ME\" ||\n value == \"sr-Latn-RS\" ||\n value == \"sv-FI\" ||\n value == \"sv-SE\" ||\n value == \"sw-KE\" ||\n value == \"syr-SY\" ||\n value == \"ta-IN\" ||\n value == \"te-IN\" ||\n value == \"tg-TJ\" ||\n value == \"tg-Cyrl-TJ\" ||\n value == \"th-TH\" ||\n value == \"tk-TM\" ||\n value == \"tn-ZA\" ||\n value == \"tr-TR\" ||\n value == \"tt-RU\" ||\n value == \"tzm-DZ\" ||\n value == \"tzm-Latn-DZ\" ||\n value == \"ug-CN\" ||\n value == \"uk-UA\" ||\n value == \"ur-PK\" ||\n value == \"uz-UZ\" ||\n value == \"uz-Cyrl-UZ\" ||\n value == \"uz-Latn-UZ\" ||\n value == \"vi-VN\" ||\n value == \"wo-SN\" ||\n value == \"xh-ZA\" ||\n value == \"yo-NG\" ||\n value == \"zh-CN\" ||\n value == \"zh-HK\" ||\n value == \"zh-MO\" ||\n value == \"zh-SG\" ||\n value == \"zh-TW\" ||\n value == \"zu-ZA\");\n }\n Locale.is = is;\n function toLanguage(locale) {\n const result = locale.split(\"-\").shift();\n return Language.is(result) ? result : undefined;\n }\n Locale.toLanguage = toLanguage;\n function toAlpha2(locale) {\n const result = locale.split(\"-\").pop();\n return Alpha2.is(result) ? result : undefined;\n }\n Locale.toAlpha2 = toAlpha2;\n function toLocale(language, alpha2) {\n let result;\n if (alpha2)\n result = language + \"-\" + alpha2;\n else {\n result = {\n ca: \"ca-ES\",\n co: \"co-FR\",\n da: \"da-DK\",\n de: \"de-DE\",\n en: \"en-GB\",\n es: \"es-ES\",\n et: \"et-EE\",\n fi: \"fi-FI\",\n fr: \"fr-FR\",\n is: \"is-IS\",\n ja: \"ja-JP\",\n ko: \"ko-KR\",\n lb: \"lb-LU\",\n lt: \"lt-LT\",\n nb: \"nb-NO\",\n no: \"nn-NO\",\n nl: \"nl-NL\",\n pl: \"pl-PL\",\n pt: \"pt-PT\",\n ru: \"ru-RU\",\n sv: \"sv-SE\",\n }[language];\n }\n return is(result) ? result : undefined;\n }\n Locale.toLocale = toLocale;\n})(Locale || (Locale = {}));\n//# sourceMappingURL=Locale.js.map","import { DateTime } from \"./DateTime\";\nexport var TimeRange;\n(function (TimeRange) {\n function is(value) {\n return typeof value == \"object\" && DateTime.is(value.start) && DateTime.is(value.end);\n }\n TimeRange.is = is;\n function create(start, end) {\n return !DateTime.is(end)\n ? create(start, DateTime.next(start, end))\n : start <= end\n ? { start, end }\n : { start: end, end: start };\n }\n TimeRange.create = create;\n})(TimeRange || (TimeRange = {}));\n//# sourceMappingURL=TimeRange.js.map","export var TimeSpan;\n(function (TimeSpan) {\n function is(value) {\n return (typeof value == \"object\" &&\n (typeof value.years == \"number\" || value.years == undefined) &&\n (typeof value.months == \"number\" || value.months == undefined) &&\n (typeof value.days == \"number\" || value.days == undefined) &&\n (typeof value.hours == \"number\" || value.hours == undefined) &&\n (typeof value.minutes == \"number\" || value.minutes == undefined) &&\n (typeof value.seconds == \"number\" || value.seconds == undefined) &&\n (typeof value.milliseconds == \"number\" || value.milliseconds == undefined) &&\n (typeof value.years == \"number\" ||\n typeof value.months == \"number\" ||\n typeof value.days == \"number\" ||\n typeof value.hours == \"number\" ||\n typeof value.minutes == \"number\" ||\n typeof value.seconds == \"number\" ||\n typeof value.milliseconds == \"number\"));\n }\n TimeSpan.is = is;\n function toHours(value, round) {\n const result = (dateToMilliseconds(value) + (value.milliseconds ?? 0)) / (60 * 60 * 1000) +\n (value.seconds ?? 0) / (60 * 60) +\n (value.minutes ?? 0) / 60 +\n (value.hours ?? 0);\n return performRound(result, round);\n }\n TimeSpan.toHours = toHours;\n function toMinutes(value, round) {\n const result = (dateToMilliseconds(value) + (value.milliseconds ?? 0)) / (60 * 1000) +\n (value.seconds ?? 0) / 60 +\n (value.minutes ?? 0) +\n (value.hours ?? 0) * 60;\n return performRound(result, round);\n }\n TimeSpan.toMinutes = toMinutes;\n function toSeconds(value, round) {\n const result = (dateToMilliseconds(value) + (value.milliseconds ?? 0)) / 1000 +\n (value.seconds ?? 0) +\n (value.minutes ?? 0) * 60 +\n (value.hours ?? 0) * 60 * 60;\n return performRound(result, round);\n }\n TimeSpan.toSeconds = toSeconds;\n function toMilliseconds(value, round) {\n const result = dateToMilliseconds(value) +\n (value.milliseconds ?? 0) +\n (value.seconds ?? 0) * 1000 +\n (value.minutes ?? 0) * 60 * 1000 +\n (value.hours ?? 0) * 60 * 60 * 1000;\n return performRound(result, round);\n }\n TimeSpan.toMilliseconds = toMilliseconds;\n})(TimeSpan || (TimeSpan = {}));\nfunction dateToMilliseconds(span) {\n const now = Date.UTC(0, 0);\n const date = new Date(now);\n const future = Date.UTC(date.getUTCFullYear() + (span.years ?? 0), date.getUTCMonth() + (span.months ?? 0), date.getUTCDate() + (span.days ?? 0), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return future.valueOf() - date.valueOf();\n}\nfunction performRound(value, round) {\n return !round\n ? value\n : round == \"ceiling\"\n ? Math.ceil(value)\n : round == \"floor\"\n ? Math.floor(value)\n : Math.round(value);\n}\n//# sourceMappingURL=TimeSpan.js.map","export var TimeZone;\n(function (TimeZone) {\n function is(value) {\n let result;\n try {\n result = typeof value == \"string\" && !!new Intl.DateTimeFormat(\"en-GB\", { timeZone: value });\n }\n catch (error) {\n result = false;\n }\n return result;\n }\n TimeZone.is = is;\n})(TimeZone || (TimeZone = {}));\n//# sourceMappingURL=TimeZone.js.map","export var DateFormat;\n(function (DateFormat) {\n function fromLocale(locale) {\n let result;\n switch (locale) {\n case \"sq-AL\":\n case \"es-AR\":\n case \"it-IT\":\n case \"en-GB\":\n case \"fr-FR\":\n result = \"dd/mm/YYYY\";\n break;\n case \"en-US\":\n result = \"mm/dd/YYYY\";\n break;\n case \"et-EE\":\n case \"de-AT\":\n case \"de-DE\":\n case \"he-IL\":\n case \"is-IS\":\n case \"lv-LV\":\n case \"pl-PL\":\n case \"ru-RU\":\n case \"fi-FI\":\n result = \"dd.mm.YYYY\";\n break;\n case \"hi-IN\":\n case \"en-IN\":\n result = \"dd-mm-YYYY\";\n break;\n default:\n result = \"YYYY-mm-dd\";\n break;\n }\n return result;\n }\n DateFormat.fromLocale = fromLocale;\n function toLocale(format) {\n let result;\n switch (format) {\n case \"dd/mm/YYYY\":\n result = \"en-GB\";\n break;\n case \"mm/dd/YYYY\":\n result = \"en-US\";\n break;\n case \"dd.mm.YYYY\":\n result = \"de-DE\";\n break;\n default:\n result = \"sv-SE\";\n break;\n }\n return result;\n }\n DateFormat.toLocale = toLocale;\n function is(value) {\n return (typeof value == \"string\" &&\n (value == \"YYYY-mm-dd\" || value == \"dd/mm/YYYY\" || value == \"dd.mm.YYYY\" || value == \"mm/dd/YYYY\"));\n }\n DateFormat.is = is;\n})(DateFormat || (DateFormat = {}));\n//# sourceMappingURL=DateFormat.js.map","import { DateFormat } from \"../../DateFormat\";\nimport { add } from \"../base\";\nexport class Base {\n constructor(separator) {\n this.separator = separator;\n }\n unformat(formatted) {\n return formatted.delete(this.separator);\n }\n validMonth(day, month, year) {\n return (new Date(Number.parseInt(year ?? \"2004\"), Number.parseInt(month), 0).getDate() >=\n Number.parseInt(day));\n }\n}\nconst handlers = {};\nexport function register(format, create) {\n handlers[format] = create;\n}\nadd(\"date\", (parameters) => {\n const argument = parameters && parameters.length > 0 ? parameters[0] : undefined;\n const format = DateFormat.is(argument) ? argument : DateFormat.fromLocale(argument);\n const create = handlers[format] ?? handlers[\"YYYY-mm-dd\"];\n return create();\n});\n//# sourceMappingURL=Base.js.map","import * as isoly from \"isoly\";\nimport { Base, register } from \"./Base\";\nclass Handler extends Base {\n constructor(separator) {\n super(separator);\n }\n toString(data) {\n return data?.length == 10\n ? [data.substring(8, 10), data.substring(5, 7), data.substring(0, 4)].join(this.separator)\n : \"\";\n }\n fromString(value) {\n const result = value?.length == 8 ? `${value.substring(4, 8)}-${value.substring(2, 4)}-${value.substring(0, 2)}` : undefined;\n return isoly.Date.is(result) ? result : undefined;\n }\n format(unformatted) {\n let result = unformatted;\n if (result.get(0, 1) > \"3\")\n result = result.insert(0, \"0\");\n if (result.value.length > 1)\n result = result.insert(2, this.separator);\n if (result.get(3, 1) > \"1\")\n result = result.insert(3, \"0\");\n if (result.value.length > 4)\n result = result.insert(5, this.separator);\n return {\n ...result,\n type: \"text\",\n length: [0, 10],\n pattern: new RegExp([\"^(0[1-9]|[12][0-9]|3[01])\", \"(0[1-9]|1[012])\", \"\\\\d{4}$\"].join(this.separator)),\n };\n }\n allowed(symbol, state) {\n return state.selection.start == 1 && state.value[0] == \"3\"\n ? symbol >= \"0\" && symbol <= \"1\"\n : state.selection.start == 1 && state.value[0] == \"0\"\n ? symbol >= \"1\" && symbol <= \"9\"\n : state.selection.start == 2\n ? symbol >= \"0\" &&\n symbol <= \"9\" &&\n (symbol == \"0\" || symbol == \"1\" || this.validMonth(state.value.substring(0, 2), symbol))\n : state.selection.start == 3\n ? symbol >= \"0\" && symbol <= \"9\" && this.validMonth(state.value.substring(0, 2), state.value[2] + symbol)\n : state.selection.start == 7\n ? symbol >= \"0\" &&\n symbol <= \"9\" &&\n this.validMonth(state.value.substring(0, 2), state.value.substring(2, 4), state.value.substring(4, 7) + symbol)\n : state.selection.start < 8 && symbol >= \"0\" && symbol <= \"9\";\n }\n}\nregister(\"dd.mm.YYYY\", () => new Handler(\".\"));\nregister(\"dd/mm/YYYY\", () => new Handler(\"/\"));\nregister(\"dd-mm-YYYY\", () => new Handler(\"-\"));\n//# sourceMappingURL=dmy.js.map","import * as isoly from \"isoly\";\nimport { Base, register } from \"./Base\";\nclass Handler extends Base {\n constructor(separator) {\n super(separator);\n }\n toString(data) {\n return data?.length == 10\n ? [data.substring(5, 7), data.substring(8, 10), data.substring(0, 4)].join(this.separator)\n : \"\";\n }\n fromString(value) {\n const result = value.length == 8 ? `${value.substring(4, 8)}-${value.substring(0, 2)}-${value.substring(2, 4)}` : undefined;\n return isoly.Date.is(result) ? result : undefined;\n }\n format(unformatted) {\n let result = unformatted;\n if (result.get(0, 1) > \"1\")\n result = result.insert(0, \"0\");\n if (result.value.length > 1)\n result = result.insert(2, this.separator);\n if (result.get(3, 1) > (result.get(0, 2) == \"02\" ? \"2\" : \"3\"))\n result = result.insert(3, \"0\");\n if (result.value.length > 4)\n result = result.insert(5, this.separator);\n return {\n ...result,\n type: \"text\",\n length: [0, 10],\n pattern: new RegExp([\"^(0[1-9]|1[012])\", \"(0[1-9]|[12][0-9]|3[01])\", \"\\\\d{4}$\"].join(this.separator)),\n };\n }\n allowed(symbol, state) {\n const result = state.selection.start == 1 && state.value[0] == \"1\"\n ? symbol >= \"0\" && symbol <= \"2\"\n : state.selection.start == 1 && state.value[0] == \"0\"\n ? symbol >= \"1\" && symbol <= \"9\"\n : state.selection.start == 3\n ? symbol >= \"0\" && symbol <= \"9\" && this.validMonth(state.value[2] + symbol, state.value.substring(0, 2))\n : state.selection.start == 7\n ? symbol >= \"0\" &&\n symbol <= \"9\" &&\n this.validMonth(state.value.substring(2, 4), state.value.substring(0, 2), state.value.substring(4, 7) + symbol)\n : state.selection.start < 8 && symbol >= \"0\" && symbol <= \"9\";\n return result;\n }\n}\nregister(\"mm/dd/YYYY\", () => new Handler(\"/\"));\n//# sourceMappingURL=mdy.js.map","import * as isoly from \"isoly\";\nimport { Base, register } from \"./Base\";\nclass Handler extends Base {\n constructor(separator) {\n super(separator);\n }\n toString(data) {\n return typeof data != \"string\" ? \"\" : data;\n }\n fromString(value) {\n const result = value?.length == 8 ? `${value.substring(0, 4)}-${value.substring(4, 6)}-${value.substring(6, 8)}` : undefined;\n return isoly.Date.is(result) ? result : undefined;\n }\n daysInMonth(value) {\n const firstOfMonth = `${value.substring(0, 4)}-${value.substring(4, 6)}-01`;\n return isoly.Date.is(firstOfMonth)\n ? +isoly.Date.lastOfMonth(`${value.substring(0, 4)}-${value.substring(4, 6)}-01`).substring(8, 10)\n : 31;\n }\n format(unformatted) {\n let result = unformatted;\n if (result.value.length > 3) {\n result = result.insert(4, this.separator);\n if (result.get(5, 1) > \"1\")\n result = result.insert(5, \"0\");\n if (result.value.length > 6) {\n result = result.insert(7, this.separator);\n if (result.get(8, 1) > this.daysInMonth(unformatted.value).toString().substring(0, 1))\n result = result.insert(8, \"0\");\n }\n }\n return {\n ...result,\n type: \"text\",\n length: [0, 10],\n pattern: new RegExp([\"^\\\\d{4}\", \"(0[1-9]|1[012])\", \"(0[1-9]|[12][0-9]|3[01])$\"].join(this.separator)),\n };\n }\n allowed(symbol, state) {\n const daysInMonth = this.daysInMonth(state.value);\n return state.selection.start == 5 && state.value[4] == \"0\"\n ? symbol >= \"1\" && symbol <= \"9\"\n : state.selection.start == 5 && state.value[4] == \"1\"\n ? symbol >= \"0\" && symbol <= \"2\"\n : state.selection.start == 7 && state.value[6] == \"0\"\n ? symbol >= \"1\" && symbol <= \"9\"\n : state.selection.start == 7 && ((state.value[6] == \"2\" && daysInMonth < 30) || state.value[6] == \"3\")\n ? symbol >= \"0\" && symbol <= daysInMonth.toString().substring(1)\n : state.selection.start < 8 && symbol >= \"0\" && symbol <= \"9\";\n }\n}\nregister(\"YYYY-mm-dd\", () => new Handler(\"-\"));\n//# sourceMappingURL=ymd.js.map","import * as isoly from \"isoly\";\nimport { add } from \"./base\";\nclass Handler {\n toString(data) {\n return typeof data == \"string\" ? data : \"\";\n }\n fromString(value) {\n let result = value.replace(\" \", \"T\");\n const fillerDate = \"0000-01-01T00:00:00.000Z\";\n if (result?.match(/-\\d$/))\n result = result.substring(0, result.length - 1) + \"0\" + result.substring(result.length - 1, result.length);\n result = !result.match(/^\\d{4}-(0[1-9]|1[012])/)\n ? undefined\n : result + fillerDate.substring(result.length, fillerDate.length);\n return isoly.DateTime.is(result) ? result : undefined;\n }\n format(unformatted) {\n let result = formatDate(unformatted);\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])[\\d:.-]$/))\n result = result.insert(10, \" \");\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) 3$/))\n result = result.replace(11, 12, \"23:\");\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) [45]$/))\n result = result.insert(11, \"23:\");\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) [6-9]$/))\n result = result.insert(11, \"23:5\");\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) 24$/))\n result = result.replace(10, 13, \"00:\");\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) 25$/))\n result = result.insert(12, \"3:\");\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) 2[6-9]$/))\n result = result.insert(12, \"3:5\").append(\":\");\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) ([0-1]\\d|2[0-3])\\d[\\s\\S]$/))\n result = result.insert(13, \":\");\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) ([0-1]\\d|2[0-3]):[6-9]$/))\n result = result.insert(14, \"5\");\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) ([0-1]\\d|2[0-3]):[0-5]\\d\\d$/))\n result = result.insert(16, \":\");\n if (result.match(/^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) ([0-1]\\d|2[0-3]):[0-5]\\d:[6-9]$/))\n result = result.insert(17, \"5\");\n return {\n ...result,\n type: \"text\",\n length: [0, 19],\n pattern: /^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) ([0-1]\\d|2[0-3])(:[0-5]\\d){2}$/,\n };\n }\n unformat(formatted) {\n return formatted;\n }\n allowed(symbol, state) {\n return (state.value.length < 19 &&\n ((symbol >= \"0\" && symbol <= \"9\") || symbol == \"-\" || symbol == \":\" || symbol == \".\" || symbol == \" \"));\n }\n}\nadd(\"date-time\", () => new Handler());\nexport function formatDate(unformatted, format) {\n let result = unformatted;\n switch (format) {\n case \"dd/mm/YYYY\":\n case \"dd.mm.YYYY\":\n if (!validDate(result.value, format))\n result = result.replace(0, 10, validDate(\"31\" + result.value.substring(2, 10), format)\n ? \"31\" + result.value.substring(2, 10)\n : validDate(\"30\" + result.value.substring(2, 10), format)\n ? \"30\" + result.value.substring(2, 10)\n : validDate(\"29\" + result.value.substring(2, 10), format)\n ? \"29\" + result.value.substring(2, 10)\n : validDate(\"28\" + result.value.substring(2, 10), format)\n ? \"28\" + result.value.substring(2, 10)\n : result.value);\n break;\n case \"mm/dd/YYYY\":\n if (!validDate(result.value, format))\n result = result.replace(0, 10, validDate(result.value.substring(0, 3) + \"31\" + result.value.substring(5, 10), format)\n ? result.value.substring(0, 3) + \"31\" + result.value.substring(5, 10)\n : validDate(result.value.substring(0, 3) + \"30\" + result.value.substring(5, 10), format)\n ? result.value.substring(0, 3) + \"30\" + result.value.substring(5, 10)\n : validDate(result.value.substring(0, 3) + \"29\" + result.value.substring(5, 10), format)\n ? result.value.substring(0, 3) + \"29\" + result.value.substring(5, 10)\n : validDate(result.value.substring(0, 3) + \"28\" + result.value.substring(5, 10), format)\n ? result.value.substring(0, 3) + \"28\" + result.value.substring(5, 10)\n : result.value);\n break;\n default:\n if (unformatted.value.length == 10) {\n if (!validDate(result.value)) {\n result = result.replace(0, 10, validDate(result.value.substring(0, 8) + \"31\")\n ? result.value.substring(0, 8) + \"31\"\n : validDate(result.value.substring(0, 8) + \"30\")\n ? result.value.substring(0, 8) + \"30\"\n : validDate(result.value.substring(0, 8) + \"29\")\n ? result.value.substring(0, 8) + \"29\"\n : validDate(result.value.substring(0, 8) + \"28\")\n ? result.value.substring(0, 8) + \"28\"\n : result.value);\n break;\n }\n return unformatted;\n }\n }\n return result;\n}\nfunction validDate(date, format) {\n let year;\n let month;\n let day;\n switch (format) {\n case \"dd/mm/YYYY\":\n case \"dd.mm.YYYY\":\n year = parseInt(date.substring(6, 10));\n month = parseInt(date.substring(3, 5));\n day = parseInt(date.substring(0, 2));\n return year && month && day ? day > 0 && daysPerMonth(year, month) >= day : false;\n case \"mm/dd/YYYY\":\n year = parseInt(date.substring(6, 10));\n month = parseInt(date.substring(0, 2));\n day = parseInt(date.substring(3, 5));\n return year && month && day ? day > 0 && daysPerMonth(year, month) >= day : false;\n default:\n year = parseInt(date.substring(0, 4));\n month = parseInt(date.substring(5, 7));\n day = parseInt(date.substring(8, 10));\n return year && month && day ? day > 0 && daysPerMonth(year, month) >= day : false;\n }\n}\nfunction daysPerMonth(year, month) {\n let result;\n switch (month) {\n case 1:\n case 3:\n case 5:\n case 7:\n case 8:\n case 10:\n case 12:\n default:\n result = 31;\n break;\n case 4:\n case 6:\n case 9:\n case 11:\n result = 30;\n break;\n case 2:\n result = 28;\n break;\n }\n return result;\n}\n//# sourceMappingURL=date-time.js.map","import { add } from \"./base\";\nclass Handler {\n toString(data) {\n return Array.isArray(data) && data.length == 2 && typeof data[0] == \"number\" && typeof data[1] == \"number\"\n ? data[0].toString() + \" / \" + data[1].toString()\n : typeof data == \"number\"\n ? data.toString()\n : \"\";\n }\n fromString(value) {\n return typeof value == \"string\" && value.match(/^\\d{1,2}\\s+\\/\\s+\\d{1,2}$/)\n ? [Number.parseInt(value.slice(0, 2)), Number.parseInt(value.slice(value.length - 2))]\n : typeof value == \"string\" && value.match(/\\d{1,2}/)\n ? Number.parseInt(value)\n : undefined;\n }\n format(unformatted) {\n let result = unformatted;\n if (unformatted.match(/^\\d\\/$/))\n result = unformatted.replace(1, 2, \" / \");\n else if (unformatted.match(/^\\d{1,2}\\s$/))\n result = unformatted.replace(unformatted.value.length - 1, unformatted.value.length, \" / \");\n else if (unformatted.match(/^[\\D.]+\\/[\\D.]+$/))\n result = unformatted.delete(0, unformatted.value.length);\n else if (unformatted.match(/^[\\D.]+\\/[\\D.]+\\d$/))\n result = unformatted.delete(0, unformatted.value.length - 1);\n else if (unformatted.match(/^[\\D.]+\\/[\\D.]+\\d\\d$/))\n result = unformatted.delete(0, unformatted.value.length - 2);\n else if (unformatted.match(/^[\\D.]+\\//))\n result = unformatted.delete(0, unformatted.value.search(\"/\") + 1);\n else if (unformatted.match(/^\\d\\d\\/$/))\n result = unformatted.replace(2, 3, \" / \");\n else if (unformatted.match(/^\\d\\d\\s+\\/$/))\n result = unformatted.delete(2, unformatted.value.length);\n else if (unformatted.match(/^\\d\\s+\\/$/))\n result = unformatted.delete(1, unformatted.value.length);\n else if (unformatted.match(/^\\d\\d\\s\\s+\\/\\s*$/))\n result = unformatted.replace(2, unformatted.value.length, \" / \");\n else if (unformatted.match(/^\\d\\s\\s+(\\/\\s*)?$/))\n result = unformatted.replace(1, unformatted.value.length, \" / \");\n else if (unformatted.match(/^\\d\\s\\/\\s\\d\\d.+$/))\n result = unformatted.delete(6, unformatted.value.length);\n else if (unformatted.value.length > 1 && unformatted.value.indexOf(\"/\") < 1)\n result = unformatted.insert(2, \" / \");\n else if (unformatted.value.length > 1 && unformatted.value.split(\"/\").length > 2)\n result = unformatted.delete(unformatted.value.lastIndexOf(\"/\"));\n else if (unformatted.value.length == 1 && !unformatted.isDigit(0))\n result = unformatted.delete(0);\n return { ...result, type: \"text\", length: [1, 7], pattern: /^(\\d{1,2}|\\d{1,2} \\/ \\d{1,2})$/ };\n }\n unformat(formatted) {\n return formatted;\n }\n allowed(symbol, state) {\n return state.value.length < 7 && ((symbol >= \"0\" && symbol <= \"9\") || symbol == \"/\" || symbol == \" \");\n }\n}\nadd(\"divisor\", () => new Handler());\n//# sourceMappingURL=divisor.js.map","import { add } from \"./base\";\nclass Handler {\n constructor() {\n this.pattern = /(^\\d*:{0,1}[0-5]{0,1}[0-9]{0,1}$|^\\d*[.,]{0,1}[0-9]{0,2}$)/;\n }\n toString(data) {\n return `${data?.hours?.toString(10) ?? \"0\"}:${data?.minutes?.toString(10).padStart(2, \"0\") ?? \"00\"}`;\n }\n fromString(value) {\n let result;\n if (!this.decimal) {\n const splitted = value.split(\":\", 2).map(value => Number.parseInt(value));\n result = splitted\n ? {\n hours: !splitted[0] || !Number.isFinite(splitted[0]) ? 0 : splitted[0],\n minutes: !splitted[1] || !Number.isFinite(splitted[1]) ? 0 : splitted[1],\n }\n : undefined;\n }\n else if (this.decimal) {\n const splittedString = value.split(/[,.]/, 2);\n if (splittedString)\n splittedString[1] = splittedString[1].length == 1 ? splittedString[1] + \"0\" : splittedString[1];\n const splitted = splittedString ? splittedString.map(value => Number.parseInt(value)) : undefined;\n result = splitted\n ? {\n hours: !splitted[0] || !Number.isFinite(splitted[0]) ? 0 : splitted[0],\n minutes: !splitted[1] || !(0 <= splitted[1] && splitted[1] < 100)\n ? 0\n : +(((splitted[1] / 100) * 60) % 1).toFixed(7),\n }\n : undefined;\n }\n return result;\n }\n format(unformatted) {\n let result = unformatted;\n if (result.value.match(/^[.,:]/))\n result = result.prepend(\"0\");\n return { ...result, type: \"tel\", pattern: this.pattern };\n }\n unformat(formatted) {\n if (formatted.value.includes(\".\") || formatted.value.includes(\",\"))\n this.decimal = true;\n else\n this.decimal = false;\n return formatted;\n }\n allowed(symbol, state) {\n const nextValue = state.value.slice(0, state.selection.start) + symbol + state.value.slice(state.selection.end);\n return !!nextValue.match(this.pattern);\n }\n}\nadd(\"duration\", () => new Handler());\n//# sourceMappingURL=duration.js.map","import { add } from \"./base\";\nclass Handler {\n constructor(country) {\n this.country = country;\n }\n toString(data) {\n return typeof data == \"string\" ? data : \"\";\n }\n fromString(value) {\n return typeof value == \"string\" ? value : undefined;\n }\n format(unformatted) {\n let result = unformatted;\n const year = new Date().getFullYear().toString();\n if (unformatted.value.length > 1 && unformatted.get(0, 2) != \"19\" && unformatted.get(0, 2) != \"20\")\n result = result.prepend(unformatted.get(0, 2) > year.substr(2, 2) ? \"19\" : \"20\");\n if (result.value.length >= 8)\n result = result.insert(8, \"-\");\n return {\n ...result.truncate(13),\n type: \"text\",\n length: [11, 13],\n pattern: /^\\d{6,8}-\\d{4}$/,\n };\n }\n unformat(formatted) {\n return formatted.delete(\"-\");\n }\n allowed(symbol, state) {\n return state.value.length < 13 && symbol >= \"0\" && symbol <= \"9\";\n }\n}\nadd(\"identity-number\", (argument) => new Handler(argument && argument.length > 0 ? argument[0] : undefined));\n//# sourceMappingURL=identity-number.js.map","import { add } from \"./base\";\nclass Handler {\n toString(data) {\n return typeof data == \"string\" ? data : \"\";\n }\n fromString(value) {\n return typeof value == \"string\" ? value : undefined;\n }\n format(unformatted) {\n return { ...unformatted, type: \"password\", autocomplete: \"current-password\" };\n }\n unformat(formatted) {\n return formatted;\n }\n allowed(symbol, state) {\n return true;\n }\n}\nadd(\"password\", () => new Handler());\n//# sourceMappingURL=password.js.map","import { add } from \"./base\";\nclass Handler {\n toString(data) {\n return data && typeof data == \"number\" ? (data * 100).toString() : \"\";\n }\n fromString(value) {\n return typeof value != \"string\" || !Number.parseFloat(value) ? undefined : Number.parseFloat(value) / 100;\n }\n format(unformatted) {\n return {\n ...(unformatted.value ? unformatted.suffix(\" %\") : unformatted),\n type: \"text\",\n length: [3, undefined],\n pattern: /^\\d+(.\\d)? %+$/,\n };\n }\n unformat(formatted) {\n return formatted.delete(\" %\");\n }\n allowed(symbol, state) {\n return (symbol >= \"0\" && symbol <= \"9\") || (symbol == \".\" && !state.value.includes(\".\"));\n }\n}\nadd(\"percent\", () => new Handler());\n//# sourceMappingURL=percent.js.map","export const phonePrefix = [\n {\n countryCode: \"+46\",\n areaCodes: [\n \"011\",\n \"0120\",\n \"0121\",\n \"0122\",\n \"0123\",\n \"0125\",\n \"013\",\n \"0140\",\n \"0141\",\n \"0142\",\n \"0143\",\n \"0144\",\n \"0150\",\n \"0151\",\n \"0152\",\n \"0155\",\n \"0156\",\n \"0157\",\n \"0158\",\n \"0159\",\n \"016\",\n \"0171\",\n \"0173\",\n \"0174\",\n \"0175\",\n \"0176\",\n \"018\",\n \"019\",\n \"021\",\n \"0220\",\n \"0221\",\n \"0222\",\n \"0223\",\n \"0224\",\n \"0225\",\n \"0226\",\n \"0227\",\n \"023\",\n \"0240\",\n \"0241\",\n \"0243\",\n \"0246\",\n \"0247\",\n \"0248\",\n \"0250\",\n \"0251\",\n \"0253\",\n \"0258\",\n \"026\",\n \"0270\",\n \"0271\",\n \"0278\",\n \"0280\",\n \"0281\",\n \"0290\",\n \"0291\",\n \"0292\",\n \"0293\",\n \"0294\",\n \"0295\",\n \"0297\",\n \"0300\",\n \"0301\",\n \"0302\",\n \"0303\",\n \"0304\",\n \"031\",\n \"0320\",\n \"0321\",\n \"0322\",\n \"0325\",\n \"033\",\n \"0340\",\n \"0345\",\n \"0346\",\n \"035\",\n \"036\",\n \"0370\",\n \"0371\",\n \"0372\",\n \"0380\",\n \"0381\",\n \"0382\",\n \"0383\",\n \"0390\",\n \"0392\",\n \"0393\",\n \"040\",\n \"0410\",\n \"0411\",\n \"0413\",\n \"0414\",\n \"0415\",\n \"0416\",\n \"0417\",\n \"0418\",\n \"042\",\n \"0430\",\n \"0431\",\n \"0433\",\n \"0435\",\n \"044\",\n \"0451\",\n \"0454\",\n \"0455\",\n \"0456\",\n \"0457\",\n \"0459\",\n \"046\",\n \"0470\",\n \"0471\",\n \"0472\",\n \"0474\",\n \"0476\",\n \"0477\",\n \"0478\",\n \"0479\",\n \"0480\",\n \"0481\",\n \"0485\",\n \"0486\",\n \"0490\",\n \"0491\",\n \"0492\",\n \"0493\",\n \"0494\",\n \"0495\",\n \"0496\",\n \"0498\",\n \"0499\",\n \"0500\",\n \"0501\",\n \"0502\",\n \"0503\",\n \"0504\",\n \"0505\",\n \"0506\",\n \"0510\",\n \"0511\",\n \"0512\",\n \"0513\",\n \"0514\",\n \"0515\",\n \"0520\",\n \"0521\",\n \"0522\",\n \"0523\",\n \"0524\",\n \"0525\",\n \"0526\",\n \"0528\",\n \"0530\",\n \"0531\",\n \"0532\",\n \"0533\",\n \"0534\",\n \"054\",\n \"0550\",\n \"0551\",\n \"0552\",\n \"0553\",\n \"0554\",\n \"0555\",\n \"0560\",\n \"0563\",\n \"0564\",\n \"0565\",\n \"0570\",\n \"0571\",\n \"0573\",\n \"0580\",\n \"0581\",\n \"0582\",\n \"0583\",\n \"0584\",\n \"0585\",\n \"0586\",\n \"0587\",\n \"0589\",\n \"0590\",\n \"0591\",\n \"060\",\n \"0611\",\n \"0612\",\n \"0613\",\n \"0620\",\n \"0621\",\n \"0622\",\n \"0623\",\n \"0624\",\n \"063\",\n \"0640\",\n \"0642\",\n \"0643\",\n \"0644\",\n \"0645\",\n \"0647\",\n \"0650\",\n \"0651\",\n \"0652\",\n \"0653\",\n \"0657\",\n \"0660\",\n \"0661\",\n \"0662\",\n \"0663\",\n \"0670\",\n \"0671\",\n \"0672\",\n \"0680\",\n \"0682\",\n \"0684\",\n \"0687\",\n \"0690\",\n \"0691\",\n \"0692\",\n \"0693\",\n \"0695\",\n \"0696\",\n \"08\",\n \"090\",\n \"0910\",\n \"0911\",\n \"0912\",\n \"0913\",\n \"0914\",\n \"0915\",\n \"0916\",\n \"0918\",\n \"0920\",\n \"0921\",\n \"0922\",\n \"0923\",\n \"0924\",\n \"0925\",\n \"0926\",\n \"0927\",\n \"0928\",\n \"0929\",\n \"0930\",\n \"0932\",\n \"0933\",\n \"0934\",\n \"0935\",\n \"0940\",\n \"0941\",\n \"0942\",\n \"0943\",\n \"0950\",\n \"0951\",\n \"0952\",\n \"0953\",\n \"0954\",\n \"0960\",\n \"0961\",\n \"0970\",\n \"0971\",\n \"0973\",\n \"0975\",\n \"0976\",\n \"0977\",\n \"0978\",\n \"0980\",\n \"0981\",\n \"010\",\n \"020\",\n \"0378\",\n \"070\",\n \"072\",\n \"073\",\n \"076\",\n \"079\",\n \"0710\",\n \"0740\",\n \"0746\",\n \"0749\",\n \"0741\",\n \"0742\",\n \"0743\",\n \"0744\",\n \"0745\",\n \"0747\",\n \"075\",\n \"077\",\n \"078\",\n \"0900\",\n \"0939\",\n \"0944\",\n \"0969\",\n \"099\",\n ],\n },\n];\n//# sourceMappingURL=phonePrefix.js.map","import { add } from \"./base\";\nimport { phonePrefix } from \"./phonePrefix\";\nclass Handler {\n toString(data) {\n return typeof data == \"string\" ? data : \"\";\n }\n fromString(value) {\n return typeof value == \"string\" ? value : undefined;\n }\n format(unformatted) {\n let result = unformatted;\n if (result.value.startsWith(\"+\")) {\n for (const country of phonePrefix)\n if (result.value.startsWith(country.countryCode))\n for (let prefix of country.areaCodes) {\n prefix = prefix.substring(1);\n if (result.value.startsWith(country.countryCode + prefix) && !result.value.includes(\"-\"))\n result = result\n .insert(country.countryCode.length, \"-\")\n .insert(country.countryCode.length + 1 + prefix.length, \"-\");\n }\n }\n else {\n const first = phonePrefix[0];\n for (const prefix of first.areaCodes)\n if (result.value.startsWith(prefix) && !result.value.includes(\"-\")) {\n result = result.insert(prefix.length, \"-\");\n result = result.delete(0);\n result = result.insert(0, \"-\").insert(0, first.countryCode);\n }\n }\n if (result.value.includes(\"-\")) {\n const digitIndex = result.value.indexOf(\"-\", result.value.indexOf(\"-\") + 1) + 1;\n const digitCount = result.value.substring(digitIndex, result.value.length + 1).length;\n switch (digitCount) {\n case 4:\n result = result.insert(digitIndex + 2, \" \");\n break;\n case 5:\n result = result.insert(digitIndex + 3, \" \");\n break;\n case 6:\n result = result.insert(digitIndex + 2, \" \");\n result = result.insert(digitIndex + 5, \" \");\n break;\n case 7:\n result = result.insert(digitIndex + 3, \" \");\n result = result.insert(digitIndex + 6, \" \");\n break;\n case 8:\n case 9:\n result = result.insert(digitIndex + 3, \" \");\n result = result.insert(digitIndex + 7, \" \");\n break;\n default:\n break;\n }\n if (digitCount > 9) {\n const spaces = Math.ceil(digitCount / 3) - 1;\n if (spaces > 0) {\n for (let i = 0; i < spaces; i++) {\n const position = i * 3 + 3 + i;\n result = result.insert(position + digitIndex, \" \");\n }\n }\n }\n }\n return { ...result, type: \"text\", autocomplete: \"tel\" };\n }\n unformat(formatted) {\n return formatted.delete(\" \").delete(\"-\");\n }\n allowed(symbol, state) {\n return ((symbol >= \"0\" && symbol <= \"9\") || (state.selection.start == 0 && symbol == \"+\" && !state.value.includes(\"+\")));\n }\n}\nadd(\"phone\", () => new Handler());\n//# sourceMappingURL=phone.js.map","import { add } from \"./base\";\nclass Handler {\n constructor(country) {\n this.country = country;\n }\n toString(data) {\n return typeof data == \"string\" ? data : \"\";\n }\n fromString(value) {\n return typeof value == \"string\" ? value : undefined;\n }\n format(unformatted) {\n const result = !unformatted.value.includes(\" \") && unformatted.value.length >= 4 ? unformatted.insert(3, \" \") : unformatted;\n return {\n ...result.truncate(6),\n type: \"text\",\n autocomplete: \"postal-code\",\n length: [6, 6],\n pattern: /^\\d{3} \\d{2}$/,\n };\n }\n unformat(formatted) {\n return formatted.delete(\" \");\n }\n allowed(symbol, state) {\n return state.value.length <= 5 && symbol >= \"0\" && symbol <= \"9\";\n }\n}\nadd(\"postal-code\", (argument) => new Handler(argument && argument.length > 0 ? argument[0] : undefined));\n//# sourceMappingURL=postal-code.js.map","import * as isoly from \"isoly\";\nimport { StateEditor } from \"../StateEditor\";\nimport { add } from \"./base\";\nclass Handler {\n constructor(currency) {\n this.currency = currency;\n }\n toString(data) {\n return typeof data == \"number\" ? (isNaN(data) ? \"\" : data.toString()) : \"\";\n }\n fromString(value) {\n const result = typeof value == \"string\" ? Number.parseFloat(value) : undefined;\n return result != undefined && !isNaN(result) ? result : undefined;\n }\n format(unformatted) {\n let separator = unformatted.value && unformatted.value.includes(\".\") ? unformatted.value.indexOf(\".\") : undefined;\n let result = unformatted.value == \"NaN\" ? unformatted.replace(0, unformatted.value.length, \"\") : StateEditor.copy(unformatted);\n if (separator == 0) {\n result = result.prepend(\"0\");\n separator++;\n }\n if (separator != undefined) {\n const adjust = separator +\n 1 +\n (!this.currency || isoly.Currency.decimalDigits(this.currency) == undefined\n ? 2\n : isoly.Currency.decimalDigits(this.currency) ?? 2) -\n result.value.length;\n result = adjust < 0 ? result.truncate(result.value.length + adjust) : result.suffix(\"0\".repeat(adjust));\n }\n else\n separator = result.value.length;\n const spaces = separator <= 0 ? 0 : Math.ceil(separator / 3) - 1;\n for (let i = 0; i < spaces; i++) {\n const position = separator - (spaces - i) * 3;\n result = result.insert(position, \" \");\n separator++;\n }\n if (result.match(/^[0\\s]{2,}$/))\n result = result.replace(0, result.value.length, \"0\");\n else if (result.match(/^[0\\s]{2,}(\\s\\w{3}){1}$/))\n result = result.replace(0, result.value.length - 4, \"0\");\n result =\n this.currency && (result.value.length > 1 || (result.value.length == 1 && result.value.charAt(0) != \".\"))\n ? result.suffix(\" \" + this.currency)\n : result;\n return {\n ...result,\n type: \"text\",\n length: [3, undefined],\n pattern: new RegExp(\"^(\\\\d{0,3})( \\\\d{3})*(\\\\.\\\\d+)?\" + (this.currency ? \" \" + this.currency : \"\") + \"$\"),\n };\n }\n unformat(formatted) {\n return this.currency ? formatted.delete(\" \").delete(\"\" + this.currency) : formatted.delete(\" \");\n }\n allowed(symbol, state) {\n return (symbol >= \"0\" && symbol <= \"9\") || (symbol == \".\" && !state.value.includes(\".\"));\n }\n}\nadd(\"price\", (argument) => new Handler(argument && argument.length > 0 ? argument[0] : undefined));\n//# sourceMappingURL=price.js.map","import { add } from \"./base\";\nclass Handler {\n constructor(settings) {\n this.settings = settings;\n }\n toString(data) {\n return typeof data == \"string\" ? data : \"\";\n }\n fromString(value) {\n return typeof value == \"string\" ? value : undefined;\n }\n format(unformatted) {\n return { ...unformatted, type: \"text\", ...this.settings };\n }\n unformat(formatted) {\n return formatted;\n }\n allowed(symbol, state) {\n return (this.settings.length == undefined ||\n this.settings.length[1] == undefined ||\n state.value.length < this.settings.length[1]);\n }\n}\nadd(\"text\", (settings) => new Handler(settings || {}));\nadd(\"email\", (settings) => new Handler(settings || {}));\n//# sourceMappingURL=text.js.map",":host {\n\tdisplay: block;\n}\n:host[hidden] {\n\tdisplay: none;\n}\n","import { Component, h, Prop } from \"@stencil/core\"\nimport { CountryCode, Currency, DateTime, Language, Locale } from \"isoly\"\nimport { format, get, Type } from \"tidily\"\n\n@Component({\n\ttag: \"smoothly-display\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyDisplay {\n\t@Prop() type: Type\n\t@Prop() value?: any\n\t@Prop() currency?: Currency\n\t@Prop() country?: CountryCode.Alpha2\n\t@Prop() format?: DateTime.Format\n\t@Prop() unit?: string\n\trender() {\n\t\tlet result: string | HTMLElement | undefined\n\t\tconst type = this.type\n\t\tswitch (type) {\n\t\t\tdefault:\n\t\t\t\tresult = format(this.value, type)\n\t\t\t\tbreak\n\t\t\tcase \"email\":\n\t\t\t\tresult = <a href={\"mailto:\" + this.value}>{format(this.value, type)}</a>\n\t\t\t\tbreak\n\t\t\tcase \"phone\":\n\t\t\t\tresult = <a href={\"tel:\" + this.value}>{format(this.value, type, this.country)}</a>\n\t\t\t\tbreak\n\t\t\tcase \"postal-code\":\n\t\t\t\tresult = format(this.value, type, this.country)\n\t\t\t\tbreak\n\t\t\tcase \"price\":\n\t\t\t\tresult = format(this.value, type, this.currency)\n\t\t\t\tbreak\n\t\t\tcase \"date\":\n\t\t\t\tresult = get(this.type as Type, getLocale())?.toString(this.value)\n\t\t\t\tbreak\n\t\t\tcase \"duration\":\n\t\t\t\tresult = format(this.value, type, this.unit)\n\t\t\t\tbreak\n\t\t\tcase \"date-time\":\n\t\t\t\tresult = this.format\n\t\t\t\t\t? DateTime.localize(this.value, this.format, getLocale())\n\t\t\t\t\t: get(this.type as Type, getLocale())?.toString(this.value)\n\t\t\t\tbreak\n\t\t}\n\t\treturn result\n\t}\n}\nfunction getLocale(): Locale | undefined {\n\tconst result = navigator.language\n\treturn Locale.is(result) ? result : Language.is(result) ? Locale.toLocale(result) : undefined\n}\n",":host {\n\tdisplay: block;\n}\n:host[hidden] {\n\tdisplay: none;\n}\n","import { Component, Prop } from \"@stencil/core\"\nimport { Currency } from \"isoly\"\n\n@Component({\n\ttag: \"smoothly-display-amount\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyDisplayAmount {\n\t@Prop() amount: number | string\n\t@Prop() currency: Currency\n\t@Prop() toInteger = false\n\n\tformat(amount: string): string {\n\t\tconst digitsPerGroup = 3\n\t\tconst defaultDecimals = 2\n\t\tconst maxDecimals = (\n\t\t\tCurrency.decimalDigits(this.currency) ? Currency.decimalDigits(this.currency) : defaultDecimals\n\t\t) as number\n\t\tlet beforeSeparator = amount.length\n\t\tlet separator: number\n\t\tlet result = amount\n\t\tif (result == \"\")\n\t\t\tresult = \"0\"\n\t\tif (amount.includes(\".\")) {\n\t\t\tseparator = amount.indexOf(\".\")\n\t\t\tif (separator == 0) {\n\t\t\t\tresult = \"0\" + result\n\t\t\t\tseparator++\n\t\t\t}\n\t\t\tbeforeSeparator = separator\n\t\t\tresult = result.padEnd(separator + maxDecimals + 1, \"0\")\n\t\t\tresult = result.substring(0, separator + maxDecimals + 1)\n\t\t} else if (!this.toInteger) {\n\t\t\tresult = result + \".\"\n\t\t\tseparator = result.length - 1\n\t\t\tresult = result.padEnd(separator + maxDecimals + 1, \"0\")\n\t\t}\n\t\tconst spaces = Math.ceil(beforeSeparator / digitsPerGroup) - 1\n\t\tif (spaces > 0) {\n\t\t\tfor (let i = 0; i < spaces; i++) {\n\t\t\t\tconst position = beforeSeparator - (spaces - i) * digitsPerGroup\n\t\t\t\tresult = result.slice(0, position) + \" \" + result.slice(position, result.length)\n\t\t\t\tbeforeSeparator++\n\t\t\t}\n\t\t}\n\n\t\treturn result\n\t}\n\n\trender() {\n\t\treturn [\n\t\t\ttypeof this.amount == \"number\" ? this.format(this.amount.toString()) : this.format(this.amount),\n\t\t\t\" \",\n\t\t\tthis.currency,\n\t\t]\n\t}\n}\n","import { Component, Event, EventEmitter, h } from \"@stencil/core\"\nimport { Notice } from \"../../model\"\n@Component({\n\ttag: \"smoothly-display-demo\",\n})\nexport class SmoothlyDisplayDemo {\n\t@Event() notice: EventEmitter<Notice>\n\tprivate noticeWarning(notice: Notice) {\n\t\tconsole.log(\"emit\", notice)\n\t\tthis.notice.emit(notice)\n\t}\n\trender() {\n\t\treturn [\n\t\t\t<main>\n\t\t\t\t<fieldset>\n\t\t\t\t\t<h2>Smoothly display</h2>\n\t\t\t\t\t<dl>\n\t\t\t\t\t\t<dt>text</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"text\" value=\"text\"></smoothly-display>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>postal code</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"postal-code\" value=\"752 31\"></smoothly-display>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>password</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"password\" value=\"password\"></smoothly-display>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>email</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"email\" value=\"test@example.com\"></smoothly-display>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>price</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"price\" value=\"13.37\" currency=\"SEK\"></smoothly-display>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>display amount without decimals</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display-amount amount={200} currency=\"SEK\" toInteger={true}></smoothly-display-amount>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>display amount with decimals if they are set, otherwise no decimal</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display-amount amount={200.20} currency=\"SEK\" toInteger={true}></smoothly-display-amount>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>display amount with decimals</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display-amount amount={200.20} currency=\"SEK\"></smoothly-display-amount>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>percent</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"percent\" value=\"42\"></smoothly-display>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>phone</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"phone\" value=\"0101881108\"></smoothly-display>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>card number</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"card-number\" value=\"4111111111111111\"></smoothly-display>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>card expires</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"card-expires\" value=\"7/22\"></smoothly-display>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>card csc</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"card-csc\" value=\"987\"></smoothly-display>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>date</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"date\" value=\"2022-07-07\"></smoothly-display>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>date time</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"date-time\" format={{year: \"numeric\", month: \"short\", day: \"numeric\", hour: \"numeric\", minute: \"numeric\", second: \"numeric\"}} value=\"2022-07-07T02:02:02Z\"></smoothly-display>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"date-time\" format={{year: \"2-digit\", month: \"long\", day: \"2-digit\", hour: \"2-digit\", minute: \"2-digit\", second: \"2-digit\"}} value=\"2022-07-07T02:02:02Z\"></smoothly-display>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"date-time\" format={{year: \"numeric\", month: \"2-digit\", day: \"2-digit\", hour: \"numeric\", minute: \"numeric\", second: \"numeric\"}} value=\"2022-07-07T12:22:24Z\"></smoothly-display>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"date-time\" format={{year: \"numeric\", month: \"numeric\", day: \"numeric\", hour: \"numeric\", minute: \"numeric\", second: \"numeric\"}} value=\"2022-07-07T12:22:24Z\"></smoothly-display>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"date-time\" format={{year: \"numeric\", month: \"short\", day: \"numeric\"}} value=\"2022-07-07T00:00+02:00\"></smoothly-display>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"date-time\" format={{year: \"2-digit\", month: \"numeric\", day: \"numeric\"}} value=\"2022-07-07T00:00+02:00\"></smoothly-display>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display type=\"date-time\" format={{year: \"2-digit\", month: \"numeric\", day: \"numeric\", hour: \"2-digit\", minute: \"2-digit\", second: \"2-digit\", timeZone:\"Europe/Stockholm\"}} value=\"2022-07-07T12:15Z\"></smoothly-display>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>Deprecated display date time</dt>\n\t\t\t\t\t\t<dt>Display amount</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-display-amount currency=\"SEK\" amount=\"1289.5\"></smoothly-display-amount>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>Quiet</dt>\n\t\t\t\t\t\t<dd>\n\t\t\t\t\t\t\t<smoothly-quiet color=\"dark\">-</smoothly-quiet>\n\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t<dt>Duration</dt>\n\t\t\t\t\t\t<dd><smoothly-display type=\"duration\" value={{hours: 13, minutes: 35}} unit=\"h\" /><smoothly-display type=\"duration\" value={{hours: 8, minutes: 30}} unit=\"\" /><smoothly-display type=\"duration\" value={{hours: 0, minutes: 3}} unit=\" h\" /></dd>\n\t\t\t\t\t</dl>\n\t\t\t\t</fieldset>\n\t\t\t\t<fieldset>\n\t\t\t\t\t<h2>Smoothly skeleton</h2>\n\t\t\t\t\t<smoothly-skeleton period={3} distance=\"20rem\" width=\"20rem\"></smoothly-skeleton>\n\t\t\t\t\t<smoothly-skeleton period={3} distance=\"20rem\" color=\"200,200,255\"></smoothly-skeleton>\n\t\t\t\t\t<smoothly-skeleton period={3} distance=\"20rem\" color=\"var(--smoothly-warning-color)\"></smoothly-skeleton>\n\t\t\t\t\t<smoothly-skeleton period={3} distance=\"20rem\" ></smoothly-skeleton>\n\t\t\t\t\t<smoothly-skeleton align=\"center\" period={3} distance=\"20rem\" width=\"20rem\"></smoothly-skeleton>\n\t\t\t\t\t<smoothly-skeleton align=\"center\" period={3} distance=\"20rem\" ></smoothly-skeleton>\n\t\t\t\t\t<smoothly-skeleton align=\"center\" period={3} distance=\"20rem\" ></smoothly-skeleton>\n\t\t\t\t\t<smoothly-skeleton align=\"center\" period={3} distance=\"20rem\" ></smoothly-skeleton>\n\t\t\t\t\t<smoothly-skeleton align=\"right\" period={3} distance=\"20rem\" width=\"20rem\"></smoothly-skeleton>\n\t\t\t\t\t<smoothly-skeleton align=\"right\" period={3} distance=\"20rem\" ></smoothly-skeleton>\n\t\t\t\t\t<smoothly-skeleton align=\"right\" period={3} distance=\"20rem\" ></smoothly-skeleton>\n\t\t\t\t\t<smoothly-skeleton align=\"right\" period={3} distance=\"20rem\" ></smoothly-skeleton>\n\t\t\t\t</fieldset>\n\t\t\t\t<fieldset>\n\t\t\t\t\t<h2>Smoothly URL encoded</h2>\n\t\t\t\t\t<smoothly-urlencoded data=\"hej=hopp&tjena=moss\"></smoothly-urlencoded>\n\t\t\t\t</fieldset>\n\t\t\t\t<fieldset>\n\t\t\t\t\t<h2>Smoothly popup</h2>\n\t\t\t\t\t<div style={{display: \"flex\", justifyContent: \"space-between\"}}>\n\t\t\t\t\t\t<smoothly-popup direction=\"down\">\n\t\t\t\t\t\t\tClick for popup\n\t\t\t\t\t\t\t<span slot=\"popup\" color=\"dark\" style={{whiteSpace: \"nowrap\"}}>Some popup stuff that has a lot of text</span>\n\t\t\t\t\t\t</smoothly-popup>\n\t\t\t\t\t\t<smoothly-popup direction=\"down\">\n\t\t\t\t\t\t\tClick for popup\n\t\t\t\t\t\t\t<span slot=\"popup\" color=\"dark\" style={{whiteSpace: \"nowrap\"}}>Some popup with a bunch of text.</span>\n\t\t\t\t\t\t</smoothly-popup>\n\t\t\t\t\t</div>\n\t\t\t\t\t<smoothly-popup>\n\t\t\t\t\t\t<div>Popup, click me</div>\n\t\t\t\t\t\t<div color=\"dark\" slot=\"popup\">\n\t\t\t\t\t\t\t1 line popup\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</smoothly-popup>\n\t\t\t\t</fieldset>\n\t\t\t\t<fieldset>\n\t\t\t\t<h2>Test of different kinds of notifier</h2>\n\t\t\t\t\t<button onClick={() => this.noticeWarning(Notice.warn(\"This is a test warning notice.\"))}>warning</button>\n\t\t\t\t\t<button onClick={() => this.noticeWarning(Notice.succeeded(\"This is a test success notice.\"))}>success</button>\n\t\t\t\t\t<button onClick={() => this.noticeWarning(Notice.failed(\"This is a test danger notice.\"))}>danger</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t\tthis.noticeWarning(\n\t\t\t\t\t\t\t\tNotice.execute(\n\t\t\t\t\t\t\t\t\t\"This is a test execute notice.\",\n\t\t\t\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\t\t\t\tnew Promise<[boolean, string]>(resolve =>\n\t\t\t\t\t\t\t\t\t\t\twindow.setTimeout(() => resolve([true, \"This went great\"]), 3000)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}>\n\t\t\t\t\t\texecute\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t\tthis.noticeWarning(\n\t\t\t\t\t\t\t\tNotice.delay(\n\t\t\t\t\t\t\t\t\t\"This is a test delay notice.\",\n\t\t\t\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\t\t\t\tnew Promise<[boolean, string]>(resolve =>\n\t\t\t\t\t\t\t\t\t\t\twindow.setTimeout(() => resolve([true, \"This went great\"]), 3000)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}>\n\t\t\t\t\t\tdelay\n\t\t\t\t\t</button>\n\t\t\t\t</fieldset>\n\t\t\t\t<fieldset>\n\t\t\t\t\t<h2>Smoothly spinner</h2>\n\t\t\t\t\t<div style={{position: \"relative\", height: \"10em\"}}>Large Spinner<smoothly-spinner active size=\"large\" style={{\"--background-color\": \"255,255,255\", \"--background-opacity\": \"0.2\", \"--spinner-color\": \"0,130,0\", }}></smoothly-spinner></div>\n\t\t\t\t\t<div style={{position: \"relative\", height: \"10em\"}}>Medium Spinner<smoothly-spinner active size=\"medium\"></smoothly-spinner></div>\n\t\t\t\t\t<div style={{position: \"relative\", height: \"10em\"}}>Small Spinner<smoothly-spinner active size=\"small\"></smoothly-spinner></div>\n\t\t\t\t\t<div style={{position: \"absolute\", left: \"500px\", top: \"150px\" }}><smoothly-svg url=\"https://theme.payfunc.com/intergiro/animated-logo.svg\"></smoothly-svg></div>\n\t\t\t\t</fieldset>\n\t\t\t\t<fieldset>\n\t\t\t\t\t<h2>Smoothly summary</h2>\n\t\t\t\t\t<smoothly-summary color=\"light\" fill=\"clear\" size=\"large\">\n\t\t\t\t\t\t<p slot=\"summary\">Some title</p>\n\t\t\t\t\t\t<p slot=\"content\">Some content</p>\n\t\t\t\t\t</smoothly-summary>\n\t\t\t\t\t<smoothly-summary color=\"light\" fill=\"clear\" size=\"large\">\n\t\t\t\t\t\t<p slot=\"summary\">Some title</p>\n\t\t\t\t\t\t<p slot=\"content\">Some content</p>\n\t\t\t\t\t</smoothly-summary>\n\t\t\t\t\t<smoothly-summary color=\"danger\" fill=\"clear\">\n\t\t\t\t\t\t<div slot=\"summary\" style={{display: \"flex\", gap: \"0.3rem\"}}><span>Person</span><smoothly-icon name=\"person\" color=\"light\" fill=\"clear\" size=\"tiny\"></smoothly-icon></div>\n\t\t\t\t\t\t<p slot=\"content\">Some person information.</p>\n\t\t\t\t\t</smoothly-summary>\n\t\t\t\t\t<smoothly-summary color=\"danger\" fill=\"clear\" open>\n\t\t\t\t\t\t<p slot=\"summary\">Some other title</p>\n\t\t\t\t\t\t<p slot=\"content\">A lot more content, yes please. A lot more content, yes please. A lot more content, yes please. A lot more content, yes please. A lot more content, yes please.A lot more content, yes please. A lot more content, yes please. A lot more content, yes please. A lot more content, yes please.</p>\n\t\t\t\t\t</smoothly-summary>\n\t\t\t\t</fieldset>\n\t\t\t</main>,\n\t\t]\n\t}\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.setFallback = exports.add = exports.Rule = void 0;\nclass Rule {\n filter(value) {\n return value.filter(element => this.is(element));\n }\n stringify(precedence = 0) {\n let result = this.toString();\n if (this.precedence < precedence)\n result = \"(\" + result + \")\";\n return result;\n }\n}\nexports.Rule = Rule;\nconst creators = [\n criteria => (criteria instanceof Rule ? criteria : undefined),\n];\nfunction add(create) {\n creators.push(create);\n}\nexports.add = add;\nlet always;\nfunction setFallback(fallback) {\n always = fallback;\n}\nexports.setFallback = setFallback;\nfunction create(criteria) {\n let result;\n for (const c of creators) {\n result = c(criteria);\n if (result)\n break;\n }\n return result || always;\n}\nexports.create = create;\n//# sourceMappingURL=Rule.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Always = void 0;\nconst Rule_1 = require(\"./Rule\");\nclass Always extends Rule_1.Rule {\n constructor() {\n super();\n this.precedence = Number.MAX_SAFE_INTEGER;\n this.class = \"Always\";\n }\n is(value) {\n return true;\n }\n toString() {\n return \"\";\n }\n}\nexports.Always = Always;\n(0, Rule_1.setFallback)(new Always());\n//# sourceMappingURL=Always.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.any = exports.Any = void 0;\nconst Rule_1 = require(\"./Rule\");\nclass Any extends Rule_1.Rule {\n constructor(criteria) {\n super();\n this.criteria = criteria;\n this.precedence = 50;\n this.class = \"Any\";\n }\n is(value) {\n return (value &&\n typeof value == \"object\" &&\n Object.getOwnPropertyNames(value).some(property => this.criteria.is(value[property]) || this.is(value[property])));\n }\n toString() {\n return this.criteria.stringify(this.precedence);\n }\n}\nexports.Any = Any;\nfunction any(criteria, value) {\n const result = new Any((0, Rule_1.create)(criteria));\n return value ? result.is(value) : result;\n}\nexports.any = any;\n//# sourceMappingURL=Any.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.and = exports.And = void 0;\nconst Any_1 = require(\"./Any\");\nconst Rule_1 = require(\"./Rule\");\nclass And extends Rule_1.Rule {\n constructor(rules) {\n super();\n this.precedence = 40;\n this.class = \"And\";\n this.rules = rules.reduce((r, e) => (e instanceof And ? [...r, ...e.rules] : [...r, e]), []);\n }\n is(value) {\n return this.rules.every(c => c.is(value));\n }\n toString() {\n return this.rules.map(c => c.stringify(this.precedence)).join(\" \");\n }\n generalize() {\n return new And(this.rules.map(r => (r.class == \"Property\" ? r : new Any_1.Any(r))));\n }\n}\nexports.And = And;\nfunction and(...criterias) {\n return new And(criterias.map(Rule_1.create));\n}\nexports.and = and;\n//# sourceMappingURL=And.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isCriteria = exports.Criteria = void 0;\nconst Rule_1 = require(\"./Rule\");\nvar Criteria;\n(function (Criteria) {\n Criteria.is = isCriteria;\n})(Criteria = exports.Criteria || (exports.Criteria = {}));\nfunction isCriteria(value, recursive = false) {\n return (typeof value == \"number\" ||\n typeof value == \"string\" ||\n value instanceof Rule_1.Rule ||\n (recursive &&\n typeof value == \"object\" &&\n value &&\n Object.values(value).every(value => Array.isArray(value) ? value.every(value => isCriteria(value, true)) : isCriteria(value, true))));\n}\nexports.isCriteria = isCriteria;\n//# sourceMappingURL=Criteria.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Level;\n(function (Level) {\n Level[Level[\"Logging\"] = 0] = \"Logging\";\n Level[Level[\"Debug\"] = 1] = \"Debug\";\n Level[Level[\"Warning\"] = 2] = \"Warning\";\n Level[Level[\"Recoverable\"] = 3] = \"Recoverable\";\n Level[Level[\"Critical\"] = 4] = \"Critical\";\n})(Level = exports.Level || (exports.Level = {}));\n//# sourceMappingURL=Level.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Level_1 = require(\"./Level\");\nclass Message {\n constructor(description, level = Level_1.Level.Recoverable, type = \"unknown\", region) {\n this.description = description;\n this.level = level;\n this.type = type;\n this.region = region;\n }\n toString() {\n return Level_1.Level[this.level] + \": \" + this.type + \" error. \" + this.description + (this.region ? \" @ \" + this.region.toString() : \"\");\n }\n}\nexports.Message = Message;\n//# sourceMappingURL=Message.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Message_1 = require(\"./Message\");\nclass ConsoleHandler {\n raise(message, level, type, region) {\n if (!(message instanceof Message_1.Message))\n message = new Message_1.Message(message, level, type, region);\n console.error(message.toString());\n }\n}\nexports.ConsoleHandler = ConsoleHandler;\n//# sourceMappingURL=ConsoleHandler.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass Position {\n constructor(line, column) {\n this.line = line;\n this.column = column;\n }\n toString() {\n return \"Ln \" + this.line + \", Col \" + this.column;\n }\n}\nexports.Position = Position;\n//# sourceMappingURL=Position.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Position_1 = require(\"./Position\");\nclass Location extends Position_1.Position {\n constructor(resource, line, column) {\n super(line, column);\n this.resource = resource;\n }\n toString() {\n return this.resource.toString() + \" @ \" + super.toString();\n }\n}\nexports.Location = Location;\n//# sourceMappingURL=Location.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass Region {\n constructor(resource, start, end, content) {\n this.resource = resource;\n this.start = start;\n this.end = end;\n this.content = content;\n }\n merge(other) { return other ? new Region(this.resource, this.start, other.end, this.content ? this.content : \"\" + other.content ? other.content : \"\") : this; }\n toString() {\n let result = this.resource.toString();\n if (this.start && this.end)\n result += \" (\" + this.start.toString() + \" - \" + this.end.toString() + \") \";\n if (this.content)\n result += this.content;\n return result;\n }\n}\nexports.Region = Region;\n//# sourceMappingURL=Region.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ConsoleHandler_1 = require(\"./ConsoleHandler\");\nexports.ConsoleHandler = ConsoleHandler_1.ConsoleHandler;\nvar Level_1 = require(\"./Level\");\nexports.Level = Level_1.Level;\nvar Location_1 = require(\"./Location\");\nexports.Location = Location_1.Location;\nvar Message_1 = require(\"./Message\");\nexports.Message = Message_1.Message;\nvar Position_1 = require(\"./Position\");\nexports.Position = Position_1.Position;\nvar Region_1 = require(\"./Region\");\nexports.Region = Region_1.Region;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass User {\n constructor(name, password) {\n this.name = name;\n this.password = password;\n }\n get isEmpty() {\n return !this.name && !this.password;\n }\n toString() {\n let result = \"\";\n if (this.name)\n result = this.name;\n if (this.password)\n result += \":\" + this.password;\n return result;\n }\n static parse(data) {\n let result;\n if (data) {\n const splitted = data.split(\":\", 2);\n result = new User(splitted[0], splitted[1]);\n }\n else\n result = new User();\n return result;\n }\n}\nexports.User = User;\n//# sourceMappingURL=User.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass Endpoint {\n constructor(host = [], port) {\n this.host = host;\n this.port = port;\n }\n get isEmpty() {\n return this.host.length == 0 && !this.port;\n }\n toString() {\n let result = this.host.join(\".\");\n if (this.port)\n result += \":\" + this.port.toString();\n return result;\n }\n static parse(data) {\n let result;\n if (data) {\n const splitted = data.split(\":\", 2);\n result = new Endpoint(splitted[0].split(\".\"), splitted.length > 1 ? parseInt(splitted[1]) : undefined);\n }\n else\n result = new Endpoint();\n return result;\n }\n}\nexports.Endpoint = Endpoint;\n//# sourceMappingURL=Endpoint.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst User_1 = require(\"./User\");\nconst Endpoint_1 = require(\"./Endpoint\");\nclass Authority {\n constructor(user = new User_1.User(), endpoint = new Endpoint_1.Endpoint()) {\n this.user = user;\n this.endpoint = endpoint;\n }\n get isEmpty() {\n return this.user.isEmpty && this.endpoint.isEmpty;\n }\n toString() {\n let result = \"\";\n if (!this.user.isEmpty)\n result = this.user.toString() + \"@\";\n if (!this.endpoint.isEmpty)\n result = result + this.endpoint.toString();\n return result;\n }\n static parse(data) {\n let result;\n if (data) {\n const splitted = data.split(\"@\", 2);\n result = new Authority(User_1.User.parse(splitted.length == 2 ? splitted.pop() : undefined), Endpoint_1.Endpoint.parse(splitted.pop()));\n }\n return result;\n }\n}\nexports.Authority = Authority;\n//# sourceMappingURL=Authority.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Authority_1 = require(\"./Authority\");\nclass Locator {\n constructor(scheme = [], authority = new Authority_1.Authority(), path = [], query = {}, fragment) {\n this.scheme = scheme;\n this.authority = authority;\n this.path = path;\n this.query = query;\n this.fragment = fragment;\n }\n get isRelative() {\n return this.path[0] == \".\" || this.path[0] == \"..\";\n }\n get isFolder() {\n return this.path[this.path.length - 1] == \"\";\n }\n get folder() {\n return this.isFolder ? this : new Locator(this.scheme, this.authority, this.path.filter((value, index) => index < this.path.length - 1), this.query, this.fragment);\n }\n get name() {\n return this.path[this.path.length - 1];\n }\n get extension() {\n const splitted = this.name.split(\".\");\n return splitted.length > 1 ? splitted[splitted.length - 1] : \"\";\n }\n createArray(value, count) {\n const result = [];\n while (count-- > 0)\n result.push(value);\n return result;\n }\n normalize() {\n let skip = 0;\n const path = this.path.reverse().filter((item, index) => {\n let r = false;\n if ((item == \"\" || item == \".\") && index < this.path.length - 1)\n r = false;\n else if (item == \"..\")\n skip++;\n else if (skip > 0)\n skip--;\n else\n r = true;\n return r;\n }).concat(this.createArray(\"..\", skip)).reverse();\n return new Locator(this.scheme, this.authority, path, this.query, this.fragment);\n }\n resolve(absolute) {\n return !absolute ? this : new Locator(this.scheme.length > 0 ? this.scheme : absolute.scheme, !this.authority.isEmpty ? this.authority : absolute.authority, this.isRelative ? absolute.folder.path.concat(this.path) : this.path, this.query, this.fragment).normalize();\n }\n appendPath(path) {\n return new Locator(this.scheme, this.authority, path instanceof Array ? [...this.path, ...path] : [...this.path, path], this.query, this.fragment);\n }\n toString() {\n let result = \"\";\n if (this.scheme.length > 0)\n result += this.scheme.join(\"+\") + \":\";\n if (!this.authority.isEmpty)\n result += \"//\" + this.authority.toString();\n else if (this.scheme.length > 0)\n result += \"//\";\n if (this.path) {\n let path = this.path.join(\"/\");\n if (path[0] != \".\" || result.length > 0)\n path = \"/\" + path;\n result += path;\n }\n if (Object.keys(this.query).length > 0)\n result += \"?\" + this.query.toString();\n if (this.fragment)\n result += \"#\" + this.fragment;\n return result;\n }\n static parse(data) {\n let result;\n switch (data) {\n case \"\":\n case null:\n case undefined:\n break;\n default:\n let hasAuthority = true;\n let scheme = [];\n let splitted = data.split(\"://\", 2);\n if (splitted.length > 1) {\n scheme = (splitted.shift() || \"\").split(\"+\");\n data = splitted.shift();\n }\n else if (data.slice(0, 2) == \"//\")\n data = data.slice(2);\n else\n hasAuthority = false;\n let index;\n let fragment;\n if (data && (index = data.lastIndexOf(\"#\")) > -1) {\n fragment = data.slice(index + 1);\n data = data.slice(0, index);\n }\n let query = {};\n if (data && (index = data.lastIndexOf(\"?\")) > -1) {\n query = new Object();\n data.slice(index + 1).split(\";\").forEach(element => {\n splitted = element.split(\"=\");\n const key = splitted.shift();\n const value = splitted.shift();\n if (key && value)\n query[key] = value;\n });\n data = data.slice(0, index);\n }\n let authority;\n let path = [];\n if (data) {\n splitted = data.split(\"/\");\n if (splitted.length > 0) {\n switch (splitted[0]) {\n case \".\":\n case \"..\":\n break;\n case \"\":\n splitted.shift();\n break;\n default:\n if (hasAuthority)\n authority = Authority_1.Authority.parse(splitted.shift());\n else\n splitted.unshift(\".\");\n break;\n }\n path = splitted;\n }\n }\n result = new Locator(scheme, authority, path, query, fragment);\n break;\n }\n return result;\n }\n}\nexports.Locator = Locator;\nLocator.empty = new Locator(undefined, undefined, undefined, undefined, undefined);\n//# sourceMappingURL=Locator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Authority_1 = require(\"./Authority\");\nexports.Authority = Authority_1.Authority;\nvar Endpoint_1 = require(\"./Endpoint\");\nexports.Endpoint = Endpoint_1.Endpoint;\nvar Locator_1 = require(\"./Locator\");\nexports.Locator = Locator_1.Locator;\nvar User_1 = require(\"./User\");\nexports.User = User_1.User;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass Device {\n}\nexports.Device = Device;\n//# sourceMappingURL=Device.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Device_1 = require(\"./Device\");\nclass InDevice extends Device_1.Device {\n}\nexports.InDevice = InDevice;\n//# sourceMappingURL=InDevice.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst InDevice_1 = require(\"./InDevice\");\nclass Reader extends InDevice_1.InDevice {\n static addOpener(open, priority) {\n if (!priority)\n priority = 0;\n Reader.openers.push({ open, priority });\n Reader.openers = Reader.openers.sort((left, right) => right.priority - left.priority);\n }\n static open(locator) {\n let result;\n let i = 0;\n do\n result = Reader.openers[i++].open(locator);\n while (!result && i < Reader.openers.length);\n return result;\n }\n}\nexports.Reader = Reader;\nReader.openers = [];\n//# sourceMappingURL=Reader.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Uri = require(\"../Uri\");\nconst Error = require(\"../Error\");\nconst Reader_1 = require(\"./Reader\");\nvar Reader_2 = require(\"./Reader\");\nexports.Reader = Reader_2.Reader;\nclass BufferedReader extends Reader_1.Reader {\n constructor(backend) {\n super();\n this.backend = backend;\n this.buffer = [];\n this.lastContent = \"\";\n this.lastMark = this.locationValue = this.backend.location;\n }\n get tabSize() { return this.backend.tabSize; }\n set tabSize(size) { this.backend.tabSize = size; }\n get readable() { return !!this.backend; }\n get opened() { return !!this.backend; }\n get isEmpty() { return (this.buffer.length == 0 || this.buffer[0].data == \"\\0\") && this.backend.isEmpty; }\n get resource() {\n const location = this.location;\n return location ? location.resource : Uri.Locator.empty;\n }\n get location() {\n return this.locationValue;\n }\n get region() {\n return new Error.Region(this.resource, this.lastMark, this.location, this.lastContent);\n }\n close() {\n return this.backend.close();\n }\n peek(length) {\n if (!length)\n length = 1;\n let next;\n while (length > this.buffer.length && (next = this.backend.read()))\n this.buffer.push({ data: next, location: this.backend.location });\n return this.buffer.length == 0 ? undefined : this.buffer.slice(0, length > this.buffer.length ? this.buffer.length : length).map(value => value.data).join(\"\");\n }\n read(length) {\n if (!length)\n length = 1;\n const result = this.peek(length);\n if (result && result.length > 0) {\n this.locationValue = this.buffer[result.length - 1].location;\n this.buffer.splice(0, result.length);\n this.lastContent += result;\n }\n return result;\n }\n peekIs(value, count) {\n let result;\n if (value)\n if (typeof (value) == \"string\") {\n const v = value;\n while (count && count-- > 0)\n value += v;\n result = this.peek(value.length) == value ? value : undefined;\n }\n else if (value.length > 0 && !(result = this.peekIs(value[0])) && value.length)\n result = this.peekIs(value.slice(1));\n return result;\n }\n readIf(value) {\n let result;\n if (value)\n if (typeof (value) == \"string\")\n result = this.peek(value.length) == value && this.read(value.length) || undefined;\n else if (value.length > 0 && !(result = this.readIf(value[0])) && value.length)\n result = this.readIf(value.slice(1));\n return result;\n }\n readAll() {\n let result = \"\";\n while (this.peek())\n result += this.read();\n return result != \"\" ? result : undefined;\n }\n mark() {\n const result = this.region;\n this.lastMark = this.location;\n this.lastContent = \"\";\n return result;\n }\n static create(backend) {\n return backend ? new BufferedReader(backend) : undefined;\n }\n}\nexports.BufferedReader = BufferedReader;\n//# sourceMappingURL=BufferedReader.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction close(fd) {\n return __awaiter(this, void 0, void 0, function* () { });\n}\nexports.close = close;\nfunction fsync(fd) {\n return __awaiter(this, void 0, void 0, function* () { });\n}\nexports.fsync = fsync;\nfunction open(path, flags, mode) {\n return __awaiter(this, void 0, void 0, function* () { return 0; });\n}\nexports.open = open;\nfunction write(fd, buffer, offset, encoding) {\n return __awaiter(this, void 0, void 0, function* () { return { bytesWritten: 0 }; });\n}\nexports.write = write;\nfunction lstatSync(path, options) { return { isDirectory: () => false }; }\nexports.lstatSync = lstatSync;\nfunction readdirSync(path) { return []; }\nexports.readdirSync = readdirSync;\nfunction readFileSync(path, encoding) { return \"\"; }\nexports.readFileSync = readFileSync;\n//# sourceMappingURL=fs.browser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sep = \"/\";\nexports.sep = sep;\n//# sourceMappingURL=path.browser.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Error = require(\"../Error\");\nconst Uri = require(\"../Uri\");\nconst Reader_1 = require(\"./Reader\");\nclass StringReader extends Reader_1.Reader {\n constructor(content, resource) {\n super();\n this.content = content;\n this.resource = resource;\n this.tabSize = 2;\n this.count = 0;\n this.line = 1;\n this.column = 1;\n this.lastContent = \"\";\n this.readable = true;\n this.content += \"\\0\";\n this.lastPosition = this.location;\n }\n get opened() { return this.count + 1 >= this.content.length; }\n get isEmpty() { return this.opened; }\n get location() { return new Error.Location(this.resource, this.line, this.column); }\n get region() { return new Error.Region(this.resource, this.lastPosition, this.location, this.lastContent); }\n close() {\n return __awaiter(this, void 0, void 0, function* () {\n const result = !(yield this.isEmpty);\n if (result)\n this.count = this.content.length;\n return result;\n });\n }\n read() {\n let result;\n if (this.count < this.content.length)\n result = this.content.charAt(this.count);\n else if (this.count == this.content.length)\n result = undefined;\n this.count++;\n if (result) {\n switch (result) {\n case \"\\n\":\n this.line++;\n this.column = 1;\n break;\n case \"\\t\":\n this.column += this.tabSize;\n break;\n default:\n this.column++;\n break;\n }\n this.lastContent += result;\n }\n return result;\n }\n mark() {\n const result = this.region;\n this.lastPosition = this.location;\n this.lastContent = \"\";\n return result;\n }\n static create(content, resource) {\n return content != undefined ? new StringReader(content, resource || Uri.Locator.empty) : undefined;\n }\n}\nexports.StringReader = StringReader;\n//# sourceMappingURL=StringReader.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs = require(\"./fs\");\nconst path = require(\"./path\");\nconst Uri = require(\"../Uri\");\nconst Reader_1 = require(\"./Reader\");\nconst StringReader_1 = require(\"./StringReader\");\nclass FileReader extends Reader_1.Reader {\n constructor(backend) {\n super();\n this.backend = backend;\n }\n get tabSize() { return this.backend.tabSize; }\n set tabSize(size) { this.backend.tabSize = size; }\n get readable() { return this.backend.readable; }\n get opened() { return this.backend.opened; }\n get isEmpty() { return this.backend.isEmpty; }\n get resource() { return this.backend ? this.backend.resource : Uri.Locator.empty; }\n get location() { return this.backend.location; }\n get region() { return this.backend.region; }\n close() {\n return this.backend.close();\n }\n read() { return this.backend.read(); }\n mark() { return this.backend.mark(); }\n static open(resource) {\n let backend;\n if (resource && (resource.scheme.length == 0 || resource.scheme.length == 1 && resource.scheme[0] == \"file\"))\n try {\n backend = StringReader_1.StringReader.create(fs.readFileSync((resource.isRelative ? \"\" : path.sep) + resource.path.join(path.sep), \"utf-8\"), resource);\n }\n catch (error) {\n console.log(`Failed to open file: ${resource.toString()}`);\n }\n return backend ? new FileReader(backend) : undefined;\n }\n}\nexports.FileReader = FileReader;\nReader_1.Reader.addOpener(p => FileReader.open(p), 10);\n//# sourceMappingURL=FileReader.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs = require(\"./fs\");\nconst path = require(\"./path\");\nconst Uri = require(\"../Uri\");\nconst Error = require(\"../Error\");\nconst Reader_1 = require(\"./Reader\");\nconst FileReader_1 = require(\"./FileReader\");\nclass FolderReader extends Reader_1.Reader {\n constructor(files) {\n super();\n this.files = files;\n this.tabSizeValue = 2;\n this.lastLocation = new Error.Location(Uri.Locator.empty, 0, 0);\n }\n get tabSize() { return this.tabSizeValue; }\n set tabSize(size) {\n this.tabSizeValue = size;\n if (this.current)\n this.current.tabSize = size;\n }\n get readable() { return this.current != undefined && this.current.readable || this.files.length > 0; }\n get opened() { return this.current != undefined || this.files.length > 0; }\n get isEmpty() { return this.files.length == 0 && (!this.current || this.current.isEmpty); }\n get resource() { return this.current ? this.current.resource : this.lastLocation.resource; }\n get location() { return this.current ? this.current.location : this.lastLocation; }\n get region() { return this.current ? this.current.region : new Error.Region(this.resource); }\n close() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.current != undefined && (yield this.current.close());\n });\n }\n read() {\n let result;\n if (!this.current && this.files.length > 0) {\n this.current = FileReader_1.FileReader.open(this.files.shift());\n this.current.tabSize = this.tabSize;\n }\n if (this.current) {\n result = this.current.read();\n if (result == undefined || result == \"\\0\") {\n this.current.close();\n this.current = undefined;\n }\n }\n this.lastLocation = this.location;\n return result;\n }\n mark() { return this.current ? this.current.mark() : new Error.Region(this.resource); }\n static getFiles(folder, filetype, ignoreFiles = []) {\n let result = [];\n const files = fs.readdirSync(folder);\n files.forEach(file => {\n const filename = folder + path.sep + file;\n if (ignoreFiles.indexOf(filename) == -1) {\n if (fs.lstatSync(filename).isDirectory())\n result = result.concat(FolderReader.getFiles(filename, filetype, ignoreFiles));\n else if (file.length > filetype.length && file.lastIndexOf(filetype, file.length - filetype.length) === file.length - filetype.length)\n result.push(filename);\n }\n });\n return result;\n }\n static open(resource) {\n let files;\n try {\n if (resource && (resource.scheme.length == 0 || resource.scheme.length == 1 && resource.scheme[0] == \"file\") && resource.isFolder || resource.name.match(\"*\"))\n files = FolderReader.getFiles((resource.isRelative ? \"\" : path.sep) + resource.folder.path.join(path.sep), resource.extension);\n }\n catch (error) {\n }\n return files ? new FolderReader(files.map(f => new Uri.Locator([\"file\"], undefined, f.split(path.sep)))) : undefined;\n }\n}\nexports.FolderReader = FolderReader;\nReader_1.Reader.addOpener((resource) => FolderReader.open(resource), 0);\n//# sourceMappingURL=FolderReader.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction* generate(next) {\n let result;\n while ((result = next()) != undefined)\n yield result;\n}\nfunction isIterator(item) {\n return item.next instanceof Function;\n}\nfunction* merge(left, right) {\n let result;\n while (!(result = left.next()).done)\n yield result.value;\n if (isIterator(right))\n while (!(result = right.next()).done)\n yield result.value;\n else\n yield right;\n}\nclass Enumerator {\n constructor(backend) {\n this.iterator = backend instanceof Function ? generate(backend) : backend;\n }\n get length() {\n let result = 0;\n while (!this.next().done)\n result++;\n return result;\n }\n get last() {\n return this.nextValue && !this.nextValue.done ? this.nextValue.value : undefined;\n }\n fetch() {\n const result = this.next();\n return result.done ? undefined : result.value;\n }\n next(value) {\n return this.nextValue = this.iterator.next(value);\n }\n append(item) {\n return new Enumerator(merge(this, item));\n }\n map(mapping) {\n return new Enumerator(() => {\n const item = this.fetch();\n return (item != undefined) ? mapping(item) : undefined;\n });\n }\n reduce(reduce, result) {\n const item = this.fetch();\n return item ? this.reduce(reduce, reduce(result, item)) : result;\n }\n apply(apply) {\n const item = this.fetch();\n if (item) {\n apply(item);\n this.apply(apply);\n }\n }\n filter(filter) {\n return new Enumerator(() => {\n let item;\n do\n item = this.fetch();\n while (item != undefined && !filter(item));\n return item;\n });\n }\n toArray() {\n const item = this.fetch();\n let result;\n if (!item)\n result = [];\n else {\n result = this.toArray();\n result.unshift(item);\n }\n return result;\n }\n static from(backend) {\n return new Enumerator(backend);\n }\n}\nexports.Enumerator = Enumerator;\nEnumerator.empty = Enumerator.from(() => undefined);\n//# sourceMappingURL=Enumerator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Enumerator_1 = require(\"./Enumerator\");\nfunction isIterable(other) {\n return other == null ? false : typeof other[Symbol.iterator] === \"function\";\n}\nclass Enumerable {\n constructor(get) {\n this.get = get;\n }\n get length() {\n return this.get().length;\n }\n get first() {\n return this.get().fetch();\n }\n get last() {\n return this.get().last;\n }\n getEnumerator() {\n return new Enumerator_1.Enumerator(this.get());\n }\n [Symbol.iterator]() {\n return this.getEnumerator();\n }\n append(item) {\n return new Enumerable(() => this.get().append(item));\n }\n map(mapping) {\n return new Enumerable(() => this.get().map(mapping));\n }\n reduce(reduce, result) {\n return this.get().reduce(reduce, result);\n }\n apply(apply) {\n this.get().apply(apply);\n }\n filter(filter) {\n return new Enumerable(() => this.get().filter(filter));\n }\n toArray() {\n return this.getEnumerator().toArray();\n }\n static from(get) {\n return isIterable(get) ? new Enumerable(() => new Enumerator_1.Enumerator(get[Symbol.iterator]())) : new Enumerable(() => {\n const r = get();\n return r instanceof Enumerator_1.Enumerator ? r : new Enumerator_1.Enumerator(r);\n });\n }\n}\nexports.Enumerable = Enumerable;\nEnumerable.empty = Enumerable.from([]);\n//# sourceMappingURL=Enumerable.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Enumerator_1 = require(\"./Enumerator\");\nclass ArrayEnumerator extends Enumerator_1.Enumerator {\n constructor(backend) {\n super(() => this.position < this.backend.length ? this.backend[this.position++] : undefined);\n this.backend = backend;\n this.position = 0;\n }\n}\nexports.ArrayEnumerator = ArrayEnumerator;\n//# sourceMappingURL=ArrayEnumerator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Enumerator_1 = require(\"./Enumerator\");\nclass BufferedEnumerator extends Enumerator_1.Enumerator {\n constructor(backend) {\n super(() => {\n const result = this.peek(0);\n if (this.buffer.length > 0)\n this.buffer.shift();\n return result;\n });\n this.backend = backend;\n this.buffer = [];\n }\n peek(position) {\n if (!position)\n position = 0;\n let next;\n while (position > this.buffer.length - 1 && (next = this.backend.fetch()))\n this.buffer.push(next);\n return position > this.buffer.length - 1 ? undefined : this.buffer[position];\n }\n}\nexports.BufferedEnumerator = BufferedEnumerator;\n//# sourceMappingURL=BufferedEnumerator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass String {\n static padLeft(value, paddingCharacter, width) {\n return String.pad(value, paddingCharacter, width, true);\n }\n static padRight(value, paddingCharacter, width) {\n return String.pad(value, paddingCharacter, width, false);\n }\n static pad(value, paddingCharacter, width, padLeft) {\n let padding = \"\";\n const count = width - value.length;\n for (let i = 0; i < count; i++)\n padding += paddingCharacter;\n return padLeft ? padding + value : value + padding;\n }\n}\nexports.String = String;\n//# sourceMappingURL=String.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Enumerator_1 = require(\"./Enumerator\");\nexports.Enumerator = Enumerator_1.Enumerator;\nvar Enumerable_1 = require(\"./Enumerable\");\nexports.Enumerable = Enumerable_1.Enumerable;\nvar ArrayEnumerator_1 = require(\"./ArrayEnumerator\");\nexports.ArrayEnumerator = ArrayEnumerator_1.ArrayEnumerator;\nvar BufferedEnumerator_1 = require(\"./BufferedEnumerator\");\nexports.BufferedEnumerator = BufferedEnumerator_1.BufferedEnumerator;\nvar String_1 = require(\"./String\");\nexports.String = String_1.String;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Device_1 = require(\"./Device\");\nclass OutDevice extends Device_1.Device {\n}\nexports.OutDevice = OutDevice;\n//# sourceMappingURL=OutDevice.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Uri = require(\"../Uri\");\nconst Utilities_1 = require(\"../Utilities\");\nconst OutDevice_1 = require(\"./OutDevice\");\nclass Writer extends OutDevice_1.OutDevice {\n constructor() {\n super(...arguments);\n this.newLineSymbol = \"\\n\";\n }\n write(message) {\n return __awaiter(this, void 0, void 0, function* () {\n return message instanceof Utilities_1.Enumerator ? this.writeImplementation(message) :\n message instanceof Array ? this.writeImplementation(new Utilities_1.ArrayEnumerator(message)) :\n this.writeImplementation(new Utilities_1.ArrayEnumerator([message]));\n });\n }\n writeLine(message) {\n return __awaiter(this, void 0, void 0, function* () {\n return message instanceof Utilities_1.Enumerator ? this.writeImplementation(message.append(this.newLineSymbol)) :\n message instanceof Array ? this.writeImplementation(new Utilities_1.ArrayEnumerator([...message, this.newLineSymbol])) :\n message ? this.writeImplementation(new Utilities_1.ArrayEnumerator([message, this.newLineSymbol])) :\n this.writeImplementation(new Utilities_1.ArrayEnumerator([this.newLineSymbol]));\n });\n }\n static addOpener(open, priority) {\n if (!priority)\n priority = 0;\n Writer.openers.push({ open, priority });\n Writer.openers = Writer.openers.sort((left, right) => right.priority - left.priority);\n }\n static open(resource) {\n return __awaiter(this, void 0, void 0, function* () {\n let result;\n if (typeof (resource) == \"string\") {\n const r = Uri.Locator.parse(resource);\n result = r ? yield Writer.open(r) : undefined;\n }\n else {\n let i = 0;\n do\n result = yield Writer.openers[i++].open(resource);\n while (!result && i < Writer.openers.length);\n }\n return result;\n });\n }\n}\nexports.Writer = Writer;\nWriter.openers = [];\n//# sourceMappingURL=Writer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Writer_1 = require(\"./Writer\");\nclass Indenter extends Writer_1.Writer {\n constructor(backend) {\n super();\n this.backend = backend;\n this.autoFlush = true;\n this.indentionSymbol = \"\\t\";\n this.indentionCount = 0;\n this.indentNext = false;\n }\n get resource() { return this.backend.resource; }\n get opened() { return this.backend.opened; }\n get writable() { return this.backend.writable; }\n flush() {\n return this.backend.flush();\n }\n close() {\n return this.backend.close();\n }\n increase() {\n this.indentionCount++;\n return true;\n }\n decrease() {\n this.indentionCount--;\n return this.indentionCount >= 0;\n }\n getIndention() {\n return this.indentionSymbol.repeat(this.indentionCount);\n }\n writeImplementation(buffer) {\n const result = [];\n let item;\n let next = buffer.fetch();\n if (next)\n do {\n item = next;\n next = buffer.fetch();\n if (this.indentNext)\n item = this.getIndention() + item;\n this.indentNext = item.endsWith(this.newLineSymbol);\n item = item.replace(this.newLineSymbol, this.newLineSymbol + this.getIndention());\n if (this.indentNext)\n item = item.substring(0, item.length - this.indentionCount * this.indentionSymbol.length);\n result.push(this.backend.write(item));\n } while (next);\n return Promise.all(result).then(r => r.reduce((previous, current) => previous && current, true));\n }\n}\nexports.Indenter = Indenter;\n//# sourceMappingURL=Indenter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Reader_1 = require(\"./Reader\");\nconst BufferedReader_1 = require(\"./BufferedReader\");\nclass PrefixReader extends Reader_1.Reader {\n constructor(backend, prefix) {\n super();\n this.prefix = prefix;\n this.done = false;\n this.backend = backend instanceof BufferedReader_1.BufferedReader ? backend : BufferedReader_1.BufferedReader.create(backend);\n }\n get tabSize() { return this.backend.tabSize; }\n set tabSize(size) { this.backend.tabSize = size; }\n get readable() { return this.backend.readable; }\n get opened() { return this.backend.opened; }\n get isEmpty() { return this.done || this.backend.isEmpty; }\n get resource() { return this.backend.resource; }\n get location() { return this.backend.location; }\n get region() { return this.backend.region; }\n close() {\n return this.backend.close();\n }\n read() {\n let result;\n if (!this.done) {\n result = this.backend.read();\n this.done = result == \"\\n\" && !this.backend.readIf(this.prefix) && !this.backend.peekIs(\"\\n\");\n }\n return result;\n }\n mark() { return this.backend.mark(); }\n static create(backend, prefix) {\n return backend && prefix ? new PrefixReader(backend, prefix) : backend;\n }\n}\nexports.PrefixReader = PrefixReader;\n//# sourceMappingURL=PrefixReader.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs = require(\"./fs\");\nconst path = require(\"./path\");\nconst Writer_1 = require(\"./Writer\");\nclass FileWriter extends Writer_1.Writer {\n constructor(resource, descriptor) {\n super();\n this.resource = resource;\n this.descriptor = descriptor;\n this.autoFlush = false;\n }\n get opened() { return this.descriptor > 0; }\n get writable() { return this.descriptor > 0; }\n flush() {\n return __awaiter(this, void 0, void 0, function* () {\n let result = true;\n try {\n yield fs.fsync(this.descriptor);\n }\n catch (error) {\n result = false;\n }\n return result;\n });\n }\n close() {\n return __awaiter(this, void 0, void 0, function* () {\n let result = this.opened;\n if (result) {\n try {\n yield fs.close(this.descriptor);\n }\n catch (error) {\n result = false;\n }\n this.descriptor = 0;\n }\n return result;\n });\n }\n writeImplementation(buffer) {\n return __awaiter(this, void 0, void 0, function* () {\n let result = true;\n const content = Buffer.from(buffer.reduce((r, item) => r + item, \"\"));\n try {\n const r = yield fs.write(this.descriptor, content, 0, \"utf8\");\n result = r.bytesWritten == content.length;\n }\n catch (error) {\n result = false;\n }\n return result && (!this.autoFlush || (yield this.flush()));\n });\n }\n static open(resource) {\n return __awaiter(this, void 0, void 0, function* () {\n let backend;\n if (resource && (resource.scheme.length == 0 || resource.scheme.length == 1 && resource.scheme[0] == \"file\"))\n try {\n backend = yield fs.open((resource.isRelative ? \"\" : path.sep) + resource.path.join(path.sep), \"w\");\n }\n catch (error) {\n backend = undefined;\n }\n return backend ? new FileWriter(resource, backend) : undefined;\n });\n }\n}\nexports.FileWriter = FileWriter;\nWriter_1.Writer.addOpener(FileWriter.open);\n//# sourceMappingURL=FileWriter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Reader_1 = require(\"./Reader\");\nconst BufferedReader_1 = require(\"./BufferedReader\");\nclass TillReader extends Reader_1.Reader {\n constructor(backend, endMark) {\n super();\n this.endMark = endMark;\n this.done = false;\n this.backend = backend instanceof BufferedReader_1.BufferedReader ? backend : BufferedReader_1.BufferedReader.create(backend);\n this.done = this.backend.peekIs(this.endMark) != undefined;\n }\n get tabSize() { return this.backend.tabSize; }\n set tabSize(size) { this.backend.tabSize = size; }\n get readable() { return this.backend.readable; }\n get opened() { return !this.done && this.backend.opened; }\n get isEmpty() { return this.done || this.backend.isEmpty; }\n get resource() { return this.backend.resource; }\n get location() { return this.backend.location; }\n get region() { return this.backend.region; }\n close() {\n const result = !this.done;\n if (result)\n this.done = true;\n return Promise.resolve(result);\n }\n read() {\n let result;\n if (!this.done) {\n result = this.backend.read();\n this.done = this.backend.peekIs(this.endMark) != undefined;\n }\n return result;\n }\n mark() { return this.backend.mark(); }\n static create(backend, endMark) {\n return backend && endMark ? new TillReader(backend, endMark) : backend;\n }\n}\nexports.TillReader = TillReader;\n//# sourceMappingURL=TillReader.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Reader_1 = require(\"./Reader\");\nconst BufferedReader_1 = require(\"./BufferedReader\");\nclass UntilReader extends Reader_1.Reader {\n constructor(backend, endMark) {\n super();\n this.endMark = endMark;\n this.done = -1;\n this.backend = backend instanceof BufferedReader_1.BufferedReader ? backend : BufferedReader_1.BufferedReader.create(backend);\n const peeked = this.backend.peekIs(this.endMark);\n if (peeked)\n this.done = peeked.length;\n }\n get tabSize() { return this.backend.tabSize; }\n set tabSize(size) { this.backend.tabSize = size; }\n get readable() { return this.backend.readable; }\n get opened() { return !this.done && this.backend.opened; }\n get isEmpty() { return this.done == 0 || this.backend.isEmpty; }\n get resource() { return this.backend.resource; }\n get location() { return this.backend.location; }\n get region() { return this.backend.region; }\n close() {\n const result = this.done > 0;\n if (result)\n this.done = 0;\n return Promise.resolve(result);\n }\n read() {\n let result;\n if (this.done != 0) {\n result = this.backend.read();\n let peeked;\n if (this.done > 0)\n this.done--;\n else if (peeked = this.backend.peekIs(this.endMark))\n this.done = peeked.length;\n }\n return result;\n }\n mark() { return this.backend.mark(); }\n static create(backend, endMark) {\n return backend && endMark ? new UntilReader(backend, endMark) : backend;\n }\n}\nexports.UntilReader = UntilReader;\n//# sourceMappingURL=UntilReader.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BufferedReader_1 = require(\"./BufferedReader\");\nexports.BufferedReader = BufferedReader_1.BufferedReader;\nvar Device_1 = require(\"./Device\");\nexports.Device = Device_1.Device;\nvar FileReader_1 = require(\"./FileReader\");\nexports.FileReader = FileReader_1.FileReader;\nvar FolderReader_1 = require(\"./FolderReader\");\nexports.FolderReader = FolderReader_1.FolderReader;\nvar Indenter_1 = require(\"./Indenter\");\nexports.Indenter = Indenter_1.Indenter;\nvar InDevice_1 = require(\"./InDevice\");\nexports.InDevice = InDevice_1.InDevice;\nvar OutDevice_1 = require(\"./OutDevice\");\nexports.OutDevice = OutDevice_1.OutDevice;\nvar PrefixReader_1 = require(\"./PrefixReader\");\nexports.PrefixReader = PrefixReader_1.PrefixReader;\nvar Reader_1 = require(\"./Reader\");\nexports.Reader = Reader_1.Reader;\nvar StringReader_1 = require(\"./StringReader\");\nexports.StringReader = StringReader_1.StringReader;\nvar FileWriter_1 = require(\"./FileWriter\");\nexports.FileWriter = FileWriter_1.FileWriter;\nvar TillReader_1 = require(\"./TillReader\");\nexports.TillReader = TillReader_1.TillReader;\nvar UntilReader_1 = require(\"./UntilReader\");\nexports.UntilReader = UntilReader_1.UntilReader;\nvar Writer_1 = require(\"./Writer\");\nexports.Writer = Writer_1.Writer;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Error = require(\"./Error\");\nexports.Error = Error;\nconst IO = require(\"./IO\");\nexports.IO = IO;\nconst Uri = require(\"./Uri\");\nexports.Uri = Uri;\nconst Utilities = require(\"./Utilities\");\nexports.Utilities = Utilities;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Source = void 0;\nconst mend_1 = require(\"@cogneco/mend\");\nclass Source extends mend_1.IO.BufferedReader {\n constructor(reader, errorHandler) {\n super(typeof reader == \"string\" ? mend_1.IO.StringReader.create(reader) : reader);\n this.errorHandler = errorHandler;\n }\n raise(message, level, type = \"lexical\", region) {\n if (!(message instanceof mend_1.Error.Message)) {\n if (!level)\n level = mend_1.Error.Level.Critical;\n if (!region)\n region = this.region;\n message = new mend_1.Error.Message(message, level, type, region);\n }\n if (this.errorHandler)\n this.errorHandler.raise(message);\n }\n requirePrefix(prefix) {\n return new Source(new mend_1.IO.PrefixReader(this, prefix), this.errorHandler);\n }\n till(endMark) {\n return new Source(mend_1.IO.TillReader.create(this, endMark), this.errorHandler);\n }\n until(endMark) {\n return new Source(mend_1.IO.UntilReader.create(this, endMark), this.errorHandler);\n }\n peekIsSymbol(symbols) {\n var _a, _b;\n return ((_b = (_a = this.peekIs(symbols !== null && symbols !== void 0 ? symbols : [\"!\", \"(\", \")\", \"[\", \"]\", \"|\", \"*\", \":\", \".\", \"<=\", \">=\", \"<\", \">\", \" * \", \" + \", \" - \", \" / \", \",\"])) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : false);\n }\n peekIsWhitespace() {\n return !!this.peekIs([\" \", \"\\n\", \"\\t\"]);\n }\n}\nexports.Source = Source;\n//# sourceMappingURL=Source.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tokenize = exports.Source = void 0;\nconst mend_1 = require(\"@cogneco/mend\");\nconst Source_1 = require(\"./Source\");\nObject.defineProperty(exports, \"Source\", { enumerable: true, get: function () { return Source_1.Source; } });\nfunction tokenize(reader, errorHandler, symbols) {\n const source = new Source_1.Source(reader, errorHandler);\n return new mend_1.Utilities.Enumerator(() => {\n let result;\n let peekSymbolLength = 1;\n if (!source.isEmpty) {\n while (source.peekIsWhitespace() && !source.peekIsSymbol(symbols))\n source.read();\n if ((peekSymbolLength = source.peekIsSymbol(symbols)))\n result = { value: source.read(peekSymbolLength) || \"\", region: source.mark() };\n else {\n let value = \"\";\n while (!source.isEmpty && !source.peekIsWhitespace() && !source.peekIsSymbol(symbols))\n value += source.read();\n if (value)\n result = { value, region: source.mark() };\n }\n }\n return result;\n });\n}\nexports.tokenize = tokenize;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Base = void 0;\nconst lexer_1 = require(\"../lexer\");\nclass Base {\n tokenize(input) {\n return (0, lexer_1.tokenize)(input, undefined, [\n \"!\",\n \"(\",\n \")\",\n \"[\",\n \"]\",\n \"|\",\n \" | \",\n \"*\",\n \":\",\n \".\",\n \"<=\",\n \">=\",\n \"<\",\n \">\",\n \" * \",\n \" + \",\n \"+\",\n \" - \",\n \"-\",\n \" / \",\n ])\n .map(t => ({ value: t.value }))\n .toArray();\n }\n}\nexports.Base = Base;\n//# sourceMappingURL=Base.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Array = void 0;\nconst Base_1 = require(\"./Base\");\nclass Array extends Base_1.Base {\n constructor(input) {\n super();\n this.class = \"array\";\n this.array = input;\n }\n complete(input, baseObject, type) {\n const tokens = typeof input == \"string\" ? this.tokenize(input) : input;\n return Array.completor\n .flatMap(p => p(tokens, this, baseObject))\n .reduce((result, element) => result.some(p => p.value == element.value && p.cursor == element.cursor) ? result : [...result, element], []);\n }\n isType(value) {\n return global.Array.isArray(value);\n }\n static add(...pattern) {\n this.completor.push(...pattern);\n }\n static is(value) {\n return value instanceof Array;\n }\n}\nexports.Array = Array;\nArray.completor = [];\n//# sourceMappingURL=Array.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Cursor = void 0;\nvar Cursor;\n(function (Cursor) {\n function is(value) {\n return typeof value == \"object\" && typeof value.start == \"number\" && typeof value.end == \"number\";\n }\n Cursor.is = is;\n})(Cursor = exports.Cursor || (exports.Cursor = {}));\n//# sourceMappingURL=Cursor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Completion = void 0;\nconst Cursor_1 = require(\"./Cursor\");\nvar Completion;\n(function (Completion) {\n function stringify(completions) {\n return completions.map(c => typeof c.cursor == \"number\"\n ? c.value.slice(0, c.cursor) + \"_\" + c.value.slice(c.cursor, c.value.length)\n : c.value + \"_\");\n }\n Completion.stringify = stringify;\n function prepend(prefix, completion, suffix) {\n return Array.isArray(completion)\n ? completion.map(c => prepend(prefix, c, suffix))\n : {\n value: prefix + completion.value + (suffix !== null && suffix !== void 0 ? suffix : \"\"),\n cursor: typeof (completion === null || completion === void 0 ? void 0 : completion.cursor) == \"number\"\n ? (completion === null || completion === void 0 ? void 0 : completion.cursor) + prefix.length\n : Cursor_1.Cursor.is(completion.cursor)\n ? { start: completion.cursor.start + prefix.length, end: completion.cursor.end + prefix.length }\n : completion.value.length + prefix.length,\n suggestion: completion.suggestion,\n };\n }\n Completion.prepend = prepend;\n})(Completion = exports.Completion || (exports.Completion = {}));\n//# sourceMappingURL=Completion.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Boolean = void 0;\nconst Base_1 = require(\"./Base\");\nconst Completion_1 = require(\"./Completion\");\nclass Boolean extends Base_1.Base {\n constructor() {\n super();\n this.class = \"boolean\";\n }\n complete(input, baseObject, type) {\n var _a;\n const tokens = typeof input == \"string\" ? this.tokenize(input) : input;\n const result = type\n ? Boolean.literals.filter(c => { var _a, _b; return c.value.startsWith((_b = (_a = tokens[0]) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : \"\"); })\n : ((_a = tokens[0]) === null || _a === void 0 ? void 0 : _a.value) == \":\"\n ? Completion_1.Completion.prepend(\":\", Boolean.literals.filter(c => { var _a, _b; return c.value.startsWith((_b = (_a = tokens[1]) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : \"\"); }))\n : [];\n return [\n ...(result !== null && result !== void 0 ? result : []),\n ...(type ? [] : Boolean.completor)\n .flatMap(p => p(tokens, this, baseObject))\n .reduce((result, element) => result.some(p => p.value == element.value && p.cursor == element.cursor) ? result : [...result, element], []),\n ];\n }\n isType(value) {\n return typeof value == \"boolean\";\n }\n static add(...pattern) {\n this.completor.push(...pattern);\n }\n}\nexports.Boolean = Boolean;\nBoolean.literals = [\n { value: \"true\", suggestion: { value: \"true\" } },\n { value: \"false\", suggestion: { value: \"false\" } },\n];\nBoolean.completor = [];\n//# sourceMappingURL=Boolean.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Completor = void 0;\nconst Completion_1 = require(\"./Completion\");\nvar Completor;\n(function (Completor) {\n function functions(tokens, argument, completion) {\n var _a, _b, _c, _d;\n return tokens.length == 0\n ? [{ value: \":\", suggestion: { value: \":\" } }]\n : tokens.length <= 3 &&\n tokens[0].value == \":\" &&\n completion.value.startsWith((_b = (_a = tokens[1]) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : \"\") &&\n ((_d = (_c = tokens[2]) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : \"(\") == \"(\"\n ? Completion_1.Completion.prepend(\":\", [completion])\n : tokens.length <= 4 &&\n tokens.slice(0, 4).reduce((string, token) => string + token.value, \"\") == \":\" + completion.value\n ? Completion_1.Completion.prepend(\":\" + completion.value.substring(0, completion.value.length - 1), argument(), \")\")\n : tokens.length == 5 &&\n tokens.slice(0, 3).reduce((string, token) => string + token.value, \"\") + tokens[4].value ==\n \":\" + completion.value\n ? Completion_1.Completion.prepend(\":\" + completion.value.substring(0, completion.value.length - 1), argument(tokens.slice(3, tokens.length - 1)), \")\")\n : tokens.length > 5 &&\n tokens.slice(0, 3).reduce((string, token) => string + token.value, \"\") + tokens[tokens.length - 1].value ==\n \":\" + completion.value\n ? Completion_1.Completion.prepend(\":\" + completion.value.substring(0, completion.value.length - 1), argument(tokens.slice(3, tokens.length - 1)), \")\")\n : [];\n }\n Completor.functions = functions;\n function expressions(tokens, argument, completion) {\n return tokens.length == 0\n ? [{ value: \":\", suggestion: { value: \":\" } }]\n : tokens[0].value != \":\"\n ? []\n : tokens.length == 1\n ? Completion_1.Completion.prepend(\":\", [completion])\n : Completion_1.Completion.prepend(\":\", argument(tokens.slice(1)));\n }\n Completor.expressions = expressions;\n function operators(tokens, argument, completion) {\n return tokens.length >= 1 && tokens[0].value == completion.value\n ? Completion_1.Completion.prepend(completion.value, argument(tokens.slice(1)))\n : tokens.length == 0 ||\n (tokens.length == 1 && completion.value.startsWith(tokens[0].value)) ||\n tokens[0].value == completion.value.replace(/ /g, \"\")\n ? [completion]\n : [];\n }\n Completor.operators = operators;\n})(Completor = exports.Completor || (exports.Completor = {}));\n//# sourceMappingURL=Completor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Number = void 0;\nconst Base_1 = require(\"./Base\");\nconst Completion_1 = require(\"./Completion\");\nclass Number extends Base_1.Base {\n constructor(input) {\n super();\n this.input = input;\n this.class = \"number\";\n if (input)\n this.value = input;\n }\n complete(input, baseObject, type) {\n const tokens = typeof input == \"string\" ? this.tokenize(input) : input;\n return [\n ...(tokens.length > 0 && tokens[0].value == \":\" && baseObject\n ? Completion_1.Completion.prepend(\":\", baseObject.complete(tokens.slice(1), undefined, this))\n : baseObject && tokens.length >= 0 && type\n ? Completion_1.Completion.prepend(\" \", baseObject === null || baseObject === void 0 ? void 0 : baseObject.complete(tokens, undefined, undefined))\n : []),\n ...(type ? Number.completorArgument : Number.completor)\n .flatMap(p => p(tokens, this, baseObject))\n .reduce((result, element) => result.some(p => p.value == element.value && p.cursor == element.cursor) ? result : [...result, element], []),\n ];\n }\n isType(value) {\n return isNaN(+value) ? false : true;\n }\n static add(...pattern) {\n this.completor.push(...pattern);\n }\n static addArgument(...pattern) {\n this.completorArgument.push(...pattern);\n }\n static is(value) {\n return value instanceof Number || !global.Number.isNaN(value);\n }\n}\nexports.Number = Number;\nNumber.completor = [];\nNumber.completorArgument = [];\n//# sourceMappingURL=Number.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TObject = void 0;\nconst Base_1 = require(\"./Base\");\nconst Completion_1 = require(\"./Completion\");\nclass TObject extends Base_1.Base {\n constructor(properties) {\n super();\n this.properties = properties;\n this.class = \"object\";\n this.completions = Object.keys(this.properties).map(p => ({ value: p, suggestion: { value: p } }));\n }\n complete(input, baseObject, type) {\n const tokens = typeof input == \"string\" ? this.tokenize(input) : input;\n let result;\n const filtered = this.filterByType(type);\n if (!baseObject) {\n const matched = tokens.length > 0 ? this.match(tokens[0], filtered) : undefined;\n if (matched)\n result =\n tokens.length >= 1\n ? Completion_1.Completion.prepend(matched.value, this.properties[matched.value].complete(tokens.slice(1), this, type))\n : [];\n else if (type && tokens.length > 2 && type.isType(tokens[0].value + tokens[1].value + tokens[2].value))\n result = Completion_1.Completion.prepend(tokens[0].value + tokens[1].value + tokens[2].value, type.complete(tokens.slice(3), this, type));\n else if (type && tokens.length > 0 && type.isType(tokens[0].value))\n result = Completion_1.Completion.prepend(tokens[0].value, type.complete(tokens.slice(1), this, type));\n else {\n let found;\n result =\n tokens.length == 0\n ? [...this.addDot(filtered, type), ...((type === null || type === void 0 ? void 0 : type.class) == \"number\" ? [] : TObject.wildcard)]\n : tokens.length == 1 && (found = TObject.wildcard.find(w => w.value == tokens[0].value))\n ? Completion_1.Completion.prepend(found.value, this.completions, type ? \".\" : \"\")\n : tokens.length >= 1 && (found = TObject.wildcard.find(w => w.value == tokens[0].value))\n ? Completion_1.Completion.prepend(found.value, this.complete(tokens.slice(1)))\n : this.addDot(this.partial(tokens[0], filtered), type);\n }\n }\n else\n result =\n tokens.length == 0\n ? [{ value: \".\", suggestion: { value: \".\" } }]\n : tokens[0].value != \".\"\n ? []\n : tokens.length == 1\n ? Completion_1.Completion.prepend(\".\", this.addDot(filtered, type))\n : this.properties[tokens[1].value]\n ? Completion_1.Completion.prepend(\".\" + tokens[1].value, this.properties[tokens[1].value].complete(tokens.slice(2), baseObject, type))\n : Completion_1.Completion.prepend(\".\", this.addDot(this.partial(tokens[1], filtered), type));\n return [\n ...result.reduce((result, element) => result.some(p => p.value == element.value && p.cursor == element.cursor) ? result : [...result, element], []),\n ...TObject.completor.flatMap(p => p(tokens, this, baseObject)),\n ];\n }\n filterByType(type) {\n return type\n ? this.completions.filter(c => this.properties[c.value].class == type.class ||\n (this.properties[c.value].class == \"object\"\n ? this.properties[c.value].filterByType(type).length > 0\n : false))\n : this.completions;\n }\n addDot(completions, type) {\n return !completions\n ? []\n : type\n ? completions.map(c => {\n var _a;\n return this.properties[c.value].class == \"object\"\n ? { value: c.value + \".\", suggestion: { value: ((_a = c.suggestion) === null || _a === void 0 ? void 0 : _a.value) + \".\" } }\n : c;\n })\n : completions;\n }\n partial(token, completions) {\n const result = completions.filter(c => c.value.startsWith(token.value));\n return result && result.length > 0 ? result : undefined;\n }\n match(token, completions) {\n const result = completions.filter(c => c.value == token.value);\n return result && result.length > 0 ? result[0] : undefined;\n }\n isType(value) {\n return false;\n }\n static add(...completor) {\n this.completor.push(...completor);\n }\n}\nexports.TObject = TObject;\nTObject.wildcard = [\n { value: \"!\", cursor: 1, suggestion: { value: \"!\", description: \"not\" } },\n];\nTObject.completor = [];\n//# sourceMappingURL=Object.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.String = void 0;\nconst Base_1 = require(\"./Base\");\nconst Completion_1 = require(\"./Completion\");\nclass String extends Base_1.Base {\n constructor(input) {\n super();\n this.class = \"string\";\n if (input)\n this.value = input;\n }\n complete(input, baseObject, type) {\n var _a, _b, _c, _d, _e, _f;\n const tokens = typeof input == \"string\" ? this.tokenize(input) : input;\n let result;\n if (type)\n result = ((_a = this.value) === null || _a === void 0 ? void 0 : _a.startsWith((_c = (_b = tokens[0]) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : \"\"))\n ? [{ value: this.value, suggestion: { value: this.value } }]\n : undefined;\n else\n result =\n tokens.length == 0 || tokens[0].value != \":\"\n ? undefined\n : ((_d = this.value) === null || _d === void 0 ? void 0 : _d.startsWith((_f = (_e = tokens[1]) === null || _e === void 0 ? void 0 : _e.value) !== null && _f !== void 0 ? _f : \"\"))\n ? [Completion_1.Completion.prepend(\":\", { value: this.value, suggestion: { value: this.value } })]\n : undefined;\n return [\n ...(result !== null && result !== void 0 ? result : []),\n ...(type ? [] : String.completor)\n .flatMap(p => p(tokens, this, baseObject))\n .reduce((result, element) => result.some(p => p.value == element.value && p.cursor == element.cursor) ? result : [...result, element], []),\n ];\n }\n isType(value) {\n return typeof value.value == \"string\";\n }\n static add(...pattern) {\n this.completor.push(...pattern);\n }\n static is(value) {\n return value instanceof String;\n }\n}\nexports.String = String;\nString.completor = [];\n//# sourceMappingURL=String.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Union = void 0;\nconst Base_1 = require(\"./Base\");\nclass Union extends Base_1.Base {\n constructor(type) {\n super();\n this.type = type;\n this.class = \"union\";\n }\n complete(input, baseObject, type) {\n var _a;\n const tokens = typeof input == \"string\" ? this.tokenize(input) : input;\n return this.type ? (_a = this.type) === null || _a === void 0 ? void 0 : _a.flatMap(t => { var _a; return (_a = t === null || t === void 0 ? void 0 : t.complete(tokens, baseObject, type)) !== null && _a !== void 0 ? _a : []; }) : [];\n }\n isType(value) {\n return value instanceof Union;\n }\n static is(value) {\n return value instanceof Union;\n }\n}\nexports.Union = Union;\n//# sourceMappingURL=Union.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Type = void 0;\nconst Array_1 = require(\"./Array\");\nconst Boolean_1 = require(\"./Boolean\");\nconst Completion_1 = require(\"./Completion\");\nconst Completor_1 = require(\"./Completor\");\nconst Number_1 = require(\"./Number\");\nconst Object_1 = require(\"./Object\");\nconst String_1 = require(\"./String\");\nconst Union_1 = require(\"./Union\");\nvar Type;\n(function (Type) {\n function complete(template, input) {\n const completions = template.complete(input);\n return completions\n .filter(c => { var _a; return !input.includes(c.value) && ((_a = c.suggestion) === null || _a === void 0 ? void 0 : _a.value); })\n .map(c => {\n var _a, _b, _c;\n return ({\n full: c.value,\n cursor: (_a = c === null || c === void 0 ? void 0 : c.cursor) !== null && _a !== void 0 ? _a : c.value.length,\n addon: (_b = c === null || c === void 0 ? void 0 : c.suggestion) === null || _b === void 0 ? void 0 : _b.value,\n description: (_c = c === null || c === void 0 ? void 0 : c.suggestion) === null || _c === void 0 ? void 0 : _c.description,\n });\n });\n }\n Type.complete = complete;\n function convert(value) {\n let result;\n switch (typeof value) {\n case \"object\":\n result = global.Array.isArray(value)\n ? new Array_1.Array(value.map(e => convert(e)))\n : new Object_1.TObject(global.Object.entries(value).reduce((r, c) => {\n return Object.assign(Object.assign({}, r), { [c[0]]: convert(c[1]) });\n }, {}));\n break;\n case \"string\":\n result = new String_1.String(value);\n break;\n default:\n result = new Number_1.Number(value);\n break;\n }\n return result;\n }\n Type.convert = convert;\n Type.Array = Array_1.Array;\n Type.Boolean = Boolean_1.Boolean;\n Type.Completion = Completion_1.Completion;\n Type.Object = Object_1.TObject;\n Type.String = String_1.String;\n Type.Number = Number_1.Number;\n Type.Union = Union_1.Union;\n Type.Completor = Completor_1.Completor;\n})(Type = exports.Type || (exports.Type = {}));\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.endsWith = exports.EndsWith = void 0;\nconst Rule_1 = require(\"./Rule\");\nconst Type_1 = require(\"./Type\");\nconst Completor_1 = require(\"./Type/Completor\");\nclass EndsWith extends Rule_1.Rule {\n constructor(needle) {\n super();\n this.needle = needle;\n this.precedence = Number.MAX_SAFE_INTEGER;\n this.class = \"EndsWith\";\n }\n is(value) {\n return typeof value == \"string\" && value.endsWith(this.needle);\n }\n toString() {\n return `*${this.needle}`;\n }\n}\nexports.EndsWith = EndsWith;\nfunction endsWith(needle, value) {\n const result = new EndsWith(needle);\n return value ? result.is(value) : result;\n}\nexports.endsWith = endsWith;\nfunction complete(tokens, string) {\n return Completor_1.Completor.expressions(tokens, (tokens) => {\n var _a, _b, _c, _d;\n return !tokens || (tokens[0].value == \"*\" && string.value && string.value.endsWith((_b = (_a = tokens[1]) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : \"\"))\n ? [Type_1.Type.Completion.prepend(\"*\", { value: (_c = string === null || string === void 0 ? void 0 : string.value) !== null && _c !== void 0 ? _c : \"\", suggestion: { value: (_d = string === null || string === void 0 ? void 0 : string.value) !== null && _d !== void 0 ? _d : \"\" } })]\n : [];\n }, { value: \"*\", suggestion: { value: \"*\", description: \"endswith\" } });\n}\nType_1.Type.String.add(complete);\n//# sourceMappingURL=EndsWith.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.every = exports.Every = void 0;\nconst Rule_1 = require(\"./Rule\");\nconst Type_1 = require(\"./Type\");\nconst Completor_1 = require(\"./Type/Completor\");\nclass Every extends Rule_1.Rule {\n constructor(criteria) {\n super();\n this.criteria = criteria;\n this.precedence = 100;\n this.class = \"Every\";\n }\n is(value) {\n return Array.isArray(value) && value.every(v => this.criteria.is(v));\n }\n toString() {\n return `every(${this.criteria.toString()})`;\n }\n}\nexports.Every = Every;\nfunction every(criteria, value) {\n const result = new Every((0, Rule_1.create)(criteria));\n return value ? result.is(value) : result;\n}\nexports.every = every;\nfunction complete(tokens, type) {\n const arrayArgumentor = (tokens) => type.array.some(Type_1.Type.String.is) && tokens\n ? type.array\n .filter(Type_1.Type.String.is)\n .map(p => p.complete([{ value: \":\" }, ...tokens]))\n .reduce((result, element) => Array.isArray(element) ? result.concat(element) : element ? [...result, element] : result, [])\n : !tokens && type.array.some(Type_1.Type.String.is)\n ? type.array.filter(Type_1.Type.String.is).map(e => { var _a; return ({ value: (_a = e === null || e === void 0 ? void 0 : e.value) !== null && _a !== void 0 ? _a : \"\" }); })\n : type.array.some(Type_1.Type.Number.is) && tokens\n ? type.array\n .filter(Type_1.Type.Number.is)\n .map(e => e.complete(tokens))\n .reduce((result, element) => Array.isArray(element) ? result.concat(element) : element ? [...result, element] : result, [])\n : !tokens && type.array.some(Type_1.Type.Number.is)\n ? type.array.filter(Type_1.Type.Number.is).map(e => { var _a; return ({ value: ((_a = e === null || e === void 0 ? void 0 : e.value) !== null && _a !== void 0 ? _a : \"\").toString() }); })\n : [];\n return Completor_1.Completor.functions(tokens, arrayArgumentor, {\n value: \"every()\",\n cursor: 6,\n suggestion: { value: \"every()\" },\n });\n}\nType_1.Type.Array.add(complete);\n//# sourceMappingURL=Every.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isType = exports.FunctionCall = void 0;\nconst Rule_1 = require(\"./Rule\");\nclass FunctionCall extends Rule_1.Rule {\n constructor(identifier, argument, definition) {\n super();\n this.identifier = identifier;\n this.argument = argument;\n this.definition = definition;\n this.precedence = 85;\n this.class = \"FunctionCall\";\n }\n is(value) {\n var _a, _b;\n return (_b = (_a = this.definition) === null || _a === void 0 ? void 0 : _a.is(value)) !== null && _b !== void 0 ? _b : true;\n }\n toString() {\n return `${this.identifier}(${this.argument.join(\", \")})`;\n }\n}\nexports.FunctionCall = FunctionCall;\nfunction isType(value) {\n return typeof value == \"object\" && (value === null || value === void 0 ? void 0 : value.class) == \"FunctionCall\";\n}\nexports.isType = isType;\n//# sourceMappingURL=FunctionCall.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Expression = void 0;\nclass Expression {\n stringify(precedence = 0) {\n let result = this.toString();\n if (this.precedence < precedence)\n result = \"(\" + result + \")\";\n return result;\n }\n}\nexports.Expression = Expression;\n//# sourceMappingURL=Expression.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Value = void 0;\nconst Expression_1 = require(\"./Expression\");\nclass Value extends Expression_1.Expression {\n constructor(value, name) {\n super();\n this.name = name;\n this.precedence = Value.precedence;\n this.class = \"Value\";\n if (typeof value == \"string\")\n this.value = isNaN(+value.replace(\",\", \".\")) ? value : +value.replace(\",\", \".\");\n else\n this.value = value;\n }\n toString() {\n var _a;\n return this.name ? `${(_a = this.name) === null || _a === void 0 ? void 0 : _a.toString()}.` + this.value.toString() : this.value.toString();\n }\n evaluate(variable) {\n return variable ? this.get(variable) : +this.value;\n }\n get(variable) {\n return typeof this.value == \"string\"\n ? +variable[this.value]\n : this.name && typeof this.value == \"object\"\n ? this.value.get(variable[this.name])\n : +this.value;\n }\n static create(value, name) {\n return new Value(value, name);\n }\n}\nexports.Value = Value;\nValue.precedence = 19;\n//# sourceMappingURL=Value.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.greaterThan = exports.GreaterThan = void 0;\nconst Rule_1 = require(\"./Rule\");\nconst Type_1 = require(\"./Type\");\nconst Value_1 = require(\"./Value\");\nclass GreaterThan extends Rule_1.Rule {\n constructor(value) {\n super();\n this.value = value;\n this.precedence = 85;\n this.class = \"GreaterThan\";\n this.symbol = \">\";\n }\n is(value, object) {\n return ((isNaN(+value) ? value : +value) >\n ((this.value instanceof Value_1.Value && typeof this.value.value == \"string\" && this.value.value.includes(\"-\")) ||\n typeof this.value != \"object\"\n ? this.value\n : this.value.evaluate(object)));\n }\n toString() {\n return this.value.toString();\n }\n}\nexports.GreaterThan = GreaterThan;\nfunction greaterThan(criteria, value) {\n const result = new GreaterThan(criteria);\n return value ? result.is(value) : result;\n}\nexports.greaterThan = greaterThan;\nfunction complete(tokens, type, baseObject) {\n return Type_1.Type.Completor.operators(tokens, (tokens) => (tokens && baseObject ? baseObject === null || baseObject === void 0 ? void 0 : baseObject.complete(tokens, undefined, type) : []), {\n value: \">\",\n suggestion: { value: \">\" },\n });\n}\nType_1.Type.Number.add(complete);\nType_1.Type.String.add(complete);\n//# sourceMappingURL=GreaterThan.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.greaterThanOrEqual = exports.GreaterThanOrEqual = void 0;\nconst Rule_1 = require(\"./Rule\");\nconst Type_1 = require(\"./Type\");\nconst Value_1 = require(\"./Value\");\nclass GreaterThanOrEqual extends Rule_1.Rule {\n constructor(value) {\n super();\n this.value = value;\n this.precedence = 85;\n this.class = \"GreaterThanOrEqual\";\n this.symbol = \">=\";\n }\n is(value, object) {\n return ((isNaN(+value) ? value : +value) >=\n ((this.value instanceof Value_1.Value && typeof this.value.value == \"string\" && this.value.value.includes(\"-\")) ||\n typeof this.value != \"object\"\n ? this.value\n : this.value.evaluate(object)));\n }\n toString() {\n return this.value.toString();\n }\n}\nexports.GreaterThanOrEqual = GreaterThanOrEqual;\nfunction greaterThanOrEqual(criteria, value) {\n const result = new GreaterThanOrEqual(criteria);\n return value ? result.is(value) : result;\n}\nexports.greaterThanOrEqual = greaterThanOrEqual;\nfunction complete(tokens, type, baseObject) {\n return Type_1.Type.Completor.operators(tokens, (tokens) => (tokens && baseObject ? baseObject === null || baseObject === void 0 ? void 0 : baseObject.complete(tokens, undefined, type) : []), {\n value: \">=\",\n suggestion: { value: \">=\" },\n });\n}\nType_1.Type.Number.add(complete);\nType_1.Type.String.add(complete);\n//# sourceMappingURL=GreaterThanOrEqual.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.has = exports.Has = void 0;\nconst Rule_1 = require(\"./Rule\");\nconst Type_1 = require(\"./Type\");\nconst Completor_1 = require(\"./Type/Completor\");\nclass Has extends Rule_1.Rule {\n constructor(property) {\n super();\n this.property = property;\n this.precedence = 85;\n this.class = \"Has\";\n }\n is(value, property) {\n return typeof value == \"object\" && value\n ? Object.entries(value).some(e => {\n property = typeof property == \"string\" ? property : this.property;\n return e[0] == property\n ? true\n : typeof e[1] == \"object\" && e[1]\n ? this.is(e[1], property.includes(\".\") && property.split(\".\")[0] == e[0] ? property.split(\".\")[1] : undefined)\n : false;\n })\n : false;\n }\n toString() {\n return `has(${this.property})`;\n }\n}\nexports.Has = Has;\nfunction has(criteria, value) {\n const result = new Has(criteria);\n return value ? result.is(value) : result;\n}\nexports.has = has;\nfunction complete(tokens, type, baseObject) {\n return baseObject && (type === null || type === void 0 ? void 0 : type.class) == \"object\"\n ? Completor_1.Completor.functions(tokens, (tokens) => type.completions.filter(c => c.value.startsWith(tokens ? tokens[0].value : \"\")), {\n value: \"has()\",\n cursor: 4,\n suggestion: { value: \"has()\" },\n })\n : [];\n}\nType_1.Type.Object.add(complete);\n//# sourceMappingURL=Has.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.includes = exports.Includes = void 0;\nconst Rule_1 = require(\"./Rule\");\nconst Type_1 = require(\"./Type\");\nconst Completor_1 = require(\"./Type/Completor\");\nclass Includes extends Rule_1.Rule {\n constructor(needle) {\n super();\n this.needle = needle;\n this.precedence = Number.MAX_SAFE_INTEGER;\n this.class = \"Includes\";\n }\n is(value) {\n return typeof value == \"string\" && value.includes(this.needle);\n }\n toString() {\n return `*${this.needle}*`;\n }\n}\nexports.Includes = Includes;\nfunction includes(needle, value) {\n const result = new Includes(needle);\n return value ? result.is(value) : result;\n}\nexports.includes = includes;\nfunction complete(tokens, string) {\n return Completor_1.Completor.expressions(tokens, (tokens) => {\n var _a, _b, _c;\n return !tokens ||\n (tokens.length == 3 && ((_a = string.value) === null || _a === void 0 ? void 0 : _a.includes(tokens[1].value)) && string.value != tokens[1].value) ||\n (tokens.length == 2 && tokens[0].value + tokens[1].value == \"**\")\n ? [\n Type_1.Type.Completion.prepend(\"*\", { value: (_b = string === null || string === void 0 ? void 0 : string.value) !== null && _b !== void 0 ? _b : \"\", suggestion: { value: (_c = string === null || string === void 0 ? void 0 : string.value) !== null && _c !== void 0 ? _c : \"\" } }, \"*\"),\n ]\n : tokens.length == 1 && tokens[0].value == \"*\"\n ? [{ value: \"**\", suggestion: { value: \"**\", description: \"includes\" } }]\n : [];\n }, { value: \"**\", cursor: 1, suggestion: { value: \"**\", description: \"includes\" } });\n}\nType_1.Type.String.add(complete);\n//# sourceMappingURL=Includes.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.some = exports.Some = void 0;\nconst Rule_1 = require(\"./Rule\");\nconst Type_1 = require(\"./Type\");\nclass Some extends Rule_1.Rule {\n constructor(criteria) {\n super();\n this.criteria = criteria;\n this.precedence = 100;\n this.class = \"Some\";\n }\n is(value) {\n return Array.isArray(value) && value.some(v => this.criteria.is(v));\n }\n toString() {\n return `some(${this.criteria.toString()})`;\n }\n}\nexports.Some = Some;\nfunction some(criteria, value) {\n const result = new Some((0, Rule_1.create)(criteria));\n return value ? result.is(value) : result;\n}\nexports.some = some;\nfunction complete(tokens, type, baseObject) {\n return tokens.length == 0\n ? [{ value: \":\", suggestion: { value: \":\" } }]\n : tokens[0].value != \":\"\n ? []\n : tokens.length == 1 && tokens[0].value == \":\"\n ? Type_1.Type.Completion.prepend(\":\", type.array\n .filter(Type_1.Type.String.is)\n .filter(e => e.value && e.value != \"string\")\n .map(e => { var _a, _b; return ({ value: (_a = e === null || e === void 0 ? void 0 : e.value) !== null && _a !== void 0 ? _a : \"\", suggestion: { value: (_b = e === null || e === void 0 ? void 0 : e.value) !== null && _b !== void 0 ? _b : \"\" } }); }))\n : tokens.length == 2 && tokens[0].value == \":\"\n ? Type_1.Type.Completion.prepend(\":\", type.array\n .filter(Type_1.Type.String.is)\n .filter(e => e.value && e.value != \"string\" && e.value.startsWith(tokens[1].value))\n .map(e => { var _a, _b; return ({ value: (_a = e === null || e === void 0 ? void 0 : e.value) !== null && _a !== void 0 ? _a : \"\", suggestion: { value: (_b = e === null || e === void 0 ? void 0 : e.value) !== null && _b !== void 0 ? _b : \"\" } }); }))\n : [];\n}\nType_1.Type.Array.add(complete);\n//# sourceMappingURL=Some.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.is = exports.Is = void 0;\nconst Criteria_1 = require(\"./Criteria\");\nconst Rule_1 = require(\"./Rule\");\nconst Some_1 = require(\"./Some\");\nclass Is extends Rule_1.Rule {\n constructor(value) {\n super();\n this.value = value;\n this.precedence = Number.MAX_SAFE_INTEGER;\n this.class = \"Is\";\n this.symbol = \":\";\n }\n is(value, object) {\n return Array.isArray(value) && (0, Criteria_1.isCriteria)(this.value)\n ? (0, Some_1.some)(this.value, value)\n : (typeof value == \"boolean\" ? value.toString() : isNaN(+value) ? value : +value) ==\n (typeof this.value == \"object\" ? this.value.evaluate(object) : this.value);\n }\n toString() {\n return this.value.toString();\n }\n}\nexports.Is = Is;\nfunction is(criteria, value) {\n const result = new Is(criteria);\n return value ? result.is(value) : result;\n}\nexports.is = is;\n(0, Rule_1.add)(criteria => typeof criteria == \"bigint\" ||\n typeof criteria == \"boolean\" ||\n typeof criteria == \"number\" ||\n typeof criteria == \"string\"\n ? new Is(criteria)\n : undefined);\n//# sourceMappingURL=Is.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lesserThan = exports.LesserThan = void 0;\nconst Rule_1 = require(\"./Rule\");\nconst Type_1 = require(\"./Type\");\nconst Value_1 = require(\"./Value\");\nclass LesserThan extends Rule_1.Rule {\n constructor(value) {\n super();\n this.value = value;\n this.precedence = 85;\n this.class = \"LesserThan\";\n this.symbol = \"<\";\n }\n is(value, object) {\n return ((isNaN(+value) ? value : +value) <\n ((this.value instanceof Value_1.Value && typeof this.value.value == \"string\" && this.value.value.includes(\"-\")) ||\n typeof this.value != \"object\"\n ? this.value\n : this.value.evaluate(object)));\n }\n toString() {\n return this.value.toString();\n }\n}\nexports.LesserThan = LesserThan;\nfunction lesserThan(criteria, value) {\n const result = new LesserThan(criteria);\n return value ? result.is(value) : result;\n}\nexports.lesserThan = lesserThan;\nfunction complete(tokens, type, baseObject) {\n return Type_1.Type.Completor.operators(tokens, (tokens) => (tokens && baseObject ? baseObject === null || baseObject === void 0 ? void 0 : baseObject.complete(tokens, undefined, type) : []), {\n value: \"<\",\n suggestion: { value: \"<\" },\n });\n}\nType_1.Type.Number.add(complete);\nType_1.Type.String.add(complete);\n//# sourceMappingURL=LesserThan.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lesserThanOrEqual = exports.LesserThanOrEqual = void 0;\nconst Rule_1 = require(\"./Rule\");\nconst Type_1 = require(\"./Type\");\nconst Value_1 = require(\"./Value\");\nclass LesserThanOrEqual extends Rule_1.Rule {\n constructor(value) {\n super();\n this.value = value;\n this.precedence = 85;\n this.class = \"LesserThanOrEqual\";\n this.symbol = \"<=\";\n }\n is(value, object) {\n return ((isNaN(+value) ? value : +value) <=\n ((this.value instanceof Value_1.Value && typeof this.value.value == \"string\" && this.value.value.includes(\"-\")) ||\n typeof this.value != \"object\"\n ? this.value\n : this.value.evaluate(object)));\n }\n toString() {\n return this.value.toString();\n }\n}\nexports.LesserThanOrEqual = LesserThanOrEqual;\nfunction lesserThanOrEqual(criteria, value) {\n const result = new LesserThanOrEqual(criteria);\n return value ? result.is(value) : result;\n}\nexports.lesserThanOrEqual = lesserThanOrEqual;\nfunction complete(tokens, type, baseObject) {\n return Type_1.Type.Completor.operators(tokens, (tokens) => (tokens && baseObject ? baseObject === null || baseObject === void 0 ? void 0 : baseObject.complete(tokens, undefined, type) : []), {\n value: \"<=\",\n suggestion: { value: \"<=\" },\n });\n}\nType_1.Type.Number.add(complete);\nType_1.Type.String.add(complete);\n//# sourceMappingURL=LesserThanOrEqual.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.match = exports.Match = void 0;\nconst Rule_1 = require(\"./Rule\");\nconst Type_1 = require(\"./Type\");\nconst Completor_1 = require(\"./Type/Completor\");\nclass Match extends Rule_1.Rule {\n constructor(criteria) {\n super();\n this.criteria = criteria;\n this.precedence = Number.MAX_SAFE_INTEGER;\n this.class = \"Match\";\n }\n is(value) {\n return typeof value == \"string\" && this.criteria.test(value);\n }\n toString() {\n return `/${this.criteria}/`;\n }\n}\nexports.Match = Match;\nfunction match(criteria) {\n return new Match(criteria);\n}\nexports.match = match;\nfunction complete(tokens, string) {\n return Completor_1.Completor.expressions(tokens, (tokens) => {\n return tokens && (tokens === null || tokens === void 0 ? void 0 : tokens.length) == 1 && tokens[0].value == \"/\" ? [{ value: \"//\", cursor: 1 }] : [];\n }, { value: \"//\", cursor: 1, suggestion: { value: \"//\", description: \"match\" } });\n}\nType_1.Type.String.add(complete);\n//# sourceMappingURL=Match.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.not = exports.Not = void 0;\nconst Rule_1 = require(\"./Rule\");\nconst Type_1 = require(\"./Type\");\nconst Completor_1 = require(\"./Type/Completor\");\nclass Not extends Rule_1.Rule {\n constructor(criteria) {\n super();\n this.criteria = criteria;\n this.precedence = Not.precedence;\n this.class = \"Not\";\n }\n is(value) {\n return !this.criteria.is(value);\n }\n toString() {\n return `!${this.criteria.stringify(this.precedence)}`;\n }\n}\nexports.Not = Not;\nNot.precedence = 90;\nfunction not(criteria, value) {\n const result = new Not((0, Rule_1.create)(criteria));\n return value ? result.is(value) : result;\n}\nexports.not = not;\nfunction complete(tokens, type, baseObject) {\n return type && type.class != \"object\" && baseObject\n ? Completor_1.Completor.expressions(tokens, (tokens) => {\n return tokens[0].value != \"!\"\n ? []\n : Type_1.Type.Completion.prepend(\"!\", type.complete(tokens.slice(1), baseObject, type));\n }, { value: \"!\", cursor: 1, suggestion: { value: \"!\", description: \"not\" } })\n : [];\n}\nType_1.Type.String.add(complete);\nType_1.Type.Number.add(complete);\nType_1.Type.Boolean.add(complete);\nType_1.Type.Object.add(complete);\n//# sourceMappingURL=Not.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.or = exports.Or = void 0;\nconst Rule_1 = require(\"./Rule\");\nconst Type_1 = require(\"./Type\");\nclass Or extends Rule_1.Rule {\n constructor(criterias) {\n super();\n this.precedence = Or.precedence;\n this.class = \"Or\";\n this.criteria = criterias.reduce((r, c) => (c instanceof Or ? [...r, ...c.criteria] : [...r, c]), []);\n }\n is(value) {\n return this.criteria.some(c => c.is(value));\n }\n toString() {\n return this.criteria.map(c => c.stringify(this.precedence)).join(\" | \");\n }\n}\nexports.Or = Or;\nOr.precedence = 30;\nfunction or(...criterias) {\n return new Or(criterias.map(Rule_1.create));\n}\nexports.or = or;\nfunction complete(tokens, type, baseObject) {\n return Type_1.Type.Completor.operators(tokens, (tokens) => (tokens && baseObject ? baseObject === null || baseObject === void 0 ? void 0 : baseObject.complete(tokens, undefined, undefined) : []), {\n value: \" | \",\n suggestion: { value: \"|\", description: \"or\" },\n });\n}\nType_1.Type.Number.addArgument(complete);\n//# sourceMappingURL=Or.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Source = void 0;\nconst mend_1 = require(\"@cogneco/mend\");\nclass Source extends mend_1.Utilities.BufferedEnumerator {\n constructor(tokens, errorHandler) {\n super(Array.isArray(tokens) ? new mend_1.Utilities.ArrayEnumerator(tokens) : tokens);\n this.errorHandler = errorHandler;\n }\n clone(start = \"(\", end = \")\") {\n let nestingCount = 0;\n return new Source(new mend_1.Utilities.Enumerator(() => {\n let result;\n if (this.peekIs(start))\n nestingCount++;\n else if (this.peekIs(end))\n nestingCount--;\n if (nestingCount >= 0)\n result = this.fetch();\n return result;\n }), this);\n }\n peekIs(...needles) {\n return needles.every((needle, index) => {\n const peeked = this.peek(index);\n return peeked && peeked.value && Source.is(needle, peeked.value);\n });\n }\n fetchIf(...needles) {\n const result = [];\n if (this.peekIs(...needles))\n needles.forEach(_ => result.push(this.fetch()));\n return needles.length == 1\n ? result.length == 1\n ? result[0]\n : undefined\n : needles.length == result.length\n ? result\n : undefined;\n }\n mark() {\n return mend_1.Utilities.Enumerable.from(mend_1.Utilities.Enumerable.empty);\n }\n raise(message, level = mend_1.Error.Level.Critical, type = \"grammatical\", region) {\n if (typeof message == \"string\") {\n if (!region && this.last)\n region = this.last.region;\n message = new mend_1.Error.Message(message, level, type, region);\n }\n this.errorHandler.raise(message);\n }\n static is(needle, value) {\n return Array.isArray(needle)\n ? needle.some(n => Source.is(n, value))\n : typeof needle != \"string\"\n ? needle.test(value)\n : needle.startsWith(\"!\") && needle != \"!\"\n ? !Source.is(needle.substring(1), value)\n : needle == \"any\"\n ? Source.symbol.every(s => s != value)\n : needle == \"symbol\"\n ? Source.symbol.some(s => s == value)\n : needle == \"identifier\"\n ? /[A-Za-z][A-Za-z0-9_]*/.test(value)\n : needle == value;\n }\n}\nexports.Source = Source;\nSource.wildcard = [\"*\", \"?\"];\nSource.separator = [\"(\", \")\", \".\"];\nSource.operator = [\"!\", \"|\"];\nSource.comparator = [\"<\", \"<=\", \">\", \">=\", \":\"];\nSource.binaryOperator = [\" * \", \" + \", \" - \"];\nSource.symbol = [...Source.wildcard, ...Source.separator, ...Source.operator, ...Source.comparator];\n//# sourceMappingURL=Source.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.add = exports.parseNext = exports.parse = void 0;\nconst mend_1 = require(\"@cogneco/mend\");\nconst And_1 = require(\"../And\");\nconst lexer = require(\"../lexer\");\nconst Or_1 = require(\"../Or\");\nconst Rule_1 = require(\"../Rule\");\nconst Source_1 = require(\"./Source\");\nfunction parse(source, handler) {\n if (typeof source == \"string\") {\n handler = handler || new mend_1.Error.ConsoleHandler();\n const tokens = lexer.tokenize(source, handler).toArray();\n source = new Source_1.Source(tokens, handler);\n }\n handler = handler instanceof Rule_1.Rule ? handler : undefined;\n const result = [];\n while (source.peek()) {\n if (source.fetchIf(\"|\"))\n result[result.length - 1] = new Or_1.Or([result[result.length - 1], parseNext(0, source)]);\n else\n result.push(parseNext(0, source));\n }\n return result.length == 1 ? result[0] : new And_1.And(result);\n}\nexports.parse = parse;\nfunction parseNext(previous, source) {\n let result;\n const precedenceTest = typeof previous == \"number\" ? p => previous < p : p => previous.precedence > p;\n const left = typeof previous == \"number\" ? undefined : previous;\n for (const parser of parsers)\n if (precedenceTest(parser[1] || Number.MAX_SAFE_INTEGER)) {\n const r = parser[0](source, left);\n if (r) {\n result = parseNext(r, source);\n break;\n }\n }\n return result || left || new And_1.And([]);\n}\nexports.parseNext = parseNext;\nconst parsers = [];\nfunction add(parser, precedence) {\n parsers.push([parser, precedence]);\n}\nexports.add = add;\n//# sourceMappingURL=parse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.addExpression = exports.parseNextExpression = exports.parseExpression = void 0;\nconst mend_1 = require(\"@cogneco/mend\");\nconst Expression_1 = require(\"../Expression\");\nconst lexer = require(\"../lexer\");\nconst Value_1 = require(\"../Value\");\nconst Source_1 = require(\"./Source\");\nfunction parseExpression(source, handler) {\n if (typeof source == \"string\") {\n handler = handler || new mend_1.Error.ConsoleHandler();\n const tokens = lexer.tokenize(source, handler).toArray();\n source = new Source_1.Source(tokens, handler);\n }\n handler = handler instanceof Expression_1.Expression ? handler : undefined;\n let result;\n let algebra = false;\n let comparator = false;\n while (!result != algebra && !comparator && source.peek()) {\n let i = 1;\n algebra = false;\n comparator = false;\n while (!algebra && !comparator && source.peek(i)) {\n algebra = Source_1.Source.binaryOperator.some(c => { var _a; return ((_a = source.peek(i)) === null || _a === void 0 ? void 0 : _a.value) == c; });\n comparator = Source_1.Source.comparator.some(c => { var _a; return ((_a = source.peek(i)) === null || _a === void 0 ? void 0 : _a.value) == c; });\n i++;\n }\n result = parseNextExpression(result !== null && result !== void 0 ? result : Number.MAX_SAFE_INTEGER, source);\n }\n if (!result)\n source.raise(\"Missing Expression\");\n return result !== null && result !== void 0 ? result : new Value_1.Value(NaN);\n}\nexports.parseExpression = parseExpression;\nfunction parseNextExpression(previous, source) {\n let result;\n const left = typeof previous == \"number\" ? undefined : previous;\n for (const expressionParser of expressionParsers) {\n const r = expressionParser[0](source, previous);\n if (r) {\n result = r;\n break;\n }\n }\n return result || left;\n}\nexports.parseNextExpression = parseNextExpression;\nconst expressionParsers = [];\nfunction addExpression(expressionParser, precedence) {\n expressionParsers.push([expressionParser, precedence]);\n}\nexports.addExpression = addExpression;\n//# sourceMappingURL=Expression.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Every_1 = require(\"../Every\");\nconst parse_1 = require(\"./parse\");\n(0, parse_1.add)(source => {\n const result = source.fetchIf(\":\", \"every\", \"(\") && new Every_1.Every((0, parse_1.parse)(source.clone()));\n if (result && !source.fetchIf(\")\"))\n source.raise(\"Missing end of parenthesis.\");\n return result;\n});\n//# sourceMappingURL=Every.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Some_1 = require(\"../Some\");\nconst parse_1 = require(\"./parse\");\n(0, parse_1.add)(source => {\n const result = source.fetchIf(\":\", \"some\", \"(\") && new Some_1.Some((0, parse_1.parse)(source.clone()));\n if (result && !source.fetchIf(\")\"))\n source.raise(\"Missing end of parenthesis.\");\n return result;\n});\n//# sourceMappingURL=Some.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Expression_1 = require(\"./Expression\");\nconst parse_1 = require(\"./parse\");\n(0, parse_1.add)(getAdder(parse_1.parse));\n(0, Expression_1.addExpression)(getAdder(Expression_1.parseExpression));\nfunction getAdder(parser) {\n return (source) => {\n const result = source.fetchIf(\"(\") && parser(source.clone());\n if (result && !source.fetchIf(\")\"))\n source.raise(\"Missing end of parenthesis.\");\n return result;\n };\n}\n//# sourceMappingURL=group.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst GreaterThan_1 = require(\"../GreaterThan\");\nconst Expression_1 = require(\"./Expression\");\nconst parse_1 = require(\"./parse\");\n(0, parse_1.add)(source => {\n return source.fetchIf(\">\") && new GreaterThan_1.GreaterThan((0, Expression_1.parseExpression)(source));\n});\n//# sourceMappingURL=GreaterThan.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst GreaterThanOrEqual_1 = require(\"../GreaterThanOrEqual\");\nconst Expression_1 = require(\"./Expression\");\nconst parse_1 = require(\"./parse\");\n(0, parse_1.add)(source => {\n return source.fetchIf(\">=\") && new GreaterThanOrEqual_1.GreaterThanOrEqual((0, Expression_1.parseExpression)(source));\n});\n//# sourceMappingURL=GreaterThanOrEqual.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst LesserThan_1 = require(\"../LesserThan\");\nconst Expression_1 = require(\"./Expression\");\nconst parse_1 = require(\"./parse\");\n(0, parse_1.add)(source => {\n return source.fetchIf(\"<\") && new LesserThan_1.LesserThan((0, Expression_1.parseExpression)(source));\n});\n//# sourceMappingURL=LesserThan.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst LesserThanOrEqual_1 = require(\"../LesserThanOrEqual\");\nconst Expression_1 = require(\"./Expression\");\nconst parse_1 = require(\"./parse\");\n(0, parse_1.add)(source => {\n return source.fetchIf(\"<=\") && new LesserThanOrEqual_1.LesserThanOrEqual((0, Expression_1.parseExpression)(source));\n});\n//# sourceMappingURL=LesserThanOrEqual.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Not_1 = require(\"../Not\");\nconst parse_1 = require(\"./parse\");\n(0, parse_1.add)(source => source.fetchIf(\"!\") && new Not_1.Not((0, parse_1.parseNext)(Not_1.Not.precedence, source)));\n//# sourceMappingURL=Not.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Has_1 = require(\"../Has\");\nconst parse_1 = require(\"./parse\");\n(0, parse_1.add)(source => {\n const fetched = source.fetchIf(\"has\", \"(\", \"any\", \")\") || source.fetchIf(\":\", \"has\", \"(\", \"any\", \")\");\n return fetched && new Has_1.Has(fetched.length == 4 ? fetched[2].value : fetched[3].value);\n});\n//# sourceMappingURL=Has.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.within = exports.Within = void 0;\nconst Rule_1 = require(\"./Rule\");\nconst Type_1 = require(\"./Type\");\nconst Completor_1 = require(\"./Type/Completor\");\nclass Within extends Rule_1.Rule {\n constructor(value) {\n super();\n this.value = value;\n this.precedence = 85;\n this.class = \"Within\";\n }\n is(value) {\n return this.value.includes(value);\n }\n toString() {\n return `within(${this.value.join(\", \")})`;\n }\n}\nexports.Within = Within;\nfunction within(criteria, value) {\n const result = new Within(criteria);\n return value ? result.is(value) : result;\n}\nexports.within = within;\nfunction complete(tokens, type, baseObject) {\n return baseObject && (type === null || type === void 0 ? void 0 : type.class)\n ? Completor_1.Completor.functions(tokens, (tokens) => [], {\n value: \"within()\",\n cursor: 7,\n suggestion: { value: \"within()\" },\n })\n : [];\n}\nType_1.Type.String.add(complete);\nType_1.Type.Number.add(complete);\n//# sourceMappingURL=Within.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Within_1 = require(\"../Within\");\nconst parse_1 = require(\"./parse\");\n(0, parse_1.add)(source => {\n var _a, _b, _c, _d;\n const fetched = source.fetchIf(\":\", \"within\", \"(\");\n let parameters;\n if (fetched && source.peek()) {\n parameters = [(_b = (_a = source.fetch()) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : \"\"];\n while (source.fetchIf(\",\"))\n parameters.push((_d = (_c = source.fetchIf(\"any\")) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : \"\");\n if (!source.fetchIf(\")\"))\n source.raise(\"Missing end of parenthesis.\");\n }\n return fetched && parameters ? new Within_1.Within(parameters) : undefined;\n});\n//# sourceMappingURL=Within.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst FunctionCall_1 = require(\"../FunctionCall\");\nconst parse_1 = require(\"./parse\");\n(0, parse_1.add)(source => {\n var _a, _b, _c, _d, _e, _f;\n const peek = (_a = source.peek(3)) === null || _a === void 0 ? void 0 : _a.value;\n const fetched = [\")\", \",\", \"(\"].find(s => s == peek) || ((_b = source.peek(2)) === null || _b === void 0 ? void 0 : _b.value) == \")\" ? source.fetchIf(\"identifier\", \"(\") : undefined;\n let parameters;\n if (fetched && source.peek()) {\n parameters = [(_d = (_c = source.fetchIf(/[A-Za-z0-9_\\.\\-]+/)) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : \"\"];\n while (source.fetchIf(\",\"))\n parameters.push((_f = (_e = source.fetchIf(/[A-Za-z0-9_\\.\\-]+/)) === null || _e === void 0 ? void 0 : _e.value) !== null && _f !== void 0 ? _f : \"\");\n if (!source.fetchIf(\")\"))\n source.raise(\"Missing end of parenthesis.\");\n }\n return fetched && parameters ? new FunctionCall_1.FunctionCall(fetched[0].value, parameters) : undefined;\n});\n//# sourceMappingURL=FunctionCall.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.property = exports.Property = void 0;\nconst And_1 = require(\"./And\");\nconst Rule_1 = require(\"./Rule\");\nclass Property extends Rule_1.Rule {\n constructor(name, criteria) {\n super();\n this.name = name;\n this.criteria = criteria;\n this.precedence = Property.precedence;\n this.class = \"Property\";\n this.symbol = \".\";\n }\n is(value, object) {\n return typeof value == \"object\" && this.criteria.is(value[this.name], object !== null && object !== void 0 ? object : value);\n }\n toString() {\n var _a;\n return `${this.name}${(_a = this.criteria.symbol) !== null && _a !== void 0 ? _a : \":\"}${this.criteria.stringify(this.precedence)}`;\n }\n}\nexports.Property = Property;\nProperty.precedence = 80;\nfunction property(name, criteria, value) {\n const result = (Array.isArray(name) ? name : [name]).reduceRight((r, p) => new Property(p, r), (0, Rule_1.create)(criteria));\n return value ? result.is(value) : result;\n}\nexports.property = property;\n(0, Rule_1.add)(criteria => typeof criteria == \"object\" && !(criteria instanceof Rule_1.Rule) && !Array.isArray(criteria)\n ? (0, And_1.and)(...Object.getOwnPropertyNames(criteria).map(p => property(p, criteria[p])))\n : undefined);\n//# sourceMappingURL=Property.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Property_1 = require(\"../Property\");\nconst parse_1 = require(\"./parse\");\nconst Source_1 = require(\"./Source\");\n(0, parse_1.add)(source => {\n const result = [];\n let fetched;\n while ((fetched = source.fetchIf(\"identifier\", \".\")))\n result.push(fetched[0].value);\n if (source.peekIs(\"identifier\", Source_1.Source.comparator) && (fetched = source.fetchIf(\"identifier\")))\n result.push(fetched.value);\n return result.length > 0\n ? result.reduceRight((r, name) => new Property_1.Property(name, r), (0, parse_1.parseNext)(Property_1.Property.precedence, source))\n : undefined;\n});\n//# sourceMappingURL=Property.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Includes_1 = require(\"../Includes\");\nconst parse_1 = require(\"./parse\");\n(0, parse_1.add)(source => {\n const fetched = source.fetchIf(\":\", \"*\", \"any\", \"*\") || source.fetchIf(\"*\", \"any\", \"*\");\n return fetched && new Includes_1.Includes(fetched.length == 4 ? fetched[2].value : fetched[1].value);\n});\n//# sourceMappingURL=Includes.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.startsWith = exports.StartsWith = void 0;\nconst Rule_1 = require(\"./Rule\");\nconst Type_1 = require(\"./Type\");\nconst Completor_1 = require(\"./Type/Completor\");\nclass StartsWith extends Rule_1.Rule {\n constructor(needle) {\n super();\n this.needle = needle;\n this.precedence = Number.MAX_SAFE_INTEGER;\n this.class = \"StartsWith\";\n }\n is(value) {\n return typeof value == \"string\" && value.startsWith(this.needle);\n }\n toString() {\n return `${this.needle}*`;\n }\n}\nexports.StartsWith = StartsWith;\nfunction startsWith(needle, value) {\n const result = new StartsWith(needle);\n return value ? result.is(value) : result;\n}\nexports.startsWith = startsWith;\nfunction complete(tokens, string) {\n return Completor_1.Completor.expressions(tokens, (tokens) => {\n var _a, _b, _c, _d;\n return !tokens ||\n (tokens.length == 1 && tokens[0].value == \"*\") ||\n (tokens.length == 2 &&\n tokens[1].value == \"*\" &&\n string.value &&\n string.value.startsWith((_b = (_a = tokens[0]) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : \"\"))\n ? [Type_1.Type.Completion.prepend(\"\", { value: (_c = string === null || string === void 0 ? void 0 : string.value) !== null && _c !== void 0 ? _c : \"\", suggestion: { value: (_d = string === null || string === void 0 ? void 0 : string.value) !== null && _d !== void 0 ? _d : \"\" } }, \"*\")]\n : [];\n }, { value: \"*\", cursor: 0, suggestion: { value: \"*\", description: \"startswith\" } });\n}\nType_1.Type.String.add(complete);\n//# sourceMappingURL=StartsWith.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst StartsWith_1 = require(\"../StartsWith\");\nconst parse_1 = require(\"./parse\");\n(0, parse_1.add)(source => {\n const fetched = source.fetchIf(\":\", \"any\", \"*\") || source.fetchIf(\"any\", \"*\");\n return fetched && new StartsWith_1.StartsWith((fetched === null || fetched === void 0 ? void 0 : fetched.length) == 3 ? fetched[1].value : fetched[0].value);\n});\n//# sourceMappingURL=StartsWith.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst EndsWith_1 = require(\"../EndsWith\");\nconst parse_1 = require(\"./parse\");\n(0, parse_1.add)(source => {\n const fetched = source.fetchIf(\":\", \"*\", \"any\") || source.fetchIf(\"*\", \"any\");\n return fetched && new EndsWith_1.EndsWith((fetched === null || fetched === void 0 ? void 0 : fetched.length) == 3 ? fetched[2].value : fetched[1].value);\n});\n//# sourceMappingURL=EndsWith.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InfixOperator = void 0;\nconst Expression_1 = require(\"./Expression\");\nconst Type_1 = require(\"./Type\");\nclass InfixOperator extends Expression_1.Expression {\n toString() {\n const symbol = this.symbol;\n return (this.left.stringify(InfixOperator.getPrecedence(symbol)) +\n ` ${symbol} ` +\n this.right.stringify(InfixOperator.getPrecedence(symbol)));\n }\n constructor(symbol, precedence, left, right) {\n super();\n this.precedence = precedence;\n this.left = left;\n this.right = right;\n this.class = \"InfixOperator\";\n this.symbol = symbol.replace(/ /g, \"\");\n }\n evaluate(criteria) {\n let result;\n switch (this.getSymbol()) {\n case \"+\":\n result = this.left.evaluate(criteria) + this.right.evaluate(criteria);\n break;\n case \"-\":\n result = this.left.evaluate(criteria) - this.right.evaluate(criteria);\n break;\n case \"*\":\n result = this.left.evaluate(criteria) * this.right.evaluate(criteria);\n break;\n default:\n result = NaN;\n break;\n }\n return result;\n }\n getSymbol() {\n return this.symbol;\n }\n stringify(precedence = 0) {\n let result = this.toString();\n if (this.precedence < precedence)\n result = \"(\" + result + \")\";\n return result;\n }\n static getPrecedence(symbol) {\n let result;\n symbol = symbol === null || symbol === void 0 ? void 0 : symbol.replace(/ /g, \"\");\n switch (symbol) {\n case \"+\":\n result = 14;\n break;\n case \"-\":\n result = 15;\n break;\n case \"*\":\n result = 16;\n break;\n default:\n result = undefined;\n break;\n }\n return result;\n }\n static create(symbol, left, right) {\n let result;\n const fallback = new InfixOperator(\"+\", 14, left, right);\n const precedence = InfixOperator.getPrecedence(symbol);\n if (precedence)\n result = new InfixOperator(symbol, precedence, left, right);\n return result || fallback;\n }\n}\nexports.InfixOperator = InfixOperator;\nfunction complete(tokens, type, baseObject) {\n return [\" + \", \" - \", \" * \"]\n .map(s => ({ value: s, suggestion: { value: s } }))\n .map(c => Type_1.Type.Completor.operators(tokens, (tokens) => (tokens ? baseObject.complete(tokens, undefined, type) : []), c))\n .reduce((result, element) => result.concat(element), []);\n}\nType_1.Type.Number.addArgument(complete);\n//# sourceMappingURL=InfixOperator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst InfixOperator_1 = require(\"../InfixOperator\");\nconst Expression_1 = require(\"./Expression\");\nconst Source_1 = require(\"./Source\");\n(0, Expression_1.addExpression)((source, previous) => {\n var _a, _b;\n let result;\n const symbol = source.peekIs(Source_1.Source.binaryOperator) && source.fetch().value;\n let precedence;\n if (symbol && typeof previous == \"object\") {\n let right;\n let nextPrecedence;\n let i = 0;\n precedence = InfixOperator_1.InfixOperator.getPrecedence(symbol);\n while (!nextPrecedence && source.peek(i)) {\n nextPrecedence =\n ((_a = source.peek(i)) === null || _a === void 0 ? void 0 : _a.value) == \"(\" ? Number.MAX_SAFE_INTEGER : InfixOperator_1.InfixOperator.getPrecedence((_b = source.peek(i)) === null || _b === void 0 ? void 0 : _b.value);\n i++;\n }\n if (nextPrecedence && precedence < nextPrecedence) {\n right = (0, Expression_1.parseNextExpression)(precedence, source);\n if (!right) {\n source.raise(\"Missing right hand side of \" + symbol);\n }\n }\n else\n right = (0, Expression_1.parseNextExpression)(NaN, source);\n if ((nextPrecedence && precedence == nextPrecedence) || nextPrecedence == Number.MAX_SAFE_INTEGER) {\n result = (0, Expression_1.parseNextExpression)(new InfixOperator_1.InfixOperator(symbol, precedence, previous, right), source);\n }\n else\n result = new InfixOperator_1.InfixOperator(symbol, precedence, previous, right);\n }\n return result;\n});\n//# sourceMappingURL=InfixOperator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Value_1 = require(\"../Value\");\nconst Expression_1 = require(\"./Expression\");\n(0, Expression_1.addExpression)((source, previous) => {\n const fetchedArray = [];\n let fetched;\n while ((fetched = source.fetchIf(\"identifier\", \".\")))\n fetchedArray.push(fetched[0].value);\n let result;\n if (fetchedArray.length == 0) {\n fetched = source.fetchIf(\"any\", \".\", \"any\") || source.fetchIf(\"any\", \",\", \"any\") || source.fetchIf(\"any\");\n result =\n fetched &&\n (Array.isArray(fetched)\n ? new Value_1.Value(+fetched.map(t => t.value.replace(\",\", \".\")).join(\"\"))\n : new Value_1.Value(fetched.value));\n }\n else {\n fetched = source.fetchIf(\"identifier\");\n const fetchedValue = new Value_1.Value(fetched ? fetched.value : 0);\n result =\n fetchedArray.length > 0\n ? fetchedArray.reduceRight((r, name) => new Value_1.Value(isNaN(+r) ? r : +r, name), fetchedValue)\n : undefined;\n }\n if (result && typeof previous == \"number\" && !isNaN(previous) && previous != Number.MAX_SAFE_INTEGER)\n result = (0, Expression_1.parseNextExpression)(result, source);\n return result;\n});\n//# sourceMappingURL=Value.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Is_1 = require(\"../Is\");\nconst Expression_1 = require(\"./Expression\");\nconst parse_1 = require(\"./parse\");\nconst Source_1 = require(\"./Source\");\n(0, parse_1.add)(source => {\n let expression;\n if (source.fetchIf(\":\")) {\n let algebra = false;\n let comparator = false;\n let i = 1;\n while (!algebra && !comparator && source.peek(i)) {\n algebra = Source_1.Source.binaryOperator.some(c => { var _a; return ((_a = source.peek(i)) === null || _a === void 0 ? void 0 : _a.value) == c; });\n comparator = Source_1.Source.comparator.some(c => { var _a; return ((_a = source.peek(i)) === null || _a === void 0 ? void 0 : _a.value) == c; });\n i++;\n }\n if (algebra)\n expression = (0, Expression_1.parseExpression)(source);\n }\n const fetched = source.fetchIf(\"any\");\n return expression ? new Is_1.Is(expression) : fetched && new Is_1.Is(fetched.value);\n});\n//# sourceMappingURL=Is.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst parse_1 = require(\"./parse\");\n(0, parse_1.add)(source => {\n source.raise(`Ignoring unknown token \"${source.fetch()}\"`);\n return undefined;\n});\n//# sourceMappingURL=ignore.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseExpression = exports.parse = void 0;\nvar parse_1 = require(\"./parse\");\nObject.defineProperty(exports, \"parse\", { enumerable: true, get: function () { return parse_1.parse; } });\nvar Expression_1 = require(\"./Expression\");\nObject.defineProperty(exports, \"parseExpression\", { enumerable: true, get: function () { return Expression_1.parseExpression; } });\nrequire(\"./Every\");\nrequire(\"./Some\");\nrequire(\"./group\");\nrequire(\"./GreaterThan\");\nrequire(\"./GreaterThanOrEqual\");\nrequire(\"./LesserThan\");\nrequire(\"./LesserThanOrEqual\");\nrequire(\"./Not\");\nrequire(\"./Has\");\nrequire(\"./Within\");\nrequire(\"./FunctionCall\");\nrequire(\"./Property\");\nrequire(\"./Includes\");\nrequire(\"./StartsWith\");\nrequire(\"./EndsWith\");\nrequire(\"./InfixOperator\");\nrequire(\"./Value\");\nrequire(\"./Is\");\nrequire(\"./ignore\");\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.add = exports.resolve = void 0;\nfunction resolve(definitions, rule, argument = { input: [], identifier: [] }) {\n var _a, _b;\n return (_b = (_a = resolvers[rule === null || rule === void 0 ? void 0 : rule.class]) === null || _a === void 0 ? void 0 : _a.call(resolvers, definitions, rule, argument)) !== null && _b !== void 0 ? _b : rule;\n}\nexports.resolve = resolve;\nconst resolvers = {};\nfunction add(className, resolver) {\n resolvers[className] = resolver;\n}\nexports.add = add;\n//# sourceMappingURL=resolve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst And_1 = require(\"../And\");\nconst resolve_1 = require(\"./resolve\");\n(0, resolve_1.add)(\"And\", (definitions, rule, argument) => new And_1.And(rule.rules.map(r => (0, resolve_1.resolve)(definitions, r, argument))));\n//# sourceMappingURL=And.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replace = void 0;\nvar replace;\n(function (replace) {\n function argument(value, argument) {\n var _a, _b;\n let result = undefined;\n let index;\n const parameter = typeof value == \"string\" ? value : value.toString();\n if (argument &&\n argument.input &&\n argument.identifier &&\n ((_a = argument === null || argument === void 0 ? void 0 : argument.input) === null || _a === void 0 ? void 0 : _a.length) > 0 &&\n ((_b = argument === null || argument === void 0 ? void 0 : argument.identifier) === null || _b === void 0 ? void 0 : _b.length) > 0 &&\n argument.identifier.includes(parameter)) {\n index = argument.identifier.indexOf(parameter);\n result = isNaN(+argument.input[index]) ? argument.input[index] : +argument.input[index];\n }\n return result;\n }\n replace.argument = argument;\n})(replace = exports.replace || (exports.replace = {}));\n//# sourceMappingURL=replace.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst EndsWith_1 = require(\"../EndsWith\");\nconst replace_1 = require(\"./replace\");\nconst resolve_1 = require(\"./resolve\");\n(0, resolve_1.add)(\"EndsWith\", (definitions, rule, argument) => {\n const parameter = replace_1.replace.argument(rule.needle, argument);\n return parameter\n ? new EndsWith_1.EndsWith(typeof parameter == \"object\" ? parameter.value.toString() : parameter.toString())\n : rule;\n});\n//# sourceMappingURL=Endswith.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Every_1 = require(\"../Every\");\nconst resolve_1 = require(\"./resolve\");\n(0, resolve_1.add)(\"Every\", (definitions, rule, argument) => {\n return new Every_1.Every((0, resolve_1.resolve)(definitions, rule.criteria, argument));\n});\n//# sourceMappingURL=Every.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst FunctionCall_1 = require(\"../FunctionCall\");\nconst parse_1 = require(\"../parse\");\nconst resolve_1 = require(\"./resolve\");\n(0, resolve_1.add)(\"FunctionCall\", (definitions, rule, argument) => {\n var _a, _b;\n const definition = definitions[rule.identifier];\n const definitionRule = definition ? (0, parse_1.parse)(definition.definition) : undefined;\n const property = definitionRule\n ? (0, resolve_1.resolve)(definitions, definitionRule, {\n input: (_a = argument === null || argument === void 0 ? void 0 : argument.input) === null || _a === void 0 ? void 0 : _a.concat(rule.argument),\n identifier: (_b = argument === null || argument === void 0 ? void 0 : argument.identifier) === null || _b === void 0 ? void 0 : _b.concat(definition.arguments),\n })\n : undefined;\n return new FunctionCall_1.FunctionCall(rule.identifier, rule.argument, property);\n});\n//# sourceMappingURL=FunctionCall.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst GreaterThan_1 = require(\"../GreaterThan\");\nconst replace_1 = require(\"./replace\");\nconst resolve_1 = require(\"./resolve\");\n(0, resolve_1.add)(\"GreaterThan\", (definitions, rule, argument) => {\n const parameter = replace_1.replace.argument(rule.value, argument);\n return parameter ? new GreaterThan_1.GreaterThan(parameter) : rule;\n});\n//# sourceMappingURL=GreaterThan.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst GreaterThanOrEqual_1 = require(\"../GreaterThanOrEqual\");\nconst replace_1 = require(\"./replace\");\nconst resolve_1 = require(\"./resolve\");\n(0, resolve_1.add)(\"GreaterThanOrEqual\", (definitions, rule, argument) => {\n const parameter = replace_1.replace.argument(rule.value, argument);\n return parameter ? new GreaterThanOrEqual_1.GreaterThanOrEqual(parameter) : rule;\n});\n//# sourceMappingURL=GreaterThanOrEqual.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Has_1 = require(\"../Has\");\nconst replace_1 = require(\"./replace\");\nconst resolve_1 = require(\"./resolve\");\n(0, resolve_1.add)(\"Has\", (definitions, rule, argument) => {\n const parameter = replace_1.replace.argument(rule.property, argument);\n return parameter ? new Has_1.Has(typeof parameter == \"object\" ? parameter.value.toString() : parameter.toString()) : rule;\n});\n//# sourceMappingURL=Has.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Includes_1 = require(\"../Includes\");\nconst replace_1 = require(\"./replace\");\nconst resolve_1 = require(\"./resolve\");\n(0, resolve_1.add)(\"Includes\", (definitions, rule, argument) => {\n const parameter = replace_1.replace.argument(rule.needle, argument);\n return parameter\n ? new Includes_1.Includes(typeof parameter == \"object\" ? parameter.value.toString() : parameter.toString())\n : rule;\n});\n//# sourceMappingURL=Includes.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst LesserThan_1 = require(\"../LesserThan\");\nconst replace_1 = require(\"./replace\");\nconst resolve_1 = require(\"./resolve\");\n(0, resolve_1.add)(\"LesserThan\", (definitions, rule, argument) => {\n const parameter = replace_1.replace.argument(rule.value, argument);\n return parameter ? new LesserThan_1.LesserThan(parameter) : rule;\n});\n//# sourceMappingURL=LesserThan.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst LesserThanOrEqual_1 = require(\"../LesserThanOrEqual\");\nconst replace_1 = require(\"./replace\");\nconst resolve_1 = require(\"./resolve\");\n(0, resolve_1.add)(\"LesserThanOrEqual\", (definitions, rule, argument) => {\n const parameter = replace_1.replace.argument(rule.value, argument);\n return parameter ? new LesserThanOrEqual_1.LesserThanOrEqual(parameter) : rule;\n});\n//# sourceMappingURL=LesserThanOrEqual.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Not_1 = require(\"../Not\");\nconst resolve_1 = require(\"./resolve\");\n(0, resolve_1.add)(\"Not\", (definitions, rule, argument) => {\n return new Not_1.Not((0, resolve_1.resolve)(definitions, rule.criteria, argument));\n});\n//# sourceMappingURL=Not.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Or_1 = require(\"../Or\");\nconst resolve_1 = require(\"./resolve\");\n(0, resolve_1.add)(\"Or\", (definitions, rule, argument) => new Or_1.Or(rule.criteria.map(r => (0, resolve_1.resolve)(definitions, r, argument))));\n//# sourceMappingURL=Or.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Property_1 = require(\"../Property\");\nconst resolve_1 = require(\"./resolve\");\n(0, resolve_1.add)(\"Property\", (definitions, rule, argument) => {\n return new Property_1.Property(rule.name, (0, resolve_1.resolve)(definitions, rule.criteria, argument));\n});\n//# sourceMappingURL=Property.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Some_1 = require(\"../Some\");\nconst resolve_1 = require(\"./resolve\");\n(0, resolve_1.add)(\"Some\", (definitions, rule, argument) => {\n return new Some_1.Some((0, resolve_1.resolve)(definitions, rule.criteria, argument));\n});\n//# sourceMappingURL=Some.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst StartsWith_1 = require(\"../StartsWith\");\nconst replace_1 = require(\"./replace\");\nconst resolve_1 = require(\"./resolve\");\n(0, resolve_1.add)(\"StartsWith\", (definitions, rule, argument) => {\n const parameter = replace_1.replace.argument(rule.needle, argument);\n return parameter\n ? new StartsWith_1.StartsWith(typeof parameter == \"object\" ? parameter.value.toString() : parameter.toString())\n : rule;\n});\n//# sourceMappingURL=Startswith.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Is_1 = require(\"../Is\");\nconst replace_1 = require(\"./replace\");\nconst resolve_1 = require(\"./resolve\");\n(0, resolve_1.add)(\"Is\", (definitions, rule, argument) => {\n const parameter = replace_1.replace.argument(rule.value, argument);\n return parameter ? new Is_1.Is(parameter) : rule;\n});\n//# sourceMappingURL=Is.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolve = void 0;\nvar resolve_1 = require(\"./resolve\");\nObject.defineProperty(exports, \"resolve\", { enumerable: true, get: function () { return resolve_1.resolve; } });\nrequire(\"./And\");\nrequire(\"./Endswith\");\nrequire(\"./Every\");\nrequire(\"./FunctionCall\");\nrequire(\"./GreaterThan\");\nrequire(\"./GreaterThanOrEqual\");\nrequire(\"./Has\");\nrequire(\"./Includes\");\nrequire(\"./LesserThan\");\nrequire(\"./LesserThanOrEqual\");\nrequire(\"./Not\");\nrequire(\"./Or\");\nrequire(\"./Property\");\nrequire(\"./Some\");\nrequire(\"./Startswith\");\nrequire(\"./Is\");\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Tuple = void 0;\nconst Rule_1 = require(\"./Rule\");\nclass Tuple extends Rule_1.Rule {\n constructor(criteria) {\n super();\n this.criteria = criteria;\n this.precedence = Number.MAX_SAFE_INTEGER;\n this.class = \"Tuple\";\n }\n is(value) {\n return this.criteria.length == value.length && this.criteria.every((c, index) => c.is(value[index]));\n }\n toString() {\n return `[${this.criteria.map(c => c.toString()).join(\", \")}]`;\n }\n}\nexports.Tuple = Tuple;\n(0, Rule_1.add)(criteria => (Array.isArray(criteria) ? new Tuple(criteria.map(Rule_1.create)) : undefined));\n//# sourceMappingURL=Tuple.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.within = exports.startsWith = exports.some = exports.resolve = exports.property = exports.parseExpression = exports.parse = exports.or = exports.not = exports.match = exports.is = exports.includes = exports.lesserThanOrEqual = exports.lesserThan = exports.greaterThanOrEqual = exports.greaterThan = exports.filter = exports.has = exports.every = exports.endsWith = exports.create = exports.and = exports.any = exports.Within = exports.Value = exports.Type = exports.Tuple = exports.StartsWith = exports.Some = exports.Rule = exports.Property = exports.Or = exports.Not = exports.Match = exports.Is = exports.Includes = exports.LesserThanOrEqual = exports.LesserThan = exports.GreaterThanOrEqual = exports.GreaterThan = exports.Has = exports.FunctionCall = exports.Every = exports.EndsWith = exports.Criteria = exports.Any = exports.And = void 0;\nrequire(\"./Always\");\nconst And_1 = require(\"./And\");\nObject.defineProperty(exports, \"And\", { enumerable: true, get: function () { return And_1.And; } });\nObject.defineProperty(exports, \"and\", { enumerable: true, get: function () { return And_1.and; } });\nconst Any_1 = require(\"./Any\");\nObject.defineProperty(exports, \"Any\", { enumerable: true, get: function () { return Any_1.Any; } });\nObject.defineProperty(exports, \"any\", { enumerable: true, get: function () { return Any_1.any; } });\nconst Criteria_1 = require(\"./Criteria\");\nObject.defineProperty(exports, \"Criteria\", { enumerable: true, get: function () { return Criteria_1.Criteria; } });\nconst EndsWith_1 = require(\"./EndsWith\");\nObject.defineProperty(exports, \"EndsWith\", { enumerable: true, get: function () { return EndsWith_1.EndsWith; } });\nObject.defineProperty(exports, \"endsWith\", { enumerable: true, get: function () { return EndsWith_1.endsWith; } });\nconst Every_1 = require(\"./Every\");\nObject.defineProperty(exports, \"Every\", { enumerable: true, get: function () { return Every_1.Every; } });\nObject.defineProperty(exports, \"every\", { enumerable: true, get: function () { return Every_1.every; } });\nconst FunctionCall_1 = require(\"./FunctionCall\");\nObject.defineProperty(exports, \"FunctionCall\", { enumerable: true, get: function () { return FunctionCall_1.FunctionCall; } });\nconst GreaterThan_1 = require(\"./GreaterThan\");\nObject.defineProperty(exports, \"GreaterThan\", { enumerable: true, get: function () { return GreaterThan_1.GreaterThan; } });\nObject.defineProperty(exports, \"greaterThan\", { enumerable: true, get: function () { return GreaterThan_1.greaterThan; } });\nconst GreaterThanOrEqual_1 = require(\"./GreaterThanOrEqual\");\nObject.defineProperty(exports, \"GreaterThanOrEqual\", { enumerable: true, get: function () { return GreaterThanOrEqual_1.GreaterThanOrEqual; } });\nObject.defineProperty(exports, \"greaterThanOrEqual\", { enumerable: true, get: function () { return GreaterThanOrEqual_1.greaterThanOrEqual; } });\nconst Has_1 = require(\"./Has\");\nObject.defineProperty(exports, \"Has\", { enumerable: true, get: function () { return Has_1.Has; } });\nObject.defineProperty(exports, \"has\", { enumerable: true, get: function () { return Has_1.has; } });\nconst Includes_1 = require(\"./Includes\");\nObject.defineProperty(exports, \"Includes\", { enumerable: true, get: function () { return Includes_1.Includes; } });\nObject.defineProperty(exports, \"includes\", { enumerable: true, get: function () { return Includes_1.includes; } });\nconst Is_1 = require(\"./Is\");\nObject.defineProperty(exports, \"Is\", { enumerable: true, get: function () { return Is_1.Is; } });\nconst LesserThan_1 = require(\"./LesserThan\");\nObject.defineProperty(exports, \"LesserThan\", { enumerable: true, get: function () { return LesserThan_1.LesserThan; } });\nObject.defineProperty(exports, \"lesserThan\", { enumerable: true, get: function () { return LesserThan_1.lesserThan; } });\nconst LesserThanOrEqual_1 = require(\"./LesserThanOrEqual\");\nObject.defineProperty(exports, \"LesserThanOrEqual\", { enumerable: true, get: function () { return LesserThanOrEqual_1.LesserThanOrEqual; } });\nObject.defineProperty(exports, \"lesserThanOrEqual\", { enumerable: true, get: function () { return LesserThanOrEqual_1.lesserThanOrEqual; } });\nconst Match_1 = require(\"./Match\");\nObject.defineProperty(exports, \"Match\", { enumerable: true, get: function () { return Match_1.Match; } });\nObject.defineProperty(exports, \"match\", { enumerable: true, get: function () { return Match_1.match; } });\nconst Not_1 = require(\"./Not\");\nObject.defineProperty(exports, \"Not\", { enumerable: true, get: function () { return Not_1.Not; } });\nObject.defineProperty(exports, \"not\", { enumerable: true, get: function () { return Not_1.not; } });\nconst Or_1 = require(\"./Or\");\nObject.defineProperty(exports, \"Or\", { enumerable: true, get: function () { return Or_1.Or; } });\nObject.defineProperty(exports, \"or\", { enumerable: true, get: function () { return Or_1.or; } });\nconst parse_1 = require(\"./parse\");\nObject.defineProperty(exports, \"parse\", { enumerable: true, get: function () { return parse_1.parse; } });\nObject.defineProperty(exports, \"parseExpression\", { enumerable: true, get: function () { return parse_1.parseExpression; } });\nconst Property_1 = require(\"./Property\");\nObject.defineProperty(exports, \"Property\", { enumerable: true, get: function () { return Property_1.Property; } });\nObject.defineProperty(exports, \"property\", { enumerable: true, get: function () { return Property_1.property; } });\nconst resolve_1 = require(\"./resolve\");\nObject.defineProperty(exports, \"resolve\", { enumerable: true, get: function () { return resolve_1.resolve; } });\nconst Rule_1 = require(\"./Rule\");\nObject.defineProperty(exports, \"create\", { enumerable: true, get: function () { return Rule_1.create; } });\nObject.defineProperty(exports, \"Rule\", { enumerable: true, get: function () { return Rule_1.Rule; } });\nconst Some_1 = require(\"./Some\");\nObject.defineProperty(exports, \"Some\", { enumerable: true, get: function () { return Some_1.Some; } });\nObject.defineProperty(exports, \"some\", { enumerable: true, get: function () { return Some_1.some; } });\nconst StartsWith_1 = require(\"./StartsWith\");\nObject.defineProperty(exports, \"StartsWith\", { enumerable: true, get: function () { return StartsWith_1.StartsWith; } });\nObject.defineProperty(exports, \"startsWith\", { enumerable: true, get: function () { return StartsWith_1.startsWith; } });\nconst Tuple_1 = require(\"./Tuple\");\nObject.defineProperty(exports, \"Tuple\", { enumerable: true, get: function () { return Tuple_1.Tuple; } });\nconst Type_1 = require(\"./Type\");\nObject.defineProperty(exports, \"Type\", { enumerable: true, get: function () { return Type_1.Type; } });\nconst Value_1 = require(\"./Value\");\nObject.defineProperty(exports, \"Value\", { enumerable: true, get: function () { return Value_1.Value; } });\nconst Within_1 = require(\"./Within\");\nObject.defineProperty(exports, \"Within\", { enumerable: true, get: function () { return Within_1.Within; } });\nObject.defineProperty(exports, \"within\", { enumerable: true, get: function () { return Within_1.within; } });\nfunction is(criteria, value) {\n const result = (0, Rule_1.create)(criteria);\n return value ? result.is(value) : result;\n}\nexports.is = is;\nfunction filter(criteria, value) {\n const c = (0, Rule_1.create)(criteria);\n return c.filter(value);\n}\nexports.filter = filter;\n//# sourceMappingURL=selectively.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.within = exports.startsWith = exports.some = exports.resolve = exports.property = exports.parseExpression = exports.parse = exports.or = exports.not = exports.match = exports.is = exports.includes = exports.lesserThanOrEqual = exports.lesserThan = exports.greaterThanOrEqual = exports.greaterThan = exports.filter = exports.has = exports.every = exports.endsWith = exports.create = exports.and = exports.any = exports.Within = exports.Value = exports.Type = exports.Tuple = exports.StartsWith = exports.Some = exports.Rule = exports.Property = exports.Or = exports.Not = exports.Match = exports.Is = exports.Includes = exports.LesserThanOrEqual = exports.LesserThan = exports.GreaterThanOrEqual = exports.GreaterThan = exports.Has = exports.FunctionCall = exports.Every = exports.EndsWith = exports.Criteria = exports.Any = exports.And = exports.selectively = void 0;\nrequire(\"./Always\");\nconst And_1 = require(\"./And\");\nObject.defineProperty(exports, \"And\", { enumerable: true, get: function () { return And_1.And; } });\nObject.defineProperty(exports, \"and\", { enumerable: true, get: function () { return And_1.and; } });\nconst Any_1 = require(\"./Any\");\nObject.defineProperty(exports, \"Any\", { enumerable: true, get: function () { return Any_1.Any; } });\nObject.defineProperty(exports, \"any\", { enumerable: true, get: function () { return Any_1.any; } });\nconst Criteria_1 = require(\"./Criteria\");\nObject.defineProperty(exports, \"Criteria\", { enumerable: true, get: function () { return Criteria_1.Criteria; } });\nconst EndsWith_1 = require(\"./EndsWith\");\nObject.defineProperty(exports, \"EndsWith\", { enumerable: true, get: function () { return EndsWith_1.EndsWith; } });\nObject.defineProperty(exports, \"endsWith\", { enumerable: true, get: function () { return EndsWith_1.endsWith; } });\nconst Every_1 = require(\"./Every\");\nObject.defineProperty(exports, \"Every\", { enumerable: true, get: function () { return Every_1.Every; } });\nObject.defineProperty(exports, \"every\", { enumerable: true, get: function () { return Every_1.every; } });\nconst FunctionCall_1 = require(\"./FunctionCall\");\nObject.defineProperty(exports, \"FunctionCall\", { enumerable: true, get: function () { return FunctionCall_1.FunctionCall; } });\nconst GreaterThan_1 = require(\"./GreaterThan\");\nObject.defineProperty(exports, \"GreaterThan\", { enumerable: true, get: function () { return GreaterThan_1.GreaterThan; } });\nObject.defineProperty(exports, \"greaterThan\", { enumerable: true, get: function () { return GreaterThan_1.greaterThan; } });\nconst GreaterThanOrEqual_1 = require(\"./GreaterThanOrEqual\");\nObject.defineProperty(exports, \"GreaterThanOrEqual\", { enumerable: true, get: function () { return GreaterThanOrEqual_1.GreaterThanOrEqual; } });\nObject.defineProperty(exports, \"greaterThanOrEqual\", { enumerable: true, get: function () { return GreaterThanOrEqual_1.greaterThanOrEqual; } });\nconst Has_1 = require(\"./Has\");\nObject.defineProperty(exports, \"Has\", { enumerable: true, get: function () { return Has_1.Has; } });\nObject.defineProperty(exports, \"has\", { enumerable: true, get: function () { return Has_1.has; } });\nconst Includes_1 = require(\"./Includes\");\nObject.defineProperty(exports, \"Includes\", { enumerable: true, get: function () { return Includes_1.Includes; } });\nObject.defineProperty(exports, \"includes\", { enumerable: true, get: function () { return Includes_1.includes; } });\nconst Is_1 = require(\"./Is\");\nObject.defineProperty(exports, \"Is\", { enumerable: true, get: function () { return Is_1.Is; } });\nconst LesserThan_1 = require(\"./LesserThan\");\nObject.defineProperty(exports, \"LesserThan\", { enumerable: true, get: function () { return LesserThan_1.LesserThan; } });\nObject.defineProperty(exports, \"lesserThan\", { enumerable: true, get: function () { return LesserThan_1.lesserThan; } });\nconst LesserThanOrEqual_1 = require(\"./LesserThanOrEqual\");\nObject.defineProperty(exports, \"LesserThanOrEqual\", { enumerable: true, get: function () { return LesserThanOrEqual_1.LesserThanOrEqual; } });\nObject.defineProperty(exports, \"lesserThanOrEqual\", { enumerable: true, get: function () { return LesserThanOrEqual_1.lesserThanOrEqual; } });\nconst Match_1 = require(\"./Match\");\nObject.defineProperty(exports, \"Match\", { enumerable: true, get: function () { return Match_1.Match; } });\nObject.defineProperty(exports, \"match\", { enumerable: true, get: function () { return Match_1.match; } });\nconst Not_1 = require(\"./Not\");\nObject.defineProperty(exports, \"Not\", { enumerable: true, get: function () { return Not_1.Not; } });\nObject.defineProperty(exports, \"not\", { enumerable: true, get: function () { return Not_1.not; } });\nconst Or_1 = require(\"./Or\");\nObject.defineProperty(exports, \"Or\", { enumerable: true, get: function () { return Or_1.Or; } });\nObject.defineProperty(exports, \"or\", { enumerable: true, get: function () { return Or_1.or; } });\nconst parse_1 = require(\"./parse\");\nObject.defineProperty(exports, \"parse\", { enumerable: true, get: function () { return parse_1.parse; } });\nObject.defineProperty(exports, \"parseExpression\", { enumerable: true, get: function () { return parse_1.parseExpression; } });\nconst Property_1 = require(\"./Property\");\nObject.defineProperty(exports, \"Property\", { enumerable: true, get: function () { return Property_1.Property; } });\nObject.defineProperty(exports, \"property\", { enumerable: true, get: function () { return Property_1.property; } });\nconst resolve_1 = require(\"./resolve\");\nObject.defineProperty(exports, \"resolve\", { enumerable: true, get: function () { return resolve_1.resolve; } });\nconst Rule_1 = require(\"./Rule\");\nObject.defineProperty(exports, \"create\", { enumerable: true, get: function () { return Rule_1.create; } });\nObject.defineProperty(exports, \"Rule\", { enumerable: true, get: function () { return Rule_1.Rule; } });\nconst Some_1 = require(\"./Some\");\nObject.defineProperty(exports, \"Some\", { enumerable: true, get: function () { return Some_1.Some; } });\nObject.defineProperty(exports, \"some\", { enumerable: true, get: function () { return Some_1.some; } });\nconst StartsWith_1 = require(\"./StartsWith\");\nObject.defineProperty(exports, \"StartsWith\", { enumerable: true, get: function () { return StartsWith_1.StartsWith; } });\nObject.defineProperty(exports, \"startsWith\", { enumerable: true, get: function () { return StartsWith_1.startsWith; } });\nconst Tuple_1 = require(\"./Tuple\");\nObject.defineProperty(exports, \"Tuple\", { enumerable: true, get: function () { return Tuple_1.Tuple; } });\nconst Type_1 = require(\"./Type\");\nObject.defineProperty(exports, \"Type\", { enumerable: true, get: function () { return Type_1.Type; } });\nconst Value_1 = require(\"./Value\");\nObject.defineProperty(exports, \"Value\", { enumerable: true, get: function () { return Value_1.Value; } });\nconst Within_1 = require(\"./Within\");\nObject.defineProperty(exports, \"Within\", { enumerable: true, get: function () { return Within_1.Within; } });\nObject.defineProperty(exports, \"within\", { enumerable: true, get: function () { return Within_1.within; } });\nfunction is(criteria, value) {\n const result = (0, Rule_1.create)(criteria);\n return value ? result.is(value) : result;\n}\nexports.is = is;\nfunction filter(criteria, value) {\n const c = (0, Rule_1.create)(criteria);\n return c.filter(value);\n}\nexports.filter = filter;\nexports.selectively = require(\"./selectively\");\n//# sourceMappingURL=index.js.map","export interface Clearable {\n\tclear(): Promise<void>\n}\nexport namespace Clearable {\n\texport function is(value: Clearable | any): value is Clearable {\n\t\treturn value && typeof value == \"object\" && typeof value.clear == \"function\"\n\t}\n}\n","* {\n box-sizing: border-box;\n}\n\n:host {\n display: flex;\n\tflex-direction: column;\n\tjustify-content: center;\n\talign-items: center;\n\tposition: relative;\n\twidth: 100%;\n\tmargin-bottom: 1em; \n}\n\n:host > smoothly-input {\n\tmargin-bottom: 0.5em;\n}\n\nsection {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n}\n\n.hidden {\n\tdisplay: flex;\n\twidth: 0px;\n\topacity: 0;\n}\n\n.container {\n\twidth: inherit;\n\tposition: relative;\n\tz-index: 3;\n\tmargin: 0.8em 0;\n\topacity: 1;\n\ttransition: opacity 100ms ease-in-out;\n}\n\n.container:after {\n\tcontent:\"\";\n\theight: 100%;\n\twidth: 100%;\n\tborder: 1px solid rgb(var(--smoothly-color-contrast));\n\tborder-radius: 0.25em;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n}\n\n/* arrow */\n.container:before {\n\tcontent:\"\";\n\twidth: 0.6em;\n\theight: 0.6em;\n\ttransform: rotate(45deg);\n\tborder-top: 1px solid rgb(var(--smoothly-color-contrast));\n\tborder-left: 1px solid rgb(var(--smoothly-color-contrast));\n\tbackground-color: rgb(var(--smoothly-default-color));\n\tposition: absolute;\n\tz-index: 3;\n}\n\n/* arrow placement */\n.container.arrow-top:before {\n\tleft: calc(84.5%);\n\ttop: -5px;\n}\n\n/* wrapper for slot(filters) */\n.container-wrapper {\n\twidth: 100%;\n\tpadding: 1em;\n\tposition: relative;\n}\n\n.btn.hidden {\n\tmargin-right: 0.25em;\n\topacity: 0;\n\tcursor:text\n}\n\n.btn.clear {\n\tmargin-right: 0.25em;\n\topacity: 0.3;\n}\n\n::slotted(div[slot=filter]) {\n\tdisplay: grid;\n\tgrid-template-columns: 1fr;\n\tjustify-content: center;\n\talign-items: center;\n\tgap: 0.5em;\n}\n\n:host > smoothly-fom > smoothly-input > section[slot=end] > smoothly-button {\n\tfont-size: 100%;\n\tmin-width: min-content;\n\tpadding: 0;\n\tmargin: 0;\n\tborder: none !important;\n}\n\n","import { Component, Event, EventEmitter, h, Listen, Method, Prop, State } from \"@stencil/core\"\nimport * as selectively from \"selectively\"\nimport { create as selectivelyCreate, Criteria } from \"selectively\"\nimport { Clearable } from \"./Clearable\"\n\n@Component({\n\ttag: \"smoothly-filter\",\n\tstyleUrl: \"style.css\",\n\tshadow: true,\n})\nexport class SmoothlyFilter {\n\tprivate freeSearchElement?: HTMLSmoothlyInputElement\n\tprivate inputs = new Map<string, Clearable>()\n\t@Prop({ mutable: true }) placeholder: string | undefined\n\t@State() expanded = false\n\t@State() freeSearchValue: string\n\t@Prop({ mutable: true }) criteria: Record<string, Criteria> = {}\n\t@Prop({ mutable: true }) inputValue: Criteria\n\n\t@Listen(\"filter\")\n\tfilterHandler(event: CustomEvent<Record<string, Criteria>>) {\n\t\tevent.stopPropagation()\n\n\t\tif (Clearable.is(event.target)) {\n\t\t\tconst target = event.target\n\t\t\tObject.keys(event.detail).forEach(key => this.inputs.set(key, target))\n\t\t}\n\t\t!this.freeSearchValue\n\t\t\t? this.filters.emit((this.criteria = { ...this.criteria, ...event.detail }))\n\t\t\t: this.filters.emit(\n\t\t\t\t\tselectively.and(\n\t\t\t\t\t\tselectively.any(selectively.includes(this.freeSearchValue)),\n\t\t\t\t\t\t(this.criteria = { ...this.criteria, ...event.detail })\n\t\t\t\t\t)\n\t\t\t )\n\t}\n\t@Event() filters: EventEmitter<Criteria>\n\tonKeyDown() {\n\t\tthis.freeSearchValue = this.freeSearchElement?.value\n\t\tthis.inputValue = selectively.includes(this.freeSearchValue)\n\t\tthis.filters.emit(selectively.any(this.inputValue))\n\t}\n\n\t@Method()\n\tasync clear(event: MouseEvent): Promise<void> {\n\t\tnew Set(this.inputs.values()).forEach(input => input.clear())\n\t\tthis.filters.emit((this.criteria = {}))\n\t}\n\n\trender() {\n\t\treturn [\n\t\t\t<smoothly-form looks=\"border\">\n\t\t\t\t<smoothly-input\n\t\t\t\t\tname=\"filter\"\n\t\t\t\t\tref={element => (this.freeSearchElement = element)}\n\t\t\t\t\tvalue={selectivelyCreate(this.criteria).stringify()}\n\t\t\t\t\tonKeyDown={() => this.onKeyDown()}\n\t\t\t\t\tplaceholder={this.placeholder}>\n\t\t\t\t\t<section slot=\"start\">\n\t\t\t\t\t\t<slot name=\"start\" />\n\t\t\t\t\t</section>\n\t\t\t\t\t<slot />\n\t\t\t\t\t<section slot=\"end\">\n\t\t\t\t\t\t<smoothly-button size=\"flexible\" onClick={e => this.clear(e)}>\n\t\t\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\t\t\tclass={Object.keys(this.criteria).length >= 1 ? \"btn clear\" : \"btn hidden\"}\n\t\t\t\t\t\t\t\tname=\"close\"\n\t\t\t\t\t\t\t\tsize=\"tiny\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t\t<smoothly-button\n\t\t\t\t\t\t\tsize=\"flexible\"\n\t\t\t\t\t\t\tclass=\"btn\"\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tthis.expanded = !this.expanded\n\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t{this.expanded ? (\n\t\t\t\t\t\t\t\t<smoothly-icon name=\"options\" size=\"small\" />\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<smoothly-icon name=\"options-outline\" size=\"small\" />\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t</section>\n\t\t\t\t</smoothly-input>\n\t\t\t</smoothly-form>,\n\n\t\t\t<section hidden={!this.expanded} class={this.expanded ? \"container arrow-top\" : \"hidden\"}>\n\t\t\t\t<div hidden={!this.expanded} class={this.expanded ? \"container-wrapper\" : \"hidden\"}>\n\t\t\t\t\t{this.expanded && <slot name=\"filter\" />}\n\t\t\t\t</div>\n\t\t\t</section>,\n\t\t]\n\t}\n}\n",":host {\n display: block;\n}\n\n\n","import { Component, Event, EventEmitter, h, Method, Prop, State } from \"@stencil/core\"\nimport { Currency } from \"isoly\"\nimport * as selectively from \"selectively\"\nimport { Criteria } from \"selectively\"\n\n@Component({\n\ttag: \"smoothly-filter-input\",\n\tstyleUrl: \"style.css\",\n\tshadow: true,\n})\nexport class SmoothlyFilterInput {\n\tsmoothlyInput: HTMLSmoothlyInputElement\n\n\t@Prop({ reflect: true }) name: string\n\t@Prop({ mutable: true }) value = \"\"\n\t@Prop({ reflect: true }) type = \"text\"\n\t@Prop({ mutable: true, reflect: true }) required = false\n\t@Prop() minLength = 0\n\t@Prop({ reflect: true }) showLabel = true\n\t@Prop() maxLength: number = Number.POSITIVE_INFINITY\n\t@Prop() autocomplete = true\n\t@Prop() pattern?: RegExp\n\t@Prop() placeholder?: string\n\t@Prop() disabled = false\n\t@Prop({ reflect: true }) readonly = false\n\t@Prop({ reflect: true }) currency?: Currency\n\t@Prop() comparison: \"equals\" | \"less\" | \"greater\" | \"starts\" | \"ends\" | \"includes\" = \"includes\"\n\t@State() criteria: Criteria\n\n\t@Event() filter: EventEmitter<Criteria>\n\tprivate onFilter() {\n\t\tthis.value = this.smoothlyInput.value\n\t\tlet result: Criteria = \"\"\n\t\tlet criteria: Criteria\n\n\t\tswitch (this.comparison) {\n\t\t\tcase \"equals\":\n\t\t\t\tcriteria = this.value\n\t\t\t\tbreak\n\t\t\tcase \"less\":\n\t\t\t\tcriteria = selectively.lesserThan(this.value)\n\t\t\t\tbreak\n\t\t\tcase \"greater\":\n\t\t\t\tcriteria = selectively.greaterThan(this.value)\n\t\t\t\tbreak\n\t\t\tcase \"starts\":\n\t\t\t\tcriteria = selectively.startsWith(this.value)\n\t\t\t\tbreak\n\t\t\tcase \"ends\":\n\t\t\t\tcriteria = selectively.endsWith(this.value)\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\tcase \"includes\":\n\t\t\t\tcriteria = selectively.includes(this.value)\n\t\t\t\tbreak\n\t\t}\n\n\t\tresult = this.name\n\t\t\t.split(\".\")\n\t\t\t.reverse()\n\t\t\t.reduce<Criteria>((previousValue, currentValue) => ({ [currentValue]: previousValue }), criteria)\n\t\tthis.filter.emit(result)\n\t}\n\n\t@Method()\n\tasync clear() {\n\t\tthis.value = \"\"\n\t}\n\n\trender() {\n\t\treturn [\n\t\t\t<smoothly-input\n\t\t\t\tname={this.name}\n\t\t\t\tref={(element: HTMLSmoothlyInputElement) => (this.smoothlyInput = element)}\n\t\t\t\tvalue={this.value}\n\t\t\t\tonKeyDown={() => this.onFilter()}\n\t\t\t\tonSmoothlyInput={e => {\n\t\t\t\t\tthis.value = e.detail.value ?? \"\"\n\t\t\t\t}}\n\t\t\t\tplaceholder={this.placeholder}>\n\t\t\t\t<div slot=\"start\">\n\t\t\t\t\t<slot name=\"start\" />\n\t\t\t\t</div>\n\t\t\t\t<slot />\n\t\t\t</smoothly-input>,\n\t\t]\n\t}\n}\n","export var Method;\n(function (Method) {\n function is(value) {\n return (typeof value == \"string\" &&\n (value == \"GET\" ||\n value == \"POST\" ||\n value == \"DELETE\" ||\n value == \"HEAD\" ||\n value == \"PATCH\" ||\n value == \"PUT\" ||\n value == \"OPTIONS\" ||\n value == \"TRACE\" ||\n value == \"CONNECT\"));\n }\n Method.is = is;\n function parse(value) {\n value = value?.toUpperCase();\n return is(value) ? value : undefined;\n }\n Method.parse = parse;\n})(Method || (Method = {}));\n//# sourceMappingURL=Method.js.map","const parsers = {};\nexport function add(parser, ...contentType) {\n contentType.forEach(t => (parsers[t] = parser));\n}\nexport function parse(request) {\n const contentType = request.headers.get(\"Content-Type\");\n const type = contentType && contentType.split(\";\");\n const parser = parsers[type?.[0] ?? \"plain/text\"];\n return parser ? parser(request) : request.text();\n}\n//# sourceMappingURL=Parser.js.map","const serializers = {};\nexport function add(serializer, ...contentType) {\n contentType.forEach(t => (serializers[t] = serializer));\n}\nexport function serialize(body, contentType) {\n const serializer = serializers[contentType?.split(\";\")[0] ?? \"\"];\n return serializer ? serializer(body, contentType) : body;\n}\n//# sourceMappingURL=Serializer.js.map","export function to(name) {\n return name.toLowerCase().replace(/-[a-z]/g, match => match.substring(1).toUpperCase());\n}\nexport function from(name) {\n const result = name.replace(/[A-Z]/g, match => \"-\" + match);\n return result[0].toUpperCase() + result.substring(1);\n}\n//# sourceMappingURL=CamelCase.js.map","import * as CamelCase from \"../CamelCase\";\nconst fields = [\n [\"aIM\", \"A-IM\", 1],\n [\"accept\", \"Accept\", 2],\n [\"acceptCharset\", \"Accept-Charset\", 2],\n [\"acceptDatetime\", \"Accept-Datetime\", 1],\n [\"acceptEncoding\", \"Accept-Encoding\", 2],\n [\"acceptLanguage\", \"Accept-Language\", 2],\n [\"accessControlRequestMethod\", \"Access-Control-Request-Method\", 1],\n [\"accessControlRequestHeaders\", \"Access-Control-Request-Headers\", 1],\n [\"authorization\", \"Authorization\", 1],\n [\"cacheControl\", \"Cache-Control\", 1],\n [\"cfConnectionIp\", \"CF-Connecting-IP\", 1],\n [\"cfIpCountry\", \"CF-IPCountry\", 1],\n [\"connection\", \"Connection\", 1],\n [\"contentLength\", \"Content-Length\", 1],\n [\"contentMD5\", \"Content-MD5\", 1],\n [\"contentType\", \"Content-Type\", 1],\n [\"cookie\", \"Cookie\", 1],\n [\"date\", \"Date\", 1],\n [\"expect\", \"Expect\", 1],\n [\"forwarded\", \"Forwarded\", 1],\n [\"from\", \"From\", 1],\n [\"host\", \"Host\", 1],\n [\"http2Settings\", \"HTTP2-Settings\", 1],\n [\"ifMatch\", \"If-Match\", 2],\n [\"ifModifiedSince\", \"If-Modified-Since\", 1],\n [\"ifNoneMatch\", \"If-None-Match\", 2],\n [\"ifRange\", \"If-Range\", 1],\n [\"ifUnmodifiedSince\", \"If-Unmodified-Since\", 1],\n [\"maxForwards\", \"Max-Forwards\", 1],\n [\"origin\", \"Origin\", 1],\n [\"pragma\", \"Pragma\", 1],\n [\"proxyAuthorization\", \"Proxy-Authorization\", 1],\n [\"range\", \"Range\", 1],\n [\"referer\", \"Referer\", 1],\n [\"te\", \"TE\", 2],\n [\"trailer\", \"Trailer\", 1],\n [\"transferEncoding\", \"Transfer-Encoding\", 1],\n [\"userAgent\", \"User-Agent\", 1],\n [\"upgrade\", \"Upgrade\", 2],\n [\"via\", \"Via\", 2],\n [\"warning\", \"Warning\", 1],\n [\"upgradeInsecureRequests\", \"Upgrade-Insecure-Requests\", 1],\n [\"xRequestedWith\", \"X-Requested-With\", 1],\n [\"dnt\", \"DNT\", 1],\n [\"xForwardedFor\", \"X-Forwarded-For\", 1],\n [\"xForwardedHost\", \"X-Forwarded-Host\", 1],\n [\"xForwardedProto\", \"X-Forwarded-Proto\", 1],\n [\"xMsContinuation\", \"X-Ms-Continuation\", 1],\n [\"frontEndHttps\", \"Front-End-Https\", 1],\n [\"xHttpMethodOverride\", \"X-Http-Method-Override\", 1],\n [\"xAttDeviceId\", \"X-ATT-DeviceId\", 1],\n [\"xWapProfile\", \"X-Wap-Profile\", 1],\n [\"proxyConnection\", \"Proxy-Connection\", 1],\n [\"xCsrfToken\", \"X-Csrf-Token\", 1],\n [\"xCorrelationID\", \"X-Correlation-ID\", 1],\n [\"xModNonce\", \"x-mod-nonce\", 1],\n [\"xModRetry\", \"x-mod-retry\", 1],\n [\"saveData\", \"Save-Data\", 1],\n [\"xAuthToken\", \"X-Auth-Token\", 1],\n [\"xTrackingId\", \"x-tracking-id\", 1],\n];\nexport var Header;\n(function (Header) {\n function is(value) {\n function isString(value) {\n return value == undefined || typeof value == \"string\";\n }\n function isStringArray(value) {\n return value == undefined || (Array.isArray(value) && value.every(v => typeof v == \"string\"));\n }\n return (typeof value == \"object\" && fields.every(field => (field[2] == 1 ? isString : isStringArray)(value[field[0]])));\n }\n Header.is = is;\n function to(header) {\n return Object.fromEntries(Object.entries(header).map(([name, value]) => {\n const field = fields.find(([camelCase, n, l]) => camelCase == name);\n return [field ? field[1] : CamelCase.from(name), Array.isArray(value) ? value.join(\", \") : value];\n }));\n }\n Header.to = to;\n function from(headers) {\n return Object.fromEntries((Array.isArray(headers)\n ? headers.map(([field, ...value]) => [field, value.join(\", \")])\n : isHeaders(headers)\n ? [...headers]\n : Object.entries(headers)).map(([name, value]) => {\n const field = fields.find(([c, n, l]) => name.toLowerCase() == n.toLowerCase());\n return field\n ? [field[0], field[2] == 1 || typeof value != \"string\" ? value : value.split(\",\").map(v => v.trim())]\n : [CamelCase.to(name), value];\n }));\n }\n Header.from = from;\n function toString(header) {\n return Object.entries(header)\n .map(([header, value]) => header + \": \" + value)\n .join(\"\\n\");\n }\n Header.toString = toString;\n function isHeaders(value) {\n return typeof value.entries == \"function\";\n }\n})(Header || (Header = {}));\n//# sourceMappingURL=Header.js.map","import { Method } from \"../Method\";\nimport * as Parser from \"../Parser\";\nimport * as Serializer from \"../Serializer\";\nimport { Header as RequestHeader } from \"./Header\";\nexport var Request;\n(function (Request) {\n function is(value) {\n return (typeof value == \"object\" &&\n Object.keys(value).every(key => [\"method\", \"url\", \"parameter\", \"search\", \"remote\", \"header\", \"body\"].some(k => k == key)) &&\n Method.is(value.method) &&\n value.url instanceof URL &&\n typeof value.parameter == \"object\" &&\n Object.entries(value.parameter).every(([parameter, value]) => typeof parameter == \"string\" && typeof value == \"string\") &&\n typeof value.search == \"object\" &&\n Object.entries(value.search).every(([key, value]) => typeof key == \"string\" && typeof value == \"string\") &&\n (value.remote == undefined || typeof value.remote == \"string\") &&\n (value.header == undefined || RequestHeader.is(value.header)));\n }\n Request.is = is;\n async function to(request) {\n const r = is(request) ? request : create(request);\n const header = r.header.contentType?.startsWith(\"multipart/form-data\")\n ? (({ contentType, ...header }) => header)(r.header)\n : r.header;\n return {\n url: r.url.toString(),\n method: r.method,\n headers: RequestHeader.to(header),\n body: [\"GET\", \"HEAD\"].some(v => v == r.method)\n ? undefined\n : await Serializer.serialize(await r.body, r.header.contentType),\n };\n }\n Request.to = to;\n function from(request) {\n const url = new URL(request.url);\n return {\n method: Method.parse(request.method) ?? \"GET\",\n url,\n header: RequestHeader.from(request.headers),\n parameter: {},\n search: Object.fromEntries(url.searchParams.entries()),\n body: Parser.parse(request),\n ...(\"cf\" in request && { cloudflare: request.cf }),\n };\n }\n Request.from = from;\n function create(request) {\n let result;\n if (typeof request == \"string\")\n result = create({ url: request });\n else {\n const url = typeof request.url == \"string\" ? new URL(request.url) : request.url;\n result = {\n method: Method.parse(request.method) ?? \"GET\",\n url,\n parameter: request.parameter ?? {},\n search: { ...request.search, ...Object.fromEntries(url.searchParams.entries()) },\n remote: request.remote,\n header: request.header ?? {},\n body: request.body,\n };\n }\n return result;\n }\n Request.create = create;\n let Header;\n (function (Header) {\n Header.is = RequestHeader.is;\n Header.from = RequestHeader.from;\n Header.to = RequestHeader.to;\n })(Header = Request.Header || (Request.Header = {}));\n})(Request || (Request = {}));\n//# sourceMappingURL=index.js.map","const PlatformRequest = typeof Request != \"undefined\" ? Request : globalThis.Request;\nconst PlatformResponse = typeof Response != \"undefined\" ? Response : globalThis.Response;\nexport { PlatformRequest as Request, PlatformResponse as Response };\n//# sourceMappingURL=Platform.js.map","var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _Socket_instances, _Socket_receiveQueue, _Socket_sendQueue, _Socket_closed, _Socket_backend, _Socket_onMessage, _Socket_onClose, _Socket_handleOpen, _Socket_onOpen;\nexport class Socket {\n get state() {\n return __classPrivateFieldGet(this, _Socket_closed, \"f\") ? \"closed\" : \"opened\";\n }\n set onMessage(value) {\n if (__classPrivateFieldGet(this, _Socket_receiveQueue, \"f\").length && value) {\n __classPrivateFieldGet(this, _Socket_receiveQueue, \"f\").forEach(value);\n __classPrivateFieldSet(this, _Socket_receiveQueue, [], \"f\");\n }\n __classPrivateFieldSet(this, _Socket_onMessage, value, \"f\");\n }\n set onClose(value) {\n if (this.state == \"closed\" && value)\n value();\n __classPrivateFieldSet(this, _Socket_onClose, value, \"f\");\n }\n set onOpen(value) {\n if (this.state == \"opened\" && value)\n value();\n __classPrivateFieldSet(this, _Socket_onOpen, value, \"f\");\n }\n constructor(backend, isOpen) {\n _Socket_instances.add(this);\n _Socket_receiveQueue.set(this, []);\n _Socket_sendQueue.set(this, []);\n _Socket_closed.set(this, false);\n _Socket_backend.set(this, void 0);\n _Socket_onMessage.set(this, void 0);\n _Socket_onClose.set(this, void 0);\n _Socket_onOpen.set(this, void 0);\n __classPrivateFieldSet(this, _Socket_backend, backend, \"f\");\n if (isOpen)\n __classPrivateFieldSet(this, _Socket_sendQueue, undefined, \"f\");\n __classPrivateFieldGet(this, _Socket_backend, \"f\").addEventListener(\"open\", () => {\n if (__classPrivateFieldGet(this, _Socket_onOpen, \"f\"))\n __classPrivateFieldGet(this, _Socket_onOpen, \"f\").call(this);\n __classPrivateFieldGet(this, _Socket_instances, \"m\", _Socket_handleOpen).bind(this);\n });\n __classPrivateFieldGet(this, _Socket_backend, \"f\").addEventListener(\"message\", async (event) => {\n const data = this.processReceived(event.data);\n __classPrivateFieldGet(this, _Socket_instances, \"m\", _Socket_handleOpen).call(this);\n if (__classPrivateFieldGet(this, _Socket_onMessage, \"f\"))\n __classPrivateFieldGet(this, _Socket_onMessage, \"f\").call(this, data);\n else\n __classPrivateFieldGet(this, _Socket_receiveQueue, \"f\")?.push(data);\n });\n __classPrivateFieldGet(this, _Socket_backend, \"f\").addEventListener(\"close\", () => {\n if (__classPrivateFieldGet(this, _Socket_onClose, \"f\"))\n __classPrivateFieldGet(this, _Socket_onClose, \"f\").call(this);\n __classPrivateFieldSet(this, _Socket_closed, true, \"f\");\n });\n }\n send(message) {\n if (__classPrivateFieldGet(this, _Socket_sendQueue, \"f\"))\n __classPrivateFieldGet(this, _Socket_sendQueue, \"f\").push(this.processSend(message));\n else\n __classPrivateFieldGet(this, _Socket_backend, \"f\").send(this.processSend(message));\n }\n}\n_Socket_receiveQueue = new WeakMap(), _Socket_sendQueue = new WeakMap(), _Socket_closed = new WeakMap(), _Socket_backend = new WeakMap(), _Socket_onMessage = new WeakMap(), _Socket_onClose = new WeakMap(), _Socket_onOpen = new WeakMap(), _Socket_instances = new WeakSet(), _Socket_handleOpen = function _Socket_handleOpen() {\n __classPrivateFieldGet(this, _Socket_sendQueue, \"f\")?.forEach(buffer => __classPrivateFieldGet(this, _Socket_backend, \"f\").send(buffer));\n __classPrivateFieldSet(this, _Socket_sendQueue, undefined, \"f\");\n};\n//# sourceMappingURL=Socket.js.map","import { Socket } from \"./Socket\";\nexport class ArrayBuffer extends Socket {\n processReceived(data) {\n return data?.arrayBuffer\n ? data.arrayBuffer()\n : typeof data == \"string\"\n ? new TextEncoder().encode(data).buffer\n : data;\n }\n processSend(data) {\n return data;\n }\n}\n//# sourceMappingURL=ArrayBuffer.js.map","import { Socket } from \"./Socket\";\nexport class Json extends Socket {\n processReceived(data) {\n return JSON.parse(data?.arrayBuffer\n ? new TextDecoder().decode(data.arrayBuffer())\n : typeof data != \"string\"\n ? new TextDecoder().decode(data)\n : data);\n }\n processSend(data) {\n return JSON.stringify(data);\n }\n}\n//# sourceMappingURL=Json.js.map","import { Socket } from \"./Socket\";\nexport class String extends Socket {\n processReceived(data) {\n return data?.arrayBuffer\n ? new TextDecoder().decode(data.arrayBuffer())\n : typeof data != \"string\"\n ? new TextDecoder().decode(data)\n : data;\n }\n processSend(data) {\n return data;\n }\n}\n//# sourceMappingURL=String.js.map","var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _Factory_json, _Factory_string, _Factory_arrayBuffer;\nimport { ArrayBuffer as SocketArrayBuffer } from \"./ArrayBuffer\";\nimport { Json as SocketJson } from \"./Json\";\nimport { String as SocketString } from \"./String\";\nexport class Factory {\n get json() {\n if (!__classPrivateFieldGet(this, _Factory_json, \"f\"))\n __classPrivateFieldSet(this, _Factory_json, new SocketJson(this.backend, this.isOpen), \"f\");\n return __classPrivateFieldGet(this, _Factory_json, \"f\");\n }\n get string() {\n if (!__classPrivateFieldGet(this, _Factory_string, \"f\"))\n __classPrivateFieldSet(this, _Factory_string, new SocketString(this.backend, this.isOpen), \"f\");\n return __classPrivateFieldGet(this, _Factory_string, \"f\");\n }\n get arrayBuffer() {\n if (!__classPrivateFieldGet(this, _Factory_arrayBuffer, \"f\"))\n __classPrivateFieldSet(this, _Factory_arrayBuffer, new SocketArrayBuffer(this.backend, this.isOpen), \"f\");\n return __classPrivateFieldGet(this, _Factory_arrayBuffer, \"f\");\n }\n constructor(backend, isOpen) {\n this.backend = backend;\n this.isOpen = isOpen;\n _Factory_json.set(this, void 0);\n _Factory_string.set(this, void 0);\n _Factory_arrayBuffer.set(this, void 0);\n }\n createResponse(header = {}) {\n return { status: 101, socket: this, header };\n }\n close(code, reason) {\n this.backend.close(code, reason);\n }\n}\n_Factory_json = new WeakMap(), _Factory_string = new WeakMap(), _Factory_arrayBuffer = new WeakMap();\n//# sourceMappingURL=Factory.js.map","import { Factory as SocketFactory } from \"./Factory\";\nexport var Socket;\n(function (Socket) {\n Socket.Factory = SocketFactory;\n})(Socket || (Socket = {}));\n//# sourceMappingURL=index.js.map","import * as CamelCase from \"../CamelCase\";\nconst fields = [\n [\"accessControlAllowOrigin\", \"Access-Control-Allow-Origin\", 1],\n [\"accessControlAllowCredentials\", \"Access-Control-Allow-Credentials\", 1],\n [\"accessControlExposeHeaders\", \"Access-Control-Expose-Headers\", 2],\n [\"accessControlMaxAge\", \"Access-Control-Max-Age\", 1],\n [\"accessControlAllowMethods\", \"Access-Control-Allow-Methods\", 2],\n [\"accessControlAllowHeaders\", \"Access-Control-Allow-Headers\", 2],\n [\"acceptPatch\", \"Accept-Patch\", 1],\n [\"acceptRanges\", \"Accept-Ranges\", 1],\n [\"age\", \"Age\", 1],\n [\"allow\", \"Allow\", 2],\n [\"altSvc\", \"Alt-Svc\", 1],\n [\"cacheControl\", \"Cache-Control\", 1],\n [\"cfConnectionIp\", \"CF-Connecting-IP\", 1],\n [\"cfIpCountry\", \"CF-IPCountry\", 1],\n [\"connection\", \"Connection\", 1],\n [\"contentDisposition\", \"Content-Disposition\", 1],\n [\"contentEncoding\", \"Content-Encoding\", 1],\n [\"contentLanguage\", \"Content-Language\", 2],\n [\"contentLength\", \"Content-Length\", 1],\n [\"contentLocation\", \"Content-Location\", 1],\n [\"contentMD5\", \"Content-MD5\", 1],\n [\"contentRange\", \"Content-Range\", 1],\n [\"contentSecurityPolicy\", \"Content-Security-Policy\", 1],\n [\"contentType\", \"Content-Type\", 1],\n [\"date\", \"Date\", 1],\n [\"deltaBase\", \"Delta-Base\", 1],\n [\"eTag\", \"ETag\", 1],\n [\"expires\", \"Expires\", 1],\n [\"iM\", \"IM\", 1],\n [\"lastModified\", \"Last-Modified\", 1],\n [\"link\", \"Link\", 1],\n [\"location\", \"Location\", 1],\n [\"p3P\", \"P3P\", 1],\n [\"pragma\", \"Pragma\", 1],\n [\"proxyAuthenticate\", \"Proxy-Authenticate\", 1],\n [\"publicKeyPins\", \"Public-Key-Pins\", 1],\n [\"refresh\", \"Refresh\", 1],\n [\"retryAfter\", \"Retry-After\", 1],\n [\"server\", \"Server\", 1],\n [\"setCookie\", \"Set-Cookie\", 1],\n [\"status\", \"Status\", 1],\n [\"strictTransportSecurity\", \"Strict-Transport-Security\", 1],\n [\"timingAllowOrigin\", \"Timing-Allow-Origin\", 2],\n [\"trailer\", \"Trailer\", 1],\n [\"transferEncoding\", \"Transfer-Encoding\", 1],\n [\"tk\", \"Tk\", 1],\n [\"upgrade\", \"Upgrade\", 2],\n [\"vary\", \"Vary\", 2],\n [\"via\", \"Via\", 1],\n [\"warning\", \"Warning\", 1],\n [\"wwwAuthenticate\", \"WWW-Authenticate\", 1],\n [\"xContentDuration\", \"X-Content-Duration\", 1],\n [\"xContentSecurityPolicy\", \"X-Content-Security-Policy\", 1],\n [\"xContentTypeOptions\", \"X-Content-Type-Options\", 1],\n [\"xCorrelationId\", \"X-Correlation-ID\", 1],\n [\"xFrameOptions\", \"X-Frame-Options\", 1],\n [\"xMsContinuation\", \"X-Ms-Continuation\", 1],\n [\"xPoweredBy\", \"X-Powered-By\", 1],\n [\"xRequestId\", \"X-Request-ID\", 1],\n [\"xUACompatible\", \"X-UA-Compatible\", 1],\n [\"xWebkitCsp\", \"X-WebKit-CSP\", 1],\n [\"xXssProtection\", \"X-XSS-Protection\", 1],\n];\nexport var Header;\n(function (Header) {\n function is(value) {\n function isString(value) {\n return value == undefined || typeof value == \"string\";\n }\n function isStringArray(value) {\n return value == undefined || (Array.isArray(value) && value.every(v => typeof v == \"string\"));\n }\n return (typeof value == \"object\" && fields.every(field => (field[2] == 1 ? isString : isStringArray)(value[field[0]])));\n }\n Header.is = is;\n function to(header) {\n return Object.fromEntries(Object.entries(header).map(([name, value]) => {\n const field = fields.find(([camelCase, ..._]) => camelCase == name);\n return [field ? field[1] : CamelCase.from(name), Array.isArray(value) ? value.join(\", \") : value];\n }));\n }\n Header.to = to;\n function from(headers) {\n return Object.fromEntries((Array.isArray(headers)\n ? headers.map(([field, ...value]) => [field, value.join(\", \")])\n : isHeaders(headers)\n ? getEntries(headers)\n : Object.entries(headers)).map(([name, value]) => {\n const field = fields.find(([c, n, l]) => name.toLowerCase() == n.toLowerCase());\n return field\n ? [field[0], field[2] == 1 || typeof value != \"string\" ? value : value.split(\",\").map(v => v.trim())]\n : [CamelCase.to(name), value];\n }));\n }\n Header.from = from;\n function toString(header) {\n return Object.entries(header)\n .map(([header, value]) => header + \": \" + value)\n .join(\"\\n\");\n }\n Header.toString = toString;\n function isHeaders(value) {\n return typeof value.forEach == \"function\";\n }\n function getEntries(headers) {\n const result = [];\n headers.forEach((value, key) => result.push([key, value]));\n return result;\n }\n})(Header || (Header = {}));\n//# sourceMappingURL=Header.js.map","import { Header } from \"./Header\";\nexport var Like;\n(function (Like) {\n function is(value) {\n return (typeof value == \"object\" &&\n Object.keys(value).every(key => [\"status\", \"header\", \"body\", \"socket\"].some(property => property == key)) &&\n (value.status == undefined || typeof value.status == \"number\") &&\n (value.header == undefined || Header.is(value.header)) &&\n (value.socket == undefined ||\n (typeof value.socket.close == \"function\" &&\n typeof value.socket.json?.send == \"function\" &&\n typeof value.socket.string?.send == \"function\" &&\n typeof value.socket.arrayBuffer?.send == \"function\")) &&\n (value.status != undefined || value.header != undefined || value.body != undefined));\n }\n Like.is = is;\n})(Like || (Like = {}));\n//# sourceMappingURL=Like.js.map","import * as Parser from \"../Parser\";\nimport * as Platform from \"../Platform\";\nimport * as Serializer from \"../Serializer\";\nimport { Socket } from \"../Socket\";\nimport { Header as ResponseHeader } from \"./Header\";\nimport { Like as ResponseLike } from \"./Like\";\nexport var Response;\n(function (Response) {\n function is(value) {\n return (typeof value == \"object\" &&\n Object.keys(value).every(key => [\"status\", \"header\", \"body\", \"socket\"].some(k => k == key)) &&\n (value.status == undefined || typeof value.status == \"number\") &&\n (value.header == undefined || ResponseHeader.is(value.header)) &&\n (value.socket == undefined || value.socket instanceof WebSocket));\n }\n Response.is = is;\n async function to(request) {\n return new Platform.Response(await Serializer.serialize(await request.body, request.header.contentType), {\n status: request.status,\n headers: new Headers(ResponseHeader.to(!request.header.contentType?.startsWith(\"multipart/formdata\")\n ? request.header\n : (({ contentType, ...header }) => header)(request.header))),\n ...(request.socket && {\n webSocket: { ...request.socket.createResponse().socket }?.backend,\n }),\n });\n }\n Response.to = to;\n function from(response) {\n return {\n status: response.status,\n header: ResponseHeader.from(response.headers),\n body: response.status == 101 ? undefined : Parser.parse(response),\n ...(response.webSocket && { socket: new Socket.Factory(response.webSocket) }),\n };\n }\n Response.from = from;\n function create(response, contentType) {\n const result = ResponseLike.is(response)\n ? {\n status: 200,\n header: {},\n body: undefined,\n ...(response.socket && { socket: response.socket }),\n ...response,\n }\n : typeof response?.createResponse == \"function\" && (contentType == undefined || ResponseHeader.is(contentType))\n ? response.createResponse(contentType)\n : {\n status: (typeof response == \"object\" && typeof response.status == \"number\" && response.status) || 200,\n header: typeof response == \"object\"\n ? {\n ...response.header,\n ...((response.status == 301 || response.status == 302) && response.location\n ? { location: response.location }\n : {}),\n }\n : {},\n body: !(typeof response == \"object\" && !Array.isArray(response)) ||\n response instanceof ArrayBuffer ||\n ArrayBuffer.isView(response) ||\n response instanceof FormData\n ? response\n : (({ header, ...body }) => body)(response),\n ...((response.webSocket && { socket: new Socket.Factory(response.webSocket) }) ||\n (response.socket && { socket: response.socket })),\n };\n if (!result.header.contentType)\n switch (typeof result.body) {\n case \"undefined\":\n break;\n default:\n case \"object\":\n result.header.contentType =\n typeof contentType == \"string\"\n ? contentType\n : contentType?.contentType\n ? contentType.contentType\n : result.body instanceof FormData\n ? \"multipart/formdata\"\n : result.body instanceof ArrayBuffer || ArrayBuffer.isView(result.body)\n ? isPdf(result.body)\n ? \"application/pdf\"\n : \"application/octet-stream\"\n : \"application/json; charset=utf-8\";\n break;\n case \"string\":\n result.header.contentType =\n result.body.slice(0, 9).toLowerCase() == \"<!doctype\"\n ? \"text/html; charset=utf-8\"\n : /^[A-Za-z0-9-_=]+\\.[A-Za-z0-9-_=]+\\.?[A-Za-z0-9-_.+/=]*$/.test(result.body)\n ? \"application/jwt; charset=utf-8\"\n : /^<\\?xml version=(.|\\n)*\\?>(.|\\n)*<svg(.|\\n)*<\\/svg>$/.test(result.body)\n ? \"image/svg+xml\"\n : \"text/plain; charset=utf-8\";\n break;\n }\n return result;\n }\n Response.create = create;\n function isPdf(body) {\n const bytes = new Uint8Array(ArrayBuffer.isView(body) ? body.buffer : body).slice(0, 4);\n return [37, 80, 68, 70].every((current, index) => current == bytes[index]);\n }\n Response.Header = ResponseHeader;\n Response.Like = ResponseLike;\n})(Response || (Response = {}));\n//# sourceMappingURL=index.js.map","import { Request } from \"./Request\";\nimport { Response } from \"./Response\";\nexport const fetch = create(globalThis.fetch);\nfetch.create = create;\nfunction create(fetch) {\n return async (request) => {\n const r = Request.create(request);\n return Response.from(await fetch(r.url.toString(), await Request.to(r)));\n };\n}\n//# sourceMappingURL=fetch.js.map","export var FormData;\n(function (FormData) {\n function to(data) {\n const result = new globalThis.FormData();\n result.append(\"*\", new globalThis.Blob([new TextEncoder().encode(JSON.stringify(toHelperObject(data, \"\", result)))], {\n type: \"application/json; charset=utf-8\",\n }));\n return result;\n }\n FormData.to = to;\n function toHelperObject(data, name, form) {\n return Object.entries(data).reduce((result, [key, value]) => {\n value instanceof Blob\n ? form.append(name ? `${name}.${key}` : key, value)\n : typeof value == \"object\" && value\n ? Array.isArray(value)\n ? (result[key] = toHelperArray(value, name ? `${name}.${key}` : key, form))\n : (result[key] = toHelperObject(value, name ? `${name}.${key}` : key, form))\n : (result[key] = value);\n return result;\n }, {});\n }\n function toHelperArray(data, name, form) {\n return data.reduce((result, value) => {\n typeof value == \"object\" && value\n ? Array.isArray(value)\n ? result.push(toHelperArray(value, name, form))\n : result.push(toHelperObject(value, name, form))\n : result.push(value);\n return result;\n }, []);\n }\n async function from(form) {\n const result = {};\n for (const [name, value] of form.entries())\n await set(result, name.split(\".\"), value);\n return result;\n }\n FormData.from = from;\n async function set(data, [head, ...tail], value) {\n if (tail.length == 0)\n value instanceof Blob && value.type.startsWith(\"application/json\")\n ? head == \"*\"\n ? merge(data, JSON.parse(await value.text()))\n : typeof data[head] == \"object\" && data[head]\n ? merge(data[head], JSON.parse(await value.text()))\n : (data[head] = JSON.parse(await value.text()))\n : (data[head] = value);\n else\n set(typeof data[head] == \"object\" && data[head] ? data[head] : (data[head] = {}), tail, value);\n }\n function merge(target, ...sources) {\n if (sources.length) {\n const [head, ...tail] = sources;\n Object.entries(head).forEach(([key, value]) => isObject(value)\n ? merge(isObject(target[key]) ? target[key] : (target[key] = {}), value)\n : (target[key] = head[key]));\n merge(target, ...tail);\n }\n }\n function isObject(value) {\n return value && typeof value == \"object\" && !Array.isArray(value);\n }\n FormData.isObject = isObject;\n})(FormData || (FormData = {}));\n//# sourceMappingURL=FormData.js.map","export function stringify(data) {\n const result = [];\n const map = (key, value) => {\n switch (typeof value) {\n default:\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n result.push(`${key}=${encodeURIComponent(value.toString())}`);\n break;\n case \"undefined\":\n break;\n case \"object\":\n for (const property in value)\n if (Object.prototype.hasOwnProperty.call(value, property))\n map(key ? key + `[${property}]` : property, value[property]);\n break;\n }\n };\n map(\"\", data);\n return result.join(\"&\");\n}\nexport function parse(data) {\n const convertArrays = (target) => {\n return typeof target == \"object\" &&\n Object.keys(target)\n .sort()\n .every((k, i) => `${k}` == `${i}`)\n ? Object.entries(target)\n .sort()\n .map(entry => (typeof entry[1] == \"object\" ? convertArrays(entry[1]) : entry[1]))\n : typeof target == \"object\"\n ? Object.fromEntries(Object.entries(target).map(entry => [entry[0], convertArrays(entry[1])]))\n : target;\n };\n const insert = (target, key, value) => {\n target[key[0]] = key.length > 1 ? insert(target[key[0]] ?? {}, key.slice(1), value) : value;\n return target;\n };\n const entries = data\n .split(\"&\")\n .map(d => d.split(\"=\", 2))\n .map(([k, v]) => [\n decodeURIComponent(k)\n .split(\"[\")\n .map(p => p.replace(\"]\", \"\")),\n decodeURIComponent(v.replace(/\\+/g, \" \")),\n ]);\n return entries.reduce((result, [key, value]) => convertArrays(insert(result, key, value)), {});\n}\n//# sourceMappingURL=Search.js.map","import { Client } from \"./Client\";\nimport { fetch } from \"./fetch\";\nimport { FormData } from \"./FormData\";\nimport * as http from \"./http\";\nimport { Method } from \"./Method\";\nimport * as Parser from \"./Parser\";\nimport { Request } from \"./Request\";\nimport { Response } from \"./Response\";\nimport * as Search from \"./Search\";\nimport * as Serializer from \"./Serializer\";\nimport { Socket } from \"./Socket\";\nParser.add(async (request) => await request.text(), \"text/plain\", \"text/html\");\nParser.add(async (request) => await request.json(), \"application/json\");\nParser.add(async (request) => FormData.from(await request.formData()), \"multipart/form-data\");\nParser.add(async (request) => Search.parse(await request.text()), \"application/x-www-form-urlencoded\");\nSerializer.add(async (body) => (typeof body == \"string\" ? body : body.toString()), \"text/plain\", \"text/html\");\nSerializer.add(async (body) => JSON.stringify(body), \"application/json\");\nSerializer.add(async (body) => Search.stringify(body), \"application/x-www-form-urlencoded\");\nSerializer.add(async (body) => (body instanceof globalThis.FormData ? body : FormData.to(body)), \"multipart/form-data\");\nexport { Client, fetch, FormData, Method, Parser, Request, Response, Search, Serializer, Socket, http };\n//# sourceMappingURL=index.js.map","export interface Clearable {\n\tclear(): Promise<void>\n}\nexport namespace Clearable {\n\texport function is(value: Clearable | any): value is Clearable {\n\t\treturn value && typeof value == \"object\" && typeof value.clear == \"function\"\n\t}\n}\n","smoothly-form {\n\tdisplay: block;\n\tposition: relative;\n\t--background-color: var(--smoothly-color-shade);\n\t--text-color: var(--smoothly-color-contrast)\n}\nsmoothly-form > form {\n\tposition: relative;\n\tmin-width: 15em;\n}\nsmoothly-form > form > fieldset {\n\tdisplay: flex;\n\tflex-flow: row wrap;\n\tmargin-inline-start: unset;\n\tmargin-inline-end: unset;\n\tpadding-block-start: unset;\n\tpadding-inline-start: unset;\n\tpadding-inline-end: unset;\n\tpadding-block-end: unset;\n\tmin-inline-size: unset;\n\tborder-width: unset;\n\tborder-style: unset;\n\tborder-color: unset;\n\tborder-image: unset;\n}\nsmoothly-form > form > fieldset > * {\n\tflex-grow: 1;\n\tmin-width: 10em;\n\tflex-basis: 40%;\n}\nsmoothly-form[looks=\"grid\"] > form > fieldset {\n\tborder: rgba(var(--text-color), .5) solid .5px;\n}\nsmoothly-form[looks=\"line\"] > form > fieldset,\nsmoothly-form[looks=\"border\"] > form > fieldset {\n\tgap: 2em\n}\n\nsmoothly-form > form > div {\n\tdisplay: flex;\n\tjustify-content: end;\n\tgap: 1em;\n}\n","import { Component, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { http } from \"cloudly-http\"\nimport { Color } from \"../../model\"\nimport { Data } from \"../../model/Data\"\nimport { Notice } from \"../../model/Notice\"\nimport { Changeable } from \"../input/Changeable\"\nimport { Clearable } from \"../input/Clearable\"\nimport { Looks } from \"../input/Looks\"\nimport { Submittable } from \"../input/Submittable\"\n\n@Component({\n\ttag: \"smoothly-form\",\n\tstyleUrl: \"style.css\",\n})\nexport class SmoothlyForm implements Changeable, Clearable, Submittable {\n\tprivate clearables = new Map<string, Clearable>()\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ mutable: true }) value: Readonly<Data> = {}\n\t@Prop({ reflect: true, attribute: \"looks\" }) looks: \"plain\" | \"grid\" | \"border\" | \"line\" = \"plain\"\n\t@Prop() name?: string\n\t@Prop() method?: \"GET\" | \"POST\"\n\t@Prop() action?: string\n\t@Prop({ mutable: true, reflect: true }) processing: boolean\n\t@Prop() prevent = true\n\t@Event() smoothlyFormInput: EventEmitter<Data>\n\t@Event() smoothlyFormSubmit: EventEmitter<Data>\n\t@State() notice?: Notice\n\t@Prop({ mutable: true, reflect: true }) changed = false\n\tprivate listeners: { changed?: ((parent: Changeable) => Promise<void>)[] } = {}\n\n\tlisten(property: \"changed\", listener: (parent: Changeable) => Promise<void>): void {\n\t\t;(this.listeners[property] ??= []).push(listener)\n\t\tlistener(this)\n\t}\n\t@Watch(\"value\")\n\twatchValue() {\n\t\tthis.changed = Object.values(this.value).filter(value => Boolean(value)).length > 0\n\t\tthis.listeners.changed?.forEach(l => l(this))\n\t}\n\t@Listen(\"smoothlyInputLooks\")\n\tsmoothlyInputLooksHandler(event: CustomEvent<(looks: Looks, color: Color | undefined) => void>) {\n\t\tevent.stopPropagation()\n\t\tevent.detail(this.looks, this.color)\n\t}\n\t@Listen(\"smoothlyInput\")\n\tasync smoothlyInputHandler(event: CustomEvent<Record<string, any>>): Promise<void> {\n\t\tthis.notice = undefined\n\t\tthis.smoothlyFormInput.emit(\n\t\t\t(this.value = Object.entries(event.detail).reduce(\n\t\t\t\t(r, [name, value]) => Data.set(r, name.split(\".\"), value),\n\t\t\t\tthis.value\n\t\t\t))\n\t\t)\n\t\tif (Clearable.is(event.target)) {\n\t\t\tconst clearable = event.target\n\t\t\tObject.keys(event.detail).forEach(key => this.clearables.set(key, clearable))\n\t\t}\n\t}\n\t@Listen(\"smoothlySubmit\")\n\tasync smoothlySubmitHandler(event: CustomEvent): Promise<void> {\n\t\tthis.processing = true\n\t\tthis.submit()\n\t\tthis.processing = false\n\t}\n\t@Listen(\"smoothlyInputLoad\")\n\tasync SmoothlyInputLoadHandler(event: CustomEvent<(parent: SmoothlyForm) => void>): Promise<void> {\n\t\tevent.detail(this)\n\t}\n\t@Method()\n\tasync submit(): Promise<void> {\n\t\tthis.smoothlyFormSubmit.emit(this.value)\n\t\tif (this.action) {\n\t\t\tconst response = await http.fetch(\n\t\t\t\tthis.method == \"POST\"\n\t\t\t\t\t? { method: \"POST\", url: this.action, body: this.value }\n\t\t\t\t\t: { url: `${this.action}?${http.Search.stringify(this.value)}` }\n\t\t\t)\n\t\t\tif (response.status >= 200 && response.status < 300) {\n\t\t\t\tthis.notice = Notice.succeeded(\"Form sucessfully submitted.\")\n\t\t\t\tawait this.clear()\n\t\t\t} else\n\t\t\t\tthis.notice = Notice.failed(\"Failed to submit form.\")\n\t\t}\n\t}\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tnew Set(this.clearables.values()).forEach(clearable => clearable.clear())\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t{this.notice ? <smoothly-notification notice={this.notice}></smoothly-notification> : []}\n\t\t\t\t<smoothly-spinner active={this.processing}></smoothly-spinner>\n\t\t\t\t<form onSubmit={!this.prevent ? undefined : e => e.preventDefault()} name={this.name}>\n\t\t\t\t\t<fieldset>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</fieldset>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<slot name=\"clear\"></slot>\n\t\t\t\t\t\t<slot name=\"submit\"></slot>\n\t\t\t\t\t</div>\n\t\t\t\t</form>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n\twidth: 100%;\n\theight: 100%;\n}\n:host[hidden] {\n\tdisplay: none;\n}\n:host > iframe {\n\tborder: none;\n\tpadding: none;\n\tmargin: none;\n}\n","import { Component, Element, Event, EventEmitter, Method, Prop } from \"@stencil/core\"\nimport { Message, Trigger } from \"../../model\"\n\n@Component({\n\ttag: \"smoothly-frame\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyFrame {\n\t@Prop() url: string\n\t@Prop() name: string\n\t@Event() trigger: EventEmitter<Trigger>\n\t@Event() message2: EventEmitter<Message<any>>\n\t@Element() element?: HTMLElement\n\tget contentWindow(): Window | undefined {\n\t\tconst iframe =\n\t\t\tthis.element && this.element.firstElementChild ? (this.element.firstElementChild as HTMLIFrameElement) : undefined\n\t\treturn (iframe && iframe.contentWindow) || undefined\n\t}\n\t@Prop()\n\torigin: string | undefined\n\n\tget defaultOrigin(): string {\n\t\tconst match = this.url.match(/^(([a-z]+\\+)*[a-z]+:\\/\\/)?[^/^\\n]+/)\n\t\treturn match ? match[0] : \"*\"\n\t}\n\tcomponentDidLoad() {\n\t\tif (this.contentWindow)\n\t\t\tMessage.listen(\n\t\t\t\tthis.origin ?? this.defaultOrigin,\n\t\t\t\t(destination: string, content: any) => {\n\t\t\t\t\tif (destination == this.name)\n\t\t\t\t\t\tif (Trigger.is(content))\n\t\t\t\t\t\t\tthis.trigger.emit(content)\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthis.message2.emit({ destination, content })\n\t\t\t\t},\n\t\t\t\twindow\n\t\t\t)\n\t}\n\tsend(message2: Message<any>): void\n\tsend(destination: string, content: Trigger | any): void\n\t@Method()\n\tasync send(message2: string | Message<any>, content?: Trigger | any): Promise<void> {\n\t\tif (typeof message2 == \"string\")\n\t\t\tMessage.send((this.origin ?? this.defaultOrigin) + \"#\" + message2, content, this.contentWindow)\n\t\telse if (Message.is(message2) && this.contentWindow)\n\t\t\tMessage.send(\n\t\t\t\t{\n\t\t\t\t\tdestination: (this.origin ?? this.defaultOrigin) + \"#\" + message2.destination,\n\t\t\t\t\tcontent: message2.destination,\n\t\t\t\t},\n\t\t\t\tthis.contentWindow\n\t\t\t)\n\t}\n\n\trender() {\n\t\treturn []\n\t}\n}\n",":host[size] {\n\tbackground: none;\n}\n:host {\n\tdisplay: block;\n}\n:host[hidden] {\n\tdisplay: none;\n}\n:host[size=tiny] {\n\twidth: 1.2em;\n\theight: 1.2em;\n}\n:host[size=small] {\n\twidth: 1.4em;\n\theight: 1.4em;\n}\n:host[size=medium] {\n\twidth: 1.8em;\n\theight: 1.8em;\n}\n:host[size=large] {\n\twidth: 2.8em;\n\theight: 2.8em;\n}\n:host[size=xlarge] {\n\twidth: 4em;\n\theight: 4em;\n}\n","import { Component, h, Host, Prop, State, Watch } from \"@stencil/core\"\nimport { Color, Fill } from \"../../model\"\nimport { Icon } from \"../../model\"\n\n@Component({\n\ttag: \"smoothly-icon\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyIcon {\n\t@Prop({ reflect: true }) color: Color\n\t@Prop({ reflect: true }) fill: Fill = \"solid\"\n\t@Prop({ reflect: true }) name: Icon | \"empty\" = \"empty\"\n\t@Prop({ reflect: true }) size: \"tiny\" | \"small\" | \"medium\" | \"large\" = \"medium\"\n\t@Prop() toolTip?: string\n\t@State() document?: string\n\t@Watch(\"name\")\n\tasync loadDocument(): Promise<string> {\n\t\tlet result: string | undefined\n\t\tif (this.name != \"empty\") {\n\t\t\tresult = await Icon.load(this.name)\n\t\t\tresult = result\n\t\t\t\t?.replace(/(?<=^<svg\\s?)/, `$& role=\"img\"`)\n\t\t\t\t.replace(` width=\"512\" height=\"512\"`, \"\")\n\t\t\t\t.replace(/stroke:#000;/gi, \"\")\n\t\t\tif (result?.includes(\"<title>\"))\n\t\t\t\tresult = result.replace(/(<title>)[\\w\\d\\s-]*(<\\/title>)/, `<title>${this.toolTip || \"\"}</title>`)\n\t\t\telse\n\t\t\t\tresult = result?.replace(/(.*>)(<\\/svg>$)/, `$1<title>${this.toolTip || \"\"}</title>$2`)\n\t\t}\n\t\treturn (\n\t\t\tresult ??\n\t\t\t`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n\t\t<title>Empty</title>\n\t\t</svg>`\n\t\t)\n\t}\n\tasync componentWillLoad() {\n\t\tthis.document = await this.loadDocument()\n\t}\n\trender() {\n\t\treturn <Host innerHTML={this.document} />\n\t}\n}\n","icon-demo {\n\tdisplay: block;\n\t\n}\nicon-demo[hidden] {\n\tdisplay: none;\n}\nicon-demo > content {\n\tdisplay: flex;\n\tflex-flow: row wrap;\n}\nicon-demo > content > * {\n\tmargin: 1cm;\n}\n","import { Component, h } from \"@stencil/core\"\nimport { Icon } from \"../../model\"\n@Component({\n\ttag: \"smoothly-icon-demo\",\n\tstyleUrl: \"./style.css\",\n\tscoped: true,\n})\nexport class SmoothlyIconDemo {\n\tpage = 0\n\trender() {\n\t\treturn [\n\t\t\t<h1>Icons</h1>,\n\t\t\t<content>\n\t\t\t\t{[\n\t\t\t\t\t\"add-circle\",\n\t\t\t\t\t\"add\",\n\t\t\t\t\t\"airplane\",\n\t\t\t\t\t\"alarm\",\n\t\t\t\t\t\"albums\",\n\t\t\t\t\t\"alert-circle\",\n\t\t\t\t\t\"alert\",\n\t\t\t\t\t\"american-football\",\n\t\t\t\t\t\"analytics\",\n\t\t\t\t\t\"aperture\",\n\t\t\t\t\t\"apps\",\n\t\t\t\t\t\"archive\",\n\t\t\t\t\t\"arrow-back-circle\",\n\t\t\t\t\t\"arrow-back\",\n\t\t\t\t\t\"arrow-down-circle\",\n\t\t\t\t\t\"arrow-down\",\n\t\t\t\t\t\"arrow-forward-circle\",\n\t\t\t\t\t\"arrow-forward\",\n\t\t\t\t\t\"arrow-redo-circle\",\n\t\t\t\t\t\"arrow-redo\",\n\t\t\t\t\t\"arrow-undo-circle\",\n\t\t\t\t\t\"arrow-undo\",\n\t\t\t\t\t\"arrow-up-circle\",\n\t\t\t\t\t\"arrow-up\",\n\t\t\t\t\t\"at-circle\",\n\t\t\t\t\t\"at\",\n\t\t\t\t\t\"attach\",\n\t\t\t\t\t\"backspace\",\n\t\t\t\t\t\"bandage\",\n\t\t\t\t\t\"barbell\",\n\t\t\t\t\t\"bar-chart\",\n\t\t\t\t\t\"barcode\",\n\t\t\t\t\t\"baseball\",\n\t\t\t\t\t\"basketball\",\n\t\t\t\t\t\"basket\",\n\t\t\t\t\t\"battery-charging\",\n\t\t\t\t\t\"battery-dead\",\n\t\t\t\t\t\"battery-full\",\n\t\t\t\t\t\"battery-half\",\n\t\t\t\t\t\"beaker\",\n\t\t\t\t\t\"bed\",\n\t\t\t\t\t\"beer\",\n\t\t\t\t\t\"bicycle\",\n\t\t\t\t\t\"bluetooth\",\n\t\t\t\t\t\"boat\",\n\t\t\t\t\t\"body\",\n\t\t\t\t\t\"bonfire\",\n\t\t\t\t\t\"bookmarks\",\n\t\t\t\t\t\"bookmark\",\n\t\t\t\t\t\"book\",\n\t\t\t\t\t\"briefcase\",\n\t\t\t\t\t\"browsers\",\n\t\t\t\t\t\"brush\",\n\t\t\t\t\t\"bug\",\n\t\t\t\t\t\"build\",\n\t\t\t\t\t\"bulb\",\n\t\t\t\t\t\"business\",\n\t\t\t\t\t\"bus\",\n\t\t\t\t\t\"cafe\",\n\t\t\t\t\t\"calculator\",\n\t\t\t\t\t\"calendar\",\n\t\t\t\t\t\"call\",\n\t\t\t\t\t\"camera-reverse\",\n\t\t\t\t\t\"camera\",\n\t\t\t\t\t\"card\",\n\t\t\t\t\t\"caret-back-circle\",\n\t\t\t\t\t\"caret-back\",\n\t\t\t\t\t\"caret-down-circle\",\n\t\t\t\t\t\"caret-down\",\n\t\t\t\t\t\"caret-forward-circle\",\n\t\t\t\t\t\"caret-forward\",\n\t\t\t\t\t\"caret-up-circle\",\n\t\t\t\t\t\"caret-up\",\n\t\t\t\t\t\"car-sport\",\n\t\t\t\t\t\"car\",\n\t\t\t\t\t\"cart\",\n\t\t\t\t\t\"cash\",\n\t\t\t\t\t\"cellular\",\n\t\t\t\t\t\"chatbox-ellipses\",\n\t\t\t\t\t\"chatbox\",\n\t\t\t\t\t\"chatbubble-ellipses\",\n\t\t\t\t\t\"chatbubbles\",\n\t\t\t\t\t\"chatbubble\",\n\t\t\t\t\t\"checkbox\",\n\t\t\t\t\t\"checkmark-circle\",\n\t\t\t\t\t\"checkmark-done-circle\",\n\t\t\t\t\t\"checkmark-done\",\n\t\t\t\t\t\"checkmark\",\n\t\t\t\t\t\"chevron-back-circle\",\n\t\t\t\t\t\"chevron-back\",\n\t\t\t\t\t\"chevron-down-circle\",\n\t\t\t\t\t\"chevron-down\",\n\t\t\t\t\t\"chevron-forward-circle\",\n\t\t\t\t\t\"chevron-forward\",\n\t\t\t\t\t\"chevron-up-circle\",\n\t\t\t\t\t\"chevron-up\",\n\t\t\t\t\t\"clipboard\",\n\t\t\t\t\t\"close-circle\",\n\t\t\t\t\t\"close\",\n\t\t\t\t\t\"cloud-circle\",\n\t\t\t\t\t\"cloud-done\",\n\t\t\t\t\t\"cloud-download\",\n\t\t\t\t\t\"cloud-offline\",\n\t\t\t\t\t\"cloud\",\n\t\t\t\t\t\"cloud-upload\",\n\t\t\t\t\t\"cloudy-night\",\n\t\t\t\t\t\"cloudy\",\n\t\t\t\t\t\"code-download\",\n\t\t\t\t\t\"code-slash\",\n\t\t\t\t\t\"code\",\n\t\t\t\t\t\"code-working\",\n\t\t\t\t\t\"cog\",\n\t\t\t\t\t\"color-fill\",\n\t\t\t\t\t\"color-filter\",\n\t\t\t\t\t\"color-palette\",\n\t\t\t\t\t\"color-wand\",\n\t\t\t\t\t\"compass\",\n\t\t\t\t\t\"construct\",\n\t\t\t\t\t\"contract\",\n\t\t\t\t\t\"contrast\",\n\t\t\t\t\t\"copy\",\n\t\t\t\t\t\"create\",\n\t\t\t\t\t\"crop\",\n\t\t\t\t\t\"cube\",\n\t\t\t\t\t\"cut\",\n\t\t\t\t\t\"desktop\",\n\t\t\t\t\t\"disc\",\n\t\t\t\t\t\"document-attach\",\n\t\t\t\t\t\"documents\",\n\t\t\t\t\t\"document\",\n\t\t\t\t\t\"document-text\",\n\t\t\t\t\t\"download\",\n\t\t\t\t\t\"duplicate\",\n\t\t\t\t\t\"ear\",\n\t\t\t\t\t\"earth\",\n\t\t\t\t\t\"easel\",\n\t\t\t\t\t\"egg\",\n\t\t\t\t\t\"ellipse\",\n\t\t\t\t\t\"ellipsis-horizontal-circle\",\n\t\t\t\t\t\"ellipsis-horizontal\",\n\t\t\t\t\t\"ellipsis-vertical-circle\",\n\t\t\t\t\t\"ellipsis-vertical\",\n\t\t\t\t\t\"enter\",\n\t\t\t\t\t\"exit\",\n\t\t\t\t\t\"expand\",\n\t\t\t\t\t\"eyedrop\",\n\t\t\t\t\t\"eye-off\",\n\t\t\t\t\t\"eye\",\n\t\t\t\t\t\"fast-food\",\n\t\t\t\t\t\"female\",\n\t\t\t\t\t\"file-tray-full\",\n\t\t\t\t\t\"file-tray-stacked\",\n\t\t\t\t\t\"file-tray\",\n\t\t\t\t\t\"film\",\n\t\t\t\t\t\"filter\",\n\t\t\t\t\t\"finger-print\",\n\t\t\t\t\t\"fitness\",\n\t\t\t\t\t\"flag\",\n\t\t\t\t\t\"flame\",\n\t\t\t\t\t\"flashlight\",\n\t\t\t\t\t\"flash-off\",\n\t\t\t\t\t\"flash\",\n\t\t\t\t\t\"flask\",\n\t\t\t\t\t\"flower\",\n\t\t\t\t\t\"folder-open\",\n\t\t\t\t\t\"folder\",\n\t\t\t\t\t\"football\",\n\t\t\t\t\t\"funnel\",\n\t\t\t\t\t\"game-controller\",\n\t\t\t\t\t\"gift\",\n\t\t\t\t\t\"git-branch\",\n\t\t\t\t\t\"git-commit\",\n\t\t\t\t\t\"git-compare\",\n\t\t\t\t\t\"git-merge\",\n\t\t\t\t\t\"git-network\",\n\t\t\t\t\t\"git-pull-request\",\n\t\t\t\t\t\"glasses\",\n\t\t\t\t\t\"globe\",\n\t\t\t\t\t\"golf\",\n\t\t\t\t\t\"grid\",\n\t\t\t\t\t\"hammer\",\n\t\t\t\t\t\"hand-left\",\n\t\t\t\t\t\"hand-right\",\n\t\t\t\t\t\"happy\",\n\t\t\t\t\t\"hardware-chip\",\n\t\t\t\t\t\"headset\",\n\t\t\t\t\t\"heart-circle\",\n\t\t\t\t\t\"heart-dislike-circle\",\n\t\t\t\t\t\"heart-dislike\",\n\t\t\t\t\t\"heart-half\",\n\t\t\t\t\t\"heart\",\n\t\t\t\t\t\"help-buoy\",\n\t\t\t\t\t\"help-circle\",\n\t\t\t\t\t\"help\",\n\t\t\t\t\t\"home\",\n\t\t\t\t\t\"hourglass\",\n\t\t\t\t\t\"ice-cream\",\n\t\t\t\t\t\"images\",\n\t\t\t\t\t\"image\",\n\t\t\t\t\t\"infinite\",\n\t\t\t\t\t\"information-circle\",\n\t\t\t\t\t\"information\",\n\t\t\t\t\t\"journal\",\n\t\t\t\t\t\"keypad\",\n\t\t\t\t\t\"key\",\n\t\t\t\t\t\"language\",\n\t\t\t\t\t\"laptop\",\n\t\t\t\t\t\"layers\",\n\t\t\t\t\t\"leaf\",\n\t\t\t\t\t\"library\",\n\t\t\t\t\t\"link\",\n\t\t\t\t\t\"list-circle\",\n\t\t\t\t\t\"list\",\n\t\t\t\t\t\"locate\",\n\t\t\t\t\t\"location\",\n\t\t\t\t\t\"lock-closed\",\n\t\t\t\t\t\"lock-open\",\n\t\t\t\t\t\"log-in\",\n\t\t\t\t\t\"logo-amazon\",\n\t\t\t\t\t\"logo-amplify\",\n\t\t\t\t\t\"logo-android\",\n\t\t\t\t\t\"logo-angular\",\n\t\t\t\t\t\"logo-apple-appstore\",\n\t\t\t\t\t\"logo-apple\",\n\t\t\t\t\t\"logo-behance\",\n\t\t\t\t\t\"logo-bitbucket\",\n\t\t\t\t\t\"logo-bitcoin\",\n\t\t\t\t\t\"logo-buffer\",\n\t\t\t\t\t\"logo-capacitor\",\n\t\t\t\t\t\"logo-chrome\",\n\t\t\t\t\t\"logo-closed-captioning\",\n\t\t\t\t\t\"logo-codepen\",\n\t\t\t\t\t\"logo-css3\",\n\t\t\t\t\t\"logo-designernews\",\n\t\t\t\t\t\"logo-docker\",\n\t\t\t\t\t\"logo-dribbble\",\n\t\t\t\t\t\"logo-dropbox\",\n\t\t\t\t\t\"logo-edge\",\n\t\t\t\t\t\"logo-electron\",\n\t\t\t\t\t\"logo-euro\",\n\t\t\t\t\t\"logo-facebook\",\n\t\t\t\t\t\"logo-firebase\",\n\t\t\t\t\t\"logo-firefox\",\n\t\t\t\t\t\"logo-flickr\",\n\t\t\t\t\t\"logo-foursquare\",\n\t\t\t\t\t\"logo-github\",\n\t\t\t\t\t\"logo-gitlab\",\n\t\t\t\t\t\"logo-google-playstore\",\n\t\t\t\t\t\"logo-google\",\n\t\t\t\t\t\"logo-hackernews\",\n\t\t\t\t\t\"logo-html5\",\n\t\t\t\t\t\"logo-instagram\",\n\t\t\t\t\t\"logo-ionic\",\n\t\t\t\t\t\"logo-ionitron\",\n\t\t\t\t\t\"logo-javascript\",\n\t\t\t\t\t\"logo-laravel\",\n\t\t\t\t\t\"logo-linkedin\",\n\t\t\t\t\t\"logo-markdown\",\n\t\t\t\t\t\"logo-medium\",\n\t\t\t\t\t\"logo-nodejs\",\n\t\t\t\t\t\"logo-no-smoking\",\n\t\t\t\t\t\"logo-npm\",\n\t\t\t\t\t\"logo-octocat\",\n\t\t\t\t\t\"logo-paypal\",\n\t\t\t\t\t\"logo-pinterest\",\n\t\t\t\t\t\"logo-playstation\",\n\t\t\t\t\t\"logo-pwa\",\n\t\t\t\t\t\"logo-python\",\n\t\t\t\t\t\"logo-react\",\n\t\t\t\t\t\"logo-reddit\",\n\t\t\t\t\t\"logo-rss\",\n\t\t\t\t\t\"logo-sass\",\n\t\t\t\t\t\"logo-skype\",\n\t\t\t\t\t\"logo-slack\",\n\t\t\t\t\t\"logo-snapchat\",\n\t\t\t\t\t\"logo-soundcloud\",\n\t\t\t\t\t\"logo-stackoverflow\",\n\t\t\t\t\t\"logo-steam\",\n\t\t\t\t\t\"logo-stencil\",\n\t\t\t\t\t\"logo-tiktok\",\n\t\t\t\t\t\"logo-tumblr\",\n\t\t\t\t\t\"logo-tux\",\n\t\t\t\t\t\"logo-twitch\",\n\t\t\t\t\t\"logo-twitter\",\n\t\t\t\t\t\"logo-usd\",\n\t\t\t\t\t\"log-out\",\n\t\t\t\t\t\"logo-web-component\",\n\t\t\t\t\t\"logo-venmo\",\n\t\t\t\t\t\"logo-whatsapp\",\n\t\t\t\t\t\"logo-vimeo\",\n\t\t\t\t\t\"logo-windows\",\n\t\t\t\t\t\"logo-vk\",\n\t\t\t\t\t\"logo-wordpress\",\n\t\t\t\t\t\"logo-vue\",\n\t\t\t\t\t\"logo-xbox\",\n\t\t\t\t\t\"logo-xing\",\n\t\t\t\t\t\"logo-yahoo\",\n\t\t\t\t\t\"logo-yen\",\n\t\t\t\t\t\"logo-youtube\",\n\t\t\t\t\t\"magnet\",\n\t\t\t\t\t\"mail-open\",\n\t\t\t\t\t\"mail\",\n\t\t\t\t\t\"mail-unread\",\n\t\t\t\t\t\"male-female\",\n\t\t\t\t\t\"male\",\n\t\t\t\t\t\"man\",\n\t\t\t\t\t\"map\",\n\t\t\t\t\t\"medal\",\n\t\t\t\t\t\"medical\",\n\t\t\t\t\t\"medkit\",\n\t\t\t\t\t\"megaphone\",\n\t\t\t\t\t\"menu\",\n\t\t\t\t\t\"mic-circle\",\n\t\t\t\t\t\"mic-off-circle\",\n\t\t\t\t\t\"mic-off\",\n\t\t\t\t\t\"mic\",\n\t\t\t\t\t\"moon\",\n\t\t\t\t\t\"move\",\n\t\t\t\t\t\"musical-notes\",\n\t\t\t\t\t\"musical-note\",\n\t\t\t\t\t\"navigate-circle\",\n\t\t\t\t\t\"navigate\",\n\t\t\t\t\t\"newspaper\",\n\t\t\t\t\t\"notifications-circle\",\n\t\t\t\t\t\"notifications-off-circle\",\n\t\t\t\t\t\"notifications-off\",\n\t\t\t\t\t\"notifications\",\n\t\t\t\t\t\"nuclear\",\n\t\t\t\t\t\"nutrition\",\n\t\t\t\t\t\"open\",\n\t\t\t\t\t\"options\",\n\t\t\t\t\t\"paper-plane\",\n\t\t\t\t\t\"partly-sunny\",\n\t\t\t\t\t\"pause-circle\",\n\t\t\t\t\t\"pause\",\n\t\t\t\t\t\"paw\",\n\t\t\t\t\t\"pencil\",\n\t\t\t\t\t\"people-circle\",\n\t\t\t\t\t\"people\",\n\t\t\t\t\t\"person-add\",\n\t\t\t\t\t\"person-circle\",\n\t\t\t\t\t\"person-remove\",\n\t\t\t\t\t\"person\",\n\t\t\t\t\t\"phone-landscape\",\n\t\t\t\t\t\"phone-portrait\",\n\t\t\t\t\t\"pie-chart\",\n\t\t\t\t\t\"pin\",\n\t\t\t\t\t\"pint\",\n\t\t\t\t\t\"pizza\",\n\t\t\t\t\t\"planet\",\n\t\t\t\t\t\"play-back-circle\",\n\t\t\t\t\t\"play-back\",\n\t\t\t\t\t\"play-circle\",\n\t\t\t\t\t\"play-forward-circle\",\n\t\t\t\t\t\"play-forward\",\n\t\t\t\t\t\"play-skip-back-circle\",\n\t\t\t\t\t\"play-skip-back\",\n\t\t\t\t\t\"play-skip-forward-circle\",\n\t\t\t\t\t\"play-skip-forward\",\n\t\t\t\t\t\"play\",\n\t\t\t\t\t\"podium\",\n\t\t\t\t\t\"power\",\n\t\t\t\t\t\"pricetags\",\n\t\t\t\t\t\"pricetag\",\n\t\t\t\t\t\"print\",\n\t\t\t\t\t\"pulse\",\n\t\t\t\t\t\"push\",\n\t\t\t\t\t\"qr-code\",\n\t\t\t\t\t\"radio-button-off\",\n\t\t\t\t\t\"radio-button-on\",\n\t\t\t\t\t\"radio\",\n\t\t\t\t\t\"rainy\",\n\t\t\t\t\t\"reader\",\n\t\t\t\t\t\"receipt\",\n\t\t\t\t\t\"recording\",\n\t\t\t\t\t\"refresh-circle\",\n\t\t\t\t\t\"refresh\",\n\t\t\t\t\t\"reload-circle\",\n\t\t\t\t\t\"reload\",\n\t\t\t\t\t\"remove-circle\",\n\t\t\t\t\t\"remove\",\n\t\t\t\t\t\"reorder-four\",\n\t\t\t\t\t\"reorder-three\",\n\t\t\t\t\t\"reorder-two\",\n\t\t\t\t\t\"repeat\",\n\t\t\t\t\t\"resize\",\n\t\t\t\t\t\"restaurant\",\n\t\t\t\t\t\"return-down-back\",\n\t\t\t\t\t\"return-down-forward\",\n\t\t\t\t\t\"return-up-back\",\n\t\t\t\t\t\"return-up-forward\",\n\t\t\t\t\t\"ribbon\",\n\t\t\t\t\t\"rocket\",\n\t\t\t\t\t\"rose\",\n\t\t\t\t\t\"sad\",\n\t\t\t\t\t\"save\",\n\t\t\t\t\t\"scan-circle\",\n\t\t\t\t\t\"scan\",\n\t\t\t\t\t\"school\",\n\t\t\t\t\t\"search-circle\",\n\t\t\t\t\t\"search\",\n\t\t\t\t\t\"send\",\n\t\t\t\t\t\"server\",\n\t\t\t\t\t\"settings\",\n\t\t\t\t\t\"shapes\",\n\t\t\t\t\t\"share-social\",\n\t\t\t\t\t\"share\",\n\t\t\t\t\t\"shield-checkmark\",\n\t\t\t\t\t\"shield\",\n\t\t\t\t\t\"shirt\",\n\t\t\t\t\t\"shuffle\",\n\t\t\t\t\t\"skull\",\n\t\t\t\t\t\"snow\",\n\t\t\t\t\t\"speedometer\",\n\t\t\t\t\t\"square\",\n\t\t\t\t\t\"star-half\",\n\t\t\t\t\t\"star\",\n\t\t\t\t\t\"stats-chart\",\n\t\t\t\t\t\"stop-circle\",\n\t\t\t\t\t\"stop\",\n\t\t\t\t\t\"stopwatch\",\n\t\t\t\t\t\"subway\",\n\t\t\t\t\t\"sunny\",\n\t\t\t\t\t\"swap-horizontal\",\n\t\t\t\t\t\"swap-vertical\",\n\t\t\t\t\t\"sync-circle\",\n\t\t\t\t\t\"sync\",\n\t\t\t\t\t\"tablet-landscape\",\n\t\t\t\t\t\"tablet-portrait\",\n\t\t\t\t\t\"tennisball\",\n\t\t\t\t\t\"terminal\",\n\t\t\t\t\t\"text\",\n\t\t\t\t\t\"thermometer\",\n\t\t\t\t\t\"thumbs-down\",\n\t\t\t\t\t\"thumbs-up\",\n\t\t\t\t\t\"thunderstorm\",\n\t\t\t\t\t\"timer\",\n\t\t\t\t\t\"time\",\n\t\t\t\t\t\"today\",\n\t\t\t\t\t\"toggle\",\n\t\t\t\t\t\"trail-sign\",\n\t\t\t\t\t\"train\",\n\t\t\t\t\t\"transgender\",\n\t\t\t\t\t\"trash-bin\",\n\t\t\t\t\t\"trash\",\n\t\t\t\t\t\"trending-down\",\n\t\t\t\t\t\"trending-up\",\n\t\t\t\t\t\"triangle\",\n\t\t\t\t\t\"trophy\",\n\t\t\t\t\t\"tv\",\n\t\t\t\t\t\"umbrella\",\n\t\t\t\t\t\"walk\",\n\t\t\t\t\t\"wallet\",\n\t\t\t\t\t\"warning\",\n\t\t\t\t\t\"watch\",\n\t\t\t\t\t\"water\",\n\t\t\t\t\t\"videocam\",\n\t\t\t\t\t\"wifi\",\n\t\t\t\t\t\"wine\",\n\t\t\t\t\t\"volume-high\",\n\t\t\t\t\t\"volume-low\",\n\t\t\t\t\t\"volume-medium\",\n\t\t\t\t\t\"volume-mute\",\n\t\t\t\t\t\"volume-off\",\n\t\t\t\t\t\"woman\",\n\t\t\t\t]\n\t\t\t\t\t.slice(this.page * 100, 100)\n\t\t\t\t\t.map(name => (\n\t\t\t\t\t\t<smoothly-icon name={name as Icon} toolTip={name}></smoothly-icon>\n\t\t\t\t\t))}\n\t\t\t</content>,\n\t\t]\n\t}\n}\n","@import \"./shared.css\";\n\n:host {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-weight: var(--smoothly-font-weight);\n\tpadding: 0 0.4em;\n\toverflow: hidden;\n\tbackground-color: rgb(var(--background-color, var(--smoothly-color-shade)));\n\tcolor: rgb(var(--text-color, var(--smoothly-color-contrast)));\n}\n:host[hidden] {\n\tdisplay: none;\n}\n:host > div:nth-child(2) {\n\tmargin-left: 0.2em;\n}\n:host > div {\n\tposition: relative;\n\twidth: 100%;\n\theight: 100%;\n}\nlabel {\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0.6em;\n\topacity: 0.8;\n\tuser-select: none;\n\tcursor: inherit;\n\ttransform-origin: top left;\n\ttransition: transform 100ms ease;\n}\n:host:not([show-label]) label {\n\tdisplay: none;\n}\n:host:not([show-label]) input {\n\tpadding: 0.7em 0.3em 0.7em 0.4em;\n}\ninput {\n\tpadding: 1.2em 0.3em 0.2em 0.4em;\n\tbox-sizing: border-box;\n\twidth: 100%;\n\theight: 100%;\n\tborder: 0;\n\tz-index: 1;\n\tposition: relative;\n\tfont-size: 1rem;\n\tfont-family: var(--smoothly-font-family);\n\tbackground-color: rgb(var(--background-color, var(--smoothly-color-shade)));\n}\nsmoothly-icon {\n\tdisplay: none;\n\tposition: absolute;\n\tright: 0.2em;\n\ttop: 0.6em;\n}\n\ninput:invalid + label + smoothly-icon {\n\tdisplay: block;\n}\n:host > div > label {\n\tz-index: 1;\n\tpointer-events: none;\n}\n:host[placeholder] > div > label,\n:host.has-value > div > label,\n:host:focus-within > div > label {\n\ttop: 0.4em;\n\ttransform: scale(0.6);\n}\ninput:focus {\n\toutline: none;\n}\ninput:-webkit-autofill,\ninput:-webkit-autofill:hover,\ninput:-webkit-autofill:focus,\ninput:-webkit-autofill:active {\n\tbox-shadow: 0 0 0 40em rgb(var(--background-color, var(--smoothly-color-shade))) inset;\n\t-webkit-box-shadow: 0 0 0 40em rgb(var(--background-color, var(--smoothly-color-shade))) inset;\n}\ninput:-webkit-autofill,\ninput:-webkit-autofill + label {\n\t-webkit-text-fill-color: rgb(var(--text-color, var(--smoothly-color-contrast)));\n}\n","import { Component, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { Currency, Language, Locale } from \"isoly\"\nimport { Action, Converter, Direction, Formatter, get, Settings, State as TidilyState, StateEditor, Type } from \"tidily\"\nimport { Color } from \"../../model\"\nimport { Changeable } from \"./Changeable\"\nimport { Clearable } from \"./Clearable\"\nimport { Input } from \"./Input\"\nimport { Looks } from \"./Looks\"\n\n@Component({\n\ttag: \"smoothly-input\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInput implements Changeable, Clearable, Input {\n\tprivate inputElement: HTMLInputElement\n\t/** On re-render the input will blur. This boolean is meant to keep track of if input should keep its focus. */\n\tprivate keepFocusOnReRender = false\n\tprivate lastValue: any\n\tprivate state: Readonly<TidilyState> & Readonly<Settings>\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ reflect: true, mutable: true }) looks: Looks = \"plain\"\n\t@Prop({ reflect: true }) name: string\n\t@Prop({ mutable: true }) value: any\n\t@Prop({ reflect: true }) type: Type = \"text\"\n\t@Prop({ mutable: true, reflect: true }) required = false\n\t@Prop({ mutable: true }) minLength = 0\n\t@Prop({ reflect: true }) showLabel = true\n\t@Prop({ mutable: true }) maxLength: number = Number.POSITIVE_INFINITY\n\t@Prop({ mutable: true }) autocomplete = true\n\t@Prop({ mutable: true }) pattern: RegExp | undefined\n\t@Prop({ mutable: true, reflect: true }) placeholder: string | undefined\n\t@Prop({ mutable: true }) disabled = false\n\t@Prop({ mutable: true, reflect: true }) readonly = false\n\t@Prop({ reflect: true }) currency?: Currency\n\t@State() formatter: Formatter & Converter<any>\n\t@State() initialValue?: any\n\t@Event() smoothlyInputLooks: EventEmitter<(looks: Looks, color: Color) => void>\n\n\t@Prop({ mutable: true, reflect: true }) changed = false\n\tprivate listener: { changed?: (parent: Changeable) => Promise<void> } = {}\n\n\tlisten(property: \"changed\", listener: (parent: Changeable) => Promise<void>): void {\n\t\tthis.listener[property] = listener\n\t\tlistener(this)\n\t}\n\t@Listen(\"smoothlyInputLoad\")\n\tasync SmoothlyInputLoadHandler(event: CustomEvent<(parent: SmoothlyInput) => void>): Promise<void> {\n\t\tevent.stopPropagation()\n\t\tevent.detail(this)\n\t}\n\n\t@Watch(\"type\")\n\ttypeChange(): void {\n\t\tlet result: (Formatter & Converter<any>) | undefined\n\t\tswitch (this.type) {\n\t\t\tcase \"price\":\n\t\t\t\tresult = get(\"price\", this.currency)\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tresult = get(this.type, getLocale())\n\t\t\t\tbreak\n\t\t}\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\tthis.formatter = result || get(\"text\")!\n\t}\n\tprivate newState(state: TidilyState) {\n\t\tconst formatter = this.formatter\n\t\treturn formatter.format(StateEditor.copy(formatter.unformat(StateEditor.copy(state))))\n\t}\n\t@Event() smoothlyBlur: EventEmitter<void>\n\t@Event() smoothlyChange: EventEmitter<Record<string, any>>\n\t@Event() smoothlyInput: EventEmitter<Record<string, any>>\n\t@Watch(\"value\")\n\tvalueWatcher(value: any, before: any) {\n\t\tif (this.lastValue != value) {\n\t\t\tthis.lastValue = value\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\tvalue: this.newState({ value: this.formatter.toString(value), selection: this.state.selection }).value,\n\t\t\t}\n\t\t}\n\t\tif (value != before) {\n\t\t\tif (typeof value == \"string\")\n\t\t\t\tvalue = value.trim()\n\t\t\tthis.smoothlyInput.emit({ [this.name]: value })\n\t\t}\n\n\t\tthis.changed = Boolean(this.value)\n\t\tthis.listener.changed?.(this)\n\t}\n\t@Watch(\"currency\")\n\tonCurrency() {\n\t\tthis.state = {\n\t\t\t...this.state,\n\t\t\tvalue: this.newState({ value: this.formatter.toString(this.value), selection: this.state.selection }).value,\n\t\t\tpattern: this.newState({ value: this.formatter.toString(this.value), selection: this.state.selection }).pattern,\n\t\t}\n\t}\n\tcomponentWillLoad() {\n\t\tthis.typeChange()\n\t\tconst value = this.formatter.toString(this.value) || \"\"\n\t\tconst start = value.length\n\t\tthis.state = this.newState({\n\t\t\tvalue,\n\t\t\tselection: { start, end: start, direction: \"none\" },\n\t\t})\n\t\tthis.smoothlyInputLooks.emit((looks, color) => ((this.looks = looks), !this.color && (this.color = color)))\n\t}\n\tcomponentDidRender() {\n\t\tif (this.keepFocusOnReRender) {\n\t\t\tthis.inputElement.focus()\n\t\t\tthis.keepFocusOnReRender = false\n\t\t}\n\t}\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tthis.value = undefined\n\t}\n\t@Method()\n\tasync getFormData(name: string): Promise<Record<string, any>> {\n\t\tconst result: Record<string, any> = {}\n\t\tconst form = document.forms.namedItem(name)\n\t\tif (form) {\n\t\t\tconst elements = form.elements\n\t\t\tfor (let i = 0; i < elements.length; i++) {\n\t\t\t\tconst element = elements.item(i)\n\t\t\t\tif (this.hasNameAndValue(element) && element.name)\n\t\t\t\t\tresult[element.name] = element.value\n\t\t\t}\n\t\t\t// Overwrite values with values from smoothly-input\n\t\t\tconst smoothlyInputs = form.getElementsByTagName(\"smoothly-input\")\n\t\t\tfor (let i = 0; i < smoothlyInputs.length; i++) {\n\t\t\t\tconst element = smoothlyInputs.item(i)\n\t\t\t\tif (this.hasNameAndValue(element) && element.name)\n\t\t\t\t\tresult[element.name] = element.value\n\t\t\t}\n\t\t}\n\t\treturn result\n\t}\n\thasNameAndValue(element: any): element is { name: string; value: string } {\n\t\treturn (\n\t\t\ttypeof (element as { name?: string }).name == \"string\" && typeof (element as { value?: string }).value == \"string\"\n\t\t)\n\t}\n\t@Method()\n\tasync setKeepFocusOnReRender(keepFocus: boolean) {\n\t\tthis.keepFocusOnReRender = keepFocus\n\t}\n\t@Method()\n\tasync setSelectionRange(start: number, end: number, direction?: Direction) {\n\t\tthis.state = this.newState({\n\t\t\t...this.state,\n\t\t\tselection: { start, end, direction: direction != undefined ? direction : this.state.selection.direction },\n\t\t})\n\n\t\tconst after = this.formatter.format(StateEditor.copy(this.formatter.unformat(StateEditor.copy({ ...this.state }))))\n\t\tthis.updateBackend(after, this.inputElement)\n\t}\n\tonBlur(event: FocusEvent) {\n\t\tthis.smoothlyBlur.emit()\n\t\tif (this.initialValue != this.value)\n\t\t\tthis.smoothlyChange.emit({ [this.name]: this.value })\n\t\tthis.initialValue = undefined\n\t}\n\tonFocus(event: FocusEvent) {\n\t\tthis.initialValue = this.value\n\t\tconst after = this.formatter.format(StateEditor.copy(this.formatter.unformat(StateEditor.copy({ ...this.state }))))\n\t\tif (event.target)\n\t\t\tthis.updateBackend(after, event.target as HTMLInputElement)\n\t}\n\tonClick(event: MouseEvent) {\n\t\tconst backend = event.target as HTMLInputElement\n\t\tthis.state = {\n\t\t\t...this.state,\n\t\t\tvalue: backend.value,\n\t\t\tselection: {\n\t\t\t\tstart: backend.selectionStart != undefined ? backend.selectionStart : backend.value.length,\n\t\t\t\tend: backend.selectionEnd != undefined ? backend.selectionEnd : backend.value.length,\n\t\t\t\tdirection: backend.selectionDirection ? backend.selectionDirection : \"none\",\n\t\t\t},\n\t\t}\n\t\tconst after = this.newState({ ...this.state })\n\t\tthis.updateBackend(after, backend)\n\t}\n\tonKeyDown(event: KeyboardEvent) {\n\t\tif (event.key && !(event.key == \"Unidentified\")) {\n\t\t\tconst backend = event.target as HTMLInputElement\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\tvalue: backend.value,\n\t\t\t\tselection: {\n\t\t\t\t\tstart: backend.selectionStart != undefined ? backend.selectionStart : backend.value.length,\n\t\t\t\t\tend: backend.selectionEnd != undefined ? backend.selectionEnd : backend.value.length,\n\t\t\t\t\tdirection: backend.selectionDirection ? backend.selectionDirection : \"none\",\n\t\t\t\t},\n\t\t\t}\n\t\t\tif (\n\t\t\t\t(!((event.ctrlKey || event.metaKey) && (event.key == \"v\" || event.key == \"x\" || event.key == \"c\")) &&\n\t\t\t\t\tevent.key.length == 1) ||\n\t\t\t\tevent.key == \"ArrowLeft\" ||\n\t\t\t\tevent.key == \"ArrowRight\" ||\n\t\t\t\tevent.key == \"Delete\" ||\n\t\t\t\tevent.key == \"Backspace\" ||\n\t\t\t\tevent.key == \"Home\" ||\n\t\t\t\tevent.key == \"End\"\n\t\t\t) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tthis.processKey(event, backend)\n\t\t\t} else if (event.key == \"ArrowUp\" || event.key == \"ArrowDown\")\n\t\t\t\tevent.preventDefault()\n\t\t}\n\t}\n\tonPaste(event: ClipboardEvent) {\n\t\tevent.preventDefault()\n\t\tlet pasted = event.clipboardData ? event.clipboardData.getData(\"text\") : \"\"\n\t\tconst backend = event.target as HTMLInputElement\n\t\tpasted = this.expiresAutocompleteFix(backend, pasted)\n\t\tfor (const letter of pasted)\n\t\t\tthis.processKey({ key: letter }, backend)\n\t}\n\tonInput(event: InputEvent) {\n\t\tif (event.inputType == \"insertReplacementText\") {\n\t\t\tthis.processKey({ key: \"a\", ctrlKey: true }, event.target as HTMLInputElement)\n\t\t\t;[...(event.data ?? \"\")].forEach(c => this.processKey({ key: c }, event.target as HTMLInputElement))\n\t\t} else {\n\t\t\tconst backend = event.target as HTMLInputElement\n\t\t\tlet data = backend.value\n\t\t\tif (data) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tthis.processKey({ key: \"a\", ctrlKey: true }, backend)\n\t\t\t\tdata = this.expiresAutocompleteFix(backend, data)\n\t\t\t\tfor (const letter of data)\n\t\t\t\t\tthis.processKey({ key: letter }, backend)\n\t\t\t}\n\t\t}\n\t}\n\tprivate expiresAutocompleteFix(backend: HTMLInputElement, value: string) {\n\t\tif (backend.attributes.getNamedItem(\"autocomplete\")?.value == \"cc-exp\")\n\t\t\tvalue = value.match(/^20\\d\\d[.\\D]*\\d\\d$/)\n\t\t\t\t? value.substring(value.length - 2, value.length) + value.substring(2, 4)\n\t\t\t\t: value.match(/^(1[3-9]|[2-9]\\d)[.\\D]*\\d\\d$/)\n\t\t\t\t? value.substring(value.length - 2, value.length) + value.substring(0, 2)\n\t\t\t\t: value.match(/^\\d\\d[.\\D]*20\\d\\d$/)\n\t\t\t\t? value.substring(0, 2) + value.substring(value.length - 2, value.length)\n\t\t\t\t: value\n\t\treturn value\n\t}\n\tprivate processKey(event: Action, backend: HTMLInputElement) {\n\t\tif (!this.readonly) {\n\t\t\tconst after = Action.apply(this.formatter, this.state, event)\n\t\t\tthis.updateBackend(after, backend)\n\t\t}\n\t}\n\tupdateBackend(after: Readonly<TidilyState> & Readonly<Settings>, backend: HTMLInputElement) {\n\t\tif (after.value != backend.value)\n\t\t\tbackend.value = after.value\n\t\tif (backend.selectionStart != undefined && after.selection.start != backend.selectionStart)\n\t\t\tbackend.selectionStart = after.selection.start\n\t\tif (backend.selectionEnd != undefined && after.selection.end != backend.selectionEnd)\n\t\t\tbackend.selectionEnd = after.selection.end\n\t\tbackend.selectionDirection = after.selection.direction ? after.selection.direction : backend.selectionDirection\n\t\tthis.state = after\n\t\tthis.value = this.lastValue = this.formatter.fromString(\n\t\t\tthis.formatter.unformat(StateEditor.copy({ ...this.state })).value\n\t\t)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={{ \"has-value\": this.state?.value != undefined && this.state?.value != \"\" }}\n\t\t\t\tonclick={() => this.inputElement?.focus()}>\n\t\t\t\t<slot name=\"start\"></slot>\n\t\t\t\t<div>\n\t\t\t\t\t<input\n\t\t\t\t\t\tcolor={this.color}\n\t\t\t\t\t\tname={this.name}\n\t\t\t\t\t\ttype={this.state?.type}\n\t\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\tautocomplete={this.autocomplete ? this.state?.autocomplete : \"off\"}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\treadOnly={this.readonly}\n\t\t\t\t\t\tpattern={this.state?.pattern && this.state?.pattern.source}\n\t\t\t\t\t\tvalue={this.state?.value}\n\t\t\t\t\t\tonInput={(e: InputEvent) => this.onInput(e)}\n\t\t\t\t\t\tonFocus={e => this.onFocus(e)}\n\t\t\t\t\t\tonClick={e => this.onClick(e)}\n\t\t\t\t\t\tonBlur={e => this.onBlur(e)}\n\t\t\t\t\t\tonKeyDown={e => this.onKeyDown(e)}\n\t\t\t\t\t\tref={(el: HTMLInputElement) => (this.inputElement = el)}\n\t\t\t\t\t\tonPaste={e => this.onPaste(e)}></input>\n\t\t\t\t\t<label htmlFor={this.name}>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</label>\n\t\t\t\t\t<smoothly-icon name=\"alert-circle\" color=\"danger\" fill=\"clear\" size=\"small\"></smoothly-icon>\n\t\t\t\t</div>\n\t\t\t\t<slot name=\"end\"></slot>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n\nfunction getLocale(): Locale | undefined {\n\tconst result = navigator.language\n\treturn Locale.is(result) ? result : Language.is(result) ? Locale.toLocale(result) : undefined\n}\n","export interface Changeable {\n\tchanged: boolean\n\tlisten(property: \"changed\", listener: (parent: Changeable) => Promise<void>): void\n}\nexport namespace Changeable {\n\texport function is(value: Changeable | any): value is Changeable {\n\t\treturn value && typeof value == \"object\" && typeof value.changed == \"boolean\" && typeof value.listen == \"function\"\n\t}\n}\n","@import \"../../button/style.css\";\n\n:host(:not([display])) {\n\tdisplay: none;\n}\n\n:host() {\n\ttransition: 0.6s;\n\tmargin: 0rem;\n\tmin-width: 0rem;\n}\n\n:host([type=\"input\"]) {\n\tline-height: 1;\n}\n\n:host([type=\"form\"]) {\n\tmargin: 1em 0em;\n}\n\n:host([type=\"input\"]) ::slotted(smoothly-icon) {\n\tfilter: opacity(60%);\n\tfont-size: 70%;\n}\n\n:host([type=\"input\"]):hover ::slotted(smoothly-icon) {\n\tcursor: pointer;\n\tfilter: opacity(100%);\n}\n\n:host([type=\"input\"]) button {\n \tpadding: 0rem;\n \tmargin: 0rem;\n \tmin-width: 0rem; \n}\n","import { Component, Event, EventEmitter, h, Listen, Prop } from \"@stencil/core\"\nimport { Color, Fill } from \"../../../model\"\nimport { Button } from \"../../Button\"\nimport { SmoothlyForm } from \"../../form\"\nimport { SmoothlyInput } from \"..\"\nimport { Changeable } from \"../Changeable\"\nimport { Clearable } from \"../Clearable\"\n\n@Component({\n\ttag: \"smoothly-input-clear\",\n\tstyleUrl: \"./style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputClear {\n\t@Prop({ reflect: true }) color?: Color\n\t@Prop({ reflect: true }) expand?: \"block\" | \"full\"\n\t@Prop({ reflect: true }) fill?: Fill = \"clear\"\n\t@Prop({ reflect: true, mutable: true }) disabled = false\n\t@Prop({ reflect: true }) size: \"small\" | \"large\" | \"icon\" | \"flexible\"\n\t@Prop({ reflect: true }) shape?: \"rounded\"\n\t@Prop({ reflect: true, mutable: true }) display = true\n\t@Prop({ reflect: true }) type: \"form\" | \"input\" = \"input\"\n\tprivate parent?: Clearable | (Clearable & Changeable)\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: HTMLElement) => void>\n\n\tasync componentWillLoad() {\n\t\tthis.smoothlyInputLoad.emit(parent => {\n\t\t\tif (Clearable.is(parent)) {\n\t\t\t\tthis.parent = parent\n\t\t\t\tif (Changeable.is(parent))\n\t\t\t\t\tparent.listen(\"changed\", async p => {\n\t\t\t\t\t\tif (p instanceof SmoothlyForm)\n\t\t\t\t\t\t\tthis.disabled = !p.changed\n\t\t\t\t\t\tif (p instanceof SmoothlyInput)\n\t\t\t\t\t\t\tthis.display = p.changed\n\t\t\t\t\t})\n\t\t\t}\n\t\t})\n\t}\n\t@Listen(\"click\")\n\tclickHandler() {\n\t\tthis.parent?.clear()\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Button disabled={this.disabled} type=\"button\">\n\t\t\t\t<slot />\n\t\t\t</Button>\n\t\t)\n\t}\n}\n","@import \"../shared.css\";\n\n:host {\n\tposition: relative;\n\tmax-width: 100vw;\n\tbackground-color: rgb(var(--background-color, var(--smoothly-color-shade)));\n}\nnav {\n\tposition: absolute;\n\tz-index: 10;\n\ttop: 3.5em;\n\tbackground-color: rgb(var(--background-color, var(--smoothly-color-shade)));\n\tmin-width: 18em;\n}\n:host > div {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\twidth: 100vw;\n\theight: 100vh;\n\tz-index: 2;\n}\n:host > nav > .arrow {\n\tposition: absolute;\n\tz-index: 9;\n\ttransform: translate(2em, -0.55em) rotate(45deg);\n\twidth: 1em;\n\theight: 1em;\n\tbackground-color: rgb(var(--background-color, var(--smoothly-color-shade)));\n}\n\n@media screen and (min-width: 400px){\n\tnav {\n\t\tposition: absolute;\n\t\tz-index: 10;\n\t\ttop: 3.5em;\n\t\tbackground-color: rgb(var(--background-color, var(--smoothly-color-shade)));\n\t\tmax-width: 22em;\n\t\t\n\t}\n}\n","import { Component, Element, Event, EventEmitter, h, Listen, Method, Prop, Watch } from \"@stencil/core\"\nimport { Date } from \"isoly\"\nimport { Color } from \"../../../model\"\nimport { Clearable } from \"../Clearable\"\nimport { Input } from \"../Input\"\nimport { Looks } from \"../Looks\"\n\n@Component({\n\ttag: \"smoothly-input-date\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class InputDate implements Clearable, Input {\n\t@Element() element: HTMLElement\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ reflect: true, mutable: true }) looks: Looks = \"plain\"\n\t@Prop({ reflect: true }) name: string\n\t@Prop({ mutable: true }) value?: Date\n\t@Prop({ mutable: true }) open: boolean\n\t@Prop({ mutable: true }) max: Date\n\t@Prop({ mutable: true }) min: Date\n\t@Prop({ reflect: true }) showLabel = true\n\t@Prop({ mutable: true }) disabled: boolean\n\t@Event() valueChanged: EventEmitter<Date>\n\t@Event() smoothlyInput: EventEmitter<Record<string, any>>\n\t@Event() smoothlyInputLooks: EventEmitter<(looks: Looks, color: Color) => void>\n\n\tcomponentWillLoad() {\n\t\tthis.smoothlyInputLooks.emit((looks, color) => ((this.looks = looks), !this.color && (this.color = color)))\n\t}\n\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tthis.value = undefined\n\t}\n\t@Watch(\"value\")\n\tonStart(next: Date) {\n\t\tthis.valueChanged.emit(next)\n\t\tthis.smoothlyInput.emit({ [this.name]: next })\n\t}\n\t@Listen(\"smoothlyInput\")\n\tsmoothlyInputHandler(event: CustomEvent<Record<string, any>>) {\n\t\tif (event.target != this.element)\n\t\t\tevent.stopPropagation()\n\t}\n\t@Listen(\"smoothlyInputLooks\")\n\tsmoothlyInputLooksHandler(event: CustomEvent<(looks: Looks) => void>) {\n\t\tif (event.target != this.element)\n\t\t\tevent.stopPropagation()\n\t}\n\t@Listen(\"dateSet\")\n\tdateSetHandler(event: CustomEvent<Date>) {\n\t\tthis.open = false\n\t\tevent.stopPropagation()\n\t}\n\trender() {\n\t\treturn [\n\t\t\t<smoothly-input\n\t\t\t\tcolor={this.color}\n\t\t\t\tname={this.name}\n\t\t\t\tonFocus={() => (this.open = !this.open)}\n\t\t\t\tonClick={() => (this.open = !this.open)}\n\t\t\t\tdisabled={this.disabled}\n\t\t\t\ttype=\"date\"\n\t\t\t\tvalue={this.value}\n\t\t\t\tlooks=\"plain\"\n\t\t\t\tshowLabel={this.showLabel}\n\t\t\t\tonSmoothlyInput={e => (this.value = e.detail[this.name])}>\n\t\t\t\t<slot></slot>\n\t\t\t</smoothly-input>,\n\t\t\tthis.open && !this.disabled\n\t\t\t\t? [\n\t\t\t\t\t\t<div onClick={() => (this.open = false)}></div>,\n\t\t\t\t\t\t<nav>\n\t\t\t\t\t\t\t<div class=\"arrow\"></div>\n\t\t\t\t\t\t\t<smoothly-calendar\n\t\t\t\t\t\t\t\tdoubleInput={false}\n\t\t\t\t\t\t\t\tvalue={this.value ?? Date.now()}\n\t\t\t\t\t\t\t\tonValueChanged={event => {\n\t\t\t\t\t\t\t\t\tthis.value = event.detail\n\t\t\t\t\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tmax={this.max}\n\t\t\t\t\t\t\t\tmin={this.min}></smoothly-calendar>\n\t\t\t\t\t\t</nav>,\n\t\t\t\t ]\n\t\t\t\t: [],\n\t\t]\n\t}\n}\n","@import \"../../shared.css\";\n\n:host {\n\tposition: relative;\n\tdisplay: block;\n\twidth: fit-content;\n\tbackground-color: rgb(var(--background-color, var(--smoothly-color-shade)));\n}\n:host > nav {\n\tposition: absolute;\n\tz-index: 10;\n\ttop: 3.5em;\n\tbackground-color: rgb(var(--background-color, var(--smoothly-color-shade)));\n\tmax-width: 22em;\n}\n:host > div {\n\tposition: fixed;\n\ttop: 0px;\n\tleft: 0px;\n\tright: 0px;\n\tbottom: 0px;\n\twidth: 100vw;\n\theight: 100vh;\n\tz-index: 2;\n}\n:host > nav > .arrow {\n\tposition: absolute;\n\tz-index: 9;\n\ttransform: translate(10em, -0.55em) rotate(45deg);\n\twidth: 1em;\n\theight: 1em;\n\tbackground-color: rgb(var(--background-color, var(--smoothly-color-shade)));\n}\n:host > section {\n\tdisplay: flex;\n\tbackground-color: var(--background-color, var(--smoothly-color-shade), transparent);\n\tborder-radius: 0.25rem;\n\tcursor: pointer;\n}\nsmoothly-input {\n\tborder-radius: var(--border-radius, none);\n\tbackground-color: transparent;\n\twidth: var(--input-width);\n\tflex-grow: 1;\n}\nspan {\n\tpadding: 0.5em 0.2em 0.5em 0.2em;\n\talign-self: center;\n}\n","import { Component, Element, Event, EventEmitter, h, Listen, Method, Prop, Watch } from \"@stencil/core\"\nimport { isoly } from \"isoly\"\nimport { Clearable } from \"../../Clearable\"\nimport { Input } from \"../../Input\"\nimport { Looks } from \"../../Looks\"\nimport { Color, Data } from \"./../../../../model\"\n\n@Component({\n\ttag: \"smoothly-input-date-range\",\n\tstyleUrl: \"style.scss\",\n\tscoped: true,\n})\nexport class InputDateRange implements Clearable, Input {\n\t@Element() element: HTMLElement\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ reflect: true, mutable: true }) looks: Looks = \"plain\"\n\t@Prop({ reflect: true }) name: string\n\t@Prop({ mutable: true }) value?: isoly.Date\n\t@Prop({ mutable: true }) start?: isoly.Date\n\t@Prop({ mutable: true }) end?: isoly.Date\n\t@Prop({ mutable: true }) max: isoly.Date\n\t@Prop({ mutable: true }) min: isoly.Date\n\t@Prop({ mutable: true }) open: boolean\n\t@Prop({ reflect: true }) showLabel = true\n\t@Prop() labelStart = \"from\"\n\t@Prop() labelEnd = \"to\"\n\t@Event() valueChanged: EventEmitter<isoly.Date>\n\t@Event() smoothlyInput: EventEmitter<Data>\n\t@Event() smoothlyInputLooks: EventEmitter<(looks: Looks, color: Color) => void>\n\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tthis.start = undefined\n\t\tthis.end = undefined\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.smoothlyInputLooks.emit((looks, color) => ((this.looks = looks), !this.color && (this.color = color)))\n\t\tif (this.start && this.end)\n\t\t\tthis.smoothlyInput.emit({ [this.name]: { start: this.start, end: this.end } })\n\t}\n\t@Watch(\"value\")\n\tonValue(next: isoly.Date) {\n\t\tthis.valueChanged.emit(next)\n\t}\n\t@Listen(\"smoothlyInput\")\n\tsmoothlyInputHandler(event: CustomEvent<Record<string, any>>) {\n\t\tif (event.target != this.element)\n\t\t\tevent.stopPropagation()\n\t}\n\t@Listen(\"smoothlyInputLooks\")\n\tsmoothlyInputLooksHandler(event: CustomEvent<(looks: Looks) => void>) {\n\t\tif (event.target != this.element)\n\t\t\tevent.stopPropagation()\n\t}\n\t@Listen(\"startChanged\")\n\tonStartChanged(event: CustomEvent<isoly.Date>) {\n\t\tthis.start = event.detail\n\t}\n\t@Listen(\"endChanged\")\n\tonEndChanged(event: CustomEvent<isoly.Date>) {\n\t\tthis.end = event.detail\n\t}\n\t@Listen(\"dateRangeSet\")\n\tonDateRangeSet(event: CustomEvent<isoly.DateRange>) {\n\t\tthis.open = false\n\t\tevent.stopPropagation()\n\t\tisoly.DateRange.is(event.detail) && this.smoothlyInput.emit({ [this.name]: event.detail })\n\t}\n\trender() {\n\t\treturn [\n\t\t\t<section onClick={() => (this.open = !this.open)}>\n\t\t\t\t<smoothly-input\n\t\t\t\t\ttype=\"date\"\n\t\t\t\t\tname=\"start\"\n\t\t\t\t\tvalue={this.start}\n\t\t\t\t\tlooks=\"plain\"\n\t\t\t\t\tshowLabel={this.showLabel}\n\t\t\t\t\tonSmoothlyInput={e => (this.start = e.detail.start)}>\n\t\t\t\t\t{`${this.labelStart}`}\n\t\t\t\t</smoothly-input>\n\t\t\t\t<span>–</span>\n\t\t\t\t<smoothly-input\n\t\t\t\t\ttype=\"date\"\n\t\t\t\t\tname=\"end\"\n\t\t\t\t\tvalue={this.end}\n\t\t\t\t\tlooks=\"plain\"\n\t\t\t\t\tshowLabel={this.showLabel}\n\t\t\t\t\tonSmoothlyInput={e => (this.end = e.detail.end)}>\n\t\t\t\t\t{`${this.labelEnd}`}\n\t\t\t\t</smoothly-input>\n\t\t\t</section>,\n\t\t\tthis.open ? <div onClick={() => (this.open = false)}></div> : [],\n\t\t\tthis.open ? (\n\t\t\t\t<nav>\n\t\t\t\t\t<div class=\"arrow\"></div>\n\t\t\t\t\t<smoothly-calendar\n\t\t\t\t\t\tdoubleInput={true}\n\t\t\t\t\t\tvalue={this.value ?? isoly.Date.now()}\n\t\t\t\t\t\tonValueChanged={event => {\n\t\t\t\t\t\t\tthis.value = event.detail\n\t\t\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tstart={this.start}\n\t\t\t\t\t\tend={this.end}\n\t\t\t\t\t\tmax={this.max}\n\t\t\t\t\t\tmin={this.min}></smoothly-calendar>\n\t\t\t\t</nav>\n\t\t\t) : (\n\t\t\t\t[]\n\t\t\t),\n\t\t]\n\t}\n}\n","smoothly-input-demo {\n\tdisplay: block;\n\tmargin: 2em;\n\tmargin-bottom: 20rem;\n}\n","import { Component, h, Listen } from \"@stencil/core\"\nimport { isoly } from \"isoly\"\n@Component({\n\ttag: \"smoothly-input-demo\",\n\tstyleUrl: \"style.css\",\n})\nexport class SmoothlyInputDemo {\n\tprivate selectElement: HTMLSmoothlyInputSelectElement\n\n\t@Listen(\"selectionChanged\")\n\thandleSelectionChanged(event: CustomEvent<{ identifier: string; value: string }>) {\n\t\tconsole.log(\"selectionChanged\", event.detail)\n\t}\n\n\trender() {\n\t\treturn [\n\t\t\t<h2>Duration</h2>,\n\t\t\t<smoothly-form looks=\"border\">\n\t\t\t\t<smoothly-input\n\t\t\t\t\tname=\"duration\"\n\t\t\t\t\ttype=\"duration\"\n\t\t\t\t\tplaceholder=\"hh:mm\"\n\t\t\t\t\tvalue={{ hours: 5, minutes: 30 }}\n\t\t\t\t\tonSmoothlyInput={e => console.log(e.detail.duration)}>\n\t\t\t\t\tDuration\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input\n\t\t\t\t\tname=\"duration\"\n\t\t\t\t\ttype=\"duration\"\n\t\t\t\t\tvalue={{ hours: 5, minutes: 30 }}\n\t\t\t\t\tplaceholder=\"hh:mm\"\n\t\t\t\t\tonSmoothlyInput={e => console.log(e.detail.duration)}>\n\t\t\t\t\tVaraktighet\n\t\t\t\t</smoothly-input>\n\t\t\t</smoothly-form>,\n\t\t\t<h2>Submit</h2>,\n\t\t\t<smoothly-form looks=\"border\">\n\t\t\t\t<smoothly-input type=\"email\" name=\"email\">\n\t\t\t\t\tEmail\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"password\" name=\"password\">\n\t\t\t\t\tPassword\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input-clear fill=\"default\" type=\"form\" color=\"danger\" slot=\"clear\">\n\t\t\t\t\tClear\n\t\t\t\t</smoothly-input-clear>\n\t\t\t\t<smoothly-submit slot=\"submit\">Submit</smoothly-submit>\n\t\t\t</smoothly-form>,\n\n\t\t\t<h4>Clear</h4>,\n\t\t\t<smoothly-form looks=\"border\">\n\t\t\t\t<smoothly-input name=\"First Name\">First name</smoothly-input>\n\t\t\t\t<smoothly-input name=\"Last name\">\n\t\t\t\t\tLast name\n\t\t\t\t\t<smoothly-input-clear slot=\"end\">\n\t\t\t\t\t\t<smoothly-icon name=\"close\" />\n\t\t\t\t\t</smoothly-input-clear>\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"phone\" name=\"Phone\">\n\t\t\t\t\tPhone\n\t\t\t\t\t<smoothly-input-clear slot=\"end\">\n\t\t\t\t\t\t<smoothly-icon name=\"close\" />\n\t\t\t\t\t</smoothly-input-clear>\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input-clear fill=\"default\" type=\"form\" color=\"danger\" slot=\"submit\">\n\t\t\t\t\tClear\n\t\t\t\t</smoothly-input-clear>\n\t\t\t</smoothly-form>,\n\n\t\t\t<h2>Border</h2>,\n\t\t\t<smoothly-form looks=\"border\">\n\t\t\t\t<smoothly-input type=\"email\" name=\"email\">\n\t\t\t\t\tEmail\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"password\" name=\"password\">\n\t\t\t\t\tPassword\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-submit slot=\"submit\" onSubmit={(e: Event) => alert(e)} color=\"success\" fill=\"solid\">\n\t\t\t\t\tSend\n\t\t\t\t</smoothly-submit>\n\t\t\t</smoothly-form>,\n\t\t\t<h2>Grid</h2>,\n\t\t\t<h4>Contact</h4>,\n\t\t\t<smoothly-form looks=\"grid\" method=\"GET\" action=\"https://webhook.site/85bb78f6-b450-4a74-81ac-d7cac6e94bbe\">\n\t\t\t\t<smoothly-input type=\"text\" name=\"name.last\">\n\t\t\t\t\tFirst Name\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"text\" name=\"name.first\">\n\t\t\t\t\tLast Name\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"text\" name=\"street\" value=\"Torgny Segerstedts Allé 87\">\n\t\t\t\t\tStreet\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"postal-code\" name=\"zip\">\n\t\t\t\t\tZipCode\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"text\" name=\"city\">\n\t\t\t\t\tCity\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"text\" name=\"countryCode\">\n\t\t\t\t\tCountryCode\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"phone\" name=\"phone\">\n\t\t\t\t\tPhone\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"email\" name=\"email\">\n\t\t\t\t\tEmail\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-submit slot=\"submit\" color=\"success\" fill=\"solid\">\n\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"start\"></smoothly-icon>\n\t\t\t\t\tSubmit\n\t\t\t\t</smoothly-submit>\n\t\t\t</smoothly-form>,\n\t\t\t<h4>Card</h4>,\n\t\t\t<smoothly-form looks=\"grid\" onSmoothlyFormSubmit={(e: CustomEvent) => alert(JSON.stringify(e.detail))}>\n\t\t\t\t<smoothly-input type=\"card-number\" name=\"card\">\n\t\t\t\t\tCard #\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-submit size=\"icon\" slot=\"submit\" color=\"success\" fill=\"solid\">\n\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\"></smoothly-icon>\n\t\t\t\t</smoothly-submit>\n\t\t\t\t<smoothly-input type=\"card-expires\" name=\"expires\">\n\t\t\t\t\tExpires\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"card-csc\" name=\"csc\">\n\t\t\t\t\tCVV/CVC\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"text\" name=\"name.first\">\n\t\t\t\t\tFirst Name\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"text\" name=\"name.last\">\n\t\t\t\t\tLast Name\n\t\t\t\t</smoothly-input>\n\t\t\t</smoothly-form>,\n\t\t\t<h4>Contact</h4>,\n\t\t\t<smoothly-form looks=\"grid\">\n\t\t\t\t<smoothly-input type=\"email\" name=\"email\">\n\t\t\t\t\tEmail\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"password\" name=\"password\">\n\t\t\t\t\tPassword\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"price\" currency=\"SEK\" name=\"price\">\n\t\t\t\t\tPrice\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"percent\" name=\"percent\">\n\t\t\t\t\tPercent\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-submit slot=\"submit\" color=\"success\" fill=\"solid\" size=\"icon\">\n\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\"></smoothly-icon>\n\t\t\t\t</smoothly-submit>\n\t\t\t</smoothly-form>,\n\t\t\t<h4>Random</h4>,\n\t\t\t<smoothly-form looks=\"grid\">\n\t\t\t\t<smoothly-input\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tname=\"name\"\n\t\t\t\t\treadonly={true}\n\t\t\t\t\tvalue={\"Readonly\"}\n\t\t\t\t\tonSmoothlyBlur={() => console.log(\"smoothly blur\")}\n\t\t\t\t\tstyle={{ width: \"100%\" }}>\n\t\t\t\t\tReadonly\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"text\" name=\"testing\">\n\t\t\t\t\tTextTest\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"date-time\" name=\"date-time\">\n\t\t\t\t\tDate-Time\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"divisor\" name=\"divisor\">\n\t\t\t\t\tDivisor\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"date\" name=\"date\">\n\t\t\t\t\tDate\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input-date name=\"some-date\">Calendar</smoothly-input-date>\n\t\t\t</smoothly-form>,\n\t\t\t<h2>Line</h2>,\n\t\t\t<smoothly-form looks=\"line\">\n\t\t\t\t<smoothly-input type=\"text\" name=\"name.last\" onSmoothlyChange={e => console.log(\"smoothly change event\")}>\n\t\t\t\t\tFirst Name\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"text\" name=\"name.first\" onSmoothlyChange={e => console.log(\"smoothly change event\")}>\n\t\t\t\t\tLast Name\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-submit slot=\"submit\" fill=\"solid\" onSubmit={(e: Event) => alert(e)} color=\"success\">\n\t\t\t\t\tSend\n\t\t\t\t</smoothly-submit>\n\t\t\t</smoothly-form>,\n\t\t\t<h2>Input Alternatives</h2>,\n\t\t\t<smoothly-form looks=\"border\">\n\t\t\t\t<smoothly-input type=\"text\" name=\"name.last\" onSmoothlyChange={e => console.log(\"smoothly change event\")}>\n\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"start\"></smoothly-icon>\n\t\t\t\t\tFirst Name\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input type=\"text\" name=\"name.first\" onSmoothlyChange={e => console.log(\"smoothly change event\")}>\n\t\t\t\t\tLast Name\n\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"end\"></smoothly-icon>\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tname=\"name.first\"\n\t\t\t\t\tplaceholder=\"Smith\"\n\t\t\t\t\tonSmoothlyChange={e => console.log(\"smoothly change event\")}>\n\t\t\t\t\tLast Name\n\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" slot=\"end\"></smoothly-icon>\n\t\t\t\t</smoothly-input>\n\t\t\t\t<smoothly-input placeholder=\"test\"></smoothly-input>\n\t\t\t\t<smoothly-submit slot=\"submit\" fill=\"solid\" onSubmit={(e: Event) => alert(e)} color=\"success\">\n\t\t\t\t\tSend\n\t\t\t\t</smoothly-submit>\n\t\t\t</smoothly-form>,\n\t\t\t<h4>Smoothly checkboxes</h4>,\n\t\t\t<smoothly-form>\n\t\t\t\t<div>\n\t\t\t\t\t<smoothly-checkbox>\n\t\t\t\t\t\tCheck me\n\t\t\t\t\t\t<div slot=\"expansion\">Some context</div>\n\t\t\t\t\t</smoothly-checkbox>\n\t\t\t\t\t<smoothly-checkbox>Label</smoothly-checkbox>\n\t\t\t\t\t<smoothly-checkbox disabled={true} />\n\t\t\t\t</div>\n\t\t\t</smoothly-form>,\n\t\t\t<h4>Smoothly Radio Buttons</h4>,\n\t\t\t<smoothly-form onSmoothlyFormSubmit={e => console.log(e.detail)}>\n\t\t\t\t<smoothly-radio-button name=\"radioButtonDemo\" deselectable decoration=\"button\">\n\t\t\t\t\t<smoothly-radio-button-item value={\"test\"}>\n\t\t\t\t\t\tOption 1<div slot=\"expansion\">Some description.</div>\n\t\t\t\t\t</smoothly-radio-button-item>\n\t\t\t\t\t<smoothly-radio-button-item value={{ some: \"thing\", yes: \"miss\" }}>\n\t\t\t\t\t\tOption 2<div slot=\"expansion\">Some other description.</div>\n\t\t\t\t\t</smoothly-radio-button-item>\n\t\t\t\t\t<smoothly-radio-button-item value={{ some: \"one\", yes: \"kid\" }}>\n\t\t\t\t\t\tOption 3<div slot=\"expansion\">Some third description.</div>\n\t\t\t\t\t</smoothly-radio-button-item>\n\t\t\t\t</smoothly-radio-button>\n\t\t\t\t<smoothly-submit slot=\"submit\" color=\"success\" fill=\"solid\" size=\"icon\">\n\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\"></smoothly-icon>\n\t\t\t\t</smoothly-submit>\n\t\t\t</smoothly-form>,\n\t\t\t<h4>Radio List without button 1</h4>,\n\t\t\t<smoothly-form>\n\t\t\t\t<smoothly-radio-button name=\"RadioListWithoutButton\">\n\t\t\t\t\t<smoothly-radio-button-item value={{ some: \"content\", yes: \"sir\" }} selected color=\"light\">\n\t\t\t\t\t\t<span>Option 1</span>\n\t\t\t\t\t\t<span slot=\"expansion\">Some description.</span>\n\t\t\t\t\t</smoothly-radio-button-item>\n\t\t\t\t\t<smoothly-radio-button-item value={{ some: \"thing\", yes: \"miss\" }} color=\"light\">\n\t\t\t\t\t\t<span>Option 2</span>\n\t\t\t\t\t\t<span slot=\"expansion\">Some other description.</span>\n\t\t\t\t\t</smoothly-radio-button-item>\n\t\t\t\t\t<smoothly-radio-button-item value={{ some: \"one\", yes: \"kid\" }} color=\"light\">\n\t\t\t\t\t\t<span>Option 3</span>\n\t\t\t\t\t\t<span slot=\"expansion\">Some third description.</span>\n\t\t\t\t\t</smoothly-radio-button-item>\n\t\t\t\t</smoothly-radio-button>\n\t\t\t\t<smoothly-submit slot=\"submit\" color=\"success\" fill=\"solid\" size=\"icon\">\n\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\"></smoothly-icon>\n\t\t\t\t</smoothly-submit>\n\t\t\t</smoothly-form>,\n\t\t\t<h4>Radio List without button 2</h4>,\n\t\t\t<smoothly-form>\n\t\t\t\t<smoothly-radio name=\"option\" value=\"1a\" style={{ width: \"100%\" }}>\n\t\t\t\t\toption 1\n\t\t\t\t</smoothly-radio>\n\t\t\t\t<smoothly-radio name=\"option\" value=\"2a\" checked style={{ width: \"100%\" }}>\n\t\t\t\t\toption 2\n\t\t\t\t</smoothly-radio>\n\t\t\t\t<smoothly-radio name=\"option\" value=\"3a\" style={{ width: \"100%\" }}>\n\t\t\t\t\toption 3\n\t\t\t\t</smoothly-radio>\n\t\t\t</smoothly-form>,\n\t\t\t<h4>Smoothly Accordion</h4>,\n\t\t\t<smoothly-form>\n\t\t\t\t<smoothly-accordion>\n\t\t\t\t\t<smoothly-accordion-item name=\"A\" open>\n\t\t\t\t\t\t<smoothly-radio name=\"a\" value=\"1b\">\n\t\t\t\t\t\t\ta 1\n\t\t\t\t\t\t</smoothly-radio>\n\t\t\t\t\t\t<smoothly-radio name=\"a\" value=\"2b\" checked>\n\t\t\t\t\t\t\ta 2\n\t\t\t\t\t\t</smoothly-radio>\n\t\t\t\t\t\t<smoothly-radio name=\"a\" value=\"3b\">\n\t\t\t\t\t\t\ta 3\n\t\t\t\t\t\t</smoothly-radio>\n\t\t\t\t\t</smoothly-accordion-item>\n\t\t\t\t\t<smoothly-accordion-item name=\"B\">\n\t\t\t\t\t\t<smoothly-radio name=\"b\" value=\"1c\">\n\t\t\t\t\t\t\tb 1\n\t\t\t\t\t\t</smoothly-radio>\n\t\t\t\t\t\t<smoothly-radio name=\"b\" value=\"2c\">\n\t\t\t\t\t\t\tb 2\n\t\t\t\t\t\t</smoothly-radio>\n\t\t\t\t\t\t<smoothly-radio name=\"b\" value=\"3c\">\n\t\t\t\t\t\t\tb 3\n\t\t\t\t\t\t</smoothly-radio>\n\t\t\t\t\t</smoothly-accordion-item>\n\t\t\t\t</smoothly-accordion>\n\t\t\t\t<smoothly-submit slot=\"submit\" color=\"success\" fill=\"solid\" size=\"icon\">\n\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\"></smoothly-icon>\n\t\t\t\t</smoothly-submit>\n\t\t\t</smoothly-form>,\n\t\t\t<h4>Smoothly Picker</h4>,\n\t\t\t<smoothly-picker-demo />,\n\n\t\t\t<smoothly-back-to-top />,\n\t\t\t<h4>Smoothly Date</h4>,\n\t\t\t<smoothly-input-date>Date</smoothly-input-date>,\n\t\t\t<smoothly-input-date showLabel={false} value=\"2021-10-28\" max=\"2021-12-30\" min=\"2021-10-10\">\n\t\t\t\tDate\n\t\t\t</smoothly-input-date>,\n\t\t\t<smoothly-form looks=\"grid\" onSmoothlyFormSubmit={e => console.log(e.detail)}>\n\t\t\t\t<smoothly-input-date-range\n\t\t\t\t\tname=\"testing\"\n\t\t\t\t\tstart={isoly.Date.now()}\n\t\t\t\t\tend={isoly.Date.nextMonth(isoly.Date.now())}\n\t\t\t\t\tmin=\"2021-10-10\"\n\t\t\t\t\tmax=\"2024-12-30\"></smoothly-input-date-range>\n\t\t\t\t<smoothly-input-clear type=\"form\" color=\"danger\" fill=\"solid\" slot=\"clear\">\n\t\t\t\t\tClear\n\t\t\t\t</smoothly-input-clear>\n\t\t\t\t<smoothly-submit slot=\"submit\">submit daterange</smoothly-submit>\n\t\t\t</smoothly-form>,\n\n\t\t\t<smoothly-input-date-range\n\t\t\t\tlooks=\"grid\"\n\t\t\t\tstart={isoly.Date.now()}\n\t\t\t\tend={isoly.Date.nextMonth(isoly.Date.now())}\n\t\t\t\tmin=\"2021-10-10\"\n\t\t\t\tmax=\"2025-12-30\"\n\t\t\t\tshowLabel={false}\n\t\t\t\tstyle={{\n\t\t\t\t\t\"--border-radius\": \"4px\",\n\t\t\t\t\t\"--padding\": \"0 0.75em\",\n\t\t\t\t\t\"--input-width\": \"12ch\",\n\t\t\t\t}}></smoothly-input-date-range>,\n\t\t\t<br />,\n\t\t\t<h4>Smoothly Selector</h4>,\n\t\t\t<smoothly-input-select type=\"icon\" initialValue=\"folder\" showSelected={false}>\n\t\t\t\t<smoothly-item value=\"folder\">\n\t\t\t\t\t<smoothly-icon color=\"dark\" name=\"folder-outline\" />\n\t\t\t\t</smoothly-item>\n\t\t\t\t<smoothly-item value=\"camera\">\n\t\t\t\t\t<smoothly-icon color=\"dark\" name=\"camera-outline\" />\n\t\t\t\t</smoothly-item>\n\t\t\t</smoothly-input-select>,\n\t\t\t<br />,\n\t\t\t<smoothly-input-select\n\t\t\t\tlooks=\"line\"\n\t\t\t\tinitialPrompt=\"Select...\"\n\t\t\t\tref={(element: HTMLSmoothlyInputSelectElement) => (this.selectElement = element)}>\n\t\t\t\t<smoothly-item value=\"1\">January</smoothly-item>\n\t\t\t\t<smoothly-item value=\"2\">February</smoothly-item>\n\t\t\t\t<smoothly-item value=\"3\">March</smoothly-item>\n\t\t\t\t<smoothly-item value=\"4\">April</smoothly-item>\n\t\t\t\t<smoothly-item value=\"5\">May</smoothly-item>\n\t\t\t\t<smoothly-item value=\"6\">June</smoothly-item>\n\t\t\t\t<smoothly-item value=\"7\">July</smoothly-item>\n\t\t\t\t<smoothly-item value=\"8\">August</smoothly-item>\n\t\t\t\t<smoothly-item value=\"9\">September</smoothly-item>\n\t\t\t\t<smoothly-item value=\"10\">October</smoothly-item>\n\t\t\t\t<smoothly-item value=\"11\">November</smoothly-item>\n\t\t\t\t<smoothly-item value=\"12\">December</smoothly-item>\n\t\t\t</smoothly-input-select>,\n\t\t\t<button onClick={async () => this.selectElement.reset()}>Reset select</button>,\n\t\t\t<br />,\n\t\t\t<smoothly-form looks=\"grid\" onSmoothlyFormSubmit={e => console.log(\"Submitted\", e.detail)}>\n\t\t\t\t<smoothly-input type=\"text\" name=\"text\">\n\t\t\t\t\tText\n\t\t\t\t</smoothly-input>\n\t\t\t\t<div>\n\t\t\t\t\t<smoothly-input-file placeholder=\"Select or drag a file here\" name=\"file\">\n\t\t\t\t\t\t<span slot=\"label\">Testing file input</span>\n\t\t\t\t\t\t<smoothly-icon slot=\"button\" name=\"folder-outline\" />\n\t\t\t\t\t</smoothly-input-file>\n\t\t\t\t</div>\n\t\t\t\t<smoothly-input-file camera=\"back\" placeholder=\"Capture a photo\" name=\"image\">\n\t\t\t\t\t<span slot=\"label\">Testing camera photo</span>\n\t\t\t\t\t<smoothly-icon slot=\"button\" name=\"camera-outline\" />\n\t\t\t\t</smoothly-input-file>\n\t\t\t\t<smoothly-input-clear type=\"form\" color=\"danger\" fill=\"solid\" slot=\"clear\">\n\t\t\t\t\tClear\n\t\t\t\t</smoothly-input-clear>\n\t\t\t\t<smoothly-submit slot=\"submit\">Submit</smoothly-submit>\n\t\t\t</smoothly-form>,\n\t\t\t<br />,\n\t\t\t<smoothly-form looks=\"line\" onSmoothlyFormSubmit={e => console.log(\"form input\", e.detail)}>\n\t\t\t\t<smoothly-input name=\"text\">Input</smoothly-input>\n\t\t\t\t<smoothly-input-file camera=\"back\" placeholder=\"Capture a photo\" name=\"image\">\n\t\t\t\t\t<span slot=\"label\">Testing camera photo</span>\n\t\t\t\t\t<smoothly-icon slot=\"button\" name=\"camera-outline\" />\n\t\t\t\t</smoothly-input-file>\n\t\t\t\t<smoothly-picker name=\"picker\">\n\t\t\t\t\t<span slot=\"label\">Shape</span>\n\t\t\t\t\t<span slot=\"search\">Search</span>\n\t\t\t\t\t<smoothly-picker-option value={\"circle\"}>\n\t\t\t\t\t\t<span slot=\"label\">Circle</span>\n\t\t\t\t\t\t<smoothly-icon size=\"tiny\" name=\"ellipse-outline\" />\n\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t<smoothly-picker-option value={\"cube\"}>\n\t\t\t\t\t\t<span slot={\"label\"}>Cube</span>\n\t\t\t\t\t\t<smoothly-icon size=\"tiny\" name=\"cube-outline\" />\n\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t<smoothly-picker-option value={\"square\"} selected>\n\t\t\t\t\t\t<span slot={\"label\"}>Square</span>\n\t\t\t\t\t\t<smoothly-icon size=\"tiny\" name=\"square-outline\" />\n\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t</smoothly-picker>\n\t\t\t\t<smoothly-input-select\n\t\t\t\t\tname=\"select\"\n\t\t\t\t\tinitialPrompt=\"Select...\"\n\t\t\t\t\tref={(element: HTMLSmoothlyInputSelectElement) => (this.selectElement = element)}>\n\t\t\t\t\t<smoothly-item value=\"1\">January</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"2\">February</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"3\">March</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"4\">April</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"5\">May</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"6\">June</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"7\">July</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"8\">August</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"9\">September</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"10\">October</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"11\">November</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"12\">December</smoothly-item>\n\t\t\t\t</smoothly-input-select>\n\t\t\t\t<smoothly-input-date-range\n\t\t\t\t\tname=\"date-range\"\n\t\t\t\t\tstart={isoly.Date.now()}\n\t\t\t\t\tend={isoly.Date.nextMonth(isoly.Date.now())}\n\t\t\t\t\tmin=\"2021-10-10\"\n\t\t\t\t\tmax=\"2025-12-30\"\n\t\t\t\t\tshowLabel={false}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\"--border-radius\": \"4px\",\n\t\t\t\t\t\t\"--padding\": \"0 0.75em\",\n\t\t\t\t\t\t\"--input-width\": \"12ch\",\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t<smoothly-input-date name=\"date\" value=\"2021-10-28\" max=\"2021-12-30\" min=\"2021-10-10\">\n\t\t\t\t\tDate\n\t\t\t\t</smoothly-input-date>\n\t\t\t\t<smoothly-submit slot=\"submit\" color=\"success\" fill=\"solid\" size=\"icon\">\n\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" fill=\"solid\" size=\"medium\" />\n\t\t\t\t</smoothly-submit>\n\t\t\t</smoothly-form>,\n\t\t\t<h4>Form with spinner showcase</h4>,\n\t\t\t<smoothly-form looks=\"line\" processing={true} onSmoothlyFormSubmit={e => console.log(\"form input\", e.detail)}>\n\t\t\t\t<smoothly-input name=\"text\">Input</smoothly-input>\n\t\t\t\t<smoothly-input-file camera=\"back\" placeholder=\"Capture a photo\" name=\"image\">\n\t\t\t\t\t<span slot=\"label\">Testing camera photo</span>\n\t\t\t\t\t<smoothly-icon slot=\"button\" name=\"camera-outline\" />\n\t\t\t\t</smoothly-input-file>\n\t\t\t\t<smoothly-picker name=\"picker\">\n\t\t\t\t\t<span slot=\"label\">Shape</span>\n\t\t\t\t\t<span slot=\"search\">Search</span>\n\t\t\t\t\t<smoothly-picker-option value={\"circle\"}>\n\t\t\t\t\t\t<span slot=\"label\">Circle</span>\n\t\t\t\t\t\t<smoothly-icon size=\"tiny\" name=\"ellipse-outline\" />\n\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t<smoothly-picker-option value={\"cube\"}>\n\t\t\t\t\t\t<span slot={\"label\"}>Cube</span>\n\t\t\t\t\t\t<smoothly-icon size=\"tiny\" name=\"cube-outline\" />\n\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t<smoothly-picker-option value={\"square\"} selected>\n\t\t\t\t\t\t<span slot={\"label\"}>Square</span>\n\t\t\t\t\t\t<smoothly-icon size=\"tiny\" name=\"square-outline\" />\n\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t</smoothly-picker>\n\t\t\t\t<smoothly-input-select\n\t\t\t\t\tname=\"select\"\n\t\t\t\t\tinitialPrompt=\"Select...\"\n\t\t\t\t\tref={(element: HTMLSmoothlyInputSelectElement) => (this.selectElement = element)}>\n\t\t\t\t\t<smoothly-item value=\"1\">January</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"2\">February</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"3\">March</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"4\">April</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"5\">May</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"6\">June</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"7\">July</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"8\">August</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"9\">September</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"10\">October</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"11\">November</smoothly-item>\n\t\t\t\t\t<smoothly-item value=\"12\">December</smoothly-item>\n\t\t\t\t</smoothly-input-select>\n\t\t\t\t<smoothly-input-date-range\n\t\t\t\t\tname=\"date-range\"\n\t\t\t\t\tstart={isoly.Date.now()}\n\t\t\t\t\tend={isoly.Date.nextMonth(isoly.Date.now())}\n\t\t\t\t\tmin=\"2021-10-10\"\n\t\t\t\t\tmax=\"2025-12-30\"\n\t\t\t\t\tshowLabel={false}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\"--border-radius\": \"4px\",\n\t\t\t\t\t\t\"--padding\": \"0 0.75em\",\n\t\t\t\t\t\t\"--input-width\": \"12ch\",\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t<smoothly-input-date name=\"date\" value=\"2021-10-28\" max=\"2021-12-30\" min=\"2021-10-10\">\n\t\t\t\t\tDate\n\t\t\t\t</smoothly-input-date>\n\t\t\t\t<smoothly-submit slot=\"submit\" color=\"success\" fill=\"solid\" size=\"icon\">\n\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" fill=\"solid\" size=\"medium\" />\n\t\t\t\t</smoothly-submit>\n\t\t\t</smoothly-form>,\n\t\t]\n\t}\n}\n","@import \"../shared.css\";\n\n:host {\n\tdisplay: flex;\n\talign-items: center;\n\tflex-wrap: wrap;\n\toverflow: hidden;\n\tposition: relative;\n\twidth: 100%;\n\tpadding-left: 0.4rem;\n\t\tbackground-color: rgb(var(--background-color,var(--smoothly-color-shade)))\n}\n.mask {\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground-color: rgb(var(--text-color ,var(--smoothly-color-contrast)), 0.3);\n}\n\n:host:not(.dragging) .mask {\n\tdisplay: none;\n}\ninput {\n\toverflow: hidden;\n\theight: 0;\n\twidth: 0;\n\tpadding:0\n}\n.input {\n\tdisplay: flex;\n\talign-items:center;\n\tpadding-left: 0.4rem;\n\tpadding-bottom: 0.2rem;\n}\nsmoothly-button {\n\tmargin: 0;\n\tborder: none;\n}\nlabel {\n\tpadding-left: 0.4rem;\n\tpadding-top: 0.4rem;\n\tdisplay: flex;\n\twidth: 100%;\n\talign-items: baseline;\n\tjustify-content: flex-start;\n\tcolor: rgb(var(--text-color, var(--smoothly-color-contrast)));\n\tcursor: inherit;\n\n}\nlabel::slotted(*) {\n\tdisplay: block;\n\twidth: 100%;\n\tfont-size: 0.65em;\n\topacity: 0.8;\n}\n:host:not([show-label]) label {\n\tdisplay: none;\n}\nsmoothly-icon {\n\tdisplay: none;\n\tposition: absolute;\n\tright: 0.2em;\n\ttop: 0.6em;\n}\nspan {\n\tcursor: pointer;\n\tpadding-left: 0.5rem;\n}\n","import { Component, Event, EventEmitter, h, Host, Method, Prop, State } from \"@stencil/core\"\nimport { Color } from \"../../../model\"\nimport { Clearable } from \"../Clearable\"\nimport { Input } from \"../Input\"\nimport { Looks } from \"../Looks\"\n\n@Component({\n\ttag: \"smoothly-input-file\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputFile implements Clearable, Input {\n\tprivate transfer: DataTransfer = new DataTransfer()\n\tprivate input?: HTMLInputElement\n\t@State() dragging = false\n\t@Prop() accept?: string\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ reflect: true, mutable: true }) looks: Looks = \"plain\"\n\t@Prop({ reflect: true }) camera: \"front\" | \"back\"\n\t@Prop({ reflect: true }) name: string\n\t@Prop({ reflect: true }) showLabel = true\n\t@Prop({ mutable: true }) value?: File\n\t@Prop({ mutable: true, reflect: true }) placeholder: string | undefined\n\t@Event() smoothlyInputLooks: EventEmitter<(looks: Looks, color: Color) => void>\n\t@Event() smoothlyInput: EventEmitter<Record<string, File>>\n\t@Event() smoothlyChange: EventEmitter<Record<string, File>>\n\n\tcomponentWillLoad() {\n\t\tthis.smoothlyInputLooks.emit((looks, color) => ((this.looks = looks), !this.color && (this.color = color)))\n\t}\n\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tthis.value = undefined\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={{ dragging: this.dragging }}\n\t\t\t\tonDragOver={(event: Event) => (event.preventDefault(), event.stopPropagation())}\n\t\t\t\tonDragEnter={() => (this.dragging = true)}>\n\t\t\t\t<label>\n\t\t\t\t\t<slot name={\"label\"} />\n\t\t\t\t</label>\n\t\t\t\t<div class=\"input\">\n\t\t\t\t\t<smoothly-button\n\t\t\t\t\t\tcolor={this.color}\n\t\t\t\t\t\tfill={\"clear\"}\n\t\t\t\t\t\tsize=\"flexible\"\n\t\t\t\t\t\tonClick={event => (event.stopPropagation(), this.input?.click())}>\n\t\t\t\t\t\t<slot name={\"button\"} />\n\t\t\t\t\t</smoothly-button>\n\t\t\t\t\t<span onClick={event => (event.stopPropagation(), this.input?.click())}>\n\t\t\t\t\t\t{this.value?.name ?? this.placeholder}\n\t\t\t\t\t</span>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass={\"mask\"}\n\t\t\t\t\t\tonDrop={event => (\n\t\t\t\t\t\t\tevent.preventDefault(),\n\t\t\t\t\t\t\tevent.stopPropagation(),\n\t\t\t\t\t\t\t(this.dragging = false),\n\t\t\t\t\t\t\tevent.dataTransfer?.files.length &&\n\t\t\t\t\t\t\t\t(this.smoothlyInput.emit({ [this.name]: (this.value = event.dataTransfer.files[0]) }),\n\t\t\t\t\t\t\t\tthis.smoothlyChange.emit({ [this.name]: (this.value = event.dataTransfer.files[0]) }))\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonDragLeave={event => (event.stopPropagation(), (this.dragging = false))}\n\t\t\t\t\t/>\n\t\t\t\t\t<input\n\t\t\t\t\t\tref={element => (this.input = element)}\n\t\t\t\t\t\ttype={\"file\"}\n\t\t\t\t\t\tcapture={this.camera == \"back\" ? \"environment\" : \"user\"}\n\t\t\t\t\t\taccept={this.accept ?? (!this.camera ? undefined : \"image/jpeg\")}\n\t\t\t\t\t\tfiles={\n\t\t\t\t\t\t\t(this.transfer.items.clear(), this.value && this.transfer.items.add(this.value), this.transfer.files)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonInput={event => (\n\t\t\t\t\t\t\tevent.stopPropagation(),\n\t\t\t\t\t\t\tthis.input?.files?.length && this.smoothlyInput.emit({ [this.name]: (this.value = this.input?.files[0]) })\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonChange={event => (\n\t\t\t\t\t\t\tevent.stopPropagation(),\n\t\t\t\t\t\t\tthis.input?.files?.length &&\n\t\t\t\t\t\t\t\tthis.smoothlyChange.emit({ [this.name]: (this.value = this.input?.files[0]) })\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tfont-size: large;\n}\nsmoothly-icon {\n\tfont-size: smaller;\n}\n","import { Component, Event, EventEmitter, h, Prop, Watch } from \"@stencil/core\"\nimport { Date } from \"isoly\"\nimport * as generate from \"../../calendar/generate\"\n\n@Component({\n\ttag: \"smoothly-input-month\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class MonthSelector {\n\t@Prop({ mutable: true }) value?: Date\n\t@Event() valueChanged: EventEmitter<Date>\n\t@Watch(\"value\")\n\tonValueChanged(next: Date) {\n\t\tthis.valueChanged.emit(next)\n\t}\n\tprivate adjustMonth(delta: number) {\n\t\tconst date = Date.parse(this.value ?? Date.now())\n\t\tdate.setMonth(date.getMonth() + delta)\n\t\tthis.value = Date.create(date)\n\t}\n\trender() {\n\t\treturn [\n\t\t\t<div onClick={() => this.adjustMonth(-1)}>\n\t\t\t\t<smoothly-icon name=\"caret-back-outline\" size=\"small\" />\n\t\t\t</div>,\n\t\t\t<smoothly-input-select onSelected={(e: CustomEvent) => (this.value = e.detail)}>\n\t\t\t\t{generate.years(this.value ?? Date.now()).map(year => (\n\t\t\t\t\t<smoothly-item value={year.date} selected={year.selected}>\n\t\t\t\t\t\t{year.name}\n\t\t\t\t\t</smoothly-item>\n\t\t\t\t))}\n\t\t\t</smoothly-input-select>,\n\t\t\t<smoothly-input-select onSelected={(e: CustomEvent) => (this.value = e.detail)}>\n\t\t\t\t{generate.months(this.value ?? Date.now()).map(month => (\n\t\t\t\t\t<smoothly-item value={month.date} selected={month.selected}>\n\t\t\t\t\t\t{month.name}\n\t\t\t\t\t</smoothly-item>\n\t\t\t\t))}\n\t\t\t</smoothly-input-select>,\n\t\t\t<div onClick={() => this.adjustMonth(1)}>\n\t\t\t\t<smoothly-icon name=\"caret-forward-outline\" size=\"small\" />\n\t\t\t</div>,\n\t\t]\n\t}\n}\n","@import \"../shared.css\";\n\n:host {\n\tdisplay: flex;\n\tposition: relative;\n\tbackground-color: rgb(var(--background-color, var(--smoothly-color-shade)));\n}\n\n:host.icon {\n\twidth: fit-content;\n\tflex-direction: column;\n}\n\n:host>main,\n:host>main>* {\n\theight: 100%;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n:host.icon>main,\n:host.icon>main>* {\n\tpadding: 0.5em;\n}\n\n:host>div>nav {\n\tdisplay: flex;\n\tflex-direction: column;\n\tposition: absolute;\n\tz-index: 10;\n\theight: var(--menu-height, unset);\n\toverflow-y: scroll;\n}\n\n:host>aside {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 5em;\n\tz-index: 10;\n\tbackground-color: rgb(var(--smoothly-tertiary-color));\n\tcolor: rgb(var(--smoothly-tertiary-contrast));\n\theight: 1.25rem;\n\tborder-radius: 0.3rem;\n\tpadding: 0.3rem;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n:host().missing>aside {\n\tbackground-color: rgb(var(--smoothly-warning-color));\n\tcolor: rgb(var(--smoothly-warning-contrast));\n}\n\n.hidden {\n\tdisplay: none;\n}\n\n:host>section {\n\tposition: fixed;\n\ttop: 0px;\n\tleft: 0px;\n\twidth: 100vw;\n\theight: 100vh;\n\tz-index: 10;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { Color } from \"../../../model\"\nimport { Input } from \"../Input\"\nimport { Looks } from \"../Looks\"\n@Component({\n\ttag: \"smoothly-input-select\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputSelect implements Input {\n\t@Element() element: HTMLSmoothlyInputSelectElement\n\t@Prop() name: string\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ reflect: true, mutable: true }) looks: Looks = \"plain\"\n\t@Prop({ reflect: true, mutable: true }) type?: \"icon\"\n\t@Prop({ reflect: true, mutable: true }) showSelected?: boolean = true\n\t@Prop() initialPrompt?: string\n\t@Prop() initialValue?: any\n\t@State() opened = false\n\titems: HTMLSmoothlyItemElement[] = []\n\t@State() selectedElement?: HTMLSmoothlyItemElement\n\t@State() missing = false\n\tmainElement?: HTMLElement\n\t@State() filter = \"\"\n\t@Event() selected: EventEmitter<any>\n\t@Event() smoothlyInput: EventEmitter<Record<number, any>>\n\taside?: HTMLElement\n\t@Event() smoothlyInputLooks: EventEmitter<(looks: Looks, color: Color) => void>\n\n\tcomponentWillLoad() {\n\t\tthis.smoothlyInputLooks.emit((looks, color) => ((this.looks = looks), !this.color && (this.color = color)))\n\t}\n\n\t@Method()\n\tasync reset() {\n\t\tthis.selectedElement = undefined\n\t\tif (this.mainElement) {\n\t\t\t//reset to the same value as it started with\n\t\t\tthis.mainElement.innerHTML = this.initialPrompt ?? \"(none)\"\n\t\t}\n\t}\n\n\t@Watch(\"selectedElement\")\n\tonSelectedChange(value: HTMLSmoothlyItemElement | undefined, old: HTMLSmoothlyItemElement | undefined) {\n\t\tif (old)\n\t\t\told.selected = false\n\t\tthis.selected.emit(value?.value)\n\t\tthis.smoothlyInput.emit({ [this.name]: value?.value })\n\t}\n\t@Watch(\"filter\")\n\tasync onFilterChange(value: string) {\n\t\tvalue = value.toLowerCase()\n\t\tif (!(await Promise.all(this.items.map(item => item.filter(value)))).some(r => r)) {\n\t\t\tthis.missing = true\n\t\t\tthis.items.forEach(el => el.filter(\"\"))\n\t\t} else\n\t\t\tthis.missing = false\n\t}\n\t@Listen(\"click\")\n\tonClick(event: UIEvent) {\n\t\tevent.stopPropagation()\n\t\tthis.opened = !this.opened\n\t}\n\t@Listen(\"itemSelected\")\n\tonItemSelected(event: Event) {\n\t\tthis.selectedElement && (this.selectedElement.hidden = false)\n\t\tthis.selectedElement = event.target as HTMLSmoothlyItemElement\n\t\t!this.showSelected && (this.selectedElement.hidden = true)\n\t\tif (this.mainElement)\n\t\t\tthis.mainElement.innerHTML = this.selectedElement.innerHTML\n\t}\n\t@Watch(\"opened\")\n\tonClosed() {\n\t\tif (!this.opened) {\n\t\t\tconst marked = this.items.find(item => item.marked)\n\t\t\tif (marked)\n\t\t\t\tmarked.marked = false\n\t\t}\n\t}\n\n\t@Listen(\"keydown\")\n\tonKeyDown(event: KeyboardEvent) {\n\t\tevent.stopPropagation()\n\t\tevent.preventDefault()\n\t\tif (this.opened) {\n\t\t\tlet direction: -1 | 0 | 1 = 0\n\t\t\tswitch (event.key) {\n\t\t\t\tcase \"ArrowUp\":\n\t\t\t\t\tdirection = -1\n\t\t\t\t\tbreak\n\t\t\t\tcase \"ArrowDown\":\n\t\t\t\t\tdirection = 1\n\t\t\t\t\tbreak\n\t\t\t\tcase \"Escape\":\n\t\t\t\t\tthis.filter = \"\"\n\t\t\t\t\tbreak\n\t\t\t\tcase \"Backspace\":\n\t\t\t\t\tthis.filter = this.filter.slice(0, -1)\n\t\t\t\t\tbreak\n\t\t\t\tcase \"Enter\":\n\t\t\t\t\tconst result = this.items.find(item => item.marked)\n\t\t\t\t\tif (result?.value) {\n\t\t\t\t\t\tresult.selected = true\n\t\t\t\t\t}\n\t\t\t\t\tthis.opened = false\n\t\t\t\t\tthis.filter = \"\"\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\tif (event.key.length == 1)\n\t\t\t\t\t\tthis.filter += event.key\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t\tthis.move(direction)\n\t\t} else if (event.key == \"Enter\")\n\t\t\tthis.opened = true\n\t}\n\tprivate move(direction: -1 | 0 | 1): void {\n\t\tif (direction) {\n\t\t\tlet markedIndex = this.items.findIndex(item => item.marked)\n\t\t\tif (markedIndex == -1)\n\t\t\t\tmarkedIndex = this.items.findIndex(item => item.selected)\n\t\t\tif (this.items[markedIndex])\n\t\t\t\tthis.items[markedIndex].marked = false\n\t\t\tdo {\n\t\t\t\tmarkedIndex = (markedIndex + direction + this.items.length) % this.items.length\n\t\t\t} while (this.items[markedIndex].hidden)\n\t\t\tthis.items[markedIndex].marked = true\n\t\t\tthis.items[markedIndex].focus()\n\t\t}\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host tabIndex={2} class={(this.missing ? \"missing\" : this.type) ?? \"\"}>\n\t\t\t\t<main ref={element => (this.mainElement = element)}>{this.initialPrompt ?? \"(none)\"}</main>\n\t\t\t\t{this.filter.length != 0 ? (\n\t\t\t\t\t<aside ref={element => (this.aside = element)}>\n\t\t\t\t\t\t{this.filter}\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tonClick={e => {\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\tthis.filter = \"\"\n\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t<smoothly-icon name=\"close\" size=\"small\"></smoothly-icon>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</aside>\n\t\t\t\t) : undefined}\n\t\t\t\t{this.opened ? <section onClick={() => (this.opened = true)}></section> : []}\n\t\t\t\t<div class={this.opened ? \"\" : \"hidden\"}>\n\t\t\t\t\t<nav>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</nav>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n\tcomponentDidRender() {\n\t\tconst items: HTMLSmoothlyItemElement[] = []\n\t\tconst children = this.element.querySelectorAll(\"div > nav > smoothly-item\")\n\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\tconst node = children.item(i)\n\t\t\tif (isItem(node)) {\n\t\t\t\titems.push(node)\n\t\t\t\tnode.value == this.initialValue && this.mainElement && !this.selectedElement && (node.selected = true)\n\t\t\t}\n\t\t}\n\t\tthis.items = items\n\t}\n}\nfunction isItem(value: HTMLSmoothlyItemElement | any): value is HTMLSmoothlyItemElement {\n\treturn (\n\t\ttypeof value == \"object\" &&\n\t\t(typeof value.selected == \"boolean\" || value.selected == undefined) &&\n\t\ttypeof value.filter == \"function\"\n\t)\n}\n",":host([selected]) {\n\tbackground-color: rgb(var(--smoothly-primary-shade));\n\tcolor: rgb(var(--smoothly-primary-contrast));\n}\n:host {\n\tpadding: 0.5em;\n\tcursor: pointer;\n\tbackground-color: rgb(var(--smoothly-default-shade));\n\tcolor: rgb(var(--smoothly-default-contrast));\n\tborder: rgb(var(--smoothly-default-shade) solid 1px);\n}\n:host([marked]),\n:host:hover {\n\tbackground-color: rgb(var(--smoothly-primary-color));\n\tcolor: rgb(var(--smoothly-primary-contrast));\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, Watch } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-item\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class Item {\n\t@Element() element: HTMLSmoothlyItemElement\n\t@Prop() value: any\n\t@Prop({ reflect: true, mutable: true }) selected: boolean\n\t@Prop({ reflect: true, mutable: true }) marked: boolean\n\t@Event() itemSelected: EventEmitter<void>\n\t@Watch(\"selected\")\n\tonSelectedChanged(value: boolean, old: boolean) {\n\t\tif (value && !old)\n\t\t\tthis.itemSelected.emit()\n\t}\n\t@Listen(\"click\")\n\tonClick() {\n\t\tthis.selected = true\n\t\tthis.itemSelected.emit()\n\t}\n\tcomponentDidLoad() {\n\t\tif (this.selected)\n\t\t\tthis.itemSelected.emit()\n\t}\n\t@Method()\n\tasync filter(filter: string): Promise<boolean> {\n\t\tconst result = !(this.element.hidden = filter\n\t\t\t? !(\n\t\t\t\t\t(typeof this.value === \"string\" ? this.value : JSON.stringify(this.value)).toLowerCase().includes(filter) ||\n\t\t\t\t\tthis.element.innerText.toLowerCase().includes(filter)\n\t\t\t )\n\t\t\t: false)\n\t\treturn result\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host tabIndex={-1}>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n\twidth: 30em;\n\tmin-height: 3em;\n\tborder-radius: 5px;\n\tmargin: 0.5em;\n}\n.clean {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tpadding: 0.5em 1em;\n}\n.icon {\n\tdisplay: grid;\n\twidth: 100%;\n\tgrid-template-columns: 1fr 5fr;\n}\n.icon > p{\n\tpadding-right: 1em;\n}\n:host > span > p {\n\ttext-align: left;\n}\n:host[hidden] {\n\tdisplay: none;\n}\nsmoothly-icon {\n\tleft: 0;\n\tfont-size: 1.2em;\n\talign-self: center;\n\tjustify-self: center;\n}\nsmoothly-trigger {\n\tfont-size: 0.5em;\n\tfloat: right;\n\ttext-align: right;\n\tmargin-right: 0.2em;\n}\n","// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { Component, Event, EventEmitter, h, Host, Listen, Prop, State, Watch } from \"@stencil/core\"\nimport { Color, Notice, Trigger } from \"../../model\"\nimport { Icon } from \"../../model\"\n\n@Component({\n\ttag: \"smoothly-notification\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class Notification {\n\t@Prop() notice: Notice\n\t@Prop() closable = true\n\t@Prop() icon = false\n\t@State() tick = {}\n\t@Event() remove: EventEmitter<Notice>\n\tprivate listener: Notice.Listener = notice => {\n\t\tif (notice.state == \"closed\")\n\t\t\tthis.remove.emit(notice)\n\t\telse\n\t\t\tthis.tick = {}\n\t}\n\tprivate get properties(): [Color, Icon | undefined] {\n\t\tlet result: [Color, Icon | undefined]\n\t\tswitch (this.notice.state) {\n\t\t\tcase \"delayed\":\n\t\t\tcase \"warning\":\n\t\t\t\tresult = [\"warning\", \"warning-outline\"]\n\t\t\t\tbreak\n\t\t\tcase \"success\":\n\t\t\t\tresult = [\"success\", \"checkmark-circle\"]\n\t\t\t\tbreak\n\t\t\tcase \"executing\":\n\t\t\t\tresult = [\"light\", \"hourglass-outline\"]\n\t\t\t\tbreak\n\t\t\tcase \"failed\":\n\t\t\t\tresult = [\"danger\", \"alert-circle\"]\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tresult = [\"light\", undefined]\n\t\t\t\tbreak\n\t\t}\n\t\treturn result\n\t}\n\n\t@Listen(\"trigger\")\n\tonTrigger(event: CustomEvent<Trigger>) {\n\t\tif (event.detail.name == \"close\") {\n\t\t\tevent.stopPropagation()\n\t\t\tthis.notice.close()\n\t\t}\n\t}\n\n\t@Watch(\"notice\")\n\tonUpdatedNotice(newValue: Notice, oldValue?: Notice) {\n\t\tif (oldValue)\n\t\t\toldValue.unlisten(this.listener)\n\t\tnewValue.listen(this.listener)\n\t}\n\tcomponentDidLoad() {\n\t\tthis.onUpdatedNotice(this.notice)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host color={this.properties[0]} fill=\"solid\">\n\t\t\t\t{this.closable ? (\n\t\t\t\t\t<smoothly-trigger fill=\"clear\" name=\"close\">\n\t\t\t\t\t\t<smoothly-icon name=\"close-circle-outline\"></smoothly-icon>\n\t\t\t\t\t</smoothly-trigger>\n\t\t\t\t) : (\n\t\t\t\t\t\"\"\n\t\t\t\t)}\n\t\t\t\t<span class={this.icon ? \"icon\" : \"clean\"}>\n\t\t\t\t\t{this.icon ? <smoothly-icon name={this.properties[1]}></smoothly-icon> : \"\"}\n\t\t\t\t\t<p>{this.notice.message}</p>\n\t\t\t\t</span>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n}\n:host[hidden] {\n\tdisplay: none;\n}\n:host > aside {\n\tdisplay: flex;\n\tflex-wrap: wrap-reverse;\n\talign-content: stretch;\n\tposition: fixed;\n\tbottom: 3rem;\n\tleft: 0;\n\ttext-align: center;\n\tz-index: 100;\n}\n","import { Component, h, Listen, State } from \"@stencil/core\"\nimport { Notice } from \"../../model\"\n\n@Component({\n\ttag: \"smoothly-notifier\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class Notifier {\n\t@State() notices: Notice[] = []\n\n\t@Listen(\"notice\")\n\tonNotice(event: CustomEvent<Notice>) {\n\t\tthis.notices = [...this.notices, event.detail]\n\t}\n\t@Listen(\"remove\")\n\tonRemove(event: CustomEvent<Notice>) {\n\t\tthis.notices = [...this.notices.filter(n => n != event.detail)]\n\t}\n\trender() {\n\t\treturn [\n\t\t\t<slot></slot>,\n\t\t\t<aside>\n\t\t\t\t{this.notices.map(n => (\n\t\t\t\t\t<smoothly-notification notice={n}></smoothly-notification>\n\t\t\t\t))}\n\t\t\t</aside>,\n\t\t]\n\t}\n}\n","@import \"../input/shared.css\";\n\n:host {\n\tdisplay: flex;\n\tposition: relative;\n\twidth: max-content;\n\tpadding: 1.2em 0.7em 0.2em 0.8em;\n\tbackground-color: rgb(var(--background-color, var(--smoothly-color-shade)));\n}\n:host div.element {\n\tdisplay: flex;\n\tbackground-color: inherit;\n}\nsmoothly-slot-elements {\n\twhite-space: nowrap;\n}\n.selected {\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 1rem;\n\twidth: 100%;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\tmargin-right: 2px;\n}\n.selected::after {\n\tcontent: \"\";\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tright: 0;\n\twidth: 2ch;\n\tbackground: linear-gradient(90deg, rgba(var(--background-color, var(--smoothly-color-shade)), 0) 0%, rgba(var(--background-color, var(--smoothly-color-shade)), 1) 100%);\n}\n.selected * {\n\tdisplay: none;\n}\n.label {\n\tposition: absolute;\n\tleft: 0.4rem;\n\ttop: 0.6rem;\n\tcolor: rgb(var(--text-color, var(--smoothly-color-contrast)));\n\topacity: 0.8;\n\tuser-select: none;\n\tcursor: inherit;\n\ttransform-origin: top left;\n\ttransition: transform 100ms ease;\n}\n.selected:not(:empty) + .label {\n\ttop: 0.4em;\n\ttransform: scale(0.6);\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { Notice, Option } from \"../../model\"\nimport { Clearable } from \"../input/Clearable\"\nimport { Input } from \"../input/Input\"\nimport { Looks } from \"../input/Looks\"\nimport { Controls } from \"./menu\"\n\n@Component({\n\ttag: \"smoothly-picker\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyPicker implements Clearable, Input {\n\t@Element() element: HTMLSmoothlyPickerElement\n\t@Prop({ reflect: true, mutable: true }) looks: Looks = \"plain\"\n\t@Prop({ reflect: true }) name: string\n\t@Prop({ reflect: true, mutable: true }) open = false\n\t@Prop({ reflect: true }) mutable = false\n\t@Prop({ reflect: true }) multiple = false\n\t@Prop({ reflect: true }) readonly = false\n\t@Prop() validator?: (value: string) => boolean | { result: boolean; notice: Notice }\n\t@State() selected = new Map<any, Option>()\n\t@State() display: Node[]\n\t@Event() smoothlyPickerLoaded: EventEmitter<Controls>\n\t@Event() smoothlyInput: EventEmitter<Record<string, any | any[]>> // multiple -> any[]\n\t@Event() smoothlyChange: EventEmitter<Record<string, any | any[]>> // multiple -> any[]\n\t@Event() smoothlyInputLooks: EventEmitter<(looks: Looks) => void>\n\tprivate controls?: Controls & { synced: () => boolean }\n\n\tcomponentWillLoad() {\n\t\tthis.smoothlyInputLooks.emit(looks => (this.looks = looks))\n\t}\n\n\t@Watch(\"selected\")\n\tselectedChanged() {\n\t\tconst selected = Array.from(this.selected.values(), option => option.value)\n\t\tif (this.controls?.synced()) {\n\t\t\tthis.smoothlyInput.emit({ [this.name]: this.multiple ? selected : selected.at(0) })\n\t\t\tthis.smoothlyChange.emit({ [this.name]: this.multiple ? selected : selected.at(0) })\n\t\t}\n\t\tthis.display = Array.from(this.selected.values(), option => {\n\t\t\tconst span = document.createElement(\"span\")\n\t\t\toption.slotted.forEach(node => span.appendChild(node.cloneNode(true)))\n\t\t\treturn span\n\t\t})\n\t}\n\n\tcomponentDidLoad() {\n\t\tif (this.controls)\n\t\t\tthis.smoothlyPickerLoaded.emit((({ synced, ...controls }) => controls)(this.controls))\n\t}\n\t@Listen(\"smoothlyInputLooks\")\n\tsmoothlyInputLooksHandler(event: CustomEvent<(looks: Looks) => void>) {\n\t\tif (event.target != this.element)\n\t\t\tevent.stopPropagation()\n\t}\n\t@Listen(\"smoothlyPickerMenuLoaded\")\n\tmenuLoadedHandler(event: CustomEvent<Controls & { synced: () => boolean }>) {\n\t\tthis.controls = event.detail\n\t}\n\t@Listen(\"smoothlyPickerOptionLoaded\")\n\toptionLoadedHandler(event: CustomEvent<Option>) {\n\t\tif (event.detail.selected)\n\t\t\tthis.selected = this.multiple\n\t\t\t\t? new Map(this.selected.set(event.detail.value, event.detail).entries())\n\t\t\t\t: new Map().set(event.detail.value, event.detail)\n\t}\n\n\t@Listen(\"smoothlyPickerOptionChange\")\n\toptionChangeHandler(event: CustomEvent<Option>) {\n\t\tif (!this.readonly)\n\t\t\tif (this.multiple)\n\t\t\t\tthis.selected = event.detail.selected\n\t\t\t\t\t? new Map(this.selected.set(event.detail.value, event.detail).entries())\n\t\t\t\t\t: !this.selected.delete(event.detail.value)\n\t\t\t\t\t? this.selected\n\t\t\t\t\t: new Map(this.selected.entries())\n\t\t\telse\n\t\t\t\tthis.selected = !event.detail.selected ? new Map() : new Map().set(event.detail.value, event.detail)\n\t}\n\t@Listen(\"click\", { target: \"window\" })\n\tclickHandler(event: MouseEvent) {\n\t\tthis.open = !event.composedPath().includes(this.element) ? false : !this.open\n\t}\n\t@Listen(\"focusin\", { target: \"window\" })\n\tfocusHandler(event: FocusEvent) {\n\t\tif (!event.composedPath().includes(this.element))\n\t\t\tthis.open = false\n\t}\n\t@Method()\n\tasync clear() {\n\t\tthis.selected.forEach(option => option.selected && option.element.clickHandler())\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<smoothly-slot-elements class={\"selected\"} nodes={this.display} />\n\t\t\t\t<span class={\"label\"}>\n\t\t\t\t\t<slot name={\"label\"} />\n\t\t\t\t</span>\n\t\t\t\t<button type=\"button\">\n\t\t\t\t\t<smoothly-icon size=\"tiny\" name={this.open ? \"caret-down-outline\" : \"caret-forward-outline\"} />\n\t\t\t\t</button>\n\t\t\t\t<slot name=\"child\" />\n\t\t\t\t<smoothly-picker-menu\n\t\t\t\t\topen={this.open}\n\t\t\t\t\tlooks={this.looks}\n\t\t\t\t\tonClick={e => e.stopPropagation()}\n\t\t\t\t\tmultiple={this.multiple}\n\t\t\t\t\tmutable={this.mutable}\n\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\tvalidator={this.validator}>\n\t\t\t\t\t<slot name=\"search\" slot=\"search\" />\n\t\t\t\t\t<slot name=\"display\" slot=\"display\" />\n\t\t\t\t\t<slot />\n\t\t\t\t</smoothly-picker-menu>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n:host smoothly-form {\n\tmax-width: 50rem;\n}\n:host .counter {\n\tposition: relative;\n\twidth: 3rem;\n\theight: 3rem;\n}\n:host .counter-button {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tpadding: 0;\n\tmargin: 0;\n\theight: 3rem;\n\twidth: 3rem;\n\tbackground-color: inherit;\n\tborder: none;\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n}\n","import { Component, h, Host, Listen, State } from \"@stencil/core\"\nimport { Data, Notice } from \"../../../model\"\nimport { Controls } from \"../menu\"\n\nfunction validateEmail(email: string) {\n\treturn email.match(/^.+@.+/) ? true : { result: false, notice: Notice.failed(\"That is not an email\") }\n}\n\n@Component({\n\ttag: \"smoothly-picker-demo\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyPickerDemo {\n\tprivate controls?: Controls\n\tprivate users: Record<string, string | undefined> = {\n\t\t\"giovani@rocket.com\": \"giovani doe\",\n\t\t\"jessie@rocket.com\": \"jessie doe\",\n\t\t\"james@rocket.com\": \"james doe\",\n\t}\n\t@State() counter = 3\n\t@State() data = {\n\t\tmessage: \"hello world\",\n\t\temails: [\"jessie@rocket.com\", \"james@rocket.com\"],\n\t\toptions: [\n\t\t\t\"giovani@rocket.com\",\n\t\t\t\"john@example.com\",\n\t\t\t\"jane@example.com\",\n\t\t\t\"jack@example.com\",\n\t\t\t\"jessica@example.com\",\n\t\t\t\"julia@example.com\",\n\t\t\t\"jayden@example.com\",\n\t\t\t\"jake@example.com\",\n\t\t\t\"jamie@example.com\",\n\t\t\t\"jasmine@example.com\",\n\t\t],\n\t}\n\t@State() change?: SmoothlyPickerDemo[\"data\"]\n\tinputHandler(event: CustomEvent<Data>) {\n\t\tif (this.change) {\n\t\t\tthis.change = {\n\t\t\t\t...this.change,\n\t\t\t\t...event.detail,\n\t\t\t}\n\t\t\tconsole.log(\"demo input\", this.change)\n\t\t}\n\t}\n\t@Listen(\"smoothlyFormSubmit\")\n\tsubmitHandler(event: CustomEvent<Data>) {\n\t\tconsole.log(\"submitted\", event.detail)\n\t}\n\tclickHandler() {\n\t\tif (!this.change)\n\t\t\tthis.controls?.remember()\n\t\telse\n\t\t\tthis.controls?.restore()\n\t\tthis.change = this.change ? undefined : { ...this.data, emails: [...this.data.emails] }\n\t}\n\tloadedHandler(event: CustomEvent<Controls>) {\n\t\tthis.controls = event.detail\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<div>\n\t\t\t\t\t<smoothly-button onClick={() => (this.counter += 1)}>Add one</smoothly-button>\n\t\t\t\t\t<smoothly-button onClick={() => (this.counter -= 1)}>Remove one</smoothly-button>\n\t\t\t\t\t<smoothly-picker\n\t\t\t\t\t\tclass={\"counter\"}\n\t\t\t\t\t\tkey={Array.from({ length: this.counter }).toString()}\n\t\t\t\t\t\tname=\"counter\"\n\t\t\t\t\t\tmultiple\n\t\t\t\t\t\tmutable\n\t\t\t\t\t\tonSmoothlyInput={e => console.log(\"demo counter input\", e.detail)}>\n\t\t\t\t\t\t{Array.from({ length: this.counter }).map((_, index) => (\n\t\t\t\t\t\t\t<smoothly-picker-option value={index} selected={index < this.counter - 1}>\n\t\t\t\t\t\t\t\t{index}\n\t\t\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t<span slot=\"search\">Search</span>\n\t\t\t\t\t\t<button slot=\"child\" class={\"counter-button\"}>\n\t\t\t\t\t\t\t<smoothly-icon name={\"add-outline\"} />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</smoothly-picker>\n\t\t\t\t</div>\n\t\t\t\t<smoothly-button onClick={() => this.clickHandler()}>\n\t\t\t\t\t{!this.change ? \"start edit\" : \"end edit\"}\n\t\t\t\t</smoothly-button>\n\t\t\t\t<h5>Controlled input</h5>\n\t\t\t\t<smoothly-form looks=\"line\" onSmoothlyFormInput={e => this.inputHandler(e as any)}>\n\t\t\t\t\t<smoothly-input readonly={!this.change} name=\"message\" value={this.data.message}>\n\t\t\t\t\t\tMessage\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-picker\n\t\t\t\t\t\tname=\"emails\"\n\t\t\t\t\t\tmutable\n\t\t\t\t\t\tmultiple\n\t\t\t\t\t\treadonly={!this.change}\n\t\t\t\t\t\tvalidator={validateEmail}\n\t\t\t\t\t\tonSmoothlyPickerLoaded={e => this.loadedHandler(e)}>\n\t\t\t\t\t\t<span slot=\"label\">Emails</span>\n\t\t\t\t\t\t<span slot=\"search\">Search</span>\n\t\t\t\t\t\t<smoothly-icon size=\"tiny\" slot=\"display\" name=\"person-add-outline\" />\n\t\t\t\t\t\t{(this.change?.emails ?? this.data.emails).map(email => (\n\t\t\t\t\t\t\t<smoothly-picker-option key={email} value={email} selected search={[this.users[email] ?? []].flat()}>\n\t\t\t\t\t\t\t\t<span>{this.users[email]}</span>\n\t\t\t\t\t\t\t\t<span slot=\"label\">{email}</span>\n\t\t\t\t\t\t\t\t<smoothly-icon size=\"tiny\" slot=\"display\" name=\"person-outline\" />\n\t\t\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t{this.data.options.map(email => (\n\t\t\t\t\t\t\t<smoothly-picker-option key={email} value={email} search={[this.users[email] ?? []].flat()}>\n\t\t\t\t\t\t\t\t<span>{this.users[email]}</span>\n\t\t\t\t\t\t\t\t<span slot=\"label\">{email}</span>\n\t\t\t\t\t\t\t\t<smoothly-icon size=\"tiny\" slot=\"display\" name=\"person-outline\" />\n\t\t\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</smoothly-picker>\n\t\t\t\t\t<smoothly-submit size=\"icon\" slot=\"submit\">\n\t\t\t\t\t\t<smoothly-icon name=\"checkmark-circle\" />\n\t\t\t\t\t</smoothly-submit>\n\t\t\t\t\t<smoothly-input-clear type=\"form\" color=\"danger\" fill=\"solid\" slot=\"clear\">\n\t\t\t\t\t\tClear\n\t\t\t\t\t</smoothly-input-clear>\n\t\t\t\t</smoothly-form>\n\t\t\t\t<h5>uncontrolled inputs</h5>\n\t\t\t\t<smoothly-form onSmoothlyFormSubmit={e => console.log(\"submitted\", e.detail)} looks=\"line\">\n\t\t\t\t\t<smoothly-input name=\"purpose\" type=\"text\">\n\t\t\t\t\t\tPurpose\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t<smoothly-picker multiple mutable name=\"emails\" validator={validateEmail}>\n\t\t\t\t\t\t<span slot=\"label\">Emails</span>\n\t\t\t\t\t\t<span slot=\"search\">Search</span>\n\t\t\t\t\t\t<smoothly-picker-option value={\"james@rocket.com\"}>james@rocket.com</smoothly-picker-option>\n\t\t\t\t\t\t<smoothly-picker-option selected value={\"jessie@rocket.com\"}>\n\t\t\t\t\t\t\tjessie@rocket.com\n\t\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t\t<smoothly-picker-option value={\"giovanni@rocket.com\"}>giovanni@rocket.com</smoothly-picker-option>\n\t\t\t\t\t</smoothly-picker>\n\t\t\t\t\t<smoothly-submit slot=\"submit\">Submit</smoothly-submit>\n\t\t\t\t\t<smoothly-input-clear type=\"form\" color=\"danger\" fill=\"solid\" slot=\"clear\">\n\t\t\t\t\t\tClear\n\t\t\t\t\t</smoothly-input-clear>\n\t\t\t\t\t<smoothly-picker name=\"shape\">\n\t\t\t\t\t\t<span slot=\"label\">Shape</span>\n\t\t\t\t\t\t<span slot=\"search\">Search</span>\n\t\t\t\t\t\t<smoothly-picker-option value={\"circle\"}>\n\t\t\t\t\t\t\t<span slot=\"label\">Circle</span>\n\t\t\t\t\t\t\t<smoothly-icon size=\"tiny\" name=\"ellipse-outline\" />\n\t\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t\t<smoothly-picker-option value={\"cube\"}>\n\t\t\t\t\t\t\t<span slot={\"label\"}>Cube</span>\n\t\t\t\t\t\t\t<smoothly-icon size=\"tiny\" name=\"cube-outline\" />\n\t\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t\t<smoothly-picker-option value={\"square\"} selected>\n\t\t\t\t\t\t\t<span slot={\"label\"}>Square</span>\n\t\t\t\t\t\t\t<smoothly-icon size=\"tiny\" name=\"square-outline\" />\n\t\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t</smoothly-picker>\n\t\t\t\t\t<smoothly-picker multiple readonly name=\"animals\">\n\t\t\t\t\t\t<span slot=\"label\">Animals</span>\n\t\t\t\t\t\t<span slot=\"search\">Search</span>\n\t\t\t\t\t\t<smoothly-picker-option selected value={\"cat\"}>\n\t\t\t\t\t\t\tCat\n\t\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t\t<smoothly-picker-option value={\"dog\"}>Dog</smoothly-picker-option>\n\t\t\t\t\t\t<smoothly-picker-option value={\"fish\"}>Fish</smoothly-picker-option>\n\t\t\t\t\t</smoothly-picker>\n\t\t\t\t</smoothly-form>\n\t\t\t\t<smoothly-picker looks=\"border\" name=\"icon\" multiple>\n\t\t\t\t\t<span slot=\"label\">Icon</span>\n\t\t\t\t\t<span slot=\"search\">Search</span>\n\t\t\t\t\t<smoothly-picker-option value={\"circle\"} required>\n\t\t\t\t\t\t<span slot=\"label\">Circle</span>\n\t\t\t\t\t\t<smoothly-icon size=\"tiny\" name=\"ellipse-outline\" />\n\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t<smoothly-picker-option value={\"cube\"}>\n\t\t\t\t\t\t<span slot={\"label\"}>Cube</span>\n\t\t\t\t\t\t<smoothly-icon size=\"tiny\" name=\"cube-outline\" />\n\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t<smoothly-picker-option value={\"square\"} selected>\n\t\t\t\t\t\t<span slot={\"label\"}>Square</span>\n\t\t\t\t\t\t<smoothly-icon size=\"tiny\" name=\"square-outline\" />\n\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t<smoothly-picker-option value={\"airplane\"}>\n\t\t\t\t\t\t<span slot={\"label\"}>Airplane</span>\n\t\t\t\t\t\t<smoothly-icon size=\"tiny\" name=\"airplane-outline\" />\n\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t<smoothly-picker-option value={\"alarm\"}>\n\t\t\t\t\t\t<span slot={\"label\"}>Alarm</span>\n\t\t\t\t\t\t<smoothly-icon size=\"tiny\" name=\"alarm-outline\" />\n\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t<smoothly-picker-option value={\"archive\"}>\n\t\t\t\t\t\t<span slot={\"label\"}>Archive</span>\n\t\t\t\t\t\t<smoothly-icon size=\"tiny\" name=\"archive-outline\" />\n\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t<smoothly-picker-option value={\"bag\"}>\n\t\t\t\t\t\t<span slot={\"label\"}>Bag</span>\n\t\t\t\t\t\t<smoothly-icon size=\"tiny\" name=\"bag-outline\" />\n\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t<smoothly-picker-option value={\"cafe\"}>\n\t\t\t\t\t\t<span slot={\"label\"}>Cafe</span>\n\t\t\t\t\t\t<smoothly-icon size=\"tiny\" name=\"cafe-outline\" />\n\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t<smoothly-picker-option value={\"disc\"}>\n\t\t\t\t\t\t<span slot={\"label\"}>Disc</span>\n\t\t\t\t\t\t<smoothly-icon size=\"tiny\" name=\"disc-outline\" />\n\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t<smoothly-picker-option value={\"earth\"}>\n\t\t\t\t\t\t<span slot={\"label\"}>Earth</span>\n\t\t\t\t\t\t<smoothly-icon size=\"tiny\" name=\"earth-outline\" />\n\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t<smoothly-picker-option value={\"fast-food\"}>\n\t\t\t\t\t\t<span slot={\"label\"}>Fast food</span>\n\t\t\t\t\t\t<smoothly-icon size=\"tiny\" name=\"fast-food-outline\" />\n\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t</smoothly-picker>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 0.5rem;\n\tposition: absolute;\n\tz-index: 4;\n\tleft: -1px;\n\tright: -1px;\n\tmin-width: max-content;\n\tbackground-color: rgb(var(--background-color, var(--smoothly-color-shade)));\n\tpadding: 0.5rem;\n\tborder: rgb(var(--text-color, var(--smoothly-color-contrast))) solid 1px;\n}\n:host:not(.flip) {\n\ttop: 100%;\n}\n:host.flip {\n\tbottom: 100%;\n}\n:host:not([open]) {\n\tdisplay: none;\n}\n:host .list {\n\tdisplay: grid;\n\tgrid-template-columns: auto 1fr auto;\n\talign-items: center;\n\trow-gap: 0.5ch;\n\toverflow-y: auto;\n\tmax-height: calc(1.75rem * 10 + 0.5ch * 9);\n\tpadding-right: 0.5rem;\n\tpadding-bottom: 0.25rem;\n}\n:host .hide {\n\tdisplay: none;\n}\n:host .controls {\n\tdisplay: grid;\n\tgrid-template-columns: 1fr auto;\n\tgap: 0.5rem;\n\ttransition: grid-template-columns 200ms linear;\n}\n:host .controls > button:disabled {\n\topacity: 0.3;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop, State, Watch } from \"@stencil/core\"\nimport global from \"../../../global/index\"\nimport { Notice, Option } from \"../../../model\"\nimport { Looks } from \"../../input/Looks\"\nimport { Slot } from \"../slot-elements\"\n\nconst Observers = global().Observers\n\nfunction* chain<T>(...iterables: Iterable<T>[]): Iterable<T> {\n\tfor (const iterable of iterables)\n\t\tyield* iterable\n}\n\nfunction restore<T extends Option>(target: T | undefined, source: Option): T | undefined {\n\ttarget?.set.selected((target.selected = source.selected))\n\ttarget?.set.readonly((target.readonly = source.readonly))\n\ttarget?.set.visible((target.visible = source.visible))\n\ttarget?.set.value((target.value = source.value))\n\ttarget?.set.search((target.search = source.search))\n\treturn target\n}\nfunction restoreListener(ref: HTMLElement | undefined, option: Option) {\n\tref?.addEventListener(\"smoothlyPickerOptionLoad\", (e: CustomEvent<Option>) => restore(e.detail, option))\n}\nexport interface Controls {\n\tremember: () => void\n\trestore: () => void\n}\n@Component({\n\ttag: \"smoothly-picker-menu\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyPickerMenu {\n\t@Element() element: HTMLSmoothlyPickerMenuElement\n\t@Prop() looks: Looks\n\t@Prop({ reflect: true }) open = false\n\t@Prop({ reflect: true }) multiple = false\n\t@Prop({ reflect: true }) mutable = false\n\t@Prop({ reflect: true }) readonly = false\n\t@Prop() validator?: (value: string) => boolean | { result: boolean; notice: Notice }\n\t@State() backend = new Map<any, Option & { clone: Node }>() // value -> Option\n\t@State() options = new Map<any, Option>() // value -> Option\n\t@State() created = new Map<any, Option.Created>()\n\t@State() search = \"\"\n\t@State() valid = false\n\t@State() display: Node[]\n\t@State() flip = false\n\t@State() flipChecked = false\n\t@Event() notice: EventEmitter<Notice>\n\t@Event() smoothlyPickerMenuLoaded: EventEmitter<Controls & { synced: () => boolean }>\n\tprivate memory?: { backend: SmoothlyPickerMenu[\"backend\"]; options: SmoothlyPickerMenu[\"options\"] }\n\tprivate listElement?: HTMLElement\n\tprivate searchElement?: HTMLElement\n\tprivate synced = false\n\n\tcomponentWillLoad() {\n\t\tif (!Observers.has(this.element)) {\n\t\t\tconst threshold = 0.4\n\t\t\tObservers.set(\n\t\t\t\tthis.element,\n\t\t\t\tnew IntersectionObserver(\n\t\t\t\t\tentries =>\n\t\t\t\t\t\t(entries.find(entry => entry.target == this.element)?.intersectionRatio ?? 0) < threshold &&\n\t\t\t\t\t\t!this.flipChecked &&\n\t\t\t\t\t\t((this.flip = !this.flip), (this.flipChecked = true)),\n\t\t\t\t\t{ threshold }\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t}\n\tsync() {\n\t\tif (this.backend.size != this.options.size)\n\t\t\tthis.synced = false\n\t\telse\n\t\t\tthis.synced = true\n\t}\n\tcomponentDidLoad() {\n\t\tthis.smoothlyPickerMenuLoaded.emit({\n\t\t\tremember: () => {\n\t\t\t\tthis.memory = {\n\t\t\t\t\tbackend: new Map(Array.from(this.backend.entries(), ([value, option]) => [value, { ...option }])),\n\t\t\t\t\toptions: new Map(Array.from(this.options.entries(), ([value, option]) => [value, { ...option }])),\n\t\t\t\t}\n\t\t\t},\n\t\t\trestore: () => {\n\t\t\t\tif (this.memory) {\n\t\t\t\t\tfor (const option of this.options.values()) {\n\t\t\t\t\t\tconst memory = this.memory.options.get(option.value)\n\t\t\t\t\t\tif (memory != undefined)\n\t\t\t\t\t\t\trestore(option, memory)\n\t\t\t\t\t\telse if (this.created.get(option.value))\n\t\t\t\t\t\t\toption.set.selected((option.selected = false))\n\t\t\t\t\t}\n\t\t\t\t\tfor (const option of this.backend.values()) {\n\t\t\t\t\t\tconst memory = this.memory.backend.get(option.value)\n\t\t\t\t\t\tif (memory != undefined)\n\t\t\t\t\t\t\trestore(option, memory)\n\t\t\t\t\t\telse if (this.created.get(option.value))\n\t\t\t\t\t\t\toption.set.selected((option.selected = false))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tsynced: () => this.synced,\n\t\t})\n\t}\n\tdisconnectedCallback() {\n\t\tif (!this.element.parentElement) {\n\t\t\tObservers.get(this.element)?.disconnect()\n\t\t\tObservers.remove(this.element)\n\t\t}\n\t}\n\t@Watch(\"open\")\n\topenChange() {\n\t\tconst observer = Observers.get(this.element)\n\t\tif (this.open)\n\t\t\tobserver?.observe(this.element)\n\t\telse\n\t\t\tobserver?.unobserve(this.element)\n\t}\n\n\t@Watch(\"readonly\")\n\treadonlyChanged() {\n\t\tfor (const option of chain(this.options.values(), this.backend.values()))\n\t\t\toption.element, option.set.readonly(this.readonly)\n\t}\n\t@Listen(\"scroll\", { target: \"window\" })\n\tscrollHandler() {\n\t\tthis.flipChecked = false\n\t}\n\t@Listen(\"smoothlyPickerOptionLoad\")\n\toptionLoadHandler(event: CustomEvent<Option.Load>) {\n\t\tif (!this.listElement || !event.composedPath().includes(this.listElement)) {\n\t\t\tevent.stopPropagation()\n\t\t\tthis.sync()\n\t\t\tevent.detail.set.readonly(this.readonly)\n\n\t\t\tconst current = this.options.get(event.detail.value)\n\t\t\tif (current)\n\t\t\t\tevent.detail.set.selected(current.element.selected)\n\t\t}\n\t}\n\t@Listen(\"smoothlyPickerOptionLoaded\")\n\toptionLoadedHandler(event: CustomEvent<Option>) {\n\t\tif (!this.listElement || !event.composedPath().includes(this.listElement)) {\n\t\t\tevent.stopPropagation()\n\t\t\tconst current = restore(this.backend.get(event.detail.value), event.detail)\n\t\t\tthis.backend = new Map(\n\t\t\t\tthis.backend\n\t\t\t\t\t.set(event.detail.value, {\n\t\t\t\t\t\t...event.detail,\n\t\t\t\t\t\tclone: current?.clone ?? event.detail.element.cloneNode(true),\n\t\t\t\t\t})\n\t\t\t\t\t.entries()\n\t\t\t)\n\t\t} else\n\t\t\tthis.options.set(event.detail.value, event.detail)\n\t\tthis.sync()\n\t}\n\t@Listen(\"smoothlyPickerOptionChange\")\n\toptionChangeHandler(event: CustomEvent<Option>) {\n\t\tif (!this.listElement || !event.composedPath().includes(this.listElement)) {\n\t\t\tevent.stopPropagation()\n\t\t\tthis.options.get(event.detail.value)?.set.selected(event.detail.selected)\n\t\t} else {\n\t\t\tconst current = this.backend.get(event.detail.value)\n\t\t\tif (current?.element.parentElement)\n\t\t\t\tcurrent?.set.selected(event.detail.selected)\n\t\t}\n\n\t\tif (!this.readonly && !this.multiple && event.detail.selected)\n\t\t\tfor (const option of chain(this.options.values(), this.backend.values()))\n\t\t\t\tif (option.value != event.detail.value)\n\t\t\t\t\toption.set.selected(false)\n\t}\n\tinputHandler(event: CustomEvent<Record<string, any>>) {\n\t\tevent.stopPropagation()\n\t\tthis.search = event.detail.search\n\t\tif (!this.search) {\n\t\t\tthis.valid = false\n\t\t\tfor (const option of chain(this.options.values(), this.backend.values()))\n\t\t\t\toption.set.visible(true)\n\t\t} else {\n\t\t\tthis.valid = !Array.from(this.options.values()).find(option => option.value == this.search)\n\t\t\tconst search = this.search.toLocaleLowerCase()\n\t\t\tfor (const option of chain(this.options.values(), this.backend.values())) {\n\t\t\t\tconst value = option.value.toString().toLocaleLowerCase().includes(search)\n\t\t\t\tconst searches = option.search.some(value => value.includes(search))\n\t\t\t\tconst result = value || searches\n\t\t\t\toption.set.visible(result)\n\t\t\t}\n\t\t}\n\t}\n\taddHandler() {\n\t\tconst validation = !this.validator ? true : this.validator(this.search)\n\t\tif (this.mutable) {\n\t\t\tif (typeof validation == \"object\" ? validation.result : validation) {\n\t\t\t\tif (!this.multiple)\n\t\t\t\t\tfor (const option of chain(this.options.values(), this.backend.values()))\n\t\t\t\t\t\toption.set.selected(false)\n\t\t\t\tthis.created = new Map(this.created.set(this.search, { value: this.search, selected: true }).entries())\n\t\t\t\tthis.search = \"\"\n\t\t\t\tthis.searchElement?.focus()\n\t\t\t\tthis.valid = false\n\t\t\t}\n\t\t\tif (typeof validation == \"object\")\n\t\t\t\tthis.notice.emit(validation.notice)\n\t\t}\n\t}\n\tkeyDownHandler(event: KeyboardEvent) {\n\t\tif (event.key == \"Enter\") {\n\t\t\tevent.preventDefault()\n\t\t\tthis.addHandler()\n\t\t}\n\t}\n\t@Listen(\"smoothlySlotEmpty\")\n\temptyDisplayHandler(event: CustomEvent<Slot>) {\n\t\tevent.stopPropagation()\n\t\tevent.detail.set.nodes(this.display)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host class={{ valid: this.valid, flip: this.flip }}>\n\t\t\t\t<smoothly-slotted-elements class={\"hide\"} onSmoothlySlottedChange={e => (this.display = e.detail)}>\n\t\t\t\t\t<slot name=\"display\" />\n\t\t\t\t</smoothly-slotted-elements>\n\t\t\t\t<div class={\"hide\"}>\n\t\t\t\t\t<slot />\n\t\t\t\t\t{Array.from(this.created.values(), option => (\n\t\t\t\t\t\t<smoothly-picker-option key={option.value} value={option.value} selected={option.selected}>\n\t\t\t\t\t\t\t{option.value}\n\t\t\t\t\t\t\t<smoothly-slot-elements slot=\"display\" nodes={this.display} />\n\t\t\t\t\t\t</smoothly-picker-option>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t\t<div class={\"controls\"}>\n\t\t\t\t\t<smoothly-input\n\t\t\t\t\t\tref={e => (this.searchElement = e)}\n\t\t\t\t\t\tname=\"search\"\n\t\t\t\t\t\tvalue={this.search}\n\t\t\t\t\t\tlooks={this.looks}\n\t\t\t\t\t\tonKeyDown={e => this.keyDownHandler(e)}\n\t\t\t\t\t\tonSmoothlyInput={e => this.inputHandler(e)}\n\t\t\t\t\t\tonSmoothlyChange={e => e.stopPropagation()}\n\t\t\t\t\t\tonSmoothlyBlur={e => e.stopPropagation()}>\n\t\t\t\t\t\t<slot name=\"search\" />\n\t\t\t\t\t</smoothly-input>\n\t\t\t\t\t{this.mutable && !this.readonly ? (\n\t\t\t\t\t\t<button onClick={() => this.addHandler()} disabled={!this.valid} type={\"button\"}>\n\t\t\t\t\t\t\t<smoothly-icon name=\"add-outline\" />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t) : null}\n\t\t\t\t</div>\n\t\t\t\t<div class={\"list\"} ref={e => (this.listElement = e)}>\n\t\t\t\t\t{Array.from(this.backend.values())\n\t\t\t\t\t\t.sort((a, b) => a.position - b.position)\n\t\t\t\t\t\t.map(option => (\n\t\t\t\t\t\t\t<smoothly-slot-elements ref={e => restoreListener(e, option)} clone={false} nodes={option.clone} />\n\t\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: contents;\n}\n:host(:not([visible])) {\n\tdisplay: none;\n}\n:host > * {\n\tcursor: pointer;\n\tpadding: 0.25ch 0.5rem\n}\n:host .display {\n\tpadding-left: 0;\n}\n:host button {\n\tcolor: unset;\n\tbackground-color: inherit;\n\tborder: none;\n\tpadding-right: 0;\n}\n:host .content {\n\tdisplay: flex;\n\tcolumn-gap: 1rem;\n\tjustify-content: space-between;\n}\n:host([required]) > * {\n\tcursor: default;\n}\n:host([required]) button {\n\topacity: 0.65;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { Option } from \"../../../model\"\n@Component({\n\ttag: \"smoothly-picker-option\",\n\tstyleUrl: \"style.css\",\n\tshadow: true,\n})\nexport class SmoothlyPickerOption {\n\t@Element() element: HTMLSmoothlyPickerOptionElement\n\t@Prop({ mutable: true, reflect: true }) selected = false\n\t@Prop({ mutable: true, reflect: true }) visible = true\n\t@Prop({ mutable: true }) value: any\n\t@Prop({ mutable: true }) search: string[] = []\n\t@Prop({ reflect: true }) position = -1\n\t@Prop({ reflect: true }) required = false\n\t@State() readonly = false\n\t@State() slotted: Node[] = []\n\t@Event() smoothlyPickerOptionLoad: EventEmitter<Option.Load>\n\t@Event() smoothlyPickerOptionLoaded: EventEmitter<Option>\n\t@Event() smoothlyPickerOptionChange: EventEmitter<Option>\n\n\tget option(): Option {\n\t\treturn {\n\t\t\telement: this.element,\n\t\t\tselected: this.selected,\n\t\t\treadonly: this.readonly,\n\t\t\trequired: this.required,\n\t\t\tvisible: this.visible,\n\t\t\tsearch: this.search,\n\t\t\tvalue: this.value,\n\t\t\tslotted: this.slotted,\n\t\t\tposition:\n\t\t\t\tthis.position >= 0 || !this.element.parentElement?.parentElement\n\t\t\t\t\t? this.position\n\t\t\t\t\t: Array.from(this.element.parentElement.parentElement.children).indexOf(this.element.parentElement),\n\t\t\tset: {\n\t\t\t\tselected: selected => (this.selected = selected),\n\t\t\t\treadonly: readonly => (this.readonly = readonly),\n\t\t\t\tvisible: visible => (this.visible = visible),\n\t\t\t\tsearch: search => (this.search = search),\n\t\t\t\tvalue: value => (this.value = value),\n\t\t\t},\n\t\t}\n\t}\n\t@Watch(\"position\")\n\t@Watch(\"selected\")\n\t@Watch(\"slotted\")\n\temitChange() {\n\t\tif (this.element.parentElement)\n\t\t\tthis.smoothlyPickerOptionChange.emit(this.option)\n\t}\n\n\tcomponentWillLoad() {\n\t\tif (this.required)\n\t\t\tthis.selected = true\n\t\tthis.smoothlyPickerOptionLoad.emit((({ slotted, ...option }) => option)(this.option))\n\t}\n\tcomponentDidLoad() {\n\t\tthis.smoothlyPickerOptionLoaded.emit(this.option)\n\t}\n\tslottedChangeHandler(event: CustomEvent<Node[]>) {\n\t\tevent.stopPropagation()\n\t\tthis.slotted = event.detail\n\t}\n\t@Method()\n\tasync clickHandler() {\n\t\tif (!this.readonly && !this.required)\n\t\t\tthis.selected = !this.selected\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={{ visible: this.visible }} onClick={() => this.clickHandler()}>\n\t\t\t\t<div part=\"display\" class={\"display\"}>\n\t\t\t\t\t<slot name=\"display\" />\n\t\t\t\t</div>\n\t\t\t\t<div part=\"content\" class={\"content\"}>\n\t\t\t\t\t<smoothly-slotted-elements onSmoothlySlottedChange={e => this.slottedChangeHandler(e)} clone>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</smoothly-slotted-elements>\n\t\t\t\t\t<slot name={\"label\"} />\n\t\t\t\t</div>\n\t\t\t\t<button type={\"button\"}>\n\t\t\t\t\t<smoothly-icon name={this.selected ? \"checkbox-outline\" : \"square-outline\"} />\n\t\t\t\t</button>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: inline-flex;\n\tposition: relative;\n}\n:host[hidden] {\n\tdisplay: none;\n}\n:host:not([visible]) aside {\n\tdisplay: none;\n}\n:host aside {\n\tdisplay: inline;\n\tposition: absolute;\n\tpadding: 0.3em;\n\tleft: var(--left);\n\tright: var(--right);\n\tbackground-color: rgb(238, 238, 238);\n\tborder-color: rgb(238, 238, 238);\n\tborder-style: solid;\n\tborder-width: 0.1em;\n\tborder-radius: 0.6em;\n\tz-index: 3;\n}\n:host[direction=down] aside {\n\ttop: 2.2em;\n\tbox-shadow: 6px 5px 9px -9px black, 5px 6px 9px -9px black;\n}\n:host[direction=up] aside {\n\tbottom: 2.2em;\n\tbox-shadow: -6px -5px 9px -9px black, -5px -6px 9px -9px black;\n}\n:host:not([visible]) .background {\n\tdisplay: none;\n}\n:host .background {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100vw;\n\theight: 100vh;\n\tz-index: 2;\n}\n:host:not([visible]) .arrow {\n\tdisplay: none;\n}\n:host .arrow {\n\tbackground-color: rgb(238, 238, 238);\n\tborder-color: rgb(238, 238, 238);\n\tz-index: 2;\n\tcontent: \"\";\n\tposition: absolute;\n\twidth: 12px;\n\theight: 12px;\n\ttransform: rotate(45deg);\n\tleft: calc(var(--left) + 1em);\n\tright: calc(var(--right) + 1em);\n}\n:host[direction=down] .arrow {\n\ttop: 2em;\n\tborder-top-style: solid;\n\tborder-top-width: 1px;\n\tborder-left-style: solid;\n\tborder-left-width: 1px;\n}\n:host[direction=up] .arrow {\n\tbottom: 2em;\n\tborder-bottom-style: solid;\n\tborder-bottom-width: 1px;\n\tborder-right-style: solid;\n\tborder-right-width: 1px;\n}\n:host .pointer {\n\tcursor: pointer;\n}\n","// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { Component, Event, EventEmitter, h, Host, Prop, State } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-popup\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyPopup {\n\t@Prop({ mutable: true, reflect: true }) visible = false\n\t@Prop({ mutable: true, reflect: true }) direction: \"up\" | \"down\" = \"down\"\n\t@State() cssVariables: { \"--left\"?: string; \"--right\"?: string } = { \"--left\": \"0.1em\" }\n\t@Event() popup: EventEmitter<boolean>\n\tprivate aside: HTMLElement | undefined\n\n\tprivate onClick() {\n\t\tif (this.visible == false) {\n\t\t\tthis.aside?.style.setProperty(\"display\", \"block\")\n\t\t\tthis.cssVariables =\n\t\t\t\t(this.aside?.getBoundingClientRect().right ?? 0) >= window.innerWidth\n\t\t\t\t\t? { \"--right\": \"0.1em\" }\n\t\t\t\t\t: (this.aside?.getBoundingClientRect().left ?? 0) < 0\n\t\t\t\t\t? { \"--left\": \"0.1em\" }\n\t\t\t\t\t: this.cssVariables\n\t\t\tthis.aside?.style.removeProperty(\"display\")\n\t\t}\n\t\tthis.visible = !this.visible\n\t\tthis.popup.emit(this.visible)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host style={{ ...this.cssVariables }}>\n\t\t\t\t<content class=\"pointer\" onClick={() => this.onClick()}>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</content>\n\t\t\t\t<div class=\"background\" onClick={() => this.onClick()}></div>\n\t\t\t\t<div class=\"arrow\" onClick={() => this.onClick()}></div>\n\t\t\t\t<aside ref={el => (this.aside = el)}>\n\t\t\t\t\t<slot name=\"popup\"></slot>\n\t\t\t\t</aside>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\topacity: 0.5;\n}\n","import { Component, h, Host, Prop } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-quiet\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyQuiet {\n\t@Prop() color: string\n\trender() {\n\t\treturn (\n\t\t\t<Host color={this.color}>\n\t\t\t\t<slot></slot>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n\tposition: relative;\n}\n:host[hidden] {\n\tdisplay: none;\n}\nlabel {\n\tdisplay: block;\n\twidth: calc(100% - 2 * 0.4em);\n\tpadding: 0.2em 0.4em 0.2em 0.4em;\n}\ninput[type=radio] {\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\twidth: calc(100%);\n\theight: 100%;\n\tmargin: 0;\n\tappearance: none;\n\t-webkit-appearance: none;\n}\ninput[type=radio] ~ label {\n\t/*border: 1px solid rgb(var(--smoothly-default-color));*/\n\tcolor: rgba(var(--smoothly-default-contrast), 0.5);\n\tbackground: rgb(var(--smoothly-default-color));\n}\ninput[type=radio]:checked ~ label {\n\tbackground-color: rgb(var(--smoothly-default-shade));\n\tcolor: rgb(var(--smoothly-default-contrast));\n}\n","import { Component, Event, EventEmitter, h, Prop } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-radio\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyRadio {\n\t@Prop() name: string\n\t@Prop() value: string\n\t@Prop({ mutable: true, reflect: true }) checked: boolean\n\t@Prop() tab: number\n\t@Event() smoothlySelected!: EventEmitter<{ name: string; value: string }>\n\n\tprotected async onInput(e: UIEvent): Promise<boolean> {\n\t\tif (e.target && (e.target as HTMLInputElement).value && (this.checked = (e.target as HTMLInputElement).checked))\n\t\t\tthis.smoothlySelected.emit({ name: this.name, value: this.value })\n\t\treturn true\n\t}\n\trender() {\n\t\treturn [\n\t\t\t<input\n\t\t\t\ttype=\"radio\"\n\t\t\t\tname={this.name}\n\t\t\t\tid={this.value}\n\t\t\t\ttabindex={this.tab}\n\t\t\t\tchecked={this.checked}\n\t\t\t\tvalue={this.value}\n\t\t\t\tonChange={e => this.onInput(e as UIEvent)}\n\t\t\t/>,\n\t\t\t<label htmlFor={this.value}>\n\t\t\t\t<slot />\n\t\t\t</label>,\n\t\t]\n\t}\n}\n",":host {\n\tdisplay: block;\n}\n","import { Component, Event, EventEmitter, h, Host, Listen, Prop } from \"@stencil/core\"\nimport { Selected } from \"./Selected\"\n\n@Component({\n\ttag: \"smoothly-radio-button\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyRadioButton {\n\t@Prop() name: string\n\t@Prop({ mutable: true }) value?: any\n\t@Prop({ reflect: true }) deselectable?: boolean\n\t@Prop({ reflect: true }) decoration: \"button\" | \"radio\" = \"radio\"\n\tactive?: Selected\n\t@Event() smoothlyInput: EventEmitter<Record<string, string>>\n\t@Event() smoothlyChange: EventEmitter<Record<string, string>>\n\t@Listen(\"radioItemSelectInternal\", { capture: true })\n\tradioSelectHandler(event: CustomEvent<Selected>) {\n\t\tif (this.deselectable || this.active?.value != event.detail.value) {\n\t\t\tthis.active?.select(false)\n\t\t\tthis.active = event.detail\n\t\t\tthis.smoothlyInput.emit({\n\t\t\t\t[this.name]: (this.value = this.active.selected ? this.active.value : undefined),\n\t\t\t})\n\t\t\tthis.smoothlyChange.emit({\n\t\t\t\t[this.name]: (this.value = this.active.selected ? this.active.value : undefined),\n\t\t\t})\n\t\t\tthis.active.select(this.active.selected)\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<slot></slot>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","@import \"./radio.css\";\n@import \"./button.css\";\n\n:host {\n\tdisplay: block;\n}\n\n:host > header {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n::slotted([slot=expansion]) {\n\tdisplay: none;\n\tbackground: rgb(var(--smoothly-secondary-tint));\n\tcolor: rgb(var(--smoothly-secondary-contrast));\n\tpadding: 0;\n\tposition: relative;\n\ttransition: 0.1s;\n}\n\n[selected]::slotted([slot=expansion]) {\n\tdisplay: block;\n\tpadding: 0.5rem;\n}\n","import { Component, ComponentWillLoad, Event, EventEmitter, h, Host, Prop } from \"@stencil/core\"\nimport { Color } from \"../../../model\"\nimport { Selected } from \"../Selected\"\n\n@Component({\n\ttag: \"smoothly-radio-button-item\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyRadioButtonItem implements ComponentWillLoad {\n\t@Prop() value: any\n\t@Prop({ reflect: true, mutable: true }) selected: boolean\n\t@Prop({ reflect: true }) color?: Color\n\t@Event() radioItemSelectInternal: EventEmitter<Selected>\n\n\tcomponentWillLoad(): void | Promise<void> {\n\t\tthis.selected && this.select(this.selected)\n\t}\n\n\tprivate select(selected = false) {\n\t\tthis.radioItemSelectInternal.emit({\n\t\t\tvalue: this.value,\n\t\t\tselected: selected,\n\t\t\tselect: s => (this.selected = s),\n\t\t})\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<header onClick={() => this.select(!this.selected)}>\n\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\tcolor={this.selected ? \"success\" : \"medium\"}\n\t\t\t\t\t\tfill=\"outline\"\n\t\t\t\t\t\tname={this.selected ? \"checkmark-circle\" : \"ellipse-outline\"}\n\t\t\t\t\t\tsize=\"tiny\"\n\t\t\t\t\t\ttoolTip=\"Select\"></smoothly-icon>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t\t<slot name=\"end\"></slot>\n\t\t\t\t</header>\n\t\t\t\t<slot name=\"expansion\"></slot>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n}\n:host[hidden] {\n\tdisplay: none;\n}\nbutton:focus {\n\toutline: none;\n}\nsmoothly-selector {\n\toutline: none;\n}\nbutton {\n\tdisplay: block;\n}\n","import { Component, h } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-select-demo\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlySelectDemo {\n\trender() {\n\t\treturn [\n\t\t\t<smoothly-tab-switch>\n\t\t\t\t<smoothly-tab label=\"test1\" open>\n\t\t\t\t\tHello world!\n\t\t\t\t</smoothly-tab>\n\t\t\t\t<smoothly-tab label=\"test2\">this is a test message!</smoothly-tab>\n\t\t\t\t<smoothly-tab label=\"test3\">this is a test message again!</smoothly-tab>\n\t\t\t</smoothly-tab-switch>,\n\t\t]\n\t}\n}\n",":host {\n\tdisplay: block;\n\theight: 1rem;\n}\n:host(::before) {\n\tcontent: \"\";\n\tdisplay: block;\n\twidth: var(--width);\n\theight: 100%;\n\tborder-radius: 0.4rem;\n\tbackground-image: linear-gradient(90deg, rgb(var(--color, var(--smoothly-dark-color))) 0, transparent 2.5rem, rgb(var(--color, var(--smoothly-dark-color))) 5rem);\n\tbackground-size: calc(var(--distance) + 5rem);\n\tanimation-duration: var(--period, 1.6s);\n\tanimation-iteration-count: infinite;\n\tanimation-timing-function: linear;\n\tanimation-name: shine-lines-left;\n}\n@keyframes shine-lines-left {\n\t0% {\n\t\tbackground-position: -5rem;\n\t}\n\t40%,\n\t100% {\n\t\tbackground-position: var(--distance);\n\t}\n}\n:host([align=center]::before) {\n\tmargin: 0 auto;\n\tanimation-name: shine-lines-center;\n}\n@keyframes shine-lines-center {\n\t0% {\n\t\tbackground-position: calc((var(--width) - var(--distance)) / 2 - 5rem);\n\t}\n\t40%,\n\t100% {\n\t\tbackground-position: calc(var(--width) + (var(--distance) - var(--width)) / 2);\n\t}\n}\n:host([align=right]::before) {\n\tmargin: 0;\n\tmargin-left: auto;\n\tanimation-name: shine-lines-right;\n}\n@keyframes shine-lines-right {\n\t0% {\n\t\tbackground-position: calc(var(--width) - var(--distance) - 5rem);\n\t}\n\t40%,\n\t100% {\n\t\tbackground-position: var(--width);\n\t}\n}\n","import { Component, h, Host, Prop } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-skeleton\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlySkeleton {\n\t@Prop() widths: string[] = [\"8rem\", \"9rem\", \"10rem\"]\n\t@Prop({ mutable: true }) width: string\n\t@Prop() color: string\n\t@Prop() period: number\n\t@Prop() distance: string\n\t@Prop({ reflect: true }) align: \"left\" | \"center\" | \"right\" = \"left\"\n\tcomponentWillLoad() {\n\t\tthis.width = this.width ?? this.widths[Math.floor(Math.random() * this.widths.length)]\n\t}\n\trender() {\n\t\tconst cssVariables = {\n\t\t\t\"--width\": this.width,\n\t\t\t\"--distance\": this.distance ?? \"10rem\",\n\t\t\t...(this.color ? { \"--color\": this.color } : undefined),\n\t\t\t...(this.period ? { \"--period\": this.period + \"s\" } : undefined),\n\t\t}\n\t\treturn <Host style={cssVariables}></Host>\n\t}\n}\n",":host {\n\tdisplay: contents;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, Watch } from \"@stencil/core\"\n\nexport interface Slot {\n\tset: {\n\t\tnodes: (nodes: Node | Node[]) => void\n\t}\n}\n\n@Component({\n\ttag: \"smoothly-slot-elements\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlySlotElements {\n\t@Element() element: HTMLElement\n\t@Prop() clone = true\n\t@Prop({ mutable: true }) nodes?: Node | Node[]\n\t@Event() smoothlySlotEmpty: EventEmitter<Slot>\n\n\tcomponentWillLoad() {\n\t\tif (!this.nodes)\n\t\t\tthis.smoothlySlotEmpty.emit({\n\t\t\t\tset: {\n\t\t\t\t\tnodes: nodes => (this.nodes = nodes),\n\t\t\t\t},\n\t\t\t})\n\t}\n\n\t@Watch(\"nodes\")\n\tcomponentDidLoad() {\n\t\tthis.element.innerHTML = \"\"\n\t\tif (this.nodes)\n\t\t\tif (Array.isArray(this.nodes))\n\t\t\t\tthis.nodes.forEach(node => this.element.appendChild(this.clone ? node.cloneNode(true) : node))\n\t\t\telse\n\t\t\t\tthis.element.appendChild(this.clone ? this.nodes.cloneNode(true) : this.nodes)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: contents;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-slotted-elements\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlySottedElement {\n\t@Element() element: HTMLElement\n\t@Prop() clone = true\n\t@Event() smoothlySlottedChange: EventEmitter<Node[]>\n\n\tcomponentDidRender() {\n\t\tconst slotted = Array.from(this.element.childNodes, child => {\n\t\t\tlet result: Node | Node[]\n\t\t\tif (child instanceof HTMLSlotElement) {\n\t\t\t\tconst assigned = child.assignedNodes()\n\t\t\t\tresult = assigned.length\n\t\t\t\t\t? assigned.map(child => (this.clone ? child.cloneNode(true) : child))\n\t\t\t\t\t: this.clone\n\t\t\t\t\t? child.cloneNode(true)\n\t\t\t\t\t: child\n\t\t\t} else\n\t\t\t\tresult = child\n\t\t\treturn result\n\t\t}).flat()\n\t\tthis.smoothlySlottedChange.emit(Array.from(slotted, child => (this.clone ? child.cloneNode(true) : child)))\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","$time: 1.4s;\n:host:not([active]) {\n\tdisplay: none;\n}\n:host[hidden] {\n\tdisplay: none;\n}\n:host {\n\tdisplay: block;\n\tstroke: rgb(var(--spinner-color, var(--smoothly-primary-tint)));\n\tposition: absolute;\n\tz-index: 4;\n\tinset: 0;\n\twidth: 100%;\n\theight: 100%;\n\tbackground-color: rgba(var(--background-color, var(--smoothly-default-color)), var(--background-opacity, var(--smoothly-semitransparent, 0.8)));\n\tsvg {\n\t\tposition: absolute;\n\t\tleft: calc(50% - var(--size) / 2);\n\t\ttop: calc(50% - var(--size) / 2);\n\t\twidth: var(--size);\n\t\tanimation: SPIN-SVG $time linear infinite;\n\t\tcircle {\n\t\t\ttransform-origin: center;\n\t\t\tanimation: SPIN-CIRCLE $time ease-in-out infinite;\n\t\t\tstroke-dasharray: 187;\n\t\t\tstroke-dashoffset: 0;\n\t\t}\n\t}\n}\n@keyframes SPIN-SVG {\n\t0% {\n\t\ttransform: rotate(0deg);\n\t}\n\t100% {\n\t\ttransform: rotate(270deg);\n\t}\n}\n@keyframes SPIN-CIRCLE {\n\t0% {\n\t\tstroke-dashoffset: 187;\n\t}\n\t50% {\n\t\tstroke-dashoffset: 46.75;\n\t\ttransform: rotate(135deg);\n\t}\n\t100% {\n\t\tstroke-dashoffset: 187;\n\t\ttransform: rotate(450deg);\n\t}\n}\n","import { Component, h, Host, Prop } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-spinner\",\n\tstyleUrl: \"style.scss\",\n\tscoped: true,\n})\nexport class SmoothlySpinner {\n\t@Prop({ reflect: true }) active: boolean\n\t@Prop({ reflect: true }) size: \"small\" | \"medium\" | \"large\" = \"large\"\n\n\trender() {\n\t\tconst strokeWidth = this.size == \"large\" ? 6 : this.size == \"medium\" ? 8 : 12\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tstyle={{\n\t\t\t\t\t\"--color\": `var(--spinner-color)`,\n\t\t\t\t\t\"--size\": this.size == \"large\" ? \"5em\" : this.size == \"medium\" ? \"3em\" : \"1.2em\",\n\t\t\t\t}}>\n\t\t\t\t<svg class=\"spinner\" viewBox={`0 0 ${60 + strokeWidth} ${60 + strokeWidth}`} xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<circle\n\t\t\t\t\t\tclass=\"path\"\n\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\tstroke-width={strokeWidth}\n\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\tcx={`${30 + strokeWidth / 2}`}\n\t\t\t\t\t\tcy={`${30 + strokeWidth / 2}`}\n\t\t\t\t\t\tr=\"30\"></circle>\n\t\t\t\t</svg>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","export interface Submittable {\n\tsubmit(): Promise<void>\n}\nexport namespace Submittable {\n\texport function is(value: Submittable | any): value is Submittable {\n\t\treturn value && typeof value == \"object\" && typeof value.submit == \"function\"\n\t}\n}\n","@import \"../button/style.css\";\n\n:host() {\n\tmargin: 1em 0em;\n}\n","import { Component, Event, EventEmitter, h, Listen, Prop } from \"@stencil/core\"\nimport { Color, Fill } from \"../../model\"\nimport { Button } from \"../Button\"\nimport { Submittable } from \"../input/Submittable\"\n\n@Component({\n\ttag: \"smoothly-submit\",\n\tstyleUrl: \"./style.css\",\n\tscoped: true,\n})\nexport class SmoothlySubmit {\n\t@Prop({ reflect: true }) color?: Color = \"success\"\n\t@Prop({ reflect: true }) expand?: \"block\" | \"full\"\n\t@Prop({ reflect: true }) fill?: Fill\n\t@Prop({ reflect: true }) disabled = false\n\t@Prop({ reflect: true }) type: \"link\" | \"button\" = \"button\"\n\t@Prop({ reflect: true }) size: \"flexible\" | \"small\" | \"large\" | \"icon\"\n\t@Prop({ reflect: true }) shape?: \"rounded\"\n\t@Prop() prevent = true\n\t@Event() smoothlySubmit: EventEmitter\n\tprivate parent?: Submittable\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: HTMLElement) => void>\n\n\tasync componentWillLoad() {\n\t\tthis.smoothlyInputLoad.emit(parent => {\n\t\t\tif (Submittable.is(parent)) {\n\t\t\t\tthis.parent = parent\n\t\t\t}\n\t\t})\n\t}\n\n\t@Listen(\"click\")\n\tclickHandler() {\n\t\tthis.parent?.submit()\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Button disabled={this.disabled} type={this.type}>\n\t\t\t\t<slot />\n\t\t\t</Button>\n\t\t)\n\t}\n}\n",":host > details > summary {\n\tlist-style: none;\n\tdisplay: flex;\n\tgap: 0.5rem;\n\talign-items: center;\n}\n\n:host > details > summary > smoothly-icon {\n\ttransition: 0.2s;\n}\n\n:host > details[open] > summary > smoothly-icon {\n\ttransform: rotate(90deg);\n}\n\n:host > details > summary::slotted([slot=summary]){\n\tdisplay: inline-block;\n\tmargin: 0;\n}\n\n:host > details::slotted([slot=content]){\n\tdisplay: inline-block;\n\tmargin: 0;\n\tpadding: 0.5rem 1.75rem;\n}\n\n@media screen and (min-width: 900px){\n\t:host > details > summary:hover {\n\t\tcursor: pointer;\n\t}\n}\n","import { Component, Event, EventEmitter, h, Prop } from \"@stencil/core\"\nimport { Color, Fill } from \"../../model\"\n@Component({\n\ttag: \"smoothly-summary\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlySummary {\n\t@Prop({ mutable: true, reflect: true }) open = false\n\t@Prop() color: Color = \"primary\"\n\t@Prop() fill: Fill = \"solid\"\n\t@Prop() size: \"tiny\" | \"small\" | \"medium\" | \"large\" = \"tiny\"\n\t@Event() smoothlySummaryOpen: EventEmitter<boolean>\n\n\ttoggleHandler(event: Event) {\n\t\tif (event.target instanceof HTMLDetailsElement) {\n\t\t\tthis.open = event.target.open\n\t\t\tthis.smoothlySummaryOpen.emit(this.open)\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<details onToggle={e => this.toggleHandler(e)} open={this.open}>\n\t\t\t\t<summary>\n\t\t\t\t\t<smoothly-icon name=\"caret-forward\" color={this.color} fill={this.fill} size={this.size}></smoothly-icon>\n\t\t\t\t\t<slot name=\"summary\"></slot>\n\t\t\t\t</summary>\n\t\t\t\t<slot name=\"content\"></slot>\n\t\t\t</details>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n\tmin-width: var(--size-width);\n\tmin-height: var(--size-height);\n\tbackground-color: rgb(var(--color, var(--smoothly-color-contrast)));\n}\nobject {\n\tmin-width: var(--size-width);\n\tmin-height: var(--size-height);\n\tbackground-color: rgb(var(--color, var(--smoothly-color-contrast)));\n}\n","import { Component, h, Host, Prop } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-svg\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlySvg {\n\t@Prop({ reflect: true }) url!: string\n\t@Prop({ reflect: true }) size?: \"large\" | \"medium\" | \"small\" | \"tiny\" | { height: string; width: string }\n\t@Prop() color: string\n\tprivate readonly defaultSizes: Record<\"large\" | \"medium\" | \"small\" | \"tiny\", { height: string; width: string }> = {\n\t\tlarge: { height: \"50rem\", width: \"50rem\" },\n\t\tmedium: { height: \"30rem\", width: \"30rem\" },\n\t\tsmall: { height: \"10rem\", width: \"10rem\" },\n\t\ttiny: { height: \"5rem\", width: \"5rem\" },\n\t}\n\trender() {\n\t\tconst height = this.size\n\t\t\t? typeof this.size == \"object\"\n\t\t\t\t? this.size.height\n\t\t\t\t: this.defaultSizes[this.size].height\n\t\t\t: \"10rem\"\n\t\tconst width = this.size\n\t\t\t? typeof this.size == \"object\"\n\t\t\t\t? this.size.width\n\t\t\t\t: this.defaultSizes[this.size].width\n\t\t\t: \"10rem\"\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tstyle={{\n\t\t\t\t\t\"min-height\": height,\n\t\t\t\t\t\"min-width\": width,\n\t\t\t\t\t\"--size-height\": height,\n\t\t\t\t\t\"--size-width\": width,\n\t\t\t\t\t\"--color\": this.color,\n\t\t\t\t}}>\n\t\t\t\t<object height={height} width={width} type=\"image/svg+xml\" data={this.url} />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host([open]) {\n\tborder-bottom: 3px solid rgb(var(--smoothly-primary-color));\n\tbox-sizing: border-box;\n\tmargin-bottom: -3px;\n}\n.hide {\n\tdisplay: none;\n}\nlabel {\n\tdisplay: block;\n\tpadding: .5rem;\n\tbackground-color: transparent;\n\twidth: auto;\n}\n","import { Component, Event, EventEmitter, h, Host, Listen, Prop, Watch } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-tab\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTab {\n\texpansionElement?: HTMLDivElement\n\t@Event() expansionOpen: EventEmitter<HTMLElement>\n\t@Prop() label: string\n\t@Prop({ mutable: true, reflect: true }) open: boolean\n\t@Watch(\"open\")\n\topenChanged() {\n\t\tif (this.expansionElement) {\n\t\t\tthis.expansionOpen.emit(this.expansionElement)\n\t\t}\n\t}\n\t@Listen(\"click\")\n\tonClick(e: UIEvent) {\n\t\tthis.open = !this.open\n\t\te.stopPropagation()\n\t}\n\tcomponentDidLoad(): void {\n\t\tif (this.expansionElement && this.open) {\n\t\t\tthis.expansionOpen.emit(this.expansionElement)\n\t\t}\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<label>{this.label}</label>\n\t\t\t\t<div ref={e => (this.expansionElement = e)} class={!this.open ? \"hide\" : \"\"}>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: flex;\n\tflex-direction: row;\n\tjustify-content: space-around;\n\tborder-bottom: 3px solid rgb(var(--smoothly-default-shade));\n}\n","import { Component, Element, h, Host, Listen, State, Watch } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-tab-switch\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTabSwitch {\n\t@Element() element: HTMLSmoothlyTabSwitchElement\n\t@State() selectedElement: HTMLSmoothlyTabElement\n\t@Listen(\"expansionOpen\")\n\topenChanged(event: CustomEvent) {\n\t\tevent.stopPropagation()\n\t\tthis.selectedElement = event.target as HTMLSmoothlyTabElement\n\t\tthis.selectedElement.open = true\n\t\tthis.element.after(event.detail)\n\t}\n\t@Watch(\"selectedElement\")\n\tonSelectedChange(value: HTMLSmoothlyTabElement, old: HTMLSmoothlyTabElement) {\n\t\tif (old)\n\t\t\told.open = false\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<slot></slot>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: table;\n\twidth: var(--table-width, 80%);\n\tbox-sizing: border-box;\n\tbackground-color: rgb(var(--smoothly-default-color));\n}\n:host[root] {\n\tmargin-left: 1.5rem;\n\tmargin-right: 1.5rem;\n}\n:host:not([root]) {\n\tmargin: 0;\n\twidth: 100%;\n}\n","import { Component, ComponentWillLoad, Element, Event, EventEmitter, h, Listen, Prop } from \"@stencil/core\"\nimport { Color } from \"../../model\"\n\n@Component({\n\ttag: \"smoothly-table\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class Table implements ComponentWillLoad {\n\tprivate owner?: EventTarget\n\tprivate expandable: WeakMap<EventTarget, { allowSpotlight: (allowed: boolean) => void } | undefined> = new WeakMap()\n\tprivate expanded: Set<EventTarget> = new Set()\n\t@Element() element: HTMLSmoothlyTableElement\n\t@Prop({ mutable: true, reflect: true }) root = true\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ reflect: true }) align: \"middle\" | \"bottom\" | \"top\" = \"middle\"\n\t@Prop({ reflect: true, mutable: true }) open = false\n\t@Event() smoothlyNestedTable: EventEmitter<() => void>\n\t@Event() smoothlySpotlightChange: EventEmitter<{ allowSpotlight: boolean; owner?: EventTarget }>\n\t@Event() smoothlyTableLoad: EventEmitter<(owner: EventTarget) => void>\n\tcomponentWillLoad() {\n\t\tthis.smoothlyNestedTable.emit(() => (this.root = false))\n\t\tthis.smoothlyTableLoad.emit((owner: EventTarget) => (this.owner = owner))\n\t}\n\t@Listen(\"smoothlyExpandableLoad\")\n\thandleExpandableLoaded(event: CustomEvent<{ allowSpotlight: (allowed: boolean) => void }>) {\n\t\tevent.stopPropagation()\n\t\tevent.target && this.expandable.set(event.target, event.detail)\n\t}\n\t@Listen(\"smoothlyExpandableChange\")\n\thandleExpandableState(event: CustomEvent<boolean>) {\n\t\tevent.stopPropagation()\n\t\tevent.target && (event.detail ? this.expanded.add(event.target) : this.expanded.delete(event.target))\n\t\tthis.smoothlySpotlightChange.emit({ allowSpotlight: !this.expanded.size, owner: this.owner })\n\t}\n\t@Listen(\"smoothlySpotlightChange\")\n\thandleSpotlightState(event: CustomEvent<{ allowSpotlight: boolean; owner?: EventTarget }>) {\n\t\tthis.open = !!this.expanded.size\n\t\tevent.target != this.element &&\n\t\t\t(event.stopPropagation(),\n\t\t\tevent.detail.owner && this.expandable.get(event.detail.owner)?.allowSpotlight(event.detail.allowSpotlight))\n\t}\n\t@Listen(\"smoothlyNestedTable\")\n\thandleNestedTable(event: CustomEvent<() => void>) {\n\t\tevent.target != this.element && (event.stopPropagation(), event.detail())\n\t}\n\t@Listen(\"smoothlyExpansionLoad\")\n\t@Listen(\"smoothlyExpansionOpen\")\n\thandleEvents(event: CustomEvent) {\n\t\tevent.stopPropagation()\n\t}\n\trender() {\n\t\treturn [<slot></slot>]\n\t}\n}\n",":host {\n\tdisplay: table-cell;\n\tline-height: 1.5rem;\n\twhite-space: nowrap;\n\tpadding: 0.3rem 0 0.3rem 1rem;\n\tbox-shadow: 0 1px 0 0 rgb(var(--smoothly-color-shade));\n}\n:host smoothly-icon {\n\tdisplay: none;\n\twidth: 1em;\n\theight: auto;\n\taspect-ratio: 1 / 1;\n\tmargin: 0 0.3rem;\n\ttransition: transform 0.2s, opacity 0.1s;\n\topacity: 0.3;\n}\n:host:hover smoothly-icon {\n\topacity: 1;\n}\nsmoothly-table-expandable-row > div :host:last-of-type smoothly-icon {\n\tdisplay: flex;\n}\nsmoothly-table-expandable-row[open] > div :host:last-of-type smoothly-icon {\n\ttransform: rotate(90deg);\n}\n:host > div {\n\tdisplay: grid;\n\tgrid-auto-flow: column;\n\talign-items: center;\n\tjustify-content: space-between;\n}\n:host > div > div {\n\twidth: 100%;\n}\nsmoothly-table[align=bottom] :host {\n\tvertical-align: bottom;\n}\nsmoothly-table[align=middle] :host {\n\tvertical-align: middle;\n\ttext-align: left;\n}\nsmoothly-table[align=top] :host {\n\tvertical-align: top;\n}\n","import { Component, h, Host } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-table-cell\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class TableCell {\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<div>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</div>\n\t\t\t\t\t<smoothly-icon name=\"caret-forward-outline\" size=\"tiny\" />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 3rem;\n\tpadding-bottom: 10rem;\n\tmargin-left: 1.5rem;\n\tmargin-right: 1.5rem;\n}\n.content {\n\tdisplay: contents;\n}\n","import { Component, h } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-table-demo\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class TableDemo {\n\trender() {\n\t\treturn [\n\t\t\t<h4>Filtered & Checked Table</h4>,\n\t\t\t<smoothly-table-demo-filtered></smoothly-table-demo-filtered>,\n\t\t\t<smoothly-table-testing></smoothly-table-testing>,\n\t\t\t<smoothly-table>\n\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t<smoothly-table-header>Header A</smoothly-table-header>\n\t\t\t\t\t<smoothly-table-header>Header B</smoothly-table-header>\n\t\t\t\t\t<smoothly-table-header>Header C</smoothly-table-header>\n\t\t\t\t\t<smoothly-table-header>Header D</smoothly-table-header>\n\t\t\t\t</smoothly-table-row>\n\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\tnormal row (exp.cell)\n\t\t\t\t\t\t<div slot=\"detail\">expandable cell 1 content</div>\n\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\texpandable cell\n\t\t\t\t\t\t<div slot=\"detail\">expandable cell 2 content</div>\n\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\texpandable cell\n\t\t\t\t\t\t<div slot=\"detail\">expandable cell 3 content</div>\n\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\texpandable cell\n\t\t\t\t\t\t<div slot=\"detail\">expandable cell 4 content</div>\n\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t</smoothly-table-row>\n\n\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t<smoothly-table-cell>normal row (nor.cell)\"</smoothly-table-cell>\n\t\t\t\t\t<smoothly-table-cell>normal cell</smoothly-table-cell>\n\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\texpandable cell\n\t\t\t\t\t\t<div slot=\"detail\">expandable cell details.</div>\n\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\texpandable cell\n\t\t\t\t\t\t<div slot=\"detail\">expandable cell details.</div>\n\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t</smoothly-table-row>\n\n\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t<smoothly-table-cell>expandable row (nor.cell)</smoothly-table-cell>\n\t\t\t\t\t<smoothly-table-cell>Normal cell</smoothly-table-cell>\n\t\t\t\t\t<smoothly-table-cell>normal cell</smoothly-table-cell>\n\t\t\t\t\t<smoothly-table-cell>Normal cell</smoothly-table-cell>\n\t\t\t\t\t<div slot=\"detail\">expandable row content</div>\n\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t</smoothly-table>,\n\t\t\t<smoothly-table>\n\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t<smoothly-table-header>Header A</smoothly-table-header>\n\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\tHeader expansion\n\t\t\t\t\t\t<div slot=\"detail\">Expansion content</div>\n\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t</smoothly-table-row>\n\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t<smoothly-table-cell>A Content</smoothly-table-cell>\n\t\t\t\t\t<smoothly-table-cell>Expansion cell</smoothly-table-cell>\n\t\t\t\t\t<div slot=\"detail\">\n\t\t\t\t\t\t<smoothly-tab-switch>\n\t\t\t\t\t\t\t<smoothly-tab label=\"innertable 1\" open={true}>\n\t\t\t\t\t\t\t\t<smoothly-table>\n\t\t\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t\t\t<smoothly-table-header>Header B</smoothly-table-header>\n\t\t\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t\t\t\t<smoothly-table-expandable-row>B Content</smoothly-table-expandable-row>\n\t\t\t\t\t\t\t\t</smoothly-table>\n\t\t\t\t\t\t\t</smoothly-tab>\n\t\t\t\t\t\t\t<smoothly-tab label=\"innertable 2\">\n\t\t\t\t\t\t\t\t<smoothly-table>\n\t\t\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t\t\t<smoothly-table-header>Header C</smoothly-table-header>\n\t\t\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t\t\t\t\t\t<smoothly-table-cell>C Content</smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t\t\t\t\t\t</smoothly-table>\n\t\t\t\t\t\t\t</smoothly-tab>\n\t\t\t\t\t\t</smoothly-tab-switch>\n\t\t\t\t\t</div>\n\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t<smoothly-table-cell>A Content</smoothly-table-cell>\n\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\tExpandable cell\n\t\t\t\t\t\t<div slot=\"detail\">Expansion content</div>\n\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t</smoothly-table-row>\n\t\t\t</smoothly-table>,\n\t\t\t<smoothly-table>\n\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t<smoothly-table-header>A</smoothly-table-header>\n\t\t\t\t\t<smoothly-table-header>B</smoothly-table-header>\n\t\t\t\t</smoothly-table-row>\n\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t<smoothly-table-cell>a row</smoothly-table-cell>\n\t\t\t\t\t<smoothly-table-cell>b row</smoothly-table-cell>\n\t\t\t\t\t<div slot=\"detail\">\n\t\t\t\t\t\t<smoothly-table>\n\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t<smoothly-table-header>C</smoothly-table-header>\n\t\t\t\t\t\t\t\t<smoothly-table-header>D</smoothly-table-header>\n\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>c</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>d</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<div slot=\"detail\">\n\t\t\t\t\t\t\t\t\t<smoothly-table>\n\t\t\t\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t\t\t\t<smoothly-table-header>E</smoothly-table-header>\n\t\t\t\t\t\t\t\t\t\t\t<smoothly-table-header>F</smoothly-table-header>\n\t\t\t\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t\t\t\t\t\t\t<smoothly-table-cell>e row</smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t\t\t<smoothly-table-cell>f row</smoothly-table-cell>\n\t\t\t\t\t\t\t\t\t\t\t<div slot=\"detail\">nested expandable row expansion e f</div>\n\t\t\t\t\t\t\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t\t\t\t\t\t\t</smoothly-table>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t\t\t\t</smoothly-table>\n\t\t\t\t\t</div>\n\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\t<span>one</span>\n\t\t\t\t\t\t<span>two</span>\n\t\t\t\t\t\t<span>three</span>\n\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t<smoothly-table-cell>\n\t\t\t\t\t\tfive<smoothly-icon name=\"paper-plane-sharp\" size=\"small\"></smoothly-icon>\n\t\t\t\t\t</smoothly-table-cell>\n\t\t\t\t\t<div slot=\"detail\">four</div>\n\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\ta cell\n\t\t\t\t\t\t<div slot=\"detail\">\n\t\t\t\t\t\t\t<smoothly-table>\n\t\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t\t<smoothly-table-header>E</smoothly-table-header>\n\t\t\t\t\t\t\t\t\t<smoothly-table-header>F</smoothly-table-header>\n\t\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t\te cell\n\t\t\t\t\t\t\t\t\t\t<div slot=\"detail\">\n\t\t\t\t\t\t\t\t\t\t\t<smoothly-table>\n\t\t\t\t\t\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<smoothly-table-header>G</smoothly-table-header>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<smoothly-table-header>H</smoothly-table-header>\n\t\t\t\t\t\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tg cell\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div slot=\"detail\">nested expandable cell expansion g</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\th cell\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div slot=\"detail\">nested expandable cell expansion h</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t\t\t\t\t\t</smoothly-table>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t\tf cell\n\t\t\t\t\t\t\t\t\t\t<div slot=\"detail\">nested expandable cell expansion f</div>\n\t\t\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t\t</smoothly-table>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\tb cell\n\t\t\t\t\t\t<div slot=\"detail\">\n\t\t\t\t\t\t\t<smoothly-table>\n\t\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t\t<smoothly-table-header>C</smoothly-table-header>\n\t\t\t\t\t\t\t\t\t<smoothly-table-header>D</smoothly-table-header>\n\t\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t\tc cell\n\t\t\t\t\t\t\t\t\t\t<div slot=\"detail\">nested expandable cell expansion c</div>\n\t\t\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t\td cell\n\t\t\t\t\t\t\t\t\t\t<div slot=\"detail\">nested expandable cell expansion d</div>\n\t\t\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t\t</smoothly-table>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t</smoothly-table-row>\n\t\t\t</smoothly-table>,\n\t\t\t<smoothly-table>\n\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t<smoothly-table-header>display</smoothly-table-header>\n\t\t\t\t\t<smoothly-table-header>contents</smoothly-table-header>\n\t\t\t\t</smoothly-table-row>\n\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t<div class={\"content\"}>\n\t\t\t\t\t\t<smoothly-table-cell>A</smoothly-table-cell>\n\t\t\t\t\t\t<smoothly-table-cell>B</smoothly-table-cell>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div slot=\"detail\">expansion</div>\n\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t</smoothly-table>,\n\t\t\t<span>nested 1 then normal</span>,\n\t\t\t<smoothly-table>\n\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t<smoothly-table-header>A</smoothly-table-header>\n\t\t\t\t\t<smoothly-table-header>B</smoothly-table-header>\n\t\t\t\t</smoothly-table-row>\n\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t<smoothly-table-cell>a</smoothly-table-cell>\n\t\t\t\t\t<smoothly-table-cell>b</smoothly-table-cell>\n\t\t\t\t\t<div slot=\"detail\">\n\t\t\t\t\t\t<smoothly-table>\n\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t<smoothly-table-header>C</smoothly-table-header>\n\t\t\t\t\t\t\t\t<smoothly-table-header>D</smoothly-table-header>\n\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>c</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>d</smoothly-table-cell>\n\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>ccc</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>ddd</smoothly-table-cell>\n\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>cccc</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>dddd</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<div slot=\"detail\">CONTENT</div>\n\t\t\t\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>ccccc</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>ddd</smoothly-table-cell>\n\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>cccc</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>dddd</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<div slot=\"detail\">CONTENT</div>\n\t\t\t\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t\t\t\t</smoothly-table>\n\t\t\t\t\t</div>\n\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t</smoothly-table>,\n\t\t\t<span>not nested</span>,\n\t\t\t<smoothly-table>\n\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t<smoothly-table-header>C</smoothly-table-header>\n\t\t\t\t\t<smoothly-table-header>D</smoothly-table-header>\n\t\t\t\t</smoothly-table-row>\n\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t<smoothly-table-cell>c</smoothly-table-cell>\n\t\t\t\t\t<smoothly-table-cell>d</smoothly-table-cell>\n\t\t\t\t</smoothly-table-row>\n\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t<smoothly-table-cell>cc</smoothly-table-cell>\n\t\t\t\t\t<smoothly-table-cell>dd</smoothly-table-cell>\n\t\t\t\t</smoothly-table-row>\n\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t<smoothly-table-cell>ccc</smoothly-table-cell>\n\t\t\t\t\t<smoothly-table-cell>ddd</smoothly-table-cell>\n\t\t\t\t</smoothly-table-row>\n\t\t\t</smoothly-table>,\n\t\t\t<smoothly-table>\n\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t<smoothly-table-header>First name</smoothly-table-header>\n\t\t\t\t\t<smoothly-table-header>Last name</smoothly-table-header>\n\t\t\t\t\t<smoothly-table-header style={{ width: \"1px\" }}>\n\t\t\t\t\t\t<smoothly-icon name=\"alert-outline\" />\n\t\t\t\t\t</smoothly-table-header>\n\t\t\t\t</smoothly-table-row>\n\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t<smoothly-table-cell>Jessie</smoothly-table-cell>\n\t\t\t\t\t<smoothly-table-cell>Doe</smoothly-table-cell>\n\t\t\t\t\t<smoothly-table-cell></smoothly-table-cell>\n\t\t\t\t\t<div slot=\"detail\">\n\t\t\t\t\t\t<p>This is Jessie</p>\n\t\t\t\t\t</div>\n\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t</smoothly-table>,\n\t\t]\n\t}\n}\n","import { h } from \"@stencil/core\"\n\nexport class Selector<T> {\n\t#selected?: T[]\n\tget selected(): T[] {\n\t\treturn (this.#selected ??= Object.values(this.data))\n\t}\n\tprivate constructor(private readonly key: keyof T, private data: Readonly<Record<string, T>> = {}) {}\n\thandle(data: Record<string, T>): Selector<T> {\n\t\treturn new Selector(\n\t\t\tthis.key,\n\t\t\t\"check-all\" in data\n\t\t\t\t? data[\"check-all\"] ?? {}\n\t\t\t\t: Object.fromEntries(Object.entries({ ...this.data, ...data }).filter(([_, value]) => value != undefined))\n\t\t)\n\t}\n\trender(item: T | T[]): HTMLSmoothlyCheckboxElement {\n\t\treturn Array.isArray(item) ? (\n\t\t\t<smoothly-checkbox\n\t\t\t\tname=\"check-all\"\n\t\t\t\tvalue={Object.fromEntries(item.map(i => [i[this.key], i]))}\n\t\t\t\tintermediate={this.selected.length > 0 && this.selected.length < item.length}\n\t\t\t\tchecked={this.selected.length == item.length ? true : this.selected.length == 0 && false}\n\t\t\t/>\n\t\t) : (\n\t\t\t<smoothly-checkbox\n\t\t\t\tname={item[this.key]?.toString()}\n\t\t\t\tvalue={item}\n\t\t\t\tchecked={!!this.data[item[this.key]?.toString() ?? \"\"]}\n\t\t\t/>\n\t\t)\n\t}\n\tstatic create<T>(key: keyof T): Selector<T> {\n\t\treturn new Selector(key)\n\t}\n}\n",":host {\n\tdisplay: block;\n}\n","import { Component, ComponentWillLoad, h, Listen, State } from \"@stencil/core\"\nimport * as selectively from \"selectively\"\nimport { Criteria } from \"selectively\"\nimport * as http from \"cloudly-http\"\nimport { Selector } from \"../../Selector\"\nimport { Cat, Root } from \"./Root\"\n\n@Component({\n\ttag: \"smoothly-table-demo-filtered\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class TableDemoFiltered implements ComponentWillLoad {\n\t@State() criteria: Criteria = {}\n\t@State() data?: Root | false\n\t@State() selector: Selector<Cat> = Selector.create(\"breed\")\n\n\t@Listen(\"filters\")\n\tonFilterUpdate(event: CustomEvent<Record<string, Criteria>>) {\n\t\tevent.stopPropagation()\n\t\tthis.criteria = event.detail\n\t}\n\n\t@Listen(\"smoothlyInput\", { capture: true })\n\tsmoothlyInputHandler(event: CustomEvent<Record<string, any>>) {\n\t\tevent.stopPropagation()\n\t\tthis.selector = this.selector.handle(event.detail)\n\t}\n\n\tasync componentWillLoad(): Promise<void> {\n\t\tconst response = await http.fetch(\"https://catfact.ninja/breeds?limit=10\")\n\t\tthis.data = response.status == 200 && (await response.body)\n\t}\n\n\trender() {\n\t\tconst data = this.data && selectively.filter(this.criteria, this.data.data)\n\t\treturn !data\n\t\t\t? \"Failed to load data.\"\n\t\t\t: [\n\t\t\t\t\t<smoothly-filter>\n\t\t\t\t\t\t<smoothly-icon slot=\"start\" name=\"search-outline\" size=\"small\" />\n\t\t\t\t\t\tReadonly\n\t\t\t\t\t\t<div slot=\"filter\">\n\t\t\t\t\t\t\t<smoothly-form looks=\"border\">\n\t\t\t\t\t\t\t\t<smoothly-filter-input name=\"breed\" placeholder=\"ex. Abyssinian\">\n\t\t\t\t\t\t\t\t\tBreed\n\t\t\t\t\t\t\t\t\t<smoothly-icon slot=\"start\" name=\"search-outline\" size=\"small\" />\n\t\t\t\t\t\t\t\t</smoothly-filter-input>\n\t\t\t\t\t\t\t</smoothly-form>\n\t\t\t\t\t\t\t<smoothly-form looks=\"border\">\n\t\t\t\t\t\t\t\t<smoothly-filter-input name=\"country\" placeholder=\"ex. Ethiopia\">\n\t\t\t\t\t\t\t\t\tCountry\n\t\t\t\t\t\t\t\t\t<smoothly-icon slot=\"start\" name=\"search-outline\" size=\"small\" />\n\t\t\t\t\t\t\t\t</smoothly-filter-input>\n\t\t\t\t\t\t\t</smoothly-form>\n\t\t\t\t\t\t\t<smoothly-form looks=\"border\">\n\t\t\t\t\t\t\t\t<smoothly-filter-input name=\"coat\" placeholder=\"ex. Short\">\n\t\t\t\t\t\t\t\t\tCoat\n\t\t\t\t\t\t\t\t\t<smoothly-icon slot=\"start\" name=\"search-outline\" size=\"small\" />\n\t\t\t\t\t\t\t\t</smoothly-filter-input>\n\t\t\t\t\t\t\t</smoothly-form>\n\t\t\t\t\t\t\t<smoothly-form looks=\"border\">\n\t\t\t\t\t\t\t\t<smoothly-filter-input name=\"pattern\" placeholder=\"ex. Ticked\">\n\t\t\t\t\t\t\t\t\tPattern\n\t\t\t\t\t\t\t\t\t<smoothly-icon slot=\"start\" name=\"search-outline\" size=\"small\" />\n\t\t\t\t\t\t\t\t</smoothly-filter-input>\n\t\t\t\t\t\t\t</smoothly-form>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</smoothly-filter>,\n\n\t\t\t\t\t<smoothly-table>\n\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t<smoothly-table-header>{this.selector.render(data)}</smoothly-table-header>\n\t\t\t\t\t\t\t<smoothly-table-header>Breed</smoothly-table-header>\n\t\t\t\t\t\t\t<smoothly-table-header>Coat</smoothly-table-header>\n\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t{data.map(cat => (\n\t\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t\t<smoothly-table-cell>{this.selector.render(cat)}</smoothly-table-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t{cat.breed}\n\t\t\t\t\t\t\t\t\t<div slot=\"detail\">Country: {cat.country}</div>\n\t\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t\t{cat.coat}\n\t\t\t\t\t\t\t\t\t<div slot=\"detail\">Pattern: {cat.pattern}</div>\n\t\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</smoothly-table>,\n\t\t\t ]\n\t}\n}\n",":host {\n\tdisplay: table-cell;\n\tpadding: 0.3rem 0 0.3rem 0;\n\tcursor: pointer;\n\tline-height: 1.5rem;\n}\n:host:not([open]) {\n\tbox-shadow: 0 1px 0 0 rgb(var(--smoothly-color-shade)), 0 1px 0 0 rgb(var(--smoothly-color-shade)) inset;\n}\n:host[open] {\n\tposition: relative;\n\tz-index: 3;\n\tbackground-color: rgb(var(--smoothly-color));\n\tbox-shadow: 1px 0 0 0 rgb(var(--smoothly-color-shade)) inset, -1px 0 0 0 rgb(var(--smoothly-color-shade)) inset, 0 1px 0 0 rgb(var(--smoothly-color-shade)) inset;\n}\n:host smoothly-icon {\n\twidth: 1em;\n\tfloat: left;\n\tpadding: 0 0.3rem;\n\ttransition: transform 0.2s, opacity 0.1s;\n\tdisplay: flex;\n\theight: auto;\n\taspect-ratio: 1 / 1;\n\talign-self: center;\n\topacity: 0.3;\n}\n:host:hover smoothly-icon {\n\topacity: 1;\n}\n:host[open] smoothly-icon {\n\ttransform: rotate(90deg);\n}\naside {\n\tdisplay: grid;\n\tgrid-auto-flow: column;\n\tjustify-content: start;\n\talign-items: center;\n}\n.hide {\n\tdisplay: none;\n}\ntd::slotted(*) {\n\t--expansion-width: 1.5rem;\n\t--expansion-border-width: 3px;\n\tposition: relative;\n\tbackground-color: rgb(var(--smoothly-color));\n\twidth: calc(100% + 3rem - 1px);\n\ttop: 1px;\n\tleft: calc(-1 * var(--expansion-width) + 1px);\n\tbox-sizing: border-box;\n\tpadding: 0.5rem calc(var(--expansion-width) - 1px);\n\tborder-bottom: 1px solid rgb(var(--smoothly-color-shade));\n}\ntr.spotlight > td::slotted(*) {\n\tbox-shadow: calc(var(--expansion-border-width)) 0 0 0 rgb(var(--smoothly-tertiary-color)) inset;\n}\ntr:not(.spotlight) > td::slotted(*) {\n\tbox-shadow: -1px 0 0 0 rgb(var(--smoothly-tertiary-color)), 1px 0 0 0 rgb(var(--smoothly-tertiary-color));\n}\ntd::slotted(*)::before {\n\tcontent: \"\";\n\tposition: absolute;\n\tdisplay: flex;\n\ttop: -1px;\n\tbottom: 0;\n\tleft: -1px;\n\twidth: calc(var(--expansion-width) + 1px);\n\tborder-top: 1px solid rgb(var(--smoothly-color-shade));\n}\ntd::slotted(*)::after {\n\tcontent: \"\";\n\tposition: absolute;\n\tdisplay: flex;\n\ttop: -1px;\n\tbottom: 0;\n\tright: 0;\n\twidth: calc(var(--expansion-width) - 1px);\n\tborder-top: 1px solid rgb(var(--smoothly-color-shade));\n\tborder-right: 1px solid rgb(var(--smoothly-color-shade));\n}\n\nsmoothly-table[align=bottom] :host {\n\tvertical-align: bottom;\n}\nsmoothly-table[align=middle] :host {\n\tvertical-align: middle;\n\ttext-align: left;\n}\nsmoothly-table[align=top] :host {\n\tvertical-align: top;\n}\n","import {\n\tComponent,\n\tComponentWillLoad,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tProp,\n\tState,\n\tWatch,\n} from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-table-expandable-cell\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class TableExpandableCell implements ComponentWillLoad {\n\tprivate expansionElement?: HTMLTableRowElement\n\tprivate beginOpen: boolean\n\t@Element() element: HTMLSmoothlyTableExpandableCellElement\n\t@State() allowSpotlight = true\n\t@State() spotlight = true\n\t@Prop() align: \"left\" | \"center\" | \"right\" = \"left\"\n\t@Prop({ mutable: true, reflect: true }) open: boolean\n\t@Event() smoothlyExpansionOpen: EventEmitter<HTMLElement>\n\t@Event() smoothlyExpansionLoad: EventEmitter<void>\n\t@Event() smoothlyExpandableChange: EventEmitter<boolean>\n\t@Event() smoothlyExpandableLoad: EventEmitter<{ allowSpotlight: (allowed: boolean) => void }>\n\t@Watch(\"open\")\n\topenChanged(value: boolean) {\n\t\tif (this.expansionElement)\n\t\t\tif (value)\n\t\t\t\tthis.beginOpen = true\n\t\t\telse\n\t\t\t\tthis.element.append(this.expansionElement)\n\t\tthis.smoothlyExpandableChange.emit(this.open)\n\t}\n\t@Watch(\"open\")\n\t@Watch(\"allowSpotlight\")\n\thandleSpotlight() {\n\t\tthis.spotlight = this.open && this.allowSpotlight\n\t}\n\tcomponentWillLoad(): void {\n\t\tthis.smoothlyExpansionLoad.emit()\n\t\tthis.smoothlyExpandableLoad.emit({\n\t\t\tallowSpotlight: (allowed: boolean) => (this.allowSpotlight = allowed),\n\t\t})\n\t}\n\tcomponentDidRender(): void {\n\t\tif (this.beginOpen) {\n\t\t\tthis.beginOpen = false\n\t\t\tthis.smoothlyExpansionOpen.emit(this.expansionElement)\n\t\t}\n\t}\n\t@Listen(\"click\")\n\tonClick() {\n\t\tthis.open = !this.open\n\t}\n\t@Listen(\"smoothlyTableLoad\")\n\thandleTableLoaded(event: CustomEvent<(owner: EventTarget) => void>) {\n\t\tevent.stopPropagation()\n\t\tevent.detail(this.element)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host style={{ textAlign: this.align }}>\n\t\t\t\t<aside>\n\t\t\t\t\t<smoothly-icon name=\"caret-forward-outline\"></smoothly-icon>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</aside>\n\t\t\t\t<tr class={{ spotlight: this.spotlight }} ref={e => (this.expansionElement = e)}>\n\t\t\t\t\t<td colSpan={999} class={!this.open ? \"hide\" : \"\"}>\n\t\t\t\t\t\t<slot name=\"detail\"></slot>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: contents;\n}\ndiv {\n\tdisplay: table-row;\n\tcursor: pointer;\n\tline-height: 1.5rem;\n}\n:host[open] > div {\n\tposition: relative;\n\tz-index: 3;\n\tbackground-color: rgb(var(--smoothly-color));\n}\n:host[open] > div::slotted(*) smoothly-table-cell,\n:host[open] > div::slotted(smoothly-table-cell) {\n\tbox-shadow: 0 1px 0 0 rgb(var(--smoothly-color-shade)) inset;\t\n}\n:host[open] > div::slotted(*) smoothly-table-cell:first-child {\n\tbox-shadow: 0 1px 0 0 rgb(var(--smoothly-color-shade)) inset, 1px 0 0 0 rgb(var(--smoothly-color-shade)) inset;\n}\n:host[open] > div::slotted(*) smoothly-table-cell:last-child {\n\tbox-shadow: 0 1px 0 0 rgb(var(--smoothly-color-shade)) inset, -1px 0 0 0 rgb(var(--smoothly-color-shade)) inset;\n}\n:host[open] > div::slotted(*) smoothly-table-cell:last-child:first-child {\n\tbox-shadow: 0 1px 0 0 rgb(var(--smoothly-color-shade)) inset, 1px 0 0 0 rgb(var(--smoothly-color-shade)) inset, -1px 0 0 0 rgb(var(--smoothly-color-shade)) inset;\n}\n\n.hide {\n\tdisplay: none;\n}\ndiv > tr > td {\n\tposition: relative;\n}\ntd::slotted(*) {\n\t--expansion-width: 1.5rem;\n\t--expansion-border-width: 3px;\n\tposition: relative;\n\tbackground-color: rgb(var(--smoothly-color));\n\twidth: calc(100% + 3rem - 2px);\n\tleft: calc(-1 * var(--expansion-width) + 1px);\n\tbox-sizing: border-box;\n\tpadding: 0.5rem calc(var(--expansion-width) - 1px);\n\tborder-bottom: 1px solid rgb(var(--smoothly-color-shade));\n}\ntr.spotlight > td::slotted(*) {\n\tbox-shadow: calc(var(--expansion-border-width)) 0px 0px 0px rgb(var(--smoothly-tertiary-color)) inset;\n}\ntr:not(.spotlight) > td::slotted(*) {\n\tbox-shadow: -1px 0 0 0 rgb(var(--smoothly-tertiary-color)), 1px 0 0 0 rgb(var(--smoothly-tertiary-color));\n}\ntd::slotted(*)::before {\n\tcontent: \"\";\n\tposition: absolute;\n\tdisplay: flex;\n\ttop: 0;\n\tbottom: 0;\n\tleft: -1px;\n\twidth: calc(var(--expansion-width) + 1px);\n\tborder-top: 1px solid rgb(var(--smoothly-color-shade));\n}\ntd::slotted(*)::after {\n\tcontent: \"\";\n\tposition: absolute;\n\tdisplay: flex;\n\ttop: 0;\n\tbottom: 0;\n\tright: 0;\n\twidth: calc(var(--expansion-width) - 1px);\n\tborder-top: 1px solid rgb(var(--smoothly-color-shade));\n\tborder-right: 1px solid rgb(var(--smoothly-color-shade));\n}\n","import {\n\tComponent,\n\tComponentWillLoad,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tProp,\n\tState,\n\tWatch,\n} from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-table-expandable-row\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class TableExpandableRow implements ComponentWillLoad {\n\t@Element() element: HTMLSmoothlyTableRowElement\n\t@State() allowSpotlight = true\n\t@State() spotlight = true\n\t@Prop() align: \"left\" | \"center\" | \"right\" = \"left\"\n\t@Prop({ mutable: true, reflect: true }) open: boolean\n\t@Event() smoothlyExpansionOpen: EventEmitter<HTMLElement>\n\t@Event() smoothlyExpandableChange: EventEmitter<boolean>\n\t@Event() smoothlyExpandableLoad: EventEmitter<{ allowSpotlight: (allowed: boolean) => void }>\n\n\t@Watch(\"open\")\n\t@Watch(\"allowSpotlight\")\n\thandleSpotlight() {\n\t\tthis.spotlight = this.open && this.allowSpotlight\n\t}\n\tcomponentWillLoad() {\n\t\tthis.smoothlyExpandableLoad.emit({\n\t\t\tallowSpotlight: (allowed: boolean) => (this.allowSpotlight = allowed),\n\t\t})\n\t}\n\t@Listen(\"smoothlyTableLoad\")\n\thandleTableLoaded(event: CustomEvent<(owner: EventTarget) => void>) {\n\t\tevent.stopPropagation()\n\t\tevent.detail(this.element)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<Host style={{ textAlign: this.align }}>\n\t\t\t\t<div style={{ textAlign: this.align }} onClick={() => (this.open = !this.open)}>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\t\t\t\t<tr class={{ spotlight: this.spotlight }}>\n\t\t\t\t\t<td colSpan={999} class={{ hide: !this.open }}>\n\t\t\t\t\t\t<slot name=\"detail\"></slot>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: table-footer-group;\n\tcursor: default;\n\tposition: sticky;\n\twidth: 100%;\n\tbottom: 0;\n\tbackground-color: rgb(var(--smoothly-color)) ;\n\tbox-shadow: 0 1px 0 0 rgb(var(--smoothly-color-shade)),\n\tinset 0 1px 0 rgb(var(--smoothly-color-shade));\n}\ndiv {\n\tdisplay: contents;\n}\n","import { Component, h } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-table-footer\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class TableFooter {\n\trender() {\n\t\treturn (\n\t\t\t<div>\n\t\t\t\t<slot />\n\t\t\t</div>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: table-cell;\n\tline-height: 2.5rem;\n\tborder-top: 1px solid rgb(var(--smoothly-color-shade));\n\tbox-shadow: 0 1px 0 0 rgb(var(--smoothly-color-shade));\n\tpadding-left: 1rem;\n\tfont-weight: bold;\n}\n\nsmoothly-table[align=bottom] :host {\n\tvertical-align: bottom;\n}\nsmoothly-table[align=middle] :host {\n\tvertical-align: middle;\n\ttext-align: left;\n}\nsmoothly-table[align=top] :host {\n\tvertical-align: top;\n}\n","import { Component, h, Host, Prop } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-table-header\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class TableHeader {\n\t@Prop() name: string\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<slot></slot>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: table-row-group;\n\tcursor: default;\n\tline-height: 1.5rem;\n}\n.hide {\n\tdisplay: none;\n}\ndiv {\n\tdisplay: contents;\n}\n","import { Component, h, Listen, Prop } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-table-row\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class TableRow {\n\tprivate element?: HTMLElement\n\t@Prop({ reflect: true, mutable: true }) open = false\n\texpansions: HTMLSmoothlyTableExpandableCellElement[] = []\n\t@Listen(\"smoothlyExpansionLoad\")\n\tonExpansionLoad(event: CustomEvent<void>) {\n\t\tthis.expansions.push(event.target as HTMLSmoothlyTableExpandableCellElement)\n\t}\n\t@Listen(\"smoothlyExpandableChange\")\n\tonExpansionChange() {\n\t\tthis.open = this.expansions.some(expansion => expansion.open)\n\t}\n\t@Listen(\"smoothlyExpansionOpen\")\n\tonExpansionOpen(event: CustomEvent<HTMLElement | undefined>) {\n\t\tthis.expansions.forEach(cell => {\n\t\t\tif (cell != event.target)\n\t\t\t\tcell.open = false\n\t\t})\n\t\tif (event.detail)\n\t\t\tthis.element?.after(event.detail)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t<div ref={e => (this.element = e)}>\n\t\t\t\t<slot></slot>\n\t\t\t</div>\n\t\t)\n\t}\n}\n","export const data = [\n\t{\n\t\ttype: \"cat\",\n\t\tname: \"Lazie\",\n\t\tage: 3,\n\t},\n\t{\n\t\ttype: \"dog\",\n\t\tname: \"Jessie\",\n\t\tage: 8,\n\t},\n\t{\n\t\ttype: \"cat\",\n\t\tname: \"Snooz\",\n\t\tage: 5,\n\t},\n\t{\n\t\ttype: \"bird\",\n\t\tname: \"Squeak\",\n\t\tage: 1,\n\t},\n\t{\n\t\ttype: \"bird\",\n\t\tname: \"Quirk\",\n\t\tage: 2,\n\t},\n]\n",":host {\n\twidth: 100%;\n\tdisplay: flex;\n\tjustify-content: center;\n}\nsmoothly-table {\n\twidth: 80%;\n}\n.tableCell {\n\theight: 3rem;\n\tdisplay: flex;\n\talign-items: center;\n}\n.tableCell > div {\n\tmargin-left: 3rem;\n\tmargin-right: 3rem;\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 2rem;\n}\n","import { Component, h, Host, State } from \"@stencil/core\"\nimport { data } from \"./data\"\n@Component({\n\ttag: \"smoothly-table-testing\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTableTesting {\n\t@State() counter = 0\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<smoothly-table color=\"dark\">\n\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t<smoothly-table-header>Type</smoothly-table-header>\n\t\t\t\t\t\t<smoothly-table-header>Name</smoothly-table-header>\n\t\t\t\t\t\t<smoothly-table-header>Age</smoothly-table-header>\n\t\t\t\t\t</smoothly-table-row>\n\n\t\t\t\t\t{data.map(animal => (\n\t\t\t\t\t\t<smoothly-table-expandable-row>\n\t\t\t\t\t\t\t<smoothly-table-cell>{animal.type}</smoothly-table-cell>\n\t\t\t\t\t\t\t<smoothly-table-cell>{animal.name}</smoothly-table-cell>\n\t\t\t\t\t\t\t<smoothly-table-cell>{animal.age}</smoothly-table-cell>\n\t\t\t\t\t\t\t<smoothly-form slot=\"detail\" onSmoothlyFormSubmit={() => this.counter++} looks=\"line\">\n\t\t\t\t\t\t\t\t<smoothly-input value={animal.type}>Type</smoothly-input>\n\t\t\t\t\t\t\t\t<smoothly-input value={animal.name}>Name</smoothly-input>\n\t\t\t\t\t\t\t\t<smoothly-input>{animal.age}</smoothly-input>\n\t\t\t\t\t\t\t\t<smoothly-submit slot=\"submit\">Submit!</smoothly-submit>\n\t\t\t\t\t\t\t</smoothly-form>\n\t\t\t\t\t\t</smoothly-table-expandable-row>\n\t\t\t\t\t))}\n\t\t\t\t\t{data.map(animal => (\n\t\t\t\t\t\t<smoothly-table-row>\n\t\t\t\t\t\t\t<smoothly-table-cell>{animal.type}</smoothly-table-cell>\n\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t{animal.name}\n\t\t\t\t\t\t\t\t<smoothly-form slot=\"detail\" onSmoothlyFormSubmit={() => this.counter++} looks=\"line\">\n\t\t\t\t\t\t\t\t\t<smoothly-input value={animal.name}>Name</smoothly-input>\n\t\t\t\t\t\t\t\t\t<smoothly-submit slot=\"submit\">Submit!</smoothly-submit>\n\t\t\t\t\t\t\t\t</smoothly-form>\n\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t<smoothly-table-expandable-cell>\n\t\t\t\t\t\t\t\t{animal.age}\n\t\t\t\t\t\t\t\t<smoothly-form slot=\"detail\" onSmoothlyFormSubmit={() => this.counter++} looks=\"line\">\n\t\t\t\t\t\t\t\t\t<smoothly-input value={animal.type}>Type</smoothly-input>\n\t\t\t\t\t\t\t\t\t<smoothly-input value={animal.name}>Name</smoothly-input>\n\t\t\t\t\t\t\t\t\t<smoothly-input>{animal.age}</smoothly-input>\n\t\t\t\t\t\t\t\t\t<smoothly-submit slot=\"submit\">Submit!</smoothly-submit>\n\t\t\t\t\t\t\t\t</smoothly-form>\n\t\t\t\t\t\t\t</smoothly-table-expandable-cell>\n\t\t\t\t\t\t</smoothly-table-row>\n\t\t\t\t\t))}\n\t\t\t\t\t<smoothly-table-footer>\n\t\t\t\t\t\t<div class=\"tableCell\">\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\tCurrently viewing content from:\n\t\t\t\t\t\t\t\t<smoothly-display type=\"date\" value=\"2023-10-12\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</smoothly-table-footer>\n\t\t\t\t</smoothly-table>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n}\n:host > :first-child {\n\tmargin-top: 0.2rem;\n}\n","import { Component, h, Host, Prop } from \"@stencil/core\"\nimport { Color } from \"../../../model\"\n\n@Component({\n\ttag: \"smoothly-theme-color\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyThemeColor {\n\t@Prop() color: Color\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t{this.color}\n\t\t\t\t{([\"tint\", \"color\", \"shade\"] as const).map(variant => (\n\t\t\t\t\t<smoothly-theme-color-variant color={this.color} variant={variant}></smoothly-theme-color-variant>\n\t\t\t\t))}\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\twidth: 3em;\n\theight: 3em;\n\tfont-weight: 900;\n}\n\n:host[color][variant=color] {\n\tbackground: rgb(var(--smoothly-color));\n}\n:host[color][variant=tint] {\n\tbackground: rgb(var(--smoothly-color-tint));\n}\n:host[color][variant=shade] {\n\tbackground: rgb(var(--smoothly-color-shade));\n}\n","import { Component, Prop } from \"@stencil/core\"\nimport { Color } from \"../../../../model\"\n\n@Component({\n\ttag: \"smoothly-theme-color-variant\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyThemeColorVariant {\n\t@Prop({ reflect: true }) color: Color\n\t@Prop({ reflect: true }) variant: \"shade\" | \"tint\" | \"color\" = \"color\"\n\trender() {\n\t\treturn \"Aa\"\n\t}\n}\n",":host {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(3, 1fr);\n\trow-gap: 1em;\n\tcolumn-gap: 1em;\n\twidth: fit-content;\n}\n","import { Component, h } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-theme-colors\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyThemeColors {\n\trender() {\n\t\treturn (\n\t\t\t[\n\t\t\t\t\"primary\",\n\t\t\t\t\"secondary\",\n\t\t\t\t\"tertiary\",\n\t\t\t\t\"success\",\n\t\t\t\t\"warning\",\n\t\t\t\t\"danger\",\n\t\t\t\t\"light\",\n\t\t\t\t\"medium\",\n\t\t\t\t\"dark\",\n\t\t\t\t\"default\",\n\t\t\t] as const\n\t\t).map(color => <smoothly-theme-color color={color}></smoothly-theme-color>)\n\t}\n}\n",":host{\n\tdisplay: inline-block;\n\tborder: none;\n}\nbutton{\n\tborder: solid white 0.5px;\n\tdisplay: flex;\n\tpadding: 0.6em;\n\tjustify-content: center;\n\tfont-size: 110%;\n\tfont-weight: 400;\n\tcolor: rgb(var(--smoothly-default-tint));\n\tbackground-color: rgb(var(--smoothly-default-shade));\n}\n:host([shape=rounded]){\n\tborder-radius: 0.6em;\n}\n:host([shape=rounded]) > button {\n\tborder-radius: 0.5em;\n}\n:host([selected]) > button{\n\tcolor: rgb(var(--smoothly-light-contrast));\n}\n::slotted(smoothly-icon){\n\tstroke: rgb(var(--smoothly-default-contrast));\n\tfill: rgb(var(--smoothly-default-contrast));\n\tfont-size: 110%;\n}\n:host(:not([selected])) > ::slotted(smoothly-icon) {\n\tcolor: rgb(var(--smoothly-default-tint));\n\tfill:rgb(var(--smoothly-default-tint));\n}\n:host([disabled]) {\n\topacity: 0.5;\n\tpointer-events: none;\n}\n","import { Component, h, Listen, Prop } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-toggle\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyToggle {\n\t@Prop({ mutable: true, reflect: true }) selected = false\n\t@Prop({ reflect: true }) shape: \"rounded\"\n\t@Prop({ reflect: true }) disabled = false\n\t@Prop() name: string\n\t@Prop() value?: any\n\n\t@Listen(\"click\")\n\tonClick(e: UIEvent) {\n\t\tthis.selected = !this.selected\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<button>\n\t\t\t\t<slot name=\"icon-slot\"></slot>\n\t\t\t\t<slot>{this.name}</slot>\n\t\t\t</button>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n\tmargin: 1em 0;\n\twidth: 3.6em;\n\theight: 1.8em;\n}\n\n:host button {\n\twidth: 100%;\n\theight: 100%;\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tposition: relative;\n\tcursor: pointer;\n\tborder: none;\n\tborder-radius: 3em;\n\tbackground-color: rgb(var(--smoothly-light-tint));\n}\n:host button:hover {\n\tbackground-color: rgb(var(--smoothly-light-color));\n}\n:host smoothly-icon {\n\tdisplay: flex;\n\tjustify-content: flex-start;\n\talign-items: center;\n\tposition: absolute;\n\tleft: 0;\n\tfill: rgb(var(--smoothly-color));\n\tstroke: rgb(var(--smoothly-color));\n\tfont-size: 1.2em;\n\ttransition: 100ms ease-in-out;\n}\n\n:host[checkmark] smoothly-icon {\n\tfill: rgb(var(--smoothly-success-color));\n\tstroke: rgb(var(--smoothly-success-color));\n}\n:host([selected][checkmark]) button{\n\tbackground-color: rgb(var(--smoothly-success-color));\n}\n\n:host([selected]) smoothly-icon{\n\ttransform: translateX(100%);\n}\n\n:host([size=small]){\n\twidth: 3.05em;\n\theight: 1.5em;\n}\n\n:host([size=large]){\n\twidth: 5.2em;\n\theight: 2.5em;\n}\n\n:host([size=small]) smoothly-icon{\n\tfont-size: 1em;\n}\n\n:host([size=large]) smoothly-icon{\n\tfont-size: 1.75em;\n}\n","import { Component, Event, EventEmitter, h, Host, Prop } from \"@stencil/core\"\nimport { Color, Fill } from \"../../model\"\n\n@Component({\n\ttag: \"smoothly-toggle-switch\",\n\tstyleUrl: \"style.css\",\n\tshadow: true,\n})\nexport class SmoothlyToggleSwitch {\n\t@Prop({ reflect: true }) checkmark = true\n\t@Prop({ mutable: true, reflect: true }) selected = false\n\t@Prop({ reflect: true }) disabled = false\n\t@Prop({ reflect: true }) size: \"small\" | \"default\" | \"large\" = \"default\"\n\t@Prop({ reflect: true }) color: Color\n\t@Prop({ reflect: true }) fill: Fill = \"clear\"\n\t@Event() smoothlyToggleSwitchChange: EventEmitter<boolean>\n\n\thandleClick() {\n\t\tthis.selected = !this.selected\n\t\tthis.smoothlyToggleSwitchChange.emit(this.selected)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<button disabled={this.disabled} onClick={() => this.handleClick()}>\n\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\tcolor={this.color}\n\t\t\t\t\t\tname={!this.checkmark ? \"ellipse\" : this.selected ? \"checkmark-circle\" : \"close-circle\"}\n\t\t\t\t\t\tfill=\"clear\"\n\t\t\t\t\t\tclass={{ selected: this.selected }}></smoothly-icon>\n\t\t\t\t</button>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n",":host {\n\tdisplay: block;\n\tborder-style: solid;\n\tborder-width: 1px;\n\tborder-radius: 3px;\n}\n:host[hidden] {\n\tdisplay: none;\n}\n:host[disabled] {\n\topacity: 0.5;\n}\nbutton {\n\tborder-color: transparent;\n\tbackground-color: transparent;\n\tpadding: 0.2em 0.3em;\n\tfont-size: 110%;\n\tfont-weight: 400;\n}\n:host:not([disabled]):hover,\n:host:not([disabled]):focus,\n:host:not([disabled]):active {\n\tborder-color: var(--smoothly-trigger-border);\n}\n:host[expand=full] > button,\n:host[expand=block] > button {\n\twidth: 100%;\n}\n:host[expand=full] {\n\tborder-left: none;\n\tborder-right: none;\n}\n","import { Component, Event, EventEmitter, h, Listen, Prop } from \"@stencil/core\"\nimport { Color, Fill, Trigger } from \"../../model\"\n\n@Component({\n\ttag: \"smoothly-trigger\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyTrigger {\n\t@Prop({ reflect: true }) color: Color | undefined\n\t@Prop({ reflect: true }) fill: Fill\n\t@Prop({ reflect: true }) disabled = false\n\t@Prop({ reflect: true }) type: \"link\" | \"button\" = \"button\"\n\t@Prop() name: string\n\t@Prop() value?: any\n\t@Event() trigger: EventEmitter<Trigger>\n\n\t@Listen(\"click\")\n\tonClick(e: UIEvent) {\n\t\tthis.trigger.emit({ name: this.name, value: this.value })\n\t\te.stopPropagation()\n\t\te.preventDefault()\n\t}\n\trender() {\n\t\tlet result: HTMLElement\n\t\tswitch (this.type) {\n\t\t\tcase \"link\":\n\t\t\t\tresult = this.disabled ? (\n\t\t\t\t\t<slot></slot>\n\t\t\t\t) : (\n\t\t\t\t\t<a onClick={e => this.onClick(e)}>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</a>\n\t\t\t\t)\n\t\t\t\tbreak\n\t\t\tcase \"button\":\n\t\t\t\tresult = (\n\t\t\t\t\t<button disabled={this.disabled} name={this.name}>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</button>\n\t\t\t\t)\n\t\t\t\tbreak\n\t\t}\n\t\treturn result\n\t}\n}\n","import { Component, h, Prop } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-tuple\",\n})\nexport class SmoothlyTuple {\n\t@Prop() tuple: [string, string]\n\trender() {\n\t\treturn [<b>{this.tuple[0]}</b>, \": \", this.tuple[1], <br />]\n\t}\n}\n","import { Component, h, Prop } from \"@stencil/core\"\n\n@Component({\n\ttag: \"smoothly-urlencoded\",\n})\nexport class Urlencoded {\n\t@Prop() data: string // TODO: Consider using a specific type for this\n\trender() {\n\t\treturn this.data\n\t\t\t.split(\"&\")\n\t\t\t.map(p => p.split(\"=\") as [string, string])\n\t\t\t.map(tuple => <smoothly-tuple tuple={tuple}></smoothly-tuple>)\n\t}\n}\n"],"mappings":"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TA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,OACTA,GAAS,QACTA,GAAS,OACTA,GAAS,OACTA,GAAS,OACTA,GAAS,QACTA,GAAS,QACTA,GAAS,OACTA,GAAS,QACTA,GAAS,OACTA,GAAS,SACTA,GAAS,OACTA,GAAS,OACTA,GAAS,QACTA,GAAS,OACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,OACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,OACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,OACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,SACTA,GAAS,QACTA,GAAS,QACTA,GAAS,OACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,OACTA,GAAS,QACTA,GAAS,QACTA,GAAS,OACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,SACTA,GAAS,OACTA,GAAS,QACTA,GAAS,OACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,OACTA,GAAS,OACTA,GAAS,QACTA,GAAS,OACTA,GAAS,QACTA,GAAS,SACTA,GAAS,QACTA,GAAS,OACTA,GAAS,MACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,SACTA,GAAS,SACTA,GAAS,QACTA,GAAS,QACTA,GAAS,SACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,QACTA,GAAS,OACTA,GAAS,QACTA,GAAS,QACT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GAAI,OACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,KACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,QACJC,GAAI,QACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,MACJC,GAAI,QACJC,GAAI,MACJC,GAAI,MACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,QACJC,GAAI,MACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,MACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,MACJC,GAAI,KACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,QACJC,GAAI,QACJC,GAAI,OACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,MACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,MACJC,GAAI,OACJC,GAAI,QACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,KACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,MACJC,GAAI,MACJC,GAAI,QACJC,GAAI,QACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,QCzuBD,IAAIC,IACX,SAAWA,GACPA,EAAOC,MAAQ,CACX,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,SAASzW,EAAGlZ,GACR,OAAO0vB,EAAOC,MAAMliB,SAASzN,EACrC,CACI0vB,EAAOxW,GAAKA,EACZ,SAAS8E,EAAKkC,GACV,cAAcA,GAAW,SAAW0P,GAAgB1P,GAAW2P,GAAe3P,EACtF,CACIwP,EAAO1R,KAAOA,EACd,SAAS8R,EAAM5P,GACX,MAAM6P,EAAM,CACR,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,OAAOA,EAAItiB,SAASyS,EAC5B,CACIwP,EAAOI,MAAQA,CAClB,EAzSD,CAySGJ,KAAWA,GAAS,KACvB,MAAME,GAAkB,CACpB,EAAK,KACL,IAAO,KACP,EAAK,KACL,GAAM,KACN,GAAM,KACN,GAAM,KACN,GAAM,KACN,IAAO,KACP,GAAM,KACN,GAAM,KACN,GAAM,KACN,GAAM,KACN,IAAO,KACP,GAAM,KACN,GAAM,KACN,GAAM,KACN,GAAM,KACN,GAAM,KACN,GAAM,KACN,GAAM,KACN,IAAO,KACP,GAAM,KACN,GAAM,KACN,IAAO,KACP,GAAM,KACN,GAAM,KACN,GAAM,KACN,IAAO,KACP,GAAM,KACN,GAAM,KACN,GAAM,KACN,GAAM,KACN,GAAM,KACN,GAAM,KACN,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,GAAM,KACN,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,GAAM,KACN,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MAEX,MAAMC,GAAiB,CACnBG,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MCjyBF,IAAIC,IACX,SAAWA,GACPA,EAAO/P,MAAQ,CACX,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJ,SAASzW,EAAGlZ,GACR,cAAcA,GAAS,UAAYA,EAAM+B,QAAU,GAAK29B,EAAO/P,MAAMliB,SAASzN,EACtF,CACI0/B,EAAOxmB,GAAKA,EACZ,SAAS8E,EAAKkC,GACV,cAAcA,GAAW,SAAWlC,EAAK0R,GAAO1R,KAAKkC,IAAYyf,GAAezf,EACxF,CACIwf,EAAO1hB,KAAOA,CACjB,EArQD,CAqQG0hB,KAAWA,GAAS,KACvB,MAAMC,GAAiB,CACnBnf,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJud,GAAI,MACJtd,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJI,GAAI,MACJH,GAAI,MACJC,GAAI,MACJC,GAAI,MACJE,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJ8b,GAAI,MACJ7b,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJ6I,GAAI,MACJ5I,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJ2a,GAAI,MACJ1a,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJ2Z,GAAI,MACJ1Z,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJE,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJhC,GAAI,MACJiC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJI,GAAI,MACJH,GAAI,MACJC,GAAI,MACJC,GAAI,MACJE,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,M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AI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJmR,GAAI,IACJlR,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,GACJC,GAAI,IACJC,GAAI,IACJ4Q,GAAI,IACJ3Q,GAAI,IACJC,GAAI,IACJC,GAAI,IACJ0Q,GAAI,KCvRR,MAAMI,GAAa,CACf,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEG,IAAIC,IACX,SAAWA,GACPA,EAAS7Q,MAAQ,IAAI4Q,IACrB,SAASrnB,EAAGunB,GACR,OAAOD,EAAS7Q,MAAMliB,SAASgzB,EACvC,CACID,EAAStnB,GAAKA,EACd,SAAS8E,EAAK0iB,GACV,MAAO,CACH,IAAO,MACP,IAAO,MACP,MAAO,MACP,MAAO,MACP,IAAO,MACP,IAAO,MACP,MAAO,MACP,MAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,MAAO,MACP,MAAO,MACP,IAAO,MACP,MAAO,MACP,IAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,IAAO,MACP,IAAO,MACP,MAAO,MACP,MAAO,MACP,MAAO,MACP,IAAO,MACP,MAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,MAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MAC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CLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLrN,IAAK,EACLsN,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAKtrC,UACLurC,IAAKvrC,UACLwrC,IAAKxrC,UACLyrC,IAAKzrC,UACL0rC,IAAK1rC,UACL2rC,IAAK3rC,UACL4rC,IAAK,EACLC,IAAK7rC,UACL8rC,IAAK,EACLC,IAAK/rC,UACLgsC,IAAK,EACLC,IAAKjsC,UACLksC,IAAKlsC,UACLmsC,IAAKnsC,UACLosC,IAAKpsC,UACLqsC,IAAKrsC,UACLssC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,GACPvM,EACV,CACID,EAASI,cAAgBA,CAC5B,EAhaD,CAgaGJ,KAAaA,GAAW,KCtlBpB,IAAIyM,IACX,SAAWA,GACPA,EAAatd,MAAQ,CACjB,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJ,SAASzW,EAAGlZ,GACR,OAAOitC,EAAatd,MAAMliB,SAASzN,EAC3C,CACIitC,EAAa/zB,GAAKA,EAClB,SAAS8E,EAAKyiB,GACV,MAAO,CACH0B,IAAK,MACLwC,IAAK,MACLpC,IAAK,MACLC,IAAK,MACLc,IAAK,MACLP,IAAK,MACLF,IAAK,MACLT,IAAK,MACLQ,IAAK,MACLK,IAAK,MACLxR,IAAK,MACL0R,IAAK,MACLI,IAAK,MACLE,IAAK,MACLgG,IAAK,MACLvG,IAAK,MACLwE,IAAK,MACL1E,IAAK,MACL0D,IAAK,MACLhD,IAAK,MACLY,IAAK,MACLyC,IAAK,MACLI,IAAK,MACLpD,IAAK,MACLC,IAAK,MACLC,IAAK,MACL0C,IAAK,MACLxC,IAAK,MACLyB,IAAK,MACLvB,IAAK,MACLE,IAAK,MACLE,IAAK,MACLC,IAAK,MACL0F,IAAK,MACLtF,IAAK,MACLD,IAAK,MACLI,IAAK,MACLD,IAAK,MACLR,IAAK,MACLc,IAAK,MACLD,IAAK,MACLG,IAAK,MACLD,IAAK,MACLE,IAAK,MACLI,IAAK,MACLF,IAAK,MACLD,IAAK,MACLI,IAAK,MACLM,IAAK,MACLH,IAAK,MACLF,IAAK,MACLI,IAAK,MACLD,IAAK,MACLF,IAAK,MACLK,IAAK,MACLE,IAAK,MACLS,IAAK,MACLV,IAAK,MACLE,IAAK,MACLI,IAAK,MACLC,IAAK,MACLC,IAAK,MACLL,IAAK,MACLQ,IAAK,MACLC,IAAK,MACLG,IAAK,MACLD,IAAK,MACLE,IAAK,MACLM,IAAK,MACLI,IAAK,MACLG,IAAK,MACLJ,IAAK,MACLD,IAAK,MACLG,IAAK,MACLN,IAAK,MACLH,IAAK,MACLD,IAAK,MACLoB,IAAK,MACLN,IAAK,MACLI,IAAK,MACLpG,IAAK,MACLI,IAAK,MACLiJ,IAAK,MACLhD,IAAK,MACLH,IAAK,MACLD,IAAK,MACLE,IAAK,MACLQ,IAAK,MACLJ,IAAK,MACLE,IAAK,MACLI,IAAK,MACLL,IAAK,MACLE,IAAK,MACLI,IAAK,MACLG,IAAK,MACLC,IAAK,MACLO,IAAK,MACLN,IAAK,MACLE,IAAK,MACLK,IAAK,MACLF,IAAK,MACL4B,IAAK,MACLzB,IAAK,MACL8C,IAAK,MACL5C,IAAK,MACLI,IAAK,MACLV,IAAK,MACLhG,IAAK,MACLyG,IAAK,MACLE,IAAK,MACLI,IAAK,MACLE,IAAK,MACL5I,IAAK,MACLyI,IAAK,MACLO,IAAK,MACL7Q,IAAK,MACLwK,IAAK,MACLM,IAAK,MACL6F,IAAK,MACLG,IAAK,MACLG,IAAK,MACLE,IAAK,MACLI,IAAK,MACLkB,IAAK,MACL/B,IAAK,MACLQ,IAAK,MACLE,IAAK,MACL3D,IAAK,MACLsC,IAAK,MACL/F,IAAK,MACL4I,IAAK,MACLxJ,IAAK,MACLiH,IAAK,MACLrF,IAAK,MACLuE,IAAK,MACLyB,IAAK,MACL/B,IAAK,MACLjB,IAAK,MACL1F,IAAK,MACL0G,IAAK,MACL7L,IAAK,MACLsG,IAAK,MACL+G,IAAK,MACLgB,IAAK,MACLO,IAAK,MACLE,IAAK,MACLE,IAAK,MACLR,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLJ,IAAK,MACLM,IAAK,MACLP,IAAK,MACLW,IAAK,MACLE,IAAK,MACLJ,IAAK,MACLK,IAAK,MACLI,IAAK,MACL9C,IAAK,MACLxC,IAAK,MACLvD,IAAK,MACLhC,IAAK,MACLsI,IAAK,MACLlI,IAAK,MACLQ,IAAK,MACLa,IAAK,MACLhB,IAAK,MACLoC,IAAK,MACLmD,IAAK,MACL8C,IAAK,MACL7F,IAAK,MACL/B,IAAK,MACL6F,IAAK,MACL5F,IAAK,MACLS,IAAK,MACL2I,IAAK,MACLtB,IAAK,MACLyB,IAAK,OACPnM,EACV,CACIwM,EAAajvB,KAAOA,EACpB,SAAS4iB,EAAcF,GACnB,MAAO,CACH,MAAO,EACP,MAAO,EACP,MAAO,EACP,MAAO,EACP,MAAO,EACP,MAAO,EACP,MAAO,EACP,MAAO,EACP,MAAO,EACP,MAAO,EACP,MAAO,EACP,MAAO,EACP,MAAO,EACP,MAAO,EACP,MAAO,EACP,MAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EACP,IAAO,EAC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B,QAAW,GAAKmG,EAAQnG,IAAOuC,QAAQ,GAAGhzB,SAAS,EAAG,SAAS,GAAK62B,EAAUpG,IACvGuC,QAAQ,GACRhzB,SAAS,EAAG,SAAS,GAAK82B,EAAUrG,IAAOuC,QAAQ,GAAGhzB,SAAS,EAAG,SAAS,IAAM+2B,EAAetG,IAChGuC,QAAQ,GACRhzB,SAAS,EAAG,OACzB,CACIwzB,EAAST,OAASA,CACrB,EArbD,CAqbGS,KAAaA,GAAW,KCxbpB,MAAM0D,ICCN,MAAMC,WAAiBD,GAC1BxoC,OAAOgT,GACH,OAAO01B,WAAW71B,KAAKG,EAAK6iB,MAAM,KAAKplB,GAAKk4B,GAAel4B,IACnE,CACIm4B,OAAO51B,GACH,OAAQA,EACF,GACA,IAAI01B,WAAW11B,EAAK61B,OAAQ71B,EAAK81B,WAAY91B,EAAK+1B,YAAY96B,QAAO,CAACpQ,EAAGmnC,IAAMnnC,EAAImrC,GAAehE,IAAI,GACpH,EAEA,MAAMgE,GAAiB,CACnB,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,MAAML,GAAiB,CACnB,KAAU,EACV,IAAU,EACV,IAAU,EACV,IAAU,EACV,IAAU,EACV,IAAU,EACV,IAAU,EACV,IAAU,EACV,KAAU,EACV,KAAU,EACV,KAAM,GACN,KAAU,GACV,KAAU,GACV,KAAM,GACN,IAAU,GACV,IAAU,GACV,IAAU,GACV,IAAU,GACV,IAAU,GACV,IAAU,GACV,IAAU,GACV,IAAU,GACV,IAAU,GACV,IAAU,GACV,IAAU,GACV,IAAU,GACV,IAAU,GACV,IAAU,GACV,IAAU,GACV,IAAU,GACV,IAAU,GACV,IAAU,GACV,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACLM,EAAG,GACH,IAAK,GACL,IAAK,GACL,IAAU,GACV,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACL,EAAK,GACL,EAAK,GACL,EAAK,GACL,EAAK,GACL,EAAK,GACL,EAAK,GACL,EAAK,GACL,EAAK,GACL,EAAK,GACL,EAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACLC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACHC,EAAG,GACH,IAAK,GACL,KAAM,GACN,IAAK,GACL,IAAK,GACLC,EAAG,GACH,IAAK,GACL18B,EAAG,GACHlW,EAAG,GACHyY,EAAG,GACHhZ,EAAG,IACHX,EAAG,IACH+zC,EAAG,IACHC,EAAG,IACH50C,EAAG,IACHoG,EAAG,IACHK,EAAG,IACHouC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHnlC,EAAG,IACHolC,EAAG,IACHC,EAAG,IACHvtC,EAAG,IACH+S,EAAG,IACHpC,EAAG,IACH68B,EAAG,IACHrG,EAAG,IACHsG,EAAG,IACHrrC,EAAG,IACHsrC,EAAG,IACHC,EAAG,IACH,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,EAAG,IACH,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,EAAG,IACH,IAAK,IACL,EAAG,IACH,IAAK,IACL,EAAG,IACH,IAAK,IACL,EAAG,IACH,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,EAAG,IACH,IAAK,IACL,EAAG,IACH,IAAK,IACL,EAAG,IACH,EAAG,IACH,IAAU,IACV,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,EAAG,IACH,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,EAAG,IACH,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,EAAG,IACH,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,IAAK,IACL,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,IAAK,IACL,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KC5gBA,MAAMC,WAAajD,GACtBxoC,OAAOgT,GACH,OAAO01B,WAAW71B,KAAK64B,SAASC,mBAAmB34B,IAAO6iB,MAAM,KAAKplB,GAAKA,EAAEm7B,WAAW,IAC/F,CACIhD,OAAO51B,GACH,OAAQA,EACF,GACA64B,mBAAmBC,OAAOj0C,MAAMgb,KAAK,IAAI61B,WAAW11B,EAAK61B,OAAQ71B,EAAK81B,WAAY91B,EAAK+1B,aAAat4B,GAAKs7B,OAAOC,aAAav7B,KAAI/Q,KAAK,KACpJ,ECPO,IAAIusC,IACX,SAAWA,GACPA,EAASzzC,OAAS,CACd,QACA,SACA,SACA,QACA,QACA,QACA,SACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,cACA,cACA,cACA,cACA,cACA,cACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,SACA,SACA,OACA,MACA,QACA,QACA,SACA,YACA,SACA,cACA,iBACA,eACA,gBACA,UACA,MACA,WACA,OACA,QACA,YACA,SACA,cACA,QAEJ,SAASuV,EAAGlZ,GACR,cAAcA,GAAS,UAAYo3C,EAASzzC,OAAO8B,MAAK0qC,GAAKA,GAAKnwC,GAC1E,CACIo3C,EAASl+B,GAAKA,EACd,SAAS9Q,EAAMpI,GACX,IAAI0I,EACJ,OAAQ1I,EAAMq3C,eACV,IAAK,QACL,IAAK,OACL,IAAK,QACD3uC,EAAS,QACT,MACJ,IAAK,SACDA,EAAS,SACT,MACJ,IAAK,SACDA,EAAS,SACT,MACJ,IAAK,WACL,IAAK,QACDA,EAAS,QACT,MACJ,IAAK,QACDA,EAAS,QACT,MACJ,IAAK,QACDA,EAAS,QACT,MACJ,IAAK,SACDA,EAAS,SACT,MACJ,IAAK,aACL,IAAK,cACL,IAAK,SACL,IAAK,UACL,IAAK,KACL,IAAK,SACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,QACL,IAAK,YACL,IAAK,eACL,IAAK,aACL,IAAK,aACDA,EAAS,aACT,MACJ,IAAK,aACDA,EAAS,aACT,MACJ,IAAK,aACDA,EAAS,aACT,MACJ,IAAK,aACDA,EAAS,aACT,MACJ,IAAK,aACDA,EAAS,aACT,MACJ,IAAK,aACDA,EAAS,aACT,MACJ,IAAK,aACDA,EAAS,aACT,MACJ,IAAK,aACDA,EAAS,aACT,MACJ,IAAK,aACDA,EAAS,aACT,MACJ,IAAK,cACDA,EAAS,cACT,MACJ,IAAK,cACDA,EAAS,cACT,MACJ,IAAK,cACDA,EAAS,cAC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S,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS,MACTA,GAAS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TA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,cACTA,GAAS,cACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,UACTA,GAAS,SACTA,GAAS,SACTA,GAAS,UACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,UACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,UACTA,GAAS,SACTA,GAAS,cACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,UACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,cACTA,GAAS,cACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,UACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,cACTA,GAAS,UACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,UACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,UACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,UACTA,GAAS,UACTA,GAAS,UACTA,GAAS,UACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,UACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,UACTA,GAAS,UACTA,GAAS,UACTA,GAAS,UACTA,GAAS,UACTA,GAAS,UACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,cACTA,GAAS,cACTA,GAAS,cACTA,GAAS,cACTA,GAAS,cACTA,GAAS,cACTA,GAAS,cACTA,GAAS,cACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,UACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,cACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,UACTA,GAAS,eACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,cACTA,GAAS,cACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,SACTA,GAAS,OACrB,CACI+iD,EAAO7pC,GAAKA,EACZ,SAAS8pC,EAAW3V,GAChB,MAAM3kC,EAAS2kC,EAAOrM,MAAM,KAAKiiB,QACjC,OAAOzL,GAASt+B,GAAGxQ,GAAUA,EAASnI,SAC9C,CACIwiD,EAAOC,WAAaA,EACpB,SAASE,EAAS7V,GACd,MAAM3kC,EAAS2kC,EAAOrM,MAAM,KAAKmiB,MACjC,OAAOzzB,GAAOxW,GAAGxQ,GAAUA,EAASnI,SAC5C,CACIwiD,EAAOG,SAAWA,EAClB,SAASE,EAASvqC,EAAUwqC,GACxB,IAAI36C,EACJ,GAAI26C,EACA36C,EAASmQ,EAAW,IAAMwqC,MACzB,CACD36C,EAAS,CACLywC,GAAI,QACJO,GAAI,QACJI,GAAI,QACJe,GAAI,QACJX,GAAI,QACJ0G,GAAI,QACJxG,GAAI,QACJI,GAAI,QACJC,GAAI,QACJvhC,GAAI,QACJ8iC,GAAI,QACJa,GAAI,QACJI,GAAI,QACJK,GAAI,QACJkB,GAAI,QACJE,GAAI,QACJ1E,GAAI,QACJsF,GAAI,QACJE,GAAI,QACJK,GAAI,QACJvmC,GAAI,SACNT,EACd,CACQ,OAAOK,EAAGxQ,GAAUA,EAASnI,SACrC,CACIwiD,EAAOK,SAAWA,CACrB,EAzQD,CAyQGL,KAAWA,GAAS,KC3QhB,IAAIO,IACX,SAAWA,GACP,SAASpqC,EAAGlZ,GACR,cAAcA,GAAS,UAAYiwC,GAAS/2B,GAAGlZ,EAAMiL,QAAUglC,GAAS/2B,GAAGlZ,EAAMkL,IACzF,CACIo4C,EAAUpqC,GAAKA,EACf,SAAS3C,EAAOtL,EAAOC,GACnB,OAAQ+kC,GAAS/2B,GAAGhO,GACdqL,EAAOtL,EAAOglC,GAASz4B,KAAKvM,EAAOC,IACnCD,GAASC,EACL,CAAED,QAAOC,OACT,CAAED,MAAOC,EAAKA,IAAKD,EACrC,CACIq4C,EAAU/sC,OAASA,CACtB,EAbD,CAaG+sC,KAAcA,GAAY,KCftB,IAAIC,IACX,SAAWA,GACP,SAASrqC,EAAGlZ,GACR,cAAeA,GAAS,kBACZA,EAAMgX,OAAS,UAAYhX,EAAMgX,OAASzW,oBAC1CP,EAAM6W,QAAU,UAAY7W,EAAM6W,QAAUtW,oBAC5CP,EAAM4tC,MAAQ,UAAY5tC,EAAM4tC,MAAQrtC,oBACxCP,EAAMiyC,OAAS,UAAYjyC,EAAMiyC,OAAS1xC,oBAC1CP,EAAMmyC,SAAW,UAAYnyC,EAAMmyC,SAAW5xC,oBAC9CP,EAAMqyC,SAAW,UAAYryC,EAAMqyC,SAAW9xC,oBAC9CP,EAAMsyC,cAAgB,UAAYtyC,EAAMsyC,cAAgB/xC,oBACxDP,EAAMgX,OAAS,iBACZhX,EAAM6W,QAAU,iBAChB7W,EAAM4tC,MAAQ,iBACd5tC,EAAMiyC,OAAS,iBACfjyC,EAAMmyC,SAAW,iBACjBnyC,EAAMqyC,SAAW,iBACjBryC,EAAMsyC,cAAgB,SAC7C,CACIiR,EAASrqC,GAAKA,EACd,SAASsqC,EAAQxjD,EAAO2gC,GACpB,MAAMj4B,GAAU+6C,GAAmBzjD,IAAUA,EAAMsyC,cAAgB,KAAO,GAAK,GAAK,MAC/EtyC,EAAMqyC,SAAW,IAAM,GAAK,KAC5BryC,EAAMmyC,SAAW,GAAK,IACtBnyC,EAAMiyC,OAAS,GACpB,OAAOyR,GAAah7C,EAAQi4B,EACpC,CACI4iB,EAASC,QAAUA,EACnB,SAASG,EAAU3jD,EAAO2gC,GACtB,MAAMj4B,GAAU+6C,GAAmBzjD,IAAUA,EAAMsyC,cAAgB,KAAO,GAAK,MAC1EtyC,EAAMqyC,SAAW,GAAK,IACtBryC,EAAMmyC,SAAW,IACjBnyC,EAAMiyC,OAAS,GAAK,GACzB,OAAOyR,GAAah7C,EAAQi4B,EACpC,CACI4iB,EAASI,UAAYA,EACrB,SAASC,EAAU5jD,EAAO2gC,GACtB,MAAMj4B,GAAU+6C,GAAmBzjD,IAAUA,EAAMsyC,cAAgB,IAAM,KACpEtyC,EAAMqyC,SAAW,IACjBryC,EAAMmyC,SAAW,GAAK,IACtBnyC,EAAMiyC,OAAS,GAAK,GAAK,GAC9B,OAAOyR,GAAah7C,EAAQi4B,EACpC,CACI4iB,EAASK,UAAYA,EACrB,SAASC,EAAe7jD,EAAO2gC,GAC3B,MAAMj4B,EAAS+6C,GAAmBzjD,IAC7BA,EAAMsyC,cAAgB,IACtBtyC,EAAMqyC,SAAW,GAAK,KACtBryC,EAAMmyC,SAAW,GAAK,GAAK,KAC3BnyC,EAAMiyC,OAAS,GAAK,GAAK,GAAK,IACnC,OAAOyR,GAAah7C,EAAQi4B,EACpC,CACI4iB,EAASM,eAAiBA,CAC7B,EApDD,CAoDGN,KAAaA,GAAW,KAC3B,SAASE,GAAmBrU,GACxB,MAAM93B,EAAMvB,KAAK+tC,IAAI,EAAG,GACxB,MAAMhuC,EAAO,IAAIC,KAAKuB,GACtB,MAAMysC,EAAShuC,KAAK+tC,IAAIhuC,EAAKkuC,kBAAoB5U,EAAKp4B,OAAS,GAAIlB,EAAKmuC,eAAiB7U,EAAKv4B,QAAU,GAAIf,EAAKouC,cAAgB9U,EAAKxB,MAAQ,GAAI93B,EAAKquC,cAAeruC,EAAKsuC,gBAAiBtuC,EAAKuuC,gBAAiBvuC,EAAKwuC,sBACvN,OAAOP,EAAOQ,UAAYzuC,EAAKyuC,SACnC,CACA,SAASb,GAAa1jD,EAAO2gC,GACzB,OAAQA,EACF3gC,EACA2gC,GAAS,UACL1kB,KAAK6zB,KAAK9vC,GACV2gC,GAAS,QACL1kB,KAAK80B,MAAM/wC,GACXic,KAAK0kB,MAAM3gC,EAC7B,CCpEO,IAAIwkD,IACX,SAAWA,GACP,SAAStrC,EAAGlZ,GACR,IAAI0I,EACJ,IACIA,SAAgB1I,GAAS,YAAc,IAAIutC,KAAKC,eAAe,QAAS,CAAEE,SAAU1tC,GAIhG,CAFQ,MAAOmI,GACHO,EAAS,KACrB,CACQ,OAAOA,CACf,CACI87C,EAAStrC,GAAKA,CACjB,EAZD,CAYGsrC,KAAaA,GAAW,KCbpB,IAAIC,IACX,SAAWA,GACP,SAASC,EAAWrX,GAChB,IAAI3kC,EACJ,OAAQ2kC,GACJ,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACD3kC,EAAS,aACT,MACJ,IAAK,QACDA,EAAS,aACT,MACJ,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACDA,EAAS,aACT,MACJ,IAAK,QACL,IAAK,QACDA,EAAS,aACT,MACJ,QACIA,EAAS,aACT,MAER,OAAOA,CACf,CACI+7C,EAAWC,WAAaA,EACxB,SAAStB,EAAS3lC,GACd,IAAI/U,EACJ,OAAQ+U,GACJ,IAAK,aACD/U,EAAS,QACT,MACJ,IAAK,aACDA,EAAS,QACT,MACJ,IAAK,aACDA,EAAS,QACT,MACJ,QACIA,EAAS,QACT,MAER,OAAOA,CACf,CACI+7C,EAAWrB,SAAWA,EACtB,SAASlqC,EAAGlZ,GACR,cAAeA,GAAS,WACnBA,GAAS,cAAgBA,GAAS,cAAgBA,GAAS,cAAgBA,GAAS,aACjG,CACIykD,EAAWvrC,GAAKA,CACnB,EA5DD,CA4DGurC,KAAeA,GAAa,KC3DxB,MAAME,GACTj2C,YAAYk2C,GACR/kD,KAAK+kD,UAAYA,CACzB,CACI3nC,SAASwB,GACL,OAAOA,EAAUpC,OAAOxc,KAAK+kD,UACrC,CACIC,WAAW5uC,EAAKJ,EAAOsB,GACnB,OAAQ,IAAIpB,KAAK4I,OAAOvQ,SAAS+I,GAAQ,QAASwH,OAAOvQ,SAASyH,GAAQ,GAAGa,WACzEiI,OAAOvQ,SAAS6H,EAC5B,EAEA,MAAMiI,GAAW,GACV,SAAS4mC,GAASrnC,EAAQlH,GAC7B2H,GAAST,GAAUlH,CACvB,CACA7M,GAAI,QAASq7C,IACT,MAAMhsC,EAAWgsC,GAAcA,EAAWhjD,OAAS,EAAIgjD,EAAW,GAAKxkD,UACvE,MAAMkd,EAASgnC,GAAWvrC,GAAGH,GAAYA,EAAW0rC,GAAWC,WAAW3rC,GAC1E,MAAMxC,EAAS2H,GAAST,IAAWS,GAAS,cAC5C,OAAO3H,GAAQ,ICpBnB,MAAMgI,WAAgBomC,GAClBj2C,YAAYk2C,GACRI,MAAMJ,EACd,CACI//C,SAASsZ,GACL,OAAOA,GAAMpc,QAAU,GACjB,CAACoc,EAAKhS,UAAU,EAAG,IAAKgS,EAAKhS,UAAU,EAAG,GAAIgS,EAAKhS,UAAU,EAAG,IAAItB,KAAKhL,KAAK+kD,WAC9E,EACd,CACItmC,WAAWte,GACP,MAAM0I,EAAS1I,GAAO+B,QAAU,EAAI,GAAG/B,EAAMmM,UAAU,EAAG,MAAMnM,EAAMmM,UAAU,EAAG,MAAMnM,EAAMmM,UAAU,EAAG,KAAO5L,UACnH,OAAO+V,GAAW4C,GAAGxQ,GAAUA,EAASnI,SAChD,CACIkd,OAAOe,GACH,IAAI9V,EAAS8V,EACb,GAAI9V,EAAOgT,IAAI,EAAG,GAAK,IACnBhT,EAASA,EAAOwT,OAAO,EAAG,KAC9B,GAAIxT,EAAO1I,MAAM+B,OAAS,EACtB2G,EAASA,EAAOwT,OAAO,EAAGrc,KAAK+kD,WACnC,GAAIl8C,EAAOgT,IAAI,EAAG,GAAK,IACnBhT,EAASA,EAAOwT,OAAO,EAAG,KAC9B,GAAIxT,EAAO1I,MAAM+B,OAAS,EACtB2G,EAASA,EAAOwT,OAAO,EAAGrc,KAAK+kD,WACnC,MAAO,IACAl8C,EACHtC,KAAM,OACNrE,OAAQ,CAAC,EAAG,IACZmG,QAAS,IAAI0C,OAAO,CAAC,4BAA6B,kBAAmB,WAAWC,KAAKhL,KAAK+kD,YAEtG,CACIpnC,QAAQkB,EAAQja,GACZ,OAAOA,EAAM4W,UAAUpQ,OAAS,GAAKxG,EAAMzE,MAAM,IAAM,IACjD0e,GAAU,KAAOA,GAAU,IAC3Bja,EAAM4W,UAAUpQ,OAAS,GAAKxG,EAAMzE,MAAM,IAAM,IAC5C0e,GAAU,KAAOA,GAAU,IAC3Bja,EAAM4W,UAAUpQ,OAAS,EACrByT,GAAU,KACRA,GAAU,MACTA,GAAU,KAAOA,GAAU,KAAO7e,KAAKglD,WAAWpgD,EAAMzE,MAAMmM,UAAU,EAAG,GAAIuS,IAClFja,EAAM4W,UAAUpQ,OAAS,EACrByT,GAAU,KAAOA,GAAU,KAAO7e,KAAKglD,WAAWpgD,EAAMzE,MAAMmM,UAAU,EAAG,GAAI1H,EAAMzE,MAAM,GAAK0e,GAChGja,EAAM4W,UAAUpQ,OAAS,EACrByT,GAAU,KACRA,GAAU,KACV7e,KAAKglD,WAAWpgD,EAAMzE,MAAMmM,UAAU,EAAG,GAAI1H,EAAMzE,MAAMmM,UAAU,EAAG,GAAI1H,EAAMzE,MAAMmM,UAAU,EAAG,GAAKuS,GAC1Gja,EAAM4W,UAAUpQ,MAAQ,GAAKyT,GAAU,KAAOA,GAAU,GACtF,EAEAomC,GAAS,cAAc,IAAM,IAAIvmC,GAAQ,OACzCumC,GAAS,cAAc,IAAM,IAAIvmC,GAAQ,OACzCumC,GAAS,cAAc,IAAM,IAAIvmC,GAAQ,OClDzC,MAAMA,WAAgBomC,GAClBj2C,YAAYk2C,GACRI,MAAMJ,EACd,CACI//C,SAASsZ,GACL,OAAOA,GAAMpc,QAAU,GACjB,CAACoc,EAAKhS,UAAU,EAAG,GAAIgS,EAAKhS,UAAU,EAAG,IAAKgS,EAAKhS,UAAU,EAAG,IAAItB,KAAKhL,KAAK+kD,WAC9E,EACd,CACItmC,WAAWte,GACP,MAAM0I,EAAS1I,EAAM+B,QAAU,EAAI,GAAG/B,EAAMmM,UAAU,EAAG,MAAMnM,EAAMmM,UAAU,EAAG,MAAMnM,EAAMmM,UAAU,EAAG,KAAO5L,UAClH,OAAO+V,GAAW4C,GAAGxQ,GAAUA,EAASnI,SAChD,CACIkd,OAAOe,GACH,IAAI9V,EAAS8V,EACb,GAAI9V,EAAOgT,IAAI,EAAG,GAAK,IACnBhT,EAASA,EAAOwT,OAAO,EAAG,KAC9B,GAAIxT,EAAO1I,MAAM+B,OAAS,EACtB2G,EAASA,EAAOwT,OAAO,EAAGrc,KAAK+kD,WACnC,GAAIl8C,EAAOgT,IAAI,EAAG,IAAMhT,EAAOgT,IAAI,EAAG,IAAM,KAAO,IAAM,KACrDhT,EAASA,EAAOwT,OAAO,EAAG,KAC9B,GAAIxT,EAAO1I,MAAM+B,OAAS,EACtB2G,EAASA,EAAOwT,OAAO,EAAGrc,KAAK+kD,WACnC,MAAO,IACAl8C,EACHtC,KAAM,OACNrE,OAAQ,CAAC,EAAG,IACZmG,QAAS,IAAI0C,OAAO,CAAC,mBAAoB,2BAA4B,WAAWC,KAAKhL,KAAK+kD,YAEtG,CACIpnC,QAAQkB,EAAQja,GACZ,MAAMiE,EAASjE,EAAM4W,UAAUpQ,OAAS,GAAKxG,EAAMzE,MAAM,IAAM,IACzD0e,GAAU,KAAOA,GAAU,IAC3Bja,EAAM4W,UAAUpQ,OAAS,GAAKxG,EAAMzE,MAAM,IAAM,IAC5C0e,GAAU,KAAOA,GAAU,IAC3Bja,EAAM4W,UAAUpQ,OAAS,EACrByT,GAAU,KAAOA,GAAU,KAAO7e,KAAKglD,WAAWpgD,EAAMzE,MAAM,GAAK0e,EAAQja,EAAMzE,MAAMmM,UAAU,EAAG,IACpG1H,EAAM4W,UAAUpQ,OAAS,EACrByT,GAAU,KACRA,GAAU,KACV7e,KAAKglD,WAAWpgD,EAAMzE,MAAMmM,UAAU,EAAG,GAAI1H,EAAMzE,MAAMmM,UAAU,EAAG,GAAI1H,EAAMzE,MAAMmM,UAAU,EAAG,GAAKuS,GAC1Gja,EAAM4W,UAAUpQ,MAAQ,GAAKyT,GAAU,KAAOA,GAAU,IAC1E,OAAOhW,CACf,EAEAo8C,GAAS,cAAc,IAAM,IAAIvmC,GAAQ,OC7CzC,MAAMA,WAAgBomC,GAClBj2C,YAAYk2C,GACRI,MAAMJ,EACd,CACI//C,SAASsZ,GACL,cAAcA,GAAQ,SAAW,GAAKA,CAC9C,CACIG,WAAWte,GACP,MAAM0I,EAAS1I,GAAO+B,QAAU,EAAI,GAAG/B,EAAMmM,UAAU,EAAG,MAAMnM,EAAMmM,UAAU,EAAG,MAAMnM,EAAMmM,UAAU,EAAG,KAAO5L,UACnH,OAAO+V,GAAW4C,GAAGxQ,GAAUA,EAASnI,SAChD,CACI0kD,YAAYjlD,GACR,MAAMwW,EAAe,GAAGxW,EAAMmM,UAAU,EAAG,MAAMnM,EAAMmM,UAAU,EAAG,QACpE,OAAOmK,GAAW4C,GAAG1C,IACdF,GAAW+3B,YAAY,GAAGruC,EAAMmM,UAAU,EAAG,MAAMnM,EAAMmM,UAAU,EAAG,SAASA,UAAU,EAAG,IAC7F,EACd,CACIsR,OAAOe,GACH,IAAI9V,EAAS8V,EACb,GAAI9V,EAAO1I,MAAM+B,OAAS,EAAG,CACzB2G,EAASA,EAAOwT,OAAO,EAAGrc,KAAK+kD,WAC/B,GAAIl8C,EAAOgT,IAAI,EAAG,GAAK,IACnBhT,EAASA,EAAOwT,OAAO,EAAG,KAC9B,GAAIxT,EAAO1I,MAAM+B,OAAS,EAAG,CACzB2G,EAASA,EAAOwT,OAAO,EAAGrc,KAAK+kD,WAC/B,GAAIl8C,EAAOgT,IAAI,EAAG,GAAK7b,KAAKolD,YAAYzmC,EAAYxe,OAAO6E,WAAWsH,UAAU,EAAG,GAC/EzD,EAASA,EAAOwT,OAAO,EAAG,IAC9C,CACA,CACQ,MAAO,IACAxT,EACHtC,KAAM,OACNrE,OAAQ,CAAC,EAAG,IACZmG,QAAS,IAAI0C,OAAO,CAAC,UAAW,kBAAmB,6BAA6BC,KAAKhL,KAAK+kD,YAEtG,CACIpnC,QAAQkB,EAAQja,GACZ,MAAMwgD,EAAcplD,KAAKolD,YAAYxgD,EAAMzE,OAC3C,OAAOyE,EAAM4W,UAAUpQ,OAAS,GAAKxG,EAAMzE,MAAM,IAAM,IACjD0e,GAAU,KAAOA,GAAU,IAC3Bja,EAAM4W,UAAUpQ,OAAS,GAAKxG,EAAMzE,MAAM,IAAM,IAC5C0e,GAAU,KAAOA,GAAU,IAC3Bja,EAAM4W,UAAUpQ,OAAS,GAAKxG,EAAMzE,MAAM,IAAM,IAC5C0e,GAAU,KAAOA,GAAU,IAC3Bja,EAAM4W,UAAUpQ,OAAS,IAAOxG,EAAMzE,MAAM,IAAM,KAAOilD,EAAc,IAAOxgD,EAAMzE,MAAM,IAAM,KAC5F0e,GAAU,KAAOA,GAAUumC,EAAYpgD,WAAWsH,UAAU,GAC5D1H,EAAM4W,UAAUpQ,MAAQ,GAAKyT,GAAU,KAAOA,GAAU,GAClF,EAEAomC,GAAS,cAAc,IAAM,IAAIvmC,GAAQ,OCjDzC,MAAMA,GACF1Z,SAASsZ,GACL,cAAcA,GAAQ,SAAWA,EAAO,EAChD,CACIG,WAAWte,GACP,IAAI0I,EAAS1I,EAAM+J,QAAQ,IAAK,KAChC,MAAMm7C,EAAa,2BACnB,GAAIx8C,GAAQoK,MAAM,QACdpK,EAASA,EAAOyD,UAAU,EAAGzD,EAAO3G,OAAS,GAAK,IAAM2G,EAAOyD,UAAUzD,EAAO3G,OAAS,EAAG2G,EAAO3G,QACvG2G,GAAUA,EAAOoK,MAAM,0BACjBvS,UACAmI,EAASw8C,EAAW/4C,UAAUzD,EAAO3G,OAAQmjD,EAAWnjD,QAC9D,OAAOojD,GAAejsC,GAAGxQ,GAAUA,EAASnI,SACpD,CACIkd,OAAOe,GACH,IAAI9V,EAAS08C,GAAW5mC,GACxB,GAAI9V,EAAOoK,MAAM,2DACbpK,EAASA,EAAOwT,OAAO,GAAI,KAC/B,GAAIxT,EAAOoK,MAAM,sDACbpK,EAASA,EAAOqB,QAAQ,GAAI,GAAI,OACpC,GAAIrB,EAAOoK,MAAM,yDACbpK,EAASA,EAAOwT,OAAO,GAAI,OAC/B,GAAIxT,EAAOoK,MAAM,0DACbpK,EAASA,EAAOwT,OAAO,GAAI,QAC/B,GAAIxT,EAAOoK,MAAM,uDACbpK,EAASA,EAAOqB,QAAQ,GAAI,GAAI,OACpC,GAAIrB,EAAOoK,MAAM,uDACbpK,EAASA,EAAOwT,OAAO,GAAI,MAC/B,GAAIxT,EAAOoK,MAAM,2DACbpK,EAASA,EAAOwT,OAAO,GAAI,OAAOC,OAAO,KAC7C,GAAIzT,EAAOoK,MAAM,6EACbpK,EAASA,EAAOwT,OAAO,GAAI,KAC/B,GAAIxT,EAAOoK,MAAM,2EACbpK,EAASA,EAAOwT,OAAO,GAAI,KAC/B,GAAIxT,EAAOoK,MAAM,+EACbpK,EAASA,EAAOwT,OAAO,GAAI,KAC/B,GAAIxT,EAAOoK,MAAM,mFACbpK,EAASA,EAAOwT,OAAO,GAAI,KAC/B,MAAO,IACAxT,EACHtC,KAAM,OACNrE,OAAQ,CAAC,EAAG,IACZmG,QAAS,iFAErB,CACI+U,SAASwB,GACL,OAAOA,CACf,CACIjB,QAAQkB,EAAQja,GACZ,OAAQA,EAAMzE,MAAM+B,OAAS,KACvB2c,GAAU,KAAOA,GAAU,KAAQA,GAAU,KAAOA,GAAU,KAAOA,GAAU,KAAOA,GAAU,IAC9G,EAEAhV,GAAI,aAAa,IAAM,IAAI6U,KACpB,SAAS6mC,GAAW5mC,EAAaf,GACpC,IAAI/U,EAAS8V,EACb,OAAQf,GACJ,IAAK,aACL,IAAK,aACD,IAAK4nC,GAAU38C,EAAO1I,MAAOyd,GACzB/U,EAASA,EAAOqB,QAAQ,EAAG,GAAIs7C,GAAU,KAAO38C,EAAO1I,MAAMmM,UAAU,EAAG,IAAKsR,GACzE,KAAO/U,EAAO1I,MAAMmM,UAAU,EAAG,IACjCk5C,GAAU,KAAO38C,EAAO1I,MAAMmM,UAAU,EAAG,IAAKsR,GAC5C,KAAO/U,EAAO1I,MAAMmM,UAAU,EAAG,IACjCk5C,GAAU,KAAO38C,EAAO1I,MAAMmM,UAAU,EAAG,IAAKsR,GAC5C,KAAO/U,EAAO1I,MAAMmM,UAAU,EAAG,IACjCk5C,GAAU,KAAO38C,EAAO1I,MAAMmM,UAAU,EAAG,IAAKsR,GAC5C,KAAO/U,EAAO1I,MAAMmM,UAAU,EAAG,IACjCzD,EAAO1I,OAC7B,MACJ,IAAK,aACD,IAAKqlD,GAAU38C,EAAO1I,MAAOyd,GACzB/U,EAASA,EAAOqB,QAAQ,EAAG,GAAIs7C,GAAU38C,EAAO1I,MAAMmM,UAAU,EAAG,GAAK,KAAOzD,EAAO1I,MAAMmM,UAAU,EAAG,IAAKsR,GACxG/U,EAAO1I,MAAMmM,UAAU,EAAG,GAAK,KAAOzD,EAAO1I,MAAMmM,UAAU,EAAG,IAChEk5C,GAAU38C,EAAO1I,MAAMmM,UAAU,EAAG,GAAK,KAAOzD,EAAO1I,MAAMmM,UAAU,EAAG,IAAKsR,GAC3E/U,EAAO1I,MAAMmM,UAAU,EAAG,GAAK,KAAOzD,EAAO1I,MAAMmM,UAAU,EAAG,IAChEk5C,GAAU38C,EAAO1I,MAAMmM,UAAU,EAAG,GAAK,KAAOzD,EAAO1I,MAAMmM,UAAU,EAAG,IAAKsR,GAC3E/U,EAAO1I,MAAMmM,UAAU,EAAG,GAAK,KAAOzD,EAAO1I,MAAMmM,UAAU,EAAG,IAChEk5C,GAAU38C,EAAO1I,MAAMmM,UAAU,EAAG,GAAK,KAAOzD,EAAO1I,MAAMmM,UAAU,EAAG,IAAKsR,GAC3E/U,EAAO1I,MAAMmM,UAAU,EAAG,GAAK,KAAOzD,EAAO1I,MAAMmM,UAAU,EAAG,IAChEzD,EAAO1I,OAC7B,MACJ,QACI,GAAIwe,EAAYxe,MAAM+B,QAAU,GAAI,CAChC,IAAKsjD,GAAU38C,EAAO1I,OAAQ,CAC1B0I,EAASA,EAAOqB,QAAQ,EAAG,GAAIs7C,GAAU38C,EAAO1I,MAAMmM,UAAU,EAAG,GAAK,MAClEzD,EAAO1I,MAAMmM,UAAU,EAAG,GAAK,KAC/Bk5C,GAAU38C,EAAO1I,MAAMmM,UAAU,EAAG,GAAK,MACrCzD,EAAO1I,MAAMmM,UAAU,EAAG,GAAK,KAC/Bk5C,GAAU38C,EAAO1I,MAAMmM,UAAU,EAAG,GAAK,MACrCzD,EAAO1I,MAAMmM,UAAU,EAAG,GAAK,KAC/Bk5C,GAAU38C,EAAO1I,MAAMmM,UAAU,EAAG,GAAK,MACrCzD,EAAO1I,MAAMmM,UAAU,EAAG,GAAK,KAC/BzD,EAAO1I,OACzB,KACpB,CACgB,OAAOwe,CACvB,EAEI,OAAO9V,CACX,CACA,SAAS28C,GAAUvvC,EAAM2H,GACrB,IAAItG,EACJ,IAAItB,EACJ,IAAII,EACJ,OAAQwH,GACJ,IAAK,aACL,IAAK,aACDtG,EAAO/I,SAAS0H,EAAK3J,UAAU,EAAG,KAClC0J,EAAQzH,SAAS0H,EAAK3J,UAAU,EAAG,IACnC8J,EAAM7H,SAAS0H,EAAK3J,UAAU,EAAG,IACjC,OAAOgL,GAAQtB,GAASI,EAAMA,EAAM,GAAKqvC,GAAanuC,EAAMtB,IAAUI,EAAM,MAChF,IAAK,aACDkB,EAAO/I,SAAS0H,EAAK3J,UAAU,EAAG,KAClC0J,EAAQzH,SAAS0H,EAAK3J,UAAU,EAAG,IACnC8J,EAAM7H,SAAS0H,EAAK3J,UAAU,EAAG,IACjC,OAAOgL,GAAQtB,GAASI,EAAMA,EAAM,GAAKqvC,GAAanuC,EAAMtB,IAAUI,EAAM,MAChF,QACIkB,EAAO/I,SAAS0H,EAAK3J,UAAU,EAAG,IAClC0J,EAAQzH,SAAS0H,EAAK3J,UAAU,EAAG,IACnC8J,EAAM7H,SAAS0H,EAAK3J,UAAU,EAAG,KACjC,OAAOgL,GAAQtB,GAASI,EAAMA,EAAM,GAAKqvC,GAAanuC,EAAMtB,IAAUI,EAAM,MAExF,CACA,SAASqvC,GAAanuC,EAAMtB,GACxB,IAAInN,EACJ,OAAQmN,GACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GACL,KAAK,GACL,QACInN,EAAS,GACT,MACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GACDA,EAAS,GACT,MACJ,KAAK,EACDA,EAAS,GACT,MAER,OAAOA,CACX,CCrJA,MAAM6V,GACF1Z,SAASsZ,GACL,OAAOnb,MAAMC,QAAQkb,IAASA,EAAKpc,QAAU,UAAYoc,EAAK,IAAM,iBAAmBA,EAAK,IAAM,SAC5FA,EAAK,GAAGtZ,WAAa,MAAQsZ,EAAK,GAAGtZ,kBAC9BsZ,GAAQ,SACXA,EAAKtZ,WACL,EAClB,CACIyZ,WAAWte,GACP,cAAcA,GAAS,UAAYA,EAAM8S,MAAM,4BACzC,CAAC6L,OAAOvQ,SAASpO,EAAMgc,MAAM,EAAG,IAAK2C,OAAOvQ,SAASpO,EAAMgc,MAAMhc,EAAM+B,OAAS,YACzE/B,GAAS,UAAYA,EAAM8S,MAAM,WACpC6L,OAAOvQ,SAASpO,GAChBO,SAClB,CACIkd,OAAOe,GACH,IAAI9V,EAAS8V,EACb,GAAIA,EAAY1L,MAAM,UAClBpK,EAAS8V,EAAYzU,QAAQ,EAAG,EAAG,YAClC,GAAIyU,EAAY1L,MAAM,eACvBpK,EAAS8V,EAAYzU,QAAQyU,EAAYxe,MAAM+B,OAAS,EAAGyc,EAAYxe,MAAM+B,OAAQ,YACpF,GAAIyc,EAAY1L,MAAM,oBACvBpK,EAAS8V,EAAYnC,OAAO,EAAGmC,EAAYxe,MAAM+B,aAChD,GAAIyc,EAAY1L,MAAM,sBACvBpK,EAAS8V,EAAYnC,OAAO,EAAGmC,EAAYxe,MAAM+B,OAAS,QACzD,GAAIyc,EAAY1L,MAAM,wBACvBpK,EAAS8V,EAAYnC,OAAO,EAAGmC,EAAYxe,MAAM+B,OAAS,QACzD,GAAIyc,EAAY1L,MAAM,aACvBpK,EAAS8V,EAAYnC,OAAO,EAAGmC,EAAYxe,MAAM8M,OAAO,KAAO,QAC9D,GAAI0R,EAAY1L,MAAM,YACvBpK,EAAS8V,EAAYzU,QAAQ,EAAG,EAAG,YAClC,GAAIyU,EAAY1L,MAAM,eACvBpK,EAAS8V,EAAYnC,OAAO,EAAGmC,EAAYxe,MAAM+B,aAChD,GAAIyc,EAAY1L,MAAM,aACvBpK,EAAS8V,EAAYnC,OAAO,EAAGmC,EAAYxe,MAAM+B,aAChD,GAAIyc,EAAY1L,MAAM,oBACvBpK,EAAS8V,EAAYzU,QAAQ,EAAGyU,EAAYxe,MAAM+B,OAAQ,YACzD,GAAIyc,EAAY1L,MAAM,qBACvBpK,EAAS8V,EAAYzU,QAAQ,EAAGyU,EAAYxe,MAAM+B,OAAQ,YACzD,GAAIyc,EAAY1L,MAAM,oBACvBpK,EAAS8V,EAAYnC,OAAO,EAAGmC,EAAYxe,MAAM+B,aAChD,GAAIyc,EAAYxe,MAAM+B,OAAS,GAAKyc,EAAYxe,MAAMkB,QAAQ,KAAO,EACtEwH,EAAS8V,EAAYtC,OAAO,EAAG,YAC9B,GAAIsC,EAAYxe,MAAM+B,OAAS,GAAKyc,EAAYxe,MAAMghC,MAAM,KAAKj/B,OAAS,EAC3E2G,EAAS8V,EAAYnC,OAAOmC,EAAYxe,MAAMwR,YAAY,WACzD,GAAIgN,EAAYxe,MAAM+B,QAAU,IAAMyc,EAAY3C,QAAQ,GAC3DnT,EAAS8V,EAAYnC,OAAO,GAChC,MAAO,IAAK3T,EAAQtC,KAAM,OAAQrE,OAAQ,CAAC,EAAG,GAAImG,QAAS,iCACnE,CACI+U,SAASwB,GACL,OAAOA,CACf,CACIjB,QAAQkB,EAAQja,GACZ,OAAOA,EAAMzE,MAAM+B,OAAS,IAAO2c,GAAU,KAAOA,GAAU,KAAQA,GAAU,KAAOA,GAAU,IACzG,EAEAhV,GAAI,WAAW,IAAM,IAAI6U,KCxDzB,MAAMA,GACF7P,cACI7O,KAAKqI,QAAU,4DACvB,CACIrD,SAASsZ,GACL,MAAO,GAAGA,GAAM8zB,OAAOptC,SAAS,KAAO,OAAOsZ,GAAMg0B,SAASttC,SAAS,IAAI4X,SAAS,EAAG,MAAQ,MACtG,CACI6B,WAAWte,GACP,IAAI0I,EACJ,IAAK7I,KAAK0lD,QAAS,CACf,MAAMC,EAAWxlD,EAAMghC,MAAM,IAAK,GAAG99B,KAAIlD,GAAS2e,OAAOvQ,SAASpO,KAClE0I,EAAS88C,EACH,CACEvT,OAAQuT,EAAS,KAAO7mC,OAAO8mC,SAASD,EAAS,IAAM,EAAIA,EAAS,GACpErT,SAAUqT,EAAS,KAAO7mC,OAAO8mC,SAASD,EAAS,IAAM,EAAIA,EAAS,IAExEjlD,SAClB,MACa,GAAIV,KAAK0lD,QAAS,CACnB,MAAMG,EAAiB1lD,EAAMghC,MAAM,OAAQ,GAC3C,GAAI0kB,EACAA,EAAe,GAAKA,EAAe,GAAG3jD,QAAU,EAAI2jD,EAAe,GAAK,IAAMA,EAAe,GACjG,MAAMF,EAAWE,EAAiBA,EAAexiD,KAAIlD,GAAS2e,OAAOvQ,SAASpO,KAAUO,UACxFmI,EAAS88C,EACH,CACEvT,OAAQuT,EAAS,KAAO7mC,OAAO8mC,SAASD,EAAS,IAAM,EAAIA,EAAS,GACpErT,SAAUqT,EAAS,MAAQ,GAAKA,EAAS,IAAMA,EAAS,GAAK,KACvD,IACIA,EAAS,GAAK,IAAO,GAAM,GAAG/V,QAAQ,IAElDlvC,SAClB,CACQ,OAAOmI,CACf,CACI+U,OAAOe,GACH,IAAI9V,EAAS8V,EACb,GAAI9V,EAAO1I,MAAM8S,MAAM,UACnBpK,EAASA,EAAO0T,QAAQ,KAC5B,MAAO,IAAK1T,EAAQtC,KAAM,MAAO8B,QAASrI,KAAKqI,QACvD,CACI+U,SAASwB,GACL,GAAIA,EAAUze,MAAMyN,SAAS,MAAQgR,EAAUze,MAAMyN,SAAS,KAC1D5N,KAAK0lD,QAAU,UAEf1lD,KAAK0lD,QAAU,MACnB,OAAO9mC,CACf,CACIjB,QAAQkB,EAAQja,GACZ,MAAMkhD,EAAYlhD,EAAMzE,MAAMgc,MAAM,EAAGvX,EAAM4W,UAAUpQ,OAASyT,EAASja,EAAMzE,MAAMgc,MAAMvX,EAAM4W,UAAUnQ,KAC3G,QAASy6C,EAAU7yC,MAAMjT,KAAKqI,QACtC,EAEAwB,GAAI,YAAY,IAAM,IAAI6U,KCpD1B,MAAMA,GACF7P,YAAYwR,GACRrgB,KAAKqgB,QAAUA,CACvB,CACIrb,SAASsZ,GACL,cAAcA,GAAQ,SAAWA,EAAO,EAChD,CACIG,WAAWte,GACP,cAAcA,GAAS,SAAWA,EAAQO,SAClD,CACIkd,OAAOe,GACH,IAAI9V,EAAS8V,EACb,MAAMrH,GAAO,IAAIpB,MAAOkB,cAAcpS,WACtC,GAAI2Z,EAAYxe,MAAM+B,OAAS,GAAKyc,EAAY9C,IAAI,EAAG,IAAM,MAAQ8C,EAAY9C,IAAI,EAAG,IAAM,KAC1FhT,EAASA,EAAO0T,QAAQoC,EAAY9C,IAAI,EAAG,GAAKvE,EAAKnP,OAAO,EAAG,GAAK,KAAO,MAC/E,GAAIU,EAAO1I,MAAM+B,QAAU,EACvB2G,EAASA,EAAOwT,OAAO,EAAG,KAC9B,MAAO,IACAxT,EAAO4T,SAAS,IACnBlW,KAAM,OACNrE,OAAQ,CAAC,GAAI,IACbmG,QAAS,kBAErB,CACI+U,SAASwB,GACL,OAAOA,EAAUpC,OAAO,IAChC,CACImB,QAAQkB,EAAQja,GACZ,OAAOA,EAAMzE,MAAM+B,OAAS,IAAM2c,GAAU,KAAOA,GAAU,GACrE,EAEAhV,GAAI,mBAAoBqP,GAAa,IAAIwF,GAAQxF,GAAYA,EAAShX,OAAS,EAAIgX,EAAS,GAAKxY,aC/BjG,MAAMge,GACF1Z,SAASsZ,GACL,cAAcA,GAAQ,SAAWA,EAAO,EAChD,CACIG,WAAWte,GACP,cAAcA,GAAS,SAAWA,EAAQO,SAClD,CACIkd,OAAOe,GACH,MAAO,IAAKA,EAAapY,KAAM,WAAY8W,aAAc,mBACjE,CACID,SAASwB,GACL,OAAOA,CACf,CACIjB,QAAQkB,EAAQja,GACZ,OAAO,IACf,EAEAiF,GAAI,YAAY,IAAM,IAAI6U,KCjB1B,MAAMA,GACF1Z,SAASsZ,GACL,OAAOA,UAAeA,GAAQ,UAAYA,EAAO,KAAKtZ,WAAa,EAC3E,CACIyZ,WAAWte,GACP,cAAcA,GAAS,WAAa2e,OAAOinC,WAAW5lD,GAASO,UAAYoe,OAAOinC,WAAW5lD,GAAS,GAC9G,CACIyd,OAAOe,GACH,MAAO,IACCA,EAAYxe,MAAQwe,EAAY7U,OAAO,MAAQ6U,EACnDpY,KAAM,OACNrE,OAAQ,CAAC,EAAGxB,WACZ2H,QAAS,iBAErB,CACI+U,SAASwB,GACL,OAAOA,EAAUpC,OAAO,KAChC,CACImB,QAAQkB,EAAQja,GACZ,OAAQia,GAAU,KAAOA,GAAU,KAASA,GAAU,MAAQja,EAAMzE,MAAMyN,SAAS,IAC3F,EAEA/D,GAAI,WAAW,IAAM,IAAI6U,KCvBlB,MAAMsnC,GAAc,CACvB,CACIC,YAAa,MACbC,UAAW,CACP,MACA,OACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,KACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,SCnSZ,MAAMxnC,GACF1Z,SAASsZ,GACL,cAAcA,GAAQ,SAAWA,EAAO,EAChD,CACIG,WAAWte,GACP,cAAcA,GAAS,SAAWA,EAAQO,SAClD,CACIkd,OAAOe,GACH,IAAI9V,EAAS8V,EACb,GAAI9V,EAAO1I,MAAMkM,WAAW,KAAM,CAC9B,IAAK,MAAMgU,KAAW2lC,GAClB,GAAIn9C,EAAO1I,MAAMkM,WAAWgU,EAAQ4lC,aAChC,IAAK,IAAIv8C,KAAU2W,EAAQ6lC,UAAW,CAClCx8C,EAASA,EAAO4C,UAAU,GAC1B,GAAIzD,EAAO1I,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aACA,kBACA,WACA,YACA,KACA,SACA,YACA,UACA,UACA,YACA,UACA,WACA,aACA,SACA,mBACA,eACA,eACA,eACA,SACA,MACA,OACA,UACA,YACA,OACA,OACA,UACA,YACA,WACA,OACA,YACA,WACA,QACA,MACA,QACA,OACA,WACA,MACA,OACA,aACA,WACA,OACA,iBACA,SACA,OACA,oBACA,aACA,oBACA,aACA,uBACA,gBACA,kBACA,WACA,YACA,MACA,OACA,OACA,WACA,mBACA,UACA,sBACA,cACA,aACA,WACA,mBACA,wBACA,iBACA,YACA,sBACA,eACA,sBACA,eACA,yBACA,kBACA,oBACA,aACA,YACA,eACA,QACA,eACA,aACA,iBACA,gBACA,QACA,eACA,eACA,SACA,gBACA,aACA,OACA,eACA,MACA,aACA,eACA,gBACA,aACA,UACA,YACA,WACA,WACA,OACA,SACA,OACA,OACA,MACA,UACA,OACA,kBACA,YACA,WACA,gBACA,WACA,YACA,MACA,QACA,QACA,MACA,UACA,6BACA,sBACA,2BACA,oBACA,QACA,OACA,SACA,UACA,UACA,MACA,YACA,SACA,iBACA,oBACA,YACA,OACA,SACA,eACA,UACA,OACA,QACA,aACA,YACA,QACA,QACA,SACA,cACA,SACA,WACA,SACA,kBACA,OACA,aACA,aACA,cACA,YACA,cACA,mBACA,UACA,QACA,OACA,OACA,SACA,YACA,aACA,QACA,gBACA,UACA,eACA,uBACA,gBACA,aACA,QACA,YACA,cACA,OACA,OACA,YACA,YACA,SACA,QACA,WACA,qBACA,cACA,UACA,SACA,MACA,WACA,SACA,SACA,OACA,UACA,OACA,cACA,OACA,SACA,WACA,cACA,YACA,SACA,cACA,eACA,eACA,eACA,sBACA,aACA,eACA,iBACA,eACA,cACA,iBACA,cACA,yBACA,eACA,YACA,oBACA,cACA,gBACA,eACA,YACA,gBACA,YACA,gBACA,gBACA,eACA,cACA,kBACA,cACA,cACA,wBACA,cACA,kBACA,aACA,iBACA,aACA,gBACA,kBACA,eACA,gBACA,gBACA,cACA,cACA,kBACA,WACA,eACA,cACA,iBACA,mBACA,WACA,cACA,aACA,cACA,WACA,YACA,aACA,aACA,gBACA,kBACA,qBACA,aACA,eACA,cACA,cACA,WACA,cACA,eACA,WACA,UACA,qBACA,aACA,gBACA,aACA,eACA,UACA,iBACA,WACA,YACA,YACA,aACA,WACA,eACA,SACA,YACA,OACA,cACA,cACA,OACA,MACA,MACA,QACA,UACA,SACA,YACA,OACA,aACA,iBACA,UACA,MACA,OACA,OACA,gBACA,eACA,kBACA,WACA,YACA,uBACA,2BACA,oBACA,gBACA,UACA,YACA,OACA,UACA,cACA,eACA,eACA,QACA,MACA,SACA,gBACA,SACA,aACA,gBACA,gBACA,SACA,kBACA,iBACA,YACA,MACA,OACA,QACA,SACA,mBACA,YACA,cACA,sBACA,eACA,wBACA,iBACA,2BACA,oBACA,OACA,SACA,QACA,YACA,WACA,QACA,QACA,OACA,UACA,mBACA,kBACA,QACA,QACA,SACA,UACA,YACA,iBACA,UACA,gBACA,SACA,gBACA,SACA,eACA,gBACA,cACA,SACA,SACA,aACA,mBACA,sBACA,iBACA,oBACA,SACA,SACA,OACA,MACA,OACA,cACA,OACA,SACA,gBACA,SACA,OACA,SACA,WACA,SACA,eACA,QACA,mBACA,SACA,QACA,UACA,QACA,OACA,cACA,SACA,YACA,OACA,cACA,cACA,OACA,YACA,SACA,QACA,kBACA,gBACA,cACA,OACA,mBACA,kBACA,aACA,WACA,OACA,cACA,cACA,YACA,eACA,QACA,OACA,QACA,SACA,aACA,QACA,cACA,YACA,QACA,gBACA,cACA,WACA,SACA,KACA,WACA,OACA,SACA,UACA,QACA,QACA,WACA,OACA,OACA,cACA,aACA,gBACA,cACA,aACA,SAEC2a,MAAMnc,KAAKmpE,KAAO,IAAK,KACvB9lE,KAAI5C,GACJe,EAAA,iBAAef,KAAMA,EAAc+F,QAAS/F,O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"}
|