@rxap/ts-morph 1.1.0-dev.22 → 1.1.0-dev.24

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 CHANGED
@@ -3,6 +3,23 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.1.0-dev.24](https://gitlab.com/rxap/packages/compare/@rxap/ts-morph@1.1.0-dev.23...@rxap/ts-morph@1.1.0-dev.24) (2024-04-03)
7
+
8
+ ### Features
9
+
10
+ - add CoerceRouteGuard function ([813eb34](https://gitlab.com/rxap/packages/commit/813eb34199c51b643dca36217b68b6b3a9c4e324))
11
+ - add the default auth guard ([c439ec4](https://gitlab.com/rxap/packages/commit/c439ec4dd30bbc25772a80e765790d0f05544cd5))
12
+
13
+ # [1.1.0-dev.23](https://gitlab.com/rxap/packages/compare/@rxap/ts-morph@1.1.0-dev.22...@rxap/ts-morph@1.1.0-dev.23) (2024-04-03)
14
+
15
+ ### Bug Fixes
16
+
17
+ - use environment.app to get the default sentry server name ([c89f1bd](https://gitlab.com/rxap/packages/commit/c89f1bdc99425aaee1417b51dfe05c17dbb6565e))
18
+
19
+ ### Features
20
+
21
+ - support app navigation icon coerce ([b37c6c8](https://gitlab.com/rxap/packages/commit/b37c6c814d21420260c5d4966152a11ca49a81bd))
22
+
6
23
  # [1.1.0-dev.22](https://gitlab.com/rxap/packages/compare/@rxap/ts-morph@1.1.0-dev.21...@rxap/ts-morph@1.1.0-dev.22) (2024-03-31)
7
24
 
8
25
  ### Bug Fixes
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.1.0-dev.22",
2
+ "version": "1.1.0-dev.24",
3
3
  "name": "@rxap/ts-morph",
4
4
  "license": "GPL-3.0-or-later",
5
5
  "dependencies": {
@@ -44,7 +44,7 @@
44
44
  "directory": "packages/ts-morph"
45
45
  },
46
46
  "type": "commonjs",
47
- "gitHead": "88bb83e5ae16a958b2618d657587390058b48a3f",
47
+ "gitHead": "0276631a9cfe70681ea9081a434744cf07e4ee6c",
48
48
  "main": "./src/index.js",
49
49
  "types": "./src/index.d.ts"
50
50
  }
package/src/index.d.ts CHANGED
@@ -37,6 +37,7 @@ export * from './lib/angular/coerce-component-import';
37
37
  export * from './lib/angular/coerce-component-input';
38
38
  export * from './lib/angular/coerce-component';
39
39
  export * from './lib/angular/coerce-layout-routes';
40
+ export * from './lib/angular/coerce-route-guard';
40
41
  export * from './lib/angular/coerce-routes';
41
42
  export * from './lib/angular/find-parent-route';
42
43
  export * from './lib/angular/get-component-class';
package/src/index.js CHANGED
@@ -43,6 +43,7 @@ tslib_1.__exportStar(require("./lib/angular/coerce-component-import"), exports);
43
43
  tslib_1.__exportStar(require("./lib/angular/coerce-component-input"), exports);
44
44
  tslib_1.__exportStar(require("./lib/angular/coerce-component"), exports);
45
45
  tslib_1.__exportStar(require("./lib/angular/coerce-layout-routes"), exports);
46
+ tslib_1.__exportStar(require("./lib/angular/coerce-route-guard"), exports);
46
47
  tslib_1.__exportStar(require("./lib/angular/coerce-routes"), exports);
47
48
  tslib_1.__exportStar(require("./lib/angular/find-parent-route"), exports);
48
49
  tslib_1.__exportStar(require("./lib/angular/get-component-class"), exports);
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/ts-morph/src/index.ts"],"names":[],"mappings":";;;AAAA,cAAc;AACd,yEAA+C;AAC/C,0EAAgD;AAChD,mFAAyD;AACzD,+EAAqD;AACrD,8EAAoD;AACpD,0EAAgD;AAChD,4EAAkD;AAClD,gFAAsD;AACtD,4EAAkD;AAClD,qFAA2D;AAC3D,sFAA4D;AAC5D,4EAAkD;AAClD,sFAA4D;AAC5D,iFAAuD;AACvD,mFAAyD;AACzD,+EAAqD;AACrD,iFAAuD;AACvD,wEAA8C;AAC9C,2EAAiD;AACjD,mFAAyD;AACzD,yFAA+D;AAC/D,kFAAwD;AACxD,0EAAgD;AAChD,8EAAoD;AACpD,2EAAiD;AACjD,0EAAgD;AAChD,0EAAgD;AAChD,4EAAkD;AAClD,iFAAuD;AACvD,mFAAyD;AACzD,YAAY;AAEZ,iBAAiB;AACjB,kEAAwC;AACxC,2EAAiD;AACjD,mFAAyD;AACzD,8EAAoD;AACpD,0EAAgD;AAChD,gFAAsD;AACtD,+EAAqD;AACrD,yEAA+C;AAC/C,6EAAmD;AACnD,sEAA4C;AAC5C,0EAAgD;AAChD,4EAAkD;AAClD,uFAA6D;AAC7D,YAAY;AAEZ,UAAU;AACV,sEAA4C;AAC5C,4EAAkD;AAClD,qEAA2C;AAC3C,yEAA+C;AAC/C,oEAA0C;AAC1C,sEAA4C;AAC5C,6DAAmC;AACnC,iEAAuC;AACvC,4EAAkD;AAClD,sEAA4C;AAC5C,4EAAkD;AAClD,+DAAqC;AACrC,4EAAkD;AAClD,4EAAkD;AAClD,mEAAyC;AACzC,kEAAwC;AACxC,4EAAkD;AAClD,+DAAqC;AACrC,8DAAoC;AACpC,8DAAoC;AACpC,8EAAoD;AACpD,0DAAgC;AAChC,6FAAmE;AACnE,0EAAgD;AAChD,2DAAiC;AACjC,gEAAsC;AACtC,kEAAwC;AACxC,4DAAkC;AAClC,iEAAuC;AACvC,2DAAiC;AACjC,YAAY"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/ts-morph/src/index.ts"],"names":[],"mappings":";;;AAAA,cAAc;AACd,yEAA+C;AAC/C,0EAAgD;AAChD,mFAAyD;AACzD,+EAAqD;AACrD,8EAAoD;AACpD,0EAAgD;AAChD,4EAAkD;AAClD,gFAAsD;AACtD,4EAAkD;AAClD,qFAA2D;AAC3D,sFAA4D;AAC5D,4EAAkD;AAClD,sFAA4D;AAC5D,iFAAuD;AACvD,mFAAyD;AACzD,+EAAqD;AACrD,iFAAuD;AACvD,wEAA8C;AAC9C,2EAAiD;AACjD,mFAAyD;AACzD,yFAA+D;AAC/D,kFAAwD;AACxD,0EAAgD;AAChD,8EAAoD;AACpD,2EAAiD;AACjD,0EAAgD;AAChD,0EAAgD;AAChD,4EAAkD;AAClD,iFAAuD;AACvD,mFAAyD;AACzD,YAAY;AAEZ,iBAAiB;AACjB,kEAAwC;AACxC,2EAAiD;AACjD,mFAAyD;AACzD,8EAAoD;AACpD,0EAAgD;AAChD,gFAAsD;AACtD,+EAAqD;AACrD,yEAA+C;AAC/C,6EAAmD;AACnD,2EAAiD;AACjD,sEAA4C;AAC5C,0EAAgD;AAChD,4EAAkD;AAClD,uFAA6D;AAC7D,YAAY;AAEZ,UAAU;AACV,sEAA4C;AAC5C,4EAAkD;AAClD,qEAA2C;AAC3C,yEAA+C;AAC/C,oEAA0C;AAC1C,sEAA4C;AAC5C,6DAAmC;AACnC,iEAAuC;AACvC,4EAAkD;AAClD,sEAA4C;AAC5C,4EAAkD;AAClD,+DAAqC;AACrC,4EAAkD;AAClD,4EAAkD;AAClD,mEAAyC;AACzC,kEAAwC;AACxC,4EAAkD;AAClD,+DAAqC;AACrC,8DAAoC;AACpC,8DAAoC;AACpC,8EAAoD;AACpD,0DAAgC;AAChC,6FAAmE;AACnE,0EAAgD;AAChD,2DAAiC;AACjC,gEAAsC;AACtC,kEAAwC;AACxC,4DAAkC;AAClC,iEAAuC;AACvC,2DAAiC;AACjC,YAAY"}
@@ -7,7 +7,7 @@ const build_route_object_1 = require("./build-route-object");
7
7
  const find_parent_route_1 = require("./find-parent-route");
8
8
  function DefaultInsertAtFactory(route) {
9
9
  return (array) => {
10
- var _a;
10
+ var _a, _b;
11
11
  const elementCount = array.getElements().length;
12
12
  if (route.path === '') {
13
13
  if (elementCount > 0) {
@@ -28,6 +28,14 @@ function DefaultInsertAtFactory(route) {
28
28
  if (!element.isKind(ts_morph_1.SyntaxKind.ObjectLiteralExpression)) {
29
29
  insertAt++;
30
30
  }
31
+ if (element.isKind(ts_morph_1.SyntaxKind.ObjectLiteralExpression)) {
32
+ if (((_b = element.asKindOrThrow(ts_morph_1.SyntaxKind.ObjectLiteralExpression).getProperty('path')) === null || _b === void 0 ? void 0 : _b.getText()) === '') {
33
+ insertAt++;
34
+ }
35
+ else {
36
+ break;
37
+ }
38
+ }
31
39
  else {
32
40
  break;
33
41
  }
@@ -42,7 +50,7 @@ function AddRoute(sourceFile, route, path, name = 'ROUTES', insertAt = DefaultIn
42
50
  if (routes) {
43
51
  let initializer = routes.getInitializerIfKindOrThrow(ts_morph_1.SyntaxKind.ArrayLiteralExpression);
44
52
  if (path === null || path === void 0 ? void 0 : path.length) {
45
- initializer = (0, find_parent_route_1.FindParentRoute)(initializer, path);
53
+ initializer = (0, find_parent_route_1.FindParentRouteChildrenArray)(initializer, path);
46
54
  }
47
55
  if (initializer) {
48
56
  (0, coerce_array_element_1.CoerceArrayElement)(initializer, (0, build_route_object_1.BuildRouteObject)(route), (0, coerce_array_element_1.FindArrayElementByObjectProperty)('path', route.path), insertAt);
@@ -1 +1 @@
1
- {"version":3,"file":"add-route.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/add-route.ts"],"names":[],"mappings":";;;AAAA,uCAIkB;AAClB,kEAGiC;AACjC,6DAG8B;AAC9B,2DAAsD;AAEtD,SAAgB,sBAAsB,CAAC,KAAmB;IACxD,OAAO,CAAC,KAA6B,EAAE,EAAE;;QACvC,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;QAChD,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE;YACrB,IAAI,YAAY,GAAG,CAAC,EAAE;gBACpB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAC1D,IAAI,WAAW,CAAC,MAAM,CAAC,qBAAU,CAAC,uBAAuB,CAAC,EAAE;oBAC1D,IAAI,MAAA,WAAW,CAAC,aAAa,CAAC,qBAAU,CAAC,uBAAuB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,0CAAE,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE;wBAC9G,OAAO,YAAY,GAAG,CAAC,CAAC;qBACzB;iBACF;aACF;YACD,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;SACvC;QACD,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,YAAY,GAAG,CAAC,EAAE;YACpB,gCAAgC;YAChC,2GAA2G;YAC3G,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;gBACzC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAU,CAAC,uBAAuB,CAAC,EAAE;oBACvD,QAAQ,EAAE,CAAC;iBACZ;qBAAM;oBACL,MAAM;iBACP;aACF;SACF;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC;AA5BD,wDA4BC;AAED,SAAgB,QAAQ,CAAC,UAAsB,EAAE,KAAmB,EAAE,IAAe,EAAE,IAAI,GAAG,QAAQ,EAAE,WAAsD,sBAAsB,CAAC,KAAK,CAAC;IACzL,MAAM,MAAM,GAAG,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,MAAM,EAAE;QACV,IAAI,WAAW,GAAkC,MAAM,CAAC,2BAA2B,CAAC,qBAAU,CAAC,sBAAsB,CAAC,CAAC;QACvH,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,EAAE;YAChB,WAAW,GAAG,IAAA,mCAAe,EAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SAClD;QACD,IAAI,WAAW,EAAE;YACf,IAAA,yCAAkB,EAChB,WAAW,EAAE,IAAA,qCAAgB,EAAC,KAAK,CAAC,EAAE,IAAA,uDAAgC,EAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;SACzG;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;SACvC;KACF;SAAM;QACL,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,qBAAqB,CAAC,CAAC;KAC5C;AACH,CAAC;AAhBD,4BAgBC"}
1
+ {"version":3,"file":"add-route.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/add-route.ts"],"names":[],"mappings":";;;AAAA,uCAIkB;AAClB,kEAGiC;AACjC,6DAG8B;AAC9B,2DAAmE;AAEnE,SAAgB,sBAAsB,CAAC,KAAmB;IACxD,OAAO,CAAC,KAA6B,EAAE,EAAE;;QACvC,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;QAChD,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE;YACrB,IAAI,YAAY,GAAG,CAAC,EAAE;gBACpB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAC1D,IAAI,WAAW,CAAC,MAAM,CAAC,qBAAU,CAAC,uBAAuB,CAAC,EAAE;oBAC1D,IAAI,MAAA,WAAW,CAAC,aAAa,CAAC,qBAAU,CAAC,uBAAuB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,0CAAE,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE;wBAC9G,OAAO,YAAY,GAAG,CAAC,CAAC;qBACzB;iBACF;aACF;YACD,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;SACvC;QACD,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,YAAY,GAAG,CAAC,EAAE;YACpB,gCAAgC;YAChC,2GAA2G;YAC3G,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;gBACzC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAU,CAAC,uBAAuB,CAAC,EAAE;oBACvD,QAAQ,EAAE,CAAC;iBACZ;gBAAC,IAAI,OAAO,CAAC,MAAM,CAAC,qBAAU,CAAC,uBAAuB,CAAC,EAAE;oBACxD,IAAI,CAAA,MAAA,OAAO,CAAC,aAAa,CAAC,qBAAU,CAAC,uBAAuB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,0CAAE,OAAO,EAAE,MAAK,EAAE,EAAE;wBACnG,QAAQ,EAAE,CAAC;qBACZ;yBAAM;wBACL,MAAM;qBACP;iBACF;qBAAM;oBACL,MAAM;iBACP;aACF;SACF;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC;AAlCD,wDAkCC;AAED,SAAgB,QAAQ,CAAC,UAAsB,EAAE,KAAmB,EAAE,IAAe,EAAE,IAAI,GAAG,QAAQ,EAAE,WAAsD,sBAAsB,CAAC,KAAK,CAAC;IACzL,MAAM,MAAM,GAAG,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,MAAM,EAAE;QACV,IAAI,WAAW,GAAkC,MAAM,CAAC,2BAA2B,CAAC,qBAAU,CAAC,sBAAsB,CAAC,CAAC;QACvH,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,EAAE;YAChB,WAAW,GAAG,IAAA,gDAA4B,EAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SAC/D;QACD,IAAI,WAAW,EAAE;YACf,IAAA,yCAAkB,EAChB,WAAW,EAAE,IAAA,qCAAgB,EAAC,KAAK,CAAC,EAAE,IAAA,uDAAgC,EAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;SACzG;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;SACvC;KACF;SAAM;QACL,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,qBAAqB,CAAC,CAAC;KAC5C;AACH,CAAC;AAhBD,4BAgBC"}
@@ -8,5 +8,6 @@ export interface AppNavigationItem {
8
8
  }
9
9
  export interface CoerceAppNavigationOptions {
10
10
  itemList?: AppNavigationItem[];
11
+ overwrite?: boolean;
11
12
  }
12
13
  export declare function CoerceAppNavigation(sourceFile: SourceFile, options?: CoerceAppNavigationOptions): void;
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CoerceAppNavigation = void 0;
4
+ const utilities_1 = require("@rxap/utilities");
4
5
  const ts_morph_1 = require("ts-morph");
5
6
  const coerce_imports_1 = require("../coerce-imports");
6
7
  const coerce_variable_declaration_1 = require("../coerce-variable-declaration");
7
8
  function CoerceAppNavigation(sourceFile, options = {}) {
8
- var _a;
9
+ var _a, _b, _c, _d;
9
10
  const variableDeclaration = (0, coerce_variable_declaration_1.CoerceVariableDeclaration)(sourceFile, 'APP_NAVIGATION', {
10
11
  type: '() => NavigationWithInserts',
11
12
  initializer: '() => []',
@@ -33,21 +34,61 @@ function CoerceAppNavigation(sourceFile, options = {}) {
33
34
  return (_a = e.getProperty('label')) === null || _a === void 0 ? void 0 : _a.asKindOrThrow(ts_morph_1.SyntaxKind.PropertyAssignment).getInitializerIfKindOrThrow(ts_morph_1.SyntaxKind.StringLiteral).getText().trim().replace(/['"]/g, '');
34
35
  });
35
36
  for (const item of (_a = options.itemList) !== null && _a !== void 0 ? _a : []) {
36
- if (!existingItemLabels.some(e => e === item.label)) {
37
- arrayLiteralExpression.addElement(ts_morph_1.Writers.object({
38
- routerLink: w => {
39
- w.write('[');
40
- for (let i = 0; i < item.routerLink.length; i++) {
41
- const link = item.routerLink[i];
42
- w.quote(link);
43
- if (i < item.routerLink.length - 1) {
44
- w.write(',');
45
- }
46
- }
47
- w.write(']');
48
- },
37
+ const existingItemIndex = existingItemLabels.findIndex(e => e === item.label);
38
+ const routerLink = w => {
39
+ w.write('[');
40
+ for (let i = 0; i < item.routerLink.length; i++) {
41
+ const link = item.routerLink[i];
42
+ w.quote(link);
43
+ if (i < item.routerLink.length - 1) {
44
+ w.write(',');
45
+ }
46
+ }
47
+ w.write(']');
48
+ };
49
+ let icon = null;
50
+ if (item.icon) {
51
+ const iconObj = {};
52
+ if (item.icon.color) {
53
+ iconObj['color'] = w => w.quote(item.icon.color);
54
+ }
55
+ if ((0, utilities_1.IsSvgIcon)(item.icon)) {
56
+ const name = item.icon.svgIcon;
57
+ iconObj['svgIcon'] = w => w.quote(name);
58
+ }
59
+ if ((0, utilities_1.IsMaterialIcon)(item.icon)) {
60
+ const name = item.icon.icon;
61
+ iconObj['icon'] = w => w.quote(name);
62
+ }
63
+ icon = ts_morph_1.Writers.object(iconObj);
64
+ }
65
+ if (existingItemIndex === -1) {
66
+ const obj = {
67
+ routerLink,
49
68
  label: w => w.quote(item.label),
50
- }));
69
+ };
70
+ if (icon) {
71
+ obj['icon'] = icon;
72
+ }
73
+ arrayLiteralExpression.addElement(ts_morph_1.Writers.object(obj));
74
+ }
75
+ else {
76
+ const existingItem = existingItems[existingItemIndex];
77
+ (_b = existingItem.getProperty('routerLink')) === null || _b === void 0 ? void 0 : _b.asKindOrThrow(ts_morph_1.SyntaxKind.PropertyAssignment).setInitializer(routerLink);
78
+ if (icon) {
79
+ if (!existingItem.getProperty('icon')) {
80
+ existingItem.addPropertyAssignment({
81
+ name: 'icon',
82
+ initializer: icon,
83
+ });
84
+ }
85
+ else if (options.overwrite) {
86
+ (_c = existingItem.getProperty('icon')) === null || _c === void 0 ? void 0 : _c.asKindOrThrow(ts_morph_1.SyntaxKind.PropertyAssignment).setInitializer(icon);
87
+ }
88
+ }
89
+ else if (options.overwrite) {
90
+ (_d = existingItem.getProperty('icon')) === null || _d === void 0 ? void 0 : _d.remove();
91
+ }
51
92
  }
52
93
  }
53
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"coerce-app-navigation.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/coerce-app-navigation.ts"],"names":[],"mappings":";;;AACA,uCAIkB;AAClB,sDAAkD;AAClD,gFAA2E;AAa3E,SAAgB,mBAAmB,CAAC,UAAsB,EAAE,UAAsC,EAAE;;IAElG,MAAM,mBAAmB,GAAG,IAAA,uDAAyB,EAAC,UAAU,EAAE,gBAAgB,EAAE;QAClF,IAAI,EAAE,6BAA6B;QACnC,WAAW,EAAE,UAAU;KACxB,CAAC,CAAC;IAEH,IAAA,uDAAyB,EAAC,UAAU,EAAE,yBAAyB,EAAE;QAC/D,WAAW,EAAE,kBAAO,CAAC,MAAM,CAAC;YAC1B,OAAO,EAAE,wBAAwB;YACjC,QAAQ,EAAE,gBAAgB;SAC3B,CAAC;KACH,CAAC,CAAC;IAEH,IAAA,8BAAa,EAAC,UAAU,EAAE;QACxB;YACE,YAAY,EAAE,CAAE,uBAAuB,EAAE,wBAAwB,CAAE;YACnE,eAAe,EAAE,cAAc;SAChC;KACF,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,mBAAmB,CAAC,2BAA2B,CAAC,qBAAU,CAAC,aAAa,CAAC,CAAC;IAChG,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,qBAAU,CAAC,sBAAsB,CAAC,CAAC;IACvF,MAAM,sBAAsB,GAAG,KAAK,CAAC,aAAa,CAAC,qBAAU,CAAC,sBAAsB,CAAC,CAAC;IACtF,MAAM,aAAa,GAAG,sBAAsB,CAAC,WAAW,EAAE;SACvD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,qBAAU,CAAC,uBAAuB,CAAC,CAAC;SACzD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,qBAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACjE,MAAM,kBAAkB,GAAG,aAAa,CAAC,GAAG,CAC1C,CAAC,CAAC,EAAE;;QAAC,OAAA,MAAA,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,0CAAE,aAAa,CAAC,qBAAU,CAAC,kBAAkB,EAAE,2BAA2B,CACnG,qBAAU,CAAC,aAAa,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;KAAA,CAAC,CAAC;IACrE,KAAK,MAAM,IAAI,IAAI,MAAA,OAAO,CAAC,QAAQ,mCAAI,EAAE,EAAE;QACzC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE;YACnD,sBAAsB,CAAC,UAAU,CAAC,kBAAO,CAAC,MAAM,CAAC;gBAC/C,UAAU,EAAE,CAAC,CAAC,EAAE;oBACd,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBAChC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACd,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;4BAClC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;yBACd;qBACF;oBACD,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;aAChC,CAAC,CAAC,CAAC;SACL;KAEF;AAEH,CAAC;AAlDD,kDAkDC"}
1
+ {"version":3,"file":"coerce-app-navigation.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/coerce-app-navigation.ts"],"names":[],"mappings":";;;AAAA,+CAIyB;AACzB,uCAKkB;AAClB,sDAAkD;AAClD,gFAA2E;AAc3E,SAAgB,mBAAmB,CAAC,UAAsB,EAAE,UAAsC,EAAE;;IAElG,MAAM,mBAAmB,GAAG,IAAA,uDAAyB,EAAC,UAAU,EAAE,gBAAgB,EAAE;QAClF,IAAI,EAAE,6BAA6B;QACnC,WAAW,EAAE,UAAU;KACxB,CAAC,CAAC;IAEH,IAAA,uDAAyB,EAAC,UAAU,EAAE,yBAAyB,EAAE;QAC/D,WAAW,EAAE,kBAAO,CAAC,MAAM,CAAC;YAC1B,OAAO,EAAE,wBAAwB;YACjC,QAAQ,EAAE,gBAAgB;SAC3B,CAAC;KACH,CAAC,CAAC;IAEH,IAAA,8BAAa,EAAC,UAAU,EAAE;QACxB;YACE,YAAY,EAAE,CAAE,uBAAuB,EAAE,wBAAwB,CAAE;YACnE,eAAe,EAAE,cAAc;SAChC;KACF,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,mBAAmB,CAAC,2BAA2B,CAAC,qBAAU,CAAC,aAAa,CAAC,CAAC;IAChG,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,qBAAU,CAAC,sBAAsB,CAAC,CAAC;IACvF,MAAM,sBAAsB,GAAG,KAAK,CAAC,aAAa,CAAC,qBAAU,CAAC,sBAAsB,CAAC,CAAC;IACtF,MAAM,aAAa,GAAG,sBAAsB,CAAC,WAAW,EAAE;SACvD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,qBAAU,CAAC,uBAAuB,CAAC,CAAC;SACzD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,qBAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACjE,MAAM,kBAAkB,GAAG,aAAa,CAAC,GAAG,CAC1C,CAAC,CAAC,EAAE;;QAAC,OAAA,MAAA,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,0CAAE,aAAa,CAAC,qBAAU,CAAC,kBAAkB,EAAE,2BAA2B,CACnG,qBAAU,CAAC,aAAa,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;KAAA,CAAC,CAAC;IACrE,KAAK,MAAM,IAAI,IAAI,MAAA,OAAO,CAAC,QAAQ,mCAAI,EAAE,EAAE;QACzC,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAmB,CAAC,CAAC,EAAE;YACrC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAChC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACd,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACd;aACF;YACD,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACf,CAAC,CAAC;QACF,IAAI,IAAI,GAA0B,IAAI,CAAC;QACvC,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,MAAM,OAAO,GAA4C,EAAE,CAAC;YAC5D,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACnB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAK,CAAC,KAAM,CAAC,CAAC;aACpD;YACD,IAAI,IAAA,qBAAS,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACxB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC/B,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACzC;YACD,IAAI,IAAA,0BAAc,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC5B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACtC;YACD,IAAI,GAAG,kBAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAChC;QACD,IAAI,iBAAiB,KAAK,CAAC,CAAC,EAAE;YAC5B,MAAM,GAAG,GAA4C;gBACnD,UAAU;gBACV,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;aAChC,CAAC;YACF,IAAI,IAAI,EAAE;gBACR,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;aACpB;YACD,sBAAsB,CAAC,UAAU,CAAC,kBAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SACxD;aAAM;YACL,MAAM,YAAY,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;YACtD,MAAA,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,0CAAE,aAAa,CAAC,qBAAU,CAAC,kBAAkB,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;YAChH,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;oBACrC,YAAY,CAAC,qBAAqB,CAAC;wBACjC,IAAI,EAAE,MAAM;wBACZ,WAAW,EAAE,IAAI;qBAClB,CAAC,CAAC;iBACJ;qBAAM,IAAI,OAAO,CAAC,SAAS,EAAE;oBAC5B,MAAA,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,0CAAE,aAAa,CAAC,qBAAU,CAAC,kBAAkB,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;iBACrG;aACF;iBAAM,IAAI,OAAO,CAAC,SAAS,EAAE;gBAC5B,MAAA,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,0CAAE,MAAM,EAAE,CAAC;aAC5C;SACF;KAEF;AAEH,CAAC;AAvFD,kDAuFC"}
@@ -0,0 +1,6 @@
1
+ import { SourceFile } from 'ts-morph';
2
+ export interface CoerceRouteGuardOptions {
3
+ routeArrayName?: string;
4
+ type?: 'canActivate' | 'canActivateChild';
5
+ }
6
+ export declare function CoerceRouteGuard(sourceFile: SourceFile, path: string[], guard: string, options?: CoerceRouteGuardOptions): void;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CoerceRouteGuard = void 0;
4
+ const ts_morph_1 = require("@rxap/ts-morph");
5
+ const ts_morph_2 = require("ts-morph");
6
+ function CoerceRouteGuard(sourceFile, path, guard, options = {}) {
7
+ var _a;
8
+ const { routeArrayName = 'ROUTES', type = 'canActivate' } = options;
9
+ const routes = sourceFile.getVariableDeclaration(routeArrayName);
10
+ if (routes) {
11
+ const initializer = (0, ts_morph_1.FindParentRoute)(routes.getInitializerIfKindOrThrow(ts_morph_2.SyntaxKind.ArrayLiteralExpression), path);
12
+ if (initializer) {
13
+ const guardArray = (_a = initializer.getProperty(type)) !== null && _a !== void 0 ? _a : initializer.addPropertyAssignment({
14
+ name: type,
15
+ initializer: '[]',
16
+ });
17
+ if (guardArray instanceof ts_morph_2.PropertyAssignment) {
18
+ const guardArrayInitializer = guardArray.getInitializerIfKindOrThrow(ts_morph_2.SyntaxKind.ArrayLiteralExpression);
19
+ (0, ts_morph_1.CoerceArrayElement)(guardArrayInitializer, guard);
20
+ }
21
+ else {
22
+ throw new Error('Guard array is not a PropertyAssignment');
23
+ }
24
+ }
25
+ else {
26
+ throw new Error('Initializer not found');
27
+ }
28
+ }
29
+ else {
30
+ throw new Error(`${routeArrayName} variable not found`);
31
+ }
32
+ }
33
+ exports.CoerceRouteGuard = CoerceRouteGuard;
34
+ //# sourceMappingURL=coerce-route-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce-route-guard.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/coerce-route-guard.ts"],"names":[],"mappings":";;;AAAA,6CAGwB;AACxB,uCAIkB;AAOlB,SAAgB,gBAAgB,CAAC,UAAsB,EAAE,IAAc,EAAE,KAAa,EAAE,UAAmC,EAAE;;IAC3H,MAAM,EAAE,cAAc,GAAG,QAAQ,EAAE,IAAI,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;IACpE,MAAM,MAAM,GAAG,UAAU,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;IACjE,IAAI,MAAM,EAAE;QACV,MAAM,WAAW,GAAG,IAAA,0BAAe,EAAC,MAAM,CAAC,2BAA2B,CAAC,qBAAU,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC,CAAC;QACjH,IAAI,WAAW,EAAE;YACf,MAAM,UAAU,GAAG,MAAA,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,mCAAI,WAAW,CAAC,qBAAqB,CAAC;gBACpF,IAAI,EAAE,IAAI;gBACV,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YACH,IAAI,UAAU,YAAY,6BAAkB,EAAE;gBAC5C,MAAM,qBAAqB,GAAG,UAAU,CAAC,2BAA2B,CAAC,qBAAU,CAAC,sBAAsB,CAAC,CAAC;gBACxG,IAAA,6BAAkB,EAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;aAClD;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;aAC5D;SACF;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;SAC1C;KACF;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,GAAG,cAAc,qBAAqB,CAAC,CAAC;KACzD;AACH,CAAC;AAtBD,4CAsBC"}
@@ -1,2 +1,4 @@
1
- import { ArrayLiteralExpression } from 'ts-morph';
2
- export declare function FindParentRoute(ale: ArrayLiteralExpression, path: string[]): ArrayLiteralExpression | null;
1
+ import { ArrayLiteralExpression, ObjectLiteralExpression } from 'ts-morph';
2
+ export declare function GetRouteChildrenArray(e: ObjectLiteralExpression): ArrayLiteralExpression;
3
+ export declare function FindParentRoute(ale: ArrayLiteralExpression, path: string[]): ObjectLiteralExpression | null;
4
+ export declare function FindParentRouteChildrenArray(ale: ArrayLiteralExpression, path: string[]): ArrayLiteralExpression | null;
@@ -1,35 +1,37 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FindParentRoute = void 0;
3
+ exports.FindParentRouteChildrenArray = exports.FindParentRoute = exports.GetRouteChildrenArray = void 0;
4
4
  const ts_morph_1 = require("ts-morph");
5
- function FindParentRoute(ale, path) {
5
+ function GetRouteChildrenArray(e) {
6
6
  var _a;
7
+ const childrenProperty = (_a = e.getProperty('children')) !== null && _a !== void 0 ? _a : e.addProperty({
8
+ name: 'children',
9
+ initializer: '[]',
10
+ kind: ts_morph_1.StructureKind.PropertyAssignment,
11
+ });
12
+ if (childrenProperty instanceof ts_morph_1.PropertyAssignment) {
13
+ return childrenProperty.getInitializerIfKindOrThrow(ts_morph_1.SyntaxKind.ArrayLiteralExpression);
14
+ }
15
+ throw new Error('Children property is not a PropertyAssignment');
16
+ }
17
+ exports.GetRouteChildrenArray = GetRouteChildrenArray;
18
+ function FindParentRoute(ale, path) {
19
+ const fragment = path.pop();
7
20
  for (const e of ale.getElements()) {
8
21
  if (e instanceof ts_morph_1.ObjectLiteralExpression) {
9
22
  const pathProperty = e.getProperty('path');
10
23
  if (pathProperty && pathProperty instanceof ts_morph_1.PropertyAssignment) {
11
24
  const initializer = pathProperty.getInitializerIfKind(ts_morph_1.SyntaxKind.StringLiteral);
12
25
  if (initializer) {
13
- const fragment = path.pop();
14
26
  if (initializer.getLiteralText() === fragment) {
15
- const childrenProperty = (_a = e.getProperty('children')) !== null && _a !== void 0 ? _a : e.addProperty({
16
- name: 'children',
17
- initializer: '[]',
18
- kind: ts_morph_1.StructureKind.PropertyAssignment,
19
- });
20
- if (childrenProperty instanceof ts_morph_1.PropertyAssignment) {
21
- const children = childrenProperty.getInitializerIfKindOrThrow(ts_morph_1.SyntaxKind.ArrayLiteralExpression);
22
- if (path.length) {
23
- // console.log('Continue search for parent route');
24
- return FindParentRoute(children, path);
25
- }
26
- else {
27
- // console.log('Found parent route');
28
- return children;
29
- }
27
+ if (path.length) {
28
+ const children = GetRouteChildrenArray(e);
29
+ // console.log('Continue search for parent route');
30
+ return FindParentRoute(children, path);
30
31
  }
31
32
  else {
32
- // console.log('Children property is not a PropertyAssignment');
33
+ // console.log('Found parent route');
34
+ return e;
33
35
  }
34
36
  }
35
37
  else {
@@ -51,4 +53,9 @@ function FindParentRoute(ale, path) {
51
53
  return null;
52
54
  }
53
55
  exports.FindParentRoute = FindParentRoute;
56
+ function FindParentRouteChildrenArray(ale, path) {
57
+ const parent = FindParentRoute(ale, path);
58
+ return parent ? GetRouteChildrenArray(parent) : null;
59
+ }
60
+ exports.FindParentRouteChildrenArray = FindParentRouteChildrenArray;
54
61
  //# sourceMappingURL=find-parent-route.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"find-parent-route.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/find-parent-route.ts"],"names":[],"mappings":";;;AAAA,uCAMkB;AAElB,SAAgB,eAAe,CAAC,GAA2B,EAAE,IAAc;;IACzE,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE;QACjC,IAAI,CAAC,YAAY,kCAAuB,EAAE;YACxC,MAAM,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,YAAY,IAAI,YAAY,YAAY,6BAAkB,EAAE;gBAC9D,MAAM,WAAW,GAAG,YAAY,CAAC,oBAAoB,CAAC,qBAAU,CAAC,aAAa,CAAC,CAAC;gBAChF,IAAI,WAAW,EAAE;oBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC5B,IAAI,WAAW,CAAC,cAAc,EAAE,KAAK,QAAQ,EAAE;wBAC7C,MAAM,gBAAgB,GAAG,MAAA,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,mCAAI,CAAC,CAAC,WAAW,CAAC;4BAClE,IAAI,EAAE,UAAU;4BAChB,WAAW,EAAE,IAAI;4BACjB,IAAI,EAAE,wBAAa,CAAC,kBAAkB;yBACvC,CAAC,CAAC;wBACH,IAAI,gBAAgB,YAAY,6BAAkB,EAAE;4BAClD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,2BAA2B,CAAC,qBAAU,CAAC,sBAAsB,CAAC,CAAC;4BACjG,IAAI,IAAI,CAAC,MAAM,EAAE;gCACf,mDAAmD;gCACnD,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;6BACxC;iCAAM;gCACL,qCAAqC;gCACrC,OAAO,QAAQ,CAAC;6BACjB;yBACF;6BAAM;4BACL,gEAAgE;yBACjE;qBACF;yBAAM;wBACL,uFAAuF;qBACxF;iBACF;qBAAM;oBACL,iEAAiE;iBAClE;aACF;iBAAM;gBACL,+CAA+C;aAChD;SACF;aAAM;YACL,4DAA4D;SAC7D;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAxCD,0CAwCC"}
1
+ {"version":3,"file":"find-parent-route.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/find-parent-route.ts"],"names":[],"mappings":";;;AAAA,uCAMkB;AAElB,SAAgB,qBAAqB,CAAC,CAA0B;;IAC9D,MAAM,gBAAgB,GAAG,MAAA,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,mCAAI,CAAC,CAAC,WAAW,CAAC;QAClE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,wBAAa,CAAC,kBAAkB;KACvC,CAAC,CAAC;IACH,IAAI,gBAAgB,YAAY,6BAAkB,EAAE;QAClD,OAAO,gBAAgB,CAAC,2BAA2B,CAAC,qBAAU,CAAC,sBAAsB,CAAC,CAAC;KACxF;IACD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;AACnE,CAAC;AAVD,sDAUC;AAED,SAAgB,eAAe,CAAC,GAA2B,EAAE,IAAc;IACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE;QACjC,IAAI,CAAC,YAAY,kCAAuB,EAAE;YACxC,MAAM,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,YAAY,IAAI,YAAY,YAAY,6BAAkB,EAAE;gBAC9D,MAAM,WAAW,GAAG,YAAY,CAAC,oBAAoB,CAAC,qBAAU,CAAC,aAAa,CAAC,CAAC;gBAChF,IAAI,WAAW,EAAE;oBACf,IAAI,WAAW,CAAC,cAAc,EAAE,KAAK,QAAQ,EAAE;wBAC7C,IAAI,IAAI,CAAC,MAAM,EAAE;4BACf,MAAM,QAAQ,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;4BAC1C,mDAAmD;4BACnD,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;yBACxC;6BAAM;4BACL,qCAAqC;4BACrC,OAAO,CAAC,CAAC;yBACV;qBACF;yBAAM;wBACL,uFAAuF;qBACxF;iBACF;qBAAM;oBACL,iEAAiE;iBAClE;aACF;iBAAM;gBACL,+CAA+C;aAChD;SACF;aAAM;YACL,4DAA4D;SAC7D;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AA/BD,0CA+BC;AAED,SAAgB,4BAA4B,CAAC,GAA2B,EAAE,IAAc;IACtF,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC;AAHD,oEAGC"}