slim-select 1.27.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/.nvmrc +1 -0
  2. package/.prettierrc +6 -0
  3. package/.vscode/extensions.json +3 -0
  4. package/.vscode/settings.json +15 -5
  5. package/README.md +2 -1
  6. package/dist/helper.d.ts +1 -4
  7. package/dist/index.d.ts +38 -58
  8. package/dist/render.d.ts +109 -0
  9. package/dist/select.d.ts +31 -20
  10. package/dist/settings.d.ts +33 -0
  11. package/dist/slimselect.cjs.js +2 -0
  12. package/dist/slimselect.cjs.js.map +1 -0
  13. package/dist/slimselect.css +1 -2
  14. package/dist/slimselect.css.map +1 -0
  15. package/dist/slimselect.es.js +2 -0
  16. package/dist/slimselect.es.js.map +1 -0
  17. package/dist/slimselect.global.js +2 -0
  18. package/dist/slimselect.global.js.map +1 -0
  19. package/dist/slimselect.js +2 -1956
  20. package/dist/slimselect.js.map +1 -0
  21. package/dist/slimselect.umd.js +2 -0
  22. package/dist/slimselect.umd.js.map +1 -0
  23. package/dist/store.d.ts +71 -0
  24. package/docs/assets/check-mark.svg +6 -0
  25. package/docs/assets/data.js +59 -0
  26. package/docs/assets/home.css +1 -0
  27. package/docs/assets/home.js +1 -0
  28. package/docs/assets/index.css +1 -0
  29. package/docs/assets/index.js +16 -0
  30. package/docs/assets/index2.js +274 -0
  31. package/docs/assets/index3.js +126 -0
  32. package/docs/assets/index4.js +60 -0
  33. package/docs/assets/install.js +34 -0
  34. package/docs/assets/selects.js +55 -0
  35. package/docs/index.html +18 -5
  36. package/docs.go +3 -1
  37. package/index.html +16 -0
  38. package/jest.config.js +7 -0
  39. package/package.json +39 -39
  40. package/src/docs/app.vue +185 -76
  41. package/src/docs/assets/scss/_variables.scss +26 -10
  42. package/src/docs/assets/scss/alert.scss +12 -0
  43. package/src/docs/assets/scss/animations.scss +5 -3
  44. package/src/docs/assets/scss/button.scss +21 -0
  45. package/src/docs/assets/scss/index.scss +8 -6
  46. package/src/docs/assets/scss/input.scss +2 -2
  47. package/src/docs/assets/scss/layout.scss +195 -65
  48. package/src/docs/assets/scss/misc.scss +144 -34
  49. package/src/docs/assets/scss/prism.scss +155 -153
  50. package/src/docs/env.d.ts +12 -0
  51. package/src/docs/images/check-mark.svg +6 -0
  52. package/src/docs/images/chrome.svg +22 -0
  53. package/src/docs/images/firefox.svg +58 -0
  54. package/src/docs/images/github.png +0 -0
  55. package/src/docs/images/ie.svg +11 -0
  56. package/src/docs/images/npm.png +0 -0
  57. package/src/docs/images/opera.svg +15 -0
  58. package/src/docs/images/safari.svg +22 -0
  59. package/src/docs/main.ts +27 -0
  60. package/src/docs/pages/data.vue +130 -0
  61. package/src/docs/pages/events/addable.vue +79 -0
  62. package/src/docs/pages/events/before_after_change.vue +140 -0
  63. package/src/docs/pages/events/before_after_open_close.vue +122 -0
  64. package/src/docs/pages/events/error.vue +59 -0
  65. package/src/docs/pages/events/index.vue +33 -0
  66. package/src/docs/pages/events/search.vue +154 -0
  67. package/src/docs/pages/events/search_filter.vue +45 -0
  68. package/src/docs/pages/home.vue +96 -116
  69. package/src/docs/pages/install.vue +47 -74
  70. package/src/docs/pages/methods/destroy.vue +66 -0
  71. package/src/docs/pages/methods/enable_disable.vue +70 -0
  72. package/src/docs/pages/methods/get_data.vue +81 -0
  73. package/src/docs/pages/methods/get_selected.vue +78 -0
  74. package/src/docs/pages/methods/index.vue +36 -0
  75. package/src/docs/pages/methods/open_close.vue +63 -0
  76. package/src/docs/pages/methods/search.vue +62 -0
  77. package/src/docs/pages/methods/set_data.vue +106 -0
  78. package/src/docs/pages/methods/set_selected.vue +70 -0
  79. package/src/docs/pages/selects.vue +108 -114
  80. package/src/docs/pages/settings/always_open.vue +88 -0
  81. package/src/docs/pages/settings/close_on_select.vue +69 -0
  82. package/src/docs/pages/settings/content_location.vue +64 -0
  83. package/src/docs/pages/settings/content_position.vue +86 -0
  84. package/src/docs/pages/settings/css.vue +73 -0
  85. package/src/docs/pages/settings/data_attributes.vue +39 -0
  86. package/src/docs/pages/settings/deselect.vue +69 -0
  87. package/src/docs/pages/settings/display.vue +88 -0
  88. package/src/docs/pages/settings/hide_selected.vue +73 -0
  89. package/src/docs/pages/settings/html.vue +86 -0
  90. package/src/docs/pages/settings/index.vue +73 -0
  91. package/src/docs/pages/settings/mandatory.vue +91 -0
  92. package/src/docs/pages/settings/min_max.vue +61 -0
  93. package/src/docs/pages/settings/open_position.vue +60 -0
  94. package/src/docs/pages/settings/placeholder.vue +72 -0
  95. package/src/docs/pages/settings/search.vue +140 -0
  96. package/src/docs/pages/settings/select.vue +32 -0
  97. package/src/docs/pages/settings/select_by_group.vue +46 -0
  98. package/src/docs/pages/settings/show_tooltip.vue +44 -0
  99. package/src/docs/pages/settings/styles.vue +51 -0
  100. package/src/docs/router.ts +41 -13
  101. package/src/slim-select/helper.ts +25 -86
  102. package/src/slim-select/index.ts +318 -413
  103. package/src/slim-select/render.test.ts +39 -0
  104. package/src/slim-select/render.ts +1129 -0
  105. package/src/slim-select/rollup.config.mjs +39 -0
  106. package/src/slim-select/select.test.ts +155 -0
  107. package/src/slim-select/select.ts +280 -107
  108. package/src/slim-select/settings.ts +68 -0
  109. package/src/slim-select/slimselect.scss +263 -278
  110. package/src/slim-select/store.test.ts +220 -0
  111. package/src/slim-select/store.ts +320 -0
  112. package/src/slim-select/tsconfig.json +11 -5
  113. package/src/vue/slimselect.vue +61 -0
  114. package/tsconfig.json +10 -29
  115. package/vite.config.ts +18 -0
  116. package/.browserslistrc +0 -4
  117. package/.postcssrc.js +0 -5
  118. package/.travis.yml +0 -22
  119. package/babel.config.js +0 -5
  120. package/dist/config.d.ts +0 -83
  121. package/dist/data.d.ts +0 -50
  122. package/dist/slim.d.ts +0 -50
  123. package/dist/slimselect.min.css +0 -1
  124. package/dist/slimselect.min.js +0 -1
  125. package/dist/slimselect.min.mjs +0 -1
  126. package/docs/css/app.d5840d21.css +0 -1
  127. package/docs/css/chunk-vendors.4db6930d.css +0 -1
  128. package/docs/css/home.57020178.css +0 -1
  129. package/docs/css/install.baa5d3fb.css +0 -1
  130. package/docs/css/methods.728c742a.css +0 -1
  131. package/docs/css/options.b28a32ef.css +0 -1
  132. package/docs/css/selects.1a7e1e6a.css +0 -1
  133. package/docs/js/app.db13c724.js +0 -2
  134. package/docs/js/app.db13c724.js.map +0 -1
  135. package/docs/js/chunk-vendors.cc40aa28.js +0 -28
  136. package/docs/js/chunk-vendors.cc40aa28.js.map +0 -1
  137. package/docs/js/home.8bcb44fd.js +0 -2
  138. package/docs/js/home.8bcb44fd.js.map +0 -1
  139. package/docs/js/install.02f31028.js +0 -2
  140. package/docs/js/install.02f31028.js.map +0 -1
  141. package/docs/js/methods.1b31e988.js +0 -11
  142. package/docs/js/methods.1b31e988.js.map +0 -1
  143. package/docs/js/options.39fe1005.js +0 -2
  144. package/docs/js/options.39fe1005.js.map +0 -1
  145. package/docs/js/selects.f4d0b859.js +0 -2
  146. package/docs/js/selects.f4d0b859.js.map +0 -1
  147. package/src/docs/pages/methods.vue +0 -427
  148. package/src/docs/pages/options.vue +0 -1480
  149. package/src/main.ts +0 -29
  150. package/src/shims-vue.d.ts +0 -8
  151. package/src/slim-select/config.ts +0 -118
  152. package/src/slim-select/data.ts +0 -377
  153. package/src/slim-select/slim.ts +0 -770
  154. package/tslint.json +0 -26
  155. package/vue.config.js +0 -23
@@ -1,427 +0,0 @@
1
- <script lang="ts">
2
- import Vue from 'vue'
3
- import SlimSelect from '@/slim-select'
4
- import Chance from 'chance'
5
- const chance = new Chance()
6
-
7
- export default Vue.extend({
8
- data() {
9
- return {
10
- selectedSingle: null as any,
11
- selectedSingleValue: '',
12
- selectedMultiple: null as any,
13
- selectedMultipleValue: '',
14
- setSingle: null as any,
15
- setMultiple: null as any,
16
- setDataSingle: null as any,
17
- setDataMultiple: null as any,
18
- setSearchSingle: null as any,
19
- setSearchMultiple: null as any,
20
- setSearchTextSingle: null as any,
21
- setEnableSingle: null as any,
22
- setEnableMultiple: null as any,
23
- setOpenCloseSingle: null as any,
24
- setOpenCloseMultiple: null as any,
25
- setDestroySingle: null as any,
26
- setDestroyMultiple: null as any
27
- }
28
- },
29
- mounted() {
30
- // Selected
31
- this.selectedSingle = new SlimSelect({
32
- select: '#selectedSingle'
33
- })
34
- this.selectedMultiple = new SlimSelect({
35
- select: '#selectedMultiple'
36
- })
37
-
38
- // Set
39
- this.setSingle = new SlimSelect({
40
- select: '#setSingle'
41
- })
42
- this.setMultiple = new SlimSelect({
43
- select: '#setMultiple'
44
- })
45
-
46
- // Set Data
47
- this.setDataSingle = new SlimSelect({
48
- select: '#setDataSingle'
49
- })
50
- this.setDataMultiple = new SlimSelect({
51
- select: '#setDataMultiple'
52
- })
53
- this.setData()
54
-
55
- // Search
56
- this.setSearchSingle = new SlimSelect({
57
- select: '#setSearchSingle'
58
- })
59
- this.setSearchMultiple = new SlimSelect({
60
- select: '#setSearchMultiple'
61
- })
62
-
63
- // setSearchText
64
- this.setSearchTextSingle = new SlimSelect({
65
- select: '#setSearchTextSingle'
66
- })
67
- this.setSearchTextSingle.setSearchText('Sorry No Results Here!!!')
68
-
69
- // Enable / Disable
70
- this.setEnableSingle = new SlimSelect({
71
- select: '#setEnableSingle'
72
- })
73
- this.setEnableMultiple = new SlimSelect({
74
- select: '#setEnableMultiple'
75
- })
76
-
77
- // Open / Close
78
- this.setOpenCloseSingle = new SlimSelect({
79
- select: '#setOpenCloseSingle'
80
- // Optional callbacks
81
- // beforeOpen() { console.log('beforeOpen') },
82
- // afterOpen() { console.log('afterOpen') },
83
- // beforeClose() { console.log('beforeClose') },
84
- // afterClose() { console.log('afterClose') }
85
- })
86
- this.setOpenCloseMultiple = new SlimSelect({
87
- select: '#setOpenCloseMultiple'
88
- // Optional callbacks
89
- // beforeOpen() { console.log('beforeOpen') },
90
- // afterOpen() { console.log('afterOpen') },
91
- // beforeClose() { console.log('beforeClose') },
92
- // afterClose() { console.log('afterClose') }
93
- })
94
-
95
- // Destroy
96
- this.setDestroySingle = new SlimSelect({
97
- select: '#setDestroySingle'
98
- })
99
- this.setDestroyMultiple = new SlimSelect({
100
- select: '#setDestroyMultiple'
101
- })
102
- },
103
- methods: {
104
- getSelected() {
105
- this.selectedSingleValue = this.selectedSingle.selected()
106
- this.selectedMultipleValue = this.selectedMultiple.selected()
107
- },
108
- setValue() {
109
- this.setSingle.set('value2')
110
- this.setMultiple.set(['value2', 'value3'])
111
- },
112
- setData() {
113
- const values = []
114
- for (let i = 0; i < 10; i++) {
115
- values.push({
116
- text: chance.first() + ' ' + chance.last(),
117
- selected: chance.bool()
118
- })
119
- }
120
- this.setDataSingle.setData(values)
121
- this.setDataMultiple.setData(values)
122
- },
123
- setSearch() {
124
- setTimeout(() => {
125
- this.setSearchSingle.open()
126
- this.setSearchSingle.search('value 2')
127
- this.setSearchMultiple.open()
128
- this.setSearchMultiple.search('value 2')
129
- }, 100)
130
- },
131
- setEnable() {
132
- this.setEnableSingle.enable()
133
- this.setEnableMultiple.enable()
134
- },
135
- setDisable() {
136
- this.setEnableSingle.disable()
137
- this.setEnableMultiple.disable()
138
- },
139
- setOpenClose() {
140
- if (!this.setOpenCloseSingle.data.contentOpen) {
141
- this.setOpenCloseSingle.open()
142
- this.setOpenCloseMultiple.open()
143
- }
144
- },
145
- setCreate() {
146
- this.setDestroySingle = new SlimSelect({
147
- select: '#setDestroySingle'
148
- })
149
-
150
- this.setDestroyMultiple = new SlimSelect({
151
- select: '#setDestroyMultiple'
152
- })
153
- },
154
- setDestroy() {
155
- this.setDestroySingle.destroy()
156
- this.setDestroyMultiple.destroy()
157
-
158
- }
159
- }
160
- })
161
- </script>
162
-
163
- <style lang="scss">
164
- #methods-content {
165
- .set-content {
166
- display: flex;
167
-
168
- > * {
169
- margin: 0 5px 0 0;
170
-
171
- &:last-child { margin: 0 0 0 5px; }
172
- }
173
- }
174
- }
175
- </style>
176
-
177
- <template>
178
- <div id="methods-content">
179
- <div class="content selectedSelects">
180
- <h2 class="header">selected</h2>
181
- <p>
182
- The selected method will return a string or array of the currently selected values
183
- </p>
184
-
185
- <div class="set-content">
186
- <div class="btn" @click="getSelected">Get Selected</div>
187
- <select id="selectedSingle">
188
- <option value="value1">Value 1</option>
189
- <option value="value2">Value 2</option>
190
- <option value="value3">Value 3</option>
191
- </select>
192
- <select id="selectedMultiple" multiple>
193
- <option value="value1">Value 1</option>
194
- <option value="value2">Value 2</option>
195
- <option value="value3">Value 3</option>
196
- </select>
197
- </div>
198
- <div v-if="selectedSingleValue !== ''" style="padding: 8px 0 8px 0;">
199
- <div><b>Single Select Value:</b> {{selectedSingleValue}}</div>
200
- <div><b>Multi Select Value:</b> {{selectedMultipleValue}}</div>
201
- </div>
202
- <pre>
203
- <code class="language-javascript">
204
- var select = new SlimSelect({
205
- select: '#select'
206
- })
207
- select.selected() // Will return a string or an array of string values
208
- </code>
209
- </pre>
210
- </div>
211
-
212
- <div class="content">
213
- <h2 class="header">set</h2>
214
- <p>
215
- The set method will take a value and update the original select as well
216
- slim select. The value can either be a string or an array of strings
217
- depending on if its a single or multi select.
218
- </p>
219
-
220
- <div class="set-content">
221
- <div class="btn" @click="setValue">Set Value</div>
222
- <select id="setSingle">
223
- <option value="value1">Value 1</option>
224
- <option value="value2">Value 2</option>
225
- <option value="value3">Value 3</option>
226
- </select>
227
- <select id="setMultiple" multiple>
228
- <option value="value1">Value 1</option>
229
- <option value="value2">Value 2</option>
230
- <option value="value3">Value 3</option>
231
- </select>
232
- </div>
233
- <pre>
234
- <code class="language-javascript">
235
- var select = new SlimSelect({
236
- select: '#select'
237
- })
238
- select.set('value')
239
- // or
240
- select.set(['value1', 'value2'])
241
- </code>
242
- </pre>
243
- </div>
244
-
245
- <div class="content">
246
- <h2 class="header">setData</h2>
247
- <p>
248
- The setData method can take in an array of objects. This will set the options
249
- of the original select and rerender slim select.
250
- </p>
251
- <p>To get a better break down of possible data options see <router-link to="/options">options/data</router-link></p>
252
-
253
- <div class="set-content">
254
- <div class="btn" @click="setData">Set Data</div>
255
- <select id="setDataSingle"></select>
256
- <select id="setDataMultiple" multiple></select>
257
- </div>
258
- <pre>
259
- <code class="language-javascript">
260
- var select = new SlimSelect({
261
- select: '#select'
262
- })
263
-
264
- // Array of objects - Must have at least text value
265
- select.setData([
266
- {text: 'value1'},
267
- {text: 'value2'}
268
- ])
269
- </code>
270
- </pre>
271
- </div>
272
-
273
- <div class="content">
274
- <h2 class="header">search</h2>
275
- <p>
276
- The search method will update the search input field and search the data with the given value.
277
- </p>
278
-
279
- <div class="set-content">
280
- <div class="btn" @click="setSearch">Set Search</div>
281
- <select id="setSearchSingle">
282
- <option value="value1">Value 1</option>
283
- <option value="value2">Value 2</option>
284
- <option value="value3">Value 3</option>
285
- </select>
286
- <select id="setSearchMultiple" multiple>
287
- <option value="value1">Value 1</option>
288
- <option value="value2">Value 2</option>
289
- <option value="value3">Value 3</option>
290
- </select>
291
- </div>
292
- <pre>
293
- <code class="language-javascript">
294
- var select = new SlimSelect({
295
- select: '#select'
296
- })
297
- select.search('value')
298
- </code>
299
- </pre>
300
- </div>
301
-
302
- <div class="content">
303
- <h2 class="header">setSearchText</h2>
304
- <p>
305
- The setSearchText method will update the search text value.
306
- </p>
307
-
308
- <div class="set-content">
309
- <select id="setSearchTextSingle">
310
- <option value="value1">Value 1</option>
311
- <option value="value2">Value 2</option>
312
- <option value="value3">Value 3</option>
313
- </select>
314
- </div>
315
- <pre>
316
- <code class="language-javascript">
317
- var select = new SlimSelect({
318
- select: '#select'
319
- })
320
- select.setSearch('Sorry No Results Here!!!')
321
- </code>
322
- </pre>
323
- </div>
324
-
325
- <div class="content">
326
- <h2 class="header">disable / enable</h2>
327
- <p>
328
- These methods will enable or disable the select dropdown.
329
- <br />
330
- You may also set disabled on your original select and slim-select will pick that up.
331
- </p>
332
-
333
- <div class="set-content">
334
- <div class="btn" @click="setEnable" v-if="setEnableSingle && !setEnableSingle.config.isEnabled">Enable</div>
335
- <div class="btn" @click="setDisable" v-else>Disable</div>
336
-
337
- <select id="setEnableSingle" disabled>
338
- <option value="value1">Value 1</option>
339
- <option value="value2">Value 2</option>
340
- <option value="value3">Value 3</option>
341
- </select>
342
- <select id="setEnableMultiple" multiple disabled>
343
- <option value="value1">Value 1</option>
344
- <option value="value2">Value 2</option>
345
- <option value="value3">Value 3</option>
346
- </select>
347
- </div>
348
- <pre>
349
- <code class="language-javascript">
350
- var select = new SlimSelect({
351
- select: '#select'
352
- })
353
- select.enable()
354
- // or
355
- select.disable()
356
- </code>
357
- </pre>
358
- </div>
359
-
360
- <div class="content">
361
- <h2 class="header">open / close</h2>
362
- <p>
363
- The open/close methods will do just that.
364
- </p>
365
-
366
- <div class="set-content">
367
- <div class="btn" @click="setOpenClose">Open/Close</div>
368
- <select id="setOpenCloseSingle">
369
- <option value="value1">Value 1</option>
370
- <option value="value2">Value 2</option>
371
- <option value="value3">Value 3</option>
372
- </select>
373
- <select id="setOpenCloseMultiple" multiple>
374
- <option value="value1">Value 1</option>
375
- <option value="value2">Value 2</option>
376
- <option value="value3">Value 3</option>
377
- </select>
378
- </div>
379
- <pre>
380
- <code class="language-javascript">
381
- var select = new SlimSelect({
382
- select: '#select',
383
-
384
- // Optional callbacks
385
- beforeOpen: function () { console.log('beforeOpen')},
386
- afterOpen: function () { console.log('afterOpen')},
387
- beforeClose: function () { console.log('beforeClose')},
388
- afterClose: function () { console.log('afterClose')}
389
- })
390
- select.open()
391
- // or
392
- select.close()
393
- </code>
394
- </pre>
395
- </div>
396
-
397
- <div class="content">
398
- <h2 class="header">destroy</h2>
399
- <p>
400
- The destroy method will remove slim-select and display your original select.
401
- </p>
402
-
403
- <div class="set-content">
404
- <div class="btn" @click="setCreate">Create</div>
405
- <div class="btn" @click="setDestroy">Destroy</div>
406
- <select id="setDestroySingle">
407
- <option value="value1">Value 1</option>
408
- <option value="value2">Value 2</option>
409
- <option value="value3">Value 3</option>
410
- </select>
411
- <select id="setDestroyMultiple" multiple>
412
- <option value="value1">Value 1</option>
413
- <option value="value2">Value 2</option>
414
- <option value="value3">Value 3</option>
415
- </select>
416
- </div>
417
- <pre>
418
- <code class="language-javascript">
419
- var select = new SlimSelect({
420
- select: '#select'
421
- })
422
- select.destroy()
423
- </code>
424
- </pre>
425
- </div>
426
- </div>
427
- </template>