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,791 @@
|
|
|
1
|
+
declare module '@ember/object/lib/computed/reduce_computed_macros.d.ts' {
|
|
2
|
+
import EmberArray from '@ember/array';
|
|
3
|
+
/**
|
|
4
|
+
A computed property that returns the sum of the values in the dependent array.
|
|
5
|
+
|
|
6
|
+
Example:
|
|
7
|
+
|
|
8
|
+
```javascript
|
|
9
|
+
import { sum } from '@ember/object/computed';
|
|
10
|
+
|
|
11
|
+
class Invoice {
|
|
12
|
+
lineItems = [1.00, 2.50, 9.99];
|
|
13
|
+
|
|
14
|
+
@sum('lineItems') total;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
let invoice = new Invoice();
|
|
18
|
+
|
|
19
|
+
invoice.total; // 13.49
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
@method sum
|
|
23
|
+
@for @ember/object/computed
|
|
24
|
+
@static
|
|
25
|
+
@param {String} dependentKey
|
|
26
|
+
@return {ComputedProperty} computes the sum of all values in the
|
|
27
|
+
dependentKey's array
|
|
28
|
+
@since 1.4.0
|
|
29
|
+
@public
|
|
30
|
+
*/
|
|
31
|
+
export function sum(dependentKey: string): PropertyDecorator;
|
|
32
|
+
/**
|
|
33
|
+
A computed property that calculates the maximum value in the dependent array.
|
|
34
|
+
This will return `-Infinity` when the dependent array is empty.
|
|
35
|
+
|
|
36
|
+
Example:
|
|
37
|
+
|
|
38
|
+
```javascript
|
|
39
|
+
import { set } from '@ember/object';
|
|
40
|
+
import { mapBy, max } from '@ember/object/computed';
|
|
41
|
+
|
|
42
|
+
class Person {
|
|
43
|
+
children = [];
|
|
44
|
+
|
|
45
|
+
@mapBy('children', 'age') childAges;
|
|
46
|
+
@max('childAges') maxChildAge;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
let lordByron = new Person();
|
|
50
|
+
|
|
51
|
+
lordByron.maxChildAge; // -Infinity
|
|
52
|
+
|
|
53
|
+
set(lordByron, 'children', [
|
|
54
|
+
{
|
|
55
|
+
name: 'Augusta Ada Byron',
|
|
56
|
+
age: 7
|
|
57
|
+
}
|
|
58
|
+
]);
|
|
59
|
+
lordByron.maxChildAge; // 7
|
|
60
|
+
|
|
61
|
+
set(lordByron, 'children', [
|
|
62
|
+
...lordByron.children,
|
|
63
|
+
{
|
|
64
|
+
name: 'Allegra Byron',
|
|
65
|
+
age: 5
|
|
66
|
+
}, {
|
|
67
|
+
name: 'Elizabeth Medora Leigh',
|
|
68
|
+
age: 8
|
|
69
|
+
}
|
|
70
|
+
]);
|
|
71
|
+
lordByron.maxChildAge; // 8
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
If the types of the arguments are not numbers, they will be converted to
|
|
75
|
+
numbers and the type of the return value will always be `Number`. For example,
|
|
76
|
+
the max of a list of Date objects will be the highest timestamp as a `Number`.
|
|
77
|
+
This behavior is consistent with `Math.max`.
|
|
78
|
+
|
|
79
|
+
@method max
|
|
80
|
+
@for @ember/object/computed
|
|
81
|
+
@static
|
|
82
|
+
@param {String} dependentKey
|
|
83
|
+
@return {ComputedProperty} computes the largest value in the dependentKey's
|
|
84
|
+
array
|
|
85
|
+
@public
|
|
86
|
+
*/
|
|
87
|
+
export function max(dependentKey: string): PropertyDecorator;
|
|
88
|
+
/**
|
|
89
|
+
A computed property that calculates the minimum value in the dependent array.
|
|
90
|
+
This will return `Infinity` when the dependent array is empty.
|
|
91
|
+
|
|
92
|
+
Example:
|
|
93
|
+
|
|
94
|
+
```javascript
|
|
95
|
+
import { set } from '@ember/object';
|
|
96
|
+
import { mapBy, min } from '@ember/object/computed';
|
|
97
|
+
|
|
98
|
+
class Person {
|
|
99
|
+
children = [];
|
|
100
|
+
|
|
101
|
+
@mapBy('children', 'age') childAges;
|
|
102
|
+
@min('childAges') minChildAge;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
let lordByron = Person.create({ children: [] });
|
|
106
|
+
|
|
107
|
+
lordByron.minChildAge; // Infinity
|
|
108
|
+
|
|
109
|
+
set(lordByron, 'children', [
|
|
110
|
+
{
|
|
111
|
+
name: 'Augusta Ada Byron',
|
|
112
|
+
age: 7
|
|
113
|
+
}
|
|
114
|
+
]);
|
|
115
|
+
lordByron.minChildAge; // 7
|
|
116
|
+
|
|
117
|
+
set(lordByron, 'children', [
|
|
118
|
+
...lordByron.children,
|
|
119
|
+
{
|
|
120
|
+
name: 'Allegra Byron',
|
|
121
|
+
age: 5
|
|
122
|
+
}, {
|
|
123
|
+
name: 'Elizabeth Medora Leigh',
|
|
124
|
+
age: 8
|
|
125
|
+
}
|
|
126
|
+
]);
|
|
127
|
+
lordByron.minChildAge; // 5
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
If the types of the arguments are not numbers, they will be converted to
|
|
131
|
+
numbers and the type of the return value will always be `Number`. For example,
|
|
132
|
+
the min of a list of Date objects will be the lowest timestamp as a `Number`.
|
|
133
|
+
This behavior is consistent with `Math.min`.
|
|
134
|
+
|
|
135
|
+
@method min
|
|
136
|
+
@for @ember/object/computed
|
|
137
|
+
@static
|
|
138
|
+
@param {String} dependentKey
|
|
139
|
+
@return {ComputedProperty} computes the smallest value in the dependentKey's array
|
|
140
|
+
@public
|
|
141
|
+
*/
|
|
142
|
+
export function min(dependentKey: string): PropertyDecorator;
|
|
143
|
+
/**
|
|
144
|
+
Returns an array mapped via the callback
|
|
145
|
+
|
|
146
|
+
The callback method you provide should have the following signature:
|
|
147
|
+
- `item` is the current item in the iteration.
|
|
148
|
+
- `index` is the integer index of the current item in the iteration.
|
|
149
|
+
|
|
150
|
+
```javascript
|
|
151
|
+
function mapCallback(item, index);
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Example:
|
|
155
|
+
|
|
156
|
+
```javascript
|
|
157
|
+
import { set } from '@ember/object';
|
|
158
|
+
import { map } from '@ember/object/computed';
|
|
159
|
+
|
|
160
|
+
class Hamster {
|
|
161
|
+
constructor(chores) {
|
|
162
|
+
set(this, 'chores', chores);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
@map('chores', function(chore, index) {
|
|
166
|
+
return `${chore.toUpperCase()}!`;
|
|
167
|
+
})
|
|
168
|
+
excitingChores;
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
let hamster = new Hamster(['clean', 'write more unit tests']);
|
|
172
|
+
|
|
173
|
+
hamster.excitingChores; // ['CLEAN!', 'WRITE MORE UNIT TESTS!']
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
You can optionally pass an array of additional dependent keys as the second
|
|
177
|
+
parameter to the macro, if your map function relies on any external values:
|
|
178
|
+
|
|
179
|
+
```javascript
|
|
180
|
+
import { set } from '@ember/object';
|
|
181
|
+
import { map } from '@ember/object/computed';
|
|
182
|
+
|
|
183
|
+
class Hamster {
|
|
184
|
+
shouldUpperCase = false;
|
|
185
|
+
|
|
186
|
+
constructor(chores) {
|
|
187
|
+
set(this, 'chores', chores);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
@map('chores', ['shouldUpperCase'], function(chore, index) {
|
|
191
|
+
if (this.shouldUpperCase) {
|
|
192
|
+
return `${chore.toUpperCase()}!`;
|
|
193
|
+
} else {
|
|
194
|
+
return `${chore}!`;
|
|
195
|
+
}
|
|
196
|
+
})
|
|
197
|
+
excitingChores;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
let hamster = new Hamster(['clean', 'write more unit tests']);
|
|
201
|
+
|
|
202
|
+
hamster.excitingChores; // ['clean!', 'write more unit tests!']
|
|
203
|
+
|
|
204
|
+
set(hamster, 'shouldUpperCase', true);
|
|
205
|
+
hamster.excitingChores; // ['CLEAN!', 'WRITE MORE UNIT TESTS!']
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
@method map
|
|
209
|
+
@for @ember/object/computed
|
|
210
|
+
@static
|
|
211
|
+
@param {String} dependentKey
|
|
212
|
+
@param {Array} [additionalDependentKeys] optional array of additional
|
|
213
|
+
dependent keys
|
|
214
|
+
@param {Function} callback
|
|
215
|
+
@return {ComputedProperty} an array mapped via the callback
|
|
216
|
+
@public
|
|
217
|
+
*/
|
|
218
|
+
export function map(dependentKey: string, callback: (value: unknown, index: number) => unknown): PropertyDecorator;
|
|
219
|
+
export function map(dependentKey: string, additionalDependentKeys: string[], callback: (value: unknown, index: number) => unknown): PropertyDecorator;
|
|
220
|
+
/**
|
|
221
|
+
Returns an array mapped to the specified key.
|
|
222
|
+
|
|
223
|
+
Example:
|
|
224
|
+
|
|
225
|
+
```javascript
|
|
226
|
+
import { set } from '@ember/object';
|
|
227
|
+
import { mapBy } from '@ember/object/computed';
|
|
228
|
+
|
|
229
|
+
class Person {
|
|
230
|
+
children = [];
|
|
231
|
+
|
|
232
|
+
@mapBy('children', 'age') childAges;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
let lordByron = new Person();
|
|
236
|
+
|
|
237
|
+
lordByron.childAges; // []
|
|
238
|
+
|
|
239
|
+
set(lordByron, 'children', [
|
|
240
|
+
{
|
|
241
|
+
name: 'Augusta Ada Byron',
|
|
242
|
+
age: 7
|
|
243
|
+
}
|
|
244
|
+
]);
|
|
245
|
+
lordByron.childAges; // [7]
|
|
246
|
+
|
|
247
|
+
set(lordByron, 'children', [
|
|
248
|
+
...lordByron.children,
|
|
249
|
+
{
|
|
250
|
+
name: 'Allegra Byron',
|
|
251
|
+
age: 5
|
|
252
|
+
}, {
|
|
253
|
+
name: 'Elizabeth Medora Leigh',
|
|
254
|
+
age: 8
|
|
255
|
+
}
|
|
256
|
+
]);
|
|
257
|
+
lordByron.childAges; // [7, 5, 8]
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
@method mapBy
|
|
261
|
+
@for @ember/object/computed
|
|
262
|
+
@static
|
|
263
|
+
@param {String} dependentKey
|
|
264
|
+
@param {String} propertyKey
|
|
265
|
+
@return {ComputedProperty} an array mapped to the specified key
|
|
266
|
+
@public
|
|
267
|
+
*/
|
|
268
|
+
export function mapBy(dependentKey: string, propertyKey: string): PropertyDecorator;
|
|
269
|
+
/**
|
|
270
|
+
Filters the array by the callback, like the `Array.prototype.filter` method.
|
|
271
|
+
|
|
272
|
+
The callback method you provide should have the following signature:
|
|
273
|
+
- `item` is the current item in the iteration.
|
|
274
|
+
- `index` is the integer index of the current item in the iteration.
|
|
275
|
+
- `array` is the dependant array itself.
|
|
276
|
+
|
|
277
|
+
```javascript
|
|
278
|
+
function filterCallback(item, index, array);
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
In the callback, return a truthy value that coerces to true to keep the
|
|
282
|
+
element, or a falsy to reject it.
|
|
283
|
+
|
|
284
|
+
Example:
|
|
285
|
+
|
|
286
|
+
```javascript
|
|
287
|
+
import { set } from '@ember/object';
|
|
288
|
+
import { filter } from '@ember/object/computed';
|
|
289
|
+
|
|
290
|
+
class Hamster {
|
|
291
|
+
constructor(chores) {
|
|
292
|
+
set(this, 'chores', chores);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
@filter('chores', function(chore, index, array) {
|
|
296
|
+
return !chore.done;
|
|
297
|
+
})
|
|
298
|
+
remainingChores;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
let hamster = Hamster.create([
|
|
302
|
+
{ name: 'cook', done: true },
|
|
303
|
+
{ name: 'clean', done: true },
|
|
304
|
+
{ name: 'write more unit tests', done: false }
|
|
305
|
+
]);
|
|
306
|
+
|
|
307
|
+
hamster.remainingChores; // [{name: 'write more unit tests', done: false}]
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
You can also use `@each.property` in your dependent key, the callback will
|
|
311
|
+
still use the underlying array:
|
|
312
|
+
|
|
313
|
+
```javascript
|
|
314
|
+
import { set } from '@ember/object';
|
|
315
|
+
import { filter } from '@ember/object/computed';
|
|
316
|
+
|
|
317
|
+
class Hamster {
|
|
318
|
+
constructor(chores) {
|
|
319
|
+
set(this, 'chores', chores);
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
@filter('chores.@each.done', function(chore, index, array) {
|
|
323
|
+
return !chore.done;
|
|
324
|
+
})
|
|
325
|
+
remainingChores;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
let hamster = new Hamster([
|
|
329
|
+
{ name: 'cook', done: true },
|
|
330
|
+
{ name: 'clean', done: true },
|
|
331
|
+
{ name: 'write more unit tests', done: false }
|
|
332
|
+
]);
|
|
333
|
+
hamster.remainingChores; // [{name: 'write more unit tests', done: false}]
|
|
334
|
+
|
|
335
|
+
set(hamster.chores[2], 'done', true);
|
|
336
|
+
hamster.remainingChores; // []
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
Finally, you can optionally pass an array of additional dependent keys as the
|
|
340
|
+
second parameter to the macro, if your filter function relies on any external
|
|
341
|
+
values:
|
|
342
|
+
|
|
343
|
+
```javascript
|
|
344
|
+
import { filter } from '@ember/object/computed';
|
|
345
|
+
|
|
346
|
+
class Hamster {
|
|
347
|
+
constructor(chores) {
|
|
348
|
+
set(this, 'chores', chores);
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
doneKey = 'finished';
|
|
352
|
+
|
|
353
|
+
@filter('chores', ['doneKey'], function(chore, index, array) {
|
|
354
|
+
return !chore[this.doneKey];
|
|
355
|
+
})
|
|
356
|
+
remainingChores;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
let hamster = new Hamster([
|
|
360
|
+
{ name: 'cook', finished: true },
|
|
361
|
+
{ name: 'clean', finished: true },
|
|
362
|
+
{ name: 'write more unit tests', finished: false }
|
|
363
|
+
]);
|
|
364
|
+
|
|
365
|
+
hamster.remainingChores; // [{name: 'write more unit tests', finished: false}]
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
@method filter
|
|
369
|
+
@for @ember/object/computed
|
|
370
|
+
@static
|
|
371
|
+
@param {String} dependentKey
|
|
372
|
+
@param {Array} [additionalDependentKeys] optional array of additional dependent keys
|
|
373
|
+
@param {Function} callback
|
|
374
|
+
@return {ComputedProperty} the filtered array
|
|
375
|
+
@public
|
|
376
|
+
*/
|
|
377
|
+
export function filter(dependentKey: string, callback: (value: unknown, index: number, array: unknown[] | EmberArray<unknown>) => unknown): PropertyDecorator;
|
|
378
|
+
export function filter(dependentKey: string, additionalDependentKeys: string[], callback: (value: unknown, index: number, array: unknown[] | EmberArray<unknown>) => unknown): PropertyDecorator;
|
|
379
|
+
/**
|
|
380
|
+
Filters the array by the property and value.
|
|
381
|
+
|
|
382
|
+
Example:
|
|
383
|
+
|
|
384
|
+
```javascript
|
|
385
|
+
import { set } from '@ember/object';
|
|
386
|
+
import { filterBy } from '@ember/object/computed';
|
|
387
|
+
|
|
388
|
+
class Hamster {
|
|
389
|
+
constructor(chores) {
|
|
390
|
+
set(this, 'chores', chores);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
@filterBy('chores', 'done', false) remainingChores;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
let hamster = new Hamster([
|
|
397
|
+
{ name: 'cook', done: true },
|
|
398
|
+
{ name: 'clean', done: true },
|
|
399
|
+
{ name: 'write more unit tests', done: false }
|
|
400
|
+
]);
|
|
401
|
+
|
|
402
|
+
hamster.remainingChores; // [{ name: 'write more unit tests', done: false }]
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
@method filterBy
|
|
406
|
+
@for @ember/object/computed
|
|
407
|
+
@static
|
|
408
|
+
@param {String} dependentKey
|
|
409
|
+
@param {String} propertyKey
|
|
410
|
+
@param {*} value
|
|
411
|
+
@return {ComputedProperty} the filtered array
|
|
412
|
+
@public
|
|
413
|
+
*/
|
|
414
|
+
export function filterBy(dependentKey: string, propertyKey: string, value?: unknown): PropertyDecorator;
|
|
415
|
+
/**
|
|
416
|
+
A computed property which returns a new array with all the unique elements
|
|
417
|
+
from one or more dependent arrays.
|
|
418
|
+
|
|
419
|
+
Example:
|
|
420
|
+
|
|
421
|
+
```javascript
|
|
422
|
+
import { set } from '@ember/object';
|
|
423
|
+
import { uniq } from '@ember/object/computed';
|
|
424
|
+
|
|
425
|
+
class Hamster {
|
|
426
|
+
constructor(fruits) {
|
|
427
|
+
set(this, 'fruits', fruits);
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
@uniq('fruits') uniqueFruits;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
let hamster = new Hamster([
|
|
434
|
+
'banana',
|
|
435
|
+
'grape',
|
|
436
|
+
'kale',
|
|
437
|
+
'banana'
|
|
438
|
+
]);
|
|
439
|
+
|
|
440
|
+
hamster.uniqueFruits; // ['banana', 'grape', 'kale']
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
@method uniq
|
|
444
|
+
@for @ember/object/computed
|
|
445
|
+
@static
|
|
446
|
+
@param {String} propertyKey*
|
|
447
|
+
@return {ComputedProperty} computes a new array with all the
|
|
448
|
+
unique elements from the dependent array
|
|
449
|
+
@public
|
|
450
|
+
*/
|
|
451
|
+
export function uniq(dependentKey: string, ...additionalDependentKeys: string[]): PropertyDecorator;
|
|
452
|
+
/**
|
|
453
|
+
A computed property which returns a new array with all the unique elements
|
|
454
|
+
from an array, with uniqueness determined by specific key.
|
|
455
|
+
|
|
456
|
+
Example:
|
|
457
|
+
|
|
458
|
+
```javascript
|
|
459
|
+
import { set } from '@ember/object';
|
|
460
|
+
import { uniqBy } from '@ember/object/computed';
|
|
461
|
+
|
|
462
|
+
class Hamster {
|
|
463
|
+
constructor(fruits) {
|
|
464
|
+
set(this, 'fruits', fruits);
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
@uniqBy('fruits', 'id') uniqueFruits;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
let hamster = new Hamster([
|
|
471
|
+
{ id: 1, 'banana' },
|
|
472
|
+
{ id: 2, 'grape' },
|
|
473
|
+
{ id: 3, 'peach' },
|
|
474
|
+
{ id: 1, 'banana' }
|
|
475
|
+
]);
|
|
476
|
+
|
|
477
|
+
hamster.uniqueFruits; // [ { id: 1, 'banana' }, { id: 2, 'grape' }, { id: 3, 'peach' }]
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
@method uniqBy
|
|
481
|
+
@for @ember/object/computed
|
|
482
|
+
@static
|
|
483
|
+
@param {String} dependentKey
|
|
484
|
+
@param {String} propertyKey
|
|
485
|
+
@return {ComputedProperty} computes a new array with all the
|
|
486
|
+
unique elements from the dependent array
|
|
487
|
+
@public
|
|
488
|
+
*/
|
|
489
|
+
export function uniqBy(dependentKey: string, propertyKey: string): PropertyDecorator;
|
|
490
|
+
/**
|
|
491
|
+
A computed property which returns a new array with all the unique elements
|
|
492
|
+
from one or more dependent arrays.
|
|
493
|
+
|
|
494
|
+
Example:
|
|
495
|
+
|
|
496
|
+
```javascript
|
|
497
|
+
import { set } from '@ember/object';
|
|
498
|
+
import { union } from '@ember/object/computed';
|
|
499
|
+
|
|
500
|
+
class Hamster {
|
|
501
|
+
constructor(fruits, vegetables) {
|
|
502
|
+
set(this, 'fruits', fruits);
|
|
503
|
+
set(this, 'vegetables', vegetables);
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
@union('fruits', 'vegetables') uniqueFruits;
|
|
507
|
+
});
|
|
508
|
+
|
|
509
|
+
let hamster = new, Hamster(
|
|
510
|
+
[
|
|
511
|
+
'banana',
|
|
512
|
+
'grape',
|
|
513
|
+
'kale',
|
|
514
|
+
'banana',
|
|
515
|
+
'tomato'
|
|
516
|
+
],
|
|
517
|
+
[
|
|
518
|
+
'tomato',
|
|
519
|
+
'carrot',
|
|
520
|
+
'lettuce'
|
|
521
|
+
]
|
|
522
|
+
);
|
|
523
|
+
|
|
524
|
+
hamster.uniqueFruits; // ['banana', 'grape', 'kale', 'tomato', 'carrot', 'lettuce']
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
@method union
|
|
528
|
+
@for @ember/object/computed
|
|
529
|
+
@static
|
|
530
|
+
@param {String} propertyKey*
|
|
531
|
+
@return {ComputedProperty} computes a new array with all the unique elements
|
|
532
|
+
from one or more dependent arrays.
|
|
533
|
+
@public
|
|
534
|
+
*/
|
|
535
|
+
export let union: typeof uniq;
|
|
536
|
+
/**
|
|
537
|
+
A computed property which returns a new array with all the elements
|
|
538
|
+
two or more dependent arrays have in common.
|
|
539
|
+
|
|
540
|
+
Example:
|
|
541
|
+
|
|
542
|
+
```javascript
|
|
543
|
+
import { set } from '@ember/object';
|
|
544
|
+
import { intersect } from '@ember/object/computed';
|
|
545
|
+
|
|
546
|
+
class FriendGroups {
|
|
547
|
+
constructor(adaFriends, charlesFriends) {
|
|
548
|
+
set(this, 'adaFriends', adaFriends);
|
|
549
|
+
set(this, 'charlesFriends', charlesFriends);
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
@intersect('adaFriends', 'charlesFriends') friendsInCommon;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
let groups = new FriendGroups(
|
|
556
|
+
['Charles Babbage', 'John Hobhouse', 'William King', 'Mary Somerville'],
|
|
557
|
+
['William King', 'Mary Somerville', 'Ada Lovelace', 'George Peacock']
|
|
558
|
+
);
|
|
559
|
+
|
|
560
|
+
groups.friendsInCommon; // ['William King', 'Mary Somerville']
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
@method intersect
|
|
564
|
+
@for @ember/object/computed
|
|
565
|
+
@static
|
|
566
|
+
@param {String} propertyKey*
|
|
567
|
+
@return {ComputedProperty} computes a new array with all the duplicated
|
|
568
|
+
elements from the dependent arrays
|
|
569
|
+
@public
|
|
570
|
+
*/
|
|
571
|
+
export function intersect(dependentKey: string, ...additionalDependentKeys: string[]): PropertyDecorator;
|
|
572
|
+
/**
|
|
573
|
+
A computed property which returns a new array with all the properties from the
|
|
574
|
+
first dependent array that are not in the second dependent array.
|
|
575
|
+
|
|
576
|
+
Example:
|
|
577
|
+
|
|
578
|
+
```javascript
|
|
579
|
+
import { set } from '@ember/object';
|
|
580
|
+
import { setDiff } from '@ember/object/computed';
|
|
581
|
+
|
|
582
|
+
class Hamster {
|
|
583
|
+
constructor(likes, fruits) {
|
|
584
|
+
set(this, 'likes', likes);
|
|
585
|
+
set(this, 'fruits', fruits);
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
@setDiff('likes', 'fruits') wants;
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
let hamster = new Hamster(
|
|
592
|
+
[
|
|
593
|
+
'banana',
|
|
594
|
+
'grape',
|
|
595
|
+
'kale'
|
|
596
|
+
],
|
|
597
|
+
[
|
|
598
|
+
'grape',
|
|
599
|
+
'kale',
|
|
600
|
+
]
|
|
601
|
+
);
|
|
602
|
+
|
|
603
|
+
hamster.wants; // ['banana']
|
|
604
|
+
```
|
|
605
|
+
|
|
606
|
+
@method setDiff
|
|
607
|
+
@for @ember/object/computed
|
|
608
|
+
@static
|
|
609
|
+
@param {String} setAProperty
|
|
610
|
+
@param {String} setBProperty
|
|
611
|
+
@return {ComputedProperty} computes a new array with all the items from the
|
|
612
|
+
first dependent array that are not in the second dependent array
|
|
613
|
+
@public
|
|
614
|
+
*/
|
|
615
|
+
export function setDiff(setAProperty: string, setBProperty: string): PropertyDecorator;
|
|
616
|
+
/**
|
|
617
|
+
A computed property that returns the array of values for the provided
|
|
618
|
+
dependent properties.
|
|
619
|
+
|
|
620
|
+
Example:
|
|
621
|
+
|
|
622
|
+
```javascript
|
|
623
|
+
import { set } from '@ember/object';
|
|
624
|
+
import { collect } from '@ember/object/computed';
|
|
625
|
+
|
|
626
|
+
class Hamster {
|
|
627
|
+
@collect('hat', 'shirt') clothes;
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
let hamster = new Hamster();
|
|
631
|
+
|
|
632
|
+
hamster.clothes; // [null, null]
|
|
633
|
+
|
|
634
|
+
set(hamster, 'hat', 'Camp Hat');
|
|
635
|
+
set(hamster, 'shirt', 'Camp Shirt');
|
|
636
|
+
hamster.clothes; // ['Camp Hat', 'Camp Shirt']
|
|
637
|
+
```
|
|
638
|
+
|
|
639
|
+
@method collect
|
|
640
|
+
@for @ember/object/computed
|
|
641
|
+
@static
|
|
642
|
+
@param {String} dependentKey*
|
|
643
|
+
@return {ComputedProperty} computed property which maps values of all passed
|
|
644
|
+
in properties to an array.
|
|
645
|
+
@public
|
|
646
|
+
*/
|
|
647
|
+
export function collect(dependentKey: string, ...additionalDependentKeys: string[]): PropertyDecorator;
|
|
648
|
+
type SortDefinition = (itemA: unknown, itemB: unknown) => number;
|
|
649
|
+
/**
|
|
650
|
+
A computed property which returns a new array with all the properties from the
|
|
651
|
+
first dependent array sorted based on a property or sort function. The sort
|
|
652
|
+
macro can be used in two different ways:
|
|
653
|
+
|
|
654
|
+
1. By providing a sort callback function
|
|
655
|
+
2. By providing an array of keys to sort the array
|
|
656
|
+
|
|
657
|
+
In the first form, the callback method you provide should have the following
|
|
658
|
+
signature:
|
|
659
|
+
|
|
660
|
+
```javascript
|
|
661
|
+
function sortCallback(itemA, itemB);
|
|
662
|
+
```
|
|
663
|
+
|
|
664
|
+
- `itemA` the first item to compare.
|
|
665
|
+
- `itemB` the second item to compare.
|
|
666
|
+
|
|
667
|
+
This function should return negative number (e.g. `-1`) when `itemA` should
|
|
668
|
+
come before `itemB`. It should return positive number (e.g. `1`) when `itemA`
|
|
669
|
+
should come after `itemB`. If the `itemA` and `itemB` are equal this function
|
|
670
|
+
should return `0`.
|
|
671
|
+
|
|
672
|
+
Therefore, if this function is comparing some numeric values, simple `itemA -
|
|
673
|
+
itemB` or `itemA.get( 'foo' ) - itemB.get( 'foo' )` can be used instead of
|
|
674
|
+
series of `if`.
|
|
675
|
+
|
|
676
|
+
Example:
|
|
677
|
+
|
|
678
|
+
```javascript
|
|
679
|
+
import { set } from '@ember/object';
|
|
680
|
+
import { sort } from '@ember/object/computed';
|
|
681
|
+
|
|
682
|
+
class ToDoList {
|
|
683
|
+
constructor(todos) {
|
|
684
|
+
set(this, 'todos', todos);
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
// using a custom sort function
|
|
688
|
+
@sort('todos', function(a, b){
|
|
689
|
+
if (a.priority > b.priority) {
|
|
690
|
+
return 1;
|
|
691
|
+
} else if (a.priority < b.priority) {
|
|
692
|
+
return -1;
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
return 0;
|
|
696
|
+
})
|
|
697
|
+
priorityTodos;
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
let todoList = new ToDoList([
|
|
701
|
+
{ name: 'Unit Test', priority: 2 },
|
|
702
|
+
{ name: 'Documentation', priority: 3 },
|
|
703
|
+
{ name: 'Release', priority: 1 }
|
|
704
|
+
]);
|
|
705
|
+
|
|
706
|
+
todoList.priorityTodos; // [{ name:'Release', priority:1 }, { name:'Unit Test', priority:2 }, { name:'Documentation', priority:3 }]
|
|
707
|
+
```
|
|
708
|
+
|
|
709
|
+
You can also optionally pass an array of additional dependent keys as the
|
|
710
|
+
second parameter, if your sort function is dependent on additional values that
|
|
711
|
+
could changes:
|
|
712
|
+
|
|
713
|
+
```js
|
|
714
|
+
import EmberObject, { set } from '@ember/object';
|
|
715
|
+
import { sort } from '@ember/object/computed';
|
|
716
|
+
|
|
717
|
+
class ToDoList {
|
|
718
|
+
sortKey = 'priority';
|
|
719
|
+
|
|
720
|
+
constructor(todos) {
|
|
721
|
+
set(this, 'todos', todos);
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
// using a custom sort function
|
|
725
|
+
@sort('todos', ['sortKey'], function(a, b){
|
|
726
|
+
if (a[this.sortKey] > b[this.sortKey]) {
|
|
727
|
+
return 1;
|
|
728
|
+
} else if (a[this.sortKey] < b[this.sortKey]) {
|
|
729
|
+
return -1;
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
return 0;
|
|
733
|
+
})
|
|
734
|
+
sortedTodos;
|
|
735
|
+
});
|
|
736
|
+
|
|
737
|
+
let todoList = new ToDoList([
|
|
738
|
+
{ name: 'Unit Test', priority: 2 },
|
|
739
|
+
{ name: 'Documentation', priority: 3 },
|
|
740
|
+
{ name: 'Release', priority: 1 }
|
|
741
|
+
]);
|
|
742
|
+
|
|
743
|
+
todoList.priorityTodos; // [{ name:'Release', priority:1 }, { name:'Unit Test', priority:2 }, { name:'Documentation', priority:3 }]
|
|
744
|
+
```
|
|
745
|
+
|
|
746
|
+
In the second form, you should provide the key of the array of sort values as
|
|
747
|
+
the second parameter:
|
|
748
|
+
|
|
749
|
+
```javascript
|
|
750
|
+
import { set } from '@ember/object';
|
|
751
|
+
import { sort } from '@ember/object/computed';
|
|
752
|
+
|
|
753
|
+
class ToDoList {
|
|
754
|
+
constructor(todos) {
|
|
755
|
+
set(this, 'todos', todos);
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
// using standard ascending sort
|
|
759
|
+
todosSorting = ['name'];
|
|
760
|
+
@sort('todos', 'todosSorting') sortedTodos;
|
|
761
|
+
|
|
762
|
+
// using descending sort
|
|
763
|
+
todosSortingDesc = ['name:desc'];
|
|
764
|
+
@sort('todos', 'todosSortingDesc') sortedTodosDesc;
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
let todoList = new ToDoList([
|
|
768
|
+
{ name: 'Unit Test', priority: 2 },
|
|
769
|
+
{ name: 'Documentation', priority: 3 },
|
|
770
|
+
{ name: 'Release', priority: 1 }
|
|
771
|
+
]);
|
|
772
|
+
|
|
773
|
+
todoList.sortedTodos; // [{ name:'Documentation', priority:3 }, { name:'Release', priority:1 }, { name:'Unit Test', priority:2 }]
|
|
774
|
+
todoList.sortedTodosDesc; // [{ name:'Unit Test', priority:2 }, { name:'Release', priority:1 }, { name:'Documentation', priority:3 }]
|
|
775
|
+
```
|
|
776
|
+
|
|
777
|
+
@method sort
|
|
778
|
+
@for @ember/object/computed
|
|
779
|
+
@static
|
|
780
|
+
@param {String} itemsKey
|
|
781
|
+
@param {String|Function|Array} sortDefinitionOrDependentKeys The key of the sort definition (an array of sort properties),
|
|
782
|
+
the sort function, or an array of additional dependent keys
|
|
783
|
+
@param {Function?} sortDefinition the sort function (when used with additional dependent keys)
|
|
784
|
+
@return {ComputedProperty} computes a new sorted array based on the sort
|
|
785
|
+
property array or callback function
|
|
786
|
+
@public
|
|
787
|
+
*/
|
|
788
|
+
export function sort(itemsKey: string, sortDefinition: SortDefinition | string): PropertyDecorator;
|
|
789
|
+
export function sort(itemsKey: string, additionalDependentKeys: string[], sortDefinition: SortDefinition): PropertyDecorator;
|
|
790
|
+
export {};
|
|
791
|
+
}
|