@pnx-mixtape/mxds 0.0.15 → 0.0.16
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.
- package/dist/build/accordion.css +113 -1
- package/dist/build/accordion.entry.js +83 -1
- package/dist/build/accordion.entry.js.map +1 -0
- package/dist/build/base.css +1012 -1
- package/dist/build/breadcrumb.css +55 -1
- package/dist/build/button.css +127 -1
- package/dist/build/callout.css +11 -1
- package/dist/build/card.css +160 -1
- package/dist/build/carousel.css +125 -1
- package/dist/build/chunks/Accordion-O-huO4At.js +61 -0
- package/dist/build/chunks/Accordion-O-huO4At.js.map +1 -0
- package/dist/build/chunks/disclosure-widget-CtNx0f8p.js +124 -0
- package/dist/build/chunks/disclosure-widget-CtNx0f8p.js.map +1 -0
- package/dist/build/chunks/drop-menu.entry-BEhZ_Je3.js +132 -0
- package/dist/build/chunks/drop-menu.entry-BEhZ_Je3.js.map +1 -0
- package/dist/build/chunks/keyboard-C73DHu0c.js +101 -0
- package/dist/build/chunks/keyboard-C73DHu0c.js.map +1 -0
- package/dist/build/chunks/polyfills-DoxMZOqh.js +806 -0
- package/dist/build/chunks/polyfills-DoxMZOqh.js.map +1 -0
- package/dist/build/chunks/popover-DzUcnIlX.js +797 -0
- package/dist/build/chunks/popover-DzUcnIlX.js.map +1 -0
- package/dist/build/chunks/utilities-DXELy_An.js +245 -0
- package/dist/build/chunks/utilities-DXELy_An.js.map +1 -0
- package/dist/build/constants.css +151 -1
- package/dist/build/container-grid.css +186 -1
- package/dist/build/content-block.css +36 -1
- package/dist/build/dialog.css +116 -1
- package/dist/build/dialog.entry.js +93 -1
- package/dist/build/dialog.entry.js.map +1 -0
- package/dist/build/drop-menu.css +89 -1
- package/dist/build/drop-menu.entry.js +2 -1
- package/dist/build/drop-menu.entry.js.map +1 -0
- package/dist/build/drupal.css +70 -1
- package/dist/build/filters.css +117 -1
- package/dist/build/filters.entry.js +138 -1
- package/dist/build/filters.entry.js.map +1 -0
- package/dist/build/footer.css +141 -1
- package/dist/build/form.css +505 -1
- package/dist/build/global-alert.css +60 -1
- package/dist/build/global-alert.entry.js +68 -1
- package/dist/build/global-alert.entry.js.map +1 -0
- package/dist/build/grid.css +201 -1
- package/dist/build/header.css +161 -1
- package/dist/build/header.entry.js +103 -1
- package/dist/build/header.entry.js.map +1 -0
- package/dist/build/hero-banner.css +67 -1
- package/dist/build/icon.css +399 -1
- package/dist/build/in-page-alert.css +93 -1
- package/dist/build/in-page-navigation.css +17 -1
- package/dist/build/in-page-navigation.entry.js +99 -1
- package/dist/build/in-page-navigation.entry.js.map +1 -0
- package/dist/build/link-list.css +45 -1
- package/dist/build/list-item.css +29 -1
- package/dist/build/masthead.css +53 -1
- package/dist/build/navigation.css +391 -1
- package/dist/build/navigation.entry.js +124 -1
- package/dist/build/navigation.entry.js.map +1 -0
- package/dist/build/page.css +65 -1
- package/dist/build/pagination.css +117 -1
- package/dist/build/results-bar.css +21 -1
- package/dist/build/section.css +147 -1
- package/dist/build/side-navigation.css +85 -1
- package/dist/build/sidebar.css +53 -1
- package/dist/build/social-links.css +20 -1
- package/dist/build/steps.css +118 -1
- package/dist/build/sticky.css +47 -1
- package/dist/build/sticky.entry.js +60 -1
- package/dist/build/sticky.entry.js.map +1 -0
- package/dist/build/tabs.css +108 -1
- package/dist/build/tabs.entry.js +202 -1
- package/dist/build/tabs.entry.js.map +1 -0
- package/dist/build/tag.css +70 -1
- package/dist/build/utilities.css +178 -1
- package/package.json +11 -4
- package/src/Component/Carousel/Carousel.stories.ts +1 -1
- package/src/Component/DropMenu/drop-menu.css +1 -1
- package/src/Layout/Section/Section.stories.ts +2 -1
- package/src/Layout/Section/section.twig +3 -1
- package/dist/build/chunks/Accordion-RtUfbsTy.js +0 -1
- package/dist/build/chunks/disclosure-widget-CPdkUWkq.js +0 -1
- package/dist/build/chunks/drop-menu.entry-BqBzLfVC.js +0 -1
- package/dist/build/chunks/keyboard-Cs0cduxq.js +0 -1
- package/dist/build/chunks/polyfills-5KNOJw2W.js +0 -1
- package/dist/build/chunks/popover-CiVl-0jk.js +0 -1
- package/dist/build/chunks/utilities-CE6xwgqF.js +0 -2
package/dist/build/filters.css
CHANGED
|
@@ -1 +1,117 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Filters
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
@layer design-system.components {
|
|
6
|
+
.mx-filters {
|
|
7
|
+
display: grid;
|
|
8
|
+
grid-gap: var(--gap);
|
|
9
|
+
gap: var(--gap);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.mx-filters__title {
|
|
13
|
+
--heading-font-size: var(--font-size-l);
|
|
14
|
+
--font-min: calc(
|
|
15
|
+
var(--heading-font-size) - var(--heading-font-size) *
|
|
16
|
+
var(--font-size-diff, 0.3)
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
font-weight: var(--font-weight-bold);
|
|
20
|
+
font-size: clamp(
|
|
21
|
+
max(var(--base-font-size), var(--font-min)),
|
|
22
|
+
var(--font-min) + 1cqi,
|
|
23
|
+
var(--heading-font-size)
|
|
24
|
+
);
|
|
25
|
+
display: flex;
|
|
26
|
+
gap: var(--spacing-s);
|
|
27
|
+
align-items: center;
|
|
28
|
+
min-block-size: 40px;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@media (min-width: 720px) {
|
|
32
|
+
|
|
33
|
+
.mx-filters__title {
|
|
34
|
+
pointer-events: none;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.mx-filters__title .mx-icon {
|
|
39
|
+
margin-inline-start: auto;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@media (min-width: 720px) {
|
|
43
|
+
|
|
44
|
+
.mx-filters__title .mx-icon {
|
|
45
|
+
display: none;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
@media (min-width: 720px) {
|
|
49
|
+
|
|
50
|
+
.mx-filters__title [data-counters] {
|
|
51
|
+
display: none;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.mx-filters__title.mx-accordion__toggle + .mx-filters__form {
|
|
56
|
+
padding-block-start: var(--block-padding, var(--gap));
|
|
57
|
+
}
|
|
58
|
+
.mx-filters__form .mx-accordion__toggle {
|
|
59
|
+
display: flex;
|
|
60
|
+
gap: var(--spacing-s);
|
|
61
|
+
align-items: center;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
:is(.mx-filters__form .mx-accordion__toggle) .mx-icon {
|
|
65
|
+
margin-inline-start: auto;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.mx-filters__form .mx-accordion__content {
|
|
69
|
+
padding-block-start: var(--spacing-xxxs);
|
|
70
|
+
}
|
|
71
|
+
@media (max-width: 719.98px) {
|
|
72
|
+
.mx-filters--right .mx-filters__form {
|
|
73
|
+
background-color: var(--background, var(--colour-background));
|
|
74
|
+
padding-inline: var(
|
|
75
|
+
--gutter,
|
|
76
|
+
max(var(--spacing-s), min(6vw, var(--spacing-l)))
|
|
77
|
+
);
|
|
78
|
+
padding-block-end: var(--block-padding);
|
|
79
|
+
overflow-y: auto;
|
|
80
|
+
position: fixed;
|
|
81
|
+
z-index: 200;
|
|
82
|
+
inset-block: 0;
|
|
83
|
+
inset-inline: 0;
|
|
84
|
+
inline-size: 100vw;
|
|
85
|
+
display: none;
|
|
86
|
+
opacity: 0;
|
|
87
|
+
transform: translateX(100%);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.mx-filters--right [open] .mx-filters__form {
|
|
91
|
+
opacity: 1;
|
|
92
|
+
transform: translateX(0);
|
|
93
|
+
display: block;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@starting-style {
|
|
97
|
+
|
|
98
|
+
.mx-filters--right [open] .mx-filters__form {
|
|
99
|
+
opacity: 0;
|
|
100
|
+
transform: translateX(100%);
|
|
101
|
+
display: block;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
@media (min-width: 720px) {
|
|
107
|
+
.mx-filters--right .mx-filters__form {
|
|
108
|
+
--block-padding: 0;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
:is(.mx-filters--right .mx-filters__form) .mx-filters__title {
|
|
112
|
+
display: none;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbHRlcnMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztFQUVFOztBQUVGO0VBQ0U7SUFDRSxhQUFhO0lBQ2Isb0JBQWU7SUFBZixlQUFlO0VBQ2pCOztFQUVBO0lBQ0UsdUNBQXVDO0lBQ3ZDOzs7S0FHQzs7SUFFRCxvQ0FBb0M7SUFDcEM7Ozs7S0FJQztJQUNELGFBQWE7SUFDYixxQkFBcUI7SUFDckIsbUJBQW1CO0lBQ25CLG9CQUFvQjtFQXVCdEI7O0lBckJFOztFQWxCRjtNQW1CSSxvQkFBb0I7RUFvQnhCO0lBbkJFOztJQUVBO01BQ0UseUJBQXlCO0lBSzNCOztNQUhFOztJQUhGO1FBSUksYUFBYTtJQUVqQjtNQURFO01BSUE7O0lBREY7UUFFSSxhQUFhO0lBRWpCO01BREU7O0lBR0Y7TUFDRSxxREFBcUQ7SUFDdkQ7SUFJQTtNQUNFLGFBQWE7TUFDYixxQkFBcUI7TUFDckIsbUJBQW1CO0lBS3JCOztNQUhFO1FBQ0UseUJBQXlCO01BQzNCOztJQUdGO01BQ0Usd0NBQXdDO0lBQzFDO0lBSUE7TUFDRTtRQUNFLDZEQUE2RDtRQUM3RDs7O1NBR0M7UUFDRCx1Q0FBdUM7UUFDdkMsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixZQUFZO1FBQ1osY0FBYztRQUNkLGVBQWU7UUFDZixrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLFVBQVU7UUFDViwyQkFBMkI7TUFDN0I7O01BRUE7UUFDRSxVQUFVO1FBQ1Ysd0JBQXdCO1FBQ3hCLGNBQWM7TUFPaEI7O1FBTEU7O01BTEY7VUFNSSxVQUFVO1VBQ1YsMkJBQTJCO1VBQzNCLGNBQWM7TUFFbEI7UUFERTtJQUVKOztJQUVBO01BQ0U7UUFDRSxrQkFBa0I7TUFLcEI7O1FBSEU7VUFDRSxhQUFhO1FBQ2Y7SUFFSjtBQUVKIiwiZmlsZSI6ImZpbHRlcnMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGaWx0ZXJzXG4gKi9cblxuQGxheWVyIGRlc2lnbi1zeXN0ZW0uY29tcG9uZW50cyB7XG4gIC5teC1maWx0ZXJzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogdmFyKC0tZ2FwKTtcbiAgfVxuXG4gIC5teC1maWx0ZXJzX190aXRsZSB7XG4gICAgLS1oZWFkaW5nLWZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWwpO1xuICAgIC0tZm9udC1taW46IGNhbGMoXG4gICAgICB2YXIoLS1oZWFkaW5nLWZvbnQtc2l6ZSkgLSB2YXIoLS1oZWFkaW5nLWZvbnQtc2l6ZSkgKlxuICAgICAgICB2YXIoLS1mb250LXNpemUtZGlmZiwgMC4zKVxuICAgICk7XG5cbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gICAgZm9udC1zaXplOiBjbGFtcChcbiAgICAgIG1heCh2YXIoLS1iYXNlLWZvbnQtc2l6ZSksIHZhcigtLWZvbnQtbWluKSksXG4gICAgICB2YXIoLS1mb250LW1pbikgKyAxY3FpLFxuICAgICAgdmFyKC0taGVhZGluZy1mb250LXNpemUpXG4gICAgKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tc3BhY2luZy1zKTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1pbi1ibG9jay1zaXplOiA0MHB4O1xuXG4gICAgQG1lZGlhICgtLW1lZGl1bS11cCkge1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgJiAubXgtaWNvbiB7XG4gICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xuXG4gICAgICBAbWVkaWEgKC0tbWVkaXVtLXVwKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiBbZGF0YS1jb3VudGVyc10ge1xuICAgICAgQG1lZGlhICgtLW1lZGl1bS11cCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubXgtYWNjb3JkaW9uX190b2dnbGUgKyAubXgtZmlsdGVyc19fZm9ybSB7XG4gICAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1ibG9jay1wYWRkaW5nLCB2YXIoLS1nYXApKTtcbiAgICB9XG4gIH1cblxuICAubXgtZmlsdGVyc19fZm9ybSB7XG4gICAgJiAubXgtYWNjb3JkaW9uX190b2dnbGUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGdhcDogdmFyKC0tc3BhY2luZy1zKTtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICYgLm14LWljb24ge1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICYgLm14LWFjY29yZGlvbl9fY29udGVudCB7XG4gICAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1zcGFjaW5nLXh4eHMpO1xuICAgIH1cbiAgfVxuXG4gIC5teC1maWx0ZXJzLS1yaWdodCB7XG4gICAgQG1lZGlhICgtLW1lZGl1bS1kb3duKSB7XG4gICAgICAmIC5teC1maWx0ZXJzX19mb3JtIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZCwgdmFyKC0tY29sb3VyLWJhY2tncm91bmQpKTtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IHZhcihcbiAgICAgICAgICAtLWd1dHRlcixcbiAgICAgICAgICBjbGFtcCh2YXIoLS1zcGFjaW5nLXMpLCA2dncsIHZhcigtLXNwYWNpbmctbCkpXG4gICAgICAgICk7XG4gICAgICAgIHBhZGRpbmctYmxvY2stZW5kOiB2YXIoLS1ibG9jay1wYWRkaW5nKTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB6LWluZGV4OiAyMDA7XG4gICAgICAgIGluc2V0LWJsb2NrOiAwO1xuICAgICAgICBpbnNldC1pbmxpbmU6IDA7XG4gICAgICAgIGlubGluZS1zaXplOiAxMDB2dztcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgICAgfVxuXG4gICAgICAmIFtvcGVuXSAubXgtZmlsdGVyc19fZm9ybSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgQHN0YXJ0aW5nLXN0eWxlIHtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAoLS1tZWRpdW0tdXApIHtcbiAgICAgICYgLm14LWZpbHRlcnNfX2Zvcm0ge1xuICAgICAgICAtLWJsb2NrLXBhZGRpbmc6IDA7XG5cbiAgICAgICAgJiAubXgtZmlsdGVyc19fdGl0bGUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ== */
|
|
@@ -1 +1,138 @@
|
|
|
1
|
-
import{A as
|
|
1
|
+
import { A as Accordion } from "./chunks/Accordion-O-huO4At.js";
|
|
2
|
+
class AccordionMobile extends Accordion {
|
|
3
|
+
constructor() {
|
|
4
|
+
super();
|
|
5
|
+
this.handleBreakpoint = ({
|
|
6
|
+
matches
|
|
7
|
+
}) => {
|
|
8
|
+
if (!this.details) return;
|
|
9
|
+
this.details.toggleAttribute("open", !matches);
|
|
10
|
+
};
|
|
11
|
+
this.mq = this.getAttribute("mq") || "(max-width: 720px)";
|
|
12
|
+
}
|
|
13
|
+
connectedCallback() {
|
|
14
|
+
this.handleBreakpoint(this.breakpoint);
|
|
15
|
+
const { signal } = this.controller;
|
|
16
|
+
this.breakpoint.addEventListener("change", this.handleBreakpoint, {
|
|
17
|
+
signal
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
disconnectedCallback() {
|
|
21
|
+
this.controller.abort();
|
|
22
|
+
}
|
|
23
|
+
get breakpoint() {
|
|
24
|
+
return window.matchMedia(this.mq);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
customElements.define("mx-accordionmobile", AccordionMobile);
|
|
28
|
+
class Filters extends HTMLElement {
|
|
29
|
+
constructor() {
|
|
30
|
+
super();
|
|
31
|
+
this.handleClose = (event) => {
|
|
32
|
+
if (!this.details) return;
|
|
33
|
+
this.details.open = false;
|
|
34
|
+
event.preventDefault();
|
|
35
|
+
};
|
|
36
|
+
this.handleShow = (event) => {
|
|
37
|
+
event.preventDefault();
|
|
38
|
+
const wrapper = this.showBtn.previousElementSibling;
|
|
39
|
+
wrapper.removeAttribute("hidden");
|
|
40
|
+
const lastVisible = wrapper.previousElementSibling;
|
|
41
|
+
const input = lastVisible.querySelector("input");
|
|
42
|
+
if (!input) return;
|
|
43
|
+
input.focus({ preventScroll: true });
|
|
44
|
+
setTimeout(() => {
|
|
45
|
+
this.showBtn.setAttribute("hidden", "");
|
|
46
|
+
}, 100);
|
|
47
|
+
};
|
|
48
|
+
this.handleReset = () => {
|
|
49
|
+
this.entries.forEach((entry, key) => {
|
|
50
|
+
this.entries.set(key, { ...entry, count: null });
|
|
51
|
+
if (entry.counter) entry.counter.textContent = "";
|
|
52
|
+
});
|
|
53
|
+
this.setAttribute("count", "0");
|
|
54
|
+
};
|
|
55
|
+
this.handleCounters = () => {
|
|
56
|
+
const formData = new FormData(this.form, this.submitBtn);
|
|
57
|
+
this.entries.forEach((entry, key) => {
|
|
58
|
+
const { length } = formData.getAll(key).filter(Boolean);
|
|
59
|
+
const count = length > 0 ? length : null;
|
|
60
|
+
this.entries.set(key, { ...entry, count });
|
|
61
|
+
if (entry.counter) entry.counter.textContent = count?.toString() || "";
|
|
62
|
+
});
|
|
63
|
+
const totalCount = [...this.entries].filter(([, item]) => item.count).length;
|
|
64
|
+
this.setAttribute("count", totalCount.toString());
|
|
65
|
+
};
|
|
66
|
+
this.internals_ = this.attachInternals();
|
|
67
|
+
this.controller = new AbortController();
|
|
68
|
+
}
|
|
69
|
+
static {
|
|
70
|
+
this.observedAttributes = ["count"];
|
|
71
|
+
}
|
|
72
|
+
connectedCallback() {
|
|
73
|
+
if (!this.items) return;
|
|
74
|
+
const { signal } = this.controller;
|
|
75
|
+
this.closeBtn?.addEventListener("click", this.handleClose, {
|
|
76
|
+
signal
|
|
77
|
+
});
|
|
78
|
+
this.showBtn?.addEventListener("click", this.handleShow, {
|
|
79
|
+
signal
|
|
80
|
+
});
|
|
81
|
+
this.handleCounters();
|
|
82
|
+
this.addEventListener("change", this.handleCounters, { signal });
|
|
83
|
+
this.form?.addEventListener("submit", this.handleCounters, { signal });
|
|
84
|
+
this.form?.addEventListener("reset", this.handleReset, { signal });
|
|
85
|
+
}
|
|
86
|
+
disconnectedCallback() {
|
|
87
|
+
this.controller.abort();
|
|
88
|
+
}
|
|
89
|
+
attributeChangedCallback(name, oldValue, newValue) {
|
|
90
|
+
if (name === "count" && oldValue !== newValue) {
|
|
91
|
+
const qualifier = parseInt(newValue, 10) > 0;
|
|
92
|
+
this.resetBtn?.toggleAttribute("disabled", !qualifier);
|
|
93
|
+
this.submitBtn?.toggleAttribute("disabled", !qualifier);
|
|
94
|
+
if (!this.allCounter) return;
|
|
95
|
+
this.allCounter.textContent = qualifier ? newValue : "";
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
get items() {
|
|
99
|
+
const items = this.querySelectorAll(".mx-filter-item");
|
|
100
|
+
if (!items) {
|
|
101
|
+
throw new Error(
|
|
102
|
+
`${this.localName} must contain a .mx-filter-item element.`
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
this.entries = /* @__PURE__ */ new Map();
|
|
106
|
+
items.forEach((item) => {
|
|
107
|
+
const key = item.querySelector("input, select")?.getAttribute("name");
|
|
108
|
+
this.entries.set(key, {
|
|
109
|
+
item,
|
|
110
|
+
counter: item.querySelector("[data-counter]")
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
return items;
|
|
114
|
+
}
|
|
115
|
+
get details() {
|
|
116
|
+
return this.querySelector("mx-accordionmobile > details");
|
|
117
|
+
}
|
|
118
|
+
get closeBtn() {
|
|
119
|
+
return this.details?.querySelector("button[data-close]");
|
|
120
|
+
}
|
|
121
|
+
get form() {
|
|
122
|
+
return this.querySelector("form");
|
|
123
|
+
}
|
|
124
|
+
get resetBtn() {
|
|
125
|
+
return this.querySelector("button[type='reset']");
|
|
126
|
+
}
|
|
127
|
+
get submitBtn() {
|
|
128
|
+
return this.querySelector("button[type='submit']");
|
|
129
|
+
}
|
|
130
|
+
get showBtn() {
|
|
131
|
+
return this.querySelector("button[data-show]");
|
|
132
|
+
}
|
|
133
|
+
get allCounter() {
|
|
134
|
+
return this.querySelector("[data-counters]");
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
customElements.define("mx-filters", Filters);
|
|
138
|
+
//# sourceMappingURL=filters.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filters.entry.js","sources":["../../src/Component/Accordion/Elements/AccordionMobile.ts","../../src/Component/Filters/Elements/Filters.ts"],"sourcesContent":["/**\n * AccordionMobile\n * @file Support a mobile only <details> element, that opens at a breakpoint.\n */\n\nimport Accordion from \"./Accordion\"\n\nexport default class AccordionMobile extends Accordion {\n mq: string\n toggleAttribute!: Element[\"toggleAttribute\"]\n\n constructor() {\n super()\n this.mq = this.getAttribute(\"mq\") || \"(max-width: 720px)\"\n }\n\n connectedCallback(): void {\n this.handleBreakpoint(this.breakpoint)\n const { signal }: AbortController = this.controller\n this.breakpoint.addEventListener(\"change\", this.handleBreakpoint, {\n signal,\n })\n }\n\n disconnectedCallback(): void {\n this.controller.abort()\n }\n\n handleBreakpoint = ({\n matches,\n }: MediaQueryList | MediaQueryListEvent): void => {\n if (!this.details) return\n this.details.toggleAttribute(\"open\", !matches)\n }\n\n get breakpoint(): MediaQueryList {\n return window.matchMedia(this.mq)\n }\n}\n\ncustomElements.define(\"mx-accordionmobile\", AccordionMobile)\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"mx-accordionmobile\": AccordionMobile\n }\n}\n","/**\n * Filters\n * @file Support filter count elements and closing the \"right\" variant on mobile..\n */\n\nimport \"../../Accordion/Elements/Accordion\"\nimport \"../../Accordion/Elements/AccordionMobile\"\n\ntype EntryType = {\n item: HTMLElement\n counter?: HTMLSpanElement\n count?: number\n}\n\nexport default class Filters extends HTMLElement {\n internals_: ElementInternals\n controller: AbortController\n entries?: Map<string, EntryType>\n\n static observedAttributes = [\"count\"]\n\n constructor() {\n super()\n this.internals_ = this.attachInternals()\n this.controller = new AbortController()\n }\n\n connectedCallback(): void {\n if (!this.items) return\n\n const { signal }: AbortController = this.controller\n this.closeBtn?.addEventListener(\"click\", this.handleClose, {\n signal,\n })\n this.showBtn?.addEventListener(\"click\", this.handleShow, {\n signal,\n })\n\n this.handleCounters()\n this.addEventListener(\"change\", this.handleCounters, { signal })\n this.form?.addEventListener(\"submit\", this.handleCounters, { signal })\n this.form?.addEventListener(\"reset\", this.handleReset, { signal })\n }\n\n disconnectedCallback(): void {\n this.controller.abort()\n }\n\n attributeChangedCallback(\n name: string,\n oldValue: string,\n newValue: string,\n ): void {\n if (name === \"count\" && oldValue !== newValue) {\n const qualifier = parseInt(newValue, 10) > 0\n this.resetBtn?.toggleAttribute(\"disabled\", !qualifier)\n this.submitBtn?.toggleAttribute(\"disabled\", !qualifier)\n if (!this.allCounter) return\n this.allCounter.textContent = qualifier ? newValue : \"\"\n }\n }\n\n handleClose = (event: MouseEvent): void => {\n if (!this.details) return\n this.details.open = false\n event.preventDefault()\n }\n\n handleShow = (event: MouseEvent): void => {\n event.preventDefault()\n const wrapper = this.showBtn.previousElementSibling\n wrapper.removeAttribute(\"hidden\")\n const lastVisible = wrapper.previousElementSibling\n const input = lastVisible.querySelector(\"input\")\n if (!input) return\n input.focus({ preventScroll: true })\n setTimeout(() => {\n this.showBtn.setAttribute(\"hidden\", \"\")\n }, 100)\n }\n\n handleReset = (): void => {\n this.entries.forEach((entry, key): void => {\n this.entries.set(key, { ...entry, count: null })\n if (entry.counter) entry.counter.textContent = \"\"\n })\n this.setAttribute(\"count\", \"0\")\n }\n\n handleCounters = (): void => {\n const formData = new FormData(this.form, this.submitBtn)\n this.entries.forEach((entry, key): void => {\n const { length } = formData.getAll(key).filter(Boolean)\n const count = length > 0 ? length : null\n this.entries.set(key, { ...entry, count })\n if (entry.counter) entry.counter.textContent = count?.toString() || \"\"\n })\n\n const totalCount = [...this.entries].filter(([, item]) => item.count).length\n this.setAttribute(\"count\", totalCount.toString())\n }\n\n get items(): NodeListOf<HTMLElement> | null {\n const items: NodeListOf<HTMLElement> =\n this.querySelectorAll(\".mx-filter-item\")\n if (!items) {\n throw new Error(\n `${this.localName} must contain a .mx-filter-item element.`,\n )\n }\n this.entries = new Map()\n items.forEach(item => {\n const key = item.querySelector(\"input, select\")?.getAttribute(\"name\")\n this.entries.set(key, {\n item,\n counter: item.querySelector(\"[data-counter]\"),\n })\n })\n return items\n }\n\n get details(): HTMLDetailsElement | null {\n return this.querySelector(\"mx-accordionmobile > details\")\n }\n\n get closeBtn(): HTMLButtonElement | null {\n return this.details?.querySelector(\"button[data-close]\")\n }\n\n get form(): HTMLFormElement | null {\n return this.querySelector(\"form\")\n }\n\n get resetBtn(): HTMLButtonElement | null {\n return this.querySelector(\"button[type='reset']\")\n }\n\n get submitBtn(): HTMLButtonElement | null {\n return this.querySelector(\"button[type='submit']\")\n }\n\n get showBtn(): HTMLButtonElement | null {\n return this.querySelector(\"button[data-show]\")\n }\n\n get allCounter(): HTMLSpanElement | null {\n return this.querySelector(\"[data-counters]\")\n }\n}\n\ncustomElements.define(\"mx-filters\", Filters)\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"mx-filters\": Filters\n }\n}\n"],"names":[],"mappings":"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"}
|
package/dist/build/footer.css
CHANGED
|
@@ -1 +1,141 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Global Footer
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
@layer design-system.layouts {
|
|
6
|
+
.mx-footer {
|
|
7
|
+
position: sticky;
|
|
8
|
+
inset-block-start: 100vh;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.mx-footer__inner {
|
|
12
|
+
display: grid;
|
|
13
|
+
grid-template-areas: "brand" "social" "navigation" "copyright" "links";
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@media (min-width: 720px) {
|
|
17
|
+
|
|
18
|
+
.mx-footer__inner {
|
|
19
|
+
grid-template-areas: "brand navigation" "social navigation" "copyright links";
|
|
20
|
+
gap: 0;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.mx-footer__inner:has(.mx-footer__aoc) {
|
|
25
|
+
grid-template-areas: "aoc" "brand" "social" "navigation" "copyright" "links";
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@media (min-width: 720px) {
|
|
29
|
+
|
|
30
|
+
.mx-footer__inner:has(.mx-footer__aoc) {
|
|
31
|
+
grid-template-areas: "aoc aoc" "brand navigation" "social navigation" "copyright links";
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.mx-footer__inner .mx-logo {
|
|
36
|
+
grid-area: brand;
|
|
37
|
+
margin-block-end: var(--gap);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.mx-footer__inner .mx-social-links {
|
|
41
|
+
grid-area: social;
|
|
42
|
+
align-self: end;
|
|
43
|
+
display: flex;
|
|
44
|
+
gap: var(--spacing-xxxs);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.mx-footer__inner .mx-footer__copyright {
|
|
48
|
+
grid-area: copyright;
|
|
49
|
+
align-self: end;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
:is(.mx-footer__inner .mx-footer__copyright):not(:first-child) {
|
|
53
|
+
padding-block-start: var(--spacing-s);
|
|
54
|
+
margin-block-start: var(--gap);
|
|
55
|
+
}
|
|
56
|
+
@media (min-width: 720px) {
|
|
57
|
+
|
|
58
|
+
:is(.mx-footer__inner .mx-footer__copyright):not(:first-child) + .mx-footer__links {
|
|
59
|
+
padding-block-start: var(--spacing-s);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.mx-footer__inner .mx-footer__links {
|
|
64
|
+
grid-area: links;
|
|
65
|
+
align-self: end;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
@media (min-width: 720px) {
|
|
69
|
+
|
|
70
|
+
.mx-footer__inner .mx-footer__links {
|
|
71
|
+
justify-content: end;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
:is(.mx-footer__inner .mx-footer__links):not(:first-child) {
|
|
76
|
+
margin-block-start: var(--gap);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.mx-footer__aoc {
|
|
80
|
+
grid-area: aoc;
|
|
81
|
+
padding-block-end: var(--footer-row-gap, var(--spacing-xxl));
|
|
82
|
+
margin-block-end: var(--gap);
|
|
83
|
+
text-align: center;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.mx-nav--footer {
|
|
87
|
+
grid-area: navigation;
|
|
88
|
+
margin-block: var(--spacing-xxxl) var(--spacing-l);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@media (min-width: 720px) {
|
|
92
|
+
|
|
93
|
+
.mx-nav--footer {
|
|
94
|
+
justify-self: end;
|
|
95
|
+
margin-block: 0;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.mx-nav--footer:not(:has(.mx-nav__level-2)) ul {
|
|
100
|
+
flex-flow: row wrap;
|
|
101
|
+
align-items: center;
|
|
102
|
+
gap: var(--spacing-l) var(--spacing-xxxl);
|
|
103
|
+
}
|
|
104
|
+
.mx-nav--footer:has(.mx-nav__level-2) ul {
|
|
105
|
+
display: grid;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.mx-nav--footer:has(.mx-nav__level-2) .mx-nav__level-1 {
|
|
109
|
+
gap: var(--spacing-l) var(--spacing-xxxl);
|
|
110
|
+
grid-template-columns: 1fr 1fr;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
@media (min-width: 720px) {
|
|
114
|
+
|
|
115
|
+
.mx-nav--footer:has(.mx-nav__level-2) .mx-nav__level-1 {
|
|
116
|
+
grid-template-columns: 1fr 1fr 1fr;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
:is(.mx-nav--footer:has(.mx-nav__level-2) .mx-nav__level-1) > li > a {
|
|
121
|
+
display: inline-block;
|
|
122
|
+
margin-block-end: var(--spacing-l);
|
|
123
|
+
font-weight: var(--font-weight-bold);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.mx-nav--footer:has(.mx-nav__level-2) .mx-nav__level-2 {
|
|
127
|
+
gap: var(--spacing-xs);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.mx-nav--footer .mx-nav__toggle {
|
|
131
|
+
display: none;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
@media print {
|
|
136
|
+
.mx-footer {
|
|
137
|
+
display: none;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvb3Rlci5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0VBRUU7O0FBRUY7RUFDRTtJQUNFLGdCQUFnQjtJQUNoQix3QkFBd0I7RUFDMUI7O0VBRUE7SUFDRSxhQUFhO0lBQ2Isc0VBQXNFO0VBdUR4RTs7SUFyREU7O0VBSkY7TUFLSSw2RUFBNkU7TUFDN0UsTUFBTTtFQW1EVjtJQWxERTs7SUFFQTtNQUNFLDRFQUE0RTtJQUs5RTs7TUFIRTs7SUFIRjtRQUlJLHVGQUF1RjtJQUUzRjtNQURFOztJQUdGO01BQ0UsZ0JBQWdCO01BQ2hCLDRCQUE0QjtJQUM5Qjs7SUFFQTtNQUNFLGlCQUFpQjtNQUNqQixlQUFlO01BQ2YsYUFBYTtNQUNiLHdCQUF3QjtJQUMxQjs7SUFFQTtNQUNFLG9CQUFvQjtNQUNwQixlQUFlO0lBWWpCOztNQVZFO1FBQ0UscUNBQXFDO1FBQ3JDLDhCQUE4QjtNQU9oQztVQUpJOztRQURGO1lBRUkscUNBQXFDO1FBRXpDO1VBREU7O0lBS047TUFDRSxnQkFBZ0I7TUFDaEIsZUFBZTtJQVNqQjs7TUFQRTs7SUFKRjtRQUtJLG9CQUFvQjtJQU14QjtNQUxFOztNQUVBO1FBQ0UsOEJBQThCO01BQ2hDOztFQUlKO0lBQ0UsY0FBYztJQUNkLDREQUE0RDtJQUM1RCw0QkFBNEI7SUFDNUIsa0JBQWtCO0VBQ3BCOztFQUVBO0lBQ0UscUJBQXFCO0lBQ3JCLGtEQUFrRDtFQXlDcEQ7O0lBdkNFOztFQUpGO01BS0ksaUJBQWlCO01BQ2pCLGVBQWU7RUFxQ25CO0lBcENFOztJQUVBO01BQ0UsbUJBQW1CO01BQ25CLG1CQUFtQjtNQUNuQix5Q0FBeUM7SUFDM0M7TUFHRTtRQUNFLGFBQWE7TUFDZjs7TUFFQTtRQUNFLHlDQUF5QztRQUN6Qyw4QkFBOEI7TUFXaEM7O1FBVEU7O01BSkY7VUFLSSxrQ0FBa0M7TUFRdEM7UUFQRTs7UUFFQTtVQUNFLHFCQUFxQjtVQUNyQixrQ0FBa0M7VUFDbEMsb0NBQW9DO1FBQ3RDOztNQUdGO1FBQ0Usc0JBQXNCO01BQ3hCOztJQUdGO01BQ0UsYUFBYTtJQUNmO0FBRUo7O0FBRUE7RUFDRTtJQUNFLGFBQWE7RUFDZjtBQUNGIiwiZmlsZSI6ImZvb3Rlci5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdsb2JhbCBGb290ZXJcbiAqL1xuXG5AbGF5ZXIgZGVzaWduLXN5c3RlbS5sYXlvdXRzIHtcbiAgLm14LWZvb3RlciB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICBpbnNldC1ibG9jay1zdGFydDogMTAwdmg7XG4gIH1cblxuICAubXgtZm9vdGVyX19pbm5lciB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWFyZWFzOiBcImJyYW5kXCIgXCJzb2NpYWxcIiBcIm5hdmlnYXRpb25cIiBcImNvcHlyaWdodFwiIFwibGlua3NcIjtcblxuICAgIEBtZWRpYSAoLS1tZWRpdW0tdXApIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwiYnJhbmQgbmF2aWdhdGlvblwiIFwic29jaWFsIG5hdmlnYXRpb25cIiBcImNvcHlyaWdodCBsaW5rc1wiO1xuICAgICAgZ2FwOiAwO1xuICAgIH1cblxuICAgICY6aGFzKC5teC1mb290ZXJfX2FvYykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJhb2NcIiBcImJyYW5kXCIgXCJzb2NpYWxcIiBcIm5hdmlnYXRpb25cIiBcImNvcHlyaWdodFwiIFwibGlua3NcIjtcblxuICAgICAgQG1lZGlhICgtLW1lZGl1bS11cCkge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWFyZWFzOiBcImFvYyBhb2NcIiBcImJyYW5kIG5hdmlnYXRpb25cIiBcInNvY2lhbCBuYXZpZ2F0aW9uXCIgXCJjb3B5cmlnaHQgbGlua3NcIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmIC5teC1sb2dvIHtcbiAgICAgIGdyaWQtYXJlYTogYnJhbmQ7XG4gICAgICBtYXJnaW4tYmxvY2stZW5kOiB2YXIoLS1nYXApO1xuICAgIH1cblxuICAgICYgLm14LXNvY2lhbC1saW5rcyB7XG4gICAgICBncmlkLWFyZWE6IHNvY2lhbDtcbiAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBnYXA6IHZhcigtLXNwYWNpbmcteHh4cyk7XG4gICAgfVxuXG4gICAgJiAubXgtZm9vdGVyX19jb3B5cmlnaHQge1xuICAgICAgZ3JpZC1hcmVhOiBjb3B5cmlnaHQ7XG4gICAgICBhbGlnbi1zZWxmOiBlbmQ7XG5cbiAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1zcGFjaW5nLXMpO1xuICAgICAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IHZhcigtLWdhcCk7XG5cbiAgICAgICAgJiArIC5teC1mb290ZXJfX2xpbmtzIHtcbiAgICAgICAgICBAbWVkaWEgKC0tbWVkaXVtLXVwKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1zcGFjaW5nLXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYgLm14LWZvb3Rlcl9fbGlua3Mge1xuICAgICAgZ3JpZC1hcmVhOiBsaW5rcztcbiAgICAgIGFsaWduLXNlbGY6IGVuZDtcblxuICAgICAgQG1lZGlhICgtLW1lZGl1bS11cCkge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGVuZDtcbiAgICAgIH1cblxuICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgIG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tZ2FwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubXgtZm9vdGVyX19hb2Mge1xuICAgIGdyaWQtYXJlYTogYW9jO1xuICAgIHBhZGRpbmctYmxvY2stZW5kOiB2YXIoLS1mb290ZXItcm93LWdhcCwgdmFyKC0tc3BhY2luZy14eGwpKTtcbiAgICBtYXJnaW4tYmxvY2stZW5kOiB2YXIoLS1nYXApO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5teC1uYXYtLWZvb3RlciB7XG4gICAgZ3JpZC1hcmVhOiBuYXZpZ2F0aW9uO1xuICAgIG1hcmdpbi1ibG9jazogdmFyKC0tc3BhY2luZy14eHhsKSB2YXIoLS1zcGFjaW5nLWwpO1xuXG4gICAgQG1lZGlhICgtLW1lZGl1bS11cCkge1xuICAgICAganVzdGlmeS1zZWxmOiBlbmQ7XG4gICAgICBtYXJnaW4tYmxvY2s6IDA7XG4gICAgfVxuXG4gICAgJjpub3QoOmhhcygubXgtbmF2X19sZXZlbC0yKSkgdWwge1xuICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IHZhcigtLXNwYWNpbmctbCkgdmFyKC0tc3BhY2luZy14eHhsKTtcbiAgICB9XG5cbiAgICAmOmhhcygubXgtbmF2X19sZXZlbC0yKSB7XG4gICAgICAmIHVsIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIH1cblxuICAgICAgJiAubXgtbmF2X19sZXZlbC0xIHtcbiAgICAgICAgZ2FwOiB2YXIoLS1zcGFjaW5nLWwpIHZhcigtLXNwYWNpbmcteHh4bCk7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcblxuICAgICAgICBAbWVkaWEgKC0tbWVkaXVtLXVwKSB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYgPiBsaSA+IGEge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBtYXJnaW4tYmxvY2stZW5kOiB2YXIoLS1zcGFjaW5nLWwpO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmIC5teC1uYXZfX2xldmVsLTIge1xuICAgICAgICBnYXA6IHZhcigtLXNwYWNpbmcteHMpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYgLm14LW5hdl9fdG9nZ2xlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSBwcmludCB7XG4gIC5teC1mb290ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiJdfQ== */
|