ember-source 4.4.0-alpha.3 → 4.4.0-alpha.4
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/blueprints/acceptance-test/mocha-rfc-232-files/tests/acceptance/__name__-test.js +1 -1
- package/blueprints/acceptance-test/qunit-rfc-232-files/tests/acceptance/__name__-test.js +1 -1
- package/blueprints/component-test/mocha-rfc-232-files/__root__/__testType__/__path__/__test__.js +2 -2
- package/blueprints/component-test/qunit-rfc-232-files/__root__/__testType__/__path__/__test__.js +2 -2
- package/blueprints/controller-test/mocha-rfc-232-files/__root__/__testType__/__path__/__test__.js +1 -1
- package/blueprints/controller-test/qunit-rfc-232-files/__root__/__testType__/__path__/__test__.js +1 -1
- package/blueprints/helper-test/mocha-rfc-232-files/__root__/__testType__/__collection__/__name__-test.js +1 -1
- package/blueprints/helper-test/qunit-rfc-232-files/__root__/__testType__/__collection__/__name__-test.js +1 -1
- package/blueprints/route-test/mocha-rfc-232-files/__root__/__testType__/__path__/__test__.js +1 -1
- package/blueprints/route-test/qunit-rfc-232-files/__root__/__testType__/__path__/__test__.js +1 -1
- package/blueprints/service-test/mocha-rfc-232-files/__root__/__testType__/__path__/__test__.js +1 -1
- package/blueprints/service-test/qunit-rfc-232-files/__root__/__testType__/__path__/__test__.js +1 -1
- package/build-metadata.json +3 -3
- package/dist/ember-template-compiler.js +7 -3
- package/dist/ember-template-compiler.map +1 -1
- package/dist/ember-testing.js +2 -2
- package/dist/ember-testing.map +1 -1
- package/dist/ember.debug.js +298 -957
- package/dist/ember.debug.map +1 -1
- package/dist/header/license.js +1 -1
- package/dist/packages/@ember/-internals/container/index.js +0 -16
- package/dist/packages/@ember/-internals/extension-support/lib/container_debug_adapter.js +10 -19
- package/dist/packages/@ember/-internals/extension-support/lib/data_adapter.js +113 -112
- package/dist/packages/@ember/-internals/glimmer/index.js +112 -748
- package/dist/packages/@ember/-internals/metal/index.js +1 -4
- package/dist/packages/@ember/-internals/routing/lib/system/router.js +1 -1
- package/dist/packages/@ember/-internals/runtime/lib/ext/rsvp.js +8 -4
- package/dist/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +1 -1
- package/dist/packages/@ember/-internals/runtime/lib/mixins/array.js +1 -1
- package/dist/packages/@ember/-internals/runtime/lib/mixins/promise_proxy.js +16 -16
- package/dist/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +8 -8
- package/dist/packages/@ember/-internals/views/lib/system/utils.js +4 -2
- package/dist/packages/@ember/-internals/views/lib/views/core_view.js +5 -22
- package/dist/packages/@ember/debug/index.js +1 -1
- package/dist/packages/@ember/renderer/index.js +21 -0
- package/dist/packages/ember/version.js +1 -1
- package/docs/data.json +400 -210
- package/package.json +9 -9
package/dist/ember.debug.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* Portions Copyright 2008-2011 Apple Inc. All rights reserved.
|
|
7
7
|
* @license Licensed under MIT license
|
|
8
8
|
* See https://raw.github.com/emberjs/ember.js/master/LICENSE
|
|
9
|
-
* @version 4.4.0-alpha.
|
|
9
|
+
* @version 4.4.0-alpha.4
|
|
10
10
|
*/
|
|
11
11
|
/* eslint-disable no-var */
|
|
12
12
|
|
|
@@ -704,22 +704,6 @@ define("@ember/-internals/container/index", ["exports", "@ember/-internals/owner
|
|
|
704
704
|
container(options) {
|
|
705
705
|
return new Container(this, options);
|
|
706
706
|
}
|
|
707
|
-
/**
|
|
708
|
-
Registers a factory for later injection.
|
|
709
|
-
Example:
|
|
710
|
-
```javascript
|
|
711
|
-
let registry = new Registry();
|
|
712
|
-
registry.register('model:user', Person, {singleton: false });
|
|
713
|
-
registry.register('fruit:favorite', Orange);
|
|
714
|
-
registry.register('communication:main', Email, {singleton: false});
|
|
715
|
-
```
|
|
716
|
-
@private
|
|
717
|
-
@method register
|
|
718
|
-
@param {String} fullName
|
|
719
|
-
@param {Function} factory
|
|
720
|
-
@param {Object} options
|
|
721
|
-
*/
|
|
722
|
-
|
|
723
707
|
|
|
724
708
|
register(fullName, factory, options) {
|
|
725
709
|
if (options === void 0) {
|
|
@@ -1497,23 +1481,11 @@ define("@ember/-internals/extension-support/lib/container_debug_adapter", ["expo
|
|
|
1497
1481
|
@since 1.5.0
|
|
1498
1482
|
@public
|
|
1499
1483
|
*/
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1484
|
+
class ContainerDebugAdapter extends _runtime.Object {
|
|
1485
|
+
constructor(owner) {
|
|
1486
|
+
super(owner);
|
|
1504
1487
|
this.resolver = (0, _owner.getOwner)(this).lookup('resolver-for-debugging:main');
|
|
1505
|
-
}
|
|
1506
|
-
|
|
1507
|
-
/**
|
|
1508
|
-
The resolver instance of the application
|
|
1509
|
-
being debugged. This property will be injected
|
|
1510
|
-
on creation.
|
|
1511
|
-
@property resolver
|
|
1512
|
-
@default null
|
|
1513
|
-
@public
|
|
1514
|
-
*/
|
|
1515
|
-
resolver: null,
|
|
1516
|
-
|
|
1488
|
+
}
|
|
1517
1489
|
/**
|
|
1518
1490
|
Returns true if it is possible to catalog a list of available
|
|
1519
1491
|
classes in the resolver for a given type.
|
|
@@ -1522,14 +1494,15 @@ define("@ember/-internals/extension-support/lib/container_debug_adapter", ["expo
|
|
|
1522
1494
|
@return {boolean} whether a list is available for this type.
|
|
1523
1495
|
@public
|
|
1524
1496
|
*/
|
|
1497
|
+
|
|
1498
|
+
|
|
1525
1499
|
canCatalogEntriesByType(type) {
|
|
1526
1500
|
if (type === 'model' || type === 'template') {
|
|
1527
1501
|
return false;
|
|
1528
1502
|
}
|
|
1529
1503
|
|
|
1530
1504
|
return true;
|
|
1531
|
-
}
|
|
1532
|
-
|
|
1505
|
+
}
|
|
1533
1506
|
/**
|
|
1534
1507
|
Returns the available classes a given type.
|
|
1535
1508
|
@method catalogEntriesByType
|
|
@@ -1537,6 +1510,8 @@ define("@ember/-internals/extension-support/lib/container_debug_adapter", ["expo
|
|
|
1537
1510
|
@return {Array} An array of strings.
|
|
1538
1511
|
@public
|
|
1539
1512
|
*/
|
|
1513
|
+
|
|
1514
|
+
|
|
1540
1515
|
catalogEntriesByType(type) {
|
|
1541
1516
|
var namespaces = (0, _runtime.A)(_runtime.Namespace.NAMESPACES);
|
|
1542
1517
|
var types = (0, _runtime.A)();
|
|
@@ -1559,9 +1534,9 @@ define("@ember/-internals/extension-support/lib/container_debug_adapter", ["expo
|
|
|
1559
1534
|
return types;
|
|
1560
1535
|
}
|
|
1561
1536
|
|
|
1562
|
-
}
|
|
1537
|
+
}
|
|
1563
1538
|
|
|
1564
|
-
_exports.default =
|
|
1539
|
+
_exports.default = ContainerDebugAdapter;
|
|
1565
1540
|
});
|
|
1566
1541
|
define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@ember/-internals/owner", "@ember/runloop", "@ember/-internals/metal", "@ember/string", "@ember/-internals/runtime", "@glimmer/validator"], function (_exports, _owner, _runloop, _metal, _string, _runtime, _validator) {
|
|
1567
1542
|
"use strict";
|
|
@@ -1583,12 +1558,12 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
1583
1558
|
|
|
1584
1559
|
class RecordsWatcher {
|
|
1585
1560
|
constructor(records, recordsAdded, recordsUpdated, recordsRemoved, wrapRecord, release) {
|
|
1561
|
+
this.wrapRecord = wrapRecord;
|
|
1562
|
+
this.release = release;
|
|
1586
1563
|
this.recordCaches = new Map();
|
|
1587
1564
|
this.added = [];
|
|
1588
1565
|
this.updated = [];
|
|
1589
1566
|
this.removed = [];
|
|
1590
|
-
this.release = release;
|
|
1591
|
-
this.wrapRecord = wrapRecord;
|
|
1592
1567
|
this.recordArrayCache = (0, _validator.createCache)(() => {
|
|
1593
1568
|
var seen = new Set(); // Track `[]` for legacy support
|
|
1594
1569
|
|
|
@@ -1600,7 +1575,7 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
1600
1575
|
// should not be polled again in the future
|
|
1601
1576
|
|
|
1602
1577
|
(0, _validator.untrack)(() => {
|
|
1603
|
-
this.recordCaches.forEach((
|
|
1578
|
+
this.recordCaches.forEach((_cache, record) => {
|
|
1604
1579
|
if (!seen.has(record)) {
|
|
1605
1580
|
this.removed.push(wrapRecord(record));
|
|
1606
1581
|
this.recordCaches.delete(record);
|
|
@@ -1652,6 +1627,7 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
1652
1627
|
|
|
1653
1628
|
class TypeWatcher {
|
|
1654
1629
|
constructor(records, onChange, release) {
|
|
1630
|
+
this.release = release;
|
|
1655
1631
|
var hasBeenAccessed = false;
|
|
1656
1632
|
this.cache = (0, _validator.createCache)(() => {
|
|
1657
1633
|
// Empty iteration, we're doing this just
|
|
@@ -1720,49 +1696,47 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
1720
1696
|
*/
|
|
1721
1697
|
|
|
1722
1698
|
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
this.containerDebugAdapter = (0, _owner.getOwner)(this).lookup('container-debug-adapter:main');
|
|
1699
|
+
class DataAdapter extends _runtime.Object {
|
|
1700
|
+
constructor(owner) {
|
|
1701
|
+
super(owner);
|
|
1728
1702
|
this.releaseMethods = (0, _runtime.A)();
|
|
1729
1703
|
this.recordsWatchers = new Map();
|
|
1730
1704
|
this.typeWatchers = new Map();
|
|
1731
1705
|
this.flushWatchers = null;
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
@public
|
|
1741
|
-
**/
|
|
1706
|
+
/**
|
|
1707
|
+
The container-debug-adapter which is used
|
|
1708
|
+
to list all models.
|
|
1709
|
+
@property containerDebugAdapter
|
|
1710
|
+
@default undefined
|
|
1711
|
+
@since 1.5.0
|
|
1712
|
+
@public
|
|
1713
|
+
**/
|
|
1742
1714
|
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
attributeLimit: 3,
|
|
1715
|
+
/**
|
|
1716
|
+
The number of attributes to send
|
|
1717
|
+
as columns. (Enough to make the record
|
|
1718
|
+
identifiable).
|
|
1719
|
+
@private
|
|
1720
|
+
@property attributeLimit
|
|
1721
|
+
@default 3
|
|
1722
|
+
@since 1.3.0
|
|
1723
|
+
*/
|
|
1753
1724
|
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1725
|
+
this.attributeLimit = 3;
|
|
1726
|
+
/**
|
|
1727
|
+
Ember Data > v1.0.0-beta.18
|
|
1728
|
+
requires string model names to be passed
|
|
1729
|
+
around instead of the actual factories.
|
|
1730
|
+
This is a stamp for the Ember Inspector
|
|
1731
|
+
to differentiate between the versions
|
|
1732
|
+
to be able to support older versions too.
|
|
1733
|
+
@public
|
|
1734
|
+
@property acceptsModelName
|
|
1735
|
+
*/
|
|
1765
1736
|
|
|
1737
|
+
this.acceptsModelName = true;
|
|
1738
|
+
this.containerDebugAdapter = (0, _owner.getOwner)(this).lookup('container-debug-adapter:main');
|
|
1739
|
+
}
|
|
1766
1740
|
/**
|
|
1767
1741
|
Map from records arrays to RecordsWatcher instances
|
|
1768
1742
|
@private
|
|
@@ -1802,10 +1776,11 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
1802
1776
|
@return {Array} List of objects defining filters.
|
|
1803
1777
|
The object should have a `name` and `desc` property.
|
|
1804
1778
|
*/
|
|
1779
|
+
|
|
1780
|
+
|
|
1805
1781
|
getFilters() {
|
|
1806
1782
|
return (0, _runtime.A)();
|
|
1807
|
-
}
|
|
1808
|
-
|
|
1783
|
+
}
|
|
1809
1784
|
/**
|
|
1810
1785
|
Fetch the model types and observe them for changes.
|
|
1811
1786
|
@public
|
|
@@ -1816,6 +1791,8 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
1816
1791
|
Takes an array of objects containing wrapped types.
|
|
1817
1792
|
@return {Function} Method to call to remove all observers
|
|
1818
1793
|
*/
|
|
1794
|
+
|
|
1795
|
+
|
|
1819
1796
|
watchModelTypes(typesAdded, typesUpdated) {
|
|
1820
1797
|
var modelTypes = this.getModelTypes();
|
|
1821
1798
|
var releaseMethods = (0, _runtime.A)();
|
|
@@ -1835,7 +1812,7 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
1835
1812
|
|
|
1836
1813
|
this.releaseMethods.pushObject(release);
|
|
1837
1814
|
return release;
|
|
1838
|
-
}
|
|
1815
|
+
}
|
|
1839
1816
|
|
|
1840
1817
|
_nameToClass(type) {
|
|
1841
1818
|
if (typeof type === 'string') {
|
|
@@ -1845,8 +1822,7 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
1845
1822
|
}
|
|
1846
1823
|
|
|
1847
1824
|
return type;
|
|
1848
|
-
}
|
|
1849
|
-
|
|
1825
|
+
}
|
|
1850
1826
|
/**
|
|
1851
1827
|
Fetch the records of a given type and observe them for changes.
|
|
1852
1828
|
@public
|
|
@@ -1863,6 +1839,8 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
1863
1839
|
Takes an array of objects containing wrapped records.
|
|
1864
1840
|
@return {Function} Method to call to remove all observers.
|
|
1865
1841
|
*/
|
|
1842
|
+
|
|
1843
|
+
|
|
1866
1844
|
watchRecords(modelName, recordsAdded, recordsUpdated, recordsRemoved) {
|
|
1867
1845
|
var klass = this._nameToClass(modelName);
|
|
1868
1846
|
|
|
@@ -1883,7 +1861,7 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
1883
1861
|
}
|
|
1884
1862
|
|
|
1885
1863
|
return recordsWatcher.release;
|
|
1886
|
-
}
|
|
1864
|
+
}
|
|
1887
1865
|
|
|
1888
1866
|
updateFlushWatchers() {
|
|
1889
1867
|
if (this.flushWatchers === null) {
|
|
@@ -1900,13 +1878,14 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
1900
1878
|
|
|
1901
1879
|
this.flushWatchers = null;
|
|
1902
1880
|
}
|
|
1903
|
-
}
|
|
1904
|
-
|
|
1881
|
+
}
|
|
1905
1882
|
/**
|
|
1906
1883
|
Clear all observers before destruction
|
|
1907
1884
|
@private
|
|
1908
1885
|
@method willDestroy
|
|
1909
1886
|
*/
|
|
1887
|
+
|
|
1888
|
+
|
|
1910
1889
|
willDestroy() {
|
|
1911
1890
|
this._super(...arguments);
|
|
1912
1891
|
|
|
@@ -1917,8 +1896,7 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
1917
1896
|
if (this.flushWatchers) {
|
|
1918
1897
|
_runloop._backburner.off('end', this.flushWatchers);
|
|
1919
1898
|
}
|
|
1920
|
-
}
|
|
1921
|
-
|
|
1899
|
+
}
|
|
1922
1900
|
/**
|
|
1923
1901
|
Detect whether a class is a model.
|
|
1924
1902
|
Test that against the model class
|
|
@@ -1927,10 +1905,11 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
1927
1905
|
@method detect
|
|
1928
1906
|
@return boolean Whether the class is a model class or not.
|
|
1929
1907
|
*/
|
|
1930
|
-
detect() {
|
|
1931
|
-
return false;
|
|
1932
|
-
},
|
|
1933
1908
|
|
|
1909
|
+
|
|
1910
|
+
detect(_klass) {
|
|
1911
|
+
return false;
|
|
1912
|
+
}
|
|
1934
1913
|
/**
|
|
1935
1914
|
Get the columns for a given model type.
|
|
1936
1915
|
@public
|
|
@@ -1939,10 +1918,11 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
1939
1918
|
name: {String} The name of the column.
|
|
1940
1919
|
desc: {String} Humanized description (what would show in a table column name).
|
|
1941
1920
|
*/
|
|
1942
|
-
columnsForType() {
|
|
1943
|
-
return (0, _runtime.A)();
|
|
1944
|
-
},
|
|
1945
1921
|
|
|
1922
|
+
|
|
1923
|
+
columnsForType(_klass) {
|
|
1924
|
+
return (0, _runtime.A)();
|
|
1925
|
+
}
|
|
1946
1926
|
/**
|
|
1947
1927
|
Adds observers to a model type class.
|
|
1948
1928
|
@private
|
|
@@ -1951,6 +1931,8 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
1951
1931
|
@param {Function} typesUpdated Called when a type is modified.
|
|
1952
1932
|
@return {Function} The function to call to remove observers.
|
|
1953
1933
|
*/
|
|
1934
|
+
|
|
1935
|
+
|
|
1954
1936
|
observeModelType(modelName, typesUpdated) {
|
|
1955
1937
|
var klass = this._nameToClass(modelName);
|
|
1956
1938
|
|
|
@@ -1976,63 +1958,50 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
1976
1958
|
}
|
|
1977
1959
|
|
|
1978
1960
|
return typeWatcher.release;
|
|
1979
|
-
}
|
|
1980
|
-
|
|
1961
|
+
}
|
|
1981
1962
|
/**
|
|
1982
1963
|
Wraps a given model type and observes changes to it.
|
|
1983
1964
|
@private
|
|
1984
1965
|
@method wrapModelType
|
|
1985
1966
|
@param {Class} klass A model class.
|
|
1986
1967
|
@param {String} modelName Name of the class.
|
|
1987
|
-
@return {Object}
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
count: {Integer} The number of records available.
|
|
1993
|
-
columns: {Columns} An array of columns to describe the record.
|
|
1994
|
-
object: {Class} The actual Model type class.
|
|
1995
|
-
release: {Function} The function to remove observers.
|
|
1968
|
+
@return {Object} The wrapped type has the following format:
|
|
1969
|
+
name: {String} The name of the type.
|
|
1970
|
+
count: {Integer} The number of records available.
|
|
1971
|
+
columns: {Columns} An array of columns to describe the record.
|
|
1972
|
+
object: {Class} The actual Model type class.
|
|
1996
1973
|
*/
|
|
1974
|
+
|
|
1975
|
+
|
|
1997
1976
|
wrapModelType(klass, name) {
|
|
1998
1977
|
var records = this.getRecords(klass, name);
|
|
1999
|
-
|
|
2000
|
-
typeToSend = {
|
|
1978
|
+
return {
|
|
2001
1979
|
name,
|
|
2002
1980
|
count: (0, _metal.get)(records, 'length'),
|
|
2003
1981
|
columns: this.columnsForType(klass),
|
|
2004
1982
|
object: klass
|
|
2005
1983
|
};
|
|
2006
|
-
|
|
2007
|
-
},
|
|
2008
|
-
|
|
1984
|
+
}
|
|
2009
1985
|
/**
|
|
2010
1986
|
Fetches all models defined in the application.
|
|
2011
1987
|
@private
|
|
2012
1988
|
@method getModelTypes
|
|
2013
1989
|
@return {Array} Array of model types.
|
|
2014
1990
|
*/
|
|
2015
|
-
getModelTypes() {
|
|
2016
|
-
var containerDebugAdapter = this.get('containerDebugAdapter');
|
|
2017
|
-
var types;
|
|
2018
1991
|
|
|
2019
|
-
if (containerDebugAdapter.canCatalogEntriesByType('model')) {
|
|
2020
|
-
types = containerDebugAdapter.catalogEntriesByType('model');
|
|
2021
|
-
} else {
|
|
2022
|
-
types = this._getObjectsOnNamespaces();
|
|
2023
|
-
} // New adapters return strings instead of classes.
|
|
2024
1992
|
|
|
1993
|
+
getModelTypes() {
|
|
1994
|
+
var containerDebugAdapter = this.containerDebugAdapter;
|
|
1995
|
+
var stringTypes = containerDebugAdapter.canCatalogEntriesByType('model') ? containerDebugAdapter.catalogEntriesByType('model') : this._getObjectsOnNamespaces(); // New adapters return strings instead of classes.
|
|
2025
1996
|
|
|
2026
|
-
|
|
1997
|
+
var klassTypes = (0, _runtime.A)(stringTypes).map(name => {
|
|
2027
1998
|
return {
|
|
2028
1999
|
klass: this._nameToClass(name),
|
|
2029
2000
|
name
|
|
2030
2001
|
};
|
|
2031
2002
|
});
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
},
|
|
2035
|
-
|
|
2003
|
+
return (0, _runtime.A)(klassTypes).filter(type => this.detect(type.klass));
|
|
2004
|
+
}
|
|
2036
2005
|
/**
|
|
2037
2006
|
Loops over all namespaces and all objects
|
|
2038
2007
|
attached to them.
|
|
@@ -2040,6 +2009,8 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
2040
2009
|
@method _getObjectsOnNamespaces
|
|
2041
2010
|
@return {Array} Array of model type strings.
|
|
2042
2011
|
*/
|
|
2012
|
+
|
|
2013
|
+
|
|
2043
2014
|
_getObjectsOnNamespaces() {
|
|
2044
2015
|
var namespaces = (0, _runtime.A)(_runtime.Namespace.NAMESPACES);
|
|
2045
2016
|
var types = (0, _runtime.A)();
|
|
@@ -2060,8 +2031,7 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
2060
2031
|
}
|
|
2061
2032
|
});
|
|
2062
2033
|
return types;
|
|
2063
|
-
}
|
|
2064
|
-
|
|
2034
|
+
}
|
|
2065
2035
|
/**
|
|
2066
2036
|
Fetches all loaded records for a given type.
|
|
2067
2037
|
@public
|
|
@@ -2070,10 +2040,11 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
2070
2040
|
This array will be observed for changes,
|
|
2071
2041
|
so it should update when new records are added/removed.
|
|
2072
2042
|
*/
|
|
2073
|
-
getRecords() {
|
|
2074
|
-
return (0, _runtime.A)();
|
|
2075
|
-
},
|
|
2076
2043
|
|
|
2044
|
+
|
|
2045
|
+
getRecords(_klass, _name) {
|
|
2046
|
+
return (0, _runtime.A)();
|
|
2047
|
+
}
|
|
2077
2048
|
/**
|
|
2078
2049
|
Wraps a record and observers changes to it.
|
|
2079
2050
|
@private
|
|
@@ -2083,17 +2054,17 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
2083
2054
|
columnValues: {Array}
|
|
2084
2055
|
searchKeywords: {Array}
|
|
2085
2056
|
*/
|
|
2057
|
+
|
|
2058
|
+
|
|
2086
2059
|
wrapRecord(record) {
|
|
2087
|
-
|
|
2088
|
-
object: record
|
|
2060
|
+
return {
|
|
2061
|
+
object: record,
|
|
2062
|
+
columnValues: this.getRecordColumnValues(record),
|
|
2063
|
+
searchKeywords: this.getRecordKeywords(record),
|
|
2064
|
+
filterValues: this.getRecordFilterValues(record),
|
|
2065
|
+
color: this.getRecordColor(record)
|
|
2089
2066
|
};
|
|
2090
|
-
|
|
2091
|
-
recordToSend.searchKeywords = this.getRecordKeywords(record);
|
|
2092
|
-
recordToSend.filterValues = this.getRecordFilterValues(record);
|
|
2093
|
-
recordToSend.color = this.getRecordColor(record);
|
|
2094
|
-
return recordToSend;
|
|
2095
|
-
},
|
|
2096
|
-
|
|
2067
|
+
}
|
|
2097
2068
|
/**
|
|
2098
2069
|
Gets the values for each column.
|
|
2099
2070
|
@public
|
|
@@ -2101,20 +2072,22 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
2101
2072
|
@return {Object} Keys should match column names defined
|
|
2102
2073
|
by the model type.
|
|
2103
2074
|
*/
|
|
2104
|
-
getRecordColumnValues() {
|
|
2105
|
-
return {};
|
|
2106
|
-
},
|
|
2107
2075
|
|
|
2076
|
+
|
|
2077
|
+
getRecordColumnValues(_record) {
|
|
2078
|
+
return {};
|
|
2079
|
+
}
|
|
2108
2080
|
/**
|
|
2109
2081
|
Returns keywords to match when searching records.
|
|
2110
2082
|
@public
|
|
2111
2083
|
@method getRecordKeywords
|
|
2112
2084
|
@return {Array} Relevant keywords for search.
|
|
2113
2085
|
*/
|
|
2114
|
-
getRecordKeywords() {
|
|
2115
|
-
return (0, _runtime.A)();
|
|
2116
|
-
},
|
|
2117
2086
|
|
|
2087
|
+
|
|
2088
|
+
getRecordKeywords(_record) {
|
|
2089
|
+
return (0, _runtime.A)();
|
|
2090
|
+
}
|
|
2118
2091
|
/**
|
|
2119
2092
|
Returns the values of filters defined by `getFilters`.
|
|
2120
2093
|
@public
|
|
@@ -2122,10 +2095,11 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
2122
2095
|
@param {Object} record The record instance.
|
|
2123
2096
|
@return {Object} The filter values.
|
|
2124
2097
|
*/
|
|
2125
|
-
getRecordFilterValues() {
|
|
2126
|
-
return {};
|
|
2127
|
-
},
|
|
2128
2098
|
|
|
2099
|
+
|
|
2100
|
+
getRecordFilterValues(_record) {
|
|
2101
|
+
return {};
|
|
2102
|
+
}
|
|
2129
2103
|
/**
|
|
2130
2104
|
Each record can have a color that represents its state.
|
|
2131
2105
|
@public
|
|
@@ -2134,13 +2108,15 @@ define("@ember/-internals/extension-support/lib/data_adapter", ["exports", "@emb
|
|
|
2134
2108
|
@return {String} The records color.
|
|
2135
2109
|
Possible options: black, red, blue, green.
|
|
2136
2110
|
*/
|
|
2137
|
-
|
|
2111
|
+
|
|
2112
|
+
|
|
2113
|
+
getRecordColor(_record) {
|
|
2138
2114
|
return null;
|
|
2139
2115
|
}
|
|
2140
2116
|
|
|
2141
|
-
}
|
|
2117
|
+
}
|
|
2142
2118
|
|
|
2143
|
-
_exports.default =
|
|
2119
|
+
_exports.default = DataAdapter;
|
|
2144
2120
|
});
|
|
2145
2121
|
define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler", "@ember/-internals/owner", "@ember/-internals/utils", "@ember/debug", "@glimmer/manager", "@glimmer/reference", "@glimmer/validator", "@ember/-internals/metal", "@ember/object", "@ember/-internals/browser-environment", "@ember/-internals/views", "@ember/engine", "@ember/engine/instance", "@ember/instrumentation", "@ember/service", "@ember/string", "@glimmer/destroyable", "@ember/runloop", "@glimmer/util", "@glimmer/runtime", "@ember/-internals/runtime", "@ember/-internals/environment", "@ember/-internals/container", "@glimmer/node", "@ember/-internals/glimmer", "@glimmer/global-context", "@ember/-internals/routing", "@glimmer/program", "rsvp"], function (_exports, _opcodeCompiler, _owner2, _utils, _debug, _manager2, _reference, _validator, _metal, _object, _browserEnvironment, _views, _engine, _instance, _instrumentation, _service, _string, _destroyable, _runloop, _util, _runtime, _runtime2, _environment2, _container, _node, _glimmer, _globalContext, _routing2, _program, _rsvp) {
|
|
2146
2122
|
"use strict";
|
|
@@ -2476,7 +2452,7 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
|
|
|
2476
2452
|
class AbstractInput extends InternalComponent {
|
|
2477
2453
|
constructor() {
|
|
2478
2454
|
super(...arguments);
|
|
2479
|
-
this._value = valueFrom(this.args.named
|
|
2455
|
+
this._value = valueFrom(this.args.named['value']);
|
|
2480
2456
|
}
|
|
2481
2457
|
|
|
2482
2458
|
validateArguments() {
|
|
@@ -2734,7 +2710,7 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
|
|
|
2734
2710
|
class Input extends AbstractInput {
|
|
2735
2711
|
constructor() {
|
|
2736
2712
|
super(...arguments);
|
|
2737
|
-
this._checked = valueFrom(this.args.named
|
|
2713
|
+
this._checked = valueFrom(this.args.named['checked']);
|
|
2738
2714
|
}
|
|
2739
2715
|
|
|
2740
2716
|
static toString() {
|
|
@@ -2774,7 +2750,7 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
|
|
|
2774
2750
|
|
|
2775
2751
|
get checked() {
|
|
2776
2752
|
if (this.isCheckbox) {
|
|
2777
|
-
(true && (0, _debug.warn)('`<Input @type="checkbox" />` reflects its checked state via the `@checked` argument. ' + 'You wrote `<Input @type="checkbox" @value={{...}} />` which is likely not what you intended. ' + 'Did you mean `<Input @type="checkbox" @checked={{...}} />`?', (0, _validator.untrack)(() => this.args.named
|
|
2753
|
+
(true && (0, _debug.warn)('`<Input @type="checkbox" />` reflects its checked state via the `@checked` argument. ' + 'You wrote `<Input @type="checkbox" @value={{...}} />` which is likely not what you intended. ' + 'Did you mean `<Input @type="checkbox" @checked={{...}} />`?', (0, _validator.untrack)(() => this.args.named['checked'] !== undefined || this.args.named['value'] === undefined || typeof (0, _reference.valueForRef)(this.args.named['value']) === 'string'), {
|
|
2778
2754
|
id: 'ember.built-in-components.input-checkbox-value'
|
|
2779
2755
|
}));
|
|
2780
2756
|
return this._checked.get();
|
|
@@ -2784,7 +2760,7 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
|
|
|
2784
2760
|
}
|
|
2785
2761
|
|
|
2786
2762
|
set checked(checked) {
|
|
2787
|
-
(true && (0, _debug.warn)('`<Input @type="checkbox" />` reflects its checked state via the `@checked` argument. ' + 'You wrote `<Input @type="checkbox" @value={{...}} />` which is likely not what you intended. ' + 'Did you mean `<Input @type="checkbox" @checked={{...}} />`?', (0, _validator.untrack)(() => this.args.named
|
|
2763
|
+
(true && (0, _debug.warn)('`<Input @type="checkbox" />` reflects its checked state via the `@checked` argument. ' + 'You wrote `<Input @type="checkbox" @value={{...}} />` which is likely not what you intended. ' + 'Did you mean `<Input @type="checkbox" @checked={{...}} />`?', (0, _validator.untrack)(() => this.args.named['checked'] !== undefined || this.args.named['value'] === undefined || typeof (0, _reference.valueForRef)(this.args.named['value']) === 'string'), {
|
|
2788
2764
|
id: 'ember.built-in-components.input-checkbox-value'
|
|
2789
2765
|
}));
|
|
2790
2766
|
|
|
@@ -4093,8 +4069,8 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
|
|
|
4093
4069
|
var [context, action$$1, ...restArgs] = positional;
|
|
4094
4070
|
(true && !(context && action$$1) && (0, _debug.assert)('hash position arguments', context && action$$1));
|
|
4095
4071
|
var debugKey = action$$1.debugLabel;
|
|
4096
|
-
var target = 'target' in named
|
|
4097
|
-
var processArgs = makeArgsProcessor('value' in named && named
|
|
4072
|
+
var target = 'target' in named ? named['target'] : context;
|
|
4073
|
+
var processArgs = makeArgsProcessor('value' in named && named['value'] || false, restArgs);
|
|
4098
4074
|
var fn$$1;
|
|
4099
4075
|
|
|
4100
4076
|
if ((0, _reference.isInvokableRef)(action$$1)) {
|
|
@@ -4735,624 +4711,6 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
|
|
|
4735
4711
|
}
|
|
4736
4712
|
|
|
4737
4713
|
var lazyEventsProcessed = new WeakMap();
|
|
4738
|
-
/**
|
|
4739
|
-
@module @ember/component
|
|
4740
|
-
*/
|
|
4741
|
-
|
|
4742
|
-
/**
|
|
4743
|
-
A component is a reusable UI element that consists of a `.hbs` template and an
|
|
4744
|
-
optional JavaScript class that defines its behavior. For example, someone
|
|
4745
|
-
might make a `button` in the template and handle the click behavior in the
|
|
4746
|
-
JavaScript file that shares the same name as the template.
|
|
4747
|
-
|
|
4748
|
-
Components are broken down into two categories:
|
|
4749
|
-
|
|
4750
|
-
- Components _without_ JavaScript, that are based only on a template. These
|
|
4751
|
-
are called Template-only or TO components.
|
|
4752
|
-
- Components _with_ JavaScript, which consist of a template and a backing
|
|
4753
|
-
class.
|
|
4754
|
-
|
|
4755
|
-
Ember ships with two types of JavaScript classes for components:
|
|
4756
|
-
|
|
4757
|
-
1. Glimmer components, imported from `@glimmer/component`, which are the
|
|
4758
|
-
default component's for Ember Octane (3.15) and more recent editions.
|
|
4759
|
-
2. Classic components, imported from `@ember/component`, which were the
|
|
4760
|
-
default for older editions of Ember (pre 3.15).
|
|
4761
|
-
|
|
4762
|
-
Below is the documentation for Classic components. If you are looking for the
|
|
4763
|
-
API documentation for Template-only or Glimmer components, it is
|
|
4764
|
-
[available here](/ember/release/modules/@glimmer%2Fcomponent).
|
|
4765
|
-
|
|
4766
|
-
## Defining a Classic Component
|
|
4767
|
-
|
|
4768
|
-
If you want to customize the component in order to handle events, transform
|
|
4769
|
-
arguments or maintain internal state, you implement a subclass of `Component`.
|
|
4770
|
-
|
|
4771
|
-
One example is to add computed properties to your component:
|
|
4772
|
-
|
|
4773
|
-
```app/components/person-profile.js
|
|
4774
|
-
import Component from '@ember/component';
|
|
4775
|
-
|
|
4776
|
-
export default Component.extend({
|
|
4777
|
-
displayName: computed('person.title', 'person.firstName', 'person.lastName', function() {
|
|
4778
|
-
let { title, firstName, lastName } = this.person;
|
|
4779
|
-
|
|
4780
|
-
if (title) {
|
|
4781
|
-
return `${title} ${lastName}`;
|
|
4782
|
-
} else {
|
|
4783
|
-
return `${firstName} ${lastName}`;
|
|
4784
|
-
}
|
|
4785
|
-
})
|
|
4786
|
-
});
|
|
4787
|
-
```
|
|
4788
|
-
|
|
4789
|
-
And then use it in the component's template:
|
|
4790
|
-
|
|
4791
|
-
```app/templates/components/person-profile.hbs
|
|
4792
|
-
<h1>{{this.displayName}}</h1>
|
|
4793
|
-
{{yield}}
|
|
4794
|
-
```
|
|
4795
|
-
|
|
4796
|
-
## Customizing a Classic Component's HTML Element in JavaScript
|
|
4797
|
-
|
|
4798
|
-
### HTML Tag
|
|
4799
|
-
|
|
4800
|
-
The default HTML tag name used for a component's HTML representation is `div`.
|
|
4801
|
-
This can be customized by setting the `tagName` property.
|
|
4802
|
-
|
|
4803
|
-
Consider the following component class:
|
|
4804
|
-
|
|
4805
|
-
```app/components/emphasized-paragraph.js
|
|
4806
|
-
import Component from '@ember/component';
|
|
4807
|
-
|
|
4808
|
-
export default Component.extend({
|
|
4809
|
-
tagName: 'em'
|
|
4810
|
-
});
|
|
4811
|
-
```
|
|
4812
|
-
|
|
4813
|
-
When invoked, this component would produce output that looks something like
|
|
4814
|
-
this:
|
|
4815
|
-
|
|
4816
|
-
```html
|
|
4817
|
-
<em id="ember1" class="ember-view"></em>
|
|
4818
|
-
```
|
|
4819
|
-
|
|
4820
|
-
### HTML `class` Attribute
|
|
4821
|
-
|
|
4822
|
-
The HTML `class` attribute of a component's tag can be set by providing a
|
|
4823
|
-
`classNames` property that is set to an array of strings:
|
|
4824
|
-
|
|
4825
|
-
```app/components/my-widget.js
|
|
4826
|
-
import Component from '@ember/component';
|
|
4827
|
-
|
|
4828
|
-
export default Component.extend({
|
|
4829
|
-
classNames: ['my-class', 'my-other-class']
|
|
4830
|
-
});
|
|
4831
|
-
```
|
|
4832
|
-
|
|
4833
|
-
Invoking this component will produce output that looks like this:
|
|
4834
|
-
|
|
4835
|
-
```html
|
|
4836
|
-
<div id="ember1" class="ember-view my-class my-other-class"></div>
|
|
4837
|
-
```
|
|
4838
|
-
|
|
4839
|
-
`class` attribute values can also be set by providing a `classNameBindings`
|
|
4840
|
-
property set to an array of properties names for the component. The return
|
|
4841
|
-
value of these properties will be added as part of the value for the
|
|
4842
|
-
components's `class` attribute. These properties can be computed properties:
|
|
4843
|
-
|
|
4844
|
-
```app/components/my-widget.js
|
|
4845
|
-
import Component from '@ember/component';
|
|
4846
|
-
import { computed } from '@ember/object';
|
|
4847
|
-
|
|
4848
|
-
export default Component.extend({
|
|
4849
|
-
classNames: ['my-class', 'my-other-class'],
|
|
4850
|
-
classNameBindings: ['propertyA', 'propertyB'],
|
|
4851
|
-
|
|
4852
|
-
propertyA: 'from-a',
|
|
4853
|
-
propertyB: computed(function() {
|
|
4854
|
-
if (someLogic) { return 'from-b'; }
|
|
4855
|
-
})
|
|
4856
|
-
});
|
|
4857
|
-
```
|
|
4858
|
-
|
|
4859
|
-
Invoking this component will produce HTML that looks like:
|
|
4860
|
-
|
|
4861
|
-
```html
|
|
4862
|
-
<div id="ember1" class="ember-view my-class my-other-class from-a from-b"></div>
|
|
4863
|
-
```
|
|
4864
|
-
|
|
4865
|
-
Note that `classNames` and `classNameBindings` is in addition to the `class`
|
|
4866
|
-
attribute passed with the angle bracket invocation syntax. Therefore, if this
|
|
4867
|
-
component was invoked like so:
|
|
4868
|
-
|
|
4869
|
-
```handlebars
|
|
4870
|
-
<MyWidget class="from-invocation" />
|
|
4871
|
-
```
|
|
4872
|
-
|
|
4873
|
-
The resulting HTML will look similar to this:
|
|
4874
|
-
|
|
4875
|
-
```html
|
|
4876
|
-
<div id="ember1" class="from-invocation ember-view my-class my-other-class from-a from-b"></div>
|
|
4877
|
-
```
|
|
4878
|
-
|
|
4879
|
-
If the value of a class name binding returns a boolean the property name
|
|
4880
|
-
itself will be used as the class name if the property is true. The class name
|
|
4881
|
-
will not be added if the value is `false` or `undefined`.
|
|
4882
|
-
|
|
4883
|
-
```app/components/my-widget.js
|
|
4884
|
-
import Component from '@ember/component';
|
|
4885
|
-
|
|
4886
|
-
export default Component.extend({
|
|
4887
|
-
classNameBindings: ['hovered'],
|
|
4888
|
-
|
|
4889
|
-
hovered: true
|
|
4890
|
-
});
|
|
4891
|
-
```
|
|
4892
|
-
|
|
4893
|
-
Invoking this component will produce HTML that looks like:
|
|
4894
|
-
|
|
4895
|
-
```html
|
|
4896
|
-
<div id="ember1" class="ember-view hovered"></div>
|
|
4897
|
-
```
|
|
4898
|
-
|
|
4899
|
-
### Custom Class Names for Boolean Values
|
|
4900
|
-
|
|
4901
|
-
When using boolean class name bindings you can supply a string value other
|
|
4902
|
-
than the property name for use as the `class` HTML attribute by appending the
|
|
4903
|
-
preferred value after a ":" character when defining the binding:
|
|
4904
|
-
|
|
4905
|
-
```app/components/my-widget.js
|
|
4906
|
-
import Component from '@ember/component';
|
|
4907
|
-
|
|
4908
|
-
export default Component.extend({
|
|
4909
|
-
classNameBindings: ['awesome:so-very-cool'],
|
|
4910
|
-
|
|
4911
|
-
awesome: true
|
|
4912
|
-
});
|
|
4913
|
-
```
|
|
4914
|
-
|
|
4915
|
-
Invoking this component will produce HTML that looks like:
|
|
4916
|
-
|
|
4917
|
-
```html
|
|
4918
|
-
<div id="ember1" class="ember-view so-very-cool"></div>
|
|
4919
|
-
```
|
|
4920
|
-
|
|
4921
|
-
Boolean value class name bindings whose property names are in a
|
|
4922
|
-
camelCase-style format will be converted to a dasherized format:
|
|
4923
|
-
|
|
4924
|
-
```app/components/my-widget.js
|
|
4925
|
-
import Component from '@ember/component';
|
|
4926
|
-
|
|
4927
|
-
export default Component.extend({
|
|
4928
|
-
classNameBindings: ['isUrgent'],
|
|
4929
|
-
|
|
4930
|
-
isUrgent: true
|
|
4931
|
-
});
|
|
4932
|
-
```
|
|
4933
|
-
|
|
4934
|
-
Invoking this component will produce HTML that looks like:
|
|
4935
|
-
|
|
4936
|
-
```html
|
|
4937
|
-
<div id="ember1" class="ember-view is-urgent"></div>
|
|
4938
|
-
```
|
|
4939
|
-
|
|
4940
|
-
Class name bindings can also refer to object values that are found by
|
|
4941
|
-
traversing a path relative to the component itself:
|
|
4942
|
-
|
|
4943
|
-
```app/components/my-widget.js
|
|
4944
|
-
import Component from '@ember/component';
|
|
4945
|
-
import EmberObject from '@ember/object';
|
|
4946
|
-
|
|
4947
|
-
export default Component.extend({
|
|
4948
|
-
classNameBindings: ['messages.empty'],
|
|
4949
|
-
|
|
4950
|
-
messages: EmberObject.create({
|
|
4951
|
-
empty: true
|
|
4952
|
-
})
|
|
4953
|
-
});
|
|
4954
|
-
```
|
|
4955
|
-
|
|
4956
|
-
Invoking this component will produce HTML that looks like:
|
|
4957
|
-
|
|
4958
|
-
```html
|
|
4959
|
-
<div id="ember1" class="ember-view empty"></div>
|
|
4960
|
-
```
|
|
4961
|
-
|
|
4962
|
-
If you want to add a class name for a property which evaluates to true and
|
|
4963
|
-
and a different class name if it evaluates to false, you can pass a binding
|
|
4964
|
-
like this:
|
|
4965
|
-
|
|
4966
|
-
```app/components/my-widget.js
|
|
4967
|
-
import Component from '@ember/component';
|
|
4968
|
-
|
|
4969
|
-
export default Component.extend({
|
|
4970
|
-
classNameBindings: ['isEnabled:enabled:disabled'],
|
|
4971
|
-
isEnabled: true
|
|
4972
|
-
});
|
|
4973
|
-
```
|
|
4974
|
-
|
|
4975
|
-
Invoking this component will produce HTML that looks like:
|
|
4976
|
-
|
|
4977
|
-
```html
|
|
4978
|
-
<div id="ember1" class="ember-view enabled"></div>
|
|
4979
|
-
```
|
|
4980
|
-
|
|
4981
|
-
When isEnabled is `false`, the resulting HTML representation looks like this:
|
|
4982
|
-
|
|
4983
|
-
```html
|
|
4984
|
-
<div id="ember1" class="ember-view disabled"></div>
|
|
4985
|
-
```
|
|
4986
|
-
|
|
4987
|
-
This syntax offers the convenience to add a class if a property is `false`:
|
|
4988
|
-
|
|
4989
|
-
```app/components/my-widget.js
|
|
4990
|
-
import Component from '@ember/component';
|
|
4991
|
-
|
|
4992
|
-
// Applies no class when isEnabled is true and class 'disabled' when isEnabled is false
|
|
4993
|
-
export default Component.extend({
|
|
4994
|
-
classNameBindings: ['isEnabled::disabled'],
|
|
4995
|
-
isEnabled: true
|
|
4996
|
-
});
|
|
4997
|
-
```
|
|
4998
|
-
|
|
4999
|
-
Invoking this component when the `isEnabled` property is true will produce
|
|
5000
|
-
HTML that looks like:
|
|
5001
|
-
|
|
5002
|
-
```html
|
|
5003
|
-
<div id="ember1" class="ember-view"></div>
|
|
5004
|
-
```
|
|
5005
|
-
|
|
5006
|
-
Invoking it when the `isEnabled` property on the component is `false` will
|
|
5007
|
-
produce HTML that looks like:
|
|
5008
|
-
|
|
5009
|
-
```html
|
|
5010
|
-
<div id="ember1" class="ember-view disabled"></div>
|
|
5011
|
-
```
|
|
5012
|
-
|
|
5013
|
-
Updates to the value of a class name binding will result in automatic update
|
|
5014
|
-
of the HTML `class` attribute in the component's rendered HTML
|
|
5015
|
-
representation. If the value becomes `false` or `undefined` the class name
|
|
5016
|
-
will be removed.
|
|
5017
|
-
|
|
5018
|
-
Both `classNames` and `classNameBindings` are concatenated properties. See
|
|
5019
|
-
[EmberObject](/ember/release/classes/EmberObject) documentation for more
|
|
5020
|
-
information about concatenated properties.
|
|
5021
|
-
|
|
5022
|
-
### Other HTML Attributes
|
|
5023
|
-
|
|
5024
|
-
The HTML attribute section of a component's tag can be set by providing an
|
|
5025
|
-
`attributeBindings` property set to an array of property names on the component.
|
|
5026
|
-
The return value of these properties will be used as the value of the component's
|
|
5027
|
-
HTML associated attribute:
|
|
5028
|
-
|
|
5029
|
-
```app/components/my-anchor.js
|
|
5030
|
-
import Component from '@ember/component';
|
|
5031
|
-
|
|
5032
|
-
export default Component.extend({
|
|
5033
|
-
tagName: 'a',
|
|
5034
|
-
attributeBindings: ['href'],
|
|
5035
|
-
|
|
5036
|
-
href: 'http://google.com'
|
|
5037
|
-
});
|
|
5038
|
-
```
|
|
5039
|
-
|
|
5040
|
-
Invoking this component will produce HTML that looks like:
|
|
5041
|
-
|
|
5042
|
-
```html
|
|
5043
|
-
<a id="ember1" class="ember-view" href="http://google.com"></a>
|
|
5044
|
-
```
|
|
5045
|
-
|
|
5046
|
-
One property can be mapped on to another by placing a ":" between
|
|
5047
|
-
the source property and the destination property:
|
|
5048
|
-
|
|
5049
|
-
```app/components/my-anchor.js
|
|
5050
|
-
import Component from '@ember/component';
|
|
5051
|
-
|
|
5052
|
-
export default Component.extend({
|
|
5053
|
-
tagName: 'a',
|
|
5054
|
-
attributeBindings: ['url:href'],
|
|
5055
|
-
|
|
5056
|
-
url: 'http://google.com'
|
|
5057
|
-
});
|
|
5058
|
-
```
|
|
5059
|
-
|
|
5060
|
-
Invoking this component will produce HTML that looks like:
|
|
5061
|
-
|
|
5062
|
-
```html
|
|
5063
|
-
<a id="ember1" class="ember-view" href="http://google.com"></a>
|
|
5064
|
-
```
|
|
5065
|
-
|
|
5066
|
-
HTML attributes passed with angle bracket invocations will take precedence
|
|
5067
|
-
over those specified in `attributeBindings`. Therefore, if this component was
|
|
5068
|
-
invoked like so:
|
|
5069
|
-
|
|
5070
|
-
```handlebars
|
|
5071
|
-
<MyAnchor href="http://bing.com" @url="http://google.com" />
|
|
5072
|
-
```
|
|
5073
|
-
|
|
5074
|
-
The resulting HTML will looks like this:
|
|
5075
|
-
|
|
5076
|
-
```html
|
|
5077
|
-
<a id="ember1" class="ember-view" href="http://bing.com"></a>
|
|
5078
|
-
```
|
|
5079
|
-
|
|
5080
|
-
Note that the `href` attribute is ultimately set to `http://bing.com`,
|
|
5081
|
-
despite it having attribute binidng to the `url` property, which was
|
|
5082
|
-
set to `http://google.com`.
|
|
5083
|
-
|
|
5084
|
-
Namespaced attributes (e.g. `xlink:href`) are supported, but have to be
|
|
5085
|
-
mapped, since `:` is not a valid character for properties in Javascript:
|
|
5086
|
-
|
|
5087
|
-
```app/components/my-use.js
|
|
5088
|
-
import Component from '@ember/component';
|
|
5089
|
-
|
|
5090
|
-
export default Component.extend({
|
|
5091
|
-
tagName: 'use',
|
|
5092
|
-
attributeBindings: ['xlinkHref:xlink:href'],
|
|
5093
|
-
|
|
5094
|
-
xlinkHref: '#triangle'
|
|
5095
|
-
});
|
|
5096
|
-
```
|
|
5097
|
-
|
|
5098
|
-
Invoking this component will produce HTML that looks like:
|
|
5099
|
-
|
|
5100
|
-
```html
|
|
5101
|
-
<use xlink:href="#triangle"></use>
|
|
5102
|
-
```
|
|
5103
|
-
|
|
5104
|
-
If the value of a property monitored by `attributeBindings` is a boolean, the
|
|
5105
|
-
attribute will be present or absent depending on the value:
|
|
5106
|
-
|
|
5107
|
-
```app/components/my-text-input.js
|
|
5108
|
-
import Component from '@ember/component';
|
|
5109
|
-
|
|
5110
|
-
export default Component.extend({
|
|
5111
|
-
tagName: 'input',
|
|
5112
|
-
attributeBindings: ['disabled'],
|
|
5113
|
-
|
|
5114
|
-
disabled: false
|
|
5115
|
-
});
|
|
5116
|
-
```
|
|
5117
|
-
|
|
5118
|
-
Invoking this component will produce HTML that looks like:
|
|
5119
|
-
|
|
5120
|
-
```html
|
|
5121
|
-
<input id="ember1" class="ember-view" />
|
|
5122
|
-
```
|
|
5123
|
-
|
|
5124
|
-
`attributeBindings` can refer to computed properties:
|
|
5125
|
-
|
|
5126
|
-
```app/components/my-text-input.js
|
|
5127
|
-
import Component from '@ember/component';
|
|
5128
|
-
import { computed } from '@ember/object';
|
|
5129
|
-
|
|
5130
|
-
export default Component.extend({
|
|
5131
|
-
tagName: 'input',
|
|
5132
|
-
attributeBindings: ['disabled'],
|
|
5133
|
-
|
|
5134
|
-
disabled: computed(function() {
|
|
5135
|
-
if (someLogic) {
|
|
5136
|
-
return true;
|
|
5137
|
-
} else {
|
|
5138
|
-
return false;
|
|
5139
|
-
}
|
|
5140
|
-
})
|
|
5141
|
-
});
|
|
5142
|
-
```
|
|
5143
|
-
|
|
5144
|
-
To prevent setting an attribute altogether, use `null` or `undefined` as the
|
|
5145
|
-
value of the property used in `attributeBindings`:
|
|
5146
|
-
|
|
5147
|
-
```app/components/my-text-input.js
|
|
5148
|
-
import Component from '@ember/component';
|
|
5149
|
-
|
|
5150
|
-
export default Component.extend({
|
|
5151
|
-
tagName: 'form',
|
|
5152
|
-
attributeBindings: ['novalidate'],
|
|
5153
|
-
novalidate: null
|
|
5154
|
-
});
|
|
5155
|
-
```
|
|
5156
|
-
|
|
5157
|
-
Updates to the property of an attribute binding will result in automatic
|
|
5158
|
-
update of the HTML attribute in the component's HTML output.
|
|
5159
|
-
|
|
5160
|
-
`attributeBindings` is a concatenated property. See
|
|
5161
|
-
[EmberObject](/ember/release/classes/EmberObject) documentation for more
|
|
5162
|
-
information about concatenated properties.
|
|
5163
|
-
|
|
5164
|
-
## Layouts
|
|
5165
|
-
|
|
5166
|
-
The `layout` property can be used to dynamically specify a template associated
|
|
5167
|
-
with a component class, instead of relying on Ember to link together a
|
|
5168
|
-
component class and a template based on file names.
|
|
5169
|
-
|
|
5170
|
-
In general, applications should not use this feature, but it's commonly used
|
|
5171
|
-
in addons for historical reasons.
|
|
5172
|
-
|
|
5173
|
-
The `layout` property should be set to the default export of a template
|
|
5174
|
-
module, which is the name of a template file without the `.hbs` extension.
|
|
5175
|
-
|
|
5176
|
-
```app/templates/components/person-profile.hbs
|
|
5177
|
-
<h1>Person's Title</h1>
|
|
5178
|
-
<div class='details'>{{yield}}</div>
|
|
5179
|
-
```
|
|
5180
|
-
|
|
5181
|
-
```app/components/person-profile.js
|
|
5182
|
-
import Component from '@ember/component';
|
|
5183
|
-
import layout from '../templates/components/person-profile';
|
|
5184
|
-
|
|
5185
|
-
export default Component.extend({
|
|
5186
|
-
layout
|
|
5187
|
-
});
|
|
5188
|
-
```
|
|
5189
|
-
|
|
5190
|
-
If you invoke the component:
|
|
5191
|
-
|
|
5192
|
-
```handlebars
|
|
5193
|
-
<PersonProfile>
|
|
5194
|
-
<h2>Chief Basket Weaver</h2>
|
|
5195
|
-
<h3>Fisherman Industries</h3>
|
|
5196
|
-
</PersonProfile>
|
|
5197
|
-
```
|
|
5198
|
-
|
|
5199
|
-
or
|
|
5200
|
-
|
|
5201
|
-
```handlebars
|
|
5202
|
-
{{#person-profile}}
|
|
5203
|
-
<h2>Chief Basket Weaver</h2>
|
|
5204
|
-
<h3>Fisherman Industries</h3>
|
|
5205
|
-
{{/person-profile}}
|
|
5206
|
-
```
|
|
5207
|
-
|
|
5208
|
-
It will result in the following HTML output:
|
|
5209
|
-
|
|
5210
|
-
```html
|
|
5211
|
-
<h1>Person's Title</h1>
|
|
5212
|
-
<div class="details">
|
|
5213
|
-
<h2>Chief Basket Weaver</h2>
|
|
5214
|
-
<h3>Fisherman Industries</h3>
|
|
5215
|
-
</div>
|
|
5216
|
-
```
|
|
5217
|
-
|
|
5218
|
-
## Handling Browser Events
|
|
5219
|
-
|
|
5220
|
-
Components can respond to user-initiated events in one of three ways: passing
|
|
5221
|
-
actions with angle bracket invocation, adding event handler methods to the
|
|
5222
|
-
component's class, or adding actions to the component's template.
|
|
5223
|
-
|
|
5224
|
-
### Passing Actions With Angle Bracket Invocation
|
|
5225
|
-
|
|
5226
|
-
For one-off events specific to particular instance of a component, it is possible
|
|
5227
|
-
to pass actions to the component's element using angle bracket invocation syntax.
|
|
5228
|
-
|
|
5229
|
-
```handlebars
|
|
5230
|
-
<MyWidget {{action 'firstWidgetClicked'}} />
|
|
5231
|
-
|
|
5232
|
-
<MyWidget {{action 'secondWidgetClicked'}} />
|
|
5233
|
-
```
|
|
5234
|
-
|
|
5235
|
-
In this case, when the first component is clicked on, Ember will invoke the
|
|
5236
|
-
`firstWidgetClicked` action. When the second component is clicked on, Ember
|
|
5237
|
-
will invoke the `secondWidgetClicked` action instead.
|
|
5238
|
-
|
|
5239
|
-
Besides `{{action}}`, it is also possible to pass any arbitrary element modifiers
|
|
5240
|
-
using the angle bracket invocation syntax.
|
|
5241
|
-
|
|
5242
|
-
### Event Handler Methods
|
|
5243
|
-
|
|
5244
|
-
Components can also respond to user-initiated events by implementing a method
|
|
5245
|
-
that matches the event name. This approach is appropriate when the same event
|
|
5246
|
-
should be handled by all instances of the same component.
|
|
5247
|
-
|
|
5248
|
-
An event object will be passed as the argument to the event handler method.
|
|
5249
|
-
|
|
5250
|
-
```app/components/my-widget.js
|
|
5251
|
-
import Component from '@ember/component';
|
|
5252
|
-
|
|
5253
|
-
export default Component.extend({
|
|
5254
|
-
click(event) {
|
|
5255
|
-
// `event.target` is either the component's element or one of its children
|
|
5256
|
-
let tag = event.target.tagName.toLowerCase();
|
|
5257
|
-
console.log('clicked on a `<${tag}>` HTML element!');
|
|
5258
|
-
}
|
|
5259
|
-
});
|
|
5260
|
-
```
|
|
5261
|
-
|
|
5262
|
-
In this example, whenever the user clicked anywhere inside the component, it
|
|
5263
|
-
will log a message to the console.
|
|
5264
|
-
|
|
5265
|
-
It is possible to handle event types other than `click` by implementing the
|
|
5266
|
-
following event handler methods. In addition, custom events can be registered
|
|
5267
|
-
by using `Application.customEvents`.
|
|
5268
|
-
|
|
5269
|
-
Touch events:
|
|
5270
|
-
|
|
5271
|
-
* `touchStart`
|
|
5272
|
-
* `touchMove`
|
|
5273
|
-
* `touchEnd`
|
|
5274
|
-
* `touchCancel`
|
|
5275
|
-
|
|
5276
|
-
Keyboard events:
|
|
5277
|
-
|
|
5278
|
-
* `keyDown`
|
|
5279
|
-
* `keyUp`
|
|
5280
|
-
* `keyPress`
|
|
5281
|
-
|
|
5282
|
-
Mouse events:
|
|
5283
|
-
|
|
5284
|
-
* `mouseDown`
|
|
5285
|
-
* `mouseUp`
|
|
5286
|
-
* `contextMenu`
|
|
5287
|
-
* `click`
|
|
5288
|
-
* `doubleClick`
|
|
5289
|
-
* `focusIn`
|
|
5290
|
-
* `focusOut`
|
|
5291
|
-
|
|
5292
|
-
Form events:
|
|
5293
|
-
|
|
5294
|
-
* `submit`
|
|
5295
|
-
* `change`
|
|
5296
|
-
* `focusIn`
|
|
5297
|
-
* `focusOut`
|
|
5298
|
-
* `input`
|
|
5299
|
-
|
|
5300
|
-
Drag and drop events:
|
|
5301
|
-
|
|
5302
|
-
* `dragStart`
|
|
5303
|
-
* `drag`
|
|
5304
|
-
* `dragEnter`
|
|
5305
|
-
* `dragLeave`
|
|
5306
|
-
* `dragOver`
|
|
5307
|
-
* `dragEnd`
|
|
5308
|
-
* `drop`
|
|
5309
|
-
|
|
5310
|
-
### `{{action}}` Helper
|
|
5311
|
-
|
|
5312
|
-
Instead of handling all events of a particular type anywhere inside the
|
|
5313
|
-
component's element, you may instead want to limit it to a particular
|
|
5314
|
-
element in the component's template. In this case, it would be more
|
|
5315
|
-
convenient to implement an action instead.
|
|
5316
|
-
|
|
5317
|
-
For example, you could implement the action `hello` for the `person-profile`
|
|
5318
|
-
component:
|
|
5319
|
-
|
|
5320
|
-
```app/components/person-profile.js
|
|
5321
|
-
import Component from '@ember/component';
|
|
5322
|
-
|
|
5323
|
-
export default Component.extend({
|
|
5324
|
-
actions: {
|
|
5325
|
-
hello(name) {
|
|
5326
|
-
console.log("Hello", name);
|
|
5327
|
-
}
|
|
5328
|
-
}
|
|
5329
|
-
});
|
|
5330
|
-
```
|
|
5331
|
-
|
|
5332
|
-
And then use it in the component's template:
|
|
5333
|
-
|
|
5334
|
-
```app/templates/components/person-profile.hbs
|
|
5335
|
-
<h1>{{@person.name}}</h1>
|
|
5336
|
-
|
|
5337
|
-
<button {{action 'hello' @person.name}}>
|
|
5338
|
-
Say Hello to {{@person.name}}
|
|
5339
|
-
</button>
|
|
5340
|
-
```
|
|
5341
|
-
|
|
5342
|
-
When the user clicks the button, Ember will invoke the `hello` action,
|
|
5343
|
-
passing in the current value of `@person.name` as an argument.
|
|
5344
|
-
|
|
5345
|
-
See [Ember.Templates.helpers.action](/ember/release/classes/Ember.Templates.helpers/methods/action?anchor=action).
|
|
5346
|
-
|
|
5347
|
-
@class Component
|
|
5348
|
-
@extends Ember.CoreView
|
|
5349
|
-
@uses Ember.TargetActionSupport
|
|
5350
|
-
@uses Ember.ClassNamesSupport
|
|
5351
|
-
@uses Ember.ActionSupport
|
|
5352
|
-
@uses Ember.ViewMixin
|
|
5353
|
-
@uses Ember.ViewStateSupport
|
|
5354
|
-
@public
|
|
5355
|
-
*/
|
|
5356
4714
|
|
|
5357
4715
|
var Component = _views.CoreView.extend(_views.ChildViewsSupport, _views.ViewStateSupport, _views.ClassNamesSupport, _runtime2.TargetActionSupport, _views.ActionSupport, _views.ViewMixin, {
|
|
5358
4716
|
isComponent: true,
|
|
@@ -5662,23 +5020,6 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
|
|
|
5662
5020
|
@since 1.13.0
|
|
5663
5021
|
*/
|
|
5664
5022
|
|
|
5665
|
-
/**
|
|
5666
|
-
Layout can be used to wrap content in a component.
|
|
5667
|
-
@property layout
|
|
5668
|
-
@type Function
|
|
5669
|
-
@public
|
|
5670
|
-
*/
|
|
5671
|
-
|
|
5672
|
-
/**
|
|
5673
|
-
The name of the layout to lookup if no layout is provided.
|
|
5674
|
-
By default `Component` will lookup a template with this name in
|
|
5675
|
-
`Ember.TEMPLATES` (a shared global object).
|
|
5676
|
-
@property layoutName
|
|
5677
|
-
@type String
|
|
5678
|
-
@default null
|
|
5679
|
-
@private
|
|
5680
|
-
*/
|
|
5681
|
-
|
|
5682
5023
|
/**
|
|
5683
5024
|
The HTML `id` of the component's element in the DOM. You can provide this
|
|
5684
5025
|
value yourself but it must be unique (just as in HTML):
|
|
@@ -6739,7 +6080,7 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
|
|
|
6739
6080
|
},
|
|
6740
6081
|
|
|
6741
6082
|
warnIfStyleNotTrusted(value) {
|
|
6742
|
-
(true && (0, _debug.warn)((0, _views.constructStyleDeprecationMessage)(value), (() => {
|
|
6083
|
+
(true && (0, _debug.warn)((0, _views.constructStyleDeprecationMessage)(String(value)), (() => {
|
|
6743
6084
|
if (value === null || value === undefined || isHTMLSafe$1(value)) {
|
|
6744
6085
|
return true;
|
|
6745
6086
|
}
|
|
@@ -6835,9 +6176,9 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
|
|
|
6835
6176
|
} = _ref12;
|
|
6836
6177
|
var nameOrValueRef = positional[0];
|
|
6837
6178
|
(true && !(positional.length === 1 && nameOrValueRef) && (0, _debug.assert)(`[BUG] wrong number of positional arguments, expecting 1, got ${positional.length}`, positional.length === 1 && nameOrValueRef));
|
|
6838
|
-
var typeRef = named
|
|
6839
|
-
var locRef = named
|
|
6840
|
-
var originalRef = named
|
|
6179
|
+
var typeRef = named['type'];
|
|
6180
|
+
var locRef = named['loc'];
|
|
6181
|
+
var originalRef = named['original'];
|
|
6841
6182
|
(true && !(typeRef) && (0, _debug.assert)(`[BUG] expecting \`type\` named argument`, typeRef));
|
|
6842
6183
|
(true && !(locRef) && (0, _debug.assert)(`[BUG] expecting \`loc\` named argument`, locRef));
|
|
6843
6184
|
(true && !(originalRef) && (0, _debug.assert)(`[BUG] expecting \`original\` named argument`, originalRef)); // Bug: why do these fail?
|
|
@@ -7754,7 +7095,7 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
|
|
|
7754
7095
|
var outletRef = (0, _reference.createComputeRef)(() => {
|
|
7755
7096
|
var state = (0, _reference.valueForRef)(scope.get('outletState'));
|
|
7756
7097
|
var outlets = state !== undefined ? state.outlets : undefined;
|
|
7757
|
-
return outlets !== undefined ? outlets
|
|
7098
|
+
return outlets !== undefined ? outlets['main'] : undefined;
|
|
7758
7099
|
});
|
|
7759
7100
|
var lastState = null;
|
|
7760
7101
|
var definition = null;
|
|
@@ -7779,7 +7120,7 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
|
|
|
7779
7120
|
// provide the correct updated value. So we stop updating and return
|
|
7780
7121
|
// the _last_ model value for that outlet.
|
|
7781
7122
|
|
|
7782
|
-
named
|
|
7123
|
+
named['model'] = (0, _reference.createComputeRef)(() => {
|
|
7783
7124
|
if (lastState === state) {
|
|
7784
7125
|
model = (0, _reference.valueForRef)(modelRef);
|
|
7785
7126
|
}
|
|
@@ -7790,7 +7131,7 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
|
|
|
7790
7131
|
if (true
|
|
7791
7132
|
/* DEBUG */
|
|
7792
7133
|
) {
|
|
7793
|
-
named
|
|
7134
|
+
named['model'] = (0, _reference.createDebugAliasRef)('@model', named['model']);
|
|
7794
7135
|
}
|
|
7795
7136
|
|
|
7796
7137
|
var args = (0, _runtime.createCapturedArgs)(named, _runtime.EMPTY_POSITIONAL);
|
|
@@ -8076,6 +7417,107 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
|
|
|
8076
7417
|
|
|
8077
7418
|
}
|
|
8078
7419
|
|
|
7420
|
+
var TOP_LEVEL_NAME = '-top-level';
|
|
7421
|
+
var TOP_LEVEL_OUTLET = 'main';
|
|
7422
|
+
|
|
7423
|
+
class OutletView {
|
|
7424
|
+
constructor(_environment, owner, template, namespace) {
|
|
7425
|
+
this._environment = _environment;
|
|
7426
|
+
this.owner = owner;
|
|
7427
|
+
this.template = template;
|
|
7428
|
+
this.namespace = namespace;
|
|
7429
|
+
var outletStateTag = (0, _validator.createTag)();
|
|
7430
|
+
var outletState = {
|
|
7431
|
+
outlets: {
|
|
7432
|
+
main: undefined
|
|
7433
|
+
},
|
|
7434
|
+
render: {
|
|
7435
|
+
owner: owner,
|
|
7436
|
+
into: undefined,
|
|
7437
|
+
outlet: TOP_LEVEL_OUTLET,
|
|
7438
|
+
name: TOP_LEVEL_NAME,
|
|
7439
|
+
controller: undefined,
|
|
7440
|
+
model: undefined,
|
|
7441
|
+
template
|
|
7442
|
+
}
|
|
7443
|
+
};
|
|
7444
|
+
var ref = this.ref = (0, _reference.createComputeRef)(() => {
|
|
7445
|
+
(0, _validator.consumeTag)(outletStateTag);
|
|
7446
|
+
return outletState;
|
|
7447
|
+
}, state => {
|
|
7448
|
+
(0, _validator.dirtyTag)(outletStateTag);
|
|
7449
|
+
outletState.outlets['main'] = state;
|
|
7450
|
+
});
|
|
7451
|
+
this.state = {
|
|
7452
|
+
ref,
|
|
7453
|
+
name: TOP_LEVEL_NAME,
|
|
7454
|
+
outlet: TOP_LEVEL_OUTLET,
|
|
7455
|
+
template,
|
|
7456
|
+
controller: undefined,
|
|
7457
|
+
model: undefined
|
|
7458
|
+
};
|
|
7459
|
+
}
|
|
7460
|
+
|
|
7461
|
+
static extend(injections) {
|
|
7462
|
+
return class extends OutletView {
|
|
7463
|
+
static create(options) {
|
|
7464
|
+
if (options) {
|
|
7465
|
+
return super.create(Object.assign({}, injections, options));
|
|
7466
|
+
} else {
|
|
7467
|
+
return super.create(injections);
|
|
7468
|
+
}
|
|
7469
|
+
}
|
|
7470
|
+
|
|
7471
|
+
};
|
|
7472
|
+
}
|
|
7473
|
+
|
|
7474
|
+
static reopenClass(injections) {
|
|
7475
|
+
Object.assign(this, injections);
|
|
7476
|
+
}
|
|
7477
|
+
|
|
7478
|
+
static create(options) {
|
|
7479
|
+
var {
|
|
7480
|
+
environment: _environment,
|
|
7481
|
+
application: namespace,
|
|
7482
|
+
template: templateFactory$$1
|
|
7483
|
+
} = options;
|
|
7484
|
+
var owner = (0, _owner2.getOwner)(options);
|
|
7485
|
+
(true && !(owner) && (0, _debug.assert)('OutletView is unexpectedly missing an owner', owner));
|
|
7486
|
+
var template = templateFactory$$1(owner);
|
|
7487
|
+
return new OutletView(_environment, owner, template, namespace);
|
|
7488
|
+
}
|
|
7489
|
+
|
|
7490
|
+
appendTo(selector) {
|
|
7491
|
+
var target;
|
|
7492
|
+
|
|
7493
|
+
if (this._environment.hasDOM) {
|
|
7494
|
+
target = typeof selector === 'string' ? document.querySelector(selector) : selector;
|
|
7495
|
+
} else {
|
|
7496
|
+
target = selector;
|
|
7497
|
+
}
|
|
7498
|
+
|
|
7499
|
+
var renderer = this.owner.lookup('renderer:-dom'); // SAFETY: It's not clear that this cast is safe.
|
|
7500
|
+
// The types for appendOutletView may be incorrect or this is a potential bug.
|
|
7501
|
+
|
|
7502
|
+
(0, _runloop.schedule)('render', renderer, 'appendOutletView', this, target);
|
|
7503
|
+
}
|
|
7504
|
+
|
|
7505
|
+
rerender() {
|
|
7506
|
+
/**/
|
|
7507
|
+
}
|
|
7508
|
+
|
|
7509
|
+
setOutletState(state) {
|
|
7510
|
+
(0, _reference.updateRef)(this.ref, state);
|
|
7511
|
+
}
|
|
7512
|
+
|
|
7513
|
+
destroy() {
|
|
7514
|
+
/**/
|
|
7515
|
+
}
|
|
7516
|
+
|
|
7517
|
+
}
|
|
7518
|
+
|
|
7519
|
+
_exports.OutletView = OutletView;
|
|
7520
|
+
|
|
8079
7521
|
class DynamicScope {
|
|
8080
7522
|
constructor(view, outletState) {
|
|
8081
7523
|
this.view = view;
|
|
@@ -8133,7 +7575,7 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
|
|
|
8133
7575
|
this.root = root;
|
|
8134
7576
|
this.runtime = runtime;
|
|
8135
7577
|
(true && !(template !== undefined) && (0, _debug.assert)(`You cannot render \`${(0, _reference.valueForRef)(self)}\` without a template.`, template !== undefined));
|
|
8136
|
-
this.id = (0, _views.getViewId)(root);
|
|
7578
|
+
this.id = root instanceof OutletView ? (0, _utils.guidFor)(root) : (0, _views.getViewId)(root);
|
|
8137
7579
|
this.result = undefined;
|
|
8138
7580
|
this.destroyed = false;
|
|
8139
7581
|
this.render = errorLoopTransaction(() => {
|
|
@@ -8575,106 +8017,6 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
|
|
|
8575
8017
|
"moduleName": "packages/@ember/-internals/glimmer/lib/templates/outlet.hbs",
|
|
8576
8018
|
"isStrictMode": false
|
|
8577
8019
|
});
|
|
8578
|
-
var TOP_LEVEL_NAME = '-top-level';
|
|
8579
|
-
var TOP_LEVEL_OUTLET = 'main';
|
|
8580
|
-
|
|
8581
|
-
class OutletView {
|
|
8582
|
-
constructor(_environment, owner, template, namespace) {
|
|
8583
|
-
this._environment = _environment;
|
|
8584
|
-
this.owner = owner;
|
|
8585
|
-
this.template = template;
|
|
8586
|
-
this.namespace = namespace;
|
|
8587
|
-
var outletStateTag = (0, _validator.createTag)();
|
|
8588
|
-
var outletState = {
|
|
8589
|
-
outlets: {
|
|
8590
|
-
main: undefined
|
|
8591
|
-
},
|
|
8592
|
-
render: {
|
|
8593
|
-
owner: owner,
|
|
8594
|
-
into: undefined,
|
|
8595
|
-
outlet: TOP_LEVEL_OUTLET,
|
|
8596
|
-
name: TOP_LEVEL_NAME,
|
|
8597
|
-
controller: undefined,
|
|
8598
|
-
model: undefined,
|
|
8599
|
-
template
|
|
8600
|
-
}
|
|
8601
|
-
};
|
|
8602
|
-
var ref = this.ref = (0, _reference.createComputeRef)(() => {
|
|
8603
|
-
(0, _validator.consumeTag)(outletStateTag);
|
|
8604
|
-
return outletState;
|
|
8605
|
-
}, state => {
|
|
8606
|
-
(0, _validator.dirtyTag)(outletStateTag);
|
|
8607
|
-
outletState.outlets.main = state;
|
|
8608
|
-
});
|
|
8609
|
-
this.state = {
|
|
8610
|
-
ref,
|
|
8611
|
-
name: TOP_LEVEL_NAME,
|
|
8612
|
-
outlet: TOP_LEVEL_OUTLET,
|
|
8613
|
-
template,
|
|
8614
|
-
controller: undefined,
|
|
8615
|
-
model: undefined
|
|
8616
|
-
};
|
|
8617
|
-
}
|
|
8618
|
-
|
|
8619
|
-
static extend(injections) {
|
|
8620
|
-
return class extends OutletView {
|
|
8621
|
-
static create(options) {
|
|
8622
|
-
if (options) {
|
|
8623
|
-
return super.create(Object.assign({}, injections, options));
|
|
8624
|
-
} else {
|
|
8625
|
-
return super.create(injections);
|
|
8626
|
-
}
|
|
8627
|
-
}
|
|
8628
|
-
|
|
8629
|
-
};
|
|
8630
|
-
}
|
|
8631
|
-
|
|
8632
|
-
static reopenClass(injections) {
|
|
8633
|
-
Object.assign(this, injections);
|
|
8634
|
-
}
|
|
8635
|
-
|
|
8636
|
-
static create(options) {
|
|
8637
|
-
var {
|
|
8638
|
-
environment: _environment,
|
|
8639
|
-
application: namespace,
|
|
8640
|
-
template: templateFactory$$1
|
|
8641
|
-
} = options;
|
|
8642
|
-
var owner = (0, _owner2.getOwner)(options);
|
|
8643
|
-
(true && !(owner) && (0, _debug.assert)('OutletView is unexpectedly missing an owner', owner));
|
|
8644
|
-
var template = templateFactory$$1(owner);
|
|
8645
|
-
return new OutletView(_environment, owner, template, namespace);
|
|
8646
|
-
}
|
|
8647
|
-
|
|
8648
|
-
appendTo(selector) {
|
|
8649
|
-
var target;
|
|
8650
|
-
|
|
8651
|
-
if (this._environment.hasDOM) {
|
|
8652
|
-
target = typeof selector === 'string' ? document.querySelector(selector) : selector;
|
|
8653
|
-
} else {
|
|
8654
|
-
target = selector;
|
|
8655
|
-
}
|
|
8656
|
-
|
|
8657
|
-
var renderer = this.owner.lookup('renderer:-dom'); // SAFETY: It's not clear that this cast is safe.
|
|
8658
|
-
// The types for appendOutletView may be incorrect or this is a potential bug.
|
|
8659
|
-
|
|
8660
|
-
(0, _runloop.schedule)('render', renderer, 'appendOutletView', this, target);
|
|
8661
|
-
}
|
|
8662
|
-
|
|
8663
|
-
rerender() {
|
|
8664
|
-
/**/
|
|
8665
|
-
}
|
|
8666
|
-
|
|
8667
|
-
setOutletState(state) {
|
|
8668
|
-
(0, _reference.updateRef)(this.ref, state);
|
|
8669
|
-
}
|
|
8670
|
-
|
|
8671
|
-
destroy() {
|
|
8672
|
-
/**/
|
|
8673
|
-
}
|
|
8674
|
-
|
|
8675
|
-
}
|
|
8676
|
-
|
|
8677
|
-
_exports.OutletView = OutletView;
|
|
8678
8020
|
|
|
8679
8021
|
function setupApplicationRegistry(registry) {
|
|
8680
8022
|
// because we are using injections we can't use instantiate false
|
|
@@ -11527,10 +10869,6 @@ define("@ember/-internals/metal/index", ["exports", "@ember/-internals/meta", "@
|
|
|
11527
10869
|
function isPath(path) {
|
|
11528
10870
|
return typeof path === 'string' && firstDotIndexCache.get(path) !== -1;
|
|
11529
10871
|
}
|
|
11530
|
-
/**
|
|
11531
|
-
@module @ember/object
|
|
11532
|
-
*/
|
|
11533
|
-
|
|
11534
10872
|
|
|
11535
10873
|
var PROXY_CONTENT = (0, _utils.symbol)('PROXY_CONTENT');
|
|
11536
10874
|
_exports.PROXY_CONTENT = PROXY_CONTENT;
|
|
@@ -12569,7 +11907,7 @@ define("@ember/-internals/metal/index", ["exports", "@ember/-internals/meta", "@
|
|
|
12569
11907
|
} else if (_mixins !== undefined) {
|
|
12570
11908
|
mergeMixins(_mixins, meta$$1, descs, values, base, keys, keysWithSuper);
|
|
12571
11909
|
|
|
12572
|
-
if (currentMixin._without !== undefined) {
|
|
11910
|
+
if (currentMixin instanceof Mixin && currentMixin._without !== undefined) {
|
|
12573
11911
|
currentMixin._without.forEach(keyName => {
|
|
12574
11912
|
// deleting the key means we won't process the value
|
|
12575
11913
|
var index = keys.indexOf(keyName);
|
|
@@ -19473,7 +18811,7 @@ define("@ember/-internals/routing/lib/system/router", ["exports", "@ember/-inter
|
|
|
19473
18811
|
// Create an entry to represent our default template name,
|
|
19474
18812
|
// just so other routes can target it and inherit its place
|
|
19475
18813
|
// in the outlet hierarchy.
|
|
19476
|
-
defaultParentState.outlets
|
|
18814
|
+
defaultParentState.outlets['main'] = {
|
|
19477
18815
|
render: {
|
|
19478
18816
|
name: routeName,
|
|
19479
18817
|
outlet: 'main'
|
|
@@ -20433,13 +19771,17 @@ define("@ember/-internals/runtime/lib/ext/rsvp", ["exports", "rsvp", "@ember/run
|
|
|
20433
19771
|
|
|
20434
19772
|
function errorFor(reason) {
|
|
20435
19773
|
if (!reason) return;
|
|
19774
|
+
var withErrorThrown = reason;
|
|
20436
19775
|
|
|
20437
|
-
if (
|
|
20438
|
-
return unwrapErrorThrown(
|
|
19776
|
+
if (withErrorThrown.errorThrown) {
|
|
19777
|
+
return unwrapErrorThrown(withErrorThrown);
|
|
20439
19778
|
}
|
|
20440
19779
|
|
|
20441
|
-
|
|
20442
|
-
|
|
19780
|
+
var withName = reason;
|
|
19781
|
+
|
|
19782
|
+
if (withName.name === 'UnrecognizedURLError') {
|
|
19783
|
+
(true && !(false) && (0, _debug.assert)(`The URL '${withName.message}' did not match any routes in your application`, false)); // @ts-expect-error We'll hit this if the assert is stripped
|
|
19784
|
+
|
|
20443
19785
|
return;
|
|
20444
19786
|
}
|
|
20445
19787
|
|
|
@@ -20598,7 +19940,7 @@ define("@ember/-internals/runtime/lib/mixins/-proxy", ["exports", "@ember/-inter
|
|
|
20598
19940
|
var _default = _metal.Mixin.create({
|
|
20599
19941
|
/**
|
|
20600
19942
|
The object whose properties will be forwarded.
|
|
20601
|
-
|
|
19943
|
+
@property content
|
|
20602
19944
|
@type {unknown}
|
|
20603
19945
|
@default null
|
|
20604
19946
|
@public
|
|
@@ -22254,7 +21596,7 @@ define("@ember/-internals/runtime/lib/mixins/array", ["exports", "@ember/-intern
|
|
|
22254
21596
|
colors.unshiftObjects('yellow'); // Type Error: 'undefined' is not a function
|
|
22255
21597
|
```
|
|
22256
21598
|
@method unshiftObjects
|
|
22257
|
-
@param {
|
|
21599
|
+
@param {Enumerable} objects the objects to add
|
|
22258
21600
|
@return {EmberArray} receiver
|
|
22259
21601
|
@public
|
|
22260
21602
|
*/
|
|
@@ -23419,7 +22761,7 @@ define("@ember/-internals/runtime/lib/mixins/promise_proxy", ["exports", "@ember
|
|
|
23419
22761
|
/**
|
|
23420
22762
|
If the proxied promise is rejected this will contain the reason
|
|
23421
22763
|
provided.
|
|
23422
|
-
|
|
22764
|
+
@property reason
|
|
23423
22765
|
@default null
|
|
23424
22766
|
@public
|
|
23425
22767
|
*/
|
|
@@ -23427,7 +22769,7 @@ define("@ember/-internals/runtime/lib/mixins/promise_proxy", ["exports", "@ember
|
|
|
23427
22769
|
|
|
23428
22770
|
/**
|
|
23429
22771
|
Once the proxied promise has settled this will become `false`.
|
|
23430
|
-
|
|
22772
|
+
@property isPending
|
|
23431
22773
|
@default true
|
|
23432
22774
|
@public
|
|
23433
22775
|
*/
|
|
@@ -23437,7 +22779,7 @@ define("@ember/-internals/runtime/lib/mixins/promise_proxy", ["exports", "@ember
|
|
|
23437
22779
|
|
|
23438
22780
|
/**
|
|
23439
22781
|
Once the proxied promise has settled this will become `true`.
|
|
23440
|
-
|
|
22782
|
+
@property isSettled
|
|
23441
22783
|
@default false
|
|
23442
22784
|
@public
|
|
23443
22785
|
*/
|
|
@@ -23447,7 +22789,7 @@ define("@ember/-internals/runtime/lib/mixins/promise_proxy", ["exports", "@ember
|
|
|
23447
22789
|
|
|
23448
22790
|
/**
|
|
23449
22791
|
Will become `true` if the proxied promise is rejected.
|
|
23450
|
-
|
|
22792
|
+
@property isRejected
|
|
23451
22793
|
@default false
|
|
23452
22794
|
@public
|
|
23453
22795
|
*/
|
|
@@ -23455,7 +22797,7 @@ define("@ember/-internals/runtime/lib/mixins/promise_proxy", ["exports", "@ember
|
|
|
23455
22797
|
|
|
23456
22798
|
/**
|
|
23457
22799
|
Will become `true` if the proxied promise is fulfilled.
|
|
23458
|
-
|
|
22800
|
+
@property isFulfilled
|
|
23459
22801
|
@default false
|
|
23460
22802
|
@public
|
|
23461
22803
|
*/
|
|
@@ -23463,17 +22805,17 @@ define("@ember/-internals/runtime/lib/mixins/promise_proxy", ["exports", "@ember
|
|
|
23463
22805
|
|
|
23464
22806
|
/**
|
|
23465
22807
|
The promise whose fulfillment value is being proxied by this object.
|
|
23466
|
-
|
|
22808
|
+
This property must be specified upon creation, and should not be
|
|
23467
22809
|
changed once created.
|
|
23468
|
-
|
|
23469
|
-
|
|
22810
|
+
Example:
|
|
22811
|
+
```javascript
|
|
23470
22812
|
import ObjectProxy from '@ember/object/proxy';
|
|
23471
22813
|
import PromiseProxyMixin from '@ember/object/promise-proxy-mixin';
|
|
23472
|
-
|
|
22814
|
+
ObjectProxy.extend(PromiseProxyMixin).create({
|
|
23473
22815
|
promise: <thenable>
|
|
23474
22816
|
});
|
|
23475
22817
|
```
|
|
23476
|
-
|
|
22818
|
+
@property promise
|
|
23477
22819
|
@public
|
|
23478
22820
|
*/
|
|
23479
22821
|
promise: (0, _metal.computed)({
|
|
@@ -23489,8 +22831,8 @@ define("@ember/-internals/runtime/lib/mixins/promise_proxy", ["exports", "@ember
|
|
|
23489
22831
|
|
|
23490
22832
|
/**
|
|
23491
22833
|
An alias to the proxied promise's `then`.
|
|
23492
|
-
|
|
23493
|
-
|
|
22834
|
+
See RSVP.Promise.then.
|
|
22835
|
+
@method then
|
|
23494
22836
|
@param {Function} callback
|
|
23495
22837
|
@return {RSVP.Promise}
|
|
23496
22838
|
@public
|
|
@@ -23499,8 +22841,8 @@ define("@ember/-internals/runtime/lib/mixins/promise_proxy", ["exports", "@ember
|
|
|
23499
22841
|
|
|
23500
22842
|
/**
|
|
23501
22843
|
An alias to the proxied promise's `catch`.
|
|
23502
|
-
|
|
23503
|
-
|
|
22844
|
+
See RSVP.Promise.catch.
|
|
22845
|
+
@method catch
|
|
23504
22846
|
@param {Function} callback
|
|
23505
22847
|
@return {RSVP.Promise}
|
|
23506
22848
|
@since 1.3.0
|
|
@@ -23510,8 +22852,8 @@ define("@ember/-internals/runtime/lib/mixins/promise_proxy", ["exports", "@ember
|
|
|
23510
22852
|
|
|
23511
22853
|
/**
|
|
23512
22854
|
An alias to the proxied promise's `finally`.
|
|
23513
|
-
|
|
23514
|
-
|
|
22855
|
+
See RSVP.Promise.finally.
|
|
22856
|
+
@method finally
|
|
23515
22857
|
@param {Function} callback
|
|
23516
22858
|
@return {RSVP.Promise}
|
|
23517
22859
|
@since 1.3.0
|
|
@@ -23802,9 +23144,9 @@ define("@ember/-internals/runtime/lib/mixins/target_action_support", ["exports",
|
|
|
23802
23144
|
/**
|
|
23803
23145
|
Send an `action` with an `actionContext` to a `target`. The action, actionContext
|
|
23804
23146
|
and target will be retrieved from properties of the object. For example:
|
|
23805
|
-
|
|
23147
|
+
```javascript
|
|
23806
23148
|
import { alias } from '@ember/object/computed';
|
|
23807
|
-
|
|
23149
|
+
App.SaveButtonView = Ember.View.extend(Ember.TargetActionSupport, {
|
|
23808
23150
|
target: alias('controller'),
|
|
23809
23151
|
action: 'save',
|
|
23810
23152
|
actionContext: alias('context'),
|
|
@@ -23814,9 +23156,9 @@ define("@ember/-internals/runtime/lib/mixins/target_action_support", ["exports",
|
|
|
23814
23156
|
}
|
|
23815
23157
|
});
|
|
23816
23158
|
```
|
|
23817
|
-
|
|
23159
|
+
The `target`, `action`, and `actionContext` can be provided as properties of
|
|
23818
23160
|
an optional object argument to `triggerAction` as well.
|
|
23819
|
-
|
|
23161
|
+
```javascript
|
|
23820
23162
|
App.SaveButtonView = Ember.View.extend(Ember.TargetActionSupport, {
|
|
23821
23163
|
click() {
|
|
23822
23164
|
this.triggerAction({
|
|
@@ -23828,12 +23170,12 @@ define("@ember/-internals/runtime/lib/mixins/target_action_support", ["exports",
|
|
|
23828
23170
|
}
|
|
23829
23171
|
});
|
|
23830
23172
|
```
|
|
23831
|
-
|
|
23173
|
+
The `actionContext` defaults to the object you are mixing `TargetActionSupport` into.
|
|
23832
23174
|
But `target` and `action` must be specified either as properties or with the argument
|
|
23833
23175
|
to `triggerAction`, or a combination:
|
|
23834
|
-
|
|
23176
|
+
```javascript
|
|
23835
23177
|
import { alias } from '@ember/object/computed';
|
|
23836
|
-
|
|
23178
|
+
App.SaveButtonView = Ember.View.extend(Ember.TargetActionSupport, {
|
|
23837
23179
|
target: alias('controller'),
|
|
23838
23180
|
click() {
|
|
23839
23181
|
this.triggerAction({
|
|
@@ -23843,7 +23185,7 @@ define("@ember/-internals/runtime/lib/mixins/target_action_support", ["exports",
|
|
|
23843
23185
|
}
|
|
23844
23186
|
});
|
|
23845
23187
|
```
|
|
23846
|
-
|
|
23188
|
+
@method triggerAction
|
|
23847
23189
|
@param opts {Object} (optional, with the optional keys action, target and/or actionContext)
|
|
23848
23190
|
@return {Boolean} true if the action was sent successfully and did not return false
|
|
23849
23191
|
@private
|
|
@@ -27601,12 +26943,14 @@ define("@ember/-internals/views/lib/system/utils", ["exports", "@ember/-internal
|
|
|
27601
26943
|
_exports.setElementView = setElementView;
|
|
27602
26944
|
_exports.setViewElement = setViewElement;
|
|
27603
26945
|
|
|
27604
|
-
/* globals Element */
|
|
27605
|
-
|
|
27606
26946
|
/**
|
|
27607
26947
|
@module ember
|
|
27608
26948
|
*/
|
|
27609
26949
|
function isSimpleClick(event) {
|
|
26950
|
+
if (!(event instanceof MouseEvent)) {
|
|
26951
|
+
return false;
|
|
26952
|
+
}
|
|
26953
|
+
|
|
27610
26954
|
var modifier = event.shiftKey || event.metaKey || event.altKey || event.ctrlKey;
|
|
27611
26955
|
var secondaryClick = event.which > 1; // IE9 may return undefined
|
|
27612
26956
|
|
|
@@ -27834,22 +27178,6 @@ define("@ember/-internals/views/lib/views/core_view", ["exports", "@ember/-inter
|
|
|
27834
27178
|
});
|
|
27835
27179
|
_exports.default = void 0;
|
|
27836
27180
|
|
|
27837
|
-
/**
|
|
27838
|
-
`Ember.CoreView` is an abstract class that exists to give view-like behavior
|
|
27839
|
-
to both Ember's main view class `Component` and other classes that don't need
|
|
27840
|
-
the full functionality of `Component`.
|
|
27841
|
-
|
|
27842
|
-
Unless you have specific needs for `CoreView`, you will use `Component`
|
|
27843
|
-
in your applications.
|
|
27844
|
-
|
|
27845
|
-
@class CoreView
|
|
27846
|
-
@namespace Ember
|
|
27847
|
-
@extends EmberObject
|
|
27848
|
-
@deprecated Use `Component` instead.
|
|
27849
|
-
@uses Evented
|
|
27850
|
-
@uses Ember.ActionHandler
|
|
27851
|
-
@private
|
|
27852
|
-
*/
|
|
27853
27181
|
var CoreView = _runtime.FrameworkObject.extend(_runtime.Evented, _runtime.ActionHandler, {
|
|
27854
27182
|
isView: true,
|
|
27855
27183
|
_states: _states.default,
|
|
@@ -27866,7 +27194,7 @@ define("@ember/-internals/views/lib/views/core_view", ["exports", "@ember/-inter
|
|
|
27866
27194
|
/**
|
|
27867
27195
|
If the view is currently inserted into the DOM of a parent view, this
|
|
27868
27196
|
property will point to the parent of the view.
|
|
27869
|
-
|
|
27197
|
+
@property parentView
|
|
27870
27198
|
@type Ember.View
|
|
27871
27199
|
@default null
|
|
27872
27200
|
@private
|
|
@@ -27874,16 +27202,16 @@ define("@ember/-internals/views/lib/views/core_view", ["exports", "@ember/-inter
|
|
|
27874
27202
|
parentView: null,
|
|
27875
27203
|
|
|
27876
27204
|
instrumentDetails(hash) {
|
|
27877
|
-
hash
|
|
27878
|
-
hash
|
|
27879
|
-
hash
|
|
27205
|
+
hash['object'] = this.toString();
|
|
27206
|
+
hash['containerKey'] = this._debugContainerKey;
|
|
27207
|
+
hash['view'] = this;
|
|
27880
27208
|
return hash;
|
|
27881
27209
|
},
|
|
27882
27210
|
|
|
27883
27211
|
/**
|
|
27884
27212
|
Override the default event firing from `Evented` to
|
|
27885
27213
|
also call methods with the given name.
|
|
27886
|
-
|
|
27214
|
+
@method trigger
|
|
27887
27215
|
@param name {String}
|
|
27888
27216
|
@private
|
|
27889
27217
|
*/
|
|
@@ -30323,7 +29651,7 @@ define("@ember/debug/index", ["exports", "@ember/-internals/browser-environment"
|
|
|
30323
29651
|
&& !(0, _testing.isTesting)()) {
|
|
30324
29652
|
if (typeof window !== 'undefined' && (_browserEnvironment.isFirefox || _browserEnvironment.isChrome) && window.addEventListener) {
|
|
30325
29653
|
window.addEventListener('load', () => {
|
|
30326
|
-
if (document.documentElement && document.documentElement.dataset && !document.documentElement.dataset
|
|
29654
|
+
if (document.documentElement && document.documentElement.dataset && !document.documentElement.dataset['emberExtension']) {
|
|
30327
29655
|
var downloadURL;
|
|
30328
29656
|
|
|
30329
29657
|
if (_browserEnvironment.isChrome) {
|
|
@@ -34760,6 +34088,19 @@ define("@ember/polyfills/lib/assign", ["exports", "@ember/debug"], function (_ex
|
|
|
34760
34088
|
return Object.assign(target, ...rest);
|
|
34761
34089
|
}
|
|
34762
34090
|
});
|
|
34091
|
+
define("@ember/renderer/index", ["exports", "@ember/-internals/glimmer"], function (_exports, _glimmer) {
|
|
34092
|
+
"use strict";
|
|
34093
|
+
|
|
34094
|
+
Object.defineProperty(_exports, "__esModule", {
|
|
34095
|
+
value: true
|
|
34096
|
+
});
|
|
34097
|
+
Object.defineProperty(_exports, "renderSettled", {
|
|
34098
|
+
enumerable: true,
|
|
34099
|
+
get: function () {
|
|
34100
|
+
return _glimmer.renderSettled;
|
|
34101
|
+
}
|
|
34102
|
+
});
|
|
34103
|
+
});
|
|
34763
34104
|
define("@ember/routing/auto-location", ["exports", "@ember/-internals/routing"], function (_exports, _routing) {
|
|
34764
34105
|
"use strict";
|
|
34765
34106
|
|
|
@@ -55722,7 +55063,7 @@ define("ember/version", ["exports"], function (_exports) {
|
|
|
55722
55063
|
value: true
|
|
55723
55064
|
});
|
|
55724
55065
|
_exports.default = void 0;
|
|
55725
|
-
var _default = "4.4.0-alpha.
|
|
55066
|
+
var _default = "4.4.0-alpha.4";
|
|
55726
55067
|
_exports.default = _default;
|
|
55727
55068
|
});
|
|
55728
55069
|
define("route-recognizer", ["exports"], function (_exports) {
|