@pnx-mixtape/mxds 0.0.19 → 0.0.21

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 (120) hide show
  1. package/README.md +18 -6
  2. package/dist/build/accordion.entry.js +2 -2
  3. package/dist/build/accordion.entry.js.map +1 -1
  4. package/dist/build/base.css +2 -1
  5. package/dist/build/button.css +4 -4
  6. package/dist/build/card.css +6 -5
  7. package/dist/build/chunks/{Accordion-deu4CCT-.js → Accordion-O-huO4At.js} +2 -2
  8. package/dist/build/chunks/{Accordion-deu4CCT-.js.map → Accordion-O-huO4At.js.map} +1 -1
  9. package/dist/build/chunks/{disclosure-widget-WwE5XplD.js → disclosure-widget-DVpnRsTI.js} +2 -2
  10. package/dist/build/chunks/{disclosure-widget-WwE5XplD.js.map → disclosure-widget-DVpnRsTI.js.map} +1 -1
  11. package/dist/build/chunks/{drop-menu.entry-e1iZ4ERw.js → drop-menu.entry-B4TtnC50.js} +2 -2
  12. package/dist/build/chunks/{drop-menu.entry-e1iZ4ERw.js.map → drop-menu.entry-B4TtnC50.js.map} +1 -1
  13. package/dist/build/chunks/{utilities-BeWkujCZ.js → utilities-DXELy_An.js} +91 -1
  14. package/dist/build/chunks/utilities-DXELy_An.js.map +1 -0
  15. package/dist/build/constants.css +6 -4
  16. package/dist/build/dialog.css +1 -9
  17. package/dist/build/dialog.entry.js +1 -1
  18. package/dist/build/drop-menu.entry.js +1 -1
  19. package/dist/build/filters.entry.js +1 -1
  20. package/dist/build/global-alert.entry.js +1 -1
  21. package/dist/build/header.css +49 -63
  22. package/dist/build/header.entry.js +1107 -21
  23. package/dist/build/header.entry.js.map +1 -1
  24. package/dist/build/hero-banner.css +12 -6
  25. package/dist/build/in-page-navigation.entry.js +1 -1
  26. package/dist/build/navigation.entry.js +2 -2
  27. package/dist/build/page.css +2 -2
  28. package/dist/build/pagination.css +15 -21
  29. package/dist/build/steps.css +11 -11
  30. package/dist/build/sticky.entry.js +1 -1
  31. package/dist/build/tabs.entry.js +2 -2
  32. package/dist/build/utilities.css +9 -1
  33. package/package.json +18 -29
  34. package/src/Atom/Button/_buttons-styles.css +3 -3
  35. package/src/Atom/Heading/Heading.tsx +1 -1
  36. package/src/Atom/Icon/Icon.tsx +1 -1
  37. package/src/Atom/Link/Link.stories.tsx +2 -6
  38. package/src/Atom/Link/Link.tsx +9 -4
  39. package/src/Atom/Link/_links.css +1 -0
  40. package/src/Component/Accordion/Accordion.stories.tsx +39 -9
  41. package/src/Component/Accordion/Accordion.tsx +28 -50
  42. package/src/Component/Accordion/Components/AccordionContent.tsx +24 -0
  43. package/src/Component/Accordion/Components/AccordionTitle.tsx +34 -0
  44. package/src/Component/Accordion/Components/AccordionTitleIcon.tsx +22 -0
  45. package/src/Component/Accordion/__snapshots__/Accordion.stories.tsx.snap +26 -0
  46. package/src/Component/Breadcrumb/Breadcrumb.tsx +8 -2
  47. package/src/Component/Breadcrumb/__snapshots__/Breadcrumb.stories.tsx.snap +7 -3
  48. package/src/Component/Card/Card.stories.tsx +22 -19
  49. package/src/Component/Card/Card.tsx +6 -28
  50. package/src/Component/Card/Components/CardContent.tsx +12 -0
  51. package/src/Component/Card/Components/CardMedia.tsx +17 -0
  52. package/src/Component/Card/__snapshots__/Card.stories.tsx.snap +9 -9
  53. package/src/Component/Card/card.css +3 -2
  54. package/src/Component/ContentBlock/Components/ContentBlockContent.tsx +14 -0
  55. package/src/Component/ContentBlock/Components/ContentBlockMedia.tsx +20 -0
  56. package/src/Component/ContentBlock/ContentBlock.stories.tsx +16 -13
  57. package/src/Component/ContentBlock/ContentBlock.tsx +5 -28
  58. package/src/Component/ContentBlock/__snapshots__/ContentBlock.stories.tsx.snap +0 -2
  59. package/src/Component/Dialog/Components/DialogCloseButton.tsx +18 -0
  60. package/src/Component/Dialog/Components/DialogContent.tsx +7 -0
  61. package/src/Component/Dialog/Dialog.stories.tsx +19 -24
  62. package/src/Component/Dialog/Dialog.tsx +31 -25
  63. package/src/Component/Dialog/__snapshots__/Dialog.stories.tsx.snap +14 -21
  64. package/src/Component/Dialog/dialog.css +0 -8
  65. package/src/Component/HeroBanner/HeroBanner.stories.ts +23 -12
  66. package/src/Component/HeroBanner/HeroBanner.stories.tsx +26 -7
  67. package/src/Component/HeroBanner/HeroBanner.tsx +2 -20
  68. package/src/Component/HeroBanner/__snapshots__/HeroBanner.stories.ts.snap +51 -3
  69. package/src/Component/HeroBanner/hero-banner.css +8 -4
  70. package/src/Component/HeroBanner/hero-banner.twig +2 -2
  71. package/src/Component/HeroSearch/HeroSearch.stories.ts +105 -0
  72. package/src/Component/HeroSearch/HeroSearch.stories.tsx +48 -0
  73. package/src/Component/HeroSearch/HeroSearch.tsx +32 -0
  74. package/src/Component/HeroSearch/__snapshots__/HeroSearch.stories.ts.snap +176 -0
  75. package/src/Component/HeroSearch/__snapshots__/HeroSearch.stories.tsx.snap +36 -0
  76. package/src/Component/HeroSearch/hero-search.twig +43 -0
  77. package/src/Component/InPageNavigation/InPageNavigation.stories.tsx +1 -1
  78. package/src/Component/InPageNavigation/InPageNavigation.tsx +1 -0
  79. package/src/Component/InPageNavigation/__snapshots__/InPageNavigation.stories.tsx.snap +1 -1
  80. package/src/Component/LinkList/LinkList.stories.ts +12 -0
  81. package/src/Component/LinkList/LinkList.stories.tsx +0 -6
  82. package/src/Component/LinkList/LinkList.tsx +5 -16
  83. package/src/Component/LinkList/__snapshots__/LinkList.stories.ts.snap +37 -0
  84. package/src/Component/LinkList/__snapshots__/LinkList.stories.tsx.snap +9 -29
  85. package/src/Component/LinkList/link-list.twig +1 -0
  86. package/src/Component/ListItem/Components/ListItemContent.tsx +12 -0
  87. package/src/Component/ListItem/Components/ListItemMedia.tsx +20 -0
  88. package/src/Component/ListItem/ListItem.stories.tsx +22 -19
  89. package/src/Component/ListItem/ListItem.tsx +3 -32
  90. package/src/Component/ListItem/__snapshots__/ListItem.stories.tsx.snap +3 -0
  91. package/src/Component/Pagination/Components/PaginationContext.tsx +10 -4
  92. package/src/Component/Pagination/Components/PaginationItem.tsx +10 -10
  93. package/src/Component/Pagination/Pagination.tsx +6 -2
  94. package/src/Component/Pagination/__snapshots__/Pagination.stories.tsx.snap +10 -4
  95. package/src/Component/Pagination/pagination.css +13 -18
  96. package/src/Component/Steps/__snapshots__/Steps.stories.ts.snap +12 -12
  97. package/src/Component/Steps/step-item.twig +1 -1
  98. package/src/Component/Steps/steps.css +1 -2
  99. package/src/Component/Tabs/Components/TabPanel.tsx +1 -1
  100. package/src/Component/Tabs/__snapshots__/Tabs.stories.tsx.snap +2 -0
  101. package/src/Component/Tile/Tile.stories.tsx +20 -15
  102. package/src/Component/Tile/__snapshots__/Tile.stories.tsx.snap +18 -23
  103. package/src/Layout/Header/Elements/GlobalToggle.ts +55 -21
  104. package/src/Layout/Header/__snapshots__/Header.stories.ts.snap +14 -14
  105. package/src/Layout/Header/__snapshots__/Header.stories.tsx.snap +2 -2
  106. package/src/Layout/Header/_header.css +2 -47
  107. package/src/Layout/Header/_toggles.css +37 -1
  108. package/src/Layout/Header/header.twig +5 -5
  109. package/src/Layout/Page/Page.stories.tsx +13 -4
  110. package/src/Layout/Page/__snapshots__/Page.stories.tsx.snap +2 -2
  111. package/src/Layout/Page/page.css +1 -1
  112. package/src/Layout/Section/__snapshots__/Section.stories.tsx.snap +3 -3
  113. package/src/Layout/Section/__snapshots__/SectionGrid.stories.tsx.snap +2 -2
  114. package/src/Layout/Sidebar/__snapshots__/Sidebar.stories.tsx.snap +3 -3
  115. package/src/Utility/utilities.css +8 -0
  116. package/src/constants.css +5 -3
  117. package/src/react.ts +30 -7
  118. package/src/tokens.js +3 -1
  119. package/dist/build/chunks/utilities-BeWkujCZ.js.map +0 -1
  120. package/src/Component/Tile/Tile.tsx +0 -53
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  > Refer to that repo if you need to make changes the original packages. This repo is dedicated to
8
8
  > the `@pnx-mixtape/mxds` package.
9
9
 
10
- ### The PreviousNext Design System: [mixtape.pnx.io](https://mixtape.pnx.io/)
10
+ ### The PreviousNext Design System: [mxds.pnx.io](https://mxds.pnx.io/)
11
11
 
12
12
  A design system helps align teams around how products are designed and built.
13
13
 
@@ -184,7 +184,7 @@ customElements.define("mx-fancy-accordion", FancyAccordion)
184
184
  **[pnx-project](https://github.com/previousnext/pnx-project/)** has Mixtape included in the
185
185
  theme by default. Please refer to it (or use it directly) when setting up a Mixtape project.
186
186
 
187
- **[mixtape.pnx.io](https://mixtape.pnx.io/)** is Mixtapes storybook.
187
+ **[mxds.pnx.io](https://mxds.pnx.io/)** is Mixtapes storybook.
188
188
 
189
189
  ## Updating a Mixtape based project
190
190
 
@@ -276,13 +276,25 @@ Then create a pull request, wait for builds to pass, and get the code reviewed.
276
276
 
277
277
  Once approved, merge the PR.
278
278
 
279
- When you are ready for a full release, from `main`, run;
279
+ When you are ready for a release, from `main`, run;
280
280
 
281
281
  ```
282
- pnpm version patch -m 'chore: tag %s'
282
+ pnpm bump-version
283
283
  ```
284
284
 
285
- To bump the version number in `package.json`, then tag the commit and push to `origin`.
285
+ To bump the patch version number in `package.json`, then tag the commit and push to `origin`.
286
286
 
287
- This will trigger a deploy in CircleCI to update [mixtape.pnx.io](https://mixtape.pnx.io/).
287
+ This will trigger a deploy in CircleCI to update [mxds.pnx.io](https://mxds.pnx.io/).
288
288
  Approval is then required to publish to the [NPM registry](https://www.npmjs.com/package/@pnx-mixtape/mxds).
289
+
290
+ Alternatively for a minor or major release, from `main`, run;
291
+
292
+ ```
293
+ # Backward compatible new features
294
+ pnpm version minor -m "chore: tag %s"
295
+ ```
296
+
297
+ ```
298
+ # Changes that break backward compatibility
299
+ pnpm version major -m "chore: tag %s"
300
+ ```
@@ -1,4 +1,4 @@
1
- import "./chunks/Accordion-deu4CCT-.js";
1
+ import "./chunks/Accordion-O-huO4At.js";
2
2
  class AccordionGroup extends HTMLElement {
3
3
  constructor() {
4
4
  super();
@@ -33,7 +33,7 @@ class AccordionGroup extends HTMLElement {
33
33
  }
34
34
  connectedCallback() {
35
35
  if (!this.accordions || !this.expandTrigger || !this.collapseTrigger) return;
36
- this.collapseTrigger.disabled = true;
36
+ this.handleToggle();
37
37
  const { signal } = this.controller;
38
38
  this.addEventListener("click", this.handleClick, {
39
39
  signal
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.entry.js","sources":["../../src/Component/Accordion/Elements/AccordionGroup.ts"],"sourcesContent":["/**\n * Accordion Group\n * @file Support opening and closing all.\n */\n\nexport default class AccordionGroup extends HTMLElement {\n internals_: ElementInternals\n controller: AbortController\n\n constructor() {\n super()\n this.internals_ = this.attachInternals()\n this.controller = new AbortController()\n }\n\n connectedCallback(): void {\n if (!this.accordions || !this.expandTrigger || !this.collapseTrigger) return\n this.collapseTrigger.disabled = true\n const { signal }: AbortController = this.controller\n this.addEventListener(\"click\", this.handleClick, {\n signal,\n })\n this.accordions.forEach(details =>\n details.addEventListener(\"toggle\", this.handleToggle, {\n signal,\n }),\n )\n }\n\n disconnectedCallback(): void {\n this.controller.abort()\n }\n\n handleClick = ({ target }) => {\n if (target === this.expandTrigger) {\n this.handleExpand()\n }\n if (target === this.collapseTrigger) {\n this.handleCollapse()\n }\n }\n\n handleExpand = () => {\n this.accordions.forEach(detail => (detail.open = true))\n this.expandTrigger.disabled = true\n this.collapseTrigger.disabled = false\n }\n\n handleCollapse = () => {\n this.accordions.forEach(detail => (detail.open = false))\n this.expandTrigger.disabled = false\n this.collapseTrigger.disabled = true\n }\n\n handleToggle = () => {\n this.expandTrigger.disabled = [...this.accordions].every(\n details => details.open === true,\n )\n this.collapseTrigger.disabled = [...this.accordions].every(\n details => details.open !== true,\n )\n }\n\n get accordions(): NodeListOf<HTMLDetailsElement> | null {\n const accordions: NodeListOf<HTMLDetailsElement> | null =\n this.querySelectorAll(\"details\")\n if (!accordions.length) {\n throw new Error(\n `${this.localName} must contain at least one <details> element.`,\n )\n }\n return accordions\n }\n\n get expandTrigger(): HTMLButtonElement | null {\n const trigger: HTMLButtonElement | null = this.querySelector(\n \"button[data-expand]\",\n )\n if (!trigger) {\n throw new Error(\n `${this.localName} must contain a <button data-expand> element.`,\n )\n }\n return trigger\n }\n\n get collapseTrigger(): HTMLButtonElement | null {\n const trigger: HTMLButtonElement | null = this.querySelector(\n \"button[data-collapse]\",\n )\n if (!trigger) {\n throw new Error(\n `${this.localName} must contain a <button data-collapse> element.`,\n )\n }\n return trigger\n }\n}\n\ncustomElements.define(\"mx-accordion-group\", AccordionGroup)\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"mx-accordion-group\": AccordionGroup\n }\n}\n"],"names":[],"mappings":";AAKA,MAAqB,uBAAuB,YAAY;AAAA,EAItD,cAAc;AACZ,UAAA;AAuBF,SAAA,cAAc,CAAC,EAAE,aAAa;AAC5B,UAAI,WAAW,KAAK,eAAe;AACjC,aAAK,aAAA;AAAA,MACP;AACA,UAAI,WAAW,KAAK,iBAAiB;AACnC,aAAK,eAAA;AAAA,MACP;AAAA,IACF;AAEA,SAAA,eAAe,MAAM;AACnB,WAAK,WAAW,QAAQ,CAAA,WAAW,OAAO,OAAO,IAAK;AACtD,WAAK,cAAc,WAAW;AAC9B,WAAK,gBAAgB,WAAW;AAAA,IAClC;AAEA,SAAA,iBAAiB,MAAM;AACrB,WAAK,WAAW,QAAQ,CAAA,WAAW,OAAO,OAAO,KAAM;AACvD,WAAK,cAAc,WAAW;AAC9B,WAAK,gBAAgB,WAAW;AAAA,IAClC;AAEA,SAAA,eAAe,MAAM;AACnB,WAAK,cAAc,WAAW,CAAC,GAAG,KAAK,UAAU,EAAE;AAAA,QACjD,CAAA,YAAW,QAAQ,SAAS;AAAA,MAAA;AAE9B,WAAK,gBAAgB,WAAW,CAAC,GAAG,KAAK,UAAU,EAAE;AAAA,QACnD,CAAA,YAAW,QAAQ,SAAS;AAAA,MAAA;AAAA,IAEhC;AAlDE,SAAK,aAAa,KAAK,gBAAA;AACvB,SAAK,aAAa,IAAI,gBAAA;AAAA,EACxB;AAAA,EAEA,oBAA0B;AACxB,QAAI,CAAC,KAAK,cAAc,CAAC,KAAK,iBAAiB,CAAC,KAAK,gBAAiB;AACtE,SAAK,gBAAgB,WAAW;AAChC,UAAM,EAAE,WAA4B,KAAK;AACzC,SAAK,iBAAiB,SAAS,KAAK,aAAa;AAAA,MAC/C;AAAA,IAAA,CACD;AACD,SAAK,WAAW;AAAA,MAAQ,CAAA,YACtB,QAAQ,iBAAiB,UAAU,KAAK,cAAc;AAAA,QACpD;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAAA,EAEA,uBAA6B;AAC3B,SAAK,WAAW,MAAA;AAAA,EAClB;AAAA,EAgCA,IAAI,aAAoD;AACtD,UAAM,aACJ,KAAK,iBAAiB,SAAS;AACjC,QAAI,CAAC,WAAW,QAAQ;AACtB,YAAM,IAAI;AAAA,QACR,GAAG,KAAK,SAAS;AAAA,MAAA;AAAA,IAErB;AACA,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,gBAA0C;AAC5C,UAAM,UAAoC,KAAK;AAAA,MAC7C;AAAA,IAAA;AAEF,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI;AAAA,QACR,GAAG,KAAK,SAAS;AAAA,MAAA;AAAA,IAErB;AACA,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,kBAA4C;AAC9C,UAAM,UAAoC,KAAK;AAAA,MAC7C;AAAA,IAAA;AAEF,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI;AAAA,QACR,GAAG,KAAK,SAAS;AAAA,MAAA;AAAA,IAErB;AACA,WAAO;AAAA,EACT;AACF;AAEA,eAAe,OAAO,sBAAsB,cAAc;"}
1
+ {"version":3,"file":"accordion.entry.js","sources":["../../src/Component/Accordion/Elements/AccordionGroup.ts"],"sourcesContent":["/**\n * Accordion Group\n * @file Support opening and closing all.\n */\n\nexport default class AccordionGroup extends HTMLElement {\n internals_: ElementInternals\n controller: AbortController\n\n constructor() {\n super()\n this.internals_ = this.attachInternals()\n this.controller = new AbortController()\n }\n\n connectedCallback(): void {\n if (!this.accordions || !this.expandTrigger || !this.collapseTrigger) return\n this.handleToggle()\n const { signal }: AbortController = this.controller\n this.addEventListener(\"click\", this.handleClick, {\n signal,\n })\n this.accordions.forEach(details =>\n details.addEventListener(\"toggle\", this.handleToggle, {\n signal,\n }),\n )\n }\n\n disconnectedCallback(): void {\n this.controller.abort()\n }\n\n handleClick = ({ target }) => {\n if (target === this.expandTrigger) {\n this.handleExpand()\n }\n if (target === this.collapseTrigger) {\n this.handleCollapse()\n }\n }\n\n handleExpand = () => {\n this.accordions.forEach(detail => (detail.open = true))\n this.expandTrigger.disabled = true\n this.collapseTrigger.disabled = false\n }\n\n handleCollapse = () => {\n this.accordions.forEach(detail => (detail.open = false))\n this.expandTrigger.disabled = false\n this.collapseTrigger.disabled = true\n }\n\n handleToggle = () => {\n this.expandTrigger.disabled = [...this.accordions].every(\n details => details.open === true,\n )\n this.collapseTrigger.disabled = [...this.accordions].every(\n details => details.open !== true,\n )\n }\n\n get accordions(): NodeListOf<HTMLDetailsElement> | null {\n const accordions: NodeListOf<HTMLDetailsElement> | null =\n this.querySelectorAll(\"details\")\n if (!accordions.length) {\n throw new Error(\n `${this.localName} must contain at least one <details> element.`,\n )\n }\n return accordions\n }\n\n get expandTrigger(): HTMLButtonElement | null {\n const trigger: HTMLButtonElement | null = this.querySelector(\n \"button[data-expand]\",\n )\n if (!trigger) {\n throw new Error(\n `${this.localName} must contain a <button data-expand> element.`,\n )\n }\n return trigger\n }\n\n get collapseTrigger(): HTMLButtonElement | null {\n const trigger: HTMLButtonElement | null = this.querySelector(\n \"button[data-collapse]\",\n )\n if (!trigger) {\n throw new Error(\n `${this.localName} must contain a <button data-collapse> element.`,\n )\n }\n return trigger\n }\n}\n\ncustomElements.define(\"mx-accordion-group\", AccordionGroup)\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"mx-accordion-group\": AccordionGroup\n }\n}\n"],"names":[],"mappings":";AAKA,MAAqB,uBAAuB,YAAY;AAAA,EAItD,cAAc;AACZ,UAAA;AAuBF,SAAA,cAAc,CAAC,EAAE,aAAa;AAC5B,UAAI,WAAW,KAAK,eAAe;AACjC,aAAK,aAAA;AAAA,MACP;AACA,UAAI,WAAW,KAAK,iBAAiB;AACnC,aAAK,eAAA;AAAA,MACP;AAAA,IACF;AAEA,SAAA,eAAe,MAAM;AACnB,WAAK,WAAW,QAAQ,CAAA,WAAW,OAAO,OAAO,IAAK;AACtD,WAAK,cAAc,WAAW;AAC9B,WAAK,gBAAgB,WAAW;AAAA,IAClC;AAEA,SAAA,iBAAiB,MAAM;AACrB,WAAK,WAAW,QAAQ,CAAA,WAAW,OAAO,OAAO,KAAM;AACvD,WAAK,cAAc,WAAW;AAC9B,WAAK,gBAAgB,WAAW;AAAA,IAClC;AAEA,SAAA,eAAe,MAAM;AACnB,WAAK,cAAc,WAAW,CAAC,GAAG,KAAK,UAAU,EAAE;AAAA,QACjD,CAAA,YAAW,QAAQ,SAAS;AAAA,MAAA;AAE9B,WAAK,gBAAgB,WAAW,CAAC,GAAG,KAAK,UAAU,EAAE;AAAA,QACnD,CAAA,YAAW,QAAQ,SAAS;AAAA,MAAA;AAAA,IAEhC;AAlDE,SAAK,aAAa,KAAK,gBAAA;AACvB,SAAK,aAAa,IAAI,gBAAA;AAAA,EACxB;AAAA,EAEA,oBAA0B;AACxB,QAAI,CAAC,KAAK,cAAc,CAAC,KAAK,iBAAiB,CAAC,KAAK,gBAAiB;AACtE,SAAK,aAAA;AACL,UAAM,EAAE,WAA4B,KAAK;AACzC,SAAK,iBAAiB,SAAS,KAAK,aAAa;AAAA,MAC/C;AAAA,IAAA,CACD;AACD,SAAK,WAAW;AAAA,MAAQ,CAAA,YACtB,QAAQ,iBAAiB,UAAU,KAAK,cAAc;AAAA,QACpD;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAAA,EAEA,uBAA6B;AAC3B,SAAK,WAAW,MAAA;AAAA,EAClB;AAAA,EAgCA,IAAI,aAAoD;AACtD,UAAM,aACJ,KAAK,iBAAiB,SAAS;AACjC,QAAI,CAAC,WAAW,QAAQ;AACtB,YAAM,IAAI;AAAA,QACR,GAAG,KAAK,SAAS;AAAA,MAAA;AAAA,IAErB;AACA,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,gBAA0C;AAC5C,UAAM,UAAoC,KAAK;AAAA,MAC7C;AAAA,IAAA;AAEF,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI;AAAA,QACR,GAAG,KAAK,SAAS;AAAA,MAAA;AAAA,IAErB;AACA,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,kBAA4C;AAC9C,UAAM,UAAoC,KAAK;AAAA,MAC7C;AAAA,IAAA;AAEF,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI;AAAA,QACR,GAAG,KAAK,SAAS;AAAA,MAAA;AAAA,IAErB;AACA,WAAO;AAAA,EACT;AACF;AAEA,eAAe,OAAO,sBAAsB,cAAc;"}
@@ -463,6 +463,7 @@
463
463
 
464
464
  .mx-link--more {
465
465
  font-weight: var(--font-weight-bold);
466
+ display: inline-flex;
466
467
  }
467
468
 
468
469
  .mx-link--more:hover .mx-icon {
@@ -1009,4 +1010,4 @@
1009
1010
  }
1010
1011
  }
1011
1012
 
1012
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJhc2UuY3NzIiwiQmFja2dyb3VuZC9fYmFja2dyb3VuZC5jc3MiLCJfYW5pbWF0ZWQuY3NzIiwiX2Jhc2UuY3NzIiwiX2dlbmVyaWMuY3NzIiwiX2Zsb3cuY3NzIiwiSGVhZGluZy9faGVhZGluZ3MuY3NzIiwiQmxvY2txdW90ZS9fYmxvY2txdW90ZS5jc3MiLCJfaHIuY3NzIiwiTGluay9fbGlua3MuY3NzIiwiVGV4dC9fdGV4dC1zaXplcy5jc3MiLCJUZXh0L190ZXh0LWFsaWduLmNzcyIsIlNwYWNpbmcvX21peGlucy5jc3MiLCJTcGFjaW5nL19zcGFjaW5nLmNzcyIsIkltYWdlL19pbWFnZS5jc3MiLCJNZWRpYS9fbWVkaWEuY3NzIiwiVmlkZW8vX3ZpZGVvLmNzcyIsIlRhYmxlL190YWJsZS5jc3MiLCJfcHJpbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhJQUE4STs7QUNBOUk7O0VBRUU7O0FBQ0Y7RUFDRTtJQUNFLDZEQUE2RDtJQUM3RCxrREFBa0Q7SUFDbEQsZ0RBQWdEO0VBQ2xEOztFQUVBO0lBQ0UsbURBQW1EO0lBQ25ELDZCQUE2QjtJQUM3QixzQ0FBc0M7SUFDdEMsc0NBQXNDO0lBQ3RDLGlDQUFpQztJQUNqQyxtQ0FBbUM7RUFDckM7O0VBRUE7SUFDRSxrQ0FBa0M7SUFDbEMsMENBQTBDO0VBQzVDOztFQUVBO0lBQ0UscUNBQXFDO0lBQ3JDLG1DQUFtQztJQUNuQywwQ0FBMEM7SUFDMUMsMENBQTBDO0VBQzVDOztFQUVBO0lBQ0Usb0NBQW9DO0lBQ3BDLGtDQUFrQztJQUNsQyx5Q0FBeUM7SUFDekMseUNBQXlDO0VBQzNDO0lBR0U7TUFDRSxvQkFBaUI7U0FBakIsaUJBQWlCO01BQ2pCLGtCQUFrQjtNQUNsQixpQkFBaUI7TUFDakIsb0JBQW9CO01BQ3BCOztvQkFFcUM7TUFGckM7OzJDQUVxQztJQUN2Qzs7RUFHRjtJQUNFLHFDQUFxQztFQU12Qzs7SUFKRTtNQUNFLHlCQUF5QjtNQUN6QixtQkFBbUI7SUFDckI7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REU7SUFRQTs7RUFMRjs7Ozs7TUFNSSxZQUFZO01BQ1osaUNBQWlDO0VBRXJDO0lBREU7QUFFSjs7QVpOQTs7RUFFRTs7QWEzQ0Y7SUFFSTtNQUVFLG9CQUFvQjtNQUNwQixnQkFBZ0I7TUFDaEIsaUJBQWlCO01BQ2pCLFNBQVM7SUFDWDs7RUFHRjtJQUNFLGlCQUFpQjtFQUNuQjtBQUNGOztBYmlDQTs7RUFFRTs7QUFFRjs7RUFFRTs7QWNyREY7RUFDRTtJQUNFLGlCQUFpQjtJQUNqQix5QkFBeUI7SUFDekIsU0FBUztFQWlCWDs7SUFmRTtNQUNFLG9DQUFvQztNQUNwQyxpQkFBaUI7SUFDbkI7O0lBRUE7TUFDRSwyQkFBMkI7TUFDM0I7Z0RBQzBDO01BRDFDO2dEQUMwQztNQUMxQyxtQkFBbUI7SUFDckI7O0lBRUE7TUFDRSwwQkFBMEI7SUFDNUI7TUFLRTtRQUNFLHVCQUF1QjtNQUN6Qjs7TUFFQTtRQUNFLHFCQUFxQjtNQUN2QjtJQUtGO01BQ0UsNkJBQTZCO01BQzdCLGlDQUFpQztJQUNuQztRQU1JO1VBQ0UsOENBQThDO1FBQ2hEOztFQUtOO0lBQ0UscUJBQXFCO0VBaUJ2Qjs7SUFmRTs7RUFIRjtNQUlJLGtCQUFrQjtNQUNsQixpQ0FBaUM7TUFDakMsbUNBQW1DO0VBWXZDOztNQVZJO1FBQ0UsaUJBQWlCO1FBQ2pCLGVBQWU7UUFDZiwrQkFBK0I7TUFLakM7O1FBSEU7VUFDRSxxQkFBcUI7UUFDdkI7SUFFSjtBQUVKOztBZGRBOztFQUVFOztBZTNERjtFQUNFO0lBQ0UsYUFBYTtFQUNmOztFQUVBO0lBQ0UscUJBQXFCO0VBQ3ZCO0FBQ0YiLCJmaWxlIjoiYmFzZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAbGF5ZXIgcG9wb3Zlci1wb2x5ZmlsbCwgZGVzaWduLXN5c3RlbS5kZWZhdWx0cywgZGVzaWduLXN5c3RlbS5hdG9tcywgZGVzaWduLXN5c3RlbS5sYXlvdXRzLCBkZXNpZ24tc3lzdGVtLnV0aWxpdGllcywgZGVzaWduLXN5c3RlbS5jb21wb25lbnRzO1xuXG5AaW1wb3J0IFwiLi9CYWNrZ3JvdW5kL19iYWNrZ3JvdW5kLmNzc1wiO1xuQGltcG9ydCBcIl9hbmltYXRlZC5jc3NcIjtcbkBpbXBvcnQgXCJfYmFzZS5jc3NcIjtcbiIsIi8qKlxuICogQmFja2dyb3VuZHNcbiAqL1xuQGxheWVyIGRlc2lnbi1zeXN0ZW0uYXRvbXMge1xuICA6d2hlcmUoW2NsYXNzKj1cIm14LWJhY2tncm91bmQtLVwiXSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQsIHZhcigtLWNvbG91ci1iYWNrZ3JvdW5kKSk7XG4gICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQsIHZhcigtLWNvbG91ci1mb3JlZ3JvdW5kKSk7XG4gICAgY29sb3Itc2NoZW1lOiB2YXIoLS1zY2hlbWUsIHZhcigtLWNvbG9yLXNjaGVtZSkpO1xuICB9XG5cbiAgLm14LWJhY2tncm91bmQtLXJlc2V0IHtcbiAgICAvKiB1c2UgdG8gcmV2ZXJ0IC5iYWNrZ3JvdW5kLS1yZXZlcnNlIG9uIGNoaWxkcmVuICovXG4gICAgLS1zY2hlbWU6IHZhcigtLWNvbG9yLXNjaGVtZSk7XG4gICAgLS1iYWNrZ3JvdW5kOiB2YXIoLS1jb2xvdXItYmFja2dyb3VuZCk7XG4gICAgLS1mb3JlZ3JvdW5kOiB2YXIoLS1jb2xvdXItZm9yZWdyb3VuZCk7XG4gICAgLS1saW5rLWNvbG91cjogdmFyKC0tY29sb3VyLWxpbmspO1xuICAgIC0tbGluZS1jb2xvdXI6IHZhcigtLWNvbG91ci1ib3JkZXIpO1xuICB9XG5cbiAgLm14LWJhY2tncm91bmQtLWFsdCB7XG4gICAgLS1zY2hlbWU6IHZhcigtLWFsdC1zY2hlbWUsIGxpZ2h0KTtcbiAgICAtLWJhY2tncm91bmQ6IHZhcigtLWNvbG91ci1iYWNrZ3JvdW5kLWFsdCk7XG4gIH1cblxuICAubXgtYmFja2dyb3VuZC0tcHJpbWFyeSB7XG4gICAgLS1zY2hlbWU6IHZhcigtLXByaW1hcnktc2NoZW1lLCBkYXJrKTtcbiAgICAtLWJhY2tncm91bmQ6IHZhcigtLWNvbG91ci1wcmltYXJ5KTtcbiAgICAtLWxpbmstY29sb3VyOiB2YXIoLS1jb2xvdXItcHJpbWFyeS1saWdodCk7XG4gICAgLS1saW5lLWNvbG91cjogdmFyKC0tY29sb3VyLXByaW1hcnktbGlnaHQpO1xuICB9XG5cbiAgLm14LWJhY2tncm91bmQtLWFjY2VudCB7XG4gICAgLS1zY2hlbWU6IHZhcigtLWFjY2VudC1zY2hlbWUsIGRhcmspO1xuICAgIC0tYmFja2dyb3VuZDogdmFyKC0tY29sb3VyLWFjY2VudCk7XG4gICAgLS1saW5rLWNvbG91cjogdmFyKC0tY29sb3VyLWFjY2VudC1saWdodCk7XG4gICAgLS1saW5lLWNvbG91cjogdmFyKC0tY29sb3VyLWFjY2VudC1saWdodCk7XG4gIH1cblxuICAubXgtYmFja2dyb3VuZC0taW1hZ2Uge1xuICAgICYgaW1nIHtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaW5saW5lLXNpemU6IDEwMCU7XG4gICAgICBtaW4tYmxvY2stc2l6ZTogMTAwJTtcbiAgICAgIGZpbHRlcjogYnJpZ2h0bmVzcyh2YXIoLS1iZy1pbWctYnJpZ2h0bmVzcywgMSkpXG4gICAgICAgIHNhdHVyYXRlKHZhcigtLWJnLWltZy1zYXR1cmF0ZSwgMS4yNSkpXG4gICAgICAgIG9wYWNpdHkodmFyKC0tYmctaW1nLW9wYWNpdHksIDAuNSkpO1xuICAgIH1cbiAgfVxuXG4gIC5teC1iYWNrZ3JvdW5kLS1yZXZlcnNlIHtcbiAgICAtLXNjaGVtZTogdmFyKC0tcmV2ZXJzZS1zY2hlbWUsIGRhcmspO1xuXG4gICAgJiAubXgtYmFja2dyb3VuZC0taW1hZ2Uge1xuICAgICAgLS1iZy1pbWctYnJpZ2h0bmVzczogMC40NTtcbiAgICAgIC0tYmctaW1nLW9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgLm14LWJhY2tncm91bmQtLWJveCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZS1jb2xvdXIsIHZhcigtLWNvbG91ci1ib3JkZXIpKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tZ3V0dGVyLCAxcmVtKTtcbiAgfVxufVxuIiwiQGxheWVyIGRlc2lnbi1zeXN0ZW0udXRpbGl0aWVzIHtcbiAgLm14LWFuaW1hdGVkLS1mYWRlLWluIHtcbiAgICBhbmltYXRpb246IGZhZGUtaW4gMC41cyB2YXIoLS1lYXNlKTtcbiAgfVxuXG4gIC5teC1hbmltYXRlZC0tZmFkZS1vdXQge1xuICAgIGFuaW1hdGlvbjogZmFkZS1vdXQgMC41cyB2YXIoLS1lYXNlKTtcbiAgfVxuXG4gIC5teC1hbmltYXRlZC0tc3Bpbjo6YmVmb3JlIHtcbiAgICBhbmltYXRpb246IHNwaW4gMnMgbGluZWFyIGluZmluaXRlO1xuICB9XG5cbiAgLm14LWFuaW1hdGVkLS1zY2FsZS11cCB7XG4gICAgYW5pbWF0aW9uOiBzY2FsZS11cCAwLjVzIHZhcigtLWVhc2UpO1xuICB9XG5cbiAgLm14LWFuaW1hdGVkLS1zY2FsZS1kb3duIHtcbiAgICBhbmltYXRpb246IHNjYWxlLWRvd24gMC41cyB2YXIoLS1lYXNlKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGUtaW4ge1xuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGUtb3V0IHtcbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzcGluIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNjYWxlLXVwIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yNSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzY2FsZS1kb3duIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC43NSk7XG4gIH1cbn1cbiIsIi8qKlxuICogQXRvbVxuICovXG5cbkBpbXBvcnQgXCJfZ2VuZXJpYy5jc3NcIjtcbkBpbXBvcnQgXCJfZmxvdy5jc3NcIjtcblxuLyoqXG4gKiBUeXBvZ3JhcGh5XG4gKi9cblxuQGltcG9ydCBcIi4vSGVhZGluZy9faGVhZGluZ3MuY3NzXCI7XG5AaW1wb3J0IFwiLi9CbG9ja3F1b3RlL19ibG9ja3F1b3RlLmNzc1wiO1xuQGltcG9ydCBcIl9oci5jc3NcIjtcblxuLyoqXG4gKiBMaW5rc1xuICovXG5cbkBpbXBvcnQgXCIuL0xpbmsvX2xpbmtzLmNzc1wiO1xuXG4vKipcbiAqIFRleHQgU2l6ZXNcbiAqL1xuXG5AaW1wb3J0IFwiLi9UZXh0L190ZXh0LXNpemVzLmNzc1wiO1xuQGltcG9ydCBcIi4vVGV4dC9fdGV4dC1hbGlnbi5jc3NcIjtcblxuLyoqXG4gKiBTcGFjaW5nXG4gKi9cblxuQGltcG9ydCBcIi4vU3BhY2luZy9fc3BhY2luZy5jc3NcIjtcblxuLyoqXG4gKiBJbWFnZXNcbiAqL1xuXG5AaW1wb3J0IFwiLi9JbWFnZS9faW1hZ2UuY3NzXCI7XG5AaW1wb3J0IFwiLi9NZWRpYS9fbWVkaWEuY3NzXCI7XG5cbi8qKlxuICogVmlkZW9cbiAqL1xuXG5AaW1wb3J0IFwiLi9WaWRlby9fdmlkZW8uY3NzXCI7XG5cbi8qKlxuICogVGFibGVcbiAqL1xuXG4vKipcbiAqIFRhYmxlIFJlc3BvbnNpdmVcbiAqL1xuXG5AaW1wb3J0IFwiLi9UYWJsZS9fdGFibGUuY3NzXCI7XG5cbi8qKlxuICogUHJpbnQgU3R5bGVzaGVldFxuICovXG5cbkBpbXBvcnQgXCJfcHJpbnQuY3NzXCI7XG4iLCJAbGF5ZXIgZGVzaWduLXN5c3RlbS5kZWZhdWx0cyB7XG4gIEBtZWRpYSAoLS11c2UtbW90aW9uKSB7XG4gICAgQHZpZXctdHJhbnNpdGlvbiB7XG4gICAgICBuYXZpZ2F0aW9uOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIDppcygqLCA6OmJlZm9yZSwgOjphZnRlcikge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBtYXJnaW46IDA7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OlxuICAgICAgb3BhY2l0eSwgY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgdHJhbnNmb3JtLCByb3RhdGUsXG4gICAgICBkaXNwbGF5LCBvdmVybGF5O1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWVhc2UpO1xuICAgIHRyYW5zaXRpb24tYmVoYXZpb3I6IGFsbG93LWRpc2NyZXRlO1xuXG4gICAgQHN0YXJ0aW5nLXN0eWxlIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG5cbiAgOmZvY3VzIHtcbiAgICBzY3JvbGwtcGFkZGluZy1ibG9jay1lbmQ6IDR2aDtcbiAgfVxuXG4gIDpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiB2YXIoLS1vdXRsaW5lLXNpemUsIDJweCkgdmFyKC0tb3V0bGluZS1zdHlsZSwgc29saWQpXG4gICAgICB2YXIoLS1vdXRsaW5lLWNvbG9yLCBjdXJyZW50Y29sb3IpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1vdXRsaW5lLW9mZnNldCwgdmFyKC0tb3V0bGluZS1zaXplLCAycHgpKTtcbiAgfVxuXG4gIGh0bWwge1xuICAgIGJsb2NrLXNpemU6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxMDAlOyAvKiAxNnB4IGluIG1vc3QgYnJvd3NlcnMgKi9cbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHkpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodCk7XG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG4gIH1cblxuICAudHJhbnNsYXRlZC1ydGwge1xuICAgIGRpcmVjdGlvbjogcnRsO1xuICB9XG5cbiAgYm9keSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvdXItZm9yZWdyb3VuZCk7XG4gICAgYWNjZW50LWNvbG9yOiB2YXIoLS1jb2xvdXItcHJpbWFyeSk7XG4gICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplc3BlZWQ7XG4gICAgYmxvY2stc2l6ZTogMTAwJTtcbiAgfVxuXG4gIDp0YXJnZXQsXG4gIFtpZF0sXG4gIC5oYXMtc2Nyb2xsLW1hcmdpbiB7XG4gICAgc2Nyb2xsLW1hcmdpbi1ibG9jay1zdGFydDogY2FsYyhcbiAgICAgIHZhcigtLXN0aWNreS1vZmZzZXQsIDByZW0pICsgdmFyKC0tc2Nyb2xsLW1hcmdpbiwgdmFyKC0tc3BhY2luZy1tKSlcbiAgICApO1xuICB9XG5cbiAgOmlzKGIsIHN0cm9uZykge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgfVxuXG4gIDppcyhvbCwgdWwpIHtcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tc3BhY2luZy1tKTtcblxuICAgICZbcm9sZT1cImxpc3RcIl0ge1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIGRsIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluKDEwMCUsIHZhcigtLWdyaWQtbWluLCAyMGNoKSkgMWZyO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuICAgIGdhcDogdmFyKC0tc3BhY2luZy14cyk7XG5cbiAgICAmOmhhcyg+IGRpdikge1xuICAgICAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplO1xuICAgIH1cblxuICAgICYgZGl2IHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHN1YmdyaWQ7XG4gICAgICBncmlkLWNvbHVtbjogc3BhbiAyO1xuXG4gICAgICBAY29udGFpbmVyIChtYXgtd2lkdGg6IDYwY2gpIHtcbiAgICAgICAgZ2FwOiB2YXIoLS1zcGFjaW5nLXh4eHMpO1xuXG4gICAgICAgICYgPiA6aXMoZHQsIGRkKSB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYgZHQge1xuICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIHRleHQtd3JhcDogcHJldHR5O1xuICB9XG59XG5cbkBtZWRpYSAoLS1yZWR1Y2UtbW90aW9uKSB7XG4gICosXG4gIDo6YmVmb3JlLFxuICA6OmFmdGVyIHtcbiAgICBhbmltYXRpb24tZGVsYXk6IC0xbXMgIWltcG9ydGFudDtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDFtcyAhaW1wb3J0YW50O1xuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDEgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG8gIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcyAhaW1wb3J0YW50O1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDBzICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIkBsYXllciBkZXNpZ24tc3lzdGVtLnV0aWxpdGllcyB7XG4gIC5teC12ZXJ0aWNhbC1mbG93IHtcbiAgICAvKiBEZWZhdWx0IHZlcnRpY2FsIGZsb3cuICovXG5cbiAgICAmID4gOndoZXJlKDpub3QoOmZpcnN0LWNoaWxkKSkge1xuICAgICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1mbG93LWdhcCwgdmFyKC0tZ2FwKSk7XG4gICAgfVxuXG4gICAgJiA+IC5teC12ZXJ0aWNhbC1mbG93X19jb2xsYXBzZSB7XG4gICAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDA7XG4gICAgfVxuXG4gICAgLyogUmljaCB0ZXh0IHZlcnRpY2FsIGZsb3cgaXMgZW5oYW5jZWQgKi9cbiAgICAmLm14LXJpY2gtdGV4dCA+IC5teC10ZXh0LS1sZWRlIHtcbiAgICAgIC0tZmxvdy1nYXA6IHZhcigtLWdhcC14bCk7XG4gICAgfVxuICB9XG5cbiAgLm14LXZlcnRpY2FsLWZsb3ctZmxleCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogdmFyKC0tZmxvdy1nYXAsIHZhcigtLWdhcCkpO1xuXG4gICAgJiA+ICoge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICY6aXModWwsIG9sKSB7XG4gICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdW5zZXQ7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5teC1ob3Jpem9udGFsLWZsb3ctZmxleCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiB2YXIoLS1mbG93LWdhcCwgdmFyKC0tZ2FwKSk7XG5cbiAgICAmID4gKiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJjppcyh1bCwgb2wpIHtcbiAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB1bnNldDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCJAbGF5ZXIgZGVzaWduLXN5c3RlbS5kZWZhdWx0cyB7XG4gIDppcyhcbiAgICAubXgtaGVhZGxpbmUsXG4gICAgaDEsXG4gICAgLm14LWhlYWRpbmctLXh4bCxcbiAgICBoMixcbiAgICAubXgtaGVhZGluZy0teGwsXG4gICAgaDMsXG4gICAgLm14LWhlYWRpbmctLWwsXG4gICAgaDQsXG4gICAgLm14LWhlYWRpbmctLW0sXG4gICAgaDUsXG4gICAgLm14LWhlYWRpbmctLXMsXG4gICAgaDYsXG4gICAgLm14LWhlYWRpbmctLXhzXG4gICkge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1oZWFkaW5nLWZvbnQtZmFtaWx5LCB2YXIoLS1mb250LWZhbWlseSkpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1oKTtcbiAgICBmb250LXNpemU6IHZhcigtLWhlYWRpbmctZm9udC1zaXplLCB2YXIoLS1mb250LXNpemUpKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0taGVhZGluZy1mb250LXdlaWdodCwgdmFyKC0tZm9udC13ZWlnaHQtYm9sZCkpO1xuICAgIHRleHQtd3JhcDogYmFsYW5jZTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoZm9udC1zaXplOiAxY3FpKSB7XG4gICAgOmlzKFxuICAgICAgLm14LWhlYWRsaW5lLFxuICAgICAgaDEsXG4gICAgICAubXgtaGVhZGluZy0teHhsLFxuICAgICAgaDIsXG4gICAgICAubXgtaGVhZGluZy0teGwsXG4gICAgICBoMyxcbiAgICAgIC5teC1oZWFkaW5nLS1sLFxuICAgICAgaDQsXG4gICAgICAubXgtaGVhZGluZy0tbSxcbiAgICAgIGg1LFxuICAgICAgLm14LWhlYWRpbmctLXNcbiAgICApIHtcbiAgICAgIC0tZm9udC1taW46IGNhbGMoXG4gICAgICAgIHZhcigtLWhlYWRpbmctZm9udC1zaXplKSAtIHZhcigtLWhlYWRpbmctZm9udC1zaXplKSAqXG4gICAgICAgICAgdmFyKC0tZm9udC1zaXplLWRpZmYsIDAuMylcbiAgICAgICk7XG5cbiAgICAgIGZvbnQtc2l6ZTogY2xhbXAoXG4gICAgICAgIG1heCh2YXIoLS1iYXNlLWZvbnQtc2l6ZSksIHZhcigtLWZvbnQtbWluKSksXG4gICAgICAgIHZhcigtLWZvbnQtbWluKSArIDFjcWksXG4gICAgICAgIHZhcigtLWhlYWRpbmctZm9udC1zaXplKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAubXgtaGVhZGxpbmUge1xuICAgIC0taGVhZGluZy1mb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14eHhsKTtcbiAgfVxuXG4gIGgxLFxuICAubXgtaGVhZGluZy0teHhsIHtcbiAgICAtLWhlYWRpbmctZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHhsKTtcbiAgfVxuXG4gIGgyLFxuICAubXgtaGVhZGluZy0teGwge1xuICAgIC0taGVhZGluZy1mb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14bCk7XG4gIH1cblxuICBoMyxcbiAgLm14LWhlYWRpbmctLWwge1xuICAgIC0taGVhZGluZy1mb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1sKTtcbiAgfVxuXG4gIGg0LFxuICAubXgtaGVhZGluZy0tbSB7XG4gICAgLS1oZWFkaW5nLWZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLW0pO1xuICB9XG5cbiAgaDUsXG4gIC5teC1oZWFkaW5nLS1zIHtcbiAgICAtLWhlYWRpbmctZm9udC1zaXplOiB2YXIoLS1iYXNlLWZvbnQtc2l6ZSk7XG4gIH1cblxuICBoNixcbiAgLm14LWhlYWRpbmctLXhzIHtcbiAgICAtLWhlYWRpbmctZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtcyk7XG4gIH1cbn1cbiIsIkBsYXllciBkZXNpZ24tc3lzdGVtLmRlZmF1bHRzIHtcbiAgYmxvY2txdW90ZSB7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLWxpbmUtZ2FwLCB2YXIoLS1nYXApKTtcbiAgICBib3JkZXItaW5saW5lLXN0YXJ0OiB2YXIoLS1saW5lLXdpZHRoLCA2cHgpIHNvbGlkXG4gICAgICB2YXIoLS1saW5lLWNvbG91ciwgdmFyKC0tY29sb3VyLWJvcmRlcikpO1xuICB9XG59XG4iLCJAbGF5ZXIgZGVzaWduLXN5c3RlbS5kZWZhdWx0cyB7XG4gIGhyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBibG9jay1zaXplOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItYmxvY2stc3RhcnQ6IHZhcigtLWxpbmUtd2lkdGgsIDFweCkgc29saWRcbiAgICAgIHZhcigtLWxpbmUtY29sb3VyLCB2YXIoLS1jb2xvdXItYm9yZGVyKSk7XG4gICAgbWFyZ2luLWJsb2NrOiB2YXIoLS1saW5lLWdhcCwgdmFyKC0tc3BhY2luZy1tKSk7XG4gIH1cbn1cbiIsIkBsYXllciBkZXNpZ24tc3lzdGVtLmRlZmF1bHRzIHtcbiAgYVtocmVmXSB7XG4gICAgY29sb3I6IHZhcigtLWxpbmstY29sb3VyLCB2YXIoLS1jb2xvdXItbGluaykpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IG1heCgwLjA4ZW0sIDFweCk7XG4gICAgdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBhdXRvO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSB7XG4gICAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMmVtO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogbWF4KDAuMDllbSwgMnB4KTtcbiAgICB9XG4gIH1cblxuICAubXgtbGluay0tZXh0ZXJuYWwge1xuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1zcGFjaW5nLXh4eHMpO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGdhcDogdmFyKC0tc3BhY2luZy14eHhzKTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hc2staW1hZ2U6IHN2Zy1sb2FkKFwiLi4vaW1hZ2VzL2V4dGVybmFsLWxpbmsuc3ZnXCIpO1xuICAgICAgbWFzay1zaXplOiBjb250YWluO1xuICAgICAgYmxvY2stc2l6ZTogdmFyKC0tc3BhY2luZy1zKTtcbiAgICAgIGlubGluZS1zaXplOiB2YXIoLS1zcGFjaW5nLXMpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudGNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5teC1saW5rLS1tb3JlIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG5cbiAgICAmOmhvdmVyIC5teC1pY29uIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzcHgpO1xuICAgIH1cbiAgfVxuXG4gIC5teC1saW5rLS1kb3dubG9hZCB7XG4gICAgJjpob3ZlciAubXgtaWNvbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoM3B4KTtcbiAgICB9XG4gIH1cblxuICBhOndoZXJlKFtocmVmXSk6aGFzKC5teC1pY29uKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXNwYWNpbmcteHhzKTtcbiAgfVxufVxuIiwiQGxheWVyIGRlc2lnbi1zeXN0ZW0uYXRvbXMge1xuICA6aXMoXG4gICAgLm14LXRleHQtLXNlY3Rpb24taGVhZGxpbmUsXG4gICAgLm14LXRleHQtLWVtYmVsbGlzaGVkLWhlYWRsaW5lLFxuICAgIC5teC10ZXh0LS1sZWRlLFxuICAgIC5teC10ZXh0LS14cyxcbiAgICAubXgtdGV4dC0tcyxcbiAgICAubXgtdGV4dC0tbSxcbiAgICAubXgtdGV4dC0tbCxcbiAgICAubXgtdGV4dC0teGwsXG4gICAgLm14LXRleHQtLXh4bCxcbiAgICAubXgtdGV4dC0teHh4bCxcbiAgICAubXgtdGV4dC0tZmx1aWRcbiAgKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChmb250LXNpemU6IDFjcWkpIHtcbiAgICA6aXMoXG4gICAgICAubXgtdGV4dC0tc2VjdGlvbi1oZWFkbGluZSxcbiAgICAgIC5teC10ZXh0LS1sZWRlLFxuICAgICAgLm14LXRleHQtLW0sXG4gICAgICAubXgtdGV4dC0tbCxcbiAgICAgIC5teC10ZXh0LS14bCxcbiAgICAgIC5teC10ZXh0LS14eGwsXG4gICAgICAubXgtdGV4dC0teHh4bCxcbiAgICAgIC5teC10ZXh0LS1mbHVpZFxuICAgICkge1xuICAgICAgLS1mb250LW1pbjogY2FsYyhcbiAgICAgICAgdmFyKC0tZm9udC1zaXplKSAtIHZhcigtLWZvbnQtc2l6ZSkgKiB2YXIoLS1mb250LXNpemUtZGlmZiwgMC4zKVxuICAgICAgKTtcblxuICAgICAgZm9udC1zaXplOiBjbGFtcChcbiAgICAgICAgbWF4KHZhcigtLWJhc2UtZm9udC1zaXplKSwgdmFyKC0tZm9udC1taW4pKSxcbiAgICAgICAgdmFyKC0tZm9udC1taW4pICsgMWNxaSxcbiAgICAgICAgdmFyKC0tZm9udC1zaXplKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAubXgtdGV4dC0tc2VjdGlvbi1oZWFkbGluZSB7XG4gICAgLS1mb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1tKTtcblxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1oZWFkaW5nLWZvbnQtd2VpZ2h0LCB2YXIoLS1mb250LXdlaWdodC1ib2xkKSk7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWhlYWRpbmctZm9udC1mYW1pbHksIHZhcigtLWZvbnQtZmFtaWx5KSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWgpO1xuICAgIGNvbG9yOiB2YXIoLS1mb3JlZ3JvdW5kLCB2YXIoLS1jb2xvdXItZm9yZWdyb3VuZC1hbHQpKTtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDA7XG4gICAgdGV4dC13cmFwOiBiYWxhbmNlO1xuXG4gICAgJiArIDppcyhoMiwgaDMpIHtcbiAgICAgIG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tc3BhY2luZy14eHh4cykgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAubXgtdGV4dC0tZW1iZWxsaXNoZWQtaGVhZGxpbmUge1xuICAgIC0tZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtcyk7XG5cbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmb250LXdlaWdodDogdmFyKC0taGVhZGluZy1mb250LXdlaWdodCwgdmFyKC0tZm9udC13ZWlnaHQtYm9sZCkpO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1oZWFkaW5nLWZvbnQtZmFtaWx5LCB2YXIoLS1mb250LWZhbWlseSkpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1oKTtcbiAgICBtYXJnaW4tYmxvY2s6IDAgdmFyKC0tc3BhY2luZy1sKTtcbiAgICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBpbmxpbmUtc2l6ZTogdmFyKC0tc3BhY2luZy14eHhsKTtcbiAgICAgIGJsb2NrLXNpemU6IDNweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG91ci1wcmltYXJ5KTtcbiAgICAgIGluc2V0LWJsb2NrLXN0YXJ0OiB2YXIoLS1nYXApO1xuICAgIH1cbiAgfVxuXG4gIC5teC10ZXh0LS1sZWRlIHtcbiAgICAtLWZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgfVxuXG4gIC5teC10ZXh0LS14eHhsIHtcbiAgICAtLWZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXh4eGwpO1xuXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWgpO1xuICB9XG5cbiAgLm14LXRleHQtLXh4bCB7XG4gICAgLS1mb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14eGwpO1xuXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWgpO1xuICB9XG5cbiAgLm14LXRleHQtLXhsIHtcbiAgICAtLWZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXhsKTtcblxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1oKTtcbiAgfVxuXG4gIC5teC10ZXh0LS1sIHtcbiAgICAtLWZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWwpO1xuXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWgpO1xuICB9XG5cbiAgLm14LXRleHQtLW0ge1xuICAgIC0tZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbSk7XG4gIH1cblxuICAubXgtdGV4dC0tcyB7XG4gICAgLS1mb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zKTtcbiAgfVxuXG4gIC5teC10ZXh0LS14cyB7XG4gICAgLS1mb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14cyk7XG4gIH1cbn1cbiIsIkBsYXllciBkZXNpZ24tc3lzdGVtLnV0aWxpdGllcyB7XG4gIC5teC10ZXh0LS1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgfVxuXG4gIC5teC10ZXh0LS1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogZW5kO1xuICB9XG5cbiAgLm14LXRleHQtLWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBjdXN0b20tcHJvcGVydHktcGF0dGVybiAqL1xuQGRlZmluZS1taXhpbiBzcGFjaW5nICRzaXplIHtcbiAgLm14LXNwYWNpbmctLSQoc2l6ZSkge1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctJChzaXplKSk7XG4gIH1cblxuICAubXgtc3BhY2luZy0tdG9wLSQoc2l6ZSkge1xuICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLXNwYWNpbmctJChzaXplKSk7XG4gIH1cblxuICAubXgtc3BhY2luZy0tYm90dG9tLSQoc2l6ZSkge1xuICAgIHBhZGRpbmctYmxvY2stZW5kOiB2YXIoLS1zcGFjaW5nLSQoc2l6ZSkpO1xuICB9XG5cbiAgLm14LXNwYWNpbmctLWxlZnQtJChzaXplKSB7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLXNwYWNpbmctJChzaXplKSk7XG4gIH1cblxuICAubXgtc3BhY2luZy0tcmlnaHQtJChzaXplKSB7XG4gICAgcGFkZGluZy1pbmxpbmUtZW5kOiB2YXIoLS1zcGFjaW5nLSQoc2l6ZSkpO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi9fbWl4aW5zLmNzc1wiO1xuXG5AbGF5ZXIgZGVzaWduLXN5c3RlbS51dGlsaXRpZXMge1xuICAubXgtc3BhY2luZy0tcmVzZXQge1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5teC1zcGFjaW5nLS10b3AtcmVzZXQge1xuICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IDAgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5teC1zcGFjaW5nLS1ib3R0b20tcmVzZXQge1xuICAgIHBhZGRpbmctYmxvY2stZW5kOiAwICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubXgtc3BhY2luZy0tbGVmdC1yZXNldCB7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDAgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5teC1zcGFjaW5nLS1yaWdodC1yZXNldCB7XG4gICAgcGFkZGluZy1pbmxpbmUtZW5kOiAwICFpbXBvcnRhbnQ7XG4gIH1cblxuICBAbWl4aW4gc3BhY2luZyB4eHM7XG4gIEBtaXhpbiBzcGFjaW5nIHhzO1xuICBAbWl4aW4gc3BhY2luZyBzO1xuICBAbWl4aW4gc3BhY2luZyBtO1xuICBAbWl4aW4gc3BhY2luZyBsO1xuICBAbWl4aW4gc3BhY2luZyB4bDtcbiAgQG1peGluIHNwYWNpbmcgeHhsO1xuICBAbWl4aW4gc3BhY2luZyB4eHhsO1xuICBAbWl4aW4gc3BhY2luZyB4eHh4bDtcbiAgQG1peGluIHNwYWNpbmcgdWw7XG4gIEBtaXhpbiBzcGFjaW5nIHV1bDtcbiAgQG1peGluIHNwYWNpbmcgdXV1bDtcbn1cbiIsIkBsYXllciBkZXNpZ24tc3lzdGVtLmRlZmF1bHRzIHtcbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgaW5saW5lLXNpemU6IGZpdC1jb250ZW50O1xuICB9XG5cbiAgZmlnY2FwdGlvbiB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1jYXB0aW9uLWZvbnQtc2l6ZSwgdmFyKC0tZm9udC1zaXplLXhzKSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWNhcHRpb24tbGluZS1oZWlnaHQsIHZhcigtLWxpbmUtaGVpZ2h0LWgpKTtcbiAgICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcbiAgICBkaXNwbGF5OiB0YWJsZS1jYXB0aW9uO1xuICB9XG5cbiAgaW1nIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIG1heC1pbmxpbmUtc2l6ZTogMTAwJTtcbiAgICBibG9jay1zaXplOiBhdXRvO1xuICB9XG5cbiAgc3ZnOm5vdChbZmlsbF0pIHtcbiAgICBmaWxsOiBjdXJyZW50Y29sb3I7XG4gIH1cbn1cbiIsIkBsYXllciBkZXNpZ24tc3lzdGVtLmF0b21zIHtcbiAgOmlzKC5teC1tZWRpYS0tbGVmdCwgLm14LW1lZGlhLS1yaWdodCwgLm14LW1lZGlhLS1jZW50ZXIpIHtcbiAgICBAbWVkaWEgKC0tc21hbGwtdXApIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgbWF4LWlubGluZS1zaXplOiA1MCU7XG4gICAgICBtYXJnaW4tYmxvY2stZW5kOiB2YXIoLS1zcGFjaW5nLXMpO1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAwO1xuXG4gICAgICAgICYgKyAqIHtcbiAgICAgICAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmIGZpZ2NhcHRpb24ge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jYXB0aW9uO1xuICAgICAgICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubXgtbWVkaWEtLWNlbnRlciB7XG4gICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgfVxuXG4gIDppcyhcbiAgICAubXgtbWVkaWEtLWxlZnQsXG4gICAgW2Rpcj1cInJ0bFwiXSAubXgtbWVkaWEtLXJpZ2h0LFxuICAgIC50cmFuc2xhdGVkLXJ0bCAubXgtbWVkaWEtLXJpZ2h0XG4gICkge1xuICAgIEBtZWRpYSAoLS1zbWFsbC11cCkge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4taW5saW5lOiAwIHZhcigtLXNwYWNpbmctbSk7XG4gICAgfVxuICB9XG5cbiAgOmlzKFxuICAgIC5teC1tZWRpYS0tcmlnaHQsXG4gICAgW2Rpcj1cInJ0bFwiXSAubXgtbWVkaWEtLWxlZnQsXG4gICAgLnRyYW5zbGF0ZWQtcnRsIC5teC1tZWRpYS0tbGVmdFxuICApIHtcbiAgICBAbWVkaWEgKC0tc21hbGwtdXApIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIG1hcmdpbi1pbmxpbmU6IHZhcigtLXNwYWNpbmctbSkgMDtcbiAgICB9XG4gIH1cbn1cbiIsIkBsYXllciBkZXNpZ24tc3lzdGVtLmRlZmF1bHRzIHtcbiAgLm14LXZpZGVvIHtcbiAgICAmLFxuICAgICYgOmlzKGVtYmVkLCBvYmplY3QsIGlmcmFtZSkge1xuICAgICAgYXNwZWN0LXJhdGlvOiAxNiAvIDk7XG4gICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgaW5saW5lLXNpemU6IDEwMCU7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG5cbiAgLm14LW1lZGlhLS12aWRlbyB7XG4gICAgaW5saW5lLXNpemU6IDEwMCU7XG4gIH1cbn1cbiIsIkBsYXllciBkZXNpZ24tc3lzdGVtLmRlZmF1bHRzIHtcbiAgdGFibGUge1xuICAgIGlubGluZS1zaXplOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgJiB0aCB7XG4gICAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICB9XG5cbiAgICAmIDppcyh0ZCwgdGgpIHtcbiAgICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmcteHhzKTtcbiAgICAgIGJvcmRlci1ibG9jay1lbmQ6IHZhcigtLWxpbmUtd2lkdGgsIDFweCkgc29saWRcbiAgICAgICAgdmFyKC0tbGluZS1jb2xvdXIsIHZhcigtLWNvbG91ci1ib3JkZXIpKTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgfVxuXG4gICAgJiB0aGVhZCA6aXModGQsIHRoKSB7XG4gICAgICBib3JkZXItY29sb3I6IGN1cnJlbnRjb2xvcjtcbiAgICB9XG4gIH1cblxuICAubXgtdGFibGUtLWZsdXNoIHtcbiAgICAmIDppcyh0ZCwgdGgpIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5teC10YWJsZS0tc21hbGwge1xuICAgICYgOmlzKHRkLCB0aCkge1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtcyk7XG4gICAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtaCk7XG4gICAgfVxuICB9XG5cbiAgLm14LXRhYmxlLS1zdHJpcGVkIHtcbiAgICAmIHRib2R5IHRyIHtcbiAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgJiA6aXModGQsIHRoKSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3VyLWJhY2tncm91bmQtYWx0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5teC10YWJsZS0tcmVzcG9uc2l2ZSB7XG4gICAgbWF4LWlubGluZS1zaXplOiAxMDAlO1xuXG4gICAgQG1lZGlhICgtLW1lZGl1bS1kb3duKSB7XG4gICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93KSBpbnNldDtcblxuICAgICAgJiB0YWJsZSB7XG4gICAgICAgIGlubGluZS1zaXplOiAxMDAlO1xuICAgICAgICBtYXJnaW4tYmxvY2s6IDA7XG4gICAgICAgIG1hcmdpbi1pbmxpbmU6IHZhcigtLXNwYWNpbmctcyk7XG5cbiAgICAgICAgJiB0ZCB7XG4gICAgICAgICAgbWluLWlubGluZS1zaXplOiAyMGNoO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAbWVkaWEgcHJpbnQge1xuICAuY29udGV4dHVhbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5teC1yaWNoLXRleHQge1xuICAgIG1heC1pbmxpbmUtc2l6ZTogMTAwJTtcbiAgfVxufVxuIl19 */
1013
+ /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJhc2UuY3NzIiwiQmFja2dyb3VuZC9fYmFja2dyb3VuZC5jc3MiLCJfYW5pbWF0ZWQuY3NzIiwiX2Jhc2UuY3NzIiwiX2dlbmVyaWMuY3NzIiwiX2Zsb3cuY3NzIiwiSGVhZGluZy9faGVhZGluZ3MuY3NzIiwiQmxvY2txdW90ZS9fYmxvY2txdW90ZS5jc3MiLCJfaHIuY3NzIiwiTGluay9fbGlua3MuY3NzIiwiVGV4dC9fdGV4dC1zaXplcy5jc3MiLCJUZXh0L190ZXh0LWFsaWduLmNzcyIsIlNwYWNpbmcvX21peGlucy5jc3MiLCJTcGFjaW5nL19zcGFjaW5nLmNzcyIsIkltYWdlL19pbWFnZS5jc3MiLCJNZWRpYS9fbWVkaWEuY3NzIiwiVmlkZW8vX3ZpZGVvLmNzcyIsIlRhYmxlL190YWJsZS5jc3MiLCJfcHJpbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhJQUE4STs7QUNBOUk7O0VBRUU7O0FBQ0Y7RUFDRTtJQUNFLDZEQUE2RDtJQUM3RCxrREFBa0Q7SUFDbEQsZ0RBQWdEO0VBQ2xEOztFQUVBO0lBQ0UsbURBQW1EO0lBQ25ELDZCQUE2QjtJQUM3QixzQ0FBc0M7SUFDdEMsc0NBQXNDO0lBQ3RDLGlDQUFpQztJQUNqQyxtQ0FBbUM7RUFDckM7O0VBRUE7SUFDRSxrQ0FBa0M7SUFDbEMsMENBQTBDO0VBQzVDOztFQUVBO0lBQ0UscUNBQXFDO0lBQ3JDLG1DQUFtQztJQUNuQywwQ0FBMEM7SUFDMUMsMENBQTBDO0VBQzVDOztFQUVBO0lBQ0Usb0NBQW9DO0lBQ3BDLGtDQUFrQztJQUNsQyx5Q0FBeUM7SUFDekMseUNBQXlDO0VBQzNDO0lBR0U7TUFDRSxvQkFBaUI7U0FBakIsaUJBQWlCO01BQ2pCLGtCQUFrQjtNQUNsQixpQkFBaUI7TUFDakIsb0JBQW9CO01BQ3BCOztvQkFFcUM7TUFGckM7OzJDQUVxQztJQUN2Qzs7RUFHRjtJQUNFLHFDQUFxQztFQU12Qzs7SUFKRTtNQUNFLHlCQUF5QjtNQUN6QixtQkFBbUI7SUFDckI7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QUFpQztFQUVyQztJQURFO0lBUUE7O0VBTEY7Ozs7O01BTUksWUFBWTtNQUNaLGlDQUFpQztFQUVyQztJQURFO0FBRUo7O0FaTkE7O0VBRUU7O0FhM0NGO0lBRUk7TUFFRSxvQkFBb0I7TUFDcEIsZ0JBQWdCO01BQ2hCLGlCQUFpQjtNQUNqQixTQUFTO0lBQ1g7O0VBR0Y7SUFDRSxpQkFBaUI7RUFDbkI7QUFDRjs7QWJpQ0E7O0VBRUU7O0FBRUY7O0VBRUU7O0FjckRGO0VBQ0U7SUFDRSxpQkFBaUI7SUFDakIseUJBQXlCO0lBQ3pCLFNBQVM7RUFpQlg7O0lBZkU7TUFDRSxvQ0FBb0M7TUFDcEMsaUJBQWlCO0lBQ25COztJQUVBO01BQ0UsMkJBQTJCO01BQzNCO2dEQUMwQztNQUQxQztnREFDMEM7TUFDMUMsbUJBQW1CO0lBQ3JCOztJQUVBO01BQ0UsMEJBQTBCO0lBQzVCO01BS0U7UUFDRSx1QkFBdUI7TUFDekI7O01BRUE7UUFDRSxxQkFBcUI7TUFDdkI7SUFLRjtNQUNFLDZCQUE2QjtNQUM3QixpQ0FBaUM7SUFDbkM7UUFNSTtVQUNFLDhDQUE4QztRQUNoRDs7RUFLTjtJQUNFLHFCQUFxQjtFQWlCdkI7O0lBZkU7O0VBSEY7TUFJSSxrQkFBa0I7TUFDbEIsaUNBQWlDO01BQ2pDLG1DQUFtQztFQVl2Qzs7TUFWSTtRQUNFLGlCQUFpQjtRQUNqQixlQUFlO1FBQ2YsK0JBQStCO01BS2pDOztRQUhFO1VBQ0UscUJBQXFCO1FBQ3ZCO0lBRUo7QUFFSjs7QWRkQTs7RUFFRTs7QWUzREY7RUFDRTtJQUNFLGFBQWE7RUFDZjs7RUFFQTtJQUNFLHFCQUFxQjtFQUN2QjtBQUNGIiwiZmlsZSI6ImJhc2UuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGxheWVyIHBvcG92ZXItcG9seWZpbGwsIGRlc2lnbi1zeXN0ZW0uZGVmYXVsdHMsIGRlc2lnbi1zeXN0ZW0uYXRvbXMsIGRlc2lnbi1zeXN0ZW0ubGF5b3V0cywgZGVzaWduLXN5c3RlbS51dGlsaXRpZXMsIGRlc2lnbi1zeXN0ZW0uY29tcG9uZW50cztcblxuQGltcG9ydCBcIi4vQmFja2dyb3VuZC9fYmFja2dyb3VuZC5jc3NcIjtcbkBpbXBvcnQgXCJfYW5pbWF0ZWQuY3NzXCI7XG5AaW1wb3J0IFwiX2Jhc2UuY3NzXCI7XG4iLCIvKipcbiAqIEJhY2tncm91bmRzXG4gKi9cbkBsYXllciBkZXNpZ24tc3lzdGVtLmF0b21zIHtcbiAgOndoZXJlKFtjbGFzcyo9XCJteC1iYWNrZ3JvdW5kLS1cIl0pIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLCB2YXIoLS1jb2xvdXItYmFja2dyb3VuZCkpO1xuICAgIGNvbG9yOiB2YXIoLS1mb3JlZ3JvdW5kLCB2YXIoLS1jb2xvdXItZm9yZWdyb3VuZCkpO1xuICAgIGNvbG9yLXNjaGVtZTogdmFyKC0tc2NoZW1lLCB2YXIoLS1jb2xvci1zY2hlbWUpKTtcbiAgfVxuXG4gIC5teC1iYWNrZ3JvdW5kLS1yZXNldCB7XG4gICAgLyogdXNlIHRvIHJldmVydCAuYmFja2dyb3VuZC0tcmV2ZXJzZSBvbiBjaGlsZHJlbiAqL1xuICAgIC0tc2NoZW1lOiB2YXIoLS1jb2xvci1zY2hlbWUpO1xuICAgIC0tYmFja2dyb3VuZDogdmFyKC0tY29sb3VyLWJhY2tncm91bmQpO1xuICAgIC0tZm9yZWdyb3VuZDogdmFyKC0tY29sb3VyLWZvcmVncm91bmQpO1xuICAgIC0tbGluay1jb2xvdXI6IHZhcigtLWNvbG91ci1saW5rKTtcbiAgICAtLWxpbmUtY29sb3VyOiB2YXIoLS1jb2xvdXItYm9yZGVyKTtcbiAgfVxuXG4gIC5teC1iYWNrZ3JvdW5kLS1hbHQge1xuICAgIC0tc2NoZW1lOiB2YXIoLS1hbHQtc2NoZW1lLCBsaWdodCk7XG4gICAgLS1iYWNrZ3JvdW5kOiB2YXIoLS1jb2xvdXItYmFja2dyb3VuZC1hbHQpO1xuICB9XG5cbiAgLm14LWJhY2tncm91bmQtLXByaW1hcnkge1xuICAgIC0tc2NoZW1lOiB2YXIoLS1wcmltYXJ5LXNjaGVtZSwgZGFyayk7XG4gICAgLS1iYWNrZ3JvdW5kOiB2YXIoLS1jb2xvdXItcHJpbWFyeSk7XG4gICAgLS1saW5rLWNvbG91cjogdmFyKC0tY29sb3VyLXByaW1hcnktbGlnaHQpO1xuICAgIC0tbGluZS1jb2xvdXI6IHZhcigtLWNvbG91ci1wcmltYXJ5LWxpZ2h0KTtcbiAgfVxuXG4gIC5teC1iYWNrZ3JvdW5kLS1hY2NlbnQge1xuICAgIC0tc2NoZW1lOiB2YXIoLS1hY2NlbnQtc2NoZW1lLCBkYXJrKTtcbiAgICAtLWJhY2tncm91bmQ6IHZhcigtLWNvbG91ci1hY2NlbnQpO1xuICAgIC0tbGluay1jb2xvdXI6IHZhcigtLWNvbG91ci1hY2NlbnQtbGlnaHQpO1xuICAgIC0tbGluZS1jb2xvdXI6IHZhcigtLWNvbG91ci1hY2NlbnQtbGlnaHQpO1xuICB9XG5cbiAgLm14LWJhY2tncm91bmQtLWltYWdlIHtcbiAgICAmIGltZyB7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGlubGluZS1zaXplOiAxMDAlO1xuICAgICAgbWluLWJsb2NrLXNpemU6IDEwMCU7XG4gICAgICBmaWx0ZXI6IGJyaWdodG5lc3ModmFyKC0tYmctaW1nLWJyaWdodG5lc3MsIDEpKVxuICAgICAgICBzYXR1cmF0ZSh2YXIoLS1iZy1pbWctc2F0dXJhdGUsIDEuMjUpKVxuICAgICAgICBvcGFjaXR5KHZhcigtLWJnLWltZy1vcGFjaXR5LCAwLjUpKTtcbiAgICB9XG4gIH1cblxuICAubXgtYmFja2dyb3VuZC0tcmV2ZXJzZSB7XG4gICAgLS1zY2hlbWU6IHZhcigtLXJldmVyc2Utc2NoZW1lLCBkYXJrKTtcblxuICAgICYgLm14LWJhY2tncm91bmQtLWltYWdlIHtcbiAgICAgIC0tYmctaW1nLWJyaWdodG5lc3M6IDAuNDU7XG4gICAgICAtLWJnLWltZy1vcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIC5teC1iYWNrZ3JvdW5kLS1ib3gge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmUtY29sb3VyLCB2YXIoLS1jb2xvdXItYm9yZGVyKSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLWd1dHRlciwgMXJlbSk7XG4gIH1cbn1cbiIsIkBsYXllciBkZXNpZ24tc3lzdGVtLnV0aWxpdGllcyB7XG4gIC5teC1hbmltYXRlZC0tZmFkZS1pbiB7XG4gICAgYW5pbWF0aW9uOiBmYWRlLWluIDAuNXMgdmFyKC0tZWFzZSk7XG4gIH1cblxuICAubXgtYW5pbWF0ZWQtLWZhZGUtb3V0IHtcbiAgICBhbmltYXRpb246IGZhZGUtb3V0IDAuNXMgdmFyKC0tZWFzZSk7XG4gIH1cblxuICAubXgtYW5pbWF0ZWQtLXNwaW46OmJlZm9yZSB7XG4gICAgYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTtcbiAgfVxuXG4gIC5teC1hbmltYXRlZC0tc2NhbGUtdXAge1xuICAgIGFuaW1hdGlvbjogc2NhbGUtdXAgMC41cyB2YXIoLS1lYXNlKTtcbiAgfVxuXG4gIC5teC1hbmltYXRlZC0tc2NhbGUtZG93biB7XG4gICAgYW5pbWF0aW9uOiBzY2FsZS1kb3duIDAuNXMgdmFyKC0tZWFzZSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlLWluIHtcbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlLW91dCB7XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc3BpbiB7XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxdHVybik7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzY2FsZS11cCB7XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMjUpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2NhbGUtZG93biB7XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNzUpO1xuICB9XG59XG4iLCIvKipcbiAqIEF0b21cbiAqL1xuXG5AaW1wb3J0IFwiX2dlbmVyaWMuY3NzXCI7XG5AaW1wb3J0IFwiX2Zsb3cuY3NzXCI7XG5cbi8qKlxuICogVHlwb2dyYXBoeVxuICovXG5cbkBpbXBvcnQgXCIuL0hlYWRpbmcvX2hlYWRpbmdzLmNzc1wiO1xuQGltcG9ydCBcIi4vQmxvY2txdW90ZS9fYmxvY2txdW90ZS5jc3NcIjtcbkBpbXBvcnQgXCJfaHIuY3NzXCI7XG5cbi8qKlxuICogTGlua3NcbiAqL1xuXG5AaW1wb3J0IFwiLi9MaW5rL19saW5rcy5jc3NcIjtcblxuLyoqXG4gKiBUZXh0IFNpemVzXG4gKi9cblxuQGltcG9ydCBcIi4vVGV4dC9fdGV4dC1zaXplcy5jc3NcIjtcbkBpbXBvcnQgXCIuL1RleHQvX3RleHQtYWxpZ24uY3NzXCI7XG5cbi8qKlxuICogU3BhY2luZ1xuICovXG5cbkBpbXBvcnQgXCIuL1NwYWNpbmcvX3NwYWNpbmcuY3NzXCI7XG5cbi8qKlxuICogSW1hZ2VzXG4gKi9cblxuQGltcG9ydCBcIi4vSW1hZ2UvX2ltYWdlLmNzc1wiO1xuQGltcG9ydCBcIi4vTWVkaWEvX21lZGlhLmNzc1wiO1xuXG4vKipcbiAqIFZpZGVvXG4gKi9cblxuQGltcG9ydCBcIi4vVmlkZW8vX3ZpZGVvLmNzc1wiO1xuXG4vKipcbiAqIFRhYmxlXG4gKi9cblxuLyoqXG4gKiBUYWJsZSBSZXNwb25zaXZlXG4gKi9cblxuQGltcG9ydCBcIi4vVGFibGUvX3RhYmxlLmNzc1wiO1xuXG4vKipcbiAqIFByaW50IFN0eWxlc2hlZXRcbiAqL1xuXG5AaW1wb3J0IFwiX3ByaW50LmNzc1wiO1xuIiwiQGxheWVyIGRlc2lnbi1zeXN0ZW0uZGVmYXVsdHMge1xuICBAbWVkaWEgKC0tdXNlLW1vdGlvbikge1xuICAgIEB2aWV3LXRyYW5zaXRpb24ge1xuICAgICAgbmF2aWdhdGlvbjogYXV0bztcbiAgICB9XG4gIH1cblxuICA6aXMoKiwgOjpiZWZvcmUsIDo6YWZ0ZXIpIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTpcbiAgICAgIG9wYWNpdHksIGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXItY29sb3IsIHRyYW5zZm9ybSwgcm90YXRlLFxuICAgICAgZGlzcGxheSwgb3ZlcmxheTtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1lYXNlKTtcbiAgICB0cmFuc2l0aW9uLWJlaGF2aW9yOiBhbGxvdy1kaXNjcmV0ZTtcblxuICAgIEBzdGFydGluZy1zdHlsZSB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxuXG4gIDpmb2N1cyB7XG4gICAgc2Nyb2xsLXBhZGRpbmctYmxvY2stZW5kOiA0dmg7XG4gIH1cblxuICA6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogdmFyKC0tb3V0bGluZS1zaXplLCAycHgpIHZhcigtLW91dGxpbmUtc3R5bGUsIHNvbGlkKVxuICAgICAgdmFyKC0tb3V0bGluZS1jb2xvciwgY3VycmVudGNvbG9yKTtcbiAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tb3V0bGluZS1vZmZzZXQsIHZhcigtLW91dGxpbmUtc2l6ZSwgMnB4KSk7XG4gIH1cblxuICBodG1sIHtcbiAgICBibG9jay1zaXplOiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMTAwJTsgLyogMTZweCBpbiBtb3N0IGJyb3dzZXJzICovXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5KTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQpO1xuICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICB9XG5cbiAgLnRyYW5zbGF0ZWQtcnRsIHtcbiAgICBkaXJlY3Rpb246IHJ0bDtcbiAgfVxuXG4gIGJvZHkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3VyLWZvcmVncm91bmQpO1xuICAgIGFjY2VudC1jb2xvcjogdmFyKC0tY29sb3VyLXByaW1hcnkpO1xuICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZXNwZWVkO1xuICAgIGJsb2NrLXNpemU6IDEwMCU7XG4gIH1cblxuICA6dGFyZ2V0LFxuICBbaWRdLFxuICAuaGFzLXNjcm9sbC1tYXJnaW4ge1xuICAgIHNjcm9sbC1tYXJnaW4tYmxvY2stc3RhcnQ6IGNhbGMoXG4gICAgICB2YXIoLS1zdGlja3ktb2Zmc2V0LCAwcmVtKSArIHZhcigtLXNjcm9sbC1tYXJnaW4sIHZhcigtLXNwYWNpbmctbSkpXG4gICAgKTtcbiAgfVxuXG4gIDppcyhiLCBzdHJvbmcpIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIH1cblxuICA6aXMob2wsIHVsKSB7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLXNwYWNpbmctbSk7XG5cbiAgICAmW3JvbGU9XCJsaXN0XCJdIHtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMDtcbiAgICB9XG4gIH1cblxuICBkbCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbigxMDAlLCB2YXIoLS1ncmlkLW1pbiwgMjBjaCkpIDFmcjtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcbiAgICBnYXA6IHZhcigtLXNwYWNpbmcteHMpO1xuXG4gICAgJjpoYXMoPiBkaXYpIHtcbiAgICAgIGNvbnRhaW5lci10eXBlOiBpbmxpbmUtc2l6ZTtcbiAgICB9XG5cbiAgICAmIGRpdiB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBzdWJncmlkO1xuICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMjtcblxuICAgICAgQGNvbnRhaW5lciAobWF4LXdpZHRoOiA2MGNoKSB7XG4gICAgICAgIGdhcDogdmFyKC0tc3BhY2luZy14eHhzKTtcblxuICAgICAgICAmID4gOmlzKGR0LCBkZCkge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmIGR0IHtcbiAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgICB9XG4gIH1cblxuICBwIHtcbiAgICB0ZXh0LXdyYXA6IHByZXR0eTtcbiAgfVxufVxuXG5AbWVkaWEgKC0tcmVkdWNlLW1vdGlvbikge1xuICAqLFxuICA6OmJlZm9yZSxcbiAgOjphZnRlciB7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAtMW1zICFpbXBvcnRhbnQ7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxbXMgIWltcG9ydGFudDtcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMHMgIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwcyAhaW1wb3J0YW50O1xuICB9XG59XG4iLCJAbGF5ZXIgZGVzaWduLXN5c3RlbS51dGlsaXRpZXMge1xuICAubXgtdmVydGljYWwtZmxvdyB7XG4gICAgLyogRGVmYXVsdCB2ZXJ0aWNhbCBmbG93LiAqL1xuXG4gICAgJiA+IDp3aGVyZSg6bm90KDpmaXJzdC1jaGlsZCkpIHtcbiAgICAgIG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tZmxvdy1nYXAsIHZhcigtLWdhcCkpO1xuICAgIH1cblxuICAgICYgPiAubXgtdmVydGljYWwtZmxvd19fY29sbGFwc2Uge1xuICAgICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAwO1xuICAgIH1cblxuICAgIC8qIFJpY2ggdGV4dCB2ZXJ0aWNhbCBmbG93IGlzIGVuaGFuY2VkICovXG4gICAgJi5teC1yaWNoLXRleHQgPiAubXgtdGV4dC0tbGVkZSB7XG4gICAgICAtLWZsb3ctZ2FwOiB2YXIoLS1nYXAteGwpO1xuICAgIH1cbiAgfVxuXG4gIC5teC12ZXJ0aWNhbC1mbG93LWZsZXgge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IHZhcigtLWZsb3ctZ2FwLCB2YXIoLS1nYXApKTtcblxuICAgICYgPiAqIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmOmlzKHVsLCBvbCkge1xuICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHVuc2V0O1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAubXgtaG9yaXpvbnRhbC1mbG93LWZsZXgge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogdmFyKC0tZmxvdy1nYXAsIHZhcigtLWdhcCkpO1xuXG4gICAgJiA+ICoge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICY6aXModWwsIG9sKSB7XG4gICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdW5zZXQ7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiQGxheWVyIGRlc2lnbi1zeXN0ZW0uZGVmYXVsdHMge1xuICA6aXMoXG4gICAgLm14LWhlYWRsaW5lLFxuICAgIGgxLFxuICAgIC5teC1oZWFkaW5nLS14eGwsXG4gICAgaDIsXG4gICAgLm14LWhlYWRpbmctLXhsLFxuICAgIGgzLFxuICAgIC5teC1oZWFkaW5nLS1sLFxuICAgIGg0LFxuICAgIC5teC1oZWFkaW5nLS1tLFxuICAgIGg1LFxuICAgIC5teC1oZWFkaW5nLS1zLFxuICAgIGg2LFxuICAgIC5teC1oZWFkaW5nLS14c1xuICApIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0taGVhZGluZy1mb250LWZhbWlseSwgdmFyKC0tZm9udC1mYW1pbHkpKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtaCk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1oZWFkaW5nLWZvbnQtc2l6ZSwgdmFyKC0tZm9udC1zaXplKSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWhlYWRpbmctZm9udC13ZWlnaHQsIHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpKTtcbiAgICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG4gIH1cblxuICBAc3VwcG9ydHMgKGZvbnQtc2l6ZTogMWNxaSkge1xuICAgIDppcyhcbiAgICAgIC5teC1oZWFkbGluZSxcbiAgICAgIGgxLFxuICAgICAgLm14LWhlYWRpbmctLXh4bCxcbiAgICAgIGgyLFxuICAgICAgLm14LWhlYWRpbmctLXhsLFxuICAgICAgaDMsXG4gICAgICAubXgtaGVhZGluZy0tbCxcbiAgICAgIGg0LFxuICAgICAgLm14LWhlYWRpbmctLW0sXG4gICAgICBoNSxcbiAgICAgIC5teC1oZWFkaW5nLS1zXG4gICAgKSB7XG4gICAgICAtLWZvbnQtbWluOiBjYWxjKFxuICAgICAgICB2YXIoLS1oZWFkaW5nLWZvbnQtc2l6ZSkgLSB2YXIoLS1oZWFkaW5nLWZvbnQtc2l6ZSkgKlxuICAgICAgICAgIHZhcigtLWZvbnQtc2l6ZS1kaWZmLCAwLjMpXG4gICAgICApO1xuXG4gICAgICBmb250LXNpemU6IGNsYW1wKFxuICAgICAgICBtYXgodmFyKC0tYmFzZS1mb250LXNpemUpLCB2YXIoLS1mb250LW1pbikpLFxuICAgICAgICB2YXIoLS1mb250LW1pbikgKyAxY3FpLFxuICAgICAgICB2YXIoLS1oZWFkaW5nLWZvbnQtc2l6ZSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLm14LWhlYWRsaW5lIHtcbiAgICAtLWhlYWRpbmctZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHh4bCk7XG4gIH1cblxuICBoMSxcbiAgLm14LWhlYWRpbmctLXh4bCB7XG4gICAgLS1oZWFkaW5nLWZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXh4bCk7XG4gIH1cblxuICBoMixcbiAgLm14LWhlYWRpbmctLXhsIHtcbiAgICAtLWhlYWRpbmctZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteGwpO1xuICB9XG5cbiAgaDMsXG4gIC5teC1oZWFkaW5nLS1sIHtcbiAgICAtLWhlYWRpbmctZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbCk7XG4gIH1cblxuICBoNCxcbiAgLm14LWhlYWRpbmctLW0ge1xuICAgIC0taGVhZGluZy1mb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1tKTtcbiAgfVxuXG4gIGg1LFxuICAubXgtaGVhZGluZy0tcyB7XG4gICAgLS1oZWFkaW5nLWZvbnQtc2l6ZTogdmFyKC0tYmFzZS1mb250LXNpemUpO1xuICB9XG5cbiAgaDYsXG4gIC5teC1oZWFkaW5nLS14cyB7XG4gICAgLS1oZWFkaW5nLWZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXMpO1xuICB9XG59XG4iLCJAbGF5ZXIgZGVzaWduLXN5c3RlbS5kZWZhdWx0cyB7XG4gIGJsb2NrcXVvdGUge1xuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1saW5lLWdhcCwgdmFyKC0tZ2FwKSk7XG4gICAgYm9yZGVyLWlubGluZS1zdGFydDogdmFyKC0tbGluZS13aWR0aCwgNnB4KSBzb2xpZFxuICAgICAgdmFyKC0tbGluZS1jb2xvdXIsIHZhcigtLWNvbG91ci1ib3JkZXIpKTtcbiAgfVxufVxuIiwiQGxheWVyIGRlc2lnbi1zeXN0ZW0uZGVmYXVsdHMge1xuICBociB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmxvY2stc2l6ZTogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLWJsb2NrLXN0YXJ0OiB2YXIoLS1saW5lLXdpZHRoLCAxcHgpIHNvbGlkXG4gICAgICB2YXIoLS1saW5lLWNvbG91ciwgdmFyKC0tY29sb3VyLWJvcmRlcikpO1xuICAgIG1hcmdpbi1ibG9jazogdmFyKC0tbGluZS1nYXAsIHZhcigtLXNwYWNpbmctbSkpO1xuICB9XG59XG4iLCJAbGF5ZXIgZGVzaWduLXN5c3RlbS5kZWZhdWx0cyB7XG4gIGFbaHJlZl0ge1xuICAgIGNvbG9yOiB2YXIoLS1saW5rLWNvbG91ciwgdmFyKC0tY29sb3VyLWxpbmspKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBtYXgoMC4wOGVtLCAxcHgpO1xuICAgIHRleHQtZGVjb3JhdGlvbi1za2lwLWluazogYXV0bztcblxuICAgICY6aG92ZXIsXG4gICAgJjphY3RpdmUge1xuICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjJlbTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IG1heCgwLjA5ZW0sIDJweCk7XG4gICAgfVxuICB9XG5cbiAgLm14LWxpbmstLWV4dGVybmFsIHtcbiAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tc3BhY2luZy14eHhzKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBnYXA6IHZhcigtLXNwYWNpbmcteHh4cyk7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXNrLWltYWdlOiBzdmctbG9hZChcIi4uL2ltYWdlcy9leHRlcm5hbC1saW5rLnN2Z1wiKTtcbiAgICAgIG1hc2stc2l6ZTogY29udGFpbjtcbiAgICAgIGJsb2NrLXNpemU6IHZhcigtLXNwYWNpbmctcyk7XG4gICAgICBpbmxpbmUtc2l6ZTogdmFyKC0tc3BhY2luZy1zKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRjb2xvcjtcbiAgICB9XG4gIH1cblxuICAubXgtbGluay0tbW9yZSB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXG4gICAgJjpob3ZlciAubXgtaWNvbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoM3B4KTtcbiAgICB9XG4gIH1cblxuICAubXgtbGluay0tZG93bmxvYWQge1xuICAgICY6aG92ZXIgLm14LWljb24ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDNweCk7XG4gICAgfVxuICB9XG5cbiAgYTp3aGVyZShbaHJlZl0pOmhhcygubXgtaWNvbikge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1zcGFjaW5nLXh4cyk7XG4gIH1cbn1cbiIsIkBsYXllciBkZXNpZ24tc3lzdGVtLmF0b21zIHtcbiAgOmlzKFxuICAgIC5teC10ZXh0LS1zZWN0aW9uLWhlYWRsaW5lLFxuICAgIC5teC10ZXh0LS1lbWJlbGxpc2hlZC1oZWFkbGluZSxcbiAgICAubXgtdGV4dC0tbGVkZSxcbiAgICAubXgtdGV4dC0teHMsXG4gICAgLm14LXRleHQtLXMsXG4gICAgLm14LXRleHQtLW0sXG4gICAgLm14LXRleHQtLWwsXG4gICAgLm14LXRleHQtLXhsLFxuICAgIC5teC10ZXh0LS14eGwsXG4gICAgLm14LXRleHQtLXh4eGwsXG4gICAgLm14LXRleHQtLWZsdWlkXG4gICkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplKTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoZm9udC1zaXplOiAxY3FpKSB7XG4gICAgOmlzKFxuICAgICAgLm14LXRleHQtLXNlY3Rpb24taGVhZGxpbmUsXG4gICAgICAubXgtdGV4dC0tbGVkZSxcbiAgICAgIC5teC10ZXh0LS1tLFxuICAgICAgLm14LXRleHQtLWwsXG4gICAgICAubXgtdGV4dC0teGwsXG4gICAgICAubXgtdGV4dC0teHhsLFxuICAgICAgLm14LXRleHQtLXh4eGwsXG4gICAgICAubXgtdGV4dC0tZmx1aWRcbiAgICApIHtcbiAgICAgIC0tZm9udC1taW46IGNhbGMoXG4gICAgICAgIHZhcigtLWZvbnQtc2l6ZSkgLSB2YXIoLS1mb250LXNpemUpICogdmFyKC0tZm9udC1zaXplLWRpZmYsIDAuMylcbiAgICAgICk7XG5cbiAgICAgIGZvbnQtc2l6ZTogY2xhbXAoXG4gICAgICAgIG1heCh2YXIoLS1iYXNlLWZvbnQtc2l6ZSksIHZhcigtLWZvbnQtbWluKSksXG4gICAgICAgIHZhcigtLWZvbnQtbWluKSArIDFjcWksXG4gICAgICAgIHZhcigtLWZvbnQtc2l6ZSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLm14LXRleHQtLXNlY3Rpb24taGVhZGxpbmUge1xuICAgIC0tZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbSk7XG5cbiAgICBmb250LXdlaWdodDogdmFyKC0taGVhZGluZy1mb250LXdlaWdodCwgdmFyKC0tZm9udC13ZWlnaHQtYm9sZCkpO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1oZWFkaW5nLWZvbnQtZmFtaWx5LCB2YXIoLS1mb250LWZhbWlseSkpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1oKTtcbiAgICBjb2xvcjogdmFyKC0tZm9yZWdyb3VuZCwgdmFyKC0tY29sb3VyLWZvcmVncm91bmQtYWx0KSk7XG4gICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAwO1xuICAgIHRleHQtd3JhcDogYmFsYW5jZTtcblxuICAgICYgKyA6aXMoaDIsIGgzKSB7XG4gICAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IHZhcigtLXNwYWNpbmcteHh4eHMpICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLm14LXRleHQtLWVtYmVsbGlzaGVkLWhlYWRsaW5lIHtcbiAgICAtLWZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXMpO1xuXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWhlYWRpbmctZm9udC13ZWlnaHQsIHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpKTtcbiAgICBmb250LWZhbWlseTogdmFyKC0taGVhZGluZy1mb250LWZhbWlseSwgdmFyKC0tZm9udC1mYW1pbHkpKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtaCk7XG4gICAgbWFyZ2luLWJsb2NrOiAwIHZhcigtLXNwYWNpbmctbCk7XG4gICAgdGV4dC13cmFwOiBiYWxhbmNlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaW5saW5lLXNpemU6IHZhcigtLXNwYWNpbmcteHh4bCk7XG4gICAgICBibG9jay1zaXplOiAzcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvdXItcHJpbWFyeSk7XG4gICAgICBpbnNldC1ibG9jay1zdGFydDogdmFyKC0tZ2FwKTtcbiAgICB9XG4gIH1cblxuICAubXgtdGV4dC0tbGVkZSB7XG4gICAgLS1mb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gIH1cblxuICAubXgtdGV4dC0teHh4bCB7XG4gICAgLS1mb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14eHhsKTtcblxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1oKTtcbiAgfVxuXG4gIC5teC10ZXh0LS14eGwge1xuICAgIC0tZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHhsKTtcblxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1oKTtcbiAgfVxuXG4gIC5teC10ZXh0LS14bCB7XG4gICAgLS1mb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14bCk7XG5cbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtaCk7XG4gIH1cblxuICAubXgtdGV4dC0tbCB7XG4gICAgLS1mb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1sKTtcblxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1oKTtcbiAgfVxuXG4gIC5teC10ZXh0LS1tIHtcbiAgICAtLWZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLW0pO1xuICB9XG5cbiAgLm14LXRleHQtLXMge1xuICAgIC0tZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtcyk7XG4gIH1cblxuICAubXgtdGV4dC0teHMge1xuICAgIC0tZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHMpO1xuICB9XG59XG4iLCJAbGF5ZXIgZGVzaWduLXN5c3RlbS51dGlsaXRpZXMge1xuICAubXgtdGV4dC0tbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIH1cblxuICAubXgtdGV4dC0tcmlnaHQge1xuICAgIHRleHQtYWxpZ246IGVuZDtcbiAgfVxuXG4gIC5teC10ZXh0LS1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgY3VzdG9tLXByb3BlcnR5LXBhdHRlcm4gKi9cbkBkZWZpbmUtbWl4aW4gc3BhY2luZyAkc2l6ZSB7XG4gIC5teC1zcGFjaW5nLS0kKHNpemUpIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLSQoc2l6ZSkpO1xuICB9XG5cbiAgLm14LXNwYWNpbmctLXRvcC0kKHNpemUpIHtcbiAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1zcGFjaW5nLSQoc2l6ZSkpO1xuICB9XG5cbiAgLm14LXNwYWNpbmctLWJvdHRvbS0kKHNpemUpIHtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tc3BhY2luZy0kKHNpemUpKTtcbiAgfVxuXG4gIC5teC1zcGFjaW5nLS1sZWZ0LSQoc2l6ZSkge1xuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1zcGFjaW5nLSQoc2l6ZSkpO1xuICB9XG5cbiAgLm14LXNwYWNpbmctLXJpZ2h0LSQoc2l6ZSkge1xuICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tc3BhY2luZy0kKHNpemUpKTtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4vX21peGlucy5jc3NcIjtcblxuQGxheWVyIGRlc2lnbi1zeXN0ZW0udXRpbGl0aWVzIHtcbiAgLm14LXNwYWNpbmctLXJlc2V0IHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubXgtc3BhY2luZy0tdG9wLXJlc2V0IHtcbiAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubXgtc3BhY2luZy0tYm90dG9tLXJlc2V0IHtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogMCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm14LXNwYWNpbmctLWxlZnQtcmVzZXQge1xuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubXgtc3BhY2luZy0tcmlnaHQtcmVzZXQge1xuICAgIHBhZGRpbmctaW5saW5lLWVuZDogMCAhaW1wb3J0YW50O1xuICB9XG5cbiAgQG1peGluIHNwYWNpbmcgeHhzO1xuICBAbWl4aW4gc3BhY2luZyB4cztcbiAgQG1peGluIHNwYWNpbmcgcztcbiAgQG1peGluIHNwYWNpbmcgbTtcbiAgQG1peGluIHNwYWNpbmcgbDtcbiAgQG1peGluIHNwYWNpbmcgeGw7XG4gIEBtaXhpbiBzcGFjaW5nIHh4bDtcbiAgQG1peGluIHNwYWNpbmcgeHh4bDtcbiAgQG1peGluIHNwYWNpbmcgeHh4eGw7XG4gIEBtaXhpbiBzcGFjaW5nIHVsO1xuICBAbWl4aW4gc3BhY2luZyB1dWw7XG4gIEBtaXhpbiBzcGFjaW5nIHV1dWw7XG59XG4iLCJAbGF5ZXIgZGVzaWduLXN5c3RlbS5kZWZhdWx0cyB7XG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGlubGluZS1zaXplOiBmaXQtY29udGVudDtcbiAgfVxuXG4gIGZpZ2NhcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tY2FwdGlvbi1mb250LXNpemUsIHZhcigtLWZvbnQtc2l6ZS14cykpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1jYXB0aW9uLWxpbmUtaGVpZ2h0LCB2YXIoLS1saW5lLWhlaWdodC1oKSk7XG4gICAgY2FwdGlvbi1zaWRlOiBib3R0b207XG4gICAgZGlzcGxheTogdGFibGUtY2FwdGlvbjtcbiAgfVxuXG4gIGltZyB7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICBtYXgtaW5saW5lLXNpemU6IDEwMCU7XG4gICAgYmxvY2stc2l6ZTogYXV0bztcbiAgfVxuXG4gIHN2Zzpub3QoW2ZpbGxdKSB7XG4gICAgZmlsbDogY3VycmVudGNvbG9yO1xuICB9XG59XG4iLCJAbGF5ZXIgZGVzaWduLXN5c3RlbS5hdG9tcyB7XG4gIDppcygubXgtbWVkaWEtLWxlZnQsIC5teC1tZWRpYS0tcmlnaHQsIC5teC1tZWRpYS0tY2VudGVyKSB7XG4gICAgQG1lZGlhICgtLXNtYWxsLXVwKSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIG1heC1pbmxpbmUtc2l6ZTogNTAlO1xuICAgICAgbWFyZ2luLWJsb2NrLWVuZDogdmFyKC0tc3BhY2luZy1zKTtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ibG9jay1zdGFydDogMDtcblxuICAgICAgICAmICsgKiB7XG4gICAgICAgICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJiBmaWdjYXB0aW9uIHtcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2FwdGlvbjtcbiAgICAgICAgY2FwdGlvbi1zaWRlOiBib3R0b207XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm14LW1lZGlhLS1jZW50ZXIge1xuICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gIH1cblxuICA6aXMoXG4gICAgLm14LW1lZGlhLS1sZWZ0LFxuICAgIFtkaXI9XCJydGxcIl0gLm14LW1lZGlhLS1yaWdodCxcbiAgICAudHJhbnNsYXRlZC1ydGwgLm14LW1lZGlhLS1yaWdodFxuICApIHtcbiAgICBAbWVkaWEgKC0tc21hbGwtdXApIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLWlubGluZTogMCB2YXIoLS1zcGFjaW5nLW0pO1xuICAgIH1cbiAgfVxuXG4gIDppcyhcbiAgICAubXgtbWVkaWEtLXJpZ2h0LFxuICAgIFtkaXI9XCJydGxcIl0gLm14LW1lZGlhLS1sZWZ0LFxuICAgIC50cmFuc2xhdGVkLXJ0bCAubXgtbWVkaWEtLWxlZnRcbiAgKSB7XG4gICAgQG1lZGlhICgtLXNtYWxsLXVwKSB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBtYXJnaW4taW5saW5lOiB2YXIoLS1zcGFjaW5nLW0pIDA7XG4gICAgfVxuICB9XG59XG4iLCJAbGF5ZXIgZGVzaWduLXN5c3RlbS5kZWZhdWx0cyB7XG4gIC5teC12aWRlbyB7XG4gICAgJixcbiAgICAmIDppcyhlbWJlZCwgb2JqZWN0LCBpZnJhbWUpIHtcbiAgICAgIGFzcGVjdC1yYXRpbzogMTYgLyA5O1xuICAgICAgYmxvY2stc2l6ZTogMTAwJTtcbiAgICAgIGlubGluZS1zaXplOiAxMDAlO1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5teC1tZWRpYS0tdmlkZW8ge1xuICAgIGlubGluZS1zaXplOiAxMDAlO1xuICB9XG59XG4iLCJAbGF5ZXIgZGVzaWduLXN5c3RlbS5kZWZhdWx0cyB7XG4gIHRhYmxlIHtcbiAgICBpbmxpbmUtc2l6ZTogMTAwJTtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIG1hcmdpbjogMDtcblxuICAgICYgdGgge1xuICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgfVxuXG4gICAgJiA6aXModGQsIHRoKSB7XG4gICAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLXh4cyk7XG4gICAgICBib3JkZXItYmxvY2stZW5kOiB2YXIoLS1saW5lLXdpZHRoLCAxcHgpIHNvbGlkXG4gICAgICAgIHZhcigtLWxpbmUtY29sb3VyLCB2YXIoLS1jb2xvdXItYm9yZGVyKSk7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cblxuICAgICYgdGhlYWQgOmlzKHRkLCB0aCkge1xuICAgICAgYm9yZGVyLWNvbG9yOiBjdXJyZW50Y29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm14LXRhYmxlLS1mbHVzaCB7XG4gICAgJiA6aXModGQsIHRoKSB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubXgtdGFibGUtLXNtYWxsIHtcbiAgICAmIDppcyh0ZCwgdGgpIHtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXMpO1xuICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWgpO1xuICAgIH1cbiAgfVxuXG4gIC5teC10YWJsZS0tc3RyaXBlZCB7XG4gICAgJiB0Ym9keSB0ciB7XG4gICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICYgOmlzKHRkLCB0aCkge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG91ci1iYWNrZ3JvdW5kLWFsdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubXgtdGFibGUtLXJlc3BvbnNpdmUge1xuICAgIG1heC1pbmxpbmUtc2l6ZTogMTAwJTtcblxuICAgIEBtZWRpYSAoLS1tZWRpdW0tZG93bikge1xuICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdykgaW5zZXQ7XG5cbiAgICAgICYgdGFibGUge1xuICAgICAgICBpbmxpbmUtc2l6ZTogMTAwJTtcbiAgICAgICAgbWFyZ2luLWJsb2NrOiAwO1xuICAgICAgICBtYXJnaW4taW5saW5lOiB2YXIoLS1zcGFjaW5nLXMpO1xuXG4gICAgICAgICYgdGQge1xuICAgICAgICAgIG1pbi1pbmxpbmUtc2l6ZTogMjBjaDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQG1lZGlhIHByaW50IHtcbiAgLmNvbnRleHR1YWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAubXgtcmljaC10ZXh0IHtcbiAgICBtYXgtaW5saW5lLXNpemU6IDEwMCU7XG4gIH1cbn1cbiJdfQ== */
@@ -86,7 +86,7 @@
86
86
  --foreground: var(--colour-foreground-reverse);
87
87
  }
88
88
 
89
- .mx-button--dark.button--outline {
89
+ .mx-button--dark.mx-button--outline {
90
90
  --background: transparent;
91
91
  --foreground: var(--colour-primary);
92
92
  }
@@ -107,7 +107,7 @@
107
107
  --foreground: var(--colour-foreground-reverse);
108
108
  }
109
109
 
110
- .mx-button--destructive.button--outline {
110
+ .mx-button--destructive.mx-button--outline {
111
111
  --background: transparent;
112
112
  --foreground: var(--colour-error);
113
113
  }
@@ -118,10 +118,10 @@
118
118
  --foreground: var(--colour-foreground);
119
119
  }
120
120
 
121
- .mx-button--white.button--outline {
121
+ .mx-button--white.mx-button--outline {
122
122
  --background: transparent;
123
123
  --foreground: var(--colour-foreground-reverse);
124
124
  }
125
125
  }
126
126
 
127
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9idXR0b25zLmNzcyIsIl9idXR0b25zLXN0eWxlcy5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0VBRUU7O0FBRUY7RUFDRTtJQUNFLDJCQUFxQjs7SUFFckIsb0JBQW9CO0lBQ3BCLDZCQUF3QjtJQUF4Qix3QkFBd0I7SUFDeEIsd0NBQXdDO0lBQ3hDLG9EQUFvRDtJQUNwRCxvQ0FBb0M7SUFDcEMsK0JBQStCO0lBQy9CLGtDQUFrQztJQUNsQzs4Q0FDMEM7SUFEMUM7OENBQzBDO0lBQzFDLG9EQUFvRDtJQUNwRCwwREFBMEQ7SUFDMUQsMkRBQTJEO0lBQzNELDZEQUE2RDtJQUM3RCxrREFBa0Q7SUFDbEQsMEJBQTBCO0VBVzVCOztJQVRFO01BQ0UsZUFBZTtNQUNmLDBCQUEwQjtJQUM1Qjs7SUFFQTtNQUNFLG1CQUFtQjtNQUNuQixZQUFZO0lBQ2Q7O0VBR0Y7SUFDRSxpQkFBaUI7SUFDakIsdUJBQXVCO0VBQ3pCOztFQUVBO0lBQ0Usb0NBQW9DO0lBQ3BDLHNDQUFzQztFQUN4Qzs7RUFFQTtJQUNFLHNDQUFzQztJQUN0Qyx1Q0FBdUM7SUFDdkMsc0NBQXNDO0VBQ3hDOztFQUVBO0lBQ0UsOEJBQThCO0lBQzlCLDZCQUE2QjtJQUM3QixVQUFVO0lBQ1YseUNBQXlDO0lBQ3pDLGdCQUFnQjtJQUNoQixlQUFlO0VBV2pCOztJQVRFO01BQ0UsaUJBQWlCO01BQ2pCLGdCQUFnQjtNQUNoQixtQ0FBMkI7Y0FBM0IsMkJBQTJCO0lBQzdCOztJQUVBO01BQ0UscUJBQXFCO01BQXJCLHVCQUFxQjtNQUFyQixxQkFBcUI7SUFDdkI7QUFFSjs7QUNyRUE7O0VBRUU7O0FBRUY7RUFDRTtJQUNFLGlDQUFpQztJQUNqQyxnQ0FBZ0M7SUFDaEMsOENBQThDO0VBTWhEOztJQUpFO01BQ0UseUJBQXlCO01BQ3pCLG1DQUFtQztJQUNyQzs7RUFHRjtJQUNFLG1CQUFtQjtJQUNuQiw2Q0FBNkM7SUFDN0MsK0JBQStCO0VBS2pDOztJQUhFO01BQ0UsK0JBQStCO0lBQ2pDOztFQUdGO0lBQ0Usa0NBQWtDO0lBQ2xDLGlDQUFpQztJQUNqQyw4Q0FBOEM7RUFNaEQ7O0lBSkU7TUFDRSx5QkFBeUI7TUFDekIsaUNBQWlDO0lBQ25DOztFQUdGO0lBQ0UsK0NBQStDO0lBQy9DLDhDQUE4QztJQUM5QyxzQ0FBc0M7RUFNeEM7O0lBSkU7TUFDRSx5QkFBeUI7TUFDekIsOENBQThDO0lBQ2hEO0FBRUoiLCJmaWxlIjoiYnV0dG9uLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnV0dG9uc1xuICovXG5cbkBsYXllciBkZXNpZ24tc3lzdGVtLmF0b21zIHtcbiAgLm14LWJ1dHRvbiB7XG4gICAgLS1vdXRsaW5lLW9mZnNldDogMXB4O1xuXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgaW5saW5lLXNpemU6IGZpdC1jb250ZW50O1xuICAgIGdhcDogdmFyKC0tYnV0dG9uLWdhcCwgdmFyKC0tc3BhY2luZy1zKSk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1idXR0b24tZm9udC1zaXplLCB2YXIoLS1mb250LXNpemUpKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5KTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtdWkpO1xuICAgIGJvcmRlcjogdmFyKC0tbGluZS13aWR0aCwgMnB4KSBzb2xpZFxuICAgICAgdmFyKC0tbGluZS1jb2xvdXIsIHZhcigtLWNvbG91ci1ib3JkZXIpKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMsIHZhcigtLWJvcmRlci1yYWRpdXMtbCkpO1xuICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLXZlcnRpY2FsLXBhZGRpbmcsIHZhcigtLXNwYWNpbmcteHhzKSk7XG4gICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLWhvcml6b250YWwtcGFkZGluZywgdmFyKC0tc3BhY2luZy1tKSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZCwgdmFyKC0tY29sb3VyLWJhY2tncm91bmQpKTtcbiAgICBjb2xvcjogdmFyKC0tZm9yZWdyb3VuZCwgdmFyKC0tY29sb3VyLWZvcmVncm91bmQpKTtcbiAgICB0ZXh0LWRlY29yYXRpb24tbGluZTogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgb3BhY2l0eTogMC4zO1xuICAgIH1cbiAgfVxuXG4gIC5teC1idXR0b24tLWZ1bGwtd2lkdGgge1xuICAgIGlubGluZS1zaXplOiAxMDAlO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLm14LWJ1dHRvbi0tbGFyZ2Uge1xuICAgIC0tdmVydGljYWwtcGFkZGluZzogdmFyKC0tc3BhY2luZy1zKTtcbiAgICAtLWhvcml6b250YWwtcGFkZGluZzogdmFyKC0tc3BhY2luZy1sKTtcbiAgfVxuXG4gIC5teC1idXR0b24tLXNtYWxsIHtcbiAgICAtLWJ1dHRvbi1mb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zKTtcbiAgICAtLXZlcnRpY2FsLXBhZGRpbmc6IHZhcigtLXNwYWNpbmcteHh4cyk7XG4gICAgLS1ob3Jpem9udGFsLXBhZGRpbmc6IHZhcigtLXNwYWNpbmctcyk7XG4gIH1cblxuICAubXgtYnV0dG9uLS1pY29uLW9ubHkge1xuICAgIGlubGluZS1zaXplOiB2YXIoLS1zcGFjaW5nLXhsKTtcbiAgICBibG9jay1zaXplOiB2YXIoLS1zcGFjaW5nLXhsKTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtcm91bmQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGlubGluZS1zaXplOiAxMDAlO1xuICAgICAgYmxvY2stc2l6ZTogMTAwJTtcbiAgICAgIG1hc2stc2l6ZTogdmFyKC0tc3BhY2luZy1zKTtcbiAgICB9XG5cbiAgICAmOmhhcygubXgtaWNvbikge1xuICAgICAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiBCdXR0b25zXG4gKi9cblxuQGxheWVyIGRlc2lnbi1zeXN0ZW0uYXRvbXMge1xuICAubXgtYnV0dG9uLS1kYXJrIHtcbiAgICAtLWxpbmUtY29sb3VyOiB2YXIoLS1jb2xvdXItbGluayk7XG4gICAgLS1iYWNrZ3JvdW5kOiB2YXIoLS1jb2xvdXItbGluayk7XG4gICAgLS1mb3JlZ3JvdW5kOiB2YXIoLS1jb2xvdXItZm9yZWdyb3VuZC1yZXZlcnNlKTtcblxuICAgICYuYnV0dG9uLS1vdXRsaW5lIHtcbiAgICAgIC0tYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAtLWZvcmVncm91bmQ6IHZhcigtLWNvbG91ci1wcmltYXJ5KTtcbiAgICB9XG4gIH1cblxuICAubXgtYnV0dG9uLS1saWdodCB7XG4gICAgYm9yZGVyOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0tbGluay1jb2xvdXIsIHZhcigtLWNvbG91ci1saW5rKSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IHVuZGVybGluZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IHVuZGVybGluZTtcbiAgICB9XG4gIH1cblxuICAubXgtYnV0dG9uLS1kZXN0cnVjdGl2ZSB7XG4gICAgLS1saW5lLWNvbG91cjogdmFyKC0tY29sb3VyLWVycm9yKTtcbiAgICAtLWJhY2tncm91bmQ6IHZhcigtLWNvbG91ci1lcnJvcik7XG4gICAgLS1mb3JlZ3JvdW5kOiB2YXIoLS1jb2xvdXItZm9yZWdyb3VuZC1yZXZlcnNlKTtcblxuICAgICYuYnV0dG9uLS1vdXRsaW5lIHtcbiAgICAgIC0tYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAtLWZvcmVncm91bmQ6IHZhcigtLWNvbG91ci1lcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLm14LWJ1dHRvbi0td2hpdGUge1xuICAgIC0tbGluZS1jb2xvdXI6IHZhcigtLWNvbG91ci1mb3JlZ3JvdW5kLXJldmVyc2UpO1xuICAgIC0tYmFja2dyb3VuZDogdmFyKC0tY29sb3VyLWZvcmVncm91bmQtcmV2ZXJzZSk7XG4gICAgLS1mb3JlZ3JvdW5kOiB2YXIoLS1jb2xvdXItZm9yZWdyb3VuZCk7XG5cbiAgICAmLmJ1dHRvbi0tb3V0bGluZSB7XG4gICAgICAtLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgLS1mb3JlZ3JvdW5kOiB2YXIoLS1jb2xvdXItZm9yZWdyb3VuZC1yZXZlcnNlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ== */
127
+ /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9idXR0b25zLmNzcyIsIl9idXR0b25zLXN0eWxlcy5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0VBRUU7O0FBRUY7RUFDRTtJQUNFLDJCQUFxQjs7SUFFckIsb0JBQW9CO0lBQ3BCLDZCQUF3QjtJQUF4Qix3QkFBd0I7SUFDeEIsd0NBQXdDO0lBQ3hDLG9EQUFvRDtJQUNwRCxvQ0FBb0M7SUFDcEMsK0JBQStCO0lBQy9CLGtDQUFrQztJQUNsQzs4Q0FDMEM7SUFEMUM7OENBQzBDO0lBQzFDLG9EQUFvRDtJQUNwRCwwREFBMEQ7SUFDMUQsMkRBQTJEO0lBQzNELDZEQUE2RDtJQUM3RCxrREFBa0Q7SUFDbEQsMEJBQTBCO0VBVzVCOztJQVRFO01BQ0UsZUFBZTtNQUNmLDBCQUEwQjtJQUM1Qjs7SUFFQTtNQUNFLG1CQUFtQjtNQUNuQixZQUFZO0lBQ2Q7O0VBR0Y7SUFDRSxpQkFBaUI7SUFDakIsdUJBQXVCO0VBQ3pCOztFQUVBO0lBQ0Usb0NBQW9DO0lBQ3BDLHNDQUFzQztFQUN4Qzs7RUFFQTtJQUNFLHNDQUFzQztJQUN0Qyx1Q0FBdUM7SUFDdkMsc0NBQXNDO0VBQ3hDOztFQUVBO0lBQ0UsOEJBQThCO0lBQzlCLDZCQUE2QjtJQUM3QixVQUFVO0lBQ1YseUNBQXlDO0lBQ3pDLGdCQUFnQjtJQUNoQixlQUFlO0VBV2pCOztJQVRFO01BQ0UsaUJBQWlCO01BQ2pCLGdCQUFnQjtNQUNoQixtQ0FBMkI7Y0FBM0IsMkJBQTJCO0lBQzdCOztJQUVBO01BQ0UscUJBQXFCO01BQXJCLHVCQUFxQjtNQUFyQixxQkFBcUI7SUFDdkI7QUFFSjs7QUNyRUE7O0VBRUU7O0FBRUY7RUFDRTtJQUNFLGlDQUFpQztJQUNqQyxnQ0FBZ0M7SUFDaEMsOENBQThDO0VBTWhEOztJQUpFO01BQ0UseUJBQXlCO01BQ3pCLG1DQUFtQztJQUNyQzs7RUFHRjtJQUNFLG1CQUFtQjtJQUNuQiw2Q0FBNkM7SUFDN0MsK0JBQStCO0VBS2pDOztJQUhFO01BQ0UsK0JBQStCO0lBQ2pDOztFQUdGO0lBQ0Usa0NBQWtDO0lBQ2xDLGlDQUFpQztJQUNqQyw4Q0FBOEM7RUFNaEQ7O0lBSkU7TUFDRSx5QkFBeUI7TUFDekIsaUNBQWlDO0lBQ25DOztFQUdGO0lBQ0UsK0NBQStDO0lBQy9DLDhDQUE4QztJQUM5QyxzQ0FBc0M7RUFNeEM7O0lBSkU7TUFDRSx5QkFBeUI7TUFDekIsOENBQThDO0lBQ2hEO0FBRUoiLCJmaWxlIjoiYnV0dG9uLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnV0dG9uc1xuICovXG5cbkBsYXllciBkZXNpZ24tc3lzdGVtLmF0b21zIHtcbiAgLm14LWJ1dHRvbiB7XG4gICAgLS1vdXRsaW5lLW9mZnNldDogMXB4O1xuXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgaW5saW5lLXNpemU6IGZpdC1jb250ZW50O1xuICAgIGdhcDogdmFyKC0tYnV0dG9uLWdhcCwgdmFyKC0tc3BhY2luZy1zKSk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1idXR0b24tZm9udC1zaXplLCB2YXIoLS1mb250LXNpemUpKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5KTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtdWkpO1xuICAgIGJvcmRlcjogdmFyKC0tbGluZS13aWR0aCwgMnB4KSBzb2xpZFxuICAgICAgdmFyKC0tbGluZS1jb2xvdXIsIHZhcigtLWNvbG91ci1ib3JkZXIpKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMsIHZhcigtLWJvcmRlci1yYWRpdXMtbCkpO1xuICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLXZlcnRpY2FsLXBhZGRpbmcsIHZhcigtLXNwYWNpbmcteHhzKSk7XG4gICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLWhvcml6b250YWwtcGFkZGluZywgdmFyKC0tc3BhY2luZy1tKSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZCwgdmFyKC0tY29sb3VyLWJhY2tncm91bmQpKTtcbiAgICBjb2xvcjogdmFyKC0tZm9yZWdyb3VuZCwgdmFyKC0tY29sb3VyLWZvcmVncm91bmQpKTtcbiAgICB0ZXh0LWRlY29yYXRpb24tbGluZTogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgb3BhY2l0eTogMC4zO1xuICAgIH1cbiAgfVxuXG4gIC5teC1idXR0b24tLWZ1bGwtd2lkdGgge1xuICAgIGlubGluZS1zaXplOiAxMDAlO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLm14LWJ1dHRvbi0tbGFyZ2Uge1xuICAgIC0tdmVydGljYWwtcGFkZGluZzogdmFyKC0tc3BhY2luZy1zKTtcbiAgICAtLWhvcml6b250YWwtcGFkZGluZzogdmFyKC0tc3BhY2luZy1sKTtcbiAgfVxuXG4gIC5teC1idXR0b24tLXNtYWxsIHtcbiAgICAtLWJ1dHRvbi1mb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zKTtcbiAgICAtLXZlcnRpY2FsLXBhZGRpbmc6IHZhcigtLXNwYWNpbmcteHh4cyk7XG4gICAgLS1ob3Jpem9udGFsLXBhZGRpbmc6IHZhcigtLXNwYWNpbmctcyk7XG4gIH1cblxuICAubXgtYnV0dG9uLS1pY29uLW9ubHkge1xuICAgIGlubGluZS1zaXplOiB2YXIoLS1zcGFjaW5nLXhsKTtcbiAgICBibG9jay1zaXplOiB2YXIoLS1zcGFjaW5nLXhsKTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtcm91bmQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGlubGluZS1zaXplOiAxMDAlO1xuICAgICAgYmxvY2stc2l6ZTogMTAwJTtcbiAgICAgIG1hc2stc2l6ZTogdmFyKC0tc3BhY2luZy1zKTtcbiAgICB9XG5cbiAgICAmOmhhcygubXgtaWNvbikge1xuICAgICAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiBCdXR0b25zXG4gKi9cblxuQGxheWVyIGRlc2lnbi1zeXN0ZW0uYXRvbXMge1xuICAubXgtYnV0dG9uLS1kYXJrIHtcbiAgICAtLWxpbmUtY29sb3VyOiB2YXIoLS1jb2xvdXItbGluayk7XG4gICAgLS1iYWNrZ3JvdW5kOiB2YXIoLS1jb2xvdXItbGluayk7XG4gICAgLS1mb3JlZ3JvdW5kOiB2YXIoLS1jb2xvdXItZm9yZWdyb3VuZC1yZXZlcnNlKTtcblxuICAgICYubXgtYnV0dG9uLS1vdXRsaW5lIHtcbiAgICAgIC0tYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAtLWZvcmVncm91bmQ6IHZhcigtLWNvbG91ci1wcmltYXJ5KTtcbiAgICB9XG4gIH1cblxuICAubXgtYnV0dG9uLS1saWdodCB7XG4gICAgYm9yZGVyOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0tbGluay1jb2xvdXIsIHZhcigtLWNvbG91ci1saW5rKSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IHVuZGVybGluZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IHVuZGVybGluZTtcbiAgICB9XG4gIH1cblxuICAubXgtYnV0dG9uLS1kZXN0cnVjdGl2ZSB7XG4gICAgLS1saW5lLWNvbG91cjogdmFyKC0tY29sb3VyLWVycm9yKTtcbiAgICAtLWJhY2tncm91bmQ6IHZhcigtLWNvbG91ci1lcnJvcik7XG4gICAgLS1mb3JlZ3JvdW5kOiB2YXIoLS1jb2xvdXItZm9yZWdyb3VuZC1yZXZlcnNlKTtcblxuICAgICYubXgtYnV0dG9uLS1vdXRsaW5lIHtcbiAgICAgIC0tYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAtLWZvcmVncm91bmQ6IHZhcigtLWNvbG91ci1lcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLm14LWJ1dHRvbi0td2hpdGUge1xuICAgIC0tbGluZS1jb2xvdXI6IHZhcigtLWNvbG91ci1mb3JlZ3JvdW5kLXJldmVyc2UpO1xuICAgIC0tYmFja2dyb3VuZDogdmFyKC0tY29sb3VyLWZvcmVncm91bmQtcmV2ZXJzZSk7XG4gICAgLS1mb3JlZ3JvdW5kOiB2YXIoLS1jb2xvdXItZm9yZWdyb3VuZCk7XG5cbiAgICAmLm14LWJ1dHRvbi0tb3V0bGluZSB7XG4gICAgICAtLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgLS1mb3JlZ3JvdW5kOiB2YXIoLS1jb2xvdXItZm9yZWdyb3VuZC1yZXZlcnNlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ== */
@@ -47,6 +47,7 @@
47
47
 
48
48
  .mx-card:has(.mx-card__media) {
49
49
  --card-gap: var(--gap-l);
50
+ --card-alignment: center;
50
51
 
51
52
  grid-template: "media content" 1fr / 1fr 1fr;
52
53
 
@@ -85,14 +86,14 @@
85
86
 
86
87
  .mx-card:has(.mx-card__media) .mx-card__content {
87
88
  grid-area: content;
88
- align-self: center;
89
- align-self: var(--align-content, center);
89
+ align-self: stretch;
90
+ align-self: var(--align-content, var(--card-alignment, stretch));
90
91
  }
91
92
 
92
93
  .mx-card:has(.mx-card__media) .mx-card__media {
93
94
  grid-area: media;
94
- align-self: center;
95
- align-self: var(--align-media, center);
95
+ align-self: stretch;
96
+ align-self: var(--align-media, var(--card-alignment, stretch));
96
97
  inline-size: 100%;
97
98
  }
98
99
 
@@ -157,4 +158,4 @@
157
158
  }
158
159
  }
159
160
 
160
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhcmQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztFQUVFOztBQUVGO0VBQ0U7SUFDRSxnQkFBZ0I7SUFDaEIsYUFBYTtJQUNiLHFDQUFnQztJQUFoQyxnQ0FBZ0M7RUErRmxDOztJQTdGRTtNQUNFLG1DQUFtQztJQXVCckM7O01BckJFOztJQUhGO1FBSUksbUVBQW1FO0lBb0J2RTtNQW5CRTs7TUFFQTtRQUNFLDREQUE0RDtRQUM1RCwrREFBK0Q7TUFDakU7O01BRUE7UUFDRSxpRUFBaUU7TUFDbkU7O01BRUE7UUFDRSw0REFBNEQ7UUFDNUQsaUVBQWlFO01BQ25FOztNQUVBO1FBQ0UscUJBQXFCO01BQ3ZCOztJQUdGO01BQ0UsMENBQTBDO0lBNkQ1Qzs7TUEzREU7O0lBSEY7UUFJSSx3QkFBd0I7O1FBRXhCLDRDQUdHOztRQUhIOzs7V0FHRztJQXFEUDs7UUFuREk7VUFDRSxvQ0FBb0M7VUFDcEMsOEJBQW9FO1VBQXBFLG9FQUFvRTtRQUN0RTtNQUNGOztNQUVBOztJQWpCRjtRQWtCSSx1Q0FBdUM7SUE0QzNDO01BM0NFO1FBR0U7VUFDRTtZQUNFLGlFQUFpRTtVQUNuRTs7VUFFQTtZQUNFLHVCQUF1QjtVQUN6Qjs7VUFFQTtZQUNFLHFCQUFxQjtVQUN2QjtRQUNGOztNQUdGO1FBQ0Usa0JBQWtCO1FBQ2xCLGtCQUF3QztRQUF4Qyx3Q0FBd0M7TUFDMUM7O01BRUE7UUFDRSxnQkFBZ0I7UUFDaEIsa0JBQXNDO1FBQXRDLHNDQUFzQztRQUN0QyxpQkFBaUI7TUFRbkI7O1FBTkU7VUFDRSwwQkFBMEI7VUFDMUIsbUNBQW1DO1VBQ25DLG9CQUFpQjthQUFqQixpQkFBaUI7VUFDakIsaUJBQWlCO1FBQ25COztNQUdGO1FBQ0UsZ0JBQWdCO01BQ2xCOztNQUVBO1FBQ0UsZ0JBQWdCO01BQ2xCOztJQUdGO01BQ0UsaUJBQWlCO0lBQ25COztFQUdGO0lBQ0Usd0JBQXdCO0VBQzFCO0FBQ0Y7O0FBRUE7O0VBRUU7O0FBRUY7RUFDRTs7SUFFRSw0QkFBbUQ7SUFBbkQsbURBQW1EO0lBQ25ELG1CQUFtQjtFQUNyQjtBQUNGOztBQUVBOztFQUVFOztBQUVGO0lBRUk7TUFDRSxjQUFjO0lBQ2hCOztFQUdGO0lBQ0Usa0JBQWtCO0VBVXBCOztJQVJFO01BQ0UsV0FBVztNQUNYLGtCQUFrQjtNQUNsQixvQkFBb0I7TUFDcEIscUJBQXFCO01BQ3JCLGlCQUFpQjtNQUNqQixnQkFBZ0I7SUFDbEI7QUFFSiIsImZpbGUiOiJjYXJkLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udGVudCBDYXJkXG4gKi9cblxuQGxheWVyIGRlc2lnbi1zeXN0ZW0uY29tcG9uZW50cyB7XG4gIC5teC1jYXJkIHtcbiAgICBibG9jay1zaXplOiAxMDAlO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1jYXJkLWdhcCwgdmFyKC0tZ2FwKSk7XG5cbiAgICAmW2NsYXNzKj1cIm14LWJhY2tncm91bmQtLVwiXSB7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcblxuICAgICAgQGNvbnRhaW5lciAobWluLXdpZHRoOiB0b2tlbihcImJyZWFrcG9pbnQuY29udGVudENhcmRcIikpIHtcbiAgICAgICAgLS1jb250ZW50LW1pbi1zcGFjaW5nOiB2YXIoLS1jb250ZW50LW1heC1zcGFjaW5nLCB2YXIoLS1zcGFjaW5nLW0pKTtcbiAgICAgIH1cblxuICAgICAgJiAubXgtY2FyZF9fY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1jb250ZW50LW1pbi1zcGFjaW5nLCB2YXIoLS1zcGFjaW5nLXMpKTtcbiAgICAgICAgcGFkZGluZy1ibG9jay1lbmQ6IHZhcigtLWNvbnRlbnQtbWluLXNwYWNpbmcsIHZhcigtLXNwYWNpbmctcykpO1xuICAgICAgfVxuXG4gICAgICAmOm5vdCg6aGFzKC5teC1jYXJkX19tZWRpYSwgLm14LWNhcmRfX2ljb24pKSAubXgtY2FyZF9fY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLWNvbnRlbnQtbWluLXNwYWNpbmcsIHZhcigtLXNwYWNpbmctcykpO1xuICAgICAgfVxuXG4gICAgICAmIC5teC1jYXJkX19pY29uIHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLWNvbnRlbnQtbWluLXNwYWNpbmcsIHZhcigtLXNwYWNpbmctcykpO1xuICAgICAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1jb250ZW50LW1pbi1zcGFjaW5nLCB2YXIoLS1zcGFjaW5nLXMpKTtcbiAgICAgIH1cblxuICAgICAgJi5teC1iYWNrZ3JvdW5kLS1ib3gge1xuICAgICAgICBwYWRkaW5nLWlubGluZTogdW5zZXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpoYXMoLm14LWNhcmRfX21lZGlhKSB7XG4gICAgICBncmlkLXRlbXBsYXRlOiBcIm1lZGlhXCIgXCJjb250ZW50XCIgMWZyIC8gMWZyO1xuXG4gICAgICBAY29udGFpbmVyIChtaW4td2lkdGg6IHRva2VuKFwiYnJlYWtwb2ludC5jb250ZW50Q2FyZFwiKSkge1xuICAgICAgICAtLWNhcmQtZ2FwOiB2YXIoLS1nYXAtbCk7XG5cbiAgICAgICAgZ3JpZC10ZW1wbGF0ZTogXCJtZWRpYSBjb250ZW50XCIgMWZyIC8gdmFyKC0tbWVkaWEtY29sLCAxZnIpIHZhcihcbiAgICAgICAgICAgIC0tY29udGVudC1jb2wsXG4gICAgICAgICAgICAxZnJcbiAgICAgICAgICApO1xuXG4gICAgICAgICYubXgtY2FyZC0tcmV2ZXJzZWQge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwiY29udGVudCBtZWRpYVwiO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdmFyKC0tY29udGVudC1jb2wsIDFmcikgdmFyKC0tbWVkaWEtY29sLCAxZnIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBjb250YWluZXIgKG1pbi13aWR0aDogdG9rZW4oXCJicmVha3BvaW50LmxcIikpIHtcbiAgICAgICAgLS1jYXJkLWdhcDogdmFyKC0tbGFyZ2UtY2FyZC1nYXAsIDZyZW0pO1xuICAgICAgfVxuXG4gICAgICAmW2NsYXNzKj1cIm14LWJhY2tncm91bmQtLVwiXSB7XG4gICAgICAgIEBjb250YWluZXIgKG1pbi13aWR0aDogdG9rZW4oXCJicmVha3BvaW50LmNvbnRlbnRDYXJkXCIpKSB7XG4gICAgICAgICAgJiAubXgtY2FyZF9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1jb250ZW50LW1pbi1zcGFjaW5nLCB2YXIoLS1zcGFjaW5nLXMpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmOndoZXJlKDpub3QoLm14LWNhcmQtLXJldmVyc2VkKSkgLm14LWNhcmRfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi5teC1jYXJkLS1yZXZlcnNlZCAubXgtY2FyZF9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYgLm14LWNhcmRfX2NvbnRlbnQge1xuICAgICAgICBncmlkLWFyZWE6IGNvbnRlbnQ7XG4gICAgICAgIGFsaWduLXNlbGY6IHZhcigtLWFsaWduLWNvbnRlbnQsIGNlbnRlcik7XG4gICAgICB9XG5cbiAgICAgICYgLm14LWNhcmRfX21lZGlhIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBtZWRpYTtcbiAgICAgICAgYWxpZ24tc2VsZjogdmFyKC0tYWxpZ24tbWVkaWEsIGNlbnRlcik7XG4gICAgICAgIGlubGluZS1zaXplOiAxMDAlO1xuXG4gICAgICAgICYgaW1nIHtcbiAgICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLXJhdGlvKTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICBpbmxpbmUtc2l6ZTogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmIC5teC1za2VsZXRvbi0tYmcge1xuICAgICAgICBncmlkLWFyZWE6IG1lZGlhO1xuICAgICAgfVxuXG4gICAgICAmIC5teC1jYXJkX19pY29uIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBtZWRpYTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmIC5teC1saW5rLWxpc3Qge1xuICAgICAgaW5saW5lLXNpemU6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLm14LWNhcmRfX2NvbnRlbnQgPiBhOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogYXV0bztcbiAgfVxufVxuXG4vKipcbiAqIENvbnRlbnQgQ2FyZCBHcmlkXG4gKi9cblxuQGxheWVyIGRlc2lnbi1zeXN0ZW0uY29tcG9uZW50cyB7XG4gIC5teC1ncmlkOmhhcyg+ICo6bnRoLWNoaWxkKDIpOmxhc3QtY2hpbGQpXG4gICAgPiA6aXMoLm14LWNhcmQsIC5teC1jb250YWluZXI6aGFzKC5teC1jYXJkKSkge1xuICAgIGlubGluZS1zaXplOiBtaW4oMTAwJSwgdmFyKC0tbWF4LWNhcmQtd2lkdGgsIDM3Y2gpKTtcbiAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICB9XG59XG5cbi8qKlxuICogQ29udGVudCBDYXJkIExpbmtlZFxuICovXG5cbkBsYXllciBkZXNpZ24tc3lzdGVtLmNvbXBvbmVudHMge1xuICBhW2hyZWZdLm14LWNhcmQge1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICB9XG5cbiAgLm14LWNhcmQtLWJsb2NrIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmIGE6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaW5zZXQtYmxvY2stc3RhcnQ6IDA7XG4gICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICBpbmxpbmUtc2l6ZTogMTAwJTtcbiAgICAgIGJsb2NrLXNpemU6IDEwMCU7XG4gICAgfVxuICB9XG59XG4iXX0= */
161
+ /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhcmQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztFQUVFOztBQUVGO0VBQ0U7SUFDRSxnQkFBZ0I7SUFDaEIsYUFBYTtJQUNiLHFDQUFnQztJQUFoQyxnQ0FBZ0M7RUFnR2xDOztJQTlGRTtNQUNFLG1DQUFtQztJQXVCckM7O01BckJFOztJQUhGO1FBSUksbUVBQW1FO0lBb0J2RTtNQW5CRTs7TUFFQTtRQUNFLDREQUE0RDtRQUM1RCwrREFBK0Q7TUFDakU7O01BRUE7UUFDRSxpRUFBaUU7TUFDbkU7O01BRUE7UUFDRSw0REFBNEQ7UUFDNUQsaUVBQWlFO01BQ25FOztNQUVBO1FBQ0UscUJBQXFCO01BQ3ZCOztJQUdGO01BQ0UsMENBQTBDO0lBOEQ1Qzs7TUE1REU7O0lBSEY7UUFJSSx3QkFBd0I7UUFDeEIsd0JBQXdCOztRQUV4Qiw0Q0FHRzs7UUFISDs7O1dBR0c7SUFxRFA7O1FBbkRJO1VBQ0Usb0NBQW9DO1VBQ3BDLDhCQUFvRTtVQUFwRSxvRUFBb0U7UUFDdEU7TUFDRjs7TUFFQTs7SUFsQkY7UUFtQkksdUNBQXVDO0lBNEMzQztNQTNDRTtRQUdFO1VBQ0U7WUFDRSxpRUFBaUU7VUFDbkU7O1VBRUE7WUFDRSx1QkFBdUI7VUFDekI7O1VBRUE7WUFDRSxxQkFBcUI7VUFDdkI7UUFDRjs7TUFHRjtRQUNFLGtCQUFrQjtRQUNsQixtQkFBZ0U7UUFBaEUsZ0VBQWdFO01BQ2xFOztNQUVBO1FBQ0UsZ0JBQWdCO1FBQ2hCLG1CQUE4RDtRQUE5RCw4REFBOEQ7UUFDOUQsaUJBQWlCO01BUW5COztRQU5FO1VBQ0UsMEJBQTBCO1VBQzFCLG1DQUFtQztVQUNuQyxvQkFBaUI7YUFBakIsaUJBQWlCO1VBQ2pCLGlCQUFpQjtRQUNuQjs7TUFHRjtRQUNFLGdCQUFnQjtNQUNsQjs7TUFFQTtRQUNFLGdCQUFnQjtNQUNsQjs7SUFHRjtNQUNFLGlCQUFpQjtJQUNuQjs7RUFHRjtJQUNFLHdCQUF3QjtFQUMxQjtBQUNGOztBQUVBOztFQUVFOztBQUVGO0VBQ0U7O0lBRUUsNEJBQW1EO0lBQW5ELG1EQUFtRDtJQUNuRCxtQkFBbUI7RUFDckI7QUFDRjs7QUFFQTs7RUFFRTs7QUFFRjtJQUVJO01BQ0UsY0FBYztJQUNoQjs7RUFHRjtJQUNFLGtCQUFrQjtFQVVwQjs7SUFSRTtNQUNFLFdBQVc7TUFDWCxrQkFBa0I7TUFDbEIsb0JBQW9CO01BQ3BCLHFCQUFxQjtNQUNyQixpQkFBaUI7TUFDakIsZ0JBQWdCO0lBQ2xCO0FBRUoiLCJmaWxlIjoiY2FyZC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnRlbnQgQ2FyZFxuICovXG5cbkBsYXllciBkZXNpZ24tc3lzdGVtLmNvbXBvbmVudHMge1xuICAubXgtY2FyZCB7XG4gICAgYmxvY2stc2l6ZTogMTAwJTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogdmFyKC0tY2FyZC1nYXAsIHZhcigtLWdhcCkpO1xuXG4gICAgJltjbGFzcyo9XCJteC1iYWNrZ3JvdW5kLS1cIl0ge1xuICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAgIEBjb250YWluZXIgKG1pbi13aWR0aDogdG9rZW4oXCJicmVha3BvaW50LmNvbnRlbnRDYXJkXCIpKSB7XG4gICAgICAgIC0tY29udGVudC1taW4tc3BhY2luZzogdmFyKC0tY29udGVudC1tYXgtc3BhY2luZywgdmFyKC0tc3BhY2luZy1tKSk7XG4gICAgICB9XG5cbiAgICAgICYgLm14LWNhcmRfX2NvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tY29udGVudC1taW4tc3BhY2luZywgdmFyKC0tc3BhY2luZy1zKSk7XG4gICAgICAgIHBhZGRpbmctYmxvY2stZW5kOiB2YXIoLS1jb250ZW50LW1pbi1zcGFjaW5nLCB2YXIoLS1zcGFjaW5nLXMpKTtcbiAgICAgIH1cblxuICAgICAgJjpub3QoOmhhcygubXgtY2FyZF9fbWVkaWEsIC5teC1jYXJkX19pY29uKSkgLm14LWNhcmRfX2NvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1jb250ZW50LW1pbi1zcGFjaW5nLCB2YXIoLS1zcGFjaW5nLXMpKTtcbiAgICAgIH1cblxuICAgICAgJiAubXgtY2FyZF9faWNvbiB7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1jb250ZW50LW1pbi1zcGFjaW5nLCB2YXIoLS1zcGFjaW5nLXMpKTtcbiAgICAgICAgcGFkZGluZy1ibG9jay1zdGFydDogdmFyKC0tY29udGVudC1taW4tc3BhY2luZywgdmFyKC0tc3BhY2luZy1zKSk7XG4gICAgICB9XG5cbiAgICAgICYubXgtYmFja2dyb3VuZC0tYm94IHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IHVuc2V0O1xuICAgICAgfVxuICAgIH1cblxuICAgICY6aGFzKC5teC1jYXJkX19tZWRpYSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZTogXCJtZWRpYVwiIFwiY29udGVudFwiIDFmciAvIDFmcjtcblxuICAgICAgQGNvbnRhaW5lciAobWluLXdpZHRoOiB0b2tlbihcImJyZWFrcG9pbnQuY29udGVudENhcmRcIikpIHtcbiAgICAgICAgLS1jYXJkLWdhcDogdmFyKC0tZ2FwLWwpO1xuICAgICAgICAtLWNhcmQtYWxpZ25tZW50OiBjZW50ZXI7XG5cbiAgICAgICAgZ3JpZC10ZW1wbGF0ZTogXCJtZWRpYSBjb250ZW50XCIgMWZyIC8gdmFyKC0tbWVkaWEtY29sLCAxZnIpIHZhcihcbiAgICAgICAgICAgIC0tY29udGVudC1jb2wsXG4gICAgICAgICAgICAxZnJcbiAgICAgICAgICApO1xuXG4gICAgICAgICYubXgtY2FyZC0tcmV2ZXJzZWQge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwiY29udGVudCBtZWRpYVwiO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdmFyKC0tY29udGVudC1jb2wsIDFmcikgdmFyKC0tbWVkaWEtY29sLCAxZnIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBjb250YWluZXIgKG1pbi13aWR0aDogdG9rZW4oXCJicmVha3BvaW50LmxcIikpIHtcbiAgICAgICAgLS1jYXJkLWdhcDogdmFyKC0tbGFyZ2UtY2FyZC1nYXAsIDZyZW0pO1xuICAgICAgfVxuXG4gICAgICAmW2NsYXNzKj1cIm14LWJhY2tncm91bmQtLVwiXSB7XG4gICAgICAgIEBjb250YWluZXIgKG1pbi13aWR0aDogdG9rZW4oXCJicmVha3BvaW50LmNvbnRlbnRDYXJkXCIpKSB7XG4gICAgICAgICAgJiAubXgtY2FyZF9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1jb250ZW50LW1pbi1zcGFjaW5nLCB2YXIoLS1zcGFjaW5nLXMpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmOndoZXJlKDpub3QoLm14LWNhcmQtLXJldmVyc2VkKSkgLm14LWNhcmRfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi5teC1jYXJkLS1yZXZlcnNlZCAubXgtY2FyZF9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYgLm14LWNhcmRfX2NvbnRlbnQge1xuICAgICAgICBncmlkLWFyZWE6IGNvbnRlbnQ7XG4gICAgICAgIGFsaWduLXNlbGY6IHZhcigtLWFsaWduLWNvbnRlbnQsIHZhcigtLWNhcmQtYWxpZ25tZW50LCBzdHJldGNoKSk7XG4gICAgICB9XG5cbiAgICAgICYgLm14LWNhcmRfX21lZGlhIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBtZWRpYTtcbiAgICAgICAgYWxpZ24tc2VsZjogdmFyKC0tYWxpZ24tbWVkaWEsIHZhcigtLWNhcmQtYWxpZ25tZW50LCBzdHJldGNoKSk7XG4gICAgICAgIGlubGluZS1zaXplOiAxMDAlO1xuXG4gICAgICAgICYgaW1nIHtcbiAgICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLXJhdGlvKTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICBpbmxpbmUtc2l6ZTogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmIC5teC1za2VsZXRvbi0tYmcge1xuICAgICAgICBncmlkLWFyZWE6IG1lZGlhO1xuICAgICAgfVxuXG4gICAgICAmIC5teC1jYXJkX19pY29uIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBtZWRpYTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmIC5teC1saW5rLWxpc3Qge1xuICAgICAgaW5saW5lLXNpemU6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLm14LWNhcmRfX2NvbnRlbnQgPiBhOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogYXV0bztcbiAgfVxufVxuXG4vKipcbiAqIENvbnRlbnQgQ2FyZCBHcmlkXG4gKi9cblxuQGxheWVyIGRlc2lnbi1zeXN0ZW0uY29tcG9uZW50cyB7XG4gIC5teC1ncmlkOmhhcyg+ICo6bnRoLWNoaWxkKDIpOmxhc3QtY2hpbGQpXG4gICAgPiA6aXMoLm14LWNhcmQsIC5teC1jb250YWluZXI6aGFzKC5teC1jYXJkKSkge1xuICAgIGlubGluZS1zaXplOiBtaW4oMTAwJSwgdmFyKC0tbWF4LWNhcmQtd2lkdGgsIDM3Y2gpKTtcbiAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICB9XG59XG5cbi8qKlxuICogQ29udGVudCBDYXJkIExpbmtlZFxuICovXG5cbkBsYXllciBkZXNpZ24tc3lzdGVtLmNvbXBvbmVudHMge1xuICBhW2hyZWZdLm14LWNhcmQge1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICB9XG5cbiAgLm14LWNhcmQtLWJsb2NrIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmIGE6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaW5zZXQtYmxvY2stc3RhcnQ6IDA7XG4gICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICBpbmxpbmUtc2l6ZTogMTAwJTtcbiAgICAgIGJsb2NrLXNpemU6IDEwMCU7XG4gICAgfVxuICB9XG59XG4iXX0= */
@@ -1,4 +1,4 @@
1
- import { m as makeAnchor } from "./utilities-BeWkujCZ.js";
1
+ import { m as makeAnchor } from "./utilities-DXELy_An.js";
2
2
  class Accordion extends HTMLElement {
3
3
  constructor() {
4
4
  super();
@@ -58,4 +58,4 @@ customElements.define("mx-accordion", Accordion);
58
58
  export {
59
59
  Accordion as A
60
60
  };
61
- //# sourceMappingURL=Accordion-deu4CCT-.js.map
61
+ //# sourceMappingURL=Accordion-O-huO4At.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion-deu4CCT-.js","sources":["../../../src/Component/Accordion/Elements/Accordion.ts"],"sourcesContent":["/**\n * Accordion\n * @file Support opening on hash, adding an ID attribute and toggling on print.\n */\n\nimport { makeAnchor } from \"../../../Utility/utilities\"\n\nexport default class Accordion extends HTMLElement {\n internals_: ElementInternals\n controller: AbortController\n\n constructor() {\n super()\n this.internals_ = this.attachInternals()\n this.controller = new AbortController()\n }\n\n connectedCallback(): void {\n if (!this.details || !this.trigger) return\n\n const { signal }: AbortController = this.controller\n document.addEventListener(\"beforeprint\", this.handleOpen, {\n signal,\n })\n document.addEventListener(\"afterprint\", this.handleClose, {\n signal,\n })\n this.handleHash()\n document.addEventListener(\"hashchange\", this.handleHash, { signal })\n }\n\n disconnectedCallback(): void {\n this.controller.abort()\n }\n\n handleOpen = (): void => {\n if (!this.details) return\n this.details.open = true\n }\n\n handleClose = (): void => {\n if (!this.details) return\n this.details.open = false\n }\n\n handleHash = (): void => {\n const { hash }: Location = window.location\n if (hash && hash === `#${this.details?.id}`) {\n this.handleOpen()\n }\n }\n\n get details(): HTMLDetailsElement | null {\n const details: HTMLDetailsElement | null = this.querySelector(\"details\")\n if (!details) {\n throw new Error(`${this.localName} must contain a <details> element.`)\n }\n details.id = details.id || this.generatedId()\n return details\n }\n\n get trigger(): HTMLElement | null {\n const trigger: HTMLElement | null = this.querySelector(\"summary\")\n if (!trigger) {\n throw new Error(`${this.localName} must contain a <summary> element.`)\n }\n return trigger\n }\n\n generatedId = (): string => {\n const string: string | undefined = this.trigger?.textContent?.trim()\n return !string ? \"\" : makeAnchor(string)\n }\n}\n\ncustomElements.define(\"mx-accordion\", Accordion)\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"mx-accordion\": Accordion\n }\n}\n"],"names":[],"mappings":";AAOA,MAAqB,kBAAkB,YAAY;AAAA,EAIjD,cAAc;AACZ,UAAA;AAuBF,SAAA,aAAa,MAAY;AACvB,UAAI,CAAC,KAAK,QAAS;AACnB,WAAK,QAAQ,OAAO;AAAA,IACtB;AAEA,SAAA,cAAc,MAAY;AACxB,UAAI,CAAC,KAAK,QAAS;AACnB,WAAK,QAAQ,OAAO;AAAA,IACtB;AAEA,SAAA,aAAa,MAAY;AACvB,YAAM,EAAE,SAAmB,OAAO;AAClC,UAAI,QAAQ,SAAS,IAAI,KAAK,SAAS,EAAE,IAAI;AAC3C,aAAK,WAAA;AAAA,MACP;AAAA,IACF;AAmBA,SAAA,cAAc,MAAc;AAC1B,YAAM,SAA6B,KAAK,SAAS,aAAa,KAAA;AAC9D,aAAO,CAAC,SAAS,KAAK,WAAW,MAAM;AAAA,IACzC;AA3DE,SAAK,aAAa,KAAK,gBAAA;AACvB,SAAK,aAAa,IAAI,gBAAA;AAAA,EACxB;AAAA,EAEA,oBAA0B;AACxB,QAAI,CAAC,KAAK,WAAW,CAAC,KAAK,QAAS;AAEpC,UAAM,EAAE,WAA4B,KAAK;AACzC,aAAS,iBAAiB,eAAe,KAAK,YAAY;AAAA,MACxD;AAAA,IAAA,CACD;AACD,aAAS,iBAAiB,cAAc,KAAK,aAAa;AAAA,MACxD;AAAA,IAAA,CACD;AACD,SAAK,WAAA;AACL,aAAS,iBAAiB,cAAc,KAAK,YAAY,EAAE,QAAQ;AAAA,EACrE;AAAA,EAEA,uBAA6B;AAC3B,SAAK,WAAW,MAAA;AAAA,EAClB;AAAA,EAmBA,IAAI,UAAqC;AACvC,UAAM,UAAqC,KAAK,cAAc,SAAS;AACvE,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,GAAG,KAAK,SAAS,oCAAoC;AAAA,IACvE;AACA,YAAQ,KAAK,QAAQ,MAAM,KAAK,YAAA;AAChC,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,UAA8B;AAChC,UAAM,UAA8B,KAAK,cAAc,SAAS;AAChE,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,GAAG,KAAK,SAAS,oCAAoC;AAAA,IACvE;AACA,WAAO;AAAA,EACT;AAMF;AAEA,eAAe,OAAO,gBAAgB,SAAS;"}
1
+ {"version":3,"file":"Accordion-O-huO4At.js","sources":["../../../src/Component/Accordion/Elements/Accordion.ts"],"sourcesContent":["/**\n * Accordion\n * @file Support opening on hash, adding an ID attribute and toggling on print.\n */\n\nimport { makeAnchor } from \"../../../Utility/utilities\"\n\nexport default class Accordion extends HTMLElement {\n internals_: ElementInternals\n controller: AbortController\n\n constructor() {\n super()\n this.internals_ = this.attachInternals()\n this.controller = new AbortController()\n }\n\n connectedCallback(): void {\n if (!this.details || !this.trigger) return\n\n const { signal }: AbortController = this.controller\n document.addEventListener(\"beforeprint\", this.handleOpen, {\n signal,\n })\n document.addEventListener(\"afterprint\", this.handleClose, {\n signal,\n })\n this.handleHash()\n document.addEventListener(\"hashchange\", this.handleHash, { signal })\n }\n\n disconnectedCallback(): void {\n this.controller.abort()\n }\n\n handleOpen = (): void => {\n if (!this.details) return\n this.details.open = true\n }\n\n handleClose = (): void => {\n if (!this.details) return\n this.details.open = false\n }\n\n handleHash = (): void => {\n const { hash }: Location = window.location\n if (hash && hash === `#${this.details?.id}`) {\n this.handleOpen()\n }\n }\n\n get details(): HTMLDetailsElement | null {\n const details: HTMLDetailsElement | null = this.querySelector(\"details\")\n if (!details) {\n throw new Error(`${this.localName} must contain a <details> element.`)\n }\n details.id = details.id || this.generatedId()\n return details\n }\n\n get trigger(): HTMLElement | null {\n const trigger: HTMLElement | null = this.querySelector(\"summary\")\n if (!trigger) {\n throw new Error(`${this.localName} must contain a <summary> element.`)\n }\n return trigger\n }\n\n generatedId = (): string => {\n const string: string | undefined = this.trigger?.textContent?.trim()\n return !string ? \"\" : makeAnchor(string)\n }\n}\n\ncustomElements.define(\"mx-accordion\", Accordion)\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"mx-accordion\": Accordion\n }\n}\n"],"names":[],"mappings":";AAOA,MAAqB,kBAAkB,YAAY;AAAA,EAIjD,cAAc;AACZ,UAAA;AAuBF,SAAA,aAAa,MAAY;AACvB,UAAI,CAAC,KAAK,QAAS;AACnB,WAAK,QAAQ,OAAO;AAAA,IACtB;AAEA,SAAA,cAAc,MAAY;AACxB,UAAI,CAAC,KAAK,QAAS;AACnB,WAAK,QAAQ,OAAO;AAAA,IACtB;AAEA,SAAA,aAAa,MAAY;AACvB,YAAM,EAAE,SAAmB,OAAO;AAClC,UAAI,QAAQ,SAAS,IAAI,KAAK,SAAS,EAAE,IAAI;AAC3C,aAAK,WAAA;AAAA,MACP;AAAA,IACF;AAmBA,SAAA,cAAc,MAAc;AAC1B,YAAM,SAA6B,KAAK,SAAS,aAAa,KAAA;AAC9D,aAAO,CAAC,SAAS,KAAK,WAAW,MAAM;AAAA,IACzC;AA3DE,SAAK,aAAa,KAAK,gBAAA;AACvB,SAAK,aAAa,IAAI,gBAAA;AAAA,EACxB;AAAA,EAEA,oBAA0B;AACxB,QAAI,CAAC,KAAK,WAAW,CAAC,KAAK,QAAS;AAEpC,UAAM,EAAE,WAA4B,KAAK;AACzC,aAAS,iBAAiB,eAAe,KAAK,YAAY;AAAA,MACxD;AAAA,IAAA,CACD;AACD,aAAS,iBAAiB,cAAc,KAAK,aAAa;AAAA,MACxD;AAAA,IAAA,CACD;AACD,SAAK,WAAA;AACL,aAAS,iBAAiB,cAAc,KAAK,YAAY,EAAE,QAAQ;AAAA,EACrE;AAAA,EAEA,uBAA6B;AAC3B,SAAK,WAAW,MAAA;AAAA,EAClB;AAAA,EAmBA,IAAI,UAAqC;AACvC,UAAM,UAAqC,KAAK,cAAc,SAAS;AACvE,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,GAAG,KAAK,SAAS,oCAAoC;AAAA,IACvE;AACA,YAAQ,KAAK,QAAQ,MAAM,KAAK,YAAA;AAChC,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,UAA8B;AAChC,UAAM,UAA8B,KAAK,cAAc,SAAS;AAChE,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,GAAG,KAAK,SAAS,oCAAoC;AAAA,IACvE;AACA,WAAO;AAAA,EACT;AAMF;AAEA,eAAe,OAAO,gBAAgB,SAAS;"}
@@ -1,4 +1,4 @@
1
- import { m as makeAnchor } from "./utilities-BeWkujCZ.js";
1
+ import { m as makeAnchor } from "./utilities-DXELy_An.js";
2
2
  class DisclosureWidget {
3
3
  constructor(trigger, element, overrides, context = document) {
4
4
  this.init = () => {
@@ -123,4 +123,4 @@ class DisclosureWidget {
123
123
  export {
124
124
  DisclosureWidget as D
125
125
  };
126
- //# sourceMappingURL=disclosure-widget-WwE5XplD.js.map
126
+ //# sourceMappingURL=disclosure-widget-DVpnRsTI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"disclosure-widget-WwE5XplD.js","sources":["../../../src/Utility/Elements/disclosure-widget.ts"],"sourcesContent":["/**\n * Class for a generic Disclosure Widget.\n */\nimport { makeAnchor } from \"../utilities\"\n\ntype DisclosureWidgetOptions = {\n attribute?: string\n shouldPreventDefault?: boolean\n setInitialAttribute?: boolean\n clickEvent?: \"click\" | \"mouseover\"\n}\n\nexport type DisclosureWidgetEvent = {\n isOpen: boolean\n id: string\n options: DisclosureWidgetOptions\n target: Element\n}\n\nexport default class DisclosureWidget {\n options: DisclosureWidgetOptions\n context: Document | Element\n trigger: Element & { disclosureWidget?: DisclosureWidget }\n element: Element\n id: string\n isOpen?: boolean\n attached?: boolean\n\n constructor(\n trigger: Element,\n element: Element,\n overrides?: DisclosureWidgetOptions,\n context: Element | Document = document,\n ) {\n if (!trigger) {\n throw new Error(\"toggle is required.\")\n }\n if (!element) {\n throw new Error(\"element is required.\")\n }\n const options: DisclosureWidgetOptions = {\n attribute: \"inert\",\n shouldPreventDefault: true,\n setInitialAttribute: true,\n clickEvent: \"click\",\n }\n\n this.options = { ...options, ...overrides }\n this.context = context || document\n this.trigger = trigger\n this.element = element\n this.id = this.element.id || this.generatedId()\n }\n\n init = (): void => {\n if (Object.prototype.hasOwnProperty.call(this.trigger, \"disclosureWidget\"))\n return\n const { attribute, setInitialAttribute } = this.options\n this.trigger.disclosureWidget = this\n if (setInitialAttribute) this.element.setAttribute(attribute, \"\")\n this.attach()\n }\n\n handleToggle = (): void => {\n const { attribute, setInitialAttribute } = this.options\n this.element.toggleAttribute(attribute)\n const hasAttribute: boolean = this.element.hasAttribute(attribute)\n this.isOpen = setInitialAttribute ? !hasAttribute : hasAttribute\n this.trigger.setAttribute(\"aria-expanded\", String(this.isOpen))\n const newEvent: CustomEvent<DisclosureWidgetEvent> = new CustomEvent(\n \"disclosure-toggle\",\n {\n bubbles: true,\n cancelable: true,\n detail: {\n isOpen: this.isOpen,\n id: this.id,\n options: this.options,\n target: this.element,\n },\n },\n )\n this.trigger.dispatchEvent(newEvent)\n }\n\n handleMouse = (event: MouseEvent): void => {\n const { currentTarget, type, relatedTarget } = event\n\n if (type === \"mouseover\" || type === \"mouseout\") {\n const triggerParent = this.trigger.parentNode\n if (\n triggerParent !== currentTarget ||\n triggerParent.contains(relatedTarget as HTMLElement)\n )\n return\n } else if (this.trigger !== currentTarget) return\n\n const { shouldPreventDefault } = this.options\n this.handleToggle()\n if (shouldPreventDefault) {\n event.preventDefault()\n event.stopPropagation()\n }\n }\n\n handleKeyboard = (event: KeyboardEvent): void => {\n const { key, target } = event\n if (this.trigger !== target) return\n const { isOpen } = this\n const { shouldPreventDefault } = this.options\n\n switch (key) {\n // Down/Enter should open it.\n case \"ArrowDown\":\n case \"Enter\":\n if (!isOpen) this.handleToggle()\n if (shouldPreventDefault) event.preventDefault()\n break\n\n // Up/Esc should close it.\n case \"ArrowUp\":\n case \"Escape\":\n if (isOpen) this.handleToggle()\n if (shouldPreventDefault) event.preventDefault()\n break\n\n default:\n break\n }\n }\n\n attach = (): void => {\n if (this.attached) return\n const { clickEvent } = this.options\n if (clickEvent === \"mouseover\") {\n const parent = this.trigger.parentNode\n parent.addEventListener(\"mouseover\", this.handleMouse)\n parent.addEventListener(\"mouseout\", this.handleMouse)\n } else {\n this.trigger.addEventListener(\"click\", this.handleMouse)\n }\n this.trigger.addEventListener(\"keydown\", this.handleKeyboard)\n\n this.trigger.setAttribute(\"aria-expanded\", \"false\")\n if (!this.trigger.hasAttribute(\"aria-controls\"))\n this.trigger.setAttribute(\"aria-controls\", this.id)\n this.attached = true\n }\n\n detach = (): void => {\n if (!this.attached) return\n if (this.isOpen) {\n this.handleToggle()\n }\n const { clickEvent } = this.options\n if (clickEvent === \"mouseover\") {\n const parent = this.trigger.parentNode\n parent.removeEventListener(\"mouseover\", this.handleMouse)\n parent.removeEventListener(\"mouseout\", this.handleMouse)\n } else {\n this.trigger.removeEventListener(\"click\", this.handleMouse)\n }\n this.trigger.removeEventListener(\"keydown\", this.handleKeyboard)\n\n this.trigger.removeAttribute(\"aria-expanded\")\n this.attached = false\n }\n\n generatedId = (): string => {\n const string: string | undefined = this.trigger?.textContent?.trim()\n return !string ? \"\" : makeAnchor(string)\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"disclosure-widget-DVpnRsTI.js","sources":["../../../src/Utility/Elements/disclosure-widget.ts"],"sourcesContent":["/**\n * Class for a generic Disclosure Widget.\n */\nimport { makeAnchor } from \"../utilities\"\n\ntype DisclosureWidgetOptions = {\n attribute?: string\n shouldPreventDefault?: boolean\n setInitialAttribute?: boolean\n clickEvent?: \"click\" | \"mouseover\"\n}\n\nexport type DisclosureWidgetEvent = {\n isOpen: boolean\n id: string\n options: DisclosureWidgetOptions\n target: Element\n}\n\nexport default class DisclosureWidget {\n options: DisclosureWidgetOptions\n context: Document | Element\n trigger: Element & { disclosureWidget?: DisclosureWidget }\n element: Element\n id: string\n isOpen?: boolean\n attached?: boolean\n\n constructor(\n trigger: Element,\n element: Element,\n overrides?: DisclosureWidgetOptions,\n context: Element | Document = document,\n ) {\n if (!trigger) {\n throw new Error(\"toggle is required.\")\n }\n if (!element) {\n throw new Error(\"element is required.\")\n }\n const options: DisclosureWidgetOptions = {\n attribute: \"inert\",\n shouldPreventDefault: true,\n setInitialAttribute: true,\n clickEvent: \"click\",\n }\n\n this.options = { ...options, ...overrides }\n this.context = context || document\n this.trigger = trigger\n this.element = element\n this.id = this.element.id || this.generatedId()\n }\n\n init = (): void => {\n if (Object.prototype.hasOwnProperty.call(this.trigger, \"disclosureWidget\"))\n return\n const { attribute, setInitialAttribute } = this.options\n this.trigger.disclosureWidget = this\n if (setInitialAttribute) this.element.setAttribute(attribute, \"\")\n this.attach()\n }\n\n handleToggle = (): void => {\n const { attribute, setInitialAttribute } = this.options\n this.element.toggleAttribute(attribute)\n const hasAttribute: boolean = this.element.hasAttribute(attribute)\n this.isOpen = setInitialAttribute ? !hasAttribute : hasAttribute\n this.trigger.setAttribute(\"aria-expanded\", String(this.isOpen))\n const newEvent: CustomEvent<DisclosureWidgetEvent> = new CustomEvent(\n \"disclosure-toggle\",\n {\n bubbles: true,\n cancelable: true,\n detail: {\n isOpen: this.isOpen,\n id: this.id,\n options: this.options,\n target: this.element,\n },\n },\n )\n this.trigger.dispatchEvent(newEvent)\n }\n\n handleMouse = (event: MouseEvent): void => {\n const { currentTarget, type, relatedTarget } = event\n\n if (type === \"mouseover\" || type === \"mouseout\") {\n const triggerParent = this.trigger.parentNode\n if (\n triggerParent !== currentTarget ||\n triggerParent.contains(relatedTarget as HTMLElement)\n )\n return\n } else if (this.trigger !== currentTarget) return\n\n const { shouldPreventDefault } = this.options\n this.handleToggle()\n if (shouldPreventDefault) {\n event.preventDefault()\n event.stopPropagation()\n }\n }\n\n handleKeyboard = (event: KeyboardEvent): void => {\n const { key, target } = event\n if (this.trigger !== target) return\n const { isOpen } = this\n const { shouldPreventDefault } = this.options\n\n switch (key) {\n // Down/Enter should open it.\n case \"ArrowDown\":\n case \"Enter\":\n if (!isOpen) this.handleToggle()\n if (shouldPreventDefault) event.preventDefault()\n break\n\n // Up/Esc should close it.\n case \"ArrowUp\":\n case \"Escape\":\n if (isOpen) this.handleToggle()\n if (shouldPreventDefault) event.preventDefault()\n break\n\n default:\n break\n }\n }\n\n attach = (): void => {\n if (this.attached) return\n const { clickEvent } = this.options\n if (clickEvent === \"mouseover\") {\n const parent = this.trigger.parentNode\n parent.addEventListener(\"mouseover\", this.handleMouse)\n parent.addEventListener(\"mouseout\", this.handleMouse)\n } else {\n this.trigger.addEventListener(\"click\", this.handleMouse)\n }\n this.trigger.addEventListener(\"keydown\", this.handleKeyboard)\n\n this.trigger.setAttribute(\"aria-expanded\", \"false\")\n if (!this.trigger.hasAttribute(\"aria-controls\"))\n this.trigger.setAttribute(\"aria-controls\", this.id)\n this.attached = true\n }\n\n detach = (): void => {\n if (!this.attached) return\n if (this.isOpen) {\n this.handleToggle()\n }\n const { clickEvent } = this.options\n if (clickEvent === \"mouseover\") {\n const parent = this.trigger.parentNode\n parent.removeEventListener(\"mouseover\", this.handleMouse)\n parent.removeEventListener(\"mouseout\", this.handleMouse)\n } else {\n this.trigger.removeEventListener(\"click\", this.handleMouse)\n }\n this.trigger.removeEventListener(\"keydown\", this.handleKeyboard)\n\n this.trigger.removeAttribute(\"aria-expanded\")\n this.attached = false\n }\n\n generatedId = (): string => {\n const string: string | undefined = this.trigger?.textContent?.trim()\n return !string ? \"\" : makeAnchor(string)\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { m as makeAnchor } from "./utilities-BeWkujCZ.js";
1
+ import { m as makeAnchor } from "./utilities-DXELy_An.js";
2
2
  import { K as Keyboard } from "./keyboard-rvZ4dfGF.js";
3
3
  class DropMenu extends HTMLElement {
4
4
  constructor() {
@@ -129,4 +129,4 @@ customElements.define("mx-dropmenu", DropMenu);
129
129
  export {
130
130
  DropMenu as D
131
131
  };
132
- //# sourceMappingURL=drop-menu.entry-e1iZ4ERw.js.map
132
+ //# sourceMappingURL=drop-menu.entry-B4TtnC50.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"drop-menu.entry-e1iZ4ERw.js","sources":["../../../src/Component/DropMenu/Elements/DropMenu.ts"],"sourcesContent":["/**\n * DropMenu\n * @file Create a DropMenu using the Popover and Anchor APIs\n */\n\nimport { Keyboard, makeAnchor } from \"../../../Utility/utilities\"\n\nexport type DropMenuEvent = CustomEvent<{\n event: MouseEvent | KeyboardEvent\n target: HTMLButtonElement | HTMLAnchorElement\n}>\n\nexport default class DropMenu extends HTMLElement {\n internals_: ElementInternals\n controller: AbortController\n keyboard: Keyboard = new Keyboard()\n closeOnClick: boolean\n\n constructor() {\n super()\n this.internals_ = this.attachInternals()\n this.controller = new AbortController()\n }\n\n async connectedCallback() {\n if (!this.menu || !this.trigger) return\n\n // Polyfill anchor (everywhere so far).\n if (!(\"anchorName\" in document.documentElement.style)) {\n const { default: Polyfills } = await import(\"../polyfills.js\")\n new Polyfills(this.menu)\n }\n // Polyfill popover (FF only)\n if (!Object.hasOwn(HTMLElement, \"popover\")) {\n await import(\"@oddbird/popover-polyfill\")\n }\n this.closeOnClick = this.hasAttribute(\"closeonclick\")\n\n const { signal }: AbortController = this.controller\n document.addEventListener(\n \"click\",\n (event: MouseEvent): void => {\n const { target } = event\n if (\n (target as HTMLElement) !== this.menu &&\n ![...this.items].includes(\n target as HTMLButtonElement | HTMLAnchorElement,\n )\n )\n return\n this.handleSelect(event)\n event.preventDefault()\n },\n {\n signal,\n },\n )\n\n document.addEventListener(\n \"keydown\",\n (event: KeyboardEvent): void => {\n const { target, key } = event\n if (\n (target as HTMLElement) !== this.menu &&\n ![...this.items].includes(\n target as HTMLButtonElement | HTMLAnchorElement,\n )\n )\n return\n if (key === \"Enter\") this.handleSelect(event)\n event.preventDefault()\n },\n {\n signal,\n },\n )\n\n this.keyboard.attachEventListeners(signal)\n this.menu.addEventListener(\"focusin\", this.attachKeyboardMenu, {\n signal,\n })\n this.menu.addEventListener(\"focusout\", this.detachKeyboardMenu, {\n signal,\n })\n this.menu.addEventListener(\"toggle\", this.handleToggle, {\n signal,\n })\n }\n\n disconnectedCallback(): void {\n this.controller.abort()\n this.keyboard.detachMenu()\n }\n\n handleSelect = (event: MouseEvent | KeyboardEvent): void => {\n const target = event.target as HTMLButtonElement | HTMLAnchorElement\n this.items.forEach(item => {\n if (!(item instanceof HTMLButtonElement)) return\n item.setAttribute(\"aria-checked\", String(item === target))\n })\n const newEvent: DropMenuEvent = new CustomEvent(\"drop-menu-select\", {\n bubbles: true,\n cancelable: true,\n detail: {\n event,\n target,\n },\n })\n this.menu.dispatchEvent(newEvent)\n if (this.closeOnClick) this.menu.togglePopover()\n }\n\n handleToggle = ({ newState }: ToggleEvent): void => {\n const handleClose = () => this.menu.togglePopover()\n if (newState === \"open\") {\n this.keyboard.attachPopup(this.menu.id, handleClose)\n } else {\n this.keyboard.detachPopup(this.menu.id)\n }\n }\n\n attachKeyboardMenu = (): void => {\n this.keyboard.attachMenu(this.menu, this.items)\n }\n\n detachKeyboardMenu = (): void => {\n this.keyboard.detachMenu()\n }\n\n get menu(): HTMLDivElement | null {\n const menu: HTMLDivElement | null = this.querySelector(\"[popover]\")\n if (!menu) {\n throw new Error(`${this.localName} must contain a <div popover> element.`)\n }\n menu.id = menu.id || this.generatedId()\n return menu\n }\n\n get items(): NodeListOf<HTMLButtonElement | HTMLAnchorElement> {\n const items: NodeListOf<HTMLButtonElement | HTMLAnchorElement> =\n this.menu.querySelectorAll(\":scope > *\")\n if (!items) {\n throw new Error(`${this.localName} must contain some menu items.`)\n }\n return items\n }\n\n get trigger(): HTMLButtonElement | null {\n const trigger: HTMLButtonElement | null = this.querySelector(\n `[popovertarget=${this.menu?.id}]`,\n )\n if (!trigger) {\n throw new Error(\n `${this.localName} must contain a <button popovertarget=\"${this.menu.id}\">`,\n )\n }\n return trigger\n }\n\n generatedId = (): string => {\n const string: string | undefined = this.trigger?.textContent?.trim()\n return !string ? \"\" : makeAnchor(string)\n }\n}\n\ncustomElements.define(\"mx-dropmenu\", DropMenu)\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"mx-dropmenu\": DropMenu\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drop-menu.entry-B4TtnC50.js","sources":["../../../src/Component/DropMenu/Elements/DropMenu.ts"],"sourcesContent":["/**\n * DropMenu\n * @file Create a DropMenu using the Popover and Anchor APIs\n */\n\nimport { Keyboard, makeAnchor } from \"../../../Utility/utilities\"\n\nexport type DropMenuEvent = CustomEvent<{\n event: MouseEvent | KeyboardEvent\n target: HTMLButtonElement | HTMLAnchorElement\n}>\n\nexport default class DropMenu extends HTMLElement {\n internals_: ElementInternals\n controller: AbortController\n keyboard: Keyboard = new Keyboard()\n closeOnClick: boolean\n\n constructor() {\n super()\n this.internals_ = this.attachInternals()\n this.controller = new AbortController()\n }\n\n async connectedCallback() {\n if (!this.menu || !this.trigger) return\n\n // Polyfill anchor (everywhere so far).\n if (!(\"anchorName\" in document.documentElement.style)) {\n const { default: Polyfills } = await import(\"../polyfills.js\")\n new Polyfills(this.menu)\n }\n // Polyfill popover (FF only)\n if (!Object.hasOwn(HTMLElement, \"popover\")) {\n await import(\"@oddbird/popover-polyfill\")\n }\n this.closeOnClick = this.hasAttribute(\"closeonclick\")\n\n const { signal }: AbortController = this.controller\n document.addEventListener(\n \"click\",\n (event: MouseEvent): void => {\n const { target } = event\n if (\n (target as HTMLElement) !== this.menu &&\n ![...this.items].includes(\n target as HTMLButtonElement | HTMLAnchorElement,\n )\n )\n return\n this.handleSelect(event)\n event.preventDefault()\n },\n {\n signal,\n },\n )\n\n document.addEventListener(\n \"keydown\",\n (event: KeyboardEvent): void => {\n const { target, key } = event\n if (\n (target as HTMLElement) !== this.menu &&\n ![...this.items].includes(\n target as HTMLButtonElement | HTMLAnchorElement,\n )\n )\n return\n if (key === \"Enter\") this.handleSelect(event)\n event.preventDefault()\n },\n {\n signal,\n },\n )\n\n this.keyboard.attachEventListeners(signal)\n this.menu.addEventListener(\"focusin\", this.attachKeyboardMenu, {\n signal,\n })\n this.menu.addEventListener(\"focusout\", this.detachKeyboardMenu, {\n signal,\n })\n this.menu.addEventListener(\"toggle\", this.handleToggle, {\n signal,\n })\n }\n\n disconnectedCallback(): void {\n this.controller.abort()\n this.keyboard.detachMenu()\n }\n\n handleSelect = (event: MouseEvent | KeyboardEvent): void => {\n const target = event.target as HTMLButtonElement | HTMLAnchorElement\n this.items.forEach(item => {\n if (!(item instanceof HTMLButtonElement)) return\n item.setAttribute(\"aria-checked\", String(item === target))\n })\n const newEvent: DropMenuEvent = new CustomEvent(\"drop-menu-select\", {\n bubbles: true,\n cancelable: true,\n detail: {\n event,\n target,\n },\n })\n this.menu.dispatchEvent(newEvent)\n if (this.closeOnClick) this.menu.togglePopover()\n }\n\n handleToggle = ({ newState }: ToggleEvent): void => {\n const handleClose = () => this.menu.togglePopover()\n if (newState === \"open\") {\n this.keyboard.attachPopup(this.menu.id, handleClose)\n } else {\n this.keyboard.detachPopup(this.menu.id)\n }\n }\n\n attachKeyboardMenu = (): void => {\n this.keyboard.attachMenu(this.menu, this.items)\n }\n\n detachKeyboardMenu = (): void => {\n this.keyboard.detachMenu()\n }\n\n get menu(): HTMLDivElement | null {\n const menu: HTMLDivElement | null = this.querySelector(\"[popover]\")\n if (!menu) {\n throw new Error(`${this.localName} must contain a <div popover> element.`)\n }\n menu.id = menu.id || this.generatedId()\n return menu\n }\n\n get items(): NodeListOf<HTMLButtonElement | HTMLAnchorElement> {\n const items: NodeListOf<HTMLButtonElement | HTMLAnchorElement> =\n this.menu.querySelectorAll(\":scope > *\")\n if (!items) {\n throw new Error(`${this.localName} must contain some menu items.`)\n }\n return items\n }\n\n get trigger(): HTMLButtonElement | null {\n const trigger: HTMLButtonElement | null = this.querySelector(\n `[popovertarget=${this.menu?.id}]`,\n )\n if (!trigger) {\n throw new Error(\n `${this.localName} must contain a <button popovertarget=\"${this.menu.id}\">`,\n )\n }\n return trigger\n }\n\n generatedId = (): string => {\n const string: string | undefined = this.trigger?.textContent?.trim()\n return !string ? \"\" : makeAnchor(string)\n }\n}\n\ncustomElements.define(\"mx-dropmenu\", DropMenu)\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"mx-dropmenu\": DropMenu\n }\n}\n"],"names":[],"mappings":";;AAYA,MAAqB,iBAAiB,YAAY;AAAA,EAMhD,cAAc;AACZ,UAAA;AAJF,SAAA,WAAqB,IAAI,SAAA;AA+EzB,SAAA,eAAe,CAAC,UAA4C;AAC1D,YAAM,SAAS,MAAM;AACrB,WAAK,MAAM,QAAQ,CAAA,SAAQ;AACzB,YAAI,EAAE,gBAAgB,mBAAoB;AAC1C,aAAK,aAAa,gBAAgB,OAAO,SAAS,MAAM,CAAC;AAAA,MAC3D,CAAC;AACD,YAAM,WAA0B,IAAI,YAAY,oBAAoB;AAAA,QAClE,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,QAAQ;AAAA,UACN;AAAA,UACA;AAAA,QAAA;AAAA,MACF,CACD;AACD,WAAK,KAAK,cAAc,QAAQ;AAChC,UAAI,KAAK,aAAc,MAAK,KAAK,cAAA;AAAA,IACnC;AAEA,SAAA,eAAe,CAAC,EAAE,eAAkC;AAClD,YAAM,cAAc,MAAM,KAAK,KAAK,cAAA;AACpC,UAAI,aAAa,QAAQ;AACvB,aAAK,SAAS,YAAY,KAAK,KAAK,IAAI,WAAW;AAAA,MACrD,OAAO;AACL,aAAK,SAAS,YAAY,KAAK,KAAK,EAAE;AAAA,MACxC;AAAA,IACF;AAEA,SAAA,qBAAqB,MAAY;AAC/B,WAAK,SAAS,WAAW,KAAK,MAAM,KAAK,KAAK;AAAA,IAChD;AAEA,SAAA,qBAAqB,MAAY;AAC/B,WAAK,SAAS,WAAA;AAAA,IAChB;AAgCA,SAAA,cAAc,MAAc;AAC1B,YAAM,SAA6B,KAAK,SAAS,aAAa,KAAA;AAC9D,aAAO,CAAC,SAAS,KAAK,WAAW,MAAM;AAAA,IACzC;AA9IE,SAAK,aAAa,KAAK,gBAAA;AACvB,SAAK,aAAa,IAAI,gBAAA;AAAA,EACxB;AAAA,EAEA,MAAM,oBAAoB;AACxB,QAAI,CAAC,KAAK,QAAQ,CAAC,KAAK,QAAS;AAGjC,QAAI,EAAE,gBAAgB,SAAS,gBAAgB,QAAQ;AACrD,YAAM,EAAE,SAAS,cAAc,MAAM,OAAO,yBAAiB;AAC7D,UAAI,UAAU,KAAK,IAAI;AAAA,IACzB;AAEA,QAAI,CAAC,OAAO,OAAO,aAAa,SAAS,GAAG;AAC1C,YAAM,OAAO,uBAA2B;AAAA,IAC1C;AACA,SAAK,eAAe,KAAK,aAAa,cAAc;AAEpD,UAAM,EAAE,WAA4B,KAAK;AACzC,aAAS;AAAA,MACP;AAAA,MACA,CAAC,UAA4B;AAC3B,cAAM,EAAE,WAAW;AACnB,YACG,WAA2B,KAAK,QACjC,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE;AAAA,UACf;AAAA,QAAA;AAGF;AACF,aAAK,aAAa,KAAK;AACvB,cAAM,eAAA;AAAA,MACR;AAAA,MACA;AAAA,QACE;AAAA,MAAA;AAAA,IACF;AAGF,aAAS;AAAA,MACP;AAAA,MACA,CAAC,UAA+B;AAC9B,cAAM,EAAE,QAAQ,IAAA,IAAQ;AACxB,YACG,WAA2B,KAAK,QACjC,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE;AAAA,UACf;AAAA,QAAA;AAGF;AACF,YAAI,QAAQ,QAAS,MAAK,aAAa,KAAK;AAC5C,cAAM,eAAA;AAAA,MACR;AAAA,MACA;AAAA,QACE;AAAA,MAAA;AAAA,IACF;AAGF,SAAK,SAAS,qBAAqB,MAAM;AACzC,SAAK,KAAK,iBAAiB,WAAW,KAAK,oBAAoB;AAAA,MAC7D;AAAA,IAAA,CACD;AACD,SAAK,KAAK,iBAAiB,YAAY,KAAK,oBAAoB;AAAA,MAC9D;AAAA,IAAA,CACD;AACD,SAAK,KAAK,iBAAiB,UAAU,KAAK,cAAc;AAAA,MACtD;AAAA,IAAA,CACD;AAAA,EACH;AAAA,EAEA,uBAA6B;AAC3B,SAAK,WAAW,MAAA;AAChB,SAAK,SAAS,WAAA;AAAA,EAChB;AAAA,EAqCA,IAAI,OAA8B;AAChC,UAAM,OAA8B,KAAK,cAAc,WAAW;AAClE,QAAI,CAAC,MAAM;AACT,YAAM,IAAI,MAAM,GAAG,KAAK,SAAS,wCAAwC;AAAA,IAC3E;AACA,SAAK,KAAK,KAAK,MAAM,KAAK,YAAA;AAC1B,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,QAA2D;AAC7D,UAAM,QACJ,KAAK,KAAK,iBAAiB,YAAY;AACzC,QAAI,CAAC,OAAO;AACV,YAAM,IAAI,MAAM,GAAG,KAAK,SAAS,gCAAgC;AAAA,IACnE;AACA,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,UAAoC;AACtC,UAAM,UAAoC,KAAK;AAAA,MAC7C,kBAAkB,KAAK,MAAM,EAAE;AAAA,IAAA;AAEjC,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI;AAAA,QACR,GAAG,KAAK,SAAS,0CAA0C,KAAK,KAAK,EAAE;AAAA,MAAA;AAAA,IAE3E;AACA,WAAO;AAAA,EACT;AAMF;AAEA,eAAe,OAAO,eAAe,QAAQ;"}
@@ -95,6 +95,96 @@ function init(converter, defaultAttributes) {
95
95
  );
96
96
  }
97
97
  init(defaultConverter, { path: "/" });
98
+ class IntersectionLoader {
99
+ constructor(el, callback) {
100
+ this.init = () => {
101
+ this.observer = new IntersectionObserver((items) => {
102
+ items.forEach(({ isIntersecting }) => {
103
+ if (isIntersecting) this.load().catch((error) => this.handleError(error));
104
+ });
105
+ });
106
+ this.observer.observe(this.el);
107
+ this.fallbackBtn?.addEventListener("click", this.handleClick);
108
+ };
109
+ this.load = async () => {
110
+ try {
111
+ await this.callback();
112
+ } catch (error) {
113
+ this.handleError(error);
114
+ }
115
+ this.observer.unobserve(this.el);
116
+ };
117
+ this.handleClick = () => {
118
+ this.load().catch((error) => this.handleError(error));
119
+ };
120
+ this.handleError = (error) => {
121
+ console.error(error);
122
+ this.errorMsg?.removeAttribute("hidden");
123
+ };
124
+ this.el = el;
125
+ this.callback = callback;
126
+ this.fallbackBtn = this.el.querySelector("[data-load-fallback]");
127
+ this.errorMsg = this.el.querySelector("[data-load-error]");
128
+ }
129
+ static {
130
+ this.create = (selector, callback) => {
131
+ if (!Object.hasOwn(window, "once")) return;
132
+ window.once("intersection-loader", selector)?.forEach((el) => {
133
+ const loader = new IntersectionLoader(el, callback);
134
+ loader.init();
135
+ });
136
+ };
137
+ }
138
+ }
139
+ class BreakpointLoader {
140
+ constructor(el, callback, options = { mediaQuery: "(max-width: 720px)" }) {
141
+ this.init = () => {
142
+ this.responsiveCheck(this.breakpoint);
143
+ this.breakpoint.addEventListener("change", this.responsiveCheck);
144
+ this.fallbackBtn?.addEventListener("click", this.handleClick);
145
+ };
146
+ this.responsiveCheck = ({ matches }) => {
147
+ matches && this.load().catch((error) => this.handleError(error));
148
+ };
149
+ this.load = async () => {
150
+ try {
151
+ await this.callback();
152
+ } catch (error) {
153
+ this.handleError(error);
154
+ }
155
+ this.breakpoint.removeEventListener("change", this.responsiveCheck);
156
+ };
157
+ this.handleClick = () => {
158
+ this.load().catch((error) => this.handleError(error));
159
+ };
160
+ this.handleError = (error) => {
161
+ console.error(error);
162
+ this.errorMsg?.removeAttribute("hidden");
163
+ };
164
+ if (!el) {
165
+ throw new Error("Element is null or empty.");
166
+ }
167
+ this.el = el;
168
+ this.callback = callback;
169
+ this.breakpoint = window.matchMedia(options.mediaQuery);
170
+ this.options = { ...options };
171
+ this.fallbackBtn = this.el.querySelector("[data-load-fallback]");
172
+ this.errorMsg = this.el.querySelector("[data-load-error]");
173
+ }
174
+ static {
175
+ this.create = (selector, callback, options = {}) => {
176
+ if (!Object.hasOwn(window, "once")) return;
177
+ window.once("breakpoint-loader", selector)?.forEach((el) => {
178
+ const loader = new BreakpointLoader(
179
+ el,
180
+ callback,
181
+ options
182
+ );
183
+ loader.init();
184
+ });
185
+ };
186
+ }
187
+ }
98
188
  const makeAnchor = (string, length = 20) => {
99
189
  if (typeof string !== "string" || !string) return "";
100
190
  let id = string.toLowerCase().trim().replace(/\s+/g, "-").replace(/[^-a-z0-9]/g, "").replace(/[\n\r]+|[\s]{2,}/g, "");
@@ -152,4 +242,4 @@ export {
152
242
  handleOutsideClick as h,
153
243
  makeAnchor as m
154
244
  };
155
- //# sourceMappingURL=utilities-BeWkujCZ.js.map
245
+ //# sourceMappingURL=utilities-DXELy_An.js.map