vgapp 0.5.8 → 0.6.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 (62) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/app/modules/base-module.js +10 -0
  3. package/app/modules/vgalert/index.js +0 -2
  4. package/app/modules/vgdropdown/index.js +0 -1
  5. package/app/modules/vgdropdown/js/vgdropdown.js +11 -10
  6. package/app/modules/vgformsender/index.js +0 -1
  7. package/app/modules/vglawcookie/index.js +0 -1
  8. package/app/modules/vgmodal/index.js +0 -1
  9. package/app/modules/vgmodal/scss/vgmodal.scss +0 -1
  10. package/app/modules/vgnav/!old/!vgnav.js +510 -0
  11. package/app/modules/vgnav/!old/scss/_breakpoints.scss +127 -0
  12. package/app/modules/vgnav/!old/scss/_hamburger.scss +62 -0
  13. package/app/modules/vgnav/!old/scss/_placement.scss +70 -0
  14. package/app/modules/vgnav/!old/scss/_toggle.scss +20 -0
  15. package/app/modules/vgnav/!old/scss/_variables.scss +70 -0
  16. package/app/modules/vgnav/!old/scss/vgnav.scss +164 -0
  17. package/app/modules/vgnav/index.js +0 -1
  18. package/app/modules/vgnav/js/vgnav.js +136 -254
  19. package/app/modules/vgnav/scss/_placement.scss +1 -1
  20. package/app/modules/vgnav/scss/_variables.scss +18 -18
  21. package/app/modules/vgnav/scss/vgnav.scss +13 -10
  22. package/app/modules/vgrollup/index.js +0 -1
  23. package/app/modules/vgselect/index.js +0 -1
  24. package/app/modules/vgselect/js/vgselect.js +9 -1
  25. package/app/modules/vgsidebar/index.js +0 -1
  26. package/app/modules/vgtabs/index.js +0 -1
  27. package/app/modules/vgtoast/index.js +0 -1
  28. package/app/utils/js/components/placement.js +58 -1
  29. package/build/vgapp.css +1508 -20
  30. package/build/vgapp.css.map +1 -1
  31. package/build/vgapp.js +30 -3
  32. package/build/vgapp.js.map +1 -1
  33. package/index.js +0 -4
  34. package/index.scss +38 -0
  35. package/package.json +1 -1
  36. package/webpack.config.js +1 -1
  37. package/app/modules/vgalert/scss/vgalert.css +0 -83
  38. package/app/modules/vgalert/scss/vgalert.css.map +0 -1
  39. package/app/modules/vgdatatable/index.js +0 -4
  40. package/app/modules/vgdatatable/js/vgdatatable.js +0 -146
  41. package/app/modules/vgdatatable/scss/_variables.scss +0 -19
  42. package/app/modules/vgdatatable/scss/vgdatatable.scss +0 -72
  43. package/app/modules/vgdropdown/scss/vgdropdown.css +0 -47
  44. package/app/modules/vgdropdown/scss/vgdropdown.css.map +0 -1
  45. package/app/modules/vgformsender/scss/vgformsender.css +0 -13
  46. package/app/modules/vgformsender/scss/vgformsender.css.map +0 -1
  47. package/app/modules/vglawcookie/scss/vglawcookie.css +0 -87
  48. package/app/modules/vglawcookie/scss/vglawcookie.css.map +0 -1
  49. package/app/modules/vgmodal/scss/vgmodal.css +0 -3824
  50. package/app/modules/vgmodal/scss/vgmodal.css.map +0 -1
  51. package/app/modules/vgnav/scss/vgnav.css +0 -312
  52. package/app/modules/vgnav/scss/vgnav.css.map +0 -1
  53. package/app/modules/vgrollup/scss/vgrollup.css +0 -44
  54. package/app/modules/vgrollup/scss/vgrollup.css.map +0 -1
  55. package/app/modules/vgselect/scss/vgselect.css +0 -256
  56. package/app/modules/vgselect/scss/vgselect.css.map +0 -1
  57. package/app/modules/vgsidebar/scss/vgsidebar.css +0 -86
  58. package/app/modules/vgsidebar/scss/vgsidebar.css.map +0 -1
  59. package/app/modules/vgtoast/scss/vgtoast.css +0 -133
  60. package/app/modules/vgtoast/scss/vgtoast.css.map +0 -1
  61. package/app/utils/js/components/responsive.js +0 -83
  62. package/build/vgapp.js.LICENSE.txt +0 -1
@@ -309,7 +309,7 @@ class VGSelect extends BaseModule {
309
309
  clearTimeout(observerTimout);
310
310
  observerTimout = setTimeout(() => {
311
311
  VGSelect.build(select, true);
312
- }, 100);
312
+ }, 10);
313
313
  });
314
314
 
315
315
  observer.observe(select, {
@@ -379,6 +379,14 @@ class VGSelect extends BaseModule {
379
379
  static changeSelector(select, value, data = {}) {
380
380
  if (!isObject(data) && isEmptyObj(data)) return;
381
381
 
382
+ [... select.options].forEach(el => {
383
+ Manipulator.remove(el, 'selected');
384
+
385
+ if (el.value === value) {
386
+ Manipulator.set(el, 'selected', true);
387
+ }
388
+ })
389
+
382
390
  select.value = normalizeData(value);
383
391
  EventHandler.trigger(select, EVENT_KEY_CHANGE, {data: data});
384
392
  EventHandler.trigger(select, 'change', {data: data});
@@ -1,4 +1,3 @@
1
- import './scss/vgsidebar.scss';
2
1
  import VGSidebar from "./js/vgsidebar";
3
2
 
4
3
  export default VGSidebar;
@@ -1,4 +1,3 @@
1
- import './scss/vgtabs.scss'
2
1
  import VGTabs from "./js/vgtabs";
3
2
 
4
3
  export default VGTabs;
@@ -1,4 +1,3 @@
1
- import './scss/vgtoast.scss'
2
1
  import VGToast from "./js/vgtoast";
3
2
 
4
3
  export default VGToast;
@@ -1,16 +1,60 @@
1
1
  import {mergeDeepObject, normalizeData} from "../functions";
2
+ import Selectors from "../dom/selectors";
2
3
 
3
4
  /**
4
5
  * Класс Placement, определяет и устанавливает местоположение элемента на странице.
5
- * TODO класс не дописан
6
+ * TODO класс не дописан, не определяет сверху и снизу
6
7
  */
7
8
 
9
+ const CLASS_NAME_RIGHT = 'right';
10
+ const CLASS_NAME_LEFT = 'left';
11
+
8
12
  class Placement {
9
13
  constructor(arg = {}) {
10
14
  this.params = mergeDeepObject({
11
15
  element: null,
12
16
  drop: null
13
17
  }, arg);
18
+
19
+ this._drop = null;
20
+ this.drop = this.params.drop;
21
+
22
+ this._element = null;
23
+ this.element = this.params.element;
24
+ }
25
+
26
+ get drop() {
27
+ return this._drop;
28
+ }
29
+
30
+ set drop(el) {
31
+ if (!el) return;
32
+ this._drop = el;
33
+ }
34
+
35
+ get element() {
36
+ return this._element;
37
+ }
38
+
39
+ set element(el) {
40
+ if (!el) {
41
+ if (this.drop) {
42
+ this._element = this.drop.parentNode;
43
+ }
44
+ }
45
+
46
+ this._element = el;
47
+ }
48
+
49
+ _setPlacement() {
50
+ this.drop.classList.remove(CLASS_NAME_RIGHT);
51
+ this.drop.classList.remove(CLASS_NAME_LEFT);
52
+
53
+ if (this._isElementInViewport(this.drop)) {
54
+ this.drop.classList.add(CLASS_NAME_LEFT);
55
+ } else {
56
+ this.drop.classList.add(CLASS_NAME_RIGHT);
57
+ }
14
58
  }
15
59
 
16
60
  _getPlacement() {
@@ -54,6 +98,19 @@ class Placement {
54
98
  left: left
55
99
  }
56
100
  }
101
+
102
+ _isElementInViewport(element) {
103
+ const rect = element.getBoundingClientRect();
104
+ const viewportWidth = window.innerWidth || document.documentElement.clientWidth;
105
+ const viewportHeight = window.innerHeight || document.documentElement.clientHeight;
106
+
107
+ return (
108
+ rect.top >= 0 &&
109
+ rect.left >= 0 &&
110
+ rect.bottom <= viewportHeight &&
111
+ rect.right <= viewportWidth
112
+ );
113
+ }
57
114
  }
58
115
 
59
116
  export default Placement;