@pagopa/selfcare-common-frontend 1.5.20 → 1.6.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/CHANGELOG.md +9 -0
- package/README.md +10 -0
- package/build.info +2 -2
- package/hooks/useUnloadEventInterceptor.js +15 -2
- package/hooks/useUnloadEventInterceptor.js.map +1 -1
- package/locale/it.d.ts +11 -0
- package/locale/it.js +13 -0
- package/locale/it.js.map +1 -0
- package/locale/locale-utils.d.ts +3 -0
- package/locale/locale-utils.js +24 -0
- package/locale/locale-utils.js.map +1 -0
- package/package.json +3 -1
- package/utils/api-utils.js +10 -1
- package/utils/api-utils.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,8 +4,17 @@ All notable changes to this project will be documented in this file. Dates are d
|
|
|
4
4
|
|
|
5
5
|
Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
6
6
|
|
|
7
|
+
#### [v1.6.0](https://github.com/pagopa/selfcare-common-frontend/compare/v1.5.20...v1.6.0)
|
|
8
|
+
|
|
9
|
+
- Fixed unload event when backing routing history [`#53`](https://github.com/pagopa/selfcare-common-frontend/pull/53)
|
|
10
|
+
- Selc 685 i18n [`#51`](https://github.com/pagopa/selfcare-common-frontend/pull/51)
|
|
11
|
+
- Added httpStatus and httpBody to error returned by api-utils [`#52`](https://github.com/pagopa/selfcare-common-frontend/pull/52)
|
|
12
|
+
- Selc 685 i18n (#51) [`#685`](https://pagopa.atlassian.net/browse/685)
|
|
13
|
+
|
|
7
14
|
#### [v1.5.20](https://github.com/pagopa/selfcare-common-frontend/compare/v1.5.19...v1.5.20)
|
|
8
15
|
|
|
16
|
+
> 11 March 2022
|
|
17
|
+
|
|
9
18
|
- AppError accept a ReactNode as displayableDescription [`#50`](https://github.com/pagopa/selfcare-common-frontend/pull/50)
|
|
10
19
|
|
|
11
20
|
#### [v1.5.19](https://github.com/pagopa/selfcare-common-frontend/compare/v1.5.18...v1.5.19)
|
package/README.md
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
# SelfCare's common components & features
|
|
2
2
|
This library contains [utilities](#utilities), [components](#components), [decorators](#decorators), [custom hooks](#custom-hooks) and [features](#features) built for the selfcare project.
|
|
3
3
|
|
|
4
|
+
# Localization
|
|
5
|
+
This libray has been built using react-i18next and string inside of it are also localizated.
|
|
6
|
+
Actually the library contains the only "it" translation.
|
|
7
|
+
The translations for the keys of the common components can be overwritten using the resources used during configuration.
|
|
8
|
+
In order to configure it call the method configureI18n of the module locale/locale-utils which accept the following parameters:
|
|
9
|
+
| Param | Type | Mandatory | Description |
|
|
10
|
+
|-------|------|-----------|-------------|
|
|
11
|
+
| resources | Y | { [lang: string]: any } | a map containing the language as key and the map containing the key/translated messages as value. These values overwrite common's component keys if desired |
|
|
12
|
+
| defaultLanguage | N | string | as default it language |
|
|
13
|
+
|
|
4
14
|
# Configuration
|
|
5
15
|
In order to use these components it's necessary to set the following keys of the CONFIG object imported from /config/env as first things inside the application:
|
|
6
16
|
|
package/build.info
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
remotes/origin/SELC-222
|
|
1
|
+
20220317.1 - selfcare-common-frontend.deploy(24201)
|
|
2
|
+
remotes/origin/SELC-222 316fd7f7e00eb1133c41dcf8634e17aa479ba67b
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.useUnloadEventLogout = exports.useUnloadEventOnExit = exports.useUnloadEventInterceptorAndActivate = exports.useUnloadEventInterceptor = void 0;
|
|
4
4
|
const react_1 = require("react");
|
|
5
5
|
const react_redux_1 = require("react-redux");
|
|
6
|
+
const react_router_dom_1 = require("react-router-dom");
|
|
6
7
|
const env_1 = require("../config/env");
|
|
7
8
|
const appStateSlice_1 = require("../redux/slices/appStateSlice");
|
|
8
9
|
const appStateSlice_2 = require("./../redux/slices/appStateSlice");
|
|
@@ -12,11 +13,23 @@ const appStateSlice_2 = require("./../redux/slices/appStateSlice");
|
|
|
12
13
|
*/
|
|
13
14
|
const useUnloadEventInterceptor = () => {
|
|
14
15
|
const dispatch = (0, react_redux_1.useDispatch)();
|
|
16
|
+
const history = (0, react_router_dom_1.useHistory)();
|
|
17
|
+
const onExit = (0, exports.useUnloadEventOnExit)();
|
|
18
|
+
const unblockHistory = (0, react_1.useRef)(() => { });
|
|
15
19
|
const registerUnloadEvent = (title, description) => {
|
|
16
20
|
dispatch(appStateSlice_1.appStateActions.enableUnloadEventInterceptor({ title, description }));
|
|
21
|
+
// eslint-disable-next-line functional/immutable-data
|
|
22
|
+
unblockHistory.current = history.block((tx) => {
|
|
23
|
+
onExit(() => {
|
|
24
|
+
unblockHistory.current();
|
|
25
|
+
history.push(tx);
|
|
26
|
+
});
|
|
27
|
+
return false;
|
|
28
|
+
});
|
|
17
29
|
};
|
|
18
30
|
const unregisterUnloadEvent = () => {
|
|
19
31
|
dispatch(appStateSlice_1.appStateActions.disableUnloadEventInterceptor());
|
|
32
|
+
unblockHistory.current();
|
|
20
33
|
};
|
|
21
34
|
return {
|
|
22
35
|
registerUnloadEvent,
|
|
@@ -40,9 +53,9 @@ exports.useUnloadEventInterceptorAndActivate = useUnloadEventInterceptorAndActiv
|
|
|
40
53
|
/** In order to show a custom pop-up when the user trigger an exit action you have to use the custom hook useUnloadEventOnExit which will return an arrow function to invoke instead of the exit action passing to it the exitAction itself. */
|
|
41
54
|
const useUnloadEventOnExit = () => {
|
|
42
55
|
const dispatch = (0, react_redux_1.useDispatch)();
|
|
43
|
-
const
|
|
56
|
+
const store = (0, react_redux_1.useStore)();
|
|
44
57
|
return (exitAction) => {
|
|
45
|
-
if (
|
|
58
|
+
if (appStateSlice_2.appStateSelectors.selectUnloadEventConfiguration(store.getState()).enabled) {
|
|
46
59
|
dispatch(appStateSlice_1.appStateActions.openUnloadEventNotify(exitAction));
|
|
47
60
|
}
|
|
48
61
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUnloadEventInterceptor.js","sourceRoot":"","sources":["../../src/lib/hooks/useUnloadEventInterceptor.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"useUnloadEventInterceptor.js","sourceRoot":"","sources":["../../src/lib/hooks/useUnloadEventInterceptor.ts"],"names":[],"mappings":";;;AAAA,iCAA0C;AAC1C,6CAAoD;AACpD,uDAA8C;AAC9C,uCAAuC;AACvC,iEAAgE;AAChE,mEAAoE;AAEpE;;;GAGG;AACI,MAAM,yBAAyB,GAAG,GAAG,EAAE;IAC5C,MAAM,QAAQ,GAAG,IAAA,yBAAW,GAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAA,6BAAU,GAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,IAAA,4BAAoB,GAAE,CAAC;IAEtC,MAAM,cAAc,GAAG,IAAA,cAAM,EAAa,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAEpD,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAAE,WAAoB,EAAE,EAAE;QACnE,QAAQ,CAAC,+BAAe,CAAC,4BAA4B,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QAC/E,qDAAqD;QACrD,cAAc,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE;YAC5C,MAAM,CAAC,GAAG,EAAE;gBACV,cAAc,CAAC,OAAO,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnB,CAAC,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,GAAG,EAAE;QACjC,QAAQ,CAAC,+BAAe,CAAC,6BAA6B,EAAE,CAAC,CAAC;QAC1D,cAAc,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC,CAAC;IAEF,OAAO;QACL,mBAAmB;QACnB,qBAAqB;KACtB,CAAC;AACJ,CAAC,CAAC;AA5BW,QAAA,yBAAyB,6BA4BpC;AAEF,2OAA2O;AACpO,MAAM,oCAAoC,GAAG,CAAC,KAAc,EAAE,WAAoB,EAAE,EAAE;IAC3F,MAAM,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,GAAG,IAAA,iCAAyB,GAAE,CAAC;IACnF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACxC,OAAO,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO;QACL,mBAAmB;QACnB,qBAAqB;KACtB,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,oCAAoC,wCAU/C;AAEF,+OAA+O;AACxO,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,MAAM,QAAQ,GAAG,IAAA,yBAAW,GAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAA,sBAAQ,GAAE,CAAC;IACzB,OAAO,CAAC,UAAsB,EAAE,EAAE;QAChC,IAAI,iCAAiB,CAAC,8BAA8B,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;YAC9E,QAAQ,CAAC,+BAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;SAC7D;aAAM;YACL,UAAU,EAAE,CAAC;SACd;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,oBAAoB,wBAU/B;AAEF,oLAAoL;AAC7K,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,MAAM,MAAM,GAAG,IAAA,4BAAoB,GAAE,CAAC;IACtC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC;AAHW,QAAA,oBAAoB,wBAG/B"}
|
package/locale/it.d.ts
ADDED
package/locale/it.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = {
|
|
4
|
+
common: {
|
|
5
|
+
key1: 'TRAD1',
|
|
6
|
+
key2: 'TRAD2',
|
|
7
|
+
errorPage: {
|
|
8
|
+
title: 'TITOLO',
|
|
9
|
+
description: 'DESCRIZIONE',
|
|
10
|
+
},
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=it.js.map
|
package/locale/it.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"it.js","sourceRoot":"","sources":["../../src/lib/locale/it.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACb,MAAM,EAAE;QACN,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,SAAS,EAAE;YACT,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,aAAa;SAC3B;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.configureI18n = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_i18next_1 = require("react-i18next");
|
|
6
|
+
const i18next_1 = (0, tslib_1.__importDefault)(require("i18next"));
|
|
7
|
+
const it_1 = (0, tslib_1.__importDefault)(require("./it"));
|
|
8
|
+
const configureI18n = (resources, defaultLanguage = 'it') => {
|
|
9
|
+
const completeResources = { ...resources, it: { translation: { ...it_1.default, ...resources.it } } };
|
|
10
|
+
i18next_1.default
|
|
11
|
+
.use(react_i18next_1.initReactI18next)
|
|
12
|
+
.init({
|
|
13
|
+
resources: completeResources,
|
|
14
|
+
lng: defaultLanguage,
|
|
15
|
+
interpolation: {
|
|
16
|
+
escapeValue: false,
|
|
17
|
+
},
|
|
18
|
+
})
|
|
19
|
+
.catch((err) => {
|
|
20
|
+
throw new Error(err);
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
exports.configureI18n = configureI18n;
|
|
24
|
+
//# sourceMappingURL=locale-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale-utils.js","sourceRoot":"","sources":["../../src/lib/locale/locale-utils.ts"],"names":[],"mappings":";;;;AAAA,iDAAiD;AACjD,mEAA2B;AAC3B,2DAAsB;AAEf,MAAM,aAAa,GAAG,CAC3B,SAAkC,EAClC,kBAA0B,IAAI,EAC9B,EAAE;IACF,MAAM,iBAAiB,GAAG,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,GAAG,YAAE,EAAE,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;IAC5F,iBAAI;SACD,GAAG,CAAC,gCAAgB,CAAC;SACrB,IAAI,CAAC;QACJ,SAAS,EAAE,iBAAiB;QAC5B,GAAG,EAAE,eAAe;QACpB,aAAa,EAAE;YACb,WAAW,EAAE,KAAK;SACnB;KACF,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAjBW,QAAA,aAAa,iBAiBxB"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pagopa/selfcare-common-frontend",
|
|
3
3
|
"description": "Shared React components for the pagopa selfcare project",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.6.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "https://github.com/pagopa/selfcare-common-frontend",
|
|
7
7
|
"author": "https://www.pagopa.gov.it",
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
"env-var": "^7.1.1",
|
|
35
35
|
"formik": "^2.2.9",
|
|
36
36
|
"fp-ts": "^2.11.5",
|
|
37
|
+
"i18next": "^21.6.14",
|
|
37
38
|
"io-ts": "^2.2.16",
|
|
38
39
|
"lodash": "^4.17.21",
|
|
39
40
|
"mixpanel-browser": "^2.43.0",
|
|
@@ -42,6 +43,7 @@
|
|
|
42
43
|
"react-app-polyfill": "^3.0.0",
|
|
43
44
|
"react-dom": "^17.0.2",
|
|
44
45
|
"react-dropzone": "^11.4.2",
|
|
46
|
+
"react-i18next": "^11.15.6",
|
|
45
47
|
"react-md-spinner": "^1.0.0",
|
|
46
48
|
"react-redux": "^7.2.6",
|
|
47
49
|
"react-router-dom": "^5.2.0",
|
package/utils/api-utils.js
CHANGED
|
@@ -50,7 +50,16 @@ const extractResponse = async (response, successHttpStatus, onRedirectToLogin, n
|
|
|
50
50
|
}
|
|
51
51
|
else {
|
|
52
52
|
console.error(JSON.stringify(response.right));
|
|
53
|
-
|
|
53
|
+
const error = new Error(`Unexpected HTTP status! Expected ${successHttpStatus} obtained ${response.right.status}`);
|
|
54
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
55
|
+
// @ts-ignore
|
|
56
|
+
// eslint-disable-next-line functional/immutable-data
|
|
57
|
+
error.httpStatus = response.right.status;
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
59
|
+
// @ts-ignore
|
|
60
|
+
// eslint-disable-next-line functional/immutable-data
|
|
61
|
+
error.httpBody = response.right.value;
|
|
62
|
+
throw error;
|
|
54
63
|
}
|
|
55
64
|
}
|
|
56
65
|
else {
|
package/utils/api-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-utils.js","sourceRoot":"","sources":["../../src/lib/utils/api-utils.ts"],"names":[],"mappings":";;;AACA,6CAAoD;AAEpD,mDAA2C;AAC3C,wDAAwF;AAGxF,uCAAuC;AACvC,iEAAgE;AAEhE,gEAAgE;AACzD,MAAM,iBAAiB,GAAG,CAAC,KAAoB,EAAE,EAAE,CACxD,KAAK,CAAC,QAAQ,CACZ,+BAAe,CAAC,QAAQ,CAAC;IACvB,EAAE,EAAE,eAAe;IACnB,KAAK,EAAE,IAAI,KAAK,EAAE;IAClB,eAAe,EAAE,4BAA4B;IAC7C,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,gBAAgB,EAAE,kBAAkB;IACpC,sBAAsB,EAAE,mDAAmD;CAC5E,CAAC,CACH,CAAC;AAXS,QAAA,iBAAiB,qBAW1B;AAEJ,mEAAmE;AAC5D,MAAM,aAAa,GAAG,CAAC,YAAoB,MAAM,EAA2B,EAAE;IACnF,qDAAqD;IACrD,MAAM,cAAc,GAAG,IAAA,sBAAc,EAAC,kBAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,MAAM,gBAAgB,GAAG,IAAA,eAAO,EAAC,IAAA,uBAAe,EAAC,SAAwB,EAAE,cAAc,CAAC,CAAC,CAAC;IAC5F,mCAAmC;IACnC,OAAO,KAAuC,CAAC;AACjD,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB;AAEF;;;;yDAIyD;AAClD,MAAM,eAAe,GAAG,KAAK,EAClC,QAEC,EACD,iBAAyB,EACzB,iBAA6B,EAC7B,0BAAyC,GAAG,EAC5C,+BAA8C,GAAG,EACjD,0BAAyC,GAAG,EAChC,EAAE;IACd,IAAI,IAAA,gBAAO,EAAC,QAAQ,CAAC,EAAE;QACrB,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,iBAAiB,EAAE;YAC/C,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;SAC7B;aAAM,IAAI,uBAAuB,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,uBAAuB,EAAE;YACvF,iBAAiB,EAAE,CAAC;YACpB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;YAC5E,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;SAChC;aAAM,IACL,4BAA4B;YAC5B,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,4BAA4B,EACtD;YACA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC3C;aAAM,IAAI,uBAAuB,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,uBAAuB,EAAE;YACvF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAoB,CAAC,CAAC,CAAC;SAChE;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9C,MAAM,IAAI,KAAK,
|
|
1
|
+
{"version":3,"file":"api-utils.js","sourceRoot":"","sources":["../../src/lib/utils/api-utils.ts"],"names":[],"mappings":";;;AACA,6CAAoD;AAEpD,mDAA2C;AAC3C,wDAAwF;AAGxF,uCAAuC;AACvC,iEAAgE;AAEhE,gEAAgE;AACzD,MAAM,iBAAiB,GAAG,CAAC,KAAoB,EAAE,EAAE,CACxD,KAAK,CAAC,QAAQ,CACZ,+BAAe,CAAC,QAAQ,CAAC;IACvB,EAAE,EAAE,eAAe;IACnB,KAAK,EAAE,IAAI,KAAK,EAAE;IAClB,eAAe,EAAE,4BAA4B;IAC7C,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,gBAAgB,EAAE,kBAAkB;IACpC,sBAAsB,EAAE,mDAAmD;CAC5E,CAAC,CACH,CAAC;AAXS,QAAA,iBAAiB,qBAW1B;AAEJ,mEAAmE;AAC5D,MAAM,aAAa,GAAG,CAAC,YAAoB,MAAM,EAA2B,EAAE;IACnF,qDAAqD;IACrD,MAAM,cAAc,GAAG,IAAA,sBAAc,EAAC,kBAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,MAAM,gBAAgB,GAAG,IAAA,eAAO,EAAC,IAAA,uBAAe,EAAC,SAAwB,EAAE,cAAc,CAAC,CAAC,CAAC;IAC5F,mCAAmC;IACnC,OAAO,KAAuC,CAAC;AACjD,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB;AAEF;;;;yDAIyD;AAClD,MAAM,eAAe,GAAG,KAAK,EAClC,QAEC,EACD,iBAAyB,EACzB,iBAA6B,EAC7B,0BAAyC,GAAG,EAC5C,+BAA8C,GAAG,EACjD,0BAAyC,GAAG,EAChC,EAAE;IACd,IAAI,IAAA,gBAAO,EAAC,QAAQ,CAAC,EAAE;QACrB,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,iBAAiB,EAAE;YAC/C,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;SAC7B;aAAM,IAAI,uBAAuB,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,uBAAuB,EAAE;YACvF,iBAAiB,EAAE,CAAC;YACpB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;YAC5E,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;SAChC;aAAM,IACL,4BAA4B;YAC5B,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,4BAA4B,EACtD;YACA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC3C;aAAM,IAAI,uBAAuB,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,uBAAuB,EAAE;YACvF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAoB,CAAC,CAAC,CAAC;SAChE;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,oCAAoC,iBAAiB,aAAa,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAC1F,CAAC;YACF,6DAA6D;YAC7D,aAAa;YACb,qDAAqD;YACrD,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YACzC,6DAA6D;YAC7D,aAAa;YACb,qDAAqD;YACrD,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;YACtC,MAAM,KAAK,CAAC;SACb;KACF;SAAM;QACL,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,MAAM,IAAA,gBAAO,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAC9B;AACH,CAAC,CAAC;AA5CW,QAAA,eAAe,mBA4C1B"}
|