Skip to content

Commit 7261ff4

Browse files
committed
feat(ng-table.js): support the CommonJS module format
ng-table.js is now output in UMD format and thus supports the following module formats: * global script tag * AMD (eg RequireJS) * CommonJS BREAKING CHANGE: 1) The AMD (RequireJS) module returned by ng-table.js is now an object that references the angular module. Previously, the module returned *was* the angular module. Note: this will only affect apps that are using RequireJS to load ng-table.js. Those apps that are loading ng-table.js as a script tag will be unaffected. 2) Replaced LESS with SASS This will only affect the minority of apps that are using the ng-table.less file in the dist folder. Those apps that are using the ng-table.css will be unaffected.
1 parent 78be04b commit 7261ff4

27 files changed

+356
-74
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,5 @@ out
66
typings
77
npm-debug.log
88
test/*.js
9+
# redundant webpack build artifacts produced by ExtractTextPlugin
10+
dist/styles.*

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ before_install:
1010
install:
1111
- npm prune && npm install
1212
- npm run setup
13-
- grunt
13+
- npm run build
1414

1515
script:
1616
- npm test

circle.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ dependencies:
99
- npm install -g karma-cli
1010
- npm prune && npm install
1111
- npm run setup
12-
- grunt
12+
- npm run build
1313
cache_directories:
1414
- node_modules
1515
- bower_components

index.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import angular from 'angular';
2+
import { ngTable } from './src/scripts/ngTable.directive';
3+
import { ngTableColumn } from './src/scripts/ngTableColumn';
4+
import { ngTableColumnsBinding } from './src/scripts/ngTableColumnsBinding.directive';
5+
import { ngTableController } from './src/scripts/ngTableController';
6+
import { ngTableDefaultGetDataProvider } from './src/scripts/ngTableDefaultGetData';
7+
import { ngTableDefaults } from './src/scripts/ngTableDefaults';
8+
import { ngTableDynamic } from './src/scripts/ngTableDynamic.directive';
9+
import { ngTableEventsChannel } from './src/scripts/ngTableEventsChannel';
10+
import { ngTableFilterConfigProvider } from './src/scripts/ngTableFilterConfig';
11+
import { ngTableFilterRow } from './src/scripts/ngTableFilterRow.directive';
12+
import { ngTableFilterRowController } from './src/scripts/ngTableFilterRowController';
13+
import { ngTableGroupRow } from './src/scripts/ngTableGroupRow.directive';
14+
import { ngTableGroupRowController } from './src/scripts/ngTableGroupRowController';
15+
import { ngTablePagination } from './src/scripts/ngTablePagination.directive';
16+
import { ngTableParamsFactory } from './src/scripts/ngTableParams';
17+
import { ngTableSelectFilterDs } from './src/scripts/ngTableSelectFilterDs.directive';
18+
import { ngTableSorterRow } from './src/scripts/ngTableSorterRow.directive';
19+
import { ngTableSorterRowController } from './src/scripts/ngTableSorterRowController';
20+
21+
var module = angular.module('ngTable', [])
22+
.directive('ngTable', ngTable)
23+
.factory('ngTableColumn', ngTableColumn)
24+
.directive('ngTableColumnsBinding', ngTableColumnsBinding)
25+
.controller('ngTableController', ngTableController)
26+
.provider('ngTableDefaultGetData', ngTableDefaultGetDataProvider)
27+
.value('ngTableDefaults',ngTableDefaults)
28+
.directive('ngTableDynamic', ngTableDynamic)
29+
.factory('ngTableEventsChannel', ngTableEventsChannel)
30+
.provider('ngTableFilterConfig', ngTableFilterConfigProvider)
31+
.directive('ngTableFilterRow', ngTableFilterRow)
32+
.controller('ngTableFilterRowController', ngTableFilterRowController)
33+
.directive('ngTableGroupRow', ngTableGroupRow)
34+
.controller('ngTableGroupRowController', ngTableGroupRowController)
35+
.directive('ngTablePagination', ngTablePagination)
36+
.factory('NgTableParams', ngTableParamsFactory)
37+
.directive('ngTableSelectFilterDs', ngTableSelectFilterDs)
38+
.directive('ngTableSorterRow', ngTableSorterRow)
39+
.controller('ngTableSorterRowController', ngTableSorterRowController);
40+
41+
export { module as default };

package.json

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@
99
},
1010
"main": "dist/ng-table.js",
1111
"devDependencies": {
12+
"angular": "^1.5.8",
1213
"coveralls": "~2.11.0",
14+
"css-loader": "^0.23.1",
15+
"extract-text-webpack-plugin": "^2.0.0-beta.3",
1316
"grunt": "~0.4.2",
1417
"grunt-contrib-clean": "~0.4.0",
1518
"grunt-contrib-concat": "~0.3.0",
@@ -20,6 +23,7 @@
2023
"grunt-contrib-uglify": "0.8.x",
2124
"grunt-contrib-watch": "~0.6.x",
2225
"grunt-hustler": "0.11.2",
26+
"html-loader": "^0.4.3",
2327
"jasmine-core": "^2.3.4",
2428
"karma": "0.13.22",
2529
"karma-chrome-launcher": "1.0.1",
@@ -30,16 +34,29 @@
3034
"karma-phantomjs-launcher": "1.0.0",
3135
"load-grunt-tasks": "~0.2.0",
3236
"lodash": "~3.7.0",
37+
"ngtemplate-loader": "github:wearymonkey/ngtemplate-loader#63e3461d8b1298de913e3528766068260915ae1f",
38+
"node-sass": "^3.8.0",
3339
"phantomjs-prebuilt": "2.1.7",
40+
"sass-loader": "^4.0.0",
41+
"style-loader": "^0.13.1",
3442
"typescript": "1.8.10",
35-
"typings": "^1.2.0"
43+
"typings": "^1.2.0",
44+
"webpack": "^2.1.0-beta.20",
45+
"webpack-dev-server": "^2.1.0-beta.0",
46+
"webpack-merge": "^0.14.1"
3647
},
3748
"scripts": {
49+
"build": "webpack --env.debug",
50+
"build:prod": "webpack --env.prod",
51+
"build:full": "webpack --env.prod --env.debug",
3852
"setup": "bower prune && bower install && npm run typings",
3953
"test": "npm run tsc && karma start --single-run --no-auto-watch",
4054
"tsc": "tsc",
4155
"tsc:w": "tsc -w",
42-
"typings": "typings install"
56+
"typings": "typings install",
57+
"watch:debug": "webpack --watch --env.debug",
58+
"watch": "webpack --watch",
59+
"webpack": "webpack"
4360
},
4461
"dependencies": {},
4562
"peerDependencies": {

src/scripts/ngTable.directive.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* @url https://github.com/esvit/ng-table/
66
* @license New BSD License <http://creativecommons.org/licenses/BSD/>
77
*/
8-
8+
import angular from 'angular';
99

1010
/**
1111
* @ngdoc directive
@@ -16,8 +16,6 @@
1616
* @description
1717
* Directive that instantiates {@link ngTableController ngTableController}.
1818
*/
19-
angular.module('ngTable').directive('ngTable', ngTable);
20-
2119
ngTable.$inject = ['$q', '$parse'];
2220

2321
function ngTable($q, $parse) {
@@ -129,3 +127,5 @@ function ngTable($q, $parse) {
129127
}
130128
}
131129
}
130+
131+
export { ngTable };

src/scripts/ngTableColumn.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
* @license New BSD License <http://creativecommons.org/licenses/BSD/>
77
*/
88

9+
import angular from 'angular';
910

1011
/**
1112
* @ngdoc service
@@ -14,8 +15,6 @@
1415
* @description
1516
* Service to construct a $column definition used by {@link ngTable ngTable} directive
1617
*/
17-
angular.module('ngTable').factory('ngTableColumn', ngTableColumn);
18-
1918
ngTableColumn.$inject = [];
2019

2120
function ngTableColumn() {
@@ -121,4 +120,6 @@ function ngTableColumn() {
121120
function isScopeLike(object){
122121
return object != null && angular.isFunction(object.$new);
123122
}
124-
}
123+
}
124+
125+
export { ngTableColumn };

src/scripts/ngTableColumnsBinding.directive.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@
66
* @license New BSD License <http://creativecommons.org/licenses/BSD/>
77
*/
88

9-
angular.module('ngTable')
10-
.directive('ngTableColumnsBinding', ngTableColumnsBinding);
11-
129
ngTableColumnsBinding.$inject = ["$parse"];
1310

1411
/**
@@ -36,4 +33,6 @@ function ngTableColumnsBinding($parse){
3633
});
3734
}
3835
}
39-
}
36+
}
37+
38+
export { ngTableColumnsBinding };

src/scripts/ngTableController.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@
66
* @license New BSD License <http://creativecommons.org/licenses/BSD/>
77
*/
88

9+
import angular from 'angular';
10+
911
/**
1012
* @ngdoc object
1113
* @name ngTableController
1214
*
1315
* @description
1416
* Each {@link ngTable ngTable} directive creates an instance of `ngTableController`
1517
*/
16-
angular.module('ngTable').controller('ngTableController', ngTableController);
17-
1818
ngTableController.$inject = [
1919
'$scope', 'NgTableParams', '$timeout', '$parse', '$compile', '$attrs', '$element', 'ngTableColumn', 'ngTableEventsChannel'
2020
];
@@ -270,4 +270,6 @@ function ngTableController($scope, NgTableParams, $timeout, $parse, $compile, $a
270270
}
271271

272272
commonInit();
273-
}
273+
}
274+
275+
export { ngTableController };

src/scripts/ngTableDefaultGetData.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@
66
* @license New BSD License <http://creativecommons.org/licenses/BSD/>
77
*/
88

9-
10-
angular.module('ngTable')
11-
.provider('ngTableDefaultGetData', ngTableDefaultGetDataProvider);
9+
import angular from 'angular';
1210

1311
ngTableDefaultGetDataProvider.$inject = [];
1412

@@ -127,4 +125,6 @@ function ngTableDefaultGetDataProvider(){
127125
return ret;
128126
}
129127
}
130-
}
128+
}
129+
130+
export { ngTableDefaultGetDataProvider };

0 commit comments

Comments
 (0)