payload 2.0.7 → 2.0.8
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/.release-it.js +51 -0
- package/components/index.js +1 -1
- package/dist/admin/components/elements/Autosave/index.d.ts.map +1 -1
- package/dist/admin/components/elements/Autosave/index.js +3 -2
- package/dist/admin/components/elements/DocumentControls/index.d.ts +2 -1
- package/dist/admin/components/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/admin/components/elements/DocumentControls/index.js +1 -1
- package/dist/admin/components/elements/DocumentControls/index.scss +42 -16
- package/dist/admin/components/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/admin/components/elements/DocumentDrawer/DrawerContent.js +6 -2
- package/dist/admin/components/elements/DocumentHeader/Tabs/index.scss +18 -0
- package/dist/admin/components/elements/EditUpload/index.d.ts.map +1 -1
- package/dist/admin/components/elements/EditUpload/index.js +7 -3
- package/dist/admin/components/elements/EditUpload/index.scss +0 -5
- package/dist/admin/components/elements/Hamburger/index.scss +9 -3
- package/dist/admin/components/elements/Header/index.d.ts.map +1 -1
- package/dist/admin/components/elements/Header/index.js +5 -2
- package/dist/admin/components/elements/Header/index.scss +6 -0
- package/dist/admin/components/elements/Nav/NavToggler/index.scss +0 -6
- package/dist/admin/components/elements/Nav/context.d.ts.map +1 -1
- package/dist/admin/components/elements/Nav/context.js +31 -23
- package/dist/admin/components/elements/Nav/index.scss +7 -9
- package/dist/admin/components/elements/PreviewSizes/index.d.ts +1 -1
- package/dist/admin/components/elements/PreviewSizes/index.d.ts.map +1 -1
- package/dist/admin/components/elements/PreviewSizes/index.js +9 -14
- package/dist/admin/components/elements/PreviewSizes/index.scss +1 -1
- package/dist/admin/components/elements/Thumbnail/index.d.ts.map +1 -1
- package/dist/admin/components/elements/Thumbnail/index.js +2 -5
- package/dist/admin/components/forms/RenderFields/index.d.ts.map +1 -1
- package/dist/admin/components/forms/RenderFields/index.js +3 -2
- package/dist/admin/components/forms/field-types/Array/ArrayRow.d.ts +1 -0
- package/dist/admin/components/forms/field-types/Array/ArrayRow.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Array/ArrayRow.js +5 -4
- package/dist/admin/components/forms/field-types/Array/index.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Array/index.js +3 -2
- package/dist/admin/components/forms/field-types/Array/types.d.ts +1 -0
- package/dist/admin/components/forms/field-types/Array/types.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Blocks/BlockRow.d.ts +1 -0
- package/dist/admin/components/forms/field-types/Blocks/BlockRow.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Blocks/BlockRow.js +3 -2
- package/dist/admin/components/forms/field-types/Blocks/index.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Blocks/index.js +4 -3
- package/dist/admin/components/forms/field-types/Blocks/types.d.ts +1 -0
- package/dist/admin/components/forms/field-types/Blocks/types.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Group/index.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Group/index.js +4 -3
- package/dist/admin/components/forms/field-types/Group/types.d.ts +1 -0
- package/dist/admin/components/forms/field-types/Group/types.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Row/index.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Row/index.js +3 -2
- package/dist/admin/components/forms/field-types/Row/types.d.ts +1 -0
- package/dist/admin/components/forms/field-types/Row/types.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Tabs/index.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Tabs/index.js +4 -4
- package/dist/admin/components/forms/field-types/Tabs/types.d.ts +1 -0
- package/dist/admin/components/forms/field-types/Tabs/types.d.ts.map +1 -1
- package/dist/admin/components/graphics/Account/Default/index.scss +15 -2
- package/dist/admin/components/templates/Default/index.d.ts.map +1 -1
- package/dist/admin/components/templates/Default/index.js +6 -9
- package/dist/admin/components/templates/Default/index.scss +7 -88
- package/dist/admin/components/views/Global/Default/index.scss +17 -16
- package/dist/admin/components/views/LivePreview/Context/context.d.ts +11 -0
- package/dist/admin/components/views/LivePreview/Context/context.d.ts.map +1 -1
- package/dist/admin/components/views/LivePreview/Context/context.js +10 -1
- package/dist/admin/components/views/LivePreview/Context/index.d.ts +6 -3
- package/dist/admin/components/views/LivePreview/Context/index.d.ts.map +1 -1
- package/dist/admin/components/views/LivePreview/Context/index.js +65 -6
- package/dist/admin/components/views/LivePreview/IFrame/index.scss +1 -0
- package/dist/admin/components/views/LivePreview/Preview/index.d.ts +1 -7
- package/dist/admin/components/views/LivePreview/Preview/index.d.ts.map +1 -1
- package/dist/admin/components/views/LivePreview/Preview/index.js +24 -59
- package/dist/admin/components/views/LivePreview/Preview/index.scss +1 -0
- package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.d.ts +2 -2
- package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.d.ts.map +1 -1
- package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.js +7 -5
- package/dist/admin/components/views/LivePreview/Toolbar/index.d.ts +2 -5
- package/dist/admin/components/views/LivePreview/Toolbar/index.d.ts.map +1 -1
- package/dist/admin/components/views/LivePreview/Toolbar/index.js +1 -1
- package/dist/admin/components/views/LivePreview/index.d.ts.map +1 -1
- package/dist/admin/components/views/LivePreview/index.js +50 -33
- package/dist/admin/components/views/LivePreview/index.scss +12 -1
- package/dist/admin/components/views/LivePreview/usePopupWindow.d.ts +1 -2
- package/dist/admin/components/views/LivePreview/usePopupWindow.d.ts.map +1 -1
- package/dist/admin/components/views/LivePreview/usePopupWindow.js +4 -23
- package/dist/admin/components/views/collections/Edit/Default/index.d.ts.map +1 -1
- package/dist/admin/components/views/collections/Edit/Default/index.js +3 -4
- package/dist/admin/components/views/collections/Edit/Default/index.scss +12 -5
- package/dist/admin/components/views/collections/Edit/Upload/index.js +2 -3
- package/dist/admin/hooks/useIntersect.d.ts +1 -1
- package/dist/admin/hooks/useIntersect.d.ts.map +1 -1
- package/dist/admin/hooks/useIntersect.js +7 -3
- package/dist/admin/scss/app.scss +2 -7
- package/dist/admin/utilities/formatDate/index.d.ts +1 -0
- package/dist/admin/utilities/formatDate/index.d.ts.map +1 -1
- package/dist/admin/utilities/formatDate/index.js +19 -4
- package/dist/auth/operations/local/verifyEmail.d.ts +2 -0
- package/dist/auth/operations/local/verifyEmail.d.ts.map +1 -1
- package/dist/auth/operations/local/verifyEmail.js +8 -5
- package/dist/bin/build.js +0 -0
- package/dist/bin/index.js +0 -0
- package/dist/collections/operations/local/findVersions.d.ts +2 -1
- package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
- package/dist/collections/operations/local/findVersions.js +3 -2
- package/dist/collections/operations/local/restoreVersion.d.ts +2 -1
- package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
- package/dist/collections/operations/local/restoreVersion.js +3 -2
- package/dist/fields/config/types.d.ts +1 -1
- package/dist/fields/config/types.d.ts.map +1 -1
- package/dist/fields/config/types.js +1 -1
- package/dist/fields/validations.d.ts.map +1 -1
- package/dist/fields/validations.js +12 -11
- package/dist/globals/operations/local/findVersionByID.d.ts +2 -0
- package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
- package/dist/globals/operations/local/findVersionByID.js +3 -2
- package/dist/globals/operations/local/findVersions.d.ts +2 -0
- package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
- package/dist/globals/operations/local/findVersions.js +3 -2
- package/dist/globals/operations/local/restoreVersion.d.ts +2 -0
- package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
- package/dist/globals/operations/local/restoreVersion.js +3 -2
- package/dist/globals/operations/local/update.d.ts +2 -0
- package/dist/globals/operations/local/update.d.ts.map +1 -1
- package/dist/globals/operations/local/update.js +3 -2
- package/dist/translations/ar.json +2 -2
- package/dist/translations/az.json +2 -2
- package/dist/translations/bg.json +1 -1
- package/dist/translations/cs.json +2 -2
- package/dist/translations/de.json +1 -1
- package/dist/translations/en.json +1 -1
- package/dist/translations/es.json +2 -2
- package/dist/translations/fa.json +2 -2
- package/dist/translations/fr.json +2 -2
- package/dist/translations/hr.json +2 -2
- package/dist/translations/hu.json +2 -2
- package/dist/translations/it.json +2 -2
- package/dist/translations/ja.json +2 -2
- package/dist/translations/my.json +2 -2
- package/dist/translations/nb.json +2 -2
- package/dist/translations/nl.json +2 -2
- package/dist/translations/pl.json +2 -2
- package/dist/translations/pt.json +2 -2
- package/dist/translations/ro.json +2 -2
- package/dist/translations/ru.json +1 -1
- package/dist/translations/sv.json +2 -2
- package/dist/translations/th.json +2 -2
- package/dist/translations/tr.json +2 -2
- package/dist/translations/ua.json +1 -1
- package/dist/translations/vi.json +2 -2
- package/dist/translations/zh.json +2 -2
- package/dist/uploads/imageResizer.js +5 -5
- package/package.json +47 -28
|
@@ -17,6 +17,24 @@
|
|
|
17
17
|
padding: 0;
|
|
18
18
|
overflow: auto;
|
|
19
19
|
|
|
20
|
+
// this container has a gradient overlay as visual indication of `overflow: scroll`
|
|
21
|
+
&::-webkit-scrollbar {
|
|
22
|
+
display: none;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&::after {
|
|
26
|
+
content: '';
|
|
27
|
+
display: block;
|
|
28
|
+
position: sticky;
|
|
29
|
+
right: 0;
|
|
30
|
+
width: calc(var(--base) * 2);
|
|
31
|
+
height: calc(var(--base) * 2);
|
|
32
|
+
background: linear-gradient(to right, transparent, var(--theme-bg));
|
|
33
|
+
flex-shrink: 0;
|
|
34
|
+
z-index: 1111;
|
|
35
|
+
pointer-events: none;
|
|
36
|
+
}
|
|
37
|
+
|
|
20
38
|
&__tabs {
|
|
21
39
|
padding: 0;
|
|
22
40
|
margin-left: var(--gutter-h);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/EditUpload/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2B,MAAM,OAAO,CAAA;AAG/C,OAAO,qCAAqC,CAAA;AAE5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAMlD,OAAO,cAAc,CAAA;AAerB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,GAAG,CAAC,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/EditUpload/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2B,MAAM,OAAO,CAAA;AAG/C,OAAO,qCAAqC,CAAA;AAE5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAMlD,OAAO,cAAc,CAAA;AAerB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,GAAG,CAAC,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CA+NA,CAAA"}
|
|
@@ -91,11 +91,11 @@ const EditUpload = ({ fileName, fileSrc, imageCacheTag, showCrop, showFocalPoint
|
|
|
91
91
|
y: uploadEdits?.focalPoint?.y || 50
|
|
92
92
|
});
|
|
93
93
|
const [checkBounds, setCheckBounds] = (0, _react.useState)(false);
|
|
94
|
+
const [originalHeight, setOriginalHeight] = (0, _react.useState)(0);
|
|
95
|
+
const [originalWidth, setOriginalWidth] = (0, _react.useState)(0);
|
|
94
96
|
const focalWrapRef = (0, _react.useRef)();
|
|
95
97
|
const imageRef = (0, _react.useRef)();
|
|
96
98
|
const cropRef = (0, _react.useRef)();
|
|
97
|
-
const originalHeight = imageRef.current ? imageRef.current.naturalHeight : 0;
|
|
98
|
-
const originalWidth = imageRef.current ? imageRef.current.naturalWidth : 0;
|
|
99
99
|
const fineTuneCrop = ({ dimension, value })=>{
|
|
100
100
|
const intValue = parseInt(value);
|
|
101
101
|
if (dimension === 'width' && intValue >= originalWidth) return null;
|
|
@@ -185,6 +185,10 @@ const EditUpload = ({ fileName, fileSrc, imageCacheTag, showCrop, showFocalPoint
|
|
|
185
185
|
}
|
|
186
186
|
}, /*#__PURE__*/ _react.default.createElement("img", {
|
|
187
187
|
alt: t('upload:setCropArea'),
|
|
188
|
+
onLoad: (e)=>{
|
|
189
|
+
setOriginalHeight(e.currentTarget.naturalHeight);
|
|
190
|
+
setOriginalWidth(e.currentTarget.naturalWidth);
|
|
191
|
+
},
|
|
188
192
|
ref: imageRef,
|
|
189
193
|
src: fileSrcToUse
|
|
190
194
|
})) : /*#__PURE__*/ _react.default.createElement("img", {
|
|
@@ -375,4 +379,4 @@ const DraggableElement = ({ boundsRef, checkBounds, children, className, contain
|
|
|
375
379
|
}, children), /*#__PURE__*/ _react.default.createElement("div", null));
|
|
376
380
|
};
|
|
377
381
|
|
|
378
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0VkaXRVcGxvYWQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU1vZGFsIH0gZnJvbSAnQGZhY2VsZXNzLXVpL21vZGFsJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCBSZWFjdENyb3AsIHsgdHlwZSBDcm9wIGFzIENyb3BUeXBlIH0gZnJvbSAncmVhY3QtaW1hZ2UtY3JvcCdcbmltcG9ydCAncmVhY3QtaW1hZ2UtY3JvcC9kaXN0L1JlYWN0Q3JvcC5jc3MnXG5cbmltcG9ydCB0eXBlIHsgRGF0YSB9IGZyb20gJy4uLy4uL2Zvcm1zL0Zvcm0vdHlwZXMnXG5cbmltcG9ydCBQbHVzIGZyb20gJy4uLy4uL2ljb25zL1BsdXMnXG5pbXBvcnQgeyB1c2VGb3JtUXVlcnlQYXJhbXMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvRm9ybVF1ZXJ5UGFyYW1zJ1xuaW1wb3J0IHsgZWRpdERyYXdlclNsdWcgfSBmcm9tICcuLi8uLi92aWV3cy9jb2xsZWN0aW9ucy9FZGl0L1VwbG9hZCdcbmltcG9ydCBCdXR0b24gZnJvbSAnLi4vQnV0dG9uJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdlZGl0LXVwbG9hZCdcblxuY29uc3QgSW5wdXQ6IFJlYWN0LkZDPHsgbmFtZTogc3RyaW5nOyBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7IHZhbHVlOiBzdHJpbmcgfT4gPSAoe1xuICBuYW1lLFxuICBvbkNoYW5nZSxcbiAgdmFsdWUsXG59KSA9PiAoXG4gIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19pbnB1dGB9PlxuICAgIHtuYW1lfVxuICAgIDxpbnB1dCBuYW1lPXtuYW1lfSBvbkNoYW5nZT17KGUpID0+IG9uQ2hhbmdlKGUudGFyZ2V0LnZhbHVlKX0gdHlwZT1cIm51bWJlclwiIHZhbHVlPXt2YWx1ZX0gLz5cbiAgPC9kaXY+XG4pXG5cbmV4cG9ydCBjb25zdCBFZGl0VXBsb2FkOiBSZWFjdC5GQzx7XG4gIGRvYz86IERhdGFcbiAgZmlsZU5hbWU6IHN0cmluZ1xuICBmaWxlU3JjOiBzdHJpbmdcbiAgaW1hZ2VDYWNoZVRhZz86IHN0cmluZ1xuICBzaG93Q3JvcD86IGJvb2xlYW5cbiAgc2hvd0ZvY2FsUG9pbnQ/OiBib29sZWFuXG59PiA9ICh7IGZpbGVOYW1lLCBmaWxlU3JjLCBpbWFnZUNhY2hlVGFnLCBzaG93Q3JvcCwgc2hvd0ZvY2FsUG9pbnQgfSkgPT4ge1xuICBjb25zdCB7IGNsb3NlTW9kYWwgfSA9IHVzZU1vZGFsKClcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbJ2dlbmVyYWwnLCAndXBsb2FkJ10pXG4gIGNvbnN0IHsgZm9ybVF1ZXJ5UGFyYW1zLCBzZXRGb3JtUXVlcnlQYXJhbXMgfSA9IHVzZUZvcm1RdWVyeVBhcmFtcygpXG4gIGNvbnN0IHsgdXBsb2FkRWRpdHMgfSA9IGZvcm1RdWVyeVBhcmFtcyB8fCB7fVxuICBjb25zdCBbY3JvcCwgc2V0Q3JvcF0gPSB1c2VTdGF0ZTxDcm9wVHlwZT4oe1xuICAgIGhlaWdodDogdXBsb2FkRWRpdHM/LmNyb3A/LmhlaWdodCB8fCAxMDAsXG4gICAgdW5pdDogJyUnLFxuICAgIHdpZHRoOiB1cGxvYWRFZGl0cz8uY3JvcD8ud2lkdGggfHwgMTAwLFxuICAgIHg6IHVwbG9hZEVkaXRzPy5jcm9wPy54IHx8IDAsXG4gICAgeTogdXBsb2FkRWRpdHM/LmNyb3A/LnkgfHwgMCxcbiAgfSlcblxuICBjb25zdCBbcG9pbnRQb3NpdGlvbiwgc2V0UG9pbnRQb3NpdGlvbl0gPSB1c2VTdGF0ZTx7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0+KHtcbiAgICB4OiB1cGxvYWRFZGl0cz8uZm9jYWxQb2ludD8ueCB8fCA1MCxcbiAgICB5OiB1cGxvYWRFZGl0cz8uZm9jYWxQb2ludD8ueSB8fCA1MCxcbiAgfSlcbiAgY29uc3QgW2NoZWNrQm91bmRzLCBzZXRDaGVja0JvdW5kc10gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSlcblxuICBjb25zdCBmb2NhbFdyYXBSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWQ+KClcbiAgY29uc3QgaW1hZ2VSZWYgPSB1c2VSZWY8SFRNTEltYWdlRWxlbWVudCB8IHVuZGVmaW5lZD4oKVxuICBjb25zdCBjcm9wUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkPigpXG5cbiAgY29uc3Qgb3JpZ2luYWxIZWlnaHQgPSBpbWFnZVJlZi5jdXJyZW50ID8gaW1hZ2VSZWYuY3VycmVudC5uYXR1cmFsSGVpZ2h0IDogMFxuICBjb25zdCBvcmlnaW5hbFdpZHRoID0gaW1hZ2VSZWYuY3VycmVudCA/IGltYWdlUmVmLmN1cnJlbnQubmF0dXJhbFdpZHRoIDogMFxuXG4gIGNvbnN0IGZpbmVUdW5lQ3JvcCA9ICh7IGRpbWVuc2lvbiwgdmFsdWUgfTogeyBkaW1lbnNpb246ICdoZWlnaHQnIHwgJ3dpZHRoJzsgdmFsdWU6IHN0cmluZyB9KSA9PiB7XG4gICAgY29uc3QgaW50VmFsdWUgPSBwYXJzZUludCh2YWx1ZSlcbiAgICBpZiAoZGltZW5zaW9uID09PSAnd2lkdGgnICYmIGludFZhbHVlID49IG9yaWdpbmFsV2lkdGgpIHJldHVybiBudWxsXG4gICAgaWYgKGRpbWVuc2lvbiA9PT0gJ2hlaWdodCcgJiYgaW50VmFsdWUgPj0gb3JpZ2luYWxIZWlnaHQpIHJldHVybiBudWxsXG5cbiAgICBjb25zdCBwZXJjZW50YWdlID0gMTAwICogKGludFZhbHVlIC8gKGRpbWVuc2lvbiA9PT0gJ3dpZHRoJyA/IG9yaWdpbmFsV2lkdGggOiBvcmlnaW5hbEhlaWdodCkpXG5cbiAgICBpZiAocGVyY2VudGFnZSA9PT0gMTAwIHx8IHBlcmNlbnRhZ2UgPT09IDApIHJldHVybiBudWxsXG5cbiAgICBzZXRDcm9wKHtcbiAgICAgIC4uLmNyb3AsXG4gICAgICBbZGltZW5zaW9uXTogcGVyY2VudGFnZSxcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgZmluZVR1bmVGb2NhbFBvaW50ID0gKHsgY29vcmRpbmF0ZSwgdmFsdWUgfTogeyBjb29yZGluYXRlOiAneCcgfCAneSc7IHZhbHVlOiBzdHJpbmcgfSkgPT4ge1xuICAgIGNvbnN0IGludFZhbHVlID0gcGFyc2VJbnQodmFsdWUpXG4gICAgaWYgKGludFZhbHVlID49IDAgJiYgaW50VmFsdWUgPD0gMTAwKSB7XG4gICAgICBzZXRQb2ludFBvc2l0aW9uKChwcmV2UG9zaXRpb24pID0+ICh7IC4uLnByZXZQb3NpdGlvbiwgW2Nvb3JkaW5hdGVdOiBpbnRWYWx1ZSB9KSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBzYXZlRWRpdHMgPSAoKSA9PiB7XG4gICAgc2V0Rm9ybVF1ZXJ5UGFyYW1zKHtcbiAgICAgIC4uLmZvcm1RdWVyeVBhcmFtcyxcbiAgICAgIHVwbG9hZEVkaXRzOiB7XG4gICAgICAgIGNyb3A6IGNyb3AgPyBjcm9wIDogdW5kZWZpbmVkLFxuICAgICAgICBmb2NhbFBvaW50OiBwb2ludFBvc2l0aW9uID8gcG9pbnRQb3NpdGlvbiA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfSlcbiAgICBjbG9zZU1vZGFsKGVkaXREcmF3ZXJTbHVnKVxuICB9XG5cbiAgY29uc3Qgb25EcmFnRW5kID0gUmVhY3QudXNlQ2FsbGJhY2soKHsgeCwgeSB9KSA9PiB7XG4gICAgc2V0UG9pbnRQb3NpdGlvbih7IHgsIHkgfSlcbiAgICBzZXRDaGVja0JvdW5kcyhmYWxzZSlcbiAgfSwgW10pXG5cbiAgY29uc3QgY2VudGVyRm9jYWxQb2ludCA9ICgpID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWN0ID0gZm9jYWxXcmFwUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICBjb25zdCBib3VuZHNSZWN0ID0gY3JvcFJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3QgeENlbnRlciA9XG4gICAgICAoKGJvdW5kc1JlY3QubGVmdCAtIGNvbnRhaW5lclJlY3QubGVmdCArIGJvdW5kc1JlY3Qud2lkdGggLyAyKSAvIGNvbnRhaW5lclJlY3Qud2lkdGgpICogMTAwXG4gICAgY29uc3QgeUNlbnRlciA9XG4gICAgICAoKGJvdW5kc1JlY3QudG9wIC0gY29udGFpbmVyUmVjdC50b3AgKyBib3VuZHNSZWN0LmhlaWdodCAvIDIpIC8gY29udGFpbmVyUmVjdC5oZWlnaHQpICogMTAwXG4gICAgc2V0UG9pbnRQb3NpdGlvbih7IHg6IHhDZW50ZXIsIHk6IHlDZW50ZXIgfSlcbiAgfVxuXG4gIGNvbnN0IGZpbGVTcmNUb1VzZSA9IGltYWdlQ2FjaGVUYWcgPyBgJHtmaWxlU3JjfT8ke2ltYWdlQ2FjaGVUYWd9YCA6IGZpbGVTcmNcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtiYXNlQ2xhc3N9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2hlYWRlcmB9PlxuICAgICAgICA8aDIgdGl0bGU9e2Ake3QoJ2dlbmVyYWw6ZWRpdGluZycpfSAke2ZpbGVOYW1lfWB9PlxuICAgICAgICAgIHt0KCdnZW5lcmFsOmVkaXRpbmcnKX0ge2ZpbGVOYW1lfVxuICAgICAgICA8L2gyPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fYWN0aW9uc2B9PlxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIGFyaWEtbGFiZWw9e3QoJ2NhbmNlbCcpfVxuICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19jYW5jZWxgfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gY2xvc2VNb2RhbChlZGl0RHJhd2VyU2x1Zyl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3QoJ2dlbmVyYWw6Y2FuY2VsJyl9XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnZ2VuZXJhbDphcHBseUNoYW5nZXMnKX1cbiAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwicHJpbWFyeVwiXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3NhdmVgfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2F2ZUVkaXRzKCl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3QoJ2dlbmVyYWw6YXBwbHlDaGFuZ2VzJyl9XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdG9vbFdyYXBgfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2Nyb3BgfT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2ZvY2FsLXdyYXBwZXJgfVxuICAgICAgICAgICAgcmVmPXtmb2NhbFdyYXBSZWZ9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBhc3BlY3RSYXRpbzogYCR7b3JpZ2luYWxXaWR0aCAvIG9yaWdpbmFsSGVpZ2h0fWAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtzaG93Q3JvcCA/IChcbiAgICAgICAgICAgICAgPFJlYWN0Q3JvcFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcmVhY3RDcm9wYH1cbiAgICAgICAgICAgICAgICBjcm9wPXtjcm9wfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoXywgYykgPT4gc2V0Q3JvcChjKX1cbiAgICAgICAgICAgICAgICBvbkNvbXBsZXRlPXsoKSA9PiBzZXRDaGVja0JvdW5kcyh0cnVlKX1cbiAgICAgICAgICAgICAgICByZW5kZXJTZWxlY3Rpb25BZGRvbj17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19jcm9wLXdpbmRvd2B9IHJlZj17Y3JvcFJlZn0gLz5cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGltZyBhbHQ9e3QoJ3VwbG9hZDpzZXRDcm9wQXJlYScpfSByZWY9e2ltYWdlUmVmfSBzcmM9e2ZpbGVTcmNUb1VzZX0gLz5cbiAgICAgICAgICAgICAgPC9SZWFjdENyb3A+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8aW1nIGFsdD17dCgndXBsb2FkOnNldEZvY2FsUG9pbnQnKX0gcmVmPXtpbWFnZVJlZn0gc3JjPXtmaWxlU3JjVG9Vc2V9IC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPERyYWdnYWJsZUVsZW1lbnRcbiAgICAgICAgICAgICAgYm91bmRzUmVmPXtjcm9wUmVmfVxuICAgICAgICAgICAgICBjaGVja0JvdW5kcz17Y2hlY2tCb3VuZHN9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZm9jYWxQb2ludGB9XG4gICAgICAgICAgICAgIGNvbnRhaW5lclJlZj17Zm9jYWxXcmFwUmVmfVxuICAgICAgICAgICAgICBpbml0aWFsUG9zaXRpb249e3BvaW50UG9zaXRpb259XG4gICAgICAgICAgICAgIG9uRHJhZ0VuZD17b25EcmFnRW5kfVxuICAgICAgICAgICAgICBzZXRDaGVja0JvdW5kcz17c2V0Q2hlY2tCb3VuZHN9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxQbHVzIC8+XG4gICAgICAgICAgICA8L0RyYWdnYWJsZUVsZW1lbnQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7KHNob3dDcm9wIHx8IHNob3dGb2NhbFBvaW50KSAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3NpZGViYXJgfT5cbiAgICAgICAgICAgIHtzaG93Q3JvcCAmJiAoXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19ncm91cFdyYXBgfT5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3RpdGxlV3JhcGB9PlxuICAgICAgICAgICAgICAgICAgICA8aDM+e3QoJ3VwbG9hZDpjcm9wJyl9PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19yZXNldGB9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNldENyb3Aoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdDogJyUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB5OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7dCgnZ2VuZXJhbDpyZXNldCcpfVxuICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZGVzY3JpcHRpb25gfT5cbiAgICAgICAgICAgICAgICAgIHt0KCd1cGxvYWQ6Y3JvcFRvb2xEZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faW5wdXRzV3JhcGB9PlxuICAgICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2Ake3QoJ3VwbG9hZDp3aWR0aCcpfSAocHgpYH1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4gZmluZVR1bmVDcm9wKHsgZGltZW5zaW9uOiAnd2lkdGgnLCB2YWx1ZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9eygoY3JvcC53aWR0aCAvIDEwMCkgKiBvcmlnaW5hbFdpZHRoKS50b0ZpeGVkKDApfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtgJHt0KCd1cGxvYWQ6aGVpZ2h0Jyl9IChweClgfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHZhbHVlKSA9PiBmaW5lVHVuZUNyb3AoeyBkaW1lbnNpb246ICdoZWlnaHQnLCB2YWx1ZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9eygoY3JvcC5oZWlnaHQgLyAxMDApICogb3JpZ2luYWxIZWlnaHQpLnRvRml4ZWQoMCl9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHtzaG93Rm9jYWxQb2ludCAmJiAoXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19ncm91cFdyYXBgfT5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3RpdGxlV3JhcGB9PlxuICAgICAgICAgICAgICAgICAgICA8aDM+e3QoJ3VwbG9hZDpmb2NhbFBvaW50Jyl9PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19yZXNldGB9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2VudGVyRm9jYWxQb2ludH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt0KCdnZW5lcmFsOnJlc2V0Jyl9XG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19kZXNjcmlwdGlvbmB9PlxuICAgICAgICAgICAgICAgICAge3QoJ3VwbG9hZDpmb2NhbFBvaW50RGVzY3JpcHRpb24nKX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2lucHV0c1dyYXBgfT5cbiAgICAgICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiWCAlXCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4gZmluZVR1bmVGb2NhbFBvaW50KHsgY29vcmRpbmF0ZTogJ3gnLCB2YWx1ZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3BvaW50UG9zaXRpb24ueC50b0ZpeGVkKDApfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiWSAlXCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4gZmluZVR1bmVGb2NhbFBvaW50KHsgY29vcmRpbmF0ZTogJ3knLCB2YWx1ZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3BvaW50UG9zaXRpb24ueS50b0ZpeGVkKDApfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuY29uc3QgRHJhZ2dhYmxlRWxlbWVudCA9ICh7XG4gIGJvdW5kc1JlZixcbiAgY2hlY2tCb3VuZHMsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGNvbnRhaW5lclJlZixcbiAgaW5pdGlhbFBvc2l0aW9uID0geyB4OiA1MCwgeTogNTAgfSxcbiAgb25EcmFnRW5kLFxuICBzZXRDaGVja0JvdW5kcyxcbn0pID0+IHtcbiAgY29uc3QgW3Bvc2l0aW9uLCBzZXRQb3NpdGlvbl0gPSB1c2VTdGF0ZSh7IHg6IGluaXRpYWxQb3NpdGlvbi54LCB5OiBpbml0aWFsUG9zaXRpb24ueSB9KVxuICBjb25zdCBbaXNEcmFnZ2luZywgc2V0SXNEcmFnZ2luZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgZHJhZ1JlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IHVuZGVmaW5lZD4oKVxuXG4gIGNvbnN0IGdldENvb3JkaW5hdGVzID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgKG1vdXNlWEFyZz86IG51bWJlciwgbW91c2VZQXJnPzogbnVtYmVyLCByZWNlbnRlcj86IGJvb2xlYW4pID0+IHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBjb250YWluZXJSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgYm91bmRzUmVjdCA9IGJvdW5kc1JlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICBjb25zdCBtb3VzZVggPSBtb3VzZVhBcmcgPz8gYm91bmRzUmVjdC5sZWZ0XG4gICAgICBjb25zdCBtb3VzZVkgPSBtb3VzZVlBcmcgPz8gYm91bmRzUmVjdC50b3BcblxuICAgICAgY29uc3QgeE91dE9mQm91bmRzID0gbW91c2VYIDwgYm91bmRzUmVjdC5sZWZ0IHx8IG1vdXNlWCA+IGJvdW5kc1JlY3QucmlnaHRcbiAgICAgIGNvbnN0IHlPdXRPZkJvdW5kcyA9IG1vdXNlWSA8IGJvdW5kc1JlY3QudG9wIHx8IG1vdXNlWSA+IGJvdW5kc1JlY3QuYm90dG9tXG5cbiAgICAgIGxldCB4ID0gKChtb3VzZVggLSBjb250YWluZXJSZWN0LmxlZnQpIC8gY29udGFpbmVyUmVjdC53aWR0aCkgKiAxMDBcbiAgICAgIGxldCB5ID0gKChtb3VzZVkgLSBjb250YWluZXJSZWN0LnRvcCkgLyBjb250YWluZXJSZWN0LmhlaWdodCkgKiAxMDBcbiAgICAgIGNvbnN0IHhDZW50ZXIgPVxuICAgICAgICAoKGJvdW5kc1JlY3QubGVmdCAtIGNvbnRhaW5lclJlY3QubGVmdCArIGJvdW5kc1JlY3Qud2lkdGggLyAyKSAvIGNvbnRhaW5lclJlY3Qud2lkdGgpICogMTAwXG4gICAgICBjb25zdCB5Q2VudGVyID1cbiAgICAgICAgKChib3VuZHNSZWN0LnRvcCAtIGNvbnRhaW5lclJlY3QudG9wICsgYm91bmRzUmVjdC5oZWlnaHQgLyAyKSAvIGNvbnRhaW5lclJlY3QuaGVpZ2h0KSAqIDEwMFxuICAgICAgaWYgKHhPdXRPZkJvdW5kcyB8fCB5T3V0T2ZCb3VuZHMpIHtcbiAgICAgICAgc2V0SXNEcmFnZ2luZyhmYWxzZSlcbiAgICAgICAgaWYgKG1vdXNlWCA8IGJvdW5kc1JlY3QubGVmdCkge1xuICAgICAgICAgIHggPSAoKGJvdW5kc1JlY3QubGVmdCAtIGNvbnRhaW5lclJlY3QubGVmdCkgLyBjb250YWluZXJSZWN0LndpZHRoKSAqIDEwMFxuICAgICAgICB9IGVsc2UgaWYgKG1vdXNlWCA+IGJvdW5kc1JlY3QucmlnaHQpIHtcbiAgICAgICAgICB4ID1cbiAgICAgICAgICAgICgoY29udGFpbmVyUmVjdC53aWR0aCAtIChjb250YWluZXJSZWN0LnJpZ2h0IC0gYm91bmRzUmVjdC5yaWdodCkpIC9cbiAgICAgICAgICAgICAgY29udGFpbmVyUmVjdC53aWR0aCkgKlxuICAgICAgICAgICAgMTAwXG4gICAgICAgIH1cblxuICAgICAgICBpZiAobW91c2VZIDwgYm91bmRzUmVjdC50b3ApIHtcbiAgICAgICAgICB5ID0gKChib3VuZHNSZWN0LnRvcCAtIGNvbnRhaW5lclJlY3QudG9wKSAvIGNvbnRhaW5lclJlY3QuaGVpZ2h0KSAqIDEwMFxuICAgICAgICB9IGVsc2UgaWYgKG1vdXNlWSA+IGJvdW5kc1JlY3QuYm90dG9tKSB7XG4gICAgICAgICAgeSA9XG4gICAgICAgICAgICAoKGNvbnRhaW5lclJlY3QuaGVpZ2h0IC0gKGNvbnRhaW5lclJlY3QuYm90dG9tIC0gYm91bmRzUmVjdC5ib3R0b20pKSAvXG4gICAgICAgICAgICAgIGNvbnRhaW5lclJlY3QuaGVpZ2h0KSAqXG4gICAgICAgICAgICAxMDBcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZWNlbnRlcikge1xuICAgICAgICAgIHggPSB4T3V0T2ZCb3VuZHMgPyB4Q2VudGVyIDogeFxuICAgICAgICAgIHkgPSB5T3V0T2ZCb3VuZHMgPyB5Q2VudGVyIDogeVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IHgsIHkgfVxuICAgIH0sXG4gICAgW10sXG4gIClcblxuICBjb25zdCBoYW5kbGVNb3VzZURvd24gPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgc2V0SXNEcmFnZ2luZyh0cnVlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlTW91c2VNb3ZlID0gKGV2ZW50KSA9PiB7XG4gICAgaWYgKCFpc0RyYWdnaW5nKSByZXR1cm4gbnVsbFxuICAgIGNvbnN0IHsgeCwgeSB9ID0gZ2V0Q29vcmRpbmF0ZXMoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSlcblxuICAgIHNldFBvc2l0aW9uKHsgeCwgeSB9KVxuICB9XG5cbiAgY29uc3Qgb25Ecm9wID0gKCkgPT4ge1xuICAgIHNldElzRHJhZ2dpbmcoZmFsc2UpXG4gICAgb25EcmFnRW5kKHBvc2l0aW9uKVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNEcmFnZ2luZyB8fCAhZHJhZ1JlZi5jdXJyZW50KSByZXR1cm5cbiAgICBpZiAoY2hlY2tCb3VuZHMpIHtcbiAgICAgIGNvbnN0IHsgaGVpZ2h0LCBsZWZ0LCB0b3AsIHdpZHRoIH0gPSBkcmFnUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIGNvbnN0IHsgeCwgeSB9ID0gZ2V0Q29vcmRpbmF0ZXMobGVmdCArIHdpZHRoIC8gMiwgdG9wICsgaGVpZ2h0IC8gMiwgdHJ1ZSlcbiAgICAgIG9uRHJhZ0VuZCh7IHgsIHkgfSlcbiAgICAgIHNldFBvc2l0aW9uKHsgeCwgeSB9KVxuICAgICAgc2V0Q2hlY2tCb3VuZHMoZmFsc2UpXG4gICAgICByZXR1cm5cbiAgICB9XG4gIH0sIFtnZXRDb29yZGluYXRlcywgaXNEcmFnZ2luZywgY2hlY2tCb3VuZHMsIHNldENoZWNrQm91bmRzLCBwb3NpdGlvbi54LCBwb3NpdGlvbi55XSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldFBvc2l0aW9uKHsgeDogaW5pdGlhbFBvc2l0aW9uLngsIHk6IGluaXRpYWxQb3NpdGlvbi55IH0pXG4gIH0sIFtpbml0aWFsUG9zaXRpb24ueCwgaW5pdGlhbFBvc2l0aW9uLnldKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtbXG4gICAgICAgIGAke2Jhc2VDbGFzc31fX2RyYWdnYWJsZS1jb250YWluZXJgLFxuICAgICAgICBpc0RyYWdnaW5nICYmIGAke2Jhc2VDbGFzc31fX2RyYWdnYWJsZS1jb250YWluZXItLWRyYWdnaW5nYCxcbiAgICAgIF1cbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAuam9pbignICcpfVxuICAgICAgb25Nb3VzZU1vdmU9e2hhbmRsZU1vdXNlTW92ZX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17W2Ake2Jhc2VDbGFzc31fX2RyYWdnYWJsZWAsIGNsYXNzTmFtZV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKX1cbiAgICAgICAgb25Nb3VzZURvd249e2hhbmRsZU1vdXNlRG93bn1cbiAgICAgICAgb25Nb3VzZVVwPXtvbkRyb3B9XG4gICAgICAgIHJlZj17ZHJhZ1JlZn1cbiAgICAgICAgc3R5bGU9e3sgbGVmdDogYCR7cG9zaXRpb24ueH0lYCwgcG9zaXRpb246ICdhYnNvbHV0ZScsIHRvcDogYCR7cG9zaXRpb24ueX0lYCB9fVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgLz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkVkaXRVcGxvYWQiLCJiYXNlQ2xhc3MiLCJJbnB1dCIsIm5hbWUiLCJvbkNoYW5nZSIsInZhbHVlIiwiZGl2IiwiY2xhc3NOYW1lIiwiaW5wdXQiLCJlIiwidGFyZ2V0IiwidHlwZSIsImZpbGVOYW1lIiwiZmlsZVNyYyIsImltYWdlQ2FjaGVUYWciLCJzaG93Q3JvcCIsInNob3dGb2NhbFBvaW50IiwiY2xvc2VNb2RhbCIsInVzZU1vZGFsIiwidCIsInVzZVRyYW5zbGF0aW9uIiwiZm9ybVF1ZXJ5UGFyYW1zIiwic2V0Rm9ybVF1ZXJ5UGFyYW1zIiwidXNlRm9ybVF1ZXJ5UGFyYW1zIiwidXBsb2FkRWRpdHMiLCJjcm9wIiwic2V0Q3JvcCIsInVzZVN0YXRlIiwiaGVpZ2h0IiwidW5pdCIsIndpZHRoIiwieCIsInkiLCJwb2ludFBvc2l0aW9uIiwic2V0UG9pbnRQb3NpdGlvbiIsImZvY2FsUG9pbnQiLCJjaGVja0JvdW5kcyIsInNldENoZWNrQm91bmRzIiwiZm9jYWxXcmFwUmVmIiwidXNlUmVmIiwiaW1hZ2VSZWYiLCJjcm9wUmVmIiwib3JpZ2luYWxIZWlnaHQiLCJjdXJyZW50IiwibmF0dXJhbEhlaWdodCIsIm9yaWdpbmFsV2lkdGgiLCJuYXR1cmFsV2lkdGgiLCJmaW5lVHVuZUNyb3AiLCJkaW1lbnNpb24iLCJpbnRWYWx1ZSIsInBhcnNlSW50IiwicGVyY2VudGFnZSIsImZpbmVUdW5lRm9jYWxQb2ludCIsImNvb3JkaW5hdGUiLCJwcmV2UG9zaXRpb24iLCJzYXZlRWRpdHMiLCJ1bmRlZmluZWQiLCJlZGl0RHJhd2VyU2x1ZyIsIm9uRHJhZ0VuZCIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJjZW50ZXJGb2NhbFBvaW50IiwiY29udGFpbmVyUmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImJvdW5kc1JlY3QiLCJ4Q2VudGVyIiwibGVmdCIsInlDZW50ZXIiLCJ0b3AiLCJmaWxlU3JjVG9Vc2UiLCJoMiIsInRpdGxlIiwiQnV0dG9uIiwiYXJpYS1sYWJlbCIsImJ1dHRvblN0eWxlIiwib25DbGljayIsInJlZiIsInN0eWxlIiwiYXNwZWN0UmF0aW8iLCJSZWFjdENyb3AiLCJfIiwiYyIsIm9uQ29tcGxldGUiLCJyZW5kZXJTZWxlY3Rpb25BZGRvbiIsImltZyIsImFsdCIsInNyYyIsIkRyYWdnYWJsZUVsZW1lbnQiLCJib3VuZHNSZWYiLCJjb250YWluZXJSZWYiLCJpbml0aWFsUG9zaXRpb24iLCJQbHVzIiwiaDMiLCJzcGFuIiwidG9GaXhlZCIsImNoaWxkcmVuIiwicG9zaXRpb24iLCJzZXRQb3NpdGlvbiIsImlzRHJhZ2dpbmciLCJzZXRJc0RyYWdnaW5nIiwiZHJhZ1JlZiIsImdldENvb3JkaW5hdGVzIiwibW91c2VYQXJnIiwibW91c2VZQXJnIiwicmVjZW50ZXIiLCJtb3VzZVgiLCJtb3VzZVkiLCJ4T3V0T2ZCb3VuZHMiLCJyaWdodCIsInlPdXRPZkJvdW5kcyIsImJvdHRvbSIsImhhbmRsZU1vdXNlRG93biIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJoYW5kbGVNb3VzZU1vdmUiLCJjbGllbnRYIiwiY2xpZW50WSIsIm9uRHJvcCIsInVzZUVmZmVjdCIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwib25Nb3VzZU1vdmUiLCJvbk1vdXNlRG93biIsIm9uTW91c2VVcCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkEyQmFBOzs7ZUFBQUE7Ozt1QkEzQlk7K0RBQ2U7OEJBQ1Q7dUVBQ2tCO1FBQzFDOzZEQUlVO2lDQUNrQjt3QkFDSjsrREFDWjtRQUNaOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFUCxNQUFNQyxZQUFZO0FBRWxCLE1BQU1DLFFBQXNGLENBQUMsRUFDM0ZDLElBQUksRUFDSkMsUUFBUSxFQUNSQyxLQUFLLEVBQ04saUJBQ0MsNkJBQUNDO1FBQUlDLFdBQVcsQ0FBQyxFQUFFTixVQUFVLE9BQU8sQ0FBQztPQUNsQ0Usb0JBQ0QsNkJBQUNLO1FBQU1MLE1BQU1BO1FBQU1DLFVBQVUsQ0FBQ0ssSUFBTUwsU0FBU0ssRUFBRUMsTUFBTSxDQUFDTCxLQUFLO1FBQUdNLE1BQUs7UUFBU04sT0FBT0E7O0FBSWhGLE1BQU1MLGFBT1IsQ0FBQyxFQUFFWSxRQUFRLEVBQUVDLE9BQU8sRUFBRUMsYUFBYSxFQUFFQyxRQUFRLEVBQUVDLGNBQWMsRUFBRTtJQUNsRSxNQUFNLEVBQUVDLFVBQVUsRUFBRSxHQUFHQyxJQUFBQSxlQUFRO0lBQy9CLE1BQU0sRUFBRUMsQ0FBQyxFQUFFLEdBQUdDLElBQUFBLDRCQUFjLEVBQUM7UUFBQztRQUFXO0tBQVM7SUFDbEQsTUFBTSxFQUFFQyxlQUFlLEVBQUVDLGtCQUFrQixFQUFFLEdBQUdDLElBQUFBLG1DQUFrQjtJQUNsRSxNQUFNLEVBQUVDLFdBQVcsRUFBRSxHQUFH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
|
|
382
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0VkaXRVcGxvYWQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU1vZGFsIH0gZnJvbSAnQGZhY2VsZXNzLXVpL21vZGFsJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCBSZWFjdENyb3AsIHsgdHlwZSBDcm9wIGFzIENyb3BUeXBlIH0gZnJvbSAncmVhY3QtaW1hZ2UtY3JvcCdcbmltcG9ydCAncmVhY3QtaW1hZ2UtY3JvcC9kaXN0L1JlYWN0Q3JvcC5jc3MnXG5cbmltcG9ydCB0eXBlIHsgRGF0YSB9IGZyb20gJy4uLy4uL2Zvcm1zL0Zvcm0vdHlwZXMnXG5cbmltcG9ydCBQbHVzIGZyb20gJy4uLy4uL2ljb25zL1BsdXMnXG5pbXBvcnQgeyB1c2VGb3JtUXVlcnlQYXJhbXMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvRm9ybVF1ZXJ5UGFyYW1zJ1xuaW1wb3J0IHsgZWRpdERyYXdlclNsdWcgfSBmcm9tICcuLi8uLi92aWV3cy9jb2xsZWN0aW9ucy9FZGl0L1VwbG9hZCdcbmltcG9ydCBCdXR0b24gZnJvbSAnLi4vQnV0dG9uJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdlZGl0LXVwbG9hZCdcblxuY29uc3QgSW5wdXQ6IFJlYWN0LkZDPHsgbmFtZTogc3RyaW5nOyBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7IHZhbHVlOiBzdHJpbmcgfT4gPSAoe1xuICBuYW1lLFxuICBvbkNoYW5nZSxcbiAgdmFsdWUsXG59KSA9PiAoXG4gIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19pbnB1dGB9PlxuICAgIHtuYW1lfVxuICAgIDxpbnB1dCBuYW1lPXtuYW1lfSBvbkNoYW5nZT17KGUpID0+IG9uQ2hhbmdlKGUudGFyZ2V0LnZhbHVlKX0gdHlwZT1cIm51bWJlclwiIHZhbHVlPXt2YWx1ZX0gLz5cbiAgPC9kaXY+XG4pXG5cbmV4cG9ydCBjb25zdCBFZGl0VXBsb2FkOiBSZWFjdC5GQzx7XG4gIGRvYz86IERhdGFcbiAgZmlsZU5hbWU6IHN0cmluZ1xuICBmaWxlU3JjOiBzdHJpbmdcbiAgaW1hZ2VDYWNoZVRhZz86IHN0cmluZ1xuICBzaG93Q3JvcD86IGJvb2xlYW5cbiAgc2hvd0ZvY2FsUG9pbnQ/OiBib29sZWFuXG59PiA9ICh7IGZpbGVOYW1lLCBmaWxlU3JjLCBpbWFnZUNhY2hlVGFnLCBzaG93Q3JvcCwgc2hvd0ZvY2FsUG9pbnQgfSkgPT4ge1xuICBjb25zdCB7IGNsb3NlTW9kYWwgfSA9IHVzZU1vZGFsKClcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbJ2dlbmVyYWwnLCAndXBsb2FkJ10pXG4gIGNvbnN0IHsgZm9ybVF1ZXJ5UGFyYW1zLCBzZXRGb3JtUXVlcnlQYXJhbXMgfSA9IHVzZUZvcm1RdWVyeVBhcmFtcygpXG4gIGNvbnN0IHsgdXBsb2FkRWRpdHMgfSA9IGZvcm1RdWVyeVBhcmFtcyB8fCB7fVxuICBjb25zdCBbY3JvcCwgc2V0Q3JvcF0gPSB1c2VTdGF0ZTxDcm9wVHlwZT4oe1xuICAgIGhlaWdodDogdXBsb2FkRWRpdHM/LmNyb3A/LmhlaWdodCB8fCAxMDAsXG4gICAgdW5pdDogJyUnLFxuICAgIHdpZHRoOiB1cGxvYWRFZGl0cz8uY3JvcD8ud2lkdGggfHwgMTAwLFxuICAgIHg6IHVwbG9hZEVkaXRzPy5jcm9wPy54IHx8IDAsXG4gICAgeTogdXBsb2FkRWRpdHM/LmNyb3A/LnkgfHwgMCxcbiAgfSlcblxuICBjb25zdCBbcG9pbnRQb3NpdGlvbiwgc2V0UG9pbnRQb3NpdGlvbl0gPSB1c2VTdGF0ZTx7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0+KHtcbiAgICB4OiB1cGxvYWRFZGl0cz8uZm9jYWxQb2ludD8ueCB8fCA1MCxcbiAgICB5OiB1cGxvYWRFZGl0cz8uZm9jYWxQb2ludD8ueSB8fCA1MCxcbiAgfSlcbiAgY29uc3QgW2NoZWNrQm91bmRzLCBzZXRDaGVja0JvdW5kc10gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSlcbiAgY29uc3QgW29yaWdpbmFsSGVpZ2h0LCBzZXRPcmlnaW5hbEhlaWdodF0gPSB1c2VTdGF0ZTxudW1iZXI+KDApXG4gIGNvbnN0IFtvcmlnaW5hbFdpZHRoLCBzZXRPcmlnaW5hbFdpZHRoXSA9IHVzZVN0YXRlPG51bWJlcj4oMClcblxuICBjb25zdCBmb2NhbFdyYXBSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWQ+KClcbiAgY29uc3QgaW1hZ2VSZWYgPSB1c2VSZWY8SFRNTEltYWdlRWxlbWVudCB8IHVuZGVmaW5lZD4oKVxuICBjb25zdCBjcm9wUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkPigpXG5cbiAgY29uc3QgZmluZVR1bmVDcm9wID0gKHsgZGltZW5zaW9uLCB2YWx1ZSB9OiB7IGRpbWVuc2lvbjogJ2hlaWdodCcgfCAnd2lkdGgnOyB2YWx1ZTogc3RyaW5nIH0pID0+IHtcbiAgICBjb25zdCBpbnRWYWx1ZSA9IHBhcnNlSW50KHZhbHVlKVxuICAgIGlmIChkaW1lbnNpb24gPT09ICd3aWR0aCcgJiYgaW50VmFsdWUgPj0gb3JpZ2luYWxXaWR0aCkgcmV0dXJuIG51bGxcbiAgICBpZiAoZGltZW5zaW9uID09PSAnaGVpZ2h0JyAmJiBpbnRWYWx1ZSA+PSBvcmlnaW5hbEhlaWdodCkgcmV0dXJuIG51bGxcblxuICAgIGNvbnN0IHBlcmNlbnRhZ2UgPSAxMDAgKiAoaW50VmFsdWUgLyAoZGltZW5zaW9uID09PSAnd2lkdGgnID8gb3JpZ2luYWxXaWR0aCA6IG9yaWdpbmFsSGVpZ2h0KSlcblxuICAgIGlmIChwZXJjZW50YWdlID09PSAxMDAgfHwgcGVyY2VudGFnZSA9PT0gMCkgcmV0dXJuIG51bGxcblxuICAgIHNldENyb3Aoe1xuICAgICAgLi4uY3JvcCxcbiAgICAgIFtkaW1lbnNpb25dOiBwZXJjZW50YWdlLFxuICAgIH0pXG4gIH1cblxuICBjb25zdCBmaW5lVHVuZUZvY2FsUG9pbnQgPSAoeyBjb29yZGluYXRlLCB2YWx1ZSB9OiB7IGNvb3JkaW5hdGU6ICd4JyB8ICd5JzsgdmFsdWU6IHN0cmluZyB9KSA9PiB7XG4gICAgY29uc3QgaW50VmFsdWUgPSBwYXJzZUludCh2YWx1ZSlcbiAgICBpZiAoaW50VmFsdWUgPj0gMCAmJiBpbnRWYWx1ZSA8PSAxMDApIHtcbiAgICAgIHNldFBvaW50UG9zaXRpb24oKHByZXZQb3NpdGlvbikgPT4gKHsgLi4ucHJldlBvc2l0aW9uLCBbY29vcmRpbmF0ZV06IGludFZhbHVlIH0pKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHNhdmVFZGl0cyA9ICgpID0+IHtcbiAgICBzZXRGb3JtUXVlcnlQYXJhbXMoe1xuICAgICAgLi4uZm9ybVF1ZXJ5UGFyYW1zLFxuICAgICAgdXBsb2FkRWRpdHM6IHtcbiAgICAgICAgY3JvcDogY3JvcCA/IGNyb3AgOiB1bmRlZmluZWQsXG4gICAgICAgIGZvY2FsUG9pbnQ6IHBvaW50UG9zaXRpb24gPyBwb2ludFBvc2l0aW9uIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9KVxuICAgIGNsb3NlTW9kYWwoZWRpdERyYXdlclNsdWcpXG4gIH1cblxuICBjb25zdCBvbkRyYWdFbmQgPSBSZWFjdC51c2VDYWxsYmFjaygoeyB4LCB5IH0pID0+IHtcbiAgICBzZXRQb2ludFBvc2l0aW9uKHsgeCwgeSB9KVxuICAgIHNldENoZWNrQm91bmRzKGZhbHNlKVxuICB9LCBbXSlcblxuICBjb25zdCBjZW50ZXJGb2NhbFBvaW50ID0gKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBmb2NhbFdyYXBSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgIGNvbnN0IGJvdW5kc1JlY3QgPSBjcm9wUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICBjb25zdCB4Q2VudGVyID1cbiAgICAgICgoYm91bmRzUmVjdC5sZWZ0IC0gY29udGFpbmVyUmVjdC5sZWZ0ICsgYm91bmRzUmVjdC53aWR0aCAvIDIpIC8gY29udGFpbmVyUmVjdC53aWR0aCkgKiAxMDBcbiAgICBjb25zdCB5Q2VudGVyID1cbiAgICAgICgoYm91bmRzUmVjdC50b3AgLSBjb250YWluZXJSZWN0LnRvcCArIGJvdW5kc1JlY3QuaGVpZ2h0IC8gMikgLyBjb250YWluZXJSZWN0LmhlaWdodCkgKiAxMDBcbiAgICBzZXRQb2ludFBvc2l0aW9uKHsgeDogeENlbnRlciwgeTogeUNlbnRlciB9KVxuICB9XG5cbiAgY29uc3QgZmlsZVNyY1RvVXNlID0gaW1hZ2VDYWNoZVRhZyA/IGAke2ZpbGVTcmN9PyR7aW1hZ2VDYWNoZVRhZ31gIDogZmlsZVNyY1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2Jhc2VDbGFzc30+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faGVhZGVyYH0+XG4gICAgICAgIDxoMiB0aXRsZT17YCR7dCgnZ2VuZXJhbDplZGl0aW5nJyl9ICR7ZmlsZU5hbWV9YH0+XG4gICAgICAgICAge3QoJ2dlbmVyYWw6ZWRpdGluZycpfSB7ZmlsZU5hbWV9XG4gICAgICAgIDwvaDI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19hY3Rpb25zYH0+XG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnY2FuY2VsJyl9XG4gICAgICAgICAgICBidXR0b25TdHlsZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2NhbmNlbGB9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBjbG9zZU1vZGFsKGVkaXREcmF3ZXJTbHVnKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dCgnZ2VuZXJhbDpjYW5jZWwnKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdnZW5lcmFsOmFwcGx5Q2hhbmdlcycpfVxuICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc2F2ZWB9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzYXZlRWRpdHMoKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dCgnZ2VuZXJhbDphcHBseUNoYW5nZXMnKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X190b29sV3JhcGB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fY3JvcGB9PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZm9jYWwtd3JhcHBlcmB9XG4gICAgICAgICAgICByZWY9e2ZvY2FsV3JhcFJlZn1cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIGFzcGVjdFJhdGlvOiBgJHtvcmlnaW5hbFdpZHRoIC8gb3JpZ2luYWxIZWlnaHR9YCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3Nob3dDcm9wID8gKFxuICAgICAgICAgICAgICA8UmVhY3RDcm9wXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19yZWFjdENyb3BgfVxuICAgICAgICAgICAgICAgIGNyb3A9e2Nyb3B9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhfLCBjKSA9PiBzZXRDcm9wKGMpfVxuICAgICAgICAgICAgICAgIG9uQ29tcGxldGU9eygpID0+IHNldENoZWNrQm91bmRzKHRydWUpfVxuICAgICAgICAgICAgICAgIHJlbmRlclNlbGVjdGlvbkFkZG9uPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2Nyb3Atd2luZG93YH0gcmVmPXtjcm9wUmVmfSAvPlxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICBhbHQ9e3QoJ3VwbG9hZDpzZXRDcm9wQXJlYScpfVxuICAgICAgICAgICAgICAgICAgb25Mb2FkPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRPcmlnaW5hbEhlaWdodChlLmN1cnJlbnRUYXJnZXQubmF0dXJhbEhlaWdodClcbiAgICAgICAgICAgICAgICAgICAgc2V0T3JpZ2luYWxXaWR0aChlLmN1cnJlbnRUYXJnZXQubmF0dXJhbFdpZHRoKVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHJlZj17aW1hZ2VSZWZ9XG4gICAgICAgICAgICAgICAgICBzcmM9e2ZpbGVTcmNUb1VzZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1JlYWN0Q3JvcD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxpbWcgYWx0PXt0KCd1cGxvYWQ6c2V0Rm9jYWxQb2ludCcpfSByZWY9e2ltYWdlUmVmfSBzcmM9e2ZpbGVTcmNUb1VzZX0gLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8RHJhZ2dhYmxlRWxlbWVudFxuICAgICAgICAgICAgICBib3VuZHNSZWY9e2Nyb3BSZWZ9XG4gICAgICAgICAgICAgIGNoZWNrQm91bmRzPXtjaGVja0JvdW5kc31cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19mb2NhbFBvaW50YH1cbiAgICAgICAgICAgICAgY29udGFpbmVyUmVmPXtmb2NhbFdyYXBSZWZ9XG4gICAgICAgICAgICAgIGluaXRpYWxQb3NpdGlvbj17cG9pbnRQb3NpdGlvbn1cbiAgICAgICAgICAgICAgb25EcmFnRW5kPXtvbkRyYWdFbmR9XG4gICAgICAgICAgICAgIHNldENoZWNrQm91bmRzPXtzZXRDaGVja0JvdW5kc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFBsdXMgLz5cbiAgICAgICAgICAgIDwvRHJhZ2dhYmxlRWxlbWVudD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHsoc2hvd0Nyb3AgfHwgc2hvd0ZvY2FsUG9pbnQpICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc2lkZWJhcmB9PlxuICAgICAgICAgICAge3Nob3dDcm9wICYmIChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2dyb3VwV3JhcGB9PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdGl0bGVXcmFwYH0+XG4gICAgICAgICAgICAgICAgICAgIDxoMz57dCgndXBsb2FkOmNyb3AnKX08L2gzPlxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3Jlc2V0YH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q3JvcCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0OiAnJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHk6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt0KCdnZW5lcmFsOnJlc2V0Jyl9XG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19kZXNjcmlwdGlvbmB9PlxuICAgICAgICAgICAgICAgICAge3QoJ3VwbG9hZDpjcm9wVG9vbERlc2NyaXB0aW9uJyl9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19pbnB1dHNXcmFwYH0+XG4gICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbmFtZT17YCR7dCgndXBsb2FkOndpZHRoJyl9IChweClgfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHZhbHVlKSA9PiBmaW5lVHVuZUNyb3AoeyBkaW1lbnNpb246ICd3aWR0aCcsIHZhbHVlIH0pfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17KChjcm9wLndpZHRoIC8gMTAwKSAqIG9yaWdpbmFsV2lkdGgpLnRvRml4ZWQoMCl9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2Ake3QoJ3VwbG9hZDpoZWlnaHQnKX0gKHB4KWB9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUpID0+IGZpbmVUdW5lQ3JvcCh7IGRpbWVuc2lvbjogJ2hlaWdodCcsIHZhbHVlIH0pfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17KChjcm9wLmhlaWdodCAvIDEwMCkgKiBvcmlnaW5hbEhlaWdodCkudG9GaXhlZCgwKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAge3Nob3dGb2NhbFBvaW50ICYmIChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2dyb3VwV3JhcGB9PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdGl0bGVXcmFwYH0+XG4gICAgICAgICAgICAgICAgICAgIDxoMz57dCgndXBsb2FkOmZvY2FsUG9pbnQnKX08L2gzPlxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3Jlc2V0YH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjZW50ZXJGb2NhbFBvaW50fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3QoJ2dlbmVyYWw6cmVzZXQnKX1cbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2Rlc2NyaXB0aW9uYH0+XG4gICAgICAgICAgICAgICAgICB7dCgndXBsb2FkOmZvY2FsUG9pbnREZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faW5wdXRzV3JhcGB9PlxuICAgICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJYICVcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHZhbHVlKSA9PiBmaW5lVHVuZUZvY2FsUG9pbnQoeyBjb29yZGluYXRlOiAneCcsIHZhbHVlIH0pfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17cG9pbnRQb3NpdGlvbi54LnRvRml4ZWQoMCl9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJZICVcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHZhbHVlKSA9PiBmaW5lVHVuZUZvY2FsUG9pbnQoeyBjb29yZGluYXRlOiAneScsIHZhbHVlIH0pfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17cG9pbnRQb3NpdGlvbi55LnRvRml4ZWQoMCl9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jb25zdCBEcmFnZ2FibGVFbGVtZW50ID0gKHtcbiAgYm91bmRzUmVmLFxuICBjaGVja0JvdW5kcyxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgY29udGFpbmVyUmVmLFxuICBpbml0aWFsUG9zaXRpb24gPSB7IHg6IDUwLCB5OiA1MCB9LFxuICBvbkRyYWdFbmQsXG4gIHNldENoZWNrQm91bmRzLFxufSkgPT4ge1xuICBjb25zdCBbcG9zaXRpb24sIHNldFBvc2l0aW9uXSA9IHVzZVN0YXRlKHsgeDogaW5pdGlhbFBvc2l0aW9uLngsIHk6IGluaXRpYWxQb3NpdGlvbi55IH0pXG4gIGNvbnN0IFtpc0RyYWdnaW5nLCBzZXRJc0RyYWdnaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBkcmFnUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkPigpXG5cbiAgY29uc3QgZ2V0Q29vcmRpbmF0ZXMgPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAobW91c2VYQXJnPzogbnVtYmVyLCBtb3VzZVlBcmc/OiBudW1iZXIsIHJlY2VudGVyPzogYm9vbGVhbikgPT4ge1xuICAgICAgY29uc3QgY29udGFpbmVyUmVjdCA9IGNvbnRhaW5lclJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICBjb25zdCBib3VuZHNSZWN0ID0gYm91bmRzUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIGNvbnN0IG1vdXNlWCA9IG1vdXNlWEFyZyA/PyBib3VuZHNSZWN0LmxlZnRcbiAgICAgIGNvbnN0IG1vdXNlWSA9IG1vdXNlWUFyZyA/PyBib3VuZHNSZWN0LnRvcFxuXG4gICAgICBjb25zdCB4T3V0T2ZCb3VuZHMgPSBtb3VzZVggPCBib3VuZHNSZWN0LmxlZnQgfHwgbW91c2VYID4gYm91bmRzUmVjdC5yaWdodFxuICAgICAgY29uc3QgeU91dE9mQm91bmRzID0gbW91c2VZIDwgYm91bmRzUmVjdC50b3AgfHwgbW91c2VZID4gYm91bmRzUmVjdC5ib3R0b21cblxuICAgICAgbGV0IHggPSAoKG1vdXNlWCAtIGNvbnRhaW5lclJlY3QubGVmdCkgLyBjb250YWluZXJSZWN0LndpZHRoKSAqIDEwMFxuICAgICAgbGV0IHkgPSAoKG1vdXNlWSAtIGNvbnRhaW5lclJlY3QudG9wKSAvIGNvbnRhaW5lclJlY3QuaGVpZ2h0KSAqIDEwMFxuICAgICAgY29uc3QgeENlbnRlciA9XG4gICAgICAgICgoYm91bmRzUmVjdC5sZWZ0IC0gY29udGFpbmVyUmVjdC5sZWZ0ICsgYm91bmRzUmVjdC53aWR0aCAvIDIpIC8gY29udGFpbmVyUmVjdC53aWR0aCkgKiAxMDBcbiAgICAgIGNvbnN0IHlDZW50ZXIgPVxuICAgICAgICAoKGJvdW5kc1JlY3QudG9wIC0gY29udGFpbmVyUmVjdC50b3AgKyBib3VuZHNSZWN0LmhlaWdodCAvIDIpIC8gY29udGFpbmVyUmVjdC5oZWlnaHQpICogMTAwXG4gICAgICBpZiAoeE91dE9mQm91bmRzIHx8IHlPdXRPZkJvdW5kcykge1xuICAgICAgICBzZXRJc0RyYWdnaW5nKGZhbHNlKVxuICAgICAgICBpZiAobW91c2VYIDwgYm91bmRzUmVjdC5sZWZ0KSB7XG4gICAgICAgICAgeCA9ICgoYm91bmRzUmVjdC5sZWZ0IC0gY29udGFpbmVyUmVjdC5sZWZ0KSAvIGNvbnRhaW5lclJlY3Qud2lkdGgpICogMTAwXG4gICAgICAgIH0gZWxzZSBpZiAobW91c2VYID4gYm91bmRzUmVjdC5yaWdodCkge1xuICAgICAgICAgIHggPVxuICAgICAgICAgICAgKChjb250YWluZXJSZWN0LndpZHRoIC0gKGNvbnRhaW5lclJlY3QucmlnaHQgLSBib3VuZHNSZWN0LnJpZ2h0KSkgL1xuICAgICAgICAgICAgICBjb250YWluZXJSZWN0LndpZHRoKSAqXG4gICAgICAgICAgICAxMDBcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtb3VzZVkgPCBib3VuZHNSZWN0LnRvcCkge1xuICAgICAgICAgIHkgPSAoKGJvdW5kc1JlY3QudG9wIC0gY29udGFpbmVyUmVjdC50b3ApIC8gY29udGFpbmVyUmVjdC5oZWlnaHQpICogMTAwXG4gICAgICAgIH0gZWxzZSBpZiAobW91c2VZID4gYm91bmRzUmVjdC5ib3R0b20pIHtcbiAgICAgICAgICB5ID1cbiAgICAgICAgICAgICgoY29udGFpbmVyUmVjdC5oZWlnaHQgLSAoY29udGFpbmVyUmVjdC5ib3R0b20gLSBib3VuZHNSZWN0LmJvdHRvbSkpIC9cbiAgICAgICAgICAgICAgY29udGFpbmVyUmVjdC5oZWlnaHQpICpcbiAgICAgICAgICAgIDEwMFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlY2VudGVyKSB7XG4gICAgICAgICAgeCA9IHhPdXRPZkJvdW5kcyA/IHhDZW50ZXIgOiB4XG4gICAgICAgICAgeSA9IHlPdXRPZkJvdW5kcyA/IHlDZW50ZXIgOiB5XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHsgeCwgeSB9XG4gICAgfSxcbiAgICBbXSxcbiAgKVxuXG4gIGNvbnN0IGhhbmRsZU1vdXNlRG93biA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICBzZXRJc0RyYWdnaW5nKHRydWUpXG4gIH1cblxuICBjb25zdCBoYW5kbGVNb3VzZU1vdmUgPSAoZXZlbnQpID0+IHtcbiAgICBpZiAoIWlzRHJhZ2dpbmcpIHJldHVybiBudWxsXG4gICAgY29uc3QgeyB4LCB5IH0gPSBnZXRDb29yZGluYXRlcyhldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKVxuXG4gICAgc2V0UG9zaXRpb24oeyB4LCB5IH0pXG4gIH1cblxuICBjb25zdCBvbkRyb3AgPSAoKSA9PiB7XG4gICAgc2V0SXNEcmFnZ2luZyhmYWxzZSlcbiAgICBvbkRyYWdFbmQocG9zaXRpb24pXG4gIH1cblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc0RyYWdnaW5nIHx8ICFkcmFnUmVmLmN1cnJlbnQpIHJldHVyblxuICAgIGlmIChjaGVja0JvdW5kcykge1xuICAgICAgY29uc3QgeyBoZWlnaHQsIGxlZnQsIHRvcCwgd2lkdGggfSA9IGRyYWdSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgeyB4LCB5IH0gPSBnZXRDb29yZGluYXRlcyhsZWZ0ICsgd2lkdGggLyAyLCB0b3AgKyBoZWlnaHQgLyAyLCB0cnVlKVxuICAgICAgb25EcmFnRW5kKHsgeCwgeSB9KVxuICAgICAgc2V0UG9zaXRpb24oeyB4LCB5IH0pXG4gICAgICBzZXRDaGVja0JvdW5kcyhmYWxzZSlcbiAgICAgIHJldHVyblxuICAgIH1cbiAgfSwgW2dldENvb3JkaW5hdGVzLCBpc0RyYWdnaW5nLCBjaGVja0JvdW5kcywgc2V0Q2hlY2tCb3VuZHMsIHBvc2l0aW9uLngsIHBvc2l0aW9uLnldKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0UG9zaXRpb24oeyB4OiBpbml0aWFsUG9zaXRpb24ueCwgeTogaW5pdGlhbFBvc2l0aW9uLnkgfSlcbiAgfSwgW2luaXRpYWxQb3NpdGlvbi54LCBpbml0aWFsUG9zaXRpb24ueV0pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e1tcbiAgICAgICAgYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlLWNvbnRhaW5lcmAsXG4gICAgICAgIGlzRHJhZ2dpbmcgJiYgYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlLWNvbnRhaW5lci0tZHJhZ2dpbmdgLFxuICAgICAgXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5qb2luKCcgJyl9XG4gICAgICBvbk1vdXNlTW92ZT17aGFuZGxlTW91c2VNb3ZlfVxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtbYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlYCwgY2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgICBvbk1vdXNlRG93bj17aGFuZGxlTW91c2VEb3dufVxuICAgICAgICBvbk1vdXNlVXA9e29uRHJvcH1cbiAgICAgICAgcmVmPXtkcmFnUmVmfVxuICAgICAgICBzdHlsZT17eyBsZWZ0OiBgJHtwb3NpdGlvbi54fSVgLCBwb3NpdGlvbjogJ2Fic29sdXRlJywgdG9wOiBgJHtwb3NpdGlvbi55fSVgIH19XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAvPlxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiRWRpdFVwbG9hZCIsImJhc2VDbGFzcyIsIklucHV0IiwibmFtZSIsIm9uQ2hhbmdlIiwidmFsdWUiLCJkaXYiLCJjbGFzc05hbWUiLCJpbnB1dCIsImUiLCJ0YXJnZXQiLCJ0eXBlIiwiZmlsZU5hbWUiLCJmaWxlU3JjIiwiaW1hZ2VDYWNoZVRhZyIsInNob3dDcm9wIiwic2hvd0ZvY2FsUG9pbnQiLCJjbG9zZU1vZGFsIiwidXNlTW9kYWwiLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJmb3JtUXVlcnlQYXJhbXMiLCJzZXRGb3JtUXVlcnlQYXJhbXMiLCJ1c2VGb3JtUXVlcnlQYXJhbXMiLCJ1cGxvYWRFZGl0cyIsImNyb3AiLCJzZXRDcm9wIiwidXNlU3RhdGUiLCJoZWlnaHQiLCJ1bml0Iiwid2lkdGgiLCJ4IiwieSIsInBvaW50UG9zaXRpb24iLCJzZXRQb2ludFBvc2l0aW9uIiwiZm9jYWxQb2ludCIsImNoZWNrQm91bmRzIiwic2V0Q2hlY2tCb3VuZHMiLCJvcmlnaW5hbEhlaWdodCIsInNldE9yaWdpbmFsSGVpZ2h0Iiwib3JpZ2luYWxXaWR0aCIsInNldE9yaWdpbmFsV2lkdGgiLCJmb2NhbFdyYXBSZWYiLCJ1c2VSZWYiLCJpbWFnZVJlZiIsImNyb3BSZWYiLCJmaW5lVHVuZUNyb3AiLCJkaW1lbnNpb24iLCJpbnRWYWx1ZSIsInBhcnNlSW50IiwicGVyY2VudGFnZSIsImZpbmVUdW5lRm9jYWxQb2ludCIsImNvb3JkaW5hdGUiLCJwcmV2UG9zaXRpb24iLCJzYXZlRWRpdHMiLCJ1bmRlZmluZWQiLCJlZGl0RHJhd2VyU2x1ZyIsIm9uRHJhZ0VuZCIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJjZW50ZXJGb2NhbFBvaW50IiwiY29udGFpbmVyUmVjdCIsImN1cnJlbnQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJib3VuZHNSZWN0IiwieENlbnRlciIsImxlZnQiLCJ5Q2VudGVyIiwidG9wIiwiZmlsZVNyY1RvVXNlIiwiaDIiLCJ0aXRsZSIsIkJ1dHRvbiIsImFyaWEtbGFiZWwiLCJidXR0b25TdHlsZSIsIm9uQ2xpY2siLCJyZWYiLCJzdHlsZSIsImFzcGVjdFJhdGlvIiwiUmVhY3RDcm9wIiwiXyIsImMiLCJvbkNvbXBsZXRlIiwicmVuZGVyU2VsZWN0aW9uQWRkb24iLCJpbWciLCJhbHQiLCJvbkxvYWQiLCJjdXJyZW50VGFyZ2V0IiwibmF0dXJhbEhlaWdodCIsIm5hdHVyYWxXaWR0aCIsInNyYyIsIkRyYWdnYWJsZUVsZW1lbnQiLCJib3VuZHNSZWYiLCJjb250YWluZXJSZWYiLCJpbml0aWFsUG9zaXRpb24iLCJQbHVzIiwiaDMiLCJzcGFuIiwidG9GaXhlZCIsImNoaWxkcmVuIiwicG9zaXRpb24iLCJzZXRQb3NpdGlvbiIsImlzRHJhZ2dpbmciLCJzZXRJc0RyYWdnaW5nIiwiZHJhZ1JlZiIsImdldENvb3JkaW5hdGVzIiwibW91c2VYQXJnIiwibW91c2VZQXJnIiwicmVjZW50ZXIiLCJtb3VzZVgiLCJtb3VzZVkiLCJ4T3V0T2ZCb3VuZHMiLCJyaWdodCIsInlPdXRPZkJvdW5kcyIsImJvdHRvbSIsImhhbmRsZU1vdXNlRG93biIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJoYW5kbGVNb3VzZU1vdmUiLCJjbGllbnRYIiwiY2xpZW50WSIsIm9uRHJvcCIsInVzZUVmZmVjdCIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwib25Nb3VzZU1vdmUiLCJvbk1vdXNlRG93biIsIm9uTW91c2VVcCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkEyQmFBOzs7ZUFBQUE7Ozt1QkEzQlk7K0RBQ2U7OEJBQ1Q7dUVBQ2tCO1FBQzFDOzZEQUlVO2lDQUNrQjt3QkFDSjsrREFDWjtRQUNaOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFUCxNQUFNQyxZQUFZO0FBRWxCLE1BQU1DLFFBQXNGLENBQUMsRUFDM0ZDLElBQUksRUFDSkMsUUFBUSxFQUNSQyxLQUFLLEVBQ04saUJBQ0MsNkJBQUNDO1FBQUlDLFdBQVcsQ0FBQyxFQUFFTixVQUFVLE9BQU8sQ0FBQztPQUNsQ0Usb0JBQ0QsNkJBQUNLO1FBQU1MLE1BQU1BO1FBQU1DLFVBQVUsQ0FBQ0ssSUFBTUwsU0FBU0ssRUFBRUMsTUFBTSxDQUFDTCxLQUFL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
|
|
@@ -6,16 +6,22 @@
|
|
|
6
6
|
cursor: pointer;
|
|
7
7
|
background-color: transparent;
|
|
8
8
|
outline: none;
|
|
9
|
-
position:
|
|
9
|
+
position: relative;
|
|
10
10
|
|
|
11
|
-
--hamburger-padding:
|
|
11
|
+
--hamburger-padding: 8px;
|
|
12
12
|
--hamburger-size: 9px;
|
|
13
13
|
--hamburger-line-gap: 3px;
|
|
14
|
+
|
|
14
15
|
padding: var(--hamburger-padding);
|
|
15
|
-
border: 1px solid var(--theme-elevation-
|
|
16
|
+
border: 1px solid var(--theme-elevation-150);
|
|
16
17
|
color: var(--theme-text);
|
|
17
18
|
border-radius: 3px;
|
|
18
19
|
|
|
20
|
+
&:hover {
|
|
21
|
+
border: 1px solid var(--theme-elevation-500);
|
|
22
|
+
background-color: var(--theme-elevation-100);
|
|
23
|
+
}
|
|
24
|
+
|
|
19
25
|
&:focus {
|
|
20
26
|
outline: none;
|
|
21
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/Header/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/Header/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAYzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EA2C7B,CAAA"}
|
|
@@ -17,6 +17,7 @@ const _Hamburger = require("../Hamburger");
|
|
|
17
17
|
const _Localizer = /*#__PURE__*/ _interop_require_default(require("../Localizer"));
|
|
18
18
|
const _LocalizerLabel = require("../Localizer/LocalizerLabel");
|
|
19
19
|
const _NavToggler = require("../Nav/NavToggler");
|
|
20
|
+
const _context = require("../Nav/context");
|
|
20
21
|
const _StepNav = /*#__PURE__*/ _interop_require_default(require("../StepNav"));
|
|
21
22
|
require("./index.scss");
|
|
22
23
|
function _interop_require_default(obj) {
|
|
@@ -28,9 +29,11 @@ const baseClass = 'app-header';
|
|
|
28
29
|
const AppHeader = (props)=>{
|
|
29
30
|
const { t } = (0, _reacti18next.useTranslation)();
|
|
30
31
|
const { localization, routes: { admin: adminRoute } } = (0, _Config.useConfig)();
|
|
32
|
+
const { navOpen } = (0, _context.useNav)();
|
|
31
33
|
return /*#__PURE__*/ _react.default.createElement("header", {
|
|
32
34
|
className: [
|
|
33
|
-
baseClass
|
|
35
|
+
baseClass,
|
|
36
|
+
navOpen && `${baseClass}--nav-open`
|
|
34
37
|
].filter(Boolean).join(' ')
|
|
35
38
|
}, /*#__PURE__*/ _react.default.createElement("div", {
|
|
36
39
|
className: `${baseClass}__bg`
|
|
@@ -60,4 +63,4 @@ const AppHeader = (props)=>{
|
|
|
60
63
|
}));
|
|
61
64
|
};
|
|
62
65
|
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0hlYWRlci9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgTGluayB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nXG5cbmltcG9ydCBBY2NvdW50IGZyb20gJy4uLy4uL2dyYXBoaWNzL0FjY291bnQnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvQ29uZmlnJ1xuaW1wb3J0IHsgSGFtYnVyZ2VyIH0gZnJvbSAnLi4vSGFtYnVyZ2VyJ1xuaW1wb3J0IExvY2FsaXplciBmcm9tICcuLi9Mb2NhbGl6ZXInXG5pbXBvcnQgeyBMb2NhbGl6ZXJMYWJlbCB9IGZyb20gJy4uL0xvY2FsaXplci9Mb2NhbGl6ZXJMYWJlbCdcbmltcG9ydCB7IE5hdlRvZ2dsZXIgfSBmcm9tICcuLi9OYXYvTmF2VG9nZ2xlcidcbmltcG9ydCB7IHVzZU5hdiB9IGZyb20gJy4uL05hdi9jb250ZXh0J1xuaW1wb3J0IFN0ZXBOYXYgZnJvbSAnLi4vU3RlcE5hdidcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnYXBwLWhlYWRlcidcblxuZXhwb3J0IGNvbnN0IEFwcEhlYWRlcjogUmVhY3QuRkMgPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpXG5cbiAgY29uc3Qge1xuICAgIGxvY2FsaXphdGlvbixcbiAgICByb3V0ZXM6IHsgYWRtaW46IGFkbWluUm91dGUgfSxcbiAgfSA9IHVzZUNvbmZpZygpXG5cbiAgY29uc3QgeyBuYXZPcGVuIH0gPSB1c2VOYXYoKVxuXG4gIHJldHVybiAoXG4gICAgPGhlYWRlciBjbGFzc05hbWU9e1tiYXNlQ2xhc3MsIG5hdk9wZW4gJiYgYCR7YmFzZUNsYXNzfS0tbmF2LW9wZW5gXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19iZ2B9IC8+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fY29udGVudGB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fd3JhcHBlcmB9PlxuICAgICAgICAgIDxOYXZUb2dnbGVyIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbW9iaWxlLW5hdi10b2dnbGVyYH0+XG4gICAgICAgICAgICA8SGFtYnVyZ2VyIC8+XG4gICAgICAgICAgPC9OYXZUb2dnbGVyPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19jb250cm9scy13cmFwcGVyYH0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc3RlcC1uYXYtd3JhcHBlcmB9PlxuICAgICAgICAgICAgICA8U3RlcE5hdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3N0ZXAtbmF2YH0gLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2NvbnRyb2xzYH0+XG4gICAgICAgICAgICAgIHtsb2NhbGl6YXRpb24gJiYgKFxuICAgICAgICAgICAgICAgIDxMb2NhbGl6ZXJMYWJlbFxuICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiaW52aXNpYmxlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbG9jYWxpemVyLXNwYWNpbmdgfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnYXV0aGVudGljYXRpb246YWNjb3VudCcpfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fYWNjb3VudGB9XG4gICAgICAgICAgICAgICAgdG89e2Ake2FkbWluUm91dGV9L2FjY291bnRgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEFjY291bnQgLz5cbiAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8TG9jYWxpemVyIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbG9jYWxpemVyYH0gLz5cbiAgICA8L2hlYWRlcj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkFwcEhlYWRlciIsImJhc2VDbGFzcyIsInByb3BzIiwidCIsInVzZVRyYW5zbGF0aW9uIiwibG9jYWxpemF0aW9uIiwicm91dGVzIiwiYWRtaW4iLCJhZG1pblJvdXRlIiwidXNlQ29uZmlnIiwibmF2T3BlbiIsInVzZU5hdiIsImhlYWRlciIsImNsYXNzTmFtZSIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiZGl2IiwiTmF2VG9nZ2xlciIsIkhhbWJ1cmdlciIsIlN0ZXBOYXYiLCJMb2NhbGl6ZXJMYWJlbCIsImFyaWFMYWJlbCIsIkxpbmsiLCJhcmlhLWxhYmVsIiwidG8iLCJBY2NvdW50IiwiTG9jYWxpemVyIl0sIm1hcHBpbmdzIjoiOzs7OytCQWdCYUE7OztlQUFBQTs7OzhEQWhCSzs4QkFDYTtnQ0FDVjtnRUFFRDt3QkFDTTsyQkFDQTtrRUFDSjtnQ0FDUzs0QkFDSjt5QkFDSjtnRUFDSDtRQUNiOzs7Ozs7QUFFUCxNQUFNQyxZQUFZO0FBRVgsTUFBTUQsWUFBc0IsQ0FBQ0U7SUFDbEMsTUFBTSxFQUFFQyxDQUFDLEVBQUUsR0FBR0MsSUFBQUEsNEJBQWM7SUFFNUIsTUFBTSxFQUNKQyxZQUFZLEVBQ1pDLFFBQVEsRUFBRUMsT0FBT0MsVUFBVSxFQUFFLEVBQzlCLEdBQUdDLElBQUFBLGlCQUFTO0lBRWIsTUFBTSxFQUFFQyxPQUFPLEVBQUUsR0FBR0MsSUFBQUEsZUFBTTtJQUUxQixxQkFDRSw2QkFBQ0M7UUFBT0MsV0FBVztZQUFDWjtZQUFXUyxXQUFXLENBQUMsRUFBRVQsVUFBVSxVQUFVLENBQUM7U0FBQyxDQUFDYSxNQUFNLENBQUNDLFNBQVNDLElBQUksQ0FBQztxQkFDdkYsNkJBQUNDO1FBQUlKLFdBQVcsQ0FBQyxFQUFFWixVQUFVLElBQUksQ0FBQztzQkFDbEMsNkJBQUNnQjtRQUFJSixXQUFXLENBQUMsRUFBRVosVUFBVSxTQUFTLENBQUM7cUJBQ3JDLDZCQUFDZ0I7UUFBSUosV0FBVyxDQUFDLEVBQUVaLFVBQVUsU0FBUyxDQUFDO3FCQUNyQyw2QkFBQ2lCLHNCQUFVO1FBQUNMLFdBQVcsQ0FBQyxFQUFFWixVQUFVLG9CQUFvQixDQUFDO3FCQUN2RCw2QkFBQ2tCLG9CQUFTLHdCQUVaLDZCQUFDRjtRQUFJSixXQUFXLENBQUMsRUFBRVosVUFBVSxrQkFBa0IsQ0FBQztxQkFDOUMsNkJBQUNnQjtRQUFJSixXQUFXLENBQUMsRUFBRVosVUFBVSxrQkFBa0IsQ0FBQztxQkFDOUMsNkJBQUNtQixnQkFBTztRQUFDUCxXQUFXLENBQUMsRUFBRVosVUFBVSxVQUFVLENBQUM7dUJBRTlDLDZCQUFDZ0I7UUFBSUosV0FBVyxDQUFDLEVBQUVaLFVBQVUsVUFBVSxDQUFDO09BQ3JDSSw4QkFDQyw2QkFBQ2dCLDhCQUFjO1FBQ2JDLFdBQVU7UUFDVlQsV0FBVyxDQUFDLEVBQUVaLFVBQVUsbUJBQW1CLENBQUM7c0JBR2hELDZCQUFDc0Isb0JBQUk7UUFDSEMsY0FBWXJCLEVBQUU7UUFDZFUsV0FBVyxDQUFDLEVBQUVaLFVBQVUsU0FBUyxDQUFDO1FBQ2xDd0IsSUFBSSxDQUFDLEVBQUVqQixXQUFXLFFBQVEsQ0FBQztxQkFFM0IsNkJBQUNrQixnQkFBTyw0QkFNbEIsNkJBQUNDLGtCQUFTO1FBQUNkLFdBQVcsQ0FBQyxFQUFFWixVQUFVLFdBQVcsQ0FBQzs7QUFHckQifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/Nav/context.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAKhD,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACvC,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACrC,CAAA;AAED,eAAO,MAAM,UAAU,+BAIrB,CAAA;AAEF,eAAO,MAAM,MAAM,sBAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/Nav/context.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAKhD,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACvC,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACrC,CAAA;AAED,eAAO,MAAM,UAAU,+BAIrB,CAAA;AAEF,eAAO,MAAM,MAAM,sBAAqC,CAAA;AAYxD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CA0EA,CAAA"}
|
|
@@ -69,8 +69,17 @@ const NavContext = /*#__PURE__*/ _react.default.createContext({
|
|
|
69
69
|
setNavOpen: ()=>{}
|
|
70
70
|
});
|
|
71
71
|
const useNav = ()=>_react.default.useContext(NavContext);
|
|
72
|
+
const getNavPreference = async (getPreference)=>{
|
|
73
|
+
const navPrefs = await getPreference('nav');
|
|
74
|
+
const preferredState = navPrefs?.open;
|
|
75
|
+
if (typeof preferredState === 'boolean') {
|
|
76
|
+
return preferredState;
|
|
77
|
+
} else {
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
72
81
|
const NavProvider = ({ children })=>{
|
|
73
|
-
const { breakpoints: { l: largeBreak } } = (0, _windowinfo.useWindowInfo)();
|
|
82
|
+
const { breakpoints: { l: largeBreak, m: midBreak, s: smallBreak } } = (0, _windowinfo.useWindowInfo)();
|
|
74
83
|
const { getPreference } = (0, _Preferences.usePreferences)();
|
|
75
84
|
const history = (0, _reactrouterdom.useHistory)();
|
|
76
85
|
const navRef = (0, _react.useRef)(null);
|
|
@@ -83,15 +92,11 @@ const NavProvider = ({ children })=>{
|
|
|
83
92
|
(0, _react.useEffect)(()=>{
|
|
84
93
|
if (largeBreak === false) {
|
|
85
94
|
const setNavFromPreferences = async ()=>{
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
if (typeof preferredState === 'boolean') {
|
|
89
|
-
setNavOpen(preferredState);
|
|
90
|
-
} else {
|
|
91
|
-
setNavOpen(true);
|
|
92
|
-
}
|
|
95
|
+
const preferredState = await getNavPreference(getPreference);
|
|
96
|
+
setNavOpen(preferredState);
|
|
93
97
|
};
|
|
94
|
-
setNavFromPreferences()
|
|
98
|
+
setNavFromPreferences() // eslint-disable-line @typescript-eslint/no-floating-promises
|
|
99
|
+
;
|
|
95
100
|
}
|
|
96
101
|
}, [
|
|
97
102
|
largeBreak,
|
|
@@ -102,7 +107,7 @@ const NavProvider = ({ children })=>{
|
|
|
102
107
|
// close the nav when the user navigates away
|
|
103
108
|
(0, _react.useEffect)(()=>{
|
|
104
109
|
let unlisten;
|
|
105
|
-
if (
|
|
110
|
+
if (midBreak) {
|
|
106
111
|
unlisten = history.listen(()=>{
|
|
107
112
|
setNavOpen(false);
|
|
108
113
|
});
|
|
@@ -113,22 +118,13 @@ const NavProvider = ({ children })=>{
|
|
|
113
118
|
}, [
|
|
114
119
|
history,
|
|
115
120
|
setNavOpen,
|
|
116
|
-
|
|
117
|
-
]);
|
|
118
|
-
// on smaller screens where the nav is a modal
|
|
119
|
-
// close the nav when the user resizes down to a smaller screen
|
|
120
|
-
(0, _react.useEffect)(()=>{
|
|
121
|
-
if (largeBreak) {
|
|
122
|
-
setNavOpen(false);
|
|
123
|
-
}
|
|
124
|
-
}, [
|
|
125
|
-
largeBreak
|
|
121
|
+
midBreak
|
|
126
122
|
]);
|
|
127
123
|
// on open and close, lock the body scroll
|
|
128
124
|
// do not do this on desktop, the sidebar is not a modal
|
|
129
125
|
(0, _react.useEffect)(()=>{
|
|
130
126
|
if (navRef.current) {
|
|
131
|
-
if (navOpen &&
|
|
127
|
+
if (navOpen && midBreak) {
|
|
132
128
|
(0, _bodyscrolllock.disableBodyScroll)(navRef.current);
|
|
133
129
|
} else {
|
|
134
130
|
(0, _bodyscrolllock.enableBodyScroll)(navRef.current);
|
|
@@ -136,7 +132,19 @@ const NavProvider = ({ children })=>{
|
|
|
136
132
|
}
|
|
137
133
|
}, [
|
|
138
134
|
navOpen,
|
|
139
|
-
|
|
135
|
+
midBreak
|
|
136
|
+
]);
|
|
137
|
+
// on smaller screens where the nav is a modal
|
|
138
|
+
// close the nav when the user resizes down to mobile
|
|
139
|
+
// the sidebar is a modal on mobile
|
|
140
|
+
(0, _react.useEffect)(()=>{
|
|
141
|
+
if (largeBreak === false || midBreak === false || smallBreak === false) {
|
|
142
|
+
setNavOpen(false);
|
|
143
|
+
}
|
|
144
|
+
}, [
|
|
145
|
+
largeBreak,
|
|
146
|
+
midBreak,
|
|
147
|
+
smallBreak
|
|
140
148
|
]);
|
|
141
149
|
// when the component unmounts, clear all body scroll locks
|
|
142
150
|
(0, _react.useEffect)(()=>{
|
|
@@ -153,4 +161,4 @@ const NavProvider = ({ children })=>{
|
|
|
153
161
|
}, children);
|
|
154
162
|
};
|
|
155
163
|
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL05hdi9jb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VXaW5kb3dJbmZvIH0gZnJvbSAnQGZhY2VsZXNzLXVpL3dpbmRvdy1pbmZvJ1xuaW1wb3J0IHsgY2xlYXJBbGxCb2R5U2Nyb2xsTG9ja3MsIGRpc2FibGVCb2R5U2Nyb2xsLCBlbmFibGVCb2R5U2Nyb2xsIH0gZnJvbSAnYm9keS1zY3JvbGwtbG9jaydcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlSGlzdG9yeSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nXG5cbmltcG9ydCB7IHVzZVByZWZlcmVuY2VzIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL1ByZWZlcmVuY2VzJ1xuXG50eXBlIE5hdkNvbnRleHRUeXBlID0ge1xuICBuYXZPcGVuOiBib29sZWFuXG4gIG5hdlJlZjogUmVhY3QuUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PlxuICBzZXROYXZPcGVuOiAodmFsdWU6IGJvb2xlYW4pID0+
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL05hdi9jb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VXaW5kb3dJbmZvIH0gZnJvbSAnQGZhY2VsZXNzLXVpL3dpbmRvdy1pbmZvJ1xuaW1wb3J0IHsgY2xlYXJBbGxCb2R5U2Nyb2xsTG9ja3MsIGRpc2FibGVCb2R5U2Nyb2xsLCBlbmFibGVCb2R5U2Nyb2xsIH0gZnJvbSAnYm9keS1zY3JvbGwtbG9jaydcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlSGlzdG9yeSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nXG5cbmltcG9ydCB7IHVzZVByZWZlcmVuY2VzIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL1ByZWZlcmVuY2VzJ1xuXG50eXBlIE5hdkNvbnRleHRUeXBlID0ge1xuICBuYXZPcGVuOiBib29sZWFuXG4gIG5hdlJlZjogUmVhY3QuUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PlxuICBzZXROYXZPcGVuOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWRcbn1cblxuZXhwb3J0IGNvbnN0IE5hdkNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0PE5hdkNvbnRleHRUeXBlPih7XG4gIG5hdk9wZW46IHRydWUsXG4gIG5hdlJlZjogbnVsbCxcbiAgc2V0TmF2T3BlbjogKCkgPT4ge30sXG59KVxuXG5leHBvcnQgY29uc3QgdXNlTmF2ID0gKCkgPT4gUmVhY3QudXNlQ29udGV4dChOYXZDb250ZXh0KVxuXG5jb25zdCBnZXROYXZQcmVmZXJlbmNlID0gYXN5bmMgKGdldFByZWZlcmVuY2UpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3QgbmF2UHJlZnMgPSBhd2FpdCBnZXRQcmVmZXJlbmNlKCduYXYnKVxuICBjb25zdCBwcmVmZXJyZWRTdGF0ZSA9IG5hdlByZWZzPy5vcGVuXG4gIGlmICh0eXBlb2YgcHJlZmVycmVkU3RhdGUgPT09ICdib29sZWFuJykge1xuICAgIHJldHVybiBwcmVmZXJyZWRTdGF0ZVxuICB9IGVsc2Uge1xuICAgIHJldHVybiB0cnVlXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IE5hdlByb3ZpZGVyOiBSZWFjdC5GQzx7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbn0+ID0gKHsgY2hpbGRyZW4gfSkgPT4ge1xuICBjb25zdCB7XG4gICAgYnJlYWtwb2ludHM6IHsgbDogbGFyZ2VCcmVhaywgbTogbWlkQnJlYWssIHM6IHNtYWxsQnJlYWsgfSxcbiAgfSA9IHVzZVdpbmRvd0luZm8oKVxuXG4gIGNvbnN0IHsgZ2V0UHJlZmVyZW5jZSB9ID0gdXNlUHJlZmVyZW5jZXMoKVxuICBjb25zdCBoaXN0b3J5ID0gdXNlSGlzdG9yeSgpXG4gIGNvbnN0IG5hdlJlZiA9IHVzZVJlZihudWxsKVxuXG4gIC8vIGluaXRpYWxpemUgdGhlIG5hdiB0byBiZSBjbG9zZWRcbiAgLy8gdGhpcyBpcyBiZWNhdXNlIGdldHRpbmcgdGhlIHByZWZlcmVuY2UgaXMgYXN5bmNcbiAgLy8gc28gaW5zdGVhZCBvZiBjbG9zaW5nIGl0IGFmdGVyIHRoZSBwcmVmZXJlbmNlIGlzIGxvYWRlZFxuICAvLyB3ZSB3aWxsIG9wZW4gaXQgYWZ0ZXIgdGhlIHByZWZlcmVuY2UgaXMgbG9hZGVkXG4gIGNvbnN0IFtuYXZPcGVuLCBzZXROYXZPcGVuXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKVxuXG4gIC8vIG9uIGxvYWQgY2hlY2sgdGhlIHVzZXIncyBwcmVmZXJlbmNlIGFuZCBzZXQgXCJpbml0aWFsXCIgc3RhdGVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobGFyZ2VCcmVhayA9PT0gZmFsc2UpIHtcbiAgICAgIGNvbnN0IHNldE5hdkZyb21QcmVmZXJlbmNlcyA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgcHJlZmVycmVkU3RhdGUgPSBhd2FpdCBnZXROYXZQcmVmZXJlbmNlKGdldFByZWZlcmVuY2UpXG4gICAgICAgIHNldE5hdk9wZW4ocHJlZmVycmVkU3RhdGUpXG4gICAgICB9XG5cbiAgICAgIHNldE5hdkZyb21QcmVmZXJlbmNlcygpIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWZsb2F0aW5nLXByb21pc2VzXG4gICAgfVxuICB9LCBbbGFyZ2VCcmVhaywgZ2V0UHJlZmVyZW5jZSwgc2V0TmF2T3Blbl0pXG5cbiAgLy8gb24gc21hbGxlciBzY3JlZW5zIHdoZXJlIHRoZSBuYXYgaXMgYSBtb2RhbFxuICAvLyBjbG9zZSB0aGUgbmF2IHdoZW4gdGhlIHVzZXIgbmF2aWdhdGVzIGF3YXlcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgdW5saXN0ZW46ICgpID0+IHZvaWRcblxuICAgIGlmIChtaWRCcmVhaykge1xuICAgICAgdW5saXN0ZW4gPSBoaXN0b3J5Lmxpc3RlbigoKSA9PiB7XG4gICAgICAgIHNldE5hdk9wZW4oZmFsc2UpXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAodW5saXN0ZW4pIHtcbiAgICAgIHVubGlzdGVuKClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4gdW5saXN0ZW4gJiYgdW5saXN0ZW4oKVxuICB9LCBbaGlzdG9yeSwgc2V0TmF2T3BlbiwgbWlkQnJlYWtdKVxuXG4gIC8vIG9uIG9wZW4gYW5kIGNsb3NlLCBsb2NrIHRoZSBib2R5IHNjcm9sbFxuICAvLyBkbyBub3QgZG8gdGhpcyBvbiBkZXNrdG9wLCB0aGUgc2lkZWJhciBpcyBub3QgYSBtb2RhbFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChuYXZSZWYuY3VycmVudCkge1xuICAgICAgaWYgKG5hdk9wZW4gJiYgbWlkQnJlYWspIHtcbiAgICAgICAgZGlzYWJsZUJvZHlTY3JvbGwobmF2UmVmLmN1cnJlbnQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbmFibGVCb2R5U2Nyb2xsKG5hdlJlZi5jdXJyZW50KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW25hdk9wZW4sIG1pZEJyZWFrXSlcblxuICAvLyBvbiBzbWFsbGVyIHNjcmVlbnMgd2hlcmUgdGhlIG5hdiBpcyBhIG1vZGFsXG4gIC8vIGNsb3NlIHRoZSBuYXYgd2hlbiB0aGUgdXNlciByZXNpemVzIGRvd24gdG8gbW9iaWxlXG4gIC8vIHRoZSBzaWRlYmFyIGlzIGEgbW9kYWwgb24gbW9iaWxlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxhcmdlQnJlYWsgPT09IGZhbHNlIHx8IG1pZEJyZWFrID09PSBmYWxzZSB8fCBzbWFsbEJyZWFrID09PSBmYWxzZSkge1xuICAgICAgc2V0TmF2T3BlbihmYWxzZSlcbiAgICB9XG4gIH0sIFtsYXJnZUJyZWFrLCBtaWRCcmVhaywgc21hbGxCcmVha10pXG5cbiAgLy8gd2hlbiB0aGUgY29tcG9uZW50IHVubW91bnRzLCBjbGVhciBhbGwgYm9keSBzY3JvbGwgbG9ja3NcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2xlYXJBbGxCb2R5U2Nyb2xsTG9ja3MoKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgcmV0dXJuIChcbiAgICA8TmF2Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17eyBuYXZPcGVuLCBuYXZSZWYsIHNldE5hdk9wZW4gfX0+e2NoaWxkcmVufTwvTmF2Q29udGV4dC5Qcm92aWRlcj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIk5hdkNvbnRleHQiLCJ1c2VOYXYiLCJOYXZQcm92aWRlciIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsIm5hdk9wZW4iLCJuYXZSZWYiLCJzZXROYXZPcGVuIiwidXNlQ29udGV4dCIsImdldE5hdlByZWZlcmVuY2UiLCJnZXRQcmVmZXJlbmNlIiwibmF2UHJlZnMiLCJwcmVmZXJyZWRTdGF0ZSIsIm9wZW4iLCJjaGlsZHJlbiIsImJyZWFrcG9pbnRzIiwibCIsImxhcmdlQnJlYWsiLCJtIiwibWlkQnJlYWsiLCJzIiwic21hbGxCcmVhayIsInVzZVdpbmRvd0luZm8iLCJ1c2VQcmVmZXJlbmNlcyIsImhpc3RvcnkiLCJ1c2VIaXN0b3J5IiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJzZXROYXZGcm9tUHJlZmVyZW5jZXMiLCJ1bmxpc3RlbiIsImxpc3RlbiIsImN1cnJlbnQiLCJkaXNhYmxlQm9keVNjcm9sbCIsImVuYWJsZUJvZHlTY3JvbGwiLCJjbGVhckFsbEJvZHlTY3JvbGxMb2NrcyIsIlByb3ZpZGVyIiwidmFsdWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBYWFBLFVBQVU7ZUFBVkE7O0lBTUFDLE1BQU07ZUFBTkE7O0lBWUFDLFdBQVc7ZUFBWEE7Ozs0QkEvQmlCO2dDQUMrQzsrREFDcEM7Z0NBQ2Q7NkJBRUk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFReEIsTUFBTUYsMkJBQWFHLGNBQUssQ0FBQ0MsYUFBYSxDQUFpQjtJQUM1REMsU0FBUztJQUNUQyxRQUFRO0lBQ1JDLFlBQVksS0FBTztBQUNyQjtBQUVPLE1BQU1OLFNBQVMsSUFBTUUsY0FBSyxDQUFDSyxVQUFVLENBQUNSO0FBRTdDLE1BQU1TLG1CQUFtQixPQUFPQztJQUM5QixNQUFNQyxXQUFXLE1BQU1ELGNBQWM7SUFDckMsTUFBTUUsaUJBQWlCRCxVQUFVRTtJQUNqQyxJQUFJLE9BQU9ELG1CQUFtQixXQUFXO1FBQ3ZDLE9BQU9BO0lBQ1QsT0FBTztRQUNMLE9BQU87SUFDVDtBQUNGO0FBRU8sTUFBTVYsY0FFUixDQUFDLEVBQUVZLFFBQVEsRUFBRTtJQUNoQixNQUFNLEVBQ0pDLGFBQWEsRUFBRUMsR0FBR0MsVUFBVSxFQUFFQyxHQUFHQyxRQUFRLEVBQUVDLEdBQUdDLFVBQVUsRUFBRSxFQUMzRCxHQUFHQyxJQUFBQSx5QkFBYTtJQUVqQixNQUFNLEVBQUVaLGFBQWEsRUFBRSxHQUFHYSxJQUFBQSwyQkFBYztJQUN4QyxNQUFNQyxVQUFVQyxJQUFBQSwwQkFBVTtJQUMxQixNQUFNbkIsU0FBU29CLElBQUFBLGFBQU0sRUFBQztJQUV0QixrQ0FBa0M7SUFDbEMsa0RBQWtEO0lBQ2xELDBEQUEwRDtJQUMxRCxpREFBaUQ7SUFDakQsTUFBTSxDQUFDckIsU0FBU0UsV0FBVyxHQUFHSixjQUFLLENBQUN3QixRQUFRLENBQUM7SUFFN0MsOERBQThEO0lBQzlEQyxJQUFBQSxnQkFBUyxFQUFDO1FBQ1IsSUFBSVgsZUFBZSxPQUFPO1lBQ3hCLE1BQU1ZLHdCQUF3QjtnQkFDNUIsTUFBTWpCLGlCQUFpQixNQUFNSCxpQkFBaUJDO2dCQUM5Q0gsV0FBV0s7WUFDYjtZQUVBaUIsd0JBQXdCLDhEQUE4RDs7UUFDeEY7SUFDRixHQUFHO1FBQUNaO1FBQVlQO1FBQWVIO0tBQVc7SUFFMUMsOENBQThDO0lBQzlDLDZDQUE2QztJQUM3Q3FCLElBQUFBLGdCQUFTLEVBQUM7UUFDUixJQUFJRTtRQUVKLElBQUlYLFVBQVU7WUFDWlcsV0FBV04sUUFBUU8sTUFBTSxDQUFDO2dCQUN4QnhCLFdBQVc7WUFDYjtRQUNGLE9BQU8sSUFBSXVCLFVBQVU7WUFDbkJBO1FBQ0Y7UUFFQSxPQUFPLElBQU1BLFlBQVlBO0lBQzNCLEdBQUc7UUFBQ047UUFBU2pCO1FBQVlZO0tBQVM7SUFFbEMsMENBQTBDO0lBQzFDLHdEQUF3RDtJQUN4RFMsSUFBQUEsZ0JBQVMsRUFBQztRQUNSLElBQUl0QixPQUFPMEIsT0FBTyxFQUFFO1lBQ2xCLElBQUkzQixXQUFXYyxVQUFVO2dCQUN2QmMsSUFBQUEsaUNBQWlCLEVBQUMzQixPQUFPMEIsT0FBTztZQUNsQyxPQUFPO2dCQUNMRSxJQUFBQSxnQ0FBZ0IsRUFBQzVCLE9BQU8wQixPQUFPO1lBQ2pDO1FBQ0Y7SUFDRixHQUFHO1FBQUMzQjtRQUFTYztLQUFTO0lBRXRCLDhDQUE4QztJQUM5QyxxREFBcUQ7SUFDckQsbUNBQW1DO0lBQ25DUyxJQUFBQSxnQkFBUyxFQUFDO1FBQ1IsSUFBSVgsZUFBZSxTQUFTRSxhQUFhLFNBQVNFLGVBQWUsT0FBTztZQUN0RWQsV0FBVztRQUNiO0lBQ0YsR0FBRztRQUFDVTtRQUFZRTtRQUFVRTtLQUFXO0lBRXJDLDJEQUEyRDtJQUMzRE8sSUFBQUEsZ0JBQVMsRUFBQztRQUNSLE9BQU87WUFDTE8sSUFBQUEsdUNBQXVCO1FBQ3pCO0lBQ0YsR0FBRyxFQUFFO0lBRUwscUJBQ0UsNkJBQUNuQyxXQUFXb0MsUUFBUTtRQUFDQyxPQUFPO1lBQUVoQztZQUFTQztZQUFRQztRQUFXO09BQUlPO0FBRWxFIn0=
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
height: 100%;
|
|
42
42
|
display: flex;
|
|
43
43
|
flex-direction: column;
|
|
44
|
-
padding: var(--app-header-height) base(1
|
|
44
|
+
padding: var(--app-header-height) base(1) base(2) base(1);
|
|
45
45
|
overflow-y: auto;
|
|
46
46
|
|
|
47
47
|
// remove the scrollbar here to prevent layout shift as nav groups are toggled
|
|
@@ -128,12 +128,7 @@
|
|
|
128
128
|
|
|
129
129
|
@include mid-break {
|
|
130
130
|
&__scroll {
|
|
131
|
-
padding: var(--app-header-height) base(0.
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
nav a {
|
|
135
|
-
font-size: base(0.875);
|
|
136
|
-
line-height: base(1.5);
|
|
131
|
+
padding: var(--app-header-height) base(0.5) base(2);
|
|
137
132
|
}
|
|
138
133
|
}
|
|
139
134
|
|
|
@@ -141,9 +136,12 @@
|
|
|
141
136
|
&__scroll {
|
|
142
137
|
padding: var(--app-header-height) var(--gutter-h) base(2);
|
|
143
138
|
}
|
|
144
|
-
}
|
|
145
139
|
|
|
146
|
-
|
|
140
|
+
nav a {
|
|
141
|
+
font-size: base(0.875);
|
|
142
|
+
line-height: base(1.5);
|
|
143
|
+
}
|
|
144
|
+
|
|
147
145
|
&--nav-open {
|
|
148
146
|
transition: none;
|
|
149
147
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/PreviewSizes/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAU,MAAM,2BAA2B,CAAA;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAGlD,OAAO,cAAc,CAAA;AAkBrB,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3B,UAAU,EAAE,yBAAyB,CAAA;IACrC,GAAG,CAAC,EAAE,IAAI,GAAG;QACX,KAAK,CAAC,EAAE,SAAS,CAAA;KAClB,CAAA;IACD,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/PreviewSizes/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAU,MAAM,2BAA2B,CAAA;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAGlD,OAAO,cAAc,CAAA;AAkBrB,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3B,UAAU,EAAE,yBAAyB,CAAA;IACrC,GAAG,CAAC,EAAE,IAAI,GAAG;QACX,KAAK,CAAC,EAAE,SAAS,CAAA;KAClB,CAAA;IACD,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAoEA,CAAA;AACD,eAAe,YAAY,CAAA"}
|
|
@@ -66,28 +66,22 @@ const sortSizes = (sizes, imageSizes)=>{
|
|
|
66
66
|
});
|
|
67
67
|
return orderedSizes;
|
|
68
68
|
};
|
|
69
|
-
const PreviewSizes = ({ collection, doc,
|
|
69
|
+
const PreviewSizes = ({ collection, doc, imageCacheTag })=>{
|
|
70
70
|
const { upload: { imageSizes, staticURL } } = collection;
|
|
71
71
|
const { sizes } = doc;
|
|
72
72
|
const [orderedSizes, setOrderedSizes] = (0, _react.useState)(()=>sortSizes(sizes, imageSizes));
|
|
73
73
|
const [selectedSize, setSelectedSize] = (0, _react.useState)(orderedSizes?.[imageSizes[0]?.name]?.filename ? imageSizes[0]?.name : null);
|
|
74
|
-
const [appendUrl, setAppendUrl] = (0, _react.useState)(false);
|
|
75
74
|
const generateImageUrl = (filename)=>{
|
|
76
|
-
|
|
77
|
-
return `${staticURL}/${filename}${query}`;
|
|
75
|
+
return `${staticURL}/${filename}${imageCacheTag ? `?${imageCacheTag}` : ''}`;
|
|
78
76
|
};
|
|
79
77
|
(0, _react.useEffect)(()=>{
|
|
80
78
|
setOrderedSizes(sortSizes(sizes, imageSizes));
|
|
81
79
|
}, [
|
|
82
80
|
sizes,
|
|
83
81
|
imageSizes,
|
|
84
|
-
|
|
85
|
-
]);
|
|
86
|
-
(0, _react.useEffect)(()=>{
|
|
87
|
-
setAppendUrl(true);
|
|
88
|
-
}, [
|
|
89
|
-
updatedAt
|
|
82
|
+
imageCacheTag
|
|
90
83
|
]);
|
|
84
|
+
const mainPreviewSrc = generateImageUrl(`${orderedSizes[selectedSize]?.filename}`);
|
|
91
85
|
return /*#__PURE__*/ _react.default.createElement("div", {
|
|
92
86
|
className: baseClass
|
|
93
87
|
}, /*#__PURE__*/ _react.default.createElement("div", {
|
|
@@ -102,14 +96,15 @@ const PreviewSizes = ({ collection, doc, updatedAt })=>{
|
|
|
102
96
|
})), /*#__PURE__*/ _react.default.createElement("img", {
|
|
103
97
|
alt: doc.filename,
|
|
104
98
|
className: `${baseClass}__preview`,
|
|
105
|
-
src:
|
|
99
|
+
src: mainPreviewSrc
|
|
106
100
|
})), /*#__PURE__*/ _react.default.createElement("div", {
|
|
107
101
|
className: `${baseClass}__listWrap`
|
|
108
102
|
}, /*#__PURE__*/ _react.default.createElement("div", {
|
|
109
103
|
className: `${baseClass}__list`
|
|
110
104
|
}, Object.entries(orderedSizes).map(([key, val])=>{
|
|
111
105
|
const selected = selectedSize === key;
|
|
112
|
-
|
|
106
|
+
const previewSrc = generateImageUrl(val.filename);
|
|
107
|
+
if (previewSrc) {
|
|
113
108
|
return /*#__PURE__*/ _react.default.createElement("div", {
|
|
114
109
|
className: [
|
|
115
110
|
`${baseClass}__sizeOption`,
|
|
@@ -128,7 +123,7 @@ const PreviewSizes = ({ collection, doc, updatedAt })=>{
|
|
|
128
123
|
className: `${baseClass}__image`
|
|
129
124
|
}, /*#__PURE__*/ _react.default.createElement("img", {
|
|
130
125
|
alt: val.filename,
|
|
131
|
-
src:
|
|
126
|
+
src: previewSrc
|
|
132
127
|
})), /*#__PURE__*/ _react.default.createElement("div", {
|
|
133
128
|
className: `${baseClass}__sizeMeta`
|
|
134
129
|
}, /*#__PURE__*/ _react.default.createElement("div", {
|
|
@@ -143,4 +138,4 @@ const PreviewSizes = ({ collection, doc, updatedAt })=>{
|
|
|
143
138
|
};
|
|
144
139
|
const _default = PreviewSizes;
|
|
145
140
|
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL1ByZXZpZXdTaXplcy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vZXhwb3J0cy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmlsZVNpemVzLCBVcGxvYWQgfSBmcm9tICcuLi8uLi8uLi8uLi91cGxvYWRzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEYXRhIH0gZnJvbSAnLi4vLi4vZm9ybXMvRm9ybS90eXBlcydcblxuaW1wb3J0IE1ldGEgZnJvbSAnLi4vRmlsZURldGFpbHMvTWV0YSdcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAncHJldmlldy1zaXplcydcblxuY29uc3Qgc29ydFNpemVzID0gKHNpemVzOiBGaWxlU2l6ZXMsIGltYWdlU2l6ZXM6IFVwbG9hZFsnaW1hZ2VTaXplcyddKSA9PiB7XG4gIGlmICghaW1hZ2VTaXplcyB8fCBpbWFnZVNpemVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHNpemVzXG5cbiAgY29uc3Qgb3JkZXJlZFNpemVzOiBGaWxlU2l6ZXMgPSB7fVxuXG4gIGltYWdlU2l6ZXMuZm9yRWFjaCgoeyBuYW1lIH0pID0+
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL1ByZXZpZXdTaXplcy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vZXhwb3J0cy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmlsZVNpemVzLCBVcGxvYWQgfSBmcm9tICcuLi8uLi8uLi8uLi91cGxvYWRzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEYXRhIH0gZnJvbSAnLi4vLi4vZm9ybXMvRm9ybS90eXBlcydcblxuaW1wb3J0IE1ldGEgZnJvbSAnLi4vRmlsZURldGFpbHMvTWV0YSdcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAncHJldmlldy1zaXplcydcblxuY29uc3Qgc29ydFNpemVzID0gKHNpemVzOiBGaWxlU2l6ZXMsIGltYWdlU2l6ZXM6IFVwbG9hZFsnaW1hZ2VTaXplcyddKSA9PiB7XG4gIGlmICghaW1hZ2VTaXplcyB8fCBpbWFnZVNpemVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHNpemVzXG5cbiAgY29uc3Qgb3JkZXJlZFNpemVzOiBGaWxlU2l6ZXMgPSB7fVxuXG4gIGltYWdlU2l6ZXMuZm9yRWFjaCgoeyBuYW1lIH0pID0+IHtcbiAgICBpZiAoc2l6ZXNbbmFtZV0pIHtcbiAgICAgIG9yZGVyZWRTaXplc1tuYW1lXSA9IHNpemVzW25hbWVdXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBvcmRlcmVkU2l6ZXNcbn1cblxuY29uc3QgUHJldmlld1NpemVzOiBSZWFjdC5GQzx7XG4gIGNvbGxlY3Rpb246IFNhbml0aXplZENvbGxlY3Rpb25Db25maWdcbiAgZG9jPzogRGF0YSAmIHtcbiAgICBzaXplcz86IEZpbGVTaXplc1xuICB9XG4gIGltYWdlQ2FjaGVUYWc/OiBzdHJpbmdcbn0+ID0gKHsgY29sbGVjdGlvbiwgZG9jLCBpbWFnZUNhY2hlVGFnIH0pID0+IHtcbiAgY29uc3Qge1xuICAgIHVwbG9hZDogeyBpbWFnZVNpemVzLCBzdGF0aWNVUkwgfSxcbiAgfSA9IGNvbGxlY3Rpb25cbiAgY29uc3QgeyBzaXplcyB9ID0gZG9jXG5cbiAgY29uc3QgW29yZGVyZWRTaXplcywgc2V0T3JkZXJlZFNpemVzXSA9IHVzZVN0YXRlPEZpbGVTaXplcz4oKCkgPT4gc29ydFNpemVzKHNpemVzLCBpbWFnZVNpemVzKSlcbiAgY29uc3QgW3NlbGVjdGVkU2l6ZSwgc2V0U2VsZWN0ZWRTaXplXSA9IHVzZVN0YXRlPG51bGwgfCBzdHJpbmc+KFxuICAgIG9yZGVyZWRTaXplcz8uW2ltYWdlU2l6ZXNbMF0/Lm5hbWVdPy5maWxlbmFtZSA/IGltYWdlU2l6ZXNbMF0/Lm5hbWUgOiBudWxsLFxuICApXG5cbiAgY29uc3QgZ2VuZXJhdGVJbWFnZVVybCA9IChmaWxlbmFtZSkgPT4ge1xuICAgIHJldHVybiBgJHtzdGF0aWNVUkx9LyR7ZmlsZW5hbWV9JHtpbWFnZUNhY2hlVGFnID8gYD8ke2ltYWdlQ2FjaGVUYWd9YCA6ICcnfWBcbiAgfVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldE9yZGVyZWRTaXplcyhzb3J0U2l6ZXMoc2l6ZXMsIGltYWdlU2l6ZXMpKVxuICB9LCBbc2l6ZXMsIGltYWdlU2l6ZXMsIGltYWdlQ2FjaGVUYWddKVxuXG4gIGNvbnN0IG1haW5QcmV2aWV3U3JjID0gZ2VuZXJhdGVJbWFnZVVybChgJHtvcmRlcmVkU2l6ZXNbc2VsZWN0ZWRTaXplXT8uZmlsZW5hbWV9YClcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtiYXNlQ2xhc3N9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2ltYWdlV3JhcGB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbWV0YWB9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19zaXplTmFtZWB9PntzZWxlY3RlZFNpemV9PC9kaXY+XG4gICAgICAgICAgPE1ldGEgey4uLihzZWxlY3RlZFNpemUgJiYgb3JkZXJlZFNpemVzW3NlbGVjdGVkU2l6ZV0pfSBzdGF0aWNVUkw9e3N0YXRpY1VSTH0gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxpbWcgYWx0PXtkb2MuZmlsZW5hbWV9IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcHJldmlld2B9IHNyYz17bWFpblByZXZpZXdTcmN9IC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19saXN0V3JhcGB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbGlzdGB9PlxuICAgICAgICAgIHtPYmplY3QuZW50cmllcyhvcmRlcmVkU2l6ZXMpLm1hcCgoW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBzZWxlY3RlZFNpemUgPT09IGtleVxuICAgICAgICAgICAgY29uc3QgcHJldmlld1NyYyA9IGdlbmVyYXRlSW1hZ2VVcmwodmFsLmZpbGVuYW1lKVxuXG4gICAgICAgICAgICBpZiAocHJldmlld1NyYykge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17W2Ake2Jhc2VDbGFzc31fX3NpemVPcHRpb25gLCBzZWxlY3RlZCAmJiBgJHtiYXNlQ2xhc3N9LS1zZWxlY3RlZGBdXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJyAnKX1cbiAgICAgICAgICAgICAgICAgIGtleT17a2V5fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2VsZWN0ZWRTaXplKGtleSl9XG4gICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLmtleUNvZGUgPT09IDEzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRTaXplKGtleSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2ltYWdlYH0+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgYWx0PXt2YWwuZmlsZW5hbWV9IHNyYz17cHJldmlld1NyY30gLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3NpemVNZXRhYH0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19zaXplTmFtZWB9PntrZXl9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxNZXRhIHsuLi52YWx9IHN0YXRpY1VSTD17c3RhdGljVVJMfSAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuZXhwb3J0IGRlZmF1bHQgUHJldmlld1NpemVzXG4iXSwibmFtZXMiOlsiYmFzZUNsYXNzIiwic29ydFNpemVzIiwic2l6ZXMiLCJpbWFnZVNpemVzIiwibGVuZ3RoIiwib3JkZXJlZFNpemVzIiwiZm9yRWFjaCIsIm5hbWUiLCJQcmV2aWV3U2l6ZXMiLCJjb2xsZWN0aW9uIiwiZG9jIiwiaW1hZ2VDYWNoZVRhZyIsInVwbG9hZCIsInN0YXRpY1VSTCIsInNldE9yZGVyZWRTaXplcyIsInVzZVN0YXRlIiwic2VsZWN0ZWRTaXplIiwic2V0U2VsZWN0ZWRTaXplIiwiZmlsZW5hbWUiLCJnZW5lcmF0ZUltYWdlVXJsIiwidXNlRWZmZWN0IiwibWFpblByZXZpZXdTcmMiLCJkaXYiLCJjbGFzc05hbWUiLCJNZXRhIiwiaW1nIiwiYWx0Iiwic3JjIiwiT2JqZWN0IiwiZW50cmllcyIsIm1hcCIsImtleSIsInZhbCIsInNlbGVjdGVkIiwicHJldmlld1NyYyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwib25DbGljayIsIm9uS2V5RG93biIsImUiLCJrZXlDb2RlIiwicm9sZSIsInRhYkluZGV4Il0sIm1hcHBpbmdzIjoiOzs7OytCQW9HQTs7O2VBQUE7OzsrREFwRzJDOzZEQU0xQjtRQUNWOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFUCxNQUFNQSxZQUFZO0FBRWxCLE1BQU1DLFlBQVksQ0FBQ0MsT0FBa0JDO0lBQ25DLElBQUksQ0FBQ0EsY0FBY0EsV0FBV0MsTUFBTSxLQUFLLEdBQUcsT0FBT0Y7SUFFbkQsTUFBTUcsZUFBMEIsQ0FBQztJQUVqQ0YsV0FBV0csT0FBTyxDQUFDLENBQUMsRUFBRUMsSUFBSSxFQUFFO1FBQzFCLElBQUlMLEtBQUssQ0FBQ0ssS0FBSyxFQUFFO1lBQ2ZGLFlBQVksQ0FBQ0UsS0FBSyxHQUFHTCxLQUFLLENBQUNLLEtBQUs7UUFDbEM7SUFDRjtJQUVBLE9BQU9GO0FBQ1Q7QUFFQSxNQUFNRyxlQU1ELENBQUMsRUFBRUMsVUFBVSxFQUFFQyxHQUFHLEVBQUVDLGFBQWEsRUFBRTtJQUN0QyxNQUFNLEVBQ0pDLFFBQVEsRUFBRVQsVUFBVSxFQUFFVSxTQUFTLEVBQUUsRUFDbEMsR0FBR0o7SUFDSixNQUFNLEVBQUVQLEtBQUss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
|