mirror of https://github.com/status-im/consul.git
ui: Switch out WithResizingMixin for on-window helper (#8130)
* ui: Add ember-on-helper * Switch out WithResizingMixin for {{on-window}} helper
This commit is contained in:
parent
2b0b1e61d2
commit
830b110070
|
@ -1,3 +1,4 @@
|
||||||
|
{{on-window 'resize' (action "resize") }}
|
||||||
<EmberNativeScrollable @tagName="ul" @content-size={{_contentSize}} @scroll-left={{_scrollLeft}} @scroll-top={{_scrollTop}} @scrollChange={{action "scrollChange"}} @clientSizeChange={{action "clientSizeChange"}}>
|
<EmberNativeScrollable @tagName="ul" @content-size={{_contentSize}} @scroll-left={{_scrollLeft}} @scroll-top={{_scrollTop}} @scrollChange={{action "scrollChange"}} @clientSizeChange={{action "clientSizeChange"}}>
|
||||||
<li></li>
|
<li></li>
|
||||||
{{~#each _cells as |cell|~}}
|
{{~#each _cells as |cell|~}}
|
||||||
|
|
|
@ -3,9 +3,8 @@ import { computed, get, set } from '@ember/object';
|
||||||
import Component from 'ember-collection/components/ember-collection';
|
import Component from 'ember-collection/components/ember-collection';
|
||||||
import PercentageColumns from 'ember-collection/layouts/percentage-columns';
|
import PercentageColumns from 'ember-collection/layouts/percentage-columns';
|
||||||
import style from 'ember-computed-style';
|
import style from 'ember-computed-style';
|
||||||
import WithResizing from 'consul-ui/mixins/with-resizing';
|
|
||||||
|
|
||||||
export default Component.extend(WithResizing, {
|
export default Component.extend({
|
||||||
dom: service('dom'),
|
dom: service('dom'),
|
||||||
tagName: 'div',
|
tagName: 'div',
|
||||||
attributeBindings: ['style'],
|
attributeBindings: ['style'],
|
||||||
|
@ -17,6 +16,10 @@ export default Component.extend(WithResizing, {
|
||||||
this._super(...arguments);
|
this._super(...arguments);
|
||||||
this.columns = [25, 25, 25, 25];
|
this.columns = [25, 25, 25, 25];
|
||||||
},
|
},
|
||||||
|
didInsertElement: function() {
|
||||||
|
this._super(...arguments);
|
||||||
|
this.actions.resize.apply(this, [{ target: this.dom.viewport() }]);
|
||||||
|
},
|
||||||
didReceiveAttrs: function() {
|
didReceiveAttrs: function() {
|
||||||
this._super(...arguments);
|
this._super(...arguments);
|
||||||
this._cellLayout = this['cell-layout'] = new PercentageColumns(
|
this._cellLayout = this['cell-layout'] = new PercentageColumns(
|
||||||
|
@ -30,49 +33,51 @@ export default Component.extend(WithResizing, {
|
||||||
height: get(this, 'height'),
|
height: get(this, 'height'),
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
resize: function(e) {
|
actions: {
|
||||||
// TODO: This top part is very similar to resize in tabular-collection
|
resize: function(e) {
|
||||||
// see if it make sense to DRY out
|
// TODO: This top part is very similar to resize in tabular-collection
|
||||||
const dom = get(this, 'dom');
|
// see if it make sense to DRY out
|
||||||
const $appContent = dom.element('main > div');
|
const dom = get(this, 'dom');
|
||||||
if ($appContent) {
|
const $appContent = dom.element('main > div');
|
||||||
const rect = this.element.getBoundingClientRect();
|
if ($appContent) {
|
||||||
const $footer = dom.element('footer[role="contentinfo"]');
|
const rect = this.element.getBoundingClientRect();
|
||||||
const space = rect.top + $footer.clientHeight;
|
const $footer = dom.element('footer[role="contentinfo"]');
|
||||||
const height = e.detail.height - space;
|
const space = rect.top + $footer.clientHeight;
|
||||||
this.set('height', Math.max(0, height));
|
const height = e.target.innerHeight - space;
|
||||||
this.updateItems();
|
this.set('height', Math.max(0, height));
|
||||||
this.updateScrollPosition();
|
this.updateItems();
|
||||||
}
|
this.updateScrollPosition();
|
||||||
const width = e.detail.width;
|
}
|
||||||
const len = get(this, 'columns.length');
|
const width = e.target.innerWidth;
|
||||||
switch (true) {
|
const len = get(this, 'columns.length');
|
||||||
case width > 1013:
|
switch (true) {
|
||||||
if (len != 4) {
|
case width > 1013:
|
||||||
set(this, 'columns', [25, 25, 25, 25]);
|
if (len != 4) {
|
||||||
}
|
set(this, 'columns', [25, 25, 25, 25]);
|
||||||
break;
|
}
|
||||||
case width > 744:
|
break;
|
||||||
if (len != 3) {
|
case width > 744:
|
||||||
set(this, 'columns', [33, 33, 34]);
|
if (len != 3) {
|
||||||
}
|
set(this, 'columns', [33, 33, 34]);
|
||||||
break;
|
}
|
||||||
case width > 487:
|
break;
|
||||||
if (len != 2) {
|
case width > 487:
|
||||||
set(this, 'columns', [50, 50]);
|
if (len != 2) {
|
||||||
}
|
set(this, 'columns', [50, 50]);
|
||||||
break;
|
}
|
||||||
case width < 488:
|
break;
|
||||||
if (len != 1) {
|
case width < 488:
|
||||||
set(this, 'columns', [100]);
|
if (len != 1) {
|
||||||
}
|
set(this, 'columns', [100]);
|
||||||
}
|
}
|
||||||
if (len !== get(this, 'columns.length')) {
|
}
|
||||||
this._cellLayout = this['cell-layout'] = new PercentageColumns(
|
if (len !== get(this, 'columns.length')) {
|
||||||
get(this, 'items.length'),
|
this._cellLayout = this['cell-layout'] = new PercentageColumns(
|
||||||
get(this, 'columns'),
|
get(this, 'items.length'),
|
||||||
get(this, 'cellHeight')
|
get(this, 'columns'),
|
||||||
);
|
get(this, 'cellHeight')
|
||||||
}
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
{{on-window 'resize' (action "resize") }}
|
||||||
{{yield}}
|
{{yield}}
|
||||||
<EmberNativeScrollable
|
<EmberNativeScrollable
|
||||||
@tagName="ul"
|
@tagName="ul"
|
||||||
|
|
|
@ -4,10 +4,10 @@ import Component from 'ember-collection/components/ember-collection';
|
||||||
import PercentageColumns from 'ember-collection/layouts/percentage-columns';
|
import PercentageColumns from 'ember-collection/layouts/percentage-columns';
|
||||||
import style from 'ember-computed-style';
|
import style from 'ember-computed-style';
|
||||||
import Slotted from 'block-slots';
|
import Slotted from 'block-slots';
|
||||||
import WithResizing from 'consul-ui/mixins/with-resizing';
|
|
||||||
|
|
||||||
const formatItemStyle = PercentageColumns.prototype.formatItemStyle;
|
const formatItemStyle = PercentageColumns.prototype.formatItemStyle;
|
||||||
export default Component.extend(Slotted, WithResizing, {
|
|
||||||
|
export default Component.extend(Slotted, {
|
||||||
dom: service('dom'),
|
dom: service('dom'),
|
||||||
tagName: 'div',
|
tagName: 'div',
|
||||||
attributeBindings: ['style'],
|
attributeBindings: ['style'],
|
||||||
|
@ -20,6 +20,10 @@ export default Component.extend(Slotted, WithResizing, {
|
||||||
this._super(...arguments);
|
this._super(...arguments);
|
||||||
this.columns = [100];
|
this.columns = [100];
|
||||||
},
|
},
|
||||||
|
didInsertElement: function() {
|
||||||
|
this._super(...arguments);
|
||||||
|
this.actions.resize.apply(this, [{ target: this.dom.viewport() }]);
|
||||||
|
},
|
||||||
didReceiveAttrs: function() {
|
didReceiveAttrs: function() {
|
||||||
this._super(...arguments);
|
this._super(...arguments);
|
||||||
this._cellLayout = this['cell-layout'] = new PercentageColumns(
|
this._cellLayout = this['cell-layout'] = new PercentageColumns(
|
||||||
|
@ -41,23 +45,23 @@ export default Component.extend(Slotted, WithResizing, {
|
||||||
height: get(this, 'height'),
|
height: get(this, 'height'),
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
resize: function(e) {
|
|
||||||
// TODO: This top part is very similar to resize in tabular-collection
|
|
||||||
// see if it make sense to DRY out
|
|
||||||
const dom = get(this, 'dom');
|
|
||||||
const $appContent = dom.element('main > div');
|
|
||||||
if ($appContent) {
|
|
||||||
const border = 1;
|
|
||||||
const rect = this.element.getBoundingClientRect();
|
|
||||||
const $footer = dom.element('footer[role="contentinfo"]');
|
|
||||||
const space = rect.top + $footer.clientHeight + border;
|
|
||||||
const height = e.detail.height - space;
|
|
||||||
this.set('height', Math.max(0, height));
|
|
||||||
this.updateItems();
|
|
||||||
this.updateScrollPosition();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
actions: {
|
actions: {
|
||||||
|
resize: function(e) {
|
||||||
|
// TODO: This top part is very similar to resize in tabular-collection
|
||||||
|
// see if it make sense to DRY out
|
||||||
|
const dom = get(this, 'dom');
|
||||||
|
const $appContent = dom.element('main > div');
|
||||||
|
if ($appContent) {
|
||||||
|
const border = 1;
|
||||||
|
const rect = this.element.getBoundingClientRect();
|
||||||
|
const $footer = dom.element('footer[role="contentinfo"]');
|
||||||
|
const space = rect.top + $footer.clientHeight + border;
|
||||||
|
const height = e.target.innerHeight - space;
|
||||||
|
this.set('height', Math.max(0, height));
|
||||||
|
this.updateItems();
|
||||||
|
this.updateScrollPosition();
|
||||||
|
}
|
||||||
|
},
|
||||||
click: function(e) {
|
click: function(e) {
|
||||||
return this.dom.clickFirstAnchor(e, '.list-collection > ul > li');
|
return this.dom.clickFirstAnchor(e, '.list-collection > ul > li');
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
{{on-window 'resize' (action "resize") }}
|
||||||
{{yield}}
|
{{yield}}
|
||||||
<input id={{name}} type="radio" name="modal" data-checked="{{checked}}" checked={{checked}} onchange={{action 'change'}} />
|
<input id={{name}} type="radio" name="modal" data-checked="{{checked}}" checked={{checked}} onchange={{action 'change'}} />
|
||||||
<div role="dialog" aria-modal="true">
|
<div role="dialog" aria-modal="true">
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
import { get, set } from '@ember/object';
|
import { get, set } from '@ember/object';
|
||||||
import { inject as service } from '@ember/service';
|
import { inject as service } from '@ember/service';
|
||||||
import DomBufferComponent from 'consul-ui/components/dom-buffer';
|
import DomBufferComponent from 'consul-ui/components/dom-buffer';
|
||||||
import SlotsMixin from 'block-slots';
|
import Slotted from 'block-slots';
|
||||||
import WithResizing from 'consul-ui/mixins/with-resizing';
|
|
||||||
|
|
||||||
import templatize from 'consul-ui/utils/templatize';
|
import templatize from 'consul-ui/utils/templatize';
|
||||||
export default DomBufferComponent.extend(SlotsMixin, WithResizing, {
|
export default DomBufferComponent.extend(Slotted, {
|
||||||
dom: service('dom'),
|
dom: service('dom'),
|
||||||
checked: true,
|
checked: true,
|
||||||
height: null,
|
height: null,
|
||||||
|
@ -69,6 +68,7 @@ export default DomBufferComponent.extend(SlotsMixin, WithResizing, {
|
||||||
},
|
},
|
||||||
didInsertElement: function() {
|
didInsertElement: function() {
|
||||||
this._super(...arguments);
|
this._super(...arguments);
|
||||||
|
this.actions.resize.apply(this, [{ target: this.dom.viewport() }]);
|
||||||
if (this.checked) {
|
if (this.checked) {
|
||||||
// TODO: probably need an event here
|
// TODO: probably need an event here
|
||||||
// possibly this.element for the target
|
// possibly this.element for the target
|
||||||
|
@ -80,26 +80,26 @@ export default DomBufferComponent.extend(SlotsMixin, WithResizing, {
|
||||||
this._super(...arguments);
|
this._super(...arguments);
|
||||||
this.dom.root().classList.remove(...templatize(['with-modal']));
|
this.dom.root().classList.remove(...templatize(['with-modal']));
|
||||||
},
|
},
|
||||||
resize: function(e) {
|
actions: {
|
||||||
if (this.checked) {
|
resize: function(e) {
|
||||||
const height = this.height;
|
if (this.checked) {
|
||||||
if (height !== null) {
|
const height = this.height;
|
||||||
const dialogPanel = this.dialog;
|
if (height !== null) {
|
||||||
const overflowing = this.overflowingClass;
|
const dialogPanel = this.dialog;
|
||||||
if (height > e.detail.height) {
|
const overflowing = this.overflowingClass;
|
||||||
if (!dialogPanel.classList.contains(overflowing)) {
|
if (height > e.target.innerHeight) {
|
||||||
dialogPanel.classList.add(overflowing);
|
if (!dialogPanel.classList.contains(overflowing)) {
|
||||||
}
|
dialogPanel.classList.add(overflowing);
|
||||||
return;
|
}
|
||||||
} else {
|
return;
|
||||||
if (dialogPanel.classList.contains(overflowing)) {
|
} else {
|
||||||
dialogPanel.classList.remove(overflowing);
|
if (dialogPanel.classList.contains(overflowing)) {
|
||||||
|
dialogPanel.classList.remove(overflowing);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
},
|
|
||||||
actions: {
|
|
||||||
change: function(e) {
|
change: function(e) {
|
||||||
if (get(e, 'target.checked')) {
|
if (get(e, 'target.checked')) {
|
||||||
this._open(e);
|
this._open(e);
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
{{on-window 'resize' (action "resize") }}
|
||||||
{{yield}}
|
{{yield}}
|
||||||
{{#if hasCaption}}
|
{{#if hasCaption}}
|
||||||
<caption><YieldSlot @name="caption">{{yield}}</YieldSlot></caption>
|
<caption><YieldSlot @name="caption">{{yield}}</YieldSlot></caption>
|
||||||
|
|
|
@ -4,12 +4,11 @@ import CollectionComponent from 'ember-collection/components/ember-collection';
|
||||||
import needsRevalidate from 'ember-collection/utils/needs-revalidate';
|
import needsRevalidate from 'ember-collection/utils/needs-revalidate';
|
||||||
import Grid from 'ember-collection/layouts/grid';
|
import Grid from 'ember-collection/layouts/grid';
|
||||||
import style from 'ember-computed-style';
|
import style from 'ember-computed-style';
|
||||||
import SlotsMixin from 'block-slots';
|
import Slotted from 'block-slots';
|
||||||
import WithResizing from 'consul-ui/mixins/with-resizing';
|
|
||||||
|
|
||||||
const formatItemStyle = Grid.prototype.formatItemStyle;
|
const formatItemStyle = Grid.prototype.formatItemStyle;
|
||||||
|
|
||||||
export default CollectionComponent.extend(SlotsMixin, WithResizing, {
|
export default CollectionComponent.extend(Slotted, {
|
||||||
tagName: 'table',
|
tagName: 'table',
|
||||||
classNames: ['dom-recycling'],
|
classNames: ['dom-recycling'],
|
||||||
classNameBindings: ['hasActions'],
|
classNameBindings: ['hasActions'],
|
||||||
|
@ -34,6 +33,10 @@ export default CollectionComponent.extend(SlotsMixin, WithResizing, {
|
||||||
return style;
|
return style;
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
didInsertElement: function() {
|
||||||
|
this._super(...arguments);
|
||||||
|
this.actions.resize.apply(this, [{ target: this.dom.viewport() }]);
|
||||||
|
},
|
||||||
getStyle: computed('rowHeight', '_items', 'maxRows', 'maxHeight', function() {
|
getStyle: computed('rowHeight', '_items', 'maxRows', 'maxHeight', function() {
|
||||||
const maxRows = get(this, 'rows');
|
const maxRows = get(this, 'rows');
|
||||||
let height = get(this, 'maxHeight');
|
let height = get(this, 'maxHeight');
|
||||||
|
@ -46,30 +49,6 @@ export default CollectionComponent.extend(SlotsMixin, WithResizing, {
|
||||||
height: height,
|
height: height,
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
resize: function(e) {
|
|
||||||
const $tbody = this.element;
|
|
||||||
const $appContent = this.dom.element('main > div');
|
|
||||||
if ($appContent) {
|
|
||||||
const border = 1;
|
|
||||||
const rect = $tbody.getBoundingClientRect();
|
|
||||||
const $footer = this.dom.element('footer[role="contentinfo"]');
|
|
||||||
const space = rect.top + $footer.clientHeight + border;
|
|
||||||
const height = e.detail.height - space;
|
|
||||||
this.set('maxHeight', Math.max(0, height));
|
|
||||||
// TODO: The row height should auto calculate properly from the CSS
|
|
||||||
this['cell-layout'] = new Grid($appContent.clientWidth, get(this, 'rowHeight'));
|
|
||||||
const o = this;
|
|
||||||
this['cell-layout'].formatItemStyle = function(itemIndex) {
|
|
||||||
let style = formatItemStyle.apply(this, arguments);
|
|
||||||
if (o.checked === itemIndex) {
|
|
||||||
style = `${style};z-index: 1`;
|
|
||||||
}
|
|
||||||
return style;
|
|
||||||
};
|
|
||||||
this.updateItems();
|
|
||||||
this.updateScrollPosition();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
willRender: function() {
|
willRender: function() {
|
||||||
this._super(...arguments);
|
this._super(...arguments);
|
||||||
set(this, 'hasCaption', this._isRegistered('caption'));
|
set(this, 'hasCaption', this._isRegistered('caption'));
|
||||||
|
@ -88,6 +67,30 @@ export default CollectionComponent.extend(SlotsMixin, WithResizing, {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
|
resize: function(e) {
|
||||||
|
const $tbody = this.element;
|
||||||
|
const $appContent = this.dom.element('main > div');
|
||||||
|
if ($appContent) {
|
||||||
|
const border = 1;
|
||||||
|
const rect = $tbody.getBoundingClientRect();
|
||||||
|
const $footer = this.dom.element('footer[role="contentinfo"]');
|
||||||
|
const space = rect.top + $footer.clientHeight + border;
|
||||||
|
const height = e.target.innerHeight - space;
|
||||||
|
this.set('maxHeight', Math.max(0, height));
|
||||||
|
// TODO: The row height should auto calculate properly from the CSS
|
||||||
|
this['cell-layout'] = new Grid($appContent.clientWidth, get(this, 'rowHeight'));
|
||||||
|
const o = this;
|
||||||
|
this['cell-layout'].formatItemStyle = function(itemIndex) {
|
||||||
|
let style = formatItemStyle.apply(this, arguments);
|
||||||
|
if (o.checked === itemIndex) {
|
||||||
|
style = `${style};z-index: 1`;
|
||||||
|
}
|
||||||
|
return style;
|
||||||
|
};
|
||||||
|
this.updateItems();
|
||||||
|
this.updateScrollPosition();
|
||||||
|
}
|
||||||
|
},
|
||||||
click: function(e) {
|
click: function(e) {
|
||||||
return this.dom.clickFirstAnchor(e);
|
return this.dom.clickFirstAnchor(e);
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
import Mixin from '@ember/object/mixin';
|
|
||||||
import { inject as service } from '@ember/service';
|
|
||||||
import { assert } from '@ember/debug';
|
|
||||||
export default Mixin.create({
|
|
||||||
dom: service('dom'),
|
|
||||||
resize: function(e) {
|
|
||||||
assert('with-resizing.resize needs to be overridden', false);
|
|
||||||
},
|
|
||||||
init: function() {
|
|
||||||
this._super(...arguments);
|
|
||||||
this.handler = e => {
|
|
||||||
const win = e.target;
|
|
||||||
this.resize({
|
|
||||||
detail: { width: win.innerWidth, height: win.innerHeight },
|
|
||||||
});
|
|
||||||
};
|
|
||||||
},
|
|
||||||
didInsertElement: function() {
|
|
||||||
this._super(...arguments);
|
|
||||||
this.dom.viewport().addEventListener('resize', this.handler, false);
|
|
||||||
this.didAppear();
|
|
||||||
},
|
|
||||||
didAppear: function() {
|
|
||||||
this.handler({ target: this.dom.viewport() });
|
|
||||||
},
|
|
||||||
willDestroyElement: function() {
|
|
||||||
this.dom.viewport().removeEventListener('resize', this.handler, false);
|
|
||||||
this._super(...arguments);
|
|
||||||
},
|
|
||||||
});
|
|
|
@ -98,6 +98,7 @@
|
||||||
"ember-load-initializers": "^2.1.1",
|
"ember-load-initializers": "^2.1.1",
|
||||||
"ember-math-helpers": "^2.4.0",
|
"ember-math-helpers": "^2.4.0",
|
||||||
"ember-maybe-import-regenerator": "^0.1.6",
|
"ember-maybe-import-regenerator": "^0.1.6",
|
||||||
|
"ember-on-helper": "^0.1.0",
|
||||||
"ember-page-title": "^5.1.0",
|
"ember-page-title": "^5.1.0",
|
||||||
"ember-power-select": "^3.0.6",
|
"ember-power-select": "^3.0.6",
|
||||||
"ember-power-select-with-create": "^0.7.0",
|
"ember-power-select-with-create": "^0.7.0",
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
import { module } from 'qunit';
|
|
||||||
import test from 'ember-sinon-qunit/test-support/test';
|
|
||||||
import { setupTest } from 'ember-qunit';
|
|
||||||
import EmberObject from '@ember/object';
|
|
||||||
import Mixin from 'consul-ui/mixins/with-resizing';
|
|
||||||
module('Integration | Mixin | with-resizing', function(hooks) {
|
|
||||||
setupTest(hooks);
|
|
||||||
test('window.addEventListener, resize and window.removeEventListener are called once each through the entire lifecycle', function(assert) {
|
|
||||||
const win = {
|
|
||||||
innerWidth: 0,
|
|
||||||
innerHeight: 0,
|
|
||||||
addEventListener: this.stub(),
|
|
||||||
removeEventListener: this.stub(),
|
|
||||||
};
|
|
||||||
const dom = {
|
|
||||||
viewport: function() {
|
|
||||||
return win;
|
|
||||||
},
|
|
||||||
};
|
|
||||||
const subject = EmberObject.extend(Mixin, {
|
|
||||||
dom: dom,
|
|
||||||
}).create();
|
|
||||||
const resize = this.stub(subject, 'resize');
|
|
||||||
subject.didInsertElement();
|
|
||||||
subject.willDestroyElement();
|
|
||||||
assert.ok(win.addEventListener.calledOnce);
|
|
||||||
assert.ok(resize.calledOnce);
|
|
||||||
assert.ok(resize.calledWith({ detail: { width: 0, height: 0 } }));
|
|
||||||
assert.ok(win.removeEventListener.calledOnce);
|
|
||||||
});
|
|
||||||
});
|
|
|
@ -1,12 +0,0 @@
|
||||||
import EmberObject from '@ember/object';
|
|
||||||
import WithResizingMixin from 'consul-ui/mixins/with-resizing';
|
|
||||||
import { module, test } from 'qunit';
|
|
||||||
|
|
||||||
module('Unit | Mixin | with resizing', function() {
|
|
||||||
// Replace this with your real tests.
|
|
||||||
test('it works', function(assert) {
|
|
||||||
let WithResizingObject = EmberObject.extend(WithResizingMixin);
|
|
||||||
let subject = WithResizingObject.create();
|
|
||||||
assert.ok(subject);
|
|
||||||
});
|
|
||||||
});
|
|
|
@ -5789,6 +5789,13 @@ ember-native-dom-helpers@^0.6.3:
|
||||||
broccoli-funnel "^1.1.0"
|
broccoli-funnel "^1.1.0"
|
||||||
ember-cli-babel "^6.6.0"
|
ember-cli-babel "^6.6.0"
|
||||||
|
|
||||||
|
ember-on-helper@^0.1.0:
|
||||||
|
version "0.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/ember-on-helper/-/ember-on-helper-0.1.0.tgz#c8b1fef9173fc8546c4933b57ecd7ffbcebad99e"
|
||||||
|
integrity sha512-jjafBnWfoA4VSSje476ft5G+urlvvuSDddwAJjKDCjKY9mbe3hAEsJiMBAaPObJRMm1FOglCuKjQZfwDDls6MQ==
|
||||||
|
dependencies:
|
||||||
|
ember-cli-babel "^7.7.3"
|
||||||
|
|
||||||
ember-page-title@^5.1.0:
|
ember-page-title@^5.1.0:
|
||||||
version "5.1.0"
|
version "5.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/ember-page-title/-/ember-page-title-5.1.0.tgz#baf9fc00f95faf638f8493740a1f80daaa5007e9"
|
resolved "https://registry.yarnpkg.com/ember-page-title/-/ember-page-title-5.1.0.tgz#baf9fc00f95faf638f8493740a1f80daaa5007e9"
|
||||||
|
|
Loading…
Reference in New Issue