@aivenio/aquarium 0.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_variables.scss +2 -1
- package/dist/_variables_timescale.scss +2 -1
- package/dist/atoms.cjs +822 -623
- package/dist/atoms.mjs +821 -623
- package/dist/src/common/Alert/Alert.d.ts +1 -1
- package/dist/src/common/Alert/Alert.js +3 -3
- package/dist/src/common/Banner/Banner.d.ts +5 -1
- package/dist/src/common/Banner/Banner.js +5 -3
- package/dist/src/common/DropdownMenu/DropdownMenu.d.ts +8 -3
- package/dist/src/common/DropdownMenu/DropdownMenu.js +12 -2
- package/dist/src/common/Modal/Modal.js +3 -3
- package/dist/src/common/Section/Section.d.ts +14 -0
- package/dist/src/common/Section/Section.js +46 -0
- package/dist/src/common/Timeline/Timeline.d.ts +18 -0
- package/dist/src/common/Timeline/Timeline.js +43 -0
- package/dist/src/common/Typography/Typography.d.ts +3 -2
- package/dist/src/common/Typography/Typography.js +15 -3
- package/dist/src/components/Alert/Alert.js +2 -2
- package/dist/src/components/Banner/Banner.d.ts +3 -1
- package/dist/src/components/Banner/Banner.js +3 -3
- package/dist/src/components/Box/Box.d.ts +6 -2
- package/dist/src/components/Box/Box.js +6 -2
- package/dist/src/components/DataTable/DataTable.d.ts +15 -12
- package/dist/src/components/DataTable/DataTable.js +11 -4
- package/dist/src/components/Dialog/Dialog.js +35 -12
- package/dist/src/components/DropdownMenu/DropdownMenu.d.ts +7 -1
- package/dist/src/components/DropdownMenu/DropdownMenu.js +23 -13
- package/dist/src/components/DropdownMenu/utils.d.ts +4 -0
- package/dist/src/components/DropdownMenu/utils.js +20 -0
- package/dist/src/components/List/List.d.ts +1 -1
- package/dist/src/components/Modal/Modal.js +16 -8
- package/dist/src/components/MultiInput/MultiInput.d.ts +2 -1
- package/dist/src/components/MultiInput/MultiInput.js +3 -3
- package/dist/src/components/Pagination/usePagination.d.ts +42 -0
- package/dist/src/components/Pagination/usePagination.js +34 -0
- package/dist/src/components/Section/Section.d.ts +17 -0
- package/dist/src/components/Section/Section.js +32 -0
- package/dist/src/components/Skeleton/Skeleton.d.ts +7 -2
- package/dist/src/components/Skeleton/Skeleton.js +5 -4
- package/dist/src/components/Template/Template.d.ts +18 -0
- package/dist/src/components/Template/Template.js +18 -0
- package/dist/src/components/Timeline/Timeline.d.ts +27 -0
- package/dist/src/components/Timeline/Timeline.js +41 -0
- package/dist/src/components/index.d.ts +4 -1
- package/dist/src/components/index.js +5 -2
- package/dist/src/utils/Blueprint.d.ts +2 -0
- package/dist/src/utils/Blueprint.js +29 -0
- package/dist/styles.css +52 -32
- package/dist/styles_timescaledb.css +52 -32
- package/dist/system.cjs +2837 -2134
- package/dist/system.mjs +2820 -2120
- package/dist/tailwind.config.js +1 -1
- package/dist/tailwind.theme.json +1 -0
- package/dist/tsconfig.module.tsbuildinfo +1 -1
- package/dist/types/tailwindGenerated.d.ts +1 -1
- package/package.json +2 -2
- package/dist/src/components/Positioner/Positioner.d.ts +0 -21
- package/dist/src/components/Positioner/Positioner.js +0 -97
@@ -1 +1 @@
|
|
1
|
-
export declare type ClassNames = "-m-2" | "-z-10" | "\!container" | "\!inline" | "\[\&\>\*\:not\(\:first-child\)\]\:-ml-3" | "\[\&\>div\:first-child\]\:px-5" | "\[\&\>path\]\:stroke-2" | "\[\&\>path\]\:stroke-grey-30" | "\[\&\>path\]\:stroke-white" | "absolute" | "active\:bg-grey-10" | "active\:bg-grey-5" | "active\:bg-primary-90" | "active\:bg-transparent" | "active\:ring-0" | "active\:ring-grey-50" | "active\:text-grey-50" | "active\:text-grey-70" | "active\:text-grey-80" | "active\:text-primary-70" | "align-middle" | "animate-
|
1
|
+
export declare type ClassNames = "-m-2" | "-z-10" | "\!container" | "\!inline" | "\[\&\>\*\:not\(\:first-child\)\]\:-ml-3" | "\[\&\>div\:first-child\]\:px-5" | "\[\&\>path\]\:stroke-2" | "\[\&\>path\]\:stroke-grey-30" | "\[\&\>path\]\:stroke-white" | "absolute" | "active\:bg-grey-10" | "active\:bg-grey-5" | "active\:bg-primary-90" | "active\:bg-transparent" | "active\:ring-0" | "active\:ring-grey-50" | "active\:text-grey-50" | "active\:text-grey-70" | "active\:text-grey-80" | "active\:text-primary-70" | "align-middle" | "animate-pulse" | "appearance-none" | "aspect-square" | "auto-cols-fr" | "bg-cover" | "bg-current" | "bg-error-0" | "bg-error-5" | "bg-error-70" | "bg-gradient-to-l" | "bg-gradient-to-r" | "bg-grey-0" | "bg-grey-10" | "bg-grey-20" | "bg-grey-30" | "bg-grey-5" | "bg-grey-90" | "bg-info-5" | "bg-info-50" | "bg-navyBlue-100" | "bg-primary-70" | "bg-primary-80" | "bg-secondary-5" | "bg-success-5" | "bg-success-70" | "bg-transparent" | "bg-warning-5" | "bg-warning-70" | "bg-white" | "block" | "blur" | "border" | "border-0" | "border-b" | "border-b-2" | "border-b-\[1px\]" | "border-current" | "border-dashed" | "border-error-50" | "border-grey-10" | "border-grey-100" | "border-grey-20" | "border-grey-40" | "border-grey-5" | "border-grey-50" | "border-info-70" | "border-navyBlue-100" | "border-none" | "border-primary-80" | "border-solid" | "border-spacing-0" | "border-transparent" | "bottom-0" | "break-all" | "capitalize" | "children\:border-grey-10" | "children\:inline-block" | "children\:last\:border-b-0" | "col-start-1" | "col-start-2" | "col-start-3" | "container" | "contents" | "cursor-default" | "cursor-not-allowed" | "cursor-pointer" | "delay-150" | "disabled\:bg-grey-0" | "disabled\:bg-grey-5" | "disabled\:bg-primary-5" | "disabled\:bg-transparent" | "disabled\:border-grey-20" | "disabled\:cursor-not-allowed" | "disabled\:ring-grey-20" | "disabled\:text-grey-20" | "disabled\:text-grey-30" | "disabled\:text-grey-40" | "disabled\:text-primary-40" | "duration-300" | "ease-in-out" | "filter" | "first\:mt-0" | "fixed" | "flex" | "flex-col" | "flex-grow" | "flex-nowrap" | "flex-row" | "flex-wrap" | "focus-visible\:bg-grey-0" | "focus-visible\:border-info-70" | "focus-visible\:outline-0" | "focus-visible\:ring-2" | "focus-visible\:ring-grey-50" | "focus-visible\:ring-inset" | "focus-visible\:ring-primary-100" | "focus-visible\:text-grey-80" | "focus-visible\:text-grey-90" | "focus\:border-info-70" | "focus\:border-transparent" | "focus\:outline-none" | "focus\:ring-0" | "focus\:ring-1" | "focus\:ring-2" | "focus\:ring-grey-60" | "focus\:ring-offset-0" | "focus\:text-primary-80" | "font-medium" | "font-normal" | "font-semibold" | "from-white" | "gap-2" | "gap-3" | "gap-4" | "gap-5" | "gap-7" | "gap-8" | "gap-x-2" | "gap-x-3" | "gap-x-4" | "gap-y-2" | "grid" | "grid-cols-1" | "grid-cols-2" | "grid-cols-3" | "grid-cols-\[16px_1fr\]" | "grid-cols-\[200px_1fr_200px\]" | "grid-cols-\[auto_1fr\]" | "grid-cols-\[auto_1fr_auto\]" | "group" | "group-hover\:bg-grey-30" | "group-hover\:visible" | "grow" | "grow-0" | "h-1" | "h-1px" | "h-2" | "h-3" | "h-4" | "h-5" | "h-6" | "h-\[174px\]" | "h-\[1px\]" | "h-\[20px\]" | "h-\[225px\]" | "h-\[25px\]" | "h-\[32px\]" | "h-\[50px\]" | "h-\[56px\]" | "h-\[6px\]" | "h-full" | "hidden" | "hover\:bg-grey-0" | "hover\:bg-grey-5" | "hover\:bg-primary-70" | "hover\:border-grey-20" | "hover\:border-grey-50" | "hover\:cursor-pointer" | "hover\:no-underline" | "hover\:ring-grey-50" | "hover\:text-grey-80" | "hover\:text-grey-90" | "hover\:text-primary-70" | "hover\:text-primary-80" | "inline" | "inline-block" | "inline-flex" | "inline-grid" | "inset-0" | "inset-y-0" | "invisible" | "italic" | "items-center" | "justify-between" | "justify-center" | "justify-end" | "justify-self-center" | "leading-\[0px\]" | "leading-\[18px\]" | "leading-none" | "left-0" | "left-1\/2" | "left-2" | "m-3" | "m-4" | "m-\[1px\]" | "max-h-full" | "max-w-\[300px\]" | "max-w-\[320px\]" | "max-w-\[40px\]" | "max-w-\[600px\]" | "max-w-\[70px\]" | "max-w-\[940px\]" | "mb-2" | "mb-3" | "mb-5" | "mb-\[-2px\]" | "mb-\[7px\]" | "min-h-full" | "min-w-0" | "min-w-full" | "ml-2" | "ml-3" | "ml-4" | "mr-1" | "mr-4" | "mt-1" | "mt-2" | "mt-4" | "mt-5" | "mx-0" | "mx-1" | "mx-2" | "mx-3" | "mx-7" | "my-1" | "my-4" | "no-arrow" | "no-arrows" | "no-underline" | "object-cover" | "opacity-0" | "opacity-40" | "opacity-70" | "outline-none" | "overflow-hidden" | "overflow-x-hidden" | "overflow-y-auto" | "overline" | "p-2" | "p-3" | "p-4" | "p-5" | "p-6" | "pb-3" | "pb-6" | "peer" | "peer-focus\:border" | "pl-4" | "pl-7" | "placeholder\:text-grey-40" | "pointer-events-none" | "pr-4" | "px-0" | "px-1" | "px-2" | "px-3" | "px-4" | "px-5" | "px-6" | "px-7" | "px-\[1px\]" | "px-\[4px\]" | "py-1" | "py-2" | "py-3" | "py-4" | "py-5" | "py-6" | "py-7" | "py-\[14px\]" | "py-\[6px\]" | "relative" | "resize" | "resize-none" | "right-0" | "ring-1" | "ring-2" | "ring-grey-30" | "ring-inset" | "ring-offset-0" | "rotate-45" | "rounded" | "rounded-full" | "rounded-sm" | "row-start-1" | "scrollbar-hide" | "self-center" | "self-start" | "shadow-16dp" | "shadow-2dp" | "shadow-4dp" | "shrink" | "sticky" | "stroke-grey-30" | "stroke-white" | "table" | "table-auto" | "table-fixed" | "text-\[8px\]" | "text-\[9px\]" | "text-center" | "text-error-0" | "text-error-10" | "text-error-100" | "text-error-20" | "text-error-30" | "text-error-40" | "text-error-5" | "text-error-50" | "text-error-60" | "text-error-70" | "text-error-80" | "text-error-90" | "text-grey-0" | "text-grey-10" | "text-grey-100" | "text-grey-20" | "text-grey-30" | "text-grey-40" | "text-grey-5" | "text-grey-50" | "text-grey-60" | "text-grey-70" | "text-grey-80" | "text-grey-90" | "text-info-0" | "text-info-10" | "text-info-100" | "text-info-20" | "text-info-30" | "text-info-40" | "text-info-5" | "text-info-50" | "text-info-60" | "text-info-70" | "text-info-80" | "text-info-90" | "text-left" | "text-primary-0" | "text-primary-10" | "text-primary-100" | "text-primary-20" | "text-primary-30" | "text-primary-40" | "text-primary-5" | "text-primary-50" | "text-primary-60" | "text-primary-70" | "text-primary-80" | "text-primary-90" | "text-right" | "text-secondary-0" | "text-secondary-10" | "text-secondary-100" | "text-secondary-20" | "text-secondary-30" | "text-secondary-40" | "text-secondary-5" | "text-secondary-50" | "text-secondary-60" | "text-secondary-70" | "text-secondary-80" | "text-secondary-90" | "text-success-0" | "text-success-10" | "text-success-100" | "text-success-20" | "text-success-30" | "text-success-40" | "text-success-5" | "text-success-50" | "text-success-60" | "text-success-70" | "text-success-80" | "text-success-90" | "text-warning-0" | "text-warning-10" | "text-warning-100" | "text-warning-20" | "text-warning-30" | "text-warning-40" | "text-warning-5" | "text-warning-50" | "text-warning-60" | "text-warning-70" | "text-warning-80" | "text-warning-90" | "text-white" | "top-0" | "top-2" | "transform" | "transition" | "transition-all" | "translate-x-5" | "typography-body-default" | "typography-body-default-medium" | "typography-body-large" | "typography-body-large-medium" | "typography-body-small" | "typography-body-small-medium" | "typography-button-large" | "typography-button-medium" | "typography-button-small" | "typography-caption-default" | "typography-caption-small" | "typography-heading-2xl" | "typography-heading-3xl" | "typography-heading-4xl" | "typography-heading-5xl" | "typography-heading-large" | "typography-heading-xl" | "typography-overline-default" | "typography-overline-small" | "underline" | "underline-offset-2" | "uppercase" | "via-white" | "visible" | "w-1" | "w-1px" | "w-2" | "w-3" | "w-4" | "w-5" | "w-6" | "w-\[280px\]" | "w-\[32px\]" | "w-\[34px\]" | "w-\[56px\]" | "w-\[6px\]" | "w-full" | "whitespace-nowrap" | "z-0" | "z-10" | "z-20" | "z-40" | "z-modal";
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@aivenio/aquarium",
|
3
|
-
"version": "
|
3
|
+
"version": "1.1.0",
|
4
4
|
"description": "Aiven Aquarium design system",
|
5
5
|
"main": "dist/system.cjs",
|
6
6
|
"module": "dist/system.mjs",
|
@@ -180,4 +180,4 @@
|
|
180
180
|
"resolutions": {
|
181
181
|
"webpack": "^5"
|
182
182
|
}
|
183
|
-
}
|
183
|
+
}
|
@@ -1,21 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { PositionerPlacement } from '../../../src/utils/positioner';
|
3
|
-
declare type PositionerArgs = {
|
4
|
-
triggerRef: React.RefObject<HTMLElement>;
|
5
|
-
};
|
6
|
-
export declare type PositionerProps = {
|
7
|
-
children: React.ReactNode;
|
8
|
-
content: React.ReactElement;
|
9
|
-
autoAdjust?: boolean;
|
10
|
-
animate?: boolean;
|
11
|
-
trigger?: 'hover' | 'click';
|
12
|
-
placement?: PositionerPlacement;
|
13
|
-
onClose?: ({ triggerRef }: PositionerArgs) => void;
|
14
|
-
padding?: number;
|
15
|
-
allowClosingManually?: boolean;
|
16
|
-
stayVisibleOnHover?: boolean;
|
17
|
-
fullWidth?: boolean;
|
18
|
-
tabIndex?: number;
|
19
|
-
};
|
20
|
-
export declare const Positioner: React.FC<PositionerProps>;
|
21
|
-
export {};
|
@@ -1,97 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { PositionerPlacement, calcPosition, calcBestPosition, createMountPointElement, } from '../../../src/utils/positioner';
|
3
|
-
import { tw } from '../../../src/utils/tailwind';
|
4
|
-
import { Portal } from '../../../src/components/Portal/Portal';
|
5
|
-
export const Positioner = ({ children, content, autoAdjust = false, animate = false, trigger = 'click', placement = PositionerPlacement.bottom, onClose, padding = 5, allowClosingManually = false, stayVisibleOnHover = false, fullWidth = false, tabIndex = 0, }) => {
|
6
|
-
var _a;
|
7
|
-
const [isOpen, setOpen] = React.useState(false);
|
8
|
-
const triggerRef = React.useRef(null);
|
9
|
-
const timeoutId = React.useRef();
|
10
|
-
React.useEffect(() => {
|
11
|
-
return () => {
|
12
|
-
timeoutId.current && clearTimeout(timeoutId.current);
|
13
|
-
window.document.body.removeEventListener('mouseover', handleMouseOver);
|
14
|
-
};
|
15
|
-
}, []);
|
16
|
-
const handleTriggerKeyDown = (event) => event.key === 'Enter' && showContent(!isOpen);
|
17
|
-
const handleTriggerClick = () => {
|
18
|
-
showContent(!isOpen);
|
19
|
-
};
|
20
|
-
const handleMouseOver = (event) => {
|
21
|
-
var _a;
|
22
|
-
if (!((_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target))) {
|
23
|
-
showContent(false);
|
24
|
-
window.document.body.removeEventListener('mouseover', handleMouseOver);
|
25
|
-
}
|
26
|
-
};
|
27
|
-
const showContent = (value, shouldDelay = false) => {
|
28
|
-
timeoutId.current && clearTimeout(timeoutId.current);
|
29
|
-
shouldDelay ? (timeoutId.current = setTimeout(() => setOpen(value), 300)) : setOpen(value);
|
30
|
-
if (!value) {
|
31
|
-
// give focus back to the trigger element
|
32
|
-
onClose === null || onClose === void 0 ? void 0 : onClose({ triggerRef });
|
33
|
-
}
|
34
|
-
};
|
35
|
-
// onMouseLeave has reported issues of not firing reliably.
|
36
|
-
// This causes issue with for example Tooltip not being hidden when hovering out of the trigger.
|
37
|
-
// The workaround is to listen mouseover on body level and call close when mouse is no longer over the trigger.
|
38
|
-
// the above applies only to the case where "stayVisibleOnHover" prop is false
|
39
|
-
// when "stayVisibleOnHover" prop is true, it works fine with onMouseLeave since we want to have content stay visible if user hovers over the trigger or content.
|
40
|
-
const handleTriggerMouseEnter = () => {
|
41
|
-
if (!stayVisibleOnHover) {
|
42
|
-
window.document.body.addEventListener('mouseover', handleMouseOver);
|
43
|
-
}
|
44
|
-
showContent(true, true);
|
45
|
-
};
|
46
|
-
const handleTriggerMouseLeave = () => showContent(false, stayVisibleOnHover);
|
47
|
-
const handleOutsideClick = React.useCallback((event) => {
|
48
|
-
var _a;
|
49
|
-
const { target } = event;
|
50
|
-
// Hide content only if click happened outiside the triggering element.
|
51
|
-
if (target !== window && !((_a = triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current) === null || _a === void 0 ? void 0 : _a.contains(target))) {
|
52
|
-
showContent(false);
|
53
|
-
}
|
54
|
-
}, []);
|
55
|
-
const handleESCPress = React.useCallback(() => showContent(false), []);
|
56
|
-
const handleSetOpen = React.useCallback((value) => showContent(value), []);
|
57
|
-
return (React.createElement("div", { className: tw('inline-block', {
|
58
|
-
'w-full': fullWidth,
|
59
|
-
}), ref: triggerRef, onClick: trigger === 'click' ? handleTriggerClick : undefined, onKeyDown: handleTriggerKeyDown, onMouseEnter: trigger === 'hover' ? handleTriggerMouseEnter : undefined, onMouseLeave: stayVisibleOnHover ? handleTriggerMouseLeave : undefined, tabIndex: tabIndex, "data-testid": 'positioner', id: content.props.triggerId, "aria-haspopup": isOpen, "aria-expanded": isOpen, "aria-controls": content.props.contentId },
|
60
|
-
children,
|
61
|
-
isOpen && (React.createElement(Positioned, { triggerRect: ((_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect()) || { x: 0, y: 0 }, animate: animate, autoAdjust: autoAdjust, onOutsideClick: handleOutsideClick, onESCPress: handleESCPress, placement: placement, padding: padding, setOpen: handleSetOpen, stayVisibleOnHover: stayVisibleOnHover }, allowClosingManually ? React.cloneElement(content, { setClose: () => showContent(false) }) : content))));
|
62
|
-
};
|
63
|
-
const Positioned = ({ children, onOutsideClick, onESCPress, autoAdjust = false, animate = false, triggerRect, placement = PositionerPlacement.bottom, padding = 5, setOpen = () => undefined, stayVisibleOnHover = false, }) => {
|
64
|
-
const [position, setPosition] = React.useState({ x: 0, y: 0 });
|
65
|
-
const contentRef = React.useRef(null);
|
66
|
-
const mountElementRef = React.useRef(createMountPointElement());
|
67
|
-
const handleBodyClick = (event) => { var _a; return !((_a = contentRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target)) && onOutsideClick(event); };
|
68
|
-
const handleWindowKeyUp = (event) => event.key === 'Escape' && onESCPress();
|
69
|
-
const handleSetOpen = (event, value) => {
|
70
|
-
event.stopPropagation();
|
71
|
-
setOpen(value);
|
72
|
-
};
|
73
|
-
React.useEffect(() => {
|
74
|
-
window.document.body.addEventListener('click', handleBodyClick);
|
75
|
-
window.addEventListener('keyup', handleWindowKeyUp);
|
76
|
-
// Note that we must append mount element ref to DOM
|
77
|
-
// before calculating position.
|
78
|
-
document.body.appendChild(mountElementRef.current);
|
79
|
-
if (contentRef.current) {
|
80
|
-
setPosition(autoAdjust
|
81
|
-
? calcBestPosition(triggerRect, contentRef.current.getBoundingClientRect(), placement, padding)
|
82
|
-
: calcPosition(triggerRect, contentRef.current.getBoundingClientRect(), placement, padding));
|
83
|
-
}
|
84
|
-
return () => {
|
85
|
-
document.body.removeChild(mountElementRef.current);
|
86
|
-
window.document.body.removeEventListener('click', handleBodyClick);
|
87
|
-
window.removeEventListener('keyup', handleWindowKeyUp);
|
88
|
-
};
|
89
|
-
}, []);
|
90
|
-
return (React.createElement(Portal, { to: mountElementRef.current },
|
91
|
-
React.createElement("div", Object.assign({ tabIndex: -1, onClick: (event) => event.stopPropagation(), ref: contentRef, style: {
|
92
|
-
transform: `translate(${position.x}px, ${position.y}px)`,
|
93
|
-
}, className: tw('absolute top-0 left-0', {
|
94
|
-
'animate-positioner-fade-in': animate,
|
95
|
-
}), "data-testid": 'positioned' }, (stayVisibleOnHover && { onMouseEnter: (e) => handleSetOpen(e, true) }), (stayVisibleOnHover && { onMouseLeave: (e) => handleSetOpen(e, false) })), children)));
|
96
|
-
};
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9zaXRpb25lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1Bvc2l0aW9uZXIvUG9zaXRpb25lci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLGdCQUFnQixFQUNoQix1QkFBdUIsR0FFeEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBNkJ0RCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQThCLENBQUMsRUFDcEQsUUFBUSxFQUNSLE9BQU8sRUFDUCxVQUFVLEdBQUcsS0FBSyxFQUNsQixPQUFPLEdBQUcsS0FBSyxFQUNmLE9BQU8sR0FBRyxPQUFPLEVBQ2pCLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLEVBQ3RDLE9BQU8sRUFDUCxPQUFPLEdBQUcsQ0FBQyxFQUNYLG9CQUFvQixHQUFHLEtBQUssRUFDNUIsa0JBQWtCLEdBQUcsS0FBSyxFQUMxQixTQUFTLEdBQUcsS0FBSyxFQUNqQixRQUFRLEdBQUcsQ0FBQyxHQUNiLEVBQUUsRUFBRTs7SUFDSCxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDekQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBaUIsSUFBSSxDQUFDLENBQUM7SUFDdEQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBaUMsQ0FBQztJQUVoRSxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNuQixPQUFPLEdBQUcsRUFBRTtZQUNWLFNBQVMsQ0FBQyxPQUFPLElBQUksWUFBWSxDQUFDLFNB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
|