@bennerinformatics/ember-fw-table 2.0.19 → 2.0.21

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.
Files changed (32) hide show
  1. package/addon/classes/Row.js +74 -74
  2. package/addon/classes/Table.js +147 -147
  3. package/addon/components/fw-cell-action.js +15 -15
  4. package/addon/components/fw-cell-boolean.js +12 -12
  5. package/addon/components/fw-cell-nullable.js +12 -12
  6. package/addon/components/fw-cell-permission-icon.js +12 -12
  7. package/addon/components/fw-column-title.js +13 -13
  8. package/addon/components/fw-delete-modal.js +61 -61
  9. package/addon/components/fw-pagination-wrapper.js +681 -681
  10. package/addon/components/fw-row-toggle-index.js +14 -14
  11. package/addon/components/fw-table-expanded-row.js +24 -24
  12. package/addon/components/fw-table-resort.js +3 -3
  13. package/addon/components/fw-table-sortable.js +398 -389
  14. package/addon/documentation.js +98 -98
  15. package/addon/templates/components/fw-delete-modal.hbs +2 -7
  16. package/addon/templates/components/fw-pagination-wrapper.hbs +45 -74
  17. package/addon/templates/components/fw-table-expanded-row.hbs +23 -23
  18. package/addon/templates/components/fw-table-expanded-rows.hbs +1 -1
  19. package/addon/templates/components/fw-table-resort.hbs +4 -4
  20. package/addon/templates/components/fw-table-sortable.hbs +9 -31
  21. package/addon/utils/base-cells.js +40 -40
  22. package/addon/utils/export.js +76 -76
  23. package/addon/utils/formats.js +46 -46
  24. package/addon/utils/table.js +35 -35
  25. package/app/breakpoints.js +1 -1
  26. package/app/components/fw-cell-permission-icon.js +1 -1
  27. package/app/initializers/responsive.js +1 -1
  28. package/bitbucket-helpers-override.js +240 -240
  29. package/codemods.log +16 -0
  30. package/index.js +9 -10
  31. package/package.json +67 -67
  32. package/yuidoc.json +21 -21
@@ -1,240 +1,240 @@
1
- // because we are using bitbucket rather than Github, a little bit of the url for the repository had to be changed.
2
- // Because of this, this entire file was taken from yuidoc-ember-theme/helpers/helpers.js and copied exactly with one notated change
3
- // If that project ever incorporates bitbucket as a configuration option into their app, then this helper becomes irrelevant and unnecessary.
4
- var PROJECT;
5
-
6
- module.exports = {
7
- log: function() {
8
- var slicedArgs = Array.prototype.slice.call(arguments, 0, arguments.length - 1);
9
- console.log.apply(console, slicedArgs);
10
- },
11
-
12
- setupGlobals: function() {
13
- PROJECT = this;
14
- return '';
15
- },
16
-
17
- setupClass: function() {
18
- var classes = this.classes;
19
-
20
- for(var i = 0; i < classes.length; i++) {
21
- if(classes[i].name === this.name) {
22
- this.isPrivate = !isPublic(classes[i]);
23
- break;
24
- }
25
- }
26
- },
27
-
28
- setupModule: function() {
29
- var self = this;
30
- var moduleClasses = [];
31
-
32
- this.classes.forEach(function(c) {
33
- if(c.module === self.name) {
34
- moduleClasses.push(c);
35
- }
36
- });
37
-
38
- this.filteredModuleClasses = moduleClasses;
39
- },
40
-
41
- isPrivate: function(context, options) {
42
- return isPublic(context) ? options.inverse(this) : options.fn(this);
43
- },
44
-
45
- publicClasses: function(context, options) {
46
- 'use strict';
47
- var ret = "";
48
-
49
- for (var i = 0; i < context.length; i++) {
50
- if (isPublic(context[i])) {
51
- ret = ret + options.fn(context[i]);
52
- }
53
- }
54
-
55
- return ret;
56
- },
57
-
58
- /**
59
- * Hack for:
60
- * https://github.com/yui/yuidoc/issues/198
61
- *
62
- * Usage:
63
- * {{#crossLinkWrapper type}}{{#crossLink type}}{{/crossLink}}{{/crossLinkWrapper}}
64
- */
65
- crossLinkWrapper: function(context, options) {
66
- if (!context) return '';
67
- var types_raw = context.split('|');
68
- var types_linked = options.fn(this).split('|');
69
-
70
- return types_raw.map(function(type, i) {
71
- if (/\[\]/.test(type)) {
72
- if (/<\/a>/.test(types_linked[i])) {
73
- return types_linked[i].replace('</a>', '[]</a>');
74
- } else {
75
- return types_linked[i].trim() + '[]';
76
- }
77
- } else {
78
- return types_linked[i];
79
- }
80
- }).join(' | ');
81
- },
82
-
83
- notEmpty: function(context, options) {
84
- 'use strict';
85
-
86
- if(context && Array.isArray(context)) {
87
- return context.length > 0 ? options.fn(this) : options.inverse(this);
88
- } else {
89
- return (!context || !String(context).replace(/\s/g, '')) ? options.inverse(this) : options.fn(this);
90
- }
91
- },
92
-
93
- hasStaticMethods: function(context, options) {
94
- 'use strict';
95
- var hasStatic = false;
96
- if (!context) return '';
97
- for (var i = 0; i < context.length; i++) {
98
- if (context[i]['static']) {
99
- hasStatic = true;
100
- break;
101
- }
102
- }
103
- if (hasStatic) {
104
- return options.fn(this);
105
- }
106
- return '';
107
- },
108
-
109
- hasInstanceMethods: function(context, options) {
110
- 'use strict';
111
- var hasInstance = false;
112
- if (!context) return '';
113
- for (var i = 0; i < context.length; i++) {
114
- if (!context[i]['static']) {
115
- hasInstance = true;
116
- break;
117
- }
118
- }
119
- if (hasInstance) {
120
- return options.fn(this);
121
- }
122
- return '';
123
- },
124
-
125
- search: function(classes, modules) {
126
- 'use strict';
127
- var ret = '';
128
-
129
- for (var i = 0; i < classes.length; i++) {
130
- if (i > 0) {
131
- ret += ', ';
132
- }
133
- ret += "\"" + 'classes/' + classes[i].displayName + "\"";
134
- }
135
-
136
- if (ret.length > 0 && modules.length > 0) {
137
- ret += ', ';
138
- }
139
-
140
- for (var j = 0; j < modules.length; j++) {
141
- if (j > 0) {
142
- ret += ', ';
143
- }
144
- ret += "\"" + 'modules/' + modules[j].displayName + "\"";
145
- }
146
-
147
- return ret;
148
- },
149
-
150
- or: function(a, b, options) {
151
- if(a || b) {
152
- return options.fn(this);
153
- }
154
- return '';
155
- },
156
-
157
- eq: function(v1, v2, options) {
158
- if(v1 == v2) {
159
- return options.fn(this);
160
- } else {
161
- return options.inverse(this);
162
- }
163
- },
164
-
165
- deEmberifiedName: function() {
166
- var name = this.projectName || '';
167
-
168
- var delimiter = name.indexOf('-') > -1 ? '-' : ' ';
169
- var segments = name.split(delimiter);
170
-
171
- if(segments[0].toLowerCase() === 'ember') {
172
- name = segments.slice(1, segments.length).join(delimiter).trim();
173
- }
174
-
175
- return name;
176
- },
177
-
178
- projectTag: function() {
179
- return getTagFromVersion(PROJECT.projectVersion);
180
- },
181
-
182
- githubFoundAt: function() {
183
- var meta = getFileMeta(this.file);
184
- return generateGhFileUrl(meta.url, meta.version, meta.file, this.line);
185
- },
186
-
187
- fileName: function() {
188
- var meta = getExternalFileMeta(this.file);
189
- return meta ? this.file.replace(new RegExp(meta.path, 'i'), meta.name) : this.file;
190
- },
191
-
192
- forwardToIndexModule: function() {
193
- return '<script type="text/javascript">' +
194
- 'window.location.replace("modules/' + this.projectIndexModule + '.html");' +
195
- '</script>'
196
- }
197
- };
198
-
199
- function getTagFromVersion(version) {
200
- if (version === 'master' || version.charAt(0).toLowerCase() === 'v') {
201
- return version;
202
- } else {
203
- return version.split('.').pop();
204
- }
205
- }
206
-
207
- function isPublic(context) {
208
- return context.itemtype || (!context.itemtype && context.access === 'public');
209
- }
210
-
211
- function getFileMeta(file) {
212
- var externalMeta = getExternalFileMeta(file)
213
-
214
- if (externalMeta) {
215
- return {
216
- file: file.replace(new RegExp(externalMeta.path, 'i'), ''),
217
- version: getTagFromVersion(externalMeta.version),
218
- url: externalMeta.url
219
- };
220
- } else {
221
- return {
222
- file: file,
223
- version: getTagFromVersion(PROJECT.projectVersion),
224
- url: PROJECT.projectUrl
225
- };
226
- }
227
- }
228
-
229
- function getExternalFileMeta(file) {
230
- var externalDocs = PROJECT.projectExternalDocs || [];
231
-
232
- return externalDocs.find(function(externalDoc) {
233
- return !!(file || '').match(new RegExp(externalDoc.path, 'i'));
234
- });
235
- }
236
-
237
- function generateGhFileUrl(baseUrl, version, file, line) {
238
- // this is the only part of the file that was changed "src" used to be "blob"
239
- return baseUrl + '/src/' + version + '/' + file + '#L' + line;
240
- }
1
+ // because we are using bitbucket rather than Github, a little bit of the url for the repository had to be changed.
2
+ // Because of this, this entire file was taken from yuidoc-ember-theme/helpers/helpers.js and copied exactly with one notated change
3
+ // If that project ever incorporates bitbucket as a configuration option into their app, then this helper becomes irrelevant and unnecessary.
4
+ var PROJECT;
5
+
6
+ module.exports = {
7
+ log: function() {
8
+ var slicedArgs = Array.prototype.slice.call(arguments, 0, arguments.length - 1);
9
+ console.log.apply(console, slicedArgs);
10
+ },
11
+
12
+ setupGlobals: function() {
13
+ PROJECT = this;
14
+ return '';
15
+ },
16
+
17
+ setupClass: function() {
18
+ var classes = this.classes;
19
+
20
+ for(var i = 0; i < classes.length; i++) {
21
+ if(classes[i].name === this.name) {
22
+ this.isPrivate = !isPublic(classes[i]);
23
+ break;
24
+ }
25
+ }
26
+ },
27
+
28
+ setupModule: function() {
29
+ var self = this;
30
+ var moduleClasses = [];
31
+
32
+ this.classes.forEach(function(c) {
33
+ if(c.module === self.name) {
34
+ moduleClasses.push(c);
35
+ }
36
+ });
37
+
38
+ this.filteredModuleClasses = moduleClasses;
39
+ },
40
+
41
+ isPrivate: function(context, options) {
42
+ return isPublic(context) ? options.inverse(this) : options.fn(this);
43
+ },
44
+
45
+ publicClasses: function(context, options) {
46
+ 'use strict';
47
+ var ret = "";
48
+
49
+ for (var i = 0; i < context.length; i++) {
50
+ if (isPublic(context[i])) {
51
+ ret = ret + options.fn(context[i]);
52
+ }
53
+ }
54
+
55
+ return ret;
56
+ },
57
+
58
+ /**
59
+ * Hack for:
60
+ * https://github.com/yui/yuidoc/issues/198
61
+ *
62
+ * Usage:
63
+ * {{#crossLinkWrapper type}}{{#crossLink type}}{{/crossLink}}{{/crossLinkWrapper}}
64
+ */
65
+ crossLinkWrapper: function(context, options) {
66
+ if (!context) return '';
67
+ var types_raw = context.split('|');
68
+ var types_linked = options.fn(this).split('|');
69
+
70
+ return types_raw.map(function(type, i) {
71
+ if (/\[\]/.test(type)) {
72
+ if (/<\/a>/.test(types_linked[i])) {
73
+ return types_linked[i].replace('</a>', '[]</a>');
74
+ } else {
75
+ return types_linked[i].trim() + '[]';
76
+ }
77
+ } else {
78
+ return types_linked[i];
79
+ }
80
+ }).join(' | ');
81
+ },
82
+
83
+ notEmpty: function(context, options) {
84
+ 'use strict';
85
+
86
+ if(context && Array.isArray(context)) {
87
+ return context.length > 0 ? options.fn(this) : options.inverse(this);
88
+ } else {
89
+ return (!context || !String(context).replace(/\s/g, '')) ? options.inverse(this) : options.fn(this);
90
+ }
91
+ },
92
+
93
+ hasStaticMethods: function(context, options) {
94
+ 'use strict';
95
+ var hasStatic = false;
96
+ if (!context) return '';
97
+ for (var i = 0; i < context.length; i++) {
98
+ if (context[i]['static']) {
99
+ hasStatic = true;
100
+ break;
101
+ }
102
+ }
103
+ if (hasStatic) {
104
+ return options.fn(this);
105
+ }
106
+ return '';
107
+ },
108
+
109
+ hasInstanceMethods: function(context, options) {
110
+ 'use strict';
111
+ var hasInstance = false;
112
+ if (!context) return '';
113
+ for (var i = 0; i < context.length; i++) {
114
+ if (!context[i]['static']) {
115
+ hasInstance = true;
116
+ break;
117
+ }
118
+ }
119
+ if (hasInstance) {
120
+ return options.fn(this);
121
+ }
122
+ return '';
123
+ },
124
+
125
+ search: function(classes, modules) {
126
+ 'use strict';
127
+ var ret = '';
128
+
129
+ for (var i = 0; i < classes.length; i++) {
130
+ if (i > 0) {
131
+ ret += ', ';
132
+ }
133
+ ret += "\"" + 'classes/' + classes[i].displayName + "\"";
134
+ }
135
+
136
+ if (ret.length > 0 && modules.length > 0) {
137
+ ret += ', ';
138
+ }
139
+
140
+ for (var j = 0; j < modules.length; j++) {
141
+ if (j > 0) {
142
+ ret += ', ';
143
+ }
144
+ ret += "\"" + 'modules/' + modules[j].displayName + "\"";
145
+ }
146
+
147
+ return ret;
148
+ },
149
+
150
+ or: function(a, b, options) {
151
+ if(a || b) {
152
+ return options.fn(this);
153
+ }
154
+ return '';
155
+ },
156
+
157
+ eq: function(v1, v2, options) {
158
+ if(v1 == v2) {
159
+ return options.fn(this);
160
+ } else {
161
+ return options.inverse(this);
162
+ }
163
+ },
164
+
165
+ deEmberifiedName: function() {
166
+ var name = this.projectName || '';
167
+
168
+ var delimiter = name.indexOf('-') > -1 ? '-' : ' ';
169
+ var segments = name.split(delimiter);
170
+
171
+ if(segments[0].toLowerCase() === 'ember') {
172
+ name = segments.slice(1, segments.length).join(delimiter).trim();
173
+ }
174
+
175
+ return name;
176
+ },
177
+
178
+ projectTag: function() {
179
+ return getTagFromVersion(PROJECT.projectVersion);
180
+ },
181
+
182
+ githubFoundAt: function() {
183
+ var meta = getFileMeta(this.file);
184
+ return generateGhFileUrl(meta.url, meta.version, meta.file, this.line);
185
+ },
186
+
187
+ fileName: function() {
188
+ var meta = getExternalFileMeta(this.file);
189
+ return meta ? this.file.replace(new RegExp(meta.path, 'i'), meta.name) : this.file;
190
+ },
191
+
192
+ forwardToIndexModule: function() {
193
+ return '<script type="text/javascript">' +
194
+ 'window.location.replace("modules/' + this.projectIndexModule + '.html");' +
195
+ '</script>'
196
+ }
197
+ };
198
+
199
+ function getTagFromVersion(version) {
200
+ if (version === 'master' || version.charAt(0).toLowerCase() === 'v') {
201
+ return version;
202
+ } else {
203
+ return version.split('.').pop();
204
+ }
205
+ }
206
+
207
+ function isPublic(context) {
208
+ return context.itemtype || (!context.itemtype && context.access === 'public');
209
+ }
210
+
211
+ function getFileMeta(file) {
212
+ var externalMeta = getExternalFileMeta(file)
213
+
214
+ if (externalMeta) {
215
+ return {
216
+ file: file.replace(new RegExp(externalMeta.path, 'i'), ''),
217
+ version: getTagFromVersion(externalMeta.version),
218
+ url: externalMeta.url
219
+ };
220
+ } else {
221
+ return {
222
+ file: file,
223
+ version: getTagFromVersion(PROJECT.projectVersion),
224
+ url: PROJECT.projectUrl
225
+ };
226
+ }
227
+ }
228
+
229
+ function getExternalFileMeta(file) {
230
+ var externalDocs = PROJECT.projectExternalDocs || [];
231
+
232
+ return externalDocs.find(function(externalDoc) {
233
+ return !!(file || '').match(new RegExp(externalDoc.path, 'i'));
234
+ });
235
+ }
236
+
237
+ function generateGhFileUrl(baseUrl, version, file, line) {
238
+ // this is the only part of the file that was changed "src" used to be "blob"
239
+ return baseUrl + '/src/' + version + '/' + file + '#L' + line;
240
+ }
package/codemods.log ADDED
@@ -0,0 +1,16 @@
1
+ 2024-07-08T21:10:22.429Z [warn] WARNING: {{fw-fullscreen-modal}} was not converted as it has positional parameters which can't be automatically converted. Source: addon/templates/components/fw-delete-modal.hbs
2
+ 2024-07-08T21:10:22.475Z [warn] WARNING: {{yield}} was not converted as it has positional parameters which can't be automatically converted. Source: addon/templates/components/fw-pagination-wrapper.hbs
3
+ 2024-07-08T21:10:22.478Z [warn] WARNING: {{fw-table-sortable}} was not converted as it has positional parameters which can't be automatically converted. Source: addon/templates/components/fw-pagination-wrapper.hbs
4
+ 2024-07-08T21:10:22.478Z [warn] WARNING: {{yield}} was not converted as it has positional parameters which can't be automatically converted. Source: addon/templates/components/fw-pagination-wrapper.hbs
5
+ 2024-07-08T21:10:22.600Z [warn] WARNING: {{yield}} was not converted as it has positional parameters which can't be automatically converted. Source: addon/templates/components/fw-table-resort.hbs
6
+ 2024-07-08T21:10:22.633Z [warn] WARNING: {{yield}} was not converted as it has positional parameters which can't be automatically converted. Source: addon/templates/components/fw-table-sortable.hbs
7
+ 2024-07-08T21:10:22.633Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: addon/templates/components/fw-table-sortable.hbs
8
+ 2024-07-08T21:10:22.634Z [warn] WARNING: {{light-table}} was not converted as it has positional parameters which can't be automatically converted. Source: addon/templates/components/fw-table-sortable.hbs
9
+ 2024-07-08T21:10:22.637Z [warn] WARNING: {{yield}} was not converted as it has positional parameters which can't be automatically converted. Source: addon/templates/components/fw-table-sortable.hbs
10
+ 2024-07-09T14:00:38.763Z [warn] WARNING: {{yield}} was not converted as it has positional parameters which can't be automatically converted. Source: addon/templates/components/fw-pagination-wrapper.hbs
11
+ 2024-07-09T14:00:38.767Z [warn] WARNING: {{yield}} was not converted as it has positional parameters which can't be automatically converted. Source: addon/templates/components/fw-pagination-wrapper.hbs
12
+ 2024-07-09T14:00:38.954Z [warn] WARNING: {{yield}} was not converted as it has positional parameters which can't be automatically converted. Source: addon/templates/components/fw-table-resort.hbs
13
+ 2024-07-09T14:00:38.988Z [warn] WARNING: {{yield}} was not converted as it has positional parameters which can't be automatically converted. Source: addon/templates/components/fw-table-sortable.hbs
14
+ 2024-07-09T14:00:38.988Z [warn] WARNING: {{or}} was not converted as it has positional parameters which can't be automatically converted. Source: addon/templates/components/fw-table-sortable.hbs
15
+ 2024-07-09T14:00:38.988Z [warn] WARNING: {{light-table}} was not converted as it has positional parameters which can't be automatically converted. Source: addon/templates/components/fw-table-sortable.hbs
16
+ 2024-07-09T14:00:38.989Z [warn] WARNING: {{yield}} was not converted as it has positional parameters which can't be automatically converted. Source: addon/templates/components/fw-table-sortable.hbs
package/index.js CHANGED
@@ -1,10 +1,9 @@
1
- /* eslint-env node */
2
- 'use strict';
3
-
4
- module.exports = {
5
- name: '@bennerinformatics/ember-fw-table',
6
- included() {
7
- this._super.included.apply(this, arguments);
8
- },
9
- isDeveloppingAddon: () => true
10
- };
1
+ /* eslint-env node */
2
+ 'use strict';
3
+
4
+ module.exports = {
5
+ name: '@bennerinformatics/ember-fw-table',
6
+ included() {
7
+ this._super.included.apply(this, arguments);
8
+ }
9
+ };
package/package.json CHANGED
@@ -1,67 +1,67 @@
1
- {
2
- "name": "@bennerinformatics/ember-fw-table",
3
- "version": "2.0.19",
4
- "description": "Additional resources related to tables for the Ember FW App System.",
5
- "keywords": [
6
- "ember-addon",
7
- "fw"
8
- ],
9
- "license": "MIT",
10
- "author": "David Burnett <djburnett@olivet.edu>",
11
- "directories": {
12
- "doc": "doc",
13
- "test": "tests"
14
- },
15
- "repository": "",
16
- "scripts": {
17
- "build": "ember build",
18
- "start": "ember server",
19
- "test": "npm run lint && ember try:each",
20
- "lint": "ember test --launch phantomjs --filter=\"ESLint\""
21
- },
22
- "dependencies": {
23
- "ember-cli-babel": "~7.10.0",
24
- "ember-cli-htmlbars": "^3.1.0",
25
- "ember-light-table": "^1.13.2",
26
- "ember-papaparse": "^1.0.0",
27
- "ember-truth-helpers": "^2.1.0",
28
- "node-sass": "^4.12.0",
29
- "papaparse": "^5.0.2"
30
- },
31
- "devDependencies": {
32
- "@bennerinformatics/ember-fw": "^2.0.24",
33
- "broccoli-asset-rev": "^3.0.0",
34
- "ember-ajax": "^5.0.0",
35
- "ember-cli": "~3.10.0",
36
- "ember-cli-addon-docs-yuidoc": "^1.0.0",
37
- "ember-cli-app-version": "^3.2.0",
38
- "ember-cli-dependency-checker": "^3.2.0",
39
- "ember-cli-eslint": "^5.1.0",
40
- "ember-cli-htmlbars-inline-precompile": "^2.1.0",
41
- "ember-cli-inject-live-reload": "^2.0.1",
42
- "ember-cli-qunit": "^4.4.0",
43
- "ember-cli-shims": "^1.2.0",
44
- "ember-cli-sri": "^2.1.0",
45
- "ember-cli-uglify": "^3.0.0",
46
- "ember-cli-yuidoc": "^0.8.8",
47
- "ember-disable-prototype-extensions": "^1.1.3",
48
- "ember-export-application-global": "^2.0.0",
49
- "ember-load-initializers": "^2.0.0",
50
- "ember-resolver": "^5.2.1",
51
- "ember-responsive": "^3.0.5",
52
- "ember-sortable": "1.12.9",
53
- "ember-source": "~3.10.0",
54
- "eslint-plugin-ember": "^6.9.1",
55
- "eslint-plugin-ember-suave": "^1.0.0",
56
- "loader.js": "^4.7.0",
57
- "moment": "^2.24.0",
58
- "yuidoc-ember-theme": "^2.0.1"
59
-
60
- },
61
- "engines": {
62
- "node": ">= 0.10.0"
63
- },
64
- "ember-addon": {
65
- "configPath": "tests/dummy/config"
66
- }
67
- }
1
+ {
2
+ "name": "@bennerinformatics/ember-fw-table",
3
+ "version": "2.0.21",
4
+ "description": "Additional resources related to tables for the Ember FW App System.",
5
+ "keywords": [
6
+ "ember-addon",
7
+ "fw"
8
+ ],
9
+ "license": "MIT",
10
+ "author": "David Burnett <djburnett@olivet.edu>",
11
+ "directories": {
12
+ "doc": "doc",
13
+ "test": "tests"
14
+ },
15
+ "repository": "",
16
+ "scripts": {
17
+ "build": "ember build",
18
+ "start": "ember server",
19
+ "test": "npm run lint && ember try:each",
20
+ "lint": "ember test --launch phantomjs --filter=\"ESLint\""
21
+ },
22
+ "dependencies": {
23
+ "ember-cli-babel": "~7.10.0",
24
+ "ember-cli-htmlbars": "^3.1.0",
25
+ "ember-light-table": "^1.13.2",
26
+ "ember-papaparse": "^1.0.0",
27
+ "ember-truth-helpers": "^2.1.0",
28
+ "node-sass": "^4.12.0",
29
+ "papaparse": "^5.0.2"
30
+ },
31
+ "devDependencies": {
32
+ "@bennerinformatics/ember-fw": "^2.0.28",
33
+ "broccoli-asset-rev": "^3.0.0",
34
+ "ember-ajax": "^5.0.0",
35
+ "ember-cli": "~3.10.0",
36
+ "ember-cli-addon-docs-yuidoc": "^1.0.0",
37
+ "ember-cli-app-version": "^3.2.0",
38
+ "ember-cli-dependency-checker": "^3.2.0",
39
+ "ember-cli-eslint": "^5.1.0",
40
+ "ember-cli-htmlbars-inline-precompile": "^2.1.0",
41
+ "ember-cli-inject-live-reload": "^2.0.1",
42
+ "ember-cli-qunit": "^4.4.0",
43
+ "ember-cli-shims": "^1.2.0",
44
+ "ember-cli-sri": "^2.1.0",
45
+ "ember-cli-uglify": "^3.0.0",
46
+ "ember-cli-yuidoc": "^0.8.8",
47
+ "ember-disable-prototype-extensions": "^1.1.3",
48
+ "ember-export-application-global": "^2.0.0",
49
+ "ember-load-initializers": "^2.0.0",
50
+ "ember-resolver": "^5.2.1",
51
+ "ember-responsive": "^3.0.5",
52
+ "ember-sortable": "1.12.9",
53
+ "ember-source": "~3.10.0",
54
+ "eslint-plugin-ember": "^6.9.1",
55
+ "eslint-plugin-ember-suave": "^1.0.0",
56
+ "loader.js": "^4.7.0",
57
+ "moment": "^2.24.0",
58
+ "yuidoc-ember-theme": "^2.0.1"
59
+
60
+ },
61
+ "engines": {
62
+ "node": ">= 0.10.0"
63
+ },
64
+ "ember-addon": {
65
+ "configPath": "tests/dummy/config"
66
+ }
67
+ }