smoothly 1.0.0-alpha.99 → 1.0.0
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/Data-50d47740.js +589 -0
- package/dist/cjs/Data-50d47740.js.map +1 -0
- package/dist/cjs/Observers-6450f075.js +25 -0
- package/dist/cjs/Observers-6450f075.js.map +1 -0
- package/dist/cjs/TimeZone-016ac7b0.js +6181 -0
- package/dist/cjs/TimeZone-016ac7b0.js.map +1 -0
- package/dist/cjs/{getLanguage-7e53766b.js → getLanguage-49a534df.js} +1 -5993
- package/dist/cjs/getLanguage-49a534df.js.map +1 -0
- package/dist/cjs/{index-6ae370b4.js → index-43af753b.js} +1 -4
- package/dist/cjs/index-43af753b.js.map +1 -0
- package/dist/cjs/index.cjs.js +3 -14
- 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/smoothly-accordion-item.cjs.entry.js +61 -0
- package/dist/cjs/smoothly-accordion-item.cjs.entry.js.map +1 -0
- package/dist/cjs/smoothly-accordion.cjs.entry.js +58 -0
- package/dist/cjs/smoothly-accordion.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-app_80.cjs.entry.js +11148 -0
- package/dist/cjs/smoothly-app_80.cjs.entry.js.map +1 -0
- package/dist/cjs/smoothly-checkbox.cjs.entry.js +102 -0
- package/dist/cjs/smoothly-checkbox.cjs.entry.js.map +1 -0
- package/dist/cjs/smoothly-color.cjs.entry.js +1 -1
- package/dist/cjs/smoothly-country.cjs.entry.js +56 -55
- package/dist/cjs/smoothly-country.cjs.entry.js.map +1 -1
- package/dist/cjs/smoothly-display-date-time.cjs.entry.js +1 -1
- package/dist/cjs/smoothly-google-font.cjs.entry.js +1 -1
- package/dist/cjs/smoothly-reorder.cjs.entry.js +4 -4
- package/dist/cjs/smoothly-reorder.cjs.entry.js.map +1 -1
- package/dist/cjs/smoothly-trigger-sink.cjs.entry.js +2 -2
- package/dist/cjs/smoothly-trigger-source.cjs.entry.js +2 -2
- package/dist/cjs/smoothly.cjs.js +4 -3
- package/dist/cjs/smoothly.cjs.js.map +1 -1
- package/dist/collection/collection-manifest.json +24 -7
- package/dist/collection/components/Button.js +16 -2
- package/dist/collection/components/Button.js.map +1 -1
- package/dist/collection/components/app/index.js +53 -1
- package/dist/collection/components/app/index.js.map +1 -1
- package/dist/collection/components/app/room/index.js +45 -2
- package/dist/collection/components/app/room/index.js.map +1 -1
- package/dist/collection/components/app/room/style.css +23 -9
- package/dist/collection/components/app/style.css +57 -32
- package/dist/collection/components/app-demo/index.js +1 -2
- package/dist/collection/components/app-demo/index.js.map +1 -1
- package/dist/collection/components/burger/index.js +9 -9
- package/dist/collection/components/burger/index.js.map +1 -1
- package/dist/collection/components/button/index.js +9 -22
- package/dist/collection/components/button/index.js.map +1 -1
- package/dist/collection/components/button/style.css +23 -20
- package/dist/collection/components/button-demo/index.js +3 -1
- 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/calendar/index.js +16 -16
- package/dist/collection/components/calendar/index.js.map +1 -1
- package/dist/collection/components/checkbox/index.js +60 -29
- package/dist/collection/components/checkbox/index.js.map +1 -1
- package/dist/collection/components/checkbox/style.css +39 -42
- package/dist/collection/components/confirm/index.js +261 -0
- package/dist/collection/components/confirm/index.js.map +1 -0
- package/dist/collection/components/confirm/style.css +15 -0
- package/dist/collection/components/display/index.js +4 -1
- package/dist/collection/components/display/index.js.map +1 -1
- package/dist/collection/components/display-demo/index.js +16 -1
- package/dist/collection/components/display-demo/index.js.map +1 -1
- package/dist/collection/components/filter/Filter.js +17 -0
- package/dist/collection/components/filter/Filter.js.map +1 -0
- package/dist/collection/components/filter/field/index.js +105 -0
- package/dist/collection/components/filter/field/index.js.map +1 -0
- package/dist/collection/components/filter/field/style.css +4 -0
- package/dist/collection/components/filter/index.js +55 -132
- package/dist/collection/components/filter/index.js.map +1 -1
- package/dist/collection/components/filter/input/index.js +84 -301
- package/dist/collection/components/filter/input/index.js.map +1 -1
- package/dist/collection/components/filter/picker/index.js +229 -0
- package/dist/collection/components/filter/picker/index.js.map +1 -0
- package/dist/collection/components/filter/picker/style.css +8 -0
- package/dist/collection/components/filter/style.css +56 -71
- package/dist/collection/components/filter/toggle/index.js +248 -0
- package/dist/collection/components/filter/toggle/index.js.map +1 -0
- package/dist/collection/components/filter/toggle/style.css +8 -0
- package/dist/collection/components/form/index.js +234 -66
- package/dist/collection/components/form/index.js.map +1 -1
- package/dist/collection/components/form/style.css +3 -1
- package/dist/collection/components/icon/index.js +60 -32
- package/dist/collection/components/icon/index.js.map +1 -1
- package/dist/collection/components/icon/style.css +15 -0
- package/dist/collection/components/icon-demo/index.js +3 -1
- package/dist/collection/components/icon-demo/index.js.map +1 -1
- package/dist/collection/components/icon-demo/style.css +5 -6
- package/dist/collection/components/input/Editable.js +19 -0
- package/dist/collection/components/input/Editable.js.map +1 -0
- package/dist/collection/components/input/Input.js +22 -1
- package/dist/collection/components/input/Input.js.map +1 -1
- package/dist/collection/components/input/Looks.js +7 -1
- package/dist/collection/components/input/Looks.js.map +1 -1
- package/dist/collection/components/input/Submittable.js.map +1 -1
- package/dist/collection/components/input/checkbox/index.js +382 -0
- package/dist/collection/components/input/checkbox/index.js.map +1 -0
- package/dist/collection/components/input/checkbox/style.css +75 -0
- package/dist/collection/components/input/clear/index.js +12 -7
- package/dist/collection/components/input/clear/index.js.map +1 -1
- package/dist/collection/components/input/clear/style.css +23 -20
- package/dist/collection/components/input/color/index.js +226 -0
- package/dist/collection/components/input/color/index.js.map +1 -0
- package/dist/collection/components/input/color/style.css +15 -0
- package/dist/collection/components/input/date/index.js +8 -8
- package/dist/collection/components/input/date/index.js.map +1 -1
- package/dist/collection/components/input/date/range/index.js +13 -17
- package/dist/collection/components/input/date/range/index.js.map +1 -1
- package/dist/collection/components/input/date/range/style.css +25 -0
- package/dist/collection/components/input/date/style.css +25 -0
- package/dist/collection/components/input/demo/index.js +28 -72
- package/dist/collection/components/input/demo/index.js.map +1 -1
- package/dist/collection/components/input/demo/style.css +15 -0
- package/dist/collection/components/input/edit/index.js +249 -0
- package/dist/collection/components/input/edit/index.js.map +1 -0
- package/dist/collection/components/input/edit/style.css +238 -0
- package/dist/collection/components/input/file/index.js +3 -3
- package/dist/collection/components/input/file/index.js.map +1 -1
- package/dist/collection/components/input/file/style.css +22 -0
- package/dist/collection/components/input/index.js +245 -110
- package/dist/collection/components/input/index.js.map +1 -1
- package/dist/collection/components/input/month/index.js +5 -5
- package/dist/collection/components/input/month/index.js.map +1 -1
- package/dist/collection/components/input/radio/Selected.js +11 -0
- package/dist/collection/components/input/radio/Selected.js.map +1 -0
- package/dist/collection/components/input/radio/index.js +426 -0
- package/dist/collection/components/input/radio/index.js.map +1 -0
- package/dist/collection/components/{radio-button → input/radio/item}/index.js +60 -72
- package/dist/collection/components/input/radio/item/index.js.map +1 -0
- package/dist/collection/components/input/radio/item/style.css +28 -0
- package/dist/collection/components/input/radio/style.css +66 -0
- package/dist/collection/components/input/range/index.js +440 -0
- package/dist/collection/components/input/range/index.js.map +1 -0
- package/dist/collection/components/input/range/style.css +154 -0
- package/dist/collection/components/input/reset/index.js +260 -0
- package/dist/collection/components/input/reset/index.js.map +1 -0
- package/dist/collection/components/input/reset/style.css +255 -0
- package/dist/collection/components/input/select/index.js +443 -95
- package/dist/collection/components/input/select/index.js.map +1 -1
- package/dist/collection/components/input/select/style.css +111 -23
- package/dist/collection/components/input/style.css +24 -2
- package/dist/collection/components/input/submit/index.js +269 -0
- package/dist/collection/components/input/submit/index.js.map +1 -0
- package/dist/collection/components/input/submit/style.css +11 -0
- package/dist/collection/components/item/Item.js +11 -0
- package/dist/collection/components/item/Item.js.map +1 -0
- package/dist/collection/components/item/index.js +69 -29
- package/dist/collection/components/item/index.js.map +1 -1
- package/dist/collection/components/item/style.css +1 -3
- package/dist/collection/components/label/index.js +81 -0
- package/dist/collection/components/label/index.js.map +1 -0
- package/dist/collection/components/label/style.css +15 -0
- package/dist/collection/components/lazy/index.js +73 -0
- package/dist/collection/components/lazy/index.js.map +1 -0
- package/dist/collection/components/{radio → load-more}/index.js +35 -46
- package/dist/collection/components/load-more/index.js.map +1 -0
- package/dist/collection/components/load-more/style.css +5 -0
- package/dist/collection/components/notification/index.js.map +1 -1
- package/dist/collection/components/picker/demo/index.js +17 -15
- package/dist/collection/components/picker/demo/index.js.map +1 -1
- package/dist/collection/components/picker/demo/style.css +24 -1
- package/dist/collection/components/picker/index.js +172 -7
- package/dist/collection/components/picker/index.js.map +1 -1
- package/dist/collection/components/picker/menu/index.js +74 -3
- package/dist/collection/components/picker/menu/index.js.map +1 -1
- package/dist/collection/components/picker/menu/style.css +16 -6
- package/dist/collection/components/picker/option/index.js +51 -3
- package/dist/collection/components/picker/option/index.js.map +1 -1
- package/dist/collection/components/picker/option/style.css +9 -4
- package/dist/collection/components/picker/style.css +28 -3
- package/dist/collection/components/popup/index.js +5 -5
- package/dist/collection/components/popup/index.js.map +1 -1
- package/dist/collection/components/popup/style.css +4 -4
- package/dist/collection/components/submit/index.js +0 -15
- package/dist/collection/components/submit/index.js.map +1 -1
- package/dist/collection/components/submit/style.css +23 -20
- package/dist/collection/components/summary/index.js +2 -3
- package/dist/collection/components/summary/index.js.map +1 -1
- package/dist/collection/components/summary/style.css +25 -16
- package/dist/collection/components/table/cell/style.css +3 -3
- package/dist/collection/components/table/demo/filtered/Root.js.map +1 -1
- package/dist/collection/components/table/demo/filtered/index.js +30 -15
- package/dist/collection/components/table/demo/filtered/index.js.map +1 -1
- package/dist/collection/components/table/demo/filtered/style.css +9 -0
- package/dist/collection/components/table/demo/index.js +2 -14
- package/dist/collection/components/table/demo/index.js.map +1 -1
- package/dist/collection/components/table/demo/style.css +5 -0
- package/dist/collection/components/table/demo/testing/data.js.map +1 -0
- package/dist/collection/components/table/demo/testing/index.js +28 -0
- package/dist/collection/components/table/demo/testing/index.js.map +1 -0
- package/dist/collection/components/table/demo/testing/style.css +32 -0
- package/dist/collection/components/table/expandable/cell/index.js +1 -20
- package/dist/collection/components/table/expandable/cell/index.js.map +1 -1
- package/dist/collection/components/table/expandable/cell/style.css +13 -13
- package/dist/collection/components/table/expandable/row/index.js +1 -20
- package/dist/collection/components/table/expandable/row/index.js.map +1 -1
- package/dist/collection/components/table/expandable/row/style.css +11 -11
- 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 +10 -0
- package/dist/collection/components/table/header/style.css +2 -3
- package/dist/collection/components/table/index.js +24 -1
- package/dist/collection/components/table/index.js.map +1 -1
- 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/theme/picker/index.js +48 -0
- package/dist/collection/components/theme/picker/index.js.map +1 -0
- package/dist/collection/components/theme/picker/style.css +0 -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/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/model/Color.js +18 -1
- package/dist/collection/model/Color.js.map +1 -1
- package/dist/collection/model/Data.js +8 -1
- package/dist/collection/model/Data.js.map +1 -1
- package/dist/collection/model/Icon.js +23 -0
- package/dist/collection/model/Icon.js.map +1 -0
- package/dist/collection/model/Listenable.js +16 -3
- package/dist/collection/model/Listenable.js.map +1 -1
- package/dist/collection/model/Option.js.map +1 -1
- package/dist/collection/model/index.js +2 -1
- package/dist/collection/model/index.js.map +1 -1
- package/dist/collection/smoothly.js +1 -1
- package/dist/collection/smoothly.js.map +1 -1
- package/dist/custom-elements/index.d.ts +120 -24
- package/dist/custom-elements/index.js +15445 -33845
- package/dist/custom-elements/index.js.map +1 -1
- package/dist/esm/Data-c8093b5a.js +579 -0
- package/dist/esm/Data-c8093b5a.js.map +1 -0
- package/dist/esm/Observers-5f08e828.js +25 -0
- package/dist/esm/Observers-5f08e828.js.map +1 -0
- package/dist/esm/TimeZone-c8df4905.js +6181 -0
- package/dist/esm/TimeZone-c8df4905.js.map +1 -0
- package/dist/esm/{getLanguage-9c833eef.js → getLanguage-1e9ec036.js} +2 -5994
- package/dist/esm/getLanguage-1e9ec036.js.map +1 -0
- package/dist/esm/{index-c196715a.js → index-258984d3.js} +2 -4
- package/dist/esm/index-258984d3.js.map +1 -0
- package/dist/esm/index.js +3 -14
- 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/smoothly-accordion-item.entry.js +57 -0
- package/dist/esm/smoothly-accordion-item.entry.js.map +1 -0
- package/dist/esm/smoothly-accordion.entry.js +54 -0
- package/dist/esm/smoothly-accordion.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-app_80.entry.js +11065 -0
- package/dist/esm/smoothly-app_80.entry.js.map +1 -0
- package/dist/esm/smoothly-checkbox.entry.js +98 -0
- package/dist/esm/smoothly-checkbox.entry.js.map +1 -0
- package/dist/esm/smoothly-color.entry.js +1 -1
- package/dist/esm/smoothly-country.entry.js +10 -9
- package/dist/esm/smoothly-country.entry.js.map +1 -1
- package/dist/esm/smoothly-display-date-time.entry.js +1 -1
- package/dist/esm/smoothly-google-font.entry.js +1 -1
- package/dist/esm/smoothly-reorder.entry.js +2 -2
- package/dist/esm/smoothly-reorder.entry.js.map +1 -1
- package/dist/esm/smoothly-trigger-sink.entry.js +2 -2
- package/dist/esm/smoothly-trigger-source.entry.js +2 -2
- 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-663ccbd0.entry.js → p-12182a73.entry.js} +2 -2
- package/dist/smoothly/p-21905b32.entry.js +2 -0
- package/dist/smoothly/p-21905b32.entry.js.map +1 -0
- package/dist/smoothly/p-2e986022.js +2 -0
- package/dist/smoothly/p-2e986022.js.map +1 -0
- package/dist/smoothly/p-303520d1.entry.js +2 -0
- package/dist/smoothly/p-303520d1.entry.js.map +1 -0
- package/dist/smoothly/p-312ef066.js +2 -0
- package/dist/smoothly/p-312ef066.js.map +1 -0
- package/dist/smoothly/{p-9992c8c4.entry.js → p-47151a53.entry.js} +2 -2
- package/dist/smoothly/{p-d0b8061e.js → p-5e387578.js} +3 -3
- package/dist/smoothly/p-5e387578.js.map +1 -0
- package/dist/smoothly/{p-b82ef190.entry.js → p-635c813e.entry.js} +2 -2
- package/dist/smoothly/{p-dbd1afa9.entry.js → p-6aebb818.entry.js} +2 -2
- package/dist/smoothly/p-6e9aca2e.entry.js +2 -0
- package/dist/smoothly/p-6e9aca2e.entry.js.map +1 -0
- package/dist/smoothly/{p-c4ffc15d.entry.js → p-7a69b43f.entry.js} +2 -2
- package/dist/smoothly/{p-4d743f07.entry.js → p-7bf147bf.entry.js} +2 -2
- package/dist/smoothly/p-823e02b0.entry.js +2 -0
- package/dist/smoothly/p-823e02b0.entry.js.map +1 -0
- package/dist/smoothly/p-b3eac6af.entry.js +2 -0
- package/dist/smoothly/{p-4ff439dd.entry.js.map → p-b3eac6af.entry.js.map} +1 -1
- package/dist/smoothly/{p-f96e41aa.entry.js → p-cb493516.entry.js} +2 -2
- package/dist/smoothly/p-ede93d69.js +2 -0
- package/dist/smoothly/p-ede93d69.js.map +1 -0
- package/dist/smoothly/{p-ce4e6f44.entry.js → p-eef1c80b.entry.js} +2 -2
- package/dist/smoothly/p-f125610c.entry.js +2 -0
- package/dist/smoothly/p-f125610c.entry.js.map +1 -0
- package/dist/smoothly/p-fa664317.js +2 -0
- package/dist/smoothly/p-fa664317.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/app/index.d.ts +3 -0
- package/dist/types/components/app/room/index.d.ts +4 -2
- package/dist/types/components/app-demo/index.d.ts +1 -0
- package/dist/types/components/burger/index.d.ts +2 -2
- package/dist/types/components/button/index.d.ts +2 -2
- package/dist/types/components/calendar/index.d.ts +5 -5
- package/dist/types/components/checkbox/index.d.ts +4 -2
- package/dist/types/components/confirm/index.d.ts +19 -0
- package/dist/types/components/filter/Filter.d.ts +21 -0
- package/dist/types/components/filter/field/index.d.ts +10 -0
- package/dist/types/components/filter/index.d.ts +13 -12
- package/dist/types/components/filter/input/index.d.ts +17 -23
- package/dist/types/components/filter/picker/index.d.ts +25 -0
- package/dist/types/components/filter/toggle/index.d.ts +22 -0
- package/dist/types/components/form/index.d.ts +22 -15
- package/dist/types/components/icon/index.d.ts +4 -6
- package/dist/types/components/input/Editable.d.ts +21 -0
- package/dist/types/components/input/Input.d.ts +19 -7
- package/dist/types/components/input/Looks.d.ts +7 -1
- package/dist/types/components/input/Submittable.d.ts +1 -1
- package/dist/types/components/input/checkbox/index.d.ts +30 -0
- package/dist/types/components/input/color/index.d.ts +24 -0
- package/dist/types/components/input/date/index.d.ts +1 -1
- package/dist/types/components/input/date/range/index.d.ts +2 -2
- package/dist/types/components/input/demo/index.d.ts +3 -6
- package/dist/types/components/input/edit/index.d.ts +18 -0
- package/dist/types/components/input/index.d.ts +30 -21
- package/dist/types/components/input/month/index.d.ts +1 -1
- package/dist/types/components/input/radio/Selected.d.ts +10 -0
- package/dist/types/components/input/radio/index.d.ts +36 -0
- package/dist/types/components/input/radio/item/index.d.ts +15 -0
- package/dist/types/components/input/range/index.d.ts +33 -0
- package/dist/types/components/input/reset/index.d.ts +19 -0
- package/dist/types/components/input/select/index.d.ts +41 -18
- package/dist/types/components/input/submit/index.d.ts +19 -0
- package/dist/types/components/item/Item.d.ts +10 -0
- package/dist/types/components/item/index.d.ts +8 -5
- package/dist/types/components/label/index.d.ts +6 -0
- package/dist/types/components/lazy/index.d.ts +7 -0
- package/dist/types/components/load-more/index.d.ts +11 -0
- package/dist/types/components/picker/demo/index.d.ts +7 -2
- package/dist/types/components/picker/index.d.ts +20 -6
- package/dist/types/components/picker/menu/index.d.ts +8 -0
- package/dist/types/components/picker/option/index.d.ts +2 -0
- package/dist/types/components/popup/index.d.ts +1 -1
- package/dist/types/components/submit/index.d.ts +0 -1
- package/dist/types/components/table/demo/filtered/Root.d.ts +2 -0
- package/dist/types/components/table/demo/filtered/index.d.ts +6 -6
- package/dist/types/components/table/demo/index.d.ts +1 -1
- package/dist/types/components/table/expandable/cell/index.d.ts +0 -1
- package/dist/types/components/table/expandable/row/index.d.ts +0 -1
- package/dist/types/components/table/footer/index.d.ts +3 -0
- package/dist/types/components/table/index.d.ts +2 -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/theme/picker/index.d.ts +4 -0
- package/dist/types/components/toggle-switch/index.d.ts +7 -2
- package/dist/types/components.d.ts +658 -182
- package/dist/types/global/Observers.d.ts +8 -0
- package/dist/types/global/index.d.ts +4 -0
- package/dist/types/model/Color.d.ts +7 -1
- package/dist/types/model/Data.d.ts +4 -0
- package/dist/types/model/Icon.d.ts +8 -0
- package/dist/types/model/Listenable.d.ts +10 -1
- package/dist/types/model/Option.d.ts +2 -0
- package/dist/types/model/index.d.ts +1 -1
- package/dist/types/smoothly.d.ts +1 -1
- package/package.json +7 -11
- package/dist/cjs/Data-afbe461d.js +0 -807
- package/dist/cjs/Data-afbe461d.js.map +0 -1
- package/dist/cjs/getLanguage-7e53766b.js.map +0 -1
- package/dist/cjs/index-6ae370b4.js.map +0 -1
- package/dist/cjs/smoothly-accordion_66.cjs.entry.js +0 -29732
- package/dist/cjs/smoothly-accordion_66.cjs.entry.js.map +0 -1
- package/dist/cjs/smoothly-radio-group.cjs.entry.js +0 -22
- package/dist/cjs/smoothly-radio-group.cjs.entry.js.map +0 -1
- package/dist/collection/components/filter/Clearable.js +0 -8
- package/dist/collection/components/filter/Clearable.js.map +0 -1
- package/dist/collection/components/icon/Icon.js +0 -2
- package/dist/collection/components/icon/Icon.js.map +0 -1
- package/dist/collection/components/input/Changeable.js +0 -8
- package/dist/collection/components/input/Changeable.js.map +0 -1
- package/dist/collection/components/radio/index.js.map +0 -1
- package/dist/collection/components/radio/style.css +0 -31
- package/dist/collection/components/radio-button/Selected.js +0 -2
- package/dist/collection/components/radio-button/Selected.js.map +0 -1
- package/dist/collection/components/radio-button/index.js.map +0 -1
- package/dist/collection/components/radio-button/item/index.js +0 -117
- package/dist/collection/components/radio-button/item/index.js.map +0 -1
- package/dist/collection/components/radio-button/item/style.css +0 -85
- package/dist/collection/components/radio-group/index.js +0 -43
- package/dist/collection/components/radio-group/index.js.map +0 -1
- package/dist/collection/components/radio-group/style.css +0 -36
- package/dist/collection/components/table/testing/data.js.map +0 -1
- package/dist/collection/components/table/testing/index.js +0 -28
- package/dist/collection/components/table/testing/index.js.map +0 -1
- package/dist/collection/components/table/testing/style.css +0 -8
- package/dist/collection/model/ClientIdentifier.js +0 -13
- package/dist/collection/model/ClientIdentifier.js.map +0 -1
- package/dist/esm/Data-77d2bdbe.js +0 -803
- package/dist/esm/Data-77d2bdbe.js.map +0 -1
- package/dist/esm/getLanguage-9c833eef.js.map +0 -1
- package/dist/esm/index-c196715a.js.map +0 -1
- package/dist/esm/smoothly-accordion_66.entry.js +0 -29663
- package/dist/esm/smoothly-accordion_66.entry.js.map +0 -1
- package/dist/esm/smoothly-radio-group.entry.js +0 -18
- package/dist/esm/smoothly-radio-group.entry.js.map +0 -1
- package/dist/smoothly/p-1b714a63.js +0 -2
- package/dist/smoothly/p-1b714a63.js.map +0 -1
- package/dist/smoothly/p-1efa3261.entry.js +0 -2
- package/dist/smoothly/p-1efa3261.entry.js.map +0 -1
- package/dist/smoothly/p-4ff439dd.entry.js +0 -2
- package/dist/smoothly/p-74a3586c.js +0 -2
- package/dist/smoothly/p-74a3586c.js.map +0 -1
- package/dist/smoothly/p-8a45ae84.entry.js +0 -2
- package/dist/smoothly/p-8a45ae84.entry.js.map +0 -1
- package/dist/smoothly/p-90b340b4.entry.js +0 -2
- package/dist/smoothly/p-90b340b4.entry.js.map +0 -1
- package/dist/smoothly/p-d0b8061e.js.map +0 -1
- package/dist/types/components/filter/Clearable.d.ts +0 -6
- package/dist/types/components/icon/Icon.d.ts +0 -4
- package/dist/types/components/input/Changeable.d.ts +0 -7
- package/dist/types/components/radio/index.d.ts +0 -13
- package/dist/types/components/radio-button/Selected.d.ts +0 -5
- package/dist/types/components/radio-button/index.d.ts +0 -13
- package/dist/types/components/radio-button/item/index.d.ts +0 -12
- package/dist/types/components/radio-group/index.d.ts +0 -4
- package/dist/types/model/ClientIdentifier.d.ts +0 -5
- /package/dist/collection/components/{radio-button → lazy}/style.css +0 -0
- /package/dist/collection/components/table/{testing → demo/testing}/data.js +0 -0
- /package/dist/smoothly/{p-663ccbd0.entry.js.map → p-12182a73.entry.js.map} +0 -0
- /package/dist/smoothly/{p-9992c8c4.entry.js.map → p-47151a53.entry.js.map} +0 -0
- /package/dist/smoothly/{p-b82ef190.entry.js.map → p-635c813e.entry.js.map} +0 -0
- /package/dist/smoothly/{p-dbd1afa9.entry.js.map → p-6aebb818.entry.js.map} +0 -0
- /package/dist/smoothly/{p-c4ffc15d.entry.js.map → p-7a69b43f.entry.js.map} +0 -0
- /package/dist/smoothly/{p-4d743f07.entry.js.map → p-7bf147bf.entry.js.map} +0 -0
- /package/dist/smoothly/{p-f96e41aa.entry.js.map → p-cb493516.entry.js.map} +0 -0
- /package/dist/smoothly/{p-ce4e6f44.entry.js.map → p-eef1c80b.entry.js.map} +0 -0
- /package/dist/types/components/table/{testing → demo/testing}/data.d.ts +0 -0
- /package/dist/types/components/table/{testing → demo/testing}/index.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/picker/demo/index.tsx"],"names":[],"mappings":"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","sourcesContent":["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() 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<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</Host>\n\t\t)\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/picker/demo/index.tsx"],"names":[],"mappings":"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","sourcesContent":["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: [{ value: \"jessie@rocket.com\" }, { value: \"james@rocket.com\" }],\n\t\toptions: [\n\t\t\t{ value: \"giovani@rocket.com\" },\n\t\t\t{ value: \"john@example.com\" },\n\t\t\t{ value: \"jane@example.com\" },\n\t\t\t{ value: \"jack@example.com\" },\n\t\t\t{ value: \"jessica@example.com\" },\n\t\t\t{ value: \"julia@example.com\" },\n\t\t\t{ value: \"jayden@example.com\" },\n\t\t\t{ value: \"jake@example.com\" },\n\t\t\t{ value: \"jamie@example.com\" },\n\t\t\t{ value: \"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\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\n\t\t\t\t<h5>Controlled input</h5>\n\t\t\t\t<smoothly-button color={\"secondary\"} 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<smoothly-form class={\"controlled\"} looks=\"line\" onSmoothlyFormInput={e => this.inputHandler(e)}>\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\n\t\t\t\t\t\t\t\tkey={email.value}\n\t\t\t\t\t\t\t\tvalue={email}\n\t\t\t\t\t\t\t\tselected\n\t\t\t\t\t\t\t\tsearch={[this.users[email.value] ?? []].flat()}>\n\t\t\t\t\t\t\t\t<span>{this.users[email.value]}</span>\n\t\t\t\t\t\t\t\t<span slot=\"label\">{email.value}</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} value={email} search={[this.users[email.value] ?? []].flat()}>\n\t\t\t\t\t\t\t\t<span>{this.users[email.value]}</span>\n\t\t\t\t\t\t\t\t<span slot=\"label\">{email.value}</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-input-clear slot={\"submit\"} type=\"form\" color=\"danger\" fill=\"solid\">\n\t\t\t\t\t\tClear\n\t\t\t\t\t</smoothly-input-clear>\n\t\t\t\t\t<smoothly-button slot={\"submit\"} color={\"secondary\"} onClick={() => this.controls?.clear()}>\n\t\t\t\t\t\tRemoved added by mutation\n\t\t\t\t\t</smoothly-button>\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</smoothly-form>\n\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"]}
|
|
@@ -2,6 +2,29 @@
|
|
|
2
2
|
display: flex;
|
|
3
3
|
flex-direction: column;
|
|
4
4
|
}
|
|
5
|
-
smoothly-form {
|
|
5
|
+
:host smoothly-form {
|
|
6
6
|
max-width: 50rem;
|
|
7
7
|
}
|
|
8
|
+
:host .counter {
|
|
9
|
+
position: relative;
|
|
10
|
+
width: 3rem;
|
|
11
|
+
height: 3rem;
|
|
12
|
+
}
|
|
13
|
+
:host .counter-button {
|
|
14
|
+
position: absolute;
|
|
15
|
+
top: 0;
|
|
16
|
+
left: 0;
|
|
17
|
+
padding: 0;
|
|
18
|
+
margin: 0;
|
|
19
|
+
height: 3rem;
|
|
20
|
+
width: 3rem;
|
|
21
|
+
background-color: inherit;
|
|
22
|
+
border: none;
|
|
23
|
+
display: flex;
|
|
24
|
+
justify-content: center;
|
|
25
|
+
align-items: center;
|
|
26
|
+
}
|
|
27
|
+
:host .controlled smoothly-input:not([readonly]),
|
|
28
|
+
:host .controlled smoothly-picker:not([readonly]) {
|
|
29
|
+
outline: 1px solid rgb(var(--smoothly-success-color));
|
|
30
|
+
}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import { h, Host } from "@stencil/core";
|
|
1
|
+
import { h, Host, } from "@stencil/core";
|
|
2
2
|
export class SmoothlyPicker {
|
|
3
3
|
constructor() {
|
|
4
|
+
this.valueRecivedOnLoad = false;
|
|
5
|
+
this.initialValue = new Map();
|
|
6
|
+
this.listener = {};
|
|
4
7
|
this.looks = "plain";
|
|
5
8
|
this.name = undefined;
|
|
9
|
+
this.changed = false;
|
|
6
10
|
this.open = false;
|
|
7
11
|
this.mutable = false;
|
|
8
12
|
this.multiple = false;
|
|
@@ -12,10 +16,17 @@ export class SmoothlyPicker {
|
|
|
12
16
|
this.display = undefined;
|
|
13
17
|
}
|
|
14
18
|
componentWillLoad() {
|
|
19
|
+
var _a, _b;
|
|
15
20
|
this.smoothlyInputLooks.emit(looks => (this.looks = looks));
|
|
21
|
+
!this.readonly && this.smoothlyFormDisable.emit(readonly => (this.readonly = readonly));
|
|
22
|
+
this.smoothlyInputLoad.emit(() => {
|
|
23
|
+
return;
|
|
24
|
+
});
|
|
25
|
+
(_b = (_a = this.listener).changed) === null || _b === void 0 ? void 0 : _b.call(_a, this);
|
|
16
26
|
}
|
|
17
27
|
selectedChanged() {
|
|
18
28
|
const selected = Array.from(this.selected.values(), option => option.value);
|
|
29
|
+
this.changed = !this.areValuesEqual(this.selected, this.initialValue);
|
|
19
30
|
this.smoothlyInput.emit({ [this.name]: this.multiple ? selected : selected.at(0) });
|
|
20
31
|
this.smoothlyChange.emit({ [this.name]: this.multiple ? selected : selected.at(0) });
|
|
21
32
|
this.display = Array.from(this.selected.values(), option => {
|
|
@@ -23,6 +34,7 @@ export class SmoothlyPicker {
|
|
|
23
34
|
option.slotted.forEach(node => span.appendChild(node.cloneNode(true)));
|
|
24
35
|
return span;
|
|
25
36
|
});
|
|
37
|
+
!this.valueRecivedOnLoad && (this.initialValue = new Map(this.selected));
|
|
26
38
|
}
|
|
27
39
|
componentDidLoad() {
|
|
28
40
|
if (this.controls)
|
|
@@ -40,9 +52,10 @@ export class SmoothlyPicker {
|
|
|
40
52
|
this.selected = this.multiple
|
|
41
53
|
? new Map(this.selected.set(event.detail.value, event.detail).entries())
|
|
42
54
|
: new Map().set(event.detail.value, event.detail);
|
|
55
|
+
!this.valueRecivedOnLoad && (this.valueRecivedOnLoad = !this.valueRecivedOnLoad);
|
|
43
56
|
}
|
|
44
57
|
optionChangeHandler(event) {
|
|
45
|
-
if (!this.readonly)
|
|
58
|
+
if ((this.readonly && !this.valueRecivedOnLoad) || !this.readonly)
|
|
46
59
|
if (this.multiple)
|
|
47
60
|
this.selected = event.detail.selected
|
|
48
61
|
? new Map(this.selected.set(event.detail.value, event.detail).entries())
|
|
@@ -53,7 +66,7 @@ export class SmoothlyPicker {
|
|
|
53
66
|
this.selected = !event.detail.selected ? new Map() : new Map().set(event.detail.value, event.detail);
|
|
54
67
|
}
|
|
55
68
|
clickHandler(event) {
|
|
56
|
-
this.open = !event.composedPath().includes(this.element) ? false : !this.open;
|
|
69
|
+
this.open = !event.composedPath().includes(this.element) || this.readonly ? false : !this.open;
|
|
57
70
|
}
|
|
58
71
|
focusHandler(event) {
|
|
59
72
|
if (!event.composedPath().includes(this.element))
|
|
@@ -62,8 +75,31 @@ export class SmoothlyPicker {
|
|
|
62
75
|
async clear() {
|
|
63
76
|
this.selected.forEach(option => option.selected && option.element.clickHandler());
|
|
64
77
|
}
|
|
78
|
+
async listen(property, listener) {
|
|
79
|
+
this.listener[property] = listener;
|
|
80
|
+
listener(this);
|
|
81
|
+
}
|
|
82
|
+
async edit(editable) {
|
|
83
|
+
await this.reset();
|
|
84
|
+
this.readonly = !editable;
|
|
85
|
+
}
|
|
86
|
+
async reset() {
|
|
87
|
+
const initialValueArray = Array.from(this.initialValue.values(), option => option.value);
|
|
88
|
+
this.selected.forEach(option => !initialValueArray.includes(option.value) && option.selected && option.set.selected(false));
|
|
89
|
+
this.initialValue.forEach(option => option.set.selected(true));
|
|
90
|
+
}
|
|
91
|
+
async setInitialValue() {
|
|
92
|
+
this.initialValue = new Map(this.selected);
|
|
93
|
+
this.selectedChanged();
|
|
94
|
+
}
|
|
95
|
+
areValuesEqual(selected, initialValue) {
|
|
96
|
+
const initialValueArray = Array.from(initialValue.values(), option => option.value);
|
|
97
|
+
const selectedArray = Array.from(selected.values(), option => option.value);
|
|
98
|
+
return (selectedArray.length === initialValueArray.length &&
|
|
99
|
+
initialValueArray.every(value => selectedArray.includes(value)));
|
|
100
|
+
}
|
|
65
101
|
render() {
|
|
66
|
-
return (h(Host,
|
|
102
|
+
return (h(Host, { tabindex: 0 }, h("smoothly-slot-elements", { class: "selected", nodes: this.display }), h("span", { class: "label" }, h("slot", { name: "label" })), h("button", { type: "button" }, h("smoothly-icon", { size: "tiny", name: this.open ? "caret-down-outline" : "caret-forward-outline" })), h("slot", { name: "child" }), h("smoothly-picker-menu", { open: this.open, looks: this.looks, onClick: e => e.stopPropagation(), multiple: this.multiple, mutable: this.mutable, readonly: this.readonly, validator: this.validator }, h("slot", { name: "search", slot: "search" }), h("slot", { name: "display", slot: "display" }), h("slot", null))));
|
|
67
103
|
}
|
|
68
104
|
static get is() { return "smoothly-picker"; }
|
|
69
105
|
static get encapsulation() { return "scoped"; }
|
|
@@ -84,7 +120,7 @@ export class SmoothlyPicker {
|
|
|
84
120
|
"mutable": true,
|
|
85
121
|
"complexType": {
|
|
86
122
|
"original": "Looks",
|
|
87
|
-
"resolved": "\"border\" | \"grid\" | \"line\" | \"plain\"",
|
|
123
|
+
"resolved": "\"border\" | \"grid\" | \"line\" | \"plain\" | \"transparent\"",
|
|
88
124
|
"references": {
|
|
89
125
|
"Looks": {
|
|
90
126
|
"location": "import",
|
|
@@ -119,6 +155,24 @@ export class SmoothlyPicker {
|
|
|
119
155
|
"attribute": "name",
|
|
120
156
|
"reflect": true
|
|
121
157
|
},
|
|
158
|
+
"changed": {
|
|
159
|
+
"type": "boolean",
|
|
160
|
+
"mutable": true,
|
|
161
|
+
"complexType": {
|
|
162
|
+
"original": "boolean",
|
|
163
|
+
"resolved": "boolean",
|
|
164
|
+
"references": {}
|
|
165
|
+
},
|
|
166
|
+
"required": false,
|
|
167
|
+
"optional": false,
|
|
168
|
+
"docs": {
|
|
169
|
+
"tags": [],
|
|
170
|
+
"text": ""
|
|
171
|
+
},
|
|
172
|
+
"attribute": "changed",
|
|
173
|
+
"reflect": false,
|
|
174
|
+
"defaultValue": "false"
|
|
175
|
+
},
|
|
122
176
|
"open": {
|
|
123
177
|
"type": "boolean",
|
|
124
178
|
"mutable": true,
|
|
@@ -175,7 +229,7 @@ export class SmoothlyPicker {
|
|
|
175
229
|
},
|
|
176
230
|
"readonly": {
|
|
177
231
|
"type": "boolean",
|
|
178
|
-
"mutable":
|
|
232
|
+
"mutable": true,
|
|
179
233
|
"complexType": {
|
|
180
234
|
"original": "boolean",
|
|
181
235
|
"resolved": "boolean",
|
|
@@ -290,7 +344,7 @@ export class SmoothlyPicker {
|
|
|
290
344
|
},
|
|
291
345
|
"complexType": {
|
|
292
346
|
"original": "(looks: Looks) => void",
|
|
293
|
-
"resolved": "(looks:
|
|
347
|
+
"resolved": "(looks: \"line\" | \"grid\" | \"plain\" | \"border\" | \"transparent\") => void",
|
|
294
348
|
"references": {
|
|
295
349
|
"Looks": {
|
|
296
350
|
"location": "import",
|
|
@@ -298,6 +352,40 @@ export class SmoothlyPicker {
|
|
|
298
352
|
}
|
|
299
353
|
}
|
|
300
354
|
}
|
|
355
|
+
}, {
|
|
356
|
+
"method": "smoothlyFormDisable",
|
|
357
|
+
"name": "smoothlyFormDisable",
|
|
358
|
+
"bubbles": true,
|
|
359
|
+
"cancelable": true,
|
|
360
|
+
"composed": true,
|
|
361
|
+
"docs": {
|
|
362
|
+
"tags": [],
|
|
363
|
+
"text": ""
|
|
364
|
+
},
|
|
365
|
+
"complexType": {
|
|
366
|
+
"original": "(disabled: boolean) => void",
|
|
367
|
+
"resolved": "(disabled: boolean) => void",
|
|
368
|
+
"references": {}
|
|
369
|
+
}
|
|
370
|
+
}, {
|
|
371
|
+
"method": "smoothlyInputLoad",
|
|
372
|
+
"name": "smoothlyInputLoad",
|
|
373
|
+
"bubbles": true,
|
|
374
|
+
"cancelable": true,
|
|
375
|
+
"composed": true,
|
|
376
|
+
"docs": {
|
|
377
|
+
"tags": [],
|
|
378
|
+
"text": ""
|
|
379
|
+
},
|
|
380
|
+
"complexType": {
|
|
381
|
+
"original": "(parent: HTMLElement) => void",
|
|
382
|
+
"resolved": "(parent: HTMLElement) => void",
|
|
383
|
+
"references": {
|
|
384
|
+
"HTMLElement": {
|
|
385
|
+
"location": "global"
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}
|
|
301
389
|
}];
|
|
302
390
|
}
|
|
303
391
|
static get methods() {
|
|
@@ -317,6 +405,83 @@ export class SmoothlyPicker {
|
|
|
317
405
|
"text": "",
|
|
318
406
|
"tags": []
|
|
319
407
|
}
|
|
408
|
+
},
|
|
409
|
+
"listen": {
|
|
410
|
+
"complexType": {
|
|
411
|
+
"signature": "(property: \"changed\", listener: (parent: Editable) => Promise<void>) => Promise<void>",
|
|
412
|
+
"parameters": [{
|
|
413
|
+
"tags": [],
|
|
414
|
+
"text": ""
|
|
415
|
+
}, {
|
|
416
|
+
"tags": [],
|
|
417
|
+
"text": ""
|
|
418
|
+
}],
|
|
419
|
+
"references": {
|
|
420
|
+
"Promise": {
|
|
421
|
+
"location": "global"
|
|
422
|
+
},
|
|
423
|
+
"Editable": {
|
|
424
|
+
"location": "import",
|
|
425
|
+
"path": "../input/Editable"
|
|
426
|
+
}
|
|
427
|
+
},
|
|
428
|
+
"return": "Promise<void>"
|
|
429
|
+
},
|
|
430
|
+
"docs": {
|
|
431
|
+
"text": "",
|
|
432
|
+
"tags": []
|
|
433
|
+
}
|
|
434
|
+
},
|
|
435
|
+
"edit": {
|
|
436
|
+
"complexType": {
|
|
437
|
+
"signature": "(editable: boolean) => Promise<void>",
|
|
438
|
+
"parameters": [{
|
|
439
|
+
"tags": [],
|
|
440
|
+
"text": ""
|
|
441
|
+
}],
|
|
442
|
+
"references": {
|
|
443
|
+
"Promise": {
|
|
444
|
+
"location": "global"
|
|
445
|
+
}
|
|
446
|
+
},
|
|
447
|
+
"return": "Promise<void>"
|
|
448
|
+
},
|
|
449
|
+
"docs": {
|
|
450
|
+
"text": "",
|
|
451
|
+
"tags": []
|
|
452
|
+
}
|
|
453
|
+
},
|
|
454
|
+
"reset": {
|
|
455
|
+
"complexType": {
|
|
456
|
+
"signature": "() => Promise<void>",
|
|
457
|
+
"parameters": [],
|
|
458
|
+
"references": {
|
|
459
|
+
"Promise": {
|
|
460
|
+
"location": "global"
|
|
461
|
+
}
|
|
462
|
+
},
|
|
463
|
+
"return": "Promise<void>"
|
|
464
|
+
},
|
|
465
|
+
"docs": {
|
|
466
|
+
"text": "",
|
|
467
|
+
"tags": []
|
|
468
|
+
}
|
|
469
|
+
},
|
|
470
|
+
"setInitialValue": {
|
|
471
|
+
"complexType": {
|
|
472
|
+
"signature": "() => Promise<void>",
|
|
473
|
+
"parameters": [],
|
|
474
|
+
"references": {
|
|
475
|
+
"Promise": {
|
|
476
|
+
"location": "global"
|
|
477
|
+
}
|
|
478
|
+
},
|
|
479
|
+
"return": "Promise<void>"
|
|
480
|
+
},
|
|
481
|
+
"docs": {
|
|
482
|
+
"text": "",
|
|
483
|
+
"tags": []
|
|
484
|
+
}
|
|
320
485
|
}
|
|
321
486
|
};
|
|
322
487
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/picker/index.tsx"],"names":[],"mappings":"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","sourcesContent":["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\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\tthis.smoothlyInput.emit({ [this.name]: this.multiple ? selected : selected.at(0) })\n\t\tthis.smoothlyChange.emit({ [this.name]: this.multiple ? selected : selected.at(0) })\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(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>) {\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<smoothly-picker-menu\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"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/picker/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n\tComponent,\n\tComponentDidLoad,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tMethod,\n\tProp,\n\tState,\n\tVNode,\n\tWatch,\n} from \"@stencil/core\"\nimport { Notice, Option } from \"../../model\"\nimport { Clearable } from \"../input/Clearable\"\nimport { Editable } from \"../input/Editable\"\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, Editable, Input, ComponentDidLoad {\n\tprivate valueRecivedOnLoad = false\n\tprivate initialValue = new Map<any, Option>()\n\tprivate listener: { changed?: (parent: Editable) => Promise<void> } = {}\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({ mutable: true }) changed = false\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, mutable: 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\t@Event() smoothlyFormDisable: EventEmitter<(disabled: boolean) => void>\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: HTMLElement) => void>\n\tprivate controls?: Controls\n\n\tcomponentWillLoad(): void | Promise<void> {\n\t\tthis.smoothlyInputLooks.emit(looks => (this.looks = looks))\n\t\t!this.readonly && this.smoothlyFormDisable.emit(readonly => (this.readonly = readonly))\n\t\tthis.smoothlyInputLoad.emit(() => {\n\t\t\treturn\n\t\t})\n\t\tthis.listener.changed?.(this)\n\t}\n\n\t@Watch(\"selected\")\n\tselectedChanged(): void {\n\t\tconst selected = Array.from(this.selected.values(), option => option.value)\n\t\tthis.changed = !this.areValuesEqual(this.selected, this.initialValue)\n\t\tthis.smoothlyInput.emit({ [this.name]: this.multiple ? selected : selected.at(0) })\n\t\tthis.smoothlyChange.emit({ [this.name]: this.multiple ? selected : selected.at(0) })\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\t!this.valueRecivedOnLoad && (this.initialValue = new Map(this.selected))\n\t}\n\n\tcomponentDidLoad(): void | Promise<void> {\n\t\tif (this.controls)\n\t\t\tthis.smoothlyPickerLoaded.emit(this.controls)\n\t}\n\t@Listen(\"smoothlyInputLooks\")\n\tsmoothlyInputLooksHandler(event: CustomEvent<(looks: Looks) => void>): 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 }>): void {\n\t\tthis.controls = event.detail\n\t}\n\t@Listen(\"smoothlyPickerOptionLoaded\")\n\toptionLoadedHandler(event: CustomEvent<Option>): void {\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\t!this.valueRecivedOnLoad && (this.valueRecivedOnLoad = !this.valueRecivedOnLoad)\n\t}\n\n\t@Listen(\"smoothlyPickerOptionChange\")\n\toptionChangeHandler(event: CustomEvent<Option>): void {\n\t\tif ((this.readonly && !this.valueRecivedOnLoad) || !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) || this.readonly ? 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\t@Method()\n\tasync listen(property: \"changed\", listener: (parent: Editable) => Promise<void>): Promise<void> {\n\t\tthis.listener[property] = listener\n\t\tlistener(this)\n\t}\n\t@Method()\n\tasync edit(editable: boolean): Promise<void> {\n\t\tawait this.reset()\n\t\tthis.readonly = !editable\n\t}\n\t@Method()\n\tasync reset(): Promise<void> {\n\t\tconst initialValueArray = Array.from(this.initialValue.values(), option => option.value)\n\t\tthis.selected.forEach(\n\t\t\toption => !initialValueArray.includes(option.value) && option.selected && option.set.selected(false)\n\t\t)\n\t\tthis.initialValue.forEach(option => option.set.selected(true))\n\t}\n\t@Method()\n\tasync setInitialValue(): Promise<void> {\n\t\tthis.initialValue = new Map(this.selected)\n\t\tthis.selectedChanged()\n\t}\n\tareValuesEqual(selected: Map<any, Option>, initialValue: Map<any, Option>): boolean {\n\t\tconst initialValueArray = Array.from(initialValue.values(), option => option.value)\n\t\tconst selectedArray = Array.from(selected.values(), option => option.value)\n\t\treturn (\n\t\t\tselectedArray.length === initialValueArray.length &&\n\t\t\tinitialValueArray.every(value => selectedArray.includes(value))\n\t\t)\n\t}\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host tabindex={0}>\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"]}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { h, Host } from "@stencil/core";
|
|
2
|
+
import global from "../../../global/index";
|
|
3
|
+
const Observers = global().Observers;
|
|
2
4
|
function* chain(...iterables) {
|
|
3
5
|
for (const iterable of iterables)
|
|
4
6
|
yield* iterable;
|
|
@@ -17,6 +19,7 @@ function restoreListener(ref, option) {
|
|
|
17
19
|
export class SmoothlyPickerMenu {
|
|
18
20
|
constructor() {
|
|
19
21
|
this.looks = undefined;
|
|
22
|
+
this.open = false;
|
|
20
23
|
this.multiple = false;
|
|
21
24
|
this.mutable = false;
|
|
22
25
|
this.readonly = false;
|
|
@@ -27,6 +30,19 @@ export class SmoothlyPickerMenu {
|
|
|
27
30
|
this.search = "";
|
|
28
31
|
this.valid = false;
|
|
29
32
|
this.display = undefined;
|
|
33
|
+
this.flip = false;
|
|
34
|
+
this.flipChecked = false;
|
|
35
|
+
}
|
|
36
|
+
componentWillLoad() {
|
|
37
|
+
if (!Observers.has(this.element)) {
|
|
38
|
+
const threshold = 0.4;
|
|
39
|
+
Observers.set(this.element, new IntersectionObserver(entries => {
|
|
40
|
+
var _a, _b;
|
|
41
|
+
return ((_b = (_a = entries.find(entry => entry.target == this.element)) === null || _a === void 0 ? void 0 : _a.intersectionRatio) !== null && _b !== void 0 ? _b : 0) < threshold &&
|
|
42
|
+
!this.flipChecked &&
|
|
43
|
+
((this.flip = !this.flip), (this.flipChecked = true));
|
|
44
|
+
}, { threshold }));
|
|
45
|
+
}
|
|
30
46
|
}
|
|
31
47
|
componentDidLoad() {
|
|
32
48
|
this.smoothlyPickerMenuLoaded.emit({
|
|
@@ -54,12 +70,36 @@ export class SmoothlyPickerMenu {
|
|
|
54
70
|
}
|
|
55
71
|
}
|
|
56
72
|
},
|
|
73
|
+
clear: () => {
|
|
74
|
+
const backend = Array.from(this.backend.entries());
|
|
75
|
+
backend.filter(([key]) => this.created.has(key)).forEach(([, option]) => option.set.selected(false));
|
|
76
|
+
this.backend = new Map(backend.filter(([key]) => !this.created.has(key)));
|
|
77
|
+
this.options = new Map(Array.from(this.options.entries()).filter(([key]) => !this.created.has(key)));
|
|
78
|
+
this.created = new Map();
|
|
79
|
+
},
|
|
57
80
|
});
|
|
58
81
|
}
|
|
82
|
+
disconnectedCallback() {
|
|
83
|
+
var _a;
|
|
84
|
+
if (!this.element.parentElement) {
|
|
85
|
+
(_a = Observers.get(this.element)) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
86
|
+
Observers.remove(this.element);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
openChange() {
|
|
90
|
+
const observer = Observers.get(this.element);
|
|
91
|
+
if (this.open)
|
|
92
|
+
observer === null || observer === void 0 ? void 0 : observer.observe(this.element);
|
|
93
|
+
else
|
|
94
|
+
observer === null || observer === void 0 ? void 0 : observer.unobserve(this.element);
|
|
95
|
+
}
|
|
59
96
|
readonlyChanged() {
|
|
60
97
|
for (const option of chain(this.options.values(), this.backend.values()))
|
|
61
98
|
option.element, option.set.readonly(this.readonly);
|
|
62
99
|
}
|
|
100
|
+
scrollHandler() {
|
|
101
|
+
this.flipChecked = false;
|
|
102
|
+
}
|
|
63
103
|
optionLoadHandler(event) {
|
|
64
104
|
if (!this.listElement || !event.composedPath().includes(this.listElement)) {
|
|
65
105
|
event.stopPropagation();
|
|
@@ -144,7 +184,9 @@ export class SmoothlyPickerMenu {
|
|
|
144
184
|
event.detail.set.nodes(this.display);
|
|
145
185
|
}
|
|
146
186
|
render() {
|
|
147
|
-
return (h(Host, { class: { valid: this.valid } }, h("smoothly-slotted-elements", { class: "hide", onSmoothlySlottedChange: e => (this.display = e.detail) }, h("slot", { name: "display" })), h("div", { class: "hide" }, h("slot", null), Array.from(this.created.values(), option => (h("smoothly-picker-option", { key: option.value, value: option.value, selected: option.selected }, option.value, h("smoothly-slot-elements", { slot: "display", nodes: this.display }))))), h("div", { class: "controls" }, h("smoothly-input", { ref: e => (this.searchElement = e), name: "search", value: this.search, looks: this.looks, onKeyDown: e => this.keyDownHandler(e), onSmoothlyInput: e => this.inputHandler(e), onSmoothlyChange: e => e.stopPropagation(), onSmoothlyBlur: e => e.stopPropagation() }, h("slot", { name: "search" })), this.mutable && !this.readonly ? (h("button", { onClick: () => this.addHandler(), disabled: !this.valid, type: "button" }, h("smoothly-icon", { name: "add-outline" }))) : null), h("div", { class: "list", ref: e => (this.listElement = e) }, Array.from(this.backend.values())
|
|
187
|
+
return (h(Host, { class: { valid: this.valid, flip: this.flip } }, h("smoothly-slotted-elements", { class: "hide", onSmoothlySlottedChange: e => (this.display = e.detail) }, h("slot", { name: "display" })), h("div", { class: "hide" }, h("slot", null), Array.from(this.created.values(), option => (h("smoothly-picker-option", { key: option.value, value: option.value, selected: option.selected }, option.value, h("smoothly-slot-elements", { slot: "display", nodes: this.display }))))), h("div", { class: "controls" }, h("smoothly-input", { ref: e => (this.searchElement = e), name: "search", value: this.search, looks: this.looks, onKeyDown: e => this.keyDownHandler(e), onSmoothlyInput: e => this.inputHandler(e), onSmoothlyChange: e => e.stopPropagation(), onSmoothlyBlur: e => e.stopPropagation(), onSmoothlyInputLoad: e => e.stopPropagation() }, h("slot", { name: "search" })), this.mutable && !this.readonly ? (h("button", { onClick: () => this.addHandler(), disabled: !this.valid, type: "button" }, h("smoothly-icon", { name: "add-outline" }))) : null), h("div", { class: "list", ref: e => (this.listElement = e) }, Array.from(this.backend.values())
|
|
188
|
+
.sort((a, b) => a.position - b.position)
|
|
189
|
+
.map(option => (h("smoothly-slot-elements", { ref: e => restoreListener(e, option), clone: false, nodes: option.clone }))))));
|
|
148
190
|
}
|
|
149
191
|
static get is() { return "smoothly-picker-menu"; }
|
|
150
192
|
static get encapsulation() { return "scoped"; }
|
|
@@ -165,7 +207,7 @@ export class SmoothlyPickerMenu {
|
|
|
165
207
|
"mutable": false,
|
|
166
208
|
"complexType": {
|
|
167
209
|
"original": "Looks",
|
|
168
|
-
"resolved": "\"border\" | \"grid\" | \"line\" | \"plain\"",
|
|
210
|
+
"resolved": "\"border\" | \"grid\" | \"line\" | \"plain\" | \"transparent\"",
|
|
169
211
|
"references": {
|
|
170
212
|
"Looks": {
|
|
171
213
|
"location": "import",
|
|
@@ -182,6 +224,24 @@ export class SmoothlyPickerMenu {
|
|
|
182
224
|
"attribute": "looks",
|
|
183
225
|
"reflect": false
|
|
184
226
|
},
|
|
227
|
+
"open": {
|
|
228
|
+
"type": "boolean",
|
|
229
|
+
"mutable": false,
|
|
230
|
+
"complexType": {
|
|
231
|
+
"original": "boolean",
|
|
232
|
+
"resolved": "boolean",
|
|
233
|
+
"references": {}
|
|
234
|
+
},
|
|
235
|
+
"required": false,
|
|
236
|
+
"optional": false,
|
|
237
|
+
"docs": {
|
|
238
|
+
"tags": [],
|
|
239
|
+
"text": ""
|
|
240
|
+
},
|
|
241
|
+
"attribute": "open",
|
|
242
|
+
"reflect": true,
|
|
243
|
+
"defaultValue": "false"
|
|
244
|
+
},
|
|
185
245
|
"multiple": {
|
|
186
246
|
"type": "boolean",
|
|
187
247
|
"mutable": false,
|
|
@@ -265,7 +325,9 @@ export class SmoothlyPickerMenu {
|
|
|
265
325
|
"created": {},
|
|
266
326
|
"search": {},
|
|
267
327
|
"valid": {},
|
|
268
|
-
"display": {}
|
|
328
|
+
"display": {},
|
|
329
|
+
"flip": {},
|
|
330
|
+
"flipChecked": {}
|
|
269
331
|
};
|
|
270
332
|
}
|
|
271
333
|
static get events() {
|
|
@@ -313,12 +375,21 @@ export class SmoothlyPickerMenu {
|
|
|
313
375
|
static get elementRef() { return "element"; }
|
|
314
376
|
static get watchers() {
|
|
315
377
|
return [{
|
|
378
|
+
"propName": "open",
|
|
379
|
+
"methodName": "openChange"
|
|
380
|
+
}, {
|
|
316
381
|
"propName": "readonly",
|
|
317
382
|
"methodName": "readonlyChanged"
|
|
318
383
|
}];
|
|
319
384
|
}
|
|
320
385
|
static get listeners() {
|
|
321
386
|
return [{
|
|
387
|
+
"name": "scroll",
|
|
388
|
+
"method": "scrollHandler",
|
|
389
|
+
"target": "window",
|
|
390
|
+
"capture": false,
|
|
391
|
+
"passive": true
|
|
392
|
+
}, {
|
|
322
393
|
"name": "smoothlyPickerOptionLoad",
|
|
323
394
|
"method": "optionLoadHandler",
|
|
324
395
|
"target": undefined,
|