From 127c01fc6e904e937eea848ad646c3d2e64a00cd Mon Sep 17 00:00:00 2001 From: Christian Crowhurst Date: Sun, 4 Dec 2016 18:04:13 +0000 Subject: [PATCH] refactor(ng-table): use named exports Workaround to webpack issue: https://github.com/webpack/webpack/issues/3415 --- demo-apps/es6-systemjs/system.config.js | 2 +- .../src/my-table/my-table.component.js | 6 ++-- index.ts | 26 +++++++++++++- src/core/index.ts | 36 ++++++++++++++----- 4 files changed, 57 insertions(+), 13 deletions(-) diff --git a/demo-apps/es6-systemjs/system.config.js b/demo-apps/es6-systemjs/system.config.js index f2687bba..6da52342 100644 --- a/demo-apps/es6-systemjs/system.config.js +++ b/demo-apps/es6-systemjs/system.config.js @@ -8,7 +8,7 @@ }; var packages = { - 'ng-table': { main: '/bundles/ng-table.js', defaultExtension: 'js' }, + 'ng-table': { main: '/bundles/ng-table.js', defaultExtension: 'js', format: 'amd' }, 'src': { defaultExtension: 'js' }, 'angular': { main: 'index.js', defaultExtension: 'js' } }; diff --git a/demo-apps/es6-webpack/src/my-table/my-table.component.js b/demo-apps/es6-webpack/src/my-table/my-table.component.js index cd4f6ae2..3ff17036 100644 --- a/demo-apps/es6-webpack/src/my-table/my-table.component.js +++ b/demo-apps/es6-webpack/src/my-table/my-table.component.js @@ -1,12 +1,12 @@ // todo: find out why this causes webpack to create a bundle that throws the error: // `Cannot redefine property: NgTableParams` -// import { NgTableParams } from 'ng-table'; +import { NgTableParams } from 'ng-table'; const templateUrl = require('./my-table.component.html'); class MyTableController { - constructor(NgTableParams) { + constructor() { var data = [ { name: "Moroni", age: 50 }, { name: "Tiancum", age: 43 }, @@ -33,7 +33,7 @@ class MyTableController { } } -MyTableController.$inject = ['NgTableParams']; +MyTableController.$inject = []; const myTableComponent = { templateUrl: templateUrl, diff --git a/index.ts b/index.ts index 66f0eb2c..1292b524 100644 --- a/index.ts +++ b/index.ts @@ -5,5 +5,29 @@ import { ngTableBrowserModule } from './src/browser'; const ngTableModule = ng1.module('ngTable', [ngTableCoreModule.name, ngTableBrowserModule.name]); export { ngTableModule }; -export * from './src/core'; + + +// todo: replace individual exports below with commented out export below once webpack produces a working bundle +// to track the progress of this, see https://github.com/webpack/webpack/issues/3415 + +// export * from './src/core'; +export { IDefaults } from './src/core/ngTableDefaults'; +export * from './src/core/ngTableEventsChannel'; +export { InternalTableParams, NgTableParams, IParamValues } from './src/core/ngTableParams'; +export { ISettings } from './src/core/ngTableSettings'; +export { IDataSettings } from './src/core/data/dataSettings'; +export { IGetDataFunc, IInterceptableGetDataFunc } from './src/core/data/getData'; +export { IInterceptor } from './src/core/data/interceptor'; +export { IDefaultGetData, NgTableDefaultGetDataProvider } from './src/core/data/ngTableDefaultGetData'; +export { DataResult, DataResults, IDataRowGroup, GroupedDataResults } from './src/core/data/results'; +export { FilterComparator, IFilterComparatorFunc } from './src/core/filtering/filterComparator'; +export { IFilterValues, IFilterFunc } from './src/core/filtering/filterFunc'; +export { FilterLayout, IFilterSettings } from './src/core/filtering/filterSettings'; +export { IGetGroupFunc } from './src/core/grouping/getGroup'; +export { Grouping, GroupSort, IGroupingFunc, IGroupValues } from './src/core/grouping/groupingFunc'; +export { IGroupSettings } from './src/core/grouping/groupSettings'; +export { IPageButton } from './src/core/paging'; +export { SortDirection, ISortingValues} from './src/core/sorting'; +export { ngTableCoreModule }; + export * from './src/browser'; \ No newline at end of file diff --git a/src/core/index.ts b/src/core/index.ts index 3dc6ef2e..baf6dd6b 100644 --- a/src/core/index.ts +++ b/src/core/index.ts @@ -1,8 +1,12 @@ import * as angular from 'angular'; -import { NgTableDefaultGetDataProvider, IDefaultGetData } from './data'; + +import { IDefaultGetData, NgTableDefaultGetDataProvider } from './data/ngTableDefaultGetData'; +import { IGroupSettings } from './grouping/groupSettings'; +import { ngTableDefaultGetGroups } from './grouping/ngTableDefaultGetGroups'; +// import { NgTableDefaultGetDataProvider, IDefaultGetData } from './data'; +// import { IGroupSettings, ngTableDefaultGetGroups } from './grouping'; import { ngTableDefaults, IDefaults } from './ngTableDefaults'; import { NgTableSettings, ISettings } from './ngTableSettings'; -import { IGroupSettings, ngTableDefaultGetGroups } from './grouping'; import { NgTableParams } from './ngTableParams'; import { NgTableEventsChannel } from './ngTableEventsChannel'; @@ -18,17 +22,33 @@ const ngTableCoreModule = angular.module('ngTable-core', []) // import { NgTableParams } from 'ng-table'; ngTableCoreModule.value('NgTableParams', NgTableParams) -export { IDefaults }; +export { IDefaults } from './ngTableDefaults'; export * from './ngTableEventsChannel'; -// note: having to export as individual modules rather than `*` to avoid webpack (bug?) -// causing the final bundle to throw an error `Cannot redefine property: NgTableParams` -// todo: replace with commented out export below once webpack produces a working bundle +// note: having to export as individual modules rather than `*` to avoid webpack (bug?) causing +// the final bundle to throw an error `Cannot redefine property: NgTableParams` export { InternalTableParams, NgTableParams, IParamValues } from './ngTableParams'; -// export * from './ngTableParams'; export { ISettings } from './ngTableSettings'; +export { IDataSettings } from './data/dataSettings'; +export { IGetDataFunc, IInterceptableGetDataFunc } from './data/getData'; +export { IInterceptor } from './data/interceptor'; +export { IDefaultGetData, NgTableDefaultGetDataProvider } from './data/ngTableDefaultGetData'; +export { DataResult, DataResults, IDataRowGroup, GroupedDataResults } from './data/results'; +export { FilterComparator, IFilterComparatorFunc } from './filtering/filterComparator'; +export { IFilterValues, IFilterFunc } from './filtering/filterFunc'; +export { FilterLayout, IFilterSettings } from './filtering/filterSettings'; +export { IGetGroupFunc } from './grouping/getGroup'; +export { Grouping, GroupSort, IGroupingFunc, IGroupValues } from './grouping/groupingFunc'; +export { IGroupSettings } from './grouping/groupSettings'; +export { IPageButton } from './paging'; +export { SortDirection, ISortingValues} from './sorting'; +export { ngTableCoreModule }; + +// todo: replace individual exports above with commented out exports below once webpack produces a working bundle +// to track the progress of this, see https://github.com/webpack/webpack/issues/3415 +/* export * from './data'; export * from './filtering'; export * from './grouping/publicExports'; export * from './paging'; export * from './sorting'; -export { ngTableCoreModule }; \ No newline at end of file + */ \ No newline at end of file