ember-source 7.3.0-alpha.1 → 7.3.0-alpha.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/dev/packages/@ember/-internals/glimmer/index.js +6 -6
- package/dist/dev/packages/@ember/-internals/metal/index.js +8 -8
- package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +2 -2
- package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +1 -1
- package/dist/dev/packages/@ember/-internals/views/lib/system/event_dispatcher.js +1 -1
- package/dist/dev/packages/@ember/-internals/views/lib/views/core_view.js +1 -1
- package/dist/dev/packages/@ember/application/index.js +1 -1
- package/dist/dev/packages/@ember/application/instance.js +4 -4
- package/dist/dev/packages/@ember/array/index.js +3 -3
- package/dist/dev/packages/@ember/array/proxy.js +3 -3
- package/dist/dev/packages/@ember/component/index.js +2 -2
- package/dist/dev/packages/@ember/controller/index.js +2 -2
- package/dist/dev/packages/@ember/engine/index.js +2 -2
- package/dist/dev/packages/@ember/object/computed.js +2 -2
- package/dist/dev/packages/@ember/object/core.js +2 -2
- package/dist/dev/packages/@ember/object/index.js +4 -4
- package/dist/dev/packages/@ember/object/lib/computed/computed_macros.js +3 -3
- package/dist/dev/packages/@ember/object/lib/computed/reduce_computed_macros.js +1 -1
- package/dist/dev/packages/@ember/object/mixin.js +1 -1
- package/dist/dev/packages/@ember/object/observable.js +3 -3
- package/dist/dev/packages/@ember/object/promise-proxy-mixin.js +2 -2
- package/dist/dev/packages/@ember/renderer/index.js +1 -1
- package/dist/dev/packages/@ember/routing/route.js +3 -3
- package/dist/dev/packages/@ember/routing/router.js +2 -2
- package/dist/dev/packages/@ember/service/index.js +1 -1
- package/dist/dev/packages/@glimmer/node/index.js +2 -2
- package/dist/dev/packages/@glimmer/runtime/index.js +3 -3
- package/dist/dev/packages/@glimmer/tracking/index.js +1 -1
- package/dist/dev/packages/@glimmer/validator/index.js +1 -1
- package/dist/dev/packages/ember/version.js +1 -1
- package/dist/dev/packages/shared-chunks/{alias-DpqL1qx6.js → alias-CT_thCad.js} +2 -2
- package/dist/dev/packages/shared-chunks/{api-C0PAtEgQ.js → api-Dz70AUL_.js} +6 -4
- package/dist/dev/packages/shared-chunks/{array-CVEnNWng.js → array-DvaweI_T.js} +1 -1
- package/dist/dev/packages/shared-chunks/{computed-BPCtuOxQ.js → computed-DGxbeUbf.js} +1 -6
- package/dist/dev/packages/shared-chunks/{index-CCyXUNBa.js → index-D1AjYv31.js} +3 -3
- package/dist/dev/packages/shared-chunks/{injected_property-CbBLr5jt.js → injected_property-DbXd6Gax.js} +1 -1
- package/dist/dev/packages/shared-chunks/{property_set-qCUylPEK.js → property_set-CVlVgdor.js} +1 -1
- package/dist/dev/packages/shared-chunks/{rehydrate-builder-C6k1XhET.js → rehydrate-builder-CsnkZkur.js} +1 -1
- package/dist/dev/packages/shared-chunks/{render-87_sKZ_k.js → render-CtH73XOv.js} +10 -5
- package/dist/dev/packages/shared-chunks/{serialize-builder-BlxBjwO-.js → serialize-builder-D1oAeiyl.js} +1 -1
- package/dist/dev/packages/shared-chunks/{set_properties-C4TSebH6.js → set_properties-CEUT_EJn.js} +2 -2
- package/dist/dev/packages/shared-chunks/{setup-registry-BHdDJATP.js → setup-registry-DQ3c4Juo.js} +6 -6
- package/dist/dev/packages/shared-chunks/{textarea-C4lYkaHj.js → textarea-DEvw4ezm.js} +1 -1
- package/dist/dev/packages/shared-chunks/tracked-57EW14Ny.js +253 -0
- package/dist/dev/packages/shared-chunks/tracked-value-DhyJmrhG.js +115 -0
- package/dist/prod/packages/@ember/-internals/glimmer/index.js +6 -6
- package/dist/prod/packages/@ember/-internals/metal/index.js +8 -8
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +2 -2
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +1 -1
- package/dist/prod/packages/@ember/-internals/views/lib/system/event_dispatcher.js +1 -1
- package/dist/prod/packages/@ember/-internals/views/lib/views/core_view.js +1 -1
- package/dist/prod/packages/@ember/application/index.js +1 -1
- package/dist/prod/packages/@ember/application/instance.js +3 -3
- package/dist/prod/packages/@ember/array/index.js +3 -3
- package/dist/prod/packages/@ember/array/proxy.js +3 -3
- package/dist/prod/packages/@ember/component/index.js +2 -2
- package/dist/prod/packages/@ember/controller/index.js +2 -2
- package/dist/prod/packages/@ember/engine/index.js +2 -2
- package/dist/prod/packages/@ember/object/computed.js +2 -2
- package/dist/prod/packages/@ember/object/index.js +4 -4
- package/dist/prod/packages/@ember/object/lib/computed/computed_macros.js +3 -3
- package/dist/prod/packages/@ember/object/lib/computed/reduce_computed_macros.js +1 -1
- package/dist/prod/packages/@ember/object/mixin.js +1 -1
- package/dist/prod/packages/@ember/object/observable.js +3 -3
- package/dist/prod/packages/@ember/object/promise-proxy-mixin.js +2 -2
- package/dist/prod/packages/@ember/renderer/index.js +1 -1
- package/dist/prod/packages/@ember/routing/route.js +3 -3
- package/dist/prod/packages/@ember/routing/router.js +2 -2
- package/dist/prod/packages/@ember/service/index.js +1 -1
- package/dist/prod/packages/@glimmer/node/index.js +2 -2
- package/dist/prod/packages/@glimmer/runtime/index.js +3 -3
- package/dist/prod/packages/@glimmer/tracking/index.js +1 -1
- package/dist/prod/packages/@glimmer/validator/index.js +1 -1
- package/dist/prod/packages/ember/version.js +1 -1
- package/dist/prod/packages/shared-chunks/{alias-Bod6qdNp.js → alias-CHHuE0LE.js} +2 -2
- package/dist/prod/packages/shared-chunks/{api-CQexacBn.js → api-DzOa0Acr.js} +6 -4
- package/dist/prod/packages/shared-chunks/{array-BzReKMeW.js → array-CnXdmzOG.js} +1 -1
- package/dist/prod/packages/shared-chunks/{computed-DtIStxvq.js → computed-BNdMwGhH.js} +1 -6
- package/dist/prod/packages/shared-chunks/{index-npr2B-vu.js → index-CvQQ6l11.js} +3 -3
- package/dist/prod/packages/shared-chunks/{injected_property-Y-FadDej.js → injected_property-DqQ0XV7k.js} +1 -1
- package/dist/prod/packages/shared-chunks/{property_set-BaQJdVfS.js → property_set-CkLe4ht8.js} +1 -1
- package/dist/prod/packages/shared-chunks/{rehydrate-builder-Blt1x9MP.js → rehydrate-builder-n_8RCUj9.js} +1 -1
- package/dist/prod/packages/shared-chunks/{render-Dx7lr1hR.js → render-Bf7GviCY.js} +10 -5
- package/dist/prod/packages/shared-chunks/{serialize-builder-BvAXYHTr.js → serialize-builder-CsG9WHVw.js} +1 -1
- package/dist/prod/packages/shared-chunks/{set_properties-Qxhw4qzw.js → set_properties-Cs3rVemD.js} +2 -2
- package/dist/prod/packages/shared-chunks/{setup-registry-Dfu8EyLU.js → setup-registry-kOGgOucf.js} +6 -6
- package/dist/prod/packages/shared-chunks/{textarea-DOmZ1x0E.js → textarea-DMmdvgk2.js} +1 -1
- package/dist/prod/packages/shared-chunks/tracked-DvOpYI0o.js +235 -0
- package/dist/prod/packages/shared-chunks/tracked-value-CR6kx-73.js +115 -0
- package/docs/data.json +149 -10
- package/package.json +1 -2
- package/types/stable/@ember/-internals/glimmer/lib/glimmer-tracking-docs.d.ts +68 -0
- package/types/stable/@ember/-internals/metal/lib/tracked.d.ts +53 -6
- package/types/stable/@glimmer/tracking/index.d.ts +70 -1
- package/types/stable/@glimmer/validator/index.d.ts +1 -0
- package/types/stable/@glimmer/validator/lib/tracked-value.d.ts +58 -0
- package/types/stable/index.d.ts +1 -0
- package/dist/dev/packages/shared-chunks/tracked-DEyf0T_X.js +0 -148
- package/dist/dev/packages/shared-chunks/tracked-data-DgqqRdYO.js +0 -31
- package/dist/prod/packages/shared-chunks/tracked-B9380JtC.js +0 -132
- package/dist/prod/packages/shared-chunks/tracked-data-CHq42QHb.js +0 -31
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { E as ENV } from '../../shared-chunks/env-DXxsTFkM.js';
|
|
2
2
|
import { s as setClassicDecorator, i as isElementDescriptor } from '../../shared-chunks/decorator-9ikVwsjY.js';
|
|
3
|
-
import { e as expandProperties } from '../../shared-chunks/computed-
|
|
4
|
-
export { c as computed, d as defineProperty, n as notifyPropertyChange } from '../../shared-chunks/computed-
|
|
3
|
+
import { e as expandProperties } from '../../shared-chunks/computed-BNdMwGhH.js';
|
|
4
|
+
export { c as computed, d as defineProperty, n as notifyPropertyChange } from '../../shared-chunks/computed-BNdMwGhH.js';
|
|
5
5
|
import { g as getFactoryFor } from '../../shared-chunks/container-BYOnjnwz.js';
|
|
6
6
|
import { s as setObservers } from '../../shared-chunks/super-BBBjgF69.js';
|
|
7
7
|
import CoreObject from './core.js';
|
|
8
8
|
import Observable from './observable.js';
|
|
9
9
|
export { g as get } from '../../shared-chunks/property_get-DAKgbeJX.js';
|
|
10
|
-
export { s as set, t as trySet } from '../../shared-chunks/property_set-
|
|
10
|
+
export { s as set, t as trySet } from '../../shared-chunks/property_set-CkLe4ht8.js';
|
|
11
11
|
export { g as getProperties } from '../../shared-chunks/get_properties-Dg3xFpiS.js';
|
|
12
|
-
export { s as setProperties } from '../../shared-chunks/set_properties-
|
|
12
|
+
export { s as setProperties } from '../../shared-chunks/set_properties-Cs3rVemD.js';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
@module @ember/object
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { c as computed, e as expandProperties } from '../../../../shared-chunks/computed-
|
|
2
|
-
import { a as alias } from '../../../../shared-chunks/alias-
|
|
1
|
+
import { c as computed, e as expandProperties } from '../../../../shared-chunks/computed-BNdMwGhH.js';
|
|
2
|
+
import { a as alias } from '../../../../shared-chunks/alias-CHHuE0LE.js';
|
|
3
3
|
import { g as get } from '../../../../shared-chunks/property_get-DAKgbeJX.js';
|
|
4
|
-
import { s as set } from '../../../../shared-chunks/property_set-
|
|
4
|
+
import { s as set } from '../../../../shared-chunks/property_set-CkLe4ht8.js';
|
|
5
5
|
import isEmpty from '../../../utils/lib/is_empty.js';
|
|
6
6
|
import isNone from '../../../utils/lib/is_none.js';
|
|
7
7
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as computed, i as autoComputed } from '../../../../shared-chunks/computed-
|
|
1
|
+
import { c as computed, i as autoComputed } from '../../../../shared-chunks/computed-BNdMwGhH.js';
|
|
2
2
|
import { g as get } from '../../../../shared-chunks/property_get-DAKgbeJX.js';
|
|
3
3
|
import compare from '../../../utils/lib/compare.js';
|
|
4
4
|
import EmberArray, { A, uniqBy as uniqBy$1 } from '../../../array/index.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { peekMeta, meta } from '../-internals/meta/lib/meta.js';
|
|
2
2
|
import { R as ROOT, o as observerListenerMetaFor, w as wrap } from '../../shared-chunks/super-BBBjgF69.js';
|
|
3
3
|
import { n as nativeDescDecorator, a as isClassicDecorator, b as descriptorForDecorator, m as makeComputedDecorator } from '../../shared-chunks/decorator-9ikVwsjY.js';
|
|
4
|
-
import { g as defineValue, h as defineDecorator, C as ComputedProperty } from '../../shared-chunks/computed-
|
|
4
|
+
import { g as defineValue, h as defineDecorator, C as ComputedProperty } from '../../shared-chunks/computed-BNdMwGhH.js';
|
|
5
5
|
import { s as setUnprocessedMixins } from '../../shared-chunks/namespace_search-BfvzEQzN.js';
|
|
6
6
|
import { c as revalidateObservers, b as addObserver, r as removeObserver } from '../../shared-chunks/observers-BmobpXAF.js';
|
|
7
7
|
import { a as addListener, r as removeListener } from '../../shared-chunks/events-DYrYz3V8.js';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { peekMeta } from '../-internals/meta/lib/meta.js';
|
|
2
2
|
import { h as hasListeners } from '../../shared-chunks/events-DYrYz3V8.js';
|
|
3
|
-
import { n as notifyPropertyChange, a as endPropertyChanges, b as beginPropertyChanges } from '../../shared-chunks/computed-
|
|
3
|
+
import { n as notifyPropertyChange, a as endPropertyChanges, b as beginPropertyChanges } from '../../shared-chunks/computed-BNdMwGhH.js';
|
|
4
4
|
import { r as removeObserver, b as addObserver } from '../../shared-chunks/observers-BmobpXAF.js';
|
|
5
5
|
import { g as get } from '../../shared-chunks/property_get-DAKgbeJX.js';
|
|
6
|
-
import { s as set } from '../../shared-chunks/property_set-
|
|
6
|
+
import { s as set } from '../../shared-chunks/property_set-CkLe4ht8.js';
|
|
7
7
|
import { g as getProperties } from '../../shared-chunks/get_properties-Dg3xFpiS.js';
|
|
8
|
-
import { s as setProperties } from '../../shared-chunks/set_properties-
|
|
8
|
+
import { s as setProperties } from '../../shared-chunks/set_properties-Cs3rVemD.js';
|
|
9
9
|
import Mixin from './mixin.js';
|
|
10
10
|
|
|
11
11
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { g as get } from '../../shared-chunks/property_get-DAKgbeJX.js';
|
|
2
|
-
import { s as setProperties } from '../../shared-chunks/set_properties-
|
|
3
|
-
import { c as computed } from '../../shared-chunks/computed-
|
|
2
|
+
import { s as setProperties } from '../../shared-chunks/set_properties-Cs3rVemD.js';
|
|
3
|
+
import { c as computed } from '../../shared-chunks/computed-BNdMwGhH.js';
|
|
4
4
|
import Mixin from './mixin.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { r as renderComponent, a as renderSettled } from '../../shared-chunks/index-
|
|
1
|
+
export { r as renderComponent, a as renderSettled } from '../../shared-chunks/index-CvQQ6l11.js';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { privatize } from '../-internals/container/index.js';
|
|
2
2
|
import { f as flushAsyncObservers, b as addObserver } from '../../shared-chunks/observers-BmobpXAF.js';
|
|
3
|
-
import { c as computed, d as defineProperty } from '../../shared-chunks/computed-
|
|
3
|
+
import { c as computed, d as defineProperty } from '../../shared-chunks/computed-BNdMwGhH.js';
|
|
4
4
|
import { d as descriptorForProperty } from '../../shared-chunks/decorator-9ikVwsjY.js';
|
|
5
5
|
import { getOwner } from '../-internals/owner/index.js';
|
|
6
6
|
import { g as get } from '../../shared-chunks/property_get-DAKgbeJX.js';
|
|
7
|
-
import { s as set } from '../../shared-chunks/property_set-
|
|
7
|
+
import { s as set } from '../../shared-chunks/property_set-CkLe4ht8.js';
|
|
8
8
|
import { g as getProperties } from '../../shared-chunks/get_properties-Dg3xFpiS.js';
|
|
9
|
-
import { s as setProperties } from '../../shared-chunks/set_properties-
|
|
9
|
+
import { s as setProperties } from '../../shared-chunks/set_properties-Cs3rVemD.js';
|
|
10
10
|
import EmberObject from '../object/index.js';
|
|
11
11
|
import Evented from '../object/evented.js';
|
|
12
12
|
import { A } from '../array/index.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { privatize } from '../-internals/container/index.js';
|
|
2
|
-
import { c as computed } from '../../shared-chunks/computed-
|
|
2
|
+
import { c as computed } from '../../shared-chunks/computed-BNdMwGhH.js';
|
|
3
3
|
import { g as get } from '../../shared-chunks/property_get-DAKgbeJX.js';
|
|
4
|
-
import { s as set } from '../../shared-chunks/property_set-
|
|
4
|
+
import { s as set } from '../../shared-chunks/property_set-CkLe4ht8.js';
|
|
5
5
|
import { getOwner } from '../owner/index.js';
|
|
6
6
|
import DSLImpl from './lib/dsl.js';
|
|
7
7
|
import RouterState from './lib/router_state.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FrameworkObject } from '../object/-internals.js';
|
|
2
2
|
import { deprecateUntil, DEPRECATIONS } from '../-internals/deprecations/index.js';
|
|
3
|
-
import { i as inject$1 } from '../../shared-chunks/injected_property-
|
|
3
|
+
import { i as inject$1 } from '../../shared-chunks/injected_property-DqQ0XV7k.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
@module @ember/service
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { C as ConcreteBounds } from '../../shared-chunks/normalize-C_IStty9.js';
|
|
2
|
-
import { D as DOMTreeConstruction } from '../../shared-chunks/api-
|
|
2
|
+
import { D as DOMTreeConstruction } from '../../shared-chunks/api-DzOa0Acr.js';
|
|
3
3
|
import createHTMLDocument from '../../@simple-dom/document/index.js';
|
|
4
|
-
export { s as serializeBuilder } from '../../shared-chunks/serialize-builder-
|
|
4
|
+
export { s as serializeBuilder } from '../../shared-chunks/serialize-builder-CsG9WHVw.js';
|
|
5
5
|
|
|
6
6
|
class NodeDOMTreeConstruction extends DOMTreeConstruction {
|
|
7
7
|
// Hides property on base class
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { C as ConcreteBounds, a as CursorImpl, c as clear } from '../../shared-chunks/normalize-C_IStty9.js';
|
|
2
|
-
export { D as DOMChanges, a as DynamicScopeImpl, E as EnvironmentImpl, b as IDOMChanges, L as LowLevelVM, S as ScopeImpl, U as UpdatingVM, i as inTransaction, c as isWhitespace, r as renderComponent, d as renderMain, e as renderSync, f as resetDebuggerCallback, g as runtimeOptions, s as setDebuggerCallback } from '../../shared-chunks/render-
|
|
2
|
+
export { D as DOMChanges, a as DynamicScopeImpl, E as EnvironmentImpl, b as IDOMChanges, L as LowLevelVM, S as ScopeImpl, U as UpdatingVM, i as inTransaction, c as isWhitespace, r as renderComponent, d as renderMain, e as renderSync, f as resetDebuggerCallback, g as runtimeOptions, s as setDebuggerCallback } from '../../shared-chunks/render-Bf7GviCY.js';
|
|
3
3
|
export { T as TEMPLATE_ONLY_COMPONENT_MANAGER, a as TemplateOnlyComponent, b as TemplateOnlyComponentManager, t as templateOnlyComponent } from '../../shared-chunks/template-only-DKNcKM5b.js';
|
|
4
4
|
export { C as CurriedValue, E as EMPTY_ARGS, a as EMPTY_NAMED, b as EMPTY_POSITIONAL, c as createCapturedArgs, d as curry, r as reifyArgs, e as reifyNamed, f as reifyPositional } from '../../shared-chunks/arguments-BzAkZVBa.js';
|
|
5
5
|
export { n as normalizeProperty } from '../../shared-chunks/props-fiqxqhAH.js';
|
|
@@ -11,5 +11,5 @@ export { o as on } from '../../shared-chunks/on-BZHAxzdq.js';
|
|
|
11
11
|
export { destroy, isDestroyed, isDestroying, registerDestructor } from '../destroyable/index.js';
|
|
12
12
|
import '../../shared-chunks/cache-CofLhaS4.js';
|
|
13
13
|
import '../../shared-chunks/reference-CG0yPgLy.js';
|
|
14
|
-
export { D as DOMTreeConstruction, a as DynamicAttribute, N as NewTreeBuilder, R as RemoteBlock, b as ResettableBlockImpl, S as SimpleDynamicAttribute, c as clientBuilder, d as dynamicAttribute } from '../../shared-chunks/api-
|
|
15
|
-
export { R as RehydrateTree, S as SERIALIZATION_FIRST_NODE_STRING, i as isSerializationFirstNode, r as rehydrationBuilder } from '../../shared-chunks/rehydrate-builder-
|
|
14
|
+
export { D as DOMTreeConstruction, a as DynamicAttribute, N as NewTreeBuilder, R as RemoteBlock, b as ResettableBlockImpl, S as SimpleDynamicAttribute, c as clientBuilder, d as dynamicAttribute } from '../../shared-chunks/api-DzOa0Acr.js';
|
|
15
|
+
export { R as RehydrateTree, S as SERIALIZATION_FIRST_NODE_STRING, i as isSerializationFirstNode, r as rehydrationBuilder } from '../../shared-chunks/rehydrate-builder-n_8RCUj9.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { t as tracked } from '../../shared-chunks/tracked-
|
|
1
|
+
export { t as tracked } from '../../shared-chunks/tracked-DvOpYI0o.js';
|
|
2
2
|
import { e as createCache, g as getValue } from '../../shared-chunks/cache-CofLhaS4.js';
|
|
3
3
|
|
|
4
4
|
// NOTE: copied from: https://github.com/glimmerjs/glimmer.js/pull/358
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { trackedArray, trackedMap, trackedObject, trackedSet, trackedWeakMap, trackedWeakSet } from '../../@ember/reactive/collections.js';
|
|
2
2
|
export { d as dirtyTagFor, t as tagFor, a as tagMetaFor } from '../../shared-chunks/meta-BJtIZDir.js';
|
|
3
|
-
export {
|
|
3
|
+
export { T as TrackedValue, a as trackedData, t as trackedValue } from '../../shared-chunks/tracked-value-CR6kx-73.js';
|
|
4
4
|
export { A as ALLOW_CYCLES, h as COMPUTE, j as CONSTANT, C as CONSTANT_TAG, k as CURRENT_TAG, l as CurrentTag, I as INITIAL, V as VOLATILE, m as VOLATILE_TAG, n as VolatileTag, o as beginTrackFrame, p as beginUntrackFrame, q as bump, d as combine, c as consumeTag, e as createCache, r as createTag, b as createUpdatableTag, D as dirtyTag, s as endTrackFrame, w as endUntrackFrame, g as getValue, i as isConst, x as isConstTag, f as isTracking, y as resetTracking, t as track, u as untrack, U as updateTag, v as validateTag, a as valueForTag } from '../../shared-chunks/cache-CofLhaS4.js';
|
|
5
5
|
|
|
6
6
|
/* eslint-disable @typescript-eslint/no-non-null-assertion -- @fixme */
|
|
@@ -4,9 +4,9 @@ import { u as untrack, v as validateTag, U as UPDATE_TAG, a as valueForTag, c as
|
|
|
4
4
|
import { a as tagMetaFor, t as tagFor } from './meta-BJtIZDir.js';
|
|
5
5
|
import { C as CHAIN_PASS_THROUGH, g as getChainTagsForKey, f as finishLazyChains } from './chain-tags-B2J7DsxO.js';
|
|
6
6
|
import { m as makeComputedDecorator, b as descriptorForDecorator, c as ComputedDescriptor } from './decorator-9ikVwsjY.js';
|
|
7
|
-
import { d as defineProperty } from './computed-
|
|
7
|
+
import { d as defineProperty } from './computed-BNdMwGhH.js';
|
|
8
8
|
import { g as get } from './property_get-DAKgbeJX.js';
|
|
9
|
-
import { s as set } from './property_set-
|
|
9
|
+
import { s as set } from './property_set-CkLe4ht8.js';
|
|
10
10
|
|
|
11
11
|
function alias(altKey) {
|
|
12
12
|
return makeComputedDecorator(new AliasedProperty(altKey), AliasDecoratorImpl);
|
|
@@ -27,16 +27,18 @@ function has(array, item) {
|
|
|
27
27
|
function checkURI(tagName, attribute) {
|
|
28
28
|
// SVG tagNames are case-preserved, so the SVG `<a>` element comes through as
|
|
29
29
|
// lowercase `a` and never matches the uppercase `badTags` entries unless we
|
|
30
|
-
// normalize first.
|
|
31
|
-
|
|
30
|
+
// normalize first. The attribute name can likewise arrive camelCased (e.g.
|
|
31
|
+
// `formAction`) when the template author writes it that way and it resolves to
|
|
32
|
+
// a DOM property, so lower-case it before matching the lowercase lists.
|
|
33
|
+
return (tagName === null || has(badTags, tagName.toUpperCase())) && has(badAttributes, attribute.toLowerCase());
|
|
32
34
|
}
|
|
33
35
|
function checkDataURI(tagName, attribute) {
|
|
34
36
|
if (tagName === null) return false;
|
|
35
|
-
return has(badTagsForDataURI, tagName.toUpperCase()) && has(badAttributesForDataURI, attribute);
|
|
37
|
+
return has(badTagsForDataURI, tagName.toUpperCase()) && has(badAttributesForDataURI, attribute.toLowerCase());
|
|
36
38
|
}
|
|
37
39
|
function checkDataProtocol(tagName, attribute) {
|
|
38
40
|
if (tagName === null) return false;
|
|
39
|
-
return has(badTagsForDataProtocol, tagName.toUpperCase()) && has(badAttributesForDataProtocol, attribute);
|
|
41
|
+
return has(badTagsForDataProtocol, tagName.toUpperCase()) && has(badAttributesForDataProtocol, attribute.toLowerCase());
|
|
40
42
|
}
|
|
41
43
|
function requiresSanitization(tagName, attribute) {
|
|
42
44
|
return checkURI(tagName, attribute) || checkDataURI(tagName, attribute) || checkDataProtocol(tagName, attribute);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { peekMeta } from '../@ember/-internals/meta/lib/meta.js';
|
|
2
2
|
import { s as sendEvent, a as addListener, r as removeListener } from './events-DYrYz3V8.js';
|
|
3
|
-
import { n as notifyPropertyChange } from './computed-
|
|
3
|
+
import { n as notifyPropertyChange } from './computed-BNdMwGhH.js';
|
|
4
4
|
|
|
5
5
|
function arrayContentWillChange(array, startIdx, removeAmt, addAmt) {
|
|
6
6
|
// if no args are passed assume everything changes
|
|
@@ -145,13 +145,8 @@ function defineProperty(obj, keyName, desc, data, _meta) {
|
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
147
|
function defineDecorator(obj, keyName, desc, meta) {
|
|
148
|
-
let propertyDesc;
|
|
149
|
-
{
|
|
150
|
-
propertyDesc = desc(obj, keyName, undefined, meta);
|
|
151
|
-
}
|
|
148
|
+
let propertyDesc = desc(obj, keyName, undefined, meta, true);
|
|
152
149
|
Object.defineProperty(obj, keyName, propertyDesc);
|
|
153
|
-
|
|
154
|
-
// pass the decorator function forward for backwards compat
|
|
155
150
|
return desc;
|
|
156
151
|
}
|
|
157
152
|
function defineValue(obj, keyName, value, wasDescriptor, enumerable = true) {
|
|
@@ -5,11 +5,11 @@ import { schedule, _backburner, _getCurrentRunLoop } from '../@ember/runloop/ind
|
|
|
5
5
|
import { associateDestroyableChild, destroy, registerDestructor, isDestroyed, isDestroying } from '../@glimmer/destroyable/index.js';
|
|
6
6
|
import { artifacts } from '../@glimmer/program/index.js';
|
|
7
7
|
import { R as RuntimeOpImpl } from './program-BAh__OXZ.js';
|
|
8
|
-
import { c as clientBuilder } from './api-
|
|
9
|
-
import { g as runtimeOptions, i as inTransaction, r as renderComponent$1 } from './render-
|
|
8
|
+
import { c as clientBuilder } from './api-DzOa0Acr.js';
|
|
9
|
+
import { g as runtimeOptions, i as inTransaction, r as renderComponent$1 } from './render-Bf7GviCY.js';
|
|
10
10
|
import { c as consumeTag, f as isTracking, a as valueForTag, k as CURRENT_TAG, v as validateTag } from './cache-CofLhaS4.js';
|
|
11
11
|
import { g as get$1, a as _getProp } from './property_get-DAKgbeJX.js';
|
|
12
|
-
import { _ as _setProp, s as set } from './property_set-
|
|
12
|
+
import { _ as _setProp, s as set } from './property_set-CkLe4ht8.js';
|
|
13
13
|
import './guid-Cbq2sNV_.js';
|
|
14
14
|
import setGlobalContext from '../@glimmer/global-context/index.js';
|
|
15
15
|
import { a as tagForProperty, t as tagForObject, o as objectAt } from './chain-tags-B2J7DsxO.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getOwner } from '../@ember/-internals/owner/index.js';
|
|
2
|
-
import { c as computed, d as defineProperty } from './computed-
|
|
2
|
+
import { c as computed, d as defineProperty } from './computed-BNdMwGhH.js';
|
|
3
3
|
import { i as isElementDescriptor } from './decorator-9ikVwsjY.js';
|
|
4
4
|
|
|
5
5
|
let DEBUG_INJECTION_FUNCTIONS;
|
package/dist/prod/packages/shared-chunks/{property_set-BaQJdVfS.js → property_set-CkLe4ht8.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { l as lookupDescriptor } from './lookup-descriptor-CwcVgaLv.js';
|
|
2
2
|
import { C as COMPUTED_SETTERS } from './decorator-9ikVwsjY.js';
|
|
3
3
|
import { i as isPath, _ as _getPath } from './property_get-DAKgbeJX.js';
|
|
4
|
-
import { n as notifyPropertyChange } from './computed-
|
|
4
|
+
import { n as notifyPropertyChange } from './computed-BNdMwGhH.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
@module @ember/object
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { N as NewTreeBuilder, R as RemoteBlock, C as COMMENT_NODE, T as TEXT_NODE, E as ELEMENT_NODE, e as NS_SVG } from './api-
|
|
1
|
+
import { N as NewTreeBuilder, R as RemoteBlock, C as COMMENT_NODE, T as TEXT_NODE, E as ELEMENT_NODE, e as NS_SVG } from './api-DzOa0Acr.js';
|
|
2
2
|
import { c as castToSimple, a as castToBrowser } from './simple-cast-DCvJLSin.js';
|
|
3
3
|
import { e as expect } from './collections-GpG8lT2g.js';
|
|
4
4
|
import { a as assert } from './assert-Zqc4wiAV.js';
|
|
@@ -5,7 +5,7 @@ import { a as assert } from './assert-Zqc4wiAV.js';
|
|
|
5
5
|
import { P as ProgramImpl } from './program-BAh__OXZ.js';
|
|
6
6
|
import { t as track, U as UPDATE_TAG, o as beginTrackFrame, s as endTrackFrame } from './cache-CofLhaS4.js';
|
|
7
7
|
import { D as DebugRenderTreeImpl, i as isArgumentError, h as isCurriedType, d as curry, A as APPEND_OPCODES, g as check, j as resolveCurriedValue, f as reifyPositional, k as AssertFilter, V as VMArgumentsImpl, l as externs, J as JumpIfNotModifiedOpcode, B as BeginTrackFrameOpcode, m as EndTrackFrameOpcode } from './arguments-BzAkZVBa.js';
|
|
8
|
-
import { B as BLACKLIST_TABLE, f as DOMOperations, D as DOMTreeConstruction, N as NewTreeBuilder } from './api-
|
|
8
|
+
import { B as BLACKLIST_TABLE, f as DOMOperations, D as DOMTreeConstruction, N as NewTreeBuilder } from './api-DzOa0Acr.js';
|
|
9
9
|
import { a as assign } from './object-utils-AijlD-JH.js';
|
|
10
10
|
import { associateDestroyableChild, _hasDestroyableChildren, destroy, destroyChildren, registerDestructor } from '../@glimmer/destroyable/index.js';
|
|
11
11
|
import { createIteratorRef, createIteratorItemRef } from '../@glimmer/reference/index.js';
|
|
@@ -650,11 +650,16 @@ APPEND_OPCODES.add(VM_APPEND_NODE_OP, vm => {
|
|
|
650
650
|
/* eslint-disable @typescript-eslint/no-unused-expressions */
|
|
651
651
|
|
|
652
652
|
function debugCallback(context, get) {
|
|
653
|
-
|
|
654
|
-
|
|
653
|
+
if (context !== null && context !== undefined) {
|
|
654
|
+
// eslint-disable-next-line no-console
|
|
655
|
+
console.info("Use `context`, and `get(<path>)` to debug this template. For named arguments, use `get('@argName')`.");
|
|
655
656
|
|
|
656
|
-
|
|
657
|
-
|
|
657
|
+
// for example...
|
|
658
|
+
context === get('this');
|
|
659
|
+
} else {
|
|
660
|
+
// eslint-disable-next-line no-console
|
|
661
|
+
console.info("Use `get(<path>)` to debug this template. For named arguments, use `get('@argName')`.");
|
|
662
|
+
}
|
|
658
663
|
|
|
659
664
|
// eslint-disable-next-line no-debugger
|
|
660
665
|
debugger;
|
package/dist/prod/packages/shared-chunks/{set_properties-Qxhw4qzw.js → set_properties-Cs3rVemD.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { f as changeProperties } from './computed-
|
|
2
|
-
import { s as set } from './property_set-
|
|
1
|
+
import { f as changeProperties } from './computed-BNdMwGhH.js';
|
|
2
|
+
import { s as set } from './property_set-CkLe4ht8.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
@module @ember/object
|
package/dist/prod/packages/shared-chunks/{setup-registry-Dfu8EyLU.js → setup-registry-kOGgOucf.js}
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { privatize } from '../@ember/-internals/container/index.js';
|
|
2
2
|
import { getOwner } from '../@ember/-internals/owner/index.js';
|
|
3
|
-
import { I as Input, T as Textarea } from './textarea-
|
|
3
|
+
import { I as Input, T as Textarea } from './textarea-DMmdvgk2.js';
|
|
4
4
|
import { LinkTo } from '../@ember/routing/index.js';
|
|
5
|
-
import { i as inTransaction, d as renderMain } from './render-
|
|
6
|
-
import { c as clientBuilder } from './api-
|
|
7
|
-
import { r as rehydrationBuilder } from './rehydrate-builder-
|
|
8
|
-
import { s as serializeBuilder } from './serialize-builder-
|
|
5
|
+
import { i as inTransaction, d as renderMain } from './render-Bf7GviCY.js';
|
|
6
|
+
import { c as clientBuilder } from './api-DzOa0Acr.js';
|
|
7
|
+
import { r as rehydrationBuilder } from './rehydrate-builder-n_8RCUj9.js';
|
|
8
|
+
import { s as serializeBuilder } from './serialize-builder-CsG9WHVw.js';
|
|
9
9
|
import { g as guidFor } from './guid-Cbq2sNV_.js';
|
|
10
10
|
import { getViewId, getViewElement } from '../@ember/-internals/views/lib/system/utils.js';
|
|
11
11
|
import { associateDestroyableChild, isDestroyed, destroy, isDestroying } from '../@glimmer/destroyable/index.js';
|
|
@@ -18,7 +18,7 @@ import { g as getFactoryFor } from './container-BYOnjnwz.js';
|
|
|
18
18
|
import { _instrumentStart } from '../@ember/instrumentation/index.js';
|
|
19
19
|
import { c as capabilityFlagsFrom } from './capabilities-BuVYh-vx.js';
|
|
20
20
|
import { C as CONSTANT_TAG, c as consumeTag, D as DIRTY_TAG$1, r as createTag } from './cache-CofLhaS4.js';
|
|
21
|
-
import { R as ResolverImpl, B as BaseRenderer, e as errorLoopTransaction } from './index-
|
|
21
|
+
import { R as ResolverImpl, B as BaseRenderer, e as errorLoopTransaction } from './index-CvQQ6l11.js';
|
|
22
22
|
import { generateControllerFactory } from '../@ember/routing/lib/generate_controller.js';
|
|
23
23
|
import { i as internalHelper } from './internal-helper-Bz1lpDXr.js';
|
|
24
24
|
import { c as hasInternalComponentManager } from './api-DlJKfm_f.js';
|
|
@@ -6,7 +6,7 @@ import { on } from '../@ember/modifier/on.js';
|
|
|
6
6
|
import { t as templateFactory } from './index-Bf53M8eS.js';
|
|
7
7
|
import { I as InternalComponent, o as opaquify } from './internal-BQ7zHrqS.js';
|
|
8
8
|
import { d as decorateFieldV2, i as initializeDeferredDecorator, a as decorateMethodV2 } from './runtime-CYyqkz5q-BOdRhmsS.js';
|
|
9
|
-
import { t as tracked } from './tracked-
|
|
9
|
+
import { t as tracked } from './tracked-DvOpYI0o.js';
|
|
10
10
|
|
|
11
11
|
const InputTemplate = templateFactory(
|
|
12
12
|
/*
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import { meta } from '../@ember/-internals/meta/lib/meta.js';
|
|
2
|
+
import { isEmberArray } from '../@ember/array/-internals.js';
|
|
3
|
+
import { c as consumeTag, u as untrack } from './cache-CofLhaS4.js';
|
|
4
|
+
import { d as dirtyTagFor, t as tagFor } from './meta-BJtIZDir.js';
|
|
5
|
+
import { t as trackedValue, a as trackedData } from './tracked-value-CR6kx-73.js';
|
|
6
|
+
import { C as CHAIN_PASS_THROUGH, S as SELF_TAG } from './chain-tags-B2J7DsxO.js';
|
|
7
|
+
import { i as isElementDescriptor, C as COMPUTED_SETTERS, s as setClassicDecorator } from './decorator-9ikVwsjY.js';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
@decorator
|
|
11
|
+
@private
|
|
12
|
+
|
|
13
|
+
Marks a property as tracked.
|
|
14
|
+
|
|
15
|
+
By default, a component's properties are expected to be static,
|
|
16
|
+
meaning you are not able to update them and have the template update accordingly.
|
|
17
|
+
Marking a property as tracked means that when that property changes,
|
|
18
|
+
a rerender of the component is scheduled so the template is kept up to date.
|
|
19
|
+
|
|
20
|
+
There are two usages for the `@tracked` decorator, shown below.
|
|
21
|
+
|
|
22
|
+
@example No dependencies
|
|
23
|
+
|
|
24
|
+
If you don't pass an argument to `@tracked`, only changes to that property
|
|
25
|
+
will be tracked:
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
import Component from '@glimmer/component';
|
|
29
|
+
import { tracked } from '@glimmer/tracking';
|
|
30
|
+
|
|
31
|
+
export default class MyComponent extends Component {
|
|
32
|
+
@tracked
|
|
33
|
+
remainingApples = 10
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
When something changes the component's `remainingApples` property, the rerender
|
|
38
|
+
will be scheduled.
|
|
39
|
+
|
|
40
|
+
@example Dependents
|
|
41
|
+
|
|
42
|
+
In the case that you have a computed property that depends other
|
|
43
|
+
properties, you want to track both so that when one of the
|
|
44
|
+
dependents change, a rerender is scheduled.
|
|
45
|
+
|
|
46
|
+
In the following example we have two properties,
|
|
47
|
+
`eatenApples`, and `remainingApples`.
|
|
48
|
+
|
|
49
|
+
```typescript
|
|
50
|
+
import Component from '@glimmer/component';
|
|
51
|
+
import { tracked } from '@glimmer/tracking';
|
|
52
|
+
|
|
53
|
+
const totalApples = 100;
|
|
54
|
+
|
|
55
|
+
export default class MyComponent extends Component {
|
|
56
|
+
@tracked
|
|
57
|
+
eatenApples = 0
|
|
58
|
+
|
|
59
|
+
get remainingApples() {
|
|
60
|
+
return totalApples - this.eatenApples;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
increment() {
|
|
64
|
+
this.eatenApples = this.eatenApples + 1;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
@param dependencies Optional dependents to be tracked.
|
|
70
|
+
*/
|
|
71
|
+
/**
|
|
72
|
+
* Reactivity options for the standalone `tracked(value, options)` form.
|
|
73
|
+
*
|
|
74
|
+
* - `equals` decides whether writing a value notifies consumers; it defaults to
|
|
75
|
+
* `Object.is`.
|
|
76
|
+
* - `description` is used in development for debugging.
|
|
77
|
+
*
|
|
78
|
+
* `equals` is a function-typed property (rather than method syntax) on purpose:
|
|
79
|
+
* this keeps its parameters checked strictly, so passing an `equals` typed for
|
|
80
|
+
* the wrong value type is a type error instead of being silently accepted.
|
|
81
|
+
*/
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Options for `tracked` used as a decorator, or as a field on a *classic* class
|
|
85
|
+
* (`EmberObject.extend({ foo: tracked({ value }) })`).
|
|
86
|
+
*
|
|
87
|
+
* All properties are optional because this single shape backs several usages:
|
|
88
|
+
* classic-field defaults (`tracked({ value })` / `tracked({ initializer })`) and
|
|
89
|
+
* options-only native decorators (`@tracked({ equals })`). The mutually
|
|
90
|
+
* exclusive combinations (e.g. both `value` and `initializer`) and the
|
|
91
|
+
* classic-only restriction on `value`/`initializer` are enforced at runtime via
|
|
92
|
+
* assertions rather than in the type, matching the runtime `isDecoratorOptions`
|
|
93
|
+
* check that accepts any object composed of these keys.
|
|
94
|
+
*
|
|
95
|
+
* - `value` / `initializer` supply a default value and are only valid on classic
|
|
96
|
+
* classes; native classes use class field initializers instead.
|
|
97
|
+
* - `equals` / `description` configure reactivity, mirroring
|
|
98
|
+
* {@link TrackedValueOptions}.
|
|
99
|
+
*/
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* `tracked` as a decorator factory: `@tracked({ equals })`, or on classic
|
|
103
|
+
* classes `tracked({ value })` / `tracked({ initializer })`.
|
|
104
|
+
*/
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* `tracked` as a bare decorator: `@tracked foo = 1`.
|
|
108
|
+
*/
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* `tracked` as a standalone reactive value, usable outside of classes:
|
|
112
|
+
* `const count = tracked(0)`.
|
|
113
|
+
*/
|
|
114
|
+
|
|
115
|
+
function tracked(...args) {
|
|
116
|
+
if (isElementDescriptor(args)) {
|
|
117
|
+
/*
|
|
118
|
+
Native-decorator form. The runtime invokes us with `(target, key, desc)`
|
|
119
|
+
and consumes the returned `DecoratorPropertyDescriptor`. The public API is
|
|
120
|
+
the decorated field itself — reading it consumes, assigning it dirties.
|
|
121
|
+
```js
|
|
122
|
+
class Counter {
|
|
123
|
+
@tracked count = 0;
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
*/
|
|
127
|
+
return descriptorForField(args);
|
|
128
|
+
}
|
|
129
|
+
if (args.length === 0 || args.length === 1 && isDecoratorOptions(args[0])) {
|
|
130
|
+
/*
|
|
131
|
+
Decorator-factory / classic-field form. Returns an
|
|
132
|
+
`ExtendedMethodDecorator`. The public API is the resulting property on
|
|
133
|
+
instances (get/set), with any default supplied by `value`/`initializer`.
|
|
134
|
+
```js
|
|
135
|
+
class Counter {
|
|
136
|
+
@tracked({ equals: (a, b) => a === b }) count = 0;
|
|
137
|
+
}
|
|
138
|
+
const Person = EmberObject.extend({
|
|
139
|
+
name: tracked({ value: 'Zoey' }),
|
|
140
|
+
});
|
|
141
|
+
```
|
|
142
|
+
*/
|
|
143
|
+
return makeTrackedDecorator(args[0]);
|
|
144
|
+
}
|
|
145
|
+
let [initialValue, options] = args;
|
|
146
|
+
/*
|
|
147
|
+
Standalone-value form. Returns a `TrackedValue` usable outside of classes.
|
|
148
|
+
```js
|
|
149
|
+
const count = tracked(0);
|
|
150
|
+
count.value; // read (consumes), `Object.is`-based equality
|
|
151
|
+
count.value = 1; // write (dirties)
|
|
152
|
+
count.get(); // function shorthand for reading
|
|
153
|
+
count.set(2); // returns `true` if the value changed
|
|
154
|
+
count.update((n) => n + 1); // write from current, without consuming
|
|
155
|
+
count.freeze(); // prevent further writes
|
|
156
|
+
```
|
|
157
|
+
*/
|
|
158
|
+
return trackedValue(initialValue, options);
|
|
159
|
+
}
|
|
160
|
+
const DECORATOR_OPTION_KEYS = ['value', 'initializer', 'equals', 'description'];
|
|
161
|
+
function isDecoratorOptions(value) {
|
|
162
|
+
if (typeof value !== 'object' || value === null) {
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
let proto = Object.getPrototypeOf(value);
|
|
166
|
+
if (proto !== Object.prototype && proto !== null) {
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
return Object.keys(value).every(key => DECORATOR_OPTION_KEYS.includes(key));
|
|
170
|
+
}
|
|
171
|
+
function makeTrackedDecorator(propertyDesc) {
|
|
172
|
+
let initializer = propertyDesc ? propertyDesc.initializer : undefined;
|
|
173
|
+
let value = propertyDesc ? propertyDesc.value : undefined;
|
|
174
|
+
let options = {
|
|
175
|
+
equals: propertyDesc?.equals,
|
|
176
|
+
description: propertyDesc?.description
|
|
177
|
+
};
|
|
178
|
+
let decorator = function (target, key, desc, _meta, isClassicDecorator) {
|
|
179
|
+
let fieldDesc = isClassicDecorator ? {
|
|
180
|
+
initializer: initializer || (() => value)
|
|
181
|
+
} : desc;
|
|
182
|
+
return descriptorForField([target, key, fieldDesc], options);
|
|
183
|
+
};
|
|
184
|
+
setClassicDecorator(decorator);
|
|
185
|
+
return decorator;
|
|
186
|
+
}
|
|
187
|
+
function descriptorForField([target, key, desc], options) {
|
|
188
|
+
let {
|
|
189
|
+
getter,
|
|
190
|
+
setter
|
|
191
|
+
} = trackedData(key, desc ? desc.initializer : undefined);
|
|
192
|
+
let equals = options?.equals;
|
|
193
|
+
function get() {
|
|
194
|
+
let value = getter(this);
|
|
195
|
+
|
|
196
|
+
// Add the tag of the returned value if it is an array, since arrays
|
|
197
|
+
// should always cause updates if they are consumed and then changed
|
|
198
|
+
if (Array.isArray(value) || isEmberArray(value)) {
|
|
199
|
+
consumeTag(tagFor(value, '[]'));
|
|
200
|
+
}
|
|
201
|
+
return value;
|
|
202
|
+
}
|
|
203
|
+
function set(newValue) {
|
|
204
|
+
if (equals !== undefined && equals(untrack(() => getter(this)), newValue)) {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
setter(this, newValue);
|
|
208
|
+
dirtyTagFor(this, SELF_TAG);
|
|
209
|
+
}
|
|
210
|
+
let newDesc = {
|
|
211
|
+
enumerable: true,
|
|
212
|
+
configurable: true,
|
|
213
|
+
isTracked: true,
|
|
214
|
+
get,
|
|
215
|
+
set
|
|
216
|
+
};
|
|
217
|
+
COMPUTED_SETTERS.add(set);
|
|
218
|
+
meta(target).writeDescriptors(key, new TrackedDescriptor(get, set));
|
|
219
|
+
return newDesc;
|
|
220
|
+
}
|
|
221
|
+
class TrackedDescriptor {
|
|
222
|
+
constructor(_get, _set) {
|
|
223
|
+
this._get = _get;
|
|
224
|
+
this._set = _set;
|
|
225
|
+
CHAIN_PASS_THROUGH.add(this);
|
|
226
|
+
}
|
|
227
|
+
get(obj) {
|
|
228
|
+
return this._get.call(obj);
|
|
229
|
+
}
|
|
230
|
+
set(obj, _key, value) {
|
|
231
|
+
this._set.call(obj, value);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
export { TrackedDescriptor as T, tracked as t };
|