ember-source 7.2.0-alpha.4 → 7.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blueprints/-addon-import.js +4 -6
- package/blueprints/-utils.js +6 -9
- package/build-metadata.json +3 -3
- package/dist/dev/packages/@ember/-internals/browser-environment/index.js +1 -1
- package/dist/dev/packages/@ember/-internals/glimmer/index.js +11 -11
- package/dist/dev/packages/@ember/-internals/metal/index.js +18 -18
- package/dist/dev/packages/@ember/-internals/routing/index.js +3 -3
- package/dist/dev/packages/@ember/-internals/runtime/index.js +1 -1
- package/dist/dev/packages/@ember/-internals/runtime/lib/ext/rsvp.js +1 -1
- package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +7 -7
- package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +1 -1
- package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -3
- package/dist/dev/packages/@ember/-internals/utils/index.js +2 -2
- package/dist/dev/packages/@ember/-internals/views/lib/mixins/action_support.js +1 -1
- package/dist/dev/packages/@ember/-internals/views/lib/system/event_dispatcher.js +2 -2
- 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 +1 -1
- package/dist/dev/packages/@ember/application/index.js +6 -7
- package/dist/dev/packages/@ember/application/instance.js +4 -4
- package/dist/dev/packages/@ember/application/namespace.js +3 -3
- package/dist/dev/packages/@ember/array/index.js +10 -64
- package/dist/dev/packages/@ember/array/lib/is-array.js +71 -0
- package/dist/dev/packages/@ember/array/proxy.js +8 -8
- package/dist/dev/packages/@ember/component/helper.js +1 -1
- package/dist/dev/packages/@ember/component/index.js +22 -16
- package/dist/dev/packages/@ember/component/template-only.js +1 -1
- package/dist/dev/packages/@ember/controller/index.js +3 -3
- package/dist/dev/packages/@ember/debug/data-adapter.js +3 -3
- package/dist/dev/packages/@ember/debug/index.js +1 -1
- package/dist/dev/packages/@ember/engine/index.js +5 -5
- package/dist/dev/packages/@ember/engine/instance.js +2 -2
- package/dist/dev/packages/@ember/helper/index.js +1132 -98
- package/dist/dev/packages/@ember/modifier/index.js +2 -2
- package/dist/dev/packages/@ember/modifier/on.js +1 -1
- package/dist/dev/packages/@ember/object/-internals.js +2 -2
- package/dist/dev/packages/@ember/object/compat.js +3 -35
- package/dist/dev/packages/@ember/object/computed.js +2 -2
- package/dist/dev/packages/@ember/object/core.js +7 -7
- package/dist/dev/packages/@ember/object/evented.js +2 -2
- package/dist/dev/packages/@ember/object/events.js +1 -1
- package/dist/dev/packages/@ember/object/index.js +30 -25
- package/dist/dev/packages/@ember/object/internals.js +1 -1
- package/dist/dev/packages/@ember/object/lib/computed/computed_macros.js +5 -5
- package/dist/dev/packages/@ember/object/lib/computed/reduce_computed_macros.js +3 -3
- package/dist/dev/packages/@ember/object/mixin.js +6 -6
- package/dist/dev/packages/@ember/object/observable.js +7 -7
- package/dist/dev/packages/@ember/object/observers.js +1 -1
- package/dist/dev/packages/@ember/object/promise-proxy-mixin.js +3 -3
- package/dist/dev/packages/@ember/reactive/collections.js +153 -153
- package/dist/dev/packages/@ember/renderer/index.js +1 -1
- package/dist/dev/packages/@ember/routing/-internals.js +3 -3
- package/dist/dev/packages/@ember/routing/index.js +18 -34
- package/dist/dev/packages/@ember/routing/lib/generate_controller.js +2 -3
- package/dist/dev/packages/@ember/routing/lib/routing-service.js +5 -5
- package/dist/dev/packages/@ember/routing/lib/utils.js +3 -3
- package/dist/dev/packages/@ember/routing/route.js +12 -12
- package/dist/dev/packages/@ember/routing/router-service.js +25 -18
- package/dist/dev/packages/@ember/routing/router.js +5 -5
- package/dist/dev/packages/@ember/runloop/index.js +1 -1
- package/dist/dev/packages/@ember/service/index.js +1 -1
- package/dist/dev/packages/@ember/template-compiler/lib/compile-options.js +3 -3
- package/dist/dev/packages/@ember/template-compiler/lib/template.js +2 -2
- package/dist/dev/packages/@ember/template-factory/index.js +1 -1
- package/dist/dev/packages/@ember/utils/lib/is_empty.js +1 -1
- package/dist/dev/packages/@glimmer/encoder/index.js +1 -1
- package/dist/dev/packages/@glimmer/manager/index.js +4 -4
- package/dist/dev/packages/@glimmer/node/index.js +3 -3
- package/dist/dev/packages/@glimmer/opcode-compiler/index.js +2 -2
- package/dist/dev/packages/@glimmer/program/index.js +10 -10
- package/dist/dev/packages/@glimmer/reference/index.js +5 -5
- package/dist/dev/packages/@glimmer/runtime/index.js +13 -13
- package/dist/dev/packages/@glimmer/tracking/index.js +2 -2
- package/dist/dev/packages/@glimmer/tracking/primitives/cache/index.js +1 -1
- package/dist/dev/packages/@glimmer/util/index.js +4 -4
- package/dist/dev/packages/@glimmer/validator/index.js +3 -3
- package/dist/dev/packages/@glimmer/vm/index.js +2 -2
- package/dist/dev/packages/ember/version.js +1 -1
- package/dist/dev/packages/ember-template-compiler/index.js +4 -4
- package/dist/dev/packages/router_js/index.js +2 -2
- package/dist/dev/packages/rsvp/index.js +1 -1
- package/dist/dev/packages/shared-chunks/{alias-RGbDZoAB.js → alias-DpqL1qx6.js} +7 -7
- package/dist/dev/packages/shared-chunks/{api-BT9M3UaD.js → api-BlZDPg1n.js} +6 -6
- package/dist/dev/packages/shared-chunks/{element-builder-Cl1kHFJE.js → api-C0PAtEgQ.js} +139 -120
- package/dist/dev/packages/shared-chunks/{api-DG5kRT-o.js → api-DuLOZMO_.js} +3 -3
- package/dist/dev/packages/shared-chunks/{args-proxy-CB0SM6jC.js → args-proxy-CS5Brs3_.js} +2 -2
- package/dist/dev/packages/shared-chunks/{untouchable-this-BHdAERUu.js → arguments-CDkbOqTS.js} +236 -236
- package/dist/dev/packages/shared-chunks/{array-BMaSKezP.js → array-CVEnNWng.js} +3 -3
- package/dist/dev/packages/shared-chunks/{array-utils-BEaSKdEb.js → array-utils-CZQxrdD3.js} +1 -1
- package/dist/dev/packages/shared-chunks/{cache-CeWOBNQg.js → cache-DGDPVCpC.js} +2 -3
- package/dist/dev/packages/shared-chunks/{capabilities-CZkuOqqC.js → capabilities-CajW4QjE.js} +1 -1
- package/dist/dev/packages/shared-chunks/{chain-tags-DfmU63mS.js → chain-tags-uWSImHzB.js} +4 -4
- package/dist/dev/packages/shared-chunks/{collections-DEt-i-8B.js → collections-DPkjqeA3.js} +2 -2
- package/dist/dev/packages/shared-chunks/{compiler-DhH2WLpA.js → compiler-QUSl_urU.js} +3 -3
- package/dist/dev/packages/shared-chunks/{computed-Daavz6vC.js → computed-BPCtuOxQ.js} +6 -6
- package/dist/dev/packages/shared-chunks/{curly-YoYS2vXw.js → curly-Ei5G8jhk.js} +7 -7
- package/dist/dev/packages/shared-chunks/{curried-Cnjy9_ug.js → curried-BZnYakIg.js} +1 -1
- package/dist/dev/packages/shared-chunks/{decorator-DYQwMItS.js → decorator-B5Uh5NFI.js} +1 -1
- package/dist/dev/packages/shared-chunks/{element-bBwMD8cw.js → element-Cgoi4ldD.js} +3 -25
- package/dist/dev/packages/shared-chunks/{events-B1lx9T1I.js → events-6aFVjD4k.js} +1 -1
- package/dist/{prod/packages/shared-chunks/flags-B9qxc-pB.js → dev/packages/shared-chunks/flags-BZxHQ0yn.js} +1 -1
- package/dist/dev/packages/shared-chunks/get-B4o_4OLA.js +40 -0
- package/dist/{prod/packages/shared-chunks/get_properties-wj_Qmotj.js → dev/packages/shared-chunks/get_properties-Cm2sWt5f.js} +1 -1
- package/dist/dev/packages/shared-chunks/{guid-PO2v9BaN.js → guid-Cbq2sNV_.js} +1 -1
- package/dist/dev/packages/shared-chunks/hash-Bg4r3CU4.js +57 -0
- package/dist/dev/packages/shared-chunks/{helper-Bm6EhgSW.js → helper--ZiOCQkd.js} +21 -9
- package/dist/dev/packages/shared-chunks/{index-DX90CU4L.js → index-BGP1rw3B.js} +1 -1
- package/dist/dev/packages/shared-chunks/{index-dyv6rcBf.js → index-C5Q8WHUG.js} +304 -201
- package/dist/dev/packages/shared-chunks/{index-DkwVSPP5.js → index-DaFzpTIE.js} +10 -9
- package/dist/dev/packages/shared-chunks/{injected_property-B075jH6c.js → injected_property-CbBLr5jt.js} +2 -2
- package/dist/dev/packages/shared-chunks/{internal-Bpr6ihB_.js → internal-DTOXyEGM.js} +4 -4
- package/dist/dev/packages/shared-chunks/{internal-helper-IC87S6iZ.js → internal-helper-CKrni0b_.js} +1 -1
- package/dist/dev/packages/shared-chunks/{invoke-Ds0KEfP_.js → invoke-d9sqa50M.js} +3 -3
- package/dist/dev/packages/shared-chunks/{libraries-P8Ins5CB.js → libraries-DwffpMGE.js} +1 -1
- package/dist/dev/packages/shared-chunks/{meta-Cjo3zQJq.js → meta-BqC7f9Ia.js} +1 -1
- package/dist/{prod/packages/shared-chunks/namespace_search-TFdmjK_a.js → dev/packages/shared-chunks/namespace_search-BfvzEQzN.js} +1 -1
- package/dist/dev/packages/shared-chunks/{normalize-CxG_iVLJ.js → normalize-CKySQVU7.js} +2 -2
- package/dist/dev/packages/shared-chunks/{or-Bg6rCMF8.js → not-JB6ln6bJ.js} +36 -36
- package/dist/dev/packages/shared-chunks/{observers-CejcZw5s.js → observers-DMlX2nCi.js} +5 -5
- package/dist/dev/packages/shared-chunks/{on-Ch_lyozr.js → on-CQqC2-wL.js} +29 -18
- package/dist/dev/packages/shared-chunks/{present-D0EfKzC6.js → present-B1rrjAVM.js} +1 -1
- package/dist/{prod/packages/shared-chunks/program-CF651Zuj.js → dev/packages/shared-chunks/program-DlgjqLa6.js} +3 -3
- package/dist/dev/packages/shared-chunks/{program-context-BaYVr5GA.js → program-context-Dq8xN2HI.js} +5 -4
- package/dist/dev/packages/shared-chunks/{property_get-BjbsrgpU.js → property_get-CRP7MFz_.js} +3 -3
- package/dist/dev/packages/shared-chunks/{property_set-LJskl202.js → property_set-qCUylPEK.js} +3 -3
- package/dist/dev/packages/shared-chunks/{reference-C-OXd_kp.js → reference-BqOLhKFy.js} +3 -3
- package/dist/dev/packages/shared-chunks/{registers-Buvdhhxx.js → registers-C_W2qYHJ.js} +1 -1
- package/dist/dev/packages/shared-chunks/{rehydrate-builder-IH4d_JQy.js → rehydrate-builder-C6k1XhET.js} +4 -4
- package/dist/dev/packages/shared-chunks/{render-Dz3OWqXy.js → render-87_sKZ_k.js} +94 -94
- package/dist/dev/packages/shared-chunks/{rsvp-C6j8G1D1.js → rsvp-aLN_pQtn.js} +4 -4
- package/dist/dev/packages/shared-chunks/{serialize-builder-DKliZPPG.js → serialize-builder-BlxBjwO-.js} +2 -2
- package/dist/dev/packages/shared-chunks/{set_properties-CNds2HCH.js → set_properties-C4TSebH6.js} +2 -2
- package/dist/dev/packages/shared-chunks/{setup-registry-C_YovxNX.js → setup-registry-Dovj1LIQ.js} +18 -18
- package/dist/{prod/packages/shared-chunks/simple-cast-BXTrayoV.js → dev/packages/shared-chunks/simple-cast-DCvJLSin.js} +1 -1
- package/dist/{prod/packages/shared-chunks/super-D4qkU4uq.js → dev/packages/shared-chunks/super-BBBjgF69.js} +1 -1
- package/dist/{prod/packages/shared-chunks/syscall-ops-nrBHMOTp.js → dev/packages/shared-chunks/syscall-ops-CN7STuUn.js} +1 -1
- package/dist/dev/packages/shared-chunks/{template-B0Apv9g2.js → template-BRrQR6KS.js} +1 -1
- package/dist/dev/packages/shared-chunks/{template-only-BxYzSEnC.js → template-only-Cu639ICT.js} +2 -4
- package/dist/dev/packages/shared-chunks/{textarea-DHjEFpZu.js → textarea-B5TmhnQU.js} +14 -30
- package/dist/dev/packages/shared-chunks/{tracked-B76E1nGz.js → tracked-DEyf0T_X.js} +5 -5
- package/dist/dev/packages/shared-chunks/{tracked-data-CH1USZZy.js → tracked-data-DgqqRdYO.js} +2 -2
- package/dist/dev/packages/shared-chunks/{unique-id-Hd96VZlE.js → unique-id-Csxuh1I7.js} +2 -6
- package/dist/dev/packages/shared-chunks/{unrecognized-url-error-BQdkjTtZ.js → unrecognized-url-error-DyurFqvv.js} +2 -2
- package/dist/{prod/packages/shared-chunks/vm-ops-5QCUIRx4.js → dev/packages/shared-chunks/vm-ops-ImHv0Wtg.js} +1 -1
- package/dist/prod/packages/@ember/-internals/glimmer/index.js +11 -11
- package/dist/prod/packages/@ember/-internals/metal/index.js +18 -18
- package/dist/prod/packages/@ember/-internals/routing/index.js +3 -3
- package/dist/prod/packages/@ember/-internals/runtime/index.js +1 -1
- package/dist/prod/packages/@ember/-internals/runtime/lib/ext/rsvp.js +1 -1
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +7 -7
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +1 -1
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -3
- package/dist/prod/packages/@ember/-internals/utils/index.js +2 -2
- package/dist/prod/packages/@ember/-internals/views/lib/mixins/action_support.js +1 -1
- package/dist/prod/packages/@ember/-internals/views/lib/system/event_dispatcher.js +2 -2
- package/dist/prod/packages/@ember/-internals/views/lib/system/utils.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 +5 -6
- package/dist/prod/packages/@ember/application/instance.js +4 -4
- package/dist/prod/packages/@ember/application/namespace.js +3 -3
- package/dist/prod/packages/@ember/array/index.js +11 -58
- package/dist/prod/packages/@ember/array/lib/is-array.js +64 -0
- package/dist/prod/packages/@ember/array/proxy.js +8 -8
- package/dist/prod/packages/@ember/component/helper.js +1 -1
- package/dist/prod/packages/@ember/component/index.js +21 -15
- package/dist/prod/packages/@ember/component/template-only.js +1 -1
- package/dist/prod/packages/@ember/controller/index.js +3 -3
- package/dist/prod/packages/@ember/debug/data-adapter.js +3 -3
- package/dist/prod/packages/@ember/engine/index.js +5 -5
- package/dist/prod/packages/@ember/engine/instance.js +2 -2
- package/dist/prod/packages/@ember/helper/index.js +1132 -98
- package/dist/prod/packages/@ember/modifier/index.js +2 -2
- package/dist/prod/packages/@ember/modifier/on.js +1 -1
- package/dist/prod/packages/@ember/object/-internals.js +2 -2
- package/dist/prod/packages/@ember/object/compat.js +3 -35
- package/dist/prod/packages/@ember/object/computed.js +2 -2
- package/dist/prod/packages/@ember/object/core.js +7 -7
- package/dist/prod/packages/@ember/object/evented.js +2 -2
- package/dist/prod/packages/@ember/object/events.js +1 -1
- package/dist/prod/packages/@ember/object/index.js +30 -25
- package/dist/prod/packages/@ember/object/internals.js +2 -2
- package/dist/prod/packages/@ember/object/lib/computed/computed_macros.js +4 -4
- package/dist/prod/packages/@ember/object/lib/computed/reduce_computed_macros.js +2 -2
- package/dist/prod/packages/@ember/object/mixin.js +6 -6
- package/dist/prod/packages/@ember/object/observable.js +7 -7
- package/dist/prod/packages/@ember/object/observers.js +1 -1
- package/dist/prod/packages/@ember/object/promise-proxy-mixin.js +3 -3
- package/dist/prod/packages/@ember/reactive/collections.js +153 -153
- package/dist/prod/packages/@ember/renderer/index.js +1 -1
- package/dist/prod/packages/@ember/routing/index.js +18 -34
- package/dist/prod/packages/@ember/routing/lib/generate_controller.js +1 -2
- package/dist/prod/packages/@ember/routing/lib/routing-service.js +4 -4
- package/dist/prod/packages/@ember/routing/lib/utils.js +3 -3
- package/dist/prod/packages/@ember/routing/route.js +12 -12
- package/dist/prod/packages/@ember/routing/router-service.js +24 -17
- package/dist/prod/packages/@ember/routing/router.js +5 -5
- package/dist/prod/packages/@ember/runloop/index.js +1 -1
- package/dist/prod/packages/@ember/service/index.js +1 -1
- package/dist/prod/packages/@ember/template-compiler/lib/compile-options.js +3 -3
- package/dist/prod/packages/@ember/template-compiler/lib/template.js +2 -2
- package/dist/prod/packages/@ember/template-factory/index.js +1 -1
- package/dist/prod/packages/@ember/utils/lib/is_empty.js +1 -1
- package/dist/prod/packages/@glimmer/encoder/index.js +1 -1
- package/dist/prod/packages/@glimmer/manager/index.js +4 -4
- package/dist/prod/packages/@glimmer/node/index.js +3 -3
- package/dist/prod/packages/@glimmer/opcode-compiler/index.js +2 -2
- package/dist/prod/packages/@glimmer/program/index.js +10 -10
- package/dist/prod/packages/@glimmer/reference/index.js +5 -5
- package/dist/prod/packages/@glimmer/runtime/index.js +13 -13
- package/dist/prod/packages/@glimmer/tracking/index.js +2 -2
- package/dist/prod/packages/@glimmer/tracking/primitives/cache/index.js +1 -1
- package/dist/prod/packages/@glimmer/util/index.js +4 -4
- package/dist/prod/packages/@glimmer/validator/index.js +3 -3
- package/dist/prod/packages/@glimmer/vm/index.js +2 -2
- package/dist/prod/packages/ember/version.js +1 -1
- package/dist/prod/packages/ember-template-compiler/index.js +4 -4
- package/dist/prod/packages/router_js/index.js +2 -2
- package/dist/prod/packages/rsvp/index.js +1 -1
- package/dist/prod/packages/shared-chunks/{alias-DsIh-16z.js → alias-Bod6qdNp.js} +7 -7
- package/dist/prod/packages/shared-chunks/{api-CGZbGcvX.js → api-B_poQGXS.js} +6 -6
- package/dist/prod/packages/shared-chunks/{element-builder-CZePCkbA.js → api-CQexacBn.js} +139 -120
- package/dist/prod/packages/shared-chunks/{api-DOLN_cR2.js → api-DlJKfm_f.js} +3 -3
- package/dist/prod/packages/shared-chunks/{args-proxy-CaXVcI8G.js → args-proxy-CCoFtYLS.js} +2 -2
- package/dist/prod/packages/shared-chunks/{debug-render-tree-CYENUjgX.js → arguments-BzAkZVBa.js} +198 -198
- package/dist/prod/packages/shared-chunks/{array-DYFI95FA.js → array-BzReKMeW.js} +3 -3
- package/dist/prod/packages/shared-chunks/{array-utils-BEaSKdEb.js → array-utils-CZQxrdD3.js} +1 -1
- package/dist/prod/packages/shared-chunks/{cache-CG6_L9db.js → cache-CofLhaS4.js} +1 -2
- package/dist/prod/packages/shared-chunks/{capabilities-_5e35539.js → capabilities-BuVYh-vx.js} +1 -1
- package/dist/prod/packages/shared-chunks/{chain-tags-BP0V2LnZ.js → chain-tags-B2J7DsxO.js} +4 -4
- package/dist/prod/packages/shared-chunks/{collections-By4M3cTy.js → collections-GpG8lT2g.js} +10 -10
- package/dist/prod/packages/shared-chunks/{compiler-DQmEjFyx.js → compiler-lBSssiWp.js} +2 -2
- package/dist/prod/packages/shared-chunks/{computed-D6MVTTDd.js → computed-DtIStxvq.js} +6 -6
- package/dist/prod/packages/shared-chunks/{curly-DCYSwLtz.js → curly-IY06zACp.js} +7 -7
- package/dist/prod/packages/shared-chunks/{curried-Cnjy9_ug.js → curried-BZnYakIg.js} +1 -1
- package/dist/prod/packages/shared-chunks/{decorator-B8Lpq40g.js → decorator-9ikVwsjY.js} +1 -1
- package/dist/prod/packages/shared-chunks/{element-CT5H5uxF.js → element-BmBjPjkQ.js} +3 -25
- package/dist/prod/packages/shared-chunks/{events-C7aYCy0N.js → events-DYrYz3V8.js} +1 -1
- package/dist/{dev/packages/shared-chunks/flags-B9qxc-pB.js → prod/packages/shared-chunks/flags-BZxHQ0yn.js} +1 -1
- package/dist/prod/packages/shared-chunks/get-DpBAICuC.js +40 -0
- package/dist/{dev/packages/shared-chunks/get_properties-B203vZpz.js → prod/packages/shared-chunks/get_properties-Dg3xFpiS.js} +1 -1
- package/dist/prod/packages/shared-chunks/{guid-PO2v9BaN.js → guid-Cbq2sNV_.js} +1 -1
- package/dist/prod/packages/shared-chunks/hash-D31JO-BD.js +57 -0
- package/dist/prod/packages/shared-chunks/{helper-CCK8Ef0x.js → helper-Df5MpdcT.js} +21 -9
- package/dist/prod/packages/shared-chunks/{index-DabsnYit.js → index-BQaaoknf.js} +301 -198
- package/dist/prod/packages/shared-chunks/{index-D-rcNBLp.js → index-Bf53M8eS.js} +9 -8
- package/dist/prod/packages/shared-chunks/{injected_property-COGiYHKc.js → injected_property-Y-FadDej.js} +2 -2
- package/dist/prod/packages/shared-chunks/{internal-BEJC2IJ-.js → internal-BQ7zHrqS.js} +4 -4
- package/dist/prod/packages/shared-chunks/{internal-helper-CoxiRnnb.js → internal-helper-Bz1lpDXr.js} +1 -1
- package/dist/prod/packages/shared-chunks/{invoke-D_jsLbsj.js → invoke-DhQ5QRp2.js} +3 -3
- package/dist/prod/packages/shared-chunks/{libraries-Bs3H8iwC.js → libraries-DBql0hdn.js} +2 -2
- package/dist/prod/packages/shared-chunks/{meta-Ce6-qROq.js → meta-BJtIZDir.js} +1 -1
- package/dist/{dev/packages/shared-chunks/namespace_search-TFdmjK_a.js → prod/packages/shared-chunks/namespace_search-BfvzEQzN.js} +1 -1
- package/dist/prod/packages/shared-chunks/{normalize-Bx4H3NjB.js → normalize-C_IStty9.js} +2 -2
- package/dist/prod/packages/shared-chunks/{or-sYlRiUn_.js → not-Bm2-x-jD.js} +28 -28
- package/dist/prod/packages/shared-chunks/{observers-Ci31SE36.js → observers-BmobpXAF.js} +5 -5
- package/dist/prod/packages/shared-chunks/{on-Dgmychhk.js → on-8aS8t_5D.js} +29 -18
- package/dist/{dev/packages/shared-chunks/program-CPXeXWVB.js → prod/packages/shared-chunks/program-BAh__OXZ.js} +3 -3
- package/dist/prod/packages/shared-chunks/{program-context-DmI53TzJ.js → program-context-COSioH46.js} +5 -4
- package/dist/prod/packages/shared-chunks/{property_get-Sw0SicEZ.js → property_get-DAKgbeJX.js} +2 -2
- package/dist/prod/packages/shared-chunks/{property_set-SHEIPMUG.js → property_set-BaQJdVfS.js} +3 -3
- package/dist/prod/packages/shared-chunks/{reference-D2agTt1V.js → reference-CG0yPgLy.js} +3 -3
- package/dist/prod/packages/shared-chunks/{registers-Buvdhhxx.js → registers-C_W2qYHJ.js} +1 -1
- package/dist/prod/packages/shared-chunks/{rehydrate-builder-B7MtrWip.js → rehydrate-builder-Blt1x9MP.js} +4 -4
- package/dist/prod/packages/shared-chunks/{render-B790-vbk.js → render-Dx7lr1hR.js} +94 -94
- package/dist/prod/packages/shared-chunks/{rsvp-C6j8G1D1.js → rsvp-aLN_pQtn.js} +4 -4
- package/dist/prod/packages/shared-chunks/{serialize-builder-kEyOKbzp.js → serialize-builder-BvAXYHTr.js} +2 -2
- package/dist/prod/packages/shared-chunks/{set_properties-CcLLHg1w.js → set_properties-Qxhw4qzw.js} +2 -2
- package/dist/prod/packages/shared-chunks/{setup-registry-D14I0iDX.js → setup-registry-DMAzVcVn.js} +18 -18
- package/dist/{dev/packages/shared-chunks/simple-cast-BXTrayoV.js → prod/packages/shared-chunks/simple-cast-DCvJLSin.js} +1 -1
- package/dist/{dev/packages/shared-chunks/super-D4qkU4uq.js → prod/packages/shared-chunks/super-BBBjgF69.js} +1 -1
- package/dist/{dev/packages/shared-chunks/syscall-ops-nrBHMOTp.js → prod/packages/shared-chunks/syscall-ops-CN7STuUn.js} +1 -1
- package/dist/prod/packages/shared-chunks/{template-B0Apv9g2.js → template-BRrQR6KS.js} +1 -1
- package/dist/prod/packages/shared-chunks/{template-only-CP0NT7ce.js → template-only-DKNcKM5b.js} +2 -4
- package/dist/prod/packages/shared-chunks/{textarea-B_JYBuE8.js → textarea-CQmTzSKe.js} +13 -29
- package/dist/prod/packages/shared-chunks/{tracked-CXcapuAm.js → tracked-B9380JtC.js} +5 -5
- package/dist/prod/packages/shared-chunks/{tracked-data-DNDzhYXf.js → tracked-data-CHq42QHb.js} +2 -2
- package/dist/prod/packages/shared-chunks/{unique-id-Hn8Qp4dS.js → unique-id-BJb1p8EG.js} +2 -6
- package/dist/prod/packages/shared-chunks/{unrecognized-url-error-ClNyMFJt.js → unrecognized-url-error-DgXBAzKl.js} +2 -2
- package/dist/{dev/packages/shared-chunks/vm-ops-5QCUIRx4.js → prod/packages/shared-chunks/vm-ops-ImHv0Wtg.js} +1 -1
- package/docs/data.json +1435 -1617
- package/package.json +6 -7
- package/types/stable/@ember/-internals/glimmer/index.d.ts +24 -353
- 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.d.ts +9 -3
- package/types/stable/@ember/-internals/glimmer/lib/glimmer-tracking-docs.d.ts +12 -12
- package/types/stable/@ember/-internals/glimmer/lib/helper.d.ts +18 -6
- package/types/stable/@ember/-internals/glimmer/lib/helpers/each-in.d.ts +183 -72
- package/types/stable/@ember/-internals/glimmer/lib/helpers/element.d.ts +0 -22
- package/types/stable/@ember/-internals/glimmer/lib/helpers/mut.d.ts +25 -55
- package/types/stable/@ember/-internals/glimmer/lib/helpers/readonly.d.ts +7 -9
- package/types/stable/@ember/-internals/glimmer/lib/helpers/unbound.d.ts +6 -2
- package/types/stable/@ember/-internals/glimmer/lib/helpers/unique-id.d.ts +0 -3
- package/types/stable/@ember/-internals/glimmer/lib/renderer.d.ts +1 -2
- package/types/stable/@ember/-internals/glimmer/lib/syntax/mount.d.ts +18 -12
- package/types/stable/@ember/-internals/glimmer/lib/syntax/outlet.d.ts +23 -11
- package/types/stable/@ember/-internals/runtime/lib/mixins/target_action_support.d.ts +1 -1
- package/types/stable/@ember/array/index.d.ts +6 -29
- package/types/stable/@ember/array/lib/is-array.d.ts +35 -0
- package/types/stable/@ember/component/template-only.d.ts +1 -3
- package/types/stable/@ember/controller/index.d.ts +1 -1
- package/types/stable/@ember/helper/index.d.ts +1111 -90
- package/types/stable/@ember/object/compat.d.ts +0 -32
- package/types/stable/@ember/object/index.d.ts +4 -3
- package/types/stable/@ember/object/observable.d.ts +4 -0
- package/types/stable/@ember/reactive/collections.d.ts +0 -6
- package/types/stable/@ember/routing/lib/generate_controller.d.ts +1 -1
- package/types/stable/@ember/routing/route.d.ts +2 -2
- package/types/stable/@ember/routing/router-service.d.ts +20 -12
- package/types/stable/@glimmer/runtime/lib/component/template-only.d.ts +0 -2
- package/types/stable/@glimmer/runtime/lib/dom/sanitized-values.d.ts +2 -2
- package/types/stable/@glimmer/runtime/lib/helpers/array.d.ts +0 -33
- package/types/stable/@glimmer/runtime/lib/helpers/concat.d.ts +0 -20
- package/types/stable/@glimmer/runtime/lib/helpers/fn.d.ts +0 -64
- package/types/stable/@glimmer/runtime/lib/helpers/get.d.ts +0 -77
- package/types/stable/@glimmer/runtime/lib/helpers/hash.d.ts +0 -36
- package/types/stable/@glimmer/syntax/lib/get-template-locals.d.ts +1 -1
- package/types/stable/@glimmer/tracking/index.d.ts +12 -12
- package/types/stable/index.d.ts +1 -14
- package/dist/dev/packages/shared-chunks/get-CO3EIWsm.js +0 -138
- package/dist/dev/packages/shared-chunks/hash-2-93qikL.js +0 -192
- package/dist/prod/packages/shared-chunks/get-tlL23wmp.js +0 -138
- package/dist/prod/packages/shared-chunks/hash-C6IoC4eR.js +0 -192
- package/types/stable/@ember/-internals/glimmer/lib/helpers/array.d.ts +0 -41
- package/types/stable/@ember/-internals/glimmer/lib/helpers/component.d.ts +0 -149
- package/types/stable/@ember/-internals/glimmer/lib/helpers/concat.d.ts +0 -28
- package/types/stable/@ember/-internals/glimmer/lib/helpers/fn.d.ts +0 -73
- package/types/stable/@ember/-internals/glimmer/lib/helpers/get.d.ts +0 -100
- package/types/stable/@ember/-internals/glimmer/lib/helpers/hash.d.ts +0 -44
- package/types/stable/@ember/-internals/glimmer/lib/helpers/helper.d.ts +0 -43
- package/types/stable/@ember/-internals/glimmer/lib/helpers/if-unless.d.ts +0 -182
- package/types/stable/@ember/-internals/glimmer/lib/helpers/log.d.ts +0 -19
- package/types/stable/@ember/-internals/glimmer/lib/helpers/modifier.d.ts +0 -42
- package/types/stable/@ember/-internals/glimmer/lib/helpers/page-title.d.ts +0 -20
- package/types/stable/@ember/-internals/glimmer/lib/modifiers/on.d.ts +0 -95
- package/types/stable/@ember/-internals/glimmer/lib/syntax/in-element.d.ts +0 -47
- package/types/stable/@ember/-internals/glimmer/lib/syntax/let.d.ts +0 -55
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ember-source",
|
|
3
|
-
"version": "7.2.0
|
|
3
|
+
"version": "7.2.0",
|
|
4
4
|
"description": "A JavaScript framework for creating ambitious web applications",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"keywords": [
|
|
6
7
|
"ember-addon"
|
|
7
8
|
],
|
|
@@ -51,7 +52,7 @@
|
|
|
51
52
|
"lint:format": "prettier --check .",
|
|
52
53
|
"lint:format:fix": "prettier --write .",
|
|
53
54
|
"test": "testem ci -f testem.cjs --host 127.0.0.1 --port 13141",
|
|
54
|
-
"test:blueprints": "
|
|
55
|
+
"test:blueprints": "pnpm --filter ember-test-node-blueprints test:node",
|
|
55
56
|
"test:node": "qunit tests/node/**/*-test.cjs",
|
|
56
57
|
"test:node:vitest": "pnpm --filter ember-test-node-vitest test:node",
|
|
57
58
|
"test:browserstack": "node bin/run-browserstack-tests.cjs",
|
|
@@ -210,6 +211,7 @@
|
|
|
210
211
|
"@ember/application/namespace.js": "ember-source/@ember/application/namespace.js",
|
|
211
212
|
"@ember/array/-internals.js": "ember-source/@ember/array/-internals.js",
|
|
212
213
|
"@ember/array/index.js": "ember-source/@ember/array/index.js",
|
|
214
|
+
"@ember/array/lib/is-array.js": "ember-source/@ember/array/lib/is-array.js",
|
|
213
215
|
"@ember/array/lib/make-array.js": "ember-source/@ember/array/lib/make-array.js",
|
|
214
216
|
"@ember/array/make.js": "ember-source/@ember/array/make.js",
|
|
215
217
|
"@ember/array/mutable.js": "ember-source/@ember/array/mutable.js",
|
|
@@ -365,9 +367,6 @@
|
|
|
365
367
|
}
|
|
366
368
|
},
|
|
367
369
|
"packageManager": "pnpm@10.33.2",
|
|
368
|
-
"_originalVersion": "7.2.0
|
|
369
|
-
"_versionPreviouslyCalculated": true
|
|
370
|
-
"publishConfig": {
|
|
371
|
-
"tag": "alpha"
|
|
372
|
-
}
|
|
370
|
+
"_originalVersion": "7.2.0",
|
|
371
|
+
"_versionPreviouslyCalculated": true
|
|
373
372
|
}
|
|
@@ -2,6 +2,23 @@ declare module '@ember/-internals/glimmer' {
|
|
|
2
2
|
/**
|
|
3
3
|
[Glimmer](https://github.com/tildeio/glimmer) is a templating engine used by Ember.js that is compatible with a subset of the [Handlebars](http://handlebarsjs.com/) syntax.
|
|
4
4
|
|
|
5
|
+
Ember ships with two types of JavaScript classes for components:
|
|
6
|
+
|
|
7
|
+
1. Glimmer components, imported from `@glimmer/component`, which are the
|
|
8
|
+
default component's for Ember Octane (3.15) and more recent editions.
|
|
9
|
+
2. Classic components, imported from `@ember/component`, which were the
|
|
10
|
+
default for older editions of Ember (pre 3.15) but are still supported.
|
|
11
|
+
|
|
12
|
+
Below is the documentation for Classic components. If you are looking for the
|
|
13
|
+
API documentation for Template-only or Glimmer components, it is [available
|
|
14
|
+
here](/ember/release/modules/@glimmer%2Fcomponent).
|
|
15
|
+
|
|
16
|
+
Note: Prior to Ember 6.8, by default, components were authored in paired `.hbs` and `.js`
|
|
17
|
+
files. This is still supported, but the default authoring format is now `.gjs` or "template tag".
|
|
18
|
+
The documentation for `@ember/component` still refers to the older authoring format. To read about
|
|
19
|
+
the new authoring format, see the
|
|
20
|
+
[Glimmer Component API documentation](/ember/release/modules/@glimmer%2Fcomponent).
|
|
21
|
+
|
|
5
22
|
### Showing a property
|
|
6
23
|
|
|
7
24
|
Templates manage the flow of an application's UI, and display state (through
|
|
@@ -65,8 +82,8 @@ declare module '@ember/-internals/glimmer' {
|
|
|
65
82
|
)}}></span>
|
|
66
83
|
```
|
|
67
84
|
|
|
68
|
-
Ember's built-in helpers are described under the [
|
|
69
|
-
|
|
85
|
+
Ember's built-in and importable helpers are described under the [@ember/helper](../modules/@ember%2Fhelper).
|
|
86
|
+
module. Documentation on creating custom helpers can be found under
|
|
70
87
|
[helper](/ember/release/functions/@ember%2Fcomponent%2Fhelper/helper) (or
|
|
71
88
|
under [Helper](/ember/release/classes/Helper) if a helper requires access to
|
|
72
89
|
dependency injection).
|
|
@@ -84,360 +101,14 @@ declare module '@ember/-internals/glimmer' {
|
|
|
84
101
|
@module ember
|
|
85
102
|
*/
|
|
86
103
|
/**
|
|
104
|
+
|
|
105
|
+
## Looking for template keywords and helpers?
|
|
106
|
+
|
|
107
|
+
See [@ember/helper](../modules/@ember%2Fhelper).
|
|
108
|
+
|
|
87
109
|
@class Ember.Templates.helpers
|
|
88
110
|
@public
|
|
89
111
|
*/
|
|
90
|
-
/**
|
|
91
|
-
`{{yield}}` denotes an area of a template that will be rendered inside
|
|
92
|
-
of another template.
|
|
93
|
-
|
|
94
|
-
### Use with `Component`
|
|
95
|
-
|
|
96
|
-
When designing components `{{yield}}` is used to denote where, inside the component's
|
|
97
|
-
template, an optional block passed to the component should render:
|
|
98
|
-
|
|
99
|
-
```app/templates/application.hbs
|
|
100
|
-
<LabeledTextfield @value={{@model.name}}>
|
|
101
|
-
First name:
|
|
102
|
-
</LabeledTextfield>
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
```app/components/labeled-textfield.hbs
|
|
106
|
-
<label>
|
|
107
|
-
{{yield}} <Input @value={{@value}} />
|
|
108
|
-
</label>
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
Result:
|
|
112
|
-
|
|
113
|
-
```html
|
|
114
|
-
<label>
|
|
115
|
-
First name: <input type="text" />
|
|
116
|
-
</label>
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
Additionally you can `yield` properties into the context for use by the consumer:
|
|
120
|
-
|
|
121
|
-
```app/templates/application.hbs
|
|
122
|
-
<LabeledTextfield @value={{@model.validation}} @validator={{this.firstNameValidator}} as |validationError|>
|
|
123
|
-
{{#if validationError}}
|
|
124
|
-
<p class="error">{{validationError}}</p>
|
|
125
|
-
{{/if}}
|
|
126
|
-
First name:
|
|
127
|
-
</LabeledTextfield>
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
```app/components/labeled-textfield.hbs
|
|
131
|
-
<label>
|
|
132
|
-
{{yield this.validationError}} <Input @value={{@value}} />
|
|
133
|
-
</label>
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
Result:
|
|
137
|
-
|
|
138
|
-
```html
|
|
139
|
-
<label>
|
|
140
|
-
<p class="error">First Name must be at least 3 characters long.</p>
|
|
141
|
-
First name: <input type="text" />
|
|
142
|
-
</label>
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
`yield` can also be used with the `hash` helper:
|
|
146
|
-
|
|
147
|
-
```app/templates/application.hbs
|
|
148
|
-
<DateRanges @value={{@model.date}} as |range|>
|
|
149
|
-
Start date: {{range.start}}
|
|
150
|
-
End date: {{range.end}}
|
|
151
|
-
</DateRanges>
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
```app/components/date-ranges.hbs
|
|
155
|
-
<div>
|
|
156
|
-
{{yield (hash start=@value.start end=@value.end)}}
|
|
157
|
-
</div>
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
Result:
|
|
161
|
-
|
|
162
|
-
```html
|
|
163
|
-
<div>
|
|
164
|
-
Start date: July 1st
|
|
165
|
-
End date: July 30th
|
|
166
|
-
</div>
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
Multiple values can be yielded as block params:
|
|
170
|
-
|
|
171
|
-
```app/templates/application.hbs
|
|
172
|
-
<Banner @value={{@model}} as |title subtitle body|>
|
|
173
|
-
<h1>{{title}}</h1>
|
|
174
|
-
<h2>{{subtitle}}</h2>
|
|
175
|
-
{{body}}
|
|
176
|
-
</Banner>
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
```app/components/banner.hbs
|
|
180
|
-
<div>
|
|
181
|
-
{{yield "Hello title" "hello subtitle" "body text"}}
|
|
182
|
-
</div>
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
Result:
|
|
186
|
-
|
|
187
|
-
```html
|
|
188
|
-
<div>
|
|
189
|
-
<h1>Hello title</h1>
|
|
190
|
-
<h2>hello subtitle</h2>
|
|
191
|
-
body text
|
|
192
|
-
</div>
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
However, it is preferred to use the hash helper, as this can prevent breaking changes to your component and also simplify the api for the component.
|
|
196
|
-
|
|
197
|
-
Multiple components can be yielded with the `hash` and `component` helper:
|
|
198
|
-
|
|
199
|
-
```app/templates/application.hbs
|
|
200
|
-
<Banner @value={{@model}} as |banner|>
|
|
201
|
-
<banner.Title>Banner title</banner.Title>
|
|
202
|
-
<banner.Subtitle>Banner subtitle</banner.Subtitle>
|
|
203
|
-
<banner.Body>A load of body text</banner.Body>
|
|
204
|
-
</Banner>
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
```app/components/banner.js
|
|
208
|
-
import Title from './banner/title';
|
|
209
|
-
import Subtitle from './banner/subtitle';
|
|
210
|
-
import Body from './banner/body';
|
|
211
|
-
|
|
212
|
-
export default class Banner extends Component {
|
|
213
|
-
Title = Title;
|
|
214
|
-
Subtitle = Subtitle;
|
|
215
|
-
Body = Body;
|
|
216
|
-
}
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
```app/components/banner.hbs
|
|
220
|
-
<div>
|
|
221
|
-
{{yield (hash
|
|
222
|
-
Title=this.Title
|
|
223
|
-
Subtitle=this.Subtitle
|
|
224
|
-
Body=(component this.Body defaultArg="some value")
|
|
225
|
-
)}}
|
|
226
|
-
</div>
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
Result:
|
|
230
|
-
|
|
231
|
-
```html
|
|
232
|
-
<div>
|
|
233
|
-
<h1>Banner title</h1>
|
|
234
|
-
<h2>Banner subtitle</h2>
|
|
235
|
-
A load of body text
|
|
236
|
-
</div>
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
A benefit of using this pattern is that the user of the component can change the order the components are displayed.
|
|
240
|
-
|
|
241
|
-
```app/templates/application.hbs
|
|
242
|
-
<Banner @value={{@model}} as |banner|>
|
|
243
|
-
<banner.Subtitle>Banner subtitle</banner.Subtitle>
|
|
244
|
-
<banner.Title>Banner title</banner.Title>
|
|
245
|
-
<banner.Body>A load of body text</banner.Body>
|
|
246
|
-
</Banner>
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
Result:
|
|
250
|
-
|
|
251
|
-
```html
|
|
252
|
-
<div>
|
|
253
|
-
<h2>Banner subtitle</h2>
|
|
254
|
-
<h1>Banner title</h1>
|
|
255
|
-
A load of body text
|
|
256
|
-
</div>
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
Another benefit to using `yield` with the `hash` and `component` helper
|
|
260
|
-
is you can pass attributes and arguments to these components:
|
|
261
|
-
|
|
262
|
-
```app/templates/application.hbs
|
|
263
|
-
<Banner @value={{@model}} as |banner|>
|
|
264
|
-
<banner.Subtitle class="mb-1">Banner subtitle</banner.Subtitle>
|
|
265
|
-
<banner.Title @variant="loud">Banner title</banner.Title>
|
|
266
|
-
<banner.Body>A load of body text</banner.Body>
|
|
267
|
-
</Banner>
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
```app/components/banner/subtitle.hbs
|
|
271
|
-
{{!-- note the use of ..attributes --}}
|
|
272
|
-
<h2 ...attributes>
|
|
273
|
-
{{yield}}
|
|
274
|
-
</h2>
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
```app/components/banner/title.hbs
|
|
278
|
-
{{#if (eq @variant "loud")}}
|
|
279
|
-
<h1 class="loud">{{yield}}</h1>
|
|
280
|
-
{{else}}
|
|
281
|
-
<h1 class="quiet">{{yield}}</h1>
|
|
282
|
-
{{/if}}
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
Result:
|
|
286
|
-
|
|
287
|
-
```html
|
|
288
|
-
<div>
|
|
289
|
-
<h2 class="mb-1">Banner subtitle</h2>
|
|
290
|
-
<h1 class="loud">Banner title</h1>
|
|
291
|
-
A load of body text
|
|
292
|
-
</div>
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
@method yield
|
|
296
|
-
@for Ember.Templates.helpers
|
|
297
|
-
@param {Hash} options
|
|
298
|
-
@return {String} HTML string
|
|
299
|
-
@public
|
|
300
|
-
*/
|
|
301
|
-
/**
|
|
302
|
-
`{{(has-block)}}` indicates if the component was invoked with a block.
|
|
303
|
-
|
|
304
|
-
This component is invoked with a block:
|
|
305
|
-
|
|
306
|
-
```handlebars
|
|
307
|
-
{{#my-component}}
|
|
308
|
-
Hi Jen!
|
|
309
|
-
{{/my-component}}
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
This component is invoked without a block:
|
|
313
|
-
|
|
314
|
-
```handlebars
|
|
315
|
-
{{my-component}}
|
|
316
|
-
```
|
|
317
|
-
|
|
318
|
-
Using angle bracket invocation, this looks like:
|
|
319
|
-
|
|
320
|
-
```html
|
|
321
|
-
<MyComponent>Hi Jen!</MyComponent> {{! with a block}}
|
|
322
|
-
```
|
|
323
|
-
|
|
324
|
-
```html
|
|
325
|
-
<MyComponent/> {{! without a block}}
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
This is useful when you want to create a component that can optionally take a block
|
|
329
|
-
and then render a default template when it is not invoked with a block.
|
|
330
|
-
|
|
331
|
-
```app/templates/components/my-component.hbs
|
|
332
|
-
{{#if (has-block)}}
|
|
333
|
-
Welcome {{yield}}, we are happy you're here!
|
|
334
|
-
{{else}}
|
|
335
|
-
Hey you! You're great!
|
|
336
|
-
{{/if}}
|
|
337
|
-
```
|
|
338
|
-
|
|
339
|
-
@method has-block
|
|
340
|
-
@for Ember.Templates.helpers
|
|
341
|
-
@param {String} the name of the block. The name (at the moment) is either "main" or "inverse" (though only curly components support inverse)
|
|
342
|
-
@return {Boolean} `true` if the component was invoked with a block
|
|
343
|
-
@public
|
|
344
|
-
*/
|
|
345
|
-
/**
|
|
346
|
-
`{{(has-block-params)}}` indicates if the component was invoked with block params.
|
|
347
|
-
|
|
348
|
-
This component is invoked with block params:
|
|
349
|
-
|
|
350
|
-
```handlebars
|
|
351
|
-
{{#my-component as |favoriteFlavor|}}
|
|
352
|
-
Hi Jen!
|
|
353
|
-
{{/my-component}}
|
|
354
|
-
```
|
|
355
|
-
|
|
356
|
-
This component is invoked without block params:
|
|
357
|
-
|
|
358
|
-
```handlebars
|
|
359
|
-
{{#my-component}}
|
|
360
|
-
Hi Jenn!
|
|
361
|
-
{{/my-component}}
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
With angle bracket syntax, block params look like this:
|
|
365
|
-
|
|
366
|
-
```handlebars
|
|
367
|
-
<MyComponent as |favoriteFlavor|>
|
|
368
|
-
Hi Jen!
|
|
369
|
-
</MyComponent>
|
|
370
|
-
```
|
|
371
|
-
|
|
372
|
-
And without block params:
|
|
373
|
-
|
|
374
|
-
```handlebars
|
|
375
|
-
<MyComponent>
|
|
376
|
-
Hi Jen!
|
|
377
|
-
</MyComponent>
|
|
378
|
-
```
|
|
379
|
-
|
|
380
|
-
This is useful when you want to create a component that can render itself
|
|
381
|
-
differently when it is not invoked with block params.
|
|
382
|
-
|
|
383
|
-
```app/templates/components/my-component.hbs
|
|
384
|
-
{{#if (has-block-params)}}
|
|
385
|
-
Welcome {{yield this.favoriteFlavor}}, we're happy you're here and hope you
|
|
386
|
-
enjoy your favorite ice cream flavor.
|
|
387
|
-
{{else}}
|
|
388
|
-
Welcome {{yield}}, we're happy you're here, but we're unsure what
|
|
389
|
-
flavor ice cream you would enjoy.
|
|
390
|
-
{{/if}}
|
|
391
|
-
```
|
|
392
|
-
|
|
393
|
-
@method has-block-params
|
|
394
|
-
@for Ember.Templates.helpers
|
|
395
|
-
@param {String} the name of the block. The name (at the moment) is either "main" or "inverse" (though only curly components support inverse)
|
|
396
|
-
@return {Boolean} `true` if the component was invoked with block params
|
|
397
|
-
@public
|
|
398
|
-
*/
|
|
399
|
-
/**
|
|
400
|
-
Execute the `debugger` statement in the current template's context.
|
|
401
|
-
|
|
402
|
-
```handlebars
|
|
403
|
-
{{debugger}}
|
|
404
|
-
```
|
|
405
|
-
|
|
406
|
-
When using the debugger helper you will have access to a `get` function. This
|
|
407
|
-
function retrieves values available in the context of the template.
|
|
408
|
-
For example, if you're wondering why a value `{{foo}}` isn't rendering as
|
|
409
|
-
expected within a template, you could place a `{{debugger}}` statement and,
|
|
410
|
-
when the `debugger;` breakpoint is hit, you can attempt to retrieve this value:
|
|
411
|
-
|
|
412
|
-
```
|
|
413
|
-
> get('foo')
|
|
414
|
-
```
|
|
415
|
-
|
|
416
|
-
`get` is also aware of keywords. So in this situation
|
|
417
|
-
|
|
418
|
-
```handlebars
|
|
419
|
-
{{#each this.items as |item|}}
|
|
420
|
-
{{debugger}}
|
|
421
|
-
{{/each}}
|
|
422
|
-
```
|
|
423
|
-
|
|
424
|
-
You'll be able to get values from the current item:
|
|
425
|
-
|
|
426
|
-
```
|
|
427
|
-
> get('item.name')
|
|
428
|
-
```
|
|
429
|
-
|
|
430
|
-
You can also access the context of the view to make sure it is the object that
|
|
431
|
-
you expect:
|
|
432
|
-
|
|
433
|
-
```
|
|
434
|
-
> context
|
|
435
|
-
```
|
|
436
|
-
|
|
437
|
-
@method debugger
|
|
438
|
-
@for Ember.Templates.helpers
|
|
439
|
-
@public
|
|
440
|
-
*/
|
|
441
112
|
export { default as template, templateCacheCounters } from "@glimmer/opcode-compiler/lib/template";
|
|
442
113
|
export { default as RootTemplate } from "@ember/-internals/glimmer/lib/templates/root";
|
|
443
114
|
export { default as Input } from "@ember/-internals/glimmer/lib/components/input";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
declare module '@ember/-internals/glimmer/lib/component-managers/mount' {
|
|
2
2
|
import type { InternalOwner } from "@ember/-internals/owner";
|
|
3
|
-
import EngineInstance from "@ember/engine/instance";
|
|
3
|
+
import type EngineInstance from "@ember/engine/instance";
|
|
4
4
|
import type { CapturedArguments, ComponentDefinition, CustomRenderNode, Destroyable, Environment, InternalComponentCapabilities, VMArguments, WithCreateInstance, WithCustomDebugRenderTree, WithDynamicLayout, WithSubOwner } from "@glimmer/interfaces";
|
|
5
5
|
import type { Nullable } from "@ember/-internals/utility-types";
|
|
6
6
|
import type { Reference } from "@glimmer/reference/lib/reference";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
declare module '@ember/-internals/glimmer/lib/component-managers/outlet' {
|
|
2
2
|
import type { InternalOwner } from "@ember/-internals/owner";
|
|
3
3
|
import type { Nullable } from "@ember/-internals/utility-types";
|
|
4
|
-
import EngineInstance from "@ember/engine/instance";
|
|
4
|
+
import type EngineInstance from "@ember/engine/instance";
|
|
5
5
|
import type { CompilableProgram, ComponentDefinition, CustomRenderNode, Destroyable, Environment, InternalComponentCapabilities, VMArguments, WithCreateInstance, WithCustomDebugRenderTree } from "@glimmer/interfaces";
|
|
6
6
|
import type { Reference } from "@glimmer/reference/lib/reference";
|
|
7
7
|
import type { DynamicScope } from "@ember/-internals/glimmer/lib/renderer";
|
|
@@ -168,6 +168,12 @@ declare module '@ember/-internals/glimmer/lib/component' {
|
|
|
168
168
|
API documentation for Template-only or Glimmer components, it is [available
|
|
169
169
|
here](/ember/release/modules/@glimmer%2Fcomponent).
|
|
170
170
|
|
|
171
|
+
Note: Prior to Ember 6.8, by default, components were authored in paired `.hbs` and `.js`
|
|
172
|
+
files. This is still supported, but the default authoring format is now `.gjs` or "template tag".
|
|
173
|
+
The documentation for `@ember/component` still refers to the older authoring format. To read about
|
|
174
|
+
the new authoring format, see the
|
|
175
|
+
[Glimmer Component API documentation](/ember/release/modules/@glimmer%2Fcomponent).
|
|
176
|
+
|
|
171
177
|
## Defining a Classic Component
|
|
172
178
|
|
|
173
179
|
If you want to customize the component in order to handle events, transform
|
|
@@ -194,7 +200,7 @@ declare module '@ember/-internals/glimmer/lib/component' {
|
|
|
194
200
|
|
|
195
201
|
And then use it in the component's template:
|
|
196
202
|
|
|
197
|
-
```app/
|
|
203
|
+
```app/components/person-profile.hbs
|
|
198
204
|
<h1>{{this.displayName}}</h1>
|
|
199
205
|
{{yield}}
|
|
200
206
|
```
|
|
@@ -582,7 +588,7 @@ declare module '@ember/-internals/glimmer/lib/component' {
|
|
|
582
588
|
The `layout` property should be set to the default export of a template
|
|
583
589
|
module, which is the name of a template file without the `.hbs` extension.
|
|
584
590
|
|
|
585
|
-
```app/
|
|
591
|
+
```app/components/person-profile.hbs
|
|
586
592
|
<h1>Person's Title</h1>
|
|
587
593
|
<div class='details'>{{yield}}</div>
|
|
588
594
|
```
|
|
@@ -651,7 +657,7 @@ declare module '@ember/-internals/glimmer/lib/component' {
|
|
|
651
657
|
|
|
652
658
|
See the [Guide on Component event
|
|
653
659
|
handlers](https://guides.emberjs.com/release/components/component-state-and-actions/#toc_html-modifiers-and-actions)
|
|
654
|
-
and the [API docs for `on`](../
|
|
660
|
+
and the [API docs for `on`](../functions/Keywords/on)
|
|
655
661
|
for more details.
|
|
656
662
|
|
|
657
663
|
### Event Handler Methods
|
|
@@ -26,17 +26,7 @@ declare module '@ember/-internals/glimmer/lib/glimmer-tracking-docs' {
|
|
|
26
26
|
property changes, any templates that used that property, directly or
|
|
27
27
|
indirectly, will rerender. For instance, consider this component:
|
|
28
28
|
|
|
29
|
-
```
|
|
30
|
-
<div>Count: {{this.count}}</div>
|
|
31
|
-
<div>Times Ten: {{this.timesTen}}</div>
|
|
32
|
-
<div>
|
|
33
|
-
<button {{on "click" this.plusOne}}>
|
|
34
|
-
Plus One
|
|
35
|
-
</button>
|
|
36
|
-
</div>
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
```javascript
|
|
29
|
+
```gjs
|
|
40
30
|
import Component from '@glimmer/component';
|
|
41
31
|
import { tracked } from '@glimmer/tracking';
|
|
42
32
|
import { action } from '@ember/object';
|
|
@@ -52,6 +42,16 @@ declare module '@ember/-internals/glimmer/lib/glimmer-tracking-docs' {
|
|
|
52
42
|
plusOne() {
|
|
53
43
|
this.count += 1;
|
|
54
44
|
}
|
|
45
|
+
|
|
46
|
+
<template>
|
|
47
|
+
<div>Count: {{this.count}}</div>
|
|
48
|
+
<div>Times Ten: {{this.timesTen}}</div>
|
|
49
|
+
<div>
|
|
50
|
+
<button {{on "click" this.plusOne}}>
|
|
51
|
+
Plus One
|
|
52
|
+
</button>
|
|
53
|
+
</div>
|
|
54
|
+
</template>
|
|
55
55
|
}
|
|
56
56
|
```
|
|
57
57
|
|
|
@@ -61,7 +61,7 @@ declare module '@ember/-internals/glimmer/lib/glimmer-tracking-docs' {
|
|
|
61
61
|
will cause a rerender when updated - this includes through method calls and
|
|
62
62
|
other means:
|
|
63
63
|
|
|
64
|
-
```
|
|
64
|
+
```gjs
|
|
65
65
|
import Component from '@glimmer/component';
|
|
66
66
|
import { tracked } from '@glimmer/tracking';
|
|
67
67
|
|
|
@@ -29,20 +29,32 @@ declare module '@ember/-internals/glimmer/lib/helper' {
|
|
|
29
29
|
Ember Helpers are functions that can compute values, and are used in templates.
|
|
30
30
|
For example, this code calls a helper named `format-currency`:
|
|
31
31
|
|
|
32
|
-
```app/templates/application.
|
|
33
|
-
|
|
32
|
+
```gjs {data-filename="app/templates/application.gjs"}
|
|
33
|
+
import Cost from '../components/cost';
|
|
34
|
+
|
|
35
|
+
<template>
|
|
36
|
+
<Cost @cents={{230}} />
|
|
37
|
+
</template>
|
|
34
38
|
```
|
|
35
39
|
|
|
36
|
-
```app/components/cost.
|
|
37
|
-
|
|
40
|
+
```gjs {data-filename="app/components/cost.gjs"}
|
|
41
|
+
import formatCurrency from '../helpers/format-currency';
|
|
42
|
+
|
|
43
|
+
<template>
|
|
44
|
+
<div>{{formatCurrency @cents currency="$"}}</div>
|
|
45
|
+
</template>
|
|
38
46
|
```
|
|
39
47
|
|
|
40
48
|
Additionally a helper can be called as a nested helper.
|
|
41
49
|
In this example, we show the formatted currency value if the `showMoney`
|
|
42
50
|
named argument is truthy.
|
|
43
51
|
|
|
44
|
-
```
|
|
45
|
-
|
|
52
|
+
```gjs
|
|
53
|
+
import formatCurrency from '../helpers/format-currency';
|
|
54
|
+
|
|
55
|
+
<template>
|
|
56
|
+
{{if @showMoney (formatCurrency @cents currency="$")}}
|
|
57
|
+
</template>
|
|
46
58
|
```
|
|
47
59
|
|
|
48
60
|
Helpers defined using a class must provide a `compute` function. For example:
|