@ulu/frontend 0.0.3 → 0.0.5

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 (246) hide show
  1. package/package.json +11 -10
  2. package/scss/_grid.scss +0 -1
  3. package/scss/_typography.scss +0 -1
  4. package/scss/helpers/_units.scss +1 -6
  5. package/scss/stylesheets/full.scss +1 -4
  6. package/trash/js-old/deprecated/doc-ready.js +0 -28
  7. package/trash/js-old/deprecated/jquery-prototypes.js +0 -309
  8. package/trash/js-old/deprecated/mini-collapsible-popper-positioning.js +0 -126
  9. package/trash/js-old/deprecated/mini-collapsible.js +0 -607
  10. package/trash/js-old/deprecated/script-loader.js +0 -60
  11. package/trash/js-old/events/index.js +0 -42
  12. package/trash/js-old/helpers/css-breakpoint.js +0 -247
  13. package/trash/js-old/helpers/file-save.js +0 -48
  14. package/trash/js-old/helpers/node-data-manager.js +0 -74
  15. package/trash/js-old/helpers/pause-youtube-video.js +0 -42
  16. package/trash/js-old/index.js +0 -15
  17. package/trash/js-old/polyfills/element-closest.js +0 -17
  18. package/trash/js-old/ui/flipcard.js +0 -202
  19. package/trash/js-old/ui/grid.js +0 -67
  20. package/trash/js-old/ui/modals.js +0 -219
  21. package/trash/js-old/ui/programmatic-modal.js +0 -91
  22. package/trash/js-old/ui/resizer.js +0 -60
  23. package/trash/js-old/ui/slider.js +0 -469
  24. package/trash/js-old/ui/tabs.js +0 -109
  25. package/trash/js-old/ui/tooltip.js +0 -82
  26. package/trash/js-old/utils/array.js +0 -28
  27. package/trash/js-old/utils/dom.js +0 -122
  28. package/trash/js-old/utils/logger.js +0 -69
  29. package/trash/js-old/utils/object.js +0 -22
  30. package/trash/js-old/utils/performance.js +0 -43
  31. package/trash/js-old/utils/regex.js +0 -10
  32. package/trash/js-old/utils/string.js +0 -107
  33. package/trash/js-old/waypoints/README.md +0 -3
  34. package/trash/js-old/waypoints/anchor-menu.js +0 -76
  35. package/trash/js-old/waypoints/element-waypoint.js +0 -75
  36. package/trash/js-old/waypoints/examples/page-link-menu.md +0 -106
  37. package/trash/js-old/waypoints/state-in-attribute.js +0 -32
  38. package/trash/js-old-230729/deprecated/doc-ready.js +0 -28
  39. package/trash/js-old-230729/deprecated/jquery-prototypes.js +0 -309
  40. package/trash/js-old-230729/deprecated/mini-collapsible-popper-positioning.js +0 -126
  41. package/trash/js-old-230729/deprecated/mini-collapsible.js +0 -607
  42. package/trash/js-old-230729/deprecated/script-loader.js +0 -60
  43. package/trash/js-old-230729/events/index.js +0 -42
  44. package/trash/js-old-230729/helpers/css-breakpoint.js +0 -247
  45. package/trash/js-old-230729/helpers/file-save.js +0 -48
  46. package/trash/js-old-230729/helpers/node-data-manager.js +0 -74
  47. package/trash/js-old-230729/helpers/pause-youtube-video.js +0 -42
  48. package/trash/js-old-230729/helpers/scrollbar-width-property.js +0 -10
  49. package/trash/js-old-230729/index.js +0 -15
  50. package/trash/js-old-230729/polyfills/element-closest.js +0 -17
  51. package/trash/js-old-230729/ui/flipcard.js +0 -202
  52. package/trash/js-old-230729/ui/grid.js +0 -67
  53. package/trash/js-old-230729/ui/modals.js +0 -219
  54. package/trash/js-old-230729/ui/overflow-scroller-pager.js +0 -58
  55. package/trash/js-old-230729/ui/overflow-scroller.js +0 -160
  56. package/trash/js-old-230729/ui/programmatic-modal.js +0 -91
  57. package/trash/js-old-230729/ui/resizer.js +0 -60
  58. package/trash/js-old-230729/ui/slider.js +0 -468
  59. package/trash/js-old-230729/ui/tabs.js +0 -109
  60. package/trash/js-old-230729/ui/tooltip.js +0 -82
  61. package/trash/js-old-230729/utils/array.js +0 -28
  62. package/trash/js-old-230729/utils/dom.js +0 -122
  63. package/trash/js-old-230729/utils/logger.js +0 -69
  64. package/trash/js-old-230729/utils/object.js +0 -22
  65. package/trash/js-old-230729/utils/performance.js +0 -43
  66. package/trash/js-old-230729/utils/regex.js +0 -10
  67. package/trash/js-old-230729/utils/string.js +0 -107
  68. package/trash/js-old-230729/waypoints/README.md +0 -3
  69. package/trash/js-old-230729/waypoints/anchor-menu.js +0 -76
  70. package/trash/js-old-230729/waypoints/element-waypoint.js +0 -75
  71. package/trash/js-old-230729/waypoints/examples/page-link-menu.md +0 -106
  72. package/trash/js-old-230729/waypoints/state-in-attribute.js +0 -32
  73. package/trash/logo-1.svg +0 -13
  74. package/trash/logo.svg +0 -16
  75. package/trash/scss-before-cqc-update/README.md +0 -58
  76. package/trash/scss-before-cqc-update/_breakpoint.scss +0 -190
  77. package/trash/scss-before-cqc-update/_button.scss +0 -229
  78. package/trash/scss-before-cqc-update/_calculate.scss +0 -65
  79. package/trash/scss-before-cqc-update/_color.scss +0 -211
  80. package/trash/scss-before-cqc-update/_cssvar.scss +0 -116
  81. package/trash/scss-before-cqc-update/_element.scss +0 -275
  82. package/trash/scss-before-cqc-update/_index.scss +0 -29
  83. package/trash/scss-before-cqc-update/_layout.scss +0 -247
  84. package/trash/scss-before-cqc-update/_path.scss +0 -59
  85. package/trash/scss-before-cqc-update/_selector.scss +0 -82
  86. package/trash/scss-before-cqc-update/_typography.scss +0 -322
  87. package/trash/scss-before-cqc-update/_units.scss +0 -48
  88. package/trash/scss-before-cqc-update/_utility.scss +0 -13
  89. package/trash/scss-before-cqc-update/_utils.scss +0 -211
  90. package/trash/scss-before-cqc-update/base/_color.scss +0 -14
  91. package/trash/scss-before-cqc-update/base/_elements.scss +0 -189
  92. package/trash/scss-before-cqc-update/base/_index.scss +0 -63
  93. package/trash/scss-before-cqc-update/base/_keyframes.scss +0 -74
  94. package/trash/scss-before-cqc-update/base/_layout.scss +0 -88
  95. package/trash/scss-before-cqc-update/base/_normalize.scss +0 -316
  96. package/trash/scss-before-cqc-update/base/_typography.scss +0 -42
  97. package/trash/scss-before-cqc-update/components/README.md +0 -5
  98. package/trash/scss-before-cqc-update/components/README.todos +0 -15
  99. package/trash/scss-before-cqc-update/components/_button.scss +0 -96
  100. package/trash/scss-before-cqc-update/components/_grid.scss +0 -671
  101. package/trash/scss-before-cqc-update/components/_index.scss +0 -70
  102. package/trash/scss-before-cqc-update/components/_links.scss +0 -35
  103. package/trash/scss-before-cqc-update/components/_list-lines.scss +0 -74
  104. package/trash/scss-before-cqc-update/components/_list-ordered.scss +0 -17
  105. package/trash/scss-before-cqc-update/components/_list-unordered.scss +0 -22
  106. package/trash/scss-before-cqc-update/components/_rule.scss +0 -94
  107. package/trash/scss-before-cqc-update/helpers/_color.scss +0 -15
  108. package/trash/scss-before-cqc-update/helpers/_display.scss +0 -73
  109. package/trash/scss-before-cqc-update/helpers/_index.scss +0 -68
  110. package/trash/scss-before-cqc-update/helpers/_print.scss +0 -59
  111. package/trash/scss-before-cqc-update/helpers/_typography.scss +0 -73
  112. package/trash/scss-before-cqc-update/helpers/_units.scss +0 -79
  113. package/trash/scss-before-cqc-update/helpers/_utilities.scss +0 -88
  114. package/trash/scss-before-cqc-update/stylesheets/README.md +0 -3
  115. package/trash/scss-before-cqc-update/stylesheets/full.scss +0 -17
  116. package/trash/scss-old/README.md +0 -58
  117. package/trash/scss-old/_breakpoint.scss +0 -140
  118. package/trash/scss-old/_button.scss +0 -223
  119. package/trash/scss-old/_calculate.scss +0 -64
  120. package/trash/scss-old/_color.scss +0 -200
  121. package/trash/scss-old/_element.scss +0 -262
  122. package/trash/scss-old/_grid.scss +0 -558
  123. package/trash/scss-old/_index.scss +0 -25
  124. package/trash/scss-old/_layout.scss +0 -170
  125. package/trash/scss-old/_path.scss +0 -58
  126. package/trash/scss-old/_selector.scss +0 -81
  127. package/trash/scss-old/_typography.scss +0 -320
  128. package/trash/scss-old/_units.scss +0 -47
  129. package/trash/scss-old/_utility.scss +0 -12
  130. package/trash/scss-old/_utils.scss +0 -186
  131. package/trash/scss-old/base/_color.scss +0 -13
  132. package/trash/scss-old/base/_elements.scss +0 -183
  133. package/trash/scss-old/base/_index.scss +0 -62
  134. package/trash/scss-old/base/_keyframes.scss +0 -74
  135. package/trash/scss-old/base/_layout.scss +0 -81
  136. package/trash/scss-old/base/_normalize.scss +0 -316
  137. package/trash/scss-old/base/_typography.scss +0 -42
  138. package/trash/scss-old/components/README.md +0 -5
  139. package/trash/scss-old/components/README.todos +0 -15
  140. package/trash/scss-old/components/_button.scss +0 -74
  141. package/trash/scss-old/components/_index.scss +0 -63
  142. package/trash/scss-old/components/_links.scss +0 -34
  143. package/trash/scss-old/components/_list-lines.scss +0 -73
  144. package/trash/scss-old/components/_list-ordered.scss +0 -16
  145. package/trash/scss-old/components/_list-unordered.scss +0 -21
  146. package/trash/scss-old/components/_rule.scss +0 -84
  147. package/trash/scss-old/helpers/_color.scss +0 -14
  148. package/trash/scss-old/helpers/_display.scss +0 -68
  149. package/trash/scss-old/helpers/_index.scss +0 -67
  150. package/trash/scss-old/helpers/_print.scss +0 -59
  151. package/trash/scss-old/helpers/_typography.scss +0 -73
  152. package/trash/scss-old/helpers/_units.scss +0 -68
  153. package/trash/scss-old/helpers/_utilities.scss +0 -82
  154. package/trash/scss-old/packages/README.md +0 -3
  155. package/trash/scss-old/packages/everything.scss +0 -17
  156. package/trash/scss-old-2/README.md +0 -58
  157. package/trash/scss-old-2/_breakpoint.scss +0 -139
  158. package/trash/scss-old-2/_button.scss +0 -223
  159. package/trash/scss-old-2/_calculate.scss +0 -64
  160. package/trash/scss-old-2/_color.scss +0 -202
  161. package/trash/scss-old-2/_element.scss +0 -263
  162. package/trash/scss-old-2/_grid.scss +0 -558
  163. package/trash/scss-old-2/_index.scss +0 -25
  164. package/trash/scss-old-2/_layout.scss +0 -170
  165. package/trash/scss-old-2/_path.scss +0 -58
  166. package/trash/scss-old-2/_selector.scss +0 -81
  167. package/trash/scss-old-2/_typography.scss +0 -320
  168. package/trash/scss-old-2/_units.scss +0 -47
  169. package/trash/scss-old-2/_utility.scss +0 -12
  170. package/trash/scss-old-2/_utils.scss +0 -186
  171. package/trash/scss-old-2/base/_color.scss +0 -13
  172. package/trash/scss-old-2/base/_elements.scss +0 -182
  173. package/trash/scss-old-2/base/_index.scss +0 -62
  174. package/trash/scss-old-2/base/_keyframes.scss +0 -73
  175. package/trash/scss-old-2/base/_layout.scss +0 -83
  176. package/trash/scss-old-2/base/_normalize.scss +0 -315
  177. package/trash/scss-old-2/base/_typography.scss +0 -41
  178. package/trash/scss-old-2/components/README.md +0 -5
  179. package/trash/scss-old-2/components/README.todos +0 -15
  180. package/trash/scss-old-2/components/_button.scss +0 -95
  181. package/trash/scss-old-2/components/_index.scss +0 -63
  182. package/trash/scss-old-2/components/_links.scss +0 -33
  183. package/trash/scss-old-2/components/_list-lines.scss +0 -73
  184. package/trash/scss-old-2/components/_list-ordered.scss +0 -16
  185. package/trash/scss-old-2/components/_list-unordered.scss +0 -21
  186. package/trash/scss-old-2/components/_rule.scss +0 -84
  187. package/trash/scss-old-2/helpers/_color.scss +0 -14
  188. package/trash/scss-old-2/helpers/_display.scss +0 -67
  189. package/trash/scss-old-2/helpers/_index.scss +0 -67
  190. package/trash/scss-old-2/helpers/_print.scss +0 -58
  191. package/trash/scss-old-2/helpers/_typography.scss +0 -72
  192. package/trash/scss-old-2/helpers/_units.scss +0 -68
  193. package/trash/scss-old-2/helpers/_utilities.scss +0 -81
  194. package/trash/scss-old-2/packages/README.md +0 -3
  195. package/trash/scss-old-2/packages/everything.scss +0 -17
  196. package/trash/scss-old-230729/README.md +0 -58
  197. package/trash/scss-old-230729/_breakpoint.scss +0 -139
  198. package/trash/scss-old-230729/_button.scss +0 -223
  199. package/trash/scss-old-230729/_calculate.scss +0 -64
  200. package/trash/scss-old-230729/_color.scss +0 -202
  201. package/trash/scss-old-230729/_element.scss +0 -273
  202. package/trash/scss-old-230729/_grid.scss +0 -694
  203. package/trash/scss-old-230729/_index.scss +0 -25
  204. package/trash/scss-old-230729/_layout.scss +0 -193
  205. package/trash/scss-old-230729/_path.scss +0 -58
  206. package/trash/scss-old-230729/_selector.scss +0 -81
  207. package/trash/scss-old-230729/_typography.scss +0 -320
  208. package/trash/scss-old-230729/_units.scss +0 -47
  209. package/trash/scss-old-230729/_utility.scss +0 -12
  210. package/trash/scss-old-230729/_utils.scss +0 -186
  211. package/trash/scss-old-230729/base/_color.scss +0 -13
  212. package/trash/scss-old-230729/base/_elements.scss +0 -188
  213. package/trash/scss-old-230729/base/_index.scss +0 -62
  214. package/trash/scss-old-230729/base/_keyframes.scss +0 -73
  215. package/trash/scss-old-230729/base/_layout.scss +0 -83
  216. package/trash/scss-old-230729/base/_normalize.scss +0 -315
  217. package/trash/scss-old-230729/base/_typography.scss +0 -41
  218. package/trash/scss-old-230729/components/README.md +0 -5
  219. package/trash/scss-old-230729/components/README.todos +0 -15
  220. package/trash/scss-old-230729/components/_button.scss +0 -95
  221. package/trash/scss-old-230729/components/_index.scss +0 -63
  222. package/trash/scss-old-230729/components/_links.scss +0 -34
  223. package/trash/scss-old-230729/components/_list-lines.scss +0 -73
  224. package/trash/scss-old-230729/components/_list-ordered.scss +0 -16
  225. package/trash/scss-old-230729/components/_list-unordered.scss +0 -21
  226. package/trash/scss-old-230729/components/_rule.scss +0 -93
  227. package/trash/scss-old-230729/helpers/_color.scss +0 -14
  228. package/trash/scss-old-230729/helpers/_display.scss +0 -73
  229. package/trash/scss-old-230729/helpers/_index.scss +0 -67
  230. package/trash/scss-old-230729/helpers/_print.scss +0 -58
  231. package/trash/scss-old-230729/helpers/_typography.scss +0 -72
  232. package/trash/scss-old-230729/helpers/_units.scss +0 -68
  233. package/trash/scss-old-230729/helpers/_utilities.scss +0 -87
  234. package/trash/scss-old-230729/packages/README.md +0 -3
  235. package/trash/scss-old-230729/packages/everything.scss +0 -17
  236. package/trash/vue/directives/background-image-url.js +0 -12
  237. package/trash/vue/helpers/add-required-components.js +0 -14
  238. package/trash/vue/ui/CollapsibleRegion/CollapsibleRegion.vue +0 -277
  239. package/trash/vue/ui/CollapsibleRegion/Demo.vue +0 -101
  240. package/trash/vue/ui/Dropdown/Dropdown.vue +0 -184
  241. package/trash/vue/ui/Modals/components/Modal.vue +0 -49
  242. package/trash/vue/ui/Modals/components/Modals.vue +0 -103
  243. package/trash/vue/ui/Modals/plugin.js +0 -215
  244. package/trash/vue/ui/Modals/readme.note +0 -10
  245. package/trash/vue/ui/Modals/reference/example-usage.vue +0 -27
  246. package/trash/vue/ui/Modals/reference/wcag-example/dialog.js +0 -324
@@ -1,67 +0,0 @@
1
- import { getName } from "../events/index.js";
2
-
3
- /**
4
- * Sets up document for grid position classes
5
- * @param {String} selector The selector for the parent element
6
- * @param {Object} classes Classes (optional) @see setPositionClasses
7
- */
8
- export function init(selector = "[data-grid]", classes) {
9
- document.addEventListener(getName("pageModified"), () => setup(selector, classes));
10
- document.addEventListener(getName("pageResized"), () => setup(selector, classes));
11
- setup(selector, classes);
12
- }
13
-
14
- /**
15
- * Goes through document and finds elements that need to have positioning classes
16
- * @param {String} selector The selector for the parent element
17
- * @param {Object} classes Classes (optional) @see setPositionClasses
18
- */
19
- export function setup(selector, classes) {
20
- document.querySelectorAll(selector).forEach(element => setPositionClasses(element, classes || undefined));
21
- }
22
-
23
- /**
24
- * Sets up the positonal classes that would come from the equal
25
- * height module. Needs to be rerun by user when layout changes
26
- * or new instances are added to the screen
27
- * - Used for gutter crops
28
- * - Used for rule placement
29
- * - **Devs** Remember that default classes should match sass defaults
30
- * @param {Node} parent The grid parent <data-grid="">
31
- * @param {Object} classes Override the default equal heights classes
32
- */
33
- export function setPositionClasses(parent, classes = {
34
- columnFirst: 'position-column-first',
35
- columnLast: 'position-column-last',
36
- rowFirst: 'position-row-first',
37
- rowLast: 'position-row-last'
38
- }) {
39
- const children = [...parent.children];
40
- const rows = [];
41
- let lastY;
42
- // Check element against last
43
- // If they don't match it's a new row create a new array
44
- // Then push into the last array in the rows array
45
- children.forEach((child) => {
46
- const y = child.getBoundingClientRect().y;
47
- if (lastY !== y) rows.push([]);
48
- rows[rows.length - 1].push(child);
49
- lastY = y;
50
- child.classList.remove(...Object.values(classes)); // Remove previously set classes
51
- });
52
- // Apply Classes
53
- rows.forEach((row, index) => {
54
- if (index === 0)
55
- row.forEach(child => child.classList.add(classes.rowFirst));
56
- if (index == rows.length - 1)
57
- row.forEach(child => child.classList.add(classes.rowLast));
58
-
59
- row.forEach((child, childIndex) => {
60
- if (childIndex === 0)
61
- child.classList.add(classes.columnFirst);
62
- if (childIndex == row.length - 1)
63
- child.classList.add(classes.columnLast);
64
- });
65
- });
66
-
67
- }
@@ -1,219 +0,0 @@
1
- // Version: 1.0.4
2
- // Changes:
3
- // 1.0.4 | The modal library has a bug with multiple modals and using a custom close handler
4
- // In the future we want to abandon this library but for now it works by setting up our own open and close buttons
5
- // This is not setup to work with programmatic modals!!
6
- // 1.0.3 | Added youtube video closing stuff
7
- // 1.0.3 | Added youtube video closing stuff
8
- // 1.0.2 | Added custom close handler and checked to make sure resizer doesn't trigger click
9
- // 1.0.1 | Added optional resizable (allowResize)
10
- // Todo: - Make the container the content is getting the orginal classes, or don't remove them. And allow user to pass classes via config
11
-
12
- // Javascript builds strucutre, modal's live in content in simple container.
13
- // Modal theme and strucutre is added in scripting That way if we change the
14
- // interface in the future we don't need to change/update markup.
15
- import MicroModal from 'micromodal';
16
- import Resizer from './resizer.js';
17
- import { createElementFromHtml } from '../utils/dom.js';
18
- import { pauseVideos, prepVideos } from '../helpers/pause-youtube-video.js';
19
- const classes = {
20
- open: 'site-modal--open',
21
- container: "site-modal__container",
22
- body: "site-modal__body",
23
- resizer: "site-modal__resizer"
24
- };
25
- const triggerAttr = "data-site-modal-trigger";
26
- export { triggerAttr };
27
- const triggerSelector = `[${ triggerAttr }]`;
28
- const defaults = {
29
- allowResize: true,
30
- position: "center",
31
- containerClass: "",
32
- closeSelector: "[data-site-modal-close]"
33
- };
34
- const configMicroModal = {
35
- openClass: classes.open,
36
- disableScroll: true,
37
- openTrigger: 'data-site-modal-trigger',
38
- closeTrigger: 'data-NOT-USED', // Proxied to avoid this click handler (on keydown, allow click on things underneath)
39
- onClose: function(modal) {
40
- pauseVideos(modal);
41
- }
42
- };
43
- const wrappers = [];
44
-
45
-
46
- // Create a grouping container to grab all modals from content of the
47
- // page and move to the bottom of the page
48
- // const container = createContainer();
49
-
50
- // The [data-site-modal] is used to seperate the libraries' interface
51
- // and the modal's styling classes, so it can be adjusted or extended
52
- // in the future
53
- document.querySelectorAll('[data-site-modal]').forEach((element) => setupModal(element));
54
-
55
- // Intialize modal library script
56
- // init();
57
- attachTriggers();
58
-
59
- export function attachTriggers(context = document) {
60
- const flag = 'data-site-modal-trigger-attached';
61
- context.querySelectorAll(triggerSelector).forEach(trigger => {
62
- if (!trigger.hasAttribute(flag)) {
63
- const mid = trigger.getAttribute(triggerAttr);
64
- if (!mid) {
65
- console.warn("Unable to get modal trigger id");
66
- } else {
67
- trigger.setAttribute(flag, "");
68
- trigger.addEventListener("click", () => {
69
- show(mid)
70
- });
71
- }
72
- }
73
- });
74
- }
75
-
76
- /**
77
- * Function to setup each modal
78
- * - Creates structure
79
- * - Gets settings from elements data attrite
80
- * - Moves it to the end of the document
81
- * - Adds resizer if position (left || right)
82
- * @param {Node} modal Modal element ie. `[data-site-modal]`
83
- * @param {Object} settings Custom settings object to merge, same interface as `[data-site-modal]` settings
84
- */
85
- export function setupModal(modal, settings) {
86
- // Grab things from original element before modifying
87
- const id = modal.id;
88
- const originalClasses = modal.getAttribute('class') || '';
89
- // Grab settings from element and optionally from settings passed
90
- let data = {};
91
- if (modal.dataset.siteModal) {
92
- data = JSON.parse(modal.dataset.siteModal)
93
- }
94
- data = Object.assign({}, defaults, data, settings);
95
- const { allowResize, position } = data;
96
- const notCenter = position !== "center";
97
- const hasResizer = notCenter && allowResize;
98
- const resizerMarkup = hasResizer ? `<div class="${ classes.resizer }"></div>` : '';
99
- const resizerModifierClass = allowResize ? "resize" : "no-resize";
100
- const closeAttr = "data-site-modal-close";
101
- // Remove attributes
102
- modal.removeAttribute('data-site-modal');
103
- modal.removeAttribute('id');
104
- modal.removeAttribute('class');
105
- // Template for new modal container (modal's body, the original element is
106
- // appended after as not to lose any listerner's/etc
107
- const markup = `
108
- <div
109
- class="
110
- site-modal
111
- site-modal--${ position }
112
- site-modal--${ resizerModifierClass }
113
- ${ data.containerClass }
114
- "
115
- id="${ id }" aria-hidden="true"
116
- >
117
- <div class="site-modal__overlay" tabindex="-1" ${ closeAttr }>
118
- <div class="site-modal__container" role="dialog" aria-modal="true" aria-labelledby="${ id }-title">
119
- <div class="site-modal__header">
120
- <h2 class="site-modal__title" id="${ id }-title" tabindex="0">${ data.title }</h2>
121
- <button class="site-modal__close" aria-label="Close modal" ${ closeAttr }>
122
- <span class="site-modal__close-icon" aria-hidden="true" ${ closeAttr }></span>
123
- </button>
124
- </div>
125
- <div class="${ classes.body } ${ originalClasses }"></div>
126
- ${ resizerMarkup }
127
- </div>
128
- </div>
129
- </div>`;
130
-
131
- // Create wrapped modal (with repeatable structure), and insert
132
- // the original modal content into it
133
- const select = (container, classKey) => container.querySelector("." + classes[classKey]);
134
- const wrapper = createElementFromHtml(markup.trim());
135
- const elements = {
136
- body: select(wrapper, 'body'),
137
- resizer: select(wrapper, 'resizer'),
138
- container: select(wrapper, 'container')
139
- };
140
-
141
- // Move the orginal content into the modal's body
142
- elements.body.appendChild(modal);
143
- // Add resizer if not a center positioned modal
144
- if (hasResizer) {
145
- new Resizer(elements.container, elements.resizer, {
146
- fromLeft: position === "right"
147
- });
148
- }
149
-
150
- // Prep Youtube Videos to be able to close
151
- prepVideos(wrapper);
152
-
153
- // Add modal to the end of docuemnt
154
- wrappers.push(wrapper);
155
- document.body.appendChild(wrapper);
156
- // Add our own close handlers to avoide the native
157
- const closeButtons = wrapper.querySelectorAll(data.closeSelector);
158
- closeButtons.forEach(b => b.addEventListener('click', ({ target }) => {
159
- const outsideContainer = !elements.container.contains(target) && target !== elements.container;
160
- // Last condition is the overlay/backdrop (click outside)
161
- if (target.matches(`[${ closeAttr }]`) || outsideContainer) {
162
- close(id);
163
- }
164
- }));
165
- }
166
- /**
167
- * Intialize all modals on the page
168
- * - can be used after AJAX adds content
169
- */
170
- // export function init() {
171
- // MicroModal.init(configMicroModal);
172
- // }
173
- /**
174
- * Open a modal
175
- * @param {String} id The id of the modal to open
176
- */
177
- export function show(id, config) {
178
- const merged = Object.assign({}, configMicroModal, config);
179
- MicroModal.show(id, merged);
180
- }
181
- /**
182
- * Close a modal
183
- * @param {String} id The id of the modal to open
184
- */
185
- export function close(id) {
186
- MicroModal.close(id);
187
- }
188
-
189
-
190
-
191
- // function createContainer() {
192
- // const container = document.createElement('div');
193
- // container.classList.add('site-modals');
194
- // document.body.appendChild(container);
195
- // return container;
196
- // }
197
-
198
- // From GITHUB Issues (user remedy)
199
- // export function refresh() {
200
- // // Use whatever selector you're using for MicroModal triggers.
201
- // const modalTrigger = 'data-micromodal-trigger';
202
-
203
- // // Get all triggers.
204
- // const modalTriggers = document.querySelectorAll( `[${modalTrigger}]` );
205
-
206
- // modalTriggers.forEach( trigger => {
207
- // // Get the attribute to save.
208
- // const triggerElement = trigger.getAttribute( modalTrigger );
209
-
210
- // // Remove the attribute briefly to clear memory/existing modals.
211
- // trigger.removeAttribute( modalTrigger );
212
-
213
- // // Immediately add it back.
214
- // trigger.setAttribute( modalTrigger, triggerElement );
215
-
216
- // // Re-initialize.
217
- // init();
218
- // } );
219
- // }
@@ -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
- }