@qhealth-design-system/core 1.22.2 → 1.23.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 (78) hide show
  1. package/.storybook/assets/image-position-demo-portrait.svg +54 -0
  2. package/.storybook/assets/image-position-demo.svg +55 -0
  3. package/.storybook/globals.js +9 -0
  4. package/.storybook/preview.js +8 -1
  5. package/CHANGELOG.md +2 -0
  6. package/README.md +0 -6
  7. package/package.json +13 -33
  8. package/src/assets/img/svg-icons.svg +154 -154
  9. package/src/component-loader.js +11 -2
  10. package/src/components/_global/css/admin/component.scss +1 -0
  11. package/src/components/_global/css/btn/component.scss +9 -0
  12. package/src/components/_global/css/img/image-position-utility-classes.scss +30 -0
  13. package/src/components/_global/css/img/image-ratio-utility-classes.scss +41 -0
  14. package/src/components/_global/css/img/images.scss +74 -5
  15. package/src/components/_global/css/modal/component.scss +1 -0
  16. package/src/components/_global/js/animate/global.js +272 -294
  17. package/src/components/_global/js/collapsible.js +3 -3
  18. package/src/components/_global/js/global.js +304 -316
  19. package/src/components/_global/js/legacyGlobal.js +63 -0
  20. package/src/components/_global/js/modal/global.js +218 -223
  21. package/src/components/_global/js/popover/controller.js +4 -4
  22. package/src/components/_global/js/tabs/global.js +264 -276
  23. package/src/components/a-z_listing/js/global.js +106 -92
  24. package/src/components/accordion/css/component.scss +24 -41
  25. package/src/components/accordion/html/component.hbs +23 -5
  26. package/src/components/accordion/js/global.js +5 -10
  27. package/src/components/basic_search/js/global.js +0 -7
  28. package/src/components/code/js/global.js +6 -12
  29. package/src/components/file_upload/js/global.js +1 -5
  30. package/src/components/internal_navigation/css/component.scss +2 -2
  31. package/src/components/internal_navigation/html/component.hbs +16 -1
  32. package/src/components/main_navigation/js/global.js +341 -335
  33. package/src/components/overflow_menu/css/component.scss +1 -0
  34. package/src/components/search_box/css/component.scss +0 -1
  35. package/src/components/tab/js/global.js +5 -10
  36. package/src/components/toggle_tip/js/global.js +0 -6
  37. package/src/components/tool_tip/js/global.js +0 -6
  38. package/src/components/video_player/css/component.scss +27 -9
  39. package/src/components/video_player/html/component.hbs +32 -6
  40. package/src/components/video_player/js/global.js +8 -1
  41. package/src/index.js +4 -0
  42. package/src/stories/Accordion/accordion.stories.js +1 -0
  43. package/src/stories/Banner/bannerContained.stories.js +123 -0
  44. package/src/stories/Flexbox/Flexbox.stories.js +316 -0
  45. package/src/stories/Image/Image.stories.js +182 -0
  46. package/src/stories/Templates/ContentPage.stories.js +101 -0
  47. package/src/stories/Templates/LandingPage.stories.js +193 -0
  48. package/src/stories/Templates/templateHelpers.js +102 -0
  49. package/src/stories/VideoPlayer/VideoPlayer.stories.js +16 -0
  50. package/src/styles/imports/utilities.scss +15 -25
  51. package/src/styles/imports/variables.scss +26 -0
  52. package/src/components/_global/html/head.html +0 -22
  53. package/src/components/_global/html/scripts.html +0 -28
  54. package/src/components/_global/js/_polyfills/global.js +0 -19
  55. package/src/components/_template/html/component-page.html +0 -75
  56. package/src/components/_template/js/global.js +0 -3
  57. package/src/components/accordion/html/accordion-group.html +0 -163
  58. package/src/components/accordion/html/default.html +0 -99
  59. package/src/components/banner_basic/js/global.js +0 -3
  60. package/src/components/loading_spinner/js/global.js +0 -3
  61. package/src/components/pagination/html/default.html +0 -39
  62. package/src/components/search_box/html/component.html +0 -26
  63. package/src/data/current.json +0 -400
  64. package/src/data/current_admin.json +0 -305
  65. package/src/data/model_component.js +0 -14
  66. package/src/data/site.json +0 -977
  67. package/src/externals/tinymce_classes.css +0 -62
  68. package/src/html/component-global-elements.html +0 -2857
  69. package/src/html/component-horizontal_rule.html +0 -647
  70. package/src/html/component-internal_navigation.html +0 -583
  71. package/src/html/component-left_hand_navigation.html +0 -57
  72. package/src/html/component-main_navigation.html +0 -583
  73. package/src/html/component-multi_column.html +0 -582
  74. package/src/html/components.html +0 -354
  75. package/src/html/home.html +0 -1898
  76. package/src/html/index.html +0 -129
  77. package/src/html/inner-with-nav.html +0 -605
  78. package/src/html/inner.html +0 -618
@@ -0,0 +1,193 @@
1
+ import { initComponents } from "../../../.storybook/decorators";
2
+ import { initMegaMenu } from "../../components/mega_main_navigation/js/global";
3
+ import initCtaLinks from "../../components/_global/js/cta_links/global";
4
+ import initCards from "../../components/card_no_action/js/global";
5
+ import initBannerAdvanced from "../../components/banner_advanced/js/global";
6
+ import initPromoPanel from "../../components/promo_panel/js/global";
7
+ import CardSingleActionMeta from "../Cards/CardSingleAction.stories.js";
8
+ import ToowoombaImage from "../Cards/Toowoomba-web.jpeg";
9
+ import {
10
+ renderSiteHeader,
11
+ renderSiteFooter,
12
+ renderPrefooter,
13
+ renderAdvancedBanner,
14
+ renderPromoPanel,
15
+ icon,
16
+ } from "./templateHelpers.js";
17
+
18
+ // "Our facilities": a feature card (image on the right) beside a link list of
19
+ // related facilities. The card mirrors the card_feature component's markup so it
20
+ // sits cleanly in a grid column, with contact links in its footer.
21
+ const facilitiesSection = () => {
22
+ const contact = (iconName, text, href) =>
23
+ `<li><a class="qld__card__footer-link" href="${href}">${icon(iconName, "qld__card__footer-link-icon")}<span>${text}</span></a></li>`;
24
+
25
+ const facilityLink = (text) => `<li><a href="#">${text}</a></li>`;
26
+
27
+ return `
28
+ <section class="qld__body">
29
+ <div class="container-fluid">
30
+ <h2>Our facilities</h2>
31
+ <div class="row">
32
+ <div class="col-xs-12 col-lg-8">
33
+ <div class="qld__card qld__card__multi-action qld__card--image qld__card__multi-action--feature qld__card__multi-action--image-right">
34
+ <div class="qld__card__image-wrapper">
35
+ <div
36
+ class="qld__responsive-media-img--bg"
37
+ style="background-image: url('${ToowoombaImage}');"
38
+ role="img"
39
+ aria-label="Toowoomba Hospital"
40
+ ></div>
41
+ </div>
42
+ <div class="qld__card__inner">
43
+ <div class="qld__card__content">
44
+ <div class="qld__card__content-inner">
45
+ <h3 class="qld__card__title">
46
+ <a class="qld__card--clickable__link" href="#">Toowoomba Hospital</a>
47
+ </h3>
48
+ <p class="qld__card__description">Address: Pechey St, Toowoomba QLD 4350</p>
49
+ </div>
50
+ </div>
51
+ <div class="qld__card__footer">
52
+ <hr class="qld__horizontal-rule" aria-hidden="true" />
53
+ <div class="qld__card__footer-inner">
54
+ <ul class="qld__link-list">
55
+ ${contact("phone", "Phone 07 4616 6000", "tel:0746166000")}
56
+ ${contact("alert-warning", "For emergencies call 000", "tel:000")}
57
+ ${contact("phone", "For non-urgent health advice call 13 HEALTH (13 43 25 84)", "tel:134325")}
58
+ </ul>
59
+ </div>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ <div class="col-xs-12 col-lg-4">
65
+ <h3>Hospitals and health centres</h3>
66
+ <ul aria-label="Hospitals and health centres" class="qld__link-columns">
67
+ ${facilityLink("Baillie Henderson Hospital")}
68
+ ${facilityLink("Warwick Hospital")}
69
+ ${facilityLink("Kingaroy Hospital")}
70
+ ${facilityLink("Dalby Hospital")}
71
+ <li class="qld__link-columns__all-link">
72
+ <a href="#" class="qld__cta-link qld__cta-link--view-all">All hospitals and facilities</a>
73
+ </li>
74
+ </ul>
75
+ </div>
76
+ </div>
77
+ </div>
78
+ </section>
79
+ `;
80
+ };
81
+
82
+ // "Our services": a grid of icon cards. Reuses the Card (single action) story so
83
+ // the grid stays in sync with the component; only the section content differs.
84
+ const serviceCard = (id, name, iconName) => ({
85
+ assetid: String(id),
86
+ type_code: "page_standard",
87
+ name,
88
+ metadata: {
89
+ shortDescription: { value: "" },
90
+ cardIcon: { value: iconName },
91
+ redirect_url: { value: "#" },
92
+ cardDisplayFooter: { value: "false" },
93
+ cardFooterContent: { value: "" },
94
+ },
95
+ });
96
+
97
+ const servicesSection = () => {
98
+ const result = CardSingleActionMeta.render({
99
+ ...CardSingleActionMeta.args,
100
+ cardType: "icon",
101
+ iconAlign: "",
102
+ colWidth: "col-md-6 col-lg-4",
103
+ showArrow: false,
104
+ showViewAll: true,
105
+ introHeading: "Our services",
106
+ bodyBackground: "qld__body--light",
107
+ // Card icons render through `iconSwitch` as Material Symbols ligatures
108
+ // (the font is loaded in .storybook/preview-head.html), so these are
109
+ // Material Symbols Rounded names.
110
+ children: [
111
+ serviceCard(1, "Community health", "groups"),
112
+ serviceCard(2, "Sexual health", "favorite"),
113
+ serviceCard(3, "Dental", "dentistry"),
114
+ serviceCard(4, "Maternity", "pregnant_woman"),
115
+ serviceCard(5, "Mental health", "psychology"),
116
+ serviceCard(6, "Emergency", "emergency"),
117
+ ],
118
+ });
119
+ return typeof result === "string" ? result : result.innerHTML;
120
+ };
121
+
122
+ /**
123
+ * A full landing page: header + mega main nav, an advanced hero banner (with a
124
+ * link list and image), an "Our facilities" section (feature card + link list)
125
+ * and an "Our services" grid of cards, then the pre-footer and footer.
126
+ */
127
+ function renderLandingPage(args) {
128
+ const { site } = args;
129
+
130
+ return `
131
+ ${renderSiteHeader(site)}
132
+ <main class="main landing" role="main">
133
+ ${renderAdvancedBanner({
134
+ headingPrimary: "Darling Downs Health",
135
+ showHeadingBackground: true,
136
+ abstract:
137
+ "Hospitals, health services and support for the Darling Downs and South West communities.",
138
+ backgroundColour: "dark",
139
+ backgroundType: "colour",
140
+ showBreadcrumbs: true,
141
+ heroImage: "https://placehold.co/782x520",
142
+ heroImageAlt: "Toowoomba Hospital",
143
+ heroImageTreatment: "crop",
144
+ heroImageAlignment: "grid",
145
+ ctaType: "link-list",
146
+ })}
147
+ ${facilitiesSection()}
148
+ ${servicesSection()}
149
+ ${renderPromoPanel(site, {
150
+ title: "Find a health service near you",
151
+ abstract:
152
+ "Search our directory of hospitals, community health centres and support services across the Darling Downs and South West.",
153
+ imageAlignment: "qld__promo-panel--image-right",
154
+ bodyBackground: "qld__body--dark",
155
+ promoPanelIcon: undefined,
156
+ })}
157
+ ${renderPrefooter(site, { pageType: "landing" })}
158
+ </main>
159
+ ${renderSiteFooter(site)}
160
+ `;
161
+ }
162
+
163
+ export default {
164
+ title: "4. Templates/Landing page",
165
+ render: renderLandingPage,
166
+ parameters: {
167
+ layout: "fullscreen",
168
+ docs: {
169
+ description: {
170
+ component:
171
+ "A representative landing page assembled from the design system's " +
172
+ "layout and component stories: header with the horizontal mega " +
173
+ "navigation, an advanced hero banner with a link list, an 'Our " +
174
+ "facilities' section pairing a feature card with a link list, an " +
175
+ "'Our services' grid of cards, then the pre-footer and footer.",
176
+ },
177
+ },
178
+ },
179
+ decorators: [
180
+ initComponents([
181
+ initMegaMenu,
182
+ initCtaLinks,
183
+ initCards,
184
+ initBannerAdvanced,
185
+ initPromoPanel,
186
+ ]),
187
+ ],
188
+ argTypes: {
189
+ site: { table: { disable: true } },
190
+ },
191
+ };
192
+
193
+ export const Default = {};
@@ -0,0 +1,102 @@
1
+ // Shared building blocks for the page-template demo stories.
2
+ //
3
+ // These templates don't introduce any new markup of their own — they stitch
4
+ // together the existing component stories so the demos stay in sync with the
5
+ // components they showcase. Each helper calls the relevant story's own `render`
6
+ // (exported as `meta.render`) with that story's default args, letting callers
7
+ // override only what a page needs. This is the same approach Header.js uses to
8
+ // embed the mega nav.
9
+
10
+ import { renderHeader, headerArgs } from "../Header/Header.js";
11
+ import FooterMeta from "../Footer/Footer.stories.js";
12
+ import PrefooterMeta from "../Prefooter/Prefooter.stories.js";
13
+ import BannerBasicMeta from "../Banner/bannerBasic.stories.js";
14
+ import BannerAdvancedMeta from "../Banner/bannerAdvanced.stories.js";
15
+ import SideNavMeta from "../Navigation/InternalNavigation/InternalNavigation.stories.js";
16
+ import InPageNavMeta from "../Navigation/InPageNavigation/InPageNavigation.stories.js";
17
+ import PromoPanelMeta from "../PromoPanel/PromoPanel.stories.js";
18
+ import { dummyText, iconSpritePath } from "../../../.storybook/globals";
19
+
20
+ /** An inline SVG icon referencing the shared sprite (as `iconSwitch` produces). */
21
+ export const icon = (name, extraClass = "") =>
22
+ `<svg class="qld__icon ${extraClass}" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><use href="${iconSpritePath}#${name}"></use></svg>`;
23
+
24
+ /** Header chrome (pre-header, logo, search) plus the horizontal mega nav. */
25
+ export const renderSiteHeader = (site) => renderHeader({ ...headerArgs, site });
26
+
27
+ /** Footer. `site` carries the shared `coreSiteIcons` metadata the SVGs need. */
28
+ export const renderSiteFooter = (site) =>
29
+ FooterMeta.render({ ...FooterMeta.args, site });
30
+
31
+ /** Pre-footer ("Last updated" + "Back to top"). */
32
+ export const renderPrefooter = (site, overrides = {}) =>
33
+ PrefooterMeta.render({ ...PrefooterMeta.args, site, ...overrides });
34
+
35
+ /**
36
+ * Page banner. The basic banner story renders into a detached container (so it
37
+ * can swap in the bundled texture image), so unwrap it to a markup string.
38
+ */
39
+ export const renderBanner = (overrides = {}) => {
40
+ const result = BannerBasicMeta.render({
41
+ ...BannerBasicMeta.args,
42
+ ...overrides,
43
+ });
44
+ return typeof result === "string" ? result : result.innerHTML;
45
+ };
46
+
47
+ /**
48
+ * Advanced banner (hero image + a link-list, icon-tile or button CTA). Like the
49
+ * basic banner it renders into a detached container so it can swap in a bundled
50
+ * hero image, so unwrap it to a markup string.
51
+ */
52
+ export const renderAdvancedBanner = (overrides = {}) => {
53
+ const result = BannerAdvancedMeta.render({
54
+ ...BannerAdvancedMeta.args,
55
+ ...overrides,
56
+ });
57
+ return typeof result === "string" ? result : result.innerHTML;
58
+ };
59
+
60
+ /** Side (internal) navigation for the current section. */
61
+ export const renderSideNav = (overrides = {}) =>
62
+ SideNavMeta.render({ ...SideNavMeta.args, ...overrides });
63
+
64
+ /** "On this page" in-page navigation. It scans `#content` for headings at run time. */
65
+ export const renderInPageNav = (overrides = {}) =>
66
+ InPageNavMeta.render({ ...InPageNavMeta.args, ...overrides });
67
+
68
+ /**
69
+ * Promo panel. Like the banners it renders into a detached container (so it can
70
+ * swap in the bundled promo image), so unwrap it to a markup string. `site`
71
+ * carries the `coreSiteIcons` metadata the panel's icon SVG references — the
72
+ * template stories render children directly, bypassing the global `site` arg.
73
+ */
74
+ export const renderPromoPanel = (site, overrides = {}) => {
75
+ const result = PromoPanelMeta.render({
76
+ ...PromoPanelMeta.args,
77
+ site,
78
+ ...overrides,
79
+ });
80
+ return typeof result === "string" ? result : result.innerHTML;
81
+ };
82
+
83
+ /**
84
+ * A block of representative page copy: a handful of `h2` sections (each with a
85
+ * short `h3` sub-section) so the in-page nav has real anchors to list.
86
+ */
87
+ export const contentBody = () => {
88
+ const section = (heading, sub) => `
89
+ <h2>${heading}</h2>
90
+ <p>${dummyText}</p>
91
+ <p>${dummyText}</p>
92
+ <h3>${sub}</h3>
93
+ <p>${dummyText}</p>
94
+ `;
95
+
96
+ return [
97
+ section("Overview", "Who this is for"),
98
+ section("Eligibility", "What you need"),
99
+ section("How to apply", "Step by step"),
100
+ section("After you apply", "What happens next"),
101
+ ].join("");
102
+ };
@@ -261,15 +261,31 @@ export const TranscriptToggle = {
261
261
  await new Promise((resolve) => setTimeout(resolve, 0));
262
262
 
263
263
  const button = canvasElement.querySelector(".qld__accordion__title");
264
+
265
+ // The label sync rewrites textContent on each toggle. Assert the icons
266
+ // sitting alongside the text survive it — writing to their wrapper
267
+ // instead of the text span would silently remove them.
268
+ const expectIconsIntact = async () => {
269
+ await expect(
270
+ button.querySelector("use[href$='#transcript']"),
271
+ ).toBeInTheDocument();
272
+ await expect(
273
+ button.querySelector("use[href$='#chevron-up']"),
274
+ ).toBeInTheDocument();
275
+ };
276
+
264
277
  await expect(button).toHaveTextContent("Show transcript");
265
278
  await expect(button).toHaveAttribute("aria-expanded", "false");
279
+ await expectIconsIntact();
266
280
 
267
281
  await userEvent.click(button);
268
282
  await expect(button).toHaveTextContent("Hide transcript");
269
283
  await expect(button).toHaveAttribute("aria-expanded", "true");
284
+ await expectIconsIntact();
270
285
 
271
286
  await userEvent.click(button);
272
287
  await expect(button).toHaveTextContent("Show transcript");
273
288
  await expect(button).toHaveAttribute("aria-expanded", "false");
289
+ await expectIconsIntact();
274
290
  },
275
291
  };
@@ -319,31 +319,21 @@ a.qld__max-width {
319
319
  Border radius utility
320
320
  */
321
321
 
322
- .qld__border-radius--xs {
323
- border-radius: $QLD-border-radius-xs;
324
- }
325
-
326
- .qld__border-radius--sm {
327
- border-radius: $QLD-border-radius-sm;
328
- }
329
-
330
- .qld__border-radius--md {
331
- border-radius: $QLD-border-radius-md;
332
- }
333
-
334
- .qld__border-radius--lg {
335
- border-radius: $QLD-border-radius-md;
336
-
337
- @include QLD-media(lg) {
338
- border-radius: $QLD-border-radius-lg;
339
- }
340
- }
341
-
342
- .qld__border-radius--lg {
343
- border-radius: $QLD-border-radius-lg;
344
-
345
- @include QLD-media(lg) {
346
- border-radius: $QLD-border-radius-xl;
322
+ /*
323
+ * The applied radius is also published as `--QLD-applied-border-radius` so
324
+ * neighbouring elements can match the shape — see the captioned image rules in
325
+ * `_global/css/img/images.scss`.
326
+ */
327
+ @each $name, $radii in $QLD-border-radius-scale {
328
+ .qld__border-radius--#{$name} {
329
+ --QLD-applied-border-radius: #{nth($radii, 1)};
330
+ border-radius: var(--QLD-applied-border-radius);
331
+
332
+ @if nth($radii, 2) {
333
+ @include QLD-media(lg) {
334
+ --QLD-applied-border-radius: #{nth($radii, 2)};
335
+ }
336
+ }
347
337
  }
348
338
  }
349
339
 
@@ -262,6 +262,32 @@ $QLD-border-radius-lg: map-get($QLD-space-map, 7) + px;
262
262
  $QLD-border-radius-xl: map-get($QLD-space-map, 9) + px;
263
263
  $QLD-border-radius-xxl: map-get($QLD-space-map, 12) + px;
264
264
 
265
+ /**
266
+ * QLD border-radius utility scale
267
+ *
268
+ * Each step is (mobile radius, lg-breakpoint radius). A null second value means
269
+ * the radius does not change at lg. Drives the `.qld__border-radius--*`
270
+ * utilities and anything that has to match them.
271
+ */
272
+ $QLD-border-radius-scale: (
273
+ "xs": (
274
+ $QLD-border-radius-xs,
275
+ null,
276
+ ),
277
+ "sm": (
278
+ $QLD-border-radius-sm,
279
+ null,
280
+ ),
281
+ "md": (
282
+ $QLD-border-radius-md,
283
+ null,
284
+ ),
285
+ "lg": (
286
+ $QLD-border-radius-lg,
287
+ $QLD-border-radius-xl,
288
+ ),
289
+ );
290
+
265
291
  /**
266
292
  * QLD underline-thickness values
267
293
  */
@@ -1,22 +0,0 @@
1
- <!-- Metadata -->
2
- <meta charset="utf-8" />
3
- <meta name="viewport" content="width=device-width, initial-scale=1" />
4
- <!-- Imports -->
5
- <link
6
- href="https://fonts.googleapis.com/css?family=Noto Sans:wght@300;400;600;700;900&display=swap"
7
- rel="stylesheet"
8
- />
9
-
10
- <script
11
- id="globals-loader"
12
- data-current='${JSON.stringify(require("/src/data/current.json"))}'
13
- data-site='${JSON.stringify(require("/src/data/site.json"))}'
14
- >
15
- var current = JSON.parse(
16
- document.getElementById("globals-loader").getAttribute("data-current"),
17
- );
18
- var site = JSON.parse(
19
- document.getElementById("globals-loader").getAttribute("data-site"),
20
- );
21
- var userData = { superAdmin: false, hhsGroup: "darling-downs" };
22
- </script>
@@ -1,28 +0,0 @@
1
- <script src="https://sdk.datastore.squiz.cloud/js/sdk-simulator.js"></script>
2
-
3
- <script src="externals/handlebars.min-v4.7.8.js"></script>
4
- <script src="externals/componentPreview.js"></script>
5
- <script src="js/helpers.js"></script>
6
- <script>
7
- const serviceFinderData = new Datastore({
8
- // serviceURL: 'http://0.0.0.0:7001/hXL8Q1uq', // Matt
9
- //serviceURL: 'http://0.0.0.0:7001/afMhajMG', // Tom
10
- serviceURL: "http://0.0.0.0:7001/GbO0pTqv", // Julian
11
- //serviceURL: 'https://au-a14fc409.datastore.squiz.cloud',
12
- jwtURL: "http://0.0.0.0:7001/__JWT/issueToken",
13
- });
14
-
15
- serviceFinderData.setSetting("jwtPayload", {
16
- username: "jdoe",
17
- fullName: "John Doe",
18
- dsAdmin: false,
19
- hhsGroup: "sunshine-coast",
20
- isPublic: false,
21
- currentHHS: true,
22
- });
23
- </script>
24
-
25
- <script src="externals/populateDatastoreSim.js"></script>
26
-
27
- <!-- Configure Default HHS -->
28
- <div id="qhealth__hhs" data-hhs="darling-downs"></div>
@@ -1,19 +0,0 @@
1
- // IE 11 polyfill for .matches
2
- if (!Element.prototype.matches) {
3
- Element.prototype.matches =
4
- Element.prototype.msMatchesSelector ||
5
- Element.prototype.webkitMatchesSelector;
6
- }
7
-
8
- // IE 11 polyfill for .closest
9
- if (!Element.prototype.closest) {
10
- Element.prototype.closest = function (s) {
11
- var el = this;
12
-
13
- do {
14
- if (Element.prototype.matches.call(el, s)) return el;
15
- el = el.parentElement || el.parentNode;
16
- } while (el !== null && el.nodeType === 1);
17
- return null;
18
- };
19
- }
@@ -1,75 +0,0 @@
1
- <!doctype html>
2
- <!--[if lt IE 8]>
3
- <html class="no-js lt-ie8 lt-ie9" lang="en">
4
- <![endif]-->
5
- <!--[if IE 8]>
6
- <html class="no-js lt-ie9 ie8" lang="en">
7
- <![endif]-->
8
- <!--[if IE 9]>
9
- <html class="no-js ie9" lang="en">
10
- <![endif]-->
11
- <!--[if !(IE)]><!-->
12
- <html class="no-js" lang="en">
13
- <!--<![endif]-->
14
-
15
- <head>
16
- <title>Queensland Design System</title>
17
-
18
- ${require('../components/_global/html/head.html')}
19
- </head>
20
-
21
- <body class="qld__grid">
22
- <!--noindex-->
23
- ${require('../components/header/html/component.hbs')({
24
- "site":require('/src/data/site.json') })}
25
- <!--endnoindex-->
26
- ${require('../components/mega_main_navigation/html/component.hbs')({
27
- "site":require('/src/data/site.json') })}
28
- <!-- MAIN BODY -->
29
- <main class="main" role="main">
30
- <section class="qld__body qld__body--breadcrumb">
31
- <div class="container-fluid">
32
- ${require('../components/breadcrumbs/html/component.hbs')({
33
- "site":require('/src/data/site.json'),
34
- "current":require('/src/data/current.json'), })}
35
- </div>
36
- </section>
37
- <!--CONTENT-->
38
- <div class="qld__body">
39
- <div class="container-fluid">
40
- <div class="row">
41
- <div class="col-xs-12 col-md-4 col-lg-3">
42
- <!-- INTERNAL NAVIGATION -->
43
- ${require('../components/internal_navigation/html/component.hbs')({
44
- "site":require('/src/data/site.json'),
45
- "current":require('/src/data/current.json') })}
46
- </div>
47
- <div class="col-xs-12 col-md-8 col-lg-9" id="content">
48
- ${require('../components/_global/html/component.hbs')({
49
- "manifest":require('../components/[component_name]/js/manifest.json'),
50
- "component":require('!url-loader!../components/[component_name]/html/component.hbs'),
51
- "component_output":require('../components/[component_name]/html/component.hbs')({
52
- "component":require('../components/[component_name]/js/manifest.json').component,
53
- "site":require('/src/data/site.json'),
54
- "current":require('/src/data/current.json'), "content":"Lorem
55
- Ipsum" }) })}
56
- </div>
57
- </div>
58
- </div>
59
- </div>
60
- <!-- Page Footer Info -->
61
- ${require('../components/prefooter/html/component.hbs')({
62
- "site":require('/src/data/site.json'),
63
- "current":require('/src/data/current.json') })}
64
- </main>
65
- <!-- END MAIN BODY -->
66
-
67
- <!-- FOOTER-->
68
- ${require('../components/footer/html/component.hbs')({
69
- "site":require('/src/data/site.json') })}
70
-
71
- <div class="footer-scripts" id="footer_js" style="display: none !important">
72
- ${require('../components/_global/html/scripts.html')}
73
- </div>
74
- </body>
75
- </html>
@@ -1,3 +0,0 @@
1
- (function () {
2
- "use strict";
3
- })();