slim-select 2.2.0 → 2.2.2

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 (118) hide show
  1. package/dist/helpers.d.ts +1 -0
  2. package/dist/index.d.ts +1 -1
  3. package/dist/select.d.ts +1 -1
  4. package/dist/slimselect.cjs.js +62 -40
  5. package/dist/slimselect.es.js +62 -40
  6. package/dist/slimselect.global.js +62 -40
  7. package/dist/slimselect.js +62 -40
  8. package/dist/slimselect.min.js +1 -1
  9. package/dist/slimselect.umd.js +62 -40
  10. package/dist/slimselect.umd.min.js +1 -1
  11. package/package.json +1 -3
  12. package/src/slim-select/helpers.ts +4 -0
  13. package/src/slim-select/index.ts +26 -2
  14. package/src/slim-select/render.ts +5 -3
  15. package/src/slim-select/select.ts +12 -3
  16. package/src/vue/dist/slim-select/helpers.d.ts +5 -0
  17. package/src/vue/dist/slim-select/index.d.ts +45 -0
  18. package/src/vue/dist/slim-select/render.d.ts +116 -0
  19. package/src/vue/dist/slim-select/select.d.ts +33 -0
  20. package/src/vue/dist/slim-select/settings.d.ts +30 -0
  21. package/src/vue/dist/slim-select/store.d.ts +76 -0
  22. package/src/vue/dist/slimselectvue.es.js +114 -43
  23. package/src/vue/dist/slimselectvue.global.js +114 -43
  24. package/src/vue/dist/slimselectvue.ssr.js +114 -43
  25. package/src/vue/dist/vue/hello.d.ts +2 -0
  26. package/src/vue/dist/vue/slimselect.vue.d.ts +309 -0
  27. package/src/vue/package.json +2 -3
  28. package/src/vue/slimselect.vue +66 -2
  29. package/src/vue/tsconfig.json +3 -3
  30. package/tsconfig.json +9 -2
  31. package/.github/FUNDING.yml +0 -12
  32. package/.github/ISSUE_TEMPLATE/issue-report.md +0 -14
  33. package/.vscode/extensions.json +0 -3
  34. package/.vscode/settings.json +0 -17
  35. package/docs/404.html +0 -42
  36. package/docs/CNAME +0 -1
  37. package/docs/assets/check-mark.svg +0 -6
  38. package/docs/assets/data.js +0 -63
  39. package/docs/assets/home.css +0 -1
  40. package/docs/assets/home.js +0 -1
  41. package/docs/assets/index.css +0 -1
  42. package/docs/assets/index.js +0 -16
  43. package/docs/assets/index2.js +0 -358
  44. package/docs/assets/index3.js +0 -142
  45. package/docs/assets/index4.js +0 -60
  46. package/docs/assets/index5.js +0 -149
  47. package/docs/assets/install.js +0 -34
  48. package/docs/assets/selects.js +0 -55
  49. package/docs/favicon.ico +0 -0
  50. package/docs/index.html +0 -36
  51. package/public/404.html +0 -42
  52. package/public/CNAME +0 -1
  53. package/public/favicon.ico +0 -0
  54. package/slimselect.gif +0 -0
  55. package/src/docs/app.vue +0 -228
  56. package/src/docs/assets/images/check-mark.svg +0 -6
  57. package/src/docs/assets/images/chrome.svg +0 -22
  58. package/src/docs/assets/images/firefox.svg +0 -58
  59. package/src/docs/assets/images/github.png +0 -0
  60. package/src/docs/assets/images/ie.svg +0 -11
  61. package/src/docs/assets/images/npm.png +0 -0
  62. package/src/docs/assets/images/opera.svg +0 -15
  63. package/src/docs/assets/images/safari.svg +0 -22
  64. package/src/docs/assets/scss/_variables.scss +0 -26
  65. package/src/docs/assets/scss/alert.scss +0 -12
  66. package/src/docs/assets/scss/animations.scss +0 -8
  67. package/src/docs/assets/scss/button.scss +0 -21
  68. package/src/docs/assets/scss/index.scss +0 -8
  69. package/src/docs/assets/scss/input.scss +0 -3
  70. package/src/docs/assets/scss/layout.scss +0 -250
  71. package/src/docs/assets/scss/misc.scss +0 -162
  72. package/src/docs/assets/scss/prism.scss +0 -157
  73. package/src/docs/env.d.ts +0 -13
  74. package/src/docs/main.ts +0 -27
  75. package/src/docs/pages/data.vue +0 -134
  76. package/src/docs/pages/events/addable.vue +0 -95
  77. package/src/docs/pages/events/before_after_change.vue +0 -154
  78. package/src/docs/pages/events/before_after_open_close.vue +0 -122
  79. package/src/docs/pages/events/error.vue +0 -59
  80. package/src/docs/pages/events/index.vue +0 -33
  81. package/src/docs/pages/events/search.vue +0 -169
  82. package/src/docs/pages/events/search_filter.vue +0 -45
  83. package/src/docs/pages/frameworks/index.vue +0 -18
  84. package/src/docs/pages/frameworks/vue.vue +0 -407
  85. package/src/docs/pages/home.vue +0 -241
  86. package/src/docs/pages/install.vue +0 -105
  87. package/src/docs/pages/methods/destroy.vue +0 -66
  88. package/src/docs/pages/methods/enable_disable.vue +0 -70
  89. package/src/docs/pages/methods/get_data.vue +0 -82
  90. package/src/docs/pages/methods/get_selected.vue +0 -78
  91. package/src/docs/pages/methods/index.vue +0 -36
  92. package/src/docs/pages/methods/open_close.vue +0 -63
  93. package/src/docs/pages/methods/search.vue +0 -62
  94. package/src/docs/pages/methods/set_data.vue +0 -106
  95. package/src/docs/pages/methods/set_selected.vue +0 -70
  96. package/src/docs/pages/selects.vue +0 -213
  97. package/src/docs/pages/settings/always_open.vue +0 -88
  98. package/src/docs/pages/settings/closable.vue +0 -128
  99. package/src/docs/pages/settings/close_on_select.vue +0 -69
  100. package/src/docs/pages/settings/content_location.vue +0 -64
  101. package/src/docs/pages/settings/content_position.vue +0 -86
  102. package/src/docs/pages/settings/css.vue +0 -73
  103. package/src/docs/pages/settings/data_attributes.vue +0 -39
  104. package/src/docs/pages/settings/deselect.vue +0 -69
  105. package/src/docs/pages/settings/display.vue +0 -88
  106. package/src/docs/pages/settings/hide_selected.vue +0 -73
  107. package/src/docs/pages/settings/html.vue +0 -86
  108. package/src/docs/pages/settings/index.vue +0 -76
  109. package/src/docs/pages/settings/mandatory.vue +0 -91
  110. package/src/docs/pages/settings/min_max.vue +0 -61
  111. package/src/docs/pages/settings/open_position.vue +0 -60
  112. package/src/docs/pages/settings/placeholder.vue +0 -72
  113. package/src/docs/pages/settings/search.vue +0 -140
  114. package/src/docs/pages/settings/select.vue +0 -32
  115. package/src/docs/pages/settings/select_all.vue +0 -88
  116. package/src/docs/pages/settings/show_tooltip.vue +0 -44
  117. package/src/docs/pages/settings/styles.vue +0 -51
  118. package/src/docs/router.ts +0 -50
@@ -1,241 +0,0 @@
1
- <script lang="ts">
2
- import { defineComponent } from 'vue'
3
-
4
- import SlimSelect from '../../slim-select'
5
-
6
- export default defineComponent({
7
- name: 'Home',
8
- data() {
9
- return {
10
- single: null as SlimSelect | null,
11
- multiple: null as SlimSelect | null,
12
- }
13
- },
14
- mounted() {
15
- this.single = new SlimSelect({
16
- select: this.$refs.slimSingle as HTMLSelectElement,
17
- })
18
- this.multiple = new SlimSelect({
19
- select: this.$refs.slimMulti as HTMLSelectElement,
20
- })
21
-
22
- setTimeout(() => {
23
- if (this.single) {
24
- this.single.open()
25
- }
26
- setTimeout(() => {
27
- if (this.single) {
28
- this.single.setSelected('best')
29
- }
30
- }, 500)
31
- setTimeout(() => {
32
- if (this.single) {
33
- this.single.setSelected('select')
34
- }
35
- }, 1000)
36
- setTimeout(() => {
37
- if (this.single) {
38
- this.single.setSelected('ever')
39
- }
40
- }, 1500)
41
- setTimeout(() => {
42
- if (this.single) {
43
- this.single.close()
44
- }
45
- }, 2000)
46
-
47
- if (this.multiple) {
48
- this.multiple.open()
49
- }
50
- setTimeout(() => {
51
- if (this.multiple) {
52
- this.multiple.setSelected(['best'])
53
- }
54
- }, 500)
55
- setTimeout(() => {
56
- if (this.multiple) {
57
- this.multiple.setSelected(['best', 'select'])
58
- }
59
- }, 1000)
60
- setTimeout(() => {
61
- if (this.multiple) {
62
- this.multiple.setSelected(['best', 'select', 'ever'])
63
- }
64
- }, 1500)
65
- setTimeout(() => {
66
- if (this.multiple) {
67
- this.multiple.close()
68
- }
69
- }, 2000)
70
- }, 500)
71
- },
72
- unmounted() {
73
- if (this.single) {
74
- this.single.destroy()
75
- }
76
- if (this.multiple) {
77
- this.multiple.destroy()
78
- }
79
- },
80
- })
81
- </script>
82
-
83
- <style lang="scss">
84
- #home {
85
- .samples {
86
- display: flex;
87
- justify-content: space-between;
88
- gap: var(--spacing);
89
-
90
- .single {
91
- flex: 1 1 50%;
92
- }
93
- .multi {
94
- flex: 1 1 50%;
95
- }
96
- }
97
-
98
- .support {
99
- .links {
100
- display: flex;
101
- flex-direction: row;
102
- gap: var(--spacing);
103
- }
104
- }
105
-
106
- .features {
107
- flex: 1 1 auto;
108
- display: flex;
109
- flex-direction: column;
110
-
111
- .header {
112
- padding: 0 0 var(--spacing) 0;
113
- }
114
-
115
- .row {
116
- justify-content: space-around;
117
-
118
- .list {
119
- display: flex;
120
- flex-direction: column;
121
- list-style: none;
122
- padding: 0px;
123
- width: 200px;
124
- margin: 0 auto;
125
-
126
- li {
127
- display: flex;
128
- align-items: center;
129
- padding: 0 0 5px 0;
130
- font-weight: bold;
131
- font-size: 20px;
132
-
133
- img {
134
- width: 20px;
135
- padding: 0 8px 0 0;
136
- }
137
- }
138
- }
139
- }
140
- }
141
- }
142
- </style>
143
-
144
- <template>
145
- <div id="home" class="content">
146
- <div class="samples row">
147
- <div class="single">
148
- <h2>Single Select</h2>
149
- <select ref="slimSingle">
150
- <option data-placeholder="true"></option>
151
- <option value="best">Best</option>
152
- <option value="select">Select</option>
153
- <option value="ever">Ever</option>
154
- </select>
155
- </div>
156
- <div class="multi">
157
- <h2>Multi Select</h2>
158
- <select ref="slimMulti" multiple>
159
- <option value="best">Best</option>
160
- <option value="select">Select</option>
161
- <option value="ever">Ever</option>
162
- </select>
163
- </div>
164
- </div>
165
-
166
- <br />
167
-
168
- <div class="support">
169
- <h2 class="header">Support</h2>
170
- <p>Help support creators that make development easier!</p>
171
- <div class="links">
172
- <iframe
173
- src="https://github.com/sponsors/brianvoe/button"
174
- title="Sponsor brianvoe"
175
- height="35"
176
- width="116"
177
- style="border: 0"
178
- ></iframe>
179
- <a href="https://www.buymeacoffee.com/brianvoe" target="_blank"
180
- ><img
181
- src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png"
182
- alt="Buy Me A Coffee"
183
- style="height: auto !important; width: auto !important"
184
- /></a>
185
- </div>
186
- </div>
187
-
188
- <br />
189
- <div class="separator" />
190
- <br />
191
-
192
- <div class="features">
193
- <h2 class="header">Features</h2>
194
-
195
- <div class="row">
196
- <ul class="list">
197
- <li><img src="../assets/images/check-mark.svg" /> No Dependencies</li>
198
- <li><img src="../assets/images/check-mark.svg" /> ~30kb - ~5kb gzip</li>
199
- <li><img src="../assets/images/check-mark.svg" /> Single Select</li>
200
- <li><img src="../assets/images/check-mark.svg" /> Multiple Select</li>
201
- <li><img src="../assets/images/check-mark.svg" /> Addable Options</li>
202
- <li><img src="../assets/images/check-mark.svg" /> Html Options</li>
203
- <li><img src="../assets/images/check-mark.svg" /> Settable Data</li>
204
- <li><img src="../assets/images/check-mark.svg" /> Callback Events</li>
205
- <li><img src="../assets/images/check-mark.svg" /> Placeholders</li>
206
- </ul>
207
- <ul class="list">
208
- <li><img src="../assets/images/check-mark.svg" /> Advanced Search</li>
209
- <li><img src="../assets/images/check-mark.svg" /> Tabbable</li>
210
- <li><img src="../assets/images/check-mark.svg" /> Disable Options</li>
211
- <li><img src="../assets/images/check-mark.svg" /> Light Css</li>
212
- <li><img src="../assets/images/check-mark.svg" /> Light Color Scheme</li>
213
- <li><img src="../assets/images/check-mark.svg" /> Style Inheritance</li>
214
- <li><img src="../assets/images/check-mark.svg" /> Clean Animations</li>
215
- <li><img src="../assets/images/check-mark.svg" /> Performant</li>
216
- <li><img src="../assets/images/check-mark.svg" /> Typescript</li>
217
- </ul>
218
- </div>
219
- </div>
220
-
221
- <br />
222
- <div class="separator" />
223
- <br />
224
-
225
- <div class="frameworks">
226
- <h2 class="header">Frameworks</h2>
227
- <p>
228
- SlimSelect is in the process of adding a few framework integrations.<br />
229
- If you are an expert in any specific framework and would like to help out, please reach out!
230
- </p>
231
- <div class="row frameworks">
232
- <router-link to="frameworks#vue">
233
- <svg viewBox="0 0 128 128" width="100" height="100">
234
- <path fill="#42b883" d="M78.8,10L64,35.4L49.2,10H0l64,110l64-110C128,10,78.8,10,78.8,10z"></path>
235
- <path fill="#35495e" d="M78.8,10L64,35.4L49.2,10H25.6L64,76l38.4-66H78.8z"></path>
236
- </svg>
237
- </router-link>
238
- </div>
239
- </div>
240
- </div>
241
- </template>
@@ -1,105 +0,0 @@
1
- <script lang="ts">
2
- import download from 'downloadjs'
3
- import { defineComponent } from 'vue'
4
- import packageJson from '../../../package.json'
5
-
6
- export default defineComponent({
7
- name: 'Install',
8
- data: () => {
9
- return {
10
- version: packageJson.version,
11
- }
12
- },
13
- methods: {
14
- downloadLink() {
15
- download(`https://cdnjs.cloudflare.com/ajax/libs/slim-select/${this.version}/slimselect.min.js`)
16
- },
17
- },
18
- })
19
- </script>
20
-
21
- <template>
22
- <div id="install" class="contents">
23
- <div id="npm" class="content">
24
- <h2>Npm</h2>
25
- <p>Most common usage is npm</p>
26
-
27
- <pre class="install-code">
28
- <code class="language-bash">
29
- npm install slim-select
30
- </code>
31
- </pre>
32
-
33
- <pre class="example-code">
34
- <code class="language-javascript">
35
- import SlimSelect from 'slim-select'
36
-
37
- new SlimSelect({
38
- select: '#selectElement'
39
- })
40
- </code>
41
- </pre>
42
- </div>
43
-
44
- <div id="cdn" class="content">
45
- <h2>Cdn</h2>
46
- <p>
47
- Cdn has a url link you can grab. Cdn exists on both
48
- <a target="_blank" href="https://cdnjs.com">cdnjs.com</a> and
49
- <a target="_blank" href="https://unpkg.com">unpkg.com</a>
50
- </p>
51
- <p>
52
- See full list of available options.<br />
53
- <strong>cdnjs</strong> -
54
- <a target="_blank" href="https://cdnjs.com/libraries/slim-select">cdnjs.com/libraries/slim-select</a><br />
55
- <strong>unpkg</strong> -
56
- <a target="_blank" href="https://unpkg.com/browse/slim-select/dist/"
57
- >https://unpkg.com/browse/slim-select/dist/</a
58
- >
59
- </p>
60
- <ul>
61
- <li>slimselct.js - UMD unminified</li>
62
- <li>slimselct.min.js - UMD minified</li>
63
- <li>slimselect.cjs.js - CommonJS (for Node) and ES module (for bundlers) build</li>
64
- <li>slimselect.umd.js - UMD build for browsers</li>
65
- <li>slimselect.es.js - ES module build for modern browsers</li>
66
- <li>slimselect.global.js - IIFE build for modern browsers</li>
67
- </ul>
68
- <div class="alert info">New releases may be delayed until the next time its indexed</div>
69
-
70
- <pre class="install-code">
71
- <code class="language-html">
72
- &lt;html&gt;
73
- &lt;head&gt;
74
- &lt;script src="unpkg.com/slim-select@{{version}}/dist/slimselect.min.js"&gt;&lt;/script&gt;
75
- &lt;link href="unpkg.com/slim-select@{{version}}/dist/slimselect.css" rel="stylesheet"&gt;&lt;/link&gt;
76
-
77
- &lt;script&gt;
78
- new SlimSelect({
79
- select: '#selectElement'
80
- })
81
- &lt;script&gt;
82
- &lt;/head&gt;
83
- &lt;body&gt;
84
- &lt;select id="selectElement"&gt;
85
- &lt;option&gt;Option 1&lt;/option&gt;
86
- &lt;option&gt;Option 2&lt;/option&gt;
87
- &lt;option&gt;Option 3&lt;/option&gt;
88
- &lt;/select&gt;
89
- &lt;/body&gt;
90
- &lt;/html&gt;
91
- </code>
92
- </pre>
93
- </div>
94
-
95
- <div id="download" class="content">
96
- <h2>Download</h2>
97
- <p>Download the latest minified umd version of slim select</p>
98
- <p>
99
- See full list of available downloadable options.
100
- <a target="_blank" href="https://cdnjs.com/libraries/slim-select">cdnjs.com/libraries/slim-select</a>
101
- </p>
102
- <div class="btn" @click="downloadLink()">Click Here To Download</div>
103
- </div>
104
- </div>
105
- </template>
@@ -1,66 +0,0 @@
1
- <script lang="ts">
2
- import { defineComponent } from 'vue'
3
-
4
- import SlimSelect from '../../../slim-select'
5
-
6
- export default defineComponent({
7
- name: 'Destroy',
8
- data() {
9
- return {
10
- destroySingle: null as SlimSelect | null,
11
- destroyMultiple: null as SlimSelect | null,
12
- }
13
- },
14
- mounted() {
15
- this.create()
16
- },
17
- methods: {
18
- create() {
19
- this.destroySingle = new SlimSelect({
20
- select: this.$refs.destroySingle as HTMLSelectElement,
21
- })
22
-
23
- this.destroyMultiple = new SlimSelect({
24
- select: this.$refs.destroyMultiple as HTMLSelectElement,
25
- })
26
- },
27
- destroy() {
28
- this.destroySingle!.destroy()
29
- this.destroySingle = null
30
- this.destroyMultiple!.destroy()
31
- this.destroyMultiple = null
32
- },
33
- },
34
- })
35
- </script>
36
-
37
- <template>
38
- <div id="destroy" class="content">
39
- <h2 class="header">destroy</h2>
40
- <p>The destroy method will remove slim-select and display your original select.</p>
41
-
42
- <div class="row">
43
- <div class="btn" @click="create" v-if="!destroySingle">Create</div>
44
- <div class="btn" @click="destroy" v-else>Destroy</div>
45
- <select ref="destroySingle">
46
- <option value="value1">Value 1</option>
47
- <option value="value2">Value 2</option>
48
- <option value="value3">Value 3</option>
49
- </select>
50
- <select ref="destroyMultiple" multiple>
51
- <option value="value1">Value 1</option>
52
- <option value="value2">Value 2</option>
53
- <option value="value3">Value 3</option>
54
- </select>
55
- </div>
56
-
57
- <pre>
58
- <code class="language-javascript">
59
- var select = new SlimSelect({
60
- select: '#selectElement'
61
- })
62
- select.destroy()
63
- </code>
64
- </pre>
65
- </div>
66
- </template>
@@ -1,70 +0,0 @@
1
- <script lang="ts">
2
- import { defineComponent } from 'vue'
3
-
4
- import SlimSelect from '../../../slim-select'
5
-
6
- export default defineComponent({
7
- name: 'EnableDisable',
8
- data() {
9
- return {
10
- setEnableSingle: null as SlimSelect | null,
11
- setEnableMultiple: null as SlimSelect | null,
12
- }
13
- },
14
- mounted() {
15
- this.setEnableSingle = new SlimSelect({
16
- select: this.$refs.setEnableSingle as HTMLSelectElement,
17
- })
18
- this.setEnableMultiple = new SlimSelect({
19
- select: this.$refs.setEnableMultiple as HTMLSelectElement,
20
- })
21
- },
22
- methods: {
23
- setEnable() {
24
- this.setEnableSingle!.enable()
25
- this.setEnableMultiple!.enable()
26
- },
27
- setDisable() {
28
- this.setEnableSingle!.disable()
29
- this.setEnableMultiple!.disable()
30
- },
31
- },
32
- })
33
- </script>
34
-
35
- <template>
36
- <div id="enableDisable" class="content">
37
- <h2 class="header">enable / disable</h2>
38
- <p>
39
- These methods will enable or disable the select dropdown.
40
- <br />
41
- You may also set disabled on your original select and slim-select will pick that up.
42
- </p>
43
-
44
- <div class="row">
45
- <div class="btn" @click="setEnable" v-if="setEnableSingle && !setEnableSingle.settings.isEnabled">Enable</div>
46
- <div class="btn" @click="setDisable" v-else>Disable</div>
47
-
48
- <select ref="setEnableSingle" disabled>
49
- <option value="value1">Value 1</option>
50
- <option value="value2">Value 2</option>
51
- <option value="value3">Value 3</option>
52
- </select>
53
- <select ref="setEnableMultiple" multiple disabled>
54
- <option value="value1">Value 1</option>
55
- <option value="value2">Value 2</option>
56
- <option value="value3">Value 3</option>
57
- </select>
58
- </div>
59
- <pre>
60
- <code class="language-javascript">
61
- var select = new SlimSelect({
62
- select: '#selectElement'
63
- })
64
- select.enable()
65
- // or
66
- select.disable()
67
- </code>
68
- </pre>
69
- </div>
70
- </template>
@@ -1,82 +0,0 @@
1
- <script lang="ts">
2
- import { defineComponent } from 'vue'
3
-
4
- import SlimSelect from '../../../slim-select'
5
- import { DataArray } from '../../../slim-select/store'
6
-
7
- export default defineComponent({
8
- name: 'GetData',
9
- data() {
10
- return {
11
- getDataOptions: null as SlimSelect | null,
12
- getDataOptionsValue: [] as DataArray,
13
- getDataOptgroups: null as SlimSelect | null,
14
- getDataOptgroupsValue: [] as DataArray,
15
- }
16
- },
17
- mounted() {
18
- this.getDataOptions = new SlimSelect({
19
- select: this.$refs.getDataOptions as HTMLSelectElement,
20
- })
21
- this.getDataOptgroups = new SlimSelect({
22
- select: this.$refs.getDataOptgroups as HTMLSelectElement,
23
- })
24
- },
25
- methods: {
26
- getData() {
27
- this.getDataOptionsValue = this.getDataOptions!.getData()
28
- this.getDataOptgroupsValue = this.getDataOptgroups!.getData()
29
- },
30
- },
31
- })
32
- </script>
33
-
34
- <template>
35
- <div id="getData" class="content">
36
- <h2 class="header">getData</h2>
37
- <p>The getData method will return an array of the full data set.</p>
38
-
39
- <div class="row">
40
- <div class="btn" @click="getData">Get Data</div>
41
-
42
- <div>
43
- <select ref="getDataOptions">
44
- <option value="value1">Value 1</option>
45
- <option value="value2">Value 2</option>
46
- <option value="value3">Value 3</option>
47
- </select>
48
- <div class="pad-t-m pad-b-m" v-if="getDataOptionsValue.length">
49
- <b>Option Data:</b> {{ getDataOptionsValue }}
50
- </div>
51
- </div>
52
-
53
- <div>
54
- <select ref="getDataOptgroups" multiple>
55
- <optgroup label="Group 1">
56
- <option value="value1">Value 1</option>
57
- <option value="value2">Value 2</option>
58
- <option value="value3">Value 3</option>
59
- </optgroup>
60
- <optgroup label="Group 2">
61
- <option value="value4">Value 4</option>
62
- <option value="value5">Value 5</option>
63
- <option value="value6">Value 6</option>
64
- </optgroup>
65
- </select>
66
- <div class="pad-t-m pad-b-m" v-if="getDataOptgroupsValue.length">
67
- <b>Optgroup Data:</b> {{ getDataOptgroupsValue }}
68
- </div>
69
- </div>
70
- </div>
71
-
72
- <pre>
73
- <code class="language-javascript">
74
- var select = new SlimSelect({
75
- select: '#selectElement'
76
- })
77
- var data = select.getData() // Will return an array of options and optgroups
78
- console.log(data)
79
- </code>
80
- </pre>
81
- </div>
82
- </template>
@@ -1,78 +0,0 @@
1
- <script lang="ts">
2
- import { defineComponent } from 'vue'
3
-
4
- import SlimSelect from '../../../slim-select'
5
-
6
- export default defineComponent({
7
- name: 'GetSelected',
8
- data() {
9
- return {
10
- selectedSingle: null as SlimSelect | null,
11
- selectedSingleValue: [] as string[],
12
- selectedMultiple: null as SlimSelect | null,
13
- selectedMultipleValue: [] as string[],
14
- }
15
- },
16
- mounted() {
17
- this.selectedSingle = new SlimSelect({
18
- select: this.$refs.selectedSingle as HTMLSelectElement,
19
- })
20
- this.selectedMultiple = new SlimSelect({
21
- select: this.$refs.selectedMultiple as HTMLSelectElement,
22
- })
23
- },
24
- methods: {
25
- getSelected() {
26
- this.selectedSingleValue = this.selectedSingle!.getSelected()
27
- this.selectedMultipleValue = this.selectedMultiple!.getSelected()
28
- },
29
- },
30
- })
31
- </script>
32
-
33
- <template>
34
- <div id="getSelected" class="content">
35
- <h2 class="header">getSelected</h2>
36
- <p>The getSelected method will return an array of the currently selected value strings.</p>
37
-
38
- <div class="alert info">
39
- Whether or not its a single or multiple select, getSelected will always return an array.
40
- </div>
41
-
42
- <div class="row">
43
- <div class="btn" @click="getSelected">Get Selected</div>
44
-
45
- <div>
46
- <select ref="selectedSingle">
47
- <option value="value1">Value 1</option>
48
- <option value="value2">Value 2</option>
49
- <option value="value3">Value 3</option>
50
- </select>
51
- <div class="pad-t-m pad-b-m" v-if="selectedSingleValue.length">
52
- <b>Single Select Value:</b> {{ selectedSingleValue }}
53
- </div>
54
- </div>
55
-
56
- <div>
57
- <select ref="selectedMultiple" multiple>
58
- <option value="value1">Value 1</option>
59
- <option value="value2" selected>Value 2</option>
60
- <option value="value3" selected>Value 3</option>
61
- </select>
62
- <div class="pad-t-m pad-b-m" v-if="selectedMultipleValue.length">
63
- <b>Multi Select Value:</b> {{ selectedMultipleValue }}
64
- </div>
65
- </div>
66
- </div>
67
-
68
- <pre>
69
- <code class="language-javascript">
70
- var select = new SlimSelect({
71
- select: '#selectElement'
72
- })
73
- var values = select.getSelected() // Will return an array of strings
74
- console.log(values)
75
- </code>
76
- </pre>
77
- </div>
78
- </template>
@@ -1,36 +0,0 @@
1
- <script lang="ts">
2
- import { defineComponent } from 'vue'
3
-
4
- import GetSelected from './get_selected.vue'
5
- import SetSelected from './set_selected.vue'
6
- import GetData from './get_data.vue'
7
- import SetData from './set_data.vue'
8
- import EnableDisable from './enable_disable.vue'
9
- import Search from './search.vue'
10
- import Destroy from './destroy.vue'
11
-
12
- export default defineComponent({
13
- name: 'Methods',
14
- components: {
15
- GetSelected,
16
- SetSelected,
17
- GetData,
18
- SetData,
19
- EnableDisable,
20
- Search,
21
- Destroy,
22
- },
23
- })
24
- </script>
25
-
26
- <template>
27
- <div id="methods" class="contents">
28
- <GetSelected />
29
- <SetSelected />
30
- <GetData />
31
- <SetData />
32
- <EnableDisable />
33
- <Search />
34
- <Destroy />
35
- </div>
36
- </template>