@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.
Files changed (285) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +3 -1
  3. package/js/deprecated/mini-collapsible.js +1 -1
  4. package/js/events/index.js +4 -1
  5. package/js/helpers/css-breakpoint.js +5 -7
  6. package/js/helpers/file-save.js +4 -0
  7. package/js/helpers/node-data-manager.js +4 -0
  8. package/js/helpers/pause-youtube-video.js +4 -0
  9. package/js/helpers/scrollbar-width-property.js +6 -2
  10. package/js/index.js +0 -2
  11. package/js/ui/flipcard.js +5 -1
  12. package/js/ui/grid.js +4 -0
  13. package/js/ui/modals.js +4 -1
  14. package/js/ui/overflow-scroller-pager.js +3 -0
  15. package/js/ui/overflow-scroller.js +4 -1
  16. package/js/ui/programmatic-modal.js +3 -0
  17. package/js/ui/resizer.js +3 -0
  18. package/js/ui/slider.js +7 -4
  19. package/js/ui/tabs.js +3 -0
  20. package/js/ui/tooltip.js +3 -0
  21. package/js/utils/logger.js +3 -0
  22. package/package.json +20 -11
  23. package/scss/_breakpoint.scss +3 -4
  24. package/scss/_button.scss +4 -4
  25. package/scss/_color.scss +2 -2
  26. package/scss/_grid.scss +0 -1
  27. package/scss/_layout.scss +2 -3
  28. package/scss/_typography.scss +2 -3
  29. package/scss/_utils.scss +21 -4
  30. package/scss/base/_normalize.scss +1 -1
  31. package/scss/helpers/_units.scss +7 -11
  32. package/scss/stylesheets/full.scss +1 -4
  33. package/js/polyfills/element-closest.js +0 -17
  34. package/js/utils/array.js +0 -28
  35. package/js/utils/dom.js +0 -122
  36. package/js/utils/object.js +0 -22
  37. package/js/utils/performance.js +0 -43
  38. package/js/utils/regex.js +0 -10
  39. package/js/utils/string.js +0 -107
  40. package/trash/js-old/deprecated/doc-ready.js +0 -28
  41. package/trash/js-old/deprecated/jquery-prototypes.js +0 -309
  42. package/trash/js-old/deprecated/mini-collapsible-popper-positioning.js +0 -126
  43. package/trash/js-old/deprecated/mini-collapsible.js +0 -607
  44. package/trash/js-old/deprecated/script-loader.js +0 -60
  45. package/trash/js-old/events/index.js +0 -42
  46. package/trash/js-old/helpers/css-breakpoint.js +0 -247
  47. package/trash/js-old/helpers/file-save.js +0 -48
  48. package/trash/js-old/helpers/node-data-manager.js +0 -74
  49. package/trash/js-old/helpers/pause-youtube-video.js +0 -42
  50. package/trash/js-old/index.js +0 -15
  51. package/trash/js-old/polyfills/element-closest.js +0 -17
  52. package/trash/js-old/ui/flipcard.js +0 -202
  53. package/trash/js-old/ui/grid.js +0 -67
  54. package/trash/js-old/ui/modals.js +0 -219
  55. package/trash/js-old/ui/programmatic-modal.js +0 -91
  56. package/trash/js-old/ui/resizer.js +0 -60
  57. package/trash/js-old/ui/slider.js +0 -469
  58. package/trash/js-old/ui/tabs.js +0 -109
  59. package/trash/js-old/ui/tooltip.js +0 -82
  60. package/trash/js-old/utils/array.js +0 -28
  61. package/trash/js-old/utils/dom.js +0 -122
  62. package/trash/js-old/utils/logger.js +0 -69
  63. package/trash/js-old/utils/object.js +0 -22
  64. package/trash/js-old/utils/performance.js +0 -43
  65. package/trash/js-old/utils/regex.js +0 -10
  66. package/trash/js-old/utils/string.js +0 -107
  67. package/trash/js-old/waypoints/README.md +0 -3
  68. package/trash/js-old/waypoints/anchor-menu.js +0 -76
  69. package/trash/js-old/waypoints/element-waypoint.js +0 -75
  70. package/trash/js-old/waypoints/examples/page-link-menu.md +0 -106
  71. package/trash/js-old/waypoints/state-in-attribute.js +0 -32
  72. package/trash/js-old-230729/deprecated/doc-ready.js +0 -28
  73. package/trash/js-old-230729/deprecated/jquery-prototypes.js +0 -309
  74. package/trash/js-old-230729/deprecated/mini-collapsible-popper-positioning.js +0 -126
  75. package/trash/js-old-230729/deprecated/mini-collapsible.js +0 -607
  76. package/trash/js-old-230729/deprecated/script-loader.js +0 -60
  77. package/trash/js-old-230729/events/index.js +0 -42
  78. package/trash/js-old-230729/helpers/css-breakpoint.js +0 -247
  79. package/trash/js-old-230729/helpers/file-save.js +0 -48
  80. package/trash/js-old-230729/helpers/node-data-manager.js +0 -74
  81. package/trash/js-old-230729/helpers/pause-youtube-video.js +0 -42
  82. package/trash/js-old-230729/helpers/scrollbar-width-property.js +0 -10
  83. package/trash/js-old-230729/index.js +0 -15
  84. package/trash/js-old-230729/polyfills/element-closest.js +0 -17
  85. package/trash/js-old-230729/ui/flipcard.js +0 -202
  86. package/trash/js-old-230729/ui/grid.js +0 -67
  87. package/trash/js-old-230729/ui/modals.js +0 -219
  88. package/trash/js-old-230729/ui/overflow-scroller-pager.js +0 -58
  89. package/trash/js-old-230729/ui/overflow-scroller.js +0 -160
  90. package/trash/js-old-230729/ui/programmatic-modal.js +0 -91
  91. package/trash/js-old-230729/ui/resizer.js +0 -60
  92. package/trash/js-old-230729/ui/slider.js +0 -468
  93. package/trash/js-old-230729/ui/tabs.js +0 -109
  94. package/trash/js-old-230729/ui/tooltip.js +0 -82
  95. package/trash/js-old-230729/utils/array.js +0 -28
  96. package/trash/js-old-230729/utils/dom.js +0 -122
  97. package/trash/js-old-230729/utils/logger.js +0 -69
  98. package/trash/js-old-230729/utils/object.js +0 -22
  99. package/trash/js-old-230729/utils/performance.js +0 -43
  100. package/trash/js-old-230729/utils/regex.js +0 -10
  101. package/trash/js-old-230729/utils/string.js +0 -107
  102. package/trash/js-old-230729/waypoints/README.md +0 -3
  103. package/trash/js-old-230729/waypoints/anchor-menu.js +0 -76
  104. package/trash/js-old-230729/waypoints/element-waypoint.js +0 -75
  105. package/trash/js-old-230729/waypoints/examples/page-link-menu.md +0 -106
  106. package/trash/js-old-230729/waypoints/state-in-attribute.js +0 -32
  107. package/trash/logo-1.svg +0 -13
  108. package/trash/logo.svg +0 -16
  109. package/trash/scss-before-cqc-update/README.md +0 -58
  110. package/trash/scss-before-cqc-update/_breakpoint.scss +0 -190
  111. package/trash/scss-before-cqc-update/_button.scss +0 -229
  112. package/trash/scss-before-cqc-update/_calculate.scss +0 -65
  113. package/trash/scss-before-cqc-update/_color.scss +0 -211
  114. package/trash/scss-before-cqc-update/_cssvar.scss +0 -116
  115. package/trash/scss-before-cqc-update/_element.scss +0 -275
  116. package/trash/scss-before-cqc-update/_index.scss +0 -29
  117. package/trash/scss-before-cqc-update/_layout.scss +0 -247
  118. package/trash/scss-before-cqc-update/_path.scss +0 -59
  119. package/trash/scss-before-cqc-update/_selector.scss +0 -82
  120. package/trash/scss-before-cqc-update/_typography.scss +0 -322
  121. package/trash/scss-before-cqc-update/_units.scss +0 -48
  122. package/trash/scss-before-cqc-update/_utility.scss +0 -13
  123. package/trash/scss-before-cqc-update/_utils.scss +0 -211
  124. package/trash/scss-before-cqc-update/base/_color.scss +0 -14
  125. package/trash/scss-before-cqc-update/base/_elements.scss +0 -189
  126. package/trash/scss-before-cqc-update/base/_index.scss +0 -63
  127. package/trash/scss-before-cqc-update/base/_keyframes.scss +0 -74
  128. package/trash/scss-before-cqc-update/base/_layout.scss +0 -88
  129. package/trash/scss-before-cqc-update/base/_normalize.scss +0 -316
  130. package/trash/scss-before-cqc-update/base/_typography.scss +0 -42
  131. package/trash/scss-before-cqc-update/components/README.md +0 -5
  132. package/trash/scss-before-cqc-update/components/README.todos +0 -15
  133. package/trash/scss-before-cqc-update/components/_button.scss +0 -96
  134. package/trash/scss-before-cqc-update/components/_grid.scss +0 -671
  135. package/trash/scss-before-cqc-update/components/_index.scss +0 -70
  136. package/trash/scss-before-cqc-update/components/_links.scss +0 -35
  137. package/trash/scss-before-cqc-update/components/_list-lines.scss +0 -74
  138. package/trash/scss-before-cqc-update/components/_list-ordered.scss +0 -17
  139. package/trash/scss-before-cqc-update/components/_list-unordered.scss +0 -22
  140. package/trash/scss-before-cqc-update/components/_rule.scss +0 -94
  141. package/trash/scss-before-cqc-update/helpers/_color.scss +0 -15
  142. package/trash/scss-before-cqc-update/helpers/_display.scss +0 -73
  143. package/trash/scss-before-cqc-update/helpers/_index.scss +0 -68
  144. package/trash/scss-before-cqc-update/helpers/_print.scss +0 -59
  145. package/trash/scss-before-cqc-update/helpers/_typography.scss +0 -73
  146. package/trash/scss-before-cqc-update/helpers/_units.scss +0 -79
  147. package/trash/scss-before-cqc-update/helpers/_utilities.scss +0 -88
  148. package/trash/scss-before-cqc-update/stylesheets/README.md +0 -3
  149. package/trash/scss-before-cqc-update/stylesheets/full.scss +0 -17
  150. package/trash/scss-old/README.md +0 -58
  151. package/trash/scss-old/_breakpoint.scss +0 -140
  152. package/trash/scss-old/_button.scss +0 -223
  153. package/trash/scss-old/_calculate.scss +0 -64
  154. package/trash/scss-old/_color.scss +0 -200
  155. package/trash/scss-old/_element.scss +0 -262
  156. package/trash/scss-old/_grid.scss +0 -558
  157. package/trash/scss-old/_index.scss +0 -25
  158. package/trash/scss-old/_layout.scss +0 -170
  159. package/trash/scss-old/_path.scss +0 -58
  160. package/trash/scss-old/_selector.scss +0 -81
  161. package/trash/scss-old/_typography.scss +0 -320
  162. package/trash/scss-old/_units.scss +0 -47
  163. package/trash/scss-old/_utility.scss +0 -12
  164. package/trash/scss-old/_utils.scss +0 -186
  165. package/trash/scss-old/base/_color.scss +0 -13
  166. package/trash/scss-old/base/_elements.scss +0 -183
  167. package/trash/scss-old/base/_index.scss +0 -62
  168. package/trash/scss-old/base/_keyframes.scss +0 -74
  169. package/trash/scss-old/base/_layout.scss +0 -81
  170. package/trash/scss-old/base/_normalize.scss +0 -316
  171. package/trash/scss-old/base/_typography.scss +0 -42
  172. package/trash/scss-old/components/README.md +0 -5
  173. package/trash/scss-old/components/README.todos +0 -15
  174. package/trash/scss-old/components/_button.scss +0 -74
  175. package/trash/scss-old/components/_index.scss +0 -63
  176. package/trash/scss-old/components/_links.scss +0 -34
  177. package/trash/scss-old/components/_list-lines.scss +0 -73
  178. package/trash/scss-old/components/_list-ordered.scss +0 -16
  179. package/trash/scss-old/components/_list-unordered.scss +0 -21
  180. package/trash/scss-old/components/_rule.scss +0 -84
  181. package/trash/scss-old/helpers/_color.scss +0 -14
  182. package/trash/scss-old/helpers/_display.scss +0 -68
  183. package/trash/scss-old/helpers/_index.scss +0 -67
  184. package/trash/scss-old/helpers/_print.scss +0 -59
  185. package/trash/scss-old/helpers/_typography.scss +0 -73
  186. package/trash/scss-old/helpers/_units.scss +0 -68
  187. package/trash/scss-old/helpers/_utilities.scss +0 -82
  188. package/trash/scss-old/packages/README.md +0 -3
  189. package/trash/scss-old/packages/everything.scss +0 -17
  190. package/trash/scss-old-2/README.md +0 -58
  191. package/trash/scss-old-2/_breakpoint.scss +0 -139
  192. package/trash/scss-old-2/_button.scss +0 -223
  193. package/trash/scss-old-2/_calculate.scss +0 -64
  194. package/trash/scss-old-2/_color.scss +0 -202
  195. package/trash/scss-old-2/_element.scss +0 -263
  196. package/trash/scss-old-2/_grid.scss +0 -558
  197. package/trash/scss-old-2/_index.scss +0 -25
  198. package/trash/scss-old-2/_layout.scss +0 -170
  199. package/trash/scss-old-2/_path.scss +0 -58
  200. package/trash/scss-old-2/_selector.scss +0 -81
  201. package/trash/scss-old-2/_typography.scss +0 -320
  202. package/trash/scss-old-2/_units.scss +0 -47
  203. package/trash/scss-old-2/_utility.scss +0 -12
  204. package/trash/scss-old-2/_utils.scss +0 -186
  205. package/trash/scss-old-2/base/_color.scss +0 -13
  206. package/trash/scss-old-2/base/_elements.scss +0 -182
  207. package/trash/scss-old-2/base/_index.scss +0 -62
  208. package/trash/scss-old-2/base/_keyframes.scss +0 -73
  209. package/trash/scss-old-2/base/_layout.scss +0 -83
  210. package/trash/scss-old-2/base/_normalize.scss +0 -315
  211. package/trash/scss-old-2/base/_typography.scss +0 -41
  212. package/trash/scss-old-2/components/README.md +0 -5
  213. package/trash/scss-old-2/components/README.todos +0 -15
  214. package/trash/scss-old-2/components/_button.scss +0 -95
  215. package/trash/scss-old-2/components/_index.scss +0 -63
  216. package/trash/scss-old-2/components/_links.scss +0 -33
  217. package/trash/scss-old-2/components/_list-lines.scss +0 -73
  218. package/trash/scss-old-2/components/_list-ordered.scss +0 -16
  219. package/trash/scss-old-2/components/_list-unordered.scss +0 -21
  220. package/trash/scss-old-2/components/_rule.scss +0 -84
  221. package/trash/scss-old-2/helpers/_color.scss +0 -14
  222. package/trash/scss-old-2/helpers/_display.scss +0 -67
  223. package/trash/scss-old-2/helpers/_index.scss +0 -67
  224. package/trash/scss-old-2/helpers/_print.scss +0 -58
  225. package/trash/scss-old-2/helpers/_typography.scss +0 -72
  226. package/trash/scss-old-2/helpers/_units.scss +0 -68
  227. package/trash/scss-old-2/helpers/_utilities.scss +0 -81
  228. package/trash/scss-old-2/packages/README.md +0 -3
  229. package/trash/scss-old-2/packages/everything.scss +0 -17
  230. package/trash/scss-old-230729/README.md +0 -58
  231. package/trash/scss-old-230729/_breakpoint.scss +0 -139
  232. package/trash/scss-old-230729/_button.scss +0 -223
  233. package/trash/scss-old-230729/_calculate.scss +0 -64
  234. package/trash/scss-old-230729/_color.scss +0 -202
  235. package/trash/scss-old-230729/_element.scss +0 -273
  236. package/trash/scss-old-230729/_grid.scss +0 -694
  237. package/trash/scss-old-230729/_index.scss +0 -25
  238. package/trash/scss-old-230729/_layout.scss +0 -193
  239. package/trash/scss-old-230729/_path.scss +0 -58
  240. package/trash/scss-old-230729/_selector.scss +0 -81
  241. package/trash/scss-old-230729/_typography.scss +0 -320
  242. package/trash/scss-old-230729/_units.scss +0 -47
  243. package/trash/scss-old-230729/_utility.scss +0 -12
  244. package/trash/scss-old-230729/_utils.scss +0 -186
  245. package/trash/scss-old-230729/base/_color.scss +0 -13
  246. package/trash/scss-old-230729/base/_elements.scss +0 -188
  247. package/trash/scss-old-230729/base/_index.scss +0 -62
  248. package/trash/scss-old-230729/base/_keyframes.scss +0 -73
  249. package/trash/scss-old-230729/base/_layout.scss +0 -83
  250. package/trash/scss-old-230729/base/_normalize.scss +0 -315
  251. package/trash/scss-old-230729/base/_typography.scss +0 -41
  252. package/trash/scss-old-230729/components/README.md +0 -5
  253. package/trash/scss-old-230729/components/README.todos +0 -15
  254. package/trash/scss-old-230729/components/_button.scss +0 -95
  255. package/trash/scss-old-230729/components/_index.scss +0 -63
  256. package/trash/scss-old-230729/components/_links.scss +0 -34
  257. package/trash/scss-old-230729/components/_list-lines.scss +0 -73
  258. package/trash/scss-old-230729/components/_list-ordered.scss +0 -16
  259. package/trash/scss-old-230729/components/_list-unordered.scss +0 -21
  260. package/trash/scss-old-230729/components/_rule.scss +0 -93
  261. package/trash/scss-old-230729/helpers/_color.scss +0 -14
  262. package/trash/scss-old-230729/helpers/_display.scss +0 -73
  263. package/trash/scss-old-230729/helpers/_index.scss +0 -67
  264. package/trash/scss-old-230729/helpers/_print.scss +0 -58
  265. package/trash/scss-old-230729/helpers/_typography.scss +0 -72
  266. package/trash/scss-old-230729/helpers/_units.scss +0 -68
  267. package/trash/scss-old-230729/helpers/_utilities.scss +0 -87
  268. package/trash/scss-old-230729/packages/README.md +0 -3
  269. package/trash/scss-old-230729/packages/everything.scss +0 -17
  270. package/trash/vue/directives/background-image-url.js +0 -12
  271. package/trash/vue/helpers/add-required-components.js +0 -14
  272. package/trash/vue/ui/CollapsibleRegion/CollapsibleRegion.vue +0 -277
  273. package/trash/vue/ui/CollapsibleRegion/Demo.vue +0 -101
  274. package/trash/vue/ui/Dropdown/Dropdown.vue +0 -184
  275. package/trash/vue/ui/Modals/components/Modal.vue +0 -49
  276. package/trash/vue/ui/Modals/components/Modals.vue +0 -103
  277. package/trash/vue/ui/Modals/plugin.js +0 -215
  278. package/trash/vue/ui/Modals/readme.note +0 -10
  279. package/trash/vue/ui/Modals/reference/example-usage.vue +0 -27
  280. package/trash/vue/ui/Modals/reference/wcag-example/dialog.js +0 -324
  281. /package/js/{waypoints → deprecated/waypoints}/README.md +0 -0
  282. /package/js/{waypoints → deprecated/waypoints}/anchor-menu.js +0 -0
  283. /package/js/{waypoints → deprecated/waypoints}/element-waypoint.js +0 -0
  284. /package/js/{waypoints → deprecated/waypoints}/examples/page-link-menu.md +0 -0
  285. /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
- }