slim-select 2.1.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/dist/render.d.ts +9 -2
- package/dist/select.d.ts +6 -6
- package/dist/settings.d.ts +0 -3
- package/dist/slimselect.cjs.js +152 -51
- package/dist/slimselect.css +1 -1
- package/dist/slimselect.css.map +1 -1
- package/dist/slimselect.es.js +152 -51
- package/dist/slimselect.global.js +152 -51
- package/dist/slimselect.js +152 -51
- package/dist/slimselect.min.js +1 -1
- package/dist/slimselect.umd.js +152 -51
- package/dist/slimselect.umd.min.js +1 -1
- package/dist/store.d.ts +5 -0
- package/package.json +1 -3
- package/src/slim-select/index.ts +3 -1
- package/src/slim-select/render.ts +167 -34
- package/src/slim-select/select.ts +35 -27
- package/src/slim-select/settings.ts +0 -4
- package/src/slim-select/slimselect.scss +112 -11
- package/src/slim-select/store.ts +19 -1
- package/src/vue/README.md +48 -0
- package/src/vue/dist/slim-select/helpers.d.ts +4 -0
- package/src/vue/dist/slim-select/index.d.ts +45 -0
- package/src/vue/dist/slim-select/render.d.ts +116 -0
- package/src/vue/dist/slim-select/select.d.ts +33 -0
- package/src/vue/dist/slim-select/settings.d.ts +30 -0
- package/src/vue/dist/slim-select/store.d.ts +76 -0
- package/src/vue/dist/slimselectvue.es.js +152 -51
- package/src/vue/dist/slimselectvue.global.js +152 -51
- package/src/vue/dist/slimselectvue.ssr.js +152 -51
- package/src/vue/dist/vue/hello.d.ts +2 -0
- package/src/vue/dist/vue/slimselect.vue.d.ts +286 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/code/cache/05b27cf262de47962f4beeba3d4b4f67616bdf24 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/code/cache/26c90bc22e366b540ff134ba7de2ab3715155a20 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/code/cache/7a2b654bed9256f52421aec7d04cd8553486335b +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/code/cache/80fdd1aafff88316e6a7f63509fb7304c94ae6d3 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/code/cache/88c6c8bf5346a961efcdff848fba6e3f2d24b26c +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/code/cache/b2f217f16a7744eb13543dc90442443538b724b8 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/code/cache/be60813c21c2fbc627fcf99127ca2a96a3065fba +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/semanticDiagnostics/cache/05b27cf262de47962f4beeba3d4b4f67616bdf24 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/semanticDiagnostics/cache/26c90bc22e366b540ff134ba7de2ab3715155a20 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/semanticDiagnostics/cache/7a2b654bed9256f52421aec7d04cd8553486335b +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/semanticDiagnostics/cache/80fdd1aafff88316e6a7f63509fb7304c94ae6d3 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/semanticDiagnostics/cache/88c6c8bf5346a961efcdff848fba6e3f2d24b26c +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/semanticDiagnostics/cache/a8a4a8a1b06b6c8069e965f4a30a4b42013b830a +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/semanticDiagnostics/cache/b2f217f16a7744eb13543dc90442443538b724b8 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/semanticDiagnostics/cache/be60813c21c2fbc627fcf99127ca2a96a3065fba +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/syntacticDiagnostics/cache/05b27cf262de47962f4beeba3d4b4f67616bdf24 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/syntacticDiagnostics/cache/26c90bc22e366b540ff134ba7de2ab3715155a20 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/syntacticDiagnostics/cache/7a2b654bed9256f52421aec7d04cd8553486335b +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/syntacticDiagnostics/cache/80fdd1aafff88316e6a7f63509fb7304c94ae6d3 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/syntacticDiagnostics/cache/88c6c8bf5346a961efcdff848fba6e3f2d24b26c +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/syntacticDiagnostics/cache/a8a4a8a1b06b6c8069e965f4a30a4b42013b830a +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/syntacticDiagnostics/cache/b2f217f16a7744eb13543dc90442443538b724b8 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/syntacticDiagnostics/cache/be60813c21c2fbc627fcf99127ca2a96a3065fba +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/068e7904209e205518dbc9726d632bbaf28bfc55 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/06b75ecfe63fda3fcfaa42593fa1f22167f3a9f8 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/2aa9d56fc4a9661ee8e3de277da5ee3f960713de +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/2c58b356be1a9572c64469d50a7a25c46f94aaeb +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/36d3fb579feb4cad7a15b7a2f509f338caf72fa0 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/388b297c3f73fcba25b8174fda975235e5d12b5a +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/40e43895ec63e1e25aa7e278ca1e8c3adefc815d +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/645e188194be07518ebbb0a5b4304f5170fee599 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/65515bf3a44aaf1306f589073f1c8b98be747f5f +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/6a357fe7542e07f7919ea9b22401027dd1e8a0c1 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/72087cac150d02ed6d19e37d6f1436566d5ac798 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/9ff120b6426a4c7a03236428f26a92772586c3e5 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/a6917de673fc74a6cfca5133913982e54e58a7fb +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/aa4aee440d13b06b4bb05c36eee326513aa6c040 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/b02a4d0c40fac4c7f9ea7acd7944ee8844afcedf +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/b21a02b948881426bc4dcff649fc4fba07ca34d2 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/c10c11f9c426095ab3f504dd8b7622ad7ba7c8ed +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/dc186595636217ded2d4a4cfbb789d68ea485b6b +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/code/cache/05b27cf262de47962f4beeba3d4b4f67616bdf24 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/code/cache/26c90bc22e366b540ff134ba7de2ab3715155a20 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/code/cache/7a2b654bed9256f52421aec7d04cd8553486335b +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/code/cache/80fdd1aafff88316e6a7f63509fb7304c94ae6d3 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/code/cache/88c6c8bf5346a961efcdff848fba6e3f2d24b26c +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/code/cache/b2f217f16a7744eb13543dc90442443538b724b8 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/code/cache/be60813c21c2fbc627fcf99127ca2a96a3065fba +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/semanticDiagnostics/cache/05b27cf262de47962f4beeba3d4b4f67616bdf24 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/semanticDiagnostics/cache/26c90bc22e366b540ff134ba7de2ab3715155a20 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/semanticDiagnostics/cache/7a2b654bed9256f52421aec7d04cd8553486335b +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/semanticDiagnostics/cache/80fdd1aafff88316e6a7f63509fb7304c94ae6d3 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/semanticDiagnostics/cache/88c6c8bf5346a961efcdff848fba6e3f2d24b26c +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/semanticDiagnostics/cache/a8a4a8a1b06b6c8069e965f4a30a4b42013b830a +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/semanticDiagnostics/cache/b2f217f16a7744eb13543dc90442443538b724b8 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/semanticDiagnostics/cache/be60813c21c2fbc627fcf99127ca2a96a3065fba +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/syntacticDiagnostics/cache/05b27cf262de47962f4beeba3d4b4f67616bdf24 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/syntacticDiagnostics/cache/26c90bc22e366b540ff134ba7de2ab3715155a20 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/syntacticDiagnostics/cache/7a2b654bed9256f52421aec7d04cd8553486335b +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/syntacticDiagnostics/cache/80fdd1aafff88316e6a7f63509fb7304c94ae6d3 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/syntacticDiagnostics/cache/88c6c8bf5346a961efcdff848fba6e3f2d24b26c +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/syntacticDiagnostics/cache/a8a4a8a1b06b6c8069e965f4a30a4b42013b830a +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/syntacticDiagnostics/cache/b2f217f16a7744eb13543dc90442443538b724b8 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/syntacticDiagnostics/cache/be60813c21c2fbc627fcf99127ca2a96a3065fba +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/068e7904209e205518dbc9726d632bbaf28bfc55 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/06b75ecfe63fda3fcfaa42593fa1f22167f3a9f8 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/2aa9d56fc4a9661ee8e3de277da5ee3f960713de +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/2c58b356be1a9572c64469d50a7a25c46f94aaeb +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/36d3fb579feb4cad7a15b7a2f509f338caf72fa0 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/388b297c3f73fcba25b8174fda975235e5d12b5a +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/40e43895ec63e1e25aa7e278ca1e8c3adefc815d +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/645e188194be07518ebbb0a5b4304f5170fee599 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/65515bf3a44aaf1306f589073f1c8b98be747f5f +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/6a357fe7542e07f7919ea9b22401027dd1e8a0c1 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/72087cac150d02ed6d19e37d6f1436566d5ac798 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/9ff120b6426a4c7a03236428f26a92772586c3e5 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/a6917de673fc74a6cfca5133913982e54e58a7fb +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/aa4aee440d13b06b4bb05c36eee326513aa6c040 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/b02a4d0c40fac4c7f9ea7acd7944ee8844afcedf +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/b21a02b948881426bc4dcff649fc4fba07ca34d2 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/c10c11f9c426095ab3f504dd8b7622ad7ba7c8ed +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/dc186595636217ded2d4a4cfbb789d68ea485b6b +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/code/cache/05b27cf262de47962f4beeba3d4b4f67616bdf24 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/code/cache/26c90bc22e366b540ff134ba7de2ab3715155a20 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/code/cache/7a2b654bed9256f52421aec7d04cd8553486335b +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/code/cache/80fdd1aafff88316e6a7f63509fb7304c94ae6d3 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/code/cache/88c6c8bf5346a961efcdff848fba6e3f2d24b26c +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/code/cache/b2f217f16a7744eb13543dc90442443538b724b8 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/code/cache/be60813c21c2fbc627fcf99127ca2a96a3065fba +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/semanticDiagnostics/cache/05b27cf262de47962f4beeba3d4b4f67616bdf24 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/semanticDiagnostics/cache/26c90bc22e366b540ff134ba7de2ab3715155a20 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/semanticDiagnostics/cache/7a2b654bed9256f52421aec7d04cd8553486335b +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/semanticDiagnostics/cache/80fdd1aafff88316e6a7f63509fb7304c94ae6d3 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/semanticDiagnostics/cache/88c6c8bf5346a961efcdff848fba6e3f2d24b26c +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/semanticDiagnostics/cache/a8a4a8a1b06b6c8069e965f4a30a4b42013b830a +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/semanticDiagnostics/cache/b2f217f16a7744eb13543dc90442443538b724b8 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/semanticDiagnostics/cache/be60813c21c2fbc627fcf99127ca2a96a3065fba +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/syntacticDiagnostics/cache/05b27cf262de47962f4beeba3d4b4f67616bdf24 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/syntacticDiagnostics/cache/26c90bc22e366b540ff134ba7de2ab3715155a20 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/syntacticDiagnostics/cache/7a2b654bed9256f52421aec7d04cd8553486335b +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/syntacticDiagnostics/cache/80fdd1aafff88316e6a7f63509fb7304c94ae6d3 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/syntacticDiagnostics/cache/88c6c8bf5346a961efcdff848fba6e3f2d24b26c +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/syntacticDiagnostics/cache/a8a4a8a1b06b6c8069e965f4a30a4b42013b830a +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/syntacticDiagnostics/cache/b2f217f16a7744eb13543dc90442443538b724b8 +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/syntacticDiagnostics/cache/be60813c21c2fbc627fcf99127ca2a96a3065fba +1 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/068e7904209e205518dbc9726d632bbaf28bfc55 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/06b75ecfe63fda3fcfaa42593fa1f22167f3a9f8 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/2aa9d56fc4a9661ee8e3de277da5ee3f960713de +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/2c58b356be1a9572c64469d50a7a25c46f94aaeb +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/36d3fb579feb4cad7a15b7a2f509f338caf72fa0 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/388b297c3f73fcba25b8174fda975235e5d12b5a +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/40e43895ec63e1e25aa7e278ca1e8c3adefc815d +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/645e188194be07518ebbb0a5b4304f5170fee599 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/65515bf3a44aaf1306f589073f1c8b98be747f5f +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/6a357fe7542e07f7919ea9b22401027dd1e8a0c1 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/72087cac150d02ed6d19e37d6f1436566d5ac798 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/9ff120b6426a4c7a03236428f26a92772586c3e5 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/a6917de673fc74a6cfca5133913982e54e58a7fb +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/aa4aee440d13b06b4bb05c36eee326513aa6c040 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/b02a4d0c40fac4c7f9ea7acd7944ee8844afcedf +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/b21a02b948881426bc4dcff649fc4fba07ca34d2 +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/c10c11f9c426095ab3f504dd8b7622ad7ba7c8ed +0 -0
- package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/dc186595636217ded2d4a4cfbb789d68ea485b6b +0 -0
- package/src/vue/package.json +4 -4
- package/src/vue/rollup.config.mjs +3 -3
- package/src/vue/tsconfig.json +3 -3
- package/tsconfig.json +9 -2
- package/.github/FUNDING.yml +0 -12
- package/.github/ISSUE_TEMPLATE/issue-report.md +0 -14
- package/.vscode/extensions.json +0 -3
- package/.vscode/settings.json +0 -17
- package/docs/404.html +0 -42
- package/docs/CNAME +0 -1
- package/docs/assets/check-mark.svg +0 -6
- package/docs/assets/data.js +0 -59
- package/docs/assets/home.css +0 -1
- package/docs/assets/home.js +0 -1
- package/docs/assets/index.css +0 -1
- package/docs/assets/index.js +0 -16
- package/docs/assets/index2.js +0 -274
- package/docs/assets/index3.js +0 -135
- package/docs/assets/index4.js +0 -60
- package/docs/assets/index5.js +0 -147
- package/docs/assets/install.js +0 -34
- package/docs/assets/selects.js +0 -55
- package/docs/favicon.ico +0 -0
- package/docs/index.html +0 -36
- package/public/404.html +0 -42
- package/public/CNAME +0 -1
- package/public/favicon.ico +0 -0
- package/slimselect.gif +0 -0
- package/src/docs/app.vue +0 -227
- package/src/docs/assets/images/check-mark.svg +0 -6
- package/src/docs/assets/images/chrome.svg +0 -22
- package/src/docs/assets/images/firefox.svg +0 -58
- package/src/docs/assets/images/github.png +0 -0
- package/src/docs/assets/images/ie.svg +0 -11
- package/src/docs/assets/images/npm.png +0 -0
- package/src/docs/assets/images/opera.svg +0 -15
- package/src/docs/assets/images/safari.svg +0 -22
- package/src/docs/assets/scss/_variables.scss +0 -26
- package/src/docs/assets/scss/alert.scss +0 -12
- package/src/docs/assets/scss/animations.scss +0 -8
- package/src/docs/assets/scss/button.scss +0 -21
- package/src/docs/assets/scss/index.scss +0 -8
- package/src/docs/assets/scss/input.scss +0 -3
- package/src/docs/assets/scss/layout.scss +0 -250
- package/src/docs/assets/scss/misc.scss +0 -162
- package/src/docs/assets/scss/prism.scss +0 -157
- package/src/docs/env.d.ts +0 -13
- package/src/docs/main.ts +0 -27
- package/src/docs/pages/data.vue +0 -130
- package/src/docs/pages/events/addable.vue +0 -95
- package/src/docs/pages/events/before_after_change.vue +0 -154
- package/src/docs/pages/events/before_after_open_close.vue +0 -122
- package/src/docs/pages/events/error.vue +0 -59
- package/src/docs/pages/events/index.vue +0 -33
- package/src/docs/pages/events/search.vue +0 -155
- package/src/docs/pages/events/search_filter.vue +0 -45
- package/src/docs/pages/frameworks/index.vue +0 -18
- package/src/docs/pages/frameworks/vue.vue +0 -405
- package/src/docs/pages/home.vue +0 -194
- package/src/docs/pages/install.vue +0 -105
- package/src/docs/pages/methods/destroy.vue +0 -66
- package/src/docs/pages/methods/enable_disable.vue +0 -70
- package/src/docs/pages/methods/get_data.vue +0 -82
- package/src/docs/pages/methods/get_selected.vue +0 -78
- package/src/docs/pages/methods/index.vue +0 -36
- package/src/docs/pages/methods/open_close.vue +0 -63
- package/src/docs/pages/methods/search.vue +0 -62
- package/src/docs/pages/methods/set_data.vue +0 -106
- package/src/docs/pages/methods/set_selected.vue +0 -70
- package/src/docs/pages/selects.vue +0 -213
- package/src/docs/pages/settings/always_open.vue +0 -88
- package/src/docs/pages/settings/close_on_select.vue +0 -69
- package/src/docs/pages/settings/content_location.vue +0 -64
- package/src/docs/pages/settings/content_position.vue +0 -86
- package/src/docs/pages/settings/css.vue +0 -73
- package/src/docs/pages/settings/data_attributes.vue +0 -39
- package/src/docs/pages/settings/deselect.vue +0 -69
- package/src/docs/pages/settings/display.vue +0 -88
- package/src/docs/pages/settings/hide_selected.vue +0 -73
- package/src/docs/pages/settings/html.vue +0 -86
- package/src/docs/pages/settings/index.vue +0 -73
- package/src/docs/pages/settings/mandatory.vue +0 -91
- package/src/docs/pages/settings/min_max.vue +0 -61
- package/src/docs/pages/settings/open_position.vue +0 -60
- package/src/docs/pages/settings/placeholder.vue +0 -72
- package/src/docs/pages/settings/search.vue +0 -140
- package/src/docs/pages/settings/select.vue +0 -32
- package/src/docs/pages/settings/select_by_group.vue +0 -46
- package/src/docs/pages/settings/show_tooltip.vue +0 -44
- package/src/docs/pages/settings/styles.vue +0 -51
- package/src/docs/router.ts +0 -50
|
@@ -89,17 +89,28 @@ export default class Render {
|
|
|
89
89
|
addable: 'ss-addable',
|
|
90
90
|
addablePath: 'M50,10 L50,90 M10,50 L90,50', // Not a class but whatever
|
|
91
91
|
|
|
92
|
-
// List options
|
|
92
|
+
// List optgroups/options
|
|
93
93
|
list: 'ss-list',
|
|
94
|
+
|
|
95
|
+
// Optgroup
|
|
94
96
|
optgroup: 'ss-optgroup',
|
|
95
97
|
optgroupLabel: 'ss-optgroup-label',
|
|
96
|
-
|
|
98
|
+
optgroupLabelText: 'ss-optgroup-label-text',
|
|
99
|
+
optgroupActions: 'ss-optgroup-actions',
|
|
100
|
+
optgroupSelectAll: 'ss-selectall', // optgroup select all
|
|
101
|
+
optgroupSelectAllBox: 'M60,10 L10,10 L10,90 L90,90 L90,50', // Not a class but whatever
|
|
102
|
+
optgroupSelectAllCheck: 'M30,45 L50,70 L90,10', // Not a class but whatever
|
|
103
|
+
optgroupClosable: 'ss-closable',
|
|
104
|
+
|
|
105
|
+
// Option
|
|
97
106
|
option: 'ss-option',
|
|
98
|
-
optionSelected: 'ss-option-selected',
|
|
99
107
|
optionDelete: 'M10,10 L90,90 M10,90 L90,10', // Not a class but whatever
|
|
100
108
|
highlighted: 'ss-highlighted',
|
|
101
109
|
|
|
102
110
|
// Misc
|
|
111
|
+
open: 'ss-open',
|
|
112
|
+
close: 'ss-close',
|
|
113
|
+
selected: 'ss-selected',
|
|
103
114
|
error: 'ss-error',
|
|
104
115
|
disabled: 'ss-disabled',
|
|
105
116
|
hide: 'ss-hide',
|
|
@@ -113,12 +124,6 @@ export default class Render {
|
|
|
113
124
|
this.main = this.mainDiv()
|
|
114
125
|
this.content = this.contentDiv()
|
|
115
126
|
|
|
116
|
-
// Render the values
|
|
117
|
-
this.renderValues()
|
|
118
|
-
|
|
119
|
-
// Render the options
|
|
120
|
-
this.renderOptions(this.store.getData())
|
|
121
|
-
|
|
122
127
|
// Add content to the content location settings
|
|
123
128
|
this.settings.contentLocation.appendChild(this.content.main)
|
|
124
129
|
}
|
|
@@ -826,25 +831,31 @@ export default class Render {
|
|
|
826
831
|
// Loop through options and find the highlighted one
|
|
827
832
|
for (let i = 0; i < options.length; i++) {
|
|
828
833
|
if (options[i].classList.contains(this.classes.highlighted)) {
|
|
834
|
+
const prevOption = options[i]
|
|
829
835
|
// Remove highlighted class from current one
|
|
830
|
-
|
|
836
|
+
prevOption.classList.remove(this.classes.highlighted)
|
|
837
|
+
|
|
838
|
+
// If previous option has parent classes ss-optgroup with ss-open then click it
|
|
839
|
+
const prevParent = prevOption.parentElement
|
|
840
|
+
if (prevParent && prevParent.classList.contains(this.classes.open)) {
|
|
841
|
+
const optgroupLabel = prevParent.querySelector('.' + this.classes.optgroupLabel) as HTMLDivElement
|
|
842
|
+
if (optgroupLabel) {
|
|
843
|
+
optgroupLabel.click()
|
|
844
|
+
}
|
|
845
|
+
}
|
|
831
846
|
|
|
832
847
|
// Highlight the next one
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
if (
|
|
843
|
-
|
|
844
|
-
this.ensureElementInView(this.content.list, options[i - 1])
|
|
845
|
-
} else {
|
|
846
|
-
options[options.length - 1].classList.add(this.classes.highlighted)
|
|
847
|
-
this.ensureElementInView(this.content.list, options[options.length - 1])
|
|
848
|
+
let selectOption =
|
|
849
|
+
options[dir === 'down' ? (i + 1 < options.length ? i + 1 : 0) : i - 1 >= 0 ? i - 1 : options.length - 1]
|
|
850
|
+
selectOption.classList.add(this.classes.highlighted)
|
|
851
|
+
this.ensureElementInView(this.content.list, selectOption)
|
|
852
|
+
|
|
853
|
+
// If selected option has parent classes ss-optgroup with ss-close then click it
|
|
854
|
+
const selectParent = selectOption.parentElement
|
|
855
|
+
if (selectParent && selectParent.classList.contains(this.classes.close)) {
|
|
856
|
+
const optgroupLabel = selectParent.querySelector('.' + this.classes.optgroupLabel) as HTMLDivElement
|
|
857
|
+
if (optgroupLabel) {
|
|
858
|
+
optgroupLabel.click()
|
|
848
859
|
}
|
|
849
860
|
}
|
|
850
861
|
|
|
@@ -915,21 +926,143 @@ export default class Render {
|
|
|
915
926
|
// Create label
|
|
916
927
|
const optgroupLabel = document.createElement('div')
|
|
917
928
|
optgroupLabel.classList.add(this.classes.optgroupLabel)
|
|
918
|
-
optgroupLabel
|
|
929
|
+
optgroupEl.appendChild(optgroupLabel)
|
|
930
|
+
|
|
931
|
+
// Create label text div element
|
|
932
|
+
const optgroupLabelText = document.createElement('div')
|
|
933
|
+
optgroupLabelText.classList.add(this.classes.optgroupLabelText)
|
|
934
|
+
optgroupLabelText.textContent = d.label
|
|
935
|
+
optgroupLabel.appendChild(optgroupLabelText)
|
|
936
|
+
|
|
937
|
+
// Create options container
|
|
938
|
+
const optgroupActions = document.createElement('div')
|
|
939
|
+
optgroupActions.classList.add(this.classes.optgroupActions)
|
|
940
|
+
optgroupLabel.appendChild(optgroupActions)
|
|
919
941
|
|
|
920
942
|
// If selectByGroup is true and isMultiple then add click event to label
|
|
921
|
-
if (this.settings.
|
|
922
|
-
|
|
943
|
+
if (this.settings.isMultiple && d.selectAll) {
|
|
944
|
+
// Create new div to hold a checkbox svg
|
|
945
|
+
const selectAll = document.createElement('div')
|
|
946
|
+
selectAll.classList.add(this.classes.optgroupSelectAll)
|
|
947
|
+
|
|
948
|
+
// Check options and if all are selected, if so add class selected
|
|
949
|
+
let allSelected = true
|
|
950
|
+
for (const o of d.options) {
|
|
951
|
+
if (!o.selected) {
|
|
952
|
+
allSelected = false
|
|
953
|
+
break
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
|
|
957
|
+
// Add class if all selected
|
|
958
|
+
if (allSelected) {
|
|
959
|
+
selectAll.classList.add(this.classes.selected)
|
|
960
|
+
}
|
|
961
|
+
|
|
962
|
+
// Add select all text span
|
|
963
|
+
const selectAllText = document.createElement('span')
|
|
964
|
+
selectAllText.textContent = 'Select All'
|
|
965
|
+
selectAll.appendChild(selectAllText)
|
|
966
|
+
|
|
967
|
+
// Create new svg for checkbox
|
|
968
|
+
const selectAllSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg')
|
|
969
|
+
selectAllSvg.setAttribute('viewBox', '0 0 100 100')
|
|
970
|
+
selectAll.appendChild(selectAllSvg)
|
|
971
|
+
|
|
972
|
+
// Create new path for box
|
|
973
|
+
const selectAllBox = document.createElementNS('http://www.w3.org/2000/svg', 'path')
|
|
974
|
+
selectAllBox.setAttribute('d', this.classes.optgroupSelectAllBox)
|
|
975
|
+
selectAllSvg.appendChild(selectAllBox)
|
|
976
|
+
|
|
977
|
+
// Create new path for check
|
|
978
|
+
const selectAllCheck = document.createElementNS('http://www.w3.org/2000/svg', 'path')
|
|
979
|
+
selectAllCheck.setAttribute('d', this.classes.optgroupSelectAllCheck)
|
|
980
|
+
selectAllSvg.appendChild(selectAllCheck)
|
|
981
|
+
|
|
982
|
+
// Add click event listener to select all
|
|
983
|
+
selectAll.addEventListener('click', (e: MouseEvent) => {
|
|
984
|
+
e.preventDefault()
|
|
985
|
+
e.stopPropagation()
|
|
986
|
+
|
|
987
|
+
// Get the store current selected values
|
|
988
|
+
const currentSelected = this.store.getSelected()
|
|
989
|
+
|
|
990
|
+
// If all selected, remove all options from selected
|
|
991
|
+
// call setSelected and return
|
|
992
|
+
if (allSelected) {
|
|
993
|
+
// Put together new list minus all options in this optgroup
|
|
994
|
+
const newSelected = currentSelected.filter((s) => {
|
|
995
|
+
for (const o of d.options) {
|
|
996
|
+
if (s === o.value) {
|
|
997
|
+
return false
|
|
998
|
+
}
|
|
999
|
+
}
|
|
1000
|
+
|
|
1001
|
+
return true
|
|
1002
|
+
})
|
|
1003
|
+
|
|
1004
|
+
this.callbacks.setSelected(newSelected)
|
|
1005
|
+
return
|
|
1006
|
+
} else {
|
|
1007
|
+
// Put together new list with all options in this optgroup
|
|
1008
|
+
const newSelected = currentSelected.concat(d.options.map((o) => o.value))
|
|
1009
|
+
|
|
1010
|
+
this.callbacks.setSelected(newSelected)
|
|
1011
|
+
}
|
|
1012
|
+
})
|
|
1013
|
+
|
|
1014
|
+
// Append select all to label
|
|
1015
|
+
optgroupActions.appendChild(selectAll)
|
|
1016
|
+
}
|
|
1017
|
+
|
|
1018
|
+
// If optgroup has collapsable
|
|
1019
|
+
if (d.closable !== 'off') {
|
|
1020
|
+
// Create new div to hold a checkbox svg
|
|
1021
|
+
const optgroupClosable = document.createElement('div')
|
|
1022
|
+
optgroupClosable.classList.add(this.classes.optgroupClosable)
|
|
1023
|
+
|
|
1024
|
+
// Create svg arrow
|
|
1025
|
+
const optgroupClosableSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg')
|
|
1026
|
+
optgroupClosableSvg.setAttribute('viewBox', '0 0 100 100')
|
|
1027
|
+
optgroupClosableSvg.classList.add(this.classes.arrow)
|
|
1028
|
+
optgroupClosable.appendChild(optgroupClosableSvg)
|
|
1029
|
+
|
|
1030
|
+
// Create new path for arrow
|
|
1031
|
+
const optgroupClosableArrow = document.createElementNS('http://www.w3.org/2000/svg', 'path')
|
|
1032
|
+
optgroupClosableArrow.setAttribute('d', this.classes.arrow)
|
|
1033
|
+
optgroupClosableSvg.appendChild(optgroupClosableArrow)
|
|
1034
|
+
|
|
1035
|
+
// If any options are selected, set optgroup to open
|
|
1036
|
+
if (d.options.some((o) => o.selected)) {
|
|
1037
|
+
optgroupClosable.classList.add(this.classes.open)
|
|
1038
|
+
optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen)
|
|
1039
|
+
} else if (d.closable === 'open') {
|
|
1040
|
+
optgroupEl.classList.add(this.classes.open)
|
|
1041
|
+
optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen)
|
|
1042
|
+
} else if (d.closable === 'close') {
|
|
1043
|
+
optgroupEl.classList.add(this.classes.close)
|
|
1044
|
+
optgroupClosableArrow.setAttribute('d', this.classes.arrowClose)
|
|
1045
|
+
}
|
|
1046
|
+
|
|
1047
|
+
// Add click event listener to close
|
|
923
1048
|
optgroupLabel.addEventListener('click', (e: MouseEvent) => {
|
|
924
1049
|
e.preventDefault()
|
|
925
1050
|
e.stopPropagation()
|
|
926
1051
|
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
1052
|
+
// If optgroup is closed, open it
|
|
1053
|
+
if (optgroupEl.classList.contains(this.classes.close)) {
|
|
1054
|
+
optgroupEl.classList.remove(this.classes.close)
|
|
1055
|
+
optgroupEl.classList.add(this.classes.open)
|
|
1056
|
+
optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen)
|
|
1057
|
+
} else {
|
|
1058
|
+
optgroupEl.classList.remove(this.classes.open)
|
|
1059
|
+
optgroupEl.classList.add(this.classes.close)
|
|
1060
|
+
optgroupClosableArrow.setAttribute('d', this.classes.arrowClose)
|
|
931
1061
|
}
|
|
932
1062
|
})
|
|
1063
|
+
|
|
1064
|
+
// Append close to label
|
|
1065
|
+
optgroupActions.appendChild(optgroupClosable)
|
|
933
1066
|
}
|
|
934
1067
|
|
|
935
1068
|
// Add optgroup label
|
|
@@ -1006,9 +1139,9 @@ export default class Render {
|
|
|
1006
1139
|
|
|
1007
1140
|
// If option is selected
|
|
1008
1141
|
if (option.selected) {
|
|
1009
|
-
optionEl.classList.add(this.classes.
|
|
1142
|
+
optionEl.classList.add(this.classes.selected)
|
|
1010
1143
|
} else {
|
|
1011
|
-
optionEl.classList.remove(this.classes.
|
|
1144
|
+
optionEl.classList.remove(this.classes.selected)
|
|
1012
1145
|
}
|
|
1013
1146
|
|
|
1014
1147
|
// Add click event listener
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { generateID, kebabCase } from './helpers'
|
|
2
|
-
import { DataArray, Optgroup, Option } from './store'
|
|
2
|
+
import { DataArray, DataArrayPartial, Optgroup, OptgroupOptional, Option } from './store'
|
|
3
3
|
|
|
4
4
|
export default class Select {
|
|
5
5
|
public select: HTMLSelectElement
|
|
6
6
|
public listen: boolean = false
|
|
7
7
|
|
|
8
8
|
// Mutation observer fields
|
|
9
|
-
public onSelectChange?: (data:
|
|
9
|
+
public onSelectChange?: (data: DataArrayPartial) => void
|
|
10
10
|
public onValueChange?: (value: string[]) => void
|
|
11
11
|
private observer: MutationObserver | null = null
|
|
12
12
|
|
|
@@ -55,7 +55,7 @@ export default class Select {
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
// Add change listener to original select
|
|
58
|
-
public addSelectChangeListener(func: (data:
|
|
58
|
+
public addSelectChangeListener(func: (data: DataArrayPartial) => void): void {
|
|
59
59
|
this.onSelectChange = func
|
|
60
60
|
this.addObserver()
|
|
61
61
|
this.connectObserver()
|
|
@@ -129,8 +129,8 @@ export default class Select {
|
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
// From the select element pull optgroup and options into data
|
|
132
|
-
public getData():
|
|
133
|
-
let data = []
|
|
132
|
+
public getData(): DataArrayPartial {
|
|
133
|
+
let data = [] as DataArrayPartial
|
|
134
134
|
|
|
135
135
|
// Loop through nodes and get data
|
|
136
136
|
const nodes = this.select.childNodes as any as HTMLOptGroupElement[] | HTMLOptionElement[]
|
|
@@ -149,23 +149,43 @@ export default class Select {
|
|
|
149
149
|
return data
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
public getDataFromOptgroup(optgroup: HTMLOptGroupElement):
|
|
152
|
+
public getDataFromOptgroup(optgroup: HTMLOptGroupElement): OptgroupOptional {
|
|
153
153
|
let data = {
|
|
154
|
-
id: '',
|
|
154
|
+
id: (optgroup.dataset ? optgroup.dataset.id : false) || '',
|
|
155
155
|
label: optgroup.label,
|
|
156
|
+
selectAll: optgroup.dataset ? optgroup.dataset.selectall === 'true' : false,
|
|
157
|
+
closable: optgroup.dataset ? optgroup.dataset.closable : 'off',
|
|
156
158
|
options: [],
|
|
157
|
-
} as
|
|
159
|
+
} as OptgroupOptional
|
|
158
160
|
|
|
159
161
|
const options = optgroup.childNodes as any as HTMLOptionElement[]
|
|
160
162
|
for (const o of options) {
|
|
161
163
|
if (o.nodeName === 'OPTION') {
|
|
162
|
-
data.options
|
|
164
|
+
data.options!.push(this.getDataFromOption(o as HTMLOptionElement))
|
|
163
165
|
}
|
|
164
166
|
}
|
|
165
167
|
|
|
166
168
|
return data
|
|
167
169
|
}
|
|
168
170
|
|
|
171
|
+
// From passed in option pull pieces of usable information
|
|
172
|
+
public getDataFromOption(option: HTMLOptionElement): Option {
|
|
173
|
+
return {
|
|
174
|
+
id: (option.dataset ? option.dataset.id : false) || '',
|
|
175
|
+
value: option.value,
|
|
176
|
+
text: option.text,
|
|
177
|
+
html: option.innerHTML,
|
|
178
|
+
selected: option.selected,
|
|
179
|
+
display: option.style.display === 'none' ? false : true,
|
|
180
|
+
disabled: option.disabled,
|
|
181
|
+
mandatory: option.dataset ? option.dataset.mandatory === 'true' : false,
|
|
182
|
+
placeholder: option.dataset.placeholder === 'true',
|
|
183
|
+
class: option.className,
|
|
184
|
+
style: option.style.cssText,
|
|
185
|
+
data: option.dataset,
|
|
186
|
+
} as Option
|
|
187
|
+
}
|
|
188
|
+
|
|
169
189
|
public getSelectedValues(): string[] {
|
|
170
190
|
let values = []
|
|
171
191
|
|
|
@@ -195,24 +215,6 @@ export default class Select {
|
|
|
195
215
|
return values
|
|
196
216
|
}
|
|
197
217
|
|
|
198
|
-
// From passed in option pull pieces of usable information
|
|
199
|
-
public getDataFromOption(option: HTMLOptionElement): Option {
|
|
200
|
-
return {
|
|
201
|
-
id: (option.dataset ? option.dataset.id : false) || generateID(),
|
|
202
|
-
value: option.value,
|
|
203
|
-
text: option.text,
|
|
204
|
-
html: option.innerHTML,
|
|
205
|
-
selected: option.selected,
|
|
206
|
-
display: option.style.display === 'none' ? false : true,
|
|
207
|
-
disabled: option.disabled,
|
|
208
|
-
mandatory: option.dataset ? option.dataset.mandatory === 'true' : false,
|
|
209
|
-
placeholder: option.dataset.placeholder === 'true',
|
|
210
|
-
class: option.className,
|
|
211
|
-
style: option.style.cssText,
|
|
212
|
-
data: option.dataset,
|
|
213
|
-
} as Option
|
|
214
|
-
}
|
|
215
|
-
|
|
216
218
|
public setSelected(value: string[]): void {
|
|
217
219
|
// Loop through options and set selected
|
|
218
220
|
const options = this.select.childNodes as any as (HTMLOptGroupElement | HTMLOptionElement)[]
|
|
@@ -288,6 +290,12 @@ export default class Select {
|
|
|
288
290
|
const optgroupEl = document.createElement('optgroup')
|
|
289
291
|
optgroupEl.id = optgroup.id
|
|
290
292
|
optgroupEl.label = optgroup.label
|
|
293
|
+
if (optgroup.selectAll) {
|
|
294
|
+
optgroupEl.dataset.selectAll = 'true'
|
|
295
|
+
}
|
|
296
|
+
if (optgroup.closable !== 'off') {
|
|
297
|
+
optgroupEl.dataset.closable = optgroup.closable
|
|
298
|
+
}
|
|
291
299
|
if (optgroup.options) {
|
|
292
300
|
for (const o of optgroup.options) {
|
|
293
301
|
optgroupEl.appendChild(this.createOption(o))
|
|
@@ -14,8 +14,6 @@ export default class Settings {
|
|
|
14
14
|
public intervalMove: NodeJS.Timeout | null = null
|
|
15
15
|
|
|
16
16
|
// Fields set from constructor
|
|
17
|
-
public mainHeight: number = 30
|
|
18
|
-
public contentHeight: number = 0
|
|
19
17
|
public isEnabled: boolean
|
|
20
18
|
public alwaysOpen: boolean
|
|
21
19
|
public showSearch: boolean
|
|
@@ -31,7 +29,6 @@ export default class Settings {
|
|
|
31
29
|
public allowDeselect: boolean
|
|
32
30
|
public hideSelected: boolean
|
|
33
31
|
public showOptionTooltips: boolean
|
|
34
|
-
public selectByGroup: boolean
|
|
35
32
|
public minSelected: number
|
|
36
33
|
public maxSelected: number
|
|
37
34
|
public timeoutDelay: number
|
|
@@ -60,7 +57,6 @@ export default class Settings {
|
|
|
60
57
|
this.allowDeselect = settings.allowDeselect !== undefined ? settings.allowDeselect : false
|
|
61
58
|
this.hideSelected = settings.hideSelected !== undefined ? settings.hideSelected : false
|
|
62
59
|
this.showOptionTooltips = settings.showOptionTooltips !== undefined ? settings.showOptionTooltips : false
|
|
63
|
-
this.selectByGroup = settings.selectByGroup !== undefined ? settings.selectByGroup : false
|
|
64
60
|
this.minSelected = settings.minSelected || 0
|
|
65
61
|
this.maxSelected = settings.maxSelected || 1000
|
|
66
62
|
this.timeoutDelay = settings.timeoutDelay || 200
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
--ss-disabled-color: #8a8a8a;
|
|
8
8
|
--ss-border-color: #dcdee2;
|
|
9
9
|
--ss-highlight-color: #fffb8c;
|
|
10
|
+
--ss-success-color: #00b755;
|
|
10
11
|
--ss-error-color: #dc3545;
|
|
11
12
|
|
|
12
13
|
// Heights
|
|
@@ -334,9 +335,117 @@
|
|
|
334
335
|
}
|
|
335
336
|
|
|
336
337
|
.ss-optgroup {
|
|
338
|
+
// If optgroup is open, show the options
|
|
339
|
+
&.ss-open {
|
|
340
|
+
.ss-option {
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
// If optgroup has close, hide all options
|
|
345
|
+
&.ss-close {
|
|
346
|
+
.ss-option {
|
|
347
|
+
display: none !important;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
|
|
337
351
|
.ss-optgroup-label {
|
|
352
|
+
display: flex;
|
|
353
|
+
flex-direction: row;
|
|
354
|
+
align-items: center;
|
|
355
|
+
justify-content: space-between;
|
|
338
356
|
padding: var(--ss-spacing-m) var(--ss-spacing-l) var(--ss-spacing-m) var(--ss-spacing-l);
|
|
339
|
-
|
|
357
|
+
|
|
358
|
+
.ss-optgroup-label-text {
|
|
359
|
+
flex: 1 1 auto;
|
|
360
|
+
font-weight: bold;
|
|
361
|
+
color: var(--ss-font-color);
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
// If optgroup has arrow, make label clickable
|
|
365
|
+
&:has(.ss-arrow) {
|
|
366
|
+
cursor: pointer;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
.ss-optgroup-actions {
|
|
370
|
+
flex: 0 1 auto;
|
|
371
|
+
display: flex;
|
|
372
|
+
flex-direction: row;
|
|
373
|
+
align-items: center;
|
|
374
|
+
justify-content: center;
|
|
375
|
+
gap: var(--ss-spacing-m);
|
|
376
|
+
|
|
377
|
+
.ss-selectall {
|
|
378
|
+
flex: 0 0 auto;
|
|
379
|
+
display: flex;
|
|
380
|
+
flex-direction: row;
|
|
381
|
+
cursor: pointer;
|
|
382
|
+
|
|
383
|
+
&:hover {
|
|
384
|
+
opacity: 0.5;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
&.ss-selected {
|
|
388
|
+
svg {
|
|
389
|
+
path {
|
|
390
|
+
stroke: var(--ss-error-color);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
span {
|
|
396
|
+
flex: 0 1 auto;
|
|
397
|
+
display: flex;
|
|
398
|
+
align-items: center;
|
|
399
|
+
justify-content: center;
|
|
400
|
+
font-size: calc(100% * 0.6);
|
|
401
|
+
text-align: center;
|
|
402
|
+
padding: 0 var(--ss-spacing-s) 0 0;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
svg {
|
|
406
|
+
flex: 0 1 auto;
|
|
407
|
+
width: 13px;
|
|
408
|
+
height: 13px;
|
|
409
|
+
|
|
410
|
+
path {
|
|
411
|
+
fill: none;
|
|
412
|
+
stroke: var(--ss-success-color);
|
|
413
|
+
stroke-linecap: round;
|
|
414
|
+
stroke-linejoin: round;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
&:first-child {
|
|
418
|
+
stroke-width: 5;
|
|
419
|
+
}
|
|
420
|
+
&:last-child {
|
|
421
|
+
stroke-width: 11;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
.ss-closable {
|
|
427
|
+
flex: 0 1 auto;
|
|
428
|
+
display: flex;
|
|
429
|
+
flex-direction: row;
|
|
430
|
+
cursor: pointer;
|
|
431
|
+
|
|
432
|
+
.ss-arrow {
|
|
433
|
+
flex: 1 1 auto;
|
|
434
|
+
width: 10px;
|
|
435
|
+
height: 10px;
|
|
436
|
+
|
|
437
|
+
path {
|
|
438
|
+
fill: none;
|
|
439
|
+
stroke: var(--ss-font-color);
|
|
440
|
+
stroke-width: 18;
|
|
441
|
+
stroke-linecap: round;
|
|
442
|
+
stroke-linejoin: round;
|
|
443
|
+
transition-timing-function: ease-out;
|
|
444
|
+
transition: var(--ss-animation-timing);
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
}
|
|
340
449
|
}
|
|
341
450
|
|
|
342
451
|
.ss-option {
|
|
@@ -344,16 +453,8 @@
|
|
|
344
453
|
}
|
|
345
454
|
}
|
|
346
455
|
|
|
347
|
-
.ss-optgroup-selectable {
|
|
348
|
-
cursor: pointer;
|
|
349
|
-
|
|
350
|
-
&:hover {
|
|
351
|
-
color: var(--ss-bg-color);
|
|
352
|
-
background-color: var(--ss-primary-color);
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
|
|
356
456
|
.ss-option {
|
|
457
|
+
display: flex;
|
|
357
458
|
padding: var(--ss-spacing-m) var(--ss-spacing-l) var(--ss-spacing-m) var(--ss-spacing-l);
|
|
358
459
|
cursor: pointer;
|
|
359
460
|
user-select: none;
|
|
@@ -370,7 +471,7 @@
|
|
|
370
471
|
background-color: var(--ss-bg-color);
|
|
371
472
|
}
|
|
372
473
|
|
|
373
|
-
&:not(.ss-disabled).ss-
|
|
474
|
+
&:not(.ss-disabled).ss-selected {
|
|
374
475
|
color: var(--ss-font-color);
|
|
375
476
|
background-color: var(--ss-highlight-color);
|
|
376
477
|
}
|
package/src/slim-select/store.ts
CHANGED
|
@@ -11,17 +11,23 @@ type selectType = 'single' | 'multiple'
|
|
|
11
11
|
export interface OptgroupOptional {
|
|
12
12
|
id?: string
|
|
13
13
|
label: string // Required
|
|
14
|
+
selectAll?: boolean
|
|
15
|
+
closable?: 'off' | 'open' | 'close'
|
|
14
16
|
options?: OptionOptional[]
|
|
15
17
|
}
|
|
16
18
|
|
|
17
19
|
export class Optgroup {
|
|
18
20
|
public id: string
|
|
19
21
|
public label: string
|
|
22
|
+
public selectAll: boolean
|
|
23
|
+
public closable: 'off' | 'open' | 'close'
|
|
20
24
|
public options: Option[]
|
|
21
25
|
|
|
22
26
|
constructor(optgroup: OptgroupOptional) {
|
|
23
27
|
this.id = !optgroup.id || optgroup.id === '' ? generateID() : optgroup.id
|
|
24
28
|
this.label = optgroup.label || ''
|
|
29
|
+
this.selectAll = optgroup.selectAll === undefined ? false : optgroup.selectAll
|
|
30
|
+
this.closable = optgroup.closable || 'off'
|
|
25
31
|
|
|
26
32
|
// If options exist, loop through options and create new option class
|
|
27
33
|
// and set the options to the optgroup options field
|
|
@@ -255,6 +261,18 @@ export default class Store {
|
|
|
255
261
|
return selectedIDs
|
|
256
262
|
}
|
|
257
263
|
|
|
264
|
+
public getOptgroupByID(id: string): Optgroup | null {
|
|
265
|
+
// Loop through each data object
|
|
266
|
+
// and if optgroup is found, return it
|
|
267
|
+
for (let dataObj of this.data) {
|
|
268
|
+
if (dataObj instanceof Optgroup && dataObj.id === id) {
|
|
269
|
+
return dataObj
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
return null
|
|
274
|
+
}
|
|
275
|
+
|
|
258
276
|
public getOptionByID(id: string): Option | null {
|
|
259
277
|
let options = this.filter((opt: Option) => {
|
|
260
278
|
return opt.id === id
|
|
@@ -302,7 +320,7 @@ export default class Store {
|
|
|
302
320
|
})
|
|
303
321
|
|
|
304
322
|
if (optOptions.length > 0) {
|
|
305
|
-
dataSearch.push(new Optgroup(
|
|
323
|
+
dataSearch.push(new Optgroup(dataObj))
|
|
306
324
|
}
|
|
307
325
|
}
|
|
308
326
|
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Slim Select Vue
|
|
2
|
+
|
|
3
|
+
## slimselectjs.com
|
|
4
|
+
|
|
5
|
+
Vue integration for the SlimSelect
|
|
6
|
+
|
|
7
|
+
See the website for the best details on how to use the vue integration
|
|
8
|
+
|
|
9
|
+
[](https://www.npmjs.com/package/@slim-select/vue)
|
|
10
|
+
|
|
11
|
+
## Support
|
|
12
|
+
|
|
13
|
+
[](https://github.com/sponsors/brianvoe)
|
|
14
|
+
|
|
15
|
+
<a href="https://www.buymeacoffee.com/brianvoe" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: auto !important;width: auto !important;" ></a>
|
|
16
|
+
|
|
17
|
+
## Installation
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm install @slim-select/vue
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Usage
|
|
24
|
+
|
|
25
|
+
```javascript
|
|
26
|
+
import { defineComponent } from 'vue'
|
|
27
|
+
import SlimSelect from '@slim-select/vue'
|
|
28
|
+
|
|
29
|
+
export default defineComponent({
|
|
30
|
+
components: {
|
|
31
|
+
SlimSelect,
|
|
32
|
+
},
|
|
33
|
+
})
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
```html
|
|
37
|
+
<SlimSelect>
|
|
38
|
+
<option value="1">Option 1</option>
|
|
39
|
+
<option value="2">Option 2</option>
|
|
40
|
+
<option value="3">Option 3</option>
|
|
41
|
+
</SlimSelect>
|
|
42
|
+
|
|
43
|
+
<SlimSelect multiple>
|
|
44
|
+
<option value="1">Option 1</option>
|
|
45
|
+
<option value="2">Option 2</option>
|
|
46
|
+
<option value="3">Option 3</option>
|
|
47
|
+
</SlimSelect>
|
|
48
|
+
```
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function generateID(): string;
|
|
2
|
+
export declare function hasClassInTree(element: HTMLElement, className: string): any;
|
|
3
|
+
export declare function debounce(func: (...params: any[]) => void, wait?: number, immediate?: boolean): () => void;
|
|
4
|
+
export declare function kebabCase(str: string): string;
|