@uoguelph/web-components 0.0.12 → 0.0.14

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 (36) hide show
  1. package/dist/cjs/{index-160752dd.js → index-f0452ddd.js} +4 -8
  2. package/dist/cjs/loader.cjs.js +1 -10
  3. package/dist/cjs/uofg-footer_3.cjs.entry.js +28 -26
  4. package/dist/cjs/uofg-web-components.cjs.js +2 -5
  5. package/dist/collection/collection-manifest.json +4 -4
  6. package/dist/collection/components/uofg-footer/footer-links.js +4 -4
  7. package/dist/collection/components/uofg-footer/social-links.js +4 -4
  8. package/dist/collection/components/uofg-footer/uofg-footer.js +6 -6
  9. package/dist/collection/components/uofg-header/global-links.js +1 -1
  10. package/dist/collection/components/uofg-header/hello-you.js +4 -4
  11. package/dist/collection/components/uofg-header/page-specific.js +6 -6
  12. package/dist/collection/components/uofg-header/search.js +3 -3
  13. package/dist/collection/components/uofg-header/single-sign-on.js +1 -1
  14. package/dist/collection/components/uofg-header/uofg-header.js +16 -16
  15. package/dist/collection/components/uofg-menu/uofg-menu.js +25 -18
  16. package/dist/collection/utils/font-awesome-icon.js +3 -3
  17. package/dist/components/index2.js +2 -2
  18. package/dist/components/uofg-footer.js +2 -2
  19. package/dist/components/uofg-header.js +10 -10
  20. package/dist/components/uofg-menu2.js +13 -11
  21. package/dist/esm/{index-48bb3110.js → index-24999f13.js} +4 -8
  22. package/dist/esm/loader.js +2 -11
  23. package/dist/esm/uofg-footer_3.entry.js +28 -26
  24. package/dist/esm/uofg-web-components.js +3 -6
  25. package/dist/uofg-web-components/{p-b6a9700a.js → p-b7dfbfdc.js} +1 -1
  26. package/dist/uofg-web-components/{p-2350ed0e.entry.js → p-d87070ab.entry.js} +1 -1
  27. package/dist/uofg-web-components/uofg-web-components.esm.js +1 -1
  28. package/{dist/loader → loader}/cdn.js +1 -1
  29. package/{dist/loader → loader}/index.cjs.js +1 -1
  30. package/{dist/loader → loader}/index.d.ts +1 -1
  31. package/loader/index.es2017.js +3 -0
  32. package/{dist/loader → loader}/index.js +2 -2
  33. package/package.json +10 -7
  34. package/dist/esm/polyfills/css-shim.js +0 -1
  35. package/dist/loader/index.es2017.js +0 -3
  36. /package/{dist/loader → loader}/package.json +0 -0
@@ -330,9 +330,9 @@ const registerStyle = (scopeId, cssText, allowCS) => {
330
330
  }
331
331
  styles.set(scopeId, style);
332
332
  };
333
- const addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {
333
+ const addStyle = (styleContainerNode, cmpMeta, mode) => {
334
334
  var _a;
335
- let scopeId = getScopeId(cmpMeta);
335
+ const scopeId = getScopeId(cmpMeta);
336
336
  const style = styles.get(scopeId);
337
337
  // if an element is NOT connected then getRootNode() will return the wrong root node
338
338
  // so the fallback is to always use the document for the root node in those cases
@@ -347,11 +347,8 @@ const addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {
347
347
  }
348
348
  if (!appliedStyles.has(scopeId)) {
349
349
  {
350
- // TODO(STENCIL-659): Remove code implementing the CSS variable shim
351
- {
352
- styleElm = doc.createElement('style');
353
- styleElm.innerHTML = style;
354
- }
350
+ styleElm = doc.createElement('style');
351
+ styleElm.innerHTML = style;
355
352
  // Apply CSP nonce to the style tag if it exists
356
353
  const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);
357
354
  if (nonce != null) {
@@ -376,7 +373,6 @@ const attachStyles = (hostRef) => {
376
373
  const flags = cmpMeta.$flags$;
377
374
  const endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$);
378
375
  const scopeId = addStyle(elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta);
379
- // TODO(STENCIL-662): Remove code related to deprecated shadowDomShim field
380
376
  if (flags & 10 /* CMP_FLAGS.needsScopedEncapsulation */) {
381
377
  // only required when we're NOT using native shadow dom (slot)
382
378
  // or this browser doesn't support native shadow dom
@@ -2,20 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-160752dd.js');
6
-
7
- /*
8
- Stencil Client Patch Esm v3.4.0 | MIT Licensed | https://stenciljs.com
9
- */
10
- const patchEsm = () => {
11
- return index.promiseResolve();
12
- };
5
+ const index = require('./index-f0452ddd.js');
13
6
 
14
7
  const defineCustomElements = (win, options) => {
15
8
  if (typeof window === 'undefined') return Promise.resolve();
16
- return patchEsm().then(() => {
17
9
  return index.bootstrapLazy([["uofg-footer_3.cjs",[[1,"uofg-header",{"pageTitle":[1,"page-title"],"pageUrl":[1,"page-url"],"isFullSize":[32],"pageSpecificContent":[32]},[[9,"resize","updateFullSize"]]],[1,"uofg-footer"],[0,"uofg-menu",{"autoCollapse":[4,"auto-collapse"],"isExpanded":[32],"getExpanded":[64],"setExpanded":[64],"toggle":[64],"collapse":[64],"expand":[64]},[[0,"onChildListChange","handleChildListChange"]]]]]], options);
18
- });
19
10
  };
20
11
 
21
12
  exports.setNonce = index.setNonce;
@@ -2,13 +2,13 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-160752dd.js');
5
+ const index = require('./index-f0452ddd.js');
6
6
 
7
- const FontAwesomeIcon = (props) => {
7
+ const FontAwesomeIcon = props => {
8
8
  const width = props.icon.icon[0];
9
9
  const height = props.icon.icon[1];
10
10
  const iconPathData = props.icon.icon[4];
11
- return (index.h("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: `0 0 ${width} ${height}` }, Array.isArray(iconPathData) ? (iconPathData.map((path) => index.h("path", { d: path }))) : (index.h("path", { d: iconPathData }))));
11
+ return (index.h("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: `0 0 ${width} ${height}` }, Array.isArray(iconPathData) ? (iconPathData.map(path => index.h("path", { d: path }))) : (index.h("path", { d: iconPathData }))));
12
12
  };
13
13
 
14
14
  var faSquareTwitter = {
@@ -44,7 +44,7 @@ var faYoutube = {
44
44
  icon: [576, 512, [61802], "f167", "M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"]
45
45
  };
46
46
 
47
- const SocialLink = (props) => (index.h("li", null,
47
+ const SocialLink = props => (index.h("li", null,
48
48
  index.h("a", { href: props.url, "aria-label": props.name },
49
49
  index.h(FontAwesomeIcon, { icon: props.icon }))));
50
50
  const SocialLinks = () => (index.h("ul", { id: "uofg-footer-social-links" },
@@ -127,7 +127,7 @@ var faBriefcase = {
127
127
  icon: [512, 512, [128188], "f0b1", "M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160v96H192 320 512V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM512 288H320v32c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V288H0V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V288z"]
128
128
  };
129
129
 
130
- const FooterLink = (props) => (index.h("li", null,
130
+ const FooterLink = props => (index.h("li", null,
131
131
  index.h("a", { href: props.url, title: props.title },
132
132
  index.h(FontAwesomeIcon, { icon: props.icon }),
133
133
  index.h("span", null, props.text))));
@@ -161,9 +161,9 @@ const UofgFooter = class {
161
161
  };
162
162
  UofgFooter.style = uofgFooterCss;
163
163
 
164
- const PageSpecific = (props) => {
164
+ const PageSpecific = props => {
165
165
  var _a;
166
- return (index.h("ul", { class: "uofg-header-page-specific" }, (_a = props.content) === null || _a === void 0 ? void 0 : _a.map((item) => {
166
+ return (index.h("ul", { class: "uofg-header-page-specific" }, (_a = props.content) === null || _a === void 0 ? void 0 : _a.map(item => {
167
167
  if (!item) {
168
168
  return null;
169
169
  }
@@ -176,7 +176,7 @@ const PageSpecific = (props) => {
176
176
  index.h("button", { slot: "button" },
177
177
  index.h("span", null, item.title),
178
178
  index.h(FontAwesomeIcon, { icon: faCaretDown })),
179
- index.h("ul", { slot: "content", role: "menu" }, item.links.map((link) => (index.h("li", null,
179
+ index.h("ul", { slot: "content", role: "menu" }, item.links.map(link => (index.h("li", null,
180
180
  index.h("a", Object.assign({ href: link.href }, link.attributes), link.text))))))));
181
181
  }).filter(Boolean)));
182
182
  };
@@ -199,7 +199,7 @@ const GlobalLinks = () => (index.h("ul", { class: "uofg-header-global-links" },
199
199
  index.h("li", null,
200
200
  index.h("a", { href: "https://uoguelph.ca/student-life" }, "Student Life"))));
201
201
 
202
- const HelloYou = (props) => (index.h("uofg-menu", { class: "uofg-header-hello-you-menu", "auto-collapse": props.autoCollapse },
202
+ const HelloYou = props => (index.h("uofg-menu", { class: "uofg-header-hello-you-menu", "auto-collapse": props.autoCollapse },
203
203
  index.h("button", { slot: "button", "aria-label": "Hello, YOU! menu" },
204
204
  index.h("span", null, "Hello, YOU!"),
205
205
  index.h(FontAwesomeIcon, { icon: faCaretDown })),
@@ -252,24 +252,24 @@ const UofgHeader = class {
252
252
  const aToPageSpecificLink = (a) => {
253
253
  const attributes = {};
254
254
  a.getAttributeNames()
255
- .filter((name) => name !== 'href')
256
- .forEach((name) => (attributes[name] = a.getAttribute(name)));
255
+ .filter(name => name !== 'href')
256
+ .forEach(name => (attributes[name] = a.getAttribute(name)));
257
257
  return {
258
258
  href: a.getAttribute('href'),
259
259
  text: a.textContent,
260
- attributes
260
+ attributes,
261
261
  };
262
262
  };
263
263
  this.pageSpecificContent = Array.from((_a = this.el) === null || _a === void 0 ? void 0 : _a.children)
264
- .filter((child) => child.tagName === 'A' || child.tagName === 'UL')
265
- .map((child) => {
264
+ .filter(child => child.tagName === 'A' || child.tagName === 'UL')
265
+ .map(child => {
266
266
  switch (child.tagName) {
267
267
  case 'A':
268
268
  return aToPageSpecificLink(child);
269
269
  case 'UL':
270
270
  return {
271
271
  title: child.getAttribute('data-title'),
272
- links: Array.from(child.querySelectorAll('a')).map(aToPageSpecificLink)
272
+ links: Array.from(child.querySelectorAll('a')).map(aToPageSpecificLink),
273
273
  };
274
274
  }
275
275
  });
@@ -287,13 +287,13 @@ const PREFERS_REDUCED_MOTION = window.matchMedia('(prefers-reduced-motion: reduc
287
287
 
288
288
  const DURATION_REGEX = /^(\d*\.?\d+)(s|ms)$/;
289
289
  const EASING_FUNCTION_REGEX = /^cubic-bezier\((\s*-?\d*\.?\d+\s*,){3}\s*-?\d*\.?\d+\s*\)$|^steps\(\s*\d+\s*(,\s*(start|end))?\s*\)$/;
290
- const observer = new MutationObserver((mutations) => {
290
+ const observer = new MutationObserver(mutations => {
291
291
  for (const mutation of mutations) {
292
292
  mutation.target.dispatchEvent(new CustomEvent('childListChange', { bubbles: false }));
293
293
  }
294
294
  });
295
295
  const observerConfig = {
296
- childList: true
296
+ childList: true,
297
297
  };
298
298
  const UofgMenu = class {
299
299
  constructor(hostRef) {
@@ -329,8 +329,10 @@ const UofgMenu = class {
329
329
  handleKeyUp(e) {
330
330
  if (e.key === 'Escape') {
331
331
  this.isExpanded = false;
332
- if (this.button) {
333
- this.button.focus();
332
+ if (e.target !== this.button) {
333
+ e.stopPropagation();
334
+ this.isExpanded = false;
335
+ this.button && this.button.focus();
334
336
  }
335
337
  }
336
338
  }
@@ -383,10 +385,10 @@ const UofgMenu = class {
383
385
  return;
384
386
  }
385
387
  // Check if we are in the middle of an animation.
386
- const animations = (_b = this.content) === null || _b === void 0 ? void 0 : _b.getAnimations().filter((animation) => animation.id === 'uofg-menu-animation');
388
+ const animations = (_b = this.content) === null || _b === void 0 ? void 0 : _b.getAnimations().filter(animation => animation.id === 'uofg-menu-animation');
387
389
  // If we are, then we want to reverse the existing one rather than starting a new animation.
388
390
  if (animations.length > 0) {
389
- animations === null || animations === void 0 ? void 0 : animations.forEach((animation) => animation.reverse());
391
+ animations === null || animations === void 0 ? void 0 : animations.forEach(animation => animation.reverse());
390
392
  return;
391
393
  }
392
394
  let animationDef;
@@ -395,7 +397,7 @@ const UofgMenu = class {
395
397
  duration: this.getAnimationDuration(),
396
398
  fill: 'none',
397
399
  easing: this.getAnimationEasing(),
398
- direction: newValue ? 'normal' : 'reverse'
400
+ direction: newValue ? 'normal' : 'reverse',
399
401
  };
400
402
  // Need to remove display none, otherwise keyframe values won't be calculated correctly.
401
403
  this.content.style.display = '';
@@ -470,19 +472,19 @@ const UofgMenu = class {
470
472
  paddingTop: 0,
471
473
  paddingBottom: 0,
472
474
  marginTop: 0,
473
- marginBottom: 0
475
+ marginBottom: 0,
474
476
  },
475
477
  {
476
478
  height: ((_a = this.contentComputedStyle) === null || _a === void 0 ? void 0 : _a.height) || 0,
477
479
  paddingTop: ((_b = this.contentComputedStyle) === null || _b === void 0 ? void 0 : _b.paddingTop) || 0,
478
480
  paddingBottom: ((_c = this.contentComputedStyle) === null || _c === void 0 ? void 0 : _c.paddingBottom) || 0,
479
481
  marginTop: ((_d = this.contentComputedStyle) === null || _d === void 0 ? void 0 : _d.marginTop) || 0,
480
- marginBottom: ((_e = this.contentComputedStyle) === null || _e === void 0 ? void 0 : _e.marginBottom) || 0
481
- }
482
+ marginBottom: ((_e = this.contentComputedStyle) === null || _e === void 0 ? void 0 : _e.marginBottom) || 0,
483
+ },
482
484
  ],
483
485
  callback: () => {
484
486
  this.content && (this.content.style.overflowY = '');
485
- }
487
+ },
486
488
  };
487
489
  }
488
490
  render() {
@@ -2,19 +2,16 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-160752dd.js');
5
+ const index = require('./index-f0452ddd.js');
6
6
 
7
7
  /*
8
- Stencil Client Patch Browser v3.4.0 | MIT Licensed | https://stenciljs.com
8
+ Stencil Client Patch Browser v4.0.1 | MIT Licensed | https://stenciljs.com
9
9
  */
10
10
  const patchBrowser = () => {
11
11
  const importMeta = (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('uofg-web-components.cjs.js', document.baseURI).href));
12
12
  const opts = {};
13
- // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.
14
13
  if (importMeta !== '') {
15
14
  opts.resourcesUrl = new URL('.', importMeta).href;
16
- // TODO(STENCIL-661): Remove code related to the dynamic import shim
17
- // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.
18
15
  }
19
16
  return index.promiseResolve(opts);
20
17
  };
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "entries": [
3
- "./components/uofg-footer/uofg-footer.js",
4
- "./components/uofg-header/uofg-header.js",
5
- "./components/uofg-menu/uofg-menu.js"
3
+ "components/uofg-footer/uofg-footer.js",
4
+ "components/uofg-header/uofg-header.js",
5
+ "components/uofg-menu/uofg-menu.js"
6
6
  ],
7
7
  "compiler": {
8
8
  "name": "@stencil/core",
9
- "version": "3.4.0",
9
+ "version": "4.0.1",
10
10
  "typescriptVersion": "5.0.4"
11
11
  },
12
12
  "collections": [],
@@ -1,5 +1,5 @@
1
- import { h } from '@stencil/core';
2
- import { FontAwesomeIcon } from '../../utils/font-awesome-icon';
3
- import { faBriefcase, faCalendarRange, faCircleCheck, faHandHoldingHeart, faKey, faList, faSitemap, faTrees, faUniversalAccess } from '@fortawesome/pro-solid-svg-icons';
4
- const FooterLink = (props) => (h("li", null, h("a", { href: props.url, title: props.title }, h(FontAwesomeIcon, { icon: props.icon }), h("span", null, props.text))));
1
+ import { h } from "@stencil/core";
2
+ import { FontAwesomeIcon } from "../../utils/font-awesome-icon";
3
+ import { faBriefcase, faCalendarRange, faCircleCheck, faHandHoldingHeart, faKey, faList, faSitemap, faTrees, faUniversalAccess, } from "@fortawesome/pro-solid-svg-icons";
4
+ const FooterLink = props => (h("li", null, h("a", { href: props.url, title: props.title }, h(FontAwesomeIcon, { icon: props.icon }), h("span", null, props.text))));
5
5
  export const FooterLinks = () => (h("ul", { id: "uofg-footer-links", class: "uofg-footer-content-separator" }, h(FooterLink, { text: "Accessibility", url: "https://www.uoguelph.ca/diversity-human-rights/accessibility-u-g", icon: faUniversalAccess }), h(FooterLink, { text: "Privacy", url: "https://www.uoguelph.ca/web/privacy/", icon: faKey }), h(FooterLink, { text: "Site Map", url: "https://www.uoguelph.ca/site-map/", icon: faSitemap }), h(FooterLink, { text: "Status Page", url: "https://uoguelph.statuspage.io/", icon: faCircleCheck }), h(FooterLink, { text: "Land Acknowledgement", url: "https://www.uoguelph.ca/land-acknowledgement/", icon: faTrees, title: "The University of Guelph resides on the treaty lands and territory of the Mississaugas of the Credit. We recognize that today this gathering place is home to many First Nations, Inuit and M\u00E9tis peoples and acknowledging them reminds us of our collective responsibility to the land where we learn and work." }), h(FooterLink, { text: "Careers", url: "https://www.uoguelph.ca/hr/careers-guelph/current-opportunities", icon: faBriefcase }), h(FooterLink, { text: "Undergraduate Calendar", url: "https://www.uoguelph.ca/registrar/calendars/undergraduate/current/", icon: faCalendarRange }), h(FooterLink, { text: "Graduate Calendar", url: "https://www.uoguelph.ca/registrar/calendars/graduate/current/", icon: faCalendarRange }), h(FooterLink, { text: "Program Plans", url: "https://admission.uoguelph.ca/programs", icon: faList }), h(FooterLink, { text: "Give to U of G", url: "https://www.alumni.uoguelph.ca/give-to-guelph/how-to-give", icon: faHandHoldingHeart })));
@@ -1,5 +1,5 @@
1
- import { h } from '@stencil/core';
2
- import { FontAwesomeIcon } from '../../utils/font-awesome-icon';
3
- import { faFacebookSquare, faInstagram, faLinkedin, faTiktok, faTwitterSquare, faYoutube } from '@fortawesome/free-brands-svg-icons';
4
- const SocialLink = (props) => (h("li", null, h("a", { href: props.url, "aria-label": props.name }, h(FontAwesomeIcon, { icon: props.icon }))));
1
+ import { h } from "@stencil/core";
2
+ import { FontAwesomeIcon } from "../../utils/font-awesome-icon";
3
+ import { faFacebookSquare, faInstagram, faLinkedin, faTiktok, faTwitterSquare, faYoutube, } from "@fortawesome/free-brands-svg-icons";
4
+ const SocialLink = props => (h("li", null, h("a", { href: props.url, "aria-label": props.name }, h(FontAwesomeIcon, { icon: props.icon }))));
5
5
  export const SocialLinks = () => (h("ul", { id: "uofg-footer-social-links" }, h(SocialLink, { name: "Twitter", url: "https://twitter.com/uofg", icon: faTwitterSquare }), h(SocialLink, { name: "Facebook", url: "https://www.facebook.com/uofguelph", icon: faFacebookSquare }), h(SocialLink, { name: "Instagram", url: "https://www.instagram.com/uofguelph/", icon: faInstagram }), h(SocialLink, { name: "Youtube", url: "https://www.youtube.com/user/uofguelph", icon: faYoutube }), h(SocialLink, { name: "LinkedIn", url: "https://www.linkedin.com/school/university-of-guelph/", icon: faLinkedin }), h(SocialLink, { name: "TikTok", url: "https://www.tiktok.com/@uofguelph", icon: faTiktok })));
@@ -1,9 +1,9 @@
1
- import { h } from '@stencil/core';
2
- import { FontAwesomeIcon } from '../../utils/font-awesome-icon';
3
- import { SocialLinks } from './social-links';
4
- import { FooterLinks } from './footer-links';
5
- import { faPhoneFlip } from '@fortawesome/pro-solid-svg-icons';
6
- import improveLifeLogo from './improve-life.svg';
1
+ import { h } from "@stencil/core";
2
+ import { FontAwesomeIcon } from "../../utils/font-awesome-icon";
3
+ import { SocialLinks } from "./social-links";
4
+ import { FooterLinks } from "./footer-links";
5
+ import { faPhoneFlip } from "@fortawesome/pro-solid-svg-icons";
6
+ import improveLifeLogo from "./improve-life.svg";
7
7
  export class UofgFooter {
8
8
  render() {
9
9
  return (h("footer", { id: "uofg-footer" }, h("div", { id: "uofg-footer-content" }, h("div", { id: "uofg-footer-social", class: "uofg-footer-content-separator" }, h("a", { id: "uofg-footer-improve-life", href: "//www.uoguelph.ca/improve-life", "aria-label": "Improve Life", innerHTML: improveLifeLogo }), h(SocialLinks, null), h("a", { href: "https://www.uoguelph.ca/web/socialmedia/" }, "Social Media Directory"), h("a", { href: "//www.uoguelph.ca/web/" }, "\u00A9 ", new Date().getFullYear(), " University of Guelph")), h(FooterLinks, null), h("address", { id: "uofg-footer-address", class: "uofg-footer-content-separator" }, h("strong", null, "University of Guelph"), h("span", null, "50 Stone Road East,"), h("span", null, "Guelph, Ontario, Canada"), h("span", null, "N1G 2W1"), h("a", { href: "tel:1-519-824-4120" }, h(FontAwesomeIcon, { icon: faPhoneFlip }), h("span", null, "519-824-4120"))))));
@@ -1,2 +1,2 @@
1
- import { h } from '@stencil/core';
1
+ import { h } from "@stencil/core";
2
2
  export const GlobalLinks = () => (h("ul", { class: "uofg-header-global-links" }, h("li", null, h("a", { href: "https://uoguelph.ca/about" }, "About")), h("li", null, h("a", { href: "https://uoguelph.ca/academics" }, "Academics")), h("li", null, h("a", { href: "https://uoguelph.ca/admissions" }, "Admissions")), h("li", null, h("a", { href: "https://uoguelph.ca/research" }, "Research")), h("li", null, h("a", { href: "https://uoguelph.ca/student-life" }, "Student Life"))));
@@ -1,4 +1,4 @@
1
- import { h } from '@stencil/core';
2
- import { FontAwesomeIcon } from '../../utils/font-awesome-icon';
3
- import { faCaretDown } from '@fortawesome/pro-solid-svg-icons';
4
- export const HelloYou = (props) => (h("uofg-menu", { class: "uofg-header-hello-you-menu", "auto-collapse": props.autoCollapse }, h("button", { slot: "button", "aria-label": "Hello, YOU! menu" }, h("span", null, "Hello, YOU!"), h(FontAwesomeIcon, { icon: faCaretDown })), h("ul", { slot: "content" }, h("li", null, h("a", { href: "https://uoguelph.ca/future-students" }, "Future Students")), h("li", null, h("a", { href: "https://uoguelph.ca/current-students" }, "Current Students")), h("li", null, h("a", { href: "https://uoguelph.ca/alumni-and-donors" }, "Alumni & Donors")), h("li", null, h("a", { href: "https://uoguelph.ca/staff-and-faculty" }, "Staff & Faculty")), h("li", null, h("a", { href: "https://uoguelph.ca/parents-and-visitors" }, "Parents & Visitors")), h("li", null, h("a", { href: "https://uoguelph.ca/employers-and-partners" }, "Employers & Partners")))));
1
+ import { h } from "@stencil/core";
2
+ import { FontAwesomeIcon } from "../../utils/font-awesome-icon";
3
+ import { faCaretDown } from "@fortawesome/pro-solid-svg-icons";
4
+ export const HelloYou = props => (h("uofg-menu", { class: "uofg-header-hello-you-menu", "auto-collapse": props.autoCollapse }, h("button", { slot: "button", "aria-label": "Hello, YOU! menu" }, h("span", null, "Hello, YOU!"), h(FontAwesomeIcon, { icon: faCaretDown })), h("ul", { slot: "content" }, h("li", null, h("a", { href: "https://uoguelph.ca/future-students" }, "Future Students")), h("li", null, h("a", { href: "https://uoguelph.ca/current-students" }, "Current Students")), h("li", null, h("a", { href: "https://uoguelph.ca/alumni-and-donors" }, "Alumni & Donors")), h("li", null, h("a", { href: "https://uoguelph.ca/staff-and-faculty" }, "Staff & Faculty")), h("li", null, h("a", { href: "https://uoguelph.ca/parents-and-visitors" }, "Parents & Visitors")), h("li", null, h("a", { href: "https://uoguelph.ca/employers-and-partners" }, "Employers & Partners")))));
@@ -1,15 +1,15 @@
1
- import { h } from '@stencil/core';
2
- import { FontAwesomeIcon } from '../../utils/font-awesome-icon';
3
- import { faCaretDown } from '@fortawesome/pro-solid-svg-icons';
4
- export const PageSpecific = (props) => {
1
+ import { h } from "@stencil/core";
2
+ import { FontAwesomeIcon } from "../../utils/font-awesome-icon";
3
+ import { faCaretDown } from "@fortawesome/pro-solid-svg-icons";
4
+ export const PageSpecific = props => {
5
5
  var _a;
6
- return (h("ul", { class: "uofg-header-page-specific" }, (_a = props.content) === null || _a === void 0 ? void 0 : _a.map((item) => {
6
+ return (h("ul", { class: "uofg-header-page-specific" }, (_a = props.content) === null || _a === void 0 ? void 0 : _a.map(item => {
7
7
  if (!item) {
8
8
  return null;
9
9
  }
10
10
  if ('text' in item) {
11
11
  return (h("li", null, h("a", Object.assign({ href: item.href }, item.attributes), item.text)));
12
12
  }
13
- return (h("li", null, h("uofg-menu", { autoCollapse: props.autoCollapseMenus }, h("button", { slot: "button" }, h("span", null, item.title), h(FontAwesomeIcon, { icon: faCaretDown })), h("ul", { slot: "content", role: "menu" }, item.links.map((link) => (h("li", null, h("a", Object.assign({ href: link.href }, link.attributes), link.text))))))));
13
+ return (h("li", null, h("uofg-menu", { autoCollapse: props.autoCollapseMenus }, h("button", { slot: "button" }, h("span", null, item.title), h(FontAwesomeIcon, { icon: faCaretDown })), h("ul", { slot: "content", role: "menu" }, item.links.map(link => (h("li", null, h("a", Object.assign({ href: link.href }, link.attributes), link.text))))))));
14
14
  }).filter(Boolean)));
15
15
  };
@@ -1,4 +1,4 @@
1
- import { h } from '@stencil/core';
2
- import { FontAwesomeIcon } from '../../utils/font-awesome-icon';
3
- import { faSearch } from '@fortawesome/pro-solid-svg-icons';
1
+ import { h } from "@stencil/core";
2
+ import { FontAwesomeIcon } from "../../utils/font-awesome-icon";
3
+ import { faSearch } from "@fortawesome/pro-solid-svg-icons";
4
4
  export const SearchBar = () => (h("form", { class: "uofg-header-search-bar", method: "get", role: "search", action: "https://uoguelph.ca/search/" }, h("input", { type: "text", name: "q" }), h("input", { type: "hidden", name: "cx", value: "002616817380988741256:tp3ks5ha2dw" }), h("input", { type: "hidden", name: "cof", value: "FORID:11" }), h("input", { type: "hidden", name: "ie", value: "UTF-8" }), h("button", { class: "uofg-search-bar-button", "aria-label": "Search", type: "submit" }, h(FontAwesomeIcon, { icon: faSearch }))));
@@ -1,2 +1,2 @@
1
- import { h } from '@stencil/core';
1
+ import { h } from "@stencil/core";
2
2
  export const SingleSignOn = () => (h("form", { class: "uofg-header-single-sign-on" }, h("span", null, "Please log in with your Central Login Account"), h("label", null, h("span", null, "Username"), h("input", { type: "text", name: "username" })), h("label", null, h("span", null, "Password"), h("input", { type: "password", name: "password" })), h("button", { type: "submit" }, "Sign in"), h("a", { href: "#" }, "Forgot your password?")));
@@ -1,13 +1,13 @@
1
- import { h } from '@stencil/core';
2
- import { PageSpecific } from './page-specific';
3
- import Decoration from './decoration.svg';
4
- import FullSizeLogo from './logo-full-size.svg';
5
- import ReducedSizeLogo from './logo-reduced-size.svg';
6
- import { GlobalLinks } from './global-links';
7
- import { FontAwesomeIcon } from '../../utils/font-awesome-icon';
8
- import { faBars, faRightToBracket, faSearch } from '@fortawesome/pro-solid-svg-icons';
9
- import { HelloYou } from './hello-you';
10
- import { SearchBar } from './search';
1
+ import { h } from "@stencil/core";
2
+ import { PageSpecific, } from "./page-specific";
3
+ import Decoration from "./decoration.svg";
4
+ import FullSizeLogo from "./logo-full-size.svg";
5
+ import ReducedSizeLogo from "./logo-reduced-size.svg";
6
+ import { GlobalLinks } from "./global-links";
7
+ import { FontAwesomeIcon } from "../../utils/font-awesome-icon";
8
+ import { faBars, faRightToBracket, faSearch } from "@fortawesome/pro-solid-svg-icons";
9
+ import { HelloYou } from "./hello-you";
10
+ import { SearchBar } from "./search";
11
11
  export class UofgHeader {
12
12
  constructor() {
13
13
  this.pageTitle = '';
@@ -32,24 +32,24 @@ export class UofgHeader {
32
32
  const aToPageSpecificLink = (a) => {
33
33
  const attributes = {};
34
34
  a.getAttributeNames()
35
- .filter((name) => name !== 'href')
36
- .forEach((name) => (attributes[name] = a.getAttribute(name)));
35
+ .filter(name => name !== 'href')
36
+ .forEach(name => (attributes[name] = a.getAttribute(name)));
37
37
  return {
38
38
  href: a.getAttribute('href'),
39
39
  text: a.textContent,
40
- attributes
40
+ attributes,
41
41
  };
42
42
  };
43
43
  this.pageSpecificContent = Array.from((_a = this.el) === null || _a === void 0 ? void 0 : _a.children)
44
- .filter((child) => child.tagName === 'A' || child.tagName === 'UL')
45
- .map((child) => {
44
+ .filter(child => child.tagName === 'A' || child.tagName === 'UL')
45
+ .map(child => {
46
46
  switch (child.tagName) {
47
47
  case 'A':
48
48
  return aToPageSpecificLink(child);
49
49
  case 'UL':
50
50
  return {
51
51
  title: child.getAttribute('data-title'),
52
- links: Array.from(child.querySelectorAll('a')).map(aToPageSpecificLink)
52
+ links: Array.from(child.querySelectorAll('a')).map(aToPageSpecificLink),
53
53
  };
54
54
  }
55
55
  });
@@ -1,14 +1,14 @@
1
- import { h, Host } from '@stencil/core';
2
- import { PREFERS_REDUCED_MOTION, WEB_ANIMATIONS_SUPPORTED } from '../../utils/feature-check';
1
+ import { h, Host } from "@stencil/core";
2
+ import { PREFERS_REDUCED_MOTION, WEB_ANIMATIONS_SUPPORTED } from "../../utils/feature-check";
3
3
  const DURATION_REGEX = /^(\d*\.?\d+)(s|ms)$/;
4
4
  const EASING_FUNCTION_REGEX = /^cubic-bezier\((\s*-?\d*\.?\d+\s*,){3}\s*-?\d*\.?\d+\s*\)$|^steps\(\s*\d+\s*(,\s*(start|end))?\s*\)$/;
5
- const observer = new MutationObserver((mutations) => {
5
+ const observer = new MutationObserver(mutations => {
6
6
  for (const mutation of mutations) {
7
7
  mutation.target.dispatchEvent(new CustomEvent('childListChange', { bubbles: false }));
8
8
  }
9
9
  });
10
10
  const observerConfig = {
11
- childList: true
11
+ childList: true,
12
12
  };
13
13
  export class UofgMenu {
14
14
  constructor() {
@@ -39,8 +39,10 @@ export class UofgMenu {
39
39
  handleKeyUp(e) {
40
40
  if (e.key === 'Escape') {
41
41
  this.isExpanded = false;
42
- if (this.button) {
43
- this.button.focus();
42
+ if (e.target !== this.button) {
43
+ e.stopPropagation();
44
+ this.isExpanded = false;
45
+ this.button && this.button.focus();
44
46
  }
45
47
  }
46
48
  }
@@ -93,10 +95,10 @@ export class UofgMenu {
93
95
  return;
94
96
  }
95
97
  // Check if we are in the middle of an animation.
96
- const animations = (_b = this.content) === null || _b === void 0 ? void 0 : _b.getAnimations().filter((animation) => animation.id === 'uofg-menu-animation');
98
+ const animations = (_b = this.content) === null || _b === void 0 ? void 0 : _b.getAnimations().filter(animation => animation.id === 'uofg-menu-animation');
97
99
  // If we are, then we want to reverse the existing one rather than starting a new animation.
98
100
  if (animations.length > 0) {
99
- animations === null || animations === void 0 ? void 0 : animations.forEach((animation) => animation.reverse());
101
+ animations === null || animations === void 0 ? void 0 : animations.forEach(animation => animation.reverse());
100
102
  return;
101
103
  }
102
104
  let animationDef;
@@ -105,7 +107,7 @@ export class UofgMenu {
105
107
  duration: this.getAnimationDuration(),
106
108
  fill: 'none',
107
109
  easing: this.getAnimationEasing(),
108
- direction: newValue ? 'normal' : 'reverse'
110
+ direction: newValue ? 'normal' : 'reverse',
109
111
  };
110
112
  // Need to remove display none, otherwise keyframe values won't be calculated correctly.
111
113
  this.content.style.display = '';
@@ -180,19 +182,19 @@ export class UofgMenu {
180
182
  paddingTop: 0,
181
183
  paddingBottom: 0,
182
184
  marginTop: 0,
183
- marginBottom: 0
185
+ marginBottom: 0,
184
186
  },
185
187
  {
186
188
  height: ((_a = this.contentComputedStyle) === null || _a === void 0 ? void 0 : _a.height) || 0,
187
189
  paddingTop: ((_b = this.contentComputedStyle) === null || _b === void 0 ? void 0 : _b.paddingTop) || 0,
188
190
  paddingBottom: ((_c = this.contentComputedStyle) === null || _c === void 0 ? void 0 : _c.paddingBottom) || 0,
189
191
  marginTop: ((_d = this.contentComputedStyle) === null || _d === void 0 ? void 0 : _d.marginTop) || 0,
190
- marginBottom: ((_e = this.contentComputedStyle) === null || _e === void 0 ? void 0 : _e.marginBottom) || 0
191
- }
192
+ marginBottom: ((_e = this.contentComputedStyle) === null || _e === void 0 ? void 0 : _e.marginBottom) || 0,
193
+ },
192
194
  ],
193
195
  callback: () => {
194
196
  this.content && (this.content.style.overflowY = '');
195
- }
197
+ },
196
198
  };
197
199
  }
198
200
  render() {
@@ -333,7 +335,8 @@ export class UofgMenu {
333
335
  "parameters": [],
334
336
  "references": {
335
337
  "Promise": {
336
- "location": "global"
338
+ "location": "global",
339
+ "id": "global::Promise"
337
340
  }
338
341
  },
339
342
  "return": "Promise<boolean>"
@@ -358,7 +361,8 @@ export class UofgMenu {
358
361
  }],
359
362
  "references": {
360
363
  "Promise": {
361
- "location": "global"
364
+ "location": "global",
365
+ "id": "global::Promise"
362
366
  }
363
367
  },
364
368
  "return": "Promise<void>"
@@ -377,7 +381,8 @@ export class UofgMenu {
377
381
  "parameters": [],
378
382
  "references": {
379
383
  "Promise": {
380
- "location": "global"
384
+ "location": "global",
385
+ "id": "global::Promise"
381
386
  }
382
387
  },
383
388
  "return": "Promise<boolean>"
@@ -396,7 +401,8 @@ export class UofgMenu {
396
401
  "parameters": [],
397
402
  "references": {
398
403
  "Promise": {
399
- "location": "global"
404
+ "location": "global",
405
+ "id": "global::Promise"
400
406
  }
401
407
  },
402
408
  "return": "Promise<void>"
@@ -415,7 +421,8 @@ export class UofgMenu {
415
421
  "parameters": [],
416
422
  "references": {
417
423
  "Promise": {
418
- "location": "global"
424
+ "location": "global",
425
+ "id": "global::Promise"
419
426
  }
420
427
  },
421
428
  "return": "Promise<void>"
@@ -1,7 +1,7 @@
1
- import { h } from '@stencil/core';
2
- export const FontAwesomeIcon = (props) => {
1
+ import { h } from "@stencil/core";
2
+ export const FontAwesomeIcon = props => {
3
3
  const width = props.icon.icon[0];
4
4
  const height = props.icon.icon[1];
5
5
  const iconPathData = props.icon.icon[4];
6
- return (h("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: `0 0 ${width} ${height}` }, Array.isArray(iconPathData) ? (iconPathData.map((path) => h("path", { d: path }))) : (h("path", { d: iconPathData }))));
6
+ return (h("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: `0 0 ${width} ${height}` }, Array.isArray(iconPathData) ? (iconPathData.map(path => h("path", { d: path }))) : (h("path", { d: iconPathData }))));
7
7
  };
@@ -1,10 +1,10 @@
1
1
  import { h } from '@stencil/core/internal/client';
2
2
 
3
- const FontAwesomeIcon = (props) => {
3
+ const FontAwesomeIcon = props => {
4
4
  const width = props.icon.icon[0];
5
5
  const height = props.icon.icon[1];
6
6
  const iconPathData = props.icon.icon[4];
7
- return (h("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: `0 0 ${width} ${height}` }, Array.isArray(iconPathData) ? (iconPathData.map((path) => h("path", { d: path }))) : (h("path", { d: iconPathData }))));
7
+ return (h("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: `0 0 ${width} ${height}` }, Array.isArray(iconPathData) ? (iconPathData.map(path => h("path", { d: path }))) : (h("path", { d: iconPathData }))));
8
8
  };
9
9
 
10
10
  var faTrees = {
@@ -34,7 +34,7 @@ var faYoutube = {
34
34
  icon: [576, 512, [61802], "f167", "M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"]
35
35
  };
36
36
 
37
- const SocialLink = (props) => (h("li", null,
37
+ const SocialLink = props => (h("li", null,
38
38
  h("a", { href: props.url, "aria-label": props.name },
39
39
  h(FontAwesomeIcon, { icon: props.icon }))));
40
40
  const SocialLinks = () => (h("ul", { id: "uofg-footer-social-links" },
@@ -45,7 +45,7 @@ const SocialLinks = () => (h("ul", { id: "uofg-footer-social-links" },
45
45
  h(SocialLink, { name: "LinkedIn", url: "https://www.linkedin.com/school/university-of-guelph/", icon: faLinkedin }),
46
46
  h(SocialLink, { name: "TikTok", url: "https://www.tiktok.com/@uofguelph", icon: faTiktok })));
47
47
 
48
- const FooterLink = (props) => (h("li", null,
48
+ const FooterLink = props => (h("li", null,
49
49
  h("a", { href: props.url, title: props.title },
50
50
  h(FontAwesomeIcon, { icon: props.icon }),
51
51
  h("span", null, props.text))));