@1money/component-ui 0.0.43 → 0.0.44
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/es/components/Dropdown/Dropdown.js +11 -3
- package/es/components/Input/FieldShell/FieldShell.css +1 -1
- package/es/components/Input/FieldShell/FieldShell.js +2 -3
- package/es/components/Select/Select.js +130 -91
- package/es/components/Select/SelectCustom.d.ts +6 -0
- package/es/components/Select/SelectCustom.js +232 -0
- package/es/components/Select/SelectFieldShell.d.ts +2 -0
- package/es/components/Select/SelectFieldShell.js +12 -4
- package/es/components/Select/SelectOptionContent.d.ts +8 -0
- package/es/components/Select/SelectOptionContent.js +20 -11
- package/es/components/Select/SelectSearchControl.d.ts +3 -0
- package/es/components/Select/SelectSearchControl.js +9 -4
- package/es/components/Select/index.d.ts +5 -2
- package/es/components/Select/index.js +8 -3
- package/es/components/Select/interface.d.ts +147 -1
- package/es/components/Select/interface.js +1 -1
- package/es/components/Select/style/Select.css +1 -1
- package/es/components/Select/useSelectShell.d.ts +34 -0
- package/es/components/Select/useSelectShell.js +106 -0
- package/es/components/Trigger/Trigger.js +33 -8
- package/es/components/Trigger/interface.d.ts +25 -2
- package/es/hooks/index.d.ts +2 -0
- package/es/hooks/index.js +2 -0
- package/es/hooks/useFloatingAnimation.d.ts +24 -0
- package/es/hooks/useFloatingAnimation.js +45 -0
- package/es/index.css +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/lib/components/Dropdown/Dropdown.js +11 -3
- package/lib/components/Input/FieldShell/FieldShell.css +1 -1
- package/lib/components/Input/FieldShell/FieldShell.js +2 -3
- package/lib/components/Select/Select.js +129 -90
- package/lib/components/Select/SelectCustom.d.ts +6 -0
- package/lib/components/Select/SelectCustom.js +242 -0
- package/lib/components/Select/SelectFieldShell.d.ts +2 -0
- package/lib/components/Select/SelectFieldShell.js +12 -4
- package/lib/components/Select/SelectOptionContent.d.ts +8 -0
- package/lib/components/Select/SelectOptionContent.js +21 -12
- package/lib/components/Select/SelectSearchControl.d.ts +3 -0
- package/lib/components/Select/SelectSearchControl.js +9 -4
- package/lib/components/Select/index.d.ts +5 -2
- package/lib/components/Select/index.js +9 -17
- package/lib/components/Select/interface.d.ts +147 -1
- package/lib/components/Select/interface.js +1 -1
- package/lib/components/Select/style/Select.css +1 -1
- package/lib/components/Select/useSelectShell.d.ts +34 -0
- package/lib/components/Select/useSelectShell.js +114 -0
- package/lib/components/Trigger/Trigger.js +32 -7
- package/lib/components/Trigger/interface.d.ts +25 -2
- package/lib/hooks/index.d.ts +2 -0
- package/lib/hooks/index.js +13 -0
- package/lib/hooks/useFloatingAnimation.d.ts +24 -0
- package/lib/hooks/useFloatingAnimation.js +51 -0
- package/lib/index.css +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/package.json +1 -1
- package/scripts/mcp-server/examples.generated.json +42 -0
- package/scripts/mcp-server/index.generated.json +259 -10
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { CSSProperties, ReactElement, ReactNode, Ref } from 'react';
|
|
2
2
|
import type { Placement } from '@floating-ui/react';
|
|
3
|
+
import type { FloatingAnimation } from "../../hooks/useFloatingAnimation";
|
|
4
|
+
export type { FloatingAnimation, FloatingAnimationKind } from "../../hooks/useFloatingAnimation";
|
|
3
5
|
export type TriggerAction = 'click' | 'hover' | 'focus';
|
|
4
6
|
export interface TriggerContentContext {
|
|
5
7
|
close: () => void;
|
|
@@ -22,8 +24,20 @@ export interface TriggerProps {
|
|
|
22
24
|
defaultOpen?: boolean;
|
|
23
25
|
/** Show arrow pointing to trigger */
|
|
24
26
|
showArrow?: boolean;
|
|
25
|
-
/**
|
|
26
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Gap between panel and trigger.
|
|
29
|
+
* - `number`: shorthand for `mainAxis` (perpendicular distance, in px).
|
|
30
|
+
* - object form (forwarded to floating-ui's `offset` middleware):
|
|
31
|
+
* - `mainAxis`: distance perpendicular to the placement edge (e.g. vertical for `bottom-*`).
|
|
32
|
+
* - `crossAxis`: distance parallel to the placement edge.
|
|
33
|
+
* - `alignmentAxis`: shift along the alignment edge for `*-start` / `*-end` placements
|
|
34
|
+
* (negative shifts toward the alignment side).
|
|
35
|
+
*/
|
|
36
|
+
offset?: number | {
|
|
37
|
+
mainAxis?: number;
|
|
38
|
+
crossAxis?: number;
|
|
39
|
+
alignmentAxis?: number | null;
|
|
40
|
+
};
|
|
27
41
|
/** Render in portal */
|
|
28
42
|
portal?: boolean;
|
|
29
43
|
/** Close on outside click / ESC */
|
|
@@ -35,6 +49,15 @@ export interface TriggerProps {
|
|
|
35
49
|
};
|
|
36
50
|
/** Reposition the floating panel on scroll/resize/reference movement. Default true. */
|
|
37
51
|
autoReposition?: boolean;
|
|
52
|
+
/** Sync the floating panel width to the trigger element's width. Default false. */
|
|
53
|
+
matchTriggerWidth?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Open/close animation. Default `{ duration: { open: 150, close: 100 }, initialScale: 0.96 }`.
|
|
56
|
+
* Set to `false` to disable animation entirely (panel appears/disappears instantly).
|
|
57
|
+
* - `duration`: ms; pass a number for symmetric, or an object for separate open/close timings.
|
|
58
|
+
* - `initialScale`: starting scale on enter / ending scale on exit (`1` = no scale, `0` = collapsed).
|
|
59
|
+
*/
|
|
60
|
+
animation?: FloatingAnimation;
|
|
38
61
|
/** Custom class for floating panel */
|
|
39
62
|
overlayClassName?: string;
|
|
40
63
|
/** Custom style for floating panel */
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "useFloatingAnimation", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _useFloatingAnimation.useFloatingAnimation;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _useFloatingAnimation = require("./useFloatingAnimation");
|
|
13
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9ob29rcy9pbmRleC50cyJdLCJuYW1lcyI6WyJfdXNlRmxvYXRpbmdBbmltYXRpb24iLCJyZXF1aXJlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLElBQUFBLHFCQUFBLEdBQUFDLE9BQUEiLCJmaWxlIjoiaG9va3MvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { FloatingContext, Placement } from '@floating-ui/react';
|
|
2
|
+
export type FloatingAnimationKind = 'scale' | 'height';
|
|
3
|
+
export type FloatingAnimation = false | {
|
|
4
|
+
/**
|
|
5
|
+
* Animation style.
|
|
6
|
+
* - `'scale'` (default): uniform `scale()` + opacity. Suited for tooltips, popovers.
|
|
7
|
+
* - `'height'`: vertical-only `scaleY()` + opacity, content unfolds along the placement edge. Suited for dropdowns, select panels.
|
|
8
|
+
*/
|
|
9
|
+
kind?: FloatingAnimationKind;
|
|
10
|
+
duration?: number | {
|
|
11
|
+
open?: number;
|
|
12
|
+
close?: number;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Starting/ending scale.
|
|
16
|
+
* - For `kind: 'scale'`, default `0.96` (subtle pop).
|
|
17
|
+
* - For `kind: 'height'`, default `0` (collapsed to a line at the placement edge).
|
|
18
|
+
*/
|
|
19
|
+
initialScale?: number;
|
|
20
|
+
};
|
|
21
|
+
export declare function useFloatingAnimation(context: FloatingContext, placement: Placement | undefined, animation: FloatingAnimation | undefined): {
|
|
22
|
+
isMounted: boolean;
|
|
23
|
+
styles: import("react").CSSProperties;
|
|
24
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useFloatingAnimation = useFloatingAnimation;
|
|
7
|
+
var _react = require("@floating-ui/react");
|
|
8
|
+
var TRANSFORM_ORIGIN_BY_SIDE = {
|
|
9
|
+
top: 'bottom center',
|
|
10
|
+
bottom: 'top center',
|
|
11
|
+
left: 'center right',
|
|
12
|
+
right: 'center left'
|
|
13
|
+
};
|
|
14
|
+
var DEFAULT_DURATION = {
|
|
15
|
+
open: 150,
|
|
16
|
+
close: 100
|
|
17
|
+
};
|
|
18
|
+
var DEFAULT_SCALE_INITIAL = 0.96;
|
|
19
|
+
var DEFAULT_HEIGHT_INITIAL = 0;
|
|
20
|
+
function useFloatingAnimation(context, placement, animation) {
|
|
21
|
+
var _a, _b, _c, _d;
|
|
22
|
+
var disabled = animation === false;
|
|
23
|
+
var config = disabled ? undefined : animation;
|
|
24
|
+
var kind = (_a = config === null || config === void 0 ? void 0 : config.kind) !== null && _a !== void 0 ? _a : 'scale';
|
|
25
|
+
var duration = (_b = config === null || config === void 0 ? void 0 : config.duration) !== null && _b !== void 0 ? _b : DEFAULT_DURATION;
|
|
26
|
+
var defaultInitialScale = kind === 'height' ? DEFAULT_HEIGHT_INITIAL : DEFAULT_SCALE_INITIAL;
|
|
27
|
+
var initialScale = (_c = config === null || config === void 0 ? void 0 : config.initialScale) !== null && _c !== void 0 ? _c : defaultInitialScale;
|
|
28
|
+
var side = (placement !== null && placement !== void 0 ? placement : 'bottom-start').split('-')[0];
|
|
29
|
+
var transformOrigin = (_d = TRANSFORM_ORIGIN_BY_SIDE[side]) !== null && _d !== void 0 ? _d : 'top center';
|
|
30
|
+
var collapsedTransform = kind === 'height' ? "scaleY(".concat(initialScale, ")") : "scale(".concat(initialScale, ")");
|
|
31
|
+
var expandedTransform = kind === 'height' ? 'scaleY(1)' : 'scale(1)';
|
|
32
|
+
return (0, _react.useTransitionStyles)(context, {
|
|
33
|
+
duration: disabled ? 0 : duration,
|
|
34
|
+
initial: {
|
|
35
|
+
opacity: 0,
|
|
36
|
+
transform: collapsedTransform
|
|
37
|
+
},
|
|
38
|
+
open: {
|
|
39
|
+
opacity: 1,
|
|
40
|
+
transform: expandedTransform
|
|
41
|
+
},
|
|
42
|
+
close: {
|
|
43
|
+
opacity: 0,
|
|
44
|
+
transform: collapsedTransform
|
|
45
|
+
},
|
|
46
|
+
common: {
|
|
47
|
+
transformOrigin: transformOrigin
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9ob29rcy91c2VGbG9hdGluZ0FuaW1hdGlvbi50cyIsImhvb2tzL3VzZUZsb2F0aW5nQW5pbWF0aW9uLmpzIl0sIm5hbWVzIjpbIl9yZWFjdCIsInJlcXVpcmUiLCJUUkFOU0ZPUk1fT1JJR0lOX0JZX1NJREUiLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJERUZBVUxUX0RVUkFUSU9OIiwib3BlbiIsImNsb3NlIiwiREVGQVVMVF9TQ0FMRV9JTklUSUFMIiwiREVGQVVMVF9IRUlHSFRfSU5JVElBTCIsInVzZUZsb2F0aW5nQW5pbWF0aW9uIiwiY29udGV4dCIsInBsYWNlbWVudCIsImFuaW1hdGlvbiIsIl9hIiwiX2IiLCJfYyIsIl9kIiwiZGlzYWJsZWQiLCJjb25maWciLCJ1bmRlZmluZWQiLCJraW5kIiwiZHVyYXRpb24iLCJkZWZhdWx0SW5pdGlhbFNjYWxlIiwiaW5pdGlhbFNjYWxlIiwic2lkZSIsInNwbGl0IiwidHJhbnNmb3JtT3JpZ2luIiwiY29sbGFwc2VkVHJhbnNmb3JtIiwiY29uY2F0IiwiZXhwYW5kZWRUcmFuc2Zvcm0iLCJ1c2VUcmFuc2l0aW9uU3R5bGVzIiwiaW5pdGlhbCIsIm9wYWNpdHkiLCJ0cmFuc2Zvcm0iLCJjb21tb24iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQXVCQSxJQUFNQyx3QkFBd0IsR0FBMkI7RUFDdkRDLEdBQUcsRUFBRSxlQUFlO0VBQ3BCQyxNQUFNLEVBQUUsWUFBWTtFQUNwQkMsSUFBSSxFQUFFLGNBQWM7RUFDcEJDLEtBQUssRUFBRTtBQ3JCVCxDRHNCQztBQUVELElBQU1DLGdCQUFnQixHQUFHO0VBQUVDLElBQUksRUFBRSxHQUFHO0VBQUVDLEtBQUssRUFBRTtBQUFHLENBQVc7QUFDM0QsSUFBTUMscUJBQXFCLEdBQUcsSUFBSTtBQUNsQyxJQUFNQyxzQkFBc0IsR0FBRyxDQUFDO0FBRTFCLFNBQVVDLG9CQUFvQkEsQ0FDbENDLE9BQXdCLEVBQ3hCQyxTQUFnQyxFQUNoQ0MsU0FBd0MsRUFBQTtFQzFCdEMsSUFBSUMsRUFBRSxFQUFFQyxFQUFFLEVBQUVDLEVBQUUsRUFBRUMsRUFBRTtFRDRCcEIsSUFBTUMsUUFBUSxHQUFHTCxTQUFTLEtBQUssS0FBSztFQUNwQyxJQUFNTSxNQUFNLEdBQUdELFFBQVEsR0FBR0UsU0FBUyxHQUFHUCxTQUFTO0VBQy9DLElBQU1RLElBQUksR0FBMEIsQ0FBQVAsRUFBQSxHQUFBSyxNQUFNLEtBQUEsSUFBQSxJQUFOQSxNQUFNLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQU5BLE1BQU0sQ0FBRUUsSUFBSSxNQUFBLElBQUEsSUFBQVAsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUksT0FBTztFQUMzRCxJQUFNUSxRQUFRLEdBQUcsQ0FBQVAsRUFBQSxHQUFBSSxNQUFNLEtBQUEsSUFBQSxJQUFOQSxNQUFNLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQU5BLE1BQU0sQ0FBRUcsUUFBUSxNQUFBLElBQUEsSUFBQVAsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUlWLGdCQUFnQjtFQUNyRCxJQUFNa0IsbUJBQW1CLEdBQ3ZCRixJQUFJLEtBQUssUUFBUSxHQUFHWixzQkFBc0IsR0FBR0QscUJBQXFCO0VBQ3BFLElBQU1nQixZQUFZLEdBQUcsQ0FBQVIsRUFBQSxHQUFBRyxNQUFNLEtBQUEsSUFBQSxJQUFOQSxNQUFNLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQU5BLE1BQU0sQ0FBRUssWUFBWSxNQUFBLElBQUEsSUFBQVIsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUlPLG1CQUFtQjtFQUNoRSxJQUFNRSxJQUFJLEdBQUcsQ0FBQ2IsU0FBUyxLQUFBLElBQUEsSUFBVEEsU0FBUyxLQUFBLEtBQUEsQ0FBQSxHQUFUQSxTQUFTLEdBQUksY0FBYyxFQUFFYyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBQ3hELElBQU1DLGVBQWUsR0FBRyxDQUFBVixFQUFBLEdBQUFqQix3QkFBd0IsQ0FBQ3lCLElBQUksQ0FBQyxNQUFBLElBQUEsSUFBQVIsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUksWUFBWTtFQUV0RSxJQUFNVyxrQkFBa0IsR0FDdEJQLElBQUksS0FBSyxRQUFRLGFBQUFRLE1BQUEsQ0FBYUwsWUFBWSxrQkFBQUssTUFBQSxDQUFlTCxZQUFZLE1BQUc7RUFDMUUsSUFBTU0saUJBQWlCLEdBQUdULElBQUksS0FBSyxRQUFRLEdBQUcsV0FBVyxHQUFHLFVBQVU7RUFFdEUsT0FBTyxJQUFBVSwwQkFBbUIsRUFBQ3BCLE9BQU8sRUFBRTtJQUNsQ1csUUFBUSxFQUFFSixRQUFRLEdBQUcsQ0FBQyxHQUFHSSxRQUFRO0lBQ2pDVSxPQUFPLEVBQUU7TUFBRUMsT0FBTyxFQUFFLENBQUM7TUFBRUMsU0FBUyxFQUFFTjtJQUFrQixDQUFFO0lBQ3REdEIsSUFBSSxFQUFFO01BQUUyQixPQUFPLEVBQUUsQ0FBQztNQUFFQyxTQUFTLEVBQUVKO0lBQWlCLENBQUU7SUFDbER2QixLQUFLLEVBQUU7TUFBRTBCLE9BQU8sRUFBRSxDQUFDO01BQUVDLFNBQVMsRUFBRU47SUFBa0IsQ0FBRTtJQUNwRE8sTUFBTSxFQUFFO01BQUVSLGVBQWUsRUFBZkE7SUFBZTtFQzlCekIsQ0QrQkQsQ0FBQztBQUNKIiwiZmlsZSI6Imhvb2tzL3VzZUZsb2F0aW5nQW5pbWF0aW9uLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgeyB1c2VUcmFuc2l0aW9uU3R5bGVzIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcbmNvbnN0IFRSQU5TRk9STV9PUklHSU5fQllfU0lERSA9IHtcbiAgICB0b3A6ICdib3R0b20gY2VudGVyJyxcbiAgICBib3R0b206ICd0b3AgY2VudGVyJyxcbiAgICBsZWZ0OiAnY2VudGVyIHJpZ2h0JyxcbiAgICByaWdodDogJ2NlbnRlciBsZWZ0Jyxcbn07XG5jb25zdCBERUZBVUxUX0RVUkFUSU9OID0geyBvcGVuOiAxNTAsIGNsb3NlOiAxMDAgfTtcbmNvbnN0IERFRkFVTFRfU0NBTEVfSU5JVElBTCA9IDAuOTY7XG5jb25zdCBERUZBVUxUX0hFSUdIVF9JTklUSUFMID0gMDtcbmV4cG9ydCBmdW5jdGlvbiB1c2VGbG9hdGluZ0FuaW1hdGlvbihjb250ZXh0LCBwbGFjZW1lbnQsIGFuaW1hdGlvbikge1xuICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICBjb25zdCBkaXNhYmxlZCA9IGFuaW1hdGlvbiA9PT0gZmFsc2U7XG4gICAgY29uc3QgY29uZmlnID0gZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBhbmltYXRpb247XG4gICAgY29uc3Qga2luZCA9IChfYSA9IGNvbmZpZyA9PT0gbnVsbCB8fCBjb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbmZpZy5raW5kKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnc2NhbGUnO1xuICAgIGNvbnN0IGR1cmF0aW9uID0gKF9iID0gY29uZmlnID09PSBudWxsIHx8IGNvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29uZmlnLmR1cmF0aW9uKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBERUZBVUxUX0RVUkFUSU9OO1xuICAgIGNvbnN0IGRlZmF1bHRJbml0aWFsU2NhbGUgPSBraW5kID09PSAnaGVpZ2h0JyA/IERFRkFVTFRfSEVJR0hUX0lOSVRJQUwgOiBERUZBVUxUX1NDQUxFX0lOSVRJQUw7XG4gICAgY29uc3QgaW5pdGlhbFNjYWxlID0gKF9jID0gY29uZmlnID09PSBudWxsIHx8IGNvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29uZmlnLmluaXRpYWxTY2FsZSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogZGVmYXVsdEluaXRpYWxTY2FsZTtcbiAgICBjb25zdCBzaWRlID0gKHBsYWNlbWVudCAhPT0gbnVsbCAmJiBwbGFjZW1lbnQgIT09IHZvaWQgMCA/IHBsYWNlbWVudCA6ICdib3R0b20tc3RhcnQnKS5zcGxpdCgnLScpWzBdO1xuICAgIGNvbnN0IHRyYW5zZm9ybU9yaWdpbiA9IChfZCA9IFRSQU5TRk9STV9PUklHSU5fQllfU0lERVtzaWRlXSkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogJ3RvcCBjZW50ZXInO1xuICAgIGNvbnN0IGNvbGxhcHNlZFRyYW5zZm9ybSA9IGtpbmQgPT09ICdoZWlnaHQnID8gYHNjYWxlWSgke2luaXRpYWxTY2FsZX0pYCA6IGBzY2FsZSgke2luaXRpYWxTY2FsZX0pYDtcbiAgICBjb25zdCBleHBhbmRlZFRyYW5zZm9ybSA9IGtpbmQgPT09ICdoZWlnaHQnID8gJ3NjYWxlWSgxKScgOiAnc2NhbGUoMSknO1xuICAgIHJldHVybiB1c2VUcmFuc2l0aW9uU3R5bGVzKGNvbnRleHQsIHtcbiAgICAgICAgZHVyYXRpb246IGRpc2FibGVkID8gMCA6IGR1cmF0aW9uLFxuICAgICAgICBpbml0aWFsOiB7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogY29sbGFwc2VkVHJhbnNmb3JtIH0sXG4gICAgICAgIG9wZW46IHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiBleHBhbmRlZFRyYW5zZm9ybSB9LFxuICAgICAgICBjbG9zZTogeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06IGNvbGxhcHNlZFRyYW5zZm9ybSB9LFxuICAgICAgICBjb21tb246IHsgdHJhbnNmb3JtT3JpZ2luIH0sXG4gICAgfSk7XG59Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|