@coolon/angular-ui-powerups 0.0.27 → 0.0.29

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.
Files changed (36) hide show
  1. package/bundles/coolon-angular-ui-powerups.umd.js +99 -83
  2. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  3. package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
  4. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  5. package/coolon-angular-ui-powerups.metadata.json +1 -1
  6. package/esm2015/lib/place/abstract-place-component.js +1 -10
  7. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +8 -3
  8. package/esm2015/lib/place/place-component.js +1 -3
  9. package/esm2015/lib/place/place.decorator.js +17 -6
  10. package/esm2015/lib/place/place.module.js +4 -2
  11. package/esm2015/lib/place/route/parameter-decorators.js +5 -1
  12. package/esm5/lib/place/abstract-place-component.js +1 -10
  13. package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +8 -3
  14. package/esm5/lib/place/place-component.js +1 -3
  15. package/esm5/lib/place/place.decorator.js +23 -6
  16. package/esm5/lib/place/place.module.js +4 -2
  17. package/esm5/lib/place/route/parameter-decorators.js +5 -1
  18. package/fesm2015/coolon-angular-ui-powerups.js +95 -84
  19. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  20. package/fesm5/coolon-angular-ui-powerups.js +98 -81
  21. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  22. package/lib/place/abstract-place-component.d.ts +0 -2
  23. package/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.d.ts +4 -3
  24. package/lib/place/place-component.d.ts +0 -2
  25. package/lib/place/place.decorator.d.ts +7 -2
  26. package/lib/place/route/parameter-decorators.d.ts +2 -0
  27. package/package.json +1 -1
  28. package/schematics/place-routes/index.js +19 -13
  29. package/schematics/place-routes/index.js.map +1 -1
  30. package/schematics/place-routes/place-def.d.ts +8 -5
  31. package/schematics/place-routes/place-def.js +41 -17
  32. package/schematics/place-routes/place-def.js.map +1 -1
  33. package/schematics/place-routes/scanner.d.ts +14 -2
  34. package/schematics/place-routes/scanner.js +58 -13
  35. package/schematics/place-routes/scanner.js.map +1 -1
  36. package/schematics/place-routes/templates/{services/place-router.service.ts.template → place-router.ts.template} +13 -18
@@ -2,12 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const core_1 = require("@angular-devkit/core");
4
4
  const schematics_1 = require("@angular-devkit/schematics");
5
+ const pectin_1 = require("@coolon/pectin");
5
6
  const JSON5 = require("json5");
6
7
  const ts_morph_1 = require("ts-morph");
7
8
  const place_def_1 = require("./place-def");
8
- const PLACE_ANNOTATION = /@Place\({([^})]*)}\)/m;
9
+ const PLACE_ANNOTATION = /@Place\({([^}\))]*)}\)/m;
9
10
  function generateRoutes(options) {
10
11
  return (tree, context) => {
12
+ pectin_1.Logger.logTo({
13
+ on(log) {
14
+ context.logger.info(log.message);
15
+ }
16
+ });
11
17
  const workspaceConfig = tree.read('/angular.json');
12
18
  if (!workspaceConfig) {
13
19
  throw new Error('Could not find Angular workspace configuration');
@@ -88,7 +94,7 @@ function extractPlaces(project, schema, tree, context) {
88
94
  const placeDefs = [];
89
95
  context.logger.info(`Scanning sources in -> ${sourceRoot}`);
90
96
  tree.getDir(sourceRoot).visit(filePath => {
91
- if (!filePath.endsWith('.ts')) {
97
+ if (!filePath.endsWith('.ts') || filePath.endsWith(".spec.ts")) {
92
98
  return;
93
99
  }
94
100
  const content = tree.read(filePath);
@@ -96,18 +102,18 @@ function extractPlaces(project, schema, tree, context) {
96
102
  return;
97
103
  }
98
104
  const sourceText = content.toString('utf-8');
99
- if (sourceText.match(PLACE_ANNOTATION)) {
100
- const sourceFile = tsProject.getSourceFileOrThrow(`./${filePath}`);
101
- sourceFile.getClasses().forEach((classDecl) => {
102
- place_def_1.PlaceDef.scan(classDecl, context).onMatch(result => {
103
- // context.logger.info(`filePath=${filePath}`);
104
- const moduleImportPath = `./${filePath.substr(importPrefix.length, filePath.length - importPrefix.length - '.ts'.length)}`;
105
- const definition = result.createDefinition(moduleImportPath);
106
- context.logger.info(`${moduleImportPath} -> ${classDecl.getName()}(route: /${definition.fullPath})`);
107
- placeDefs.push(definition);
108
- });
105
+ // if (sourceText.match(PLACE_ANNOTATION)) {
106
+ const sourceFile = tsProject.getSourceFileOrThrow(`./${filePath}`);
107
+ sourceFile.getClasses().forEach((classDecl) => {
108
+ place_def_1.PlaceDef.scan(classDecl, context).onMatch(result => {
109
+ // context.logger.info(`filePath=${filePath}`);
110
+ const moduleImportPath = `./${filePath.substr(importPrefix.length, filePath.length - importPrefix.length - '.ts'.length)}`;
111
+ const definition = result.createDefinition(moduleImportPath);
112
+ context.logger.info(`${moduleImportPath} -> ${classDecl.getName()}(route: /${definition.fullPath})`);
113
+ placeDefs.push(definition);
109
114
  });
110
- }
115
+ });
116
+ // }
111
117
  });
112
118
  return placeDefs;
113
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/angular-ui-powerups/schematics/place-routes/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/angular-ui-powerups/schematics/place-routes/index.ts"],"names":[],"mappings":";;AAAA,+CAA6D;AAC7D,2DAWoC;AACpC,2CAAwC;AACxC,+BAA+B;AAC/B,uCAAqD;AACrD,2CAAuC;AAGvC,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AAEnD,SAAgB,cAAc,CAAC,OAAe;IAE5C,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAE/C,eAAM,CAAC,KAAK,CAAC;YACX,EAAE,CAAC,GAAiB;gBAClB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;SACF,CAAC,CAAC;QAGH,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACnD,IAAI,CAAC,eAAe,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;SACnE;QAED,8BAA8B;QAC9B,MAAM,gBAAgB,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC;QAEpD,0CAA0C;QAC1C,MAAM,SAAS,GAA2C,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAEvF,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC;SAC5C;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,OAAiB,CAAC;QAC9C,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAE1E,MAAM,KAAK,GAAG,kBAAK,CACjB,gBAAG,CAAC,aAAa,CAAC,EAClB;YACE,2BAAc,mBACT,OAAO,IACV,SAAS;gBACT,MAAM,IACH,cAAO,EACV;YACF,iBAAI,CAAC,GAAG,OAAO,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC;YAC5C,kFAAkF;YAClF,oBAAO,CAAC,CAAC,SAAoB,EAAE,EAAE;gBAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAC/B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;iBACnD;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;SACH,CAAC,CAAC;QAEL,OAAO,sBAAS,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;AAEJ,CAAC;AAtDD,wCAsDC;AAGD,qEAAqE;AACrE,yDAAyD;AACzD,8BAA8B;AAC9B,wBAAwB;AACxB,oBAAoB;AACpB,mCAAmC;AACnC,+CAA+C;AAC/C,iEAAiE;AACjE,2BAA2B;AAC3B,cAAc;AACd,8BAA8B;AAC9B,aAAa;AACb,WAAW;AACX,SAAS;AACT,EAAE;AACF,mCAAmC;AACnC,OAAO;AACP,IAAI;AAEJ,SAAS,aAAa,CAAC,OAAY,EAAE,OAAyB;IAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC9D,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;IAChE,IAAI;QACF,OAAO,IAAI,kBAAO,CAAC;YACjB,gBAAgB,EAAE,KAAK,YAAY,EAAE;SACtC,CAAC,CAAC;KACJ;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,OAAO,CAAC,IAAI,qDAAqD,CAAC,CAAC;KACpI;AACH,CAAC;AAED,SAAS,UAAU,CAAC,OAAY,EAAE,IAAU,EAAE,OAAyB;IACrE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,OAAO,CAAC,IAAI,gCAAgC,CAAC,CAAC;IACnG,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,eAAe,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,eAAe,CAAC,CAAC;IACvG,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,CAAC,IAAI,qBAAqB,OAAO,CAAC,IAAI,gBAAgB,CAAC,CAAC;KAClH;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,OAAY,EAAE,MAAc,EAAE,IAAU,EAAE,OAAyB;IACxF,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1E,MAAM,WAAW,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC;IAC1D,MAAM,YAAY,GAAG,KAAK,UAAU,EAAE,CAAC;IACvC,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;QACvC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YAC9D,OAAO;SACR;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QACD,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE7C,4CAA4C;QAE1C,MAAM,UAAU,GAAG,SAAS,CAAC,oBAAoB,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAEnE,UAAU,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,SAA2B,EAAE,EAAE;YAE9D,oBAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACjD,+CAA+C;gBAC/C,MAAM,gBAAgB,GAAG,KAAK,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3H,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;gBAC7D,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,OAAO,SAAS,CAAC,OAAO,EAAE,YAAY,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACL,IAAI;IACN,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -6,29 +6,32 @@ export declare class PlaceDef {
6
6
  readonly componentClass: string;
7
7
  readonly properties: PlaceDef.Options;
8
8
  readonly routeDef: PlaceDef.Parameter;
9
- readonly queryParameters: PlaceDef.Parameter[];
10
- constructor(importPath: string, componentClass: string, properties: PlaceDef.Options, routeDef: PlaceDef.Parameter, queryParameters: PlaceDef.Parameter[]);
9
+ readonly routeParameters: PlaceDef.Parameter[];
10
+ constructor(importPath: string, componentClass: string, properties: PlaceDef.Options, routeDef: PlaceDef.Parameter, routeParameters: PlaceDef.Parameter[]);
11
11
  readonly path: string;
12
- readonly routeIdentifier: string;
12
+ readonly routeIdentifier: PlaceDef.Parameter;
13
13
  readonly fullPath: string;
14
+ getPlaceRouterGoArgs(): string;
15
+ getPlaceRouterGoRouteParams(): string;
14
16
  readonly placeName: string;
15
17
  readonly order: number;
16
18
  readonly activateGuardNames: string[];
17
19
  private requiresRouteGuard;
18
20
  readonly routeModelName: string;
19
21
  readonly authenticate: boolean;
20
- stripEnclosingQuotes(value: string): string;
21
22
  }
22
23
  export declare namespace PlaceDef {
23
24
  interface Options {
24
- title: string;
25
25
  path: string;
26
26
  order: number;
27
+ data: object;
27
28
  authenticate: string;
28
29
  }
29
30
  interface Parameter {
30
31
  parameterName: string;
31
32
  modelName: string;
33
+ typeName: string;
32
34
  }
33
35
  function scan(classDecl: ClassDeclaration, context: SchematicContext): Scanner;
36
+ function stripEnclosingQuotes(value: string): string;
34
37
  }
@@ -9,27 +9,53 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  const src_1 = require("@typescript-plus/fast-memoize-decorator/dist/src");
10
10
  const scanner_1 = require("./scanner");
11
11
  class PlaceDef {
12
- constructor(importPath, componentClass, properties, routeDef, queryParameters) {
12
+ constructor(importPath, componentClass, properties, routeDef, routeParameters) {
13
13
  this.importPath = importPath;
14
14
  this.componentClass = componentClass;
15
15
  this.properties = properties;
16
16
  this.routeDef = routeDef;
17
- this.queryParameters = queryParameters;
18
- // console.log({ properties, routeDef });
17
+ this.routeParameters = routeParameters;
19
18
  }
20
19
  get path() {
21
- return this.stripEnclosingQuotes(this.properties.path);
20
+ return PlaceDef.stripEnclosingQuotes(this.properties.path);
22
21
  }
23
22
  get routeIdentifier() {
24
- return this.routeDef ? this.stripEnclosingQuotes(this.routeDef.parameterName) : null;
23
+ return this.routeDef;
25
24
  }
26
25
  get fullPath() {
27
26
  return !!this.routeIdentifier ?
28
- `${this.path}/:${this.routeIdentifier}` :
27
+ `${this.path}/:${this.routeIdentifier.parameterName}` :
29
28
  this.path;
30
29
  }
30
+ getPlaceRouterGoArgs() {
31
+ const bits = [];
32
+ if (this.routeIdentifier) {
33
+ bits.push(`${this.routeIdentifier.modelName}:${this.routeIdentifier.typeName}`);
34
+ }
35
+ if (this.routeParameters && this.routeParameters.length > 0) {
36
+ const properties = this.routeParameters.map(p => `${p.parameterName}?: ${p.typeName}`);
37
+ bits.push(`routeParameters?: { ${properties.join(', ')} }`);
38
+ }
39
+ return bits.join(', ');
40
+ }
41
+ getPlaceRouterGoRouteParams() {
42
+ const bits = [`"${this.path}"`];
43
+ if (this.routeIdentifier) {
44
+ bits.push(`${this.routeIdentifier.modelName}`);
45
+ }
46
+ if (this.routeParameters && this.routeParameters.length > 0) {
47
+ const mandatory = bits.join(', ');
48
+ bits.push(`routeParameters`);
49
+ const all = bits.join(', ');
50
+ return `routeParameters ? [${all}] : [${mandatory}]`;
51
+ }
52
+ else {
53
+ return `[${bits.join(', ')}]`;
54
+ }
55
+ }
31
56
  get placeName() {
32
- return this.componentClass.replace(/Component$/, "");
57
+ const s = this.componentClass.replace(/Component$/, 'Place');
58
+ return s.charAt(0).toLowerCase() + s.slice(1);
33
59
  }
34
60
  get order() {
35
61
  return this.properties.order;
@@ -45,26 +71,18 @@ class PlaceDef {
45
71
  return activateGuards;
46
72
  }
47
73
  requiresRouteGuard() {
48
- return this.routeIdentifier || this.queryParameters.length > 0;
74
+ return this.routeIdentifier || this.routeParameters.length > 0;
49
75
  }
50
76
  get routeModelName() {
51
- return this.routeDef ? this.stripEnclosingQuotes(this.routeDef.modelName) : null;
77
+ return this.routeDef ? this.routeDef.modelName : null;
52
78
  }
53
79
  get authenticate() {
54
80
  return this.properties.authenticate === 'true';
55
81
  }
56
- stripEnclosingQuotes(value) {
57
- const cooked = value.replace(/(^["'])|(["']$)/g, '');
58
- // console.log({ raw: value, cooked: cooked });
59
- return cooked;
60
- }
61
82
  }
62
83
  __decorate([
63
84
  src_1.Memoize()
64
85
  ], PlaceDef.prototype, "path", null);
65
- __decorate([
66
- src_1.Memoize()
67
- ], PlaceDef.prototype, "routeIdentifier", null);
68
86
  __decorate([
69
87
  src_1.Memoize()
70
88
  ], PlaceDef.prototype, "placeName", null);
@@ -80,5 +98,11 @@ exports.PlaceDef = PlaceDef;
80
98
  return new scanner_1.Scanner(classDecl, context);
81
99
  }
82
100
  PlaceDef.scan = scan;
101
+ function stripEnclosingQuotes(value) {
102
+ const cooked = value.replace(/(^["'])|(["']$)/g, '');
103
+ // console.log({ raw: value, cooked: cooked });
104
+ return cooked;
105
+ }
106
+ PlaceDef.stripEnclosingQuotes = stripEnclosingQuotes;
83
107
  })(PlaceDef = exports.PlaceDef || (exports.PlaceDef = {}));
84
108
  //# sourceMappingURL=place-def.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"place-def.js","sourceRoot":"","sources":["../../../../../libs/angular-ui-powerups/schematics/place-routes/place-def.ts"],"names":[],"mappings":";;;;;;;;AACA,0EAA2E;AAE3E,uCAAoC;AAEpC,MAAa,QAAQ;IAGnB,YACW,UAAkB,EAClB,cAAsB,EACtB,UAA4B,EAC5B,QAA4B,EAC5B,eAAqC;QAJrC,eAAU,GAAV,UAAU,CAAQ;QAClB,mBAAc,GAAd,cAAc,CAAQ;QACtB,eAAU,GAAV,UAAU,CAAkB;QAC5B,aAAQ,GAAR,QAAQ,CAAoB;QAC5B,oBAAe,GAAf,eAAe,CAAsB;QAE9C,yCAAyC;IAC3C,CAAC;IAGD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAGD,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvF,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7B,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC;IACd,CAAC;IAGD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAA;IAC9B,CAAC;IAGD,IAAI,kBAAkB;QACpB,MAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAClC;QACD,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;YAC7B,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACxC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,kBAAkB;QACxB,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;IACjE,CAAC;IAGD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnF,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,KAAK,MAAM,CAAC;IACjD,CAAC;IAED,oBAAoB,CAAC,KAAa;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACrD,+CAA+C;QAC/C,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAtDC;IADC,aAAO,EAAE;oCAGT;AAGD;IADC,aAAO,EAAE;+CAGT;AASD;IADC,aAAO,EAAE;yCAGT;AAOD;IADC,aAAO,EAAE;kDAUT;AAOD;IADC,aAAO,EAAE;8CAGT;AAzDH,4BAoEC;AAED,WAAiB,QAAQ;IAcvB,SAAgB,IAAI,CAAC,SAA2B,EAAE,OAAyB;QACzE,OAAO,IAAI,iBAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAFe,aAAI,OAEnB,CAAA;AACH,CAAC,EAjBgB,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAiBxB"}
1
+ {"version":3,"file":"place-def.js","sourceRoot":"","sources":["../../../../../libs/angular-ui-powerups/schematics/place-routes/place-def.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,10 @@ export declare class Scanner {
10
10
  onMatch(callback: (scan: Scanner) => void): void;
11
11
  createDefinition(moduleImportPath: string): PlaceDef;
12
12
  protected getPlaceOptions(): PlaceDef.Options;
13
- protected getRouteIdParameter(): PlaceDef.Parameter;
14
- protected getQueryParameters(): PlaceDef.Parameter[];
13
+ protected getRouteIdParameter(): Scanner.RouteParameterInfo;
14
+ protected getRouteParameters(): PlaceDef.Parameter[];
15
+ private getValueModelRouteProperties;
16
+ private getListModelRouteProperties;
15
17
  protected getDecoratedProperties(annotation: string): {
16
18
  decorator: Decorator;
17
19
  property: PropertyDeclaration;
@@ -23,4 +25,14 @@ export declare namespace Scanner {
23
25
  position: number;
24
26
  required: boolean;
25
27
  }): T;
28
+ class RouteParameterInfo implements PlaceDef.Parameter {
29
+ private readonly as;
30
+ readonly property: PropertyDeclaration;
31
+ readonly isArray: boolean;
32
+ readonly baseTypeName: string;
33
+ constructor(as: string, property: PropertyDeclaration);
34
+ readonly parameterName: string;
35
+ readonly modelName: string;
36
+ readonly typeName: string;
37
+ }
26
38
  }
@@ -1,10 +1,18 @@
1
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
+ };
2
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
+ const src_1 = require("@typescript-plus/fast-memoize-decorator/dist/src");
3
10
  const ts_morph_1 = require("ts-morph");
4
11
  const place_def_1 = require("./place-def");
5
12
  function isDecoratorNode(node, name) {
6
13
  return node.getKind() === ts_morph_1.SyntaxKind.Decorator && node.getText().startsWith(`${name}(`); // NOTE: I'm only supporting the @Decorator(...) style of usage (i.e. decorator factories).
7
14
  }
15
+ const ROUTE_PROPERTY_REGEX = /.*(ListModel|ValueModel)<(.*)>/;
8
16
  class Scanner {
9
17
  constructor(classDecl, context) {
10
18
  this.classDecl = classDecl;
@@ -27,7 +35,7 @@ class Scanner {
27
35
  }
28
36
  createDefinition(moduleImportPath) {
29
37
  this.getRouteIdParameter();
30
- return new place_def_1.PlaceDef(moduleImportPath, this.classDecl.getName(), this.getPlaceOptions(), this.getRouteIdParameter(), this.getQueryParameters());
38
+ return new place_def_1.PlaceDef(moduleImportPath, this.classDecl.getName(), this.getPlaceOptions(), this.getRouteIdParameter(), this.getRouteParameters());
31
39
  }
32
40
  getPlaceOptions() {
33
41
  // const args = this.placeAnnotation.getArguments();
@@ -38,6 +46,7 @@ class Scanner {
38
46
  title: '',
39
47
  path: '',
40
48
  order: -1,
49
+ data: null,
41
50
  authenticate: 'true'
42
51
  }, {
43
52
  position: 0,
@@ -48,31 +57,38 @@ class Scanner {
48
57
  const routeProperties = this.getDecoratedProperties('@RouteId');
49
58
  if (routeProperties.length === 1) {
50
59
  const route = routeProperties[0];
51
- const routeOptions = Scanner.getOptionsArg(route.decorator, { as: 'id' }, {
60
+ const routeOptions = Scanner.getOptionsArg(route.decorator, { as: '' }, {
52
61
  position: 1,
53
62
  required: false
54
63
  });
55
- return {
56
- modelName: route.property.getName(),
57
- parameterName: routeOptions.as
58
- };
64
+ return new Scanner.RouteParameterInfo(routeOptions.as, route.property);
59
65
  }
60
66
  else if (routeProperties.length > 1) {
61
67
  this.context.logger.error(`There an only be one @RouteId(), got ${routeProperties.length}`);
62
68
  }
63
69
  return null;
64
70
  }
65
- getQueryParameters() {
66
- return this.getDecoratedProperties('@QueryParameter')
71
+ getRouteParameters() {
72
+ return this.getValueModelRouteProperties().concat(this.getListModelRouteProperties());
73
+ }
74
+ getValueModelRouteProperties() {
75
+ return this.getDecoratedProperties('@RouteParameter')
76
+ .map(p => {
77
+ const routeOptions = Scanner.getOptionsArg(p.decorator, { as: p.property.getName() }, {
78
+ position: 1,
79
+ required: false
80
+ });
81
+ return new Scanner.RouteParameterInfo(routeOptions.as, p.property);
82
+ });
83
+ }
84
+ getListModelRouteProperties() {
85
+ return this.getDecoratedProperties('@RouteParameterList')
67
86
  .map(p => {
68
- const options = Scanner.getOptionsArg(p.decorator, { as: p.property.getName() }, {
87
+ const routeOptions = Scanner.getOptionsArg(p.decorator, { as: p.property.getName() }, {
69
88
  position: 1,
70
89
  required: false
71
90
  });
72
- return {
73
- modelName: p.property.getName(),
74
- parameterName: options.as
75
- };
91
+ return new Scanner.RouteParameterInfo(routeOptions.as, p.property);
76
92
  });
77
93
  }
78
94
  getDecoratedProperties(annotation) {
@@ -121,5 +137,34 @@ exports.Scanner = Scanner;
121
137
  }
122
138
  }
123
139
  Scanner.getOptionsArg = getOptionsArg;
140
+ class RouteParameterInfo {
141
+ constructor(as, property) {
142
+ this.as = as;
143
+ this.property = property;
144
+ const type = property.getStructure().type;
145
+ const match = ROUTE_PROPERTY_REGEX.exec(type);
146
+ if (!match) {
147
+ throw new Error(`expected ${property.getName()} to be a ListModel or ValueModel, got: ${type}`);
148
+ }
149
+ this.isArray = match[1] === 'ListModel';
150
+ this.baseTypeName = match[2];
151
+ }
152
+ get parameterName() {
153
+ return this.as.length > 0 ? place_def_1.PlaceDef.stripEnclosingQuotes(this.as) : this.modelName;
154
+ }
155
+ get modelName() {
156
+ return place_def_1.PlaceDef.stripEnclosingQuotes(this.property.getName());
157
+ }
158
+ get typeName() {
159
+ return this.isArray ? `${this.baseTypeName}[]` : this.baseTypeName;
160
+ }
161
+ }
162
+ __decorate([
163
+ src_1.Memoize()
164
+ ], RouteParameterInfo.prototype, "parameterName", null);
165
+ __decorate([
166
+ src_1.Memoize()
167
+ ], RouteParameterInfo.prototype, "modelName", null);
168
+ Scanner.RouteParameterInfo = RouteParameterInfo;
124
169
  })(Scanner = exports.Scanner || (exports.Scanner = {}));
125
170
  //# sourceMappingURL=scanner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../../../../libs/angular-ui-powerups/schematics/place-routes/scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../../../../libs/angular-ui-powerups/schematics/place-routes/scanner.ts"],"names":[],"mappings":";;;;;;;;AAEA,0EAA2E;AAC3E,uCAQkB;AAClB,2CAAuC;AAEvC,SAAS,eAAe,CAAC,IAAU,EAAE,IAAY;IAC/C,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,qBAAU,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,2FAA2F;AACtL,CAAC;AAED,MAAM,oBAAoB,GAAG,gCAAgC,CAAC;AAE9D,MAAa,OAAO;IAIlB,YAA6B,SAA2B,EAAW,OAAyB;QAA/D,cAAS,GAAT,SAAS,CAAkB;QAAW,YAAO,GAAP,OAAO,CAAkB;QAC1F,SAAS,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,IAAI,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;gBACnC,IAAI,CAAC,eAAe,GAAG,IAAiB,CAAC;gBACzC,sDAAsD;gBACtD,OAAO,IAAI,CAAC;aACb;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,QAAiC;QACvC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB,QAAQ,CAAC,IAAI,CAAC,CAAC;SAChB;IACH,CAAC;IAED,gBAAgB,CAAC,gBAAwB;QACvC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,OAAO,IAAI,oBAAQ,CAAC,gBAAgB,EAClC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EACxB,IAAI,CAAC,eAAe,EAAE,EACtB,IAAI,CAAC,mBAAmB,EAAE,EAC1B,IAAI,CAAC,kBAAkB,EAAE,CAC1B,CAAC;IACJ,CAAC;IAES,eAAe;QACvB,oDAAoD;QACpD,2BAA2B;QAC3B,4EAA4E;QAC5E,IAAI;QACJ,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE;YACjD,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,CAAC,CAAC;YACT,IAAI,EAAE,IAAI;YACV,YAAY,EAAE,MAAM;SACrB,EAAE;YACD,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAES,mBAAmB;QAC3B,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAChE,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;gBACtE,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;YACH,OAAO,IAAI,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;SACxE;aAAM,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;SAC7F;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAES,kBAAkB;QAC1B,OAAO,IAAI,CAAC,4BAA4B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACxF,CAAC;IAEO,4BAA4B;QAClC,OAAO,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC;aAClD,GAAG,CAAC,CAAC,CAAC,EAAE;YACP,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE;gBACpF,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;YACH,OAAO,IAAI,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,2BAA2B;QACjC,OAAO,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,CAAC;aACtD,GAAG,CAAC,CAAC,CAAC,EAAE;YACP,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE;gBACpF,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;YACH,OAAO,IAAI,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACP,CAAC;IAES,sBAAsB,CAAC,UAAkB;QACjD,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC5C,IAAI,MAAM,GAA4D,IAAI,CAAC;YAC3E,CAAC,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvB,IAAI,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;oBACtC,MAAM,GAAG;wBACP,SAAS,EAAE,KAAK;wBAChB,QAAQ,EAAE,CAAC;qBACZ,CAAC;oBACF,iBAAiB;oBACjB,OAAO,IAAI,CAAC;iBACb;YACH,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;CAEF;AA7GD,0BA6GC;AAED,WAAiB,OAAO;IAEtB,SAAgB,wBAAwB,CAAC,UAAqB,EAAE,QAAgB;QAC9E,MAAM,IAAI,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,kCAAuB,EAAE;YAC/E,OAAO,IAAI,CAAC,QAAQ,CAA4B,CAAC;SAClD;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IANe,gCAAwB,2BAMvC,CAAA;IAED,SAAgB,aAAa,CAAe,UAAqB,EAAE,QAAW,EAAE,UAAmD;QACjI,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,IAAI;KACf;QACC,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrF,IAAI,CAAC,qBAAqB,EAAE;YAC1B,IAAI,OAAO,CAAC,QAAQ,EAAE;gBACpB,OAAO,CAAC,KAAK,CAAC,2CAA2C,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC;aAC1G;YACD,OAAO,QAAQ,CAAC;SACjB;aAAM;YACL,OAAO,qBAAqB,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAChE,MAAM,SAAS,GAAG,CAAC,CAAC,YAAY,EAAiC,CAAC;gBAClE,yBAAY,MAAM,IAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,WAAqB,IAAG;YAC1E,CAAC,oBAAO,QAAQ,EAAG,CAAC;SACrB;IACH,CAAC;IAhBe,qBAAa,gBAgB5B,CAAA;IAED,MAAa,kBAAkB;QAK7B,YAA6B,EAAU,EAAW,QAA6B;YAAlD,OAAE,GAAF,EAAE,CAAQ;YAAW,aAAQ,GAAR,QAAQ,CAAqB;YAC7E,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAc,CAAC;YACpD,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,EAAE;gBACV,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,CAAC,OAAO,EAAE,0CAA0C,IAAI,EAAE,CAAC,CAAC;aACjG;YACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC;YACxC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QAGD,IAAI,aAAa;YACf,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QACtF,CAAC;QAGD,IAAI,SAAS;YACX,OAAO,oBAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,QAAQ;YACV,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QACrE,CAAC;KACF;IAZC;QADC,aAAO,EAAE;2DAGT;IAGD;QADC,aAAO,EAAE;uDAGT;IAvBU,0BAAkB,qBA4B9B,CAAA;AACH,CAAC,EAzDgB,OAAO,GAAP,eAAO,KAAP,eAAO,QAyDvB"}
@@ -12,27 +12,22 @@
12
12
  import { Injectable } from '@angular/core';
13
13
  import { Router } from '@angular/router';
14
14
 
15
- <% placeDefs.forEach(def => { %>import {<%= def.componentClass %>} from "<%= def.importPath %>";
16
- <% }); %>
17
-
18
15
  @Injectable({
19
16
  providedIn: 'root'
20
17
  })
21
- export class PlaceRouterService {
18
+ export class PlaceRouter {
22
19
  constructor(private readonly router:Router) {
23
20
  }
24
- }
25
21
 
26
- // export const routes = [<% placeDefs.forEach(def => { %>
27
- // <% if (def.routeIdentifier) { %>{
28
- // path: '<%= def.path %>',
29
- // redirectTo: '<%= def.path %>/'
30
- // },<% } %> {
31
- // path: '<%= def.fullPath %>',
32
- // component: <%= def.componentClass %>,
33
- // canActivate: [<%= def.activateGuardNames.join(", ")%>],
34
- // canDeactivate: [LeavePlaceGuard]
35
- // },
36
- // <% }) %>
37
- // ];
38
- //
22
+ <% placeDefs.forEach(def => { %>
23
+ get <%= def.placeName %>() {
24
+ const self = this;
25
+ return {
26
+ go(<%=def.getPlaceRouterGoArgs()%>) {
27
+ const params = <%=def.getPlaceRouterGoRouteParams()%>;
28
+ return self.router.navigate(params);
29
+ }
30
+ };
31
+ }
32
+ <% }) %>
33
+ }