@angular-wave/angular.ts 0.16.1 → 0.17.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.
Files changed (33) hide show
  1. package/@types/angular.d.ts +4 -0
  2. package/@types/animations/animate-css-driver.d.ts +10 -2
  3. package/@types/animations/animate-css.d.ts +8 -14
  4. package/@types/animations/animation.d.ts +1 -3
  5. package/@types/animations/cache/animate-cache.d.ts +99 -0
  6. package/@types/animations/cache/interface.d.ts +17 -0
  7. package/@types/animations/interface.d.ts +15 -18
  8. package/@types/animations/raf/raf-scheduler.d.ts +37 -0
  9. package/@types/core/compile/interface.d.ts +36 -5
  10. package/@types/core/interpolate/interface.d.ts +7 -1
  11. package/@types/core/scope/interface.d.ts +14 -4
  12. package/@types/core/scope/scope.d.ts +58 -22
  13. package/@types/directive/form/form.d.ts +16 -4
  14. package/@types/directive/model/model.d.ts +6 -4
  15. package/@types/filters/order-by.d.ts +13 -0
  16. package/@types/interface.d.ts +3 -3
  17. package/@types/router/path/path-node.d.ts +1 -1
  18. package/@types/router/resolve/resolve-context.d.ts +1 -1
  19. package/@types/router/transition/hook-registry.d.ts +1 -1
  20. package/@types/router/url/url-matcher.d.ts +1 -1
  21. package/@types/services/sce/interface.d.ts +1 -4
  22. package/@types/services/sce/sce.d.ts +7 -2
  23. package/@types/shared/common.d.ts +100 -39
  24. package/@types/shared/node.d.ts +5 -5
  25. package/@types/shared/strings.d.ts +2 -2
  26. package/dist/angular-ts.esm.js +1342 -901
  27. package/dist/angular-ts.umd.js +1342 -901
  28. package/dist/angular-ts.umd.min.js +1 -1
  29. package/dist/angular-ts.umd.min.js.gz +0 -0
  30. package/dist/angular-ts.umd.min.js.map +1 -1
  31. package/package.json +1 -1
  32. package/@types/animations/animate-cache.d.ts +0 -94
  33. package/@types/animations/raf-scheduler.d.ts +0 -35
@@ -85,6 +85,10 @@ export class Angular extends EventTarget {
85
85
  requires?: Array<string>,
86
86
  configFn?: ng.Injectable<any>,
87
87
  ): NgModule;
88
+ /**
89
+ * @param {CustomEvent} event
90
+ */
91
+ dispatchEvent(event: CustomEvent): boolean;
88
92
  /**
89
93
  * Use this function to manually start up AngularTS application.
90
94
  *
@@ -1,6 +1,14 @@
1
- export function AnimateCssDriverProvider($$animationProvider: any): void;
1
+ /**
2
+ * @param {import("./animation.js").AnimationProvider} $$animationProvider
3
+ */
4
+ export function AnimateCssDriverProvider(
5
+ $$animationProvider: import("./animation.js").AnimationProvider,
6
+ ): void;
2
7
  export class AnimateCssDriverProvider {
3
- constructor($$animationProvider: any);
8
+ /**
9
+ * @param {import("./animation.js").AnimationProvider} $$animationProvider
10
+ */
11
+ constructor($$animationProvider: import("./animation.js").AnimationProvider);
4
12
  /**
5
13
  * @returns {Function}
6
14
  */
@@ -1,17 +1,11 @@
1
1
  export function AnimateCssProvider(): void;
2
2
  export class AnimateCssProvider {
3
- $get: (
4
- | string
5
- | ((
6
- $$animateCache: any,
7
- $$rAFScheduler: any,
8
- ) => (
9
- element: any,
10
- initialOptions: any,
11
- ) => {
12
- $$willAnimate: boolean;
13
- start(): any;
14
- end: () => void;
15
- })
16
- )[];
3
+ $get: (() => (
4
+ element: HTMLElement,
5
+ initialOptions: ng.AnimationOptions,
6
+ ) => {
7
+ $$willAnimate: boolean;
8
+ start(): any;
9
+ end: () => void;
10
+ })[];
17
11
  }
@@ -1,13 +1,11 @@
1
1
  export function AnimationProvider(): void;
2
2
  export class AnimationProvider {
3
- drivers: any[];
3
+ drivers: string[];
4
4
  $get: (
5
5
  | string
6
6
  | ((
7
7
  $rootScope: ng.RootScopeService,
8
8
  $injector: ng.InjectorService,
9
- $$rAFScheduler: import("./raf-scheduler.js").RafScheduler,
10
- $$animateCache: any,
11
9
  ) => (elementParam: any, event: any, options: any) => AnimateRunner)
12
10
  )[];
13
11
  }
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Animation cache responsible for:
3
+ * - Generating stable animation cache keys
4
+ * - Tracking cached animation results
5
+ * - Avoiding repeated animation work
6
+ *
7
+ * Cache keys are scoped per parent node to prevent collisions between
8
+ * structurally identical nodes in different DOM subtrees.
9
+ *
10
+ * @internal
11
+ */
12
+ export class AnimateCache {
13
+ /**
14
+ * Generates a stable cache key for an animation invocation.
15
+ *
16
+ * The key is derived from:
17
+ * - The node's parent (used as a cache namespace)
18
+ * - The animation method (e.g. enter, leave, addClass)
19
+ * - The node's current CSS class state
20
+ * - Any classes being added or removed
21
+ *
22
+ * If the node is not attached to the DOM, the node itself is used
23
+ * as the parent scope to avoid key collisions.
24
+ *
25
+ * @param {HTMLElement} node
26
+ * Target element being animated.
27
+ * @param {string} method
28
+ * Animation method name.
29
+ * @param {string} [addClass]
30
+ * CSS class scheduled to be added during the animation.
31
+ * @param {string} [removeClass]
32
+ * CSS class scheduled to be removed during the animation.
33
+ *
34
+ * @returns {string}
35
+ * A unique, deterministic cache key.
36
+ */
37
+ _cacheKey(
38
+ node: HTMLElement,
39
+ method: string,
40
+ addClass?: string,
41
+ removeClass?: string,
42
+ ): string;
43
+ /**
44
+ * Determines whether a cache entry exists but is marked as invalid.
45
+ *
46
+ * This is typically used to detect animations that were previously
47
+ * cached but resolved without a duration.
48
+ *
49
+ * @param {string} key
50
+ * Cache key to test.
51
+ * @returns {boolean}
52
+ * True if an invalid cache entry exists, false otherwise.
53
+ */
54
+ _containsCachedAnimationWithoutDuration(key: string): boolean;
55
+ /**
56
+ * Clears all cached animation entries.
57
+ *
58
+ * Does not reset parent IDs.
59
+ *
60
+ * @returns {void}
61
+ */
62
+ _flush(): void;
63
+ /**
64
+ * Returns the number of times a cache entry has been used.
65
+ *
66
+ * @param {string} key
67
+ * Cache key to query.
68
+ * @returns {number}
69
+ * Usage count, or 0 if the entry does not exist.
70
+ */
71
+ _count(key: string): number;
72
+ /**
73
+ * Retrieves the cached value associated with a cache key.
74
+ *
75
+ * @param {string} key
76
+ * Cache key to retrieve.
77
+ * @returns {any}
78
+ * Cached value, or undefined if not present.
79
+ */
80
+ _get(key: string): any;
81
+ /**
82
+ * Inserts or updates a cache entry.
83
+ *
84
+ * Existing entries will have their usage count incremented
85
+ * and their value replaced.
86
+ *
87
+ * @param {string} key
88
+ * Cache key.
89
+ * @param {any} value
90
+ * Value to cache.
91
+ * @param {boolean} isValid
92
+ * Whether the cached value is considered valid.
93
+ *
94
+ * @returns {void}
95
+ */
96
+ _put(key: string, value: any, isValid: boolean): void;
97
+ #private;
98
+ }
99
+ export const animateCache: AnimateCache;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Internal cache entry used to track animation results and usage.
3
+ */
4
+ export interface CacheEntry {
5
+ /**
6
+ * Number of times this cache entry has been accessed or reused.
7
+ */
8
+ total: number;
9
+ /**
10
+ * Cached animation result (typically an animation runner or metadata).
11
+ */
12
+ value: any;
13
+ /**
14
+ * Whether the cached animation is considered valid (e.g. has a duration).
15
+ */
16
+ isValid: boolean;
17
+ }
@@ -1,22 +1,5 @@
1
1
  import { AnimateRunner } from "./runner/animate-runner.js";
2
2
  import { QueuePhase } from "./queue/interface.ts";
3
- export type RafScheduler = {
4
- /**
5
- * Schedules a list of functions to run on the next animation frame(s).
6
- * @param tasks - The tasks to be scheduled.
7
- */
8
- (tasks: Array<() => void>): void;
9
- /**
10
- * Internal queue of scheduled task arrays.
11
- */
12
- _queue: Array<Array<() => void>>;
13
- /**
14
- * Waits until the animation frame is quiet before running the provided function.
15
- * Cancels any previous animation frame requests.
16
- * @param fn - The function to run when the frame is quiet.
17
- */
18
- _waitUntilQuiet(fn: () => void): void;
19
- };
20
3
  export interface AnimationHost {
21
4
  /** Pause animation. */
22
5
  pause?: () => void;
@@ -100,10 +83,24 @@ export interface AnimationOptions {
100
83
  tempClasses: string | string[];
101
84
  /** Optional DOM operation callback executed before animation */
102
85
  domOperation?: () => void;
103
- $$domOperationFired?: boolean;
86
+ onDone?: () => void;
87
+ _domOperationFired?: boolean;
104
88
  $$prepared?: boolean;
89
+ $$skipPreparationClasses?: boolean;
90
+ cleanupStyles?: boolean;
105
91
  preparationClasses?: string;
106
92
  activeClasses?: string;
93
+ duration?: number | string;
94
+ event?: string | string[];
95
+ easing?: string;
96
+ delay?: string;
97
+ structural?: boolean;
98
+ transitionStyle?: string;
99
+ staggerIndex?: number;
100
+ skipBlocking?: boolean;
101
+ stagger?: number | string;
102
+ keyframeStyle?: string;
103
+ applyClassesEarly?: boolean;
107
104
  }
108
105
  export interface AnimateJsRunner {
109
106
  $$willAnimate: true;
@@ -0,0 +1,37 @@
1
+ /**
2
+ * A requestAnimationFrame-based scheduler.
3
+ */
4
+ export class RafScheduler {
5
+ /**
6
+ * Internal task queue, where each item is an array of functions to run.
7
+ * @type {Array<() => void>}
8
+ */
9
+ _queue: Array<() => void>;
10
+ /**
11
+ * ID of the currently scheduled animation frame (if any).
12
+ * Used for cancellation and tracking.
13
+ * @type {number|null}
14
+ */
15
+ _cancelFn: number | null;
16
+ /**
17
+ * Processes the next batch of tasks in the animation frame.
18
+ * Executes the first group of functions in the queue, then
19
+ * schedules the next frame if needed.
20
+ */
21
+ _nextTick(): void;
22
+ /**
23
+ * The main scheduler function.
24
+ * Accepts an array of functions and schedules them to run in the next available frame(s).
25
+ *
26
+ * @param {Array<() => void>} tasks
27
+ */
28
+ _schedule(tasks: Array<() => void>): void;
29
+ /**
30
+ * Cancels any pending frame and runs the given function once the frame is idle.
31
+ * Useful for debounced updates.
32
+ *
33
+ * @param {Function} fn - Function to run when the animation frame is quiet.
34
+ */
35
+ _waitUntilQuiet(fn: Function): void;
36
+ }
37
+ export const rafScheduler: RafScheduler;
@@ -2,6 +2,7 @@ import type { Scope } from "../scope/scope.js";
2
2
  import type { NodeRef } from "../../shared/noderef.js";
3
3
  type TranscludedNodes = Node | Node[] | NodeList | null;
4
4
  type TranscludeFnCb = (clone?: TranscludedNodes, scope?: Scope | null) => void;
5
+ export type ChildTranscludeOrLinkFn = TranscludeFn | PublicLinkFn;
5
6
  /**
6
7
  * A function passed as the fifth argument to a `PublicLinkFn` link function.
7
8
  * It behaves like a linking function, with the `scope` argument automatically created
@@ -12,13 +13,33 @@ type TranscludeFnCb = (clone?: TranscludedNodes, scope?: Scope | null) => void;
12
13
  export type TranscludeFn = {
13
14
  (cb: TranscludeFnCb): void;
14
15
  (scope: Scope, cb?: TranscludeFnCb): void;
15
- $$slots?: any;
16
+ _slots?: any;
16
17
  };
18
+ export type CloneAttachFn = (
19
+ clone: Node | Element | NodeList,
20
+ scope?: Scope,
21
+ ) => void;
17
22
  /**
18
23
  * A specialized version of `TranscludeFn` with the scope argument already bound.
19
24
  * This function requires no parameters and returns the same result as `TranscludeFn`.
20
25
  */
21
- export type BoundTranscludeFn = () => Element | Node;
26
+ export interface BoundTranscludeFn {
27
+ (
28
+ scope?: Scope,
29
+ cloneAttachFn?: CloneAttachFn,
30
+ transcludeControllers?: unknown,
31
+ _futureParentElement?: Node | Element,
32
+ scopeToChild?: Scope,
33
+ ): Node | Element | NodeList;
34
+ _slots: Record<string, SlotTranscludeFn | null | undefined>;
35
+ }
36
+ export type SlotTranscludeFn = (
37
+ scope?: Scope,
38
+ cloneAttachFn?: CloneAttachFn,
39
+ transcludeControllers?: unknown,
40
+ _futureParentElement?: Node | Element,
41
+ scopeToChild?: Scope,
42
+ ) => Node | Element | NodeList;
22
43
  /**
23
44
  * Represents a simple change in a watched value.
24
45
  */
@@ -60,17 +81,27 @@ export interface LinkFnMapping {
60
81
  * Function that compiles a list of nodes and returns a composite linking function.
61
82
  */
62
83
  export type CompileNodesFn = () => CompositeLinkFn;
84
+ export type ChildLinkFn = (
85
+ scope: Scope,
86
+ nodeRef: NodeRef,
87
+ _parentBoundTranscludeFn: BoundTranscludeFn | null,
88
+ ) => void;
63
89
  /**
64
90
  * A function used to link a specific node.
65
91
  */
66
- export type NodeLinkFn = () => Node | Element | NodeList;
92
+ export type NodeLinkFn = (
93
+ childLinkFn: ChildLinkFn | null,
94
+ scope: Scope,
95
+ node: Node | Element,
96
+ boundTranscludeFn: BoundTranscludeFn | null,
97
+ ) => void;
67
98
  /**
68
99
  * Context information for a NodeLinkFn.
69
100
  */
70
101
  export interface NodeLinkFnCtx {
71
102
  nodeLinkFn: NodeLinkFn;
72
103
  terminal: boolean;
73
- transclude: TranscludeFn;
104
+ transclude: ChildTranscludeOrLinkFn;
74
105
  transcludeOnThisElement: boolean;
75
106
  templateOnThisElement: boolean;
76
107
  newScope: boolean;
@@ -85,6 +116,6 @@ export type ApplyDirectivesToNodeFn = () => NodeLinkFn;
85
116
  export type CompositeLinkFn = (
86
117
  scope: Scope,
87
118
  $linkNode: NodeRef,
88
- parentBoundTranscludeFn?: Function,
119
+ _parentBoundTranscludeFn?: Function,
89
120
  ) => void;
90
121
  export {};
@@ -1,6 +1,12 @@
1
1
  export interface InterpolationFunction {
2
2
  expressions: any[];
3
- (context: any): string;
3
+ /**
4
+ * Evaluate the interpolation.
5
+ * @param context - The scope/context
6
+ * @param cb - Optional callback when expressions change
7
+ */
8
+ (context: any, cb?: (val: any) => void): any;
9
+ exp: string;
4
10
  }
5
11
  export interface InterpolateService {
6
12
  (
@@ -1,6 +1,13 @@
1
1
  import type { CompiledExpression } from "../parse/interface.ts";
2
2
  export type ListenerFn = (newValue?: any, originalTarget?: object) => void;
3
- export type NonScope = string[] | boolean | undefined;
3
+ export type NonScope = string[] | boolean;
4
+ export interface NonScopeMarked {
5
+ $nonscope?: NonScope;
6
+ [key: string]: any;
7
+ constructor?: {
8
+ $nonscope?: NonScope;
9
+ };
10
+ }
4
11
  export interface Listener {
5
12
  originalTarget: any;
6
13
  listenerFn: ListenerFn;
@@ -9,17 +16,16 @@ export interface Listener {
9
16
  scopeId: number;
10
17
  property: string[];
11
18
  watchProp?: string;
12
- foreignListener?: ProxyConstructor;
13
19
  }
14
20
  export interface ScopeEvent {
15
21
  /**
16
22
  * the scope on which the event was $emit-ed or $broadcast-ed.
17
23
  */
18
- targetScope: ng.Scope;
24
+ targetScope: typeof Proxy<ng.Scope>;
19
25
  /**
20
26
  * the scope that is currently handling the event. Once the event propagates through the scope hierarchy, this property is set to null.
21
27
  */
22
- currentScope: ng.Scope;
28
+ currentScope: typeof Proxy<ng.Scope> | null;
23
29
  /**
24
30
  * name of the event.
25
31
  */
@@ -32,6 +38,10 @@ export interface ScopeEvent {
32
38
  * calling preventDefault sets defaultPrevented flag to true.
33
39
  */
34
40
  preventDefault(): void;
41
+ /**
42
+ * Whether propagation has been stopped
43
+ */
44
+ stopped: boolean;
35
45
  /**
36
46
  * true if preventDefault was called.
37
47
  */
@@ -46,9 +46,8 @@ export class Scope {
46
46
  * @param {Scope} [parent] - Custom parent.
47
47
  */
48
48
  constructor(context?: Scope, parent?: Scope);
49
- context: Scope;
50
- /** @type {Map<string, Array<import('./interface.ts').Listener>>} Watch listeners */
51
- watchers: Map<string, Array<import("./interface.ts").Listener>>;
49
+ /** @ignore @type {Map<string, Array<import('./interface.ts').Listener>>} Watch listeners */
50
+ _watchers: Map<string, Array<import("./interface.ts").Listener>>;
52
51
  /** @private @type {Map<String, Function[]>} Event listeners */
53
52
  private _listeners;
54
53
  /** @private @type {Map<string, Array<import('./interface.ts').Listener>>} Watch listeners from other proxies */
@@ -59,25 +58,26 @@ export class Scope {
59
58
  private _objectListeners;
60
59
  /** @type {Proxy<Scope>} Current proxy being operated on */
61
60
  $proxy: ProxyConstructor;
62
- /** @type {Scope} The actual proxy */
61
+ /** @type {Scope} This is the reference to the Scope object with acts as the actual proxy */
63
62
  $handler: Scope;
64
63
  /** @type {*} Current target being called on */
65
64
  $target: any;
66
- /** @type {*} Value wrapped by the proxy */
67
- $value: any;
68
65
  /**
69
- * @type {Scope[]}
66
+ * @ignore @type {Scope[]}
70
67
  */
71
- $children: Scope[];
68
+ _children: Scope[];
72
69
  /**
73
70
  * @type {number} Unique model ID (monotonically increasing) useful for debugging.
74
71
  */
75
72
  $id: number;
76
73
  /**
77
- * @type {Scope}
74
+ * @type {ng.RootScopeService}
78
75
  */
79
- $root: Scope;
80
- $parent: Scope;
76
+ $root: ng.RootScopeService;
77
+ /**
78
+ * @type {Scope | undefined}
79
+ */
80
+ $parent: Scope | undefined;
81
81
  /** @ignore @type {boolean} */
82
82
  _destroyed: boolean;
83
83
  /** @private @type {import("./interface.ts").Listener[]} A list of scheduled Event listeners */
@@ -90,14 +90,14 @@ export class Scope {
90
90
  * Intercepts and handles property assignments on the target object. If a new value is
91
91
  * an object, it will be recursively proxied.
92
92
  *
93
- * @param {Object} target - The target object.
93
+ * @param {Object & Record<string, any>} target - The target object.
94
94
  * @param {string} property - The name of the property being set.
95
95
  * @param {*} value - The new value being assigned to the property.
96
96
  * @param {Proxy<Scope>} proxy - The proxy intercepting property access
97
97
  * @returns {boolean} - Returns true to indicate success of the operation.
98
98
  */
99
99
  set(
100
- target: any,
100
+ target: any & Record<string, any>,
101
101
  property: string,
102
102
  value: any,
103
103
  proxy: ProxyConstructor,
@@ -107,17 +107,21 @@ export class Scope {
107
107
  * properties (`watch` and `sync`) and binds their methods. For other properties,
108
108
  * it returns the value directly.
109
109
  *
110
- * @param {Object} target - The target object.
110
+ * @param {Object & Record<string, any>} target - The target object.
111
111
  * @param {string|number|symbol} property - The name of the property being accessed.
112
112
  * @param {Proxy<Scope>} proxy - The proxy object being invoked
113
113
  * @returns {*} - The value of the property or a method if accessing `watch` or `sync`.
114
114
  */
115
115
  get(
116
- target: any,
116
+ target: any & Record<string, any>,
117
117
  property: string | number | symbol,
118
118
  proxy: ProxyConstructor,
119
119
  ): any;
120
- deleteProperty(target: any, property: any): boolean;
120
+ /**
121
+ * @param {Object & Record<string, any>} target - The target object.
122
+ * @param {string} property - The name of the property being deleted
123
+ */
124
+ deleteProperty(target: any & Record<string, any>, property: string): boolean;
121
125
  /**
122
126
  * Registers a watcher for a property along with a listener function. The listener
123
127
  * function is invoked when changes to that property are detected.
@@ -131,10 +135,42 @@ export class Scope {
131
135
  listenerFn?: ng.ListenerFn,
132
136
  lazy?: boolean,
133
137
  ): () => void;
134
- $new(childInstance: any): any;
135
- $newIsolate(instance: any): any;
136
- $transcluded(parentInstance: any): any;
137
- $eval(expr: any, locals: any): any;
138
+ /**
139
+ * @param {ng.Scope} [childInstance]
140
+ * @returns {Proxy<ng.Scope> & ng.Scope}
141
+ */
142
+ $new(childInstance?: ng.Scope): ProxyConstructor & ng.Scope;
143
+ /**
144
+ * @param {ng.Scope} [instance]
145
+ * @returns {Proxy<ng.Scope> & ng.Scope}
146
+ */
147
+ $newIsolate(instance?: ng.Scope): ProxyConstructor & ng.Scope;
148
+ /**
149
+ * @param {ng.Scope} parentInstance
150
+ * @returns {Proxy<ng.Scope> & ng.Scope}
151
+ */
152
+ $transcluded(parentInstance: ng.Scope): ProxyConstructor & ng.Scope;
153
+ /**
154
+ * @param {string} key
155
+ * @param {import("./interface.ts").Listener} listener
156
+ */
157
+ _registerForeignKey(
158
+ key: string,
159
+ listener: import("./interface.ts").Listener,
160
+ ): void;
161
+ /**
162
+ * @param {string} key
163
+ * @param {number} id
164
+ */
165
+ _deregisterForeignKey(key: string, id: number): boolean;
166
+ /**
167
+ * Evaluates an Angular expression in the context of this scope.
168
+ *
169
+ * @param {string} expr - Angular expression to evaluate
170
+ * @param {Record<string, any>} [locals] - Optional local variables
171
+ * @returns {any}
172
+ */
173
+ $eval(expr: string, locals?: Record<string, any>): any;
138
174
  /**
139
175
  * @param {Object} newTarget
140
176
  */
@@ -153,9 +189,9 @@ export class Scope {
153
189
  /**
154
190
  * @param {string} name
155
191
  * @param {...any} args
156
- * @returns {void}
192
+ * @returns {ng.ScopeEvent | undefined}
157
193
  */
158
- $emit(name: string, ...args: any[]): void;
194
+ $emit(name: string, ...args: any[]): ng.ScopeEvent | undefined;
159
195
  /**
160
196
  * @param {string} name
161
197
  * @param {...any} args
@@ -1,4 +1,14 @@
1
1
  export function setupValidity(instance: any): void;
2
+ /**
3
+ * @param {FormController|ng.NgModelController} ctrl
4
+ * @param {string} className
5
+ * @param {boolean} switchValue
6
+ */
7
+ export function cachedToggleClass(
8
+ ctrl: FormController | ng.NgModelController,
9
+ className: string,
10
+ switchValue: boolean,
11
+ ): void;
2
12
  /**
3
13
  * @type {{
4
14
  * $nonscope: boolean,
@@ -74,21 +84,23 @@ export class FormController {
74
84
  static $nonscope: boolean;
75
85
  static $inject: string[];
76
86
  /**
77
- * @param {Element} $element
87
+ * @param {HTMLFormElement} $element
78
88
  * @param {ng.Attributes} $attrs
79
89
  * @param {ng.Scope} $scope
80
90
  * @param {ng.AnimateService} $animate
81
91
  * @param {ng.InterpolateService} $interpolate
82
92
  */
83
93
  constructor(
84
- $element: Element,
94
+ $element: HTMLFormElement,
85
95
  $attrs: ng.Attributes,
86
96
  $scope: ng.Scope,
87
97
  $animate: ng.AnimateService,
88
98
  $interpolate: ng.InterpolateService,
89
99
  );
100
+ /** @type {boolean} */
101
+ _isAnimated: boolean;
90
102
  _controls: any[];
91
- $name: string;
103
+ $name: any;
92
104
  /**
93
105
  * @property {boolean} $dirty True if user has already interacted with the form.
94
106
  */
@@ -102,7 +114,7 @@ export class FormController {
102
114
  $submitted: boolean;
103
115
  /** @type {FormController|Object} */
104
116
  _parentForm: FormController | any;
105
- _element: Element;
117
+ _element: HTMLFormElement;
106
118
  _animate: import("../../animations/interface.ts").AnimateService;
107
119
  $error: {};
108
120
  _success: {};
@@ -52,7 +52,7 @@ export class NgModelController {
52
52
  * @param {ng.Scope} $scope
53
53
  * @param {ng.ExceptionHandlerService} $exceptionHandler
54
54
  * @param {ng.Attributes} $attr
55
- * @param {Element} $element
55
+ * @param {HTMLElement} $element
56
56
  * @param {ng.ParseService} $parse
57
57
  * @param {ng.AnimateService} $animate
58
58
  * @param {ng.InterpolateService} $interpolate
@@ -61,11 +61,13 @@ export class NgModelController {
61
61
  $scope: ng.Scope,
62
62
  $exceptionHandler: ng.ExceptionHandlerService,
63
63
  $attr: ng.Attributes,
64
- $element: Element,
64
+ $element: HTMLElement,
65
65
  $parse: ng.ParseService,
66
66
  $animate: ng.AnimateService,
67
67
  $interpolate: ng.InterpolateService,
68
68
  );
69
+ /** @type {boolean} */
70
+ _isAnimated: boolean;
69
71
  /** @type {any} The actual value from the control's view */
70
72
  $viewValue: any;
71
73
  /** @type {any} The value in the model that the control is bound to. */
@@ -97,7 +99,7 @@ export class NgModelController {
97
99
  $error: {};
98
100
  _success: {};
99
101
  $pending: any;
100
- $name: string;
102
+ $name: any;
101
103
  _parentForm: {
102
104
  $nonscope: boolean;
103
105
  $addControl: Function;
@@ -144,7 +146,7 @@ export class NgModelController {
144
146
  /** @type {ng.Scope} */
145
147
  _scope: ng.Scope;
146
148
  _attr: ng.Attributes;
147
- _element: Element;
149
+ _element: HTMLElement;
148
150
  _animate: import("../../animations/interface.ts").AnimateService;
149
151
  _parse: import("../../core/parse/interface.ts").ParseService;
150
152
  _exceptionHandler: import("../../services/exception/interface.ts").ExceptionHandler;
@@ -6,3 +6,16 @@ export function orderByFilter($parse: ng.ParseService): ng.FilterFn;
6
6
  export namespace orderByFilter {
7
7
  let $inject: string[];
8
8
  }
9
+ export type ComparisonObject = {
10
+ value: any;
11
+ tieBreaker: {
12
+ value: number;
13
+ type: string;
14
+ index: number;
15
+ };
16
+ predicateValues: Array<{
17
+ value: any;
18
+ type: string;
19
+ index: number;
20
+ }>;
21
+ };