slim-select 2.0.2 → 2.1.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 (45) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/render.d.ts +1 -1
  3. package/dist/slimselect.cjs.js +54 -16
  4. package/dist/slimselect.es.js +54 -16
  5. package/dist/slimselect.global.js +54 -16
  6. package/dist/slimselect.js +54 -16
  7. package/dist/slimselect.min.js +1 -1
  8. package/dist/slimselect.umd.js +54 -16
  9. package/dist/slimselect.umd.min.js +1 -1
  10. package/docs/assets/index.css +1 -1
  11. package/docs/assets/index.js +7 -7
  12. package/docs/assets/index3.js +25 -16
  13. package/docs/assets/index5.js +145 -9
  14. package/docs/assets/install.js +4 -4
  15. package/package.json +11 -3
  16. package/src/docs/app.vue +4 -4
  17. package/src/docs/{images → assets/images}/check-mark.svg +0 -0
  18. package/src/docs/{images → assets/images}/chrome.svg +0 -0
  19. package/src/docs/{images → assets/images}/firefox.svg +0 -0
  20. package/src/docs/{images → assets/images}/github.png +0 -0
  21. package/src/docs/{images → assets/images}/ie.svg +0 -0
  22. package/src/docs/{images → assets/images}/npm.png +0 -0
  23. package/src/docs/{images → assets/images}/opera.svg +0 -0
  24. package/src/docs/{images → assets/images}/safari.svg +0 -0
  25. package/src/docs/assets/scss/misc.scss +7 -0
  26. package/src/docs/env.d.ts +1 -0
  27. package/src/docs/pages/events/addable.vue +22 -6
  28. package/src/docs/pages/events/before_after_change.vue +15 -1
  29. package/src/docs/pages/events/search.vue +2 -1
  30. package/src/docs/pages/frameworks/vue.vue +373 -7
  31. package/src/docs/pages/home.vue +18 -18
  32. package/src/docs/pages/methods/get_data.vue +2 -1
  33. package/src/docs/pages/methods/open_close.vue +1 -1
  34. package/src/slim-select/index.ts +1 -1
  35. package/src/slim-select/render.ts +83 -25
  36. package/src/slim-select/rollup.config.mjs +5 -0
  37. package/src/slim-select/select.ts +14 -5
  38. package/src/vue/dist/slimselectvue.es.js +1655 -0
  39. package/src/vue/dist/slimselectvue.global.js +1658 -0
  40. package/src/vue/dist/slimselectvue.ssr.js +1657 -0
  41. package/src/vue/hello.ts +5 -0
  42. package/src/vue/package.json +27 -0
  43. package/src/vue/rollup.config.mjs +44 -0
  44. package/src/vue/slimselect.vue +39 -5
  45. package/src/vue/tsconfig.json +14 -0
@@ -18,6 +18,7 @@ export default [
18
18
  resolve(),
19
19
  commonjs(),
20
20
  babel({
21
+ babelHelpers: 'bundled',
21
22
  exclude: 'node_modules/**',
22
23
  babelrc: false,
23
24
  presets: [
@@ -54,6 +55,7 @@ export default [
54
55
  resolve(),
55
56
  commonjs(),
56
57
  babel({
58
+ babelHelpers: 'bundled',
57
59
  exclude: 'node_modules/**',
58
60
  }),
59
61
  ],
@@ -79,6 +81,7 @@ export default [
79
81
  resolve(),
80
82
  commonjs(),
81
83
  babel({
84
+ babelHelpers: 'bundled',
82
85
  exclude: 'node_modules/**',
83
86
  }),
84
87
  terser(),
@@ -97,6 +100,7 @@ export default [
97
100
  resolve(),
98
101
  commonjs(),
99
102
  babel({
103
+ babelHelpers: 'bundled',
100
104
  exclude: 'node_modules/**',
101
105
  }),
102
106
  ],
@@ -115,6 +119,7 @@ export default [
115
119
  resolve(),
116
120
  commonjs(),
117
121
  babel({
122
+ babelHelpers: 'bundled',
118
123
  exclude: 'node_modules/**',
119
124
  }),
120
125
  ],
@@ -1,5 +1,5 @@
1
1
  import { generateID, kebabCase } from './helpers'
2
- import { DataArray, DataObject, Optgroup, Option } from './store'
2
+ import { DataArray, Optgroup, Option } from './store'
3
3
 
4
4
  export default class Select {
5
5
  public select: HTMLSelectElement
@@ -86,7 +86,11 @@ export default class Select {
86
86
 
87
87
  private observeWrapper(mutations: MutationRecord[]): void {
88
88
  if (this.onSelectChange) {
89
+ // Just in case this triggers a change in the select
90
+ // we want to stop listening to it while we run onSelectChange
91
+ this.changeListen(false)
89
92
  this.onSelectChange(this.getData())
93
+ this.changeListen(true)
90
94
  }
91
95
  }
92
96
 
@@ -99,16 +103,21 @@ export default class Select {
99
103
  }
100
104
 
101
105
  // If anything changes in the select then update the data
102
- this.observer = new MutationObserver(this.observeWrapper)
106
+ this.observer = new MutationObserver(this.observeWrapper.bind(this))
103
107
  }
104
108
 
109
+ // Start observing the select
105
110
  private connectObserver(): void {
106
111
  if (this.observer) {
107
112
  this.observer.observe(this.select, {
108
- attributes: true,
113
+ // For now we only care about if the children change
109
114
  childList: true,
110
- characterData: true,
111
- subtree: true,
115
+
116
+ // We dont care about attributes for now
117
+ // might need to add this later
118
+ // attributes: true,
119
+ // characterData: true,
120
+ // subtree: true,
112
121
  })
113
122
  }
114
123
  }