@ulu/frontend 0.0.3 → 0.0.6
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/CHANGELOG.md +19 -0
- package/README.md +3 -1
- package/js/deprecated/mini-collapsible.js +1 -1
- package/js/events/index.js +4 -1
- package/js/helpers/css-breakpoint.js +5 -7
- package/js/helpers/file-save.js +4 -0
- package/js/helpers/node-data-manager.js +4 -0
- package/js/helpers/pause-youtube-video.js +4 -0
- package/js/helpers/scrollbar-width-property.js +6 -2
- package/js/index.js +0 -2
- package/js/ui/flipcard.js +5 -1
- package/js/ui/grid.js +4 -0
- package/js/ui/modals.js +4 -1
- package/js/ui/overflow-scroller-pager.js +3 -0
- package/js/ui/overflow-scroller.js +4 -1
- package/js/ui/programmatic-modal.js +3 -0
- package/js/ui/resizer.js +3 -0
- package/js/ui/slider.js +7 -4
- package/js/ui/tabs.js +3 -0
- package/js/ui/tooltip.js +3 -0
- package/js/utils/logger.js +3 -0
- package/package.json +20 -11
- package/scss/_breakpoint.scss +3 -4
- package/scss/_button.scss +4 -4
- package/scss/_color.scss +2 -2
- package/scss/_grid.scss +0 -1
- package/scss/_layout.scss +2 -3
- package/scss/_typography.scss +2 -3
- package/scss/_utils.scss +21 -4
- package/scss/base/_normalize.scss +1 -1
- package/scss/helpers/_units.scss +7 -11
- package/scss/stylesheets/full.scss +1 -4
- package/js/polyfills/element-closest.js +0 -17
- package/js/utils/array.js +0 -28
- package/js/utils/dom.js +0 -122
- package/js/utils/object.js +0 -22
- package/js/utils/performance.js +0 -43
- package/js/utils/regex.js +0 -10
- package/js/utils/string.js +0 -107
- package/trash/js-old/deprecated/doc-ready.js +0 -28
- package/trash/js-old/deprecated/jquery-prototypes.js +0 -309
- package/trash/js-old/deprecated/mini-collapsible-popper-positioning.js +0 -126
- package/trash/js-old/deprecated/mini-collapsible.js +0 -607
- package/trash/js-old/deprecated/script-loader.js +0 -60
- package/trash/js-old/events/index.js +0 -42
- package/trash/js-old/helpers/css-breakpoint.js +0 -247
- package/trash/js-old/helpers/file-save.js +0 -48
- package/trash/js-old/helpers/node-data-manager.js +0 -74
- package/trash/js-old/helpers/pause-youtube-video.js +0 -42
- package/trash/js-old/index.js +0 -15
- package/trash/js-old/polyfills/element-closest.js +0 -17
- package/trash/js-old/ui/flipcard.js +0 -202
- package/trash/js-old/ui/grid.js +0 -67
- package/trash/js-old/ui/modals.js +0 -219
- package/trash/js-old/ui/programmatic-modal.js +0 -91
- package/trash/js-old/ui/resizer.js +0 -60
- package/trash/js-old/ui/slider.js +0 -469
- package/trash/js-old/ui/tabs.js +0 -109
- package/trash/js-old/ui/tooltip.js +0 -82
- package/trash/js-old/utils/array.js +0 -28
- package/trash/js-old/utils/dom.js +0 -122
- package/trash/js-old/utils/logger.js +0 -69
- package/trash/js-old/utils/object.js +0 -22
- package/trash/js-old/utils/performance.js +0 -43
- package/trash/js-old/utils/regex.js +0 -10
- package/trash/js-old/utils/string.js +0 -107
- package/trash/js-old/waypoints/README.md +0 -3
- package/trash/js-old/waypoints/anchor-menu.js +0 -76
- package/trash/js-old/waypoints/element-waypoint.js +0 -75
- package/trash/js-old/waypoints/examples/page-link-menu.md +0 -106
- package/trash/js-old/waypoints/state-in-attribute.js +0 -32
- package/trash/js-old-230729/deprecated/doc-ready.js +0 -28
- package/trash/js-old-230729/deprecated/jquery-prototypes.js +0 -309
- package/trash/js-old-230729/deprecated/mini-collapsible-popper-positioning.js +0 -126
- package/trash/js-old-230729/deprecated/mini-collapsible.js +0 -607
- package/trash/js-old-230729/deprecated/script-loader.js +0 -60
- package/trash/js-old-230729/events/index.js +0 -42
- package/trash/js-old-230729/helpers/css-breakpoint.js +0 -247
- package/trash/js-old-230729/helpers/file-save.js +0 -48
- package/trash/js-old-230729/helpers/node-data-manager.js +0 -74
- package/trash/js-old-230729/helpers/pause-youtube-video.js +0 -42
- package/trash/js-old-230729/helpers/scrollbar-width-property.js +0 -10
- package/trash/js-old-230729/index.js +0 -15
- package/trash/js-old-230729/polyfills/element-closest.js +0 -17
- package/trash/js-old-230729/ui/flipcard.js +0 -202
- package/trash/js-old-230729/ui/grid.js +0 -67
- package/trash/js-old-230729/ui/modals.js +0 -219
- package/trash/js-old-230729/ui/overflow-scroller-pager.js +0 -58
- package/trash/js-old-230729/ui/overflow-scroller.js +0 -160
- package/trash/js-old-230729/ui/programmatic-modal.js +0 -91
- package/trash/js-old-230729/ui/resizer.js +0 -60
- package/trash/js-old-230729/ui/slider.js +0 -468
- package/trash/js-old-230729/ui/tabs.js +0 -109
- package/trash/js-old-230729/ui/tooltip.js +0 -82
- package/trash/js-old-230729/utils/array.js +0 -28
- package/trash/js-old-230729/utils/dom.js +0 -122
- package/trash/js-old-230729/utils/logger.js +0 -69
- package/trash/js-old-230729/utils/object.js +0 -22
- package/trash/js-old-230729/utils/performance.js +0 -43
- package/trash/js-old-230729/utils/regex.js +0 -10
- package/trash/js-old-230729/utils/string.js +0 -107
- package/trash/js-old-230729/waypoints/README.md +0 -3
- package/trash/js-old-230729/waypoints/anchor-menu.js +0 -76
- package/trash/js-old-230729/waypoints/element-waypoint.js +0 -75
- package/trash/js-old-230729/waypoints/examples/page-link-menu.md +0 -106
- package/trash/js-old-230729/waypoints/state-in-attribute.js +0 -32
- package/trash/logo-1.svg +0 -13
- package/trash/logo.svg +0 -16
- package/trash/scss-before-cqc-update/README.md +0 -58
- package/trash/scss-before-cqc-update/_breakpoint.scss +0 -190
- package/trash/scss-before-cqc-update/_button.scss +0 -229
- package/trash/scss-before-cqc-update/_calculate.scss +0 -65
- package/trash/scss-before-cqc-update/_color.scss +0 -211
- package/trash/scss-before-cqc-update/_cssvar.scss +0 -116
- package/trash/scss-before-cqc-update/_element.scss +0 -275
- package/trash/scss-before-cqc-update/_index.scss +0 -29
- package/trash/scss-before-cqc-update/_layout.scss +0 -247
- package/trash/scss-before-cqc-update/_path.scss +0 -59
- package/trash/scss-before-cqc-update/_selector.scss +0 -82
- package/trash/scss-before-cqc-update/_typography.scss +0 -322
- package/trash/scss-before-cqc-update/_units.scss +0 -48
- package/trash/scss-before-cqc-update/_utility.scss +0 -13
- package/trash/scss-before-cqc-update/_utils.scss +0 -211
- package/trash/scss-before-cqc-update/base/_color.scss +0 -14
- package/trash/scss-before-cqc-update/base/_elements.scss +0 -189
- package/trash/scss-before-cqc-update/base/_index.scss +0 -63
- package/trash/scss-before-cqc-update/base/_keyframes.scss +0 -74
- package/trash/scss-before-cqc-update/base/_layout.scss +0 -88
- package/trash/scss-before-cqc-update/base/_normalize.scss +0 -316
- package/trash/scss-before-cqc-update/base/_typography.scss +0 -42
- package/trash/scss-before-cqc-update/components/README.md +0 -5
- package/trash/scss-before-cqc-update/components/README.todos +0 -15
- package/trash/scss-before-cqc-update/components/_button.scss +0 -96
- package/trash/scss-before-cqc-update/components/_grid.scss +0 -671
- package/trash/scss-before-cqc-update/components/_index.scss +0 -70
- package/trash/scss-before-cqc-update/components/_links.scss +0 -35
- package/trash/scss-before-cqc-update/components/_list-lines.scss +0 -74
- package/trash/scss-before-cqc-update/components/_list-ordered.scss +0 -17
- package/trash/scss-before-cqc-update/components/_list-unordered.scss +0 -22
- package/trash/scss-before-cqc-update/components/_rule.scss +0 -94
- package/trash/scss-before-cqc-update/helpers/_color.scss +0 -15
- package/trash/scss-before-cqc-update/helpers/_display.scss +0 -73
- package/trash/scss-before-cqc-update/helpers/_index.scss +0 -68
- package/trash/scss-before-cqc-update/helpers/_print.scss +0 -59
- package/trash/scss-before-cqc-update/helpers/_typography.scss +0 -73
- package/trash/scss-before-cqc-update/helpers/_units.scss +0 -79
- package/trash/scss-before-cqc-update/helpers/_utilities.scss +0 -88
- package/trash/scss-before-cqc-update/stylesheets/README.md +0 -3
- package/trash/scss-before-cqc-update/stylesheets/full.scss +0 -17
- package/trash/scss-old/README.md +0 -58
- package/trash/scss-old/_breakpoint.scss +0 -140
- package/trash/scss-old/_button.scss +0 -223
- package/trash/scss-old/_calculate.scss +0 -64
- package/trash/scss-old/_color.scss +0 -200
- package/trash/scss-old/_element.scss +0 -262
- package/trash/scss-old/_grid.scss +0 -558
- package/trash/scss-old/_index.scss +0 -25
- package/trash/scss-old/_layout.scss +0 -170
- package/trash/scss-old/_path.scss +0 -58
- package/trash/scss-old/_selector.scss +0 -81
- package/trash/scss-old/_typography.scss +0 -320
- package/trash/scss-old/_units.scss +0 -47
- package/trash/scss-old/_utility.scss +0 -12
- package/trash/scss-old/_utils.scss +0 -186
- package/trash/scss-old/base/_color.scss +0 -13
- package/trash/scss-old/base/_elements.scss +0 -183
- package/trash/scss-old/base/_index.scss +0 -62
- package/trash/scss-old/base/_keyframes.scss +0 -74
- package/trash/scss-old/base/_layout.scss +0 -81
- package/trash/scss-old/base/_normalize.scss +0 -316
- package/trash/scss-old/base/_typography.scss +0 -42
- package/trash/scss-old/components/README.md +0 -5
- package/trash/scss-old/components/README.todos +0 -15
- package/trash/scss-old/components/_button.scss +0 -74
- package/trash/scss-old/components/_index.scss +0 -63
- package/trash/scss-old/components/_links.scss +0 -34
- package/trash/scss-old/components/_list-lines.scss +0 -73
- package/trash/scss-old/components/_list-ordered.scss +0 -16
- package/trash/scss-old/components/_list-unordered.scss +0 -21
- package/trash/scss-old/components/_rule.scss +0 -84
- package/trash/scss-old/helpers/_color.scss +0 -14
- package/trash/scss-old/helpers/_display.scss +0 -68
- package/trash/scss-old/helpers/_index.scss +0 -67
- package/trash/scss-old/helpers/_print.scss +0 -59
- package/trash/scss-old/helpers/_typography.scss +0 -73
- package/trash/scss-old/helpers/_units.scss +0 -68
- package/trash/scss-old/helpers/_utilities.scss +0 -82
- package/trash/scss-old/packages/README.md +0 -3
- package/trash/scss-old/packages/everything.scss +0 -17
- package/trash/scss-old-2/README.md +0 -58
- package/trash/scss-old-2/_breakpoint.scss +0 -139
- package/trash/scss-old-2/_button.scss +0 -223
- package/trash/scss-old-2/_calculate.scss +0 -64
- package/trash/scss-old-2/_color.scss +0 -202
- package/trash/scss-old-2/_element.scss +0 -263
- package/trash/scss-old-2/_grid.scss +0 -558
- package/trash/scss-old-2/_index.scss +0 -25
- package/trash/scss-old-2/_layout.scss +0 -170
- package/trash/scss-old-2/_path.scss +0 -58
- package/trash/scss-old-2/_selector.scss +0 -81
- package/trash/scss-old-2/_typography.scss +0 -320
- package/trash/scss-old-2/_units.scss +0 -47
- package/trash/scss-old-2/_utility.scss +0 -12
- package/trash/scss-old-2/_utils.scss +0 -186
- package/trash/scss-old-2/base/_color.scss +0 -13
- package/trash/scss-old-2/base/_elements.scss +0 -182
- package/trash/scss-old-2/base/_index.scss +0 -62
- package/trash/scss-old-2/base/_keyframes.scss +0 -73
- package/trash/scss-old-2/base/_layout.scss +0 -83
- package/trash/scss-old-2/base/_normalize.scss +0 -315
- package/trash/scss-old-2/base/_typography.scss +0 -41
- package/trash/scss-old-2/components/README.md +0 -5
- package/trash/scss-old-2/components/README.todos +0 -15
- package/trash/scss-old-2/components/_button.scss +0 -95
- package/trash/scss-old-2/components/_index.scss +0 -63
- package/trash/scss-old-2/components/_links.scss +0 -33
- package/trash/scss-old-2/components/_list-lines.scss +0 -73
- package/trash/scss-old-2/components/_list-ordered.scss +0 -16
- package/trash/scss-old-2/components/_list-unordered.scss +0 -21
- package/trash/scss-old-2/components/_rule.scss +0 -84
- package/trash/scss-old-2/helpers/_color.scss +0 -14
- package/trash/scss-old-2/helpers/_display.scss +0 -67
- package/trash/scss-old-2/helpers/_index.scss +0 -67
- package/trash/scss-old-2/helpers/_print.scss +0 -58
- package/trash/scss-old-2/helpers/_typography.scss +0 -72
- package/trash/scss-old-2/helpers/_units.scss +0 -68
- package/trash/scss-old-2/helpers/_utilities.scss +0 -81
- package/trash/scss-old-2/packages/README.md +0 -3
- package/trash/scss-old-2/packages/everything.scss +0 -17
- package/trash/scss-old-230729/README.md +0 -58
- package/trash/scss-old-230729/_breakpoint.scss +0 -139
- package/trash/scss-old-230729/_button.scss +0 -223
- package/trash/scss-old-230729/_calculate.scss +0 -64
- package/trash/scss-old-230729/_color.scss +0 -202
- package/trash/scss-old-230729/_element.scss +0 -273
- package/trash/scss-old-230729/_grid.scss +0 -694
- package/trash/scss-old-230729/_index.scss +0 -25
- package/trash/scss-old-230729/_layout.scss +0 -193
- package/trash/scss-old-230729/_path.scss +0 -58
- package/trash/scss-old-230729/_selector.scss +0 -81
- package/trash/scss-old-230729/_typography.scss +0 -320
- package/trash/scss-old-230729/_units.scss +0 -47
- package/trash/scss-old-230729/_utility.scss +0 -12
- package/trash/scss-old-230729/_utils.scss +0 -186
- package/trash/scss-old-230729/base/_color.scss +0 -13
- package/trash/scss-old-230729/base/_elements.scss +0 -188
- package/trash/scss-old-230729/base/_index.scss +0 -62
- package/trash/scss-old-230729/base/_keyframes.scss +0 -73
- package/trash/scss-old-230729/base/_layout.scss +0 -83
- package/trash/scss-old-230729/base/_normalize.scss +0 -315
- package/trash/scss-old-230729/base/_typography.scss +0 -41
- package/trash/scss-old-230729/components/README.md +0 -5
- package/trash/scss-old-230729/components/README.todos +0 -15
- package/trash/scss-old-230729/components/_button.scss +0 -95
- package/trash/scss-old-230729/components/_index.scss +0 -63
- package/trash/scss-old-230729/components/_links.scss +0 -34
- package/trash/scss-old-230729/components/_list-lines.scss +0 -73
- package/trash/scss-old-230729/components/_list-ordered.scss +0 -16
- package/trash/scss-old-230729/components/_list-unordered.scss +0 -21
- package/trash/scss-old-230729/components/_rule.scss +0 -93
- package/trash/scss-old-230729/helpers/_color.scss +0 -14
- package/trash/scss-old-230729/helpers/_display.scss +0 -73
- package/trash/scss-old-230729/helpers/_index.scss +0 -67
- package/trash/scss-old-230729/helpers/_print.scss +0 -58
- package/trash/scss-old-230729/helpers/_typography.scss +0 -72
- package/trash/scss-old-230729/helpers/_units.scss +0 -68
- package/trash/scss-old-230729/helpers/_utilities.scss +0 -87
- package/trash/scss-old-230729/packages/README.md +0 -3
- package/trash/scss-old-230729/packages/everything.scss +0 -17
- package/trash/vue/directives/background-image-url.js +0 -12
- package/trash/vue/helpers/add-required-components.js +0 -14
- package/trash/vue/ui/CollapsibleRegion/CollapsibleRegion.vue +0 -277
- package/trash/vue/ui/CollapsibleRegion/Demo.vue +0 -101
- package/trash/vue/ui/Dropdown/Dropdown.vue +0 -184
- package/trash/vue/ui/Modals/components/Modal.vue +0 -49
- package/trash/vue/ui/Modals/components/Modals.vue +0 -103
- package/trash/vue/ui/Modals/plugin.js +0 -215
- package/trash/vue/ui/Modals/readme.note +0 -10
- package/trash/vue/ui/Modals/reference/example-usage.vue +0 -27
- package/trash/vue/ui/Modals/reference/wcag-example/dialog.js +0 -324
- /package/js/{waypoints → deprecated/waypoints}/README.md +0 -0
- /package/js/{waypoints → deprecated/waypoints}/anchor-menu.js +0 -0
- /package/js/{waypoints → deprecated/waypoints}/element-waypoint.js +0 -0
- /package/js/{waypoints → deprecated/waypoints}/examples/page-link-menu.md +0 -0
- /package/js/{waypoints → deprecated/waypoints}/state-in-attribute.js +0 -0
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @todo - Need to have scroll handler check scroll position
|
|
3
|
-
* @todo - Determine if controls should be visible
|
|
4
|
-
* @todo - Make the amount the scroll controls move forward or backward based on amount or function
|
|
5
|
-
* the user can use this to increment by a certain number of items
|
|
6
|
-
* @todo - Provide accessible names to buttons but don't worry about hiding these from screenreaders
|
|
7
|
-
* @todo - Document that user could use something like [https://github.com/LachlanArthur/scroll-snap-api/tree/master/src] to have it go between items
|
|
8
|
-
*
|
|
9
|
-
*/
|
|
10
|
-
import { log, logError, logWarning } from "../utils/logger.js";
|
|
11
|
-
import { hasRequiredProps } from '../utils/object.js';
|
|
12
|
-
const requiredElements = [
|
|
13
|
-
"track",
|
|
14
|
-
"controls"
|
|
15
|
-
];
|
|
16
|
-
export class OverflowScroller {
|
|
17
|
-
static instances = [];
|
|
18
|
-
static defaults = {
|
|
19
|
-
namespace: "OverflowScroller",
|
|
20
|
-
events: {},
|
|
21
|
-
horizontal: true,
|
|
22
|
-
offsetStart: 100,
|
|
23
|
-
offsetEnd: 100,
|
|
24
|
-
amount: "auto",
|
|
25
|
-
}
|
|
26
|
-
constructor(elements, config) {
|
|
27
|
-
this.options = Object.assign({}, OverflowScroller.defaults, config);
|
|
28
|
-
if (!hasRequiredProps(requiredElements)) {
|
|
29
|
-
logError(this, 'Missing a required Element');
|
|
30
|
-
}
|
|
31
|
-
this.elements = {
|
|
32
|
-
...elements,
|
|
33
|
-
...this.createControls(elements.controls)
|
|
34
|
-
};
|
|
35
|
-
this.nextEnabled = true;
|
|
36
|
-
this.previousEnabled = true;
|
|
37
|
-
this.scrollHandler = (e) => this.onScroll(e);
|
|
38
|
-
this.elements.track.addEventListener("scroll", this.scrollHandler, { passive: true });
|
|
39
|
-
this.checkOverflow();
|
|
40
|
-
this.onScroll();
|
|
41
|
-
}
|
|
42
|
-
checkOverflow() {
|
|
43
|
-
const { track } = this.elements;
|
|
44
|
-
this.hasOverflow = track.scrollWidth > track.clientWidth;
|
|
45
|
-
}
|
|
46
|
-
createControls(context) {
|
|
47
|
-
const controls = document.createElement('ul');
|
|
48
|
-
const previousItem = document.createElement("li");
|
|
49
|
-
const nextItem = document.createElement("li");
|
|
50
|
-
const previous = this.createControlButton("previous");
|
|
51
|
-
const next = this.createControlButton("next");
|
|
52
|
-
const itemClass = this.getClass("controls-item");
|
|
53
|
-
nextItem.classList.add(itemClass);
|
|
54
|
-
nextItem.classList.add(itemClass + "--next");
|
|
55
|
-
previousItem.classList.add(itemClass);
|
|
56
|
-
previousItem.classList.add(itemClass + "--previous");
|
|
57
|
-
controls.classList.add(this.getClass("controls"));
|
|
58
|
-
previousItem.appendChild(previous);
|
|
59
|
-
nextItem.appendChild(next);
|
|
60
|
-
controls.appendChild(previousItem);
|
|
61
|
-
controls.appendChild(nextItem);
|
|
62
|
-
previous.addEventListener('click', this.previous.bind(this));
|
|
63
|
-
next.addEventListener('click', this.next.bind(this));
|
|
64
|
-
context.appendChild(controls);
|
|
65
|
-
|
|
66
|
-
return {
|
|
67
|
-
controls,
|
|
68
|
-
previousItem,
|
|
69
|
-
nextItem,
|
|
70
|
-
previous,
|
|
71
|
-
next
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
createControlButton(action) {
|
|
75
|
-
const button = document.createElement("button");
|
|
76
|
-
button.classList.add(this.getClass("control-button"));
|
|
77
|
-
button.classList.add(this.getClass(`control-button--${ action }`));
|
|
78
|
-
button.setAttribute("type", "button");
|
|
79
|
-
button.innerHTML = this.getControlContent(action);
|
|
80
|
-
return button;
|
|
81
|
-
}
|
|
82
|
-
getControlContent(action) {
|
|
83
|
-
return `
|
|
84
|
-
<span class="hidden-visually">${ action }</span>
|
|
85
|
-
<span aria-hidden="true">${ action === 'next' ? '→' : '←' }</span>
|
|
86
|
-
`;
|
|
87
|
-
}
|
|
88
|
-
onScroll(event) {
|
|
89
|
-
if (!this.hasOverflow) return;
|
|
90
|
-
this.onScrollHorizontal();
|
|
91
|
-
}
|
|
92
|
-
onScrollHorizontal() {
|
|
93
|
-
const { nextEnabled, previousEnabled } = this;
|
|
94
|
-
const { track } = this.elements;
|
|
95
|
-
const { offsetStart, offsetEnd } = this.options;
|
|
96
|
-
const { scrollWidth, clientWidth, scrollLeft } = track;
|
|
97
|
-
const atStart = scrollLeft <= offsetStart;
|
|
98
|
-
const atEnd = scrollWidth - scrollLeft - offsetEnd <= clientWidth;
|
|
99
|
-
if (atStart && previousEnabled) {
|
|
100
|
-
this.setControlState("previous", false);
|
|
101
|
-
} else if (!atStart && !previousEnabled) {
|
|
102
|
-
this.setControlState("previous", true);
|
|
103
|
-
}
|
|
104
|
-
if (atEnd && nextEnabled) {
|
|
105
|
-
this.setControlState("next", false);
|
|
106
|
-
} else if (!atEnd && !nextEnabled) {
|
|
107
|
-
this.setControlState("next", true);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
setControlState(dir, enabled) {
|
|
111
|
-
const isNext = dir === "next";
|
|
112
|
-
const { next, nextItem, previous, previousItem } = this.elements;
|
|
113
|
-
const item = isNext ? nextItem : previousItem;
|
|
114
|
-
const button = isNext ? next : previous;
|
|
115
|
-
const classlistMethod = enabled ? 'remove' : 'add';
|
|
116
|
-
|
|
117
|
-
item.classList[classlistMethod](this.getClass("controls-item--disabled"));
|
|
118
|
-
button.classList[enabled ? 'remove' : 'add'](this.getClass("control--disabled"));
|
|
119
|
-
if (enabled) {
|
|
120
|
-
button.removeAttribute("disabled");
|
|
121
|
-
} else {
|
|
122
|
-
button.setAttribute("disabled", "");
|
|
123
|
-
}
|
|
124
|
-
this[isNext ? 'nextEnabled' : 'previousEnabled'] = enabled;
|
|
125
|
-
}
|
|
126
|
-
resolveAmount(dir) {
|
|
127
|
-
const isNext = dir === "next";
|
|
128
|
-
const { amount } = this.options;
|
|
129
|
-
const { scrollLeft, offsetWidth } = this.elements.track;
|
|
130
|
-
if (amount === "auto") {
|
|
131
|
-
return isNext ? scrollLeft + offsetWidth : scrollLeft - offsetWidth;
|
|
132
|
-
} else if (typeof amount === "function") {
|
|
133
|
-
return amount(this, dir);
|
|
134
|
-
} else if (typeof amount === "number") {
|
|
135
|
-
return isNext ? scrollLeft + amount : scrollLeft - amount;
|
|
136
|
-
}
|
|
137
|
-
logError("Unable to resolve amount for scroll");
|
|
138
|
-
return 500;
|
|
139
|
-
}
|
|
140
|
-
next() {
|
|
141
|
-
this.elements.track.scrollTo({
|
|
142
|
-
top: 0,
|
|
143
|
-
left: this.resolveAmount("next"),
|
|
144
|
-
behavior: "smooth"
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
previous() {
|
|
148
|
-
this.elements.track.scrollTo({
|
|
149
|
-
top: 0,
|
|
150
|
-
left: this.resolveAmount("previous"),
|
|
151
|
-
behavior: "smooth"
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
getClass(child) {
|
|
155
|
-
const { namespace } = this.options;
|
|
156
|
-
return `${ namespace }__${ child }`;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
export default OverflowScroller;
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
// =============================================================================
|
|
2
|
-
// Grabs Breakpoint from CSS
|
|
3
|
-
// =============================================================================
|
|
4
|
-
|
|
5
|
-
// Version: 1.0.3
|
|
6
|
-
// Changes:
|
|
7
|
-
// 1.0.2 | Updates to work with the updated modal script which has
|
|
8
|
-
// to attach it's own trigger handlers
|
|
9
|
-
// Description: Drupal programmatic modal insertion script (interface = jquery prototype)
|
|
10
|
-
// Changes: 1.0.2 - Added ability to pass class to container
|
|
11
|
-
|
|
12
|
-
import { setupModal, show, attachTriggers, triggerAttr } from "./modals.js";
|
|
13
|
-
import { dispatch } from "./events.js";
|
|
14
|
-
|
|
15
|
-
const $ = window.jQuery;
|
|
16
|
-
const containerId = 'programmatic-modal';
|
|
17
|
-
const selectorTrigger = '[data-programmatic-modal-trigger]';
|
|
18
|
-
const defaults = {
|
|
19
|
-
removeOnClose: true,
|
|
20
|
-
settings: {},
|
|
21
|
-
classes: []
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
let count = 0;
|
|
25
|
-
let cachedTrigger;
|
|
26
|
-
|
|
27
|
-
// Drupal calls the jquery 'programaticModal' from InvokeCommand())
|
|
28
|
-
$.fn.programaticModal = newModal;
|
|
29
|
-
|
|
30
|
-
// keep track of trigger clicks to return user on close (Drupal doesn't send trigger clicked, that I know of)
|
|
31
|
-
document.addEventListener('click', cacheTrigger, true);
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Sets up a new ajax triggered modal and opens it
|
|
35
|
-
* @param {String} args Arguments provided from Drupal (JSON format)
|
|
36
|
-
*/
|
|
37
|
-
function newModal(args) {
|
|
38
|
-
args = args ? JSON.parse(args) : {};
|
|
39
|
-
const config = Object.assign({}, defaults, args);
|
|
40
|
-
const modal = document.querySelector(`#${ containerId }`);
|
|
41
|
-
const id = setModalId(modal, config.id);
|
|
42
|
-
const classes = ["programmatic-modal-content", ...config.classes ];
|
|
43
|
-
modal.classList.add(...classes);
|
|
44
|
-
// Add a new placeholder container
|
|
45
|
-
newContainer();
|
|
46
|
-
// Intialize and open the new modal
|
|
47
|
-
setupModal(modal, config.settings);
|
|
48
|
-
show(id, {
|
|
49
|
-
onShow(modal) {
|
|
50
|
-
dispatch('pageModified', modal);
|
|
51
|
-
},
|
|
52
|
-
onClose(element) {
|
|
53
|
-
if (config.removeOnClose) {
|
|
54
|
-
element.parentNode.removeChild(element);
|
|
55
|
-
}
|
|
56
|
-
// For accessiblity/usablity (return to last clicked trigger)
|
|
57
|
-
if (cachedTrigger) {
|
|
58
|
-
cachedTrigger.focus();
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
// Attach handler so that it can reopen that modal
|
|
63
|
-
if (!config.removeOnClose && cachedTrigger) {
|
|
64
|
-
cachedTrigger.setAttribute(triggerAttr, id);
|
|
65
|
-
attachTriggers();
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Sets and returns the modal's id
|
|
70
|
-
*/
|
|
71
|
-
function setModalId(element, id) {
|
|
72
|
-
element.id = id || `programmatic-modal--id-${ ++count }`;
|
|
73
|
-
return element.id;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Once we remove the placeholder containers id (above)
|
|
77
|
-
* we create another programmatic placeholder container
|
|
78
|
-
* for the next programmitic container
|
|
79
|
-
*/
|
|
80
|
-
function newContainer() {
|
|
81
|
-
const container = document.createElement('div');
|
|
82
|
-
container.id = 'programmatic-modal';
|
|
83
|
-
document.body.append(container);
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Document click handler, will cache the trigger that caused the modal to open
|
|
87
|
-
*/
|
|
88
|
-
function cacheTrigger(event) {
|
|
89
|
-
const trigger = event.target.closest(selectorTrigger);
|
|
90
|
-
if (trigger) cachedTrigger = trigger;
|
|
91
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
// =============================================================================
|
|
2
|
-
// Element Resizer
|
|
3
|
-
// =============================================================================
|
|
4
|
-
|
|
5
|
-
// Version: 1.0.1
|
|
6
|
-
|
|
7
|
-
// Description: Adds resizing ability to an element (only horizontal currently)
|
|
8
|
-
|
|
9
|
-
// Reference: - http://jsfiddle.net/3jMQD/614/
|
|
10
|
-
|
|
11
|
-
import { logError } from "../utils/logger.js";
|
|
12
|
-
|
|
13
|
-
export default class ElementResizer {
|
|
14
|
-
static defaults = {
|
|
15
|
-
debug: false,
|
|
16
|
-
overrideMaxWidth: false,
|
|
17
|
-
fromLeft: false
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
*
|
|
21
|
-
* @param {Node} container Container to be resize
|
|
22
|
-
* @param {Node} control Resize handle element
|
|
23
|
-
* @param {Object} options Defualt can be changed on class
|
|
24
|
-
* @param {Boolean} options.debug Enable non-essential debugging logs
|
|
25
|
-
* @param {Boolean} options.overrideMaxWidth When script is activated by handle remove the elements max-width and allow the width of the resize to exceed the max (default false)
|
|
26
|
-
* @param {Boolean} options.fromLeft The script should assume the handle is on the left side of the element
|
|
27
|
-
*/
|
|
28
|
-
constructor(container, control, options) {
|
|
29
|
-
if (!control || !container) {
|
|
30
|
-
logError(this, "Missing required elements 'control' or 'container'");
|
|
31
|
-
}
|
|
32
|
-
this.options = Object.assign({}, ElementResizer.defaults, options);
|
|
33
|
-
this.container = container;
|
|
34
|
-
this.control = control;
|
|
35
|
-
this.handlerMousedown = this.onMousedown.bind(this);
|
|
36
|
-
this.control.addEventListener('mousedown', this.handlerMousedown);
|
|
37
|
-
}
|
|
38
|
-
destroy() {
|
|
39
|
-
this.control.removeEventListener('mousedown', this.handlerMousedown);
|
|
40
|
-
}
|
|
41
|
-
onMousedown(e) {
|
|
42
|
-
const { overrideMaxWidth, fromLeft } = this.options;
|
|
43
|
-
const doc = document.documentElement;
|
|
44
|
-
const win = document.defaultView;
|
|
45
|
-
const x = e.clientX;
|
|
46
|
-
const width = parseInt(win.getComputedStyle(this.container).width, 10);
|
|
47
|
-
if (overrideMaxWidth) {
|
|
48
|
-
this.container.style.maxWidth = 'none';
|
|
49
|
-
}
|
|
50
|
-
const mousemove = event => {
|
|
51
|
-
const polarity = fromLeft ? -1 : 1;
|
|
52
|
-
this.container.style.width = `${ width + ((event.clientX - x) * polarity) }px`;
|
|
53
|
-
};
|
|
54
|
-
const cleanup = () => {
|
|
55
|
-
doc.removeEventListener('mousemove', mousemove, false);
|
|
56
|
-
};
|
|
57
|
-
doc.addEventListener('mousemove', mousemove, false);
|
|
58
|
-
doc.addEventListener('mouseup', cleanup, { capture: true, once: true });
|
|
59
|
-
}
|
|
60
|
-
}
|