@uoguelph/web-components 1.1.2 → 1.2.0-rc.0

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 (83) hide show
  1. package/dist/cjs/app-globals-3a1e7e63.js +5 -0
  2. package/dist/cjs/{index-00f6c6f1.js → index-06b58d35.js} +5 -5
  3. package/dist/cjs/{index-d71963b7.js → index-cdb046b4.js} +149 -44
  4. package/dist/cjs/loader.cjs.js +5 -3
  5. package/dist/cjs/uofg-alert.cjs.entry.js +11 -10
  6. package/dist/cjs/uofg-back-to-top_5.cjs.entry.js +1374 -0
  7. package/dist/cjs/uofg-modal.cjs.entry.js +152 -142
  8. package/dist/cjs/uofg-web-components.cjs.js +6 -4
  9. package/dist/cjs/utils-3d4b7e2e.js +16 -0
  10. package/dist/collection/collection-manifest.json +2 -2
  11. package/dist/collection/components/uofg-alert/uofg-alert.css +1 -75
  12. package/dist/collection/components/uofg-alert/uofg-alert.js +15 -15
  13. package/dist/collection/components/uofg-back-to-top/uofg-back-to-top.css +1 -40
  14. package/dist/collection/components/uofg-back-to-top/uofg-back-to-top.js +66 -63
  15. package/dist/collection/components/uofg-card/uofg-card.css +1 -95
  16. package/dist/collection/components/uofg-card/uofg-card.js +42 -40
  17. package/dist/collection/components/uofg-footer/uofg-footer.css +1 -249
  18. package/dist/collection/components/uofg-footer/uofg-footer.js +132 -40
  19. package/dist/collection/components/uofg-header/logo-full.svg +1 -1
  20. package/dist/collection/components/uofg-header/uofg-header.css +1 -542
  21. package/dist/collection/components/uofg-header/uofg-header.js +238 -157
  22. package/dist/collection/components/uofg-menu/uofg-menu.js +414 -410
  23. package/dist/collection/components/uofg-modal/uofg-modal.css +1 -113
  24. package/dist/collection/components/uofg-modal/uofg-modal.js +393 -386
  25. package/dist/collection/utils/font-awesome-icon.js +4 -4
  26. package/dist/collection/utils/utils.js +5 -5
  27. package/dist/components/font-awesome-icon.js +4 -4
  28. package/dist/components/uofg-alert.d.ts +2 -2
  29. package/dist/components/uofg-alert.js +22 -21
  30. package/dist/components/uofg-back-to-top.d.ts +2 -2
  31. package/dist/components/uofg-back-to-top.js +38 -34
  32. package/dist/components/uofg-card.d.ts +2 -2
  33. package/dist/components/uofg-card.js +28 -25
  34. package/dist/components/uofg-footer.d.ts +2 -2
  35. package/dist/components/uofg-footer.js +243 -115
  36. package/dist/components/uofg-header.d.ts +2 -2
  37. package/dist/components/uofg-header.js +235 -144
  38. package/dist/components/uofg-menu.d.ts +2 -2
  39. package/dist/components/uofg-menu2.js +245 -239
  40. package/dist/components/uofg-modal.d.ts +2 -2
  41. package/dist/components/uofg-modal.js +176 -166
  42. package/dist/components/utils.js +4 -4
  43. package/dist/esm/app-globals-0f993ce5.js +3 -0
  44. package/dist/esm/{index-284464b7.js → index-0b0002d2.js} +149 -44
  45. package/dist/esm/{index-a0a2924b.js → index-e685921a.js} +5 -5
  46. package/dist/esm/loader.js +6 -4
  47. package/dist/esm/uofg-alert.entry.js +11 -10
  48. package/dist/esm/uofg-back-to-top_5.entry.js +1366 -0
  49. package/dist/esm/uofg-modal.entry.js +152 -142
  50. package/dist/esm/uofg-web-components.js +7 -5
  51. package/dist/esm/utils-379bb71a.js +12 -0
  52. package/dist/types/components/uofg-alert/uofg-alert.d.ts +1 -1
  53. package/dist/types/components/uofg-back-to-top/uofg-back-to-top.d.ts +8 -8
  54. package/dist/types/components/uofg-card/uofg-card.d.ts +5 -5
  55. package/dist/types/components/uofg-footer/uofg-footer.d.ts +6 -6
  56. package/dist/types/components/uofg-header/uofg-header.d.ts +30 -29
  57. package/dist/types/components/uofg-menu/uofg-menu.d.ts +65 -65
  58. package/dist/types/components/uofg-modal/uofg-modal.d.ts +70 -70
  59. package/dist/types/components.d.ts +27 -1
  60. package/dist/types/stencil-public-runtime.d.ts +29 -0
  61. package/dist/types/utils/font-awesome-icon.d.ts +1 -1
  62. package/dist/uofg-web-components/{p-8bb65209.js → p-6fa0f8f6.js} +1 -1
  63. package/dist/uofg-web-components/p-7569d8f2.entry.js +1 -0
  64. package/dist/uofg-web-components/p-bce5df9d.entry.js +1 -0
  65. package/dist/uofg-web-components/p-e1255160.js +1 -0
  66. package/dist/uofg-web-components/p-ee27db22.js +2 -0
  67. package/dist/uofg-web-components/p-fde6370b.entry.js +1 -0
  68. package/dist/uofg-web-components/uofg-web-components.css +1 -1
  69. package/dist/uofg-web-components/uofg-web-components.esm.js +1 -1
  70. package/package.json +12 -7
  71. package/dist/cjs/uofg-back-to-top_4.cjs.entry.js +0 -1139
  72. package/dist/cjs/uofg-card.cjs.entry.js +0 -21
  73. package/dist/cjs/utils-582c8cb9.js +0 -16
  74. package/dist/components/_commonjsHelpers.js +0 -15
  75. package/dist/esm/uofg-back-to-top_4.entry.js +0 -1132
  76. package/dist/esm/uofg-card.entry.js +0 -17
  77. package/dist/esm/utils-cfa32fa2.js +0 -12
  78. package/dist/uofg-web-components/p-204e5cf7.entry.js +0 -1
  79. package/dist/uofg-web-components/p-3d5269a9.entry.js +0 -1
  80. package/dist/uofg-web-components/p-9429a69e.entry.js +0 -1
  81. package/dist/uofg-web-components/p-ba36e942.js +0 -2
  82. package/dist/uofg-web-components/p-e063f0e4.entry.js +0 -1
  83. /package/dist/uofg-web-components/{p-826dc478.js → p-fec87f9d.js} +0 -0
@@ -1,1139 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-d71963b7.js');
6
- const index$1 = require('./index-00f6c6f1.js');
7
- const utils = require('./utils-582c8cb9.js');
8
-
9
- const uofgBackToTopCss = ":host{display:block}:focus-visible{outline:2px solid #ffc72a;outline-offset:0.5rem}#uofg-back-to-top{position:fixed;margin:10px;height:35px;width:35px;right:0;bottom:0;z-index:1000;cursor:pointer;background-color:black;color:white;transition-duration:0.3s;transition-timing-function:ease-in-out;transition-property:opacity, visibility, background-color;opacity:0;visibility:hidden;border-radius:50%;border:1px solid #fff}#uofg-back-to-top:hover{background-color:#d50029}#uofg-back-to-top>svg{width:1em;height:1em;fill:currentColor}#uofg-back-to-top.visible{opacity:1;visibility:visible}";
10
-
11
- const UofgBackToTop = class {
12
- constructor(hostRef) {
13
- index.registerInstance(this, hostRef);
14
- this.threshold = 50;
15
- this.isVisible = false;
16
- }
17
- connectedCallback() {
18
- this.onScroll();
19
- }
20
- onScroll() {
21
- this.isVisible = window.scrollY >= this.threshold;
22
- }
23
- render() {
24
- return (index.h("button", { id: "uofg-back-to-top", "aria-label": "Go back to the top", class: { visible: this.isVisible }, onClick: () => {
25
- window.scrollTo({ top: 0, behavior: 'smooth' });
26
- } }, index.h(index$1.FontAwesomeIcon, { icon: index$1.faChevronUp })));
27
- }
28
- };
29
- UofgBackToTop.style = uofgBackToTopCss;
30
-
31
- const improveLifeLogo = `<svg xmlns="http://www.w3.org/2000/svg" fill="#fff" viewBox="0 0 107.4 12">
32
- <path
33
- d="M0 0h5.3v.5C4 .5 3.6.8 3.6 2.1v7.3c0 1.4.3 1.8 1.6 1.8v.5H0v-.5c1.5 0 1.5-.5 1.5-1.6V1.9C1.5.9 1.3.5 0 .5ZM6.1 11.4c.9 0 1.1-.2 1.2-1.4l.3-5.1c.1-1.2-.1-1.4-.9-1.4v-.4h2.6l3 6.5 2.8-6.5h2.6v.4c-.8 0-.9.2-.9.8l.5 6.3c.1.7.3.8 1.1.8v.4h-4v-.4c1.1 0 1.3-.3 1.2-1.8l-.4-5.1-3.2 7.3h-.5L8.4 4.7l-.3 5.1c-.1 1.5.2 1.5 1.1 1.6v.4H6.1ZM19.2 11.4c1 0 1.2-.2 1.2-1.5v-5c0-1.4-.2-1.5-1.3-1.5v-.3h1.4a14.4 14.4 0 0 1 1.8-.1c2.6 0 4.1.6 4.1 2.5 0 1.6-1.4 2.8-3.3 2.8a3.8 3.8 0 0 1-1.1-.1v1.9c0 1.1.3 1.3 1.6 1.3v.4h-4.3v-.4Zm2.7-3.7.6.1a2.2 2.2 0 0 0 2.2-2.3 2 2 0 0 0-2.1-2.1h-.7ZM29.7 10c0 1.2.2 1.4 1.4 1.4v.4h-4.3v-.4c1.2 0 1.3-.3 1.3-1.2V4.6c0-.9-.2-1.1-1.3-1.1v-.4l2-.1h1.7c2.8 0 3.8 1.2 3.8 2.5a2.5 2.5 0 0 1-1.8 2.3 9.4 9.4 0 0 1 1 1l.9.9a5.4 5.4 0 0 0 3.3 1.9v.4c-2.7.1-3.4-.4-4.7-1.7l-.7-.7a8 8 0 0 0-1.5-1.3h-1.2V10Zm0-2.2h.4c1.9-.1 2.5-.8 2.5-2.2a2 2 0 0 0-2.3-2.2 1.7 1.7 0 0 0-.7.1v4.3ZM42.4 2.9c3 0 5.1 1.8 5.1 4.4a4.8 4.8 0 0 1-5.1 4.7c-2.9 0-5-1.8-5-4.3-.1-2.8 2.1-4.8 5-4.8Zm.2 8.6c1.9 0 3.2-1.6 3.2-3.9 0-2.5-1.5-4.3-3.5-4.3S39 4.8 39 7.3c0 2.8 1.8 4.2 3.6 4.2ZM49 4.5c-.4-1-.5-1.1-1.4-1.1v-.3h4.3v.4c-1.1 0-1.3.3-1.3.6a3 3 0 0 0 .2.8l2.1 5.2 2-4.9a4.5 4.5 0 0 0 .3-1.1c0-.5-.4-.6-1.3-.6v-.4h3.4v.4c-1 0-1.2.5-1.6 1.6L52.8 12H52ZM57.7 11.8v-.4c1.1 0 1.4-.2 1.4-1v-6c0-.9-.5-.9-1.4-.9v-.4h7.1l.1 2.1h-.4l-.1-.3c-.3-1.1-.5-1.2-1.4-1.2h-2.5V7h2.2c.8 0 1-.1 1-1.1h.4v2.8h-.4c-.1-1-.3-1.1-1-1.1h-2.2v2.5c0 .9.1 1 .8 1H63c1.4 0 1.7-.2 2.1-1.6h.4l-.2 2.2h-7.6ZM72.2 11.8v-.5c1.5 0 1.8-.1 1.8-1.6V2.1C74 .8 73.9.4 72.2.5V0h6.2v.5c-2 0-2.3.1-2.3 1.5v8c0 .8.2.9 1 .9H79c1.6 0 1.7-.1 3.1-2h.6l-1.5 2.9ZM83.2 3.1h3.9v.4c-.9 0-1.2.2-1.2 1.2v5.4c0 1 .2 1.3 1.2 1.3v.4h-3.9v-.4c1.1 0 1.1-.4 1.1-1.2V4.5c0-.8-.2-1.1-1.1-1ZM90.7 10c0 1.1.2 1.3 1.2 1.3v.4H88v-.4c.9 0 1.1-.3 1.1-1.1V4.5c0-.8-.3-1-1.1-1v-.4h6.6v1.7h-.4c-.1-.9-.3-1.1-1.4-1.1h-2.2v3.1h2.2c.9 0 1-.1 1.1-.9h.4v2.6H94c-.1-.9-.3-1-1.2-1h-2.1ZM95.3 11.8v-.4c1.1 0 1.4-.2 1.4-1v-6c0-.9-.5-.9-1.4-.9v-.4h7.1l.1 2.1h-.4l-.1-.3c-.3-1.1-.5-1.2-1.4-1.2h-2.5V7h2.2c.8 0 1-.1 1-1.1h.4v2.8h-.4c-.1-1-.3-1.1-1-1.1h-2.2v2.5c0 .9.1 1 .8 1h1.5c1.4 0 1.7-.2 2.1-1.6h.4l-.2 2.2h-7.4ZM107.4 10.9c0 .7-.5 1.1-1.3 1.1s-1.3-.4-1.3-1.1a1.2 1.2 0 0 1 1.3-1.2 1.2 1.2 0 0 1 1.3 1.2Z"/>
34
- </svg>
35
- `;
36
-
37
- function createCommonjsModule(fn, basedir, module) {
38
- return module = {
39
- path: basedir,
40
- exports: {},
41
- require: function (path, base) {
42
- return commonjsRequire();
43
- }
44
- }, fn(module, module.exports), module.exports;
45
- }
46
-
47
- function commonjsRequire () {
48
- throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');
49
- }
50
-
51
- var faBriefcase = createCommonjsModule(function (module, exports) {
52
- Object.defineProperty(exports, '__esModule', { value: true });
53
- var prefix = 'fas';
54
- var iconName = 'briefcase';
55
- var width = 512;
56
- var height = 512;
57
- var aliases = [128188];
58
- var unicode = 'f0b1';
59
- var svgPathData = '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';
60
-
61
- exports.definition = {
62
- prefix: prefix,
63
- iconName: iconName,
64
- icon: [
65
- width,
66
- height,
67
- aliases,
68
- unicode,
69
- svgPathData
70
- ]};
71
-
72
- exports.faBriefcase = exports.definition;
73
- exports.prefix = prefix;
74
- exports.iconName = iconName;
75
- exports.width = width;
76
- exports.height = height;
77
- exports.ligatures = aliases;
78
- exports.unicode = unicode;
79
- exports.svgPathData = svgPathData;
80
- exports.aliases = aliases;
81
- });
82
-
83
- var faCalendar = createCommonjsModule(function (module, exports) {
84
- Object.defineProperty(exports, '__esModule', { value: true });
85
- var prefix = 'fas';
86
- var iconName = 'calendar';
87
- var width = 448;
88
- var height = 512;
89
- var aliases = [128197,128198];
90
- var unicode = 'f133';
91
- var svgPathData = 'M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z';
92
-
93
- exports.definition = {
94
- prefix: prefix,
95
- iconName: iconName,
96
- icon: [
97
- width,
98
- height,
99
- aliases,
100
- unicode,
101
- svgPathData
102
- ]};
103
-
104
- exports.faCalendar = exports.definition;
105
- exports.prefix = prefix;
106
- exports.iconName = iconName;
107
- exports.width = width;
108
- exports.height = height;
109
- exports.ligatures = aliases;
110
- exports.unicode = unicode;
111
- exports.svgPathData = svgPathData;
112
- exports.aliases = aliases;
113
- });
114
-
115
- var faCircleCheck = createCommonjsModule(function (module, exports) {
116
- Object.defineProperty(exports, '__esModule', { value: true });
117
- var prefix = 'fas';
118
- var iconName = 'circle-check';
119
- var width = 512;
120
- var height = 512;
121
- var aliases = [61533,"check-circle"];
122
- var unicode = 'f058';
123
- var svgPathData = 'M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z';
124
-
125
- exports.definition = {
126
- prefix: prefix,
127
- iconName: iconName,
128
- icon: [
129
- width,
130
- height,
131
- aliases,
132
- unicode,
133
- svgPathData
134
- ]};
135
-
136
- exports.faCircleCheck = exports.definition;
137
- exports.prefix = prefix;
138
- exports.iconName = iconName;
139
- exports.width = width;
140
- exports.height = height;
141
- exports.ligatures = aliases;
142
- exports.unicode = unicode;
143
- exports.svgPathData = svgPathData;
144
- exports.aliases = aliases;
145
- });
146
-
147
- var faHandHoldingHeart = createCommonjsModule(function (module, exports) {
148
- Object.defineProperty(exports, '__esModule', { value: true });
149
- var prefix = 'fas';
150
- var iconName = 'hand-holding-heart';
151
- var width = 576;
152
- var height = 512;
153
- var aliases = [];
154
- var unicode = 'f4be';
155
- var svgPathData = 'M163.9 136.9c-29.4-29.8-29.4-78.2 0-108s77-29.8 106.4 0l17.7 18 17.7-18c29.4-29.8 77-29.8 106.4 0s29.4 78.2 0 108L310.5 240.1c-6.2 6.3-14.3 9.4-22.5 9.4s-16.3-3.1-22.5-9.4L163.9 136.9zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z';
156
-
157
- exports.definition = {
158
- prefix: prefix,
159
- iconName: iconName,
160
- icon: [
161
- width,
162
- height,
163
- aliases,
164
- unicode,
165
- svgPathData
166
- ]};
167
-
168
- exports.faHandHoldingHeart = exports.definition;
169
- exports.prefix = prefix;
170
- exports.iconName = iconName;
171
- exports.width = width;
172
- exports.height = height;
173
- exports.ligatures = aliases;
174
- exports.unicode = unicode;
175
- exports.svgPathData = svgPathData;
176
- exports.aliases = aliases;
177
- });
178
-
179
- var faKey = createCommonjsModule(function (module, exports) {
180
- Object.defineProperty(exports, '__esModule', { value: true });
181
- var prefix = 'fas';
182
- var iconName = 'key';
183
- var width = 512;
184
- var height = 512;
185
- var aliases = [128273];
186
- var unicode = 'f084';
187
- var svgPathData = 'M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V448h40c13.3 0 24-10.7 24-24V384h40c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z';
188
-
189
- exports.definition = {
190
- prefix: prefix,
191
- iconName: iconName,
192
- icon: [
193
- width,
194
- height,
195
- aliases,
196
- unicode,
197
- svgPathData
198
- ]};
199
-
200
- exports.faKey = exports.definition;
201
- exports.prefix = prefix;
202
- exports.iconName = iconName;
203
- exports.width = width;
204
- exports.height = height;
205
- exports.ligatures = aliases;
206
- exports.unicode = unicode;
207
- exports.svgPathData = svgPathData;
208
- exports.aliases = aliases;
209
- });
210
-
211
- var faList = createCommonjsModule(function (module, exports) {
212
- Object.defineProperty(exports, '__esModule', { value: true });
213
- var prefix = 'fas';
214
- var iconName = 'list';
215
- var width = 512;
216
- var height = 512;
217
- var aliases = ["list-squares"];
218
- var unicode = 'f03a';
219
- var svgPathData = 'M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z';
220
-
221
- exports.definition = {
222
- prefix: prefix,
223
- iconName: iconName,
224
- icon: [
225
- width,
226
- height,
227
- aliases,
228
- unicode,
229
- svgPathData
230
- ]};
231
-
232
- exports.faList = exports.definition;
233
- exports.prefix = prefix;
234
- exports.iconName = iconName;
235
- exports.width = width;
236
- exports.height = height;
237
- exports.ligatures = aliases;
238
- exports.unicode = unicode;
239
- exports.svgPathData = svgPathData;
240
- exports.aliases = aliases;
241
- });
242
-
243
- var faSitemap = createCommonjsModule(function (module, exports) {
244
- Object.defineProperty(exports, '__esModule', { value: true });
245
- var prefix = 'fas';
246
- var iconName = 'sitemap';
247
- var width = 576;
248
- var height = 512;
249
- var aliases = [];
250
- var unicode = 'f0e8';
251
- var svgPathData = 'M208 80c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48h-8v40H464c30.9 0 56 25.1 56 56v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H464c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-4.4-3.6-8-8-8H312v40h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H256c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V280H112c-4.4 0-8 3.6-8 8v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-30.9 25.1-56 56-56H264V192h-8c-26.5 0-48-21.5-48-48V80z';
252
-
253
- exports.definition = {
254
- prefix: prefix,
255
- iconName: iconName,
256
- icon: [
257
- width,
258
- height,
259
- aliases,
260
- unicode,
261
- svgPathData
262
- ]};
263
-
264
- exports.faSitemap = exports.definition;
265
- exports.prefix = prefix;
266
- exports.iconName = iconName;
267
- exports.width = width;
268
- exports.height = height;
269
- exports.ligatures = aliases;
270
- exports.unicode = unicode;
271
- exports.svgPathData = svgPathData;
272
- exports.aliases = aliases;
273
- });
274
-
275
- var faTree = createCommonjsModule(function (module, exports) {
276
- Object.defineProperty(exports, '__esModule', { value: true });
277
- var prefix = 'fas';
278
- var iconName = 'tree';
279
- var width = 448;
280
- var height = 512;
281
- var aliases = [127794];
282
- var unicode = 'f1bb';
283
- var svgPathData = 'M210.6 5.9L62 169.4c-3.9 4.2-6 9.8-6 15.5C56 197.7 66.3 208 79.1 208H104L30.6 281.4c-4.2 4.2-6.6 10-6.6 16C24 309.9 34.1 320 46.6 320H80L5.4 409.5C1.9 413.7 0 419 0 424.5c0 13 10.5 23.5 23.5 23.5H192v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448H424.5c13 0 23.5-10.5 23.5-23.5c0-5.5-1.9-10.8-5.4-15L368 320h33.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L344 208h24.9c12.7 0 23.1-10.3 23.1-23.1c0-5.7-2.1-11.3-6-15.5L237.4 5.9C234 2.1 229.1 0 224 0s-10 2.1-13.4 5.9z';
284
-
285
- exports.definition = {
286
- prefix: prefix,
287
- iconName: iconName,
288
- icon: [
289
- width,
290
- height,
291
- aliases,
292
- unicode,
293
- svgPathData
294
- ]};
295
-
296
- exports.faTree = exports.definition;
297
- exports.prefix = prefix;
298
- exports.iconName = iconName;
299
- exports.width = width;
300
- exports.height = height;
301
- exports.ligatures = aliases;
302
- exports.unicode = unicode;
303
- exports.svgPathData = svgPathData;
304
- exports.aliases = aliases;
305
- });
306
-
307
- var faUniversalAccess = createCommonjsModule(function (module, exports) {
308
- Object.defineProperty(exports, '__esModule', { value: true });
309
- var prefix = 'fas';
310
- var iconName = 'universal-access';
311
- var width = 512;
312
- var height = 512;
313
- var aliases = [];
314
- var unicode = 'f29a';
315
- var svgPathData = 'M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm161.5-86.1c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3v50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6V235.5c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160a40 40 0 1 0 0-80 40 40 0 1 0 0 80z';
316
-
317
- exports.definition = {
318
- prefix: prefix,
319
- iconName: iconName,
320
- icon: [
321
- width,
322
- height,
323
- aliases,
324
- unicode,
325
- svgPathData
326
- ]};
327
-
328
- exports.faUniversalAccess = exports.definition;
329
- exports.prefix = prefix;
330
- exports.iconName = iconName;
331
- exports.width = width;
332
- exports.height = height;
333
- exports.ligatures = aliases;
334
- exports.unicode = unicode;
335
- exports.svgPathData = svgPathData;
336
- exports.aliases = aliases;
337
- });
338
-
339
- var faPhoneFlip = createCommonjsModule(function (module, exports) {
340
- Object.defineProperty(exports, '__esModule', { value: true });
341
- var prefix = 'fas';
342
- var iconName = 'phone-flip';
343
- var width = 512;
344
- var height = 512;
345
- var aliases = [128381,"phone-alt"];
346
- var unicode = 'f879';
347
- var svgPathData = 'M347.1 24.6c7.7-18.6 28-28.5 47.4-23.2l88 24C499.9 30.2 512 46 512 64c0 247.4-200.6 448-448 448c-18 0-33.8-12.1-38.6-29.5l-24-88c-5.3-19.4 4.6-39.7 23.2-47.4l96-40c16.3-6.8 35.2-2.1 46.3 11.6L207.3 368c70.4-33.3 127.4-90.3 160.7-160.7L318.7 167c-13.7-11.2-18.4-30-11.6-46.3l40-96z';
348
-
349
- exports.definition = {
350
- prefix: prefix,
351
- iconName: iconName,
352
- icon: [
353
- width,
354
- height,
355
- aliases,
356
- unicode,
357
- svgPathData
358
- ]};
359
-
360
- exports.faPhoneFlip = exports.definition;
361
- exports.prefix = prefix;
362
- exports.iconName = iconName;
363
- exports.width = width;
364
- exports.height = height;
365
- exports.ligatures = aliases;
366
- exports.unicode = unicode;
367
- exports.svgPathData = svgPathData;
368
- exports.aliases = aliases;
369
- });
370
-
371
- var faSquareFacebook = createCommonjsModule(function (module, exports) {
372
- Object.defineProperty(exports, '__esModule', { value: true });
373
- var prefix = 'fab';
374
- var iconName = 'square-facebook';
375
- var width = 448;
376
- var height = 512;
377
- var aliases = ["facebook-square"];
378
- var unicode = 'f082';
379
- var svgPathData = 'M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z';
380
-
381
- exports.definition = {
382
- prefix: prefix,
383
- iconName: iconName,
384
- icon: [
385
- width,
386
- height,
387
- aliases,
388
- unicode,
389
- svgPathData
390
- ]};
391
-
392
- exports.faSquareFacebook = exports.definition;
393
- exports.prefix = prefix;
394
- exports.iconName = iconName;
395
- exports.width = width;
396
- exports.height = height;
397
- exports.ligatures = aliases;
398
- exports.unicode = unicode;
399
- exports.svgPathData = svgPathData;
400
- exports.aliases = aliases;
401
- });
402
-
403
- var faFacebookSquare = createCommonjsModule(function (module, exports) {
404
- Object.defineProperty(exports, '__esModule', { value: true });
405
-
406
- exports.definition = {
407
- prefix: faSquareFacebook.prefix,
408
- iconName: faSquareFacebook.iconName,
409
- icon: [
410
- faSquareFacebook.width,
411
- faSquareFacebook.height,
412
- faSquareFacebook.aliases,
413
- faSquareFacebook.unicode,
414
- faSquareFacebook.svgPathData
415
- ]};
416
-
417
- exports.faFacebookSquare = exports.definition;
418
- exports.prefix = faSquareFacebook.prefix;
419
- exports.iconName = faSquareFacebook.iconName;
420
- exports.width = faSquareFacebook.width;
421
- exports.height = faSquareFacebook.height;
422
- exports.ligatures = faSquareFacebook.aliases;
423
- exports.unicode = faSquareFacebook.unicode;
424
- exports.svgPathData = faSquareFacebook.svgPathData;
425
- exports.aliases = faSquareFacebook.aliases;
426
- });
427
-
428
- var faInstagram = createCommonjsModule(function (module, exports) {
429
- Object.defineProperty(exports, '__esModule', { value: true });
430
- var prefix = 'fab';
431
- var iconName = 'instagram';
432
- var width = 448;
433
- var height = 512;
434
- var aliases = [];
435
- var unicode = 'f16d';
436
- var svgPathData = 'M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z';
437
-
438
- exports.definition = {
439
- prefix: prefix,
440
- iconName: iconName,
441
- icon: [
442
- width,
443
- height,
444
- aliases,
445
- unicode,
446
- svgPathData
447
- ]};
448
-
449
- exports.faInstagram = exports.definition;
450
- exports.prefix = prefix;
451
- exports.iconName = iconName;
452
- exports.width = width;
453
- exports.height = height;
454
- exports.ligatures = aliases;
455
- exports.unicode = unicode;
456
- exports.svgPathData = svgPathData;
457
- exports.aliases = aliases;
458
- });
459
-
460
- var faLinkedin = createCommonjsModule(function (module, exports) {
461
- Object.defineProperty(exports, '__esModule', { value: true });
462
- var prefix = 'fab';
463
- var iconName = 'linkedin';
464
- var width = 448;
465
- var height = 512;
466
- var aliases = [];
467
- var unicode = 'f08c';
468
- var svgPathData = 'M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z';
469
-
470
- exports.definition = {
471
- prefix: prefix,
472
- iconName: iconName,
473
- icon: [
474
- width,
475
- height,
476
- aliases,
477
- unicode,
478
- svgPathData
479
- ]};
480
-
481
- exports.faLinkedin = exports.definition;
482
- exports.prefix = prefix;
483
- exports.iconName = iconName;
484
- exports.width = width;
485
- exports.height = height;
486
- exports.ligatures = aliases;
487
- exports.unicode = unicode;
488
- exports.svgPathData = svgPathData;
489
- exports.aliases = aliases;
490
- });
491
-
492
- var faTiktok = createCommonjsModule(function (module, exports) {
493
- Object.defineProperty(exports, '__esModule', { value: true });
494
- var prefix = 'fab';
495
- var iconName = 'tiktok';
496
- var width = 448;
497
- var height = 512;
498
- var aliases = [];
499
- var unicode = 'e07b';
500
- var svgPathData = 'M448,209.91a210.06,210.06,0,0,1-122.77-39.25V349.38A162.55,162.55,0,1,1,185,188.31V278.2a74.62,74.62,0,1,0,52.23,71.18V0l88,0a121.18,121.18,0,0,0,1.86,22.17h0A122.18,122.18,0,0,0,381,102.39a121.43,121.43,0,0,0,67,20.14Z';
501
-
502
- exports.definition = {
503
- prefix: prefix,
504
- iconName: iconName,
505
- icon: [
506
- width,
507
- height,
508
- aliases,
509
- unicode,
510
- svgPathData
511
- ]};
512
-
513
- exports.faTiktok = exports.definition;
514
- exports.prefix = prefix;
515
- exports.iconName = iconName;
516
- exports.width = width;
517
- exports.height = height;
518
- exports.ligatures = aliases;
519
- exports.unicode = unicode;
520
- exports.svgPathData = svgPathData;
521
- exports.aliases = aliases;
522
- });
523
-
524
- var faSquareTwitter = createCommonjsModule(function (module, exports) {
525
- Object.defineProperty(exports, '__esModule', { value: true });
526
- var prefix = 'fab';
527
- var iconName = 'square-twitter';
528
- var width = 448;
529
- var height = 512;
530
- var aliases = ["twitter-square"];
531
- var unicode = 'f081';
532
- var svgPathData = 'M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM351.3 199.3v0c0 86.7-66 186.6-186.6 186.6c-37.2 0-71.7-10.8-100.7-29.4c5.3 .6 10.4 .8 15.8 .8c30.7 0 58.9-10.4 81.4-28c-28.8-.6-53-19.5-61.3-45.5c10.1 1.5 19.2 1.5 29.6-1.2c-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3c-9-6-16.4-14.1-21.5-23.6s-7.8-20.2-7.7-31c0-12.2 3.2-23.4 8.9-33.1c32.3 39.8 80.8 65.8 135.2 68.6c-9.3-44.5 24-80.6 64-80.6c18.9 0 35.9 7.9 47.9 20.7c14.8-2.8 29-8.3 41.6-15.8c-4.9 15.2-15.2 28-28.8 36.1c13.2-1.4 26-5.1 37.8-10.2c-8.9 13.1-20.1 24.7-32.9 34c.2 2.8 .2 5.7 .2 8.5z';
533
-
534
- exports.definition = {
535
- prefix: prefix,
536
- iconName: iconName,
537
- icon: [
538
- width,
539
- height,
540
- aliases,
541
- unicode,
542
- svgPathData
543
- ]};
544
-
545
- exports.faSquareTwitter = exports.definition;
546
- exports.prefix = prefix;
547
- exports.iconName = iconName;
548
- exports.width = width;
549
- exports.height = height;
550
- exports.ligatures = aliases;
551
- exports.unicode = unicode;
552
- exports.svgPathData = svgPathData;
553
- exports.aliases = aliases;
554
- });
555
-
556
- var faTwitterSquare = createCommonjsModule(function (module, exports) {
557
- Object.defineProperty(exports, '__esModule', { value: true });
558
-
559
- exports.definition = {
560
- prefix: faSquareTwitter.prefix,
561
- iconName: faSquareTwitter.iconName,
562
- icon: [
563
- faSquareTwitter.width,
564
- faSquareTwitter.height,
565
- faSquareTwitter.aliases,
566
- faSquareTwitter.unicode,
567
- faSquareTwitter.svgPathData
568
- ]};
569
-
570
- exports.faTwitterSquare = exports.definition;
571
- exports.prefix = faSquareTwitter.prefix;
572
- exports.iconName = faSquareTwitter.iconName;
573
- exports.width = faSquareTwitter.width;
574
- exports.height = faSquareTwitter.height;
575
- exports.ligatures = faSquareTwitter.aliases;
576
- exports.unicode = faSquareTwitter.unicode;
577
- exports.svgPathData = faSquareTwitter.svgPathData;
578
- exports.aliases = faSquareTwitter.aliases;
579
- });
580
-
581
- var faYoutube = createCommonjsModule(function (module, exports) {
582
- Object.defineProperty(exports, '__esModule', { value: true });
583
- var prefix = 'fab';
584
- var iconName = 'youtube';
585
- var width = 576;
586
- var height = 512;
587
- var aliases = [61802];
588
- var unicode = 'f167';
589
- var svgPathData = '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';
590
-
591
- exports.definition = {
592
- prefix: prefix,
593
- iconName: iconName,
594
- icon: [
595
- width,
596
- height,
597
- aliases,
598
- unicode,
599
- svgPathData
600
- ]};
601
-
602
- exports.faYoutube = exports.definition;
603
- exports.prefix = prefix;
604
- exports.iconName = iconName;
605
- exports.width = width;
606
- exports.height = height;
607
- exports.ligatures = aliases;
608
- exports.unicode = unicode;
609
- exports.svgPathData = svgPathData;
610
- exports.aliases = aliases;
611
- });
612
-
613
- const uofgFooterCss = ":focus-visible{outline:2px solid #ffc72a;outline-offset:0.5rem}*{box-sizing:border-box}button{border:none;background-color:transparent;cursor:pointer}a{color:inherit;text-decoration:none}ul{list-style:none;padding:0;margin:unset}ul>li{display:contents}:host{display:block;width:100%;font-size:1.6rem;font-family:sans-serif}a{display:flex;align-items:center;gap:0.5rem;border-bottom:2px dotted transparent;width:fit-content;width:-moz-max-content;color:inherit;white-space:nowrap;padding-bottom:0.2rem;transition-property:border-color;transition-duration:0.2s;transition-timing-function:ease-in-out}a:hover,a:focus{border-color:currentColor}svg{fill:currentColor;height:1.6rem}li{display:contents}#uofg-footer{display:flex;flex-direction:column;justify-content:center;align-items:center;background-color:#000;color:#fff;line-height:1.2}#uofg-footer-extra-links-container{display:flex;justify-content:center;align-items:center;width:100%;background-color:#f5f7fa}#uofg-footer-extra-links{display:flex;flex-direction:column;width:85%;align-items:center;justify-content:center;padding:1.25rem 1rem;color:#0074c1}#uofg-footer-extra-links>li>a{display:flex;justify-content:center;padding:1rem 0;width:100%;transition-property:color;transition-duration:0.2s;transition-timing-function:ease-in-out;border-bottom:2px solid transparent}#uofg-footer-extra-links>li>a:hover,#uofg-footer-extra-links>li>a:focus{color:black}#uofg-footer-extra-links>li:not(:last-child)>a{border-bottom:2px solid #bdc8ca}#uofg-footer-content{display:grid;grid-template-columns:1fr;gap:2rem;width:100%;padding:2rem;max-width:1320px}.uofg-footer-content-separator{display:flex;flex-direction:column;gap:0.75rem;justify-content:space-between}#uofg-footer-improve-life{transition-property:opacity;transition-duration:0.2s;transition-timing-function:ease-in-out;border:0}#uofg-footer-improve-life>svg{height:2.5rem}#uofg-footer-improve-life:hover,#uofg-footer-improve-life:focus{opacity:0.8}#uofg-footer-social-links{display:flex;align-items:center;list-style:none;padding:0;margin-left:0;gap:0 0.75rem}#uofg-footer-social-links a{transition-property:color;transition-duration:0.2s;transition-timing-function:ease-in-out;border:0}#uofg-footer-social-links a:hover,#uofg-footer-social-links a:focus{color:#ffc72a}#uofg-footer-social-links a:hover[aria-label=Twitter],#uofg-footer-social-links a:focus[aria-label=Twitter]{color:#1da1f2}#uofg-footer-social-links a:hover[aria-label=Facebook],#uofg-footer-social-links a:focus[aria-label=Facebook]{color:#4267b2}#uofg-footer-social-links a:hover[aria-label=Instagram],#uofg-footer-social-links a:focus[aria-label=Instagram]{color:#e1306c}#uofg-footer-social-links a:hover[aria-label=Youtube],#uofg-footer-social-links a:focus[aria-label=Youtube]{color:#f00}#uofg-footer-social-links a:hover[aria-label=LinkedIn],#uofg-footer-social-links a:focus[aria-label=LinkedIn]{color:#0077b5}#uofg-footer-social-links a:hover[aria-label=TikTok],#uofg-footer-social-links a:focus[aria-label=TikTok]{color:#f00}#uofg-footer-social-links svg{height:2rem}#uofg-footer-links-container{display:flex}#uofg-footer-links{display:grid;height:100%;grid-template-columns:1fr}#uofg-footer-links svg{color:#ffc72a}#uofg-footer-address{font-style:normal;white-space:nowrap}#uofg-footer-address a{color:#69a3b9}@media (min-width: 570px){#uofg-footer-extra-links{flex-direction:row;flex-wrap:wrap;width:100%;max-width:1320px;padding:2rem 1rem;gap:1rem}#uofg-footer-extra-links>li>a{width:auto;padding:0 1rem 0 0;border-bottom:none !important}#uofg-footer-extra-links>li:not(:last-child)>a{border-right:2px solid rgba(0, 0, 0, 0.15)}#uofg-footer-content{grid-template-columns:1fr 1fr}#uofg-footer-links-container{grid-column-start:1;grid-column-end:3}#uofg-footer-links{grid-template-columns:1fr 1fr;width:100%}#uofg-footer-address{grid-row:1;grid-column:2}}@media (min-width: 962px){#uofg-footer-content{grid-template-columns:0.5fr 1fr 0.5fr;justify-items:center;gap:2rem 2rem}#uofg-footer-links-container{grid-row:unset;grid-column:unset;justify-content:center;gap:0}#uofg-footer-links{gap:0 8rem;width:auto}#uofg-footer-address{grid-row:unset;grid-column:unset}}";
614
-
615
- const SocialLink = props => (index.h("li", null, index.h("a", { href: props.url, "aria-label": props.name }, index.h(index$1.FontAwesomeIcon, { icon: props.icon }))));
616
- const FooterLink = props => (index.h("li", null, index.h("a", { href: props.url, title: props.title }, index.h(index$1.FontAwesomeIcon, { icon: props.icon }), index.h("span", null, props.text))));
617
- const UofgFooter = class {
618
- constructor(hostRef) {
619
- index.registerInstance(this, hostRef);
620
- this.extraLinks = [];
621
- }
622
- connectedCallback() {
623
- var _a;
624
- this.updateExtraLinks();
625
- (_a = this.observer) !== null && _a !== void 0 ? _a : (this.observer = new MutationObserver(() => {
626
- this.updateExtraLinks();
627
- }));
628
- this.observer.observe(this.el, { childList: true, subtree: true });
629
- }
630
- updateExtraLinks() {
631
- var _a;
632
- this.extraLinks = Array.from((_a = this.el) === null || _a === void 0 ? void 0 : _a.children)
633
- .filter(child => child.tagName === 'A')
634
- .map(child => ({ text: child.textContent, href: child.getAttribute('href') }));
635
- }
636
- render() {
637
- return (index.h("footer", { id: "uofg-footer" }, index.h("div", { id: "uofg-footer-extra-links-container" }, this.extraLinks.length > 0 && (index.h("ul", { id: "uofg-footer-extra-links" }, this.extraLinks.map(link => (index.h("li", null, index.h("a", { href: link.href }, link.text))))))), index.h("div", { id: "uofg-footer-content" }, index.h("div", { id: "uofg-footer-social", class: "uofg-footer-content-separator" }, index.h("a", { id: "uofg-footer-improve-life", href: "//www.uoguelph.ca/improve-life", "aria-label": "Improve Life", innerHTML: improveLifeLogo }), index.h("ul", { id: "uofg-footer-social-links" }, index.h(SocialLink, { name: "Twitter", url: "https://twitter.com/uofg", icon: faTwitterSquare.faTwitterSquare }), index.h(SocialLink, { name: "Facebook", url: "https://www.facebook.com/uofguelph", icon: faFacebookSquare.faFacebookSquare }), index.h(SocialLink, { name: "Instagram", url: "https://www.instagram.com/uofguelph/", icon: faInstagram.faInstagram }), index.h(SocialLink, { name: "Youtube", url: "https://www.youtube.com/user/uofguelph", icon: faYoutube.faYoutube }), index.h(SocialLink, { name: "LinkedIn", url: "https://www.linkedin.com/school/university-of-guelph/", icon: faLinkedin.faLinkedin }), index.h(SocialLink, { name: "TikTok", url: "https://www.tiktok.com/@uofguelph", icon: faTiktok.faTiktok })), index.h("a", { href: "https://www.uoguelph.ca/web/socialmedia/" }, "Social Media Directory"), index.h("a", { href: "//www.uoguelph.ca/web/" }, "\u00A9 ", new Date().getFullYear(), " University of Guelph")), index.h("div", { id: "uofg-footer-links-container" }, index.h("ul", { id: "uofg-footer-links", class: "uofg-footer-content-separator" }, index.h(FooterLink, { text: "Accessibility", url: "https://www.uoguelph.ca/diversity-human-rights/accessibility-u-g", icon: faUniversalAccess.faUniversalAccess }), index.h(FooterLink, { text: "Privacy", url: "https://www.uoguelph.ca/web/privacy/", icon: faKey.faKey }), index.h(FooterLink, { text: "Site Map", url: "https://www.uoguelph.ca/sitemap", icon: faSitemap.faSitemap }), index.h(FooterLink, { text: "Status Page", url: "https://uoguelph.statuspage.io/", icon: faCircleCheck.faCircleCheck }), index.h(FooterLink, { text: "Land Acknowledgement", url: "https://www.uoguelph.ca/land-acknowledgement/", icon: faTree.faTree, 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." }), index.h(FooterLink, { text: "Careers", url: "https://www.uoguelph.ca/hr/careers-guelph/current-opportunities", icon: faBriefcase.faBriefcase }), index.h(FooterLink, { text: "Undergraduate Calendar", url: "https://www.uoguelph.ca/registrar/calendars/undergraduate/current/", icon: faCalendar.faCalendar }), index.h(FooterLink, { text: "Graduate Calendar", url: "https://www.uoguelph.ca/registrar/calendars/graduate/current/", icon: faCalendar.faCalendar }), index.h(FooterLink, { text: "Program Plans", url: "https://admission.uoguelph.ca/programs", icon: faList.faList }), index.h(FooterLink, { text: "Give to U of G", url: "https://www.alumni.uoguelph.ca/give-to-guelph/how-to-give", icon: faHandHoldingHeart.faHandHoldingHeart }))), index.h("address", { id: "uofg-footer-address", class: "uofg-footer-content-separator" }, index.h("strong", null, "University of Guelph"), index.h("span", null, "50 Stone Road East,"), index.h("span", null, "Guelph, Ontario, Canada"), index.h("span", null, "N1G 2W1"), index.h("a", { href: "tel:1-519-824-4120" }, index.h(index$1.FontAwesomeIcon, { icon: faPhoneFlip.faPhoneFlip }), index.h("span", null, "519-824-4120"))))));
638
- }
639
- get el() { return index.getElement(this); }
640
- };
641
- UofgFooter.style = uofgFooterCss;
642
-
643
- const Decoration = `<svg viewBox="0 0 68 90" xmlns="http://www.w3.org/2000/svg"><path d="M23.131 0l44.847 90H0V0" fill="#c20430"/><path d="M23.131 0l16.03 32.044L55.1 0" fill="#ffc500"/></svg>`;
644
-
645
- const FullSizeLogo = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 90"><path d="M0 0h150v90H0V0z"/><path fill="#fff" d="M116 25.5s-1.3-.4-1.3 2.6V39c0 1.7.4 2.6 1.7 2.6v.9h-5.6v-.9c0-.4 1.8 0 1.8-1.7V28.6c0-3-2.6-3-2.6-3s-.5-1 .8-1h5.2l.4.5-.4.4m-57.8 19l-6-15.5c-1.4-3.5-2.7-3.5-2.7-3.5s0-.8 1.3-.8h5.6l-.4.8c-.9 0-1.7.9-.9 3L58.6 39l3.5-8.6c.8-3 .4-3.9-1-4.3-1.2-.9-.3-1.3-.3-1.3h5.1v.8c-1.3 0-2.1 3.5-2.6 4.8L58.6 44l-.4.4m19 7c-.5.8-1 .8-2.2.8l-3 .4v-5.2h4.7s1.8 0 2.2 1.8c.4 1.7 1.7.4 1.3-.5l-.5-3H68.1c-1.7 0-.9.9-.9.9s2.2 0 2.2 3v10.8c0 1.7-1.3 1.7-1.7 2.2-.5.4 0 .4.4.4h12l.5-3.9s0-1.3-.9 0c-.8 1.3-.8 2.6-3.8 2.6s-4-.4-4-1.3v-6s.5-1 1.4-1H75s1.7.5 2.2 2.3l.4-.5V52l-.4-.5M91 24.7c1.7 0 3.4 1.7 3.4 3.9 0 2.5-3 4.3-4.7 4.3 0 0 2.1 1.3 4.7 5.6 2.6 3.9 5.2 4.7 7.8 5.2 1.3 0 3.4-.5 5.6-1.8 1.7-.8.4.5.4.5 0 .4-3 2.6-6.9 2.6-5.2 0-8.2-4-9.9-6.5l-3.5-4.8c-.8-.8-2.1-.4-2.1-.4v6.5s0 1.3 1.3 1.3c1.3.4.4.8.4.8H82v-.4c0-.4 1.7 0 1.7-1.7V28.6c.5-3-2.1-3.5-2.1-3.5l1.3-.4H91M89.2 26l-3.4.4v5.2l3 .4 2.2-.9.8-2.1c0-1.3-.8-2.6-2.6-3z"/><path fill="#fff" d="M109.1 24.7h-1.3l-3.9-.5c-3 0-5.6 2.6-5.6 4.8 0 2.6 1.7 4.3 4.8 4.7 2.5.9 4.3 1.3 4.3 4 0 2-2.2 3-4 3a5.9 5.9 0 01-4.7-3c-.8-1-.4-1.8-.4-1.8l-.9.4v3c-.4 1 2.2 3 5.7 3 4.3 0 6.9-2 6.9-6.4 0-3.5-4.4-4.3-5.7-4.3-1.2 0-3.4-1.3-3.4-3 0-1.8 2.2-2.6 3.4-2.6 1.8 0 2.6.4 3.5 1.3l.4 1.7h.9l-.4-2.6.4-1.7m9.5.4h10l1.6-.4.5.8V29c0 .4-.9.9-.9 0-.4-2.2-.8-2.6-2.6-2.6-.8 0-2.1 0-2.1.9v13c0 .8 1.7 1.2 2.1 1.2l-.4.9h-6s-.5-.9.4-.9c.8 0 1.3-1.3 1.3-1.7V27.3s.4-.9-.9-.9c-1.7 0-3-.4-3.4 2.6-.5.4-.9.9-.9 0v-3.5c-.4-.8 0-.8 1.3-.4M31 45.8h.8v3c-1.3 0-1.3-.8-1.3-1.3 0-.4-2.1.5-3.8 2.2-1.8 1.3-2.2 3-2.2 3s2.2 0 2.6-.8l.4.4v3l-.8.5s.8-2.2-1.3-2.2H24s-.9 4.3-3.5 6.9c-2.6 2.6-6 3.5-8.2 1.7v-.8l2.6.8c1.7 0 3.9-.8 5.2-3.4l2.1-5.2h-.8v-.9h1.3s.4-2.1 2.6-3.9c1.7-1.3 3.4-2.5 5.6-3m16.8 0v6l-.9.5s-.8-3.9-3.4-4.3c-2.2-.5-5.6-.5-7 1.3a12.4 12.4 0 00-2.5 8.2c0 4.7.9 9.5 7.3 9.5 3.5 0 3.5-3 3.5-2.6v-4.8c0-.4-1.3-1.3-2.6-1.3l.4-.8h7.8v.8s-2.2.5-2.2 1.8v6l-4.7 2.2c-2.2 1.3-1.7 1.3-3.9 1.3S32.3 68.3 31 64c-1.3-4.4-1.3-10 2.1-14.7 2.2-3 5.2-4 8.7-4l3.9.5 1.7-.4.4.4m2.6 0H56v.9s-1.7.4-1.7 1.3v10.3c0 2.2 2.1 3.5 3.9 3.5 1.3 0 4.7-1.3 4.7-4.3V48c0-.5-.4-1.3-2.1-1.3l.4-.9h4.7v.9s-1.3.4-1.3 1.3v8.6c0 3.9-3 7-6.4 7-4.3 0-6.5-1.8-6.5-5.3V47.5l-1.7-.8c-.9 0 .4-.9.4-.9m31 0H88l-.4.9s-1.7-.4-1.7 2.1v11.7c0 .4-.4.9.9 1.3l4.7-.4c1.7-.9 2.2-2.6 2.2-2.6h.4l-.4 3.9c0 .8-.5.4-1.8.4H81.5v-.4s1.7 0 1.7-3.5V48c0-1.7-1.3-.9-2.2-1.3l.5-.9m13.4.5l5.1-.5c2.6 0 4.3 0 6 .9a4 4 0 011.8 3.4c0 1.8-1.3 3-2.2 4-1.7 1.2-3 1.2-6.4.8v6c0 .5.8 1.3 2.1 1.3l-.4.9h-6l.4-.4 1.3-1.8V48.4c0-.4-.5-1.3-1.7-1.3v-.8m4.3 6.9s0 .8 3 .8c1.7 0 3-2.1 3-3.4 0-1.3-1.3-2.6-2.6-3h-3.4v5.6zm24.6 9.9v-.4s-1.3 0-1.3-2.2v-13c0-.8 1.7-1.2 1.7-1.2v-.5h-5.6l-.4.9s1.7 0 1.7 1.3v4.7h-7.4l-.4-.4V48c0-1.3 1.3-1.3 1.3-1.3v-.9h-5.2l-.4.9s1.7-.4 1.7.8v13c0 .9-.4 2.2-1.3 2.2v.4h5.2s.9-.4 0-.9c-.9 0-1.3-.4-1.3-1.7v-6l.5-.5h7.3v6.5c0 1.7-.9 1.7-1.3 2.2v.4h5.2M20.2 29c0-2.6-.9-3.5-3.5-3.5-.4-.4.5-.8.5-.8h7.3v.4c0 .4-2.2-.4-2.2 3.5v12c0 2.6-1.7 4.4-1.7 4.4-1.3 1.7-3.4 3-6.9 3-8.6 0-8.6-6.5-8.6-6.5V29c0-2.2 0-3.5-2.6-3.5l.4-.8h7.8v.8c-.4 0-2.2-.4-2.2 3.5v10.8c0 3.9 2.6 6 6 6 3.5 0 5.7-2.1 5.7-5.2V29M40 29c0-3.9 1.8-3 1.8-3.5v-.8l-5.2.4s-.9.4 0 .4c2.1.5 2.1 1.3 2.1 3.5v8.6c-.4.5-8.6-11.6-8.6-11.6l-.4-1.3h-3.9l-.4.8c2.6 0 2.6.9 2.6 3.5v9c0 4-2.2 3-2.2 3.5v.9H31s1.3-.9.4-.9c-2.6 0-2.2-.9-2.2-3.4v-8.7s8.2 10.4 9.1 13.4c0 0 .4.9.9.4l.4-.4.4-.9V29m32.4 4l3-.5c.9 0 1.8 1.3 1.8 2.2 0 .9.8 0 .8-.4v-3.5c0-.8-.4-.4-.8-.4l-1.8 1.3h-3v-5.2h4.8s1.7 0 2.5 1.7c.5 1.3 1 .5.5-.4l-.5-3H68.1l-.9.8s2.6 0 2.6 2.6v11.2c0 1.8-2.1 1.8-2.1 1.8l.8.8H79s1.3.5 1.7 0l.4-3.8s0-1-.8 0c-.5.4-.5 2.5-4 2.5-3 0-3.8-.4-3.8-1.3V33m69.5 9.5l.9-.5c.4-.4 0-.4-.5-.4-.4 0-1.3-.4-1.3-1.7V35l3.5-6.4.4-.9c.5-.9.9-1.7 1.7-1.7l1-.5v-.4h-5.3c-.4 0-.8 0-.4.4l1.3.5c.4 0 .9.8.4 1.7l-3.4 5.6-3.5-5.6c-.4-.9-.4-1.7.5-1.7l.8-.5v-.4h-6s-.9 0 0 .4l1.3.9 5.1 9v4.4c0 1.3-.4 1.7-.8 1.7l-.9.4 1.3.5h3.9m5.2-19.5H2l.8-.8h145l-.8.8m-99.7 5.2c0-2.6 1.3-2.6 1.3-2.6l.4-.4h-5.2l-.4-.4c-1.3 0-.9.8-.9.8s2.2 0 2.2 3v11.3c0 1.7-1.3 1.7-1.3 1.7v.9h5.2l.4-.9c-1.3 0-1.7-.4-1.7-2.6V28.1m76.4 37.6H50.4l.4-.5h73.4l-.4.5M14.6 54c-.5.9-1.3 1.8-1.3 3-.9 3.5 1.7 3.5 3 3.5 1.7-.4 3.9-2.6 4.3-5.6.4-3.9-3.4-3.9-6-.9m3.4 3c-.8 1.3-1.3 2.2-2.6 1.8-1.3 0-.8-2.2.5-4 .8-1.2 2.6-1.6 3-.8.4.9 0 2.2-.9 3z"/></svg>`;
646
-
647
- const ReducedSizeLogo = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="M0 0h100v100H0V0z"/><path fill="#fff" d="M74.6 54.9l-.7 2c2.4 0 5.6 1.4 5.6 2.9v9.5c0-.2-.2 5.4-7.8 5.4-13.7 0-15.6-10-15.6-20 0-6.7 2.4-13 5.8-17 3.4-3.8 9.8-3.6 15-3 5 .4 6.8 8.7 6.8 8.7l1.7-.5.2-13.2s-.7-.7-1.2-.5c-.5.3-2.4 1-3.7 1-1 0-4.6-.7-8.3-.7-6.6 0-13 1.4-17.8 8a32 32 0 00-3.4 6.1V28c0-8 4.1-6.3 4.6-7 .5-1.3.5-1.3-.2-1.5H39.9s-2 1.4-.7 1.4c5.4.5 7.6 2.5 7.6 7.4v25.4c0 6.6-5.1 10.5-12.5 10.5C27 64.2 22 59.5 22 51.5v-23c0-8 4.1-6.6 4.4-7.6.7-1 .7-1.2 0-1.2 0 0-9.3.5-16.2 0 0 0-2 1.5-.7 1.5 5.4.5 5.4 2.9 5.4 8v26.2s-.5 13.9 17.8 13.9c7.8 0 12.5-3.2 15-6.4l1.1-1.7c.3 2.5.8 5 1.5 7.1 3 9.6 14 12.2 17.6 12.2 4.6 0 4.6 0 8.8-2.9 2.2-1.2 10.2-4.4 10.2-4.4V59.8c0-2.2 4-3.2 4-3.2l.2-1.7H74.6z"/></svg>`;
648
-
649
- var faBars = createCommonjsModule(function (module, exports) {
650
- Object.defineProperty(exports, '__esModule', { value: true });
651
- var prefix = 'fas';
652
- var iconName = 'bars';
653
- var width = 448;
654
- var height = 512;
655
- var aliases = ["navicon"];
656
- var unicode = 'f0c9';
657
- var svgPathData = 'M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z';
658
-
659
- exports.definition = {
660
- prefix: prefix,
661
- iconName: iconName,
662
- icon: [
663
- width,
664
- height,
665
- aliases,
666
- unicode,
667
- svgPathData
668
- ]};
669
-
670
- exports.faBars = exports.definition;
671
- exports.prefix = prefix;
672
- exports.iconName = iconName;
673
- exports.width = width;
674
- exports.height = height;
675
- exports.ligatures = aliases;
676
- exports.unicode = unicode;
677
- exports.svgPathData = svgPathData;
678
- exports.aliases = aliases;
679
- });
680
-
681
- var faRightToBracket = createCommonjsModule(function (module, exports) {
682
- Object.defineProperty(exports, '__esModule', { value: true });
683
- var prefix = 'fas';
684
- var iconName = 'right-to-bracket';
685
- var width = 512;
686
- var height = 512;
687
- var aliases = ["sign-in-alt"];
688
- var unicode = 'f2f6';
689
- var svgPathData = 'M217.9 105.9L340.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L217.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1L32 320c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM352 416l64 0c17.7 0 32-14.3 32-32l0-256c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c53 0 96 43 96 96l0 256c0 53-43 96-96 96l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z';
690
-
691
- exports.definition = {
692
- prefix: prefix,
693
- iconName: iconName,
694
- icon: [
695
- width,
696
- height,
697
- aliases,
698
- unicode,
699
- svgPathData
700
- ]};
701
-
702
- exports.faRightToBracket = exports.definition;
703
- exports.prefix = prefix;
704
- exports.iconName = iconName;
705
- exports.width = width;
706
- exports.height = height;
707
- exports.ligatures = aliases;
708
- exports.unicode = unicode;
709
- exports.svgPathData = svgPathData;
710
- exports.aliases = aliases;
711
- });
712
-
713
- var faMagnifyingGlass = createCommonjsModule(function (module, exports) {
714
- Object.defineProperty(exports, '__esModule', { value: true });
715
- var prefix = 'fas';
716
- var iconName = 'magnifying-glass';
717
- var width = 512;
718
- var height = 512;
719
- var aliases = [128269,"search"];
720
- var unicode = 'f002';
721
- var svgPathData = 'M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z';
722
-
723
- exports.definition = {
724
- prefix: prefix,
725
- iconName: iconName,
726
- icon: [
727
- width,
728
- height,
729
- aliases,
730
- unicode,
731
- svgPathData
732
- ]};
733
-
734
- exports.faMagnifyingGlass = exports.definition;
735
- exports.prefix = prefix;
736
- exports.iconName = iconName;
737
- exports.width = width;
738
- exports.height = height;
739
- exports.ligatures = aliases;
740
- exports.unicode = unicode;
741
- exports.svgPathData = svgPathData;
742
- exports.aliases = aliases;
743
- });
744
-
745
- var faSearch = createCommonjsModule(function (module, exports) {
746
- Object.defineProperty(exports, '__esModule', { value: true });
747
-
748
- exports.definition = {
749
- prefix: faMagnifyingGlass.prefix,
750
- iconName: faMagnifyingGlass.iconName,
751
- icon: [
752
- faMagnifyingGlass.width,
753
- faMagnifyingGlass.height,
754
- faMagnifyingGlass.aliases,
755
- faMagnifyingGlass.unicode,
756
- faMagnifyingGlass.svgPathData
757
- ]};
758
-
759
- exports.faSearch = exports.definition;
760
- exports.prefix = faMagnifyingGlass.prefix;
761
- exports.iconName = faMagnifyingGlass.iconName;
762
- exports.width = faMagnifyingGlass.width;
763
- exports.height = faMagnifyingGlass.height;
764
- exports.ligatures = faMagnifyingGlass.aliases;
765
- exports.unicode = faMagnifyingGlass.unicode;
766
- exports.svgPathData = faMagnifyingGlass.svgPathData;
767
- exports.aliases = faMagnifyingGlass.aliases;
768
- });
769
-
770
- var faCaretDown = createCommonjsModule(function (module, exports) {
771
- Object.defineProperty(exports, '__esModule', { value: true });
772
- var prefix = 'fas';
773
- var iconName = 'caret-down';
774
- var width = 320;
775
- var height = 512;
776
- var aliases = [];
777
- var unicode = 'f0d7';
778
- var svgPathData = 'M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z';
779
-
780
- exports.definition = {
781
- prefix: prefix,
782
- iconName: iconName,
783
- icon: [
784
- width,
785
- height,
786
- aliases,
787
- unicode,
788
- svgPathData
789
- ]};
790
-
791
- exports.faCaretDown = exports.definition;
792
- exports.prefix = prefix;
793
- exports.iconName = iconName;
794
- exports.width = width;
795
- exports.height = height;
796
- exports.ligatures = aliases;
797
- exports.unicode = unicode;
798
- exports.svgPathData = svgPathData;
799
- exports.aliases = aliases;
800
- });
801
-
802
- const uofgHeaderCss = ":focus-visible{outline:2px solid #ffc72a;outline-offset:0.5rem}*{box-sizing:border-box}button{border:none;background-color:transparent;cursor:pointer}a{color:inherit;text-decoration:none}ul{list-style:none;padding:0;margin:unset}ul>li{display:contents}:host{height:auto !important}a{display:flex;align-items:center;transition-property:color, background-color;transition-duration:0.2s;transition-timing-function:ease-in-out}li{display:contents}button{border:none;background:none;cursor:pointer;font-size:inherit;font-family:inherit;color:inherit;line-height:inherit;word-spacing:inherit;letter-spacing:inherit;transition-property:color, background-color;transition-duration:0.2s;transition-timing-function:ease-in-out}uofg-menu{--uofg-menu-animation-type:slide;--uofg-menu-animation-duration:0.2s;--uofg-menu-animation-easing:ease-in-out;display:block;position:relative}uofg-menu>[slot=button]{display:flex;align-items:center;gap:0.5rem;height:100%;padding:0 1rem}uofg-menu>[slot=button]>svg{height:1em;fill:currentColor;transition-property:transform;transition-duration:0.2s;transition-timing-function:ease-in-out}uofg-menu>[slot=content]{display:flex;flex-direction:column;position:absolute;z-index:1;min-width:20rem;right:0;background-color:white;color:black;box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0px 1px 5px 0px rgba(0, 0, 0, 0.2)}#uofg-header{position:relative;width:100%;z-index:1000;font-size:1.6rem;font-family:\"Roboto Condensed\", Arial, sans-serif}#uofg-header-top-content-container,#uofg-header-main-content-container,#uofg-header-sub-content-container{display:flex;position:relative;align-items:center;justify-content:flex-end;width:100%;padding:0 calc((100vw - 1320px) / 2)}#uofg-header-top-content-container{height:4rem;background-color:white;color:black;z-index:3;font-size:1.9rem}#uofg-header-top-content-container>ul{display:flex;align-items:center;height:100%}#uofg-header-top-content-container>ul>li>a{height:100%;padding:0 1rem}#uofg-header-top-content-container>ul>li>a:hover,#uofg-header-top-content-container>ul>li>a:focus-visible,#uofg-header-top-content-container>ul>li>a[aria-expanded=true]{background-color:#dddddd}#uofg-header-top-content-container>uofg-menu{height:100%}#uofg-header-top-content-container>uofg-menu>[slot=button]{padding:0 1rem;background-color:#ffc72a;color:black;font-weight:bold}#uofg-header-top-content-container>uofg-menu>[slot=button]:hover,#uofg-header-top-content-container>uofg-menu>[slot=button]:focus-visible,#uofg-header-top-content-container>uofg-menu>[slot=button][aria-expanded=true]{background-color:#ccc;color:black}#uofg-header-top-content-container>uofg-menu>[slot=button][aria-expanded=true]>svg{transform:rotate(180deg)}#uofg-header-top-content-container>uofg-menu>[slot=content]{background-color:#dddddd;color:black}#uofg-header-top-content-container>uofg-menu>[slot=content] a{height:100%;padding:0.75rem;border-bottom:1px solid rgba(0, 0, 0, 0.4)}#uofg-header-top-content-container>uofg-menu>[slot=content] a:hover,#uofg-header-top-content-container>uofg-menu>[slot=content] a:focus-visible{background-color:#ffc72a}#uofg-header-main-content-container{height:5rem;background-color:black;color:white;z-index:2}#uofg-header-main-content-container>*{height:100%}#uofg-header-main-content-container.full-height{height:10rem}#uofg-header-logo-container{display:flex;height:100%;margin-right:auto;overflow:hidden}#uofg-header-logo-container>*{height:100%}#uofg-header-logo-container svg{width:auto}#uofg-header-decorative-img{position:absolute;left:0}#uofg-header-decorative-img>svg{height:100%}#uofg-header-logo{height:100%;position:relative;margin-left:1rem;transition:opacity 0.2s ease-in-out}#uofg-header-logo>svg{height:100%}#uofg-header-logo:hover,#uofg-header-logo:focus-visible{opacity:0.8}#uofg-header-full-main-content,#uofg-header-reduced-main-content{display:flex}#uofg-header-full-main-content svg,#uofg-header-reduced-main-content svg{height:1em;fill:currentColor}#uofg-header-full-main-content>ul{display:flex;align-items:center}#uofg-header-full-main-content>ul>li>a,#uofg-header-full-main-content>a,#uofg-header-full-main-content>uofg-menu>[slot=button]{display:flex;align-items:center;justify-content:center;height:100%;font-size:2.2rem;border-bottom:7px solid transparent;padding:7px 1.5rem 0;transition-property:color, border-color;transition-duration:0.2s;transition-timing-function:ease-in-out}#uofg-header-full-main-content>ul>li>a>svg,#uofg-header-full-main-content>a>svg,#uofg-header-full-main-content>uofg-menu>[slot=button]>svg{transition-property:color;transition-duration:0.2s;transition-timing-function:ease-in-out}#uofg-header-full-main-content>ul>li>a:hover,#uofg-header-full-main-content>ul>li>a:focus-visible,#uofg-header-full-main-content>a:hover,#uofg-header-full-main-content>a:focus-visible,#uofg-header-full-main-content>uofg-menu>[slot=button]:hover,#uofg-header-full-main-content>uofg-menu>[slot=button]:focus-visible{color:#ffc72a;border-color:#ffc72a}#uofg-header-full-main-content>ul>li>a:hover>svg,#uofg-header-full-main-content>ul>li>a:focus-visible>svg,#uofg-header-full-main-content>a:hover>svg,#uofg-header-full-main-content>a:focus-visible>svg,#uofg-header-full-main-content>uofg-menu>[slot=button]:hover>svg,#uofg-header-full-main-content>uofg-menu>[slot=button]:focus-visible>svg{color:white}#uofg-header-full-main-content>uofg-menu>[slot=button]{color:#ffc72a}#uofg-header-full-main-content>uofg-menu>[slot=content]{color:black;background-color:white;padding:2rem;width:35rem}#uofg-header-full-main-content>uofg-menu>[slot=content]>span{display:block;font-size:2.4rem;font-weight:bold;padding:1rem 0}#uofg-header-full-main-content>a{color:#ffc72a}#uofg-header-reduced-main-content{font-size:2rem}#uofg-header-reduced-main-content>uofg-menu>[slot=button],#uofg-header-reduced-main-content>a{justify-content:center;padding:0 1.5rem;font-size:2rem;border-left:1px solid rgba(255, 255, 255, 0.15)}#uofg-header-reduced-main-content>uofg-menu>[slot=button]:hover,#uofg-header-reduced-main-content>uofg-menu>[slot=button]:focus-visible,#uofg-header-reduced-main-content>uofg-menu>[slot=button][aria-expanded=true],#uofg-header-reduced-main-content>a:hover,#uofg-header-reduced-main-content>a:focus-visible,#uofg-header-reduced-main-content>a[aria-expanded=true]{background-color:white;color:black}#uofg-header-reduced-main-content>uofg-menu{position:static;height:100%}#uofg-header-reduced-main-content>uofg-menu>[slot=content]{background-color:white;color:black;width:100%;padding:1rem 2rem 2rem}#uofg-header-reduced-main-content>uofg-menu>[slot=content] a{padding:1rem}#uofg-header-reduced-main-content>uofg-menu>[slot=content]>span{display:block;font-size:2.4rem;font-weight:bold;padding:1rem 0}#uofg-header-main-menu>[slot=content]{overflow-y:auto;max-height:calc(100vh - 5rem)}#uofg-header-main-menu uofg-menu{position:relative}#uofg-header-main-menu uofg-menu>[slot=button]{display:flex;padding:1rem;height:auto;width:100%;color:inherit;border-bottom:1px solid rgba(0, 0, 0, 0.1)}#uofg-header-main-menu uofg-menu>[slot=button]>svg{margin-left:auto}#uofg-header-main-menu uofg-menu>[slot=button]:hover,#uofg-header-main-menu uofg-menu>[slot=button]:focus-visible,#uofg-header-main-menu uofg-menu>[slot=button][aria-expanded=true]{background-color:rgba(0, 0, 0, 0.1)}#uofg-header-main-menu uofg-menu>[slot=button][aria-expanded=true]>svg{transform:rotate(180deg)}#uofg-header-main-menu uofg-menu>[slot=content]{position:relative;box-shadow:none;padding:0}#uofg-header-main-menu uofg-menu>[slot=content]>li>a{padding:1rem;border-bottom:1px solid rgba(0, 0, 0, 0.1);transition-property:color, background-color;transition-duration:0.2s;transition-timing-function:ease-in-out}#uofg-header-main-menu uofg-menu>[slot=content]>li>a:hover,#uofg-header-main-menu uofg-menu>[slot=content]>li>a:focus-visible{background-color:rgba(0, 0, 0, 0.1)}#uofg-header-main-menu uofg-menu.uofg-header-hello-you-menu>[slot=button]{background-color:#ffc72a;color:black;font-weight:bold}#uofg-header-main-menu uofg-menu.uofg-header-hello-you-menu>[slot=content]{background-color:rgba(0, 0, 0, 0.1);color:black}#uofg-header-main-menu ul>li>a{padding:1rem;width:100%;color:inherit;border-bottom:1px solid rgba(0, 0, 0, 0.1);transition-property:color, background-color;transition-duration:0.2s;transition-timing-function:ease-in-out}#uofg-header-main-menu ul>li>a:hover,#uofg-header-main-menu ul>li>a:focus-visible,#uofg-header-main-menu ul>li>a[aria-expanded=true]{background-color:rgba(0, 0, 0, 0.1)}#uofg-header-sub-content-container{height:4rem;background-color:#dddddd;color:black;z-index:1;font-size:2rem;white-space:nowrap;justify-content:flex-start}#uofg-header-sub-content-container #uofg-header-page-title{display:flex;align-items:center;margin-right:auto;padding:0 1rem;height:100%;font-weight:bold}#uofg-header-sub-content-container uofg-menu{position:relative;height:100%}#uofg-header-sub-content-container uofg-menu>[slot=button]{color:inherit}#uofg-header-sub-content-container uofg-menu>[slot=button]:hover,#uofg-header-sub-content-container uofg-menu>[slot=button]:focus-visible,#uofg-header-sub-content-container uofg-menu>[slot=button][aria-expanded=true]{background-color:#ffc72a;color:black}#uofg-header-sub-content-container uofg-menu>[slot=content]{position:absolute;background-color:#dddddd;color:black;white-space:normal}#uofg-header-sub-content-container uofg-menu>[slot=content]>li:not(:last-child)>a{border-bottom:1px solid rgba(0, 0, 0, 0.1)}#uofg-header-sub-content-container uofg-menu>[slot=content]>li>a{padding:0.75rem;justify-content:flex-start}#uofg-header-sub-content-container a{display:flex;align-items:center;justify-content:center;height:100%;transition-property:color, background-color;transition-duration:0.2s;transition-timing-function:ease-in-out}#uofg-header-sub-content-container a:hover,#uofg-header-sub-content-container a:focus-visible{background-color:#ffc72a;color:black}.uofg-header-sub-content{display:flex;margin-left:auto}#uofg-header-full-sub-content,#uofg-header-reduced-sub-content{height:100%}#uofg-header-full-sub-content a,#uofg-header-full-sub-content uofg-menu>[slot=button],#uofg-header-reduced-sub-content a,#uofg-header-reduced-sub-content uofg-menu>[slot=button]{padding:0 1.25rem}#uofg-header-full-sub-content{height:100%}#uofg-header-full-sub-content>ul{display:flex;align-items:center}#uofg-header-full-sub-content uofg-menu>[slot=button][aria-expanded=true]>svg{transform:rotate(180deg)}#uofg-header-full-sub-content .uofg-header-page-specific{display:flex;height:100%;align-items:center;margin-left:auto}#uofg-header-reduced-sub-content>uofg-menu{position:static;margin-left:auto}#uofg-header-reduced-sub-content>uofg-menu.overflowed{position:relative}#uofg-header-reduced-sub-content>uofg-menu.overflowed>[slot=content]{width:40rem}#uofg-header-reduced-sub-content>uofg-menu>[slot=button]{font-size:2rem;padding:0 1.5rem;text-align:left}#uofg-header-reduced-sub-content>uofg-menu>[slot=content]{background-color:white;color:black;padding:2rem;overflow-y:auto;max-height:calc(\n 100vh - 1rem\n );width:100%;white-space:normal}#uofg-header-reduced-sub-content>uofg-menu>[slot=content]>span{display:block;font-size:2.4rem;font-weight:bold;padding:1rem 0}#uofg-header-reduced-sub-content>uofg-menu>[slot=content] a{height:auto;padding:1rem;width:100%;align-items:flex-start;justify-content:flex-start;border-bottom:1px solid rgba(0, 0, 0, 0.1)}#uofg-header-reduced-sub-content>uofg-menu>[slot=content] a:hover,#uofg-header-reduced-sub-content>uofg-menu>[slot=content] a:focus-visible{background-color:rgba(0, 0, 0, 0.1);color:black}#uofg-header-reduced-sub-content>uofg-menu>[slot=content] uofg-menu{height:auto}#uofg-header-reduced-sub-content>uofg-menu>[slot=content] uofg-menu>[slot=button]{width:100%;padding:1rem;border-bottom:1px solid rgba(0, 0, 0, 0.1);text-align:left}#uofg-header-reduced-sub-content>uofg-menu>[slot=content] uofg-menu>[slot=button]>svg{margin-left:auto}#uofg-header-reduced-sub-content>uofg-menu>[slot=content] uofg-menu>[slot=button]:hover,#uofg-header-reduced-sub-content>uofg-menu>[slot=content] uofg-menu>[slot=button]:focus-visible,#uofg-header-reduced-sub-content>uofg-menu>[slot=content] uofg-menu>[slot=button][aria-expanded=true]{background-color:rgba(0, 0, 0, 0.2);color:black}#uofg-header-reduced-sub-content>uofg-menu>[slot=content] uofg-menu>[slot=button][aria-expanded=true]>svg{transform:rotate(180deg)}#uofg-header-reduced-sub-content>uofg-menu>[slot=content] uofg-menu>[slot=content]{position:static;background-color:rgba(0, 0, 0, 0.1);box-shadow:none}@media screen and (max-width: 1320px){#uofg-header-decorative-img{position:static}}@media screen and (min-width: 1320px) and (max-width: calc(1320px + $decorative-img-width)){#uofg-header-logo{position:absolute;left:0;margin-left:8.5rem}}";
803
-
804
- const TopLinks = () => (index.h("ul", null, index.h("li", null, index.h("a", { href: "https://uoguelph.ca/apply/" }, "APPLY")), index.h("li", null, index.h("a", { href: "https://bbis.alumni.uoguelph.ca/BBIS_Cannon/give/uofg" }, "GIVE")), index.h("li", null, index.h("a", { href: "https://news.uoguelph.ca/" }, "NEWS"))));
805
- const HelloMenu = props => (index.h("uofg-menu", { class: "uofg-header-hello-you-menu", "auto-collapse": props.autoCollapse }, index.h("button", { slot: "button" }, index.h("span", null, "HELLO!"), index.h(index$1.FontAwesomeIcon, { icon: faCaretDown.faCaretDown })), index.h("ul", { slot: "content" }, index.h("li", null, index.h("a", { href: "https://uoguelph.ca/future-students" }, "Future Students")), index.h("li", null, index.h("a", { href: "https://www.uoguelph.ca/students" }, "Current Students")), index.h("li", null, index.h("a", { href: "https://alumni.uoguelph.ca/" }, "Alumni & Donors")), index.h("li", null, index.h("a", { href: "https://www.uoguelph.ca/faculty" }, "Faculty & Staff")), index.h("li", null, index.h("a", { href: "https://cecs.uoguelph.ca/employers-institutions" }, "Employers & Partners")))));
806
- const MainLinks = () => (index.h("ul", { class: "uofg-header-global-links" }, index.h("li", null, index.h("a", { href: "https://uoguelph.ca/about" }, "About")), index.h("li", null, index.h("a", { href: "https://www.uoguelph.ca/explore-all-programs/" }, "Academics")), index.h("li", null, index.h("a", { href: "https://uoguelph.ca/admissions" }, "Admission")), index.h("li", null, index.h("a", { href: "https://uoguelph.ca/research" }, "Research")), index.h("li", null, index.h("a", { href: "https://www.uoguelph.ca/studentexperience/" }, "Student Life"))));
807
- const AccountLink = () => (index.h("a", { href: "https://intranet.uoguelph.ca", "aria-label": "University of Guelph Intranet" }, index.h(index$1.FontAwesomeIcon, { icon: faRightToBracket.faRightToBracket })));
808
- const SearchLink = () => (index.h("a", { href: "https://uoguelph.ca/search", "aria-label": "Search University of Guelph" }, index.h(index$1.FontAwesomeIcon, { icon: faSearch.faSearch })));
809
- const PageSpecific = props => {
810
- var _a;
811
- return (index.h("ul", { class: "uofg-header-page-specific" }, (_a = props.content) === null || _a === void 0 ? void 0 : _a.map(item => {
812
- if (!item) {
813
- return null;
814
- }
815
- if ('text' in item) {
816
- return (index.h("li", null, index.h("a", Object.assign({ href: item.href }, item.attributes), item.text)));
817
- }
818
- return (index.h("li", null, index.h("uofg-menu", { autoCollapse: props.autoCollapse }, index.h("button", { slot: "button" }, index.h("span", null, item.title), index.h(index$1.FontAwesomeIcon, { icon: faCaretDown.faCaretDown })), index.h("ul", { slot: "content" }, item.links.map(link => (index.h("li", null, index.h("a", Object.assign({ href: link.href }, link.attributes), link.text))))))));
819
- }).filter(Boolean)));
820
- };
821
- const TRANSITION_BREAKPOINT = 1024;
822
- const MAX_CONTENT_WIDTH = 1320;
823
- const UofgHeader = class {
824
- constructor(hostRef) {
825
- index.registerInstance(this, hostRef);
826
- this.subContainerOverflowWidth = NaN;
827
- this.needsOverflowWidthUpdate = false;
828
- this.pageTitle = '';
829
- this.pageUrl = '';
830
- this.isFullSize = false;
831
- this.pageSpecificContent = undefined;
832
- this.isSubContainerOverflowing = false;
833
- }
834
- connectedCallback() {
835
- var _a;
836
- this.updateFullSize();
837
- this.updatePageSpecificContent();
838
- (_a = this.observer) !== null && _a !== void 0 ? _a : (this.observer = new MutationObserver(() => {
839
- this.updatePageSpecificContent();
840
- this.subContainerOverflowWidth = NaN; // Reset overflow width as it will have changed and needs to be recalculated
841
- this.needsOverflowWidthUpdate = true;
842
- }));
843
- this.observer.observe(this.el, { childList: true, subtree: true });
844
- }
845
- componentDidLoad() {
846
- this.updateSubContainerOverflow();
847
- }
848
- updateFullSize() {
849
- this.isFullSize = window.innerWidth >= TRANSITION_BREAKPOINT;
850
- this.updateSubContainerOverflow();
851
- }
852
- updateSubContainerOverflow() {
853
- if (this.isFullSize && this.subContainer) {
854
- const { clientWidth, scrollWidth } = this.subContainer;
855
- if (scrollWidth > clientWidth) {
856
- this.subContainerOverflowWidth = scrollWidth;
857
- }
858
- this.isSubContainerOverflowing = this.subContainerOverflowWidth > Math.min(clientWidth, MAX_CONTENT_WIDTH);
859
- }
860
- }
861
- componentDidRender() {
862
- if (this.needsOverflowWidthUpdate) {
863
- window.requestAnimationFrame(() => this.updateSubContainerOverflow());
864
- this.needsOverflowWidthUpdate = false;
865
- }
866
- }
867
- updatePageSpecificContent() {
868
- var _a;
869
- const aToPageSpecificLink = (a) => {
870
- const attributes = {};
871
- a.getAttributeNames()
872
- .filter(name => name !== 'href')
873
- .forEach(name => (attributes[name] = a.getAttribute(name)));
874
- return {
875
- href: a.getAttribute('href'),
876
- text: a.textContent,
877
- attributes,
878
- };
879
- };
880
- this.pageSpecificContent = Array.from((_a = this.el) === null || _a === void 0 ? void 0 : _a.children)
881
- .filter(child => child.tagName === 'A' || child.tagName === 'UL')
882
- .map(child => {
883
- switch (child.tagName) {
884
- case 'A':
885
- return aToPageSpecificLink(child);
886
- case 'UL':
887
- return {
888
- title: child.getAttribute('data-title'),
889
- links: Array.from(child.querySelectorAll('a')).map(aToPageSpecificLink),
890
- };
891
- }
892
- });
893
- }
894
- render() {
895
- return (index.h("header", { id: "uofg-header" }, this.isFullSize && (index.h("div", { id: "uofg-header-top-content-container" }, index.h(TopLinks, null), index.h(HelloMenu, { autoCollapse: true }))), index.h("nav", { id: "uofg-header-main-content-container", class: { 'full-height': this.isFullSize }, "aria-label": "Main" }, index.h("div", { id: "uofg-header-logo-container" }, this.isFullSize && index.h("div", { id: "uofg-header-decorative-img", innerHTML: Decoration }), index.h("a", { id: "uofg-header-logo", href: "https://www.uoguelph.ca", innerHTML: this.isFullSize ? FullSizeLogo : ReducedSizeLogo, "aria-label": "University of Guelph Home Page" })), this.isFullSize ? (index.h("div", { id: "uofg-header-full-main-content", class: "uofg-header-main-content" }, index.h(MainLinks, null), index.h(AccountLink, null), index.h(SearchLink, null))) : (index.h("div", { id: "uofg-header-reduced-main-content", class: "uofg-header-main-content" }, index.h(AccountLink, null), index.h(SearchLink, null), index.h("uofg-menu", { id: "uofg-header-main-menu", "auto-collapse": true }, index.h("button", { slot: "button", "aria-label": "Main Menu" }, index.h(index$1.FontAwesomeIcon, { icon: faBars.faBars })), index.h("div", { slot: "content" }, index.h("span", null, "University of Guelph"), index.h(MainLinks, null), index.h(HelloMenu, { autoCollapse: false })))))), this.pageSpecificContent.length > 0 && (index.h("nav", { id: "uofg-header-sub-content-container", ref: node => (this.subContainer = node), "aria-label": "Department/Topic" }, this.pageTitle &&
896
- (this.pageUrl ? (index.h("a", { id: "uofg-header-page-title", href: this.pageUrl }, this.pageTitle)) : (index.h("span", { id: "uofg-header-page-title" }, this.pageTitle))), this.isFullSize && !this.isSubContainerOverflowing ? (index.h("div", { id: "uofg-header-full-sub-content", class: "uofg-header-sub-content" }, index.h(PageSpecific, { content: this.pageSpecificContent, autoCollapse: true }))) : (index.h("div", { id: "uofg-header-reduced-sub-content", class: "uofg-header-sub-content" }, index.h("uofg-menu", { id: "uofg-header-sub-menu", "auto-collapse": true, class: { overflowed: this.isSubContainerOverflowing && this.isFullSize } }, index.h("button", { slot: "button", "aria-label": this.pageTitle + ' Menu' }, index.h(index$1.FontAwesomeIcon, { icon: faBars.faBars })), index.h("div", { slot: "content" }, index.h(PageSpecific, { content: this.pageSpecificContent })))))))));
897
- }
898
- get el() { return index.getElement(this); }
899
- };
900
- UofgHeader.style = uofgHeaderCss;
901
-
902
- const DURATION_REGEX = /^(\d*\.?\d+)(s|ms)$/;
903
- const EASING_FUNCTION_REGEX = /^cubic-bezier\((\s*-?\d*\.?\d+\s*,){3}\s*-?\d*\.?\d+\s*\)$|^steps\(\s*\d+\s*(,\s*(start|end))?\s*\)$/;
904
- const UofgMenu = class {
905
- constructor(hostRef) {
906
- index.registerInstance(this, hostRef);
907
- this.expanded = index.createEvent(this, "expanded", 2);
908
- this.collapsed = index.createEvent(this, "collapsed", 2);
909
- this.animationStarted = index.createEvent(this, "animationStarted", 2);
910
- this.animationEnded = index.createEvent(this, "animationEnded", 2);
911
- this.computedStyle = null;
912
- this.button = null;
913
- this.content = null;
914
- this.contentComputedStyle = null;
915
- this.observer = new MutationObserver(this.handleMutation);
916
- this.isExpanded = false;
917
- this.autoCollapse = false;
918
- }
919
- connectedCallback() {
920
- // Bind functions so that "this" correctly refers to the component's instance.
921
- this.handleMutation = this.handleMutation.bind(this);
922
- this.handleClick = this.handleClick.bind(this);
923
- this.handleFocusout = this.handleFocusout.bind(this);
924
- this.handleKeyUp = this.handleKeyUp.bind(this);
925
- this.computedStyle = window.getComputedStyle(this.el);
926
- this.handleMutation();
927
- this.observer.observe(this.el, { childList: true });
928
- }
929
- disconnectedCallback() {
930
- this.observer.disconnect();
931
- }
932
- handleMutation() {
933
- // Update the button element
934
- const button = this.el.querySelector('[slot="button"]');
935
- // Set up the new button
936
- button === null || button === void 0 ? void 0 : button.setAttribute('aria-expanded', this.isExpanded ? 'true' : 'false');
937
- button === null || button === void 0 ? void 0 : button.setAttribute('aria-haspopup', 'true');
938
- this.button = button;
939
- // Update the content element
940
- const content = this.el.querySelector('[slot="content"]');
941
- if (content == null) {
942
- this.content = null;
943
- this.contentComputedStyle = null;
944
- }
945
- else {
946
- this.content = content;
947
- this.content.style.display = this.isExpanded ? '' : 'none';
948
- this.contentComputedStyle = window.getComputedStyle(this.content);
949
- }
950
- }
951
- handleKeyUp(e) {
952
- if (e.key === 'Escape') {
953
- this.isExpanded = false;
954
- if (e.target !== this.button) {
955
- e.stopPropagation();
956
- this.isExpanded = false;
957
- this.button && this.button.focus();
958
- }
959
- }
960
- }
961
- handleClick(e) {
962
- //Check if the click was on the button or a descendant of the button
963
- if (this.button && this.button.contains(e.target)) {
964
- this.isExpanded = !this.isExpanded;
965
- return;
966
- }
967
- }
968
- handleFocusout(e) {
969
- if (this.autoCollapse && !this.el.contains(e.relatedTarget)) {
970
- this.isExpanded = false;
971
- }
972
- }
973
- handleIsExpandedChange(newValue) {
974
- var _a, _b, _c;
975
- (_a = this.button) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-expanded', newValue ? 'true' : 'false');
976
- newValue ? this.expanded.emit() : this.collapsed.emit();
977
- // No content is slotted, so we don't need to do anything else.
978
- if (this.content == null) {
979
- return;
980
- }
981
- // Determine what animation type the user wants.
982
- const type = this.getAnimationType();
983
- // If Web Animations API isn't supported, or the user requested no animation, we can simply set display style
984
- if (!utils.WEB_ANIMATIONS_SUPPORTED() || utils.PREFERS_REDUCED_MOTION() || type === 'none') {
985
- this.content.style.display = newValue ? '' : 'none';
986
- return;
987
- }
988
- // Check if we are in the middle of an animation.
989
- const animations = (_b = this.content) === null || _b === void 0 ? void 0 : _b.getAnimations().filter(animation => animation.id === 'uofg-menu-animation');
990
- // If we are, then we want to reverse the existing one rather than starting a new animation.
991
- if (animations.length > 0) {
992
- animations === null || animations === void 0 ? void 0 : animations.forEach(animation => animation.reverse());
993
- return;
994
- }
995
- let animationDef;
996
- const options = {
997
- id: 'uofg-menu-animation',
998
- duration: this.getAnimationDuration(),
999
- fill: 'none',
1000
- easing: this.getAnimationEasing(),
1001
- direction: newValue ? 'normal' : 'reverse',
1002
- };
1003
- // Need to remove display none, otherwise keyframe values won't be calculated correctly.
1004
- this.content.style.display = '';
1005
- switch (type) {
1006
- case 'fade':
1007
- animationDef = this.fadeAnimation();
1008
- break;
1009
- case 'slide':
1010
- animationDef = this.slideAnimation();
1011
- break;
1012
- default:
1013
- animationDef = this.fadeAnimation();
1014
- }
1015
- // We can start the animation.
1016
- this.animationStarted.emit(newValue);
1017
- (_c = this.content) === null || _c === void 0 ? void 0 : _c.animate(animationDef.keyframes, options).finished.finally(() => {
1018
- var _a;
1019
- // Once the animation is done (or something went wrong during it), we update the content's display style.
1020
- if (this.content) {
1021
- this.content.style.display = this.isExpanded ? '' : 'none';
1022
- (_a = animationDef.callback) === null || _a === void 0 ? void 0 : _a.call(animationDef);
1023
- this.animationEnded.emit(this.isExpanded);
1024
- }
1025
- });
1026
- }
1027
- getAnimationType() {
1028
- var _a;
1029
- const str = ((_a = this.computedStyle) === null || _a === void 0 ? void 0 : _a.getPropertyValue('--uofg-menu-animation-type')) || '';
1030
- switch (str) {
1031
- case 'slide':
1032
- case 'fade':
1033
- return str;
1034
- default:
1035
- return 'none';
1036
- }
1037
- }
1038
- getAnimationDuration() {
1039
- var _a;
1040
- const str = ((_a = this.computedStyle) === null || _a === void 0 ? void 0 : _a.getPropertyValue('--uofg-menu-animation-duration')) || '';
1041
- const matches = DURATION_REGEX.exec(str);
1042
- if (matches == null) {
1043
- return 200;
1044
- }
1045
- return Number.parseFloat(matches[1]) * (matches[2] == 's' ? 1000 : 1);
1046
- }
1047
- getAnimationEasing() {
1048
- var _a;
1049
- const str = ((_a = this.computedStyle) === null || _a === void 0 ? void 0 : _a.getPropertyValue('--uofg-menu-animation-easing')) || '';
1050
- switch (str) {
1051
- case 'linear':
1052
- case 'ease':
1053
- case 'ease-in':
1054
- case 'ease-out':
1055
- case 'ease-in-out':
1056
- case 'step-start':
1057
- case 'step-end':
1058
- return str;
1059
- default:
1060
- return EASING_FUNCTION_REGEX.test(str) ? str : 'ease-in-out';
1061
- }
1062
- }
1063
- fadeAnimation() {
1064
- return { keyframes: [{ opacity: 0 }, { opacity: 1 }] };
1065
- }
1066
- slideAnimation() {
1067
- var _a, _b, _c, _d, _e;
1068
- this.content && (this.content.style.overflowY = 'hidden');
1069
- return {
1070
- keyframes: [
1071
- {
1072
- height: 0,
1073
- paddingTop: 0,
1074
- paddingBottom: 0,
1075
- marginTop: 0,
1076
- marginBottom: 0,
1077
- },
1078
- {
1079
- height: ((_a = this.contentComputedStyle) === null || _a === void 0 ? void 0 : _a.height) || 0,
1080
- paddingTop: ((_b = this.contentComputedStyle) === null || _b === void 0 ? void 0 : _b.paddingTop) || 0,
1081
- paddingBottom: ((_c = this.contentComputedStyle) === null || _c === void 0 ? void 0 : _c.paddingBottom) || 0,
1082
- marginTop: ((_d = this.contentComputedStyle) === null || _d === void 0 ? void 0 : _d.marginTop) || 0,
1083
- marginBottom: ((_e = this.contentComputedStyle) === null || _e === void 0 ? void 0 : _e.marginBottom) || 0,
1084
- },
1085
- ],
1086
- callback: () => {
1087
- this.content && (this.content.style.overflowY = '');
1088
- },
1089
- };
1090
- }
1091
- render() {
1092
- return (index.h(index.Host, { "data-expanded": this.isExpanded, tabindex: -1, onFocusout: this.handleFocusout, onKeyUp: this.handleKeyUp, onClick: this.handleClick }));
1093
- }
1094
- /**
1095
- * Get the current expanded state of the menu.
1096
- * @returns A promise which will resolve to the current expanded state.
1097
- */
1098
- async getExpanded() {
1099
- return this.isExpanded;
1100
- }
1101
- /**
1102
- * Set the expanded state of the menu.
1103
- * @param value The new expanded state.
1104
- */
1105
- async setExpanded(value) {
1106
- this.isExpanded = value;
1107
- }
1108
- /**
1109
- * Toggle the expanded state of the menu.
1110
- * @returns A promise which will resolve to the new expanded state.
1111
- */
1112
- async toggle() {
1113
- this.isExpanded = !this.isExpanded;
1114
- return this.isExpanded;
1115
- }
1116
- /**
1117
- * Collapse the menu. This is the same as setting the expanded state to false.
1118
- * @returns empty Promise.
1119
- */
1120
- async collapse() {
1121
- this.isExpanded = false;
1122
- }
1123
- /**
1124
- * Expand the menu. This is the same as setting the expanded state to true.
1125
- * @returns empty Promise.
1126
- */
1127
- async expand() {
1128
- this.isExpanded = true;
1129
- }
1130
- get el() { return index.getElement(this); }
1131
- static get watchers() { return {
1132
- "isExpanded": ["handleIsExpandedChange"]
1133
- }; }
1134
- };
1135
-
1136
- exports.uofg_back_to_top = UofgBackToTop;
1137
- exports.uofg_footer = UofgFooter;
1138
- exports.uofg_header = UofgHeader;
1139
- exports.uofg_menu = UofgMenu;