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
@@ -0,0 +1,45 @@
1
+ import Render from './render';
2
+ import Select from './select';
3
+ import Settings, { SettingsPartial } from './settings';
4
+ import Store, { DataArray, DataArrayPartial, Option, OptionOptional } from './store';
5
+ export interface Config {
6
+ select: string | Element;
7
+ data?: DataArrayPartial;
8
+ settings?: SettingsPartial;
9
+ events?: Events;
10
+ }
11
+ export interface Events {
12
+ search?: (searchValue: string, currentData: DataArray) => Promise<DataArrayPartial> | DataArrayPartial;
13
+ searchFilter?: (option: Option, search: string) => boolean;
14
+ addable?: (value: string) => Promise<OptionOptional | string> | OptionOptional | string;
15
+ beforeChange?: (newVal: Option[], oldVal: Option[]) => boolean | void;
16
+ afterChange?: (newVal: Option[]) => void;
17
+ beforeOpen?: () => void;
18
+ afterOpen?: () => void;
19
+ beforeClose?: () => void;
20
+ afterClose?: () => void;
21
+ error?: (err: Error) => void;
22
+ }
23
+ export default class SlimSelect {
24
+ selectEl: HTMLSelectElement;
25
+ settings: Settings;
26
+ select: Select;
27
+ store: Store;
28
+ render: Render;
29
+ events: Events;
30
+ constructor(config: Config);
31
+ enable(): void;
32
+ disable(): void;
33
+ getData(): DataArray;
34
+ setData(data: DataArrayPartial): void;
35
+ getSelected(): string[];
36
+ setSelected(value: string | string[]): void;
37
+ addOption(option: OptionOptional): void;
38
+ open(): void;
39
+ close(): void;
40
+ search(value: string): void;
41
+ destroy(): void;
42
+ private windowResize;
43
+ private windowScroll;
44
+ private documentClick;
45
+ }
@@ -0,0 +1,116 @@
1
+ import Settings from './settings';
2
+ import Store, { DataArray, Option, OptionOptional } from './store';
3
+ export interface Callbacks {
4
+ open: () => void;
5
+ close: () => void;
6
+ addable?: (value: string) => Promise<OptionOptional | string> | OptionOptional | string;
7
+ setSelected: (value: string[]) => void;
8
+ addOption: (option: Option) => void;
9
+ search: (search: string) => void;
10
+ beforeChange?: (newVal: Option[], oldVal: Option[]) => boolean | void;
11
+ afterChange?: (newVal: Option[]) => void;
12
+ }
13
+ export interface Main {
14
+ main: HTMLDivElement;
15
+ values: HTMLDivElement;
16
+ deselect: {
17
+ main: HTMLDivElement;
18
+ svg: SVGSVGElement;
19
+ path: SVGPathElement;
20
+ };
21
+ arrow: {
22
+ main: SVGSVGElement;
23
+ path: SVGPathElement;
24
+ };
25
+ }
26
+ export interface Content {
27
+ main: HTMLDivElement;
28
+ search: Search;
29
+ list: HTMLDivElement;
30
+ }
31
+ export interface Search {
32
+ main: HTMLDivElement;
33
+ input: HTMLInputElement;
34
+ addable?: {
35
+ main: HTMLDivElement;
36
+ svg: SVGSVGElement;
37
+ path: SVGPathElement;
38
+ };
39
+ }
40
+ export default class Render {
41
+ settings: Settings;
42
+ store: Store;
43
+ callbacks: Callbacks;
44
+ main: Main;
45
+ content: Content;
46
+ classes: {
47
+ main: string;
48
+ placeholder: string;
49
+ values: string;
50
+ single: string;
51
+ value: string;
52
+ valueText: string;
53
+ valueDelete: string;
54
+ valueOut: string;
55
+ deselect: string;
56
+ deselectPath: string;
57
+ arrow: string;
58
+ arrowClose: string;
59
+ arrowOpen: string;
60
+ content: string;
61
+ openAbove: string;
62
+ openBelow: string;
63
+ search: string;
64
+ searchHighlighter: string;
65
+ searching: string;
66
+ addable: string;
67
+ addablePath: string;
68
+ list: string;
69
+ optgroup: string;
70
+ optgroupLabel: string;
71
+ optgroupLabelText: string;
72
+ optgroupActions: string;
73
+ optgroupSelectAll: string;
74
+ optgroupSelectAllBox: string;
75
+ optgroupSelectAllCheck: string;
76
+ optgroupClosable: string;
77
+ option: string;
78
+ optionDelete: string;
79
+ highlighted: string;
80
+ open: string;
81
+ close: string;
82
+ selected: string;
83
+ error: string;
84
+ disabled: string;
85
+ hide: string;
86
+ };
87
+ constructor(settings: Required<Settings>, store: Store, callbacks: Callbacks);
88
+ enable(): void;
89
+ disable(): void;
90
+ open(): void;
91
+ close(): void;
92
+ mainDiv(): Main;
93
+ mainFocus(trigger: boolean): void;
94
+ placeholder(): HTMLDivElement;
95
+ renderValues(): void;
96
+ private renderSingleValue;
97
+ private renderMultipleValues;
98
+ multipleValue(option: Option): HTMLDivElement;
99
+ contentDiv(): Content;
100
+ moveContent(): void;
101
+ searchDiv(): Search;
102
+ searchFocus(trigger: boolean): void;
103
+ getOptions(notPlaceholder?: boolean, notDisabled?: boolean, notHidden?: boolean): HTMLDivElement[];
104
+ highlight(dir: 'up' | 'down'): void;
105
+ listDiv(): HTMLDivElement;
106
+ renderError(error: string): void;
107
+ renderSearching(): void;
108
+ renderOptions(data: DataArray): void;
109
+ option(option: Option): HTMLDivElement;
110
+ destroy(): void;
111
+ private highlightText;
112
+ moveContentAbove(): void;
113
+ moveContentBelow(): void;
114
+ ensureElementInView(container: HTMLElement, element: HTMLElement): void;
115
+ putContent(el: HTMLElement, isOpen: boolean): 'up' | 'down';
116
+ }
@@ -0,0 +1,33 @@
1
+ import { DataArray, DataArrayPartial, Optgroup, OptgroupOptional, Option } from './store';
2
+ export default class Select {
3
+ select: HTMLSelectElement;
4
+ listen: boolean;
5
+ onSelectChange?: (data: DataArrayPartial) => void;
6
+ onValueChange?: (value: string[]) => void;
7
+ private observer;
8
+ constructor(select: HTMLSelectElement);
9
+ enable(): void;
10
+ disable(): void;
11
+ hideUI(): void;
12
+ showUI(): void;
13
+ changeListen(on: boolean): void;
14
+ addSelectChangeListener(func: (data: DataArrayPartial) => void): void;
15
+ removeSelectChangeListener(): void;
16
+ addValueChangeListener(func: (value: string[]) => void): void;
17
+ removeValueChangeListener(): void;
18
+ valueChange(ev: Event): any;
19
+ private observeWrapper;
20
+ private addObserver;
21
+ private connectObserver;
22
+ private disconnectObserver;
23
+ getData(): DataArrayPartial;
24
+ getDataFromOptgroup(optgroup: HTMLOptGroupElement): OptgroupOptional;
25
+ getDataFromOption(option: HTMLOptionElement): Option;
26
+ getSelectedValues(): string[];
27
+ setSelected(value: string[]): void;
28
+ updateSelect(id?: string, style?: string, classes?: string[]): void;
29
+ updateOptions(data: DataArray): void;
30
+ createOptgroup(optgroup: Optgroup): HTMLOptGroupElement;
31
+ createOption(info: Option): HTMLOptionElement;
32
+ destroy(): void;
33
+ }
@@ -0,0 +1,30 @@
1
+ /// <reference types="node" />
2
+ export type SettingsPartial = Partial<Settings>;
3
+ export default class Settings {
4
+ id: string;
5
+ style: string;
6
+ class: string[];
7
+ isMultiple: boolean;
8
+ isOpen: boolean;
9
+ triggerFocus: boolean;
10
+ intervalMove: NodeJS.Timeout | null;
11
+ isEnabled: boolean;
12
+ alwaysOpen: boolean;
13
+ showSearch: boolean;
14
+ searchPlaceholder: string;
15
+ searchText: string;
16
+ searchingText: string;
17
+ searchHighlight: boolean;
18
+ closeOnSelect: boolean;
19
+ contentLocation: HTMLElement;
20
+ contentPosition: 'relative' | 'absolute';
21
+ openPosition: 'auto' | 'up' | 'down';
22
+ placeholderText: string;
23
+ allowDeselect: boolean;
24
+ hideSelected: boolean;
25
+ showOptionTooltips: boolean;
26
+ minSelected: number;
27
+ maxSelected: number;
28
+ timeoutDelay: number;
29
+ constructor(settings?: SettingsPartial);
30
+ }
@@ -0,0 +1,76 @@
1
+ export type DataArray = DataObject[];
2
+ export type DataObject = Optgroup | Option;
3
+ export type DataArrayPartial = DataObjectPartial[];
4
+ export type DataObjectPartial = OptgroupOptional | OptionOptional;
5
+ type selectType = 'single' | 'multiple';
6
+ export interface OptgroupOptional {
7
+ id?: string;
8
+ label: string;
9
+ selectAll?: boolean;
10
+ closable?: 'off' | 'open' | 'close';
11
+ options?: OptionOptional[];
12
+ }
13
+ export declare class Optgroup {
14
+ id: string;
15
+ label: string;
16
+ selectAll: boolean;
17
+ closable: 'off' | 'open' | 'close';
18
+ options: Option[];
19
+ constructor(optgroup: OptgroupOptional);
20
+ }
21
+ export interface OptionOptional {
22
+ id?: string;
23
+ value?: string;
24
+ text: string;
25
+ html?: string;
26
+ selected?: boolean;
27
+ display?: boolean;
28
+ disabled?: boolean;
29
+ mandatory?: boolean;
30
+ placeholder?: boolean;
31
+ class?: string;
32
+ style?: string;
33
+ data?: {
34
+ [key: string]: string;
35
+ };
36
+ }
37
+ export declare class Option {
38
+ id: string;
39
+ value: string;
40
+ text: string;
41
+ html: string;
42
+ selected: boolean;
43
+ display: boolean;
44
+ disabled: boolean;
45
+ placeholder: boolean;
46
+ class: string;
47
+ style: string;
48
+ data: {
49
+ [key: string]: string;
50
+ };
51
+ mandatory: boolean;
52
+ constructor(option: OptionOptional);
53
+ }
54
+ export default class Store {
55
+ private selectType;
56
+ private data;
57
+ constructor(type: selectType, data: DataArrayPartial);
58
+ validateDataArray(data: DataArray | DataArrayPartial): Error | null;
59
+ validateOption(option: Option | OptionOptional): Error | null;
60
+ partialToFullData(data: DataArrayPartial): DataArray;
61
+ setData(data: DataArray | DataArrayPartial): void;
62
+ getData(): DataArray;
63
+ getDataOptions(): Option[];
64
+ addOption(option: OptionOptional): void;
65
+ setSelectedBy(selectedType: 'id' | 'value', selectedValues: string[]): void;
66
+ getSelected(): string[];
67
+ getSelectedOptions(): Option[];
68
+ getSelectedIDs(): string[];
69
+ getOptgroupByID(id: string): Optgroup | null;
70
+ getOptionByID(id: string): Option | null;
71
+ search(search: string, searchFilter: (opt: Option, search: string) => boolean): DataArray;
72
+ filter(filter: {
73
+ (opt: Option): boolean;
74
+ } | null, includeOptgroup: boolean): DataArray;
75
+ }
76
+ export {};
@@ -53,6 +53,8 @@ class Optgroup {
53
53
  constructor(optgroup) {
54
54
  this.id = !optgroup.id || optgroup.id === '' ? generateID() : optgroup.id;
55
55
  this.label = optgroup.label || '';
56
+ this.selectAll = optgroup.selectAll === undefined ? false : optgroup.selectAll;
57
+ this.closable = optgroup.closable || 'off';
56
58
  this.options = [];
57
59
  if (optgroup.options) {
58
60
  for (const o of optgroup.options) {
@@ -199,6 +201,14 @@ class Store {
199
201
  });
200
202
  return selectedIDs;
201
203
  }
204
+ getOptgroupByID(id) {
205
+ for (let dataObj of this.data) {
206
+ if (dataObj instanceof Optgroup && dataObj.id === id) {
207
+ return dataObj;
208
+ }
209
+ }
210
+ return null;
211
+ }
202
212
  getOptionByID(id) {
203
213
  let options = this.filter((opt) => {
204
214
  return opt.id === id;
@@ -233,7 +243,7 @@ class Store {
233
243
  }
234
244
  });
235
245
  if (optOptions.length > 0) {
236
- dataSearch.push(new Optgroup({ id: dataObj.id, label: dataObj.label, options: optOptions }));
246
+ dataSearch.push(new Optgroup(dataObj));
237
247
  }
238
248
  }
239
249
  }
@@ -274,11 +284,18 @@ class Render {
274
284
  list: 'ss-list',
275
285
  optgroup: 'ss-optgroup',
276
286
  optgroupLabel: 'ss-optgroup-label',
277
- optgroupSelectable: 'ss-optgroup-selectable',
287
+ optgroupLabelText: 'ss-optgroup-label-text',
288
+ optgroupActions: 'ss-optgroup-actions',
289
+ optgroupSelectAll: 'ss-selectall',
290
+ optgroupSelectAllBox: 'M60,10 L10,10 L10,90 L90,90 L90,50',
291
+ optgroupSelectAllCheck: 'M30,45 L50,70 L90,10',
292
+ optgroupClosable: 'ss-closable',
278
293
  option: 'ss-option',
279
- optionSelected: 'ss-option-selected',
280
294
  optionDelete: 'M10,10 L90,90 M10,90 L90,10',
281
295
  highlighted: 'ss-highlighted',
296
+ open: 'ss-open',
297
+ close: 'ss-close',
298
+ selected: 'ss-selected',
282
299
  error: 'ss-error',
283
300
  disabled: 'ss-disabled',
284
301
  hide: 'ss-hide',
@@ -288,8 +305,6 @@ class Render {
288
305
  this.callbacks = callbacks;
289
306
  this.main = this.mainDiv();
290
307
  this.content = this.contentDiv();
291
- this.renderValues();
292
- this.renderOptions(this.store.getData());
293
308
  this.settings.contentLocation.appendChild(this.content.main);
294
309
  }
295
310
  enable() {
@@ -802,25 +817,23 @@ class Render {
802
817
  }
803
818
  for (let i = 0; i < options.length; i++) {
804
819
  if (options[i].classList.contains(this.classes.highlighted)) {
805
- options[i].classList.remove(this.classes.highlighted);
806
- if (dir === 'down') {
807
- if (i + 1 < options.length) {
808
- options[i + 1].classList.add(this.classes.highlighted);
809
- this.ensureElementInView(this.content.list, options[i + 1]);
810
- }
811
- else {
812
- options[0].classList.add(this.classes.highlighted);
813
- this.ensureElementInView(this.content.list, options[0]);
820
+ const prevOption = options[i];
821
+ prevOption.classList.remove(this.classes.highlighted);
822
+ const prevParent = prevOption.parentElement;
823
+ if (prevParent && prevParent.classList.contains(this.classes.open)) {
824
+ const optgroupLabel = prevParent.querySelector('.' + this.classes.optgroupLabel);
825
+ if (optgroupLabel) {
826
+ optgroupLabel.click();
814
827
  }
815
828
  }
816
- else {
817
- if (i - 1 >= 0) {
818
- options[i - 1].classList.add(this.classes.highlighted);
819
- this.ensureElementInView(this.content.list, options[i - 1]);
820
- }
821
- else {
822
- options[options.length - 1].classList.add(this.classes.highlighted);
823
- this.ensureElementInView(this.content.list, options[options.length - 1]);
829
+ let selectOption = options[dir === 'down' ? (i + 1 < options.length ? i + 1 : 0) : i - 1 >= 0 ? i - 1 : options.length - 1];
830
+ selectOption.classList.add(this.classes.highlighted);
831
+ this.ensureElementInView(this.content.list, selectOption);
832
+ const selectParent = selectOption.parentElement;
833
+ if (selectParent && selectParent.classList.contains(this.classes.close)) {
834
+ const optgroupLabel = selectParent.querySelector('.' + this.classes.optgroupLabel);
835
+ if (optgroupLabel) {
836
+ optgroupLabel.click();
824
837
  }
825
838
  }
826
839
  return;
@@ -865,18 +878,99 @@ class Render {
865
878
  optgroupEl.classList.add(this.classes.optgroup);
866
879
  const optgroupLabel = document.createElement('div');
867
880
  optgroupLabel.classList.add(this.classes.optgroupLabel);
868
- optgroupLabel.innerHTML = d.label;
869
- if (this.settings.selectByGroup && this.settings.isMultiple) {
870
- optgroupLabel.classList.add(this.classes.optgroupSelectable);
881
+ optgroupEl.appendChild(optgroupLabel);
882
+ const optgroupLabelText = document.createElement('div');
883
+ optgroupLabelText.classList.add(this.classes.optgroupLabelText);
884
+ optgroupLabelText.textContent = d.label;
885
+ optgroupLabel.appendChild(optgroupLabelText);
886
+ const optgroupActions = document.createElement('div');
887
+ optgroupActions.classList.add(this.classes.optgroupActions);
888
+ optgroupLabel.appendChild(optgroupActions);
889
+ if (this.settings.isMultiple && d.selectAll) {
890
+ const selectAll = document.createElement('div');
891
+ selectAll.classList.add(this.classes.optgroupSelectAll);
892
+ let allSelected = true;
893
+ for (const o of d.options) {
894
+ if (!o.selected) {
895
+ allSelected = false;
896
+ break;
897
+ }
898
+ }
899
+ if (allSelected) {
900
+ selectAll.classList.add(this.classes.selected);
901
+ }
902
+ const selectAllText = document.createElement('span');
903
+ selectAllText.textContent = 'Select All';
904
+ selectAll.appendChild(selectAllText);
905
+ const selectAllSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
906
+ selectAllSvg.setAttribute('viewBox', '0 0 100 100');
907
+ selectAll.appendChild(selectAllSvg);
908
+ const selectAllBox = document.createElementNS('http://www.w3.org/2000/svg', 'path');
909
+ selectAllBox.setAttribute('d', this.classes.optgroupSelectAllBox);
910
+ selectAllSvg.appendChild(selectAllBox);
911
+ const selectAllCheck = document.createElementNS('http://www.w3.org/2000/svg', 'path');
912
+ selectAllCheck.setAttribute('d', this.classes.optgroupSelectAllCheck);
913
+ selectAllSvg.appendChild(selectAllCheck);
914
+ selectAll.addEventListener('click', (e) => {
915
+ e.preventDefault();
916
+ e.stopPropagation();
917
+ const currentSelected = this.store.getSelected();
918
+ if (allSelected) {
919
+ const newSelected = currentSelected.filter((s) => {
920
+ for (const o of d.options) {
921
+ if (s === o.value) {
922
+ return false;
923
+ }
924
+ }
925
+ return true;
926
+ });
927
+ this.callbacks.setSelected(newSelected);
928
+ return;
929
+ }
930
+ else {
931
+ const newSelected = currentSelected.concat(d.options.map((o) => o.value));
932
+ this.callbacks.setSelected(newSelected);
933
+ }
934
+ });
935
+ optgroupActions.appendChild(selectAll);
936
+ }
937
+ if (d.closable !== 'off') {
938
+ const optgroupClosable = document.createElement('div');
939
+ optgroupClosable.classList.add(this.classes.optgroupClosable);
940
+ const optgroupClosableSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
941
+ optgroupClosableSvg.setAttribute('viewBox', '0 0 100 100');
942
+ optgroupClosableSvg.classList.add(this.classes.arrow);
943
+ optgroupClosable.appendChild(optgroupClosableSvg);
944
+ const optgroupClosableArrow = document.createElementNS('http://www.w3.org/2000/svg', 'path');
945
+ optgroupClosableArrow.setAttribute('d', this.classes.arrow);
946
+ optgroupClosableSvg.appendChild(optgroupClosableArrow);
947
+ if (d.options.some((o) => o.selected)) {
948
+ optgroupClosable.classList.add(this.classes.open);
949
+ optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);
950
+ }
951
+ else if (d.closable === 'open') {
952
+ optgroupEl.classList.add(this.classes.open);
953
+ optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);
954
+ }
955
+ else if (d.closable === 'close') {
956
+ optgroupEl.classList.add(this.classes.close);
957
+ optgroupClosableArrow.setAttribute('d', this.classes.arrowClose);
958
+ }
871
959
  optgroupLabel.addEventListener('click', (e) => {
872
960
  e.preventDefault();
873
961
  e.stopPropagation();
874
- for (const childEl of optgroupEl.children) {
875
- if (childEl.className.indexOf(this.classes.option) !== -1) {
876
- childEl.click();
877
- }
962
+ if (optgroupEl.classList.contains(this.classes.close)) {
963
+ optgroupEl.classList.remove(this.classes.close);
964
+ optgroupEl.classList.add(this.classes.open);
965
+ optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);
966
+ }
967
+ else {
968
+ optgroupEl.classList.remove(this.classes.open);
969
+ optgroupEl.classList.add(this.classes.close);
970
+ optgroupClosableArrow.setAttribute('d', this.classes.arrowClose);
878
971
  }
879
972
  });
973
+ optgroupActions.appendChild(optgroupClosable);
880
974
  }
881
975
  optgroupEl.appendChild(optgroupLabel);
882
976
  for (const o of d.options) {
@@ -928,10 +1022,10 @@ class Render {
928
1022
  optionEl.classList.add(this.classes.hide);
929
1023
  }
930
1024
  if (option.selected) {
931
- optionEl.classList.add(this.classes.optionSelected);
1025
+ optionEl.classList.add(this.classes.selected);
932
1026
  }
933
1027
  else {
934
- optionEl.classList.remove(this.classes.optionSelected);
1028
+ optionEl.classList.remove(this.classes.selected);
935
1029
  }
936
1030
  optionEl.addEventListener('click', (e) => {
937
1031
  e.preventDefault();
@@ -1153,8 +1247,10 @@ class Select {
1153
1247
  }
1154
1248
  getDataFromOptgroup(optgroup) {
1155
1249
  let data = {
1156
- id: '',
1250
+ id: (optgroup.dataset ? optgroup.dataset.id : false) || '',
1157
1251
  label: optgroup.label,
1252
+ selectAll: optgroup.dataset ? optgroup.dataset.selectall === 'true' : false,
1253
+ closable: optgroup.dataset ? optgroup.dataset.closable : 'off',
1158
1254
  options: [],
1159
1255
  };
1160
1256
  const options = optgroup.childNodes;
@@ -1165,6 +1261,22 @@ class Select {
1165
1261
  }
1166
1262
  return data;
1167
1263
  }
1264
+ getDataFromOption(option) {
1265
+ return {
1266
+ id: (option.dataset ? option.dataset.id : false) || '',
1267
+ value: option.value,
1268
+ text: option.text,
1269
+ html: option.innerHTML,
1270
+ selected: option.selected,
1271
+ display: option.style.display === 'none' ? false : true,
1272
+ disabled: option.disabled,
1273
+ mandatory: option.dataset ? option.dataset.mandatory === 'true' : false,
1274
+ placeholder: option.dataset.placeholder === 'true',
1275
+ class: option.className,
1276
+ style: option.style.cssText,
1277
+ data: option.dataset,
1278
+ };
1279
+ }
1168
1280
  getSelectedValues() {
1169
1281
  let values = [];
1170
1282
  const options = this.select.childNodes;
@@ -1189,22 +1301,6 @@ class Select {
1189
1301
  }
1190
1302
  return values;
1191
1303
  }
1192
- getDataFromOption(option) {
1193
- return {
1194
- id: (option.dataset ? option.dataset.id : false) || generateID(),
1195
- value: option.value,
1196
- text: option.text,
1197
- html: option.innerHTML,
1198
- selected: option.selected,
1199
- display: option.style.display === 'none' ? false : true,
1200
- disabled: option.disabled,
1201
- mandatory: option.dataset ? option.dataset.mandatory === 'true' : false,
1202
- placeholder: option.dataset.placeholder === 'true',
1203
- class: option.className,
1204
- style: option.style.cssText,
1205
- data: option.dataset,
1206
- };
1207
- }
1208
1304
  setSelected(value) {
1209
1305
  const options = this.select.childNodes;
1210
1306
  for (const o of options) {
@@ -1259,6 +1355,12 @@ class Select {
1259
1355
  const optgroupEl = document.createElement('optgroup');
1260
1356
  optgroupEl.id = optgroup.id;
1261
1357
  optgroupEl.label = optgroup.label;
1358
+ if (optgroup.selectAll) {
1359
+ optgroupEl.dataset.selectAll = 'true';
1360
+ }
1361
+ if (optgroup.closable !== 'off') {
1362
+ optgroupEl.dataset.closable = optgroup.closable;
1363
+ }
1262
1364
  if (optgroup.options) {
1263
1365
  for (const o of optgroup.options) {
1264
1366
  optgroupEl.appendChild(this.createOption(o));
@@ -1315,8 +1417,6 @@ class Settings {
1315
1417
  this.isOpen = false;
1316
1418
  this.triggerFocus = true;
1317
1419
  this.intervalMove = null;
1318
- this.mainHeight = 30;
1319
- this.contentHeight = 0;
1320
1420
  if (!settings) {
1321
1421
  settings = {};
1322
1422
  }
@@ -1338,7 +1438,6 @@ class Settings {
1338
1438
  this.allowDeselect = settings.allowDeselect !== undefined ? settings.allowDeselect : false;
1339
1439
  this.hideSelected = settings.hideSelected !== undefined ? settings.hideSelected : false;
1340
1440
  this.showOptionTooltips = settings.showOptionTooltips !== undefined ? settings.showOptionTooltips : false;
1341
- this.selectByGroup = settings.selectByGroup !== undefined ? settings.selectByGroup : false;
1342
1441
  this.minSelected = settings.minSelected || 0;
1343
1442
  this.maxSelected = settings.maxSelected || 1000;
1344
1443
  this.timeoutDelay = settings.timeoutDelay || 200;
@@ -1445,6 +1544,8 @@ class SlimSelect {
1445
1544
  afterChange: this.events.afterChange,
1446
1545
  };
1447
1546
  this.render = new Render(this.settings, this.store, callbacks);
1547
+ this.render.renderValues();
1548
+ this.render.renderOptions(this.store.getData());
1448
1549
  if (this.selectEl.parentNode) {
1449
1550
  this.selectEl.parentNode.insertBefore(this.render.main.main, this.selectEl.nextSibling);
1450
1551
  }