ember-source 7.1.0-alpha.4 → 7.1.0-beta.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/container/index.js +4 -401
- package/dist/dev/packages/@ember/-internals/deprecations/index.js +1 -1
- package/dist/dev/packages/@ember/-internals/environment/index.js +3 -161
- package/dist/dev/packages/@ember/-internals/glimmer/index.js +14 -15
- package/dist/dev/packages/@ember/-internals/meta/lib/meta.js +0 -1
- package/dist/dev/packages/@ember/-internals/metal/index.js +18 -9
- package/dist/dev/packages/@ember/-internals/routing/index.js +1 -10
- package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +10 -12
- package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +1 -10
- package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -10
- package/dist/dev/packages/@ember/-internals/string/index.js +0 -1
- package/dist/dev/packages/@ember/-internals/utils/index.js +8 -3
- package/dist/dev/packages/@ember/-internals/views/index.js +0 -1
- package/dist/dev/packages/@ember/-internals/views/lib/compat/fallback-view-registry.js +0 -1
- package/dist/dev/packages/@ember/-internals/views/lib/mixins/action_support.js +3 -12
- package/dist/dev/packages/@ember/-internals/views/lib/system/event_dispatcher.js +2 -11
- package/dist/dev/packages/@ember/-internals/views/lib/system/utils.js +1 -1
- package/dist/dev/packages/@ember/-internals/views/lib/views/core_view.js +2 -19
- package/dist/dev/packages/@ember/-internals/views/lib/views/states.js +1 -1
- package/dist/dev/packages/@ember/application/index.js +5 -28
- package/dist/dev/packages/@ember/application/instance.js +3 -22
- package/dist/dev/packages/@ember/application/namespace.js +4 -11
- package/dist/dev/packages/@ember/array/index.js +7 -15
- package/dist/dev/packages/@ember/array/proxy.js +10 -14
- package/dist/dev/packages/@ember/canary-features/index.js +1 -1
- package/dist/dev/packages/@ember/component/helper.js +1 -14
- package/dist/dev/packages/@ember/component/index.js +1356 -17
- package/dist/dev/packages/@ember/component/template-only.js +1 -9
- package/dist/dev/packages/@ember/controller/index.js +3 -19
- package/dist/dev/packages/@ember/debug/container-debug-adapter.js +0 -19
- package/dist/dev/packages/@ember/debug/data-adapter.js +4 -11
- package/dist/dev/packages/@ember/debug/index.js +1 -1
- package/dist/dev/packages/@ember/debug/lib/deprecate.js +1 -1
- package/dist/dev/packages/@ember/engine/index.js +3 -31
- package/dist/dev/packages/@ember/engine/instance.js +3 -8
- package/dist/dev/packages/@ember/helper/index.js +159 -21
- package/dist/dev/packages/@ember/instrumentation/index.js +1 -1
- package/dist/dev/packages/@ember/modifier/index.js +2 -16
- package/dist/dev/packages/@ember/modifier/on.js +1 -9
- package/dist/dev/packages/@ember/object/-internals.js +3 -11
- package/dist/dev/packages/@ember/object/compat.js +3 -10
- package/dist/dev/packages/@ember/object/computed.js +2 -12
- package/dist/dev/packages/@ember/object/core.js +10 -18
- package/dist/dev/packages/@ember/object/evented.js +2 -12
- package/dist/dev/packages/@ember/object/events.js +1 -11
- package/dist/dev/packages/@ember/object/index.js +10 -14
- package/dist/dev/packages/@ember/object/internals.js +1 -1
- package/dist/dev/packages/@ember/object/lib/computed/computed_macros.js +6 -23
- package/dist/dev/packages/@ember/object/lib/computed/reduce_computed_macros.js +3 -12
- package/dist/dev/packages/@ember/object/mixin.js +7 -10
- package/dist/dev/packages/@ember/object/observable.js +8 -12
- package/dist/dev/packages/@ember/object/observers.js +1 -11
- package/dist/dev/packages/@ember/object/promise-proxy-mixin.js +3 -13
- package/dist/dev/packages/@ember/object/proxy.js +0 -7
- package/dist/dev/packages/@ember/reactive/collections.js +591 -1
- package/dist/dev/packages/@ember/renderer/index.js +1 -14
- package/dist/dev/packages/@ember/routing/-internals.js +1 -10
- package/dist/dev/packages/@ember/routing/index.js +614 -14
- package/dist/dev/packages/@ember/routing/lib/generate_controller.js +2 -11
- package/dist/dev/packages/@ember/routing/lib/routing-service.js +7 -17
- package/dist/dev/packages/@ember/routing/lib/utils.js +2 -11
- package/dist/dev/packages/@ember/routing/route.js +13 -24
- package/dist/dev/packages/@ember/routing/router-service.js +9 -18
- package/dist/dev/packages/@ember/routing/router.js +5 -21
- package/dist/dev/packages/@ember/runloop/index.js +1 -10
- package/dist/dev/packages/@ember/service/index.js +1 -11
- package/dist/dev/packages/@ember/template/index.js +1 -14
- package/dist/dev/packages/@ember/template-compiler/lib/compile-options.js +12 -15
- package/dist/dev/packages/@ember/template-compiler/lib/dasherize-component-name.js +0 -1
- package/dist/dev/packages/@ember/template-compiler/lib/plugins/auto-import-builtins.js +13 -60
- package/dist/dev/packages/@ember/template-compiler/lib/plugins/index.js +1 -1
- package/dist/dev/packages/@ember/template-compiler/lib/plugins/transform-resolutions.js +1 -3
- package/dist/dev/packages/@ember/template-compiler/lib/template.js +3 -11
- package/dist/dev/packages/@ember/template-factory/index.js +1 -8
- package/dist/dev/packages/@ember/utils/lib/compare.js +0 -7
- package/dist/dev/packages/@ember/utils/lib/is_empty.js +1 -12
- package/dist/dev/packages/@glimmer/destroyable/index.js +1 -1
- package/dist/dev/packages/@glimmer/manager/index.js +5 -315
- package/dist/dev/packages/@glimmer/node/index.js +3 -11
- package/dist/dev/packages/@glimmer/opcode-compiler/index.js +2 -7
- package/dist/dev/packages/@glimmer/program/index.js +194 -3
- package/dist/dev/packages/@glimmer/reference/index.js +4 -5
- package/dist/dev/packages/@glimmer/runtime/index.js +15 -10
- package/dist/dev/packages/@glimmer/tracking/index.js +2 -11
- package/dist/dev/packages/@glimmer/tracking/primitives/cache/index.js +1 -11
- package/dist/dev/packages/@glimmer/util/index.js +1 -2
- package/dist/dev/packages/@glimmer/validator/index.js +4 -1253
- package/dist/dev/packages/@glimmer/vm/index.js +1 -1
- package/dist/dev/packages/@glimmer/wire-format/index.js +3 -65
- package/dist/dev/packages/ember/version.js +1 -1
- package/dist/dev/packages/ember-template-compiler/index.js +7 -7
- package/dist/dev/packages/shared-chunks/{alias-CSC0WIbj.js → alias-ZcMQckQV.js} +8 -4
- package/dist/dev/packages/shared-chunks/api-BAmlf_CN.js +310 -0
- package/dist/dev/packages/shared-chunks/{api-BQMslHhq.js → api-BawZUDYD.js} +5 -6
- package/dist/dev/packages/shared-chunks/{args-proxy-DgXMc9b5.js → args-proxy-BNLuRFlO.js} +2 -4
- package/dist/dev/packages/shared-chunks/{array-D8PfjQHi.js → array-Bh_kUjzy.js} +2 -1
- package/dist/dev/packages/shared-chunks/assert-Zqc4wiAV.js +6 -0
- package/dist/dev/packages/shared-chunks/cache-B7dqAS38.js +596 -0
- package/dist/dev/packages/shared-chunks/{capabilities-O_xc7Yqk.js → capabilities-CZkuOqqC.js} +0 -5
- package/dist/dev/packages/shared-chunks/chain-tags-D6tuFUj_.js +190 -0
- package/dist/dev/packages/shared-chunks/{collections-D_nY_0UJ.js → collections-DPkjqeA3.js} +0 -1
- package/dist/dev/packages/shared-chunks/{compiler-D1leQ3Gl.js → compiler-QUSl_urU.js} +7043 -235
- package/dist/dev/packages/shared-chunks/computed-CJnghmXC.js +980 -0
- package/dist/dev/packages/shared-chunks/container-BzzHmCNj.js +404 -0
- package/dist/dev/packages/shared-chunks/curly-BBzF_bI8.js +617 -0
- package/dist/dev/packages/shared-chunks/curried-BZnYakIg.js +5 -0
- package/dist/dev/packages/shared-chunks/{debug-to-string-CFb7h0lY.js → debug-to-string-C6LsA_qz.js} +1 -2
- package/dist/dev/packages/shared-chunks/decorator-B5Uh5NFI.js +135 -0
- package/dist/dev/packages/shared-chunks/element-DQJOvSlQ.js +109 -0
- package/dist/dev/packages/shared-chunks/element-builder--iTIJyCB.js +812 -0
- package/dist/dev/packages/shared-chunks/env-g-kaAFLN.js +161 -0
- package/dist/dev/packages/shared-chunks/events-6aFVjD4k.js +180 -0
- package/dist/dev/packages/shared-chunks/get-D5b5QlqE.js +138 -0
- package/dist/dev/packages/shared-chunks/get-debug-name-CSniHBsn.js +45 -0
- package/dist/dev/packages/shared-chunks/get_properties-CIm8IAtP.js +55 -0
- package/dist/dev/packages/shared-chunks/guid-Cbq2sNV_.js +123 -0
- package/dist/dev/packages/shared-chunks/hash-BRRFQJ99.js +192 -0
- package/dist/dev/packages/shared-chunks/helper-Do7NCZHI.js +314 -0
- package/dist/dev/packages/shared-chunks/index-CwnQYqK5.js +2500 -0
- package/dist/dev/packages/shared-chunks/{index-BUPd6pkm.js → index-CyZiGiEI.js} +28 -29
- package/dist/dev/packages/shared-chunks/index-D-xTBV4B.js +220 -0
- package/dist/dev/packages/shared-chunks/injected_property-B4T-FzZZ.js +70 -0
- package/dist/dev/packages/shared-chunks/intern-zquhAEIg.js +51 -0
- package/dist/dev/packages/shared-chunks/internal-CAL-jHZt.js +140 -0
- package/dist/dev/packages/shared-chunks/internal-helper-Ez7zbEIa.js +7 -0
- package/dist/dev/packages/shared-chunks/{neq-DujMPv1k.js → invoke-B8M5fQQS.js} +4 -32
- package/dist/{prod/packages/shared-chunks/is_proxy-Cr1qlMv_.js → dev/packages/shared-chunks/is_proxy-Bzg0d4m4.js} +1 -1
- package/dist/dev/packages/shared-chunks/libraries-CHBwbR72.js +79 -0
- package/dist/dev/packages/shared-chunks/mandatory-setter-BpbAMTzV.js +107 -0
- package/dist/dev/packages/shared-chunks/meta-BmRXesrk.js +46 -0
- package/dist/{prod/packages/shared-chunks/name-C68GLLO3.js → dev/packages/shared-chunks/name-Clp4Vsod.js} +1 -1
- package/dist/dev/packages/shared-chunks/{namespace_search-uT8odThF.js → namespace_search-BfvzEQzN.js} +1 -2
- package/dist/dev/packages/shared-chunks/normalize-CKySQVU7.js +84 -0
- package/dist/dev/packages/shared-chunks/observers-C2DurkLG.js +199 -0
- package/dist/dev/packages/shared-chunks/on-BueSMv9L.js +253 -0
- package/dist/dev/packages/shared-chunks/opcodes-CplRyHl_.js +50 -0
- package/dist/dev/packages/shared-chunks/or-O0eJQ4K-.js +118 -0
- package/dist/{prod/packages/shared-chunks/program-B7SJZ5NF.js → dev/packages/shared-chunks/program-DzAfcWFj.js} +1 -1
- package/dist/{prod/packages/shared-chunks/program-context-DFiwaPMR.js → dev/packages/shared-chunks/program-context-CadjldRr.js} +4 -3
- package/dist/dev/packages/shared-chunks/property_get-CIBS9umw.js +139 -0
- package/dist/dev/packages/shared-chunks/{property_set-DaoZXGM5.js → property_set-D3PKyisF.js} +4 -2
- package/dist/dev/packages/shared-chunks/props-fiqxqhAH.js +85 -0
- package/dist/dev/packages/shared-chunks/{reference-C3TKDRnP.js → reference-BoPB2LfI.js} +3 -4
- package/dist/{prod/packages/shared-chunks/registers-ylirb0dq.js → dev/packages/shared-chunks/registers-C_W2qYHJ.js} +1 -1
- package/dist/{prod/packages/shared-chunks/rehydrate-builder-D3t52iGR.js → dev/packages/shared-chunks/rehydrate-builder-DCyIgnCR.js} +7 -4
- package/dist/dev/packages/shared-chunks/{render-DCchifOK.js → render-CpKaO-BO.js} +512 -16
- package/dist/{prod/packages/shared-chunks/chunk-3SQBS3Y5-Cj4eryg1.js → dev/packages/shared-chunks/runtime-CYyqkz5q-BOdRhmsS.js} +4 -59
- package/dist/{prod/packages/shared-chunks/serialize-builder-iXiRs1Pg.js → dev/packages/shared-chunks/serialize-builder-DxgGRvH_.js} +2 -7
- package/dist/dev/packages/shared-chunks/set_properties-BghuuGJx.js +48 -0
- package/dist/dev/packages/shared-chunks/{setup-registry-DxchCIL2.js → setup-registry-BC5VMvei.js} +34 -14
- package/dist/dev/packages/shared-chunks/spec-BXl1reqK.js +16 -0
- package/dist/dev/packages/shared-chunks/super-BBBjgF69.js +91 -0
- package/dist/dev/packages/shared-chunks/syscall-ops-BPFtDquC.js +133 -0
- package/dist/dev/packages/shared-chunks/template-BRrQR6KS.js +16 -0
- package/dist/dev/packages/shared-chunks/{template-kM-7TTcc.js → template-R_5UMHhb.js} +1 -1
- package/dist/dev/packages/shared-chunks/template-only-BqOt8bDl.js +78 -0
- package/dist/dev/packages/shared-chunks/textarea-WSlUEr0y.js +468 -0
- package/dist/dev/packages/shared-chunks/tracked-CKE4wnE6.js +148 -0
- package/dist/dev/packages/shared-chunks/tracked-data-CGnA4ytZ.js +31 -0
- package/dist/dev/packages/shared-chunks/transform-resolutions-h1ik8gqW.js +645 -0
- package/dist/dev/packages/shared-chunks/unique-id-CgmHQiwi.js +32 -0
- package/dist/{prod/packages/shared-chunks/on-CersD7PL.js → dev/packages/shared-chunks/untouchable-this-B3DVwpHS.js} +215 -1397
- package/dist/dev/packages/shared-chunks/vm-ops-ImHv0Wtg.js +12 -0
- package/dist/dev/packages/shared-chunks/well-known-_EVO9RaV.js +17 -0
- package/dist/prod/packages/@ember/-internals/container/index.js +4 -315
- package/dist/prod/packages/@ember/-internals/deprecations/index.js +1 -1
- package/dist/prod/packages/@ember/-internals/environment/index.js +3 -158
- package/dist/prod/packages/@ember/-internals/glimmer/index.js +14 -13
- package/dist/prod/packages/@ember/-internals/meta/lib/meta.js +0 -3
- package/dist/prod/packages/@ember/-internals/metal/index.js +18 -13
- package/dist/prod/packages/@ember/-internals/routing/index.js +1 -6
- package/dist/prod/packages/@ember/-internals/runtime/lib/ext/rsvp.js +0 -1
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +9 -10
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +1 -6
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/registry_proxy.js +0 -1
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +2 -6
- package/dist/prod/packages/@ember/-internals/string/index.js +0 -2
- package/dist/prod/packages/@ember/-internals/utils/index.js +32 -30
- package/dist/prod/packages/@ember/-internals/views/index.js +0 -1
- package/dist/prod/packages/@ember/-internals/views/lib/compat/fallback-view-registry.js +0 -2
- package/dist/prod/packages/@ember/-internals/views/lib/mixins/action_support.js +1 -6
- package/dist/prod/packages/@ember/-internals/views/lib/system/event_dispatcher.js +2 -7
- package/dist/prod/packages/@ember/-internals/views/lib/system/utils.js +1 -2
- package/dist/prod/packages/@ember/-internals/views/lib/views/core_view.js +2 -15
- package/dist/prod/packages/@ember/-internals/views/lib/views/states.js +0 -2
- package/dist/prod/packages/@ember/application/index.js +5 -24
- package/dist/prod/packages/@ember/application/instance.js +5 -18
- package/dist/prod/packages/@ember/application/namespace.js +4 -8
- package/dist/prod/packages/@ember/array/index.js +7 -12
- package/dist/prod/packages/@ember/array/proxy.js +9 -10
- package/dist/prod/packages/@ember/canary-features/index.js +1 -1
- package/dist/prod/packages/@ember/component/helper.js +1 -12
- package/dist/prod/packages/@ember/component/index.js +1291 -15
- package/dist/prod/packages/@ember/component/template-only.js +1 -6
- package/dist/prod/packages/@ember/controller/index.js +3 -16
- package/dist/prod/packages/@ember/debug/container-debug-adapter.js +1 -15
- package/dist/prod/packages/@ember/debug/data-adapter.js +5 -7
- package/dist/prod/packages/@ember/debug/index.js +1 -1
- package/dist/prod/packages/@ember/debug/lib/deprecate.js +1 -1
- package/dist/prod/packages/@ember/engine/index.js +3 -27
- package/dist/prod/packages/@ember/engine/instance.js +3 -9
- package/dist/prod/packages/@ember/helper/index.js +159 -19
- package/dist/prod/packages/@ember/instrumentation/index.js +1 -1
- package/dist/prod/packages/@ember/modifier/index.js +2 -14
- package/dist/prod/packages/@ember/modifier/on.js +1 -6
- package/dist/prod/packages/@ember/object/-internals.js +2 -6
- package/dist/prod/packages/@ember/object/compat.js +3 -7
- package/dist/prod/packages/@ember/object/computed.js +2 -8
- package/dist/prod/packages/@ember/object/core.js +8 -15
- package/dist/prod/packages/@ember/object/evented.js +2 -7
- package/dist/prod/packages/@ember/object/events.js +1 -6
- package/dist/prod/packages/@ember/object/index.js +10 -12
- package/dist/prod/packages/@ember/object/internals.js +2 -6
- package/dist/prod/packages/@ember/object/lib/computed/computed_macros.js +5 -20
- package/dist/prod/packages/@ember/object/lib/computed/reduce_computed_macros.js +2 -9
- package/dist/prod/packages/@ember/object/mixin.js +6 -9
- package/dist/prod/packages/@ember/object/observable.js +7 -9
- package/dist/prod/packages/@ember/object/observers.js +1 -6
- package/dist/prod/packages/@ember/object/promise-proxy-mixin.js +3 -9
- package/dist/prod/packages/@ember/object/proxy.js +0 -7
- package/dist/prod/packages/@ember/reactive/collections.js +591 -1
- package/dist/prod/packages/@ember/renderer/index.js +1 -12
- package/dist/prod/packages/@ember/routing/history-location.js +0 -1
- package/dist/prod/packages/@ember/routing/index.js +580 -12
- package/dist/prod/packages/@ember/routing/lib/dsl.js +0 -2
- package/dist/prod/packages/@ember/routing/lib/generate_controller.js +1 -6
- package/dist/prod/packages/@ember/routing/lib/routing-service.js +4 -14
- package/dist/prod/packages/@ember/routing/lib/utils.js +1 -6
- package/dist/prod/packages/@ember/routing/none-location.js +0 -1
- package/dist/prod/packages/@ember/routing/route.js +12 -22
- package/dist/prod/packages/@ember/routing/router-service.js +6 -15
- package/dist/prod/packages/@ember/routing/router.js +4 -17
- package/dist/prod/packages/@ember/runloop/index.js +1 -6
- package/dist/prod/packages/@ember/service/index.js +1 -7
- package/dist/prod/packages/@ember/template/index.js +1 -12
- package/dist/prod/packages/@ember/template-compiler/lib/compile-options.js +12 -14
- package/dist/prod/packages/@ember/template-compiler/lib/dasherize-component-name.js +0 -2
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-against-attrs.js +0 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-against-named-outlets.js +0 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-input-helper-without-block.js +0 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-reserved-named-arguments.js +0 -2
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/auto-import-builtins.js +13 -60
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/index.js +1 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-each-track-array.js +0 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-in-element.js +0 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-resolutions.js +126 -4
- package/dist/prod/packages/@ember/template-compiler/lib/template.js +2 -7
- package/dist/prod/packages/@ember/template-factory/index.js +1 -5
- package/dist/prod/packages/@ember/utils/lib/compare.js +0 -8
- package/dist/prod/packages/@ember/utils/lib/is_empty.js +1 -7
- package/dist/prod/packages/@glimmer/manager/index.js +4 -292
- package/dist/prod/packages/@glimmer/node/index.js +3 -8
- package/dist/prod/packages/@glimmer/opcode-compiler/index.js +2 -5
- package/dist/prod/packages/@glimmer/program/index.js +194 -3
- package/dist/prod/packages/@glimmer/reference/index.js +4 -4
- package/dist/prod/packages/@glimmer/runtime/index.js +14 -8
- package/dist/prod/packages/@glimmer/tracking/index.js +2 -7
- package/dist/prod/packages/@glimmer/tracking/primitives/cache/index.js +1 -6
- package/dist/prod/packages/@glimmer/util/index.js +2 -2
- package/dist/prod/packages/@glimmer/validator/index.js +5 -1016
- package/dist/prod/packages/@glimmer/vm/index.js +1 -1
- package/dist/prod/packages/@glimmer/wire-format/index.js +3 -65
- package/dist/prod/packages/ember/version.js +1 -1
- package/dist/prod/packages/ember-template-compiler/index.js +4 -7
- package/dist/prod/packages/shared-chunks/{alias-BLBQkche.js → alias-DBW_V5vD.js} +7 -6
- package/dist/prod/packages/shared-chunks/api-CM1trl_4.js +289 -0
- package/dist/prod/packages/shared-chunks/{api-B5UrgITK.js → api-zh_k31vb.js} +4 -5
- package/dist/prod/packages/shared-chunks/{args-proxy-Dl0A0YWI.js → args-proxy-BDXbXCF9.js} +2 -2
- package/dist/prod/packages/shared-chunks/{array-kVQfzrQn.js → array-D6Couewv.js} +2 -3
- package/dist/prod/packages/shared-chunks/assert-Zqc4wiAV.js +6 -0
- package/dist/prod/packages/shared-chunks/cache-BIlOoPA7.js +371 -0
- package/dist/prod/packages/shared-chunks/{capabilities-DXA-L0iT.js → capabilities-_5e35539.js} +0 -3
- package/dist/prod/packages/shared-chunks/chain-tags-C9rFtQ_x.js +178 -0
- package/dist/prod/packages/shared-chunks/{compiler-Bbki2GT_.js → compiler-c4yUVrl_.js} +7044 -193
- package/dist/prod/packages/shared-chunks/{namespace_search-Dcdalhj6.js → computed-DjCIU_ht.js} +108 -239
- package/dist/prod/packages/shared-chunks/container-BYOnjnwz.js +315 -0
- package/dist/prod/packages/shared-chunks/curly-ZzX43b50.js +545 -0
- package/dist/prod/packages/shared-chunks/curried-BZnYakIg.js +5 -0
- package/dist/prod/packages/shared-chunks/debug-render-tree-CF5O4-WI.js +2049 -0
- package/dist/prod/packages/shared-chunks/{decorator-BdDDBUd2.js → decorator-9ikVwsjY.js} +0 -1
- package/dist/prod/packages/shared-chunks/element-DUOVW5Ho.js +100 -0
- package/dist/prod/packages/shared-chunks/{element-builder-CzXb9l1W.js → element-builder-CnlTPNyw.js} +109 -88
- package/dist/prod/packages/shared-chunks/env-DXxsTFkM.js +158 -0
- package/dist/prod/packages/shared-chunks/events-DYrYz3V8.js +174 -0
- package/dist/prod/packages/shared-chunks/get-t0-itmA-.js +138 -0
- package/dist/prod/packages/shared-chunks/get_properties-Nn08mLAH.js +55 -0
- package/dist/prod/packages/shared-chunks/guid-Cbq2sNV_.js +123 -0
- package/dist/prod/packages/shared-chunks/hash-mcs3pEFO.js +192 -0
- package/dist/prod/packages/shared-chunks/helper-DLjV2ZZW.js +298 -0
- package/dist/prod/packages/shared-chunks/{index-CjaDF9kC.js → index-Bj71BDDA.js} +17 -10
- package/dist/prod/packages/shared-chunks/index-D-xTBV4B.js +220 -0
- package/dist/prod/packages/shared-chunks/index-qDFz6Mfe.js +2322 -0
- package/dist/prod/packages/shared-chunks/{injected_property-CTVs5FPh.js → injected_property--eJunJph.js} +2 -3
- package/dist/prod/packages/shared-chunks/intern-zquhAEIg.js +51 -0
- package/dist/prod/packages/shared-chunks/internal-DidurjJB.js +137 -0
- package/dist/prod/packages/shared-chunks/internal-helper-DIbr1RgC.js +7 -0
- package/dist/prod/packages/shared-chunks/{neq-BqdovTuC.js → invoke-Cj5zMqHz.js} +4 -24
- package/dist/{dev/packages/shared-chunks/is_proxy-B0smdQy8.js → prod/packages/shared-chunks/is_proxy-Bzg0d4m4.js} +1 -1
- package/dist/prod/packages/shared-chunks/libraries-_k-4KK5_.js +59 -0
- package/dist/prod/packages/shared-chunks/meta-B9mldqPL.js +36 -0
- package/dist/{dev/packages/shared-chunks/name-Z7dpqvzn.js → prod/packages/shared-chunks/name-Clp4Vsod.js} +1 -1
- package/dist/prod/packages/shared-chunks/namespace_search-BfvzEQzN.js +134 -0
- package/dist/prod/packages/shared-chunks/normalize-D9jDJVGg.js +84 -0
- package/dist/prod/packages/shared-chunks/observers-CDkeR0nI.js +199 -0
- package/dist/prod/packages/shared-chunks/on-B5NVufs_.js +228 -0
- package/dist/prod/packages/shared-chunks/opcodes-CplRyHl_.js +50 -0
- package/dist/prod/packages/shared-chunks/or-3AxY5TPj.js +91 -0
- package/dist/{dev/packages/shared-chunks/program-DfV0v8aa.js → prod/packages/shared-chunks/program-B7CWdS8W.js} +1 -2
- package/dist/{dev/packages/shared-chunks/program-context-sJz0oHOA.js → prod/packages/shared-chunks/program-context-B8HKU7wu.js} +4 -3
- package/dist/prod/packages/shared-chunks/property_get-CAFdpRyu.js +121 -0
- package/dist/prod/packages/shared-chunks/{property_set-B2sZxeCw.js → property_set-BunbMFtp.js} +3 -5
- package/dist/prod/packages/shared-chunks/props-fiqxqhAH.js +85 -0
- package/dist/prod/packages/shared-chunks/{reference-BNqcwZWH.js → reference-BshxG6wn.js} +3 -3
- package/dist/{dev/packages/shared-chunks/registers-ylirb0dq.js → prod/packages/shared-chunks/registers-C_W2qYHJ.js} +1 -1
- package/dist/{dev/packages/shared-chunks/rehydrate-builder-BRH0p0wA.js → prod/packages/shared-chunks/rehydrate-builder-DJ8k-6fg.js} +7 -7
- package/dist/prod/packages/shared-chunks/{render-D78XHdek.js → render-DkJJmoI4.js} +488 -12
- package/dist/{dev/packages/shared-chunks/chunk-3SQBS3Y5-Cj4eryg1.js → prod/packages/shared-chunks/runtime-CYyqkz5q-BOdRhmsS.js} +4 -59
- package/dist/{dev/packages/shared-chunks/serialize-builder-DiO7Ak9_.js → prod/packages/shared-chunks/serialize-builder-R3Ozg0sC.js} +2 -10
- package/dist/prod/packages/shared-chunks/set_properties-LT3RzRmJ.js +48 -0
- package/dist/prod/packages/shared-chunks/{setup-registry-Cs-7NIJU.js → setup-registry-C2KfZJWI.js} +34 -13
- package/dist/prod/packages/shared-chunks/spec-BXl1reqK.js +16 -0
- package/dist/prod/packages/shared-chunks/super-BBBjgF69.js +91 -0
- package/dist/prod/packages/shared-chunks/syscall-ops-BPFtDquC.js +133 -0
- package/dist/prod/packages/shared-chunks/template-BRrQR6KS.js +16 -0
- package/dist/prod/packages/shared-chunks/template-only-BtLl0uH0.js +78 -0
- package/dist/prod/packages/shared-chunks/textarea-CHqL0Rdh.js +454 -0
- package/dist/prod/packages/shared-chunks/{tracked-Cl5l4v8b.js → tracked-DAVrVqJl.js} +5 -4
- package/dist/prod/packages/shared-chunks/tracked-data-C83f5V5S.js +31 -0
- package/dist/prod/packages/shared-chunks/unique-id-CfHImDRV.js +32 -0
- package/dist/prod/packages/shared-chunks/vm-ops-ImHv0Wtg.js +12 -0
- package/dist/prod/packages/shared-chunks/well-known-_EVO9RaV.js +17 -0
- package/docs/data.json +1237 -1023
- package/lib/index.js +0 -1
- package/package.json +14 -12
- package/types/stable/@ember/-internals/container/lib/registry.d.ts +1 -1
- package/types/stable/@ember/-internals/deprecations/index.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/index.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/curly.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/mount.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/outlet.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/route-template.d.ts +2 -2
- package/types/stable/@ember/-internals/glimmer/lib/component.d.ts +9 -7
- package/types/stable/@ember/-internals/glimmer/lib/components/abstract-input.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/dom.d.ts +6 -2
- package/types/stable/@ember/-internals/glimmer/lib/environment.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/helper.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/renderer.d.ts +3 -3
- package/types/stable/@ember/-internals/glimmer/lib/setup-registry.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/utils/bindings.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.d.ts +3 -2
- package/types/stable/@ember/-internals/glimmer/lib/utils/iterator.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/utils/managers.d.ts +2 -1
- package/types/stable/@ember/-internals/glimmer/lib/utils/serialization-first-node-helpers.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/utils/string.d.ts +1 -1
- package/types/stable/@ember/-internals/meta/lib/meta.d.ts +3 -2
- package/types/stable/@ember/-internals/metal/lib/cache.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/chain-tags.d.ts +3 -2
- package/types/stable/@ember/-internals/metal/lib/computed.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/decorator.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/deprecate_property.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/events.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/observer.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/properties.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/property_events.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/tags.d.ts +2 -1
- package/types/stable/@ember/-internals/runtime/lib/mixins/container_proxy.d.ts +1 -1
- package/types/stable/@ember/-internals/runtime/lib/mixins/registry_proxy.d.ts +1 -1
- package/types/stable/@ember/-internals/utils/lib/is_proxy.d.ts +1 -1
- package/types/stable/@ember/-internals/utils/lib/mandatory-setter.d.ts +1 -1
- package/types/stable/@ember/-internals/views/index.d.ts +0 -1
- package/types/stable/@ember/-internals/views/lib/system/utils.d.ts +1 -1
- package/types/stable/@ember/-internals/views/lib/views/core_view.d.ts +2 -2
- package/types/stable/@ember/-internals/views/lib/views/states.d.ts +1 -1
- package/types/stable/@ember/application/index.d.ts +5 -4
- package/types/stable/@ember/application/instance.d.ts +4 -3
- package/types/stable/@ember/application/namespace.d.ts +1 -1
- package/types/stable/@ember/array/proxy.d.ts +4 -3
- package/types/stable/@ember/component/helper.d.ts +1 -1
- package/types/stable/@ember/component/index.d.ts +6 -3
- package/types/stable/@ember/controller/index.d.ts +2 -2
- package/types/stable/@ember/debug/container-debug-adapter.d.ts +1 -1
- package/types/stable/@ember/engine/index.d.ts +3 -3
- package/types/stable/@ember/engine/instance.d.ts +4 -3
- package/types/stable/@ember/helper/index.d.ts +167 -5
- package/types/stable/@ember/modifier/index.d.ts +1 -1
- package/types/stable/@ember/object/-internals.d.ts +2 -2
- package/types/stable/@ember/object/compat.d.ts +2 -2
- package/types/stable/@ember/object/computed.d.ts +3 -1
- package/types/stable/@ember/object/evented.d.ts +1 -1
- package/types/stable/@ember/object/events.d.ts +1 -1
- package/types/stable/@ember/object/index.d.ts +8 -2
- package/types/stable/@ember/object/lib/computed/computed_macros.d.ts +1 -1
- package/types/stable/@ember/object/mixin.d.ts +1 -1
- package/types/stable/@ember/object/observers.d.ts +1 -1
- package/types/stable/@ember/object/proxy.d.ts +1 -1
- package/types/stable/@ember/reactive/collections.d.ts +6 -6
- package/types/stable/@ember/renderer/index.d.ts +2 -2
- package/types/stable/@ember/routing/index.d.ts +1 -1
- package/types/stable/@ember/routing/lib/controller_for.d.ts +2 -2
- package/types/stable/@ember/routing/route.d.ts +2 -2
- package/types/stable/@ember/routing/router.d.ts +2 -2
- package/types/stable/@ember/service/index.d.ts +1 -1
- package/types/stable/@ember/template/index.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/dasherize-component-name.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/assert-against-attrs.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/assert-against-named-outlets.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/assert-input-helper-without-block.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/assert-reserved-named-arguments.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/auto-import-builtins.d.ts +1 -4
- package/types/stable/@ember/template-compiler/lib/plugins/transform-action-syntax.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/transform-each-in-into-each.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/transform-each-track-array.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/transform-in-element.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/transform-quoted-bindings-into-just-bindings.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/transform-resolutions.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/transform-wrap-mount-and-outlet.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/utils.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/system/calculate-location-display.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/types.d.ts +2 -1
- package/types/stable/@ember/template-factory/index.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/builder/builder-interface.d.ts +2 -2
- package/types/stable/@glimmer/compiler/lib/builder/builder.d.ts +2 -2
- package/types/stable/@glimmer/compiler/lib/compiler.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/context.d.ts +2 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/index.d.ts +2 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/impl.d.ts +2 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/curry.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/dynamic-vars.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/has-block.d.ts +2 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/if-unless.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/log.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/element/classified.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/element/component.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/element/simple-element.d.ts +2 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/expressions.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/statements.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/strict-mode.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/2-encoding/expressions.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/2-encoding/mir.d.ts +3 -1
- package/types/stable/@glimmer/compiler/lib/shared/result.d.ts +1 -1
- package/types/stable/@glimmer/manager/lib/public/component.d.ts +1 -1
- package/types/stable/@glimmer/manager/lib/util/args-proxy.d.ts +1 -1
- package/types/stable/@glimmer/manager/lib/util/capabilities.d.ts +1 -1
- package/types/stable/@glimmer/node/lib/node-dom-helper.d.ts +1 -1
- package/types/stable/@glimmer/opcode-compiler/lib/opcode-builder/helpers/components.d.ts +1 -1
- package/types/stable/@glimmer/runtime/index.d.ts +7 -4
- package/types/stable/@glimmer/runtime/lib/compiled/expressions/concat.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/compiled/opcodes/-debug-strip.d.ts +4 -3
- package/types/stable/@glimmer/runtime/lib/compiled/opcodes/component.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/compiled/opcodes/dom.d.ts +2 -2
- package/types/stable/@glimmer/runtime/lib/compiled/opcodes/vm.d.ts +2 -2
- package/types/stable/@glimmer/runtime/lib/component/template-only.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/curried-value.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/helpers/and.d.ts +3 -0
- package/types/stable/@glimmer/runtime/lib/helpers/gt.d.ts +8 -0
- package/types/stable/@glimmer/runtime/lib/helpers/gte.d.ts +8 -0
- package/types/stable/@glimmer/runtime/lib/helpers/invoke.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/helpers/lt.d.ts +8 -0
- package/types/stable/@glimmer/runtime/lib/helpers/lte.d.ts +8 -0
- package/types/stable/@glimmer/runtime/lib/helpers/not.d.ts +3 -0
- package/types/stable/@glimmer/runtime/lib/helpers/or.d.ts +3 -0
- package/types/stable/@glimmer/runtime/lib/opcodes.d.ts +2 -2
- package/types/stable/@glimmer/runtime/lib/references/class-list.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/references/curry-value.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/render.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/scope.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/vm/append.d.ts +3 -2
- package/types/stable/@glimmer/runtime/lib/vm/arguments.d.ts +2 -2
- package/types/stable/@glimmer/runtime/lib/vm/content/text.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/vm/element-builder.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/vm/low-level.d.ts +2 -1
- package/types/stable/@glimmer/runtime/lib/vm/rehydrate-builder.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/vm/update.d.ts +2 -1
- package/types/stable/@glimmer/syntax/lib/keywords.d.ts +2 -2
- package/types/stable/@glimmer/tracking/index.d.ts +2 -1
- package/types/stable/@glimmer/tracking/primitives/cache.d.ts +1 -1
- package/types/stable/index.d.ts +7 -1
- package/dist/dev/packages/@ember/-internals/views/lib/component_lookup.js +0 -14
- package/dist/dev/packages/shared-chunks/assert-CUCJBR2C.js +0 -19
- package/dist/dev/packages/shared-chunks/constants-BbdWMvgs.js +0 -213
- package/dist/dev/packages/shared-chunks/dynamic-CgX8M02_.js +0 -3823
- package/dist/dev/packages/shared-chunks/element-builder-BpJIoi99.js +0 -404
- package/dist/dev/packages/shared-chunks/fragment-Cc5k9Oy4.js +0 -911
- package/dist/dev/packages/shared-chunks/index-RzG0Jvjx.js +0 -6306
- package/dist/dev/packages/shared-chunks/mandatory-setter-DHZe7-kW.js +0 -425
- package/dist/dev/packages/shared-chunks/observers-Bj9qLVau.js +0 -2062
- package/dist/dev/packages/shared-chunks/set_properties-kVGzZL_a.js +0 -100
- package/dist/dev/packages/shared-chunks/transform-resolutions-D-YtZ0_g.js +0 -7458
- package/dist/prod/packages/@ember/-internals/views/lib/component_lookup.js +0 -14
- package/dist/prod/packages/shared-chunks/constants-DThhT5fu.js +0 -210
- package/dist/prod/packages/shared-chunks/fragment-D7nBU9ae.js +0 -925
- package/dist/prod/packages/shared-chunks/index-r-Dz_hzt.js +0 -5931
- package/dist/prod/packages/shared-chunks/observers-tZ2aOzr4.js +0 -714
- package/dist/prod/packages/shared-chunks/set_properties-C1T46IiN.js +0 -101
- package/dist/prod/packages/shared-chunks/super-Cm_a_cLQ.js +0 -275
- package/dist/prod/packages/shared-chunks/transform-resolutions-DR4GLmR2.js +0 -6936
- package/types/stable/@ember/-internals/views/lib/component_lookup.d.ts +0 -8
- package/dist/prod/packages/shared-chunks/{collections-GpG8lT2g.js → collections-C3Y8z_9v.js} +9 -9
|
@@ -0,0 +1,468 @@
|
|
|
1
|
+
import { h as hasDOM } from './index-BGP1rw3B.js';
|
|
2
|
+
import { warn } from '../@ember/debug/index.js';
|
|
3
|
+
import { action } from '../@ember/object/index.js';
|
|
4
|
+
import { i as isConstRef, v as valueForRef, d as isUpdatableRef, u as updateRef } from './reference-BoPB2LfI.js';
|
|
5
|
+
import { x as untrack } from './cache-B7dqAS38.js';
|
|
6
|
+
import { on } from '../@ember/modifier/on.js';
|
|
7
|
+
import { t as templateFactory } from './index-CyZiGiEI.js';
|
|
8
|
+
import { I as InternalComponent, o as opaquify } from './internal-CAL-jHZt.js';
|
|
9
|
+
import { d as decorateFieldV2, i as initializeDeferredDecorator, a as decorateMethodV2 } from './runtime-CYyqkz5q-BOdRhmsS.js';
|
|
10
|
+
import { assert } from '../@ember/debug/lib/assert.js';
|
|
11
|
+
import { t as tracked } from './tracked-CKE4wnE6.js';
|
|
12
|
+
|
|
13
|
+
const InputTemplate = templateFactory(
|
|
14
|
+
/*
|
|
15
|
+
<input
|
|
16
|
+
{{!-- for compatibility --}}
|
|
17
|
+
id={{this.id}}
|
|
18
|
+
class={{this.class}}
|
|
19
|
+
|
|
20
|
+
...attributes
|
|
21
|
+
|
|
22
|
+
type={{this.type}}
|
|
23
|
+
checked={{this.checked}}
|
|
24
|
+
value={{this.value}}
|
|
25
|
+
|
|
26
|
+
{{on "change" this.change}}
|
|
27
|
+
{{on "input" this.input}}
|
|
28
|
+
{{on "keyup" this.keyUp}}
|
|
29
|
+
{{on "paste" this.valueDidChange}}
|
|
30
|
+
{{on "cut" this.valueDidChange}}
|
|
31
|
+
/>
|
|
32
|
+
*/
|
|
33
|
+
{
|
|
34
|
+
"id": null,
|
|
35
|
+
"block": "[[[11,\"input\"],[16,1,[30,0,[\"id\"]]],[16,0,[30,0,[\"class\"]]],[17,1],[16,4,[30,0,[\"type\"]]],[16,\"checked\",[30,0,[\"checked\"]]],[16,2,[30,0,[\"value\"]]],[4,[32,0],[\"change\",[30,0,[\"change\"]]],null],[4,[32,0],[\"input\",[30,0,[\"input\"]]],null],[4,[32,0],[\"keyup\",[30,0,[\"keyUp\"]]],null],[4,[32,0],[\"paste\",[30,0,[\"valueDidChange\"]]],null],[4,[32,0],[\"cut\",[30,0,[\"valueDidChange\"]]],null],[12],[13]],[\"&attrs\"],[]]",
|
|
36
|
+
"moduleName": "packages/@ember/-internals/glimmer/lib/templates/input.hbs",
|
|
37
|
+
"scope": () => ({
|
|
38
|
+
on
|
|
39
|
+
}),
|
|
40
|
+
"isStrictMode": true
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
const UNINITIALIZED = Object.freeze({});
|
|
44
|
+
function elementForEvent(event) {
|
|
45
|
+
(!(event.target instanceof HTMLInputElement || event.target instanceof HTMLTextAreaElement) && assert('[BUG] event target must be an <input> or <textarea> element', event.target instanceof HTMLInputElement || event.target instanceof HTMLTextAreaElement));
|
|
46
|
+
return event.target;
|
|
47
|
+
}
|
|
48
|
+
function valueForEvent(event) {
|
|
49
|
+
return elementForEvent(event).value;
|
|
50
|
+
}
|
|
51
|
+
function devirtualize(callback) {
|
|
52
|
+
return event => callback(valueForEvent(event), event);
|
|
53
|
+
}
|
|
54
|
+
function valueFrom(reference) {
|
|
55
|
+
if (reference === undefined) {
|
|
56
|
+
return new LocalValue(undefined);
|
|
57
|
+
} else if (isConstRef(reference)) {
|
|
58
|
+
return new LocalValue(valueForRef(reference));
|
|
59
|
+
} else if (isUpdatableRef(reference)) {
|
|
60
|
+
return new UpstreamValue(reference);
|
|
61
|
+
} else {
|
|
62
|
+
return new ForkedValue(reference);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
class LocalValue {
|
|
66
|
+
static {
|
|
67
|
+
decorateFieldV2(this.prototype, "value", [tracked]);
|
|
68
|
+
}
|
|
69
|
+
#value = (initializeDeferredDecorator(this, "value"), void 0);
|
|
70
|
+
constructor(value) {
|
|
71
|
+
this.value = value;
|
|
72
|
+
}
|
|
73
|
+
get() {
|
|
74
|
+
return this.value;
|
|
75
|
+
}
|
|
76
|
+
set(value) {
|
|
77
|
+
this.value = value;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
class UpstreamValue {
|
|
81
|
+
constructor(reference) {
|
|
82
|
+
this.reference = reference;
|
|
83
|
+
}
|
|
84
|
+
get() {
|
|
85
|
+
return valueForRef(this.reference);
|
|
86
|
+
}
|
|
87
|
+
set(value) {
|
|
88
|
+
updateRef(this.reference, value);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
class ForkedValue {
|
|
92
|
+
local;
|
|
93
|
+
upstream;
|
|
94
|
+
lastUpstreamValue = UNINITIALIZED;
|
|
95
|
+
constructor(reference) {
|
|
96
|
+
this.upstream = new UpstreamValue(reference);
|
|
97
|
+
}
|
|
98
|
+
get() {
|
|
99
|
+
let upstreamValue = this.upstream.get();
|
|
100
|
+
if (upstreamValue !== this.lastUpstreamValue) {
|
|
101
|
+
this.lastUpstreamValue = upstreamValue;
|
|
102
|
+
this.local = new LocalValue(upstreamValue);
|
|
103
|
+
}
|
|
104
|
+
(!(this.local) && assert('[BUG] this.local must have been initialized at this point', this.local));
|
|
105
|
+
return this.local.get();
|
|
106
|
+
}
|
|
107
|
+
set(value) {
|
|
108
|
+
(!(this.local) && assert('[BUG] this.local must have been initialized at this point', this.local));
|
|
109
|
+
this.local.set(value);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
class AbstractInput extends InternalComponent {
|
|
113
|
+
validateArguments() {
|
|
114
|
+
(!(this.args.positional.length === 0) && assert(`The ${this.constructor} component does not take any positional arguments`, this.args.positional.length === 0));
|
|
115
|
+
super.validateArguments();
|
|
116
|
+
}
|
|
117
|
+
_value = valueFrom(this.args.named['value']);
|
|
118
|
+
get value() {
|
|
119
|
+
return this._value.get();
|
|
120
|
+
}
|
|
121
|
+
set value(value) {
|
|
122
|
+
this._value.set(value);
|
|
123
|
+
}
|
|
124
|
+
valueDidChange(event) {
|
|
125
|
+
this.value = valueForEvent(event);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* The `change` and `input` actions need to be overridden in the `Input`
|
|
130
|
+
* subclass. Unfortunately, some ember-source builds currently uses babel
|
|
131
|
+
* loose mode to transpile its classes. Having the `@action` decorator on the
|
|
132
|
+
* super class creates a getter on the prototype, and when the subclass
|
|
133
|
+
* overrides the method, the loose mode transpilation would emit something
|
|
134
|
+
* like `Subclass.prototype['change'] = function change() { ... }`, which
|
|
135
|
+
* fails because `prototype['change']` is getter-only/readonly. The correct
|
|
136
|
+
* solution is to use `Object.defineProperty(prototype, 'change', ...)` but
|
|
137
|
+
* that requires disabling loose mode. For now, the workaround is to add the
|
|
138
|
+
* decorator only on the subclass. This is more of a configuration issue on
|
|
139
|
+
* our own builds and doesn't really affect apps.
|
|
140
|
+
*/
|
|
141
|
+
|
|
142
|
+
/* @action */
|
|
143
|
+
static {
|
|
144
|
+
decorateMethodV2(this.prototype, "valueDidChange", [action]);
|
|
145
|
+
}
|
|
146
|
+
change(event) {
|
|
147
|
+
this.valueDidChange(event);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/* @action */
|
|
151
|
+
input(event) {
|
|
152
|
+
this.valueDidChange(event);
|
|
153
|
+
}
|
|
154
|
+
keyUp(event) {
|
|
155
|
+
switch (event.key) {
|
|
156
|
+
case 'Enter':
|
|
157
|
+
this.listenerFor('enter')(event);
|
|
158
|
+
this.listenerFor('insert-newline')(event);
|
|
159
|
+
break;
|
|
160
|
+
case 'Escape':
|
|
161
|
+
this.listenerFor('escape-press')(event);
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
static {
|
|
166
|
+
decorateMethodV2(this.prototype, "keyUp", [action]);
|
|
167
|
+
}
|
|
168
|
+
listenerFor(name) {
|
|
169
|
+
let listener = super.listenerFor(name);
|
|
170
|
+
if (this.isVirtualEventListener(name, listener)) {
|
|
171
|
+
return devirtualize(listener);
|
|
172
|
+
} else {
|
|
173
|
+
return listener;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
isVirtualEventListener(name, _listener) {
|
|
177
|
+
let virtualEvents = ['enter', 'insert-newline', 'escape-press'];
|
|
178
|
+
return virtualEvents.indexOf(name) !== -1;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
@module @ember/component
|
|
184
|
+
*/
|
|
185
|
+
let isValidInputType;
|
|
186
|
+
if (hasDOM) {
|
|
187
|
+
const INPUT_TYPES = Object.create(null);
|
|
188
|
+
const INPUT_ELEMENT = document.createElement('input');
|
|
189
|
+
INPUT_TYPES[''] = false;
|
|
190
|
+
INPUT_TYPES['text'] = true;
|
|
191
|
+
INPUT_TYPES['checkbox'] = true;
|
|
192
|
+
isValidInputType = type => {
|
|
193
|
+
let isValid = INPUT_TYPES[type];
|
|
194
|
+
if (isValid === undefined) {
|
|
195
|
+
try {
|
|
196
|
+
INPUT_ELEMENT.type = type;
|
|
197
|
+
isValid = INPUT_ELEMENT.type === type;
|
|
198
|
+
} catch (_e) {
|
|
199
|
+
isValid = false;
|
|
200
|
+
} finally {
|
|
201
|
+
INPUT_ELEMENT.type = 'text';
|
|
202
|
+
}
|
|
203
|
+
INPUT_TYPES[type] = isValid;
|
|
204
|
+
}
|
|
205
|
+
return isValid;
|
|
206
|
+
};
|
|
207
|
+
} else {
|
|
208
|
+
isValidInputType = type => type !== '';
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
See [Ember.Templates.components.Input](/ember/release/classes/Ember.Templates.components/methods/Input?anchor=Input).
|
|
213
|
+
|
|
214
|
+
@method input
|
|
215
|
+
@for Ember.Templates.helpers
|
|
216
|
+
@param {Hash} options
|
|
217
|
+
@public
|
|
218
|
+
*/
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
An opaque interface which can be imported and used in strict-mode
|
|
222
|
+
templates to call <Input>.
|
|
223
|
+
|
|
224
|
+
See [Ember.Templates.components.Input](/ember/release/classes/Ember.Templates.components/methods/Input?anchor=Input).
|
|
225
|
+
|
|
226
|
+
@for @ember/component
|
|
227
|
+
@method Input
|
|
228
|
+
@see {Ember.Templates.components.Input}
|
|
229
|
+
@public
|
|
230
|
+
**/
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
The `Input` component lets you create an HTML `<input>` element.
|
|
234
|
+
|
|
235
|
+
```handlebars
|
|
236
|
+
<Input @value="987" />
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
creates an `<input>` element with `type="text"` and value set to 987.
|
|
240
|
+
|
|
241
|
+
### Text field
|
|
242
|
+
|
|
243
|
+
If no `type` argument is specified, a default of type 'text' is used.
|
|
244
|
+
|
|
245
|
+
```handlebars
|
|
246
|
+
Search:
|
|
247
|
+
<Input @value={{this.searchWord}} />
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
In this example, the initial value in the `<input>` will be set to the value of
|
|
251
|
+
`this.searchWord`. If the user changes the text, the value of `this.searchWord` will also be
|
|
252
|
+
updated.
|
|
253
|
+
|
|
254
|
+
### Actions
|
|
255
|
+
|
|
256
|
+
The `Input` component takes a number of arguments with callbacks that are invoked in response to
|
|
257
|
+
user events.
|
|
258
|
+
|
|
259
|
+
* `enter`
|
|
260
|
+
* `insert-newline`
|
|
261
|
+
* `escape-press`
|
|
262
|
+
* `focus-in`
|
|
263
|
+
* `focus-out`
|
|
264
|
+
* `key-down`
|
|
265
|
+
* `key-press`
|
|
266
|
+
* `key-up`
|
|
267
|
+
|
|
268
|
+
These callbacks are passed to `Input` like this:
|
|
269
|
+
|
|
270
|
+
```handlebars
|
|
271
|
+
<Input @value={{this.searchWord}} @enter={{this.query}} />
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
Starting with Ember Octane, we recommend using the `{{on}}` modifier to call actions
|
|
275
|
+
on specific events, such as the input event.
|
|
276
|
+
|
|
277
|
+
```handlebars
|
|
278
|
+
<label for="input-name">Name:</label>
|
|
279
|
+
<Input
|
|
280
|
+
@id="input-name"
|
|
281
|
+
@value={{this.name}}
|
|
282
|
+
{{on "input" this.validateName}}
|
|
283
|
+
/>
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
The event name (e.g. `focusout`, `input`, `keydown`) always follows the casing
|
|
287
|
+
that the HTML standard uses.
|
|
288
|
+
|
|
289
|
+
### `<input>` HTML Attributes to Avoid
|
|
290
|
+
|
|
291
|
+
In most cases, if you want to pass an attribute to the underlying HTML `<input>` element, you
|
|
292
|
+
can pass the attribute directly, just like any other Ember component.
|
|
293
|
+
|
|
294
|
+
```handlebars
|
|
295
|
+
<Input @type="text" size="10" />
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
In this example, the `size` attribute will be applied to the underlying `<input>` element in the
|
|
299
|
+
outputted HTML.
|
|
300
|
+
|
|
301
|
+
However, there are a few attributes where you **must** use the `@` version.
|
|
302
|
+
|
|
303
|
+
* `@type`: This argument is used to control which Ember component is used under the hood
|
|
304
|
+
* `@value`: The `@value` argument installs a two-way binding onto the element. If you wanted a
|
|
305
|
+
one-way binding, use `<input>` with the `value` property and the `input` event instead.
|
|
306
|
+
* `@checked` (for checkboxes): like `@value`, the `@checked` argument installs a two-way binding
|
|
307
|
+
onto the element. If you wanted a one-way binding, use `<input type="checkbox">` with
|
|
308
|
+
`checked` and the `input` event instead.
|
|
309
|
+
|
|
310
|
+
### Checkbox
|
|
311
|
+
|
|
312
|
+
To create an `<input type="checkbox">`:
|
|
313
|
+
|
|
314
|
+
```handlebars
|
|
315
|
+
Emberize Everything:
|
|
316
|
+
<Input @type="checkbox" @checked={{this.isEmberized}} name="isEmberized" />
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
This will bind the checked state of this checkbox to the value of `isEmberized` -- if either one
|
|
320
|
+
changes, it will be reflected in the other.
|
|
321
|
+
|
|
322
|
+
@method Input
|
|
323
|
+
@for Ember.Templates.components
|
|
324
|
+
@param {Hash} options
|
|
325
|
+
@public
|
|
326
|
+
*/
|
|
327
|
+
class _Input extends AbstractInput {
|
|
328
|
+
static toString() {
|
|
329
|
+
return 'Input';
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
/**
|
|
333
|
+
* The HTML class attribute.
|
|
334
|
+
*/
|
|
335
|
+
get class() {
|
|
336
|
+
if (this.isCheckbox) {
|
|
337
|
+
return 'ember-checkbox ember-view';
|
|
338
|
+
} else {
|
|
339
|
+
return 'ember-text-field ember-view';
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
/**
|
|
344
|
+
* The HTML type attribute.
|
|
345
|
+
*/
|
|
346
|
+
get type() {
|
|
347
|
+
let type = this.named('type');
|
|
348
|
+
if (type === null || type === undefined) {
|
|
349
|
+
return 'text';
|
|
350
|
+
}
|
|
351
|
+
(!(typeof type === 'string') && assert('The `@type` argument to the <Input> component must be a string', typeof type === 'string'));
|
|
352
|
+
return isValidInputType(type) ? type : 'text';
|
|
353
|
+
}
|
|
354
|
+
get isCheckbox() {
|
|
355
|
+
return this.named('type') === 'checkbox';
|
|
356
|
+
}
|
|
357
|
+
_checked = valueFrom(this.args.named['checked']);
|
|
358
|
+
get checked() {
|
|
359
|
+
if (this.isCheckbox) {
|
|
360
|
+
(warn('`<Input @type="checkbox" />` reflects its checked state via the `@checked` argument. ' + 'You wrote `<Input @type="checkbox" @value={{...}} />` which is likely not what you intended. ' + 'Did you mean `<Input @type="checkbox" @checked={{...}} />`?', untrack(() => this.args.named['checked'] !== undefined || this.args.named['value'] === undefined || typeof valueForRef(this.args.named['value']) === 'string'), {
|
|
361
|
+
id: 'ember.built-in-components.input-checkbox-value'
|
|
362
|
+
}));
|
|
363
|
+
return this._checked.get();
|
|
364
|
+
} else {
|
|
365
|
+
return undefined;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
set checked(checked) {
|
|
369
|
+
(warn('`<Input @type="checkbox" />` reflects its checked state via the `@checked` argument. ' + 'You wrote `<Input @type="checkbox" @value={{...}} />` which is likely not what you intended. ' + 'Did you mean `<Input @type="checkbox" @checked={{...}} />`?', untrack(() => this.args.named['checked'] !== undefined || this.args.named['value'] === undefined || typeof valueForRef(this.args.named['value']) === 'string'), {
|
|
370
|
+
id: 'ember.built-in-components.input-checkbox-value'
|
|
371
|
+
}));
|
|
372
|
+
this._checked.set(checked);
|
|
373
|
+
}
|
|
374
|
+
change(event) {
|
|
375
|
+
if (this.isCheckbox) {
|
|
376
|
+
this.checkedDidChange(event);
|
|
377
|
+
} else {
|
|
378
|
+
super.change(event);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
static {
|
|
382
|
+
decorateMethodV2(this.prototype, "change", [action]);
|
|
383
|
+
}
|
|
384
|
+
input(event) {
|
|
385
|
+
if (!this.isCheckbox) {
|
|
386
|
+
super.input(event);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
static {
|
|
390
|
+
decorateMethodV2(this.prototype, "input", [action]);
|
|
391
|
+
}
|
|
392
|
+
checkedDidChange(event) {
|
|
393
|
+
let element = event.target;
|
|
394
|
+
(!(element instanceof HTMLInputElement) && assert('[BUG] element must be an <input>', element instanceof HTMLInputElement));
|
|
395
|
+
this.checked = element.checked;
|
|
396
|
+
}
|
|
397
|
+
static {
|
|
398
|
+
decorateMethodV2(this.prototype, "checkedDidChange", [action]);
|
|
399
|
+
}
|
|
400
|
+
isSupportedArgument(name) {
|
|
401
|
+
let supportedArguments = ['type', 'value', 'checked', 'enter', 'insert-newline', 'escape-press'];
|
|
402
|
+
return supportedArguments.indexOf(name) !== -1 || super.isSupportedArgument(name);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
const Input = opaquify(_Input, InputTemplate);
|
|
406
|
+
|
|
407
|
+
const TextareaTemplate = templateFactory(
|
|
408
|
+
/*
|
|
409
|
+
<textarea
|
|
410
|
+
{{!-- for compatibility --}}
|
|
411
|
+
id={{this.id}}
|
|
412
|
+
class={{this.class}}
|
|
413
|
+
|
|
414
|
+
...attributes
|
|
415
|
+
|
|
416
|
+
value={{this.value}}
|
|
417
|
+
|
|
418
|
+
{{on "change" this.change}}
|
|
419
|
+
{{on "input" this.input}}
|
|
420
|
+
{{on "keyup" this.keyUp}}
|
|
421
|
+
{{on "paste" this.valueDidChange}}
|
|
422
|
+
{{on "cut" this.valueDidChange}}
|
|
423
|
+
/>
|
|
424
|
+
*/
|
|
425
|
+
{
|
|
426
|
+
"id": null,
|
|
427
|
+
"block": "[[[11,\"textarea\"],[16,1,[30,0,[\"id\"]]],[16,0,[30,0,[\"class\"]]],[17,1],[16,2,[30,0,[\"value\"]]],[4,[32,0],[\"change\",[30,0,[\"change\"]]],null],[4,[32,0],[\"input\",[30,0,[\"input\"]]],null],[4,[32,0],[\"keyup\",[30,0,[\"keyUp\"]]],null],[4,[32,0],[\"paste\",[30,0,[\"valueDidChange\"]]],null],[4,[32,0],[\"cut\",[30,0,[\"valueDidChange\"]]],null],[12],[13]],[\"&attrs\"],[]]",
|
|
428
|
+
"moduleName": "packages/@ember/-internals/glimmer/lib/templates/textarea.hbs",
|
|
429
|
+
"scope": () => ({
|
|
430
|
+
on
|
|
431
|
+
}),
|
|
432
|
+
"isStrictMode": true
|
|
433
|
+
});
|
|
434
|
+
|
|
435
|
+
/**
|
|
436
|
+
@module @ember/component
|
|
437
|
+
*/
|
|
438
|
+
|
|
439
|
+
class _Textarea extends AbstractInput {
|
|
440
|
+
static toString() {
|
|
441
|
+
return 'Textarea';
|
|
442
|
+
}
|
|
443
|
+
get class() {
|
|
444
|
+
return 'ember-text-area ember-view';
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
// See abstract-input.ts for why these are needed
|
|
448
|
+
|
|
449
|
+
change(event) {
|
|
450
|
+
super.change(event);
|
|
451
|
+
}
|
|
452
|
+
static {
|
|
453
|
+
decorateMethodV2(this.prototype, "change", [action]);
|
|
454
|
+
}
|
|
455
|
+
input(event) {
|
|
456
|
+
super.input(event);
|
|
457
|
+
}
|
|
458
|
+
static {
|
|
459
|
+
decorateMethodV2(this.prototype, "input", [action]);
|
|
460
|
+
}
|
|
461
|
+
isSupportedArgument(name) {
|
|
462
|
+
let supportedArguments = ['type', 'value', 'enter', 'insert-newline', 'escape-press'];
|
|
463
|
+
return supportedArguments.indexOf(name) !== -1 || super.isSupportedArgument(name);
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
const Textarea = opaquify(_Textarea, TextareaTemplate);
|
|
467
|
+
|
|
468
|
+
export { Input as I, Textarea as T };
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { meta } from '../@ember/-internals/meta/lib/meta.js';
|
|
2
|
+
import { isEmberArray } from '../@ember/array/-internals.js';
|
|
3
|
+
import '../@ember/debug/index.js';
|
|
4
|
+
import { k as consumeTag } from './cache-B7dqAS38.js';
|
|
5
|
+
import { d as dirtyTagFor, t as tagFor } from './meta-BmRXesrk.js';
|
|
6
|
+
import { t as trackedData } from './tracked-data-CGnA4ytZ.js';
|
|
7
|
+
import { S as SELF_TAG, C as CHAIN_PASS_THROUGH } from './chain-tags-D6tuFUj_.js';
|
|
8
|
+
import { s as setClassicDecorator, i as isElementDescriptor, C as COMPUTED_SETTERS } from './decorator-B5Uh5NFI.js';
|
|
9
|
+
import { assert } from '../@ember/debug/lib/assert.js';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
@decorator
|
|
13
|
+
@private
|
|
14
|
+
|
|
15
|
+
Marks a property as tracked.
|
|
16
|
+
|
|
17
|
+
By default, a component's properties are expected to be static,
|
|
18
|
+
meaning you are not able to update them and have the template update accordingly.
|
|
19
|
+
Marking a property as tracked means that when that property changes,
|
|
20
|
+
a rerender of the component is scheduled so the template is kept up to date.
|
|
21
|
+
|
|
22
|
+
There are two usages for the `@tracked` decorator, shown below.
|
|
23
|
+
|
|
24
|
+
@example No dependencies
|
|
25
|
+
|
|
26
|
+
If you don't pass an argument to `@tracked`, only changes to that property
|
|
27
|
+
will be tracked:
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
import Component from '@glimmer/component';
|
|
31
|
+
import { tracked } from '@glimmer/tracking';
|
|
32
|
+
|
|
33
|
+
export default class MyComponent extends Component {
|
|
34
|
+
@tracked
|
|
35
|
+
remainingApples = 10
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
When something changes the component's `remainingApples` property, the rerender
|
|
40
|
+
will be scheduled.
|
|
41
|
+
|
|
42
|
+
@example Dependents
|
|
43
|
+
|
|
44
|
+
In the case that you have a computed property that depends other
|
|
45
|
+
properties, you want to track both so that when one of the
|
|
46
|
+
dependents change, a rerender is scheduled.
|
|
47
|
+
|
|
48
|
+
In the following example we have two properties,
|
|
49
|
+
`eatenApples`, and `remainingApples`.
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
import Component from '@glimmer/component';
|
|
53
|
+
import { tracked } from '@glimmer/tracking';
|
|
54
|
+
|
|
55
|
+
const totalApples = 100;
|
|
56
|
+
|
|
57
|
+
export default class MyComponent extends Component {
|
|
58
|
+
@tracked
|
|
59
|
+
eatenApples = 0
|
|
60
|
+
|
|
61
|
+
get remainingApples() {
|
|
62
|
+
return totalApples - this.eatenApples;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
increment() {
|
|
66
|
+
this.eatenApples = this.eatenApples + 1;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
@param dependencies Optional dependents to be tracked.
|
|
72
|
+
*/
|
|
73
|
+
|
|
74
|
+
function tracked(...args) {
|
|
75
|
+
(!(!(isElementDescriptor(args.slice(0, 3)) && args.length === 5 && args[4] === true)) && assert(`@tracked can only be used directly as a native decorator. If you're using tracked in classic classes, add parenthesis to call it like a function: tracked()`, !(isElementDescriptor(args.slice(0, 3)) && args.length === 5 && args[4] === true)));
|
|
76
|
+
if (!isElementDescriptor(args)) {
|
|
77
|
+
let propertyDesc = args[0];
|
|
78
|
+
(!(args.length === 0 || typeof propertyDesc === 'object' && propertyDesc !== null) && assert(`tracked() may only receive an options object containing 'value' or 'initializer', received ${propertyDesc}`, args.length === 0 || typeof propertyDesc === 'object' && propertyDesc !== null));
|
|
79
|
+
if (propertyDesc) {
|
|
80
|
+
let keys = Object.keys(propertyDesc);
|
|
81
|
+
(!(keys.length <= 1 && (keys[0] === undefined || keys[0] === 'value' || keys[0] === 'initializer')) && assert(`The options object passed to tracked() may only contain a 'value' or 'initializer' property, not both. Received: [${keys}]`, keys.length <= 1 && (keys[0] === undefined || keys[0] === 'value' || keys[0] === 'initializer')));
|
|
82
|
+
(!(!('initializer' in propertyDesc) || typeof propertyDesc.initializer === 'function') && assert(`The initializer passed to tracked must be a function. Received ${propertyDesc.initializer}`, !('initializer' in propertyDesc) || typeof propertyDesc.initializer === 'function'));
|
|
83
|
+
}
|
|
84
|
+
let initializer = propertyDesc ? propertyDesc.initializer : undefined;
|
|
85
|
+
let value = propertyDesc ? propertyDesc.value : undefined;
|
|
86
|
+
let decorator = function (target, key, _desc, _meta, isClassicDecorator) {
|
|
87
|
+
(!(isClassicDecorator) && assert(`You attempted to set a default value for ${key} with the @tracked({ value: 'default' }) syntax. You can only use this syntax with classic classes. For native classes, you can use class initializers: @tracked field = 'default';`, isClassicDecorator));
|
|
88
|
+
let fieldDesc = {
|
|
89
|
+
initializer: initializer || (() => value)
|
|
90
|
+
};
|
|
91
|
+
return descriptorForField([target, key, fieldDesc]);
|
|
92
|
+
};
|
|
93
|
+
setClassicDecorator(decorator);
|
|
94
|
+
return decorator;
|
|
95
|
+
}
|
|
96
|
+
return descriptorForField(args);
|
|
97
|
+
}
|
|
98
|
+
{
|
|
99
|
+
// Normally this isn't a classic decorator, but we want to throw a helpful
|
|
100
|
+
// error in development so we need it to treat it like one
|
|
101
|
+
setClassicDecorator(tracked);
|
|
102
|
+
}
|
|
103
|
+
function descriptorForField([target, key, desc]) {
|
|
104
|
+
(!(!desc || !desc.value && !desc.get && !desc.set) && assert(`You attempted to use @tracked on ${key}, but that element is not a class field. @tracked is only usable on class fields. Native getters and setters will autotrack add any tracked fields they encounter, so there is no need mark getters and setters with @tracked.`, !desc || !desc.value && !desc.get && !desc.set));
|
|
105
|
+
let {
|
|
106
|
+
getter,
|
|
107
|
+
setter
|
|
108
|
+
} = trackedData(key, desc ? desc.initializer : undefined);
|
|
109
|
+
function get() {
|
|
110
|
+
let value = getter(this);
|
|
111
|
+
|
|
112
|
+
// Add the tag of the returned value if it is an array, since arrays
|
|
113
|
+
// should always cause updates if they are consumed and then changed
|
|
114
|
+
if (Array.isArray(value) || isEmberArray(value)) {
|
|
115
|
+
consumeTag(tagFor(value, '[]'));
|
|
116
|
+
}
|
|
117
|
+
return value;
|
|
118
|
+
}
|
|
119
|
+
function set(newValue) {
|
|
120
|
+
setter(this, newValue);
|
|
121
|
+
dirtyTagFor(this, SELF_TAG);
|
|
122
|
+
}
|
|
123
|
+
let newDesc = {
|
|
124
|
+
enumerable: true,
|
|
125
|
+
configurable: true,
|
|
126
|
+
isTracked: true,
|
|
127
|
+
get,
|
|
128
|
+
set
|
|
129
|
+
};
|
|
130
|
+
COMPUTED_SETTERS.add(set);
|
|
131
|
+
meta(target).writeDescriptors(key, new TrackedDescriptor(get, set));
|
|
132
|
+
return newDesc;
|
|
133
|
+
}
|
|
134
|
+
class TrackedDescriptor {
|
|
135
|
+
constructor(_get, _set) {
|
|
136
|
+
this._get = _get;
|
|
137
|
+
this._set = _set;
|
|
138
|
+
CHAIN_PASS_THROUGH.add(this);
|
|
139
|
+
}
|
|
140
|
+
get(obj) {
|
|
141
|
+
return this._get.call(obj);
|
|
142
|
+
}
|
|
143
|
+
set(obj, _key, value) {
|
|
144
|
+
this._set.call(obj, value);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export { TrackedDescriptor as T, tracked as t };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { d as dirtyTagFor, t as tagFor } from './meta-BmRXesrk.js';
|
|
2
|
+
import { k as consumeTag } from './cache-B7dqAS38.js';
|
|
3
|
+
|
|
4
|
+
function trackedData(key, initializer) {
|
|
5
|
+
let values = new WeakMap();
|
|
6
|
+
let hasInitializer = typeof initializer === 'function';
|
|
7
|
+
function getter(self) {
|
|
8
|
+
consumeTag(tagFor(self, key));
|
|
9
|
+
let value;
|
|
10
|
+
|
|
11
|
+
// If the field has never been initialized, we should initialize it
|
|
12
|
+
if (hasInitializer && !values.has(self)) {
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- @fixme
|
|
14
|
+
value = initializer.call(self);
|
|
15
|
+
values.set(self, value);
|
|
16
|
+
} else {
|
|
17
|
+
value = values.get(self);
|
|
18
|
+
}
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
function setter(self, value) {
|
|
22
|
+
dirtyTagFor(self, key);
|
|
23
|
+
values.set(self, value);
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
getter,
|
|
27
|
+
setter
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export { trackedData as t };
|