vrembem 1.38.0 → 1.40.2
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/dev/scripts.esm.js +441 -358
- package/dev/scripts.esm.js.map +1 -1
- package/dev/scripts.js +441 -358
- package/dev/scripts.js.map +1 -1
- package/dev/scripts.modern.js +360 -293
- package/dev/scripts.modern.js.map +1 -1
- package/dev/scripts.umd.js +441 -358
- package/dev/scripts.umd.js.map +1 -1
- package/dev/styles.css +25 -17
- package/dev/styles.css.map +1 -1
- package/dist/scripts.esm.js +1 -1
- package/dist/scripts.esm.js.map +1 -1
- package/dist/scripts.js +1 -1
- package/dist/scripts.js.map +1 -1
- package/dist/scripts.modern.js +1 -1
- package/dist/scripts.modern.js.map +1 -1
- package/dist/scripts.umd.js +1 -1
- package/dist/scripts.umd.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/package.json +26 -26
package/dev/scripts.esm.js
CHANGED
|
@@ -351,14 +351,6 @@ var closeTransition = function closeTransition(el, settings) {
|
|
|
351
351
|
});
|
|
352
352
|
};
|
|
353
353
|
|
|
354
|
-
var breakpoints = {
|
|
355
|
-
xs: '480px',
|
|
356
|
-
sm: '620px',
|
|
357
|
-
md: '760px',
|
|
358
|
-
lg: '990px',
|
|
359
|
-
xl: '1380px'
|
|
360
|
-
};
|
|
361
|
-
|
|
362
354
|
var index = {
|
|
363
355
|
__proto__: null,
|
|
364
356
|
setInert: setInert,
|
|
@@ -376,8 +368,7 @@ var index = {
|
|
|
376
368
|
removeClass: removeClass,
|
|
377
369
|
toggleClass: toggleClass,
|
|
378
370
|
openTransition: openTransition,
|
|
379
|
-
closeTransition: closeTransition
|
|
380
|
-
breakpoints: breakpoints
|
|
371
|
+
closeTransition: closeTransition
|
|
381
372
|
};
|
|
382
373
|
|
|
383
374
|
function _extends() {
|
|
@@ -495,7 +486,7 @@ var defaults$2 = {
|
|
|
495
486
|
selectorInert: null,
|
|
496
487
|
selectorOverflow: null,
|
|
497
488
|
// Feature toggles
|
|
498
|
-
breakpoints:
|
|
489
|
+
breakpoints: null,
|
|
499
490
|
customEventPrefix: 'drawer:',
|
|
500
491
|
eventListeners: true,
|
|
501
492
|
stateSave: true,
|
|
@@ -504,59 +495,11 @@ var defaults$2 = {
|
|
|
504
495
|
transition: true
|
|
505
496
|
};
|
|
506
497
|
|
|
507
|
-
var switchToDefault = function switchToDefault(drawerKey, obj) {
|
|
508
|
-
try {
|
|
509
|
-
// Initial guards
|
|
510
|
-
var drawer = obj.getDrawer(drawerKey);
|
|
511
|
-
if (!drawer) return Promise.resolve(obj.drawerNotFound(drawerKey));
|
|
512
|
-
if (!hasClass(drawer, obj.settings.classModal)) return Promise.resolve(); // Tear down modal state
|
|
513
|
-
|
|
514
|
-
setInert(false, obj.settings.selectorInert);
|
|
515
|
-
setOverflowHidden(false, obj.settings.selectorOverflow);
|
|
516
|
-
removeClass(drawer, obj.settings.classModal);
|
|
517
|
-
obj.focusTrap.destroy(); // Restore drawers saved state
|
|
518
|
-
|
|
519
|
-
drawerKey = drawer.getAttribute("data-" + obj.settings.dataDrawer);
|
|
520
|
-
var drawerState = obj.state[drawerKey];
|
|
521
|
-
|
|
522
|
-
if (drawerState == obj.settings.stateOpened) {
|
|
523
|
-
addClass(drawer, obj.settings.stateOpened);
|
|
524
|
-
removeClass(drawer, obj.settings.stateClosed);
|
|
525
|
-
} // Dispatch custom event
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
drawer.dispatchEvent(new CustomEvent(obj.settings.customEventPrefix + 'toDefault', {
|
|
529
|
-
bubbles: true
|
|
530
|
-
}));
|
|
531
|
-
return Promise.resolve(drawer);
|
|
532
|
-
} catch (e) {
|
|
533
|
-
return Promise.reject(e);
|
|
534
|
-
}
|
|
535
|
-
};
|
|
536
|
-
var switchToModal = function switchToModal(drawerKey, obj) {
|
|
537
|
-
try {
|
|
538
|
-
// Initial guards
|
|
539
|
-
var drawer = obj.getDrawer(drawerKey);
|
|
540
|
-
if (!drawer) return Promise.resolve(obj.drawerNotFound(drawerKey));
|
|
541
|
-
if (hasClass(drawer, obj.settings.classModal)) return Promise.resolve(); // Enable modal state
|
|
542
|
-
|
|
543
|
-
addClass(drawer, obj.settings.classModal);
|
|
544
|
-
addClass(drawer, obj.settings.stateClosed);
|
|
545
|
-
removeClass(drawer, obj.settings.stateOpened); // Dispatch custom event
|
|
546
|
-
|
|
547
|
-
drawer.dispatchEvent(new CustomEvent(obj.settings.customEventPrefix + 'toModal', {
|
|
548
|
-
bubbles: true
|
|
549
|
-
}));
|
|
550
|
-
return Promise.resolve(drawer);
|
|
551
|
-
} catch (e) {
|
|
552
|
-
return Promise.reject(e);
|
|
553
|
-
}
|
|
554
|
-
};
|
|
555
|
-
|
|
556
498
|
var Breakpoint = /*#__PURE__*/function () {
|
|
557
499
|
function Breakpoint(parent) {
|
|
558
500
|
this.mediaQueryLists = [];
|
|
559
501
|
this.parent = parent;
|
|
502
|
+
this.prefix = this.getVariablePrefix();
|
|
560
503
|
this.__check = this.check.bind(this);
|
|
561
504
|
}
|
|
562
505
|
|
|
@@ -569,7 +512,9 @@ var Breakpoint = /*#__PURE__*/function () {
|
|
|
569
512
|
drawers.forEach(function (drawer) {
|
|
570
513
|
var id = drawer.getAttribute("data-" + _this.parent.settings.dataDrawer);
|
|
571
514
|
var key = drawer.getAttribute("data-" + _this.parent.settings.dataBreakpoint);
|
|
572
|
-
|
|
515
|
+
|
|
516
|
+
var bp = _this.getBreakpoint(key);
|
|
517
|
+
|
|
573
518
|
var mql = window.matchMedia('(min-width:' + bp + ')');
|
|
574
519
|
|
|
575
520
|
_this.match(mql, drawer);
|
|
@@ -619,15 +564,80 @@ var Breakpoint = /*#__PURE__*/function () {
|
|
|
619
564
|
|
|
620
565
|
_proto.match = function match(mql, drawer) {
|
|
621
566
|
if (mql.matches) {
|
|
622
|
-
switchToDefault(drawer
|
|
567
|
+
this.parent.switchToDefault(drawer);
|
|
623
568
|
} else {
|
|
624
|
-
switchToModal(drawer
|
|
569
|
+
this.parent.switchToModal(drawer);
|
|
625
570
|
}
|
|
626
571
|
};
|
|
627
572
|
|
|
573
|
+
_proto.getBreakpoint = function getBreakpoint(key) {
|
|
574
|
+
var breakpoint = key;
|
|
575
|
+
|
|
576
|
+
if (this.parent.settings.breakpoints && this.parent.settings.breakpoints[key]) {
|
|
577
|
+
breakpoint = this.parent.settings.breakpoints[key];
|
|
578
|
+
} else if (getComputedStyle(document.body).getPropertyValue(this.prefix + key)) {
|
|
579
|
+
breakpoint = getComputedStyle(document.body).getPropertyValue(this.prefix + key);
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
return breakpoint;
|
|
583
|
+
};
|
|
584
|
+
|
|
585
|
+
_proto.getVariablePrefix = function getVariablePrefix() {
|
|
586
|
+
var prefix = '--';
|
|
587
|
+
prefix += getComputedStyle(document.body).getPropertyValue('--vrembem-variable-prefix');
|
|
588
|
+
prefix += 'breakpoint-';
|
|
589
|
+
return prefix;
|
|
590
|
+
};
|
|
591
|
+
|
|
628
592
|
return Breakpoint;
|
|
629
593
|
}();
|
|
630
594
|
|
|
595
|
+
function getDrawer(drawerKey) {
|
|
596
|
+
if (typeof drawerKey !== 'string') return drawerKey;
|
|
597
|
+
return document.querySelector("[data-" + this.settings.dataDrawer + "=\"" + drawerKey + "\"]");
|
|
598
|
+
}
|
|
599
|
+
function drawerNotFound(key) {
|
|
600
|
+
return Promise.reject(new Error("Did not find drawer with key: \"" + key + "\""));
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
var close$2 = function close(drawerKey) {
|
|
604
|
+
try {
|
|
605
|
+
var _this2 = this;
|
|
606
|
+
|
|
607
|
+
var drawer = _this2.getDrawer(drawerKey);
|
|
608
|
+
|
|
609
|
+
if (!drawer) return Promise.resolve(drawerNotFound(drawerKey));
|
|
610
|
+
|
|
611
|
+
if (hasClass(drawer, _this2.settings.stateOpened)) {
|
|
612
|
+
_this2.working = true;
|
|
613
|
+
|
|
614
|
+
if (hasClass(drawer, _this2.settings.classModal)) {
|
|
615
|
+
setInert(false, _this2.settings.selectorInert);
|
|
616
|
+
setOverflowHidden(false, _this2.settings.selectorOverflow);
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
return Promise.resolve(closeTransition(drawer, _this2.settings)).then(function () {
|
|
620
|
+
_this2.stateSave(drawer);
|
|
621
|
+
|
|
622
|
+
focusTrigger(_this2);
|
|
623
|
+
|
|
624
|
+
_this2.focusTrap.destroy();
|
|
625
|
+
|
|
626
|
+
drawer.dispatchEvent(new CustomEvent(_this2.settings.customEventPrefix + 'closed', {
|
|
627
|
+
detail: _this2,
|
|
628
|
+
bubbles: true
|
|
629
|
+
}));
|
|
630
|
+
_this2.working = false;
|
|
631
|
+
return drawer;
|
|
632
|
+
});
|
|
633
|
+
} else {
|
|
634
|
+
return Promise.resolve(drawer);
|
|
635
|
+
}
|
|
636
|
+
} catch (e) {
|
|
637
|
+
return Promise.reject(e);
|
|
638
|
+
}
|
|
639
|
+
};
|
|
640
|
+
|
|
631
641
|
function handlerClick$2(event) {
|
|
632
642
|
// Working catch
|
|
633
643
|
if (this.working) return; // Toggle data trigger
|
|
@@ -691,6 +701,48 @@ function handlerKeydown$2(event) {
|
|
|
691
701
|
}
|
|
692
702
|
}
|
|
693
703
|
|
|
704
|
+
var open$2 = function open(drawerKey) {
|
|
705
|
+
try {
|
|
706
|
+
var _this2 = this;
|
|
707
|
+
|
|
708
|
+
var drawer = _this2.getDrawer(drawerKey);
|
|
709
|
+
|
|
710
|
+
if (!drawer) return Promise.resolve(drawerNotFound(drawerKey));
|
|
711
|
+
|
|
712
|
+
if (!hasClass(drawer, _this2.settings.stateOpened)) {
|
|
713
|
+
_this2.working = true;
|
|
714
|
+
var isModal = hasClass(drawer, _this2.settings.classModal);
|
|
715
|
+
|
|
716
|
+
if (isModal) {
|
|
717
|
+
setOverflowHidden(true, _this2.settings.selectorOverflow);
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
return Promise.resolve(openTransition(drawer, _this2.settings)).then(function () {
|
|
721
|
+
_this2.stateSave(drawer);
|
|
722
|
+
|
|
723
|
+
if (isModal) {
|
|
724
|
+
_this2.focusTrap.init(drawer);
|
|
725
|
+
|
|
726
|
+
setInert(true, _this2.settings.selectorInert);
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
focusTarget(drawer, _this2.settings);
|
|
730
|
+
drawer.dispatchEvent(new CustomEvent(_this2.settings.customEventPrefix + 'opened', {
|
|
731
|
+
detail: _this2,
|
|
732
|
+
bubbles: true
|
|
733
|
+
}));
|
|
734
|
+
_this2.working = false;
|
|
735
|
+
return drawer;
|
|
736
|
+
});
|
|
737
|
+
} else {
|
|
738
|
+
focusTarget(drawer, _this2.settings);
|
|
739
|
+
return Promise.resolve(drawer);
|
|
740
|
+
}
|
|
741
|
+
} catch (e) {
|
|
742
|
+
return Promise.reject(e);
|
|
743
|
+
}
|
|
744
|
+
};
|
|
745
|
+
|
|
694
746
|
function stateSet(settings) {
|
|
695
747
|
// If save state is disabled
|
|
696
748
|
if (!settings.stateSave) return stateClear(settings); // If there isn't an existing state to set
|
|
@@ -735,6 +787,82 @@ function stateClear(settings) {
|
|
|
735
787
|
return {};
|
|
736
788
|
}
|
|
737
789
|
|
|
790
|
+
var switchToDefault = function switchToDefault(drawerKey) {
|
|
791
|
+
try {
|
|
792
|
+
var _this4 = this;
|
|
793
|
+
|
|
794
|
+
// Initial guards
|
|
795
|
+
var drawer = _this4.getDrawer(drawerKey);
|
|
796
|
+
|
|
797
|
+
if (!drawer) return Promise.resolve(drawerNotFound(drawerKey));
|
|
798
|
+
if (!hasClass(drawer, _this4.settings.classModal)) return Promise.resolve(); // Tear down modal state
|
|
799
|
+
|
|
800
|
+
setInert(false, _this4.settings.selectorInert);
|
|
801
|
+
setOverflowHidden(false, _this4.settings.selectorOverflow);
|
|
802
|
+
removeClass(drawer, _this4.settings.classModal);
|
|
803
|
+
|
|
804
|
+
_this4.focusTrap.destroy(); // Restore drawers saved state
|
|
805
|
+
|
|
806
|
+
|
|
807
|
+
drawerKey = drawer.getAttribute("data-" + _this4.settings.dataDrawer);
|
|
808
|
+
var drawerState = _this4.state[drawerKey];
|
|
809
|
+
|
|
810
|
+
if (drawerState == _this4.settings.stateOpened) {
|
|
811
|
+
addClass(drawer, _this4.settings.stateOpened);
|
|
812
|
+
removeClass(drawer, _this4.settings.stateClosed);
|
|
813
|
+
} // Dispatch custom event
|
|
814
|
+
|
|
815
|
+
|
|
816
|
+
drawer.dispatchEvent(new CustomEvent(_this4.settings.customEventPrefix + 'toDefault', {
|
|
817
|
+
bubbles: true
|
|
818
|
+
}));
|
|
819
|
+
return Promise.resolve(drawer);
|
|
820
|
+
} catch (e) {
|
|
821
|
+
return Promise.reject(e);
|
|
822
|
+
}
|
|
823
|
+
};
|
|
824
|
+
var switchToModal = function switchToModal(drawerKey) {
|
|
825
|
+
try {
|
|
826
|
+
var _this2 = this;
|
|
827
|
+
|
|
828
|
+
// Initial guards
|
|
829
|
+
var drawer = _this2.getDrawer(drawerKey);
|
|
830
|
+
|
|
831
|
+
if (!drawer) return Promise.resolve(drawerNotFound(drawerKey));
|
|
832
|
+
if (hasClass(drawer, _this2.settings.classModal)) return Promise.resolve(); // Enable modal state
|
|
833
|
+
|
|
834
|
+
addClass(drawer, _this2.settings.classModal);
|
|
835
|
+
addClass(drawer, _this2.settings.stateClosed);
|
|
836
|
+
removeClass(drawer, _this2.settings.stateOpened); // Dispatch custom event
|
|
837
|
+
|
|
838
|
+
drawer.dispatchEvent(new CustomEvent(_this2.settings.customEventPrefix + 'toModal', {
|
|
839
|
+
bubbles: true
|
|
840
|
+
}));
|
|
841
|
+
return Promise.resolve(drawer);
|
|
842
|
+
} catch (e) {
|
|
843
|
+
return Promise.reject(e);
|
|
844
|
+
}
|
|
845
|
+
};
|
|
846
|
+
|
|
847
|
+
var toggle = function toggle(drawerKey) {
|
|
848
|
+
try {
|
|
849
|
+
var _this2 = this;
|
|
850
|
+
|
|
851
|
+
var drawer = _this2.getDrawer(drawerKey);
|
|
852
|
+
|
|
853
|
+
if (!drawer) return Promise.resolve(drawerNotFound(drawerKey));
|
|
854
|
+
var isClosed = !hasClass(drawer, _this2.settings.stateOpened);
|
|
855
|
+
|
|
856
|
+
if (isClosed) {
|
|
857
|
+
return Promise.resolve(_this2.open(drawer));
|
|
858
|
+
} else {
|
|
859
|
+
return Promise.resolve(_this2.close(drawer));
|
|
860
|
+
}
|
|
861
|
+
} catch (e) {
|
|
862
|
+
return Promise.reject(e);
|
|
863
|
+
}
|
|
864
|
+
};
|
|
865
|
+
|
|
738
866
|
var Drawer = /*#__PURE__*/function () {
|
|
739
867
|
function Drawer(options) {
|
|
740
868
|
this.defaults = defaults$2;
|
|
@@ -801,19 +929,12 @@ var Drawer = /*#__PURE__*/function () {
|
|
|
801
929
|
*/
|
|
802
930
|
;
|
|
803
931
|
|
|
804
|
-
_proto.getDrawer = function getDrawer(drawerKey) {
|
|
805
|
-
|
|
806
|
-
return document.querySelector("[data-" + this.settings.dataDrawer + "=\"" + drawerKey + "\"]");
|
|
807
|
-
};
|
|
808
|
-
|
|
809
|
-
_proto.drawerNotFound = function drawerNotFound(key) {
|
|
810
|
-
return Promise.reject(new Error("Did not find drawer with key: \"" + key + "\""));
|
|
932
|
+
_proto.getDrawer = function getDrawer$1(drawerKey) {
|
|
933
|
+
return getDrawer.call(this, drawerKey);
|
|
811
934
|
};
|
|
812
935
|
|
|
813
936
|
_proto.setTabindex = function setTabindex$1() {
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
setTabindex(selectorTabindex);
|
|
937
|
+
return setTabindex("\n [data-" + this.settings.dataDrawer + "]\n [data-" + this.settings.dataDialog + "]\n ");
|
|
817
938
|
}
|
|
818
939
|
/**
|
|
819
940
|
* Save state functionality
|
|
@@ -841,114 +962,27 @@ var Drawer = /*#__PURE__*/function () {
|
|
|
841
962
|
;
|
|
842
963
|
|
|
843
964
|
_proto.switchToDefault = function switchToDefault$1(drawerKey) {
|
|
844
|
-
return switchToDefault(
|
|
965
|
+
return switchToDefault.call(this, drawerKey);
|
|
845
966
|
};
|
|
846
967
|
|
|
847
968
|
_proto.switchToModal = function switchToModal$1(drawerKey) {
|
|
848
|
-
return switchToModal(
|
|
969
|
+
return switchToModal.call(this, drawerKey);
|
|
849
970
|
}
|
|
850
971
|
/**
|
|
851
972
|
* Change state functionality
|
|
852
973
|
*/
|
|
853
974
|
;
|
|
854
975
|
|
|
855
|
-
_proto.toggle = function toggle(drawerKey) {
|
|
856
|
-
|
|
857
|
-
var _this2 = this;
|
|
858
|
-
|
|
859
|
-
var drawer = _this2.getDrawer(drawerKey);
|
|
860
|
-
|
|
861
|
-
if (!drawer) return Promise.resolve(_this2.drawerNotFound(drawerKey));
|
|
862
|
-
var isClosed = !hasClass(drawer, _this2.settings.stateOpened);
|
|
863
|
-
|
|
864
|
-
if (isClosed) {
|
|
865
|
-
return Promise.resolve(_this2.open(drawer));
|
|
866
|
-
} else {
|
|
867
|
-
return Promise.resolve(_this2.close(drawer));
|
|
868
|
-
}
|
|
869
|
-
} catch (e) {
|
|
870
|
-
return Promise.reject(e);
|
|
871
|
-
}
|
|
976
|
+
_proto.toggle = function toggle$1(drawerKey) {
|
|
977
|
+
return toggle.call(this, drawerKey);
|
|
872
978
|
};
|
|
873
979
|
|
|
874
980
|
_proto.open = function open(drawerKey) {
|
|
875
|
-
|
|
876
|
-
var _this4 = this;
|
|
877
|
-
|
|
878
|
-
var drawer = _this4.getDrawer(drawerKey);
|
|
879
|
-
|
|
880
|
-
if (!drawer) return Promise.resolve(_this4.drawerNotFound(drawerKey));
|
|
881
|
-
|
|
882
|
-
if (!hasClass(drawer, _this4.settings.stateOpened)) {
|
|
883
|
-
_this4.working = true;
|
|
884
|
-
var isModal = hasClass(drawer, _this4.settings.classModal);
|
|
885
|
-
|
|
886
|
-
if (isModal) {
|
|
887
|
-
setOverflowHidden(true, _this4.settings.selectorOverflow);
|
|
888
|
-
}
|
|
889
|
-
|
|
890
|
-
return Promise.resolve(openTransition(drawer, _this4.settings)).then(function () {
|
|
891
|
-
_this4.stateSave(drawer);
|
|
892
|
-
|
|
893
|
-
if (isModal) {
|
|
894
|
-
_this4.focusTrap.init(drawer);
|
|
895
|
-
|
|
896
|
-
setInert(true, _this4.settings.selectorInert);
|
|
897
|
-
}
|
|
898
|
-
|
|
899
|
-
focusTarget(drawer, _this4.settings);
|
|
900
|
-
drawer.dispatchEvent(new CustomEvent(_this4.settings.customEventPrefix + 'opened', {
|
|
901
|
-
detail: _this4,
|
|
902
|
-
bubbles: true
|
|
903
|
-
}));
|
|
904
|
-
_this4.working = false;
|
|
905
|
-
return drawer;
|
|
906
|
-
});
|
|
907
|
-
} else {
|
|
908
|
-
focusTarget(drawer, _this4.settings);
|
|
909
|
-
return Promise.resolve(drawer);
|
|
910
|
-
}
|
|
911
|
-
} catch (e) {
|
|
912
|
-
return Promise.reject(e);
|
|
913
|
-
}
|
|
981
|
+
return open$2.call(this, drawerKey);
|
|
914
982
|
};
|
|
915
983
|
|
|
916
984
|
_proto.close = function close(drawerKey) {
|
|
917
|
-
|
|
918
|
-
var _this6 = this;
|
|
919
|
-
|
|
920
|
-
var drawer = _this6.getDrawer(drawerKey);
|
|
921
|
-
|
|
922
|
-
if (!drawer) return Promise.resolve(_this6.drawerNotFound(drawerKey));
|
|
923
|
-
|
|
924
|
-
if (hasClass(drawer, _this6.settings.stateOpened)) {
|
|
925
|
-
_this6.working = true;
|
|
926
|
-
|
|
927
|
-
if (hasClass(drawer, _this6.settings.classModal)) {
|
|
928
|
-
setInert(false, _this6.settings.selectorInert);
|
|
929
|
-
setOverflowHidden(false, _this6.settings.selectorOverflow);
|
|
930
|
-
}
|
|
931
|
-
|
|
932
|
-
return Promise.resolve(closeTransition(drawer, _this6.settings)).then(function () {
|
|
933
|
-
_this6.stateSave(drawer);
|
|
934
|
-
|
|
935
|
-
focusTrigger(_this6);
|
|
936
|
-
|
|
937
|
-
_this6.focusTrap.destroy();
|
|
938
|
-
|
|
939
|
-
drawer.dispatchEvent(new CustomEvent(_this6.settings.customEventPrefix + 'closed', {
|
|
940
|
-
detail: _this6,
|
|
941
|
-
bubbles: true
|
|
942
|
-
}));
|
|
943
|
-
_this6.working = false;
|
|
944
|
-
return drawer;
|
|
945
|
-
});
|
|
946
|
-
} else {
|
|
947
|
-
return Promise.resolve(drawer);
|
|
948
|
-
}
|
|
949
|
-
} catch (e) {
|
|
950
|
-
return Promise.reject(e);
|
|
951
|
-
}
|
|
985
|
+
return close$2.call(this, drawerKey);
|
|
952
986
|
};
|
|
953
987
|
|
|
954
988
|
return Drawer;
|
|
@@ -982,6 +1016,40 @@ var defaults$1 = {
|
|
|
982
1016
|
transition: true
|
|
983
1017
|
};
|
|
984
1018
|
|
|
1019
|
+
var close$1 = function close(returnFocus) {
|
|
1020
|
+
if (returnFocus === void 0) {
|
|
1021
|
+
returnFocus = true;
|
|
1022
|
+
}
|
|
1023
|
+
|
|
1024
|
+
try {
|
|
1025
|
+
var _this2 = this;
|
|
1026
|
+
|
|
1027
|
+
var modal = document.querySelector("[data-" + _this2.settings.dataModal + "]." + _this2.settings.stateOpened);
|
|
1028
|
+
|
|
1029
|
+
if (modal) {
|
|
1030
|
+
_this2.working = true;
|
|
1031
|
+
setInert(false, _this2.settings.selectorInert);
|
|
1032
|
+
setOverflowHidden(false, _this2.settings.selectorOverflow);
|
|
1033
|
+
return Promise.resolve(closeTransition(modal, _this2.settings)).then(function () {
|
|
1034
|
+
if (returnFocus) focusTrigger(_this2);
|
|
1035
|
+
|
|
1036
|
+
_this2.focusTrap.destroy();
|
|
1037
|
+
|
|
1038
|
+
modal.dispatchEvent(new CustomEvent(_this2.settings.customEventPrefix + 'closed', {
|
|
1039
|
+
detail: _this2,
|
|
1040
|
+
bubbles: true
|
|
1041
|
+
}));
|
|
1042
|
+
_this2.working = false;
|
|
1043
|
+
return modal;
|
|
1044
|
+
});
|
|
1045
|
+
} else {
|
|
1046
|
+
return Promise.resolve(modal);
|
|
1047
|
+
}
|
|
1048
|
+
} catch (e) {
|
|
1049
|
+
return Promise.reject(e);
|
|
1050
|
+
}
|
|
1051
|
+
};
|
|
1052
|
+
|
|
985
1053
|
var handlerClick$1 = function handlerClick(event) {
|
|
986
1054
|
try {
|
|
987
1055
|
var _temp3 = function _temp3(_result) {
|
|
@@ -1043,21 +1111,76 @@ function handlerKeydown$1(event) {
|
|
|
1043
1111
|
}
|
|
1044
1112
|
}
|
|
1045
1113
|
|
|
1046
|
-
function
|
|
1047
|
-
|
|
1114
|
+
function getModal(modalKey) {
|
|
1115
|
+
if (typeof modalKey !== 'string') return modalKey;
|
|
1116
|
+
return document.querySelector("[data-" + this.settings.dataModal + "=\"" + modalKey + "\"]");
|
|
1117
|
+
}
|
|
1118
|
+
function modalNotFound(key) {
|
|
1119
|
+
return Promise.reject(new Error("Did not find modal with key: \"" + key + "\""));
|
|
1120
|
+
}
|
|
1121
|
+
function moveModals(type, ref) {
|
|
1122
|
+
if (type === void 0) {
|
|
1123
|
+
type = this.settings.moveModals.type;
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1126
|
+
if (ref === void 0) {
|
|
1127
|
+
ref = this.settings.moveModals.ref;
|
|
1128
|
+
}
|
|
1129
|
+
|
|
1130
|
+
var modals = document.querySelectorAll("[data-" + this.settings.dataModal + "]");
|
|
1131
|
+
if (modals.length) moveElement(modals, type, ref);
|
|
1132
|
+
}
|
|
1133
|
+
|
|
1134
|
+
function setInitialState() {
|
|
1135
|
+
var _this = this;
|
|
1136
|
+
|
|
1137
|
+
var modals = document.querySelectorAll("[data-" + this.settings.dataModal + "]");
|
|
1048
1138
|
modals.forEach(function (el) {
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1139
|
+
// Remove opened state setup
|
|
1140
|
+
if (el.classList.contains(_this.settings.stateOpened)) {
|
|
1141
|
+
setInert(false, _this.settings.selectorInert);
|
|
1142
|
+
setOverflowHidden(false, _this.settings.selectorOverflow);
|
|
1143
|
+
focusTrigger(_this);
|
|
1144
|
+
|
|
1145
|
+
_this.focusTrap.destroy();
|
|
1146
|
+
} // Remove all state classes and add the default state (closed)
|
|
1055
1147
|
|
|
1056
|
-
|
|
1057
|
-
|
|
1148
|
+
|
|
1149
|
+
removeClass(el, _this.settings.stateOpened, _this.settings.stateOpening, _this.settings.stateClosing);
|
|
1150
|
+
addClass(el, _this.settings.stateClosed);
|
|
1058
1151
|
});
|
|
1059
1152
|
}
|
|
1060
1153
|
|
|
1154
|
+
var open$1 = function open(modalKey) {
|
|
1155
|
+
try {
|
|
1156
|
+
var _this2 = this;
|
|
1157
|
+
|
|
1158
|
+
var modal = getModal.call(_this2, modalKey);
|
|
1159
|
+
if (!modal) return Promise.resolve(modalNotFound(modalKey));
|
|
1160
|
+
|
|
1161
|
+
if (hasClass(modal, _this2.settings.stateClosed)) {
|
|
1162
|
+
_this2.working = true;
|
|
1163
|
+
setOverflowHidden(true, _this2.settings.selectorOverflow);
|
|
1164
|
+
return Promise.resolve(openTransition(modal, _this2.settings)).then(function () {
|
|
1165
|
+
_this2.focusTrap.init(modal);
|
|
1166
|
+
|
|
1167
|
+
focusTarget(modal, _this2.settings);
|
|
1168
|
+
setInert(true, _this2.settings.selectorInert);
|
|
1169
|
+
modal.dispatchEvent(new CustomEvent(_this2.settings.customEventPrefix + 'opened', {
|
|
1170
|
+
detail: _this2,
|
|
1171
|
+
bubbles: true
|
|
1172
|
+
}));
|
|
1173
|
+
_this2.working = false;
|
|
1174
|
+
return modal;
|
|
1175
|
+
});
|
|
1176
|
+
} else {
|
|
1177
|
+
return Promise.resolve(modal);
|
|
1178
|
+
}
|
|
1179
|
+
} catch (e) {
|
|
1180
|
+
return Promise.reject(e);
|
|
1181
|
+
}
|
|
1182
|
+
};
|
|
1183
|
+
|
|
1061
1184
|
var Modal = /*#__PURE__*/function () {
|
|
1062
1185
|
function Modal(options) {
|
|
1063
1186
|
this.defaults = defaults$1;
|
|
@@ -1079,13 +1202,12 @@ var Modal = /*#__PURE__*/function () {
|
|
|
1079
1202
|
|
|
1080
1203
|
if (options) this.settings = _extends({}, this.settings, options);
|
|
1081
1204
|
this.moveModals();
|
|
1205
|
+
this.setInitialState();
|
|
1082
1206
|
|
|
1083
1207
|
if (this.settings.setTabindex) {
|
|
1084
1208
|
this.setTabindex();
|
|
1085
1209
|
}
|
|
1086
1210
|
|
|
1087
|
-
this.setInitialState();
|
|
1088
|
-
|
|
1089
1211
|
if (this.settings.eventListeners) {
|
|
1090
1212
|
this.initEventListeners();
|
|
1091
1213
|
}
|
|
@@ -1119,36 +1241,20 @@ var Modal = /*#__PURE__*/function () {
|
|
|
1119
1241
|
*/
|
|
1120
1242
|
;
|
|
1121
1243
|
|
|
1122
|
-
_proto.getModal = function getModal(modalKey) {
|
|
1123
|
-
|
|
1124
|
-
return document.querySelector("[data-" + this.settings.dataModal + "=\"" + modalKey + "\"]");
|
|
1125
|
-
};
|
|
1126
|
-
|
|
1127
|
-
_proto.modalNotFound = function modalNotFound(key) {
|
|
1128
|
-
return Promise.reject(new Error("Did not find modal with key: \"" + key + "\""));
|
|
1244
|
+
_proto.getModal = function getModal$1(modalKey) {
|
|
1245
|
+
return getModal.call(this, modalKey);
|
|
1129
1246
|
};
|
|
1130
1247
|
|
|
1131
1248
|
_proto.setTabindex = function setTabindex$1() {
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
setTabindex(selectorTabindex);
|
|
1249
|
+
return setTabindex("\n [data-" + this.settings.dataModal + "]\n [data-" + this.settings.dataDialog + "]\n ");
|
|
1135
1250
|
};
|
|
1136
1251
|
|
|
1137
1252
|
_proto.setInitialState = function setInitialState$1() {
|
|
1138
|
-
setInitialState(this);
|
|
1253
|
+
return setInitialState.call(this);
|
|
1139
1254
|
};
|
|
1140
1255
|
|
|
1141
|
-
_proto.moveModals = function moveModals(type, ref) {
|
|
1142
|
-
|
|
1143
|
-
type = this.settings.moveModals.type;
|
|
1144
|
-
}
|
|
1145
|
-
|
|
1146
|
-
if (ref === void 0) {
|
|
1147
|
-
ref = this.settings.moveModals.ref;
|
|
1148
|
-
}
|
|
1149
|
-
|
|
1150
|
-
var modals = document.querySelectorAll("[data-" + this.settings.dataModal + "]");
|
|
1151
|
-
if (modals.length) moveElement(modals, type, ref);
|
|
1256
|
+
_proto.moveModals = function moveModals$1(type, ref) {
|
|
1257
|
+
return moveModals.call(this, type, ref);
|
|
1152
1258
|
}
|
|
1153
1259
|
/**
|
|
1154
1260
|
* Change state functionality
|
|
@@ -1156,68 +1262,11 @@ var Modal = /*#__PURE__*/function () {
|
|
|
1156
1262
|
;
|
|
1157
1263
|
|
|
1158
1264
|
_proto.open = function open(modalKey) {
|
|
1159
|
-
|
|
1160
|
-
var _this2 = this;
|
|
1161
|
-
|
|
1162
|
-
var modal = _this2.getModal(modalKey);
|
|
1163
|
-
|
|
1164
|
-
if (!modal) return Promise.resolve(_this2.modalNotFound(modalKey));
|
|
1165
|
-
|
|
1166
|
-
if (hasClass(modal, _this2.settings.stateClosed)) {
|
|
1167
|
-
_this2.working = true;
|
|
1168
|
-
setOverflowHidden(true, _this2.settings.selectorOverflow);
|
|
1169
|
-
return Promise.resolve(openTransition(modal, _this2.settings)).then(function () {
|
|
1170
|
-
_this2.focusTrap.init(modal);
|
|
1171
|
-
|
|
1172
|
-
focusTarget(modal, _this2.settings);
|
|
1173
|
-
setInert(true, _this2.settings.selectorInert);
|
|
1174
|
-
modal.dispatchEvent(new CustomEvent(_this2.settings.customEventPrefix + 'opened', {
|
|
1175
|
-
detail: _this2,
|
|
1176
|
-
bubbles: true
|
|
1177
|
-
}));
|
|
1178
|
-
_this2.working = false;
|
|
1179
|
-
return modal;
|
|
1180
|
-
});
|
|
1181
|
-
} else {
|
|
1182
|
-
return Promise.resolve(modal);
|
|
1183
|
-
}
|
|
1184
|
-
} catch (e) {
|
|
1185
|
-
return Promise.reject(e);
|
|
1186
|
-
}
|
|
1265
|
+
return open$1.call(this, modalKey);
|
|
1187
1266
|
};
|
|
1188
1267
|
|
|
1189
1268
|
_proto.close = function close(returnFocus) {
|
|
1190
|
-
|
|
1191
|
-
returnFocus = true;
|
|
1192
|
-
}
|
|
1193
|
-
|
|
1194
|
-
try {
|
|
1195
|
-
var _this4 = this;
|
|
1196
|
-
|
|
1197
|
-
var modal = document.querySelector("[data-" + _this4.settings.dataModal + "]." + _this4.settings.stateOpened);
|
|
1198
|
-
|
|
1199
|
-
if (modal) {
|
|
1200
|
-
_this4.working = true;
|
|
1201
|
-
setInert(false, _this4.settings.selectorInert);
|
|
1202
|
-
setOverflowHidden(false, _this4.settings.selectorOverflow);
|
|
1203
|
-
return Promise.resolve(closeTransition(modal, _this4.settings)).then(function () {
|
|
1204
|
-
if (returnFocus) focusTrigger(_this4);
|
|
1205
|
-
|
|
1206
|
-
_this4.focusTrap.destroy();
|
|
1207
|
-
|
|
1208
|
-
modal.dispatchEvent(new CustomEvent(_this4.settings.customEventPrefix + 'closed', {
|
|
1209
|
-
detail: _this4,
|
|
1210
|
-
bubbles: true
|
|
1211
|
-
}));
|
|
1212
|
-
_this4.working = false;
|
|
1213
|
-
return modal;
|
|
1214
|
-
});
|
|
1215
|
-
} else {
|
|
1216
|
-
return Promise.resolve(modal);
|
|
1217
|
-
}
|
|
1218
|
-
} catch (e) {
|
|
1219
|
-
return Promise.reject(e);
|
|
1220
|
-
}
|
|
1269
|
+
return close$1.call(this, returnFocus);
|
|
1221
1270
|
};
|
|
1222
1271
|
|
|
1223
1272
|
return Modal;
|
|
@@ -1239,9 +1288,9 @@ var defaults = {
|
|
|
1239
1288
|
placement: 'bottom-start'
|
|
1240
1289
|
};
|
|
1241
1290
|
|
|
1242
|
-
function
|
|
1291
|
+
function close(popover) {
|
|
1243
1292
|
// Update state class
|
|
1244
|
-
popover.target.classList.remove(
|
|
1293
|
+
popover.target.classList.remove(this.settings.stateActive); // Update a11y attributes
|
|
1245
1294
|
|
|
1246
1295
|
popover.trigger.setAttribute('aria-expanded', 'false'); // Disable popper event listeners
|
|
1247
1296
|
|
|
@@ -1252,32 +1301,43 @@ function hide$2(popover, obj) {
|
|
|
1252
1301
|
}]
|
|
1253
1302
|
}); // Update collection status with new state
|
|
1254
1303
|
|
|
1255
|
-
var index =
|
|
1304
|
+
var index = this.collection.findIndex(function (item) {
|
|
1256
1305
|
return item.target === popover.target;
|
|
1257
1306
|
});
|
|
1258
|
-
|
|
1307
|
+
this.collection[index].state = 'closed'; // Clear the memory if popover trigger matches the ones saved in memory
|
|
1308
|
+
|
|
1309
|
+
if (popover.trigger === this.memory.trigger) {
|
|
1310
|
+
this.memory.trigger = null;
|
|
1311
|
+
} // Return the popover
|
|
1312
|
+
|
|
1259
1313
|
|
|
1260
1314
|
return popover;
|
|
1261
1315
|
}
|
|
1262
|
-
function
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1316
|
+
function closeAll() {
|
|
1317
|
+
var _this = this;
|
|
1318
|
+
|
|
1319
|
+
this.collection.forEach(function (popover) {
|
|
1320
|
+
if (popover.state === 'opened') {
|
|
1321
|
+
_this.close(popover);
|
|
1266
1322
|
}
|
|
1267
1323
|
}); // Return the collection
|
|
1268
1324
|
|
|
1269
|
-
return
|
|
1325
|
+
return this.collection;
|
|
1270
1326
|
}
|
|
1271
|
-
function
|
|
1272
|
-
|
|
1327
|
+
function closeCheck(popover) {
|
|
1328
|
+
var _this2 = this;
|
|
1329
|
+
|
|
1330
|
+
// Only run closeCheck if provided popover is currently open
|
|
1331
|
+
if (popover.state != 'opened') return; // Needed to correctly check which element is currently being focused
|
|
1332
|
+
|
|
1273
1333
|
setTimeout(function () {
|
|
1274
1334
|
// Check if trigger or target are being hovered
|
|
1275
1335
|
var isHovered = popover.target.closest(':hover') === popover.target || popover.trigger.closest(':hover') === popover.trigger; // Check if trigger or target are being focused
|
|
1276
1336
|
|
|
1277
|
-
var isFocused = document.activeElement.closest("[data-" +
|
|
1337
|
+
var isFocused = document.activeElement.closest("[data-" + _this2.settings.dataPopover + "]") === popover.target || document.activeElement.closest("[data-" + _this2.settings.dataTrigger + "]") === popover.trigger; // Close if the trigger and target are not currently hovered or focused
|
|
1278
1338
|
|
|
1279
1339
|
if (!isHovered && !isFocused) {
|
|
1280
|
-
|
|
1340
|
+
_this2.close(popover);
|
|
1281
1341
|
} // Return the popover
|
|
1282
1342
|
|
|
1283
1343
|
|
|
@@ -1285,6 +1345,57 @@ function hideCheck(popover, obj) {
|
|
|
1285
1345
|
}, 1);
|
|
1286
1346
|
}
|
|
1287
1347
|
|
|
1348
|
+
function handlerClick(popover) {
|
|
1349
|
+
if (popover.target.classList.contains(this.settings.stateActive)) {
|
|
1350
|
+
this.close(popover);
|
|
1351
|
+
} else {
|
|
1352
|
+
this.memory.trigger = popover.trigger;
|
|
1353
|
+
this.open(popover);
|
|
1354
|
+
documentClick.call(this, popover);
|
|
1355
|
+
}
|
|
1356
|
+
}
|
|
1357
|
+
function handlerKeydown(event) {
|
|
1358
|
+
var _this = this;
|
|
1359
|
+
|
|
1360
|
+
switch (event.key) {
|
|
1361
|
+
case 'Escape':
|
|
1362
|
+
if (this.memory.trigger) {
|
|
1363
|
+
this.memory.trigger.focus();
|
|
1364
|
+
}
|
|
1365
|
+
|
|
1366
|
+
this.closeAll();
|
|
1367
|
+
return;
|
|
1368
|
+
|
|
1369
|
+
case 'Tab':
|
|
1370
|
+
this.collection.forEach(function (popover) {
|
|
1371
|
+
closeCheck.call(_this, popover);
|
|
1372
|
+
});
|
|
1373
|
+
return;
|
|
1374
|
+
|
|
1375
|
+
default:
|
|
1376
|
+
return;
|
|
1377
|
+
}
|
|
1378
|
+
}
|
|
1379
|
+
function documentClick(popover) {
|
|
1380
|
+
var obj = this;
|
|
1381
|
+
document.addEventListener('click', function _f(event) {
|
|
1382
|
+
var result = event.target.closest("[data-" + obj.settings.dataPopover + "], [data-" + obj.settings.dataTrigger + "]");
|
|
1383
|
+
var match = result === popover.target || result === popover.trigger;
|
|
1384
|
+
|
|
1385
|
+
if (!match) {
|
|
1386
|
+
if (popover.target.classList.contains(obj.settings.stateActive)) {
|
|
1387
|
+
obj.close(popover);
|
|
1388
|
+
}
|
|
1389
|
+
|
|
1390
|
+
this.removeEventListener('click', _f);
|
|
1391
|
+
} else {
|
|
1392
|
+
if (!popover.target.classList.contains(obj.settings.stateActive)) {
|
|
1393
|
+
this.removeEventListener('click', _f);
|
|
1394
|
+
}
|
|
1395
|
+
}
|
|
1396
|
+
});
|
|
1397
|
+
}
|
|
1398
|
+
|
|
1288
1399
|
function getConfig(el, settings) {
|
|
1289
1400
|
// Get the computed styles of the popover
|
|
1290
1401
|
var styles = getComputedStyle(el); // Setup the config obj with default values
|
|
@@ -1301,7 +1412,8 @@ function getConfig(el, settings) {
|
|
|
1301
1412
|
|
|
1302
1413
|
for (var prop in config) {
|
|
1303
1414
|
// Get the CSS variable property values
|
|
1304
|
-
var
|
|
1415
|
+
var prefix = getComputedStyle(document.body).getPropertyValue('--vrembem-variable-prefix');
|
|
1416
|
+
var val = styles.getPropertyValue("--" + prefix + "popover-" + prop).trim(); // If a value was found, replace the default in config obj
|
|
1305
1417
|
|
|
1306
1418
|
if (val) {
|
|
1307
1419
|
config[prop] = val;
|
|
@@ -1408,16 +1520,16 @@ function getPopover(trigger, settings) {
|
|
|
1408
1520
|
}
|
|
1409
1521
|
}
|
|
1410
1522
|
|
|
1411
|
-
function
|
|
1523
|
+
function open(popover) {
|
|
1412
1524
|
// Update state class
|
|
1413
|
-
popover.target.classList.add(
|
|
1525
|
+
popover.target.classList.add(this.settings.stateActive); // Update a11y attributes
|
|
1414
1526
|
|
|
1415
1527
|
popover.trigger.setAttribute('aria-expanded', 'true'); // Update popover config
|
|
1416
1528
|
|
|
1417
|
-
popover.config = getConfig(popover.target,
|
|
1529
|
+
popover.config = getConfig(popover.target, this.settings); // Enable popper event listeners and set placement/modifiers
|
|
1418
1530
|
|
|
1419
1531
|
popover.popper.setOptions({
|
|
1420
|
-
placement: getData(popover.target,
|
|
1532
|
+
placement: getData(popover.target, this.settings.dataPlacement, popover.config['placement']),
|
|
1421
1533
|
modifiers: [{
|
|
1422
1534
|
name: 'eventListeners',
|
|
1423
1535
|
enabled: true
|
|
@@ -1426,46 +1538,14 @@ function show(popover, obj) {
|
|
|
1426
1538
|
|
|
1427
1539
|
popover.popper.update(); // Update collection status with new state
|
|
1428
1540
|
|
|
1429
|
-
var index =
|
|
1541
|
+
var index = this.collection.findIndex(function (item) {
|
|
1430
1542
|
return item.target === popover.target;
|
|
1431
1543
|
});
|
|
1432
|
-
|
|
1544
|
+
this.collection[index].state = 'opened'; // Return the popover
|
|
1433
1545
|
|
|
1434
1546
|
return popover;
|
|
1435
1547
|
}
|
|
1436
1548
|
|
|
1437
|
-
function handlerClick(popover) {
|
|
1438
|
-
if (popover.target.classList.contains(this.settings.stateActive)) {
|
|
1439
|
-
hide$2(popover, this);
|
|
1440
|
-
} else {
|
|
1441
|
-
show(popover, this);
|
|
1442
|
-
documentClick(popover, this);
|
|
1443
|
-
}
|
|
1444
|
-
}
|
|
1445
|
-
function handlerKeydown(event) {
|
|
1446
|
-
if (event.key === 'Escape') {
|
|
1447
|
-
hideAll(this);
|
|
1448
|
-
}
|
|
1449
|
-
}
|
|
1450
|
-
function documentClick(popover, obj) {
|
|
1451
|
-
document.addEventListener('click', function _f(event) {
|
|
1452
|
-
var result = event.target.closest("[data-" + obj.settings.dataPopover + "], [data-" + obj.settings.dataTrigger + "]");
|
|
1453
|
-
var match = result === popover.target || result === popover.trigger;
|
|
1454
|
-
|
|
1455
|
-
if (!match) {
|
|
1456
|
-
if (popover.target.classList.contains(obj.settings.stateActive)) {
|
|
1457
|
-
hide$2(popover, obj);
|
|
1458
|
-
}
|
|
1459
|
-
|
|
1460
|
-
this.removeEventListener('click', _f);
|
|
1461
|
-
} else {
|
|
1462
|
-
if (!popover.target.classList.contains(obj.settings.stateActive)) {
|
|
1463
|
-
this.removeEventListener('click', _f);
|
|
1464
|
-
}
|
|
1465
|
-
}
|
|
1466
|
-
});
|
|
1467
|
-
}
|
|
1468
|
-
|
|
1469
1549
|
var top = 'top';
|
|
1470
1550
|
var bottom = 'bottom';
|
|
1471
1551
|
var right = 'right';
|
|
@@ -3249,11 +3329,11 @@ var createPopper = /*#__PURE__*/popperGenerator({
|
|
|
3249
3329
|
defaultModifiers: defaultModifiers
|
|
3250
3330
|
}); // eslint-disable-next-line import/no-unused-modules
|
|
3251
3331
|
|
|
3252
|
-
function register(trigger, target
|
|
3332
|
+
function register(trigger, target) {
|
|
3253
3333
|
// If no target is passed
|
|
3254
3334
|
if (!target) {
|
|
3255
3335
|
// Try and get the target
|
|
3256
|
-
target = getPopover(trigger,
|
|
3336
|
+
target = getPopover(trigger, this.settings); // If still no target is returned, log an error and return false
|
|
3257
3337
|
|
|
3258
3338
|
if (!target) {
|
|
3259
3339
|
console.error('No popover associated with the provided trigger:', trigger);
|
|
@@ -3262,7 +3342,7 @@ function register(trigger, target, obj) {
|
|
|
3262
3342
|
} // Check if this item has already been registered in the collection
|
|
3263
3343
|
|
|
3264
3344
|
|
|
3265
|
-
var index =
|
|
3345
|
+
var index = this.collection.findIndex(function (item) {
|
|
3266
3346
|
return item.trigger === trigger && item.target === target;
|
|
3267
3347
|
}); // Initiate popover variable
|
|
3268
3348
|
|
|
@@ -3270,45 +3350,45 @@ function register(trigger, target, obj) {
|
|
|
3270
3350
|
|
|
3271
3351
|
if (index >= 0) {
|
|
3272
3352
|
// Set popover as item from collection
|
|
3273
|
-
popover =
|
|
3353
|
+
popover = this.collection[index];
|
|
3274
3354
|
} else {
|
|
3275
3355
|
// Create popper instance
|
|
3276
3356
|
var popperInstance = createPopper(trigger, target); // Build popover object and push to collection array
|
|
3277
3357
|
|
|
3278
3358
|
popover = {
|
|
3279
|
-
state: '
|
|
3359
|
+
state: 'closed',
|
|
3280
3360
|
trigger: trigger,
|
|
3281
3361
|
target: target,
|
|
3282
3362
|
popper: popperInstance,
|
|
3283
|
-
config: getConfig(target,
|
|
3363
|
+
config: getConfig(target, this.settings)
|
|
3284
3364
|
}; // Add item to collection
|
|
3285
3365
|
|
|
3286
|
-
|
|
3366
|
+
this.collection.push(popover);
|
|
3287
3367
|
} // Setup event listeners
|
|
3288
3368
|
|
|
3289
3369
|
|
|
3290
|
-
registerEventListeners(
|
|
3370
|
+
registerEventListeners.call(this, popover); // Set initial state of popover
|
|
3291
3371
|
|
|
3292
|
-
if (popover.target.classList.contains(
|
|
3293
|
-
|
|
3294
|
-
documentClick(
|
|
3372
|
+
if (popover.target.classList.contains(this.settings.stateActive)) {
|
|
3373
|
+
this.open(popover);
|
|
3374
|
+
documentClick.call(this, popover);
|
|
3295
3375
|
} else {
|
|
3296
|
-
|
|
3376
|
+
this.close(popover);
|
|
3297
3377
|
} // Return the popover object
|
|
3298
3378
|
|
|
3299
3379
|
|
|
3300
3380
|
return popover;
|
|
3301
3381
|
}
|
|
3302
|
-
function deregister(popover
|
|
3382
|
+
function deregister(popover) {
|
|
3303
3383
|
// Check if this item has been registered in the collection
|
|
3304
|
-
var index =
|
|
3384
|
+
var index = this.collection.findIndex(function (item) {
|
|
3305
3385
|
return item.trigger === popover.trigger && item.target === popover.target;
|
|
3306
3386
|
}); // If the item exists in the collection
|
|
3307
3387
|
|
|
3308
3388
|
if (index >= 0) {
|
|
3309
|
-
//
|
|
3310
|
-
if (popover.state === '
|
|
3311
|
-
|
|
3389
|
+
// Close the popover
|
|
3390
|
+
if (popover.state === 'opened') {
|
|
3391
|
+
this.close(popover);
|
|
3312
3392
|
} // Clean up the popper instance
|
|
3313
3393
|
|
|
3314
3394
|
|
|
@@ -3316,28 +3396,28 @@ function deregister(popover, obj) {
|
|
|
3316
3396
|
|
|
3317
3397
|
deregisterEventListeners(popover); // Remove item from collection
|
|
3318
3398
|
|
|
3319
|
-
|
|
3399
|
+
this.collection.splice(index, 1);
|
|
3320
3400
|
} // Return the new collection
|
|
3321
3401
|
|
|
3322
3402
|
|
|
3323
|
-
return
|
|
3403
|
+
return this.collection;
|
|
3324
3404
|
}
|
|
3325
|
-
function registerEventListeners(popover
|
|
3405
|
+
function registerEventListeners(popover) {
|
|
3326
3406
|
// If event listeners aren't already setup
|
|
3327
3407
|
if (!popover.__eventListeners) {
|
|
3328
3408
|
// Add event listeners based on event type
|
|
3329
|
-
var eventType = getData(popover.target,
|
|
3409
|
+
var eventType = getData(popover.target, this.settings.dataEventType, popover.config['event']);
|
|
3330
3410
|
|
|
3331
3411
|
if (eventType === 'hover') {
|
|
3332
3412
|
// Setup event listeners object for hover
|
|
3333
3413
|
popover.__eventListeners = [{
|
|
3334
3414
|
el: ['trigger'],
|
|
3335
3415
|
type: ['mouseenter', 'focus'],
|
|
3336
|
-
listener:
|
|
3416
|
+
listener: open.bind(this, popover)
|
|
3337
3417
|
}, {
|
|
3338
3418
|
el: ['trigger', 'target'],
|
|
3339
3419
|
type: ['mouseleave', 'focusout'],
|
|
3340
|
-
listener:
|
|
3420
|
+
listener: closeCheck.bind(this, popover)
|
|
3341
3421
|
}]; // Loop through listeners and apply to appropriate elements
|
|
3342
3422
|
|
|
3343
3423
|
popover.__eventListeners.forEach(function (evObj) {
|
|
@@ -3352,7 +3432,7 @@ function registerEventListeners(popover, obj) {
|
|
|
3352
3432
|
popover.__eventListeners = [{
|
|
3353
3433
|
el: ['trigger'],
|
|
3354
3434
|
type: ['click'],
|
|
3355
|
-
listener: handlerClick.bind(
|
|
3435
|
+
listener: handlerClick.bind(this, popover)
|
|
3356
3436
|
}]; // Loop through listeners and apply to appropriate elements
|
|
3357
3437
|
|
|
3358
3438
|
popover.__eventListeners.forEach(function (evObj) {
|
|
@@ -3387,24 +3467,26 @@ function deregisterEventListeners(popover) {
|
|
|
3387
3467
|
|
|
3388
3468
|
return popover;
|
|
3389
3469
|
}
|
|
3390
|
-
function registerCollection(
|
|
3470
|
+
function registerCollection() {
|
|
3471
|
+
var _this = this;
|
|
3472
|
+
|
|
3391
3473
|
// Get all the triggers
|
|
3392
|
-
var triggers = document.querySelectorAll("[data-" +
|
|
3474
|
+
var triggers = document.querySelectorAll("[data-" + this.settings.dataTrigger + "]");
|
|
3393
3475
|
triggers.forEach(function (trigger) {
|
|
3394
3476
|
// Register the popover and save to collection array
|
|
3395
|
-
register(trigger, false
|
|
3477
|
+
_this.register(trigger, false);
|
|
3396
3478
|
}); // Return the popover collection
|
|
3397
3479
|
|
|
3398
|
-
return
|
|
3480
|
+
return this.collection;
|
|
3399
3481
|
}
|
|
3400
|
-
function deregisterCollection(
|
|
3482
|
+
function deregisterCollection() {
|
|
3401
3483
|
// Loop through all items within the collection and pass them to deregister()
|
|
3402
|
-
while (
|
|
3403
|
-
deregister(
|
|
3484
|
+
while (this.collection.length > 0) {
|
|
3485
|
+
this.deregister(this.collection[0]);
|
|
3404
3486
|
} // Return the popover collection
|
|
3405
3487
|
|
|
3406
3488
|
|
|
3407
|
-
return
|
|
3489
|
+
return this.collection;
|
|
3408
3490
|
}
|
|
3409
3491
|
|
|
3410
3492
|
var Popover = /*#__PURE__*/function () {
|
|
@@ -3412,6 +3494,9 @@ var Popover = /*#__PURE__*/function () {
|
|
|
3412
3494
|
this.defaults = defaults;
|
|
3413
3495
|
this.settings = _extends({}, this.defaults, options);
|
|
3414
3496
|
this.collection = [];
|
|
3497
|
+
this.memory = {
|
|
3498
|
+
trigger: null
|
|
3499
|
+
};
|
|
3415
3500
|
this.__handlerKeydown = handlerKeydown.bind(this);
|
|
3416
3501
|
if (this.settings.autoInit) this.init();
|
|
3417
3502
|
}
|
|
@@ -3426,8 +3511,7 @@ var Popover = /*#__PURE__*/function () {
|
|
|
3426
3511
|
// Update settings with passed options
|
|
3427
3512
|
if (options) this.settings = _extends({}, this.settings, options); // Build the collections array with popover instances
|
|
3428
3513
|
|
|
3429
|
-
registerCollection(
|
|
3430
|
-
|
|
3514
|
+
this.registerCollection(); // If eventListeners is enabled
|
|
3431
3515
|
|
|
3432
3516
|
if (this.settings.eventListeners) {
|
|
3433
3517
|
// Pass false to initEventListeners() since registerCollection()
|
|
@@ -3438,8 +3522,7 @@ var Popover = /*#__PURE__*/function () {
|
|
|
3438
3522
|
|
|
3439
3523
|
_proto.destroy = function destroy() {
|
|
3440
3524
|
// Deregister all popovers from collection
|
|
3441
|
-
deregisterCollection(
|
|
3442
|
-
|
|
3525
|
+
this.deregisterCollection(); // If eventListeners is enabled
|
|
3443
3526
|
|
|
3444
3527
|
if (this.settings.eventListeners) {
|
|
3445
3528
|
// Pass false to destroyEventListeners() since deregisterCollection()
|
|
@@ -3462,7 +3545,7 @@ var Popover = /*#__PURE__*/function () {
|
|
|
3462
3545
|
if (processCollection) {
|
|
3463
3546
|
// Loop through collection and setup event listeners
|
|
3464
3547
|
this.collection.forEach(function (popover) {
|
|
3465
|
-
registerEventListeners(
|
|
3548
|
+
registerEventListeners.call(_this, popover);
|
|
3466
3549
|
});
|
|
3467
3550
|
} // Add keydown global event listener
|
|
3468
3551
|
|
|
@@ -3495,35 +3578,35 @@ var Popover = /*#__PURE__*/function () {
|
|
|
3495
3578
|
target = false;
|
|
3496
3579
|
}
|
|
3497
3580
|
|
|
3498
|
-
return register(trigger, target
|
|
3581
|
+
return register.call(this, trigger, target);
|
|
3499
3582
|
};
|
|
3500
3583
|
|
|
3501
3584
|
_proto.deregister = function deregister$1(popover) {
|
|
3502
|
-
return deregister(
|
|
3585
|
+
return deregister.call(this, popover);
|
|
3503
3586
|
};
|
|
3504
3587
|
|
|
3505
3588
|
_proto.registerCollection = function registerCollection$1() {
|
|
3506
|
-
return registerCollection(this);
|
|
3589
|
+
return registerCollection.call(this);
|
|
3507
3590
|
};
|
|
3508
3591
|
|
|
3509
3592
|
_proto.deregisterCollection = function deregisterCollection$1() {
|
|
3510
|
-
return deregisterCollection(this);
|
|
3593
|
+
return deregisterCollection.call(this);
|
|
3511
3594
|
}
|
|
3512
3595
|
/**
|
|
3513
3596
|
* Change state functionality
|
|
3514
3597
|
*/
|
|
3515
3598
|
;
|
|
3516
3599
|
|
|
3517
|
-
_proto.
|
|
3518
|
-
return
|
|
3600
|
+
_proto.open = function open$1(popover) {
|
|
3601
|
+
return open.call(this, popover);
|
|
3519
3602
|
};
|
|
3520
3603
|
|
|
3521
|
-
_proto.
|
|
3522
|
-
return
|
|
3604
|
+
_proto.close = function close$1(popover) {
|
|
3605
|
+
return close.call(this, popover);
|
|
3523
3606
|
};
|
|
3524
3607
|
|
|
3525
|
-
_proto.
|
|
3526
|
-
return
|
|
3608
|
+
_proto.closeAll = function closeAll$1() {
|
|
3609
|
+
return closeAll.call(this);
|
|
3527
3610
|
};
|
|
3528
3611
|
|
|
3529
3612
|
return Popover;
|