ember-source 7.2.0-alpha.4 → 7.3.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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/deprecations/index.js +10 -0
- 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 +8 -8
- package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +1 -1
- package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/comparable.js +5 -0
- 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 +24 -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 +321 -1
- package/dist/dev/packages/@ember/component/index.js +21 -15
- 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 +8 -27
- 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 -3
- 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 +12 -8
- package/dist/dev/packages/@ember/routing/lib/generate_controller.js +2 -3
- package/dist/dev/packages/@ember/routing/lib/routing-service.js +5 -6
- 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 -19
- 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/compare.js +5 -2
- 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 +3 -3
- package/dist/dev/packages/rsvp/index.js +2281 -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-DGUCLOud.js} +10 -11
- package/dist/dev/packages/shared-chunks/curly-brand-B_F79Dep.js +12 -0
- 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-BYLB-q7a.js} +5 -3
- 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-CO3EIWsm.js → get-6I3sjd-I.js} +33 -36
- 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-2-93qikL.js → hash-6NDs_5_f.js} +18 -12
- package/dist/dev/packages/shared-chunks/helper-brand-C9_8vvOf.js +12 -0
- package/dist/dev/packages/shared-chunks/{index-DX90CU4L.js → index-BGP1rw3B.js} +1 -1
- package/dist/dev/packages/shared-chunks/{index-dyv6rcBf.js → index-CCyXUNBa.js} +655 -1633
- 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-DYh6AY9Z.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-DlF0Wy7P.js} +10 -10
- package/dist/dev/packages/shared-chunks/outlet-CHFL7tun.js +135 -0
- 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.es-DR7yS7qg.js} +150 -154
- 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-BHdDJATP.js +951 -0
- 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-C4lYkaHj.js} +12 -8
- 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-DQOhouG1.js} +2 -2
- package/dist/dev/packages/shared-chunks/{unrecognized-url-error-BQdkjTtZ.js → unrecognized-url-error-B8loxkay.js} +3 -3
- 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/deprecations/index.js +10 -0
- 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 +8 -8
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +1 -1
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/comparable.js +5 -0
- 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 +19 -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 +305 -1
- package/dist/prod/packages/@ember/component/index.js +20 -14
- 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 +8 -27
- 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 -3
- 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 +12 -8
- package/dist/prod/packages/@ember/routing/lib/generate_controller.js +1 -2
- package/dist/prod/packages/@ember/routing/lib/routing-service.js +4 -5
- 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 -18
- 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/compare.js +5 -2
- 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 +3 -3
- package/dist/prod/packages/rsvp/index.js +2281 -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-a6DP7r87.js} +10 -11
- package/dist/prod/packages/shared-chunks/curly-brand-B_F79Dep.js +12 -0
- 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-DgHdPZ8u.js} +5 -3
- 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-tlL23wmp.js → get-Dago5uGl.js} +33 -36
- 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-C6IoC4eR.js → hash-gEXIsSO4.js} +24 -18
- package/dist/prod/packages/shared-chunks/helper-brand-C9_8vvOf.js +12 -0
- package/dist/prod/packages/shared-chunks/{index-D-rcNBLp.js → index-Bf53M8eS.js} +9 -8
- package/dist/prod/packages/shared-chunks/{index-DabsnYit.js → index-npr2B-vu.js} +541 -1465
- 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-BOIVROuv.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-BZHAxzdq.js} +10 -10
- package/dist/prod/packages/shared-chunks/outlet--lIm3q7t.js +132 -0
- 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.es-DR7yS7qg.js} +150 -154
- 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-Dfu8EyLU.js +886 -0
- 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-DOmZ1x0E.js} +11 -7
- 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-o2pS74go.js} +2 -2
- package/dist/prod/packages/shared-chunks/{unrecognized-url-error-ClNyMFJt.js → unrecognized-url-error-jjQ-FqKB.js} +3 -3
- package/dist/{dev/packages/shared-chunks/vm-ops-5QCUIRx4.js → prod/packages/shared-chunks/vm-ops-ImHv0Wtg.js} +1 -1
- package/docs/data.json +616 -569
- package/package.json +8 -6
- package/types/stable/@ember/-internals/deprecations/index.d.ts +6 -0
- package/types/stable/@ember/-internals/glimmer/index.d.ts +165 -121
- package/types/stable/@ember/-internals/glimmer/lib/base-renderer.d.ts +150 -0
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/curly-brand.d.ts +10 -0
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/curly.d.ts +3 -2
- package/types/stable/@ember/-internals/glimmer/lib/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 +8 -2
- package/types/stable/@ember/-internals/glimmer/lib/glimmer-tracking-docs.d.ts +12 -12
- package/types/stable/@ember/-internals/glimmer/lib/helper-brand.d.ts +10 -0
- package/types/stable/@ember/-internals/glimmer/lib/helper.d.ts +20 -10
- package/types/stable/@ember/-internals/glimmer/lib/helpers/array.d.ts +3 -1
- package/types/stable/@ember/-internals/glimmer/lib/helpers/component.d.ts +65 -121
- package/types/stable/@ember/-internals/glimmer/lib/helpers/concat.d.ts +8 -4
- package/types/stable/@ember/-internals/glimmer/lib/helpers/each-in.d.ts +16 -14
- package/types/stable/@ember/-internals/glimmer/lib/helpers/element.d.ts +2 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/fn.d.ts +11 -7
- package/types/stable/@ember/-internals/glimmer/lib/helpers/get.d.ts +23 -29
- package/types/stable/@ember/-internals/glimmer/lib/helpers/hash.d.ts +3 -1
- package/types/stable/@ember/-internals/glimmer/lib/helpers/if-unless.d.ts +95 -49
- package/types/stable/@ember/-internals/glimmer/lib/helpers/mut.d.ts +23 -54
- package/types/stable/@ember/-internals/glimmer/lib/helpers/page-title.d.ts +6 -2
- package/types/stable/@ember/-internals/glimmer/lib/helpers/readonly.d.ts +4 -8
- package/types/stable/@ember/-internals/glimmer/lib/modifiers/on.d.ts +10 -10
- package/types/stable/@ember/-internals/glimmer/lib/renderer.d.ts +7 -155
- package/types/stable/@ember/-internals/glimmer/lib/router-resolver.d.ts +17 -0
- package/types/stable/@ember/-internals/glimmer/lib/syntax/in-element.d.ts +2 -0
- package/types/stable/@ember/-internals/glimmer/lib/syntax/let.d.ts +2 -14
- package/types/stable/@ember/-internals/glimmer/lib/syntax/mount.d.ts +15 -11
- package/types/stable/@ember/-internals/glimmer/lib/syntax/outlet.d.ts +17 -10
- 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 +0 -19
- 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/renderer/index.d.ts +2 -2
- 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 +1 -1
- package/types/stable/@glimmer/runtime/lib/helpers/concat.d.ts +8 -3
- package/types/stable/@glimmer/runtime/lib/helpers/fn.d.ts +13 -7
- package/types/stable/@glimmer/runtime/lib/helpers/get.d.ts +21 -29
- package/types/stable/@glimmer/runtime/lib/helpers/hash.d.ts +1 -1
- 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 +590 -585
- package/dist/dev/packages/shared-chunks/helper-Bm6EhgSW.js +0 -314
- package/dist/dev/packages/shared-chunks/setup-registry-C_YovxNX.js +0 -77
- package/dist/prod/packages/shared-chunks/helper-CCK8Ef0x.js +0 -298
- package/dist/prod/packages/shared-chunks/setup-registry-D14I0iDX.js +0 -74
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ember-source",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.3.0-alpha.1",
|
|
4
4
|
"description": "A JavaScript framework for creating ambitious web applications",
|
|
5
|
+
"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",
|
|
@@ -91,7 +92,7 @@
|
|
|
91
92
|
"@embroider/vite": "^1.7.2",
|
|
92
93
|
"@eslint/js": "^9.21.0",
|
|
93
94
|
"@glimmer/component": "workspace:*",
|
|
94
|
-
"@octokit/rest": "^
|
|
95
|
+
"@octokit/rest": "^22.0.0",
|
|
95
96
|
"@rollup/plugin-babel": "^6.0.4",
|
|
96
97
|
"@simple-dom/document": "^1.4.0",
|
|
97
98
|
"@swc-node/register": "^1.6.8",
|
|
@@ -122,8 +123,8 @@
|
|
|
122
123
|
"expect-type": "^0.15.0",
|
|
123
124
|
"fs-extra": "^11.1.1",
|
|
124
125
|
"git-repo-info": "^2.1.1",
|
|
125
|
-
"glob": "^
|
|
126
|
-
"globals": "^
|
|
126
|
+
"glob": "^13.0.0",
|
|
127
|
+
"globals": "^17.0.0",
|
|
127
128
|
"kill-port-process": "^3.2.1",
|
|
128
129
|
"mitata": "^1.0.34",
|
|
129
130
|
"mocha": "^11.0.0",
|
|
@@ -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,7 +367,7 @@
|
|
|
365
367
|
}
|
|
366
368
|
},
|
|
367
369
|
"packageManager": "pnpm@10.33.2",
|
|
368
|
-
"_originalVersion": "7.
|
|
370
|
+
"_originalVersion": "7.3.0-alpha.1",
|
|
369
371
|
"_versionPreviouslyCalculated": true,
|
|
370
372
|
"publishConfig": {
|
|
371
373
|
"tag": "alpha"
|
|
@@ -21,6 +21,12 @@ declare module '@ember/-internals/deprecations' {
|
|
|
21
21
|
isEnabled: boolean;
|
|
22
22
|
isRemoved: boolean;
|
|
23
23
|
};
|
|
24
|
+
DEPRECATE_COMPARABLE_MIXIN: {
|
|
25
|
+
options: DeprecationOptions;
|
|
26
|
+
test: boolean;
|
|
27
|
+
isEnabled: boolean;
|
|
28
|
+
isRemoved: boolean;
|
|
29
|
+
};
|
|
24
30
|
};
|
|
25
31
|
export function deprecateUntil(message: string, deprecation: DeprecationObject): void;
|
|
26
32
|
export {};
|
|
@@ -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
|
|
@@ -96,16 +113,24 @@ declare module '@ember/-internals/glimmer' {
|
|
|
96
113
|
When designing components `{{yield}}` is used to denote where, inside the component's
|
|
97
114
|
template, an optional block passed to the component should render:
|
|
98
115
|
|
|
99
|
-
```app/templates/application.
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
116
|
+
```app/templates/application.gjs
|
|
117
|
+
import LabeledTextField from '../components/labeled-textfield';
|
|
118
|
+
|
|
119
|
+
<template>
|
|
120
|
+
<LabeledTextField @value={{@model.name}}>
|
|
121
|
+
First name:
|
|
122
|
+
</LabeledTextField>
|
|
123
|
+
</template>
|
|
103
124
|
```
|
|
104
125
|
|
|
105
|
-
```app/components/labeled-textfield.
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
126
|
+
```app/components/labeled-textfield.gjs
|
|
127
|
+
import { Input } from '@ember/component';
|
|
128
|
+
|
|
129
|
+
<template>
|
|
130
|
+
<label>
|
|
131
|
+
{{yield}} <Input @value={{@value}} />
|
|
132
|
+
</label>
|
|
133
|
+
</template>
|
|
109
134
|
```
|
|
110
135
|
|
|
111
136
|
Result:
|
|
@@ -118,19 +143,34 @@ declare module '@ember/-internals/glimmer' {
|
|
|
118
143
|
|
|
119
144
|
Additionally you can `yield` properties into the context for use by the consumer:
|
|
120
145
|
|
|
121
|
-
```app/templates/application.
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
146
|
+
```app/templates/application.gjs
|
|
147
|
+
import Component from '@glimmer/component';
|
|
148
|
+
import LabeledTextField from '../components/labeled-textfield';
|
|
149
|
+
|
|
150
|
+
export default class Application extends Component {
|
|
151
|
+
firstNameValidator = (value) => {
|
|
152
|
+
// validates
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
<template>
|
|
156
|
+
<LabeledTextField @value={{@model.validation}} @validator={{this.firstNameValidator}} as |validationError|>
|
|
157
|
+
{{#if validationError}}
|
|
158
|
+
<p class="error">{{validationError}}</p>
|
|
159
|
+
{{/if}}
|
|
160
|
+
First name:
|
|
161
|
+
</LabeledTextField>
|
|
162
|
+
</template>
|
|
163
|
+
}
|
|
128
164
|
```
|
|
129
165
|
|
|
130
|
-
```app/components/labeled-textfield.
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
166
|
+
```app/components/labeled-textfield.gjs
|
|
167
|
+
import { Input } from '@ember/component';
|
|
168
|
+
|
|
169
|
+
<template>
|
|
170
|
+
<label>
|
|
171
|
+
{{yield this.validationError}} <Input @value={{@value}} />
|
|
172
|
+
</label>
|
|
173
|
+
</template>
|
|
134
174
|
```
|
|
135
175
|
|
|
136
176
|
Result:
|
|
@@ -144,17 +184,23 @@ declare module '@ember/-internals/glimmer' {
|
|
|
144
184
|
|
|
145
185
|
`yield` can also be used with the `hash` helper:
|
|
146
186
|
|
|
147
|
-
```app/templates/application.
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
187
|
+
```app/templates/application.gjs
|
|
188
|
+
import DateRanges from '../components/date-ranges';
|
|
189
|
+
|
|
190
|
+
<template>
|
|
191
|
+
<DateRanges @value={{@model.date}} as |range|>
|
|
192
|
+
Start date: {{range.start}}
|
|
193
|
+
End date: {{range.end}}
|
|
194
|
+
</DateRanges>
|
|
195
|
+
</template>
|
|
152
196
|
```
|
|
153
197
|
|
|
154
|
-
```app/components/date-ranges.
|
|
155
|
-
<
|
|
156
|
-
|
|
157
|
-
|
|
198
|
+
```app/components/date-ranges.gjs
|
|
199
|
+
<template>
|
|
200
|
+
<div>
|
|
201
|
+
{{yield (hash start=@value.start end=@value.end)}}
|
|
202
|
+
</div>
|
|
203
|
+
</template>
|
|
158
204
|
```
|
|
159
205
|
|
|
160
206
|
Result:
|
|
@@ -167,19 +213,25 @@ declare module '@ember/-internals/glimmer' {
|
|
|
167
213
|
```
|
|
168
214
|
|
|
169
215
|
Multiple values can be yielded as block params:
|
|
170
|
-
|
|
171
|
-
```app/templates/application.
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
{{
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
216
|
+
|
|
217
|
+
```app/templates/application.gjs
|
|
218
|
+
import Banner from '../components/banner';
|
|
219
|
+
|
|
220
|
+
<template>
|
|
221
|
+
<Banner @value={{@model}} as |title subtitle body|>
|
|
222
|
+
<h1>{{title}}</h1>
|
|
223
|
+
<h2>{{subtitle}}</h2>
|
|
224
|
+
{{body}}
|
|
225
|
+
</Banner>
|
|
226
|
+
</template>
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
```app/components/banner.gjs
|
|
230
|
+
<template>
|
|
231
|
+
<div>
|
|
232
|
+
{{yield "Hello title" "hello subtitle" "body text"}}
|
|
233
|
+
</div>
|
|
234
|
+
</template>
|
|
183
235
|
```
|
|
184
236
|
|
|
185
237
|
Result:
|
|
@@ -196,15 +248,19 @@ declare module '@ember/-internals/glimmer' {
|
|
|
196
248
|
|
|
197
249
|
Multiple components can be yielded with the `hash` and `component` helper:
|
|
198
250
|
|
|
199
|
-
```app/templates/application.
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
<
|
|
204
|
-
|
|
251
|
+
```app/templates/application.gjs
|
|
252
|
+
import Banner from '../components/banner';
|
|
253
|
+
|
|
254
|
+
<template>
|
|
255
|
+
<Banner @value={{@model}} as |banner|>
|
|
256
|
+
<banner.Title>Banner title</banner.Title>
|
|
257
|
+
<banner.Subtitle>Banner subtitle</banner.Subtitle>
|
|
258
|
+
<banner.Body>A load of body text</banner.Body>
|
|
259
|
+
</Banner>
|
|
260
|
+
</template>
|
|
205
261
|
```
|
|
206
262
|
|
|
207
|
-
```app/components/banner.
|
|
263
|
+
```app/components/banner.gjs
|
|
208
264
|
import Title from './banner/title';
|
|
209
265
|
import Subtitle from './banner/subtitle';
|
|
210
266
|
import Body from './banner/body';
|
|
@@ -213,19 +269,19 @@ declare module '@ember/-internals/glimmer' {
|
|
|
213
269
|
Title = Title;
|
|
214
270
|
Subtitle = Subtitle;
|
|
215
271
|
Body = Body;
|
|
272
|
+
|
|
273
|
+
<template>
|
|
274
|
+
<div>
|
|
275
|
+
{{yield (hash
|
|
276
|
+
Title=this.Title
|
|
277
|
+
Subtitle=this.Subtitle
|
|
278
|
+
Body=(component this.Body defaultArg="some value")
|
|
279
|
+
)}}
|
|
280
|
+
</div>
|
|
281
|
+
</template>
|
|
216
282
|
}
|
|
217
283
|
```
|
|
218
284
|
|
|
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
285
|
Result:
|
|
230
286
|
|
|
231
287
|
```html
|
|
@@ -238,12 +294,16 @@ declare module '@ember/-internals/glimmer' {
|
|
|
238
294
|
|
|
239
295
|
A benefit of using this pattern is that the user of the component can change the order the components are displayed.
|
|
240
296
|
|
|
241
|
-
```app/templates/application.
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
<
|
|
246
|
-
|
|
297
|
+
```app/templates/application.gjs
|
|
298
|
+
import Banner from '../components/banner';
|
|
299
|
+
|
|
300
|
+
<template>
|
|
301
|
+
<Banner @value={{@model}} as |banner|>
|
|
302
|
+
<banner.Subtitle>Banner subtitle</banner.Subtitle>
|
|
303
|
+
<banner.Title>Banner title</banner.Title>
|
|
304
|
+
<banner.Body>A load of body text</banner.Body>
|
|
305
|
+
</Banner>
|
|
306
|
+
</template>
|
|
247
307
|
```
|
|
248
308
|
|
|
249
309
|
Result:
|
|
@@ -259,27 +319,33 @@ declare module '@ember/-internals/glimmer' {
|
|
|
259
319
|
Another benefit to using `yield` with the `hash` and `component` helper
|
|
260
320
|
is you can pass attributes and arguments to these components:
|
|
261
321
|
|
|
262
|
-
```app/templates/application.
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
<
|
|
267
|
-
|
|
322
|
+
```app/templates/application.gjs
|
|
323
|
+
import Banner from '../components/banner';
|
|
324
|
+
|
|
325
|
+
<template>
|
|
326
|
+
<Banner @value={{@model}} as |banner|>
|
|
327
|
+
<banner.Subtitle class="mb-1">Banner subtitle</banner.Subtitle>
|
|
328
|
+
<banner.Title @variant="loud">Banner title</banner.Title>
|
|
329
|
+
<banner.Body>A load of body text</banner.Body>
|
|
330
|
+
</Banner>
|
|
331
|
+
</template>
|
|
268
332
|
```
|
|
269
333
|
|
|
270
|
-
```app/components/banner/subtitle.
|
|
334
|
+
```app/components/banner/subtitle.gjs
|
|
271
335
|
{{!-- note the use of ..attributes --}}
|
|
272
336
|
<h2 ...attributes>
|
|
273
337
|
{{yield}}
|
|
274
338
|
</h2>
|
|
275
339
|
```
|
|
276
340
|
|
|
277
|
-
```app/components/banner/title.
|
|
278
|
-
|
|
341
|
+
```app/components/banner/title.gjs
|
|
342
|
+
<template>
|
|
343
|
+
{{#if (eq @variant "loud")}}
|
|
279
344
|
<h1 class="loud">{{yield}}</h1>
|
|
280
|
-
|
|
345
|
+
{{else}}
|
|
281
346
|
<h1 class="quiet">{{yield}}</h1>
|
|
282
|
-
|
|
347
|
+
{{/if}}
|
|
348
|
+
</template>
|
|
283
349
|
```
|
|
284
350
|
|
|
285
351
|
Result:
|
|
@@ -304,36 +370,28 @@ declare module '@ember/-internals/glimmer' {
|
|
|
304
370
|
This component is invoked with a block:
|
|
305
371
|
|
|
306
372
|
```handlebars
|
|
307
|
-
|
|
373
|
+
<MyComponent>
|
|
308
374
|
Hi Jen!
|
|
309
|
-
|
|
375
|
+
</MyComponent>
|
|
310
376
|
```
|
|
311
377
|
|
|
312
378
|
This component is invoked without a block:
|
|
313
379
|
|
|
314
380
|
```handlebars
|
|
315
|
-
|
|
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}}
|
|
381
|
+
<MyComponent />
|
|
326
382
|
```
|
|
327
383
|
|
|
328
384
|
This is useful when you want to create a component that can optionally take a block
|
|
329
385
|
and then render a default template when it is not invoked with a block.
|
|
330
386
|
|
|
331
|
-
```app/
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
387
|
+
```app/components/my-component.gjs
|
|
388
|
+
<template>
|
|
389
|
+
{{#if (has-block)}}
|
|
390
|
+
Welcome {{yield}}, we are happy you're here!
|
|
391
|
+
{{else}}
|
|
392
|
+
Hey you! You're great!
|
|
393
|
+
{{/if}}
|
|
394
|
+
</template>
|
|
337
395
|
```
|
|
338
396
|
|
|
339
397
|
@method has-block
|
|
@@ -346,26 +404,10 @@ declare module '@ember/-internals/glimmer' {
|
|
|
346
404
|
`{{(has-block-params)}}` indicates if the component was invoked with block params.
|
|
347
405
|
|
|
348
406
|
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
|
-
|
|
407
|
+
|
|
358
408
|
```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
409
|
<MyComponent as |favoriteFlavor|>
|
|
368
|
-
|
|
410
|
+
Hi Jen!
|
|
369
411
|
</MyComponent>
|
|
370
412
|
```
|
|
371
413
|
|
|
@@ -373,21 +415,23 @@ declare module '@ember/-internals/glimmer' {
|
|
|
373
415
|
|
|
374
416
|
```handlebars
|
|
375
417
|
<MyComponent>
|
|
376
|
-
|
|
418
|
+
Hi Jen!
|
|
377
419
|
</MyComponent>
|
|
378
420
|
```
|
|
379
421
|
|
|
380
422
|
This is useful when you want to create a component that can render itself
|
|
381
423
|
differently when it is not invoked with block params.
|
|
382
424
|
|
|
383
|
-
```app/
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
425
|
+
```app/components/my-component.gjs
|
|
426
|
+
<template>
|
|
427
|
+
{{#if (has-block-params)}}
|
|
428
|
+
Welcome {{yield this.favoriteFlavor}}, we're happy you're here and hope you
|
|
429
|
+
enjoy your favorite ice cream flavor.
|
|
430
|
+
{{else}}
|
|
431
|
+
Welcome {{yield}}, we're happy you're here, but we're unsure what
|
|
432
|
+
flavor ice cream you would enjoy.
|
|
433
|
+
{{/if}}
|
|
434
|
+
</template>
|
|
391
435
|
```
|
|
392
436
|
|
|
393
437
|
@method has-block-params
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
declare module '@ember/-internals/glimmer/lib/base-renderer' {
|
|
2
|
+
import type { Cursor, DebugRenderTree, Environment, RenderResult as GlimmerRenderResult, EvaluationContext, TreeBuilder, ClassicResolver } from "@glimmer/interfaces";
|
|
3
|
+
import type { SimpleDocument, SimpleElement } from "@simple-dom/interface";
|
|
4
|
+
export type IBuilder = (env: Environment, cursor: Cursor) => TreeBuilder;
|
|
5
|
+
export function errorLoopTransaction(fn: () => void): () => void;
|
|
6
|
+
/**
|
|
7
|
+
* The interface the `RendererState` needs from a render root. The base
|
|
8
|
+
* renderer only ever creates `ComponentRootState`s; the classic renderer
|
|
9
|
+
* (`./renderer`) adds `ClassicRootState` for outlet/classic-component roots.
|
|
10
|
+
*/
|
|
11
|
+
export interface RendererRoot {
|
|
12
|
+
readonly type: string;
|
|
13
|
+
readonly result: GlimmerRenderResult | undefined;
|
|
14
|
+
readonly destroyed: boolean;
|
|
15
|
+
render(): void;
|
|
16
|
+
destroy(): void;
|
|
17
|
+
isFor(possibleRoot: unknown): boolean;
|
|
18
|
+
}
|
|
19
|
+
export class ComponentRootState implements RendererRoot {
|
|
20
|
+
#private;
|
|
21
|
+
readonly type = "component";
|
|
22
|
+
constructor(state: RendererState, definition: object, options: {
|
|
23
|
+
into: Cursor;
|
|
24
|
+
args?: Record<string, unknown>;
|
|
25
|
+
});
|
|
26
|
+
isFor(_possibleRoot: unknown): boolean;
|
|
27
|
+
render(): void;
|
|
28
|
+
destroy(): void;
|
|
29
|
+
get destroyed(): boolean;
|
|
30
|
+
get result(): GlimmerRenderResult | undefined;
|
|
31
|
+
}
|
|
32
|
+
export function _resetRenderers(): void;
|
|
33
|
+
export function renderSettled(): Promise<void>;
|
|
34
|
+
type Resolver = ClassicResolver;
|
|
35
|
+
interface RendererData {
|
|
36
|
+
owner: object;
|
|
37
|
+
context: EvaluationContext;
|
|
38
|
+
builder: IBuilder;
|
|
39
|
+
}
|
|
40
|
+
export class RendererState {
|
|
41
|
+
#private;
|
|
42
|
+
static create(data: RendererData, renderer: BaseRenderer): RendererState;
|
|
43
|
+
private constructor();
|
|
44
|
+
get debug(): {
|
|
45
|
+
roots: RendererRoot[];
|
|
46
|
+
inRenderTransaction: boolean;
|
|
47
|
+
isInteractive: boolean;
|
|
48
|
+
};
|
|
49
|
+
get roots(): RendererRoot[];
|
|
50
|
+
get owner(): object;
|
|
51
|
+
get builder(): IBuilder;
|
|
52
|
+
get context(): EvaluationContext;
|
|
53
|
+
get env(): Environment;
|
|
54
|
+
get isInteractive(): boolean;
|
|
55
|
+
renderRoot(root: RendererRoot, renderer: BaseRenderer): RendererRoot;
|
|
56
|
+
renderRoots(renderer: BaseRenderer): void;
|
|
57
|
+
scheduleRevalidate(renderer: BaseRenderer): void;
|
|
58
|
+
isValid(): boolean;
|
|
59
|
+
revalidate(renderer: BaseRenderer): void;
|
|
60
|
+
clearAllRoots(renderer: BaseRenderer): void;
|
|
61
|
+
}
|
|
62
|
+
type IntoTarget = Cursor | Element | SimpleElement;
|
|
63
|
+
/**
|
|
64
|
+
* The returned object from `renderComponent`
|
|
65
|
+
* @public
|
|
66
|
+
* @module @ember/renderer
|
|
67
|
+
*/
|
|
68
|
+
export interface RenderResult {
|
|
69
|
+
/**
|
|
70
|
+
* Destroys the render tree and removes all rendered content from the element rendered into
|
|
71
|
+
*/
|
|
72
|
+
destroy(): void;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Render a component into a DOM element.
|
|
76
|
+
*
|
|
77
|
+
* @method renderComponent
|
|
78
|
+
* @static
|
|
79
|
+
* @for @ember/renderer
|
|
80
|
+
* @param {Object} component The component to render.
|
|
81
|
+
* @param {Object} options
|
|
82
|
+
* @param {Element} options.into Where to render the component in to.
|
|
83
|
+
* @param {Object} [options.owner] Optionally specify the owner to use. This will be used for injections, and overall cleanup.
|
|
84
|
+
* @param {Object} [options.env] Optional renderer configuration
|
|
85
|
+
* @param {Object} [options.args] Optionally pass args in to the component. These may be reactive as long as it is an object or object-like
|
|
86
|
+
* @public
|
|
87
|
+
*/
|
|
88
|
+
export function renderComponent(
|
|
89
|
+
/**
|
|
90
|
+
* The component definition to render.
|
|
91
|
+
*
|
|
92
|
+
* Any component that has had its manager registered is valid.
|
|
93
|
+
* For the component-types that ship with ember, manager registration
|
|
94
|
+
* does not need to be worried about.
|
|
95
|
+
*/
|
|
96
|
+
component: object,
|
|
97
|
+
{ owner, env, into, args, }: {
|
|
98
|
+
/**
|
|
99
|
+
* The element to render the component in to.
|
|
100
|
+
*/
|
|
101
|
+
into: IntoTarget;
|
|
102
|
+
/**
|
|
103
|
+
* Optional owner. Defaults to `{}`, can be any object, but will need to implement the [Owner](https://api.emberjs.com/ember/release/classes/Owner) API for components within this render tree to access services.
|
|
104
|
+
*/
|
|
105
|
+
owner?: object;
|
|
106
|
+
/**
|
|
107
|
+
* Optionally configure the rendering environment
|
|
108
|
+
*/
|
|
109
|
+
env?: {
|
|
110
|
+
/**
|
|
111
|
+
* When false, modifiers will not run.
|
|
112
|
+
*/
|
|
113
|
+
isInteractive?: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* All other options are forwarded to the underlying renderer.
|
|
116
|
+
* (its API is currently private and out of scope for this RFC,
|
|
117
|
+
* so passing additional things here is also considered private API)
|
|
118
|
+
*/
|
|
119
|
+
[rendererOption: string]: unknown;
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* These args get passed to the rendered component
|
|
123
|
+
*
|
|
124
|
+
* If your args are reactive, re-rendering will happen automatically.
|
|
125
|
+
*
|
|
126
|
+
*/
|
|
127
|
+
args?: Record<string, unknown>;
|
|
128
|
+
}
|
|
129
|
+
): RenderResult;
|
|
130
|
+
export class BaseRenderer {
|
|
131
|
+
static strict(owner: object, document: SimpleDocument | Document, options: {
|
|
132
|
+
isInteractive: boolean;
|
|
133
|
+
hasDOM?: boolean;
|
|
134
|
+
}): BaseRenderer;
|
|
135
|
+
readonly state: RendererState;
|
|
136
|
+
constructor(owner: object, envOptions: {
|
|
137
|
+
isInteractive: boolean;
|
|
138
|
+
hasDOM: boolean;
|
|
139
|
+
}, document: SimpleDocument, resolver: Resolver, builder: IBuilder);
|
|
140
|
+
get debugRenderTree(): DebugRenderTree;
|
|
141
|
+
isValid(): boolean;
|
|
142
|
+
destroy(): void;
|
|
143
|
+
render(component: object, options: {
|
|
144
|
+
into: IntoTarget;
|
|
145
|
+
args?: Record<string, unknown>;
|
|
146
|
+
}): RendererRoot;
|
|
147
|
+
rerender(): void;
|
|
148
|
+
}
|
|
149
|
+
export {};
|
|
150
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
declare module '@ember/-internals/glimmer/lib/component-managers/curly-brand' {
|
|
2
|
+
/**
|
|
3
|
+
* The brand for the curly component manager lives in its own module so that
|
|
4
|
+
* code which only needs to *detect* the curly manager (e.g. the resolver)
|
|
5
|
+
* does not have to import the manager itself (and with it the classic
|
|
6
|
+
* component machinery).
|
|
7
|
+
*/
|
|
8
|
+
export const CURLY_MANAGER_BRAND: unique symbol;
|
|
9
|
+
export function isCurlyManager(manager: object): boolean;
|
|
10
|
+
}
|
|
@@ -7,6 +7,7 @@ declare module '@ember/-internals/glimmer/lib/component-managers/curly' {
|
|
|
7
7
|
import type { DynamicScope } from "@ember/-internals/glimmer/lib/renderer";
|
|
8
8
|
import type RuntimeResolver from "@ember/-internals/glimmer/lib/resolver";
|
|
9
9
|
import ComponentStateBucket from "@ember/-internals/glimmer/lib/utils/curly-component-state-bucket";
|
|
10
|
+
import { CURLY_MANAGER_BRAND } from "@ember/-internals/glimmer/lib/component-managers/curly-brand";
|
|
10
11
|
export function getComponentCapturedArgs(component: object): CapturedArguments["named"] | undefined;
|
|
11
12
|
export const DIRTY_TAG: unique symbol;
|
|
12
13
|
export const IS_DISPATCHING_ATTRS: unique symbol;
|
|
@@ -20,6 +21,7 @@ declare module '@ember/-internals/glimmer/lib/component-managers/curly' {
|
|
|
20
21
|
positionalParams: string | string[] | undefined | null;
|
|
21
22
|
};
|
|
22
23
|
export default class CurlyComponentManager implements WithCreateInstance<ComponentStateBucket>, WithDynamicLayout<ComponentStateBucket, RuntimeResolver>, WithDynamicTagName<ComponentStateBucket> {
|
|
24
|
+
readonly [CURLY_MANAGER_BRAND] = true;
|
|
23
25
|
protected templateFor(component: Component): CompilableProgram | null;
|
|
24
26
|
getDynamicLayout(bucket: ComponentStateBucket): CompilableProgram | null;
|
|
25
27
|
getTagName(state: ComponentStateBucket): Nullable<string>;
|
|
@@ -39,6 +41,5 @@ declare module '@ember/-internals/glimmer/lib/component-managers/curly' {
|
|
|
39
41
|
export function processComponentInitializationAssertions(component: Component, props: any): void;
|
|
40
42
|
export function initialRenderInstrumentDetails(component: any): any;
|
|
41
43
|
export const CURLY_COMPONENT_MANAGER: CurlyComponentManager;
|
|
42
|
-
export
|
|
43
|
-
export {};
|
|
44
|
+
export { isCurlyManager } from "@ember/-internals/glimmer/lib/component-managers/curly-brand";
|
|
44
45
|
}
|
|
@@ -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";
|