ember-source 4.10.0-beta.2 → 4.11.0-alpha.2
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/CHANGELOG.md +5 -1
- package/build-metadata.json +3 -3
- package/dist/ember-template-compiler.js +147 -172
- package/dist/ember-template-compiler.map +1 -1
- package/dist/ember-testing.js +129 -6
- package/dist/ember-testing.map +1 -1
- package/dist/ember.debug.js +334 -314
- package/dist/ember.debug.map +1 -1
- package/dist/header/license.js +1 -1
- package/dist/packages/@ember/-internals/glimmer/index.js +60 -59
- package/dist/packages/@ember/-internals/metal/index.js +6 -6
- package/dist/packages/@ember/-internals/{utils/types.js → utility-types/index.js} +0 -0
- package/dist/packages/@ember/-internals/utils/index.js +3 -137
- package/dist/packages/@ember/-internals/views/lib/mixins/action_support.js +1 -2
- package/dist/packages/@ember/-internals/views/lib/views/states/default.js +1 -2
- package/dist/packages/@ember/-internals/views/lib/views/states/destroying.js +2 -3
- package/dist/packages/@ember/-internals/views/lib/views/states/in_dom.js +1 -2
- package/dist/packages/@ember/array/-internals.js +8 -0
- package/dist/packages/@ember/array/index.js +2 -2
- package/dist/packages/@ember/array/lib/make-array.js +10 -0
- package/dist/packages/@ember/canary-features/index.js +0 -4
- package/dist/packages/@ember/debug/data-adapter.js +16 -16
- package/dist/packages/@ember/debug/index.js +2 -3
- package/dist/packages/@ember/debug/lib/inspect.js +117 -0
- package/dist/packages/@ember/engine/instance.js +1 -2
- package/dist/packages/@ember/instrumentation/index.js +2 -8
- package/dist/packages/@ember/object/core.js +2 -1
- package/dist/packages/@ember/object/mixin.js +11 -2
- package/dist/packages/@ember/object/promise-proxy-mixin.js +1 -2
- package/dist/packages/@ember/owner/index.js +2 -2
- package/dist/packages/@ember/routing/lib/utils.js +1 -2
- package/dist/packages/@ember/routing/router.js +36 -37
- package/dist/packages/ember/index.js +3 -3
- package/dist/packages/ember/version.js +1 -1
- package/dist/packages/ember-testing/lib/adapters/qunit.js +1 -1
- package/docs/data.json +252 -253
- package/package.json +19 -19
- package/types/preview/@ember/controller/index.d.ts +1 -1
- package/types/preview/@ember/engine/-private/container-proxy-mixin.d.ts +1 -1
- package/types/preview/@ember/engine/-private/registry-proxy-mixin.d.ts +1 -1
- package/types/preview/@ember/error/index.d.ts +2 -2
- package/types/preview/ember/index.d.ts +1 -1
- package/types/preview/index.d.ts +0 -2
- package/types/publish.mjs +314 -294
- package/types/stable/@ember/-internals/bootstrap/index.d.ts +3 -0
- package/types/stable/@ember/-internals/browser-environment/index.d.ts +9 -0
- package/types/stable/@ember/-internals/browser-environment/lib/has-dom.d.ts +4 -0
- package/types/stable/@ember/-internals/container/index.d.ts +4 -0
- package/types/stable/@ember/-internals/container/lib/container.d.ts +164 -0
- package/types/stable/@ember/-internals/container/lib/registry.d.ts +292 -0
- package/types/stable/@ember/-internals/environment/index.d.ts +5 -0
- package/types/stable/@ember/-internals/environment/lib/context.d.ts +10 -0
- package/types/stable/@ember/-internals/environment/lib/env.d.ts +153 -0
- package/types/stable/@ember/-internals/environment/lib/global.d.ts +4 -0
- package/types/stable/@ember/-internals/error-handling/index.d.ts +9 -0
- package/types/stable/@ember/-internals/glimmer/index.d.ts +456 -0
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/curly.d.ts +47 -0
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/mount.d.ts +41 -0
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/outlet.d.ts +51 -0
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/root.d.ts +23 -0
- package/types/stable/@ember/-internals/glimmer/lib/component.d.ts +840 -0
- package/types/stable/@ember/-internals/glimmer/lib/components/abstract-input.d.ts +37 -0
- package/types/stable/@ember/-internals/glimmer/lib/components/input.d.ts +4 -0
- package/types/stable/@ember/-internals/glimmer/lib/components/internal.d.ts +48 -0
- package/types/stable/@ember/-internals/glimmer/lib/components/link-to.d.ts +4 -0
- package/types/stable/@ember/-internals/glimmer/lib/components/textarea.d.ts +4 -0
- package/types/stable/@ember/-internals/glimmer/lib/dom.d.ts +4 -0
- package/types/stable/@ember/-internals/glimmer/lib/environment.d.ts +11 -0
- package/types/stable/@ember/-internals/glimmer/lib/glimmer-component-docs.d.ts +387 -0
- package/types/stable/@ember/-internals/glimmer/lib/glimmer-tracking-docs.d.ts +249 -0
- package/types/stable/@ember/-internals/glimmer/lib/helper.d.ts +160 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/-disallow-dynamic-resolution.d.ts +4 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/-in-element-null-check.d.ts +4 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/-normalize-class.d.ts +4 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/-resolve.d.ts +4 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/-track-array.d.ts +9 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/action.d.ts +268 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/array.d.ts +40 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/component.d.ts +148 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/concat.d.ts +27 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/each-in.d.ts +160 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/fn.d.ts +72 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/get.d.ts +99 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/hash.d.ts +43 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/helper.d.ts +42 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/if-unless.d.ts +181 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/internal-helper.d.ts +5 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/log.d.ts +18 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/modifier.d.ts +41 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/mut.d.ts +77 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/page-title.d.ts +19 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/readonly.d.ts +119 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/unbound.d.ts +34 -0
- package/types/stable/@ember/-internals/glimmer/lib/helpers/unique-id.d.ts +7 -0
- package/types/stable/@ember/-internals/glimmer/lib/modifiers/action.d.ts +30 -0
- package/types/stable/@ember/-internals/glimmer/lib/modifiers/internal.d.ts +33 -0
- package/types/stable/@ember/-internals/glimmer/lib/modifiers/on.d.ts +94 -0
- package/types/stable/@ember/-internals/glimmer/lib/renderer.d.ts +96 -0
- package/types/stable/@ember/-internals/glimmer/lib/resolver.d.ts +16 -0
- package/types/stable/@ember/-internals/glimmer/lib/setup-registry.d.ts +5 -0
- package/types/stable/@ember/-internals/glimmer/lib/syntax/in-element.d.ts +46 -0
- package/types/stable/@ember/-internals/glimmer/lib/syntax/let.d.ts +54 -0
- package/types/stable/@ember/-internals/glimmer/lib/syntax/mount.d.ts +43 -0
- package/types/stable/@ember/-internals/glimmer/lib/syntax/outlet.d.ts +27 -0
- package/types/stable/@ember/-internals/glimmer/lib/syntax/utils.d.ts +4 -0
- package/types/stable/@ember/-internals/glimmer/lib/template.d.ts +6 -0
- package/types/stable/@ember/-internals/glimmer/lib/template_registry.d.ts +11 -0
- package/types/stable/@ember/-internals/glimmer/lib/utils/bindings.d.ts +10 -0
- package/types/stable/@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.d.ts +31 -0
- package/types/stable/@ember/-internals/glimmer/lib/utils/debug-render-message.d.ts +4 -0
- package/types/stable/@ember/-internals/glimmer/lib/utils/iterator.d.ts +5 -0
- package/types/stable/@ember/-internals/glimmer/lib/utils/managers.d.ts +19 -0
- package/types/stable/@ember/-internals/glimmer/lib/utils/outlet.d.ts +51 -0
- package/types/stable/@ember/-internals/glimmer/lib/utils/process-args.d.ts +4 -0
- package/types/stable/@ember/-internals/glimmer/lib/utils/serialization-first-node-helpers.d.ts +3 -0
- package/types/stable/@ember/-internals/glimmer/lib/utils/string.d.ts +61 -0
- package/types/stable/@ember/-internals/glimmer/lib/utils/to-bool.d.ts +3 -0
- package/types/stable/@ember/-internals/glimmer/lib/views/outlet.d.ts +34 -0
- package/types/stable/@ember/-internals/meta/index.d.ts +3 -0
- package/types/stable/@ember/-internals/meta/lib/meta.d.ts +174 -0
- package/types/stable/@ember/-internals/metal/index.d.ts +26 -0
- package/types/stable/@ember/-internals/metal/lib/alias.d.ts +22 -0
- package/types/stable/@ember/-internals/metal/lib/array.d.ts +18 -0
- package/types/stable/@ember/-internals/metal/lib/array_events.d.ts +6 -0
- package/types/stable/@ember/-internals/metal/lib/cache.d.ts +121 -0
- package/types/stable/@ember/-internals/metal/lib/cached.d.ts +3 -0
- package/types/stable/@ember/-internals/metal/lib/chain-tags.d.ts +8 -0
- package/types/stable/@ember/-internals/metal/lib/change_event.d.ts +3 -0
- package/types/stable/@ember/-internals/metal/lib/computed.d.ts +484 -0
- package/types/stable/@ember/-internals/metal/lib/computed_cache.d.ts +3 -0
- package/types/stable/@ember/-internals/metal/lib/decorator.d.ts +64 -0
- package/types/stable/@ember/-internals/metal/lib/dependent_keys.d.ts +2 -0
- package/types/stable/@ember/-internals/metal/lib/deprecate_property.d.ts +18 -0
- package/types/stable/@ember/-internals/metal/lib/each_proxy_events.d.ts +5 -0
- package/types/stable/@ember/-internals/metal/lib/events.d.ts +91 -0
- package/types/stable/@ember/-internals/metal/lib/expand_properties.d.ts +33 -0
- package/types/stable/@ember/-internals/metal/lib/get_properties.d.ts +36 -0
- package/types/stable/@ember/-internals/metal/lib/injected_property.d.ts +25 -0
- package/types/stable/@ember/-internals/metal/lib/libraries.d.ts +31 -0
- package/types/stable/@ember/-internals/metal/lib/namespace_search.d.ts +19 -0
- package/types/stable/@ember/-internals/metal/lib/observer.d.ts +54 -0
- package/types/stable/@ember/-internals/metal/lib/path_cache.d.ts +3 -0
- package/types/stable/@ember/-internals/metal/lib/properties.d.ts +58 -0
- package/types/stable/@ember/-internals/metal/lib/property_events.d.ts +59 -0
- package/types/stable/@ember/-internals/metal/lib/property_get.d.ts +44 -0
- package/types/stable/@ember/-internals/metal/lib/property_set.d.ts +52 -0
- package/types/stable/@ember/-internals/metal/lib/set_properties.d.ts +32 -0
- package/types/stable/@ember/-internals/metal/lib/tags.d.ts +7 -0
- package/types/stable/@ember/-internals/metal/lib/tracked.d.ts +78 -0
- package/types/stable/@ember/-internals/overrides/index.d.ts +3 -0
- package/types/stable/@ember/-internals/owner/index.d.ts +646 -0
- package/types/stable/@ember/-internals/routing/index.d.ts +3 -0
- package/types/stable/@ember/-internals/runtime/index.d.ts +11 -0
- package/types/stable/@ember/-internals/runtime/lib/ext/rsvp.d.ts +5 -0
- package/types/stable/@ember/-internals/runtime/lib/mixins/-proxy.d.ts +34 -0
- package/types/stable/@ember/-internals/runtime/lib/mixins/action_handler.d.ts +23 -0
- package/types/stable/@ember/-internals/runtime/lib/mixins/comparable.d.ts +22 -0
- package/types/stable/@ember/-internals/runtime/lib/mixins/container_proxy.d.ts +22 -0
- package/types/stable/@ember/-internals/runtime/lib/mixins/registry_proxy.d.ts +22 -0
- package/types/stable/@ember/-internals/runtime/lib/mixins/target_action_support.d.ts +29 -0
- package/types/stable/@ember/-internals/utility-types/index.d.ts +10 -0
- package/types/stable/@ember/-internals/utils/index.d.ts +16 -0
- package/types/stable/@ember/-internals/utils/lib/cache.d.ts +14 -0
- package/types/stable/@ember/-internals/utils/lib/dictionary.d.ts +7 -0
- package/types/stable/@ember/-internals/utils/lib/get-debug-name.d.ts +4 -0
- package/types/stable/@ember/-internals/utils/lib/guid.d.ts +60 -0
- package/types/stable/@ember/-internals/utils/lib/intern.d.ts +42 -0
- package/types/stable/@ember/-internals/utils/lib/invoke.d.ts +24 -0
- package/types/stable/@ember/-internals/utils/lib/is_proxy.d.ts +5 -0
- package/types/stable/@ember/-internals/utils/lib/lookup-descriptor.d.ts +3 -0
- package/types/stable/@ember/-internals/utils/lib/mandatory-setter.d.ts +6 -0
- package/types/stable/@ember/-internals/utils/lib/name.d.ts +4 -0
- package/types/stable/@ember/-internals/utils/lib/spec.d.ts +14 -0
- package/types/stable/@ember/-internals/utils/lib/super.d.ts +31 -0
- package/types/stable/@ember/-internals/utils/lib/symbol.d.ts +5 -0
- package/types/stable/@ember/-internals/utils/lib/to-string.d.ts +3 -0
- package/types/stable/@ember/-internals/views/index.d.ts +13 -0
- package/types/stable/@ember/-internals/views/lib/compat/attrs.d.ts +3 -0
- package/types/stable/@ember/-internals/views/lib/compat/fallback-view-registry.d.ts +6 -0
- package/types/stable/@ember/-internals/views/lib/component_lookup.d.ts +5 -0
- package/types/stable/@ember/-internals/views/lib/mixins/action_support.d.ts +13 -0
- package/types/stable/@ember/-internals/views/lib/mixins/child_views_support.d.ts +13 -0
- package/types/stable/@ember/-internals/views/lib/mixins/class_names_support.d.ts +14 -0
- package/types/stable/@ember/-internals/views/lib/mixins/view_state_support.d.ts +13 -0
- package/types/stable/@ember/-internals/views/lib/mixins/view_support.d.ts +25 -0
- package/types/stable/@ember/-internals/views/lib/system/action_manager.d.ts +11 -0
- package/types/stable/@ember/-internals/views/lib/system/event_dispatcher.d.ts +117 -0
- package/types/stable/@ember/-internals/views/lib/system/utils.d.ts +94 -0
- package/types/stable/@ember/-internals/views/lib/views/core_view.d.ts +60 -0
- package/types/stable/@ember/-internals/views/lib/views/states/default.d.ts +5 -0
- package/types/stable/@ember/-internals/views/lib/views/states/destroying.d.ts +5 -0
- package/types/stable/@ember/-internals/views/lib/views/states/has_element.d.ts +5 -0
- package/types/stable/@ember/-internals/views/lib/views/states/in_dom.d.ts +5 -0
- package/types/stable/@ember/-internals/views/lib/views/states/pre_render.d.ts +11 -0
- package/types/stable/@ember/-internals/views/lib/views/states.d.ts +25 -0
- package/types/stable/@ember/application/index.d.ts +814 -0
- package/types/stable/@ember/application/instance.d.ts +288 -0
- package/types/stable/@ember/application/lib/lazy_load.d.ts +38 -0
- package/types/stable/@ember/application/namespace.d.ts +38 -0
- package/types/stable/@ember/array/-internals.d.ts +5 -0
- package/types/stable/@ember/array/index.d.ts +1457 -0
- package/types/stable/@ember/array/lib/make-array.d.ts +34 -0
- package/types/stable/@ember/array/mutable.d.ts +3 -0
- package/types/stable/@ember/array/proxy.d.ts +158 -0
- package/types/stable/@ember/canary-features/index.d.ts +49 -0
- package/types/stable/@ember/component/helper.d.ts +3 -0
- package/types/stable/@ember/component/index.d.ts +5 -0
- package/types/stable/@ember/component/template-only.d.ts +33 -0
- package/types/stable/@ember/controller/index.d.ts +277 -0
- package/types/stable/@ember/debug/container-debug-adapter.d.ts +73 -0
- package/types/stable/@ember/debug/data-adapter.d.ts +325 -0
- package/types/stable/@ember/debug/index.d.ts +52 -0
- package/types/stable/@ember/debug/lib/capture-render-tree.d.ts +21 -0
- package/types/stable/@ember/debug/lib/deprecate.d.ts +72 -0
- package/types/stable/@ember/debug/lib/handlers.d.ts +14 -0
- package/types/stable/@ember/debug/lib/inspect.d.ts +20 -0
- package/types/stable/@ember/debug/lib/testing.d.ts +4 -0
- package/types/stable/@ember/debug/lib/warn.d.ts +14 -0
- package/types/stable/@ember/deprecated-features/index.d.ts +3 -0
- package/types/stable/@ember/destroyable/index.d.ts +237 -0
- package/types/stable/@ember/engine/index.d.ts +347 -0
- package/types/stable/@ember/engine/instance.d.ts +127 -0
- package/types/stable/@ember/engine/lib/engine-parent.d.ts +27 -0
- package/types/stable/@ember/enumerable/index.d.ts +19 -0
- package/types/stable/@ember/enumerable/mutable.d.ts +21 -0
- package/types/stable/@ember/error/index.d.ts +15 -0
- package/types/stable/@ember/helper/index.d.ts +314 -0
- package/types/stable/@ember/instrumentation/index.d.ts +127 -0
- package/types/stable/@ember/modifier/index.d.ts +5 -0
- package/types/stable/@ember/object/-internals.d.ts +9 -0
- package/types/stable/@ember/object/compat.d.ts +90 -0
- package/types/stable/@ember/object/computed.d.ts +5 -0
- package/types/stable/@ember/object/core.d.ts +638 -0
- package/types/stable/@ember/object/evented.d.ts +134 -0
- package/types/stable/@ember/object/events.d.ts +3 -0
- package/types/stable/@ember/object/index.d.ts +60 -0
- package/types/stable/@ember/object/internals.d.ts +3 -0
- package/types/stable/@ember/object/lib/computed/computed_macros.d.ts +644 -0
- package/types/stable/@ember/object/lib/computed/reduce_computed_macros.d.ts +791 -0
- package/types/stable/@ember/object/mixin.d.ts +157 -0
- package/types/stable/@ember/object/observable.d.ts +383 -0
- package/types/stable/@ember/object/observers.d.ts +3 -0
- package/types/stable/@ember/object/promise-proxy-mixin.d.ts +167 -0
- package/types/stable/@ember/object/proxy.d.ts +88 -0
- package/types/stable/@ember/owner/index.d.ts +80 -0
- package/types/stable/@ember/polyfills/index.d.ts +4 -0
- package/types/stable/@ember/polyfills/lib/assign.d.ts +9 -0
- package/types/stable/@ember/renderer/index.d.ts +28 -0
- package/types/stable/@ember/routing/-internals.d.ts +11 -0
- package/types/stable/@ember/routing/auto-location.d.ts +149 -0
- package/types/stable/@ember/routing/hash-location.d.ts +113 -0
- package/types/stable/@ember/routing/history-location.d.ts +143 -0
- package/types/stable/@ember/routing/index.d.ts +3 -0
- package/types/stable/@ember/routing/lib/cache.d.ts +16 -0
- package/types/stable/@ember/routing/lib/controller_for.d.ts +15 -0
- package/types/stable/@ember/routing/lib/dsl.d.ts +52 -0
- package/types/stable/@ember/routing/lib/engines.d.ts +14 -0
- package/types/stable/@ember/routing/lib/generate_controller.d.ts +25 -0
- package/types/stable/@ember/routing/lib/location-utils.d.ts +31 -0
- package/types/stable/@ember/routing/lib/query_params.d.ts +7 -0
- package/types/stable/@ember/routing/lib/route-info.d.ts +3 -0
- package/types/stable/@ember/routing/lib/router_state.d.ts +13 -0
- package/types/stable/@ember/routing/lib/routing-service.d.ts +35 -0
- package/types/stable/@ember/routing/lib/utils.d.ts +36 -0
- package/types/stable/@ember/routing/location.d.ts +108 -0
- package/types/stable/@ember/routing/none-location.d.ts +83 -0
- package/types/stable/@ember/routing/route-info.d.ts +125 -0
- package/types/stable/@ember/routing/route.d.ts +1456 -0
- package/types/stable/@ember/routing/router-service.d.ts +588 -0
- package/types/stable/@ember/routing/router.d.ts +431 -0
- package/types/stable/@ember/routing/transition.d.ts +180 -0
- package/types/stable/@ember/runloop/index.d.ts +657 -0
- package/types/stable/@ember/service/index.d.ts +82 -0
- package/types/stable/@ember/string/index.d.ts +152 -0
- package/types/stable/@ember/string/lib/string_registry.d.ts +9 -0
- package/types/stable/@ember/template/index.d.ts +3 -0
- package/types/stable/@ember/template-compilation/index.d.ts +4 -0
- package/types/stable/@ember/template-factory/index.d.ts +3 -0
- package/types/stable/@ember/test/adapter.d.ts +4 -0
- package/types/stable/@ember/test/index.d.ts +8 -0
- package/types/stable/@ember/utils/index.d.ts +9 -0
- package/types/stable/@ember/utils/lib/compare.d.ts +54 -0
- package/types/stable/@ember/utils/lib/is-equal.d.ts +52 -0
- package/types/stable/@ember/utils/lib/is_blank.d.ts +32 -0
- package/types/stable/@ember/utils/lib/is_empty.d.ts +38 -0
- package/types/stable/@ember/utils/lib/is_none.d.ts +26 -0
- package/types/stable/@ember/utils/lib/is_present.d.ts +35 -0
- package/types/stable/@ember/utils/lib/type-of.d.ts +68 -0
- package/types/stable/@ember/version/index.d.ts +3 -0
- package/types/stable/@glimmer/tracking/index.d.ts +203 -0
- package/types/stable/@glimmer/tracking/primitives/cache.d.ts +3 -0
- package/types/stable/ember/index.d.ts +376 -0
- package/types/stable/ember-template-compiler/index.d.ts +21 -0
- package/types/stable/ember-template-compiler/lib/plugins/assert-against-attrs.d.ts +20 -0
- package/types/stable/ember-template-compiler/lib/plugins/assert-against-named-outlets.d.ts +14 -0
- package/types/stable/ember-template-compiler/lib/plugins/assert-input-helper-without-block.d.ts +5 -0
- package/types/stable/ember-template-compiler/lib/plugins/assert-reserved-named-arguments.d.ts +5 -0
- package/types/stable/ember-template-compiler/lib/plugins/assert-splattribute-expression.d.ts +5 -0
- package/types/stable/ember-template-compiler/lib/plugins/index.d.ts +5 -0
- package/types/stable/ember-template-compiler/lib/plugins/transform-action-syntax.d.ts +28 -0
- package/types/stable/ember-template-compiler/lib/plugins/transform-each-in-into-each.d.ts +24 -0
- package/types/stable/ember-template-compiler/lib/plugins/transform-each-track-array.d.ts +24 -0
- package/types/stable/ember-template-compiler/lib/plugins/transform-in-element.d.ts +22 -0
- package/types/stable/ember-template-compiler/lib/plugins/transform-quoted-bindings-into-just-bindings.d.ts +4 -0
- package/types/stable/ember-template-compiler/lib/plugins/transform-resolutions.d.ts +5 -0
- package/types/stable/ember-template-compiler/lib/plugins/transform-wrap-mount-and-outlet.d.ts +36 -0
- package/types/stable/ember-template-compiler/lib/plugins/utils.d.ts +13 -0
- package/types/stable/ember-template-compiler/lib/system/bootstrap.d.ts +26 -0
- package/types/stable/ember-template-compiler/lib/system/calculate-location-display.d.ts +4 -0
- package/types/stable/ember-template-compiler/lib/system/compile-options.d.ts +6 -0
- package/types/stable/ember-template-compiler/lib/system/compile.d.ts +13 -0
- package/types/stable/ember-template-compiler/lib/system/dasherize-component-name.d.ts +5 -0
- package/types/stable/ember-template-compiler/lib/system/initializer.d.ts +3 -0
- package/types/stable/ember-template-compiler/lib/system/precompile.d.ts +17 -0
- package/types/stable/ember-testing/index.d.ts +10 -0
- package/types/stable/ember-testing/lib/adapters/adapter.d.ts +20 -0
- package/types/stable/ember-testing/lib/adapters/qunit.d.ts +19 -0
- package/types/stable/ember-testing/lib/ext/application.d.ts +12 -0
- package/types/stable/ember-testing/lib/ext/rsvp.d.ts +4 -0
- package/types/stable/ember-testing/lib/helpers/and_then.d.ts +4 -0
- package/types/stable/ember-testing/lib/helpers/current_path.d.ts +22 -0
- package/types/stable/ember-testing/lib/helpers/current_route_name.d.ts +21 -0
- package/types/stable/ember-testing/lib/helpers/current_url.d.ts +22 -0
- package/types/stable/ember-testing/lib/helpers/pause_test.d.ts +53 -0
- package/types/stable/ember-testing/lib/helpers/visit.d.ts +22 -0
- package/types/stable/ember-testing/lib/helpers/wait.d.ts +34 -0
- package/types/stable/ember-testing/lib/helpers.d.ts +3 -0
- package/types/stable/ember-testing/lib/initializers.d.ts +3 -0
- package/types/stable/ember-testing/lib/setup_for_testing.d.ts +15 -0
- package/types/stable/ember-testing/lib/test/adapter.d.ts +7 -0
- package/types/stable/ember-testing/lib/test/helpers.d.ts +115 -0
- package/types/stable/ember-testing/lib/test/on_inject_helpers.d.ts +33 -0
- package/types/stable/ember-testing/lib/test/pending_requests.d.ts +6 -0
- package/types/stable/ember-testing/lib/test/promise.d.ts +38 -0
- package/types/stable/ember-testing/lib/test/run.d.ts +3 -0
- package/types/stable/ember-testing/lib/test/waiters.d.ts +67 -0
- package/types/stable/ember-testing/lib/test.d.ts +47 -0
- package/types/stable/index.d.ts +47 -0
- package/types/preview/@ember/application/tsconfig.json +0 -3
- package/types/preview/@ember/array/tsconfig.json +0 -3
- package/types/preview/@ember/component/tsconfig.json +0 -3
- package/types/preview/@ember/controller/tsconfig.json +0 -3
- package/types/preview/@ember/debug/tsconfig.json +0 -3
- package/types/preview/@ember/destroyable/tsconfig.json +0 -3
- package/types/preview/@ember/engine/tsconfig.json +0 -3
- package/types/preview/@ember/error/tsconfig.json +0 -3
- package/types/preview/@ember/helper/tsconfig.json +0 -3
- package/types/preview/@ember/modifier/tsconfig.json +0 -3
- package/types/preview/@ember/object/tsconfig.json +0 -3
- package/types/preview/@ember/owner/index.d.ts +0 -423
- package/types/preview/@ember/owner/tsconfig.json +0 -3
- package/types/preview/@ember/polyfills/tsconfig.json +0 -3
- package/types/preview/@ember/routing/tsconfig.json +0 -3
- package/types/preview/@ember/runloop/tsconfig.json +0 -3
- package/types/preview/@ember/service/tsconfig.json +0 -3
- package/types/preview/@ember/string/tsconfig.json +0 -3
- package/types/preview/@ember/template/tsconfig.json +0 -3
- package/types/preview/@ember/test/tsconfig.json +0 -3
- package/types/preview/@ember/utils/tsconfig.json +0 -3
- package/types/preview/ember/tsconfig.json +0 -3
- package/types/preview/tsconfig.json +0 -6
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
declare module '@ember/-internals/glimmer/lib/helpers/action.d.ts' {
|
|
2
|
+
export const ACTIONS: WeakSet<object>;
|
|
3
|
+
/**
|
|
4
|
+
The `{{action}}` helper provides a way to pass triggers for behavior (usually
|
|
5
|
+
just a function) between components, and into components from controllers.
|
|
6
|
+
|
|
7
|
+
### Passing functions with the action helper
|
|
8
|
+
|
|
9
|
+
There are three contexts an action helper can be used in. The first two
|
|
10
|
+
contexts to discuss are attribute context, and Handlebars value context.
|
|
11
|
+
|
|
12
|
+
```handlebars
|
|
13
|
+
{{! An example of attribute context }}
|
|
14
|
+
<div onclick={{action "save"}}></div>
|
|
15
|
+
{{! Examples of Handlebars value context }}
|
|
16
|
+
{{input on-input=(action "save")}}
|
|
17
|
+
{{yield (action "refreshData") andAnotherParam}}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
In these contexts,
|
|
21
|
+
the helper is called a "closure action" helper. Its behavior is simple:
|
|
22
|
+
If passed a function name, read that function off the `actions` property
|
|
23
|
+
of the current context. Once that function is read, or immediately if a function was
|
|
24
|
+
passed, create a closure over that function and any arguments.
|
|
25
|
+
The resulting value of an action helper used this way is simply a function.
|
|
26
|
+
|
|
27
|
+
For example, in the attribute context:
|
|
28
|
+
|
|
29
|
+
```handlebars
|
|
30
|
+
{{! An example of attribute context }}
|
|
31
|
+
<div onclick={{action "save"}}></div>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
The resulting template render logic would be:
|
|
35
|
+
|
|
36
|
+
```js
|
|
37
|
+
var div = document.createElement('div');
|
|
38
|
+
var actionFunction = (function(context){
|
|
39
|
+
return function() {
|
|
40
|
+
return context.actions.save.apply(context, arguments);
|
|
41
|
+
};
|
|
42
|
+
})(context);
|
|
43
|
+
div.onclick = actionFunction;
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Thus when the div is clicked, the action on that context is called.
|
|
47
|
+
Because the `actionFunction` is just a function, closure actions can be
|
|
48
|
+
passed between components and still execute in the correct context.
|
|
49
|
+
|
|
50
|
+
Here is an example action handler on a component:
|
|
51
|
+
|
|
52
|
+
```app/components/my-component.js
|
|
53
|
+
import Component from '@glimmer/component';
|
|
54
|
+
import { action } from '@ember/object';
|
|
55
|
+
|
|
56
|
+
export default class extends Component {
|
|
57
|
+
@action
|
|
58
|
+
save() {
|
|
59
|
+
this.model.save();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Actions are always looked up on the `actions` property of the current context.
|
|
65
|
+
This avoids collisions in the naming of common actions, such as `destroy`.
|
|
66
|
+
Two options can be passed to the `action` helper when it is used in this way.
|
|
67
|
+
|
|
68
|
+
* `target=someProperty` will look to `someProperty` instead of the current
|
|
69
|
+
context for the `actions` hash. This can be useful when targeting a
|
|
70
|
+
service for actions.
|
|
71
|
+
* `value="target.value"` will read the path `target.value` off the first
|
|
72
|
+
argument to the action when it is called and rewrite the first argument
|
|
73
|
+
to be that value. This is useful when attaching actions to event listeners.
|
|
74
|
+
|
|
75
|
+
### Invoking an action
|
|
76
|
+
|
|
77
|
+
Closure actions curry both their scope and any arguments. When invoked, any
|
|
78
|
+
additional arguments are added to the already curried list.
|
|
79
|
+
Actions are presented in JavaScript as callbacks, and are
|
|
80
|
+
invoked like any other JavaScript function.
|
|
81
|
+
|
|
82
|
+
For example
|
|
83
|
+
|
|
84
|
+
```app/components/update-name.js
|
|
85
|
+
import Component from '@glimmer/component';
|
|
86
|
+
import { action } from '@ember/object';
|
|
87
|
+
|
|
88
|
+
export default class extends Component {
|
|
89
|
+
@action
|
|
90
|
+
setName(model, name) {
|
|
91
|
+
model.set('name', name);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
```app/components/update-name.hbs
|
|
97
|
+
{{input on-input=(action (action 'setName' @model) value="target.value")}}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
The first argument (`@model`) was curried over, and the run-time argument (`event`)
|
|
101
|
+
becomes a second argument. Action calls can be nested this way because each simply
|
|
102
|
+
returns a function. Any function can be passed to the `{{action}}` helper, including
|
|
103
|
+
other actions.
|
|
104
|
+
|
|
105
|
+
Actions invoked with `sendAction` have the same currying behavior as demonstrated
|
|
106
|
+
with `on-input` above. For example:
|
|
107
|
+
|
|
108
|
+
```app/components/my-input.js
|
|
109
|
+
import Component from '@glimmer/component';
|
|
110
|
+
import { action } from '@ember/object';
|
|
111
|
+
|
|
112
|
+
export default class extends Component {
|
|
113
|
+
@action
|
|
114
|
+
setName(model, name) {
|
|
115
|
+
model.set('name', name);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
```handlebars
|
|
121
|
+
<MyInput @submit={{action 'setName' @model}} />
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
or
|
|
125
|
+
|
|
126
|
+
```handlebars
|
|
127
|
+
{{my-input submit=(action 'setName' @model)}}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
```app/components/my-component.js
|
|
131
|
+
import Component from '@ember/component';
|
|
132
|
+
|
|
133
|
+
export default Component.extend({
|
|
134
|
+
click() {
|
|
135
|
+
// Note that model is not passed, it was curried in the template
|
|
136
|
+
this.submit('bob');
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Attaching actions to DOM elements
|
|
142
|
+
|
|
143
|
+
The third context of the `{{action}}` helper can be called "element space".
|
|
144
|
+
For example:
|
|
145
|
+
|
|
146
|
+
```handlebars
|
|
147
|
+
{{! An example of element space }}
|
|
148
|
+
<div {{action "save"}}></div>
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Used this way, the `{{action}}` helper provides a useful shortcut for
|
|
152
|
+
registering an HTML element in a template for a single DOM event and
|
|
153
|
+
forwarding that interaction to the template's context (controller or component).
|
|
154
|
+
If the context of a template is a controller, actions used this way will
|
|
155
|
+
bubble to routes when the controller does not implement the specified action.
|
|
156
|
+
Once an action hits a route, it will bubble through the route hierarchy.
|
|
157
|
+
|
|
158
|
+
### Event Propagation
|
|
159
|
+
|
|
160
|
+
`{{action}}` helpers called in element space can control event bubbling. Note
|
|
161
|
+
that the closure style actions cannot.
|
|
162
|
+
|
|
163
|
+
Events triggered through the action helper will automatically have
|
|
164
|
+
`.preventDefault()` called on them. You do not need to do so in your event
|
|
165
|
+
handlers. If you need to allow event propagation (to handle file inputs for
|
|
166
|
+
example) you can supply the `preventDefault=false` option to the `{{action}}` helper:
|
|
167
|
+
|
|
168
|
+
```handlebars
|
|
169
|
+
<div {{action "sayHello" preventDefault=false}}>
|
|
170
|
+
<input type="file" />
|
|
171
|
+
<input type="checkbox" />
|
|
172
|
+
</div>
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
To disable bubbling, pass `bubbles=false` to the helper:
|
|
176
|
+
|
|
177
|
+
```handlebars
|
|
178
|
+
<button {{action 'edit' post bubbles=false}}>Edit</button>
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
To disable bubbling with closure style actions you must create your own
|
|
182
|
+
wrapper helper that makes use of `event.stopPropagation()`:
|
|
183
|
+
|
|
184
|
+
```handlebars
|
|
185
|
+
<div onclick={{disable-bubbling (action "sayHello")}}>Hello</div>
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
```app/helpers/disable-bubbling.js
|
|
189
|
+
import { helper } from '@ember/component/helper';
|
|
190
|
+
|
|
191
|
+
export function disableBubbling([action]) {
|
|
192
|
+
return function(event) {
|
|
193
|
+
event.stopPropagation();
|
|
194
|
+
return action(event);
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
export default helper(disableBubbling);
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
If you need the default handler to trigger you should either register your
|
|
201
|
+
own event handler, or use event methods on your view class. See
|
|
202
|
+
["Responding to Browser Events"](/ember/release/classes/Component)
|
|
203
|
+
in the documentation for `Component` for more information.
|
|
204
|
+
|
|
205
|
+
### Specifying DOM event type
|
|
206
|
+
|
|
207
|
+
`{{action}}` helpers called in element space can specify an event type.
|
|
208
|
+
By default the `{{action}}` helper registers for DOM `click` events. You can
|
|
209
|
+
supply an `on` option to the helper to specify a different DOM event name:
|
|
210
|
+
|
|
211
|
+
```handlebars
|
|
212
|
+
<div {{action "anActionName" on="doubleClick"}}>
|
|
213
|
+
click me
|
|
214
|
+
</div>
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
See ["Event Names"](/ember/release/classes/Component) for a list of
|
|
218
|
+
acceptable DOM event names.
|
|
219
|
+
|
|
220
|
+
### Specifying whitelisted modifier keys
|
|
221
|
+
|
|
222
|
+
`{{action}}` helpers called in element space can specify modifier keys.
|
|
223
|
+
By default the `{{action}}` helper will ignore click events with pressed modifier
|
|
224
|
+
keys. You can supply an `allowedKeys` option to specify which keys should not be ignored.
|
|
225
|
+
|
|
226
|
+
```handlebars
|
|
227
|
+
<div {{action "anActionName" allowedKeys="alt"}}>
|
|
228
|
+
click me
|
|
229
|
+
</div>
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
This way the action will fire when clicking with the alt key pressed down.
|
|
233
|
+
Alternatively, supply "any" to the `allowedKeys` option to accept any combination of modifier keys.
|
|
234
|
+
|
|
235
|
+
```handlebars
|
|
236
|
+
<div {{action "anActionName" allowedKeys="any"}}>
|
|
237
|
+
click me with any key pressed
|
|
238
|
+
</div>
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Specifying a Target
|
|
242
|
+
|
|
243
|
+
A `target` option can be provided to the helper to change
|
|
244
|
+
which object will receive the method call. This option must be a path
|
|
245
|
+
to an object, accessible in the current context:
|
|
246
|
+
|
|
247
|
+
```app/templates/application.hbs
|
|
248
|
+
<div {{action "anActionName" target=someService}}>
|
|
249
|
+
click me
|
|
250
|
+
</div>
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
```app/controllers/application.js
|
|
254
|
+
import Controller from '@ember/controller';
|
|
255
|
+
import { service } from '@ember/service';
|
|
256
|
+
|
|
257
|
+
export default class extends Controller {
|
|
258
|
+
@service someService;
|
|
259
|
+
}
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
@method action
|
|
263
|
+
@for Ember.Templates.helpers
|
|
264
|
+
@public
|
|
265
|
+
*/
|
|
266
|
+
const _default: object;
|
|
267
|
+
export default _default;
|
|
268
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
declare module '@ember/-internals/glimmer/lib/helpers/array.d.ts' {
|
|
2
|
+
/**
|
|
3
|
+
@module ember
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
Use the `{{array}}` helper to create an array to pass as an option to your
|
|
7
|
+
components.
|
|
8
|
+
|
|
9
|
+
```handlebars
|
|
10
|
+
<MyComponent @people={{array
|
|
11
|
+
'Tom Dale'
|
|
12
|
+
'Yehuda Katz'
|
|
13
|
+
this.myOtherPerson}}
|
|
14
|
+
/>
|
|
15
|
+
```
|
|
16
|
+
or
|
|
17
|
+
```handlebars
|
|
18
|
+
{{my-component people=(array
|
|
19
|
+
'Tom Dale'
|
|
20
|
+
'Yehuda Katz'
|
|
21
|
+
this.myOtherPerson)
|
|
22
|
+
}}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Would result in an object such as:
|
|
26
|
+
|
|
27
|
+
```js
|
|
28
|
+
['Tom Dale', 'Yehuda Katz', this.get('myOtherPerson')]
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Where the 3rd item in the array is bound to updates of the `myOtherPerson` property.
|
|
32
|
+
|
|
33
|
+
@method array
|
|
34
|
+
@for Ember.Templates.helpers
|
|
35
|
+
@param {Array} options
|
|
36
|
+
@return {Array} Array
|
|
37
|
+
@since 3.8.0
|
|
38
|
+
@public
|
|
39
|
+
*/
|
|
40
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
declare module '@ember/-internals/glimmer/lib/helpers/component.d.ts' {
|
|
2
|
+
/**
|
|
3
|
+
@module ember
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
The `{{component}}` helper lets you add instances of `Component` to a
|
|
7
|
+
template. See [Component](/ember/release/classes/Component) for
|
|
8
|
+
additional information on how a `Component` functions.
|
|
9
|
+
`{{component}}`'s primary use is for cases where you want to dynamically
|
|
10
|
+
change which type of component is rendered as the state of your application
|
|
11
|
+
changes. This helper has three modes: inline, block, and nested.
|
|
12
|
+
|
|
13
|
+
### Inline Form
|
|
14
|
+
|
|
15
|
+
Given the following template:
|
|
16
|
+
|
|
17
|
+
```app/application.hbs
|
|
18
|
+
{{component this.infographicComponentName}}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
And the following application code:
|
|
22
|
+
|
|
23
|
+
```app/controllers/application.js
|
|
24
|
+
import Controller from '@ember/controller';
|
|
25
|
+
import { tracked } from '@glimmer/tracking';
|
|
26
|
+
|
|
27
|
+
export default class ApplicationController extends Controller {
|
|
28
|
+
@tracked isMarketOpen = 'live-updating-chart'
|
|
29
|
+
|
|
30
|
+
get infographicComponentName() {
|
|
31
|
+
return this.isMarketOpen ? 'live-updating-chart' : 'market-close-summary';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
The `live-updating-chart` component will be appended when `isMarketOpen` is
|
|
37
|
+
`true`, and the `market-close-summary` component will be appended when
|
|
38
|
+
`isMarketOpen` is `false`. If the value changes while the app is running,
|
|
39
|
+
the component will be automatically swapped out accordingly.
|
|
40
|
+
Note: You should not use this helper when you are consistently rendering the same
|
|
41
|
+
component. In that case, use standard component syntax, for example:
|
|
42
|
+
|
|
43
|
+
```app/templates/application.hbs
|
|
44
|
+
<LiveUpdatingChart />
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
or
|
|
48
|
+
|
|
49
|
+
```app/templates/application.hbs
|
|
50
|
+
{{live-updating-chart}}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Block Form
|
|
54
|
+
|
|
55
|
+
Using the block form of this helper is similar to using the block form
|
|
56
|
+
of a component. Given the following application template:
|
|
57
|
+
|
|
58
|
+
```app/templates/application.hbs
|
|
59
|
+
{{#component this.infographicComponentName}}
|
|
60
|
+
Last update: {{this.lastUpdateTimestamp}}
|
|
61
|
+
{{/component}}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
The following controller code:
|
|
65
|
+
|
|
66
|
+
```app/controllers/application.js
|
|
67
|
+
import Controller from '@ember/controller';
|
|
68
|
+
import { computed } from '@ember/object';
|
|
69
|
+
import { tracked } from '@glimmer/tracking';
|
|
70
|
+
|
|
71
|
+
export default class ApplicationController extends Controller {
|
|
72
|
+
@tracked isMarketOpen = 'live-updating-chart'
|
|
73
|
+
|
|
74
|
+
get lastUpdateTimestamp() {
|
|
75
|
+
return new Date();
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
get infographicComponentName() {
|
|
79
|
+
return this.isMarketOpen ? 'live-updating-chart' : 'market-close-summary';
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
And the following component template:
|
|
85
|
+
|
|
86
|
+
```app/templates/components/live-updating-chart.hbs
|
|
87
|
+
{{! chart }}
|
|
88
|
+
{{yield}}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
The `Last Update: {{this.lastUpdateTimestamp}}` will be rendered in place of the `{{yield}}`.
|
|
92
|
+
|
|
93
|
+
### Nested Usage
|
|
94
|
+
|
|
95
|
+
The `component` helper can be used to package a component path with initial attrs.
|
|
96
|
+
The included attrs can then be merged during the final invocation.
|
|
97
|
+
For example, given a `person-form` component with the following template:
|
|
98
|
+
|
|
99
|
+
```app/templates/components/person-form.hbs
|
|
100
|
+
{{yield (hash
|
|
101
|
+
nameInput=(component "my-input-component" value=@model.name placeholder="First Name")
|
|
102
|
+
)}}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
When yielding the component via the `hash` helper, the component is invoked directly.
|
|
106
|
+
See the following snippet:
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
<PersonForm as |form|>
|
|
110
|
+
<form.nameInput @placeholder="Username" />
|
|
111
|
+
</PersonForm>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
or
|
|
115
|
+
```
|
|
116
|
+
{{#person-form as |form|}}
|
|
117
|
+
{{form.nameInput placeholder="Username"}}
|
|
118
|
+
{{/person-form}}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Which outputs an input whose value is already bound to `model.name` and `placeholder`
|
|
122
|
+
is "Username".
|
|
123
|
+
|
|
124
|
+
When yielding the component without the `hash` helper use the `component` helper.
|
|
125
|
+
For example, below is a `full-name` component template:
|
|
126
|
+
|
|
127
|
+
```handlebars
|
|
128
|
+
{{yield (component "my-input-component" value=@model.name placeholder="Name")}}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
<FullName as |field|>
|
|
133
|
+
{{component field placeholder="Full name"}}
|
|
134
|
+
</FullName>
|
|
135
|
+
```
|
|
136
|
+
or
|
|
137
|
+
```
|
|
138
|
+
{{#full-name as |field|}}
|
|
139
|
+
{{component field placeholder="Full name"}}
|
|
140
|
+
{{/full-name}}
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
@method component
|
|
144
|
+
@since 1.11.0
|
|
145
|
+
@for Ember.Templates.helpers
|
|
146
|
+
@public
|
|
147
|
+
*/
|
|
148
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
declare module '@ember/-internals/glimmer/lib/helpers/concat.d.ts' {
|
|
2
|
+
/**
|
|
3
|
+
@module ember
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
Concatenates the given arguments into a string.
|
|
7
|
+
|
|
8
|
+
Example:
|
|
9
|
+
|
|
10
|
+
```handlebars
|
|
11
|
+
{{some-component name=(concat firstName " " lastName)}}
|
|
12
|
+
|
|
13
|
+
{{! would pass name="<first name value> <last name value>" to the component}}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
or for angle bracket invocation, you actually don't need concat at all.
|
|
17
|
+
|
|
18
|
+
```handlebars
|
|
19
|
+
<SomeComponent @name="{{firstName}} {{lastName}}" />
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
@public
|
|
23
|
+
@method concat
|
|
24
|
+
@for Ember.Templates.helpers
|
|
25
|
+
@since 1.13.0
|
|
26
|
+
*/
|
|
27
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
declare module '@ember/-internals/glimmer/lib/helpers/each-in.d.ts' {
|
|
2
|
+
/**
|
|
3
|
+
The `{{#each}}` helper loops over elements in a collection. It is an extension
|
|
4
|
+
of the base Handlebars `{{#each}}` helper.
|
|
5
|
+
|
|
6
|
+
The default behavior of `{{#each}}` is to yield its inner block once for every
|
|
7
|
+
item in an array passing the item as the first block parameter.
|
|
8
|
+
|
|
9
|
+
Assuming the `@developers` argument contains this array:
|
|
10
|
+
|
|
11
|
+
```javascript
|
|
12
|
+
[{ name: 'Yehuda' },{ name: 'Tom' }, { name: 'Paul' }];
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
```handlebars
|
|
16
|
+
<ul>
|
|
17
|
+
{{#each @developers as |person|}}
|
|
18
|
+
<li>Hello, {{person.name}}!</li>
|
|
19
|
+
{{/each}}
|
|
20
|
+
</ul>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
The same rules apply to arrays of primitives.
|
|
24
|
+
|
|
25
|
+
```javascript
|
|
26
|
+
['Yehuda', 'Tom', 'Paul']
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```handlebars
|
|
30
|
+
<ul>
|
|
31
|
+
{{#each @developerNames as |name|}}
|
|
32
|
+
<li>Hello, {{name}}!</li>
|
|
33
|
+
{{/each}}
|
|
34
|
+
</ul>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
During iteration, the index of each item in the array is provided as a second block
|
|
38
|
+
parameter.
|
|
39
|
+
|
|
40
|
+
```handlebars
|
|
41
|
+
<ul>
|
|
42
|
+
{{#each @developers as |person index|}}
|
|
43
|
+
<li>Hello, {{person.name}}! You're number {{index}} in line</li>
|
|
44
|
+
{{/each}}
|
|
45
|
+
</ul>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Specifying Keys
|
|
49
|
+
|
|
50
|
+
In order to improve rendering speed, Ember will try to reuse the DOM elements
|
|
51
|
+
where possible. Specifically, if the same item is present in the array both
|
|
52
|
+
before and after the change, its DOM output will be reused.
|
|
53
|
+
|
|
54
|
+
The `key` option is used to tell Ember how to determine if the items in the
|
|
55
|
+
array being iterated over with `{{#each}}` has changed between renders. By
|
|
56
|
+
default the item's object identity is used.
|
|
57
|
+
|
|
58
|
+
This is usually sufficient, so in most cases, the `key` option is simply not
|
|
59
|
+
needed. However, in some rare cases, the objects' identities may change even
|
|
60
|
+
though they represent the same underlying data.
|
|
61
|
+
|
|
62
|
+
For example:
|
|
63
|
+
|
|
64
|
+
```javascript
|
|
65
|
+
people.map(person => {
|
|
66
|
+
return { ...person, type: 'developer' };
|
|
67
|
+
});
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
In this case, each time the `people` array is `map`-ed over, it will produce
|
|
71
|
+
an new array with completely different objects between renders. In these cases,
|
|
72
|
+
you can help Ember determine how these objects related to each other with the
|
|
73
|
+
`key` option:
|
|
74
|
+
|
|
75
|
+
```handlebars
|
|
76
|
+
<ul>
|
|
77
|
+
{{#each @developers key="name" as |person|}}
|
|
78
|
+
<li>Hello, {{person.name}}!</li>
|
|
79
|
+
{{/each}}
|
|
80
|
+
</ul>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
By doing so, Ember will use the value of the property specified (`person.name`
|
|
84
|
+
in the example) to find a "match" from the previous render. That is, if Ember
|
|
85
|
+
has previously seen an object from the `@developers` array with a matching
|
|
86
|
+
name, its DOM elements will be re-used.
|
|
87
|
+
|
|
88
|
+
There are two special values for `key`:
|
|
89
|
+
|
|
90
|
+
* `@index` - The index of the item in the array.
|
|
91
|
+
* `@identity` - The item in the array itself.
|
|
92
|
+
|
|
93
|
+
### {{else}} condition
|
|
94
|
+
|
|
95
|
+
`{{#each}}` can have a matching `{{else}}`. The contents of this block will render
|
|
96
|
+
if the collection is empty.
|
|
97
|
+
|
|
98
|
+
```handlebars
|
|
99
|
+
<ul>
|
|
100
|
+
{{#each @developers as |person|}}
|
|
101
|
+
<li>{{person.name}} is available!</li>
|
|
102
|
+
{{else}}
|
|
103
|
+
<li>Sorry, nobody is available for this task.</li>
|
|
104
|
+
{{/each}}
|
|
105
|
+
</ul>
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
@method each
|
|
109
|
+
@for Ember.Templates.helpers
|
|
110
|
+
@public
|
|
111
|
+
*/
|
|
112
|
+
/**
|
|
113
|
+
The `{{each-in}}` helper loops over properties on an object.
|
|
114
|
+
|
|
115
|
+
For example, given this component definition:
|
|
116
|
+
|
|
117
|
+
```app/components/developer-details.js
|
|
118
|
+
import Component from '@glimmer/component';
|
|
119
|
+
import { tracked } from '@glimmer/tracking';
|
|
120
|
+
|
|
121
|
+
export default class extends Component {
|
|
122
|
+
@tracked developer = {
|
|
123
|
+
"name": "Shelly Sails",
|
|
124
|
+
"age": 42
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
This template would display all properties on the `developer`
|
|
130
|
+
object in a list:
|
|
131
|
+
|
|
132
|
+
```app/components/developer-details.hbs
|
|
133
|
+
<ul>
|
|
134
|
+
{{#each-in this.developer as |key value|}}
|
|
135
|
+
<li>{{key}}: {{value}}</li>
|
|
136
|
+
{{/each-in}}
|
|
137
|
+
</ul>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Outputting their name and age:
|
|
141
|
+
|
|
142
|
+
```html
|
|
143
|
+
<ul>
|
|
144
|
+
<li>name: Shelly Sails</li>
|
|
145
|
+
<li>age: 42</li>
|
|
146
|
+
</ul>
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
@method each-in
|
|
150
|
+
@for Ember.Templates.helpers
|
|
151
|
+
@public
|
|
152
|
+
@since 2.1.0
|
|
153
|
+
*/
|
|
154
|
+
export class EachInWrapper {
|
|
155
|
+
inner: unknown;
|
|
156
|
+
constructor(inner: unknown);
|
|
157
|
+
}
|
|
158
|
+
const _default: object;
|
|
159
|
+
export default _default;
|
|
160
|
+
}
|