ember-source 7.2.0-beta.1 → 7.3.0-alpha.1
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/build-metadata.json +3 -3
- package/dist/dev/packages/@ember/-internals/deprecations/index.js +10 -0
- package/dist/dev/packages/@ember/-internals/glimmer/index.js +3 -3
- package/dist/dev/packages/@ember/-internals/routing/index.js +1 -1
- package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +1 -1
- package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/comparable.js +5 -0
- package/dist/dev/packages/@ember/application/index.js +2 -2
- package/dist/dev/packages/@ember/application/instance.js +21 -1
- package/dist/dev/packages/@ember/component/helper.js +321 -1
- package/dist/dev/packages/@ember/component/index.js +1 -1
- package/dist/dev/packages/@ember/engine/index.js +2 -2
- package/dist/dev/packages/@ember/renderer/index.js +1 -1
- package/dist/dev/packages/@ember/routing/-internals.js +1 -1
- package/dist/dev/packages/@ember/routing/lib/routing-service.js +0 -1
- package/dist/dev/packages/@ember/routing/lib/utils.js +1 -1
- package/dist/dev/packages/@ember/routing/route.js +1 -1
- package/dist/dev/packages/@ember/routing/router-service.js +0 -1
- package/dist/dev/packages/@ember/routing/router.js +1 -1
- package/dist/dev/packages/@ember/utils/lib/compare.js +5 -2
- package/dist/dev/packages/ember/version.js +1 -1
- package/dist/dev/packages/router_js/index.js +2 -2
- package/dist/dev/packages/shared-chunks/{curly-Ei5G8jhk.js → curly-DGUCLOud.js} +4 -5
- package/dist/dev/packages/shared-chunks/curly-brand-B_F79Dep.js +12 -0
- package/dist/dev/packages/shared-chunks/helper-brand-C9_8vvOf.js +12 -0
- package/dist/dev/packages/shared-chunks/{index-B3pPx1fL.js → index-CCyXUNBa.js} +616 -1573
- package/dist/dev/packages/shared-chunks/outlet-CHFL7tun.js +135 -0
- package/dist/dev/packages/shared-chunks/setup-registry-BHdDJATP.js +951 -0
- package/dist/dev/packages/shared-chunks/{unrecognized-url-error-BJHjL30Q.js → unrecognized-url-error-B8loxkay.js} +1 -1
- package/dist/prod/packages/@ember/-internals/deprecations/index.js +10 -0
- package/dist/prod/packages/@ember/-internals/glimmer/index.js +3 -3
- package/dist/prod/packages/@ember/-internals/routing/index.js +1 -1
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +1 -1
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/comparable.js +5 -0
- package/dist/prod/packages/@ember/application/index.js +2 -2
- package/dist/prod/packages/@ember/application/instance.js +17 -2
- package/dist/prod/packages/@ember/component/helper.js +305 -1
- package/dist/prod/packages/@ember/component/index.js +1 -1
- package/dist/prod/packages/@ember/engine/index.js +2 -2
- package/dist/prod/packages/@ember/renderer/index.js +1 -1
- package/dist/prod/packages/@ember/routing/lib/routing-service.js +0 -1
- package/dist/prod/packages/@ember/routing/lib/utils.js +1 -1
- package/dist/prod/packages/@ember/routing/route.js +1 -1
- package/dist/prod/packages/@ember/routing/router-service.js +0 -1
- package/dist/prod/packages/@ember/routing/router.js +1 -1
- package/dist/prod/packages/@ember/utils/lib/compare.js +5 -2
- package/dist/prod/packages/ember/version.js +1 -1
- package/dist/prod/packages/router_js/index.js +2 -2
- package/dist/prod/packages/shared-chunks/{curly-IY06zACp.js → curly-a6DP7r87.js} +4 -5
- package/dist/prod/packages/shared-chunks/curly-brand-B_F79Dep.js +12 -0
- package/dist/prod/packages/shared-chunks/helper-brand-C9_8vvOf.js +12 -0
- package/dist/prod/packages/shared-chunks/{index-CslMfEpb.js → index-npr2B-vu.js} +546 -1449
- package/dist/prod/packages/shared-chunks/outlet--lIm3q7t.js +132 -0
- package/dist/prod/packages/shared-chunks/setup-registry-Dfu8EyLU.js +886 -0
- package/dist/prod/packages/shared-chunks/{unrecognized-url-error-EgNrnFu_.js → unrecognized-url-error-jjQ-FqKB.js} +1 -1
- package/docs/data.json +279 -214
- package/package.json +6 -6
- package/types/stable/@ember/-internals/deprecations/index.d.ts +6 -0
- package/types/stable/@ember/-internals/glimmer/lib/base-renderer.d.ts +150 -0
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/curly-brand.d.ts +10 -0
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/curly.d.ts +3 -2
- package/types/stable/@ember/-internals/glimmer/lib/helper-brand.d.ts +10 -0
- package/types/stable/@ember/-internals/glimmer/lib/helper.d.ts +4 -6
- package/types/stable/@ember/-internals/glimmer/lib/renderer.d.ts +7 -154
- package/types/stable/@ember/-internals/glimmer/lib/router-resolver.d.ts +17 -0
- package/types/stable/@ember/renderer/index.d.ts +2 -2
- package/types/stable/index.d.ts +590 -586
- package/dist/dev/packages/shared-chunks/helper-DIj85_-f.js +0 -326
- package/dist/dev/packages/shared-chunks/setup-registry-9DCmHTFF.js +0 -77
- package/dist/prod/packages/shared-chunks/helper-DkXiTBjc.js +0 -310
- package/dist/prod/packages/shared-chunks/setup-registry-U-6VaNQG.js +0 -74
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ember-source",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.3.0-alpha.1",
|
|
4
4
|
"description": "A JavaScript framework for creating ambitious web applications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"@embroider/vite": "^1.7.2",
|
|
93
93
|
"@eslint/js": "^9.21.0",
|
|
94
94
|
"@glimmer/component": "workspace:*",
|
|
95
|
-
"@octokit/rest": "^
|
|
95
|
+
"@octokit/rest": "^22.0.0",
|
|
96
96
|
"@rollup/plugin-babel": "^6.0.4",
|
|
97
97
|
"@simple-dom/document": "^1.4.0",
|
|
98
98
|
"@swc-node/register": "^1.6.8",
|
|
@@ -123,8 +123,8 @@
|
|
|
123
123
|
"expect-type": "^0.15.0",
|
|
124
124
|
"fs-extra": "^11.1.1",
|
|
125
125
|
"git-repo-info": "^2.1.1",
|
|
126
|
-
"glob": "^
|
|
127
|
-
"globals": "^
|
|
126
|
+
"glob": "^13.0.0",
|
|
127
|
+
"globals": "^17.0.0",
|
|
128
128
|
"kill-port-process": "^3.2.1",
|
|
129
129
|
"mitata": "^1.0.34",
|
|
130
130
|
"mocha": "^11.0.0",
|
|
@@ -367,9 +367,9 @@
|
|
|
367
367
|
}
|
|
368
368
|
},
|
|
369
369
|
"packageManager": "pnpm@10.33.2",
|
|
370
|
-
"_originalVersion": "7.
|
|
370
|
+
"_originalVersion": "7.3.0-alpha.1",
|
|
371
371
|
"_versionPreviouslyCalculated": true,
|
|
372
372
|
"publishConfig": {
|
|
373
|
-
"tag": "
|
|
373
|
+
"tag": "alpha"
|
|
374
374
|
}
|
|
375
375
|
}
|
|
@@ -21,6 +21,12 @@ declare module '@ember/-internals/deprecations' {
|
|
|
21
21
|
isEnabled: boolean;
|
|
22
22
|
isRemoved: boolean;
|
|
23
23
|
};
|
|
24
|
+
DEPRECATE_COMPARABLE_MIXIN: {
|
|
25
|
+
options: DeprecationOptions;
|
|
26
|
+
test: boolean;
|
|
27
|
+
isEnabled: boolean;
|
|
28
|
+
isRemoved: boolean;
|
|
29
|
+
};
|
|
24
30
|
};
|
|
25
31
|
export function deprecateUntil(message: string, deprecation: DeprecationObject): void;
|
|
26
32
|
export {};
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
declare module '@ember/-internals/glimmer/lib/base-renderer' {
|
|
2
|
+
import type { Cursor, DebugRenderTree, Environment, RenderResult as GlimmerRenderResult, EvaluationContext, TreeBuilder, ClassicResolver } from "@glimmer/interfaces";
|
|
3
|
+
import type { SimpleDocument, SimpleElement } from "@simple-dom/interface";
|
|
4
|
+
export type IBuilder = (env: Environment, cursor: Cursor) => TreeBuilder;
|
|
5
|
+
export function errorLoopTransaction(fn: () => void): () => void;
|
|
6
|
+
/**
|
|
7
|
+
* The interface the `RendererState` needs from a render root. The base
|
|
8
|
+
* renderer only ever creates `ComponentRootState`s; the classic renderer
|
|
9
|
+
* (`./renderer`) adds `ClassicRootState` for outlet/classic-component roots.
|
|
10
|
+
*/
|
|
11
|
+
export interface RendererRoot {
|
|
12
|
+
readonly type: string;
|
|
13
|
+
readonly result: GlimmerRenderResult | undefined;
|
|
14
|
+
readonly destroyed: boolean;
|
|
15
|
+
render(): void;
|
|
16
|
+
destroy(): void;
|
|
17
|
+
isFor(possibleRoot: unknown): boolean;
|
|
18
|
+
}
|
|
19
|
+
export class ComponentRootState implements RendererRoot {
|
|
20
|
+
#private;
|
|
21
|
+
readonly type = "component";
|
|
22
|
+
constructor(state: RendererState, definition: object, options: {
|
|
23
|
+
into: Cursor;
|
|
24
|
+
args?: Record<string, unknown>;
|
|
25
|
+
});
|
|
26
|
+
isFor(_possibleRoot: unknown): boolean;
|
|
27
|
+
render(): void;
|
|
28
|
+
destroy(): void;
|
|
29
|
+
get destroyed(): boolean;
|
|
30
|
+
get result(): GlimmerRenderResult | undefined;
|
|
31
|
+
}
|
|
32
|
+
export function _resetRenderers(): void;
|
|
33
|
+
export function renderSettled(): Promise<void>;
|
|
34
|
+
type Resolver = ClassicResolver;
|
|
35
|
+
interface RendererData {
|
|
36
|
+
owner: object;
|
|
37
|
+
context: EvaluationContext;
|
|
38
|
+
builder: IBuilder;
|
|
39
|
+
}
|
|
40
|
+
export class RendererState {
|
|
41
|
+
#private;
|
|
42
|
+
static create(data: RendererData, renderer: BaseRenderer): RendererState;
|
|
43
|
+
private constructor();
|
|
44
|
+
get debug(): {
|
|
45
|
+
roots: RendererRoot[];
|
|
46
|
+
inRenderTransaction: boolean;
|
|
47
|
+
isInteractive: boolean;
|
|
48
|
+
};
|
|
49
|
+
get roots(): RendererRoot[];
|
|
50
|
+
get owner(): object;
|
|
51
|
+
get builder(): IBuilder;
|
|
52
|
+
get context(): EvaluationContext;
|
|
53
|
+
get env(): Environment;
|
|
54
|
+
get isInteractive(): boolean;
|
|
55
|
+
renderRoot(root: RendererRoot, renderer: BaseRenderer): RendererRoot;
|
|
56
|
+
renderRoots(renderer: BaseRenderer): void;
|
|
57
|
+
scheduleRevalidate(renderer: BaseRenderer): void;
|
|
58
|
+
isValid(): boolean;
|
|
59
|
+
revalidate(renderer: BaseRenderer): void;
|
|
60
|
+
clearAllRoots(renderer: BaseRenderer): void;
|
|
61
|
+
}
|
|
62
|
+
type IntoTarget = Cursor | Element | SimpleElement;
|
|
63
|
+
/**
|
|
64
|
+
* The returned object from `renderComponent`
|
|
65
|
+
* @public
|
|
66
|
+
* @module @ember/renderer
|
|
67
|
+
*/
|
|
68
|
+
export interface RenderResult {
|
|
69
|
+
/**
|
|
70
|
+
* Destroys the render tree and removes all rendered content from the element rendered into
|
|
71
|
+
*/
|
|
72
|
+
destroy(): void;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Render a component into a DOM element.
|
|
76
|
+
*
|
|
77
|
+
* @method renderComponent
|
|
78
|
+
* @static
|
|
79
|
+
* @for @ember/renderer
|
|
80
|
+
* @param {Object} component The component to render.
|
|
81
|
+
* @param {Object} options
|
|
82
|
+
* @param {Element} options.into Where to render the component in to.
|
|
83
|
+
* @param {Object} [options.owner] Optionally specify the owner to use. This will be used for injections, and overall cleanup.
|
|
84
|
+
* @param {Object} [options.env] Optional renderer configuration
|
|
85
|
+
* @param {Object} [options.args] Optionally pass args in to the component. These may be reactive as long as it is an object or object-like
|
|
86
|
+
* @public
|
|
87
|
+
*/
|
|
88
|
+
export function renderComponent(
|
|
89
|
+
/**
|
|
90
|
+
* The component definition to render.
|
|
91
|
+
*
|
|
92
|
+
* Any component that has had its manager registered is valid.
|
|
93
|
+
* For the component-types that ship with ember, manager registration
|
|
94
|
+
* does not need to be worried about.
|
|
95
|
+
*/
|
|
96
|
+
component: object,
|
|
97
|
+
{ owner, env, into, args, }: {
|
|
98
|
+
/**
|
|
99
|
+
* The element to render the component in to.
|
|
100
|
+
*/
|
|
101
|
+
into: IntoTarget;
|
|
102
|
+
/**
|
|
103
|
+
* Optional owner. Defaults to `{}`, can be any object, but will need to implement the [Owner](https://api.emberjs.com/ember/release/classes/Owner) API for components within this render tree to access services.
|
|
104
|
+
*/
|
|
105
|
+
owner?: object;
|
|
106
|
+
/**
|
|
107
|
+
* Optionally configure the rendering environment
|
|
108
|
+
*/
|
|
109
|
+
env?: {
|
|
110
|
+
/**
|
|
111
|
+
* When false, modifiers will not run.
|
|
112
|
+
*/
|
|
113
|
+
isInteractive?: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* All other options are forwarded to the underlying renderer.
|
|
116
|
+
* (its API is currently private and out of scope for this RFC,
|
|
117
|
+
* so passing additional things here is also considered private API)
|
|
118
|
+
*/
|
|
119
|
+
[rendererOption: string]: unknown;
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* These args get passed to the rendered component
|
|
123
|
+
*
|
|
124
|
+
* If your args are reactive, re-rendering will happen automatically.
|
|
125
|
+
*
|
|
126
|
+
*/
|
|
127
|
+
args?: Record<string, unknown>;
|
|
128
|
+
}
|
|
129
|
+
): RenderResult;
|
|
130
|
+
export class BaseRenderer {
|
|
131
|
+
static strict(owner: object, document: SimpleDocument | Document, options: {
|
|
132
|
+
isInteractive: boolean;
|
|
133
|
+
hasDOM?: boolean;
|
|
134
|
+
}): BaseRenderer;
|
|
135
|
+
readonly state: RendererState;
|
|
136
|
+
constructor(owner: object, envOptions: {
|
|
137
|
+
isInteractive: boolean;
|
|
138
|
+
hasDOM: boolean;
|
|
139
|
+
}, document: SimpleDocument, resolver: Resolver, builder: IBuilder);
|
|
140
|
+
get debugRenderTree(): DebugRenderTree;
|
|
141
|
+
isValid(): boolean;
|
|
142
|
+
destroy(): void;
|
|
143
|
+
render(component: object, options: {
|
|
144
|
+
into: IntoTarget;
|
|
145
|
+
args?: Record<string, unknown>;
|
|
146
|
+
}): RendererRoot;
|
|
147
|
+
rerender(): void;
|
|
148
|
+
}
|
|
149
|
+
export {};
|
|
150
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
declare module '@ember/-internals/glimmer/lib/component-managers/curly-brand' {
|
|
2
|
+
/**
|
|
3
|
+
* The brand for the curly component manager lives in its own module so that
|
|
4
|
+
* code which only needs to *detect* the curly manager (e.g. the resolver)
|
|
5
|
+
* does not have to import the manager itself (and with it the classic
|
|
6
|
+
* component machinery).
|
|
7
|
+
*/
|
|
8
|
+
export const CURLY_MANAGER_BRAND: unique symbol;
|
|
9
|
+
export function isCurlyManager(manager: object): boolean;
|
|
10
|
+
}
|
|
@@ -7,6 +7,7 @@ declare module '@ember/-internals/glimmer/lib/component-managers/curly' {
|
|
|
7
7
|
import type { DynamicScope } from "@ember/-internals/glimmer/lib/renderer";
|
|
8
8
|
import type RuntimeResolver from "@ember/-internals/glimmer/lib/resolver";
|
|
9
9
|
import ComponentStateBucket from "@ember/-internals/glimmer/lib/utils/curly-component-state-bucket";
|
|
10
|
+
import { CURLY_MANAGER_BRAND } from "@ember/-internals/glimmer/lib/component-managers/curly-brand";
|
|
10
11
|
export function getComponentCapturedArgs(component: object): CapturedArguments["named"] | undefined;
|
|
11
12
|
export const DIRTY_TAG: unique symbol;
|
|
12
13
|
export const IS_DISPATCHING_ATTRS: unique symbol;
|
|
@@ -20,6 +21,7 @@ declare module '@ember/-internals/glimmer/lib/component-managers/curly' {
|
|
|
20
21
|
positionalParams: string | string[] | undefined | null;
|
|
21
22
|
};
|
|
22
23
|
export default class CurlyComponentManager implements WithCreateInstance<ComponentStateBucket>, WithDynamicLayout<ComponentStateBucket, RuntimeResolver>, WithDynamicTagName<ComponentStateBucket> {
|
|
24
|
+
readonly [CURLY_MANAGER_BRAND] = true;
|
|
23
25
|
protected templateFor(component: Component): CompilableProgram | null;
|
|
24
26
|
getDynamicLayout(bucket: ComponentStateBucket): CompilableProgram | null;
|
|
25
27
|
getTagName(state: ComponentStateBucket): Nullable<string>;
|
|
@@ -39,6 +41,5 @@ declare module '@ember/-internals/glimmer/lib/component-managers/curly' {
|
|
|
39
41
|
export function processComponentInitializationAssertions(component: Component, props: any): void;
|
|
40
42
|
export function initialRenderInstrumentDetails(component: any): any;
|
|
41
43
|
export const CURLY_COMPONENT_MANAGER: CurlyComponentManager;
|
|
42
|
-
export
|
|
43
|
-
export {};
|
|
44
|
+
export { isCurlyManager } from "@ember/-internals/glimmer/lib/component-managers/curly-brand";
|
|
44
45
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
declare module '@ember/-internals/glimmer/lib/helper-brand' {
|
|
2
|
+
/**
|
|
3
|
+
* The brand for classic (class-based) helpers lives in its own module so that
|
|
4
|
+
* code which only needs to *detect* classic helpers (e.g. the resolver) does
|
|
5
|
+
* not have to import the classic `Helper` base class (and with it the classic
|
|
6
|
+
* object model: `EmberObject`, `Mixin`, meta, etc.).
|
|
7
|
+
*/
|
|
8
|
+
export const IS_CLASSIC_HELPER: unique symbol;
|
|
9
|
+
export function isClassicHelper(obj: object): boolean;
|
|
10
|
+
}
|
|
@@ -4,6 +4,8 @@ declare module '@ember/-internals/glimmer/lib/helper' {
|
|
|
4
4
|
*/
|
|
5
5
|
import { FrameworkObject } from "@ember/object/-internals";
|
|
6
6
|
import type { DirtyableTag } from "@glimmer/interfaces";
|
|
7
|
+
import { IS_CLASSIC_HELPER } from "@ember/-internals/glimmer/lib/helper-brand";
|
|
8
|
+
export { isClassicHelper } from "@ember/-internals/glimmer/lib/helper-brand";
|
|
7
9
|
const RECOMPUTE_TAG: unique symbol;
|
|
8
10
|
type GetOr<T, K, Else> = K extends keyof T ? T[K] : Else;
|
|
9
11
|
type Args<S> = GetOr<S, "Args", {}>;
|
|
@@ -20,7 +22,6 @@ declare module '@ember/-internals/glimmer/lib/helper' {
|
|
|
20
22
|
destroy(): void;
|
|
21
23
|
[RECOMPUTE_TAG]: DirtyableTag;
|
|
22
24
|
}
|
|
23
|
-
const IS_CLASSIC_HELPER: unique symbol;
|
|
24
25
|
export interface SimpleHelper<S> {
|
|
25
26
|
compute: (positional: Positional<S>, named: Named<S>) => Return<S>;
|
|
26
27
|
}
|
|
@@ -31,7 +32,7 @@ declare module '@ember/-internals/glimmer/lib/helper' {
|
|
|
31
32
|
|
|
32
33
|
```app/templates/application.gjs
|
|
33
34
|
import Cost from '../components/cost';
|
|
34
|
-
|
|
35
|
+
|
|
35
36
|
<template>
|
|
36
37
|
<Cost @cents={{230}} />
|
|
37
38
|
</template>
|
|
@@ -39,7 +40,7 @@ declare module '@ember/-internals/glimmer/lib/helper' {
|
|
|
39
40
|
|
|
40
41
|
```app/components/cost.gjs
|
|
41
42
|
import formatCurrency from '../helpers/format-currency';
|
|
42
|
-
|
|
43
|
+
|
|
43
44
|
<template>
|
|
44
45
|
<div>{{formatCurrency @cents currency="$"}}</div>
|
|
45
46
|
</template>
|
|
@@ -140,8 +141,6 @@ declare module '@ember/-internals/glimmer/lib/helper' {
|
|
|
140
141
|
*/
|
|
141
142
|
recompute(): void;
|
|
142
143
|
}
|
|
143
|
-
export function isClassicHelper(obj: object): boolean;
|
|
144
|
-
export const CLASSIC_HELPER_MANAGER: import("@glimmer/interfaces").Helper<object> | import("@glimmer/manager").CustomHelperManager<object>;
|
|
145
144
|
/**
|
|
146
145
|
* The type of a function-based helper.
|
|
147
146
|
*
|
|
@@ -181,5 +180,4 @@ declare module '@ember/-internals/glimmer/lib/helper' {
|
|
|
181
180
|
Return: R;
|
|
182
181
|
}>;
|
|
183
182
|
export function helper<S>(helperFn: (positional: Positional<S>, named: Named<S>) => Return<S>): FunctionBasedHelper<S>;
|
|
184
|
-
export {};
|
|
185
183
|
}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
declare module '@ember/-internals/glimmer/lib/renderer' {
|
|
2
2
|
import type { InternalOwner } from "@ember/-internals/owner";
|
|
3
|
-
import type { Bounds,
|
|
3
|
+
import type { Bounds, DynamicScope as GlimmerDynamicScope, TemplateFactory, EvaluationContext } from "@glimmer/interfaces";
|
|
4
4
|
import type { Nullable } from "@ember/-internals/utility-types";
|
|
5
5
|
import type { Reference } from "@glimmer/reference/lib/reference";
|
|
6
6
|
import type { CurriedValue } from "@glimmer/runtime/lib/curried-value";
|
|
7
7
|
import { clientBuilder } from "@glimmer/runtime/lib/vm/element-builder";
|
|
8
8
|
import type { SimpleDocument, SimpleElement, SimpleNode } from "@simple-dom/interface";
|
|
9
|
-
import type Component from "@ember/-internals/glimmer/lib/component";
|
|
10
9
|
import type ClassicComponent from "@ember/-internals/glimmer/lib/component";
|
|
11
10
|
import { BOUNDS } from "@ember/-internals/glimmer/lib/component-managers/curly";
|
|
12
|
-
import
|
|
11
|
+
import RouterResolver from "@ember/-internals/glimmer/lib/router-resolver";
|
|
13
12
|
import type { OutletState } from "@ember/-internals/glimmer/lib/utils/outlet";
|
|
14
13
|
import OutletView from "@ember/-internals/glimmer/lib/views/outlet";
|
|
15
|
-
|
|
14
|
+
import type { RendererRoot } from "@ember/-internals/glimmer/lib/base-renderer";
|
|
15
|
+
import { BaseRenderer } from "@ember/-internals/glimmer/lib/base-renderer";
|
|
16
|
+
export { type IBuilder, type RendererRoot, type RenderResult, BaseRenderer, ComponentRootState, errorLoopTransaction, renderComponent, renderSettled, _resetRenderers, } from "@ember/-internals/glimmer/lib/base-renderer";
|
|
16
17
|
export interface View {
|
|
17
18
|
parentView: Nullable<View>;
|
|
18
19
|
renderer: Renderer;
|
|
@@ -30,157 +31,10 @@ declare module '@ember/-internals/glimmer/lib/renderer' {
|
|
|
30
31
|
get(key: "outletState"): Reference<OutletState | undefined>;
|
|
31
32
|
set(key: "outletState", value: Reference<OutletState | undefined>): Reference<OutletState | undefined>;
|
|
32
33
|
}
|
|
33
|
-
type RootState = ClassicRootState | ComponentRootState;
|
|
34
|
-
class ComponentRootState {
|
|
35
|
-
#private;
|
|
36
|
-
readonly type = "component";
|
|
37
|
-
constructor(state: RendererState, definition: object, options: {
|
|
38
|
-
into: Cursor;
|
|
39
|
-
args?: Record<string, unknown>;
|
|
40
|
-
});
|
|
41
|
-
isFor(_component: ClassicComponent): boolean;
|
|
42
|
-
render(): void;
|
|
43
|
-
destroy(): void;
|
|
44
|
-
get destroyed(): boolean;
|
|
45
|
-
get result(): GlimmerRenderResult | undefined;
|
|
46
|
-
}
|
|
47
|
-
class ClassicRootState {
|
|
48
|
-
root: Component | OutletView;
|
|
49
|
-
readonly type = "classic";
|
|
50
|
-
id: string;
|
|
51
|
-
result: GlimmerRenderResult | undefined;
|
|
52
|
-
destroyed: boolean;
|
|
53
|
-
render: () => void;
|
|
54
|
-
readonly env: Environment;
|
|
55
|
-
constructor(root: Component | OutletView, context: EvaluationContext, owner: object, template: Template, self: Reference<unknown>, parentElement: SimpleElement, dynamicScope: DynamicScope, builder: IBuilder);
|
|
56
|
-
isFor(possibleRoot: unknown): boolean;
|
|
57
|
-
destroy(): void;
|
|
58
|
-
}
|
|
59
|
-
export function _resetRenderers(): void;
|
|
60
|
-
export function renderSettled(): Promise<void>;
|
|
61
34
|
interface ViewRegistry {
|
|
62
35
|
[viewId: string]: unknown;
|
|
63
36
|
}
|
|
64
|
-
type Resolver = ClassicResolver;
|
|
65
|
-
interface RendererData {
|
|
66
|
-
owner: object;
|
|
67
|
-
context: EvaluationContext;
|
|
68
|
-
builder: IBuilder;
|
|
69
|
-
}
|
|
70
|
-
class RendererState {
|
|
71
|
-
#private;
|
|
72
|
-
static create(data: RendererData, renderer: BaseRenderer): RendererState;
|
|
73
|
-
private constructor();
|
|
74
|
-
get debug(): {
|
|
75
|
-
roots: RootState[];
|
|
76
|
-
inRenderTransaction: boolean;
|
|
77
|
-
isInteractive: boolean;
|
|
78
|
-
};
|
|
79
|
-
get roots(): RootState[];
|
|
80
|
-
get owner(): object;
|
|
81
|
-
get builder(): IBuilder;
|
|
82
|
-
get context(): EvaluationContext;
|
|
83
|
-
get env(): Environment;
|
|
84
|
-
get isInteractive(): boolean;
|
|
85
|
-
renderRoot(root: RootState, renderer: BaseRenderer): RootState;
|
|
86
|
-
renderRoots(renderer: BaseRenderer): void;
|
|
87
|
-
scheduleRevalidate(renderer: BaseRenderer): void;
|
|
88
|
-
isValid(): boolean;
|
|
89
|
-
revalidate(renderer: BaseRenderer): void;
|
|
90
|
-
clearAllRoots(renderer: BaseRenderer): void;
|
|
91
|
-
}
|
|
92
|
-
type IntoTarget = Cursor | Element | SimpleElement;
|
|
93
|
-
/**
|
|
94
|
-
* The returned object from `renderComponent`
|
|
95
|
-
* @public
|
|
96
|
-
* @module @ember/renderer
|
|
97
|
-
*/
|
|
98
|
-
export interface RenderResult {
|
|
99
|
-
/**
|
|
100
|
-
* Destroys the render tree and removes all rendered content from the element rendered into
|
|
101
|
-
*/
|
|
102
|
-
destroy(): void;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Render a component into a DOM element.
|
|
106
|
-
*
|
|
107
|
-
* @method renderComponent
|
|
108
|
-
* @static
|
|
109
|
-
* @for @ember/renderer
|
|
110
|
-
* @param {Object} component The component to render.
|
|
111
|
-
* @param {Object} options
|
|
112
|
-
* @param {Element} options.into Where to render the component in to.
|
|
113
|
-
* @param {Object} [options.owner] Optionally specify the owner to use. This will be used for injections, and overall cleanup.
|
|
114
|
-
* @param {Object} [options.env] Optional renderer configuration
|
|
115
|
-
* @param {Object} [options.args] Optionally pass args in to the component. These may be reactive as long as it is an object or object-like
|
|
116
|
-
* @public
|
|
117
|
-
*/
|
|
118
|
-
export function renderComponent(
|
|
119
|
-
/**
|
|
120
|
-
* The component definition to render.
|
|
121
|
-
*
|
|
122
|
-
* Any component that has had its manager registered is valid.
|
|
123
|
-
* For the component-types that ship with ember, manager registration
|
|
124
|
-
* does not need to be worried about.
|
|
125
|
-
*/
|
|
126
|
-
component: object,
|
|
127
|
-
{ owner, env, into, args, }: {
|
|
128
|
-
/**
|
|
129
|
-
* The element to render the component in to.
|
|
130
|
-
*/
|
|
131
|
-
into: IntoTarget;
|
|
132
|
-
/**
|
|
133
|
-
* Optional owner. Defaults to `{}`, can be any object, but will need to implement the [Owner](https://api.emberjs.com/ember/release/classes/Owner) API for components within this render tree to access services.
|
|
134
|
-
*/
|
|
135
|
-
owner?: object;
|
|
136
|
-
/**
|
|
137
|
-
* Optionally configure the rendering environment
|
|
138
|
-
*/
|
|
139
|
-
env?: {
|
|
140
|
-
/**
|
|
141
|
-
* When false, modifiers will not run.
|
|
142
|
-
*/
|
|
143
|
-
isInteractive?: boolean;
|
|
144
|
-
/**
|
|
145
|
-
* All other options are forwarded to the underlying renderer.
|
|
146
|
-
* (its API is currently private and out of scope for this RFC,
|
|
147
|
-
* so passing additional things here is also considered private API)
|
|
148
|
-
*/
|
|
149
|
-
[rendererOption: string]: unknown;
|
|
150
|
-
};
|
|
151
|
-
/**
|
|
152
|
-
* These args get passed to the rendered component
|
|
153
|
-
*
|
|
154
|
-
* If your args are reactive, re-rendering will happen automatically.
|
|
155
|
-
*
|
|
156
|
-
*/
|
|
157
|
-
args?: Record<string, unknown>;
|
|
158
|
-
}
|
|
159
|
-
): RenderResult;
|
|
160
|
-
class BaseRenderer {
|
|
161
|
-
static strict(owner: object, document: SimpleDocument | Document, options: {
|
|
162
|
-
isInteractive: boolean;
|
|
163
|
-
hasDOM?: boolean;
|
|
164
|
-
}): BaseRenderer;
|
|
165
|
-
readonly state: RendererState;
|
|
166
|
-
constructor(owner: object, envOptions: {
|
|
167
|
-
isInteractive: boolean;
|
|
168
|
-
hasDOM: boolean;
|
|
169
|
-
}, document: SimpleDocument, resolver: Resolver, builder: IBuilder);
|
|
170
|
-
get debugRenderTree(): DebugRenderTree;
|
|
171
|
-
isValid(): boolean;
|
|
172
|
-
destroy(): void;
|
|
173
|
-
render(component: object, options: {
|
|
174
|
-
into: IntoTarget;
|
|
175
|
-
args?: Record<string, unknown>;
|
|
176
|
-
}): RootState;
|
|
177
|
-
rerender(): void;
|
|
178
|
-
}
|
|
179
37
|
export class Renderer extends BaseRenderer {
|
|
180
|
-
static strict(owner: object, document: SimpleDocument | Document, options: {
|
|
181
|
-
isInteractive: boolean;
|
|
182
|
-
hasDOM?: boolean;
|
|
183
|
-
}): BaseRenderer;
|
|
184
38
|
private _rootTemplate;
|
|
185
39
|
private _viewRegistry;
|
|
186
40
|
static create(props: {
|
|
@@ -189,13 +43,13 @@ declare module '@ember/-internals/glimmer/lib/renderer' {
|
|
|
189
43
|
constructor(owner: InternalOwner, document: SimpleDocument, env: {
|
|
190
44
|
isInteractive: boolean;
|
|
191
45
|
hasDOM: boolean;
|
|
192
|
-
}, rootTemplate: TemplateFactory, viewRegistry: ViewRegistry, builder?: typeof clientBuilder, resolver?:
|
|
46
|
+
}, rootTemplate: TemplateFactory, viewRegistry: ViewRegistry, builder?: typeof clientBuilder, resolver?: RouterResolver);
|
|
193
47
|
appendOutletView(view: OutletView, target: SimpleElement): void;
|
|
194
48
|
appendTo(view: ClassicComponent, target: SimpleElement): void;
|
|
195
49
|
_appendDefinition(root: OutletView | ClassicComponent, definition: CurriedValue, target: SimpleElement): void;
|
|
196
50
|
cleanupRootFor(component: ClassicComponent): void;
|
|
197
51
|
remove(view: ClassicComponent): void;
|
|
198
|
-
get _roots():
|
|
52
|
+
get _roots(): RendererRoot[];
|
|
199
53
|
get _inRenderTransaction(): boolean;
|
|
200
54
|
get _isInteractive(): boolean;
|
|
201
55
|
get _context(): EvaluationContext;
|
|
@@ -208,5 +62,4 @@ declare module '@ember/-internals/glimmer/lib/renderer' {
|
|
|
208
62
|
lastNode: SimpleNode;
|
|
209
63
|
};
|
|
210
64
|
}
|
|
211
|
-
export {};
|
|
212
65
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
declare module '@ember/-internals/glimmer/lib/router-resolver' {
|
|
2
|
+
import type { HelperDefinitionState } from "@glimmer/interfaces";
|
|
3
|
+
import type { InternalOwner } from "@ember/-internals/owner";
|
|
4
|
+
import type { Nullable } from "@ember/-internals/utility-types";
|
|
5
|
+
import ResolverImpl from "@ember/-internals/glimmer/lib/resolver";
|
|
6
|
+
/**
|
|
7
|
+
* The resolver used by the classic application `Renderer`. It extends the
|
|
8
|
+
* shared `ResolverImpl` with the keywords that require the router and engine
|
|
9
|
+
* infrastructure (`{{outlet}}` and `{{mount}}`). Keeping these out of the
|
|
10
|
+
* base resolver means renderers that have no router (e.g. `renderComponent`)
|
|
11
|
+
* do not pull the outlet/engine machinery into the build.
|
|
12
|
+
*/
|
|
13
|
+
export default class RouterResolver extends ResolverImpl {
|
|
14
|
+
lookupBuiltInHelper(name: string): Nullable<HelperDefinitionState>;
|
|
15
|
+
lookupHelper(name: string, owner: InternalOwner): Nullable<HelperDefinitionState>;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -59,7 +59,7 @@ declare module '@ember/renderer' {
|
|
|
59
59
|
@returns {Promise<void>} a promise which fulfills when rendering has completed
|
|
60
60
|
@public
|
|
61
61
|
*/
|
|
62
|
-
export { renderSettled } from "@ember/-internals/glimmer/lib/renderer";
|
|
62
|
+
export { renderSettled } from "@ember/-internals/glimmer/lib/base-renderer";
|
|
63
63
|
/**
|
|
64
64
|
* Render a component into a DOM element.
|
|
65
65
|
*
|
|
@@ -76,5 +76,5 @@ declare module '@ember/renderer' {
|
|
|
76
76
|
* @param {Object} [options.args] Optionally pass args in to the component. These may be reactive as long as it is an object or object-like
|
|
77
77
|
* @public
|
|
78
78
|
*/
|
|
79
|
-
export { renderComponent } from "@ember/-internals/glimmer/lib/renderer";
|
|
79
|
+
export { renderComponent } from "@ember/-internals/glimmer/lib/base-renderer";
|
|
80
80
|
}
|