@coolon/angular-ui-powerups 12.4.0-alpha.87 → 12.4.0-alpha.89

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.
@@ -1,9 +1,12 @@
1
+ import { Constructable } from '@coolon/pectin';
1
2
  import { Formatter } from './formatter';
3
+ import { ParameterSanitiser } from './parameter-sanitiser';
2
4
  export interface RouteIdOptions<T> {
3
5
  as?: string;
4
6
  optional?: boolean;
5
7
  remember?: boolean;
6
8
  defaultValue?: T;
9
+ sanitiser?: Constructable<ParameterSanitiser<T>> | ParameterSanitiser<T>;
7
10
  }
8
11
  export interface RouteParameterOptions<T> {
9
12
  as?: string;
@@ -11,6 +14,7 @@ export interface RouteParameterOptions<T> {
11
14
  remember?: boolean;
12
15
  defaultValue?: T;
13
16
  storeInUrl?: Formatter<T>;
17
+ sanitiser?: Constructable<ParameterSanitiser<T>> | ParameterSanitiser<T>;
14
18
  }
15
19
  export interface RouteListParameterOptions<T> {
16
20
  as?: string;
@@ -18,6 +22,7 @@ export interface RouteListParameterOptions<T> {
18
22
  remember?: boolean;
19
23
  defaultValue?: T[];
20
24
  storeInUrl?: Formatter<T>;
25
+ sanitiser?: Constructable<ParameterSanitiser<T[]>> | ParameterSanitiser<T[]>;
21
26
  }
22
27
  export declare function RouteId<T extends string | number>(type: Formatter<T>, options?: RouteIdOptions<T>): PropertyDecorator;
23
28
  export declare function VisitParameter<T>(options?: RouteParameterOptions<T>): PropertyDecorator;
@@ -1,8 +1,9 @@
1
1
  import { Injector } from '@angular/core';
2
- import { HasValue, ListModel, MutableListModel, MutableValueModel, ValueModel } from '@coolon/pectin';
2
+ import { Constructable, HasValue, ListModel, MutableListModel, MutableValueModel, ValueModel } from '@coolon/pectin';
3
3
  import { PlaceHistory } from '../place-history';
4
4
  import { Visit } from '../visit';
5
5
  import { Formatter } from './formatter';
6
+ import { ParameterSanitiser } from './parameter-sanitiser';
6
7
  export declare abstract class ParameterDefinition<T, E = T> {
7
8
  readonly propertyName: string;
8
9
  readonly urlFormat?: Formatter<E>;
@@ -20,6 +21,9 @@ export declare abstract class ParameterDefinition<T, E = T> {
20
21
  createBackingModel(): HasValue<T>;
21
22
  protected getOptionValue<K extends keyof ParameterDefinition.Options<T>>(key: K): ParameterDefinition.Options<T>[K];
22
23
  sanitise(value: T, visit: Visit, placeHistory: PlaceHistory, injector: Injector, isPopState: boolean): Promise<T>;
24
+ private runCustomSanitiser;
25
+ private sanitiseMissing;
26
+ private prepareCustomSanitiser;
23
27
  private isMissingFrom;
24
28
  }
25
29
  export declare namespace ParameterDefinition {
@@ -28,6 +32,7 @@ export declare namespace ParameterDefinition {
28
32
  optional?: boolean;
29
33
  remember?: boolean;
30
34
  defaultValue?: T;
35
+ sanitiser?: Constructable<ParameterSanitiser<T>> | ParameterSanitiser<T>;
31
36
  }
32
37
  class RouteId<T> extends ParameterDefinition<T> {
33
38
  readonly isRouteId = true;
@@ -1,6 +1,5 @@
1
1
  import { Injector } from '@angular/core';
2
2
  import { Visit } from '../visit';
3
- import { ParameterSnapshot } from './parameter-snapshot';
4
- export interface ParameterSanitiser<S> {
5
- sanitise(parameterValue: ParameterSnapshot<S>, visit?: Visit, injector?: Injector): Promise<S> | S;
3
+ export interface ParameterSanitiser<T> {
4
+ sanitise(parameterValue: T, visit?: Visit, injector?: Injector): Promise<T> | T;
6
5
  }
@@ -13,9 +13,9 @@ export declare class Visit {
13
13
  * Returns the value of the place parameter with the specified name. The parameter
14
14
  * name is taken from the `as` option, e.g. {as: 'aCustomName'} otherwise it is the
15
15
  * same as the the ValueModel property name.
16
- * @param parameterDef the visit parameter definition
16
+ * @param parameter the visit parameter definition
17
17
  */
18
- getParameterValue<T, S>(parameterDef: ParameterDefinition<T, S>): T;
18
+ getParameterValue<T, S>(parameter: ParameterDefinition<T, S> | string): T;
19
19
  hasParameter(parameterDef: ParameterDefinition<any>): boolean;
20
20
  replace<T>(parameter: ParameterDefinition<T, any>, value: T): Visit;
21
21
  mergeRouteParameters<S>(routeParams: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coolon/angular-ui-powerups",
3
- "version": "12.4.0-alpha.87",
3
+ "version": "12.4.0-alpha.89",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "dependencies": {
6
6
  "@coolon/typescript-utilities": "^2.3.0",