taon-ui 21.0.8 → 21.0.9
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/browser/package.json +10 -3
- package/lib/build-info._auto-generated_.d.ts +1 -1
- package/lib/build-info._auto-generated_.js +1 -1
- package/lib/index.js +2 -2
- package/lib/layouts/taon-bootstrap-navbar/index.js +2 -2
- package/lib/ui/directives/index.js +2 -2
- package/lib/ui/index.js +2 -2
- package/lib/ui/taon-github-fork-me-corner/index.js +2 -2
- package/lib/ui/taon-github-fork-me-ribbon/index.js +2 -2
- package/lib/ui/taon-iframe-sync/index.js +2 -2
- package/lib/ui/taon-notifications/taon-notifications.models.js +2 -2
- package/lib/ui/taon-progress-bar/index.js +2 -2
- package/lib/ui/taon-session-passcode/index.js +2 -2
- package/lib/ui/taon-table/index.js +2 -2
- package/package.json +1 -1
- package/tmp-environment.json +43 -0
- package/websql/package.json +10 -3
- package/lib/ui/taon-iframe-sync/taon-iframe-sync.d.ts +0 -24
- package/lib/ui/taon-iframe-sync/taon-iframe-sync.js +0 -118
- package/lib/ui/taon-iframe-sync/taon-iframe-sync.js.map +0 -1
package/browser/package.json
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "taon-ui/browser",
|
|
3
|
-
"version": "21.0.
|
|
4
|
-
"
|
|
5
|
-
|
|
3
|
+
"version": "21.0.9",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "^13.2.0",
|
|
6
|
+
"@angular/core": "^13.2.0"
|
|
7
|
+
},
|
|
8
|
+
"dependencies": {
|
|
9
|
+
"tslib": "^2.3.0"
|
|
10
|
+
},
|
|
11
|
+
"module": "fesm2022/taon-ui-browser.mjs",
|
|
12
|
+
"typings": "types/taon-ui-browser.d.ts",
|
|
6
13
|
"exports": {
|
|
7
14
|
"./package.json": {
|
|
8
15
|
"default": "./package.json"
|
|
@@ -21,6 +21,6 @@ exports.PROJECT_NPM_NAME = 'taon-ui';
|
|
|
21
21
|
/**
|
|
22
22
|
* Autogenerated by current cli tool. Use *tnp release* to bump version.
|
|
23
23
|
*/
|
|
24
|
-
exports.CURRENT_PACKAGE_VERSION = '21.0.
|
|
24
|
+
exports.CURRENT_PACKAGE_VERSION = '21.0.9';
|
|
25
25
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
26
26
|
//# sourceMappingURL=build-info._auto-generated_.js.map
|
package/lib/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
function
|
|
3
|
+
exports.dummy1766574185618 = dummy1766574185618;
|
|
4
|
+
function dummy1766574185618() { }
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
function
|
|
3
|
+
exports.dummy1766574186759 = dummy1766574186759;
|
|
4
|
+
function dummy1766574186759() { }
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
function
|
|
3
|
+
exports.dummy1766574186774 = dummy1766574186774;
|
|
4
|
+
function dummy1766574186774() { }
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
package/lib/ui/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
function
|
|
3
|
+
exports.dummy1766574185729 = dummy1766574185729;
|
|
4
|
+
function dummy1766574185729() { }
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
function
|
|
3
|
+
exports.dummy1766574186834 = dummy1766574186834;
|
|
4
|
+
function dummy1766574186834() { }
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
function
|
|
3
|
+
exports.dummy1766574186852 = dummy1766574186852;
|
|
4
|
+
function dummy1766574186852() { }
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
function
|
|
3
|
+
exports.dummy1766574186874 = dummy1766574186874;
|
|
4
|
+
function dummy1766574186874() { }
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
function
|
|
3
|
+
exports.dummy1766574186905 = dummy1766574186905;
|
|
4
|
+
function dummy1766574186905() { }
|
|
5
5
|
//# sourceMappingURL=taon-notifications.models.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
function
|
|
3
|
+
exports.dummy1766574186919 = dummy1766574186919;
|
|
4
|
+
function dummy1766574186919() { }
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
function
|
|
3
|
+
exports.dummy1766574186941 = dummy1766574186941;
|
|
4
|
+
function dummy1766574186941() { }
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
function
|
|
3
|
+
exports.dummy1766574186960 = dummy1766574186960;
|
|
4
|
+
function dummy1766574186960() { }
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"website": {
|
|
3
|
+
"domain": "taon-ui.example.domain.com",
|
|
4
|
+
"title": "Taon Ui"
|
|
5
|
+
},
|
|
6
|
+
"paths": {},
|
|
7
|
+
"config": {},
|
|
8
|
+
"container": {
|
|
9
|
+
"only": []
|
|
10
|
+
},
|
|
11
|
+
"ports": {
|
|
12
|
+
"ngNormalAppPort": 4263,
|
|
13
|
+
"ngWebsqlAppPort": 4264,
|
|
14
|
+
"nodeBeAppPort": 4104
|
|
15
|
+
},
|
|
16
|
+
"init": {},
|
|
17
|
+
"build": {
|
|
18
|
+
"pwa": {},
|
|
19
|
+
"watch": false
|
|
20
|
+
},
|
|
21
|
+
"loading": {
|
|
22
|
+
"preAngularBootstrap": {},
|
|
23
|
+
"afterAngularBootstrap": {}
|
|
24
|
+
},
|
|
25
|
+
"release": {
|
|
26
|
+
"cli": {},
|
|
27
|
+
"lib": {},
|
|
28
|
+
"autoReleaseUsingConfig": true,
|
|
29
|
+
"releaseVersionBumpType": "patch",
|
|
30
|
+
"releaseType": "manual",
|
|
31
|
+
"targetArtifact": "npm-lib-and-cli-tool",
|
|
32
|
+
"envName": "__",
|
|
33
|
+
"resolvedNewVersion": "19.0.3"
|
|
34
|
+
},
|
|
35
|
+
"copyToManager": {},
|
|
36
|
+
"buildInfo": {
|
|
37
|
+
"date": "2025-05-28T01:42:51.000Z",
|
|
38
|
+
"hash": "7096aeacb73ca98d319b57f31478497c65d613ed"
|
|
39
|
+
},
|
|
40
|
+
"currentProjectName": "taon-ui",
|
|
41
|
+
"currentProjectType": "isomorphic-lib",
|
|
42
|
+
"pathsTsconfig": "\"paths\": {\"@lib\":[\"./src/lib\"],\"@lib/*\":[\"./src/lib/*\"],\"taon-ui/src\":[\"./src/lib\"],\"taon-ui/src/*\":[\"./src/lib/*\"]},"
|
|
43
|
+
}
|
package/websql/package.json
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "taon-ui/websql",
|
|
3
|
-
"version": "21.0.
|
|
4
|
-
"
|
|
5
|
-
|
|
3
|
+
"version": "21.0.9",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "^13.2.0",
|
|
6
|
+
"@angular/core": "^13.2.0"
|
|
7
|
+
},
|
|
8
|
+
"dependencies": {
|
|
9
|
+
"tslib": "^2.3.0"
|
|
10
|
+
},
|
|
11
|
+
"module": "fesm2022/taon-ui-websql.mjs",
|
|
12
|
+
"typings": "types/taon-ui-websql.d.ts",
|
|
6
13
|
"exports": {
|
|
7
14
|
"./package.json": {
|
|
8
15
|
"default": "./package.json"
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { OnInit, OnDestroy, ElementRef, AfterViewInit } from '@angular/core';
|
|
2
|
-
import { ActivatedRoute, Router } from '@angular/router';
|
|
3
|
-
export declare class IframeSyncComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
4
|
-
private route;
|
|
5
|
-
private router;
|
|
6
|
-
private destroy$;
|
|
7
|
-
private iframeWindow;
|
|
8
|
-
/** Base URL of the iframe content (e.g. https://docs.taon.dev) */
|
|
9
|
-
iframeSrc: string;
|
|
10
|
-
/** Query param name in parent URL (default: internalIframePath) */
|
|
11
|
-
queryParamKey: string;
|
|
12
|
-
/** Optional initial path if you don't want to read from URL on first load */
|
|
13
|
-
initialPath: string | null;
|
|
14
|
-
/** Target origin for postMessage – security! (defaults to iframeSrc origin) */
|
|
15
|
-
targetOrigin?: string;
|
|
16
|
-
iframeRef: ElementRef<HTMLIFrameElement>;
|
|
17
|
-
constructor(route: ActivatedRoute, router: Router);
|
|
18
|
-
ngOnInit(): void;
|
|
19
|
-
ngAfterViewInit(): void;
|
|
20
|
-
onIframeLoad(): void;
|
|
21
|
-
private syncParentToIframe;
|
|
22
|
-
private handleMessageFromIframe;
|
|
23
|
-
ngOnDestroy(): void;
|
|
24
|
-
}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.IframeSyncComponent = void 0;
|
|
10
|
-
// iframe-sync.component.ts
|
|
11
|
-
const core_1 = require("@angular/core");
|
|
12
|
-
const router_1 = require("@angular/router");
|
|
13
|
-
const rxjs_1 = require("rxjs");
|
|
14
|
-
const operators_1 = require("rxjs/operators");
|
|
15
|
-
let IframeSyncComponent = class IframeSyncComponent {
|
|
16
|
-
route;
|
|
17
|
-
router;
|
|
18
|
-
destroy$ = new rxjs_1.Subject();
|
|
19
|
-
iframeWindow;
|
|
20
|
-
// ────── Inputs ──────
|
|
21
|
-
/** Base URL of the iframe content (e.g. https://docs.taon.dev) */
|
|
22
|
-
iframeSrc;
|
|
23
|
-
/** Query param name in parent URL (default: internalIframePath) */
|
|
24
|
-
queryParamKey = 'internalIframePath';
|
|
25
|
-
/** Optional initial path if you don't want to read from URL on first load */
|
|
26
|
-
initialPath = null;
|
|
27
|
-
/** Target origin for postMessage – security! (defaults to iframeSrc origin) */
|
|
28
|
-
targetOrigin;
|
|
29
|
-
// ────── ViewChild ──────
|
|
30
|
-
iframeRef;
|
|
31
|
-
constructor(route, router) {
|
|
32
|
-
this.route = route;
|
|
33
|
-
this.router = router;
|
|
34
|
-
}
|
|
35
|
-
ngOnInit() {
|
|
36
|
-
// Listen to Angular router changes (including query param updates)
|
|
37
|
-
this.router.events
|
|
38
|
-
.pipe((0, operators_1.filter)((e) => e instanceof router_1.NavigationEnd), (0, operators_1.takeUntil)(this.destroy$))
|
|
39
|
-
.subscribe(() => this.syncParentToIframe());
|
|
40
|
-
// Listen to direct query param changes (e.g. back/forward)
|
|
41
|
-
this.route.queryParamMap
|
|
42
|
-
.pipe((0, operators_1.takeUntil)(this.destroy$), (0, operators_1.distinctUntilChanged)((a, b) => a.get(this.queryParamKey) === b.get(this.queryParamKey)))
|
|
43
|
-
.subscribe(() => this.syncParentToIframe());
|
|
44
|
-
// Listen to messages coming FROM the iframe
|
|
45
|
-
window.addEventListener('message', this.handleMessageFromIframe);
|
|
46
|
-
}
|
|
47
|
-
ngAfterViewInit() {
|
|
48
|
-
this.iframeWindow = this.iframeRef.nativeElement.contentWindow;
|
|
49
|
-
// Initial sync after everything is ready
|
|
50
|
-
setTimeout(() => this.syncParentToIframe(), 100);
|
|
51
|
-
}
|
|
52
|
-
onIframeLoad() {
|
|
53
|
-
this.iframeWindow = this.iframeRef.nativeElement.contentWindow;
|
|
54
|
-
this.syncParentToIframe();
|
|
55
|
-
}
|
|
56
|
-
// ────── Parent → Iframe ──────
|
|
57
|
-
syncParentToIframe() {
|
|
58
|
-
if (!this.iframeWindow)
|
|
59
|
-
return;
|
|
60
|
-
let path = this.initialPath ??
|
|
61
|
-
this.route.snapshot.queryParamMap.get(this.queryParamKey);
|
|
62
|
-
if (path === null || path === undefined)
|
|
63
|
-
path = '/';
|
|
64
|
-
const origin = this.targetOrigin || new URL(this.iframeSrc).origin;
|
|
65
|
-
this.iframeWindow.postMessage({ type: 'NAVIGATE', path }, origin);
|
|
66
|
-
}
|
|
67
|
-
// ────── Iframe → Parent ──────
|
|
68
|
-
handleMessageFromIframe = (event) => {
|
|
69
|
-
const expectedOrigin = this.targetOrigin || new URL(this.iframeSrc).origin;
|
|
70
|
-
if (event.origin !== expectedOrigin)
|
|
71
|
-
return;
|
|
72
|
-
if (event.data?.type === 'IFRAME_PATH_UPDATE') {
|
|
73
|
-
const newPath = event.data.path || '/';
|
|
74
|
-
this.router.navigate([], {
|
|
75
|
-
queryParams: { [this.queryParamKey]: newPath === '/' ? null : newPath },
|
|
76
|
-
queryParamsHandling: 'merge',
|
|
77
|
-
replaceUrl: true,
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
ngOnDestroy() {
|
|
82
|
-
this.destroy$.next();
|
|
83
|
-
this.destroy$.complete();
|
|
84
|
-
window.removeEventListener('message', this.handleMessageFromIframe);
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
exports.IframeSyncComponent = IframeSyncComponent;
|
|
88
|
-
__decorate([
|
|
89
|
-
(0, core_1.Input)({ required: true })
|
|
90
|
-
], IframeSyncComponent.prototype, "iframeSrc", void 0);
|
|
91
|
-
__decorate([
|
|
92
|
-
(0, core_1.Input)()
|
|
93
|
-
], IframeSyncComponent.prototype, "queryParamKey", void 0);
|
|
94
|
-
__decorate([
|
|
95
|
-
(0, core_1.Input)()
|
|
96
|
-
], IframeSyncComponent.prototype, "initialPath", void 0);
|
|
97
|
-
__decorate([
|
|
98
|
-
(0, core_1.Input)()
|
|
99
|
-
], IframeSyncComponent.prototype, "targetOrigin", void 0);
|
|
100
|
-
__decorate([
|
|
101
|
-
(0, core_1.ViewChild)('iframe', { static: true })
|
|
102
|
-
], IframeSyncComponent.prototype, "iframeRef", void 0);
|
|
103
|
-
exports.IframeSyncComponent = IframeSyncComponent = __decorate([
|
|
104
|
-
(0, core_1.Component)({
|
|
105
|
-
selector: 'app-iframe-sync',
|
|
106
|
-
template: `
|
|
107
|
-
<iframe
|
|
108
|
-
#iframe
|
|
109
|
-
[src]="iframeSrc"
|
|
110
|
-
frameborder="0"
|
|
111
|
-
style="width:100%; height:100%; border:none; display:block;"
|
|
112
|
-
(load)="onIframeLoad()"></iframe>
|
|
113
|
-
`,
|
|
114
|
-
standalone: true,
|
|
115
|
-
changeDetection: core_1.ChangeDetectionStrategy.OnPush,
|
|
116
|
-
})
|
|
117
|
-
], IframeSyncComponent);
|
|
118
|
-
//# sourceMappingURL=taon-iframe-sync.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"taon-iframe-sync.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;;;;;;AAAA,2BAA2B;AAC3B,wCASuB;AACvB,4CAAwE;AACxE,+BAA+B;AAC/B,8CAAyE;AAelE,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAuBpB;IACA;IAvBF,QAAQ,GAAG,IAAI,cAAO,EAAQ,CAAC;IAE/B,YAAY,CAAiB;IAErC,uBAAuB;IACvB,kEAAkE;IACvC,SAAS,CAAU;IAE9C,mEAAmE;IAC1D,aAAa,GAAG,oBAAoB,CAAC;IAE9C,6EAA6E;IACpE,WAAW,GAAkB,IAAI,CAAC;IAE3C,+EAA+E;IACtE,YAAY,CAAU;IAE/B,0BAA0B;IAE1B,SAAS,CAAiC;IAE1C,YACU,KAAqB,EACrB,MAAc;QADd,UAAK,GAAL,KAAK,CAAgB;QACrB,WAAM,GAAN,MAAM,CAAQ;IACrB,CAAC;IAEJ,QAAQ;QACN,mEAAmE;QACnE,IAAI,CAAC,MAAM,CAAC,MAAM;aACf,IAAI,CACH,IAAA,kBAAM,EAAC,CAAC,CAAC,EAAsB,EAAE,CAAC,CAAC,YAAY,sBAAa,CAAC,EAC7D,IAAA,qBAAS,EAAC,IAAI,CAAC,QAAQ,CAAC,CACzB;aACA,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAE9C,2DAA2D;QAC3D,IAAI,CAAC,KAAK,CAAC,aAAa;aACrB,IAAI,CACH,IAAA,qBAAS,EAAC,IAAI,CAAC,QAAQ,CAAC,EACxB,IAAA,gCAAoB,EAClB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAClE,CACF;aACA,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAE9C,4CAA4C;QAC5C,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACnE,CAAC;IAED,eAAe;QACb,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC;QAC/D,yCAAyC;QACzC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,YAAY;QACV,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC;QAC/D,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,gCAAgC;IACxB,kBAAkB;QACxB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QAE/B,IAAI,IAAI,GACN,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,GAAG,GAAG,CAAC;QAEpD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QAEnE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,gCAAgC;IACxB,uBAAuB,GAAG,CAAC,KAAmB,EAAE,EAAE;QACxD,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QAC3E,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc;YAAE,OAAO;QAE5C,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,oBAAoB,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;YAEvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE;gBACvB,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE;gBACvE,mBAAmB,EAAE,OAAO;gBAC5B,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACtE,CAAC;CACF,CAAA;AAhGY,kDAAmB;AAOH;IAA1B,IAAA,YAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sDAAoB;AAGrC;IAAR,IAAA,YAAK,GAAE;0DAAsC;AAGrC;IAAR,IAAA,YAAK,GAAE;wDAAmC;AAGlC;IAAR,IAAA,YAAK,GAAE;yDAAuB;AAI/B;IADC,IAAA,gBAAS,EAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;sDACI;8BApB/B,mBAAmB;IAb/B,IAAA,gBAAS,EAAC;QACT,QAAQ,EAAE,iBAAiB;QAC3B,QAAQ,EAAE;;;;;;;GAOT;QACD,UAAU,EAAE,IAAI;QAChB,eAAe,EAAE,8BAAuB,CAAC,MAAM;KAChD,CAAC;GACW,mBAAmB,CAgG/B"}
|