ag-common 0.0.419 → 0.0.421
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/api/helpers/api.js +35 -34
- package/dist/api/helpers/aws.js +13 -9
- package/dist/api/helpers/cloudfront.js +24 -7
- package/dist/api/helpers/dynamo.js +134 -85
- package/dist/api/helpers/dynamoInfra.js +19 -14
- package/dist/api/helpers/enforceDynamoProvisionCap.js +18 -14
- package/dist/api/helpers/index.js +30 -14
- package/dist/api/helpers/openApiHelpers.js +37 -34
- package/dist/api/helpers/s3.js +126 -81
- package/dist/api/helpers/ses.js +28 -9
- package/dist/api/helpers/sqs.js +26 -9
- package/dist/api/helpers/ssm.js +14 -8
- package/dist/api/helpers/sts.js +34 -16
- package/dist/api/helpers/validateOpenApi.js +103 -92
- package/dist/api/helpers/validations.js +46 -29
- package/dist/api/index.js +18 -2
- package/dist/api/openapi-prefix.js +38 -25
- package/dist/api/types/aws.js +2 -1
- package/dist/api/types/index.js +17 -1
- package/dist/common/const.js +5 -2
- package/dist/common/helpers/array.js +19 -8
- package/dist/common/helpers/async.js +28 -10
- package/dist/common/helpers/binary.js +10 -5
- package/dist/common/helpers/date.js +25 -14
- package/dist/common/helpers/email.js +11 -5
- package/dist/common/helpers/func.js +7 -3
- package/dist/common/helpers/generator.js +24 -9
- package/dist/common/helpers/groupBy.js +9 -3
- package/dist/common/helpers/hashCode.js +9 -3
- package/dist/common/helpers/i18n.js +17 -9
- package/dist/common/helpers/index.js +34 -18
- package/dist/common/helpers/log.js +28 -16
- package/dist/common/helpers/math.js +21 -9
- package/dist/common/helpers/memo.js +7 -3
- package/dist/common/helpers/object.js +35 -20
- package/dist/common/helpers/random.js +10 -4
- package/dist/common/helpers/secondsInNearest.js +7 -2
- package/dist/common/helpers/sleep.js +5 -1
- package/dist/common/helpers/string/base64.js +7 -2
- package/dist/common/helpers/string/chunk.js +5 -1
- package/dist/common/helpers/string/contains.js +7 -2
- package/dist/common/helpers/string/getExtendedStringSegment.js +9 -5
- package/dist/common/helpers/string/index.js +26 -10
- package/dist/common/helpers/string/json.js +5 -1
- package/dist/common/helpers/string/object.js +5 -1
- package/dist/common/helpers/string/surround.js +5 -1
- package/dist/common/helpers/string/trim.js +7 -2
- package/dist/common/helpers/string/truncate.js +5 -1
- package/dist/common/helpers/string/url.js +9 -4
- package/dist/common/index.js +18 -2
- package/dist/index.js +19 -3
- package/dist/ui/components/BorderGradient/index.js +25 -18
- package/dist/ui/components/Button/index.js +25 -17
- package/dist/ui/components/Chevron/index.js +16 -9
- package/dist/ui/components/Close/index.js +13 -6
- package/dist/ui/components/Confirm/Dialog.js +25 -9
- package/dist/ui/components/Confirm/Modal.js +27 -20
- package/dist/ui/components/Confirm/index.js +19 -3
- package/dist/ui/components/Confirm/types.js +2 -1
- package/dist/ui/components/DropdownList/Base.js +64 -33
- package/dist/ui/components/DropdownList/Dialog.js +24 -8
- package/dist/ui/components/DropdownList/index.js +18 -2
- package/dist/ui/components/DropdownList/types.js +2 -1
- package/dist/ui/components/FlexColumn/index.js +14 -4
- package/dist/ui/components/FlexRow/index.js +14 -4
- package/dist/ui/components/HeadersRaw/index.js +27 -20
- package/dist/ui/components/HorizontalScrollBar/index.js +34 -6
- package/dist/ui/components/Icon/index.js +16 -9
- package/dist/ui/components/Image/index.js +28 -10
- package/dist/ui/components/InfiniteScroll/index.js +50 -18
- package/dist/ui/components/KebabDots/index.js +13 -6
- package/dist/ui/components/Loader/index.js +39 -9
- package/dist/ui/components/Modal/Dialog.js +23 -7
- package/dist/ui/components/Modal/Modal.js +49 -19
- package/dist/ui/components/Modal/index.js +19 -3
- package/dist/ui/components/Modal/types.js +2 -1
- package/dist/ui/components/OpenApiCodeBlock/OpenApiCodeBlock.js +34 -26
- package/dist/ui/components/OpenApiCodeBlock/curl/helpers/body.js +19 -12
- package/dist/ui/components/OpenApiCodeBlock/curl/helpers/getCurlLines.js +11 -6
- package/dist/ui/components/OpenApiCodeBlock/curl/helpers/security.js +15 -8
- package/dist/ui/components/OpenApiCodeBlock/curl/index.js +21 -14
- package/dist/ui/components/OpenApiCodeBlock/fetch/helpers/call.js +15 -8
- package/dist/ui/components/OpenApiCodeBlock/fetch/helpers/getFetchLines.js +8 -3
- package/dist/ui/components/OpenApiCodeBlock/fetch/helpers/req.js +34 -27
- package/dist/ui/components/OpenApiCodeBlock/fetch/index.js +18 -11
- package/dist/ui/components/OpenApiCodeBlock/helpers/common.js +17 -7
- package/dist/ui/components/OpenApiCodeBlock/helpers/joinJsx.js +15 -6
- package/dist/ui/components/OpenApiCodeBlock/index.js +18 -2
- package/dist/ui/components/OpenApiCodeBlock/types.js +2 -1
- package/dist/ui/components/PieChart/index.js +18 -11
- package/dist/ui/components/ProgressBar/index.js +45 -15
- package/dist/ui/components/Prompt/Dialog.js +23 -7
- package/dist/ui/components/Prompt/Modal.js +55 -25
- package/dist/ui/components/Prompt/index.js +18 -2
- package/dist/ui/components/RowOrColumn/index.js +17 -7
- package/dist/ui/components/Search/AutoHideSearchBox.js +56 -24
- package/dist/ui/components/Search/Base.js +52 -21
- package/dist/ui/components/Search/Dialog.js +26 -10
- package/dist/ui/components/Search/Inline.js +10 -3
- package/dist/ui/components/Search/Modal.js +17 -10
- package/dist/ui/components/Search/SearchBox.js +58 -26
- package/dist/ui/components/Search/index.js +23 -7
- package/dist/ui/components/Search/types.js +2 -1
- package/dist/ui/components/Sidebar/index.js +25 -18
- package/dist/ui/components/SparkLine/index.js +27 -17
- package/dist/ui/components/Table/index.js +22 -15
- package/dist/ui/components/TextEdit/CheckboxEdit.js +51 -21
- package/dist/ui/components/TextEdit/ColourEdit.js +44 -17
- package/dist/ui/components/TextEdit/LengthBox.js +12 -5
- package/dist/ui/components/TextEdit/ListboxEdit.js +42 -15
- package/dist/ui/components/TextEdit/RadioGroup.js +43 -13
- package/dist/ui/components/TextEdit/TextEdit.js +78 -48
- package/dist/ui/components/TextEdit/common.js +17 -11
- package/dist/ui/components/TextEdit/index.js +22 -6
- package/dist/ui/components/TextEdit/types.js +2 -1
- package/dist/ui/components/TextWithButton/index.js +40 -10
- package/dist/ui/components/TimelineChart/index.js +24 -14
- package/dist/ui/components/Toast/Cross.js +16 -9
- package/dist/ui/components/Toast/Tick.js +11 -4
- package/dist/ui/components/Toast/Warning.js +15 -8
- package/dist/ui/components/Toast/base.js +65 -33
- package/dist/ui/components/Toast/index.js +18 -2
- package/dist/ui/components/Toast/types.js +2 -1
- package/dist/ui/components/UserImage/index.js +48 -17
- package/dist/ui/components/index.js +46 -30
- package/dist/ui/helpers/axiosHelper.js +39 -25
- package/dist/ui/helpers/browserHelpers.js +22 -7
- package/dist/ui/helpers/callOpenApi/cached.js +37 -18
- package/dist/ui/helpers/callOpenApi/direct.js +59 -46
- package/dist/ui/helpers/callOpenApi/helpers.js +40 -25
- package/dist/ui/helpers/callOpenApi/hook.js +36 -47
- package/dist/ui/helpers/callOpenApi/index.js +21 -5
- package/dist/ui/helpers/callOpenApi/types.js +2 -1
- package/dist/ui/helpers/cognito.js +2 -1
- package/dist/ui/helpers/cookie/const.js +5 -2
- package/dist/ui/helpers/cookie/get.js +14 -13
- package/dist/ui/helpers/cookie/index.js +21 -5
- package/dist/ui/helpers/cookie/raw.js +16 -9
- package/dist/ui/helpers/cookie/set.js +15 -10
- package/dist/ui/helpers/cookie/use.js +16 -23
- package/dist/ui/helpers/date.js +15 -10
- package/dist/ui/helpers/debounce.js +10 -5
- package/dist/ui/helpers/dom.js +13 -6
- package/dist/ui/helpers/extractAttributes.js +7 -2
- package/dist/ui/helpers/index.js +41 -25
- package/dist/ui/helpers/jwt.js +2 -1
- package/dist/ui/helpers/plural.js +5 -1
- package/dist/ui/helpers/routes.js +24 -17
- package/dist/ui/helpers/serviceWorker.js +23 -8
- package/dist/ui/helpers/useContextMenu.js +14 -9
- package/dist/ui/helpers/useElementAttribute.js +7 -3
- package/dist/ui/helpers/useGranularHook.js +10 -5
- package/dist/ui/helpers/useInterval.js +12 -8
- package/dist/ui/helpers/useLocalStorage.js +32 -24
- package/dist/ui/helpers/useLockBodyScroll.js +7 -3
- package/dist/ui/helpers/useOnClickOutside.js +12 -7
- package/dist/ui/helpers/useOnScroll.js +21 -15
- package/dist/ui/helpers/useOverloadPageSearch.js +7 -3
- package/dist/ui/helpers/useQueryString.js +20 -14
- package/dist/ui/helpers/useResize.js +19 -17
- package/dist/ui/helpers/useTimeout.js +9 -5
- package/dist/ui/icons/ChevronRight.js +9 -3
- package/dist/ui/icons/CrossIcon.js +12 -5
- package/dist/ui/icons/Door.js +10 -4
- package/dist/ui/icons/HorizontalDots.js +9 -3
- package/dist/ui/icons/Magnify.js +10 -3
- package/dist/ui/icons/Pencil.js +12 -5
- package/dist/ui/icons/Save.js +11 -4
- package/dist/ui/icons/Undo.js +12 -5
- package/dist/ui/icons/UserOutline.js +9 -3
- package/dist/ui/icons/index.js +25 -9
- package/dist/ui/index.js +20 -4
- package/dist/ui/styles/colours.js +12 -7
- package/dist/ui/styles/common.js +22 -14
- package/dist/ui/styles/index.js +20 -4
- package/dist/ui/styles/media.js +10 -7
- package/dist/ui/styles/standaloneStyles.js +16 -10
- package/package.json +2 -2
|
@@ -1,23 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useInterval = exports.useIsomorphicLayoutEffect = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
exports.useIsomorphicLayoutEffect = typeof window !== 'undefined' ? react_1.useLayoutEffect : react_1.useEffect;
|
|
6
|
+
exports.default = exports.useIsomorphicLayoutEffect;
|
|
7
|
+
function useInterval(callback,
|
|
5
8
|
/** ms delay */
|
|
6
9
|
delay,
|
|
7
10
|
/** optionally called on return of useEffect */
|
|
8
11
|
clear) {
|
|
9
|
-
const savedCallback = useRef(callback);
|
|
10
|
-
useIsomorphicLayoutEffect(() => {
|
|
12
|
+
const savedCallback = (0, react_1.useRef)(callback);
|
|
13
|
+
(0, exports.useIsomorphicLayoutEffect)(() => {
|
|
11
14
|
savedCallback.current = callback;
|
|
12
15
|
}, [callback]);
|
|
13
|
-
useEffect(() => {
|
|
16
|
+
(0, react_1.useEffect)(() => {
|
|
14
17
|
if (!delay && delay !== 0) {
|
|
15
18
|
return;
|
|
16
19
|
}
|
|
17
20
|
const id = setInterval(() => savedCallback.current(), delay);
|
|
18
21
|
return () => {
|
|
19
22
|
clearInterval(id);
|
|
20
|
-
clear
|
|
23
|
+
clear === null || clear === void 0 ? void 0 : clear();
|
|
21
24
|
};
|
|
22
25
|
}, [clear, delay]);
|
|
23
26
|
}
|
|
27
|
+
exports.useInterval = useInterval;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UseLocalStorage = exports.getLocalStorageItem = exports.setLocalStorageItem = exports.clearAllLocalStorage = exports.clearLocalStorageItem = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const date_1 = require("../../common/helpers/date");
|
|
6
|
+
const log_1 = require("../../common/helpers/log");
|
|
7
|
+
const object_1 = require("../../common/helpers/object");
|
|
8
|
+
const clearLocalStorageItem = (key) => {
|
|
6
9
|
if (typeof window === 'undefined') {
|
|
7
10
|
return;
|
|
8
11
|
}
|
|
@@ -10,69 +13,74 @@ export const clearLocalStorageItem = (key) => {
|
|
|
10
13
|
window.localStorage.removeItem(key);
|
|
11
14
|
}
|
|
12
15
|
catch (e) {
|
|
13
|
-
warn('error clearing local storage:', e);
|
|
16
|
+
(0, log_1.warn)('error clearing local storage:', e);
|
|
14
17
|
}
|
|
15
18
|
};
|
|
16
|
-
|
|
19
|
+
exports.clearLocalStorageItem = clearLocalStorageItem;
|
|
20
|
+
const clearAllLocalStorage = (except) => {
|
|
17
21
|
try {
|
|
18
22
|
if (typeof window === 'undefined') {
|
|
19
23
|
return;
|
|
20
24
|
}
|
|
21
25
|
for (let i = 0; i < localStorage.length; i += 1) {
|
|
22
26
|
const key = localStorage.key(i);
|
|
23
|
-
if (!key || except
|
|
27
|
+
if (!key || (except === null || except === void 0 ? void 0 : except.includes(key))) {
|
|
24
28
|
return;
|
|
25
29
|
}
|
|
26
|
-
clearLocalStorageItem(key);
|
|
30
|
+
(0, exports.clearLocalStorageItem)(key);
|
|
27
31
|
}
|
|
28
32
|
}
|
|
29
33
|
catch (e) {
|
|
30
|
-
warn('error clearing local storage:', e);
|
|
34
|
+
(0, log_1.warn)('error clearing local storage:', e);
|
|
31
35
|
}
|
|
32
36
|
};
|
|
33
|
-
|
|
37
|
+
exports.clearAllLocalStorage = clearAllLocalStorage;
|
|
38
|
+
const setLocalStorageItem = (key, value, ttl) => {
|
|
34
39
|
try {
|
|
35
40
|
if (typeof window === 'undefined') {
|
|
36
41
|
return;
|
|
37
42
|
}
|
|
38
43
|
const set = {
|
|
39
|
-
expiry: !ttl ? undefined : getTimeSeconds() + ttl,
|
|
44
|
+
expiry: !ttl ? undefined : (0, date_1.getTimeSeconds)() + ttl,
|
|
40
45
|
val: JSON.stringify(value),
|
|
41
46
|
};
|
|
42
47
|
window.localStorage.setItem(key, JSON.stringify(set));
|
|
43
48
|
}
|
|
44
49
|
catch (e) {
|
|
45
|
-
error(`set LS error:${key}-${e}`);
|
|
46
|
-
clearLocalStorageItem(key);
|
|
50
|
+
(0, log_1.error)(`set LS error:${key}-${e}`);
|
|
51
|
+
(0, exports.clearLocalStorageItem)(key);
|
|
47
52
|
}
|
|
48
53
|
};
|
|
49
|
-
|
|
54
|
+
exports.setLocalStorageItem = setLocalStorageItem;
|
|
55
|
+
const getLocalStorageItem = (key, initialValue, ttl) => {
|
|
50
56
|
if (typeof window === 'undefined') {
|
|
51
57
|
return initialValue;
|
|
52
58
|
}
|
|
53
59
|
const itemraw = window.localStorage.getItem(key);
|
|
54
|
-
const item = tryJsonParse(itemraw, undefined);
|
|
55
|
-
if (!item || (item.expiry && getTimeSeconds() > item.expiry)) {
|
|
56
|
-
setLocalStorageItem(key, initialValue, ttl);
|
|
60
|
+
const item = (0, object_1.tryJsonParse)(itemraw, undefined);
|
|
61
|
+
if (!item || (item.expiry && (0, date_1.getTimeSeconds)() > item.expiry)) {
|
|
62
|
+
(0, exports.setLocalStorageItem)(key, initialValue, ttl);
|
|
57
63
|
return initialValue;
|
|
58
64
|
}
|
|
59
|
-
const itemv = tryJsonParse(item.val, undefined);
|
|
65
|
+
const itemv = (0, object_1.tryJsonParse)(item.val, undefined);
|
|
60
66
|
if (!itemv) {
|
|
61
|
-
setLocalStorageItem(key, initialValue, ttl);
|
|
67
|
+
(0, exports.setLocalStorageItem)(key, initialValue, ttl);
|
|
62
68
|
return initialValue;
|
|
63
69
|
}
|
|
64
70
|
return itemv;
|
|
65
71
|
};
|
|
66
|
-
|
|
67
|
-
|
|
72
|
+
exports.getLocalStorageItem = getLocalStorageItem;
|
|
73
|
+
function UseLocalStorage(key, initialValue, ttl) {
|
|
74
|
+
const storedValue = (0, exports.getLocalStorageItem)(key, initialValue, ttl);
|
|
68
75
|
//bump use of stored value
|
|
69
|
-
const [, setT] = useState(0);
|
|
76
|
+
const [, setT] = (0, react_1.useState)(0);
|
|
70
77
|
// Return a wrapped version of useState's setter function that ...
|
|
71
78
|
// ... persists the new value to localStorage.
|
|
72
79
|
const setValue = (value) => {
|
|
73
80
|
const valueToStore = (value instanceof Function ? value(storedValue) : value);
|
|
74
|
-
setLocalStorageItem(key, valueToStore, ttl);
|
|
81
|
+
(0, exports.setLocalStorageItem)(key, valueToStore, ttl);
|
|
75
82
|
setT(new Date().getTime());
|
|
76
83
|
};
|
|
77
84
|
return [storedValue, setValue];
|
|
78
85
|
}
|
|
86
|
+
exports.UseLocalStorage = UseLocalStorage;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useLockBodyScroll = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
function useLockBodyScroll(enabled) {
|
|
6
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
4
7
|
let originalStyle;
|
|
5
8
|
if (enabled) {
|
|
6
9
|
originalStyle = window.getComputedStyle(document.body).overflow;
|
|
@@ -13,3 +16,4 @@ export function useLockBodyScroll(enabled) {
|
|
|
13
16
|
};
|
|
14
17
|
}, [enabled]);
|
|
15
18
|
}
|
|
19
|
+
exports.useLockBodyScroll = useLockBodyScroll;
|
|
@@ -1,21 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useOnClickOutside = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const dom_1 = require("./dom");
|
|
6
|
+
function useOnClickOutside(p, handler) {
|
|
7
|
+
(0, react_1.useEffect)(() => {
|
|
5
8
|
if (p.disabled || typeof window === 'undefined') {
|
|
6
9
|
return () => {
|
|
7
10
|
//
|
|
8
11
|
};
|
|
9
12
|
}
|
|
10
13
|
const listener = (event) => {
|
|
14
|
+
var _a;
|
|
11
15
|
//
|
|
12
|
-
const isRightMB = isRightClick(event);
|
|
16
|
+
const isRightMB = (0, dom_1.isRightClick)(event);
|
|
13
17
|
if (isRightMB) {
|
|
14
18
|
return;
|
|
15
19
|
}
|
|
16
|
-
const el = p.ref
|
|
20
|
+
const el = (_a = p.ref) === null || _a === void 0 ? void 0 : _a.current;
|
|
17
21
|
// Do nothing if clicking ref's element or descendent elements
|
|
18
|
-
if (!el || el.contains(event
|
|
22
|
+
if (!el || el.contains((event === null || event === void 0 ? void 0 : event.target) || null)) {
|
|
19
23
|
return;
|
|
20
24
|
}
|
|
21
25
|
handler(event);
|
|
@@ -33,3 +37,4 @@ export function useOnClickOutside(p, handler) {
|
|
|
33
37
|
// Reload only if ref or handler changes
|
|
34
38
|
}, [p, handler]);
|
|
35
39
|
}
|
|
40
|
+
exports.useOnClickOutside = useOnClickOutside;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useOnScroll = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const debounce_1 = require("./debounce");
|
|
6
|
+
const useGranularHook_1 = require("./useGranularHook");
|
|
7
|
+
function useOnScroll({ onScroll, element, } = {}) {
|
|
8
|
+
const [state, setState] = (0, react_1.useState)({
|
|
6
9
|
scrolled: false,
|
|
7
10
|
x: 0,
|
|
8
11
|
y: 0,
|
|
@@ -10,11 +13,12 @@ export function useOnScroll({ onScroll, element, } = {}) {
|
|
|
10
13
|
scrollTopX: 0,
|
|
11
14
|
scrollTopY: 0,
|
|
12
15
|
});
|
|
13
|
-
const [startScrollTopY, setStartScrollTopY] = useState(-1);
|
|
14
|
-
useGranularEffect(() => {
|
|
16
|
+
const [startScrollTopY, setStartScrollTopY] = (0, react_1.useState)(-1);
|
|
17
|
+
(0, useGranularHook_1.useGranularEffect)(() => {
|
|
15
18
|
const listener = (e) => {
|
|
16
|
-
|
|
17
|
-
const
|
|
19
|
+
var _a, _b, _c, _d;
|
|
20
|
+
const y = (_b = (_a = element === null || element === void 0 ? void 0 : element.current) === null || _a === void 0 ? void 0 : _a.scrollTop) !== null && _b !== void 0 ? _b : window.scrollY;
|
|
21
|
+
const x = (_d = (_c = element === null || element === void 0 ? void 0 : element.current) === null || _c === void 0 ? void 0 : _c.scrollLeft) !== null && _d !== void 0 ? _d : window.scrollX;
|
|
18
22
|
const r = {
|
|
19
23
|
y,
|
|
20
24
|
x,
|
|
@@ -24,26 +28,28 @@ export function useOnScroll({ onScroll, element, } = {}) {
|
|
|
24
28
|
scrollTopY: y,
|
|
25
29
|
};
|
|
26
30
|
setState(r);
|
|
27
|
-
onScroll
|
|
31
|
+
onScroll === null || onScroll === void 0 ? void 0 : onScroll(e, r);
|
|
28
32
|
return { y, x };
|
|
29
33
|
};
|
|
30
34
|
const listenDebounce = (e) => {
|
|
31
|
-
debounce(() => {
|
|
35
|
+
(0, debounce_1.debounce)(() => {
|
|
32
36
|
const { y } = listener(e);
|
|
33
37
|
setStartScrollTopY(y);
|
|
34
38
|
}, { key: 'onscroll', time: 20 });
|
|
35
39
|
};
|
|
36
|
-
(element
|
|
40
|
+
((element === null || element === void 0 ? void 0 : element.current) || document).addEventListener(`scroll`, listenDebounce, {
|
|
37
41
|
passive: true,
|
|
38
42
|
});
|
|
39
43
|
return () => {
|
|
40
|
-
(element
|
|
44
|
+
((element === null || element === void 0 ? void 0 : element.current) || document).removeEventListener(`scroll`, listenDebounce);
|
|
41
45
|
};
|
|
42
46
|
}, [element], [element, onScroll, startScrollTopY]);
|
|
43
|
-
useEffect(() => {
|
|
44
|
-
|
|
47
|
+
(0, react_1.useEffect)(() => {
|
|
48
|
+
var _a;
|
|
49
|
+
if (startScrollTopY === -1 && ((_a = element === null || element === void 0 ? void 0 : element.current) === null || _a === void 0 ? void 0 : _a.scrollTop)) {
|
|
45
50
|
setStartScrollTopY(element.current.scrollTop);
|
|
46
51
|
}
|
|
47
52
|
}, [element, startScrollTopY]);
|
|
48
53
|
return state;
|
|
49
54
|
}
|
|
55
|
+
exports.useOnScroll = useOnScroll;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useOverloadPageSearch = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const useOverloadPageSearch = ({ disabled = false, onTrigger, }) => {
|
|
6
|
+
(0, react_1.useEffect)(() => {
|
|
4
7
|
const ctrlF = (e) => {
|
|
5
8
|
const macSearch = e.metaKey && e.code === 'KeyF';
|
|
6
9
|
const winSearch = e.ctrlKey && e.code === 'KeyF';
|
|
@@ -16,3 +19,4 @@ export const useOverloadPageSearch = ({ disabled = false, onTrigger, }) => {
|
|
|
16
19
|
return () => window.removeEventListener('keydown', ctrlF);
|
|
17
20
|
}, [disabled, onTrigger]);
|
|
18
21
|
};
|
|
22
|
+
exports.useOverloadPageSearch = useOverloadPageSearch;
|
|
@@ -1,18 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useQueryStringSingle = exports.useQueryStringArray = exports.useQueryStringRaw = exports.isServer = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const log_1 = require("../../common/helpers/log");
|
|
6
|
+
const object_1 = require("../../common/helpers/object");
|
|
7
|
+
exports.isServer = typeof window === 'undefined';
|
|
5
8
|
/**
|
|
6
9
|
* hook for query string value
|
|
7
10
|
* @param param0 can provide for SSR - queryValues will default to window if available
|
|
8
11
|
* @returns
|
|
9
12
|
*/
|
|
10
|
-
|
|
11
|
-
const qv = isServer
|
|
13
|
+
const useQueryStringRaw = ({ name, queryValues, defaultValue, stringify, parse, }) => {
|
|
14
|
+
const qv = exports.isServer
|
|
12
15
|
? queryValues || {}
|
|
13
|
-
: paramsToObject(new URLSearchParams(window.location.search));
|
|
16
|
+
: (0, object_1.paramsToObject)(new URLSearchParams(window.location.search));
|
|
14
17
|
const qsv = parse(qv[name]) || defaultValue;
|
|
15
|
-
const [state, setStateRaw] = useState(qsv);
|
|
18
|
+
const [state, setStateRaw] = (0, react_1.useState)(qsv);
|
|
16
19
|
//
|
|
17
20
|
const setState = (v) => {
|
|
18
21
|
const sv = !v ? undefined : stringify(v);
|
|
@@ -22,45 +25,48 @@ export const useQueryStringRaw = ({ name, queryValues, defaultValue, stringify,
|
|
|
22
25
|
else {
|
|
23
26
|
delete qv[name];
|
|
24
27
|
}
|
|
25
|
-
const qs = '?' + objectToString(qv, '=', '&');
|
|
26
|
-
if (!isServer) {
|
|
28
|
+
const qs = '?' + (0, object_1.objectToString)(qv, '=', '&');
|
|
29
|
+
if (!exports.isServer) {
|
|
27
30
|
const loc = window.location.pathname + qs + window.location.hash;
|
|
28
31
|
window.history.replaceState({}, '', loc);
|
|
29
32
|
}
|
|
30
33
|
else {
|
|
31
|
-
info('cant change url params on server');
|
|
34
|
+
(0, log_1.info)('cant change url params on server');
|
|
32
35
|
}
|
|
33
36
|
setStateRaw(v);
|
|
34
37
|
};
|
|
35
38
|
//
|
|
36
|
-
useEffect(() => {
|
|
39
|
+
(0, react_1.useEffect)(() => {
|
|
37
40
|
if (JSON.stringify(state) !== JSON.stringify(qsv)) {
|
|
38
41
|
setStateRaw(qsv);
|
|
39
42
|
}
|
|
40
43
|
}, [name, parse, qsv, state]);
|
|
41
44
|
return [state, setState];
|
|
42
45
|
};
|
|
46
|
+
exports.useQueryStringRaw = useQueryStringRaw;
|
|
43
47
|
/**
|
|
44
48
|
* hook for query string value - string array type
|
|
45
49
|
* @param param0 can provide for SSR - queryValues will default to window if available
|
|
46
50
|
* @returns
|
|
47
51
|
*/
|
|
48
|
-
|
|
52
|
+
const useQueryStringArray = ({ name, queryValues, defaultValue, }) => (0, exports.useQueryStringRaw)({
|
|
49
53
|
name,
|
|
50
54
|
defaultValue,
|
|
51
55
|
queryValues,
|
|
52
56
|
stringify: (v) => (v.length === 0 ? undefined : v.join(',')),
|
|
53
57
|
parse: (v) => (!v ? defaultValue : v.split(',')),
|
|
54
58
|
});
|
|
59
|
+
exports.useQueryStringArray = useQueryStringArray;
|
|
55
60
|
/**
|
|
56
61
|
* hook for query string value - single value
|
|
57
62
|
* @param param0 can provide for SSR - queryValues will default to window if available
|
|
58
63
|
* @returns
|
|
59
64
|
*/
|
|
60
|
-
|
|
65
|
+
const useQueryStringSingle = ({ name, queryValues, defaultValue, }) => (0, exports.useQueryStringRaw)({
|
|
61
66
|
name,
|
|
62
67
|
defaultValue,
|
|
63
68
|
queryValues,
|
|
64
69
|
stringify: (v) => v,
|
|
65
70
|
parse: (v) => (!v ? defaultValue : v),
|
|
66
71
|
});
|
|
72
|
+
exports.useQueryStringSingle = useQueryStringSingle;
|
|
@@ -1,24 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useResize = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const media_1 = require("../styles/media");
|
|
3
6
|
function getWindowDimensions() {
|
|
4
|
-
if (typeof window
|
|
5
|
-
const width = window.innerWidth;
|
|
6
|
-
const height = window.innerHeight;
|
|
7
|
-
return {
|
|
8
|
-
width,
|
|
9
|
-
height,
|
|
10
|
-
smallScreen: width <= smallScreenPx,
|
|
11
|
-
bigScreen: width > smallScreenPx,
|
|
12
|
-
vBigScreen: width > bigScreenPx,
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
7
|
+
if (typeof window === 'undefined') {
|
|
16
8
|
return undefined;
|
|
17
9
|
}
|
|
10
|
+
const width = window.innerWidth;
|
|
11
|
+
const height = window.innerHeight;
|
|
12
|
+
return {
|
|
13
|
+
width,
|
|
14
|
+
height,
|
|
15
|
+
smallScreen: width <= media_1.smallScreenPx,
|
|
16
|
+
bigScreen: width > media_1.smallScreenPx,
|
|
17
|
+
vBigScreen: width > media_1.bigScreenPx,
|
|
18
|
+
};
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
-
const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions());
|
|
21
|
-
useEffect(() => {
|
|
20
|
+
function useResize() {
|
|
21
|
+
const [windowDimensions, setWindowDimensions] = (0, react_1.useState)(getWindowDimensions());
|
|
22
|
+
(0, react_1.useEffect)(() => {
|
|
22
23
|
function handleResize() {
|
|
23
24
|
const wd = getWindowDimensions();
|
|
24
25
|
if (JSON.stringify(windowDimensions) === JSON.stringify(wd)) {
|
|
@@ -34,3 +35,4 @@ export function useResize() {
|
|
|
34
35
|
}, [windowDimensions]);
|
|
35
36
|
return windowDimensions;
|
|
36
37
|
}
|
|
38
|
+
exports.useResize = useResize;
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useTimeout = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
function useTimeout(callback,
|
|
3
6
|
/** if null wont trigger */
|
|
4
7
|
delay) {
|
|
5
|
-
const savedCallback = useRef(callback);
|
|
6
|
-
useEffect(() => {
|
|
8
|
+
const savedCallback = (0, react_1.useRef)(callback);
|
|
9
|
+
(0, react_1.useEffect)(() => {
|
|
7
10
|
savedCallback.current = callback;
|
|
8
11
|
}, [callback]);
|
|
9
|
-
useEffect(() => {
|
|
12
|
+
(0, react_1.useEffect)(() => {
|
|
10
13
|
let id;
|
|
11
14
|
function tick() {
|
|
12
15
|
const ret = savedCallback.current();
|
|
@@ -29,3 +32,4 @@ delay) {
|
|
|
29
32
|
}
|
|
30
33
|
}, [delay]);
|
|
31
34
|
}
|
|
35
|
+
exports.useTimeout = useTimeout;
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ChevronRight = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
exports.ChevronRight = (react_1.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 16 16", fill: "currentColor" },
|
|
9
|
+
react_1.default.createElement("path", { fillRule: "evenodd", d: "M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z" })));
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CrossIcon = void 0;
|
|
7
|
+
const styled_1 = __importDefault(require("@emotion/styled"));
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const Base = styled_1.default.svg `
|
|
4
10
|
color: rgb(170, 170, 170);
|
|
5
11
|
margin: auto;
|
|
6
12
|
font-size: 2rem;
|
|
@@ -12,5 +18,6 @@ const Base = styled.svg `
|
|
|
12
18
|
color: rgb(136, 136, 136);
|
|
13
19
|
}
|
|
14
20
|
`;
|
|
15
|
-
|
|
16
|
-
|
|
21
|
+
const CrossIcon = ({ className, onClick, }) => (react_1.default.createElement(Base, { className: className, stroke: "currentColor", fill: "currentColor", strokeWidth: "0", viewBox: "0 0 352 512", xmlns: "http://www.w3.org/2000/svg", onClick: onClick },
|
|
22
|
+
react_1.default.createElement("path", { d: "M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z" })));
|
|
23
|
+
exports.CrossIcon = CrossIcon;
|
package/dist/ui/icons/Door.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Door = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
exports.Door = (react_1.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20" },
|
|
9
|
+
react_1.default.createElement("path", { d: "M3 3h8V1H3a2 2 0 00-2 2v14a2 2 0 002 2h8v-2H3z" }),
|
|
10
|
+
react_1.default.createElement("path", { d: "M19 10l-6-5v4H5v2h8v4l6-5z" })));
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.HorizontalDots = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
exports.HorizontalDots = (react_1.default.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fillRule: "evenodd", clipRule: "evenodd" },
|
|
9
|
+
react_1.default.createElement("path", { d: "M16 12a3.001 3.001 0 016 0 3.001 3.001 0 01-6 0zm1 0a2 2 0 114.001.001A2 2 0 0117 12zm-8 0a3.001 3.001 0 016 0 3.001 3.001 0 01-6 0zm1 0a2 2 0 114.001.001A2 2 0 0110 12zm-8 0a3.001 3.001 0 016 0 3.001 3.001 0 01-6 0zm1 0a2 2 0 114.001.001A2 2 0 013 12z" })));
|
package/dist/ui/icons/Magnify.js
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Magnify = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const Magnify = ({ colour = '#000', }) => (react_1.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 490 490" },
|
|
9
|
+
react_1.default.createElement("path", { fill: "none", stroke: colour, strokeWidth: "36", strokeLinecap: "round", d: "M280 278a153 153 0 1 0-2 2l170 170m-91-117 110 110-26 26-110-110" })));
|
|
10
|
+
exports.Magnify = Magnify;
|
package/dist/ui/icons/Pencil.js
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Pencil = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const Pencil = () => (react_1.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 50 50" },
|
|
9
|
+
react_1.default.createElement("path", { d: "M9.6 40.4l2.5-9.9L27 15.6l7.4 7.4-14.9 14.9-9.9 2.5zm4.3-8.9l-1.5 6.1 6.1-1.5L31.6 23 27 18.4 13.9 31.5z" }),
|
|
10
|
+
react_1.default.createElement("path", { d: "M17.8 37.3c-.6-2.5-2.6-4.5-5.1-5.1l.5-1.9c3.2.8 5.7 3.3 6.5 6.5l-1.9.5z" }),
|
|
11
|
+
react_1.default.createElement("path", { d: "M29.298 19.287l1.414 1.414-13.01 13.02-1.414-1.412zM11 39l2.9-.7c-.3-1.1-1.1-1.9-2.2-2.2L11 39zM35 22.4L27.6 15l3-3 .5.1c3.6.5 6.4 3.3 6.9 6.9l.1.5-3.1 2.9zM30.4 15l4.6 4.6.9-.9c-.5-2.3-2.3-4.1-4.6-4.6l-.9.9z" })));
|
|
12
|
+
exports.Pencil = Pencil;
|
package/dist/ui/icons/Save.js
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Save = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const Save = () => (react_1.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 100 100" },
|
|
9
|
+
react_1.default.createElement("path", { d: "M50 12c-21 0-38 17-38 38s17 38 38 38 38-17 38-38-17-38-38-38zm0 72c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34zm22.9-46.9c-.8-.8-2-.8-2.8 0L44.6 62.7 33.9 52c-.8-.8-2.1-.8-2.8 0-.8.8-.8 2.1 0 2.8l12.1 12.1c.4.4.9.6 1.4.6.5 0 1-.2 1.4-.6l26.9-27c.8-.8.8-2 0-2.8z" }),
|
|
10
|
+
react_1.default.createElement("path", { fill: "#00F", d: "M1644-1210V474H-140v-1684h1784m8-8H-148V482h1800v-1700z" })));
|
|
11
|
+
exports.Save = Save;
|
package/dist/ui/icons/Undo.js
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Undo = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const Undo = () => (react_1.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 64 64" },
|
|
9
|
+
react_1.default.createElement("g", { fill: "#134563" },
|
|
10
|
+
react_1.default.createElement("path", { d: "M32.1 51.9c-7.8 0-14.9-4.6-18.1-11.6l2.6-1.2c2.8 6 8.9 9.9 15.5 9.9 9.4 0 17-7.6 17-17s-7.6-17-17-17C25 15 19 19.4 16.5 26.4l-2.7-1c2.9-8.1 10-13.3 18.3-13.3C43.1 12.1 52 21 52 32s-9 19.9-19.9 19.9" }),
|
|
11
|
+
react_1.default.createElement("path", { d: "M24.4 27.4H12V15.1h3.1v9.2h9.3v3.1" }))));
|
|
12
|
+
exports.Undo = Undo;
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.UserOutline = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
exports.UserOutline = (react_1.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512" },
|
|
9
|
+
react_1.default.createElement("path", { d: "M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm0 398.7c-58.6 0-111.1-26.6-146.1-68.3 17.8-7.7 62.2-23.7 90.3-31.9 2.2-.7 2.6-.8 2.6-10.7 0-10.6-1.2-18.1-3.8-23.6-3.5-7.5-7.7-20.2-9.2-31.6-4.2-4.9-9.9-14.5-13.6-32.9-3.2-16.2-1.7-22.1.4-27.6.2-.6.5-1.2.6-1.8.8-3.7-.3-23.5-3.1-38.8-1.9-10.5.5-32.8 15-51.3 9.1-11.7 26.6-26 58-28h17.5c31.9 2 49.4 16.3 58.5 28 14.5 18.5 16.9 40.8 14.9 51.3-2.8 15.3-3.9 35-3.1 38.8.1.6.4 1.2.6 1.7 2.1 5.5 3.7 11.4.4 27.6-3.7 18.4-9.4 28-13.6 32.9-1.5 11.4-5.7 24-9.2 31.6-3.3 6.9-6.6 15.1-6.6 23.3 0 9.9.4 10 2.7 10.7 26.7 7.9 72.7 23.8 93 32.1-35 41.8-87.5 68.5-146.2 68.5z" })));
|