ember-nav-stack 5.0.1 → 6.0.0

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 CHANGED
@@ -1,3 +1,14 @@
1
+ ## v6.0.0 (2023-12-03)
2
+
3
+ #### :boom: Breaking Change
4
+ * [#71](https://github.com/yapplabs/ember-nav-stack/pull/71) Update to ember 3.28 and address deprecations ([@lukemelia](https://github.com/lukemelia))
5
+
6
+ #### :house: Internal
7
+ * [#71](https://github.com/yapplabs/ember-nav-stack/pull/71) Update to ember 3.28 and address deprecations ([@lukemelia](https://github.com/lukemelia))
8
+
9
+ #### Committers: 1
10
+ - Luke Melia ([@lukemelia](https://github.com/lukemelia))
11
+
1
12
  ## v5.0.1 (2023-11-30)
2
13
 
3
14
  ## v5.0.0 (2023-09-19)
package/README.md CHANGED
@@ -7,9 +7,9 @@ This addon's current status is "opensource, but unpolished". It lacks tests, doc
7
7
  Compatibility
8
8
  ------------------------------------------------------------------------------
9
9
 
10
- * Ember.js v3.16 or above
11
- * Ember CLI v2.13 or above
12
- * Node.js v10 or above
10
+ * Ember.js v3.24 or above
11
+ * Ember CLI v3.24 or above
12
+ * Node.js v12 or above
13
13
 
14
14
 
15
15
  Installation
@@ -5,8 +5,6 @@ import { run, scheduleOnce } from '@ember/runloop';
5
5
  import { nextTick } from 'ember-nav-stack/utils/animation';
6
6
  import BackSwipeRecognizer from 'ember-nav-stack/utils/back-swipe-recognizer';
7
7
  import Hammer from 'hammerjs';
8
- // import { argument } from '@ember-decorators/argument';
9
- // import { Action, optional } from '@ember-decorators/argument/types';
10
8
  import { Spring } from 'wobble';
11
9
  import { getOwner } from '@ember/application';
12
10
  import { DEBUG } from '@glimmer/env';
@@ -22,11 +22,11 @@
22
22
  <div class="NavStack-header">
23
23
  {{#if this.parentItemHeaderComponent}}
24
24
  <div class="NavStack-headerContainer NavStack-parentItemHeaderContainer">
25
- {{component this.parentItemHeaderComponent class="NavStack-headerComponent"}}
25
+ {{component this.parentItemHeaderComponent class="NavStack-headerComponent" back=@back}}
26
26
  </div>
27
27
  {{/if}}
28
28
  <div class="NavStack-headerContainer NavStack-currentHeaderContainer">
29
- {{component this.headerComponent class="NavStack-headerComponent"}}
29
+ {{component this.headerComponent class="NavStack-headerComponent" back=@back}}
30
30
  </div>
31
31
  </div>
32
32
  {{#if this.hasFooter}}
@@ -1,6 +1,6 @@
1
- /* eslint-disable ember/no-new-mixins */
2
- import Mixin from '@ember/object/mixin';
3
- import { computed } from '@ember/object';
1
+ import Route from '@ember/routing/route';
2
+ import { action } from '@ember/object';
3
+ import { inject as service } from '@ember/service';
4
4
 
5
5
  export function getParentRoute(router, route) {
6
6
  // eslint-disable-next-line ember/no-private-routing-service
@@ -17,17 +17,21 @@ export function getParentRoute(router, route) {
17
17
  }
18
18
  }
19
19
 
20
- export default Mixin.create({
21
- templateName: 'stackable',
20
+ export default class StackableRoute extends Route {
21
+ @service router;
22
+ templateName = 'stackable';
23
+
22
24
  getRouteComponent(/* model */) {
23
25
  return `routable-components/${(
24
26
  this.routableTemplateName || this.routeName
25
27
  ).replace(/\./g, '/')}`;
26
- },
28
+ }
29
+
27
30
  getHeaderComponent(model) {
28
31
  return `${this.getRouteComponent(model)}/header`;
29
- },
30
- layerIndex: computed('_router', 'newLayer', function () {
32
+ }
33
+
34
+ get layerIndex() {
31
35
  let parentRoute = getParentRoute(this._router, this);
32
36
  let parentRouteLayerIndex = parentRoute.get('layerIndex');
33
37
  let currentLayerIndex = parentRouteLayerIndex || 0;
@@ -35,22 +39,23 @@ export default Mixin.create({
35
39
  return currentLayerIndex + 1;
36
40
  }
37
41
  return currentLayerIndex;
38
- }),
42
+ }
43
+
39
44
  setupController(controller, model) {
40
- this._super(controller, model);
45
+ super.setupController(controller, model);
41
46
  controller.setProperties({
42
47
  layerIndex: this.layerIndex,
43
48
  routeComponent: this.getRouteComponent(model),
44
49
  headerComponent: this.getHeaderComponent(model),
45
50
  routeName: this.routeName,
46
51
  });
47
- },
52
+ }
53
+
48
54
  getParentRouteName() {
49
55
  return getParentRoute(this._router, this).routeName;
50
- },
51
- actions: {
52
- back() {
53
- this.transitionTo(this.getParentRouteName());
54
- },
55
- },
56
- });
56
+ }
57
+
58
+ @action back() {
59
+ this.router.transitionTo(this.getParentRouteName());
60
+ }
61
+ }
@@ -1,6 +1,6 @@
1
1
  import { A } from '@ember/array';
2
2
  import Service from '@ember/service';
3
- import { run, next } from '@ember/runloop';
3
+ import { next, scheduleOnce } from '@ember/runloop';
4
4
  import EmberObject from '@ember/object';
5
5
  import { Promise as EmberPromise } from 'rsvp';
6
6
  import { buildWaiter } from '@ember/test-waiters';
@@ -65,6 +65,10 @@ export default class NavStacks extends Service {
65
65
  return this._runningTransitions;
66
66
  }
67
67
 
68
+ isRunningTransitions() {
69
+ return this._runningTransitions > 0;
70
+ }
71
+
68
72
  waitUntilTransitionIdle() {
69
73
  if (this._waitingPromise) {
70
74
  return this._waitingPromise;
@@ -89,7 +93,7 @@ export default class NavStacks extends Service {
89
93
  }
90
94
 
91
95
  _schedule() {
92
- run.scheduleOnce('afterRender', this, this._process);
96
+ scheduleOnce('afterRender', this, this._process);
93
97
  }
94
98
 
95
99
  _process() {
@@ -109,7 +113,7 @@ export default class NavStacks extends Service {
109
113
  }
110
114
  set(this, 'stacks', EmberObject.create(newStacks));
111
115
  if (this.isInitialRender === true) {
112
- run.next(this, this._clearIsInitialRender);
116
+ next(this, this._clearIsInitialRender);
113
117
  }
114
118
  this._listeners.invoke('stackItemsDidChange');
115
119
  this.didUpdate();
@@ -1,7 +1,7 @@
1
1
  // Thanks ember-css-transitions
2
2
  // https://github.com/peec/ember-css-transitions/blob/master/addon/mixins/transition-mixin.js
3
3
 
4
- import { run } from '@ember/runloop';
4
+ import { later, schedule } from '@ember/runloop';
5
5
  import RSVP from 'rsvp';
6
6
  import Ember from 'ember';
7
7
 
@@ -20,7 +20,7 @@ const TICK = 17;
20
20
  */
21
21
  function rAF(cb) {
22
22
  if (Ember.testing || !window.requestAnimationFrame) {
23
- return run.later(cb, TICK);
23
+ return later(cb, TICK);
24
24
  } else {
25
25
  return window.requestAnimationFrame(cb);
26
26
  }
@@ -33,7 +33,7 @@ function rAF(cb) {
33
33
  */
34
34
  export function nextTick() {
35
35
  return new RSVP.Promise((resolve) => {
36
- run.schedule('afterRender', () => {
36
+ schedule('afterRender', () => {
37
37
  rAF(() => {
38
38
  resolve();
39
39
  });
@@ -1,7 +1,8 @@
1
- {{to-nav-stack
2
- layer=layerIndex
3
- item=(component routeComponent model=model controller=this)
4
- header=(component headerComponent model=model controller=this)
5
- }}
1
+ <ToNavStack
2
+ @layer={{this.layerIndex}}
3
+ @item={{component this.routeComponent model=this.model controller=this}}
4
+ @header={{component this.headerComponent model=this.model controller=this}}
5
+ />
6
+
6
7
 
7
8
  {{outlet}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ember-nav-stack",
3
- "version": "5.0.1",
3
+ "version": "6.0.0",
4
4
  "description": "The default blueprint for ember-cli addons.",
5
5
  "keywords": [
6
6
  "ember-addon"
@@ -17,8 +17,9 @@
17
17
  },
18
18
  "scripts": {
19
19
  "build": "ember build --environment=production",
20
- "lint": "npm-run-all --aggregate-output --continue-on-error --parallel 'lint:!(fix)'",
20
+ "lint": "npm-run-all --aggregate-output --continue-on-error --parallel \"lint:!(fix)\"",
21
21
  "lint:fix": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*:fix",
22
+ "lint:hbs": "ember-template-lint .",
22
23
  "lint:hbs:fix": "ember-template-lint . --fix",
23
24
  "lint:js": "eslint . --cache",
24
25
  "release": "release-it",
@@ -44,13 +45,14 @@
44
45
  },
45
46
  "devDependencies": {
46
47
  "@ember/optional-features": "^2.0.0",
47
- "@ember/test-helpers": "^2.4.0",
48
+ "@ember/test-helpers": "^2.6.0",
48
49
  "@ember/test-waiters": "^3.0.2",
50
+ "@embroider/test-setup": "^0.48.1",
49
51
  "@glimmer/component": "^1.1.2",
50
52
  "@glimmer/tracking": "^1.1.2",
51
53
  "babel-eslint": "^10.1.0",
52
54
  "broccoli-asset-rev": "^3.0.0",
53
- "ember-cli": "~3.24.0",
55
+ "ember-cli": "~3.28.6",
54
56
  "ember-cli-dependency-checker": "^3.3.2",
55
57
  "ember-cli-deploy": "^2.0.0",
56
58
  "ember-cli-deploy-build": "^3.0.0",
@@ -67,17 +69,18 @@
67
69
  "ember-page-title": "^8.0.0",
68
70
  "ember-qunit": "^5.1.5",
69
71
  "ember-resolver": "^11.0.1",
70
- "ember-route-action-helper": "^2.0.8",
72
+ "ember-set-helper": "^2.0.1",
71
73
  "ember-simulant-test-helpers": "^0.3.2",
72
- "ember-source": "~3.24.0",
74
+ "ember-source": "~3.28.8",
73
75
  "ember-source-channel-url": "^3.0.0",
74
- "ember-template-lint": "^5.11.2",
76
+ "ember-template-lint": "^5.13.0",
75
77
  "ember-try": "^3.0.0",
76
- "eslint": "^7.26.0",
78
+ "eslint": "^7.32.0",
77
79
  "eslint-config-prettier": "^9.0.0",
78
- "eslint-plugin-ember": "^10.4.2",
80
+ "eslint-plugin-ember": "^10.5.8",
79
81
  "eslint-plugin-node": "^11.1.0",
80
82
  "eslint-plugin-prettier": "^5.0.0",
83
+ "eslint-plugin-qunit": "^6.2.0",
81
84
  "loader.js": "^4.7.0",
82
85
  "npm-run-all": "^4.1.5",
83
86
  "prettier": "^3.0.2",
@@ -88,7 +91,7 @@
88
91
  "sass": "^1.66.1"
89
92
  },
90
93
  "engines": {
91
- "node": ">= 14"
94
+ "node": "12.* || 14.* || >= 16"
92
95
  },
93
96
  "publishConfig": {
94
97
  "registry": "https://registry.npmjs.org"
package/.prettierignore DELETED
@@ -1,21 +0,0 @@
1
- # unconventional js
2
- /blueprints/*/files/
3
- /vendor/
4
-
5
- # compiled output
6
- /dist/
7
- /tmp/
8
-
9
- # dependencies
10
- /bower_components/
11
- /node_modules/
12
-
13
- # misc
14
- /coverage/
15
- !.*
16
- .eslintcache
17
-
18
- # ember-try
19
- /.node_modules.ember-try/
20
- /bower.json.ember-try
21
- /package.json.ember-try
package/.prettierrc.js DELETED
@@ -1,5 +0,0 @@
1
- 'use strict';
2
-
3
- module.exports = {
4
- singleQuote: true,
5
- };