ember-source 5.0.0-beta.1 → 5.0.0-beta.3
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/dependencies/@glimmer/destroyable.js +2 -2
- package/dist/dependencies/@glimmer/env.js +1 -1
- package/dist/dependencies/@glimmer/global-context.js +1 -1
- package/dist/dependencies/@glimmer/low-level.js +1 -1
- package/dist/dependencies/@glimmer/manager.js +5 -13
- package/dist/dependencies/@glimmer/node.js +1 -1
- package/dist/dependencies/@glimmer/opcode-compiler.js +38 -38
- package/dist/dependencies/@glimmer/program.js +9 -9
- package/dist/dependencies/@glimmer/reference.js +4 -4
- package/dist/dependencies/@glimmer/runtime.js +41 -41
- package/dist/dependencies/@glimmer/util.js +3 -3
- package/dist/dependencies/@glimmer/validator.js +1 -1
- package/dist/dependencies/@glimmer/vm.js +1 -1
- package/dist/dependencies/@glimmer/wire-format.js +1 -1
- package/dist/dependencies/router_js.js +3 -4
- package/dist/dependencies/rsvp.js +23 -25
- package/dist/ember-template-compiler.js +343 -398
- package/dist/ember-template-compiler.map +1 -1
- package/dist/ember-testing.js +4 -4
- package/dist/ember-testing.map +1 -1
- package/dist/ember.debug.js +423 -649
- package/dist/ember.debug.map +1 -1
- package/dist/header/license.js +1 -1
- package/dist/packages/@ember/-internals/browser-environment/index.js +1 -1
- package/dist/packages/@ember/-internals/container/index.js +6 -12
- package/dist/packages/@ember/-internals/environment/index.js +1 -1
- package/dist/packages/@ember/-internals/glimmer/index.js +115 -208
- package/dist/packages/@ember/-internals/metal/index.js +106 -226
- package/dist/packages/@ember/-internals/utils/index.js +1 -12
- package/dist/packages/@ember/-internals/views/lib/system/event_dispatcher.js +10 -9
- package/dist/packages/@ember/-internals/views/lib/views/core_view.js +1 -2
- package/dist/packages/@ember/-internals/views/lib/views/states.js +12 -7
- package/dist/packages/@ember/application/index.js +11 -11
- package/dist/packages/@ember/application/instance.js +3 -2
- package/dist/packages/@ember/application/lib/lazy_load.js +2 -4
- package/dist/packages/@ember/array/index.js +3 -6
- package/dist/packages/@ember/debug/lib/deprecate.js +3 -3
- package/dist/packages/@ember/engine/index.js +3 -2
- package/dist/packages/@ember/engine/instance.js +1 -2
- package/dist/packages/@ember/object/index.js +1 -1
- package/dist/packages/@ember/routing/hash-location.js +1 -2
- package/dist/packages/@ember/routing/history-location.js +3 -5
- package/dist/packages/@ember/routing/lib/utils.js +4 -1
- package/dist/packages/@ember/routing/route.js +20 -6
- package/dist/packages/ember/index.js +4 -3
- package/dist/packages/ember/version.js +1 -1
- package/docs/data.json +4 -4
- package/lib/browsers.js +49 -24
- package/package.json +6 -8
- package/types/preview/@ember/routing/history-location.d.ts +2 -2
- package/CHANGELOG.md +0 -3843
- package/dist/packages/@ember/-internals/runtime/.gitignore +0 -1
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
import { templateFactory, programCompilationContext } from '@glimmer/opcode-compiler';
|
|
2
2
|
export { templateFactory as template, templateCacheCounters } from '@glimmer/opcode-compiler';
|
|
3
|
+
import { hasDOM } from '@ember/-internals/browser-environment';
|
|
4
|
+
import { assert, warn, debugFreeze, inspect, deprecate } from '@ember/debug';
|
|
5
|
+
import { action as action$1 } from '@ember/object';
|
|
6
|
+
import { isConstRef, valueForRef, createConstRef, isUpdatableRef, updateRef, createComputeRef, createPrimitiveRef, childRefFor, childRefFromParts, isInvokableRef, createUnboundRef, createInvokableRef, createReadOnlyRef, createDebugAliasRef, UNDEFINED_REFERENCE } from '@glimmer/reference';
|
|
7
|
+
import { untrack, createCache, consumeTag, tagFor, getValue, valueForTag, beginUntrackFrame, endUntrackFrame, beginTrackFrame, endTrackFrame, validateTag, createTag, dirtyTag, CONSTANT_TAG, isTracking, setTrackingTransactionEnv, createUpdatableTag, CURRENT_TAG } from '@glimmer/validator';
|
|
8
|
+
import { tracked, get, PROPERTY_DID_CHANGE, tagForObject, objectAt, tagForProperty, _getProp, _setProp, set } from '@ember/-internals/metal';
|
|
3
9
|
import { setOwner, getOwner, isFactory } from '@ember/-internals/owner';
|
|
4
10
|
import { guidFor, enumerableSymbol, getDebugName, isProxy, isObject, uuid } from '@ember/-internals/utils';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { createConstRef, isConstRef, valueForRef, isUpdatableRef, updateRef, childRefFor, childRefFromParts, createComputeRef, createPrimitiveRef, createUnboundRef, isInvokableRef, createInvokableRef, createReadOnlyRef, createDebugAliasRef, UNDEFINED_REFERENCE } from '@glimmer/reference';
|
|
8
|
-
import { untrack, consumeTag, createCache, getValue, tagFor, beginUntrackFrame, endUntrackFrame, valueForTag, beginTrackFrame, endTrackFrame, validateTag, createTag, dirtyTag, CONSTANT_TAG, isTracking, setTrackingTransactionEnv, createUpdatableTag, CURRENT_TAG } from '@glimmer/validator';
|
|
9
|
-
import { tracked, get, PROPERTY_DID_CHANGE, tagForObject, objectAt, tagForProperty, set, _getProp, _setProp } from '@ember/-internals/metal';
|
|
10
|
-
import { action } from '@ember/object';
|
|
11
|
-
import { hasDOM } from '@ember/-internals/browser-environment';
|
|
12
|
-
import { isSimpleClick, clearElementView, clearViewElement, getViewElement, MUTABLE_CELL, addChildView, setElementView, setViewElement, ActionSupport, ChildViewsSupport, ClassNamesSupport, CoreView, EventDispatcher, ViewMixin, ViewStateSupport, constructStyleDeprecationMessage, ActionManager, getViewId } from '@ember/-internals/views';
|
|
11
|
+
import { setInternalComponentManager, setComponentTemplate, setInternalHelperManager, setHelperManager, getInternalHelperManager, helperCapabilities, capabilityFlagsFrom, setInternalModifierManager, getInternalComponentManager, getComponentTemplate, setComponentManager as setComponentManager$1, componentCapabilities as componentCapabilities$1, modifierCapabilities as modifierCapabilities$1 } from '@glimmer/manager';
|
|
12
|
+
import { isSimpleClick, getViewElement, clearElementView, clearViewElement, MUTABLE_CELL, addChildView, setViewElement, setElementView, CoreView, ChildViewsSupport, ViewStateSupport, ClassNamesSupport, ActionSupport, ViewMixin, EventDispatcher, constructStyleDeprecationMessage, ActionManager, getViewId } from '@ember/-internals/views';
|
|
13
13
|
import { getEngineParent } from '@ember/engine';
|
|
14
14
|
import EngineInstance from '@ember/engine/instance';
|
|
15
15
|
import { flaggedInstrument, _instrumentStart } from '@ember/instrumentation';
|
|
16
16
|
import { service } from '@ember/service';
|
|
17
17
|
import { DEBUG } from '@glimmer/env';
|
|
18
|
+
import { TargetActionSupport, _contentFor } from '@ember/-internals/runtime';
|
|
19
|
+
import { reifyPositional, normalizeProperty, EMPTY_ARGS, createCapturedArgs, EMPTY_POSITIONAL, curry, templateOnlyComponent, TEMPLATE_ONLY_COMPONENT_MANAGER, hash, array, concat, fn, get as get$1, on, clientBuilder, runtimeContext, DOMTreeConstruction, DOMChanges, inTransaction, renderMain, rehydrationBuilder } from '@glimmer/runtime';
|
|
20
|
+
export { DOMChanges, DOMTreeConstruction, isSerializationFirstNode } from '@glimmer/runtime';
|
|
21
|
+
import { _WeakSet, unwrapTemplate, EMPTY_ARRAY as EMPTY_ARRAY$1, dict } from '@glimmer/util';
|
|
18
22
|
import { dasherize } from '@ember/-internals/string';
|
|
19
23
|
import { registerDestructor, associateDestroyableChild, destroy } from '@glimmer/destroyable';
|
|
20
|
-
import { join,
|
|
21
|
-
import { _WeakSet, EMPTY_ARRAY, unwrapTemplate, dict } from '@glimmer/util';
|
|
22
|
-
import { reifyPositional, normalizeProperty, EMPTY_ARGS, createCapturedArgs, curry, EMPTY_POSITIONAL, array, concat, fn, get as get$1, hash, on, templateOnlyComponent, TEMPLATE_ONLY_COMPONENT_MANAGER, clientBuilder, DOMChanges, DOMTreeConstruction, inTransaction, renderMain, runtimeContext, rehydrationBuilder } from '@glimmer/runtime';
|
|
23
|
-
export { DOMChanges, DOMTreeConstruction, isSerializationFirstNode } from '@glimmer/runtime';
|
|
24
|
-
import { TargetActionSupport, _contentFor } from '@ember/-internals/runtime';
|
|
24
|
+
import { join, _backburner, schedule, _getCurrentRunLoop } from '@ember/runloop';
|
|
25
25
|
import { FrameworkObject } from '@ember/object/-internals';
|
|
26
|
-
import { ENV } from '@ember/-internals/environment';
|
|
27
26
|
import { getFactoryFor, privatize } from '@ember/-internals/container';
|
|
27
|
+
import { ENV } from '@ember/-internals/environment';
|
|
28
|
+
import { artifacts } from '@glimmer/program';
|
|
29
|
+
import RSVP from 'rsvp';
|
|
28
30
|
import { NodeDOMTreeConstruction, serializeBuilder } from '@glimmer/node';
|
|
29
31
|
export { NodeDOMTreeConstruction } from '@glimmer/node';
|
|
32
|
+
import setGlobalContext from '@glimmer/global-context';
|
|
30
33
|
import { isEmberArray } from '@ember/array/-internals';
|
|
31
|
-
import { isHTMLSafe } from '@ember/-internals/glimmer';
|
|
34
|
+
import { isHTMLSafe as isHTMLSafe$1 } from '@ember/-internals/glimmer';
|
|
32
35
|
import { isArray } from '@ember/array';
|
|
33
|
-
import setGlobalContext from '@glimmer/global-context';
|
|
34
36
|
import { generateControllerFactory } from '@ember/routing/-internals';
|
|
35
|
-
import { artifacts } from '@glimmer/program';
|
|
36
|
-
import RSVP from 'rsvp';
|
|
37
37
|
|
|
38
38
|
var RootTemplate = templateFactory({
|
|
39
39
|
"id": "9BtKrod8",
|
|
@@ -313,8 +313,8 @@ class AbstractInput extends InternalComponent {
|
|
|
313
313
|
return virtualEvents.indexOf(name) !== -1;
|
|
314
314
|
}
|
|
315
315
|
}
|
|
316
|
-
__decorate([action], AbstractInput.prototype, "valueDidChange", null);
|
|
317
|
-
__decorate([action], AbstractInput.prototype, "keyUp", null);
|
|
316
|
+
__decorate([action$1], AbstractInput.prototype, "valueDidChange", null);
|
|
317
|
+
__decorate([action$1], AbstractInput.prototype, "keyUp", null);
|
|
318
318
|
|
|
319
319
|
var __decorate$1 = undefined && undefined.__decorate || function (decorators, target, key, desc) {
|
|
320
320
|
var c = arguments.length,
|
|
@@ -532,9 +532,9 @@ class Input extends AbstractInput {
|
|
|
532
532
|
return supportedArguments.indexOf(name) !== -1 || super.isSupportedArgument(name);
|
|
533
533
|
}
|
|
534
534
|
}
|
|
535
|
-
__decorate$1([action], Input.prototype, "change", null);
|
|
536
|
-
__decorate$1([action], Input.prototype, "input", null);
|
|
537
|
-
__decorate$1([action], Input.prototype, "checkedDidChange", null);
|
|
535
|
+
__decorate$1([action$1], Input.prototype, "change", null);
|
|
536
|
+
__decorate$1([action$1], Input.prototype, "input", null);
|
|
537
|
+
__decorate$1([action$1], Input.prototype, "checkedDidChange", null);
|
|
538
538
|
var Input$1 = opaquify(Input, InputTemplate);
|
|
539
539
|
|
|
540
540
|
var LinkToTemplate = templateFactory({
|
|
@@ -551,9 +551,9 @@ var __decorate$2 = undefined && undefined.__decorate || function (decorators, ta
|
|
|
551
551
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);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;
|
|
552
552
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
553
553
|
};
|
|
554
|
-
const EMPTY_ARRAY
|
|
554
|
+
const EMPTY_ARRAY = [];
|
|
555
555
|
const EMPTY_QUERY_PARAMS = {};
|
|
556
|
-
debugFreeze(EMPTY_ARRAY
|
|
556
|
+
debugFreeze(EMPTY_ARRAY);
|
|
557
557
|
debugFreeze(EMPTY_QUERY_PARAMS);
|
|
558
558
|
function isMissing(value) {
|
|
559
559
|
return value === null || value === undefined;
|
|
@@ -919,14 +919,16 @@ class LinkTo extends InternalComponent {
|
|
|
919
919
|
} else if ('model' in this.args.named) {
|
|
920
920
|
return [this.named('model')];
|
|
921
921
|
} else {
|
|
922
|
-
return EMPTY_ARRAY
|
|
922
|
+
return EMPTY_ARRAY;
|
|
923
923
|
}
|
|
924
924
|
}
|
|
925
925
|
get query() {
|
|
926
926
|
if ('query' in this.args.named) {
|
|
927
927
|
let query = this.named('query');
|
|
928
928
|
assert('The `@query` argument to the <LinkTo> component must be an object.', query !== null && typeof query === 'object');
|
|
929
|
-
return
|
|
929
|
+
return {
|
|
930
|
+
...query
|
|
931
|
+
};
|
|
930
932
|
} else {
|
|
931
933
|
return EMPTY_QUERY_PARAMS;
|
|
932
934
|
}
|
|
@@ -1019,7 +1021,7 @@ class LinkTo extends InternalComponent {
|
|
|
1019
1021
|
}
|
|
1020
1022
|
}
|
|
1021
1023
|
__decorate$2([service('-routing')], LinkTo.prototype, "routing", void 0);
|
|
1022
|
-
__decorate$2([action], LinkTo.prototype, "click", null);
|
|
1024
|
+
__decorate$2([action$1], LinkTo.prototype, "click", null);
|
|
1023
1025
|
let {
|
|
1024
1026
|
prototype
|
|
1025
1027
|
} = LinkTo;
|
|
@@ -1070,11 +1072,10 @@ let descriptorFor = (target, property) => {
|
|
|
1070
1072
|
configurable: true,
|
|
1071
1073
|
enumerable: false,
|
|
1072
1074
|
get: function query() {
|
|
1073
|
-
var _a;
|
|
1074
1075
|
if ('query' in this.args.named) {
|
|
1075
1076
|
let qp = superQueryGetter.call(this);
|
|
1076
1077
|
if (isQueryParams(qp)) {
|
|
1077
|
-
return
|
|
1078
|
+
return qp.values ?? EMPTY_QUERY_PARAMS;
|
|
1078
1079
|
} else {
|
|
1079
1080
|
return qp;
|
|
1080
1081
|
}
|
|
@@ -1270,8 +1271,8 @@ class Textarea extends AbstractInput {
|
|
|
1270
1271
|
return supportedArguments.indexOf(name) !== -1 || super.isSupportedArgument(name);
|
|
1271
1272
|
}
|
|
1272
1273
|
}
|
|
1273
|
-
__decorate$3([action], Textarea.prototype, "change", null);
|
|
1274
|
-
__decorate$3([action], Textarea.prototype, "input", null);
|
|
1274
|
+
__decorate$3([action$1], Textarea.prototype, "change", null);
|
|
1275
|
+
__decorate$3([action$1], Textarea.prototype, "input", null);
|
|
1275
1276
|
var Textarea$1 = opaquify(Textarea, TextareaTemplate);
|
|
1276
1277
|
|
|
1277
1278
|
function isTemplateFactory(template) {
|
|
@@ -1681,7 +1682,7 @@ const ACTIONS = new _WeakSet();
|
|
|
1681
1682
|
@for Ember.Templates.helpers
|
|
1682
1683
|
@public
|
|
1683
1684
|
*/
|
|
1684
|
-
var action
|
|
1685
|
+
var action = internalHelper(args => {
|
|
1685
1686
|
let {
|
|
1686
1687
|
named,
|
|
1687
1688
|
positional
|
|
@@ -1690,19 +1691,19 @@ var action$1 = internalHelper(args => {
|
|
|
1690
1691
|
// pos[0] is the context (or `this`)
|
|
1691
1692
|
// pos[1] is the action name or function
|
|
1692
1693
|
// Anything else is an action argument.
|
|
1693
|
-
let [context, action
|
|
1694
|
-
assert('hash position arguments', context && action
|
|
1695
|
-
let debugKey = action
|
|
1694
|
+
let [context, action, ...restArgs] = positional;
|
|
1695
|
+
assert('hash position arguments', context && action);
|
|
1696
|
+
let debugKey = action.debugLabel;
|
|
1696
1697
|
let target = 'target' in named ? named['target'] : context;
|
|
1697
1698
|
let processArgs = makeArgsProcessor('value' in named && named['value'] || false, restArgs);
|
|
1698
|
-
let fn
|
|
1699
|
-
if (isInvokableRef(action
|
|
1700
|
-
fn
|
|
1699
|
+
let fn;
|
|
1700
|
+
if (isInvokableRef(action)) {
|
|
1701
|
+
fn = makeClosureAction(action, action, invokeRef, processArgs, debugKey);
|
|
1701
1702
|
} else {
|
|
1702
|
-
fn
|
|
1703
|
+
fn = makeDynamicClosureAction(valueForRef(context), target, action, processArgs, debugKey);
|
|
1703
1704
|
}
|
|
1704
|
-
ACTIONS.add(fn
|
|
1705
|
-
return createUnboundRef(fn
|
|
1705
|
+
ACTIONS.add(fn);
|
|
1706
|
+
return createUnboundRef(fn, '(result of an `action` helper)');
|
|
1706
1707
|
});
|
|
1707
1708
|
function NOOP$2(args) {
|
|
1708
1709
|
return args;
|
|
@@ -1741,19 +1742,19 @@ function makeDynamicClosureAction(context, targetRef, actionRef, processArgs, de
|
|
|
1741
1742
|
return makeClosureAction(context, valueForRef(targetRef), valueForRef(actionRef), processArgs, debugKey)(...args);
|
|
1742
1743
|
};
|
|
1743
1744
|
}
|
|
1744
|
-
function makeClosureAction(context, target, action
|
|
1745
|
+
function makeClosureAction(context, target, action, processArgs, debugKey) {
|
|
1745
1746
|
let self;
|
|
1746
|
-
let fn
|
|
1747
|
-
assert(`Action passed is null or undefined in (action) from ${target}.`, action
|
|
1748
|
-
if (typeof action
|
|
1747
|
+
let fn;
|
|
1748
|
+
assert(`Action passed is null or undefined in (action) from ${target}.`, action !== undefined && action !== null);
|
|
1749
|
+
if (typeof action === 'string') {
|
|
1749
1750
|
self = target;
|
|
1750
|
-
fn
|
|
1751
|
-
assert(`An action named '${action
|
|
1752
|
-
} else if (typeof action
|
|
1751
|
+
fn = target.actions && target.actions[action];
|
|
1752
|
+
assert(`An action named '${action}' was not found in ${target}`, Boolean(fn));
|
|
1753
|
+
} else if (typeof action === 'function') {
|
|
1753
1754
|
self = context;
|
|
1754
|
-
fn
|
|
1755
|
+
fn = action;
|
|
1755
1756
|
} else {
|
|
1756
|
-
assert(`An action could not be made for \`${debugKey || action
|
|
1757
|
+
assert(`An action could not be made for \`${debugKey || action}\` in ${target}. Please confirm that you are using either a quoted action name (i.e. \`(action '${debugKey || 'myAction'}')\`) or a function available in ${target}.`, false);
|
|
1757
1758
|
}
|
|
1758
1759
|
return (...args) => {
|
|
1759
1760
|
let payload = {
|
|
@@ -1762,7 +1763,7 @@ function makeClosureAction(context, target, action$$1, processArgs, debugKey) {
|
|
|
1762
1763
|
label: '@glimmer/closure-action'
|
|
1763
1764
|
};
|
|
1764
1765
|
return flaggedInstrument('interaction.ember-action', payload, () => {
|
|
1765
|
-
return join(self, fn
|
|
1766
|
+
return join(self, fn, ...processArgs(args));
|
|
1766
1767
|
});
|
|
1767
1768
|
};
|
|
1768
1769
|
}
|
|
@@ -1811,14 +1812,6 @@ class MutableCell {
|
|
|
1811
1812
|
}
|
|
1812
1813
|
}
|
|
1813
1814
|
|
|
1814
|
-
var __rest = undefined && undefined.__rest || function (s, e) {
|
|
1815
|
-
var t = {};
|
|
1816
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
1817
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
1818
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
1819
|
-
}
|
|
1820
|
-
return t;
|
|
1821
|
-
};
|
|
1822
1815
|
const ARGS = enumerableSymbol('ARGS');
|
|
1823
1816
|
const HAS_BLOCK = enumerableSymbol('HAS_BLOCK');
|
|
1824
1817
|
const DIRTY_TAG = Symbol('DIRTY_TAG');
|
|
@@ -1897,26 +1890,27 @@ class CurlyComponentManager {
|
|
|
1897
1890
|
return CURLY_CAPABILITIES;
|
|
1898
1891
|
}
|
|
1899
1892
|
prepareArgs(ComponentClass, args) {
|
|
1900
|
-
var _a;
|
|
1901
1893
|
if (args.named.has('__ARGS__')) {
|
|
1902
1894
|
assert('[BUG] cannot pass both __ARGS__ and positional arguments', args.positional.length === 0);
|
|
1903
|
-
let
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
rest = __rest(_b, ["__ARGS__"]);
|
|
1895
|
+
let {
|
|
1896
|
+
__ARGS__,
|
|
1897
|
+
...rest
|
|
1898
|
+
} = args.named.capture();
|
|
1908
1899
|
assert('[BUG] unexpectedly missing __ARGS__ after check', __ARGS__);
|
|
1909
1900
|
// does this need to be untracked?
|
|
1910
1901
|
let __args__ = valueForRef(__ARGS__);
|
|
1911
1902
|
let prepared = {
|
|
1912
1903
|
positional: __args__.positional,
|
|
1913
|
-
named:
|
|
1904
|
+
named: {
|
|
1905
|
+
...rest,
|
|
1906
|
+
...__args__.named
|
|
1907
|
+
}
|
|
1914
1908
|
};
|
|
1915
1909
|
return prepared;
|
|
1916
1910
|
}
|
|
1917
1911
|
const {
|
|
1918
1912
|
positionalParams
|
|
1919
|
-
} =
|
|
1913
|
+
} = ComponentClass.class ?? ComponentClass;
|
|
1920
1914
|
// early exits
|
|
1921
1915
|
if (positionalParams === undefined || positionalParams === null || args.positional.length === 0) {
|
|
1922
1916
|
return null;
|
|
@@ -1943,7 +1937,7 @@ class CurlyComponentManager {
|
|
|
1943
1937
|
return null;
|
|
1944
1938
|
}
|
|
1945
1939
|
return {
|
|
1946
|
-
positional: EMPTY_ARRAY,
|
|
1940
|
+
positional: EMPTY_ARRAY$1,
|
|
1947
1941
|
named
|
|
1948
1942
|
};
|
|
1949
1943
|
}
|
|
@@ -2027,8 +2021,7 @@ class CurlyComponentManager {
|
|
|
2027
2021
|
return bucket;
|
|
2028
2022
|
}
|
|
2029
2023
|
getDebugName(definition) {
|
|
2030
|
-
|
|
2031
|
-
return definition.fullName || definition.normalizedName || ((_a = definition.class) === null || _a === void 0 ? void 0 : _a.name) || definition.name;
|
|
2024
|
+
return definition.fullName || definition.normalizedName || definition.class?.name || definition.name;
|
|
2032
2025
|
}
|
|
2033
2026
|
getSelf({
|
|
2034
2027
|
rootRef
|
|
@@ -2270,8 +2263,7 @@ class Component extends CoreView.extend(ChildViewsSupport, ViewStateSupport, Cla
|
|
|
2270
2263
|
return this.__dispatcher;
|
|
2271
2264
|
}
|
|
2272
2265
|
on(name, target, method) {
|
|
2273
|
-
|
|
2274
|
-
(_a = this._dispatcher) === null || _a === void 0 ? void 0 : _a.setupHandlerForEmberEvent(name);
|
|
2266
|
+
this._dispatcher?.setupHandlerForEmberEvent(name);
|
|
2275
2267
|
// The `on` method here comes from the Evented mixin. Since this mixin
|
|
2276
2268
|
// is applied to the parent of this class, however, we are still able
|
|
2277
2269
|
// to use `super`.
|
|
@@ -2541,8 +2533,8 @@ class SimpleClassicHelperManager {
|
|
|
2541
2533
|
} = definition;
|
|
2542
2534
|
return () => compute.call(null, args.positional, args.named);
|
|
2543
2535
|
}
|
|
2544
|
-
getValue(fn
|
|
2545
|
-
return fn
|
|
2536
|
+
getValue(fn) {
|
|
2537
|
+
return fn();
|
|
2546
2538
|
}
|
|
2547
2539
|
getDebugName(definition) {
|
|
2548
2540
|
return getDebugName(definition.compute);
|
|
@@ -2628,7 +2620,7 @@ function escapeExpression(string) {
|
|
|
2628
2620
|
let s;
|
|
2629
2621
|
if (typeof string !== 'string') {
|
|
2630
2622
|
// don't escape SafeStrings, since they're already safe
|
|
2631
|
-
if (isHTMLSafe
|
|
2623
|
+
if (isHTMLSafe(string)) {
|
|
2632
2624
|
return string.toHTML();
|
|
2633
2625
|
} else if (string === null || string === undefined) {
|
|
2634
2626
|
return '';
|
|
@@ -2710,7 +2702,7 @@ function htmlSafe(str) {
|
|
|
2710
2702
|
@return {Boolean} `true` if the string was decorated with `htmlSafe`, `false` otherwise.
|
|
2711
2703
|
@public
|
|
2712
2704
|
*/
|
|
2713
|
-
function isHTMLSafe
|
|
2705
|
+
function isHTMLSafe(str) {
|
|
2714
2706
|
return str !== null && typeof str === 'object' && 'toHTML' in str && typeof str.toHTML === 'function';
|
|
2715
2707
|
}
|
|
2716
2708
|
|
|
@@ -3166,13 +3158,13 @@ class ArrayIterator extends BoundedIterator {
|
|
|
3166
3158
|
return iterable.length > 0 ? new this(iterable) : null;
|
|
3167
3159
|
}
|
|
3168
3160
|
static fromForEachable(object) {
|
|
3169
|
-
let array
|
|
3170
|
-
object.forEach(item => array
|
|
3171
|
-
return this.from(array
|
|
3161
|
+
let array = [];
|
|
3162
|
+
object.forEach(item => array.push(item));
|
|
3163
|
+
return this.from(array);
|
|
3172
3164
|
}
|
|
3173
|
-
constructor(array
|
|
3174
|
-
super(array
|
|
3175
|
-
this.array = array
|
|
3165
|
+
constructor(array) {
|
|
3166
|
+
super(array.length);
|
|
3167
|
+
this.array = array;
|
|
3176
3168
|
}
|
|
3177
3169
|
valueFor(position) {
|
|
3178
3170
|
return this.array[position];
|
|
@@ -3182,9 +3174,9 @@ class EmberArrayIterator extends BoundedIterator {
|
|
|
3182
3174
|
static from(iterable) {
|
|
3183
3175
|
return iterable.length > 0 ? new this(iterable) : null;
|
|
3184
3176
|
}
|
|
3185
|
-
constructor(array
|
|
3186
|
-
super(array
|
|
3187
|
-
this.array = array
|
|
3177
|
+
constructor(array) {
|
|
3178
|
+
super(array.length);
|
|
3179
|
+
this.array = array;
|
|
3188
3180
|
}
|
|
3189
3181
|
valueFor(position) {
|
|
3190
3182
|
return objectAt(this.array, position);
|
|
@@ -3320,7 +3312,7 @@ function toBool(predicate) {
|
|
|
3320
3312
|
} else if (isArray(predicate)) {
|
|
3321
3313
|
consumeTag(tagForProperty(predicate, '[]'));
|
|
3322
3314
|
return predicate.length !== 0;
|
|
3323
|
-
} else if (isHTMLSafe(predicate)) {
|
|
3315
|
+
} else if (isHTMLSafe$1(predicate)) {
|
|
3324
3316
|
return Boolean(predicate.toString());
|
|
3325
3317
|
} else {
|
|
3326
3318
|
return Boolean(predicate);
|
|
@@ -3350,7 +3342,7 @@ setGlobalContext({
|
|
|
3350
3342
|
},
|
|
3351
3343
|
warnIfStyleNotTrusted(value) {
|
|
3352
3344
|
warn(constructStyleDeprecationMessage(String(value)), (() => {
|
|
3353
|
-
if (value === null || value === undefined || isHTMLSafe
|
|
3345
|
+
if (value === null || value === undefined || isHTMLSafe(value)) {
|
|
3354
3346
|
return true;
|
|
3355
3347
|
}
|
|
3356
3348
|
return false;
|
|
@@ -3359,15 +3351,13 @@ setGlobalContext({
|
|
|
3359
3351
|
});
|
|
3360
3352
|
},
|
|
3361
3353
|
assert(test, msg, options) {
|
|
3362
|
-
var _a;
|
|
3363
3354
|
if (DEBUG) {
|
|
3364
|
-
let id = options
|
|
3355
|
+
let id = options?.id;
|
|
3365
3356
|
let override = VM_ASSERTION_OVERRIDES.filter(o => o.id === id)[0];
|
|
3366
|
-
assert(
|
|
3357
|
+
assert(override?.message ?? msg, test);
|
|
3367
3358
|
}
|
|
3368
3359
|
},
|
|
3369
3360
|
deprecate(msg, test, options) {
|
|
3370
|
-
var _a;
|
|
3371
3361
|
if (DEBUG) {
|
|
3372
3362
|
let {
|
|
3373
3363
|
id
|
|
@@ -3379,15 +3369,15 @@ setGlobalContext({
|
|
|
3379
3369
|
if (!override) throw new Error(`deprecation override for ${id} not found`);
|
|
3380
3370
|
// allow deprecations to be disabled in the VM_DEPRECATION_OVERRIDES array below
|
|
3381
3371
|
if (!override.disabled) {
|
|
3382
|
-
deprecate(
|
|
3372
|
+
deprecate(override.message ?? msg, Boolean(test), override);
|
|
3383
3373
|
}
|
|
3384
3374
|
}
|
|
3385
3375
|
}
|
|
3386
3376
|
});
|
|
3387
3377
|
if (DEBUG) {
|
|
3388
|
-
setTrackingTransactionEnv
|
|
3378
|
+
setTrackingTransactionEnv?.({
|
|
3389
3379
|
debugMessage(obj, keyName) {
|
|
3390
|
-
let dirtyString = keyName ? `\`${keyName}\` on \`${getDebugName
|
|
3380
|
+
let dirtyString = keyName ? `\`${keyName}\` on \`${getDebugName?.(obj)}\`` : `\`${getDebugName?.(obj)}\``;
|
|
3391
3381
|
return `You attempted to update ${dirtyString}, but it had already been used previously in the same computation. Attempting to update a value after using it in a computation can cause logical errors, infinite revalidation bugs, and performance issues, and is not supported.`;
|
|
3392
3382
|
}
|
|
3393
3383
|
});
|
|
@@ -3491,7 +3481,6 @@ var normalizeClassHelper = internalHelper(({
|
|
|
3491
3481
|
var resolve = internalHelper(({
|
|
3492
3482
|
positional
|
|
3493
3483
|
}, owner) => {
|
|
3494
|
-
var _a;
|
|
3495
3484
|
// why is this allowed to be undefined in the first place?
|
|
3496
3485
|
assert('[BUG] missing owner', owner);
|
|
3497
3486
|
assert(`[BUG] wrong number of positional arguments, expecting 1, got ${positional.length}`, positional.length === 1);
|
|
@@ -3504,7 +3493,7 @@ var resolve = internalHelper(({
|
|
|
3504
3493
|
let [type, name] = fullName.split(':');
|
|
3505
3494
|
assert(`Attempted to invoke \`(-resolve "${fullName}")\`, but ${name} was not a valid ${type} name.`, owner.hasRegistration(fullName));
|
|
3506
3495
|
}
|
|
3507
|
-
return createConstRef(
|
|
3496
|
+
return createConstRef(owner.factoryFor(fullName)?.class, `(-resolve "${fullName}")`);
|
|
3508
3497
|
});
|
|
3509
3498
|
|
|
3510
3499
|
/**
|
|
@@ -3860,9 +3849,9 @@ class ActionState {
|
|
|
3860
3849
|
}
|
|
3861
3850
|
getEventName() {
|
|
3862
3851
|
let {
|
|
3863
|
-
on
|
|
3852
|
+
on
|
|
3864
3853
|
} = this.namedArgs;
|
|
3865
|
-
return on
|
|
3854
|
+
return on !== undefined ? valueForRef(on) : 'click';
|
|
3866
3855
|
}
|
|
3867
3856
|
getActionArgs() {
|
|
3868
3857
|
let result = new Array(this.actionArgs.length);
|
|
@@ -4005,7 +3994,7 @@ class ActionModifierManager {
|
|
|
4005
3994
|
ensureEventSetup(actionState) {
|
|
4006
3995
|
let dispatcher = actionState.owner.lookup('event_dispatcher:main');
|
|
4007
3996
|
assert('Expected dispatcher to be an EventDispatcher', dispatcher instanceof EventDispatcher);
|
|
4008
|
-
dispatcher
|
|
3997
|
+
dispatcher?.setupHandlerForEmberEvent(actionState.eventName);
|
|
4009
3998
|
}
|
|
4010
3999
|
getTag(actionState) {
|
|
4011
4000
|
return actionState.tag;
|
|
@@ -4034,8 +4023,8 @@ const CAPABILITIES$2 = {
|
|
|
4034
4023
|
};
|
|
4035
4024
|
class MountManager {
|
|
4036
4025
|
getDynamicLayout(state) {
|
|
4037
|
-
let templateFactory
|
|
4038
|
-
return unwrapTemplate(templateFactory
|
|
4026
|
+
let templateFactory = state.engine.lookup('template:application');
|
|
4027
|
+
return unwrapTemplate(templateFactory(state.engine)).asLayout();
|
|
4039
4028
|
}
|
|
4040
4029
|
getCapabilities() {
|
|
4041
4030
|
return CAPABILITIES$2;
|
|
@@ -4253,7 +4242,6 @@ const outletHelper = internalHelper((_args, owner, scope) => {
|
|
|
4253
4242
|
let lastState = null;
|
|
4254
4243
|
let definition = null;
|
|
4255
4244
|
return createComputeRef(() => {
|
|
4256
|
-
var _a, _b;
|
|
4257
4245
|
let outletState = valueForRef(outletRef);
|
|
4258
4246
|
let state = stateFor(outletRef, outletState);
|
|
4259
4247
|
if (!validate(state, lastState)) {
|
|
@@ -4280,7 +4268,7 @@ const outletHelper = internalHelper((_args, owner, scope) => {
|
|
|
4280
4268
|
named['model'] = createDebugAliasRef('@model', named['model']);
|
|
4281
4269
|
}
|
|
4282
4270
|
let args = createCapturedArgs(named, EMPTY_POSITIONAL);
|
|
4283
|
-
definition = curry(0 /* CurriedType.Component */, new OutletComponentDefinition(state),
|
|
4271
|
+
definition = curry(0 /* CurriedType.Component */, new OutletComponentDefinition(state), outletState?.render?.owner ?? owner, args, true);
|
|
4284
4272
|
} else {
|
|
4285
4273
|
definition = null;
|
|
4286
4274
|
}
|
|
@@ -4353,7 +4341,7 @@ function lookupComponentPair(owner, name, options) {
|
|
|
4353
4341
|
}
|
|
4354
4342
|
}
|
|
4355
4343
|
const BUILTIN_KEYWORD_HELPERS = {
|
|
4356
|
-
action
|
|
4344
|
+
action,
|
|
4357
4345
|
mut,
|
|
4358
4346
|
readonly,
|
|
4359
4347
|
unbound,
|
|
@@ -4366,14 +4354,15 @@ const BUILTIN_KEYWORD_HELPERS = {
|
|
|
4366
4354
|
'-outlet': outletHelper,
|
|
4367
4355
|
'-in-el-null': inElementNullCheckHelper
|
|
4368
4356
|
};
|
|
4369
|
-
const BUILTIN_HELPERS =
|
|
4357
|
+
const BUILTIN_HELPERS = {
|
|
4358
|
+
...BUILTIN_KEYWORD_HELPERS,
|
|
4370
4359
|
array,
|
|
4371
4360
|
concat,
|
|
4372
4361
|
fn,
|
|
4373
4362
|
get: get$1,
|
|
4374
4363
|
hash,
|
|
4375
4364
|
'unique-id': uniqueId
|
|
4376
|
-
}
|
|
4365
|
+
};
|
|
4377
4366
|
if (DEBUG) {
|
|
4378
4367
|
BUILTIN_HELPERS['-disallow-dynamic-resolution'] = disallowDynamicResolution;
|
|
4379
4368
|
} else {
|
|
@@ -4390,9 +4379,10 @@ if (DEBUG) {
|
|
|
4390
4379
|
const BUILTIN_KEYWORD_MODIFIERS = {
|
|
4391
4380
|
action: actionModifier
|
|
4392
4381
|
};
|
|
4393
|
-
const BUILTIN_MODIFIERS =
|
|
4382
|
+
const BUILTIN_MODIFIERS = {
|
|
4383
|
+
...BUILTIN_KEYWORD_MODIFIERS,
|
|
4394
4384
|
on
|
|
4395
|
-
}
|
|
4385
|
+
};
|
|
4396
4386
|
const CLASSIC_HELPER_MANAGER_ASSOCIATED = new _WeakSet();
|
|
4397
4387
|
class ResolverImpl {
|
|
4398
4388
|
constructor() {
|
|
@@ -4403,9 +4393,9 @@ class ResolverImpl {
|
|
|
4403
4393
|
}
|
|
4404
4394
|
lookupHelper(name, owner) {
|
|
4405
4395
|
assert(`You attempted to overwrite the built-in helper "${name}" which is not allowed. Please rename the helper.`, !(BUILTIN_HELPERS[name] && owner.hasRegistration(`helper:${name}`)));
|
|
4406
|
-
let helper
|
|
4407
|
-
if (helper
|
|
4408
|
-
return helper
|
|
4396
|
+
let helper = BUILTIN_HELPERS[name];
|
|
4397
|
+
if (helper !== undefined) {
|
|
4398
|
+
return helper;
|
|
4409
4399
|
}
|
|
4410
4400
|
let factory = owner.factoryFor(`helper:${name}`);
|
|
4411
4401
|
if (factory === undefined) {
|
|
@@ -4434,8 +4424,7 @@ class ResolverImpl {
|
|
|
4434
4424
|
return definition;
|
|
4435
4425
|
}
|
|
4436
4426
|
lookupBuiltInHelper(name) {
|
|
4437
|
-
|
|
4438
|
-
return (_a = BUILTIN_KEYWORD_HELPERS[name]) !== null && _a !== void 0 ? _a : null;
|
|
4427
|
+
return BUILTIN_KEYWORD_HELPERS[name] ?? null;
|
|
4439
4428
|
}
|
|
4440
4429
|
lookupModifier(name, owner) {
|
|
4441
4430
|
let builtin = BUILTIN_MODIFIERS[name];
|
|
@@ -4449,8 +4438,7 @@ class ResolverImpl {
|
|
|
4449
4438
|
return modifier.class || null;
|
|
4450
4439
|
}
|
|
4451
4440
|
lookupBuiltInModifier(name) {
|
|
4452
|
-
|
|
4453
|
-
return (_a = BUILTIN_KEYWORD_MODIFIERS[name]) !== null && _a !== void 0 ? _a : null;
|
|
4441
|
+
return BUILTIN_KEYWORD_MODIFIERS[name] ?? null;
|
|
4454
4442
|
}
|
|
4455
4443
|
lookupComponent(name, owner) {
|
|
4456
4444
|
let pair = lookupComponentPair(owner, name);
|
|
@@ -4530,11 +4518,11 @@ class OutletView {
|
|
|
4530
4518
|
let {
|
|
4531
4519
|
environment: _environment,
|
|
4532
4520
|
application: namespace,
|
|
4533
|
-
template: templateFactory
|
|
4521
|
+
template: templateFactory
|
|
4534
4522
|
} = options;
|
|
4535
4523
|
let owner = getOwner(options);
|
|
4536
4524
|
assert('OutletView is unexpectedly missing an owner', owner);
|
|
4537
|
-
let template = templateFactory
|
|
4525
|
+
let template = templateFactory(owner);
|
|
4538
4526
|
return new OutletView(_environment, owner, template, namespace);
|
|
4539
4527
|
}
|
|
4540
4528
|
constructor(_environment, owner, template, namespace) {
|
|
@@ -4618,18 +4606,18 @@ const NO_OP = () => {};
|
|
|
4618
4606
|
// This wrapper logic prevents us from rerendering in case of a hard failure
|
|
4619
4607
|
// during render. This prevents infinite revalidation type loops from occuring,
|
|
4620
4608
|
// and ensures that errors are not swallowed by subsequent follow on failures.
|
|
4621
|
-
function errorLoopTransaction(fn
|
|
4609
|
+
function errorLoopTransaction(fn) {
|
|
4622
4610
|
if (DEBUG) {
|
|
4623
4611
|
return () => {
|
|
4624
4612
|
let didError = true;
|
|
4625
4613
|
try {
|
|
4626
|
-
fn
|
|
4614
|
+
fn();
|
|
4627
4615
|
didError = false;
|
|
4628
4616
|
} finally {
|
|
4629
4617
|
if (didError) {
|
|
4630
4618
|
// Noop the function so that we won't keep calling it and causing
|
|
4631
4619
|
// infinite looping failures;
|
|
4632
|
-
fn
|
|
4620
|
+
fn = () => {
|
|
4633
4621
|
// eslint-disable-next-line no-console
|
|
4634
4622
|
console.warn('Attempted to rerender, but the Ember application has had an unrecoverable error occur during render. You should reload the application after fixing the cause of the error.');
|
|
4635
4623
|
};
|
|
@@ -4637,7 +4625,7 @@ function errorLoopTransaction(fn$$1) {
|
|
|
4637
4625
|
}
|
|
4638
4626
|
};
|
|
4639
4627
|
} else {
|
|
4640
|
-
return fn
|
|
4628
|
+
return fn;
|
|
4641
4629
|
}
|
|
4642
4630
|
}
|
|
4643
4631
|
class RootState {
|
|
@@ -5053,91 +5041,10 @@ function setupEngineRegistry(registry) {
|
|
|
5053
5041
|
@return {Object} the same object passed in
|
|
5054
5042
|
@public
|
|
5055
5043
|
*/
|
|
5056
|
-
function setComponentManager
|
|
5057
|
-
return setComponentManager(manager, obj);
|
|
5044
|
+
function setComponentManager(manager, obj) {
|
|
5045
|
+
return setComponentManager$1(manager, obj);
|
|
5058
5046
|
}
|
|
5059
|
-
let componentCapabilities
|
|
5060
|
-
let modifierCapabilities
|
|
5061
|
-
|
|
5062
|
-
/**
|
|
5063
|
-
[Glimmer](https://github.com/tildeio/glimmer) is a templating engine used by Ember.js that is compatible with a subset of the [Handlebars](http://handlebarsjs.com/) syntax.
|
|
5064
|
-
|
|
5065
|
-
### Showing a property
|
|
5066
|
-
|
|
5067
|
-
Templates manage the flow of an application's UI, and display state (through
|
|
5068
|
-
the DOM) to a user. For example, given a component with the property "name",
|
|
5069
|
-
that component's template can use the name in several ways:
|
|
5070
|
-
|
|
5071
|
-
```app/components/person-profile.js
|
|
5072
|
-
import Component from '@ember/component';
|
|
5073
|
-
|
|
5074
|
-
export default Component.extend({
|
|
5075
|
-
name: 'Jill'
|
|
5076
|
-
});
|
|
5077
|
-
```
|
|
5078
|
-
|
|
5079
|
-
```app/components/person-profile.hbs
|
|
5080
|
-
{{this.name}}
|
|
5081
|
-
<div>{{this.name}}</div>
|
|
5082
|
-
<span data-name={{this.name}}></span>
|
|
5083
|
-
```
|
|
5084
|
-
|
|
5085
|
-
Any time the "name" property on the component changes, the DOM will be
|
|
5086
|
-
updated.
|
|
5087
|
-
|
|
5088
|
-
Properties can be chained as well:
|
|
5089
|
-
|
|
5090
|
-
```handlebars
|
|
5091
|
-
{{@aUserModel.name}}
|
|
5092
|
-
<div>{{@listOfUsers.firstObject.name}}</div>
|
|
5093
|
-
```
|
|
5094
|
-
|
|
5095
|
-
### Using Ember helpers
|
|
5096
|
-
|
|
5097
|
-
When content is passed in mustaches `{{}}`, Ember will first try to find a helper
|
|
5098
|
-
or component with that name. For example, the `if` helper:
|
|
5099
|
-
|
|
5100
|
-
```app/components/person-profile.hbs
|
|
5101
|
-
{{if this.name "I have a name" "I have no name"}}
|
|
5102
|
-
<span data-has-name={{if this.name true}}></span>
|
|
5103
|
-
```
|
|
5104
|
-
|
|
5105
|
-
The returned value is placed where the `{{}}` is called. The above style is
|
|
5106
|
-
called "inline". A second style of helper usage is called "block". For example:
|
|
5107
|
-
|
|
5108
|
-
```handlebars
|
|
5109
|
-
{{#if this.name}}
|
|
5110
|
-
I have a name
|
|
5111
|
-
{{else}}
|
|
5112
|
-
I have no name
|
|
5113
|
-
{{/if}}
|
|
5114
|
-
```
|
|
5115
|
-
|
|
5116
|
-
The block form of helpers allows you to control how the UI is created based
|
|
5117
|
-
on the values of properties.
|
|
5118
|
-
A third form of helper is called "nested". For example here the concat
|
|
5119
|
-
helper will add " Doe" to a displayed name if the person has no last name:
|
|
5120
|
-
|
|
5121
|
-
```handlebars
|
|
5122
|
-
<span data-name={{concat this.firstName (
|
|
5123
|
-
if this.lastName (concat " " this.lastName) "Doe"
|
|
5124
|
-
)}}></span>
|
|
5125
|
-
```
|
|
5126
|
-
|
|
5127
|
-
Ember's built-in helpers are described under the [Ember.Templates.helpers](/ember/release/classes/Ember.Templates.helpers)
|
|
5128
|
-
namespace. Documentation on creating custom helpers can be found under
|
|
5129
|
-
[helper](/ember/release/functions/@ember%2Fcomponent%2Fhelper/helper) (or
|
|
5130
|
-
under [Helper](/ember/release/classes/Helper) if a helper requires access to
|
|
5131
|
-
dependency injection).
|
|
5132
|
-
|
|
5133
|
-
### Invoking a Component
|
|
5134
|
-
|
|
5135
|
-
Ember components represent state to the UI of an application. Further
|
|
5136
|
-
reading on components can be found under [Component](/ember/release/classes/Component).
|
|
5137
|
-
|
|
5138
|
-
@module @ember/component
|
|
5139
|
-
@main @ember/component
|
|
5140
|
-
@public
|
|
5141
|
-
*/
|
|
5047
|
+
let componentCapabilities = componentCapabilities$1;
|
|
5048
|
+
let modifierCapabilities = modifierCapabilities$1;
|
|
5142
5049
|
|
|
5143
|
-
export {
|
|
5050
|
+
export { Component, Helper, Input$1 as Input, LinkTo$1 as LinkTo, OutletView, Renderer, RootTemplate, SafeString, Textarea$1 as Textarea, _resetRenderers, componentCapabilities, escapeExpression, getTemplate, getTemplates, hasTemplate, helper, htmlSafe, isHTMLSafe, modifierCapabilities, renderSettled, setComponentManager, setTemplate, setTemplates, setupApplicationRegistry, setupEngineRegistry };
|