diff --git a/THIRD_PARTY.txt b/THIRD_PARTY.txt index 32ed2c2c..92c639a4 100644 --- a/THIRD_PARTY.txt +++ b/THIRD_PARTY.txt @@ -299,7 +299,7 @@ https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.1/theme-chalk/fonts/eleme https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.1/theme-chalk/index.min.css https://cdnjs.cloudflare.com/ajax/libs/ember.js/1.13.13/ember.debug.js https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.18.2/ember.debug.js -https://cdnjs.cloudflare.com/ajax/libs/ember.js/3.25.3/ember.debug.js +https://cdnjs.cloudflare.com/ajax/libs/ember.js/3.26.0/ember.debug.js https://cdnjs.cloudflare.com/ajax/libs/ext-core/3.1.0/ext-core.js https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/helpers/jquery.fancybox-media.js https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.css diff --git a/modules/internal/targets.js b/modules/internal/targets.js index 44df98bd..3a38e791 100644 --- a/modules/internal/targets.js +++ b/modules/internal/targets.js @@ -233,7 +233,7 @@ targets.setLastVersion = function (type, version) { } else if (type.startsWith('/ember.js/2.')) { return '2.18.2'; } else if (type.startsWith('/ember.js/3.')) { - return '3.25.3'; + return '3.26.0'; } else if (type.startsWith('/ethjs')) { return '0.3.4'; } else if (type.startsWith('/ext-core/3.')) { diff --git a/pages/updates/updates.html b/pages/updates/updates.html index c25c6708..0d7fd542 100644 --- a/pages/updates/updates.html +++ b/pages/updates/updates.html @@ -39,6 +39,7 @@
  • Updated: Google Material Icons v81 -> v82 (#321)
  • Updated: react-redux v7.2.2 -> v7.2.3 (#322)
  • Updated: react v17.0.1 -> v17.0.2 (#323)
  • +
  • Updated: ember.js v3.25.3 -> v3.26.0 (#324)
  • diff --git a/resources/ember.js/3.25.3/ember.min.jsm b/resources/ember.js/3.26.0/ember.min.jsm similarity index 97% rename from resources/ember.js/3.25.3/ember.min.jsm rename to resources/ember.js/3.26.0/ember.min.jsm index b2893ce8..deacd9fe 100644 --- a/resources/ember.js/3.25.3/ember.min.jsm +++ b/resources/ember.js/3.26.0/ember.min.jsm @@ -1,12 +1,12 @@ (function() { /*! * @overview Ember - JavaScript Application Framework - * @copyright Copyright 2011-2020 Tilde Inc. and contributors + * @copyright Copyright 2011-2021 Tilde Inc. and contributors * Portions Copyright 2006-2011 Strobe Inc. * Portions Copyright 2008-2011 Apple Inc. All rights reserved. * @license Licensed under MIT license * See https://raw.github.com/emberjs/ember.js/master/LICENSE - * @version 3.25.3 + * @version 3.26.0 */ /*globals process */ var define, require, Ember; // Used in @ember/-internals/environment/lib/global.js @@ -121,7 +121,7 @@ define("@ember/-internals/browser-environment/index", ["exports"], function (_ex Object.defineProperty(_exports, "__esModule", { value: true }); - _exports.hasDOM = _exports.isFirefox = _exports.isChrome = _exports.userAgent = _exports.history = _exports.location = _exports.window = void 0; + _exports.hasDOM = _exports.isIE = _exports.isFirefox = _exports.isChrome = _exports.userAgent = _exports.history = _exports.location = _exports.window = void 0; // check if window exists and actually is the global var hasDom = typeof self === 'object' && self !== null && self.Object === Object && typeof Window !== 'undefined' && self.constructor === Window && typeof document === 'object' && document !== null && self.document === document && typeof location === 'object' && location !== null && self.location === location && typeof history === 'object' && history !== null && self.history === history && typeof navigator === 'object' && navigator !== null && self.navigator === navigator && typeof navigator.userAgent === 'string'; _exports.hasDOM = hasDom; @@ -137,6 +137,8 @@ define("@ember/-internals/browser-environment/index", ["exports"], function (_ex _exports.isChrome = isChrome; var isFirefox = hasDom ? typeof InstallTrigger !== 'undefined' : false; _exports.isFirefox = isFirefox; + var isIE = hasDom ? typeof MSInputMethodContext !== 'undefined' && typeof documentMode !== 'undefined' : false; + _exports.isIE = isIE; }); define("@ember/-internals/console/index", ["exports", "@ember/debug", "@ember/deprecated-features"], function (_exports, _debug, _deprecatedFeatures) { "use strict"; @@ -1676,6 +1678,21 @@ define("@ember/-internals/environment/index", ["exports", "@ember/deprecated-fea @private */ _RERENDER_LOOP_LIMIT: 1000, + + /** + Allows disabling the implicit this property fallback deprecation. This could be useful + as a way to control the volume of deprecations that are issued by temporarily disabling + the implicit this fallback deprecations, which would allow the other deprecations to be more easily + identified in the console). + NOTE: The fallback behavior **will be removed** in Ember 4.0.0, disabling **_IS NOT_** + a viable strategy for handling this deprecation. + @property _DISABLE_PROPERTY_FALLBACK_DEPRECATION + @for EmberENV + @type boolean + @default false + @private + */ + _DISABLE_PROPERTY_FALLBACK_DEPRECATION: false, EMBER_LOAD_HOOKS: {}, FEATURES: {} }; @@ -1924,7 +1941,7 @@ define("@ember/-internals/extension-support/lib/container_debug_adapter", ["expo _exports.default = _default; }); -define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@ember/-internals/owner", "@ember/runloop", "@ember/-internals/metal", "@ember/string", "@ember/-internals/runtime"], function (_exports, _owner, _runloop, _metal, _string, _runtime) { +define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@ember/-internals/owner", "@ember/runloop", "@ember/-internals/metal", "@ember/string", "@ember/-internals/utils", "@ember/-internals/runtime", "@glimmer/validator"], function (_exports, _owner, _runloop, _metal, _string, _utils, _runtime, _validator) { "use strict"; Object.defineProperty(_exports, "__esModule", { @@ -1932,6 +1949,109 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb }); _exports.default = void 0; + function iterate(arr, fn) { + if (_utils.HAS_NATIVE_SYMBOL && Symbol.iterator in arr) { + for (var item of arr) { + fn(item); + } + } else { + arr.forEach(fn); + } + } + + class RecordsWatcher { + getCacheForItem(record) { + var recordCache = this.recordCaches.get(record); + + if (!recordCache) { + var hasBeenAdded = false; + recordCache = (0, _validator.createCache)(() => { + if (!hasBeenAdded) { + this.added.push(this.wrapRecord(record)); + hasBeenAdded = true; + } else { + this.updated.push(this.wrapRecord(record)); + } + }); + this.recordCaches.set(record, recordCache); + } + + return recordCache; + } + + constructor(records, recordsAdded, recordsUpdated, recordsRemoved, wrapRecord, release) { + this.recordCaches = new Map(); + this.added = []; + this.updated = []; + this.removed = []; + this.release = release; + this.wrapRecord = wrapRecord; + this.recordArrayCache = (0, _validator.createCache)(() => { + var seen = new Set(); // Track `[]` for legacy support + + (0, _validator.consumeTag)((0, _validator.tagFor)(records, '[]')); + iterate(records, record => { + (0, _validator.getValue)(this.getCacheForItem(record)); + seen.add(record); + }); // Untrack this operation because these records are being removed, they + // should not be polled again in the future + + (0, _validator.untrack)(() => { + this.recordCaches.forEach((cache, record) => { + if (!seen.has(record)) { + this.removed.push(wrapRecord(record)); + this.recordCaches.delete(record); + } + }); + }); + + if (this.added.length > 0) { + recordsAdded(this.added); + this.added = []; + } + + if (this.updated.length > 0) { + recordsUpdated(this.updated); + this.updated = []; + } + + if (this.removed.length > 0) { + recordsRemoved(this.removed); + this.removed = []; + } + }); + } + + revalidate() { + (0, _validator.getValue)(this.recordArrayCache); + } + + } + + class TypeWatcher { + constructor(records, onChange, release) { + var hasBeenAccessed = false; + this.cache = (0, _validator.createCache)(() => { + // Empty iteration, we're doing this just + // to track changes to the records array + iterate(records, () => {}); // Also track `[]` for legacy support + + (0, _validator.consumeTag)((0, _validator.tagFor)(records, '[]')); + + if (hasBeenAccessed === true) { + onChange(); + } else { + hasBeenAccessed = true; + } + }); + this.release = release; + } + + revalidate() { + (0, _validator.getValue)(this.cache); + } + + } /** @module @ember/debug */ @@ -1956,7 +2076,6 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb * `getRecordKeywords` * `getRecordFilterValues` * `getRecordColor` - * `observeRecord` The adapter will need to be registered in the application's container as `dataAdapter:main`. @@ -1977,11 +2096,17 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb @extends EmberObject @public */ + + var _default = _runtime.Object.extend({ init() { this._super(...arguments); + this.containerDebugAdapter = (0, _owner.getOwner)(this).lookup('container-debug-adapter:main'); this.releaseMethods = (0, _runtime.A)(); + this.recordsWatchers = new Map(); + this.typeWatchers = new Map(); + this.flushWatchers = null; }, /** @@ -1992,7 +2117,6 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb @since 1.5.0 @public **/ - containerDebugAdapter: undefined, /** The number of attributes to send @@ -2017,6 +2141,28 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb */ acceptsModelName: true, + /** + Map from records arrays to RecordsWatcher instances + @private + @property recordsWatchers + @since 3.26.0 + */ + + /** + Map from records arrays to TypeWatcher instances + @private + @property typeWatchers + @since 3.26.0 + */ + + /** + Callback that is currently scheduled on backburner end to flush and check + all active watchers. + @private + @property flushWatchers + @since 3.26.0 + */ + /** Stores all methods that clear observers. These methods will be called on destruction. @@ -2024,7 +2170,6 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb @property releaseMethods @since 1.3.0 */ - releaseMethods: (0, _runtime.A)(), /** Specifies how records can be filtered. @@ -2093,60 +2238,46 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb @param {Function} recordsUpdated Callback to call when a record has changed. Takes an array of objects containing wrapped records. @param {Function} recordsRemoved Callback to call when a record has removed. - Takes the following parameters: - index: The array index where the records were removed. - count: The number of records removed. + Takes an array of objects containing wrapped records. @return {Function} Method to call to remove all observers. */ watchRecords(modelName, recordsAdded, recordsUpdated, recordsRemoved) { - var releaseMethods = (0, _runtime.A)(); - var klass = this._nameToClass(modelName); var records = this.getRecords(klass, modelName); - var release; + var { + recordsWatchers + } = this; + var recordsWatcher = recordsWatchers.get(records); - function recordUpdated(updatedRecord) { - recordsUpdated([updatedRecord]); + if (!recordsWatcher) { + recordsWatcher = new RecordsWatcher(records, recordsAdded, recordsUpdated, recordsRemoved, record => this.wrapRecord(record), () => { + recordsWatchers.delete(records); + this.updateFlushWatchers(); + }); + recordsWatchers.set(records, recordsWatcher); + this.updateFlushWatchers(); + recordsWatcher.revalidate(); } - var recordsToSend = records.map(record => { - releaseMethods.push(this.observeRecord(record, recordUpdated)); - return this.wrapRecord(record); - }); + return recordsWatcher.release; + }, - var contentDidChange = (array, idx, removedCount, addedCount) => { - for (var i = idx; i < idx + addedCount; i++) { - var record = (0, _metal.objectAt)(array, i); - var wrapped = this.wrapRecord(record); - releaseMethods.push(this.observeRecord(record, recordUpdated)); - recordsAdded([wrapped]); + updateFlushWatchers() { + if (this.flushWatchers === null) { + if (this.typeWatchers.size > 0 || this.recordsWatchers.size > 0) { + this.flushWatchers = () => { + this.typeWatchers.forEach(watcher => watcher.revalidate()); + this.recordsWatchers.forEach(watcher => watcher.revalidate()); + }; + + _runloop.backburner.on('end', this.flushWatchers); } + } else if (this.typeWatchers.size === 0 && this.recordsWatchers.size === 0) { + _runloop.backburner.off('end', this.flushWatchers); - if (removedCount) { - recordsRemoved(idx, removedCount); - } - }; - - var observer = { - didChange: contentDidChange, - - willChange() { - return this; - } - - }; - (0, _metal.addArrayObserver)(records, this, observer); - - release = () => { - releaseMethods.forEach(fn => fn()); - (0, _metal.removeArrayObserver)(records, this, observer); - this.releaseMethods.removeObject(release); - }; - - recordsAdded(recordsToSend); - this.releaseMethods.pushObject(release); - return release; + this.flushWatchers = null; + } }, /** @@ -2157,7 +2288,13 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb willDestroy() { this._super(...arguments); + this.typeWatchers.forEach(watcher => watcher.release()); + this.recordsWatchers.forEach(watcher => watcher.release()); this.releaseMethods.forEach(fn => fn()); + + if (this.flushWatchers) { + _runloop.backburner.off('end', this.flushWatchers); + } }, /** @@ -2197,29 +2334,26 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb var records = this.getRecords(klass, modelName); - function onChange() { + var onChange = () => { typesUpdated([this.wrapModelType(klass, modelName)]); + }; + + var { + typeWatchers + } = this; + var typeWatcher = typeWatchers.get(records); + + if (!typeWatcher) { + typeWatcher = new TypeWatcher(records, onChange, () => { + typeWatchers.delete(records); + this.updateFlushWatchers(); + }); + typeWatchers.set(records, typeWatcher); + this.updateFlushWatchers(); + typeWatcher.revalidate(); } - var observer = { - didChange(array, idx, removedCount, addedCount) { - // Only re-fetch records if the record count changed - // (which is all we care about as far as model types are concerned). - if (removedCount > 0 || addedCount > 0) { - (0, _runloop.scheduleOnce)('actions', this, onChange); - } - }, - - willChange() { - return this; - } - - }; - (0, _metal.addArrayObserver)(records, this, observer); - - var release = () => (0, _metal.removeArrayObserver)(records, this, observer); - - return release; + return typeWatcher.release; }, /** @@ -2380,24 +2514,13 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb */ getRecordColor() { return null; - }, - - /** - Observes all relevant properties and re-sends the wrapped record - when a change occurs. - @public - @method observerRecord - @return {Function} The function to call to remove all observers. - */ - observeRecord() { - return function () {}; } }); _exports.default = _default; }); -define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glimmer/opcode-compiler", "@ember/-internals/metal", "@ember/debug", "@ember/deprecated-features", "@ember/string", "@glimmer/reference", "@glimmer/validator", "@ember/-internals/views", "@glimmer/destroyable", "@glimmer/manager", "@ember/-internals/utils", "@ember/instrumentation", "@ember/runloop", "@glimmer/util", "@ember/-internals/owner", "@glimmer/runtime", "@ember/-internals/runtime", "@ember/-internals/browser-environment", "@ember/engine", "@ember/service", "@ember/-internals/environment", "@ember/-internals/container", "@glimmer/node", "@ember/-internals/glimmer", "@glimmer/global-context", "@ember/-internals/routing", "@ember/error", "@glimmer/program", "rsvp"], function (_exports, _polyfills, _opcodeCompiler, _metal, _debug, _deprecatedFeatures, _string, _reference, _validator, _views, _destroyable, _manager2, _utils, _instrumentation, _runloop, _util, _owner2, _runtime, _runtime2, _browserEnvironment, _engine, _service, _environment2, _container, _node, _glimmer, _globalContext, _routing, _error, _program, _rsvp) { +define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glimmer/opcode-compiler", "@ember/-internals/metal", "@ember/debug", "@ember/deprecated-features", "@ember/string", "@glimmer/reference", "@glimmer/validator", "@ember/-internals/views", "@glimmer/destroyable", "@glimmer/manager", "@ember/-internals/utils", "@ember/instrumentation", "@ember/runloop", "@glimmer/util", "@ember/-internals/owner", "@glimmer/runtime", "@ember/-internals/runtime", "@ember/-internals/browser-environment", "@ember/engine", "@ember/service", "@ember/object", "@ember/-internals/environment", "@ember/-internals/container", "@glimmer/node", "@ember/-internals/glimmer", "@glimmer/global-context", "@ember/-internals/routing", "@ember/error", "@glimmer/program", "rsvp"], function (_exports, _polyfills, _opcodeCompiler, _metal, _debug, _deprecatedFeatures, _string, _reference, _validator, _views, _destroyable, _manager2, _utils, _instrumentation, _runloop, _util, _owner2, _runtime, _runtime2, _browserEnvironment, _engine, _service, _object, _environment2, _container, _node, _glimmer, _globalContext, _routing, _error, _program, _rsvp) { "use strict"; Object.defineProperty(_exports, "__esModule", { @@ -2453,7 +2576,7 @@ define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glim return _node.NodeDOMTreeConstruction; } }); - _exports.OutletView = _exports.INVOKE = _exports.Renderer = _exports.SafeString = _exports.Helper = _exports.Component = _exports.Input = _exports.LinkComponent = _exports.TextArea = _exports.TextField = _exports.Checkbox = _exports.RootTemplate = void 0; + _exports.modifierCapabilities = _exports.componentCapabilities = _exports.OutletView = _exports.INVOKE = _exports.Renderer = _exports.SafeString = _exports.Helper = _exports.Component = _exports.Input = _exports.LinkComponent = _exports.TextArea = _exports.TextField = _exports.Checkbox = _exports.RootTemplate = void 0; var RootTemplate = (0, _opcodeCompiler.templateFactory)({ "id": "9BtKrod8", "block": "[[[46,[30,0],null,null,null]],[],false,[\"component\"]]", @@ -3053,7 +3176,7 @@ define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glim */ _exports.INVOKE = INVOKE; - var action = internalHelper(args => { + var action$1 = internalHelper(args => { var { named, positional @@ -3062,16 +3185,16 @@ define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glim // pos[1] is the action name or function // Anything else is an action argument. - var [context, action, ...restArgs] = positional; - var debugKey = action.debugLabel; + var [context, action$$1, ...restArgs] = positional; + var debugKey = action$$1.debugLabel; var target = 'target' in named ? named.target : context; var processArgs = makeArgsProcessor('value' in named && named.value, restArgs); var fn$$1; - if ((0, _reference.isInvokableRef)(action)) { - fn$$1 = makeClosureAction(action, action, invokeRef, processArgs, debugKey); + if ((0, _reference.isInvokableRef)(action$$1)) { + fn$$1 = makeClosureAction(action$$1, action$$1, invokeRef, processArgs, debugKey); } else { - fn$$1 = makeDynamicClosureAction((0, _reference.valueForRef)(context), target, action, processArgs, debugKey); + fn$$1 = makeDynamicClosureAction((0, _reference.valueForRef)(context), target, action$$1, processArgs, debugKey); } ACTIONS.add(fn$$1); @@ -3127,13 +3250,13 @@ define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glim }; } - function makeClosureAction(context, target, action, processArgs, debugKey) { + function makeClosureAction(context, target, action$$1, processArgs, debugKey) { var self; var fn$$1; - (true && !(action !== undefined && action !== null) && (0, _debug.assert)(`Action passed is null or undefined in (action) from ${target}.`, action !== undefined && action !== null)); + (true && !(action$$1 !== undefined && action$$1 !== null) && (0, _debug.assert)(`Action passed is null or undefined in (action) from ${target}.`, action$$1 !== undefined && action$$1 !== null)); - if (typeof action[INVOKE] === 'function') { - (true && !(false) && (0, _debug.deprecate)(`Usage of the private INVOKE API to make an object callable via action or fn is no longer supported. Please update to pass in a callback function instead. Received: ${String(action)}`, false, { + if (typeof action$$1[INVOKE] === 'function') { + (true && !(false) && (0, _debug.deprecate)(`Usage of the private INVOKE API to make an object callable via action or fn is no longer supported. Please update to pass in a callback function instead. Received: ${String(action$$1)}`, false, { until: '3.25.0', id: 'actions.custom-invoke-invokable', for: 'ember-source', @@ -3141,21 +3264,21 @@ define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glim enabled: '3.23.0-beta.1' } })); - self = action; - fn$$1 = action[INVOKE]; + self = action$$1; + fn$$1 = action$$1[INVOKE]; } else { - var typeofAction = typeof action; + var typeofAction = typeof action$$1; if (typeofAction === 'string') { self = target; - fn$$1 = target.actions && target.actions[action]; - (true && !(Boolean(fn$$1)) && (0, _debug.assert)(`An action named '${action}' was not found in ${target}`, Boolean(fn$$1))); + fn$$1 = target.actions && target.actions[action$$1]; + (true && !(Boolean(fn$$1)) && (0, _debug.assert)(`An action named '${action$$1}' was not found in ${target}`, Boolean(fn$$1))); } else if (typeofAction === 'function') { self = context; - fn$$1 = action; + fn$$1 = action$$1; } else { // tslint:disable-next-line:max-line-length - (true && !(false) && (0, _debug.assert)(`An action could not be made for \`${debugKey || action}\` in ${target}. Please confirm that you are using either a quoted action name (i.e. \`(action '${debugKey || 'myAction'}')\`) or a function available in ${target}.`, false)); + (true && !(false) && (0, _debug.assert)(`An action could not be made for \`${debugKey || action$$1}\` in ${target}. Please confirm that you are using either a quoted action name (i.e. \`(action '${debugKey || 'myAction'}')\`) or a function available in ${target}.`, false)); } } @@ -5899,10 +6022,11 @@ define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glim return; } + var hasBlock = this[HAS_BLOCK]; params = params.slice(); // Process the positional arguments, in order. // 1. Inline link title comes first, if present. - if (!this[HAS_BLOCK]) { + if (!hasBlock) { this.set('linkTitle', params.shift()); } // 2. The last argument is possibly the `query` object. @@ -5925,6 +6049,65 @@ define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glim this.set('model', UNDEFINED); this.set('models', params); + (0, _debug.runInDebug)(() => { + params = this.params.slice(); + var equivalentNamedArgs = []; + var hasQueryParams = false; // Process the positional arguments, in order. + // 1. Inline link title comes first, if present. + + if (!hasBlock) { + params.shift(); + } // 2. The last argument is possibly the `query` object. + + + var query = params[params.length - 1]; + + if (query && query.isQueryParams) { + params.pop(); + hasQueryParams = true; + } // 3. If there is a `route`, it is now at index 0. + + + if (params.length > 0) { + params.shift(); + equivalentNamedArgs.push('`@route`'); + } // 4. Any remaining params (if any) are `models`. + + + if (params.length === 1) { + equivalentNamedArgs.push('`@model`'); + } else if (params.length > 1) { + equivalentNamedArgs.push('`@models`'); + } + + if (hasQueryParams) { + equivalentNamedArgs.push('`@query`'); + } + + if (equivalentNamedArgs.length > 0) { + var message = 'Invoking the `` component with positional arguments is deprecated.'; + message += `Please use the equivalent named arguments (${equivalentNamedArgs.join(', ')})`; + + if (hasQueryParams) { + message += ' along with the `hash` helper'; + } + + if (!hasBlock) { + message += " and pass a block for the link's content."; + } + + message += '.'; + (true && !(false) && (0, _debug.deprecate)(message, false, { + id: 'ember-glimmer.link-to.positional-arguments', + until: '4.0.0', + for: 'ember-source', + url: 'https://deprecations.emberjs.com/v3.x#toc_ember-glimmer-link-to-positional-arguments', + since: { + enabled: '3.26.0-beta.1' + } + })); + } + }); } }); @@ -5968,11 +6151,10 @@ define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glim ComponentClass } = this; var instance = new ComponentClass(owner, args.named.capture(), (0, _reference.valueForRef)(caller)); - var state = { + return { env, instance }; - return state; } didCreate() {} @@ -6000,8 +6182,8 @@ define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glim } var InputTemplate = (0, _opcodeCompiler.templateFactory)({ - "id": "sAKl8rD7", - "block": "[[[44,[[50,\"-checkbox\",0,null,null],[50,\"-text-field\",0,null,null]],[[[41,[30,0,[\"isCheckbox\"]],[[[8,[30,1],[[17,3]],[[\"@target\",\"@__ARGS__\"],[[30,0,[\"caller\"]],[30,0,[\"args\"]]]],null]],[]],[[[8,[30,2],[[17,3]],[[\"@target\",\"@__ARGS__\"],[[30,0,[\"caller\"]],[30,0,[\"args\"]]]],null]],[]]]],[1,2]]]],[\"Checkbox\",\"TextField\",\"&attrs\"],false,[\"let\",\"component\",\"if\"]]", + "id": "K/QPSitg", + "block": "[[[41,[30,0,[\"modernized\"]],[[[11,\"input\"],[16,1,[30,0,[\"id\"]]],[16,0,[30,0,[\"class\"]]],[16,\"autocapitalize\",[30,0,[\"_autocapitalize\"]]],[16,\"autocorrect\",[30,0,[\"_autocorrect\"]]],[16,\"autofocus\",[30,0,[\"_autofocus\"]]],[16,\"disabled\",[30,0,[\"_disabled\"]]],[16,\"form\",[30,0,[\"_form\"]]],[16,\"maxlength\",[30,0,[\"_maxlength\"]]],[16,\"minlength\",[30,0,[\"_minlength\"]]],[16,\"placeholder\",[30,0,[\"_placeholder\"]]],[16,\"readonly\",[30,0,[\"_readonly\"]]],[16,\"required\",[30,0,[\"_required\"]]],[16,\"selectionDirection\",[30,0,[\"_selectionDirection\"]]],[16,\"spellcheck\",[30,0,[\"_spellcheck\"]]],[16,\"tabindex\",[30,0,[\"_tabindex\"]]],[16,\"title\",[30,0,[\"_title\"]]],[16,\"accept\",[30,0,[\"_accept\"]]],[16,\"autocomplete\",[30,0,[\"_autocomplete\"]]],[16,\"autosave\",[30,0,[\"_autosave\"]]],[16,\"dir\",[30,0,[\"_dir\"]]],[16,\"formaction\",[30,0,[\"_formaction\"]]],[16,\"formenctype\",[30,0,[\"_formenctype\"]]],[16,\"formmethod\",[30,0,[\"_formmethod\"]]],[16,\"formnovalidate\",[30,0,[\"_formnovalidate\"]]],[16,\"formtarget\",[30,0,[\"_formtarget\"]]],[16,\"height\",[30,0,[\"_height\"]]],[16,\"inputmode\",[30,0,[\"_inputmode\"]]],[16,\"lang\",[30,0,[\"_lang\"]]],[16,\"list\",[30,0,[\"_list\"]]],[16,\"max\",[30,0,[\"_max\"]]],[16,\"min\",[30,0,[\"_min\"]]],[16,\"multiple\",[30,0,[\"_multiple\"]]],[16,3,[30,0,[\"_name\"]]],[16,\"pattern\",[30,0,[\"_pattern\"]]],[16,\"size\",[30,0,[\"_size\"]]],[16,\"step\",[30,0,[\"_step\"]]],[16,\"width\",[30,0,[\"_width\"]]],[16,\"indeterminate\",[30,0,[\"_indeterminate\"]]],[17,1],[16,4,[30,0,[\"type\"]]],[16,\"checked\",[30,0,[\"checked\"]]],[16,2,[30,0,[\"value\"]]],[4,[38,1],[\"change\",[30,0,[\"change\"]]],null],[4,[38,1],[\"input\",[30,0,[\"input\"]]],null],[4,[38,1],[\"keyup\",[30,0,[\"keyUp\"]]],null],[4,[38,1],[\"paste\",[30,0,[\"valueDidChange\"]]],null],[4,[38,1],[\"cut\",[30,0,[\"valueDidChange\"]]],null],[4,[38,1],[\"touchstart\",[30,0,[\"_touchStart\"]]],null],[4,[38,1],[\"touchmove\",[30,0,[\"_touchMove\"]]],null],[4,[38,1],[\"touchend\",[30,0,[\"_touchEnd\"]]],null],[4,[38,1],[\"touchcancel\",[30,0,[\"_touchCancel\"]]],null],[4,[38,1],[\"keydown\",[30,0,[\"_keyDown\"]]],null],[4,[38,1],[\"keypress\",[30,0,[\"_keyPress\"]]],null],[4,[38,1],[\"mousedown\",[30,0,[\"_mouseDown\"]]],null],[4,[38,1],[\"mouseup\",[30,0,[\"_mouseUp\"]]],null],[4,[38,1],[\"contextmenu\",[30,0,[\"_contextMenu\"]]],null],[4,[38,1],[\"click\",[30,0,[\"_click\"]]],null],[4,[38,1],[\"dblclick\",[30,0,[\"_doubleClick\"]]],null],[4,[38,1],[\"focusin\",[30,0,[\"_focusIn\"]]],null],[4,[38,1],[\"focusout\",[30,0,[\"_focusOut\"]]],null],[4,[38,1],[\"submit\",[30,0,[\"_submit\"]]],null],[4,[38,1],[\"dragstart\",[30,0,[\"_dragStart\"]]],null],[4,[38,1],[\"drag\",[30,0,[\"_drag\"]]],null],[4,[38,1],[\"dragenter\",[30,0,[\"_dragEnter\"]]],null],[4,[38,1],[\"dragleave\",[30,0,[\"_dragLeave\"]]],null],[4,[38,1],[\"dragover\",[30,0,[\"_dragOver\"]]],null],[4,[38,1],[\"drop\",[30,0,[\"_drop\"]]],null],[4,[38,1],[\"dragend\",[30,0,[\"_dragEnd\"]]],null],[4,[38,1],[\"mouseenter\",[30,0,[\"_mouseEnter\"]]],null],[4,[38,1],[\"mouseleave\",[30,0,[\"_mouseLeave\"]]],null],[4,[38,1],[\"mousemove\",[30,0,[\"_mouseMove\"]]],null],[12],[13]],[]],[[[44,[[50,\"-checkbox\",0,null,null],[50,\"-text-field\",0,null,null]],[[[41,[30,0,[\"isCheckbox\"]],[[[8,[30,2],[[17,1]],[[\"@target\",\"@__ARGS__\"],[[30,0,[\"caller\"]],[30,0,[\"args\"]]]],null]],[]],[[[8,[30,3],[[17,1]],[[\"@target\",\"@__ARGS__\"],[[30,0,[\"caller\"]],[30,0,[\"args\"]]]],null]],[]]]],[2,3]]]],[]]]],[\"&attrs\",\"Checkbox\",\"TextField\"],false,[\"if\",\"on\",\"let\",\"component\"]]", "moduleName": "packages/@ember/-internals/glimmer/lib/templates/input.hbs", "isStrictMode": false }); @@ -6012,18 +6194,11 @@ define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glim this.args = args; this.caller = caller; (0, _owner2.setOwner)(this, owner); - } + } // Override this - static get class() { - return this; - } - static get fullName() { - return this.name; - } - - static get normalizedName() { - return this.name; + static toString() { + return 'internal component'; } arg(key) { @@ -6036,10 +6211,156 @@ define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glim } } - /** - @module @ember/component - */ + var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) { + var c = arguments.length, + r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, + d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) { + if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + } + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + + var isValidInputType; + + if (_browserEnvironment.hasDOM && false + /* EMBER_MODERNIZED_BUILT_IN_COMPONENTS */ + ) { + var INPUT_TYPES = Object.create(null); + var INPUT_ELEMENT = document.createElement('input'); + INPUT_TYPES[''] = false; + INPUT_TYPES['text'] = true; + INPUT_TYPES['checkbox'] = true; + + isValidInputType = type => { + var isValid = INPUT_TYPES[type]; + + if (isValid === undefined) { + try { + INPUT_ELEMENT.type = type; + isValid = INPUT_ELEMENT.type === type; + } catch (e) { + isValid = false; + } finally { + INPUT_ELEMENT.type = 'text'; + } + + INPUT_TYPES[type] = isValid; + } + + return isValid; + }; + } else { + isValidInputType = type => type !== ''; + } + + function NOOP$2() {} + + var UNINITIALIZED = Object.freeze({}); + /** + * This interface paves over the differences between these three cases: + * + * 1. `` or `` + * 2. `` + * 3. `` + * + * For the first set of cases (any const reference in general), the semantics + * are that `@value` is treated as an initial value only, just like the `value` + * attribute. Perhaps using the `value` attribute would have been more Correctâ„¢ + * here, but that would make a pretty confusing API, and the user's intent is + * pretty clear, so we support it. + * + * The second case is the most common. `{{this.value}}` is an updatable + * reference here so the value is fully owned and bound to the "upstream" value + * and we don't store a copy of it in the component. + * + * The last case is the most tricky. There are a lot of different ways for this + * to happen, but the end result is that we have a non-const and non-updatable + * reference in our hands. The semantics here is a mix of the first two cases. + * We take the computed value as the initial value, but hold a copy of it and + * allow it to diverge from upstream. However, when the upstream recomputes to + * a value different than what we originally had, we would reconcile with the + * new upstream value and throw away the local copy. + * + * It's not clear that we intended to support the last case, or that it is used + * intentionally in the real world, but it's a fallout of the two-way binding + * system and `Ember.Component` semantics from before. + * + * This interface paves over the differences so the component doesn't have to + * worry about it. + * + * All of the above applies to `@checked` as well. + */ + + function valueFrom(reference) { + if (reference === undefined) { + return new LocalValue(undefined); + } else if ((0, _reference.isConstRef)(reference)) { + return new LocalValue((0, _reference.valueForRef)(reference)); + } else if ((0, _reference.isUpdatableRef)(reference)) { + return new UpstreamValue(reference); + } else { + return new ForkedValue(reference); + } + } + + class LocalValue { + constructor(value) { + this.value = value; + } + + get() { + return this.value; + } + + set(value) { + this.value = value; + } + + } + + __decorate([_metal.tracked], LocalValue.prototype, "value", void 0); + + class UpstreamValue { + constructor(reference) { + this.reference = reference; + } + + get() { + return (0, _reference.valueForRef)(this.reference); + } + + set(value) { + (0, _reference.updateRef)(this.reference, value); + } + + } + + class ForkedValue { + constructor(reference) { + this.lastUpstreamValue = UNINITIALIZED; + this.upstream = new UpstreamValue(reference); + } + + get() { + var upstreamValue = this.upstream.get(); + + if (upstreamValue !== this.lastUpstreamValue) { + this.lastUpstreamValue = upstreamValue; + this.local = new LocalValue(upstreamValue); + } + + (true && !(this.local) && (0, _debug.assert)('[BUG] this.local must have been initialized at this point', this.local)); + return this.local.get(); + } + + set(value) { + (true && !(this.local) && (0, _debug.assert)('[BUG] this.local must have been initialized at this point', this.local)); + this.local.set(value); + } + + } /** See [Ember.Templates.components.Input](/ember/release/classes/Ember.Templates.components/methods/Input?anchor=Input). @@ -6091,6 +6412,21 @@ define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glim ``` + Starting with Ember Octane, we recommend using the `{{on}}` modifier to call actions + on specific events, such as the input event. + + ```handlebars + + + ``` + + The event name (e.g. `focusout`, `input`, `keydown`) always follows the casing + that the HTML standard uses. + ### `` HTML Attributes to Avoid In most cases, if you want to pass an attribute to the underlying HTML `` element, you @@ -6149,30 +6485,178 @@ define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glim class Input extends InternalComponent { + constructor() { + super(...arguments); + this.modernized = Boolean(false + /* EMBER_MODERNIZED_BUILT_IN_COMPONENTS */ + ); + this._checked = valueFrom(this.args.checked); + this._value = valueFrom(this.args.value); + } + /** + * The default HTML id attribute. We don't really _need_ one, this is just + * added for compatibility as it's hard to tell if people rely on it being + * present, and it doens't really hurt. + * + * However, don't rely on this internally, like passing it to `getElementId`. + * This can be (and often is) overriden by passing an `id` attribute on the + * invocation, which shadows this default id via `...attributes`. + */ + + + get id() { + return (0, _utils.guidFor)(this); + } + /** + * The default HTML class attribute. Similar to the above, we don't _need_ + * them, they are just added for compatibility as it's similarly hard to tell + * if people rely on it in their CSS etc, and it doens't really hurt. + */ + + + get class() { + if (this.isCheckbox) { + return 'ember-checkbox ember-view'; + } else { + return 'ember-text-field ember-view'; + } + } + /** + * The HTML type attribute. + */ + + + get type() { + var type = this.arg('type'); + + if (type === null || type === undefined) { + return 'text'; + } + + (true && !(typeof type === 'string') && (0, _debug.assert)('The `@type` argument to the component must be a string', typeof type === 'string')); + return isValidInputType(type) ? type : 'text'; + } + get isCheckbox() { return this.arg('type') === 'checkbox'; } - } // Use an opaque handle so implementation details are + get checked() { + if (this.isCheckbox) { + (true && (0, _debug.warn)('`` reflects its checked state via the `@checked` argument. ' + 'You wrote `` which is likely not what you intended. ' + 'Did you mean ``?', (0, _validator.untrack)(() => this.args.checked !== undefined || this.args.value === undefined || typeof (0, _reference.valueForRef)(this.args.value) === 'string'), { + id: 'ember.built-in-components.input-checkbox-value' + })); + return this._checked.get(); + } else { + return undefined; + } + } + + set checked(checked) { + (true && (0, _debug.warn)('`` reflects its checked state via the `@checked` argument. ' + 'You wrote `` which is likely not what you intended. ' + 'Did you mean ``?', (0, _validator.untrack)(() => this.args.checked !== undefined || this.args.value === undefined || typeof (0, _reference.valueForRef)(this.args.value) === 'string'), { + id: 'ember.built-in-components.input-checkbox-value' + })); + + this._checked.set(checked); + } + + get value() { + return this._value.get(); + } + + set value(value) { + this._value.set(value); + } + + checkedDidChange(event) { + this.checked = this.elementFor(event).checked; + } + + valueDidChange(event) { + this.value = this.valueFor(event); + } + + change(event) { + if (this.isCheckbox) { + this.checkedDidChange(event); + } else { + this.valueDidChange(event); + } + } + + input(event) { + if (!this.isCheckbox) { + this.valueDidChange(event); + } + } + + keyUp(event) { + var value = this.valueFor(event); + + switch (event.key) { + case 'Enter': + this.callbackFor('enter')(value, event); + this.callbackFor('insert-newline')(value, event); + break; + + case 'Escape': + this.callbackFor('escape-press')(value, event); + break; + } + } + + elementFor(event) { + (true && !(event.target instanceof HTMLInputElement) && (0, _debug.assert)('[BUG] Event target must be the element', event.target instanceof HTMLInputElement)); + return event.target; + } + + valueFor(event) { + return this.elementFor(event).value; + } + + callbackFor(type) { + var callback = this.arg(type); + + if (callback) { + (true && !(typeof callback === 'function') && (0, _debug.assert)(`The \`@${type}\` argument to the component must be a function`, typeof callback === 'function')); + return callback; + } else { + return NOOP$2; + } + } + + } + + __decorate([_object.action], Input.prototype, "checkedDidChange", null); + + __decorate([_object.action], Input.prototype, "valueDidChange", null); + + __decorate([_object.action], Input.prototype, "change", null); + + __decorate([_object.action], Input.prototype, "input", null); + + __decorate([_object.action], Input.prototype, "keyUp", null); // Deprecated features var InputComponent = { // Factory interface create() { throw (0, _debug.assert)('Use constructor instead of create'); + }, + + toString() { + return '@ember/component/input'; } }; _exports.Input = InputComponent; (0, _manager2.setInternalComponentManager)(new InternalManager(Input, 'input'), InputComponent); (0, _manager2.setComponentTemplate)(InputTemplate, InputComponent); - - Input.toString = () => '@ember/component/input'; + Input.toString = InputComponent.toString; /** @module @ember/component */ - var RECOMPUTE_TAG = (0, _utils.symbol)('RECOMPUTE_TAG'); /** Ember Helpers are functions that can compute values, and are used in templates. @@ -7192,7 +7676,7 @@ define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glim } }, { id: 'this-property-fallback', - disabled: true, + disabled: _environment2.ENV._DISABLE_PROPERTY_FALLBACK_DEPRECATION, url: 'https://deprecations.emberjs.com/v3.x#toc_this-property-fallback', until: '4.0.0', for: 'ember-source', @@ -7401,7 +7885,16 @@ define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glim named }) => { return (0, _reference.createComputeRef)(() => { - (true && !(positional.length === 0) && (0, _debug.assert)("The `query-params` helper only accepts hash parameters, e.g. (query-params queryParamPropertyName='foo') as opposed to just (query-params 'foo')", positional.length === 0)); + (true && !(positional.length === 0) && (0, _debug.assert)("The `query-params` helper only accepts named arguments, e.g. (query-params queryParamPropertyName='foo') as opposed to (query-params 'foo')", positional.length === 0)); + (true && !(false) && (0, _debug.deprecate)('The `query-params` helper is deprecated. Invoke `` with the `@query` named argument and the `hash` helper instead.', false, { + id: 'ember-glimmer.link-to.positional-arguments', + until: '4.0.0', + for: 'ember-source', + url: 'https://deprecations.emberjs.com/v3.x#toc_ember-glimmer-link-to-positional-arguments', + since: { + enabled: '3.26.0-beta.1' + } + })); return new _routing.QueryParams((0, _polyfills.assign)({}, (0, _runtime.reifyNamed)(named))); }); }); @@ -8282,7 +8775,7 @@ define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glim } var BUILTIN_KEYWORD_HELPERS = { - action, + action: action$1, mut, readonly, unbound, @@ -9175,6 +9668,41 @@ define("@ember/-internals/glimmer/index", ["exports", "@ember/polyfills", "@glim return (0, _manager2.setComponentManager)(factory, obj); } + + var componentCapabilities$1 = _manager2.componentCapabilities; + _exports.componentCapabilities = componentCapabilities$1; + var modifierCapabilities$1 = _manager2.modifierCapabilities; + _exports.modifierCapabilities = modifierCapabilities$1; + + if (true + /* DEBUG */ + ) { + _exports.componentCapabilities = componentCapabilities$1 = (version, options) => { + (true && !(version === '3.13') && (0, _debug.deprecate)('Versions of component manager capabilities prior to 3.13 have been deprecated. You must update to the 3.13 capabilities.', version === '3.13', { + id: 'manager-capabilities.components-3-4', + url: 'https://emberjs.com/deprecations/v3.x#toc_manager-capabilities-components-3-4', + until: '4.0.0', + for: 'ember-source', + since: { + enabled: '3.26.0' + } + })); + return (0, _manager2.componentCapabilities)(version, options); + }; + + _exports.modifierCapabilities = modifierCapabilities$1 = (version, options) => { + (true && !(version === '3.22') && (0, _debug.deprecate)('Versions of modifier manager capabilities prior to 3.22 have been deprecated. You must update to the 3.22 capabilities.', version === '3.22', { + id: 'manager-capabilities.modifiers-3-13', + url: 'https://emberjs.com/deprecations/v3.x#toc_manager-capabilities-modifiers-3-13', + until: '4.0.0', + for: 'ember-source', + since: { + enabled: '3.26.0' + } + })); + return (0, _manager2.modifierCapabilities)(version, options); + }; + } /** [Glimmer](https://github.com/tildeio/glimmer) is a templating engine used by Ember.js that is compatible with a subset of the [Handlebars](http://handlebarsjs.com/) syntax. @@ -10083,7 +10611,7 @@ define("@ember/-internals/metal/index", ["exports", "@ember/-internals/meta", "@ return _validator.isConst; } }); - _exports.NAMESPACES_BY_ID = _exports.NAMESPACES = _exports.DEBUG_INJECTION_FUNCTIONS = _exports.aliasMethod = _exports.Mixin = _exports.SYNC_OBSERVERS = _exports.ASYNC_OBSERVERS = _exports.Libraries = _exports.libraries = _exports.PROPERTY_DID_CHANGE = _exports.PROXY_CONTENT = _exports.ComputedProperty = _exports._globalsComputed = void 0; + _exports.NAMESPACES_BY_ID = _exports.NAMESPACES = _exports.TrackedDescriptor = _exports.DEBUG_INJECTION_FUNCTIONS = _exports.aliasMethod = _exports.Mixin = _exports.SYNC_OBSERVERS = _exports.ASYNC_OBSERVERS = _exports.Libraries = _exports.libraries = _exports.PROPERTY_DID_CHANGE = _exports.PROXY_CONTENT = _exports.ComputedProperty = _exports._globalsComputed = void 0; /** @module @ember/object @@ -10353,7 +10881,7 @@ define("@ember/-internals/metal/index", ["exports", "@ember/-internals/meta", "@ if (activeObservers.has(eventName)) { activeObservers.get(eventName).count++; } else { - var [path] = eventName.split(':'); + var path = eventName.substring(0, eventName.lastIndexOf(':')); var tag = getChainTagsForKey(target, path, (0, _validator.tagMetaFor)(target), (0, _meta2.peekMeta)(target)); activeObservers.set(eventName, { count: 1, @@ -10768,11 +11296,29 @@ define("@ember/-internals/metal/index", ["exports", "@ember/-internals/meta", "@ return obj; } - function addArrayObserver(array, target, opts) { + function addArrayObserver(array, target, opts, suppress = false) { + (true && !(suppress) && (0, _debug.deprecate)(`Array observers have been deprecated. Added an array observer to ${_utils.getDebugName === null || _utils.getDebugName === void 0 ? void 0 : (0, _utils.getDebugName)(array)}.`, suppress, { + id: 'array-observers', + url: 'https://deprecations.emberjs.com/v3.x#toc_array-observers', + until: '4.0.0', + for: 'ember-source', + since: { + enabled: '3.26.0-beta.1' + } + })); return arrayObserversHelper(array, target, opts, addListener, false); } - function removeArrayObserver(array, target, opts) { + function removeArrayObserver(array, target, opts, suppress = false) { + (true && !(suppress) && (0, _debug.deprecate)(`Array observers have been deprecated. Removed an array observer from ${_utils.getDebugName === null || _utils.getDebugName === void 0 ? void 0 : (0, _utils.getDebugName)(array)}.`, suppress, { + id: 'array-observers', + url: 'https://deprecations.emberjs.com/v3.x#toc_array-observers', + until: '4.0.0', + for: 'ember-source', + since: { + enabled: '3.26.0-beta.1' + } + })); return arrayObserversHelper(array, target, opts, removeListener, true); } @@ -14105,6 +14651,8 @@ define("@ember/-internals/metal/index", ["exports", "@ember/-internals/meta", "@ @public */ + + _exports.TrackedDescriptor = TrackedDescriptor; }); define("@ember/-internals/owner/index", ["exports", "@glimmer/owner", "@ember/-internals/utils", "@ember/debug"], function (_exports, _owner, _utils, _debug) { "use strict"; @@ -14296,7 +14844,7 @@ define("@ember/-internals/routing/index", ["exports", "@ember/-internals/routing } }); }); -define("@ember/-internals/routing/lib/ext/controller", ["exports", "@ember/-internals/metal", "@ember/controller/lib/controller_mixin", "@ember/-internals/routing/lib/utils"], function (_exports, _metal, _controller_mixin, _utils) { +define("@ember/-internals/routing/lib/ext/controller", ["exports", "@ember/-internals/metal", "@ember/-internals/owner", "@ember/controller/lib/controller_mixin", "@ember/-internals/routing/lib/utils"], function (_exports, _metal, _owner, _controller_mixin, _utils) { "use strict"; Object.defineProperty(_exports, "__esModule", { @@ -14310,23 +14858,36 @@ define("@ember/-internals/routing/lib/ext/controller", ["exports", "@ember/-inte _controller_mixin.default.reopen({ concatenatedProperties: ['queryParams'], + init() { + this._super(...arguments); + + var owner = (0, _owner.getOwner)(this); + + if (owner) { + this.namespace = owner.lookup('application:main'); + this.target = owner.lookup('router:main'); + } + }, + /** Defines which query parameters the controller accepts. If you give the names `['category','page']` it will bind the values of these query parameters to the variables `this.category` and `this.page`. - By default, Ember coerces query parameter values using `toggleProperty`. - This behavior may lead to unexpected results. - Available queryParam types: `boolean`, `number`, `array`. - If query param type not specified, it will be `string`. - To explicitly configure a query parameter property so it coerces as expected, you must define a type property: - ```javascript + By default, query parameters are parsed as strings. This + may cause unexpected behavior if a query parameter is used with `toggleProperty`, + because the initial value set for `param=false` will be the string `"false"`, which is truthy. + To avoid this, you may specify that the query parameter should be parsed as a boolean + by using the following verbose form with a `type` property: + ```javascript queryParams: [{ category: { type: 'boolean' } }] ``` + Available values for the `type` parameter are `'boolean'`, `'number'`, `'array'`, and `'string'`. + If query param type is not specified, it will default to `'string'`. @for Ember.ControllerMixin @property queryParams @public @@ -14428,10 +14989,12 @@ define("@ember/-internals/routing/lib/ext/controller", ["exports", "@ember/-inte @method transitionToRoute @return {Transition} the transition object associated with this attempted transition + @deprecated Use transitionTo from the Router service instead. @public */ transitionToRoute(...args) { - // target may be either another controller or a router + (0, _utils.deprecateTransitionMethods)('controller', 'transitionToRoute'); // target may be either another controller or a router + var target = (0, _metal.get)(this, 'target'); var method = target.transitionToRoute || target.transitionTo; return method.apply(target, (0, _utils.prefixRouteNameArg)(this, args)); @@ -14486,7 +15049,8 @@ define("@ember/-internals/routing/lib/ext/controller", ["exports", "@ember/-inte @public */ replaceRoute(...args) { - // target may be either another controller or a router + (0, _utils.deprecateTransitionMethods)('controller', 'replaceRoute'); // target may be either another controller or a router + var target = (0, _metal.get)(this, 'target'); var method = target.replaceRoute || target.replaceWith; return method.apply(target, (0, _utils.prefixRouteNameArg)(this, args)); @@ -14550,13 +15114,16 @@ define("@ember/-internals/routing/lib/location/api", ["exports", "@ember/debug"] import HistoryLocation from '@ember/routing/history-location'; export default class MyHistory { - implementation: 'my-custom-history', + implementation = 'my-custom-history'; + constructor() { this._history = HistoryLocation.create(...arguments); } + create() { return new this(...arguments); } + pushState(path) { this._history.pushState(path); } @@ -15628,21 +16195,6 @@ define("@ember/-internals/routing/lib/services/router", ["exports", "@ember/-int }); _exports.default = void 0; var ROUTER = (0, _utils.symbol)('ROUTER'); - var freezeRouteInfo; - - if (true - /* DEBUG */ - ) { - freezeRouteInfo = transition => { - if (transition.from !== null && !Object.isFrozen(transition.from)) { - Object.freeze(transition.from); - } - - if (transition.to !== null && !Object.isFrozen(transition.to)) { - Object.freeze(transition.to); - } - }; - } function cleanURL(url, rootURL) { if (rootURL === '/') { @@ -15694,32 +16246,8 @@ define("@ember/-internals/routing/lib/services/router", ["exports", "@ember/-int var owner = (0, _owner.getOwner)(this); router = owner.lookup('router:main'); - router.setupRouter(); return this[ROUTER] = router; } - - constructor(owner) { - super(owner); - var router = owner.lookup('router:main'); - router.on('routeWillChange', transition => { - if (true - /* DEBUG */ - ) { - freezeRouteInfo(transition); - } - - this.trigger('routeWillChange', transition); - }); - router.on('routeDidChange', transition => { - if (true - /* DEBUG */ - ) { - freezeRouteInfo(transition); - } - - this.trigger('routeDidChange', transition); - }); - } /** Transition the application into another route. The route may be either a single route or route path: @@ -16900,7 +17428,7 @@ define("@ember/-internals/routing/lib/system/route-info", [], function () { @public */ }); -define("@ember/-internals/routing/lib/system/route", ["exports", "@ember/polyfills", "@ember/-internals/metal", "@ember/-internals/owner", "@ember/-internals/runtime", "@ember/-internals/utils", "@ember/debug", "@ember/deprecated-features", "@ember/object/compat", "@ember/runloop", "@ember/string", "router_js", "@ember/-internals/routing/lib/utils", "@ember/-internals/routing/lib/system/generate_controller"], function (_exports, _polyfills, _metal, _owner, _runtime, _utils, _debug, _deprecatedFeatures, _compat, _runloop, _string, _router_js, _utils2, _generate_controller) { +define("@ember/-internals/routing/lib/system/route", ["exports", "@ember/polyfills", "@ember/-internals/container", "@ember/-internals/metal", "@ember/-internals/owner", "@ember/-internals/runtime", "@ember/-internals/utils", "@ember/debug", "@ember/deprecated-features", "@ember/object/compat", "@ember/runloop", "@ember/string", "router_js", "@ember/-internals/routing/lib/utils", "@ember/-internals/routing/lib/system/generate_controller"], function (_exports, _polyfills, _container, _metal, _owner, _runtime, _utils, _debug, _deprecatedFeatures, _compat, _runloop, _string, _router_js, _utils2, _generate_controller) { "use strict"; Object.defineProperty(_exports, "__esModule", { @@ -16927,6 +17455,8 @@ define("@ember/-internals/routing/lib/system/route", ["exports", "@ember/polyfil object[name] = (0, _metal.get)(model, name); } else if (/_id$/.test(name)) { object[name] = (0, _metal.get)(model, 'id'); + } else if ((0, _utils.isProxy)(model)) { + object[name] = (0, _metal.get)(model, name); } } else { object = (0, _metal.getProperties)(model, params); @@ -16956,9 +17486,19 @@ define("@ember/-internals/routing/lib/system/route", ["exports", "@ember/polyfil class Route extends _runtime.Object { - constructor() { + constructor(owner) { super(...arguments); this.context = {}; + + if (owner) { + var router = owner.lookup('router:main'); + var bucketCache = owner.lookup((0, _container.privatize)`-bucket-cache:main`); + (true && !(router && bucketCache) && (0, _debug.assert)('ROUTER BUG: Expected route injections to be defined on the route. This is an internal bug, please open an issue on Github if you see this message!', router && bucketCache)); + this._router = router; + this._bucketCache = bucketCache; + this._topLevelViewTemplate = owner.lookup('template:-outlet'); + this._environment = owner.lookup('-environment:main'); + } } /** The name of the route, dot-delimited. @@ -17563,12 +18103,13 @@ define("@ember/-internals/routing/lib/system/route", ["exports", "@ember/polyfil @return {Transition} the transition object associated with this attempted transition @since 1.0.0 + @deprecated Use transitionTo from the Router service instead. @public */ transitionTo(...args) { - // eslint-disable-line no-unused-vars + (0, _utils2.deprecateTransitionMethods)('route', 'transitionTo'); return this._router.transitionTo(...(0, _utils2.prefixRouteNameArg)(this, args)); } /** @@ -17655,6 +18196,7 @@ define("@ember/-internals/routing/lib/system/route", ["exports", "@ember/polyfil replaceWith(...args) { + (0, _utils2.deprecateTransitionMethods)('route', 'replaceWith'); return this._router.replaceWith(...(0, _utils2.prefixRouteNameArg)(this, args)); } /** @@ -19238,7 +19780,7 @@ define("@ember/-internals/routing/lib/system/route", ["exports", "@ember/polyfil var _default = Route; _exports.default = _default; }); -define("@ember/-internals/routing/lib/system/router", ["exports", "@ember/-internals/metal", "@ember/-internals/owner", "@ember/-internals/runtime", "@ember/debug", "@ember/deprecated-features", "@ember/error", "@ember/polyfills", "@ember/runloop", "@ember/-internals/routing/lib/location/api", "@ember/-internals/routing/lib/utils", "@ember/-internals/routing/lib/system/dsl", "@ember/-internals/routing/lib/system/route", "@ember/-internals/routing/lib/system/router_state", "router_js"], function (_exports, _metal, _owner, _runtime, _debug, _deprecatedFeatures, _error2, _polyfills, _runloop, _api, _utils, _dsl, _route, _router_state, _router_js) { +define("@ember/-internals/routing/lib/system/router", ["exports", "@ember/-internals/container", "@ember/-internals/metal", "@ember/-internals/owner", "@ember/-internals/runtime", "@ember/debug", "@ember/deprecated-features", "@ember/error", "@ember/polyfills", "@ember/runloop", "@ember/-internals/routing/lib/location/api", "@ember/-internals/routing/lib/utils", "@ember/-internals/routing/lib/system/dsl", "@ember/-internals/routing/lib/system/route", "@ember/-internals/routing/lib/system/router_state", "router_js"], function (_exports, _container, _metal, _owner, _runtime, _debug, _deprecatedFeatures, _error2, _polyfills, _runloop, _api, _utils, _dsl, _route, _router_state, _router_js) { "use strict"; Object.defineProperty(_exports, "__esModule", { @@ -19281,6 +19823,22 @@ define("@ember/-internals/routing/lib/system/router", ["exports", "@ember/-inter } } + var freezeRouteInfo; + + if (true + /* DEBUG */ + ) { + freezeRouteInfo = transition => { + if (transition.from !== null && !Object.isFrozen(transition.from)) { + Object.freeze(transition.from); + } + + if (transition.to !== null && !Object.isFrozen(transition.to)) { + Object.freeze(transition.to); + } + }; + } + function K() { return this; } @@ -19299,7 +19857,7 @@ define("@ember/-internals/routing/lib/system/router", ["exports", "@ember/-inter */ class EmberRouter extends _runtime.Object { - constructor() { + constructor(owner) { super(...arguments); this._didSetupRouter = false; this._initialTransitionStarted = false; @@ -19318,6 +19876,12 @@ define("@ember/-internals/routing/lib/system/router", ["exports", "@ember/-inter this.targetState = null; this._resetQueuedQueryParameterChanges(); + + if (owner) { + this.namespace = owner.lookup('application:main'); + this._bucketCache = owner.lookup((0, _container.privatize)`-bucket-cache:main`); + this._routerService = owner.lookup('service:router'); + } } _initRouterJs() { @@ -19431,10 +19995,21 @@ define("@ember/-internals/routing/lib/system/router", ["exports", "@ember/-inter } routeWillChange(transition) { - router.trigger('routeWillChange', transition); // in case of intermediate transition we update the current route + router.trigger('routeWillChange', transition); + + if (router._routerService) { + if (true + /* DEBUG */ + ) { + freezeRouteInfo(transition); + } + + router._routerService.trigger('routeWillChange', transition); + } // in case of intermediate transition we update the current route // to make router.currentRoute.name consistent with router.currentRouteName // see https://github.com/emberjs/ember.js/issues/19449 + if (transition.isIntermediate) { router.set('currentRoute', transition.to); } @@ -19444,6 +20019,16 @@ define("@ember/-internals/routing/lib/system/router", ["exports", "@ember/-inter router.set('currentRoute', transition.to); (0, _runloop.once)(() => { router.trigger('routeDidChange', transition); + + if (router._routerService) { + if (true + /* DEBUG */ + ) { + freezeRouteInfo(transition); + } + + router._routerService.trigger('routeDidChange', transition); + } }); } @@ -20267,6 +20852,7 @@ define("@ember/-internals/routing/lib/system/router", ["exports", "@ember/-inter } } else { var cacheKey = (0, _utils.calculateCacheKey)(qp.route.fullRouteName, qp.parts, state.params); + (true && !(appCache) && (0, _debug.assert)('ROUTER BUG: expected appCache to be defined. This is an internal bug, please open an issue on Github if you see this message!', appCache)); queryParams[qp.scopedPropertyName] = appCache.lookup(cacheKey, qp.prop, qp.defaultValue); } } @@ -21188,7 +21774,7 @@ define("@ember/-internals/routing/lib/system/transition", [], function () { @type {Transition | undefined} */ }); -define("@ember/-internals/routing/lib/utils", ["exports", "@ember/-internals/metal", "@ember/-internals/owner", "@ember/error", "@ember/polyfills", "router_js"], function (_exports, _metal, _owner, _error, _polyfills, _router_js) { +define("@ember/-internals/routing/lib/utils", ["exports", "@ember/-internals/metal", "@ember/-internals/owner", "@ember/debug", "@ember/error", "@ember/polyfills", "router_js"], function (_exports, _metal, _owner, _debug, _error, _polyfills, _router_js) { "use strict"; Object.defineProperty(_exports, "__esModule", { @@ -21202,6 +21788,7 @@ define("@ember/-internals/routing/lib/utils", ["exports", "@ember/-internals/met _exports.resemblesURL = resemblesURL; _exports.prefixRouteNameArg = prefixRouteNameArg; _exports.shallowEqual = shallowEqual; + _exports.deprecateTransitionMethods = deprecateTransitionMethods; var ALL_PERIODS_REGEX = /\./g; function extractRouteArgs(args) { @@ -21453,6 +22040,18 @@ define("@ember/-internals/routing/lib/utils", ["exports", "@ember/-internals/met return aCount === bCount; } + + function deprecateTransitionMethods(frameworkClass, methodName) { + (true && !(false) && (0, _debug.deprecate)(`Calling ${methodName} on a ${frameworkClass} is deprecated. Use the RouterService instead.`, false, { + id: 'routing.transition-methods', + for: 'ember-source', + since: { + enabled: '3.26.0' + }, + until: '4.0.0', + url: 'https://deprecations.emberjs.com/v3.x/#toc_routing-transition-methods' + })); + } }); define("@ember/-internals/runtime/index", ["exports", "@ember/-internals/runtime/lib/system/object", "@ember/-internals/runtime/lib/mixins/registry_proxy", "@ember/-internals/runtime/lib/mixins/container_proxy", "@ember/-internals/runtime/lib/copy", "@ember/-internals/runtime/lib/compare", "@ember/-internals/runtime/lib/is-equal", "@ember/-internals/runtime/lib/mixins/array", "@ember/-internals/runtime/lib/mixins/comparable", "@ember/-internals/runtime/lib/system/namespace", "@ember/-internals/runtime/lib/system/array_proxy", "@ember/-internals/runtime/lib/system/object_proxy", "@ember/-internals/runtime/lib/system/core_object", "@ember/-internals/runtime/lib/mixins/action_handler", "@ember/-internals/runtime/lib/mixins/copyable", "@ember/-internals/runtime/lib/mixins/enumerable", "@ember/-internals/runtime/lib/mixins/-proxy", "@ember/-internals/runtime/lib/mixins/observable", "@ember/-internals/runtime/lib/mixins/mutable_enumerable", "@ember/-internals/runtime/lib/mixins/target_action_support", "@ember/-internals/runtime/lib/mixins/evented", "@ember/-internals/runtime/lib/mixins/promise_proxy", "@ember/-internals/runtime/lib/ext/rsvp", "@ember/-internals/runtime/lib/type-of", "@ember/-internals/runtime/lib/ext/function"], function (_exports, _object, _registry_proxy, _container_proxy, _copy, _compare, _isEqual, _array, _comparable, _namespace, _array_proxy, _object_proxy, _core_object, _action_handler, _copyable, _enumerable, _proxy, _observable, _mutable_enumerable, _target_action_support, _evented, _promise_proxy, _rsvp, _typeOf, _function) { "use strict"; @@ -25776,16 +26375,10 @@ define("@ember/-internals/runtime/lib/system/array_proxy", ["exports", "@ember/- return (0, _validator.tagFor)(proxy, key); } /** - An ArrayProxy wraps any other object that is a native or Ember `Array` - (checked with [`Ember.isArray`](/ember/release/functions/@ember%2Farray/isArray)), - forwarding all requests. This makes it very useful for a number of - binding use cases or other cases where being able to swap out the - underlying array is useful. - - NOTE: Attempting to mutate the underlying content of an object that - is not a `MutableArray` (e.g. a native Javascript Array) may not - behave as expected. [`Ember.A`](/ember/release/functions/@ember%2Farray/A) - may be used in this case. + An ArrayProxy wraps any other object that implements `Array` and/or + `MutableArray,` forwarding all requests. This makes it very useful for + a number of binding use cases or other cases where being able to swap + out the underlying array is useful. A simple example of usage: @@ -26005,14 +26598,14 @@ define("@ember/-internals/runtime/lib/system/array_proxy", ["exports", "@ember/- if (arrangedContent && !arrangedContent.isDestroyed) { (true && !(arrangedContent !== this) && (0, _debug.assert)("Can't set ArrayProxy's content to itself", arrangedContent !== this)); (true && !((0, _array.isArray)(arrangedContent) || arrangedContent.isDestroyed) && (0, _debug.assert)(`ArrayProxy expects an Array or ArrayProxy, but you passed ${typeof arrangedContent}`, (0, _array.isArray)(arrangedContent) || arrangedContent.isDestroyed)); - (0, _metal.addArrayObserver)(arrangedContent, this, ARRAY_OBSERVER_MAPPING); + (0, _metal.addArrayObserver)(arrangedContent, this, ARRAY_OBSERVER_MAPPING, true); this._arrangedContent = arrangedContent; } } _removeArrangedContentArrayObserver() { if (this._arrangedContent) { - (0, _metal.removeArrayObserver)(this._arrangedContent, this, ARRAY_OBSERVER_MAPPING); + (0, _metal.removeArrayObserver)(this._arrangedContent, this, ARRAY_OBSERVER_MAPPING, true); } } @@ -26123,6 +26716,24 @@ define("@ember/-internals/runtime/lib/system/core_object", ["exports", "@ember/- if (properties !== undefined) { (true && !(typeof properties === 'object' && properties !== null) && (0, _debug.assert)('EmberObject.create only accepts objects.', typeof properties === 'object' && properties !== null)); (true && !(!(properties instanceof _metal.Mixin)) && (0, _debug.assert)('EmberObject.create no longer supports mixing in other ' + 'definitions, use .extend & .create separately instead.', !(properties instanceof _metal.Mixin))); + var injectedProperties; + + if (true + /* DEBUG */ + ) { + // these are all the implicit injectinos + injectedProperties = []; + var factory = (0, _container.getFactoryFor)(obj); + + if (factory) { + for (var injection in factory.injections) { + if (factory.injections[injection] === properties[injection]) { + injectedProperties.push(injection); + } + } + } + } + var concatenatedProperties = obj.concatenatedProperties; var mergedProperties = obj.mergedProperties; var hasConcatenatedProps = concatenatedProperties !== undefined && concatenatedProperties.length > 0; @@ -26156,6 +26767,26 @@ define("@ember/-internals/runtime/lib/system/core_object", ["exports", "@ember/- } if (isDescriptor) { + if (true + /* DEBUG */ + && injectedProperties.indexOf(keyName) !== -1) { + // need to check if implicit injection owner.inject('component:my-component', 'foo', 'service:bar') does not match explicit injection @service foo + // implicit injection takes precedence so need to tell user to rename property on obj + var isInjectedProperty = _metal.DEBUG_INJECTION_FUNCTIONS.has(possibleDesc._getter); + + if (isInjectedProperty && value !== possibleDesc.get(obj, keyName)) { + implicitInjectionDeprecation(keyName, `You have explicitly defined a service injection for the '${keyName}' property on ${(0, _utils.inspect)(obj)}. However, a different service or value was injected via implicit injections which overrode your explicit injection. Implicit injections have been deprecated, and will be removed in the near future. In order to prevent breakage, you should inject the same value explicitly that is currently being injected implicitly.`); + } else if (possibleDesc instanceof _metal.TrackedDescriptor) { + var descValue = possibleDesc.get(obj, keyName); + + if (value !== descValue) { + implicitInjectionDeprecation(keyName, `A value was injected implicitly on the '${keyName}' tracked property of an instance of ${(0, _utils.inspect)(obj)}, overwriting the original value which was ${(0, _utils.inspect)(descValue)}. Implicit injection is now deprecated, please add an explicit injection for this value. If the injected value is a service, consider using the @service decorator.`); + } + } else if (possibleDesc._setter === undefined) { + implicitInjectionDeprecation(keyName, `A value was injected implicitly on the '${keyName}' computed property of an instance of ${(0, _utils.inspect)(obj)}. Implicit injection is now deprecated, please add an explicit injection for this value. If the injected value is a service, consider using the @service decorator.`); + } + } + possibleDesc.set(obj, keyName, value); } else if (typeof obj.setUnknownProperty === 'function' && !(keyName in obj)) { obj.setUnknownProperty(keyName, value); @@ -26163,7 +26794,30 @@ define("@ember/-internals/runtime/lib/system/core_object", ["exports", "@ember/- if (true /* DEBUG */ ) { - (0, _metal.defineProperty)(obj, keyName, null, value, m); // setup mandatory setter + // If deprecation, either 1) an accessor descriptor or 2) class field declaration 3) only an implicit injection + var desc = (0, _utils.lookupDescriptor)(obj, keyName); + + if (injectedProperties.indexOf(keyName) === -1) { + // Value was not an injected property, define in like normal + (0, _metal.defineProperty)(obj, keyName, null, value, m); // setup mandatory setter + } else if (desc) { + // If the property is a value prop, and it isn't the expected value, + // then we can warn the user when they attempt to use the value + if ('value' in desc && desc.value !== value) { + // implicit injection does not match value descriptor set on object + defineSelfDestructingImplicitInjectionGetter(obj, keyName, value, `A value was injected implicitly on the '${keyName}' property of an instance of ${(0, _utils.inspect)(obj)}, overwriting the original value which was ${(0, _utils.inspect)(desc.value)}. Implicit injection is now deprecated, please add an explicit injection for this value. If the injected value is a service, consider using the @service decorator.`); + } else { + // Otherwise, the value is either a getter/setter, or it is the correct value. + // If it is a getter/setter, then we don't know what activating it might do - it could + // be that the user only defined a getter, and so the value will not be set at all. It + // could be that the setter is a no-op that does nothing. Both of these are valid ways + // to "override" an implicit injection, so we can't really warn here. So, assign the + // value like we would normally. + obj[keyName] = value; + } + } else { + defineSelfDestructingImplicitInjectionGetter(obj, keyName, value, `A value was injected implicitly on the '${keyName}' property of an instance of ${(0, _utils.inspect)(obj)}. Implicit injection is now deprecated, please add an explicit injection for this value. If the injected value is a service, consider using the @service decorator.`); + } } else { obj[keyName] = value; } @@ -26190,6 +26844,23 @@ define("@ember/-internals/runtime/lib/system/core_object", ["exports", "@ember/- (0, _metal.sendEvent)(obj, 'init', undefined, undefined, undefined, m); } + + function defineSelfDestructingImplicitInjectionGetter(obj, keyName, value, message) { + Object.defineProperty(obj, keyName, { + configurable: true, + enumerable: true, + + get() { + // only want to deprecate on first access so we make this self destructing + Object.defineProperty(obj, keyName, { + value + }); + implicitInjectionDeprecation(keyName, message); + return value; + } + + }); + } /** `CoreObject` is the base class for all Ember constructs. It establishes a class system based on Ember's Mixin system, and provides the basis for the @@ -27047,6 +27718,18 @@ define("@ember/-internals/runtime/lib/system/core_object", ["exports", "@ember/- }); } + function implicitInjectionDeprecation(keyName, msg = null) { + (true && !(false) && (0, _debug.deprecate)(msg, false, { + id: 'implicit-injections', + until: '4.0.0', + url: 'https://deprecations.emberjs.com/v3.x#toc_implicit-injections', + for: 'ember-source', + since: { + enabled: '3.26.0' + } + })); + } + var _default = CoreObject; _exports.default = _default; }); @@ -32568,7 +33251,6 @@ define("@ember/application/lib/application", ["exports", "@ember/-internals/util }); registry.register('route:basic', _routing.Route); registry.register('event_dispatcher:main', _views.EventDispatcher); - registry.injection('router:main', 'namespace', 'application:main'); registry.register('location:auto', _routing.AutoLocation); registry.register('location:hash', _routing.HashLocation); registry.register('location:history', _routing.HistoryLocation); @@ -34432,21 +35114,14 @@ define("@ember/engine/index", ["exports", "@ember/engine/lib/engine-parent", "@e instantiate: false }); registry.injection('renderer', '_viewRegistry', '-view-registry:main'); - registry.injection('route', '_topLevelViewTemplate', 'template:-outlet'); - registry.injection('view:-outlet', 'namespace', 'application:main'); - registry.injection('controller', 'target', 'router:main'); - registry.injection('controller', 'namespace', 'application:main'); - registry.injection('router', '_bucketCache', (0, _container.privatize)`-bucket-cache:main`); - registry.injection('route', '_bucketCache', (0, _container.privatize)`-bucket-cache:main`); - registry.injection('route', '_router', 'router:main'); // Register the routing service... + registry.injection('view:-outlet', 'namespace', 'application:main'); // Register the routing service... registry.register('service:-routing', _routing.RoutingService); // DEBUGGING registry.register('resolver-for-debugging:main', registry.resolver, { instantiate: false }); - registry.injection('container-debug-adapter:main', 'resolver', 'resolver-for-debugging:main'); - registry.injection('data-adapter:main', 'containerDebugAdapter', 'container-debug-adapter:main'); // Custom resolver authors may want to register their own ContainerDebugAdapter with this key + registry.injection('container-debug-adapter:main', 'resolver', 'resolver-for-debugging:main'); // Custom resolver authors may want to register their own ContainerDebugAdapter with this key registry.register('container-debug-adapter:main', _extensionSupport.ContainerDebugAdapter); registry.register('component-lookup:main', _views.ComponentLookup); @@ -34635,7 +35310,6 @@ define("@ember/engine/instance", ["exports", "@ember/-internals/runtime", "@embe } registry.injection('view', '_environment', '-environment:main'); - registry.injection('route', '_environment', '-environment:main'); } }); @@ -40884,7 +41558,8 @@ define("@glimmer/manager", ["exports", "@glimmer/util", "@glimmer/reference", "@ useArgsProxy, passFactoryToCreate } = delegate.capabilities; - var args = useArgsProxy ? argsProxyFor(capturedArgs, 'modifier') : reifyArgs(capturedArgs); + var argsProxy = argsProxyFor(capturedArgs, 'modifier'); + var args = useArgsProxy ? argsProxy : reifyArgs(capturedArgs); var instance; var factoryOrDefinition = definition; @@ -40943,7 +41618,7 @@ define("@glimmer/manager", ["exports", "@glimmer/util", "@glimmer/reference", "@ state.debugName = typeof definition === 'function' ? definition.name : definition.toString(); } - (0, _destroyable.registerDestructor)(state, () => delegate.destroyModifier(instance, state.args)); + (0, _destroyable.registerDestructor)(state, () => delegate.destroyModifier(instance, argsProxy)); return state; } @@ -59164,7 +59839,7 @@ define("ember-testing/lib/test/waiters", ["exports"], function (_exports) { return -1; } }); -define("ember/index", ["exports", "require", "@ember/-internals/environment", "node-module", "@ember/-internals/utils", "@ember/-internals/container", "@ember/instrumentation", "@ember/-internals/meta", "@ember/-internals/metal", "@ember/canary-features", "@ember/debug", "backburner", "@ember/-internals/console", "@ember/controller", "@ember/controller/lib/controller_mixin", "@ember/string", "@ember/service", "@ember/object", "@ember/object/compat", "@ember/object/computed", "@ember/-internals/runtime", "@ember/-internals/glimmer", "ember/version", "@ember/-internals/views", "@ember/-internals/routing", "@ember/-internals/extension-support", "@ember/error", "@ember/runloop", "@ember/-internals/error-handling", "@ember/-internals/owner", "@ember/application", "@ember/application/globals-resolver", "@ember/application/instance", "@ember/engine", "@ember/engine/instance", "@ember/polyfills", "@ember/deprecated-features", "@glimmer/runtime", "@glimmer/manager", "@ember/destroyable"], function (_exports, _require, _environment, _nodeModule, utils, _container, instrumentation, _meta, metal, _canaryFeatures, EmberDebug, _backburner, _console, _controller, _controller_mixin, _string, _service, _object, _compat, _computed, _runtime, _glimmer, _version, views, routing, extensionSupport, _error, runloop, _errorHandling, _owner, _application, _globalsResolver, _instance, _engine, _instance2, _polyfills, _deprecatedFeatures, _runtime2, _manager, _destroyable) { +define("ember/index", ["exports", "require", "@ember/-internals/environment", "node-module", "@ember/-internals/utils", "@ember/-internals/container", "@ember/instrumentation", "@ember/-internals/meta", "@ember/-internals/metal", "@ember/canary-features", "@ember/debug", "backburner", "@ember/-internals/console", "@ember/controller", "@ember/controller/lib/controller_mixin", "@ember/string", "@ember/service", "@ember/object", "@ember/object/compat", "@ember/object/computed", "@ember/-internals/runtime", "@ember/-internals/glimmer", "ember/version", "@ember/-internals/views", "@ember/-internals/routing", "@ember/-internals/extension-support", "@ember/error", "@ember/runloop", "@ember/-internals/error-handling", "@ember/-internals/owner", "@ember/application", "@ember/application/globals-resolver", "@ember/application/instance", "@ember/engine", "@ember/engine/instance", "@ember/polyfills", "@ember/deprecated-features", "@glimmer/runtime", "@glimmer/manager", "@ember/destroyable", "@ember/-internals/browser-environment"], function (_exports, _require, _environment, _nodeModule, utils, _container, instrumentation, _meta, metal, _canaryFeatures, EmberDebug, _backburner, _console, _controller, _controller_mixin, _string, _service, _object, _compat, _computed, _runtime, _glimmer, _version, views, routing, extensionSupport, _error, runloop, _errorHandling, _owner, _application, _globalsResolver, _instance, _engine, _instance2, _polyfills, _deprecatedFeatures, _runtime2, _manager, _destroyable, _browserEnvironment) { "use strict"; Object.defineProperty(_exports, "__esModule", { @@ -59174,6 +59849,15 @@ define("ember/index", ["exports", "require", "@ember/-internals/environment", "n // eslint-disable-next-line import/no-unresolved // ****@ember/-internals/environment**** var Ember = typeof _environment.context.imports.Ember === 'object' && _environment.context.imports.Ember || {}; + (true && !(!_browserEnvironment.isIE) && (0, EmberDebug.deprecate)('Internet Explorer 11 will no longer be supported in the next major version of Ember. For details on the new browser support policy, see the official documentation: http://emberjs.com/browser-support', !_browserEnvironment.isIE, { + id: '3-0-browser-support-policy', + url: 'https://emberjs.com/deprecations/v3.x#toc_3-0-browser-support-policy', + until: '4.0.0', + for: 'ember-source', + since: { + enabled: '3.26.0' + } + })); Ember.isNamespace = true; Ember.toString = function () { @@ -59574,9 +60258,9 @@ define("ember/index", ["exports", "require", "@ember/-internals/environment", "n } Ember._setComponentManager = _glimmer.setComponentManager; - Ember._componentManagerCapabilities = _manager.componentCapabilities; + Ember._componentManagerCapabilities = _glimmer.componentCapabilities; Ember._setModifierManager = _manager.setModifierManager; - Ember._modifierManagerCapabilities = _manager.modifierCapabilities; + Ember._modifierManagerCapabilities = _glimmer.modifierCapabilities; Ember._getComponentTemplate = _manager.getComponentTemplate; Ember._setComponentTemplate = _manager.setComponentTemplate; Ember._templateOnlyComponent = _runtime2.templateOnlyComponent; @@ -59779,7 +60463,7 @@ define("ember/version", ["exports"], function (_exports) { value: true }); _exports.default = void 0; - var _default = "3.25.3"; + var _default = "3.26.0"; _exports.default = _default; }); define("node-module/index", ["exports"], function (_exports) { diff --git a/resources/ember.js/3.25.3/note b/resources/ember.js/3.26.0/note similarity index 100% rename from resources/ember.js/3.25.3/note rename to resources/ember.js/3.26.0/note