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.
Files changed (247) hide show
  1. package/README.md +8 -0
  2. package/dist/render.d.ts +9 -2
  3. package/dist/select.d.ts +6 -6
  4. package/dist/settings.d.ts +0 -3
  5. package/dist/slimselect.cjs.js +152 -51
  6. package/dist/slimselect.css +1 -1
  7. package/dist/slimselect.css.map +1 -1
  8. package/dist/slimselect.es.js +152 -51
  9. package/dist/slimselect.global.js +152 -51
  10. package/dist/slimselect.js +152 -51
  11. package/dist/slimselect.min.js +1 -1
  12. package/dist/slimselect.umd.js +152 -51
  13. package/dist/slimselect.umd.min.js +1 -1
  14. package/dist/store.d.ts +5 -0
  15. package/package.json +1 -3
  16. package/src/slim-select/index.ts +3 -1
  17. package/src/slim-select/render.ts +167 -34
  18. package/src/slim-select/select.ts +35 -27
  19. package/src/slim-select/settings.ts +0 -4
  20. package/src/slim-select/slimselect.scss +112 -11
  21. package/src/slim-select/store.ts +19 -1
  22. package/src/vue/README.md +48 -0
  23. package/src/vue/dist/slim-select/helpers.d.ts +4 -0
  24. package/src/vue/dist/slim-select/index.d.ts +45 -0
  25. package/src/vue/dist/slim-select/render.d.ts +116 -0
  26. package/src/vue/dist/slim-select/select.d.ts +33 -0
  27. package/src/vue/dist/slim-select/settings.d.ts +30 -0
  28. package/src/vue/dist/slim-select/store.d.ts +76 -0
  29. package/src/vue/dist/slimselectvue.es.js +152 -51
  30. package/src/vue/dist/slimselectvue.global.js +152 -51
  31. package/src/vue/dist/slimselectvue.ssr.js +152 -51
  32. package/src/vue/dist/vue/hello.d.ts +2 -0
  33. package/src/vue/dist/vue/slimselect.vue.d.ts +286 -0
  34. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/code/cache/05b27cf262de47962f4beeba3d4b4f67616bdf24 +1 -0
  35. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/code/cache/26c90bc22e366b540ff134ba7de2ab3715155a20 +1 -0
  36. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/code/cache/7a2b654bed9256f52421aec7d04cd8553486335b +1 -0
  37. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/code/cache/80fdd1aafff88316e6a7f63509fb7304c94ae6d3 +1 -0
  38. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/code/cache/88c6c8bf5346a961efcdff848fba6e3f2d24b26c +1 -0
  39. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/code/cache/b2f217f16a7744eb13543dc90442443538b724b8 +1 -0
  40. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/code/cache/be60813c21c2fbc627fcf99127ca2a96a3065fba +1 -0
  41. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/semanticDiagnostics/cache/05b27cf262de47962f4beeba3d4b4f67616bdf24 +1 -0
  42. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/semanticDiagnostics/cache/26c90bc22e366b540ff134ba7de2ab3715155a20 +1 -0
  43. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/semanticDiagnostics/cache/7a2b654bed9256f52421aec7d04cd8553486335b +1 -0
  44. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/semanticDiagnostics/cache/80fdd1aafff88316e6a7f63509fb7304c94ae6d3 +1 -0
  45. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/semanticDiagnostics/cache/88c6c8bf5346a961efcdff848fba6e3f2d24b26c +1 -0
  46. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/semanticDiagnostics/cache/a8a4a8a1b06b6c8069e965f4a30a4b42013b830a +1 -0
  47. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/semanticDiagnostics/cache/b2f217f16a7744eb13543dc90442443538b724b8 +1 -0
  48. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/semanticDiagnostics/cache/be60813c21c2fbc627fcf99127ca2a96a3065fba +1 -0
  49. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/syntacticDiagnostics/cache/05b27cf262de47962f4beeba3d4b4f67616bdf24 +1 -0
  50. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/syntacticDiagnostics/cache/26c90bc22e366b540ff134ba7de2ab3715155a20 +1 -0
  51. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/syntacticDiagnostics/cache/7a2b654bed9256f52421aec7d04cd8553486335b +1 -0
  52. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/syntacticDiagnostics/cache/80fdd1aafff88316e6a7f63509fb7304c94ae6d3 +1 -0
  53. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/syntacticDiagnostics/cache/88c6c8bf5346a961efcdff848fba6e3f2d24b26c +1 -0
  54. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/syntacticDiagnostics/cache/a8a4a8a1b06b6c8069e965f4a30a4b42013b830a +1 -0
  55. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/syntacticDiagnostics/cache/b2f217f16a7744eb13543dc90442443538b724b8 +1 -0
  56. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/syntacticDiagnostics/cache/be60813c21c2fbc627fcf99127ca2a96a3065fba +1 -0
  57. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/068e7904209e205518dbc9726d632bbaf28bfc55 +0 -0
  58. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/06b75ecfe63fda3fcfaa42593fa1f22167f3a9f8 +0 -0
  59. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/2aa9d56fc4a9661ee8e3de277da5ee3f960713de +0 -0
  60. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/2c58b356be1a9572c64469d50a7a25c46f94aaeb +0 -0
  61. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/36d3fb579feb4cad7a15b7a2f509f338caf72fa0 +0 -0
  62. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/388b297c3f73fcba25b8174fda975235e5d12b5a +0 -0
  63. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/40e43895ec63e1e25aa7e278ca1e8c3adefc815d +0 -0
  64. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/645e188194be07518ebbb0a5b4304f5170fee599 +0 -0
  65. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/65515bf3a44aaf1306f589073f1c8b98be747f5f +0 -0
  66. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/6a357fe7542e07f7919ea9b22401027dd1e8a0c1 +0 -0
  67. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/72087cac150d02ed6d19e37d6f1436566d5ac798 +0 -0
  68. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/9ff120b6426a4c7a03236428f26a92772586c3e5 +0 -0
  69. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/a6917de673fc74a6cfca5133913982e54e58a7fb +0 -0
  70. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/aa4aee440d13b06b4bb05c36eee326513aa6c040 +0 -0
  71. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/b02a4d0c40fac4c7f9ea7acd7944ee8844afcedf +0 -0
  72. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/b21a02b948881426bc4dcff649fc4fba07ca34d2 +0 -0
  73. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/c10c11f9c426095ab3f504dd8b7622ad7ba7c8ed +0 -0
  74. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_1e8d68e0803222688213218fda500c83f6c6476e/types/cache/dc186595636217ded2d4a4cfbb789d68ea485b6b +0 -0
  75. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/code/cache/05b27cf262de47962f4beeba3d4b4f67616bdf24 +1 -0
  76. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/code/cache/26c90bc22e366b540ff134ba7de2ab3715155a20 +1 -0
  77. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/code/cache/7a2b654bed9256f52421aec7d04cd8553486335b +1 -0
  78. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/code/cache/80fdd1aafff88316e6a7f63509fb7304c94ae6d3 +1 -0
  79. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/code/cache/88c6c8bf5346a961efcdff848fba6e3f2d24b26c +1 -0
  80. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/code/cache/b2f217f16a7744eb13543dc90442443538b724b8 +1 -0
  81. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/code/cache/be60813c21c2fbc627fcf99127ca2a96a3065fba +1 -0
  82. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/semanticDiagnostics/cache/05b27cf262de47962f4beeba3d4b4f67616bdf24 +1 -0
  83. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/semanticDiagnostics/cache/26c90bc22e366b540ff134ba7de2ab3715155a20 +1 -0
  84. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/semanticDiagnostics/cache/7a2b654bed9256f52421aec7d04cd8553486335b +1 -0
  85. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/semanticDiagnostics/cache/80fdd1aafff88316e6a7f63509fb7304c94ae6d3 +1 -0
  86. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/semanticDiagnostics/cache/88c6c8bf5346a961efcdff848fba6e3f2d24b26c +1 -0
  87. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/semanticDiagnostics/cache/a8a4a8a1b06b6c8069e965f4a30a4b42013b830a +1 -0
  88. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/semanticDiagnostics/cache/b2f217f16a7744eb13543dc90442443538b724b8 +1 -0
  89. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/semanticDiagnostics/cache/be60813c21c2fbc627fcf99127ca2a96a3065fba +1 -0
  90. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/syntacticDiagnostics/cache/05b27cf262de47962f4beeba3d4b4f67616bdf24 +1 -0
  91. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/syntacticDiagnostics/cache/26c90bc22e366b540ff134ba7de2ab3715155a20 +1 -0
  92. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/syntacticDiagnostics/cache/7a2b654bed9256f52421aec7d04cd8553486335b +1 -0
  93. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/syntacticDiagnostics/cache/80fdd1aafff88316e6a7f63509fb7304c94ae6d3 +1 -0
  94. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/syntacticDiagnostics/cache/88c6c8bf5346a961efcdff848fba6e3f2d24b26c +1 -0
  95. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/syntacticDiagnostics/cache/a8a4a8a1b06b6c8069e965f4a30a4b42013b830a +1 -0
  96. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/syntacticDiagnostics/cache/b2f217f16a7744eb13543dc90442443538b724b8 +1 -0
  97. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/syntacticDiagnostics/cache/be60813c21c2fbc627fcf99127ca2a96a3065fba +1 -0
  98. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/068e7904209e205518dbc9726d632bbaf28bfc55 +0 -0
  99. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/06b75ecfe63fda3fcfaa42593fa1f22167f3a9f8 +0 -0
  100. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/2aa9d56fc4a9661ee8e3de277da5ee3f960713de +0 -0
  101. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/2c58b356be1a9572c64469d50a7a25c46f94aaeb +0 -0
  102. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/36d3fb579feb4cad7a15b7a2f509f338caf72fa0 +0 -0
  103. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/388b297c3f73fcba25b8174fda975235e5d12b5a +0 -0
  104. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/40e43895ec63e1e25aa7e278ca1e8c3adefc815d +0 -0
  105. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/645e188194be07518ebbb0a5b4304f5170fee599 +0 -0
  106. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/65515bf3a44aaf1306f589073f1c8b98be747f5f +0 -0
  107. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/6a357fe7542e07f7919ea9b22401027dd1e8a0c1 +0 -0
  108. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/72087cac150d02ed6d19e37d6f1436566d5ac798 +0 -0
  109. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/9ff120b6426a4c7a03236428f26a92772586c3e5 +0 -0
  110. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/a6917de673fc74a6cfca5133913982e54e58a7fb +0 -0
  111. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/aa4aee440d13b06b4bb05c36eee326513aa6c040 +0 -0
  112. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/b02a4d0c40fac4c7f9ea7acd7944ee8844afcedf +0 -0
  113. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/b21a02b948881426bc4dcff649fc4fba07ca34d2 +0 -0
  114. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/c10c11f9c426095ab3f504dd8b7622ad7ba7c8ed +0 -0
  115. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_2e1b3e4caed5e16ec3a087e96a7fe6e4f5ea8a82/types/cache/dc186595636217ded2d4a4cfbb789d68ea485b6b +0 -0
  116. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/code/cache/05b27cf262de47962f4beeba3d4b4f67616bdf24 +1 -0
  117. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/code/cache/26c90bc22e366b540ff134ba7de2ab3715155a20 +1 -0
  118. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/code/cache/7a2b654bed9256f52421aec7d04cd8553486335b +1 -0
  119. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/code/cache/80fdd1aafff88316e6a7f63509fb7304c94ae6d3 +1 -0
  120. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/code/cache/88c6c8bf5346a961efcdff848fba6e3f2d24b26c +1 -0
  121. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/code/cache/b2f217f16a7744eb13543dc90442443538b724b8 +1 -0
  122. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/code/cache/be60813c21c2fbc627fcf99127ca2a96a3065fba +1 -0
  123. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/semanticDiagnostics/cache/05b27cf262de47962f4beeba3d4b4f67616bdf24 +1 -0
  124. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/semanticDiagnostics/cache/26c90bc22e366b540ff134ba7de2ab3715155a20 +1 -0
  125. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/semanticDiagnostics/cache/7a2b654bed9256f52421aec7d04cd8553486335b +1 -0
  126. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/semanticDiagnostics/cache/80fdd1aafff88316e6a7f63509fb7304c94ae6d3 +1 -0
  127. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/semanticDiagnostics/cache/88c6c8bf5346a961efcdff848fba6e3f2d24b26c +1 -0
  128. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/semanticDiagnostics/cache/a8a4a8a1b06b6c8069e965f4a30a4b42013b830a +1 -0
  129. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/semanticDiagnostics/cache/b2f217f16a7744eb13543dc90442443538b724b8 +1 -0
  130. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/semanticDiagnostics/cache/be60813c21c2fbc627fcf99127ca2a96a3065fba +1 -0
  131. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/syntacticDiagnostics/cache/05b27cf262de47962f4beeba3d4b4f67616bdf24 +1 -0
  132. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/syntacticDiagnostics/cache/26c90bc22e366b540ff134ba7de2ab3715155a20 +1 -0
  133. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/syntacticDiagnostics/cache/7a2b654bed9256f52421aec7d04cd8553486335b +1 -0
  134. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/syntacticDiagnostics/cache/80fdd1aafff88316e6a7f63509fb7304c94ae6d3 +1 -0
  135. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/syntacticDiagnostics/cache/88c6c8bf5346a961efcdff848fba6e3f2d24b26c +1 -0
  136. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/syntacticDiagnostics/cache/a8a4a8a1b06b6c8069e965f4a30a4b42013b830a +1 -0
  137. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/syntacticDiagnostics/cache/b2f217f16a7744eb13543dc90442443538b724b8 +1 -0
  138. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/syntacticDiagnostics/cache/be60813c21c2fbc627fcf99127ca2a96a3065fba +1 -0
  139. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/068e7904209e205518dbc9726d632bbaf28bfc55 +0 -0
  140. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/06b75ecfe63fda3fcfaa42593fa1f22167f3a9f8 +0 -0
  141. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/2aa9d56fc4a9661ee8e3de277da5ee3f960713de +0 -0
  142. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/2c58b356be1a9572c64469d50a7a25c46f94aaeb +0 -0
  143. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/36d3fb579feb4cad7a15b7a2f509f338caf72fa0 +0 -0
  144. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/388b297c3f73fcba25b8174fda975235e5d12b5a +0 -0
  145. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/40e43895ec63e1e25aa7e278ca1e8c3adefc815d +0 -0
  146. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/645e188194be07518ebbb0a5b4304f5170fee599 +0 -0
  147. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/65515bf3a44aaf1306f589073f1c8b98be747f5f +0 -0
  148. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/6a357fe7542e07f7919ea9b22401027dd1e8a0c1 +0 -0
  149. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/72087cac150d02ed6d19e37d6f1436566d5ac798 +0 -0
  150. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/9ff120b6426a4c7a03236428f26a92772586c3e5 +0 -0
  151. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/a6917de673fc74a6cfca5133913982e54e58a7fb +0 -0
  152. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/aa4aee440d13b06b4bb05c36eee326513aa6c040 +0 -0
  153. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/b02a4d0c40fac4c7f9ea7acd7944ee8844afcedf +0 -0
  154. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/b21a02b948881426bc4dcff649fc4fba07ca34d2 +0 -0
  155. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/c10c11f9c426095ab3f504dd8b7622ad7ba7c8ed +0 -0
  156. package/src/vue/node_modules/.cache/rollup-plugin-typescript2/rpt2_6eed9deea87cc005768ee2b80168901d42458ef9/types/cache/dc186595636217ded2d4a4cfbb789d68ea485b6b +0 -0
  157. package/src/vue/package.json +4 -4
  158. package/src/vue/rollup.config.mjs +3 -3
  159. package/src/vue/tsconfig.json +3 -3
  160. package/tsconfig.json +9 -2
  161. package/.github/FUNDING.yml +0 -12
  162. package/.github/ISSUE_TEMPLATE/issue-report.md +0 -14
  163. package/.vscode/extensions.json +0 -3
  164. package/.vscode/settings.json +0 -17
  165. package/docs/404.html +0 -42
  166. package/docs/CNAME +0 -1
  167. package/docs/assets/check-mark.svg +0 -6
  168. package/docs/assets/data.js +0 -59
  169. package/docs/assets/home.css +0 -1
  170. package/docs/assets/home.js +0 -1
  171. package/docs/assets/index.css +0 -1
  172. package/docs/assets/index.js +0 -16
  173. package/docs/assets/index2.js +0 -274
  174. package/docs/assets/index3.js +0 -135
  175. package/docs/assets/index4.js +0 -60
  176. package/docs/assets/index5.js +0 -147
  177. package/docs/assets/install.js +0 -34
  178. package/docs/assets/selects.js +0 -55
  179. package/docs/favicon.ico +0 -0
  180. package/docs/index.html +0 -36
  181. package/public/404.html +0 -42
  182. package/public/CNAME +0 -1
  183. package/public/favicon.ico +0 -0
  184. package/slimselect.gif +0 -0
  185. package/src/docs/app.vue +0 -227
  186. package/src/docs/assets/images/check-mark.svg +0 -6
  187. package/src/docs/assets/images/chrome.svg +0 -22
  188. package/src/docs/assets/images/firefox.svg +0 -58
  189. package/src/docs/assets/images/github.png +0 -0
  190. package/src/docs/assets/images/ie.svg +0 -11
  191. package/src/docs/assets/images/npm.png +0 -0
  192. package/src/docs/assets/images/opera.svg +0 -15
  193. package/src/docs/assets/images/safari.svg +0 -22
  194. package/src/docs/assets/scss/_variables.scss +0 -26
  195. package/src/docs/assets/scss/alert.scss +0 -12
  196. package/src/docs/assets/scss/animations.scss +0 -8
  197. package/src/docs/assets/scss/button.scss +0 -21
  198. package/src/docs/assets/scss/index.scss +0 -8
  199. package/src/docs/assets/scss/input.scss +0 -3
  200. package/src/docs/assets/scss/layout.scss +0 -250
  201. package/src/docs/assets/scss/misc.scss +0 -162
  202. package/src/docs/assets/scss/prism.scss +0 -157
  203. package/src/docs/env.d.ts +0 -13
  204. package/src/docs/main.ts +0 -27
  205. package/src/docs/pages/data.vue +0 -130
  206. package/src/docs/pages/events/addable.vue +0 -95
  207. package/src/docs/pages/events/before_after_change.vue +0 -154
  208. package/src/docs/pages/events/before_after_open_close.vue +0 -122
  209. package/src/docs/pages/events/error.vue +0 -59
  210. package/src/docs/pages/events/index.vue +0 -33
  211. package/src/docs/pages/events/search.vue +0 -155
  212. package/src/docs/pages/events/search_filter.vue +0 -45
  213. package/src/docs/pages/frameworks/index.vue +0 -18
  214. package/src/docs/pages/frameworks/vue.vue +0 -405
  215. package/src/docs/pages/home.vue +0 -194
  216. package/src/docs/pages/install.vue +0 -105
  217. package/src/docs/pages/methods/destroy.vue +0 -66
  218. package/src/docs/pages/methods/enable_disable.vue +0 -70
  219. package/src/docs/pages/methods/get_data.vue +0 -82
  220. package/src/docs/pages/methods/get_selected.vue +0 -78
  221. package/src/docs/pages/methods/index.vue +0 -36
  222. package/src/docs/pages/methods/open_close.vue +0 -63
  223. package/src/docs/pages/methods/search.vue +0 -62
  224. package/src/docs/pages/methods/set_data.vue +0 -106
  225. package/src/docs/pages/methods/set_selected.vue +0 -70
  226. package/src/docs/pages/selects.vue +0 -213
  227. package/src/docs/pages/settings/always_open.vue +0 -88
  228. package/src/docs/pages/settings/close_on_select.vue +0 -69
  229. package/src/docs/pages/settings/content_location.vue +0 -64
  230. package/src/docs/pages/settings/content_position.vue +0 -86
  231. package/src/docs/pages/settings/css.vue +0 -73
  232. package/src/docs/pages/settings/data_attributes.vue +0 -39
  233. package/src/docs/pages/settings/deselect.vue +0 -69
  234. package/src/docs/pages/settings/display.vue +0 -88
  235. package/src/docs/pages/settings/hide_selected.vue +0 -73
  236. package/src/docs/pages/settings/html.vue +0 -86
  237. package/src/docs/pages/settings/index.vue +0 -73
  238. package/src/docs/pages/settings/mandatory.vue +0 -91
  239. package/src/docs/pages/settings/min_max.vue +0 -61
  240. package/src/docs/pages/settings/open_position.vue +0 -60
  241. package/src/docs/pages/settings/placeholder.vue +0 -72
  242. package/src/docs/pages/settings/search.vue +0 -140
  243. package/src/docs/pages/settings/select.vue +0 -32
  244. package/src/docs/pages/settings/select_by_group.vue +0 -46
  245. package/src/docs/pages/settings/show_tooltip.vue +0 -44
  246. package/src/docs/pages/settings/styles.vue +0 -51
  247. package/src/docs/router.ts +0 -50
@@ -54,6 +54,8 @@ var SlimSelectVue = (function (vue) {
54
54
  constructor(optgroup) {
55
55
  this.id = !optgroup.id || optgroup.id === '' ? generateID() : optgroup.id;
56
56
  this.label = optgroup.label || '';
57
+ this.selectAll = optgroup.selectAll === undefined ? false : optgroup.selectAll;
58
+ this.closable = optgroup.closable || 'off';
57
59
  this.options = [];
58
60
  if (optgroup.options) {
59
61
  for (const o of optgroup.options) {
@@ -200,6 +202,14 @@ var SlimSelectVue = (function (vue) {
200
202
  });
201
203
  return selectedIDs;
202
204
  }
205
+ getOptgroupByID(id) {
206
+ for (let dataObj of this.data) {
207
+ if (dataObj instanceof Optgroup && dataObj.id === id) {
208
+ return dataObj;
209
+ }
210
+ }
211
+ return null;
212
+ }
203
213
  getOptionByID(id) {
204
214
  let options = this.filter((opt) => {
205
215
  return opt.id === id;
@@ -234,7 +244,7 @@ var SlimSelectVue = (function (vue) {
234
244
  }
235
245
  });
236
246
  if (optOptions.length > 0) {
237
- dataSearch.push(new Optgroup({ id: dataObj.id, label: dataObj.label, options: optOptions }));
247
+ dataSearch.push(new Optgroup(dataObj));
238
248
  }
239
249
  }
240
250
  }
@@ -275,11 +285,18 @@ var SlimSelectVue = (function (vue) {
275
285
  list: 'ss-list',
276
286
  optgroup: 'ss-optgroup',
277
287
  optgroupLabel: 'ss-optgroup-label',
278
- optgroupSelectable: 'ss-optgroup-selectable',
288
+ optgroupLabelText: 'ss-optgroup-label-text',
289
+ optgroupActions: 'ss-optgroup-actions',
290
+ optgroupSelectAll: 'ss-selectall',
291
+ optgroupSelectAllBox: 'M60,10 L10,10 L10,90 L90,90 L90,50',
292
+ optgroupSelectAllCheck: 'M30,45 L50,70 L90,10',
293
+ optgroupClosable: 'ss-closable',
279
294
  option: 'ss-option',
280
- optionSelected: 'ss-option-selected',
281
295
  optionDelete: 'M10,10 L90,90 M10,90 L90,10',
282
296
  highlighted: 'ss-highlighted',
297
+ open: 'ss-open',
298
+ close: 'ss-close',
299
+ selected: 'ss-selected',
283
300
  error: 'ss-error',
284
301
  disabled: 'ss-disabled',
285
302
  hide: 'ss-hide',
@@ -289,8 +306,6 @@ var SlimSelectVue = (function (vue) {
289
306
  this.callbacks = callbacks;
290
307
  this.main = this.mainDiv();
291
308
  this.content = this.contentDiv();
292
- this.renderValues();
293
- this.renderOptions(this.store.getData());
294
309
  this.settings.contentLocation.appendChild(this.content.main);
295
310
  }
296
311
  enable() {
@@ -803,25 +818,23 @@ var SlimSelectVue = (function (vue) {
803
818
  }
804
819
  for (let i = 0; i < options.length; i++) {
805
820
  if (options[i].classList.contains(this.classes.highlighted)) {
806
- options[i].classList.remove(this.classes.highlighted);
807
- if (dir === 'down') {
808
- if (i + 1 < options.length) {
809
- options[i + 1].classList.add(this.classes.highlighted);
810
- this.ensureElementInView(this.content.list, options[i + 1]);
811
- }
812
- else {
813
- options[0].classList.add(this.classes.highlighted);
814
- this.ensureElementInView(this.content.list, options[0]);
821
+ const prevOption = options[i];
822
+ prevOption.classList.remove(this.classes.highlighted);
823
+ const prevParent = prevOption.parentElement;
824
+ if (prevParent && prevParent.classList.contains(this.classes.open)) {
825
+ const optgroupLabel = prevParent.querySelector('.' + this.classes.optgroupLabel);
826
+ if (optgroupLabel) {
827
+ optgroupLabel.click();
815
828
  }
816
829
  }
817
- else {
818
- if (i - 1 >= 0) {
819
- options[i - 1].classList.add(this.classes.highlighted);
820
- this.ensureElementInView(this.content.list, options[i - 1]);
821
- }
822
- else {
823
- options[options.length - 1].classList.add(this.classes.highlighted);
824
- this.ensureElementInView(this.content.list, options[options.length - 1]);
830
+ let selectOption = options[dir === 'down' ? (i + 1 < options.length ? i + 1 : 0) : i - 1 >= 0 ? i - 1 : options.length - 1];
831
+ selectOption.classList.add(this.classes.highlighted);
832
+ this.ensureElementInView(this.content.list, selectOption);
833
+ const selectParent = selectOption.parentElement;
834
+ if (selectParent && selectParent.classList.contains(this.classes.close)) {
835
+ const optgroupLabel = selectParent.querySelector('.' + this.classes.optgroupLabel);
836
+ if (optgroupLabel) {
837
+ optgroupLabel.click();
825
838
  }
826
839
  }
827
840
  return;
@@ -866,18 +879,99 @@ var SlimSelectVue = (function (vue) {
866
879
  optgroupEl.classList.add(this.classes.optgroup);
867
880
  const optgroupLabel = document.createElement('div');
868
881
  optgroupLabel.classList.add(this.classes.optgroupLabel);
869
- optgroupLabel.innerHTML = d.label;
870
- if (this.settings.selectByGroup && this.settings.isMultiple) {
871
- optgroupLabel.classList.add(this.classes.optgroupSelectable);
882
+ optgroupEl.appendChild(optgroupLabel);
883
+ const optgroupLabelText = document.createElement('div');
884
+ optgroupLabelText.classList.add(this.classes.optgroupLabelText);
885
+ optgroupLabelText.textContent = d.label;
886
+ optgroupLabel.appendChild(optgroupLabelText);
887
+ const optgroupActions = document.createElement('div');
888
+ optgroupActions.classList.add(this.classes.optgroupActions);
889
+ optgroupLabel.appendChild(optgroupActions);
890
+ if (this.settings.isMultiple && d.selectAll) {
891
+ const selectAll = document.createElement('div');
892
+ selectAll.classList.add(this.classes.optgroupSelectAll);
893
+ let allSelected = true;
894
+ for (const o of d.options) {
895
+ if (!o.selected) {
896
+ allSelected = false;
897
+ break;
898
+ }
899
+ }
900
+ if (allSelected) {
901
+ selectAll.classList.add(this.classes.selected);
902
+ }
903
+ const selectAllText = document.createElement('span');
904
+ selectAllText.textContent = 'Select All';
905
+ selectAll.appendChild(selectAllText);
906
+ const selectAllSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
907
+ selectAllSvg.setAttribute('viewBox', '0 0 100 100');
908
+ selectAll.appendChild(selectAllSvg);
909
+ const selectAllBox = document.createElementNS('http://www.w3.org/2000/svg', 'path');
910
+ selectAllBox.setAttribute('d', this.classes.optgroupSelectAllBox);
911
+ selectAllSvg.appendChild(selectAllBox);
912
+ const selectAllCheck = document.createElementNS('http://www.w3.org/2000/svg', 'path');
913
+ selectAllCheck.setAttribute('d', this.classes.optgroupSelectAllCheck);
914
+ selectAllSvg.appendChild(selectAllCheck);
915
+ selectAll.addEventListener('click', (e) => {
916
+ e.preventDefault();
917
+ e.stopPropagation();
918
+ const currentSelected = this.store.getSelected();
919
+ if (allSelected) {
920
+ const newSelected = currentSelected.filter((s) => {
921
+ for (const o of d.options) {
922
+ if (s === o.value) {
923
+ return false;
924
+ }
925
+ }
926
+ return true;
927
+ });
928
+ this.callbacks.setSelected(newSelected);
929
+ return;
930
+ }
931
+ else {
932
+ const newSelected = currentSelected.concat(d.options.map((o) => o.value));
933
+ this.callbacks.setSelected(newSelected);
934
+ }
935
+ });
936
+ optgroupActions.appendChild(selectAll);
937
+ }
938
+ if (d.closable !== 'off') {
939
+ const optgroupClosable = document.createElement('div');
940
+ optgroupClosable.classList.add(this.classes.optgroupClosable);
941
+ const optgroupClosableSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
942
+ optgroupClosableSvg.setAttribute('viewBox', '0 0 100 100');
943
+ optgroupClosableSvg.classList.add(this.classes.arrow);
944
+ optgroupClosable.appendChild(optgroupClosableSvg);
945
+ const optgroupClosableArrow = document.createElementNS('http://www.w3.org/2000/svg', 'path');
946
+ optgroupClosableArrow.setAttribute('d', this.classes.arrow);
947
+ optgroupClosableSvg.appendChild(optgroupClosableArrow);
948
+ if (d.options.some((o) => o.selected)) {
949
+ optgroupClosable.classList.add(this.classes.open);
950
+ optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);
951
+ }
952
+ else if (d.closable === 'open') {
953
+ optgroupEl.classList.add(this.classes.open);
954
+ optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);
955
+ }
956
+ else if (d.closable === 'close') {
957
+ optgroupEl.classList.add(this.classes.close);
958
+ optgroupClosableArrow.setAttribute('d', this.classes.arrowClose);
959
+ }
872
960
  optgroupLabel.addEventListener('click', (e) => {
873
961
  e.preventDefault();
874
962
  e.stopPropagation();
875
- for (const childEl of optgroupEl.children) {
876
- if (childEl.className.indexOf(this.classes.option) !== -1) {
877
- childEl.click();
878
- }
963
+ if (optgroupEl.classList.contains(this.classes.close)) {
964
+ optgroupEl.classList.remove(this.classes.close);
965
+ optgroupEl.classList.add(this.classes.open);
966
+ optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);
967
+ }
968
+ else {
969
+ optgroupEl.classList.remove(this.classes.open);
970
+ optgroupEl.classList.add(this.classes.close);
971
+ optgroupClosableArrow.setAttribute('d', this.classes.arrowClose);
879
972
  }
880
973
  });
974
+ optgroupActions.appendChild(optgroupClosable);
881
975
  }
882
976
  optgroupEl.appendChild(optgroupLabel);
883
977
  for (const o of d.options) {
@@ -929,10 +1023,10 @@ var SlimSelectVue = (function (vue) {
929
1023
  optionEl.classList.add(this.classes.hide);
930
1024
  }
931
1025
  if (option.selected) {
932
- optionEl.classList.add(this.classes.optionSelected);
1026
+ optionEl.classList.add(this.classes.selected);
933
1027
  }
934
1028
  else {
935
- optionEl.classList.remove(this.classes.optionSelected);
1029
+ optionEl.classList.remove(this.classes.selected);
936
1030
  }
937
1031
  optionEl.addEventListener('click', (e) => {
938
1032
  e.preventDefault();
@@ -1154,8 +1248,10 @@ var SlimSelectVue = (function (vue) {
1154
1248
  }
1155
1249
  getDataFromOptgroup(optgroup) {
1156
1250
  let data = {
1157
- id: '',
1251
+ id: (optgroup.dataset ? optgroup.dataset.id : false) || '',
1158
1252
  label: optgroup.label,
1253
+ selectAll: optgroup.dataset ? optgroup.dataset.selectall === 'true' : false,
1254
+ closable: optgroup.dataset ? optgroup.dataset.closable : 'off',
1159
1255
  options: [],
1160
1256
  };
1161
1257
  const options = optgroup.childNodes;
@@ -1166,6 +1262,22 @@ var SlimSelectVue = (function (vue) {
1166
1262
  }
1167
1263
  return data;
1168
1264
  }
1265
+ getDataFromOption(option) {
1266
+ return {
1267
+ id: (option.dataset ? option.dataset.id : false) || '',
1268
+ value: option.value,
1269
+ text: option.text,
1270
+ html: option.innerHTML,
1271
+ selected: option.selected,
1272
+ display: option.style.display === 'none' ? false : true,
1273
+ disabled: option.disabled,
1274
+ mandatory: option.dataset ? option.dataset.mandatory === 'true' : false,
1275
+ placeholder: option.dataset.placeholder === 'true',
1276
+ class: option.className,
1277
+ style: option.style.cssText,
1278
+ data: option.dataset,
1279
+ };
1280
+ }
1169
1281
  getSelectedValues() {
1170
1282
  let values = [];
1171
1283
  const options = this.select.childNodes;
@@ -1190,22 +1302,6 @@ var SlimSelectVue = (function (vue) {
1190
1302
  }
1191
1303
  return values;
1192
1304
  }
1193
- getDataFromOption(option) {
1194
- return {
1195
- id: (option.dataset ? option.dataset.id : false) || generateID(),
1196
- value: option.value,
1197
- text: option.text,
1198
- html: option.innerHTML,
1199
- selected: option.selected,
1200
- display: option.style.display === 'none' ? false : true,
1201
- disabled: option.disabled,
1202
- mandatory: option.dataset ? option.dataset.mandatory === 'true' : false,
1203
- placeholder: option.dataset.placeholder === 'true',
1204
- class: option.className,
1205
- style: option.style.cssText,
1206
- data: option.dataset,
1207
- };
1208
- }
1209
1305
  setSelected(value) {
1210
1306
  const options = this.select.childNodes;
1211
1307
  for (const o of options) {
@@ -1260,6 +1356,12 @@ var SlimSelectVue = (function (vue) {
1260
1356
  const optgroupEl = document.createElement('optgroup');
1261
1357
  optgroupEl.id = optgroup.id;
1262
1358
  optgroupEl.label = optgroup.label;
1359
+ if (optgroup.selectAll) {
1360
+ optgroupEl.dataset.selectAll = 'true';
1361
+ }
1362
+ if (optgroup.closable !== 'off') {
1363
+ optgroupEl.dataset.closable = optgroup.closable;
1364
+ }
1263
1365
  if (optgroup.options) {
1264
1366
  for (const o of optgroup.options) {
1265
1367
  optgroupEl.appendChild(this.createOption(o));
@@ -1316,8 +1418,6 @@ var SlimSelectVue = (function (vue) {
1316
1418
  this.isOpen = false;
1317
1419
  this.triggerFocus = true;
1318
1420
  this.intervalMove = null;
1319
- this.mainHeight = 30;
1320
- this.contentHeight = 0;
1321
1421
  if (!settings) {
1322
1422
  settings = {};
1323
1423
  }
@@ -1339,7 +1439,6 @@ var SlimSelectVue = (function (vue) {
1339
1439
  this.allowDeselect = settings.allowDeselect !== undefined ? settings.allowDeselect : false;
1340
1440
  this.hideSelected = settings.hideSelected !== undefined ? settings.hideSelected : false;
1341
1441
  this.showOptionTooltips = settings.showOptionTooltips !== undefined ? settings.showOptionTooltips : false;
1342
- this.selectByGroup = settings.selectByGroup !== undefined ? settings.selectByGroup : false;
1343
1442
  this.minSelected = settings.minSelected || 0;
1344
1443
  this.maxSelected = settings.maxSelected || 1000;
1345
1444
  this.timeoutDelay = settings.timeoutDelay || 200;
@@ -1446,6 +1545,8 @@ var SlimSelectVue = (function (vue) {
1446
1545
  afterChange: this.events.afterChange,
1447
1546
  };
1448
1547
  this.render = new Render(this.settings, this.store, callbacks);
1548
+ this.render.renderValues();
1549
+ this.render.renderOptions(this.store.getData());
1449
1550
  if (this.selectEl.parentNode) {
1450
1551
  this.selectEl.parentNode.insertBefore(this.render.main.main, this.selectEl.nextSibling);
1451
1552
  }
@@ -55,6 +55,8 @@ class Optgroup {
55
55
  constructor(optgroup) {
56
56
  this.id = !optgroup.id || optgroup.id === '' ? generateID() : optgroup.id;
57
57
  this.label = optgroup.label || '';
58
+ this.selectAll = optgroup.selectAll === undefined ? false : optgroup.selectAll;
59
+ this.closable = optgroup.closable || 'off';
58
60
  this.options = [];
59
61
  if (optgroup.options) {
60
62
  for (const o of optgroup.options) {
@@ -201,6 +203,14 @@ class Store {
201
203
  });
202
204
  return selectedIDs;
203
205
  }
206
+ getOptgroupByID(id) {
207
+ for (let dataObj of this.data) {
208
+ if (dataObj instanceof Optgroup && dataObj.id === id) {
209
+ return dataObj;
210
+ }
211
+ }
212
+ return null;
213
+ }
204
214
  getOptionByID(id) {
205
215
  let options = this.filter((opt) => {
206
216
  return opt.id === id;
@@ -235,7 +245,7 @@ class Store {
235
245
  }
236
246
  });
237
247
  if (optOptions.length > 0) {
238
- dataSearch.push(new Optgroup({ id: dataObj.id, label: dataObj.label, options: optOptions }));
248
+ dataSearch.push(new Optgroup(dataObj));
239
249
  }
240
250
  }
241
251
  }
@@ -276,11 +286,18 @@ class Render {
276
286
  list: 'ss-list',
277
287
  optgroup: 'ss-optgroup',
278
288
  optgroupLabel: 'ss-optgroup-label',
279
- optgroupSelectable: 'ss-optgroup-selectable',
289
+ optgroupLabelText: 'ss-optgroup-label-text',
290
+ optgroupActions: 'ss-optgroup-actions',
291
+ optgroupSelectAll: 'ss-selectall',
292
+ optgroupSelectAllBox: 'M60,10 L10,10 L10,90 L90,90 L90,50',
293
+ optgroupSelectAllCheck: 'M30,45 L50,70 L90,10',
294
+ optgroupClosable: 'ss-closable',
280
295
  option: 'ss-option',
281
- optionSelected: 'ss-option-selected',
282
296
  optionDelete: 'M10,10 L90,90 M10,90 L90,10',
283
297
  highlighted: 'ss-highlighted',
298
+ open: 'ss-open',
299
+ close: 'ss-close',
300
+ selected: 'ss-selected',
284
301
  error: 'ss-error',
285
302
  disabled: 'ss-disabled',
286
303
  hide: 'ss-hide',
@@ -290,8 +307,6 @@ class Render {
290
307
  this.callbacks = callbacks;
291
308
  this.main = this.mainDiv();
292
309
  this.content = this.contentDiv();
293
- this.renderValues();
294
- this.renderOptions(this.store.getData());
295
310
  this.settings.contentLocation.appendChild(this.content.main);
296
311
  }
297
312
  enable() {
@@ -804,25 +819,23 @@ class Render {
804
819
  }
805
820
  for (let i = 0; i < options.length; i++) {
806
821
  if (options[i].classList.contains(this.classes.highlighted)) {
807
- options[i].classList.remove(this.classes.highlighted);
808
- if (dir === 'down') {
809
- if (i + 1 < options.length) {
810
- options[i + 1].classList.add(this.classes.highlighted);
811
- this.ensureElementInView(this.content.list, options[i + 1]);
812
- }
813
- else {
814
- options[0].classList.add(this.classes.highlighted);
815
- this.ensureElementInView(this.content.list, options[0]);
822
+ const prevOption = options[i];
823
+ prevOption.classList.remove(this.classes.highlighted);
824
+ const prevParent = prevOption.parentElement;
825
+ if (prevParent && prevParent.classList.contains(this.classes.open)) {
826
+ const optgroupLabel = prevParent.querySelector('.' + this.classes.optgroupLabel);
827
+ if (optgroupLabel) {
828
+ optgroupLabel.click();
816
829
  }
817
830
  }
818
- else {
819
- if (i - 1 >= 0) {
820
- options[i - 1].classList.add(this.classes.highlighted);
821
- this.ensureElementInView(this.content.list, options[i - 1]);
822
- }
823
- else {
824
- options[options.length - 1].classList.add(this.classes.highlighted);
825
- this.ensureElementInView(this.content.list, options[options.length - 1]);
831
+ let selectOption = options[dir === 'down' ? (i + 1 < options.length ? i + 1 : 0) : i - 1 >= 0 ? i - 1 : options.length - 1];
832
+ selectOption.classList.add(this.classes.highlighted);
833
+ this.ensureElementInView(this.content.list, selectOption);
834
+ const selectParent = selectOption.parentElement;
835
+ if (selectParent && selectParent.classList.contains(this.classes.close)) {
836
+ const optgroupLabel = selectParent.querySelector('.' + this.classes.optgroupLabel);
837
+ if (optgroupLabel) {
838
+ optgroupLabel.click();
826
839
  }
827
840
  }
828
841
  return;
@@ -867,18 +880,99 @@ class Render {
867
880
  optgroupEl.classList.add(this.classes.optgroup);
868
881
  const optgroupLabel = document.createElement('div');
869
882
  optgroupLabel.classList.add(this.classes.optgroupLabel);
870
- optgroupLabel.innerHTML = d.label;
871
- if (this.settings.selectByGroup && this.settings.isMultiple) {
872
- optgroupLabel.classList.add(this.classes.optgroupSelectable);
883
+ optgroupEl.appendChild(optgroupLabel);
884
+ const optgroupLabelText = document.createElement('div');
885
+ optgroupLabelText.classList.add(this.classes.optgroupLabelText);
886
+ optgroupLabelText.textContent = d.label;
887
+ optgroupLabel.appendChild(optgroupLabelText);
888
+ const optgroupActions = document.createElement('div');
889
+ optgroupActions.classList.add(this.classes.optgroupActions);
890
+ optgroupLabel.appendChild(optgroupActions);
891
+ if (this.settings.isMultiple && d.selectAll) {
892
+ const selectAll = document.createElement('div');
893
+ selectAll.classList.add(this.classes.optgroupSelectAll);
894
+ let allSelected = true;
895
+ for (const o of d.options) {
896
+ if (!o.selected) {
897
+ allSelected = false;
898
+ break;
899
+ }
900
+ }
901
+ if (allSelected) {
902
+ selectAll.classList.add(this.classes.selected);
903
+ }
904
+ const selectAllText = document.createElement('span');
905
+ selectAllText.textContent = 'Select All';
906
+ selectAll.appendChild(selectAllText);
907
+ const selectAllSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
908
+ selectAllSvg.setAttribute('viewBox', '0 0 100 100');
909
+ selectAll.appendChild(selectAllSvg);
910
+ const selectAllBox = document.createElementNS('http://www.w3.org/2000/svg', 'path');
911
+ selectAllBox.setAttribute('d', this.classes.optgroupSelectAllBox);
912
+ selectAllSvg.appendChild(selectAllBox);
913
+ const selectAllCheck = document.createElementNS('http://www.w3.org/2000/svg', 'path');
914
+ selectAllCheck.setAttribute('d', this.classes.optgroupSelectAllCheck);
915
+ selectAllSvg.appendChild(selectAllCheck);
916
+ selectAll.addEventListener('click', (e) => {
917
+ e.preventDefault();
918
+ e.stopPropagation();
919
+ const currentSelected = this.store.getSelected();
920
+ if (allSelected) {
921
+ const newSelected = currentSelected.filter((s) => {
922
+ for (const o of d.options) {
923
+ if (s === o.value) {
924
+ return false;
925
+ }
926
+ }
927
+ return true;
928
+ });
929
+ this.callbacks.setSelected(newSelected);
930
+ return;
931
+ }
932
+ else {
933
+ const newSelected = currentSelected.concat(d.options.map((o) => o.value));
934
+ this.callbacks.setSelected(newSelected);
935
+ }
936
+ });
937
+ optgroupActions.appendChild(selectAll);
938
+ }
939
+ if (d.closable !== 'off') {
940
+ const optgroupClosable = document.createElement('div');
941
+ optgroupClosable.classList.add(this.classes.optgroupClosable);
942
+ const optgroupClosableSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
943
+ optgroupClosableSvg.setAttribute('viewBox', '0 0 100 100');
944
+ optgroupClosableSvg.classList.add(this.classes.arrow);
945
+ optgroupClosable.appendChild(optgroupClosableSvg);
946
+ const optgroupClosableArrow = document.createElementNS('http://www.w3.org/2000/svg', 'path');
947
+ optgroupClosableArrow.setAttribute('d', this.classes.arrow);
948
+ optgroupClosableSvg.appendChild(optgroupClosableArrow);
949
+ if (d.options.some((o) => o.selected)) {
950
+ optgroupClosable.classList.add(this.classes.open);
951
+ optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);
952
+ }
953
+ else if (d.closable === 'open') {
954
+ optgroupEl.classList.add(this.classes.open);
955
+ optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);
956
+ }
957
+ else if (d.closable === 'close') {
958
+ optgroupEl.classList.add(this.classes.close);
959
+ optgroupClosableArrow.setAttribute('d', this.classes.arrowClose);
960
+ }
873
961
  optgroupLabel.addEventListener('click', (e) => {
874
962
  e.preventDefault();
875
963
  e.stopPropagation();
876
- for (const childEl of optgroupEl.children) {
877
- if (childEl.className.indexOf(this.classes.option) !== -1) {
878
- childEl.click();
879
- }
964
+ if (optgroupEl.classList.contains(this.classes.close)) {
965
+ optgroupEl.classList.remove(this.classes.close);
966
+ optgroupEl.classList.add(this.classes.open);
967
+ optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);
968
+ }
969
+ else {
970
+ optgroupEl.classList.remove(this.classes.open);
971
+ optgroupEl.classList.add(this.classes.close);
972
+ optgroupClosableArrow.setAttribute('d', this.classes.arrowClose);
880
973
  }
881
974
  });
975
+ optgroupActions.appendChild(optgroupClosable);
882
976
  }
883
977
  optgroupEl.appendChild(optgroupLabel);
884
978
  for (const o of d.options) {
@@ -930,10 +1024,10 @@ class Render {
930
1024
  optionEl.classList.add(this.classes.hide);
931
1025
  }
932
1026
  if (option.selected) {
933
- optionEl.classList.add(this.classes.optionSelected);
1027
+ optionEl.classList.add(this.classes.selected);
934
1028
  }
935
1029
  else {
936
- optionEl.classList.remove(this.classes.optionSelected);
1030
+ optionEl.classList.remove(this.classes.selected);
937
1031
  }
938
1032
  optionEl.addEventListener('click', (e) => {
939
1033
  e.preventDefault();
@@ -1155,8 +1249,10 @@ class Select {
1155
1249
  }
1156
1250
  getDataFromOptgroup(optgroup) {
1157
1251
  let data = {
1158
- id: '',
1252
+ id: (optgroup.dataset ? optgroup.dataset.id : false) || '',
1159
1253
  label: optgroup.label,
1254
+ selectAll: optgroup.dataset ? optgroup.dataset.selectall === 'true' : false,
1255
+ closable: optgroup.dataset ? optgroup.dataset.closable : 'off',
1160
1256
  options: [],
1161
1257
  };
1162
1258
  const options = optgroup.childNodes;
@@ -1167,6 +1263,22 @@ class Select {
1167
1263
  }
1168
1264
  return data;
1169
1265
  }
1266
+ getDataFromOption(option) {
1267
+ return {
1268
+ id: (option.dataset ? option.dataset.id : false) || '',
1269
+ value: option.value,
1270
+ text: option.text,
1271
+ html: option.innerHTML,
1272
+ selected: option.selected,
1273
+ display: option.style.display === 'none' ? false : true,
1274
+ disabled: option.disabled,
1275
+ mandatory: option.dataset ? option.dataset.mandatory === 'true' : false,
1276
+ placeholder: option.dataset.placeholder === 'true',
1277
+ class: option.className,
1278
+ style: option.style.cssText,
1279
+ data: option.dataset,
1280
+ };
1281
+ }
1170
1282
  getSelectedValues() {
1171
1283
  let values = [];
1172
1284
  const options = this.select.childNodes;
@@ -1191,22 +1303,6 @@ class Select {
1191
1303
  }
1192
1304
  return values;
1193
1305
  }
1194
- getDataFromOption(option) {
1195
- return {
1196
- id: (option.dataset ? option.dataset.id : false) || generateID(),
1197
- value: option.value,
1198
- text: option.text,
1199
- html: option.innerHTML,
1200
- selected: option.selected,
1201
- display: option.style.display === 'none' ? false : true,
1202
- disabled: option.disabled,
1203
- mandatory: option.dataset ? option.dataset.mandatory === 'true' : false,
1204
- placeholder: option.dataset.placeholder === 'true',
1205
- class: option.className,
1206
- style: option.style.cssText,
1207
- data: option.dataset,
1208
- };
1209
- }
1210
1306
  setSelected(value) {
1211
1307
  const options = this.select.childNodes;
1212
1308
  for (const o of options) {
@@ -1261,6 +1357,12 @@ class Select {
1261
1357
  const optgroupEl = document.createElement('optgroup');
1262
1358
  optgroupEl.id = optgroup.id;
1263
1359
  optgroupEl.label = optgroup.label;
1360
+ if (optgroup.selectAll) {
1361
+ optgroupEl.dataset.selectAll = 'true';
1362
+ }
1363
+ if (optgroup.closable !== 'off') {
1364
+ optgroupEl.dataset.closable = optgroup.closable;
1365
+ }
1264
1366
  if (optgroup.options) {
1265
1367
  for (const o of optgroup.options) {
1266
1368
  optgroupEl.appendChild(this.createOption(o));
@@ -1317,8 +1419,6 @@ class Settings {
1317
1419
  this.isOpen = false;
1318
1420
  this.triggerFocus = true;
1319
1421
  this.intervalMove = null;
1320
- this.mainHeight = 30;
1321
- this.contentHeight = 0;
1322
1422
  if (!settings) {
1323
1423
  settings = {};
1324
1424
  }
@@ -1340,7 +1440,6 @@ class Settings {
1340
1440
  this.allowDeselect = settings.allowDeselect !== undefined ? settings.allowDeselect : false;
1341
1441
  this.hideSelected = settings.hideSelected !== undefined ? settings.hideSelected : false;
1342
1442
  this.showOptionTooltips = settings.showOptionTooltips !== undefined ? settings.showOptionTooltips : false;
1343
- this.selectByGroup = settings.selectByGroup !== undefined ? settings.selectByGroup : false;
1344
1443
  this.minSelected = settings.minSelected || 0;
1345
1444
  this.maxSelected = settings.maxSelected || 1000;
1346
1445
  this.timeoutDelay = settings.timeoutDelay || 200;
@@ -1447,6 +1546,8 @@ class SlimSelect {
1447
1546
  afterChange: this.events.afterChange,
1448
1547
  };
1449
1548
  this.render = new Render(this.settings, this.store, callbacks);
1549
+ this.render.renderValues();
1550
+ this.render.renderOptions(this.store.getData());
1450
1551
  if (this.selectEl.parentNode) {
1451
1552
  this.selectEl.parentNode.insertBefore(this.render.main.main, this.selectEl.nextSibling);
1452
1553
  }
@@ -0,0 +1,2 @@
1
+ declare const hello = "hello world";
2
+ export default hello;