slim-select 1.27.1 → 2.0.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.
- package/.github/ISSUE_TEMPLATE/issue-report.md +3 -3
- package/.nvmrc +1 -0
- package/.prettierrc +6 -0
- package/.vscode/extensions.json +3 -0
- package/.vscode/settings.json +15 -5
- package/README.md +17 -19
- 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 -1970
- 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 -35
- package/src/docs/app.vue +196 -73
- 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 +131 -117
- package/src/docs/pages/install.vue +51 -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 +317 -420
- package/src/slim-select/render.test.ts +39 -0
- package/src/slim-select/render.ts +1129 -0
- package/src/slim-select/rollup.config.mjs +40 -0
- package/src/slim-select/select.test.ts +155 -0
- package/src/slim-select/select.ts +280 -108
- 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.fa8199af.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.238ee382.js +0 -2
- package/docs/js/app.238ee382.js.map +0 -1
- package/docs/js/chunk-vendors.5125e3d8.js +0 -21
- package/docs/js/chunk-vendors.5125e3d8.js.map +0 -1
- package/docs/js/home.e7b28581.js +0 -2
- package/docs/js/home.e7b28581.js.map +0 -1
- package/docs/js/install.d4300783.js +0 -2
- package/docs/js/install.d4300783.js.map +0 -1
- package/docs/js/methods.fa1608f1.js +0 -11
- package/docs/js/methods.fa1608f1.js.map +0 -1
- package/docs/js/options.2c4ceb87.js +0 -2
- package/docs/js/options.2c4ceb87.js.map +0 -1
- package/docs/js/selects.1eeba693.js +0 -2
- package/docs/js/selects.1eeba693.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 -775
- package/src/slim-select/webpack.config.js +0 -73
- package/tslint.json +0 -26
- package/vue.config.js +0 -23
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { generateID } from './helper'
|
|
2
|
+
|
|
3
|
+
export type SettingsPartial = Partial<Settings>
|
|
4
|
+
|
|
5
|
+
export default class Settings {
|
|
6
|
+
public id: string = '' // Primary ID for the select
|
|
7
|
+
public style: string = '' // Style attribute from the select element
|
|
8
|
+
public class: string[] = [] // Class attribute from the select element
|
|
9
|
+
|
|
10
|
+
// Dynamic settings
|
|
11
|
+
public isMultiple: boolean = false
|
|
12
|
+
public isOpen: boolean = false
|
|
13
|
+
public triggerFocus: boolean = true
|
|
14
|
+
public intervalMove: NodeJS.Timeout | null = null
|
|
15
|
+
|
|
16
|
+
// Fields set from constructor
|
|
17
|
+
public mainHeight: number = 30
|
|
18
|
+
public contentHeight: number = 0
|
|
19
|
+
public isEnabled: boolean
|
|
20
|
+
public alwaysOpen: boolean
|
|
21
|
+
public showSearch: boolean
|
|
22
|
+
public searchPlaceholder: string
|
|
23
|
+
public searchText: string
|
|
24
|
+
public searchingText: string
|
|
25
|
+
public searchHighlight: boolean
|
|
26
|
+
public closeOnSelect: boolean
|
|
27
|
+
public contentLocation: HTMLElement
|
|
28
|
+
public contentPosition: 'relative' | 'absolute'
|
|
29
|
+
public openPosition: 'auto' | 'up' | 'down'
|
|
30
|
+
public placeholderText: string
|
|
31
|
+
public allowDeselect: boolean
|
|
32
|
+
public hideSelected: boolean
|
|
33
|
+
public showOptionTooltips: boolean
|
|
34
|
+
public selectByGroup: boolean
|
|
35
|
+
public minSelected: number
|
|
36
|
+
public maxSelected: number
|
|
37
|
+
public timeoutDelay: number
|
|
38
|
+
|
|
39
|
+
constructor(settings?: SettingsPartial) {
|
|
40
|
+
if (!settings) {
|
|
41
|
+
settings = {}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
this.id = 'ss-' + generateID()
|
|
45
|
+
this.style = settings.style || ''
|
|
46
|
+
this.class = settings.class || []
|
|
47
|
+
|
|
48
|
+
this.isEnabled = settings.isEnabled !== undefined ? settings.isEnabled : true
|
|
49
|
+
this.alwaysOpen = settings.alwaysOpen !== undefined ? settings.alwaysOpen : false
|
|
50
|
+
this.showSearch = settings.showSearch !== undefined ? settings.showSearch : true
|
|
51
|
+
this.searchPlaceholder = settings.searchPlaceholder || 'Search'
|
|
52
|
+
this.searchText = settings.searchText || 'No Results'
|
|
53
|
+
this.searchingText = settings.searchingText || 'Searching...'
|
|
54
|
+
this.searchHighlight = settings.searchHighlight !== undefined ? settings.searchHighlight : false
|
|
55
|
+
this.closeOnSelect = settings.closeOnSelect !== undefined ? settings.closeOnSelect : true
|
|
56
|
+
this.contentLocation = settings.contentLocation || document.body
|
|
57
|
+
this.contentPosition = settings.contentPosition || 'absolute'
|
|
58
|
+
this.openPosition = settings.openPosition || 'auto' // options: auto, up, down
|
|
59
|
+
this.placeholderText = settings.placeholderText || 'Select Value'
|
|
60
|
+
this.allowDeselect = settings.allowDeselect !== undefined ? settings.allowDeselect : false
|
|
61
|
+
this.hideSelected = settings.hideSelected !== undefined ? settings.hideSelected : false
|
|
62
|
+
this.showOptionTooltips = settings.showOptionTooltips !== undefined ? settings.showOptionTooltips : false
|
|
63
|
+
this.selectByGroup = settings.selectByGroup !== undefined ? settings.selectByGroup : false
|
|
64
|
+
this.minSelected = settings.minSelected || 0
|
|
65
|
+
this.maxSelected = settings.maxSelected || 1000
|
|
66
|
+
this.timeoutDelay = settings.timeoutDelay || 200
|
|
67
|
+
}
|
|
68
|
+
}
|