smoothly 1.112.0 → 1.113.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/loader.cjs.js +1 -1
- package/dist/cjs/smoothly-app_98.cjs.entry.js +228 -176
- package/dist/cjs/smoothly-app_98.cjs.entry.js.map +1 -1
- package/dist/cjs/smoothly-submit.cjs.entry.js +1 -1
- package/dist/cjs/smoothly-trigger-sink.cjs.entry.js +1 -1
- package/dist/cjs/smoothly-trigger-source.cjs.entry.js +1 -1
- package/dist/cjs/smoothly.cjs.js +1 -1
- package/dist/collection/components/input/demo/standard/index.js +1 -1
- package/dist/collection/components/input/demo/standard/index.js.map +1 -1
- package/dist/collection/components/input/select/index.js +121 -133
- package/dist/collection/components/input/select/index.js.map +1 -1
- package/dist/collection/components/input/select/layout.js +21 -0
- package/dist/collection/components/input/select/layout.js.map +1 -0
- package/dist/collection/components/input/select/menu.js +33 -0
- package/dist/collection/components/input/select/menu.js.map +1 -0
- package/dist/collection/components/input/select/scroll.js +14 -0
- package/dist/collection/components/input/select/scroll.js.map +1 -0
- package/dist/collection/components/input/select/style.css +72 -64
- package/dist/collection/components/input/submit/index.js +1 -1
- package/dist/collection/components/item/index.js +1 -1
- package/dist/collection/components/label/index.js +2 -2
- package/dist/collection/components/lazy/index.js +1 -1
- package/dist/collection/components/load-more/index.js +1 -1
- package/dist/collection/components/modal/index.js +2 -2
- package/dist/collection/components/notification/index.js +1 -1
- package/dist/collection/components/notifier/index.js +1 -1
- package/dist/collection/components/spinner/index.js +2 -2
- package/dist/collection/components/submit/index.js +1 -1
- package/dist/collection/components/summary/index.js +1 -1
- package/dist/collection/components/table/body/index.js +1 -1
- package/dist/collection/components/table/cell/index.js +1 -1
- package/dist/collection/components/table/demo/colspan/index.js +1 -1
- package/dist/collection/components/table/demo/filler-row/index.js +1 -1
- package/dist/collection/components/table/demo/group/index.js +1 -1
- package/dist/collection/components/table/demo/index.js +1 -1
- package/dist/collection/components/table/demo/nested-no-cell/index.js +2 -2
- package/dist/collection/components/table/demo/nested-no-cell/inner/index.js +1 -1
- package/dist/collection/components/table/demo/simple/simple.js +1 -1
- package/dist/collection/components/table/expandable/cell/index.js +1 -1
- package/dist/collection/components/table/expandable/row/index.js +1 -1
- package/dist/collection/components/table/filler-row/index.js +1 -1
- package/dist/collection/components/table/foot/index.js +1 -1
- package/dist/collection/components/table/group/index.js +1 -1
- package/dist/collection/components/table/head/index.js +2 -2
- package/dist/collection/components/table/index.js +1 -1
- package/dist/collection/components/table/row/index.js +1 -1
- package/dist/collection/components/tabs/demo/index.js +1 -1
- package/dist/collection/components/tabs/tab/index.js +1 -1
- package/dist/collection/components/theme/color/index.js +1 -1
- package/dist/collection/components/theme/demo/index.js +1 -1
- package/dist/collection/components/theme/guide/index.js +8 -8
- package/dist/collection/components/theme/picker/index.js +2 -2
- package/dist/collection/components/toggle-switch/demo/index.js +1 -1
- package/dist/collection/components/toggle-switch/index.js +1 -1
- package/dist/collection/components/trigger/index.js +1 -1
- package/dist/collection/components/trigger/sink/index.js +1 -1
- package/dist/collection/components/trigger/source/index.js +1 -1
- package/dist/components/{p-iucZC6z5.js → p-0vl7fnbi.js} +2 -2
- package/dist/components/{p-R4uIvvER.js → p-7ReeDB-R.js} +2 -2
- package/dist/components/{p-D1uYEo7L.js → p-97N6vnZd.js} +2 -2
- package/dist/components/{p-BaGuG5hS.js → p-9Fc5vWzs.js} +2 -2
- package/dist/components/{p-CtN3gqjJ.js → p-B11YJh32.js} +2 -2
- package/dist/components/{p-DTqtObrT.js → p-B6W5V130.js} +2 -2
- package/dist/components/{p-C9zTTp-4.js → p-B7ws0a8Z.js} +2 -2
- package/dist/components/{p-Bm-gpoFa.js → p-BDW8BGmy.js} +2 -2
- package/dist/components/{p-CsLlJDsh.js → p-BEQ2yAjW.js} +2 -2
- package/dist/components/{p-nrkV1PqR.js → p-BMHv8WTp.js} +2 -2
- package/dist/components/{p-D58kSmOp.js → p-BZJNdp6g.js} +2 -2
- package/dist/components/{p-v06atw3t.js → p-B_Tu52N5.js} +2 -2
- package/dist/components/p-BdqxED0P.js +2 -0
- package/dist/components/{p-DwYc62Ls.js → p-Bh2x2l2j.js} +2 -2
- package/dist/components/p-BnKGlfV9.js +2 -0
- package/dist/components/{p-DgaHxdNI.js → p-BpBeeNcM.js} +2 -2
- package/dist/components/{p-B3OjIxsE.js → p-BqODWrES.js} +2 -2
- package/dist/components/p-BrrLEO2B.js +2 -0
- package/dist/components/{p-CqyInbXs.js → p-Bufbdh4o.js} +2 -2
- package/dist/components/p-BxsOj_LX.js +2 -0
- package/dist/components/{p-BDhPxj59.js → p-BznhH5yZ.js} +2 -2
- package/dist/components/{p-BNnhxQyl.js → p-C-dGqk3e.js} +2 -2
- package/dist/components/{p-Bj9DsW03.js → p-C0XPq5lI.js} +2 -2
- package/dist/components/{p-CG636AEF.js → p-C5JaWzfu.js} +2 -2
- package/dist/components/{p-BaBGzDg_.js → p-CCzyYE1m.js} +2 -2
- package/dist/components/{p-jatJrx5f.js → p-CDetFhB9.js} +2 -2
- package/dist/components/{p-CKrPTQ_S.js → p-CGg8GrGq.js} +2 -2
- package/dist/components/p-CLN-EYZz.js +2 -0
- package/dist/components/{p-CottiZWN.js.map → p-CLN-EYZz.js.map} +1 -1
- package/dist/components/p-CMEyMMZz.js +2 -0
- package/dist/components/{p-CdgiqBtD.js.map → p-CMEyMMZz.js.map} +1 -1
- package/dist/components/{p-nHKstm2X.js → p-COTO4dlW.js} +2 -2
- package/dist/components/{p-CuMoDdaf.js → p-CXEfxOpA.js} +2 -2
- package/dist/components/p-CZGfvbsC.js +2 -0
- package/dist/components/{p-BQIS-JBV.js → p-CbWiiNJL.js} +2 -2
- package/dist/components/{p-DZ4ogW8V.js → p-Cct10sTX.js} +2 -2
- package/dist/components/p-Cgowjgod.js +2 -0
- package/dist/components/{p-DBuVH8IL.js → p-CjAkXCwI.js} +2 -2
- package/dist/components/{p-CioJtwj-.js → p-CjknknP6.js} +2 -2
- package/dist/components/{p-DdTTiJbE.js → p-CsHiDnB-.js} +2 -2
- package/dist/components/{p-CVH3vlKv.js → p-CuC7MNAM.js} +2 -2
- package/dist/components/{p-i8IFRTdL.js → p-Cw-_pWl-.js} +2 -2
- package/dist/components/{p-DnLJBwZR.js → p-D4LmYvoM.js} +2 -2
- package/dist/components/{p-DMzn0Iz0.js → p-D4PyTfe4.js} +2 -2
- package/dist/components/p-D4fagxgG.js +2 -0
- package/dist/components/p-D8jJZbTy.js +2 -0
- package/dist/components/p-D8jJZbTy.js.map +1 -0
- package/dist/components/{p-ByWVc-XC.js → p-DGxkSNZ-.js} +2 -2
- package/dist/components/{p-BS2SWUX6.js → p-DKir2dIt.js} +2 -2
- package/dist/components/{p-CF5IKGi5.js → p-DRiOEv4L.js} +2 -2
- package/dist/components/{p-DVuQ4t_X.js → p-DTOzpQD8.js} +2 -2
- package/dist/components/{p-CZ6kkjYF.js → p-DVbSVIVZ.js} +2 -2
- package/dist/components/{p-CjdBPauI.js → p-DbS9bWfm.js} +2 -2
- package/dist/components/{p-BqAN7jax.js → p-DdXfvS4U.js} +2 -2
- package/dist/components/p-DkxTx6nY.js +2 -0
- package/dist/components/{p-t3cG0BK6.js.map → p-DkxTx6nY.js.map} +1 -1
- package/dist/components/{p-BX6yRNGo.js → p-Dt4cCJEp.js} +2 -2
- package/dist/components/{p-Bp9BMsim.js → p-DtoC1d2_.js} +2 -2
- package/dist/components/{p-BPh3sXo6.js → p-DvF8zgEi.js} +2 -2
- package/dist/components/{p-CR1YZ3na.js → p-DxVl-YSW.js} +2 -2
- package/dist/components/{p-DSsOLbj6.js → p-DyL_ilIk.js} +2 -2
- package/dist/components/p-JB57brc4.js +2 -0
- package/dist/components/p-JLn3QBuQ.js +2 -0
- package/dist/components/{p-Dekg3IGr.js.map → p-JLn3QBuQ.js.map} +1 -1
- package/dist/components/{p-Dx5PGIAk.js → p-JdwWRJjd.js} +2 -2
- package/dist/components/{p-CTPT9Ngc.js → p-MCxlBxSA.js} +2 -2
- package/dist/components/{p-BiwhssQ8.js → p-MNhi5te8.js} +2 -2
- package/dist/components/p-OV_wRej-.js +2 -0
- package/dist/components/p-OfpR2_fh.js +2 -0
- package/dist/components/p-OfpR2_fh.js.map +1 -0
- package/dist/components/{p-C_f8s6n5.js → p-Q-gVll-_.js} +2 -2
- package/dist/components/{p-CGG77xzV.js → p-Qf8o2d67.js} +2 -2
- package/dist/components/{p-DXHBXAV0.js → p-V6FzDWfL.js} +2 -2
- package/dist/components/p-W-kaGeCx.js +2 -0
- package/dist/components/{p-Mk_F6MCP.js.map → p-W-kaGeCx.js.map} +1 -1
- package/dist/components/{p-Bs8X_nDB.js → p-WzQNLGYx.js} +2 -2
- package/dist/components/{p-1KOtWYkC.js → p-eptsxAXs.js} +2 -2
- package/dist/components/{p-D2FsRCII.js → p-fjRiTKvl.js} +2 -2
- package/dist/components/{p-C3__jhwf.js → p-gJF_-tuy.js} +2 -2
- package/dist/components/p-h1R5xtdy.js +2 -0
- package/dist/components/{p-BGKOGyFA.js → p-hcVaU3nW.js} +2 -2
- package/dist/components/{p-BRkEF66h.js → p-jlska1pM.js} +2 -2
- package/dist/components/{p-DKggy9E3.js → p-oWil-NTX.js} +2 -2
- package/dist/components/{p-CrxXCTnH.js → p-pYGmgv_e.js} +2 -2
- package/dist/components/p-rRkypR5s.js +2 -0
- package/dist/components/{p-CRTkSTv3.js → p-uCXQl-5J.js} +2 -2
- package/dist/components/{p-CUiFFtAw.js → p-uWmGtcyP.js} +2 -2
- package/dist/components/{p-D7cDUGTe.js → p-xbCL6ChL.js} +2 -2
- package/dist/components/smoothly-app-demo.js +1 -1
- package/dist/components/smoothly-app-room.js +1 -1
- package/dist/components/smoothly-app.js +1 -1
- package/dist/components/smoothly-button-demo-standard.js +1 -1
- package/dist/components/smoothly-button-demo.js +1 -1
- package/dist/components/smoothly-calendar.js +1 -1
- package/dist/components/smoothly-dialog-demo.js +1 -1
- package/dist/components/smoothly-dialog.js +1 -1
- package/dist/components/smoothly-display-demo.js +1 -1
- package/dist/components/smoothly-form-demo-all.js +1 -1
- package/dist/components/smoothly-form-demo-card.js +1 -1
- package/dist/components/smoothly-form-demo-controlled.js +1 -1
- package/dist/components/smoothly-form-demo-date-range.js +1 -1
- package/dist/components/smoothly-form-demo-date.js +1 -1
- package/dist/components/smoothly-form-demo-login.js +1 -1
- package/dist/components/smoothly-form-demo-pet.js +1 -1
- package/dist/components/smoothly-form-demo-prices.js +1 -1
- package/dist/components/smoothly-form-demo-schedule.js +1 -1
- package/dist/components/smoothly-form-demo-transparent.js +1 -1
- package/dist/components/smoothly-form-demo-typed.js +1 -1
- package/dist/components/smoothly-form-demo.js +1 -1
- package/dist/components/smoothly-form.js +1 -1
- package/dist/components/smoothly-icon-demo.js +1 -1
- package/dist/components/smoothly-input-checkbox-demo.js +1 -1
- package/dist/components/smoothly-input-checkbox.js +1 -1
- package/dist/components/smoothly-input-clear.js +1 -1
- package/dist/components/smoothly-input-color-demo.js +1 -1
- package/dist/components/smoothly-input-color.js +1 -1
- package/dist/components/smoothly-input-date-demo.js +1 -1
- package/dist/components/smoothly-input-date-range.js +1 -1
- package/dist/components/smoothly-input-date-time.js +1 -1
- package/dist/components/smoothly-input-date.js +1 -1
- package/dist/components/smoothly-input-demo-radio.js +1 -1
- package/dist/components/smoothly-input-demo-standard.js +1 -1
- package/dist/components/smoothly-input-demo-user-input.js +1 -1
- package/dist/components/smoothly-input-demo.js +1 -1
- package/dist/components/smoothly-input-file.js +1 -1
- package/dist/components/smoothly-input-month.js +1 -1
- package/dist/components/smoothly-input-price-demo.js +1 -1
- package/dist/components/smoothly-input-radio-item.js +1 -1
- package/dist/components/smoothly-input-radio.js +1 -1
- package/dist/components/smoothly-input-range-demo.js +1 -1
- package/dist/components/smoothly-input-range.js +1 -1
- package/dist/components/smoothly-input-reset.js +1 -1
- package/dist/components/smoothly-input-select.js +1 -1
- package/dist/components/smoothly-input-submit.js +1 -1
- package/dist/components/smoothly-input.js +1 -1
- package/dist/components/smoothly-item.js +1 -1
- package/dist/components/smoothly-label.js +1 -1
- package/dist/components/smoothly-lazy.js +1 -1
- package/dist/components/smoothly-load-more.js +1 -1
- package/dist/components/smoothly-modal.js +1 -1
- package/dist/components/smoothly-notification.js +1 -1
- package/dist/components/smoothly-notifier.js +1 -1
- package/dist/components/smoothly-spinner.js +1 -1
- package/dist/components/smoothly-submit.js +1 -1
- package/dist/components/smoothly-summary.js +1 -1
- package/dist/components/smoothly-tab.js +1 -1
- package/dist/components/smoothly-table-body.js +1 -1
- package/dist/components/smoothly-table-cell.js +1 -1
- package/dist/components/smoothly-table-demo-colspan.js +1 -1
- package/dist/components/smoothly-table-demo-filler-row.js +1 -1
- package/dist/components/smoothly-table-demo-group.js +1 -1
- package/dist/components/smoothly-table-demo-nested-no-cell-inner.js +1 -1
- package/dist/components/smoothly-table-demo-nested-no-cell.js +1 -1
- package/dist/components/smoothly-table-demo-simple.js +1 -1
- package/dist/components/smoothly-table-demo.js +1 -1
- package/dist/components/smoothly-table-expandable-cell.js +1 -1
- package/dist/components/smoothly-table-expandable-row.js +1 -1
- package/dist/components/smoothly-table-filler-row.js +1 -1
- package/dist/components/smoothly-table-foot.js +1 -1
- package/dist/components/smoothly-table-head.js +1 -1
- package/dist/components/smoothly-table-row-group.js +1 -1
- package/dist/components/smoothly-table-row.js +1 -1
- package/dist/components/smoothly-table.js +1 -1
- package/dist/components/smoothly-tabs-demo.js +1 -1
- package/dist/components/smoothly-theme-color.js +1 -1
- package/dist/components/smoothly-theme-colors.js +1 -1
- package/dist/components/smoothly-theme-demo.js +1 -1
- package/dist/components/smoothly-theme-guide.js +1 -1
- package/dist/components/smoothly-theme-picker.js +1 -1
- package/dist/components/smoothly-toggle-switch-demo.js +1 -1
- package/dist/components/smoothly-toggle-switch.js +1 -1
- package/dist/components/smoothly-trigger-sink.js +1 -1
- package/dist/components/smoothly-trigger-source.js +1 -1
- package/dist/components/smoothly-trigger.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/smoothly-app_98.entry.js +228 -176
- package/dist/esm/smoothly-app_98.entry.js.map +1 -1
- package/dist/esm/smoothly-submit.entry.js +1 -1
- package/dist/esm/smoothly-trigger-sink.entry.js +1 -1
- package/dist/esm/smoothly-trigger-source.entry.js +1 -1
- package/dist/esm/smoothly.js +1 -1
- package/dist/smoothly/{p-5e123fe2.entry.js → p-118fd1b8.entry.js} +2 -2
- package/dist/smoothly/{p-13d05a22.entry.js → p-2cd32901.entry.js} +2 -2
- package/dist/smoothly/{p-7a59c6a9.entry.js → p-baabb62e.entry.js} +2 -2
- package/dist/smoothly/{p-23badc13.entry.js → p-d2f00811.entry.js} +2 -2
- package/dist/smoothly/p-d2f00811.entry.js.map +1 -0
- package/dist/smoothly/smoothly.esm.js +1 -1
- package/dist/types/components/input/select/index.d.ts +18 -9
- package/dist/types/components/input/select/layout.d.ts +6 -0
- package/dist/types/components/input/select/menu.d.ts +10 -0
- package/dist/types/components/input/select/scroll.d.ts +3 -0
- package/dist/types/components.d.ts +5 -3
- package/package.json +1 -1
- package/dist/components/p-3dApo-uA.js +0 -2
- package/dist/components/p-4y8eF-fy.js +0 -2
- package/dist/components/p-BQSKXVmh.js +0 -2
- package/dist/components/p-CDQM-sOT.js +0 -2
- package/dist/components/p-CMiST1Tm.js +0 -2
- package/dist/components/p-CdgiqBtD.js +0 -2
- package/dist/components/p-CottiZWN.js +0 -2
- package/dist/components/p-CqSJ0pgl.js +0 -2
- package/dist/components/p-CrcmijCR.js +0 -2
- package/dist/components/p-Cvl7cLxT.js +0 -2
- package/dist/components/p-D2cHi1Nb.js +0 -2
- package/dist/components/p-D9qp7S6Q.js +0 -2
- package/dist/components/p-DbIjGsJb.js +0 -2
- package/dist/components/p-DbIjGsJb.js.map +0 -1
- package/dist/components/p-Dekg3IGr.js +0 -2
- package/dist/components/p-Mk_F6MCP.js +0 -2
- package/dist/components/p-RNCr3p17.js +0 -2
- package/dist/components/p-RNCr3p17.js.map +0 -1
- package/dist/components/p-t3cG0BK6.js +0 -2
- package/dist/components/p-thKhutym.js +0 -2
- package/dist/smoothly/p-23badc13.entry.js.map +0 -1
- /package/dist/components/{p-iucZC6z5.js.map → p-0vl7fnbi.js.map} +0 -0
- /package/dist/components/{p-R4uIvvER.js.map → p-7ReeDB-R.js.map} +0 -0
- /package/dist/components/{p-D1uYEo7L.js.map → p-97N6vnZd.js.map} +0 -0
- /package/dist/components/{p-BaGuG5hS.js.map → p-9Fc5vWzs.js.map} +0 -0
- /package/dist/components/{p-CtN3gqjJ.js.map → p-B11YJh32.js.map} +0 -0
- /package/dist/components/{p-DTqtObrT.js.map → p-B6W5V130.js.map} +0 -0
- /package/dist/components/{p-C9zTTp-4.js.map → p-B7ws0a8Z.js.map} +0 -0
- /package/dist/components/{p-Bm-gpoFa.js.map → p-BDW8BGmy.js.map} +0 -0
- /package/dist/components/{p-CsLlJDsh.js.map → p-BEQ2yAjW.js.map} +0 -0
- /package/dist/components/{p-nrkV1PqR.js.map → p-BMHv8WTp.js.map} +0 -0
- /package/dist/components/{p-D58kSmOp.js.map → p-BZJNdp6g.js.map} +0 -0
- /package/dist/components/{p-v06atw3t.js.map → p-B_Tu52N5.js.map} +0 -0
- /package/dist/components/{p-CqSJ0pgl.js.map → p-BdqxED0P.js.map} +0 -0
- /package/dist/components/{p-DwYc62Ls.js.map → p-Bh2x2l2j.js.map} +0 -0
- /package/dist/components/{p-D9qp7S6Q.js.map → p-BnKGlfV9.js.map} +0 -0
- /package/dist/components/{p-DgaHxdNI.js.map → p-BpBeeNcM.js.map} +0 -0
- /package/dist/components/{p-B3OjIxsE.js.map → p-BqODWrES.js.map} +0 -0
- /package/dist/components/{p-3dApo-uA.js.map → p-BrrLEO2B.js.map} +0 -0
- /package/dist/components/{p-CqyInbXs.js.map → p-Bufbdh4o.js.map} +0 -0
- /package/dist/components/{p-CDQM-sOT.js.map → p-BxsOj_LX.js.map} +0 -0
- /package/dist/components/{p-BDhPxj59.js.map → p-BznhH5yZ.js.map} +0 -0
- /package/dist/components/{p-BNnhxQyl.js.map → p-C-dGqk3e.js.map} +0 -0
- /package/dist/components/{p-Bj9DsW03.js.map → p-C0XPq5lI.js.map} +0 -0
- /package/dist/components/{p-CG636AEF.js.map → p-C5JaWzfu.js.map} +0 -0
- /package/dist/components/{p-BaBGzDg_.js.map → p-CCzyYE1m.js.map} +0 -0
- /package/dist/components/{p-jatJrx5f.js.map → p-CDetFhB9.js.map} +0 -0
- /package/dist/components/{p-CKrPTQ_S.js.map → p-CGg8GrGq.js.map} +0 -0
- /package/dist/components/{p-nHKstm2X.js.map → p-COTO4dlW.js.map} +0 -0
- /package/dist/components/{p-CuMoDdaf.js.map → p-CXEfxOpA.js.map} +0 -0
- /package/dist/components/{p-4y8eF-fy.js.map → p-CZGfvbsC.js.map} +0 -0
- /package/dist/components/{p-BQIS-JBV.js.map → p-CbWiiNJL.js.map} +0 -0
- /package/dist/components/{p-DZ4ogW8V.js.map → p-Cct10sTX.js.map} +0 -0
- /package/dist/components/{p-BQSKXVmh.js.map → p-Cgowjgod.js.map} +0 -0
- /package/dist/components/{p-DBuVH8IL.js.map → p-CjAkXCwI.js.map} +0 -0
- /package/dist/components/{p-CioJtwj-.js.map → p-CjknknP6.js.map} +0 -0
- /package/dist/components/{p-DdTTiJbE.js.map → p-CsHiDnB-.js.map} +0 -0
- /package/dist/components/{p-CVH3vlKv.js.map → p-CuC7MNAM.js.map} +0 -0
- /package/dist/components/{p-i8IFRTdL.js.map → p-Cw-_pWl-.js.map} +0 -0
- /package/dist/components/{p-DnLJBwZR.js.map → p-D4LmYvoM.js.map} +0 -0
- /package/dist/components/{p-DMzn0Iz0.js.map → p-D4PyTfe4.js.map} +0 -0
- /package/dist/components/{p-thKhutym.js.map → p-D4fagxgG.js.map} +0 -0
- /package/dist/components/{p-ByWVc-XC.js.map → p-DGxkSNZ-.js.map} +0 -0
- /package/dist/components/{p-BS2SWUX6.js.map → p-DKir2dIt.js.map} +0 -0
- /package/dist/components/{p-CF5IKGi5.js.map → p-DRiOEv4L.js.map} +0 -0
- /package/dist/components/{p-DVuQ4t_X.js.map → p-DTOzpQD8.js.map} +0 -0
- /package/dist/components/{p-CZ6kkjYF.js.map → p-DVbSVIVZ.js.map} +0 -0
- /package/dist/components/{p-CjdBPauI.js.map → p-DbS9bWfm.js.map} +0 -0
- /package/dist/components/{p-BqAN7jax.js.map → p-DdXfvS4U.js.map} +0 -0
- /package/dist/components/{p-BX6yRNGo.js.map → p-Dt4cCJEp.js.map} +0 -0
- /package/dist/components/{p-Bp9BMsim.js.map → p-DtoC1d2_.js.map} +0 -0
- /package/dist/components/{p-BPh3sXo6.js.map → p-DvF8zgEi.js.map} +0 -0
- /package/dist/components/{p-CR1YZ3na.js.map → p-DxVl-YSW.js.map} +0 -0
- /package/dist/components/{p-DSsOLbj6.js.map → p-DyL_ilIk.js.map} +0 -0
- /package/dist/components/{p-Cvl7cLxT.js.map → p-JB57brc4.js.map} +0 -0
- /package/dist/components/{p-Dx5PGIAk.js.map → p-JdwWRJjd.js.map} +0 -0
- /package/dist/components/{p-CTPT9Ngc.js.map → p-MCxlBxSA.js.map} +0 -0
- /package/dist/components/{p-BiwhssQ8.js.map → p-MNhi5te8.js.map} +0 -0
- /package/dist/components/{p-D2cHi1Nb.js.map → p-OV_wRej-.js.map} +0 -0
- /package/dist/components/{p-C_f8s6n5.js.map → p-Q-gVll-_.js.map} +0 -0
- /package/dist/components/{p-CGG77xzV.js.map → p-Qf8o2d67.js.map} +0 -0
- /package/dist/components/{p-DXHBXAV0.js.map → p-V6FzDWfL.js.map} +0 -0
- /package/dist/components/{p-Bs8X_nDB.js.map → p-WzQNLGYx.js.map} +0 -0
- /package/dist/components/{p-1KOtWYkC.js.map → p-eptsxAXs.js.map} +0 -0
- /package/dist/components/{p-D2FsRCII.js.map → p-fjRiTKvl.js.map} +0 -0
- /package/dist/components/{p-C3__jhwf.js.map → p-gJF_-tuy.js.map} +0 -0
- /package/dist/components/{p-CrcmijCR.js.map → p-h1R5xtdy.js.map} +0 -0
- /package/dist/components/{p-BGKOGyFA.js.map → p-hcVaU3nW.js.map} +0 -0
- /package/dist/components/{p-BRkEF66h.js.map → p-jlska1pM.js.map} +0 -0
- /package/dist/components/{p-DKggy9E3.js.map → p-oWil-NTX.js.map} +0 -0
- /package/dist/components/{p-CrxXCTnH.js.map → p-pYGmgv_e.js.map} +0 -0
- /package/dist/components/{p-CMiST1Tm.js.map → p-rRkypR5s.js.map} +0 -0
- /package/dist/components/{p-CRTkSTv3.js.map → p-uCXQl-5J.js.map} +0 -0
- /package/dist/components/{p-CUiFFtAw.js.map → p-uWmGtcyP.js.map} +0 -0
- /package/dist/components/{p-D7cDUGTe.js.map → p-xbCL6ChL.js.map} +0 -0
- /package/dist/smoothly/{p-5e123fe2.entry.js.map → p-118fd1b8.entry.js.map} +0 -0
- /package/dist/smoothly/{p-13d05a22.entry.js.map → p-2cd32901.entry.js.map} +0 -0
- /package/dist/smoothly/{p-7a59c6a9.entry.js.map → p-baabb62e.entry.js.map} +0 -0
|
@@ -2,6 +2,9 @@ import { h, Host, } from "@stencil/core";
|
|
|
2
2
|
import { Item } from "../../item/Item";
|
|
3
3
|
import { Editable } from "../Editable";
|
|
4
4
|
import { Input } from "../Input";
|
|
5
|
+
import { layout } from "./layout";
|
|
6
|
+
import { menu } from "./menu";
|
|
7
|
+
import { scroll } from "./scroll";
|
|
5
8
|
export class SmoothlyInputSelect {
|
|
6
9
|
constructor() {
|
|
7
10
|
this.isDifferentFromInitial = false;
|
|
@@ -40,18 +43,24 @@ export class SmoothlyInputSelect {
|
|
|
40
43
|
this.onSelectedChange();
|
|
41
44
|
}
|
|
42
45
|
componentDidRender() {
|
|
43
|
-
var _a
|
|
44
|
-
|
|
46
|
+
var _a;
|
|
47
|
+
(_a = this.itemHeight) !== null && _a !== void 0 ? _a : (this.itemHeight = layout.firstItemHeight(this.items));
|
|
45
48
|
if (this.menuHeight && this.itemHeight) {
|
|
46
|
-
(
|
|
47
|
-
? this.menuHeight
|
|
48
|
-
: `${this.itemHeight * +((_d = (_c = this.menuHeight.match(/^(\d+(\.\d+)?|\.\d+)/g)) === null || _c === void 0 ? void 0 : _c[0]) !== null && _d !== void 0 ? _d : "10")}px`);
|
|
49
|
+
layout.applyMenuHeight(this.element, this.itemHeight, this.menuHeight);
|
|
49
50
|
}
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
layout.applyElementHeight(this.element);
|
|
52
|
+
const justOpened = this.open && !this.lastOpen;
|
|
53
|
+
if (justOpened && this.ordered) {
|
|
52
54
|
this.scrollToSelected();
|
|
53
55
|
}
|
|
54
56
|
}
|
|
57
|
+
scrollToSelected() {
|
|
58
|
+
const selectedItem = menu.findFirstSelected(this.items);
|
|
59
|
+
if (selectedItem) {
|
|
60
|
+
menu.markOnly(this.items, selectedItem);
|
|
61
|
+
scroll.centerInView(this.dropdownElement, selectedItem, "instant");
|
|
62
|
+
}
|
|
63
|
+
}
|
|
55
64
|
async disconnectedCallback() {
|
|
56
65
|
if (!this.element.isConnected) {
|
|
57
66
|
await this.unregister();
|
|
@@ -85,15 +94,15 @@ export class SmoothlyInputSelect {
|
|
|
85
94
|
this.selected = [...this.initialValue];
|
|
86
95
|
this.displaySelected();
|
|
87
96
|
this.isDifferentFromInitial = false;
|
|
88
|
-
this.
|
|
97
|
+
this.closeMenu();
|
|
89
98
|
}
|
|
90
99
|
async clear() {
|
|
91
100
|
var _a;
|
|
92
101
|
if (this.clearable) {
|
|
93
102
|
this.selected.forEach(item => (item.selected = item.hidden = false));
|
|
94
103
|
this.selected = [];
|
|
95
|
-
if (this.
|
|
96
|
-
this.
|
|
104
|
+
if (this.displayElement) {
|
|
105
|
+
this.displayElement.innerHTML = (_a = this.placeholder) !== null && _a !== void 0 ? _a : "";
|
|
97
106
|
}
|
|
98
107
|
}
|
|
99
108
|
}
|
|
@@ -121,9 +130,9 @@ export class SmoothlyInputSelect {
|
|
|
121
130
|
this.observer.publish();
|
|
122
131
|
}
|
|
123
132
|
async smoothlyInputLoadHandler(event) {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
133
|
+
const fromSelf = event.target && "name" in event.target && event.target.name !== this.name;
|
|
134
|
+
const fromEndSlot = event.composedPath().some(e => e == this.iconsElement);
|
|
135
|
+
if (fromSelf || fromEndSlot) {
|
|
127
136
|
event.stopPropagation();
|
|
128
137
|
}
|
|
129
138
|
else if (Item.Element.is(event.target)) {
|
|
@@ -135,7 +144,9 @@ export class SmoothlyInputSelect {
|
|
|
135
144
|
this.displaySelected();
|
|
136
145
|
}
|
|
137
146
|
onWindowClick(event) {
|
|
138
|
-
!event.composedPath().includes(this.element)
|
|
147
|
+
if (this.open && !event.composedPath().includes(this.element)) {
|
|
148
|
+
this.closeMenu();
|
|
149
|
+
}
|
|
139
150
|
}
|
|
140
151
|
onItemDomChange(e) {
|
|
141
152
|
e.stopPropagation();
|
|
@@ -163,144 +174,120 @@ export class SmoothlyInputSelect {
|
|
|
163
174
|
onClosed(open, before) {
|
|
164
175
|
this.lastOpen = before;
|
|
165
176
|
if (!open) {
|
|
166
|
-
const markedItem = this.items
|
|
177
|
+
const markedItem = menu.findFirstMarked(this.items);
|
|
167
178
|
if (markedItem) {
|
|
168
179
|
markedItem.marked = false;
|
|
169
180
|
}
|
|
170
181
|
}
|
|
171
182
|
this.smoothlySelectOpen.emit(open);
|
|
172
183
|
}
|
|
173
|
-
handleShowOptions(event) {
|
|
174
|
-
const wasButtonClicked = (event === null || event === void 0 ? void 0 : event.composedPath().some(e => e == this.iconsDiv)) && !event.composedPath().some(e => e == this.toggle);
|
|
175
|
-
const clickedItem = event === null || event === void 0 ? void 0 : event.composedPath().find((el) => "tagName" in el && el.tagName == "SMOOTHLY-ITEM");
|
|
176
|
-
!this.readonly &&
|
|
177
|
-
!this.disabled &&
|
|
178
|
-
!(clickedItem && this.items.includes(clickedItem) && this.multiple) &&
|
|
179
|
-
!wasButtonClicked &&
|
|
180
|
-
(this.open = !this.open);
|
|
181
|
-
this.filter = "";
|
|
182
|
-
}
|
|
183
184
|
areValuesEqual(selected, initialValue) {
|
|
184
185
|
return selected.length === initialValue.length && initialValue.every(value => selected.includes(value));
|
|
185
186
|
}
|
|
186
187
|
displaySelected() {
|
|
187
188
|
var _a;
|
|
188
189
|
const displayString = this.selected.map(option => `<div>${option.innerHTML}</div>`).join("");
|
|
189
|
-
this.
|
|
190
|
-
(this.
|
|
190
|
+
this.displayElement &&
|
|
191
|
+
(this.displayElement.innerHTML = this.selected.length > 0 ? displayString : ((_a = this.placeholder) !== null && _a !== void 0 ? _a : ""));
|
|
191
192
|
}
|
|
192
193
|
onKeyDown(event) {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
}
|
|
214
|
-
break;
|
|
215
|
-
case "Backspace":
|
|
216
|
-
this.filter = event.ctrlKey ? "" : this.filter.slice(0, -1);
|
|
217
|
-
break;
|
|
218
|
-
case "Enter":
|
|
219
|
-
const result = this.items.find(item => item.marked);
|
|
220
|
-
if (result === null || result === void 0 ? void 0 : result.value) {
|
|
221
|
-
result.selected = !result.selected;
|
|
222
|
-
}
|
|
223
|
-
if (!this.multiple) {
|
|
224
|
-
this.open = false;
|
|
225
|
-
this.filter = "";
|
|
226
|
-
}
|
|
227
|
-
break;
|
|
228
|
-
case "Tab":
|
|
229
|
-
this.open = false;
|
|
230
|
-
break;
|
|
231
|
-
default:
|
|
232
|
-
if (event.key.length == 1) {
|
|
233
|
-
this.filter += event.key;
|
|
234
|
-
}
|
|
235
|
-
break;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
else {
|
|
239
|
-
switch (event.key) {
|
|
240
|
-
case "Enter":
|
|
241
|
-
case " ":
|
|
242
|
-
this.handleShowOptions();
|
|
243
|
-
break;
|
|
244
|
-
case "ArrowDown":
|
|
245
|
-
this.handleShowOptions();
|
|
246
|
-
this.move(1);
|
|
247
|
-
break;
|
|
248
|
-
case "ArrowUp":
|
|
249
|
-
this.handleShowOptions();
|
|
250
|
-
this.move(-1);
|
|
251
|
-
break;
|
|
252
|
-
case "Tab":
|
|
253
|
-
break;
|
|
254
|
-
default:
|
|
255
|
-
this.handleShowOptions();
|
|
256
|
-
if (event.key.length == 1) {
|
|
257
|
-
this.filter += event.key;
|
|
258
|
-
}
|
|
259
|
-
break;
|
|
260
|
-
}
|
|
261
|
-
}
|
|
194
|
+
event.stopPropagation();
|
|
195
|
+
const key = event.key;
|
|
196
|
+
if (key == "ArrowUp" || key == "ArrowDown") {
|
|
197
|
+
event.preventDefault();
|
|
198
|
+
this.handlerNavigate(key);
|
|
199
|
+
}
|
|
200
|
+
else if (key == "Escape") {
|
|
201
|
+
event.preventDefault();
|
|
202
|
+
this.handleEscape();
|
|
203
|
+
}
|
|
204
|
+
else if (key == "Enter") {
|
|
205
|
+
event.preventDefault();
|
|
206
|
+
this.handleEnter();
|
|
207
|
+
}
|
|
208
|
+
else if (key == " ") {
|
|
209
|
+
event.preventDefault();
|
|
210
|
+
this.openMenu();
|
|
211
|
+
}
|
|
212
|
+
else if (this.open && key == "Tab") {
|
|
213
|
+
this.closeMenu();
|
|
262
214
|
}
|
|
263
215
|
}
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
this.items.map(item => (item.marked = false));
|
|
268
|
-
selectedItem.marked = true;
|
|
269
|
-
this.scrollTo(selectedItem, "instant");
|
|
216
|
+
handlerNavigate(key) {
|
|
217
|
+
if (menu.hasVisibleItems(this.items)) {
|
|
218
|
+
this.move(key == "ArrowUp" ? -1 : 1);
|
|
270
219
|
}
|
|
220
|
+
this.openMenu();
|
|
271
221
|
}
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
if (markedIndex == -1) {
|
|
276
|
-
markedIndex = 0;
|
|
222
|
+
handleEscape() {
|
|
223
|
+
if (this.filter) {
|
|
224
|
+
this.resetFilter();
|
|
277
225
|
}
|
|
278
226
|
else {
|
|
279
|
-
|
|
280
|
-
markedIndex = (markedIndex + direction + selectableItems.length) % selectableItems.length;
|
|
227
|
+
this.closeMenu();
|
|
281
228
|
}
|
|
282
|
-
selectableItems[markedIndex].marked = true;
|
|
283
|
-
this.scrollTo(selectableItems[markedIndex], "smooth");
|
|
284
229
|
}
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
(
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
230
|
+
handleEnter() {
|
|
231
|
+
const item = menu.findFirstMarked(this.items);
|
|
232
|
+
if (item === null || item === void 0 ? void 0 : item.value) {
|
|
233
|
+
item.selected = !item.selected;
|
|
234
|
+
}
|
|
235
|
+
if (!this.multiple) {
|
|
236
|
+
this.closeMenu();
|
|
237
|
+
this.resetFilter();
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
move(direction) {
|
|
241
|
+
const { current, next } = menu.next(this.items, direction);
|
|
242
|
+
current && (current.marked = false);
|
|
243
|
+
next.marked = true;
|
|
244
|
+
scroll.centerInView(this.dropdownElement, next, "smooth");
|
|
291
245
|
}
|
|
292
246
|
addItem() {
|
|
293
247
|
this.addedItems = this.addedItems.concat(h("smoothly-item", { value: this.filter, selected: true }, this.filter));
|
|
294
248
|
}
|
|
249
|
+
resetFilter() {
|
|
250
|
+
this.searchElement && (this.searchElement.value = "");
|
|
251
|
+
this.filter = "";
|
|
252
|
+
}
|
|
253
|
+
setFilter(filter) {
|
|
254
|
+
if (filter) {
|
|
255
|
+
this.filter = filter;
|
|
256
|
+
this.openMenu();
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
this.resetFilter();
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
openMenu({ focus } = {}) {
|
|
263
|
+
this.open = true;
|
|
264
|
+
focus && queueMicrotask(() => { var _a; return (_a = this.searchElement) === null || _a === void 0 ? void 0 : _a.focus(); });
|
|
265
|
+
}
|
|
266
|
+
closeMenu() {
|
|
267
|
+
this.open = false;
|
|
268
|
+
this.resetFilter();
|
|
269
|
+
}
|
|
270
|
+
toggleMenu() {
|
|
271
|
+
if (!this.readonly && !this.disabled) {
|
|
272
|
+
this.open ? this.closeMenu() : this.openMenu({ focus: true });
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
onClick(e) {
|
|
276
|
+
const wasIconsClicked = e.composedPath().includes(this.iconsElement) && !e.composedPath().includes(this.toggleElement);
|
|
277
|
+
const wasSearchClicked = e.composedPath().includes(this.searchElement);
|
|
278
|
+
const wasItemClicked = e
|
|
279
|
+
.composedPath()
|
|
280
|
+
.find(element => element instanceof HTMLElement && element.tagName === "SMOOTHLY-ITEM");
|
|
281
|
+
if (!wasIconsClicked && !wasSearchClicked && !(wasItemClicked && this.multiple)) {
|
|
282
|
+
this.toggleMenu();
|
|
283
|
+
}
|
|
284
|
+
}
|
|
295
285
|
render() {
|
|
296
|
-
return (h(Host, { key: '
|
|
297
|
-
|
|
298
|
-
this.
|
|
299
|
-
this.
|
|
300
|
-
} }), this.mutable &&
|
|
301
|
-
e.stopPropagation();
|
|
302
|
-
this.addItem();
|
|
303
|
-
} })))), h("slot", { key: 'a60d0d54bfc5dbae48ec336f92c5556a5ba13b2e' }), this.addedItems)));
|
|
286
|
+
return (h(Host, { key: 'fc69e6b3aa75a286df61522835899bf05893e887', class: { "has-value": this.selected.length !== 0, open: this.open, "has-filter": this.filter !== "" }, onClick: (e) => this.onClick(e) }, h("div", { key: 'dc0215f0d88bb06e505f9392334926e337ede251', class: "select-display", ref: element => (this.displayElement = element) }, this.placeholder), h("div", { key: 'bee374985877632d52d267f69b35bdcf0e59e3a2', class: "icons", ref: element => (this.iconsElement = element) }, h("smoothly-icon", { key: 'd7a72d5df184d7f9196ee8cab6240a71755f89e3', class: "smoothly-invalid", name: "alert-circle", size: "small", tooltip: this.errorMessage }), h("slot", { key: 'f201848287035627b54f3a0eff16c4b2dbc19164', name: "end" }), this.looks == "border" && !this.readonly && (h("smoothly-icon", { key: '4953076b51e480e34240dfa6378839d4a6c215e0', ref: element => (this.toggleElement = element), size: "tiny", name: this.open ? "caret-down-outline" : "caret-forward-outline" }))), h("slot", { key: '58d76a74b9b1c67b238e63fa267ed091a274c534', name: "label" }), h("div", { key: '4266c5f1701da8c0abd861e0bbb093a972d6c56e', class: "dropdown", ref: (el) => (this.dropdownElement = el) }, h("div", { key: 'b775dddd5cbe75d1fe1bfa5cc1c5fe16315abda1', class: "search" }, h("smoothly-icon", { key: '0399e20f7a99b228ba652b6d1d2202e75a3e84a0', name: "search-outline", size: "small" }), h("input", { key: '950d94085d70803847237e0308eac7a7bea1720f', class: "search-input", ref: el => (this.searchElement = el), disabled: this.searchDisabled, onKeyDown: e => this.onKeyDown(e), onInput: e => { var _a, _b; return (e.stopPropagation(), this.setFilter((_b = (_a = this.searchElement) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : "")); }, onPaste: e => { var _a, _b; return (e.stopPropagation(), this.setFilter((_b = (_a = this.searchElement) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : "")); } }), h("smoothly-icon", { key: '10e8603c1bb8b5061a7615f15392b1cbc519a0f5', name: "backspace-outline", size: "small", onClick: () => {
|
|
287
|
+
var _a;
|
|
288
|
+
this.resetFilter();
|
|
289
|
+
(_a = this.searchElement) === null || _a === void 0 ? void 0 : _a.focus();
|
|
290
|
+
} }), this.mutable && h("smoothly-icon", { key: 'bd9f5b3eb6d8ef4f0802878ca327f29ccbd0795e', name: "add", size: "small", onClick: () => this.addItem() })), h("div", { key: '210cc7a519f44cb0ab8800145aa55e02353fba83', class: "menu", hidden: !this.open }, h("slot", { key: '0d159f5f2ceb3ecc45b314f519505982ca4622be' }), this.addedItems))));
|
|
304
291
|
}
|
|
305
292
|
static get is() { return "smoothly-input-select"; }
|
|
306
293
|
static get encapsulation() { return "scoped"; }
|
|
@@ -629,9 +616,16 @@ export class SmoothlyInputSelect {
|
|
|
629
616
|
"type": "string",
|
|
630
617
|
"mutable": false,
|
|
631
618
|
"complexType": {
|
|
632
|
-
"original": "
|
|
619
|
+
"original": "layout.MenuHeight",
|
|
633
620
|
"resolved": "`${number}items` | `${number}px` | `${number}rem` | `${number}vh` | undefined",
|
|
634
|
-
"references": {
|
|
621
|
+
"references": {
|
|
622
|
+
"layout": {
|
|
623
|
+
"location": "import",
|
|
624
|
+
"path": "./layout",
|
|
625
|
+
"id": "src/components/input/select/layout.ts::layout",
|
|
626
|
+
"referenceLocation": "layout"
|
|
627
|
+
}
|
|
628
|
+
}
|
|
635
629
|
},
|
|
636
630
|
"required": false,
|
|
637
631
|
"optional": true,
|
|
@@ -1086,12 +1080,6 @@ export class SmoothlyInputSelect {
|
|
|
1086
1080
|
"target": undefined,
|
|
1087
1081
|
"capture": false,
|
|
1088
1082
|
"passive": false
|
|
1089
|
-
}, {
|
|
1090
|
-
"name": "keydown",
|
|
1091
|
-
"method": "onKeyDown",
|
|
1092
|
-
"target": undefined,
|
|
1093
|
-
"capture": false,
|
|
1094
|
-
"passive": false
|
|
1095
1083
|
}];
|
|
1096
1084
|
}
|
|
1097
1085
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/input/select/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n\tComponent,\n\tComponentWillLoad,\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 { Color, Data } from \"../../../model\"\nimport { Item } from \"../../item/Item\"\nimport { Clearable } from \"../Clearable\"\nimport { Editable } from \"../Editable\"\nimport { Input } from \"../Input\"\nimport { Looks } from \"../Looks\"\n\n@Component({\n\ttag: \"smoothly-input-select\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputSelect implements Input, Editable, Clearable, ComponentWillLoad {\n\tparent: Editable | undefined\n\tisDifferentFromInitial = false\n\tprivate initialValue: HTMLSmoothlyItemElement[] = []\n\tprivate initialValueHandled = false\n\tprivate observer = Editable.Observer.create(this)\n\tprivate displaySelectedElement?: HTMLElement\n\tprivate iconsDiv?: HTMLElement\n\tprivate toggle?: HTMLElement\n\tprivate optionsDiv?: HTMLDivElement\n\tprivate items: HTMLSmoothlyItemElement[] = []\n\tprivate itemHeight: number | undefined\n\t@Element() element: HTMLSmoothlyInputSelectElement\n\t@Prop({ reflect: true }) invalid?: boolean = false\n\t@Prop({ reflect: true }) errorMessage?: string\n\t@Prop({ reflect: true }) name = \"selected\"\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ reflect: true, mutable: true }) looks?: Looks\n\t@Prop({ reflect: true }) showLabel = true\n\t@Prop({ reflect: true, mutable: true }) showSelected?: boolean = true\n\t@Prop({ reflect: true, mutable: true }) readonly = false\n\t@Prop({ reflect: true }) disabled = false\n\t@Prop({ reflect: true }) inCalendar = false\n\t@Prop({ reflect: true }) ordered?: boolean\n\t@Prop({ reflect: true }) multiple = false\n\t@Prop() clearable = true\n\t@Prop({ mutable: true }) defined = false\n\t@Prop({ reflect: true }) placeholder?: string | any\n\t@Prop() menuHeight?: `${number}${\"items\" | \"rem\" | \"px\" | \"vh\"}`\n\t@Prop() required = false\n\t@Prop() searchDisabled = false\n\t@Prop() mutable = false\n\tprivate lastOpen = false\n\t@State() open = false\n\t@State() selected: HTMLSmoothlyItemElement[] = []\n\t@State() filter = \"\"\n\t@State() addedItems: HTMLSmoothlyItemElement[] = []\n\t@Event() smoothlyInput: EventEmitter<Data>\n\t@Event() smoothlyUserInput: EventEmitter<Input.UserInput>\n\t@Event() smoothlyInputLooks: EventEmitter<(looks?: Looks, color?: Color) => void>\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\t@Event() smoothlyFormDisable: EventEmitter<(disabled: boolean) => void>\n\t@Event() smoothlyItemSelect: EventEmitter<HTMLSmoothlyItemElement>\n\t@Event() smoothlySelectOpen: EventEmitter<boolean>\n\n\tcomponentWillLoad(): void | Promise<void> {\n\t\tthis.smoothlyInputLooks.emit(\n\t\t\t(looks, color) => ((this.looks = this.looks ?? looks), !this.color && (this.color = color))\n\t\t)\n\t\tthis.smoothlyInputLoad.emit(parent => (this.parent = parent))\n\t\t!this.readonly && this.smoothlyFormDisable.emit(readonly => (this.readonly = readonly))\n\t\tthis.observer.publish()\n\t}\n\tcomponentDidLoad(): void | Promise<void> {\n\t\tthis.selected && !this.initialValueHandled && (this.initialValue = [...this.selected])\n\t\tthis.initialValueHandled = true\n\t\tthis.onSelectedChange()\n\t}\n\tcomponentDidRender(): void | Promise<void> {\n\t\tthis.itemHeight === undefined && (this.itemHeight = this.items.find(item => item.clientHeight > 0)?.clientHeight)\n\t\tif (this.menuHeight && this.itemHeight) {\n\t\t\tthis.element?.style.setProperty(\n\t\t\t\t\"--menu-height\",\n\t\t\t\t!this.menuHeight.endsWith(\"items\") || this.items.length == 0\n\t\t\t\t\t? this.menuHeight\n\t\t\t\t\t: `${this.itemHeight * +(this.menuHeight.match(/^(\\d+(\\.\\d+)?|\\.\\d+)/g)?.[0] ?? \"10\")}px`\n\t\t\t)\n\t\t}\n\t\tthis.element?.style.setProperty(\"--element-height\", `${this.element.clientHeight}px`)\n\n\t\tif (this.ordered && !this.multiple && this.open && !this.lastOpen) {\n\t\t\tthis.scrollToSelected()\n\t\t}\n\t}\n\tasync disconnectedCallback() {\n\t\tif (!this.element.isConnected) {\n\t\t\tawait this.unregister()\n\t\t}\n\t}\n\t@Watch(\"name\")\n\tnameChange(_: string | undefined, oldName: string | undefined) {\n\t\tInput.formRename(this, oldName)\n\t}\n\t@Method()\n\tasync register() {\n\t\tInput.formAdd(this)\n\t}\n\t@Method()\n\tasync unregister() {\n\t\tInput.formRemove(this)\n\t}\n\t@Method()\n\tasync getValue(): Promise<any | any[] | undefined> {\n\t\treturn !this.multiple && this.selected[0]\n\t\t\t? this.selected[0].value\n\t\t\t: this.multiple && this.selected.length > 0\n\t\t\t\t? this.selected.map(item => item.value)\n\t\t\t\t: undefined\n\t}\n\t@Method()\n\tasync getItems(): Promise<HTMLSmoothlyItemElement[]> {\n\t\treturn this.items\n\t}\n\t@Method()\n\tasync listen(listener: Editable.Observer.Listener): Promise<void> {\n\t\tthis.observer.subscribe(listener)\n\t}\n\t@Method()\n\tasync reset(): Promise<void> {\n\t\tthis.selected.forEach(item => (item.selected = item.hidden = false))\n\t\tthis.initialValue.forEach(item => (item.selected = true))\n\t\tthis.selected = [...this.initialValue]\n\t\tthis.displaySelected()\n\t\tthis.isDifferentFromInitial = false\n\t\tthis.open && this.handleShowOptions()\n\t}\n\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tif (this.clearable) {\n\t\t\tthis.selected.forEach(item => (item.selected = item.hidden = false))\n\t\t\tthis.selected = []\n\t\t\tif (this.displaySelectedElement) {\n\t\t\t\tthis.displaySelectedElement.innerHTML = this.placeholder ?? \"\"\n\t\t\t}\n\t\t}\n\t}\n\t@Method()\n\tasync edit(editable: boolean): Promise<void> {\n\t\tthis.readonly = !editable\n\t}\n\t@Method()\n\tasync setInitialValue(): Promise<void> {\n\t\tthis.isDifferentFromInitial = false\n\t\tthis.initialValue = [...this.selected]\n\t}\n\t@Watch(\"selected\")\n\tasync onSelectedChange() {\n\t\tthis.initialValueHandled && (this.isDifferentFromInitial = !this.areValuesEqual(this.selected, this.initialValue))\n\t\tthis.defined = this.selected.length > 0\n\t\tthis.smoothlyInput.emit({ [this.name]: await this.getValue() })\n\t\tthis.observer.publish()\n\t}\n\t@Watch(\"required\")\n\tonRequiredChange(): void {\n\t\tthis.items.forEach(item => (item.deselectable = !this.required))\n\t}\n\t@Watch(\"filter\")\n\tasync onFilterChange(value: string): Promise<void> {\n\t\tvalue = value.toLowerCase()\n\t\tawait Promise.all(this.items.map(item => item.filter(value)))\n\t}\n\t@Watch(\"disabled\")\n\t@Watch(\"readonly\")\n\twatchingReadonly(): void {\n\t\tthis.observer.publish()\n\t}\n\t@Listen(\"smoothlyInputLoad\")\n\tasync smoothlyInputLoadHandler(event: CustomEvent<(parent: SmoothlyInputSelect) => void>): Promise<void> {\n\t\tif (\n\t\t\tevent.target &&\n\t\t\t((\"name\" in event.target && event.target.name !== this.name) ||\n\t\t\t\t(event.composedPath().some(e => e == this.iconsDiv) && !event.composedPath().some(e => e == this.toggle)))\n\t\t) {\n\t\t\tevent.stopPropagation()\n\t\t} else if (Item.Element.is(event.target)) {\n\t\t\tevent.stopPropagation()\n\t\t\tevent.target.deselectable = !this.required\n\t\t\tthis.items.push(event.target as HTMLSmoothlyItemElement)\n\t\t}\n\t\tInput.registerSubAction(this, event)\n\t\tthis.displaySelected()\n\t}\n\t@Listen(\"click\", { target: \"window\" })\n\tonWindowClick(event: Event): void {\n\t\t!event.composedPath().includes(this.element) && this.open && this.handleShowOptions()\n\t}\n\t@Listen(\"smoothlyItemDOMChange\")\n\tonItemDomChange(e: CustomEvent) {\n\t\te.stopPropagation()\n\t\tconst item = e.target as HTMLSmoothlyItemElement\n\t\tif (item.selected) {\n\t\t\tthis.displaySelected()\n\t\t}\n\t}\n\t@Listen(\"smoothlyItemSelect\")\n\tasync onItemSelect(event: CustomEvent<{ userInitiated: boolean; item: HTMLSmoothlyItemElement }>): Promise<void> {\n\t\tevent.stopPropagation()\n\t\tconst item = event.detail.item\n\t\tif (this.multiple) {\n\t\t\tthis.selected = item.selected ? [...this.selected, item] : this.selected.filter(item => item.selected)\n\t\t} else if (item.selected || !this.items.some(e => e.selected)) {\n\t\t\tthis.selected[0] && (this.selected[0].hidden = this.selected[0].selected = false)\n\t\t\tthis.selected = !item.selected ? this.selected.filter(item => item.selected) : [item]\n\t\t\t!this.showSelected && item.selected && (item.hidden = true)\n\t\t}\n\t\tthis.displaySelected()\n\t\tif (event.detail.userInitiated) {\n\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value: await this.getValue() })\n\t\t}\n\t}\n\t@Watch(\"open\")\n\tonClosed(open: boolean, before: boolean): void {\n\t\tthis.lastOpen = before\n\t\tif (!open) {\n\t\t\tconst markedItem = this.items.find(item => item.marked)\n\t\t\tif (markedItem) {\n\t\t\t\tmarkedItem.marked = false\n\t\t\t}\n\t\t}\n\t\tthis.smoothlySelectOpen.emit(open)\n\t}\n\thandleShowOptions(event?: Event): void {\n\t\tconst wasButtonClicked =\n\t\t\tevent?.composedPath().some(e => e == this.iconsDiv) && !event.composedPath().some(e => e == this.toggle)\n\t\tconst clickedItem = event\n\t\t\t?.composedPath()\n\t\t\t.find((el): el is HTMLSmoothlyItemElement => \"tagName\" in el && el.tagName == \"SMOOTHLY-ITEM\")\n\t\t!this.readonly &&\n\t\t\t!this.disabled &&\n\t\t\t!(clickedItem && this.items.includes(clickedItem) && this.multiple) &&\n\t\t\t!wasButtonClicked &&\n\t\t\t(this.open = !this.open)\n\t\tthis.filter = \"\"\n\t}\n\tareValuesEqual(selected: HTMLSmoothlyItemElement[], initialValue: HTMLSmoothlyItemElement[]): boolean {\n\t\treturn selected.length === initialValue.length && initialValue.every(value => selected.includes(value))\n\t}\n\tdisplaySelected(): void {\n\t\tconst displayString: string = this.selected.map(option => `<div>${option.innerHTML}</div>`).join(\"\")\n\t\tthis.displaySelectedElement &&\n\t\t\t(this.displaySelectedElement.innerHTML = this.selected.length > 0 ? displayString : (this.placeholder ?? \"\"))\n\t}\n\t@Listen(\"keydown\")\n\tonKeyDown(event: KeyboardEvent) {\n\t\tif (!this.searchDisabled) {\n\t\t\tevent.stopPropagation()\n\t\t\tconst visibleItems = this.items.some(item => item.getAttribute(\"hidden\") === null)\n\t\t\tif (event.key != \"Tab\" && !event.ctrlKey && !event.metaKey) {\n\t\t\t\tevent.preventDefault()\n\t\t\t}\n\t\t\tif (this.open) {\n\t\t\t\tswitch (event.key) {\n\t\t\t\t\tcase \"ArrowUp\":\n\t\t\t\t\t\tvisibleItems && this.move(-1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"ArrowDown\":\n\t\t\t\t\t\tvisibleItems && this.move(1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"Escape\":\n\t\t\t\t\t\tif (this.filter == \"\") {\n\t\t\t\t\t\t\tthis.open = false\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.filter = \"\"\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"Backspace\":\n\t\t\t\t\t\tthis.filter = event.ctrlKey ? \"\" : this.filter.slice(0, -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"Enter\":\n\t\t\t\t\t\tconst result = this.items.find(item => item.marked)\n\t\t\t\t\t\tif (result?.value) {\n\t\t\t\t\t\t\tresult.selected = !result.selected\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!this.multiple) {\n\t\t\t\t\t\t\tthis.open = false\n\t\t\t\t\t\t\tthis.filter = \"\"\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"Tab\":\n\t\t\t\t\t\tthis.open = false\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif (event.key.length == 1) {\n\t\t\t\t\t\t\tthis.filter += event.key\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch (event.key) {\n\t\t\t\t\tcase \"Enter\":\n\t\t\t\t\tcase \" \":\n\t\t\t\t\t\tthis.handleShowOptions()\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"ArrowDown\":\n\t\t\t\t\t\tthis.handleShowOptions()\n\t\t\t\t\t\tthis.move(1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"ArrowUp\":\n\t\t\t\t\t\tthis.handleShowOptions()\n\t\t\t\t\t\tthis.move(-1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"Tab\":\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.handleShowOptions()\n\t\t\t\t\t\tif (event.key.length == 1) {\n\t\t\t\t\t\t\tthis.filter += event.key\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tprivate scrollToSelected() {\n\t\tconst selectedItem = this.items.find(item => item.selected)\n\t\tif (selectedItem) {\n\t\t\tthis.items.map(item => (item.marked = false))\n\t\t\tselectedItem.marked = true\n\t\t\tthis.scrollTo(selectedItem, \"instant\")\n\t\t}\n\t}\n\tprivate move(direction: -1 | 1): void {\n\t\tconst selectableItems = this.items.filter(item => !item.hidden && !item.disabled)\n\t\tlet markedIndex = selectableItems.findIndex(item => item.marked)\n\t\tif (markedIndex == -1) {\n\t\t\tmarkedIndex = 0\n\t\t} else {\n\t\t\tselectableItems[markedIndex].marked = false\n\t\t\tmarkedIndex = (markedIndex + direction + selectableItems.length) % selectableItems.length\n\t\t}\n\t\tselectableItems[markedIndex].marked = true\n\t\tthis.scrollTo(selectableItems[markedIndex], \"smooth\")\n\t}\n\tprivate scrollTo(item: HTMLSmoothlyItemElement, behavior?: \"instant\" | \"smooth\") {\n\t\tthis.optionsDiv?.scrollTo({\n\t\t\ttop: item.offsetTop + item.offsetHeight / 2 - (this.optionsDiv?.clientHeight ?? 0) / 2,\n\t\t\tbehavior,\n\t\t})\n\t}\n\tprivate addItem() {\n\t\tthis.addedItems = this.addedItems.concat(\n\t\t\t<smoothly-item value={this.filter} selected>\n\t\t\t\t{this.filter}\n\t\t\t</smoothly-item>\n\t\t)\n\t}\n\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\ttabIndex={this.disabled ? undefined : 0}\n\t\t\t\tclass={{ \"has-value\": this.selected.length !== 0, open: this.open }}\n\t\t\t\tonClick={(event: Event) => this.handleShowOptions(event)}>\n\t\t\t\t<div class=\"select-display\" ref={element => (this.displaySelectedElement = element)}>\n\t\t\t\t\t{this.placeholder}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"icons\" ref={element => (this.iconsDiv = element)}>\n\t\t\t\t\t<smoothly-icon class=\"smoothly-invalid\" name=\"alert-circle\" size=\"small\" tooltip={this.errorMessage} />\n\t\t\t\t\t<slot name=\"end\" />\n\t\t\t\t\t{this.looks == \"border\" && !this.readonly && (\n\t\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\t\tref={element => (this.toggle = element)}\n\t\t\t\t\t\t\tsize=\"tiny\"\n\t\t\t\t\t\t\tname={this.open ? \"caret-down-outline\" : \"caret-forward-outline\"}\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 name=\"label\" />\n\t\t\t\t<div class={{ hidden: !this.open, options: true }} ref={(el: HTMLDivElement) => (this.optionsDiv = el)}>\n\t\t\t\t\t{this.filter.length > 0 && (\n\t\t\t\t\t\t<div class=\"search-preview\">\n\t\t\t\t\t\t\t<smoothly-icon name=\"search-outline\" size=\"small\" />\n\t\t\t\t\t\t\t{this.filter}\n\t\t\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\t\t\tname=\"backspace-outline\"\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\tonClick={e => {\n\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\tthis.filter = \"\"\n\t\t\t\t\t\t\t\t\tthis.element.focus()\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{this.mutable && (\n\t\t\t\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\t\t\t\tname=\"add\"\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tonClick={e => {\n\t\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\t\tthis.addItem()\n\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</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<slot />\n\t\t\t\t\t{this.addedItems}\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/input/select/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n\tComponent,\n\tComponentWillLoad,\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 { Color, Data } from \"../../../model\"\nimport { Item } from \"../../item/Item\"\nimport { Clearable } from \"../Clearable\"\nimport { Editable } from \"../Editable\"\nimport { Input } from \"../Input\"\nimport { Looks } from \"../Looks\"\nimport { layout } from \"./layout\"\nimport { menu } from \"./menu\"\nimport { scroll } from \"./scroll\"\n\n@Component({\n\ttag: \"smoothly-input-select\",\n\tstyleUrl: \"style.css\",\n\tscoped: true,\n})\nexport class SmoothlyInputSelect implements Input, Editable, Clearable, ComponentWillLoad {\n\tparent: Editable | undefined\n\tisDifferentFromInitial = false\n\tprivate initialValue: HTMLSmoothlyItemElement[] = []\n\tprivate initialValueHandled = false\n\tprivate observer = Editable.Observer.create(this)\n\tprivate displayElement?: HTMLElement\n\tprivate iconsElement?: HTMLElement\n\tprivate toggleElement?: HTMLElement\n\tprivate dropdownElement?: HTMLElement\n\tprivate searchElement?: HTMLInputElement\n\tprivate items: HTMLSmoothlyItemElement[] = []\n\tprivate itemHeight: number | undefined\n\t@Element() element: HTMLSmoothlyInputSelectElement\n\t@Prop({ reflect: true }) invalid?: boolean = false\n\t@Prop({ reflect: true }) errorMessage?: string\n\t@Prop({ reflect: true }) name = \"selected\"\n\t@Prop({ reflect: true, mutable: true }) color?: Color\n\t@Prop({ reflect: true, mutable: true }) looks?: Looks\n\t@Prop({ reflect: true }) showLabel = true\n\t@Prop({ reflect: true, mutable: true }) showSelected?: boolean = true\n\t@Prop({ reflect: true, mutable: true }) readonly = false\n\t@Prop({ reflect: true }) disabled = false\n\t@Prop({ reflect: true }) inCalendar = false\n\t@Prop({ reflect: true }) ordered?: boolean\n\t@Prop({ reflect: true }) multiple = false\n\t@Prop() clearable = true\n\t@Prop({ mutable: true }) defined = false\n\t@Prop({ reflect: true }) placeholder?: string | any\n\t@Prop() menuHeight?: layout.MenuHeight\n\t@Prop() required = false\n\t@Prop() searchDisabled = false\n\t@Prop() mutable = false\n\tprivate lastOpen = false\n\t@State() open = false\n\t@State() selected: HTMLSmoothlyItemElement[] = []\n\t@State() filter = \"\"\n\t@State() addedItems: HTMLSmoothlyItemElement[] = []\n\t@Event() smoothlyInput: EventEmitter<Data>\n\t@Event() smoothlyUserInput: EventEmitter<Input.UserInput>\n\t@Event() smoothlyInputLooks: EventEmitter<(looks?: Looks, color?: Color) => void>\n\t@Event() smoothlyInputLoad: EventEmitter<(parent: Editable) => void>\n\t@Event() smoothlyFormDisable: EventEmitter<(disabled: boolean) => void>\n\t@Event() smoothlyItemSelect: EventEmitter<HTMLSmoothlyItemElement>\n\t@Event() smoothlySelectOpen: EventEmitter<boolean>\n\n\tcomponentWillLoad(): void | Promise<void> {\n\t\tthis.smoothlyInputLooks.emit(\n\t\t\t(looks, color) => ((this.looks = this.looks ?? looks), !this.color && (this.color = color))\n\t\t)\n\t\tthis.smoothlyInputLoad.emit(parent => (this.parent = parent))\n\t\t!this.readonly && this.smoothlyFormDisable.emit(readonly => (this.readonly = readonly))\n\t\tthis.observer.publish()\n\t}\n\tcomponentDidLoad(): void | Promise<void> {\n\t\tthis.selected && !this.initialValueHandled && (this.initialValue = [...this.selected])\n\t\tthis.initialValueHandled = true\n\t\tthis.onSelectedChange()\n\t}\n\tcomponentDidRender(): void | Promise<void> {\n\t\tthis.itemHeight ??= layout.firstItemHeight(this.items)\n\t\tif (this.menuHeight && this.itemHeight) {\n\t\t\tlayout.applyMenuHeight(this.element, this.itemHeight, this.menuHeight)\n\t\t}\n\t\tlayout.applyElementHeight(this.element)\n\n\t\tconst justOpened = this.open && !this.lastOpen\n\t\tif (justOpened && this.ordered) {\n\t\t\tthis.scrollToSelected()\n\t\t}\n\t}\n\tprivate scrollToSelected() {\n\t\tconst selectedItem = menu.findFirstSelected(this.items)\n\t\tif (selectedItem) {\n\t\t\tmenu.markOnly(this.items, selectedItem)\n\t\t\tscroll.centerInView(this.dropdownElement, selectedItem, \"instant\")\n\t\t}\n\t}\n\tasync disconnectedCallback() {\n\t\tif (!this.element.isConnected) {\n\t\t\tawait this.unregister()\n\t\t}\n\t}\n\t@Watch(\"name\")\n\tnameChange(_: string | undefined, oldName: string | undefined) {\n\t\tInput.formRename(this, oldName)\n\t}\n\t@Method()\n\tasync register() {\n\t\tInput.formAdd(this)\n\t}\n\t@Method()\n\tasync unregister() {\n\t\tInput.formRemove(this)\n\t}\n\t@Method()\n\tasync getValue(): Promise<any | any[] | undefined> {\n\t\treturn !this.multiple && this.selected[0]\n\t\t\t? this.selected[0].value\n\t\t\t: this.multiple && this.selected.length > 0\n\t\t\t\t? this.selected.map(item => item.value)\n\t\t\t\t: undefined\n\t}\n\t@Method()\n\tasync getItems(): Promise<HTMLSmoothlyItemElement[]> {\n\t\treturn this.items\n\t}\n\t@Method()\n\tasync listen(listener: Editable.Observer.Listener): Promise<void> {\n\t\tthis.observer.subscribe(listener)\n\t}\n\t@Method()\n\tasync reset(): Promise<void> {\n\t\tthis.selected.forEach(item => (item.selected = item.hidden = false))\n\t\tthis.initialValue.forEach(item => (item.selected = true))\n\t\tthis.selected = [...this.initialValue]\n\t\tthis.displaySelected()\n\t\tthis.isDifferentFromInitial = false\n\t\tthis.closeMenu()\n\t}\n\t@Method()\n\tasync clear(): Promise<void> {\n\t\tif (this.clearable) {\n\t\t\tthis.selected.forEach(item => (item.selected = item.hidden = false))\n\t\t\tthis.selected = []\n\t\t\tif (this.displayElement) {\n\t\t\t\tthis.displayElement.innerHTML = this.placeholder ?? \"\"\n\t\t\t}\n\t\t}\n\t}\n\t@Method()\n\tasync edit(editable: boolean): Promise<void> {\n\t\tthis.readonly = !editable\n\t}\n\t@Method()\n\tasync setInitialValue(): Promise<void> {\n\t\tthis.isDifferentFromInitial = false\n\t\tthis.initialValue = [...this.selected]\n\t}\n\t@Watch(\"selected\")\n\tasync onSelectedChange() {\n\t\tthis.initialValueHandled && (this.isDifferentFromInitial = !this.areValuesEqual(this.selected, this.initialValue))\n\t\tthis.defined = this.selected.length > 0\n\t\tthis.smoothlyInput.emit({ [this.name]: await this.getValue() })\n\t\tthis.observer.publish()\n\t}\n\t@Watch(\"required\")\n\tonRequiredChange(): void {\n\t\tthis.items.forEach(item => (item.deselectable = !this.required))\n\t}\n\t@Watch(\"filter\")\n\tasync onFilterChange(value: string): Promise<void> {\n\t\tvalue = value.toLowerCase()\n\t\tawait Promise.all(this.items.map(item => item.filter(value)))\n\t}\n\t@Watch(\"disabled\")\n\t@Watch(\"readonly\")\n\twatchingReadonly(): void {\n\t\tthis.observer.publish()\n\t}\n\t@Listen(\"smoothlyInputLoad\")\n\tasync smoothlyInputLoadHandler(event: CustomEvent<(parent: SmoothlyInputSelect) => void>): Promise<void> {\n\t\tconst fromSelf = event.target && \"name\" in event.target && event.target.name !== this.name\n\t\tconst fromEndSlot = event.composedPath().some(e => e == this.iconsElement)\n\t\tif (fromSelf || fromEndSlot) {\n\t\t\tevent.stopPropagation()\n\t\t} else if (Item.Element.is(event.target)) {\n\t\t\tevent.stopPropagation()\n\t\t\tevent.target.deselectable = !this.required\n\t\t\tthis.items.push(event.target as HTMLSmoothlyItemElement)\n\t\t}\n\t\tInput.registerSubAction(this, event)\n\t\tthis.displaySelected()\n\t}\n\t@Listen(\"click\", { target: \"window\" })\n\tonWindowClick(event: MouseEvent): void {\n\t\tif (this.open && !event.composedPath().includes(this.element)) {\n\t\t\tthis.closeMenu()\n\t\t}\n\t}\n\t@Listen(\"smoothlyItemDOMChange\")\n\tonItemDomChange(e: CustomEvent) {\n\t\te.stopPropagation()\n\t\tconst item = e.target as HTMLSmoothlyItemElement\n\t\tif (item.selected) {\n\t\t\tthis.displaySelected()\n\t\t}\n\t}\n\t@Listen(\"smoothlyItemSelect\")\n\tasync onItemSelect(event: CustomEvent<{ userInitiated: boolean; item: HTMLSmoothlyItemElement }>): Promise<void> {\n\t\tevent.stopPropagation()\n\t\tconst item = event.detail.item\n\t\tif (this.multiple) {\n\t\t\tthis.selected = item.selected ? [...this.selected, item] : this.selected.filter(item => item.selected)\n\t\t} else if (item.selected || !this.items.some(e => e.selected)) {\n\t\t\tthis.selected[0] && (this.selected[0].hidden = this.selected[0].selected = false)\n\t\t\tthis.selected = !item.selected ? this.selected.filter(item => item.selected) : [item]\n\t\t\t!this.showSelected && item.selected && (item.hidden = true)\n\t\t}\n\t\tthis.displaySelected()\n\t\tif (event.detail.userInitiated) {\n\t\t\tthis.smoothlyUserInput.emit({ name: this.name, value: await this.getValue() })\n\t\t}\n\t}\n\t@Watch(\"open\")\n\tonClosed(open: boolean, before: boolean): void {\n\t\tthis.lastOpen = before\n\t\tif (!open) {\n\t\t\tconst markedItem = menu.findFirstMarked(this.items)\n\t\t\tif (markedItem) {\n\t\t\t\tmarkedItem.marked = false\n\t\t\t}\n\t\t}\n\t\tthis.smoothlySelectOpen.emit(open)\n\t}\n\tareValuesEqual(selected: HTMLSmoothlyItemElement[], initialValue: HTMLSmoothlyItemElement[]): boolean {\n\t\treturn selected.length === initialValue.length && initialValue.every(value => selected.includes(value))\n\t}\n\tdisplaySelected(): void {\n\t\tconst displayString: string = this.selected.map(option => `<div>${option.innerHTML}</div>`).join(\"\")\n\t\tthis.displayElement &&\n\t\t\t(this.displayElement.innerHTML = this.selected.length > 0 ? displayString : (this.placeholder ?? \"\"))\n\t}\n\tonKeyDown(event: KeyboardEvent) {\n\t\tevent.stopPropagation()\n\t\tconst key = event.key\n\t\tif (key == \"ArrowUp\" || key == \"ArrowDown\") {\n\t\t\tevent.preventDefault()\n\t\t\tthis.handlerNavigate(key)\n\t\t} else if (key == \"Escape\") {\n\t\t\tevent.preventDefault()\n\t\t\tthis.handleEscape()\n\t\t} else if (key == \"Enter\") {\n\t\t\tevent.preventDefault()\n\t\t\tthis.handleEnter()\n\t\t} else if (key == \" \") {\n\t\t\tevent.preventDefault()\n\t\t\tthis.openMenu()\n\t\t} else if (this.open && key == \"Tab\") {\n\t\t\tthis.closeMenu()\n\t\t}\n\t}\n\tprivate handlerNavigate(key: \"ArrowUp\" | \"ArrowDown\") {\n\t\tif (menu.hasVisibleItems(this.items)) {\n\t\t\tthis.move(key == \"ArrowUp\" ? -1 : 1)\n\t\t}\n\t\tthis.openMenu()\n\t}\n\tprivate handleEscape() {\n\t\tif (this.filter) {\n\t\t\tthis.resetFilter()\n\t\t} else {\n\t\t\tthis.closeMenu()\n\t\t}\n\t}\n\tprivate handleEnter() {\n\t\tconst item = menu.findFirstMarked(this.items)\n\t\tif (item?.value) {\n\t\t\titem.selected = !item.selected\n\t\t}\n\t\tif (!this.multiple) {\n\t\t\tthis.closeMenu()\n\t\t\tthis.resetFilter()\n\t\t}\n\t}\n\tprivate move(direction: -1 | 1): void {\n\t\tconst { current, next } = menu.next(this.items, direction)\n\t\tcurrent && (current.marked = false)\n\t\tnext.marked = true\n\t\tscroll.centerInView(this.dropdownElement, next, \"smooth\")\n\t}\n\tprivate addItem() {\n\t\tthis.addedItems = this.addedItems.concat(\n\t\t\t<smoothly-item value={this.filter} selected>\n\t\t\t\t{this.filter}\n\t\t\t</smoothly-item>\n\t\t)\n\t}\n\tprivate resetFilter() {\n\t\tthis.searchElement && (this.searchElement.value = \"\")\n\t\tthis.filter = \"\"\n\t}\n\tprivate setFilter(filter: string) {\n\t\tif (filter) {\n\t\t\tthis.filter = filter\n\t\t\tthis.openMenu()\n\t\t} else {\n\t\t\tthis.resetFilter()\n\t\t}\n\t}\n\tprivate openMenu({ focus }: { focus?: boolean } = {}) {\n\t\tthis.open = true\n\t\tfocus && queueMicrotask(() => this.searchElement?.focus())\n\t}\n\tprivate closeMenu() {\n\t\tthis.open = false\n\t\tthis.resetFilter()\n\t}\n\tprivate toggleMenu() {\n\t\tif (!this.readonly && !this.disabled) {\n\t\t\tthis.open ? this.closeMenu() : this.openMenu({ focus: true })\n\t\t}\n\t}\n\tprivate onClick(e: MouseEvent) {\n\t\tconst wasIconsClicked =\n\t\t\te.composedPath().includes(this.iconsElement!) && !e.composedPath().includes(this.toggleElement!)\n\t\tconst wasSearchClicked = e.composedPath().includes(this.searchElement!)\n\t\tconst wasItemClicked = e\n\t\t\t.composedPath()\n\t\t\t.find(element => element instanceof HTMLElement && element.tagName === \"SMOOTHLY-ITEM\")\n\t\tif (!wasIconsClicked && !wasSearchClicked && !(wasItemClicked && this.multiple)) {\n\t\t\tthis.toggleMenu()\n\t\t}\n\t}\n\trender(): VNode | VNode[] {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={{ \"has-value\": this.selected.length !== 0, open: this.open, \"has-filter\": this.filter !== \"\" }}\n\t\t\t\tonClick={(e: MouseEvent) => this.onClick(e)}>\n\t\t\t\t<div class=\"select-display\" ref={element => (this.displayElement = element)}>\n\t\t\t\t\t{this.placeholder}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"icons\" ref={element => (this.iconsElement = element)}>\n\t\t\t\t\t<smoothly-icon class=\"smoothly-invalid\" name=\"alert-circle\" size=\"small\" tooltip={this.errorMessage} />\n\t\t\t\t\t<slot name=\"end\" />\n\t\t\t\t\t{this.looks == \"border\" && !this.readonly && (\n\t\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\t\tref={element => (this.toggleElement = element)}\n\t\t\t\t\t\t\tsize=\"tiny\"\n\t\t\t\t\t\t\tname={this.open ? \"caret-down-outline\" : \"caret-forward-outline\"}\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 name=\"label\" />\n\t\t\t\t<div class=\"dropdown\" ref={(el: HTMLDivElement) => (this.dropdownElement = el)}>\n\t\t\t\t\t<div class=\"search\">\n\t\t\t\t\t\t<smoothly-icon name=\"search-outline\" size=\"small\" />\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tclass=\"search-input\"\n\t\t\t\t\t\t\tref={el => (this.searchElement = el)}\n\t\t\t\t\t\t\tdisabled={this.searchDisabled}\n\t\t\t\t\t\t\tonKeyDown={e => this.onKeyDown(e)}\n\t\t\t\t\t\t\tonInput={e => (e.stopPropagation(), this.setFilter(this.searchElement?.value ?? \"\"))}\n\t\t\t\t\t\t\tonPaste={e => (e.stopPropagation(), this.setFilter(this.searchElement?.value ?? \"\"))}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<smoothly-icon\n\t\t\t\t\t\t\tname=\"backspace-outline\"\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tthis.resetFilter()\n\t\t\t\t\t\t\t\tthis.searchElement?.focus()\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{this.mutable && <smoothly-icon name=\"add\" size=\"small\" onClick={() => this.addItem()} />}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"menu\" hidden={!this.open}>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t{this.addedItems}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export var layout;
|
|
2
|
+
(function (layout) {
|
|
3
|
+
function firstItemHeight(items) {
|
|
4
|
+
var _a;
|
|
5
|
+
return (_a = items.find(item => item.clientHeight > 0)) === null || _a === void 0 ? void 0 : _a.clientHeight;
|
|
6
|
+
}
|
|
7
|
+
layout.firstItemHeight = firstItemHeight;
|
|
8
|
+
function applyMenuHeight(element, itemHeight, menuHeight) {
|
|
9
|
+
var _a, _b;
|
|
10
|
+
const height = menuHeight.endsWith("items")
|
|
11
|
+
? `${itemHeight * +((_b = (_a = menuHeight.match(/^(\d+(\.\d+)?|\.\d+)/g)) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : "10")}px`
|
|
12
|
+
: menuHeight;
|
|
13
|
+
element.style.setProperty("--menu-height", height);
|
|
14
|
+
}
|
|
15
|
+
layout.applyMenuHeight = applyMenuHeight;
|
|
16
|
+
function applyElementHeight(element) {
|
|
17
|
+
element === null || element === void 0 ? void 0 : element.style.setProperty("--element-height", `${element.clientHeight}px`);
|
|
18
|
+
}
|
|
19
|
+
layout.applyElementHeight = applyElementHeight;
|
|
20
|
+
})(layout || (layout = {}));
|
|
21
|
+
//# sourceMappingURL=layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../../src/components/input/select/layout.ts"],"names":[],"mappings":"AAAA,MAAM,KAAW,MAAM,CActB;AAdD,WAAiB,MAAM;IACtB,SAAgB,eAAe,CAAC,KAAgC;;QAC/D,OAAO,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,0CAAE,YAAY,CAAA;IAC/D,CAAC;IAFe,sBAAe,kBAE9B,CAAA;IACD,SAAgB,eAAe,CAAC,OAAoB,EAAE,UAAkB,EAAE,UAAsB;;QAC/F,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC1C,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,MAAA,MAAA,UAAU,CAAC,KAAK,CAAC,uBAAuB,CAAC,0CAAG,CAAC,CAAC,mCAAI,IAAI,CAAC,IAAI;YAC/E,CAAC,CAAC,UAAU,CAAA;QACb,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;IACnD,CAAC;IALe,sBAAe,kBAK9B,CAAA;IACD,SAAgB,kBAAkB,CAAC,OAAoB;QACtD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAA;IAC5E,CAAC;IAFe,yBAAkB,qBAEjC,CAAA;AAEF,CAAC,EAdgB,MAAM,KAAN,MAAM,QActB","sourcesContent":["export namespace layout {\n\texport function firstItemHeight(items: HTMLSmoothlyItemElement[]): number | undefined {\n\t\treturn items.find(item => item.clientHeight > 0)?.clientHeight\n\t}\n\texport function applyMenuHeight(element: HTMLElement, itemHeight: number, menuHeight: MenuHeight): void {\n\t\tconst height = menuHeight.endsWith(\"items\")\n\t\t\t? `${itemHeight * +(menuHeight.match(/^(\\d+(\\.\\d+)?|\\.\\d+)/g)?.[0] ?? \"10\")}px`\n\t\t\t: menuHeight\n\t\telement.style.setProperty(\"--menu-height\", height)\n\t}\n\texport function applyElementHeight(element: HTMLElement) {\n\t\telement?.style.setProperty(\"--element-height\", `${element.clientHeight}px`)\n\t}\n\texport type MenuHeight = `${number}${\"items\" | \"rem\" | \"px\" | \"vh\"}`\n}\n"]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export var menu;
|
|
2
|
+
(function (menu) {
|
|
3
|
+
function next(items, direction) {
|
|
4
|
+
const selectable = items.filter(item => !item.hidden && !item.disabled);
|
|
5
|
+
const currentIndex = selectable.findIndex(item => item.marked);
|
|
6
|
+
let index;
|
|
7
|
+
if (currentIndex == -1) {
|
|
8
|
+
index = 0;
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
index = (currentIndex + direction + selectable.length) % selectable.length;
|
|
12
|
+
}
|
|
13
|
+
return { current: selectable[currentIndex], next: selectable[index] };
|
|
14
|
+
}
|
|
15
|
+
menu.next = next;
|
|
16
|
+
function hasVisibleItems(items) {
|
|
17
|
+
return items.some(item => !item.getAttribute("hidden"));
|
|
18
|
+
}
|
|
19
|
+
menu.hasVisibleItems = hasVisibleItems;
|
|
20
|
+
function markOnly(items, item) {
|
|
21
|
+
items.map(i => (i.marked = i === item));
|
|
22
|
+
}
|
|
23
|
+
menu.markOnly = markOnly;
|
|
24
|
+
function findFirstSelected(items) {
|
|
25
|
+
return items.find(item => item.selected);
|
|
26
|
+
}
|
|
27
|
+
menu.findFirstSelected = findFirstSelected;
|
|
28
|
+
function findFirstMarked(items) {
|
|
29
|
+
return items.find(item => item.marked);
|
|
30
|
+
}
|
|
31
|
+
menu.findFirstMarked = findFirstMarked;
|
|
32
|
+
})(menu || (menu = {}));
|
|
33
|
+
//# sourceMappingURL=menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../../../src/components/input/select/menu.ts"],"names":[],"mappings":"AAAA,MAAM,KAAW,IAAI,CA2BpB;AA3BD,WAAiB,IAAI;IACpB,SAAgB,IAAI,CACnB,KAAgC,EAChC,SAAiB;QAEjB,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACvE,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC9D,IAAI,KAAa,CAAA;QACjB,IAAI,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC;YACxB,KAAK,GAAG,CAAC,CAAA;QACV,CAAC;aAAM,CAAC;YACP,KAAK,GAAG,CAAC,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAA;QAC3E,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,CAAA;IACtE,CAAC;IAbe,SAAI,OAanB,CAAA;IACD,SAAgB,eAAe,CAAC,KAAgC;QAC/D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAA;IACxD,CAAC;IAFe,oBAAe,kBAE9B,CAAA;IACD,SAAgB,QAAQ,CAAC,KAAgC,EAAE,IAA6B;QACvF,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAA;IACxC,CAAC;IAFe,aAAQ,WAEvB,CAAA;IACD,SAAgB,iBAAiB,CAAC,KAAgC;QACjE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACzC,CAAC;IAFe,sBAAiB,oBAEhC,CAAA;IACD,SAAgB,eAAe,CAAC,KAAgC;QAC/D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACvC,CAAC;IAFe,oBAAe,kBAE9B,CAAA;AACF,CAAC,EA3BgB,IAAI,KAAJ,IAAI,QA2BpB","sourcesContent":["export namespace menu {\n\texport function next(\n\t\titems: HTMLSmoothlyItemElement[],\n\t\tdirection: -1 | 1\n\t): { current?: HTMLSmoothlyItemElement; next: HTMLSmoothlyItemElement } {\n\t\tconst selectable = items.filter(item => !item.hidden && !item.disabled)\n\t\tconst currentIndex = selectable.findIndex(item => item.marked)\n\t\tlet index: number\n\t\tif (currentIndex == -1) {\n\t\t\tindex = 0\n\t\t} else {\n\t\t\tindex = (currentIndex + direction + selectable.length) % selectable.length\n\t\t}\n\t\treturn { current: selectable[currentIndex], next: selectable[index] }\n\t}\n\texport function hasVisibleItems(items: HTMLSmoothlyItemElement[]): boolean {\n\t\treturn items.some(item => !item.getAttribute(\"hidden\"))\n\t}\n\texport function markOnly(items: HTMLSmoothlyItemElement[], item: HTMLSmoothlyItemElement): void {\n\t\titems.map(i => (i.marked = i === item))\n\t}\n\texport function findFirstSelected(items: HTMLSmoothlyItemElement[]): HTMLSmoothlyItemElement | undefined {\n\t\treturn items.find(item => item.selected)\n\t}\n\texport function findFirstMarked(items: HTMLSmoothlyItemElement[]): HTMLSmoothlyItemElement | undefined {\n\t\treturn items.find(item => item.marked)\n\t}\n}\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export var scroll;
|
|
2
|
+
(function (scroll) {
|
|
3
|
+
function centerInView(container, item, behavior = "smooth") {
|
|
4
|
+
var _a;
|
|
5
|
+
if (item && container) {
|
|
6
|
+
container.scrollTo({
|
|
7
|
+
top: item.offsetTop + item.offsetHeight / 2 - ((_a = container.clientHeight) !== null && _a !== void 0 ? _a : 0) / 2,
|
|
8
|
+
behavior,
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
scroll.centerInView = centerInView;
|
|
13
|
+
})(scroll || (scroll = {}));
|
|
14
|
+
//# sourceMappingURL=scroll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../../../src/components/input/select/scroll.ts"],"names":[],"mappings":"AAAA,MAAM,KAAW,MAAM,CAStB;AATD,WAAiB,MAAM;IACtB,SAAgB,YAAY,CAAC,SAAuB,EAAE,IAAkB,EAAE,WAA2B,QAAQ;;QAC5G,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;YACvB,SAAS,CAAC,QAAQ,CAAC;gBAClB,GAAG,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,MAAA,SAAS,CAAC,YAAY,mCAAI,CAAC,CAAC,GAAG,CAAC;gBAC/E,QAAQ;aACR,CAAC,CAAA;QACH,CAAC;IACF,CAAC;IAPe,mBAAY,eAO3B,CAAA;AACF,CAAC,EATgB,MAAM,KAAN,MAAM,QAStB","sourcesContent":["export namespace scroll {\n\texport function centerInView(container?: HTMLElement, item?: HTMLElement, behavior: ScrollBehavior = \"smooth\") {\n\t\tif (item && container) {\n\t\t\tcontainer.scrollTo({\n\t\t\t\ttop: item.offsetTop + item.offsetHeight / 2 - (container.clientHeight ?? 0) / 2,\n\t\t\t\tbehavior,\n\t\t\t})\n\t\t}\n\t}\n}\n"]}
|