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.
- package/.nvmrc +1 -0
- package/.prettierrc +6 -0
- package/.vscode/extensions.json +3 -0
- package/.vscode/settings.json +15 -5
- package/README.md +2 -1
- package/dist/helper.d.ts +1 -4
- package/dist/index.d.ts +38 -58
- package/dist/render.d.ts +109 -0
- package/dist/select.d.ts +31 -20
- package/dist/settings.d.ts +33 -0
- package/dist/slimselect.cjs.js +2 -0
- package/dist/slimselect.cjs.js.map +1 -0
- package/dist/slimselect.css +1 -2
- package/dist/slimselect.css.map +1 -0
- package/dist/slimselect.es.js +2 -0
- package/dist/slimselect.es.js.map +1 -0
- package/dist/slimselect.global.js +2 -0
- package/dist/slimselect.global.js.map +1 -0
- package/dist/slimselect.js +2 -1956
- package/dist/slimselect.js.map +1 -0
- package/dist/slimselect.umd.js +2 -0
- package/dist/slimselect.umd.js.map +1 -0
- package/dist/store.d.ts +71 -0
- package/docs/assets/check-mark.svg +6 -0
- package/docs/assets/data.js +59 -0
- package/docs/assets/home.css +1 -0
- package/docs/assets/home.js +1 -0
- package/docs/assets/index.css +1 -0
- package/docs/assets/index.js +16 -0
- package/docs/assets/index2.js +274 -0
- package/docs/assets/index3.js +126 -0
- package/docs/assets/index4.js +60 -0
- package/docs/assets/install.js +34 -0
- package/docs/assets/selects.js +55 -0
- package/docs/index.html +18 -5
- package/docs.go +3 -1
- package/index.html +16 -0
- package/jest.config.js +7 -0
- package/package.json +39 -39
- package/src/docs/app.vue +185 -76
- package/src/docs/assets/scss/_variables.scss +26 -10
- package/src/docs/assets/scss/alert.scss +12 -0
- package/src/docs/assets/scss/animations.scss +5 -3
- package/src/docs/assets/scss/button.scss +21 -0
- package/src/docs/assets/scss/index.scss +8 -6
- package/src/docs/assets/scss/input.scss +2 -2
- package/src/docs/assets/scss/layout.scss +195 -65
- package/src/docs/assets/scss/misc.scss +144 -34
- package/src/docs/assets/scss/prism.scss +155 -153
- package/src/docs/env.d.ts +12 -0
- package/src/docs/images/check-mark.svg +6 -0
- package/src/docs/images/chrome.svg +22 -0
- package/src/docs/images/firefox.svg +58 -0
- package/src/docs/images/github.png +0 -0
- package/src/docs/images/ie.svg +11 -0
- package/src/docs/images/npm.png +0 -0
- package/src/docs/images/opera.svg +15 -0
- package/src/docs/images/safari.svg +22 -0
- package/src/docs/main.ts +27 -0
- package/src/docs/pages/data.vue +130 -0
- package/src/docs/pages/events/addable.vue +79 -0
- package/src/docs/pages/events/before_after_change.vue +140 -0
- package/src/docs/pages/events/before_after_open_close.vue +122 -0
- package/src/docs/pages/events/error.vue +59 -0
- package/src/docs/pages/events/index.vue +33 -0
- package/src/docs/pages/events/search.vue +154 -0
- package/src/docs/pages/events/search_filter.vue +45 -0
- package/src/docs/pages/home.vue +96 -116
- package/src/docs/pages/install.vue +47 -74
- package/src/docs/pages/methods/destroy.vue +66 -0
- package/src/docs/pages/methods/enable_disable.vue +70 -0
- package/src/docs/pages/methods/get_data.vue +81 -0
- package/src/docs/pages/methods/get_selected.vue +78 -0
- package/src/docs/pages/methods/index.vue +36 -0
- package/src/docs/pages/methods/open_close.vue +63 -0
- package/src/docs/pages/methods/search.vue +62 -0
- package/src/docs/pages/methods/set_data.vue +106 -0
- package/src/docs/pages/methods/set_selected.vue +70 -0
- package/src/docs/pages/selects.vue +108 -114
- package/src/docs/pages/settings/always_open.vue +88 -0
- package/src/docs/pages/settings/close_on_select.vue +69 -0
- package/src/docs/pages/settings/content_location.vue +64 -0
- package/src/docs/pages/settings/content_position.vue +86 -0
- package/src/docs/pages/settings/css.vue +73 -0
- package/src/docs/pages/settings/data_attributes.vue +39 -0
- package/src/docs/pages/settings/deselect.vue +69 -0
- package/src/docs/pages/settings/display.vue +88 -0
- package/src/docs/pages/settings/hide_selected.vue +73 -0
- package/src/docs/pages/settings/html.vue +86 -0
- package/src/docs/pages/settings/index.vue +73 -0
- package/src/docs/pages/settings/mandatory.vue +91 -0
- package/src/docs/pages/settings/min_max.vue +61 -0
- package/src/docs/pages/settings/open_position.vue +60 -0
- package/src/docs/pages/settings/placeholder.vue +72 -0
- package/src/docs/pages/settings/search.vue +140 -0
- package/src/docs/pages/settings/select.vue +32 -0
- package/src/docs/pages/settings/select_by_group.vue +46 -0
- package/src/docs/pages/settings/show_tooltip.vue +44 -0
- package/src/docs/pages/settings/styles.vue +51 -0
- package/src/docs/router.ts +41 -13
- package/src/slim-select/helper.ts +25 -86
- package/src/slim-select/index.ts +318 -413
- package/src/slim-select/render.test.ts +39 -0
- package/src/slim-select/render.ts +1129 -0
- package/src/slim-select/rollup.config.mjs +39 -0
- package/src/slim-select/select.test.ts +155 -0
- package/src/slim-select/select.ts +280 -107
- package/src/slim-select/settings.ts +68 -0
- package/src/slim-select/slimselect.scss +263 -278
- package/src/slim-select/store.test.ts +220 -0
- package/src/slim-select/store.ts +320 -0
- package/src/slim-select/tsconfig.json +11 -5
- package/src/vue/slimselect.vue +61 -0
- package/tsconfig.json +10 -29
- package/vite.config.ts +18 -0
- package/.browserslistrc +0 -4
- package/.postcssrc.js +0 -5
- package/.travis.yml +0 -22
- package/babel.config.js +0 -5
- package/dist/config.d.ts +0 -83
- package/dist/data.d.ts +0 -50
- package/dist/slim.d.ts +0 -50
- package/dist/slimselect.min.css +0 -1
- package/dist/slimselect.min.js +0 -1
- package/dist/slimselect.min.mjs +0 -1
- package/docs/css/app.d5840d21.css +0 -1
- package/docs/css/chunk-vendors.4db6930d.css +0 -1
- package/docs/css/home.57020178.css +0 -1
- package/docs/css/install.baa5d3fb.css +0 -1
- package/docs/css/methods.728c742a.css +0 -1
- package/docs/css/options.b28a32ef.css +0 -1
- package/docs/css/selects.1a7e1e6a.css +0 -1
- package/docs/js/app.db13c724.js +0 -2
- package/docs/js/app.db13c724.js.map +0 -1
- package/docs/js/chunk-vendors.cc40aa28.js +0 -28
- package/docs/js/chunk-vendors.cc40aa28.js.map +0 -1
- package/docs/js/home.8bcb44fd.js +0 -2
- package/docs/js/home.8bcb44fd.js.map +0 -1
- package/docs/js/install.02f31028.js +0 -2
- package/docs/js/install.02f31028.js.map +0 -1
- package/docs/js/methods.1b31e988.js +0 -11
- package/docs/js/methods.1b31e988.js.map +0 -1
- package/docs/js/options.39fe1005.js +0 -2
- package/docs/js/options.39fe1005.js.map +0 -1
- package/docs/js/selects.f4d0b859.js +0 -2
- package/docs/js/selects.f4d0b859.js.map +0 -1
- package/src/docs/pages/methods.vue +0 -427
- package/src/docs/pages/options.vue +0 -1480
- package/src/main.ts +0 -29
- package/src/shims-vue.d.ts +0 -8
- package/src/slim-select/config.ts +0 -118
- package/src/slim-select/data.ts +0 -377
- package/src/slim-select/slim.ts +0 -770
- package/tslint.json +0 -26
- package/vue.config.js +0 -23
package/src/docs/pages/home.vue
CHANGED
|
@@ -1,53 +1,81 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import
|
|
3
|
-
import SlimSelect from '@/slim-select'
|
|
2
|
+
import { defineComponent } from 'vue'
|
|
4
3
|
|
|
5
|
-
|
|
4
|
+
import SlimSelect from '../../slim-select'
|
|
5
|
+
|
|
6
|
+
export default defineComponent({
|
|
7
|
+
name: 'Home',
|
|
6
8
|
mounted() {
|
|
7
|
-
new SlimSelect({
|
|
8
|
-
select:
|
|
9
|
+
const single = new SlimSelect({
|
|
10
|
+
select: this.$refs.slimSingle as HTMLSelectElement,
|
|
9
11
|
})
|
|
10
|
-
new SlimSelect({
|
|
11
|
-
select:
|
|
12
|
+
const multiple = new SlimSelect({
|
|
13
|
+
select: this.$refs.slimMulti as HTMLSelectElement,
|
|
12
14
|
})
|
|
13
|
-
|
|
15
|
+
|
|
16
|
+
setTimeout(() => {
|
|
17
|
+
single.open()
|
|
18
|
+
setTimeout(() => {
|
|
19
|
+
single.setSelected('best')
|
|
20
|
+
}, 500)
|
|
21
|
+
setTimeout(() => {
|
|
22
|
+
single.setSelected('select')
|
|
23
|
+
}, 1000)
|
|
24
|
+
setTimeout(() => {
|
|
25
|
+
single.setSelected('ever')
|
|
26
|
+
}, 1500)
|
|
27
|
+
setTimeout(() => {
|
|
28
|
+
single.close()
|
|
29
|
+
}, 2000)
|
|
30
|
+
|
|
31
|
+
multiple.open()
|
|
32
|
+
setTimeout(() => {
|
|
33
|
+
multiple.setSelected(['best'])
|
|
34
|
+
}, 500)
|
|
35
|
+
setTimeout(() => {
|
|
36
|
+
multiple.setSelected(['best', 'select'])
|
|
37
|
+
}, 1000)
|
|
38
|
+
setTimeout(() => {
|
|
39
|
+
multiple.setSelected(['best', 'select', 'ever'])
|
|
40
|
+
}, 1500)
|
|
41
|
+
setTimeout(() => {
|
|
42
|
+
multiple.close()
|
|
43
|
+
}, 2000)
|
|
44
|
+
}, 500)
|
|
45
|
+
},
|
|
14
46
|
})
|
|
15
47
|
</script>
|
|
16
48
|
|
|
17
49
|
<style lang="scss">
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
50
|
+
#home {
|
|
51
|
+
.samples {
|
|
52
|
+
display: flex;
|
|
53
|
+
justify-content: space-between;
|
|
54
|
+
gap: var(--spacing);
|
|
55
|
+
|
|
56
|
+
.single {
|
|
57
|
+
flex: 1 1 50%;
|
|
58
|
+
}
|
|
59
|
+
.multi {
|
|
60
|
+
flex: 1 1 50%;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
22
63
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
.single {
|
|
27
|
-
flex: 1 1 50%;
|
|
28
|
-
padding: 0 10px 0 0;
|
|
64
|
+
.callouts {
|
|
65
|
+
display: flex;
|
|
66
|
+
padding: 20px 0 0 0;
|
|
29
67
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
.multi {
|
|
35
|
-
flex: 1 1 50%;
|
|
36
|
-
padding: 0 0 0 10px;
|
|
68
|
+
.features {
|
|
69
|
+
flex: 1 1 auto;
|
|
70
|
+
display: flex;
|
|
71
|
+
flex-direction: column;
|
|
37
72
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
73
|
+
.header {
|
|
74
|
+
padding: 0 0 var(--spacing) 0;
|
|
41
75
|
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.callouts {
|
|
45
|
-
padding: 20px 0 0 0;
|
|
46
|
-
display: flex;
|
|
47
|
-
justify-content: space-around;
|
|
48
76
|
|
|
49
|
-
.
|
|
50
|
-
|
|
77
|
+
.row {
|
|
78
|
+
justify-content: space-around;
|
|
51
79
|
|
|
52
80
|
.list {
|
|
53
81
|
display: flex;
|
|
@@ -62,7 +90,7 @@ export default Vue.extend({
|
|
|
62
90
|
align-items: center;
|
|
63
91
|
padding: 0 0 5px 0;
|
|
64
92
|
font-weight: bold;
|
|
65
|
-
font-size:
|
|
93
|
+
font-size: 20px;
|
|
66
94
|
|
|
67
95
|
img {
|
|
68
96
|
width: 20px;
|
|
@@ -71,56 +99,28 @@ export default Vue.extend({
|
|
|
71
99
|
}
|
|
72
100
|
}
|
|
73
101
|
}
|
|
74
|
-
|
|
75
|
-
.browsers {
|
|
76
|
-
flex: 0 1 50%;
|
|
77
|
-
|
|
78
|
-
.list {
|
|
79
|
-
display: flex;
|
|
80
|
-
flex-direction: row;
|
|
81
|
-
flex-wrap: wrap;
|
|
82
|
-
justify-content: center;
|
|
83
|
-
|
|
84
|
-
.browser {
|
|
85
|
-
display: flex;
|
|
86
|
-
flex-direction: column;
|
|
87
|
-
width: 80px;
|
|
88
|
-
padding: 0 16px 0 16px;
|
|
89
|
-
|
|
90
|
-
img {
|
|
91
|
-
height: 80px;
|
|
92
|
-
width: 80px;
|
|
93
|
-
margin: 0 auto;
|
|
94
|
-
padding: 0 0 8px 0;
|
|
95
|
-
}
|
|
96
|
-
.version {
|
|
97
|
-
text-align: center;
|
|
98
|
-
font-size: 22px;
|
|
99
|
-
font-weight: bold;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
102
|
}
|
|
105
103
|
}
|
|
104
|
+
}
|
|
106
105
|
</style>
|
|
107
106
|
|
|
108
107
|
<template>
|
|
109
|
-
<div id="home
|
|
110
|
-
<div class="samples">
|
|
108
|
+
<div id="home" class="content">
|
|
109
|
+
<div class="samples row">
|
|
111
110
|
<div class="single">
|
|
112
111
|
<h2>Single Select</h2>
|
|
113
|
-
<select
|
|
112
|
+
<select ref="slimSingle">
|
|
113
|
+
<option data-placeholder="true"></option>
|
|
114
114
|
<option value="best">Best</option>
|
|
115
|
-
<option value="select"
|
|
115
|
+
<option value="select">Select</option>
|
|
116
116
|
<option value="ever">Ever</option>
|
|
117
117
|
</select>
|
|
118
118
|
</div>
|
|
119
119
|
<div class="multi">
|
|
120
120
|
<h2>Multi Select</h2>
|
|
121
|
-
<select
|
|
121
|
+
<select ref="slimMulti" multiple>
|
|
122
122
|
<option value="best">Best</option>
|
|
123
|
-
<option value="select"
|
|
123
|
+
<option value="select">Select</option>
|
|
124
124
|
<option value="ever">Ever</option>
|
|
125
125
|
</select>
|
|
126
126
|
</div>
|
|
@@ -129,52 +129,32 @@ export default Vue.extend({
|
|
|
129
129
|
<div class="callouts">
|
|
130
130
|
<div class="features">
|
|
131
131
|
<div class="header"><h2>Features</h2></div>
|
|
132
|
-
<ul class="list">
|
|
133
|
-
<li><img src="images/check-mark.svg" /> No Dependencies</li>
|
|
134
|
-
<li><img src="images/check-mark.svg" /> 20kb - 5kb gzip</li>
|
|
135
|
-
<li><img src="images/check-mark.svg" /> Single Select</li>
|
|
136
|
-
<li><img src="images/check-mark.svg" /> Multiple Select</li>
|
|
137
|
-
<li><img src="images/check-mark.svg" /> Addable Options</li>
|
|
138
|
-
<li><img src="images/check-mark.svg" /> Html Options</li>
|
|
139
|
-
<li><img src="images/check-mark.svg" /> Settable Data</li>
|
|
140
|
-
<li><img src="images/check-mark.svg" /> Callback Events</li>
|
|
141
|
-
<li><img src="images/check-mark.svg" /> Placeholders</li>
|
|
142
|
-
<li><img src="images/check-mark.svg" /> Search</li>
|
|
143
|
-
<li><img src="images/check-mark.svg" /> Disable Options</li>
|
|
144
|
-
<li><img src="images/check-mark.svg" /> Light Css</li>
|
|
145
|
-
<li><img src="images/check-mark.svg" /> Light Color Scheme</li>
|
|
146
|
-
<li><img src="images/check-mark.svg" /> Style Inheritance</li>
|
|
147
|
-
<li><img src="images/check-mark.svg" /> Clean Animations</li>
|
|
148
|
-
<li><img src="images/check-mark.svg" /> Performant</li>
|
|
149
|
-
</ul>
|
|
150
|
-
</div>
|
|
151
132
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
<img src="images/
|
|
157
|
-
<
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
<img src="images/
|
|
161
|
-
<
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
<
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
<img src="images/
|
|
169
|
-
<
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
<img src="images/
|
|
173
|
-
<
|
|
174
|
-
</
|
|
133
|
+
<div class="row">
|
|
134
|
+
<ul class="list">
|
|
135
|
+
<li><img src="../images/check-mark.svg" /> No Dependencies</li>
|
|
136
|
+
<li><img src="../images/check-mark.svg" /> ~30kb - ~5kb gzip</li>
|
|
137
|
+
<li><img src="../images/check-mark.svg" /> Single Select</li>
|
|
138
|
+
<li><img src="../images/check-mark.svg" /> Multiple Select</li>
|
|
139
|
+
<li><img src="../images/check-mark.svg" /> Addable Options</li>
|
|
140
|
+
<li><img src="../images/check-mark.svg" /> Html Options</li>
|
|
141
|
+
<li><img src="../images/check-mark.svg" /> Settable Data</li>
|
|
142
|
+
<li><img src="../images/check-mark.svg" /> Callback Events</li>
|
|
143
|
+
<li><img src="../images/check-mark.svg" /> Placeholders</li>
|
|
144
|
+
</ul>
|
|
145
|
+
<ul class="list">
|
|
146
|
+
<li><img src="../images/check-mark.svg" /> Advanced Search</li>
|
|
147
|
+
<li><img src="../images/check-mark.svg" /> Tabbable</li>
|
|
148
|
+
<li><img src="../images/check-mark.svg" /> Disable Options</li>
|
|
149
|
+
<li><img src="../images/check-mark.svg" /> Light Css</li>
|
|
150
|
+
<li><img src="../images/check-mark.svg" /> Light Color Scheme</li>
|
|
151
|
+
<li><img src="../images/check-mark.svg" /> Style Inheritance</li>
|
|
152
|
+
<li><img src="../images/check-mark.svg" /> Clean Animations</li>
|
|
153
|
+
<li><img src="../images/check-mark.svg" /> Performant</li>
|
|
154
|
+
<li><img src="../images/check-mark.svg" /> Typescript</li>
|
|
155
|
+
</ul>
|
|
175
156
|
</div>
|
|
176
157
|
</div>
|
|
177
158
|
</div>
|
|
178
|
-
|
|
179
159
|
</div>
|
|
180
160
|
</template>
|
|
@@ -1,68 +1,29 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import download from 'downloadjs'
|
|
3
|
+
import { defineComponent } from 'vue'
|
|
4
|
+
import packageJson from '../../../package.json'
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
},
|
|
11
|
-
methods: {
|
|
12
|
-
download() {
|
|
13
|
-
function A(blob) {
|
|
14
|
-
const a = document.createElement('a')
|
|
15
|
-
document.body.appendChild(a)
|
|
16
|
-
a.style = 'display: none'
|
|
17
|
-
|
|
18
|
-
const url = window.URL.createObjectURL(blob)
|
|
19
|
-
a.href = url
|
|
20
|
-
a.download = 'slimselect.js'
|
|
21
|
-
a.click()
|
|
22
|
-
window.URL.revokeObjectURL(url)
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
const xhr = new XMLHttpRequest()
|
|
26
|
-
xhr.open('GET', `https://cdnjs.cloudflare.com/ajax/libs/slim-select/${this.version}/slimselect.min.js`)
|
|
27
|
-
xhr.responseType = 'blob'
|
|
28
|
-
xhr.onload = () => { A(this.response, 'filename') }
|
|
29
|
-
xhr.send()
|
|
30
|
-
}
|
|
6
|
+
export default defineComponent({
|
|
7
|
+
name: 'Install',
|
|
8
|
+
data: () => {
|
|
9
|
+
return {
|
|
10
|
+
version: packageJson.version,
|
|
31
11
|
}
|
|
32
|
-
}
|
|
12
|
+
},
|
|
13
|
+
methods: {
|
|
14
|
+
downloadLink() {
|
|
15
|
+
download(`https://cdnjs.cloudflare.com/ajax/libs/slim-select/${this.version}/slimselect.min.js`)
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
})
|
|
33
19
|
</script>
|
|
34
20
|
|
|
35
|
-
<style lang="scss">
|
|
36
|
-
#install-content {
|
|
37
|
-
.npm-content {
|
|
38
|
-
padding: 0 0 30px 0;
|
|
39
|
-
|
|
40
|
-
.install-code {
|
|
41
|
-
max-width: 200px;
|
|
42
|
-
margin-left: auto;
|
|
43
|
-
margin-right: auto;
|
|
44
|
-
}
|
|
45
|
-
.example-code {
|
|
46
|
-
max-width: 310px;
|
|
47
|
-
margin: 0 auto;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
.cdn-content {
|
|
52
|
-
.example-code {
|
|
53
|
-
max-width: 220px;
|
|
54
|
-
margin-left: auto;
|
|
55
|
-
margin-right: auto;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
</style>
|
|
60
|
-
|
|
61
21
|
<template>
|
|
62
|
-
<div id="install
|
|
63
|
-
|
|
64
|
-
<div class="npm-content">
|
|
22
|
+
<div id="install" class="contents">
|
|
23
|
+
<div id="npm" class="content">
|
|
65
24
|
<h2>Npm</h2>
|
|
25
|
+
<p>Most common usage is npm</p>
|
|
26
|
+
|
|
66
27
|
<pre class="install-code">
|
|
67
28
|
<code class="language-bash">
|
|
68
29
|
npm install slim-select
|
|
@@ -74,34 +35,46 @@
|
|
|
74
35
|
import SlimSelect from 'slim-select'
|
|
75
36
|
|
|
76
37
|
new SlimSelect({
|
|
77
|
-
select: '#
|
|
38
|
+
select: '#selectElement'
|
|
78
39
|
})
|
|
79
40
|
</code>
|
|
80
41
|
</pre>
|
|
81
42
|
</div>
|
|
82
43
|
|
|
83
|
-
<div class="
|
|
44
|
+
<div id="cdn" class="content">
|
|
84
45
|
<h2>Cdn</h2>
|
|
46
|
+
<p>Cdn has a url link you can grab.</p>
|
|
47
|
+
<div class="alert info">New releases may be delayed until the next time its indexed</div>
|
|
48
|
+
|
|
85
49
|
<pre class="install-code">
|
|
86
50
|
<code class="language-html">
|
|
87
|
-
<
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
51
|
+
<html>
|
|
52
|
+
<head>
|
|
53
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/slim-select/{{version}}/slimselect.min.js"></script>
|
|
54
|
+
<link href="https://cdnjs.cloudflare.com/ajax/libs/slim-select/{{version}}/slimselect.min.css" rel="stylesheet"></link>
|
|
55
|
+
|
|
56
|
+
<script>
|
|
57
|
+
new SlimSelect({
|
|
58
|
+
select: '#selectElement'
|
|
59
|
+
})
|
|
60
|
+
<script>
|
|
61
|
+
</head>
|
|
62
|
+
<body>
|
|
63
|
+
<select id="selectElement">
|
|
64
|
+
<option>Option 1</option>
|
|
65
|
+
<option>Option 2</option>
|
|
66
|
+
<option>Option 3</option>
|
|
67
|
+
</select>
|
|
68
|
+
</body>
|
|
69
|
+
</html>
|
|
97
70
|
</code>
|
|
98
71
|
</pre>
|
|
99
72
|
</div>
|
|
100
73
|
|
|
101
|
-
<div class="
|
|
74
|
+
<div id="download" class="content">
|
|
102
75
|
<h2>Download</h2>
|
|
103
|
-
<
|
|
76
|
+
<p>Download the latest minified version of slim select</p>
|
|
77
|
+
<div class="btn" @click="downloadLink()">Click Here To Download</div>
|
|
104
78
|
</div>
|
|
105
|
-
|
|
106
79
|
</div>
|
|
107
80
|
</template>
|
|
@@ -0,0 +1,66 @@
|
|
|
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>
|
|
@@ -0,0 +1,70 @@
|
|
|
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>
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { defineComponent } from 'vue'
|
|
3
|
+
|
|
4
|
+
import SlimSelect, { DataArray } from '../../../slim-select'
|
|
5
|
+
|
|
6
|
+
export default defineComponent({
|
|
7
|
+
name: 'GetData',
|
|
8
|
+
data() {
|
|
9
|
+
return {
|
|
10
|
+
getDataOptions: null as SlimSelect | null,
|
|
11
|
+
getDataOptionsValue: [] as DataArray,
|
|
12
|
+
getDataOptgroups: null as SlimSelect | null,
|
|
13
|
+
getDataOptgroupsValue: [] as DataArray,
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
mounted() {
|
|
17
|
+
this.getDataOptions = new SlimSelect({
|
|
18
|
+
select: this.$refs.getDataOptions as HTMLSelectElement,
|
|
19
|
+
})
|
|
20
|
+
this.getDataOptgroups = new SlimSelect({
|
|
21
|
+
select: this.$refs.getDataOptgroups as HTMLSelectElement,
|
|
22
|
+
})
|
|
23
|
+
},
|
|
24
|
+
methods: {
|
|
25
|
+
getData() {
|
|
26
|
+
this.getDataOptionsValue = this.getDataOptions!.getData()
|
|
27
|
+
this.getDataOptgroupsValue = this.getDataOptgroups!.getData()
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
})
|
|
31
|
+
</script>
|
|
32
|
+
|
|
33
|
+
<template>
|
|
34
|
+
<div id="getData" class="content">
|
|
35
|
+
<h2 class="header">getData</h2>
|
|
36
|
+
<p>The getData method will return an array of the full data set.</p>
|
|
37
|
+
|
|
38
|
+
<div class="row">
|
|
39
|
+
<div class="btn" @click="getData">Get Data</div>
|
|
40
|
+
|
|
41
|
+
<div>
|
|
42
|
+
<select ref="getDataOptions">
|
|
43
|
+
<option value="value1">Value 1</option>
|
|
44
|
+
<option value="value2">Value 2</option>
|
|
45
|
+
<option value="value3">Value 3</option>
|
|
46
|
+
</select>
|
|
47
|
+
<div class="pad-t-m pad-b-m" v-if="getDataOptionsValue.length">
|
|
48
|
+
<b>Option Data:</b> {{ getDataOptionsValue }}
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
<div>
|
|
53
|
+
<select ref="getDataOptgroups" multiple>
|
|
54
|
+
<optgroup label="Group 1">
|
|
55
|
+
<option value="value1">Value 1</option>
|
|
56
|
+
<option value="value2">Value 2</option>
|
|
57
|
+
<option value="value3">Value 3</option>
|
|
58
|
+
</optgroup>
|
|
59
|
+
<optgroup label="Group 2">
|
|
60
|
+
<option value="value4">Value 4</option>
|
|
61
|
+
<option value="value5">Value 5</option>
|
|
62
|
+
<option value="value6">Value 6</option>
|
|
63
|
+
</optgroup>
|
|
64
|
+
</select>
|
|
65
|
+
<div class="pad-t-m pad-b-m" v-if="getDataOptgroupsValue.length">
|
|
66
|
+
<b>Optgroup Data:</b> {{ getDataOptgroupsValue }}
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
|
|
71
|
+
<pre>
|
|
72
|
+
<code class="language-javascript">
|
|
73
|
+
var select = new SlimSelect({
|
|
74
|
+
select: '#selectElement'
|
|
75
|
+
})
|
|
76
|
+
var data = select.getData() // Will return an array of options and optgroups
|
|
77
|
+
console.log(data)
|
|
78
|
+
</code>
|
|
79
|
+
</pre>
|
|
80
|
+
</div>
|
|
81
|
+
</template>
|