-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathng-table.js.map
1 lines (1 loc) · 188 KB
/
ng-table.js.map
1
{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 4dca3ba5c010a00a13d2","webpack:///external \"angular\"","webpack:///./src/core/index.ts","webpack:///./src/browser/index.ts","webpack:///./src/core/data/index.ts","webpack:///./src/shared/index.ts","webpack:///./src/browser/ngTableFilterConfig.ts","webpack:///./src/core/filtering/index.ts","webpack:///./src/core/grouping/groupSettings.ts","webpack:///./src/core/grouping/index.ts","webpack:///./src/core/ngTableEventsChannel.ts","webpack:///./src/core/ngTableParams.ts","webpack:///./src/core/ngTableSettings.ts","webpack:///./src/core/util.ts","webpack:///./src/browser/ngTable.directive.ts","webpack:///./src/browser/ngTableColumn.ts","webpack:///./src/browser/ngTableColumnsBinding.directive.ts","webpack:///./src/browser/ngTableController.ts","webpack:///./src/browser/ngTableDynamic.directive.ts","webpack:///./src/browser/ngTableFilterRow.directive.ts","webpack:///./src/browser/ngTableFilterRowController.ts","webpack:///./src/browser/ngTableGroupRow.directive.ts","webpack:///./src/browser/ngTableGroupRowController.ts","webpack:///./src/browser/ngTablePagination.directive.ts","webpack:///./src/browser/ngTableSelectFilterDs.directive.ts","webpack:///./src/browser/ngTableSorterRow.directive.ts","webpack:///./src/browser/ngTableSorterRowController.ts","webpack:///./src/core/data/dataSettings.ts","webpack:///./src/core/data/ngTableDefaultGetData.ts","webpack:///./src/core/filtering/filterSettings.ts","webpack:///./src/core/grouping/ngTableDefaultGetGroups.ts","webpack:///./src/core/grouping/publicExports.ts","webpack:///./src/core/ngTableDefaults.ts","webpack:///./src/shared/assign-partial-deep.ts","webpack:///./src/shared/check-class-init.ts","webpack:///./src/browser/filterRow.html","webpack:///./src/browser/filters/number.html","webpack:///./src/browser/filters/select-multiple.html","webpack:///./src/browser/filters/select.html","webpack:///./src/browser/filters/text.html","webpack:///./src/browser/groupRow.html","webpack:///./src/browser/header.html","webpack:///./src/browser/pager.html","webpack:///./src/browser/sorterRow.html","webpack:///./index.ts"],"names":[],"mappings":"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","file":"ng-table.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"angular\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"angular\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ng-table\"] = factory(require(\"angular\"));\n\telse\n\t\troot[\"ng-table\"] = factory(root[\"angular\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_0__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 44);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 4dca3ba5c010a00a13d2","module.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"angular\"\n// module id = 0\n// module chunks = 0","import * as angular from 'angular';\nimport { NgTableDefaultGetDataProvider, DefaultGetData } from './data';\nimport { GroupSettingsPartial, ngTableDefaultGetGroups } from './grouping';\nimport { ngTableDefaults, Defaults } from './ngTableDefaults';\nimport { SettingsPartial, Settings } from './ngTableSettings';\nimport { NgTableParams } from './ngTableParams';\nimport { NgTableEventsChannel } from './ngTableEventsChannel';\n\nconst ngTableCoreModule = angular.module('ngTable-core', [])\n .provider('ngTableDefaultGetData', NgTableDefaultGetDataProvider)\n .factory('ngTableDefaultGetGroups', ngTableDefaultGetGroups)\n .value('ngTableDefaults',ngTableDefaults)\n .service('ngTableEventsChannel', NgTableEventsChannel)\n .run(Settings.init)\n .run(NgTableParams.init);\n\n// note: if you are using ES6 or typescript prefer:\n// import { NgTableParams } from 'ng-table';\nngTableCoreModule.value('NgTableParams', NgTableParams)\n\nexport { ngTableCoreModule };\n\nexport { Defaults } from './ngTableDefaults';\nexport * from './ngTableEventsChannel';\nexport { SettingsPartial, Settings };\nexport * from './ngTableParams';\nexport * from './data';\nexport * from './filtering';\nexport * from './grouping/publicExports';\nexport * from './paging';\nexport * from './sorting';\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/core/index.ts","import * as angular from 'angular';\nimport { ngTable } from './ngTable.directive';\nimport { NgTableColumn } from './ngTableColumn';\nimport { ngTableColumnsBinding } from './ngTableColumnsBinding.directive';\nimport { NgTableController } from './ngTableController';\nimport { ngTableDynamic } from './ngTableDynamic.directive';\nimport { NgTableFilterConfigProvider, NgTableFilterConfig } from './ngTableFilterConfig';\nimport { ngTableFilterRow } from './ngTableFilterRow.directive';\nimport { NgTableFilterRowController } from './ngTableFilterRowController';\nimport { ngTableGroupRow } from './ngTableGroupRow.directive';\nimport { NgTableGroupRowController } from './ngTableGroupRowController';\nimport { ngTablePagination } from './ngTablePagination.directive';\nimport { ngTableSelectFilterDs } from './ngTableSelectFilterDs.directive';\nimport { ngTableSorterRow } from './ngTableSorterRow.directive';\nimport { NgTableSorterRowController } from './ngTableSorterRowController';\nimport './filters/number.html';\nimport './filters/select.html';\nimport './filters/select-multiple.html';\nimport './filters/text.html';\nimport './pager.html';\nimport './header.html';\n\nconst ngTableBrowserModule = angular.module('ngTable-browser', [])\n .directive('ngTable', ngTable)\n .service('ngTableColumn', NgTableColumn)\n .directive('ngTableColumnsBinding', ngTableColumnsBinding)\n .controller('ngTableController', NgTableController)\n .directive('ngTableDynamic', ngTableDynamic)\n .provider('ngTableFilterConfig', NgTableFilterConfigProvider)\n .directive('ngTableFilterRow', ngTableFilterRow)\n .controller('ngTableFilterRowController', NgTableFilterRowController)\n .directive('ngTableGroupRow', ngTableGroupRow)\n .controller('ngTableGroupRowController', NgTableGroupRowController)\n .directive('ngTablePagination', ngTablePagination)\n .directive('ngTableSelectFilterDs', ngTableSelectFilterDs)\n .directive('ngTableSorterRow', ngTableSorterRow)\n .controller('ngTableSorterRowController', NgTableSorterRowController);\n\nexport * from './public-interfaces';\nexport { NgTableController, ngTableBrowserModule };\nexport * from './ngTableFilterConfig';\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/browser/index.ts","export * from './dataSettings';\nexport * from './getData';\nexport * from './interceptor';\nexport * from './ngTableDefaultGetData';\nexport * from './results';\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/core/data/index.ts","export * from './assign-partial-deep';\nexport * from './check-class-init';\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/shared/index.ts","/**\n * ngTable: Table + Angular JS\n *\n * @author Vitalii Savchuk <[email protected]>\n * @url https://github.com/esvit/ng-table/\n * @license New BSD License <http://creativecommons.org/licenses/BSD/>\n */\n\nimport * as ng1 from 'angular';\nimport { IServiceProvider, auto } from 'angular';\nimport { assignPartialDeep } from '../shared';\nimport { FilterTemplateDef } from './public-interfaces';\n\n/**\n * Configuration values that determine the behaviour of the `ngTableFilterConfig` service\n */\nexport class FilterConfigValues {\n /**\n * The default base url to use when deriving the url for a filter template given just an alias name\n */\n defaultBaseUrl = 'ng-table/filters/';\n /**\n * The extension to use when deriving the url of a filter template when given just an alias name\n */\n defaultExt = '.html';\n /**\n * A map of alias names and their corrosponding urls. A lookup against this map will be used\n * to find the url matching an alias name.\n * If no match is found then a url will be derived using the following pattern `${defaultBaseUrl}${aliasName}.${defaultExt}`\n */\n aliasUrls: { [name: string]: string } = {};\n}\n\nexport type FilterConfigValuesPartial = Partial<FilterConfigValues>\n\n/**\n * The angular provider used to configure the behaviour of the `NgTableFilterConfig` service.\n */\nexport class NgTableFilterConfigProvider implements IServiceProvider {\n static $inject = ['$injector'];\n $get: () => NgTableFilterConfig;\n private config: FilterConfigValues;\n constructor($injector: auto.IInjectorService) {\n this.$get = () => {\n return $injector.instantiate<NgTableFilterConfig>(NgTableFilterConfig, { config: ng1.copy(this.config) });\n }\n this.$get.$inject = [];\n this.resetConfigs();\n }\n\n /**\n * Reset back to factory defaults the config values that `NgTableFilterConfig` service will use\n */\n resetConfigs() {\n this.config = new FilterConfigValues();\n }\n\n /**\n * Set the config values used by `NgTableFilterConfig` service\n */\n setConfig(customConfig: FilterConfigValuesPartial) {\n this.config = assignPartialDeep(ng1.copy(this.config), customConfig);\n }\n}\n\n/**\n * Exposes configuration values and methods used to return the location of the html\n * templates used to render the filter row of an ng-table directive\n */\nexport class NgTableFilterConfig {\n static $inject = ['config'];\n constructor(\n /**\n * Readonly copy of the final values used to configure the service.\n */\n public readonly config: FilterConfigValues\n ) { }\n\n /**\n * Return the url of the html filter template registered with the alias supplied\n */\n getUrlForAlias(aliasName: string, filterKey?: string) {\n return this.config.aliasUrls[aliasName] || this.config.defaultBaseUrl + aliasName + this.config.defaultExt;\n }\n \n /**\n * Return the url of the html filter template for the supplied definition and key.\n * For more information see the documentation for {@link FilterTemplateMap}\n */\n getTemplateUrl(filterDef: string | FilterTemplateDef, filterKey?: string) {\n let filterName: string;\n if (typeof filterDef !== 'string') {\n filterName = filterDef.id;\n } else {\n filterName = filterDef;\n }\n if (filterName.indexOf('/') !== -1) {\n return filterName;\n }\n\n return this.getUrlForAlias(filterName, filterKey);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/browser/ngTableFilterConfig.ts","export * from './filterComparator';\nexport * from './filterFunc';\nexport * from './filterSettings';\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/core/filtering/index.ts","import { SortDirection } from '../sorting';\n\nexport type GroupSort = SortDirection | '';\n\nexport type GroupSettingsPartial = Partial<GroupSettings>\n\n/**\n * Configuration that determines the data row grouping behaviour of a table\n */\nexport class GroupSettings {\n /**\n * The default sort direction that will be used whenever a group is supplied that\n * does not define its own sort direction\n */\n defaultSort: SortDirection = 'asc';\n /**\n * Determines whether groups should be displayed expanded to show their items. Defaults to true\n */\n isExpanded = true;\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/core/grouping/groupSettings.ts","export * from './getGroup';\nexport * from './groupingFunc';\nexport * from './groupSettings';\nexport * from './ngTableDefaultGetGroups';\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/core/grouping/index.ts","/**\n * ngTable: Table + Angular JS\n *\n * @author Vitalii Savchuk <[email protected]>\n * @url https://github.com/esvit/ng-table/\n * @license New BSD License <http://creativecommons.org/licenses/BSD/>\n */\n\nimport * as ng1 from 'angular';\nimport { IScope } from 'angular';\nimport { DataResult, DefaultGetData } from './data';\nimport { PageButton } from './paging';\nimport { InternalTableParams, NgTableParams } from './ngTableParams';\n\n\n/**\n * Alias for the types that can be used to filter events\n */\nexport type EventSelector<T> = NgTableParams<T> | EventSelectorFunc\n\n/**\n * Signature of the event hander that is registered to receive the *afterCreated* event\n */\nexport interface AfterCreatedListener {\n (publisher: NgTableParams<any>): any\n}\n/**\n * Signature of the event hander that is registered to receive the *afterReloadData* event\n */\nexport interface AfterReloadDataListener<T> {\n (publisher: NgTableParams<T>, newData: DataResult<T>[], oldData: DataResult<T>[]): any\n}\n/**\n * Signature of the event hander that is registered to receive the *datasetChanged* event\n */\nexport interface DatasetChangedListener<T> {\n (publisher: NgTableParams<T>, newDataset: T[], oldDataset: T[]): any\n}\n/**\n * Signature of the function used to filter the events to only specific instances of \n * {@link NgTableParams}\n */\nexport interface EventSelectorFunc {\n (publisher: NgTableParams<any>): boolean\n}\n/**\n * Signature of the event hander that is registered to receive the *pagesChanged* event\n */\nexport interface PagesChangedListener {\n (publisher: NgTableParams<any>, newPages: PageButton[], oldPages: PageButton[]): any\n}\n/**\n* Signature of the event hander that is registered to receive the *afterDataFiltered* event\n*/\nexport interface AfterDataFilteredListener<T> {\n (publisher: NgTableParams<T>, newData: DataResult<T>[] ): any\n}\n/**\n* Signature of the event hander that is registered to receive the *afterDataSorted* event\n*/\nexport interface AfterDataSortedListener<T> {\n (publisher: NgTableParams<T>, newData: DataResult<T>[] ): any\n}\n\n/**\n * Signature of the function used to explicitly unregister an event handler so that it stops\n * receiving notifications\n */\nexport interface UnregistrationFunc {\n (): void\n}\n\n/**\n * Strongly typed pub/sub for {@link NgTableParams}\n *\n * Supported events:\n *\n * * afterCreated - raised when a new instance of {@link NgTableParams} has finished being constructed\n * * afterReloadData - raised when the {@link NgTableParams} `reload` method has finished loading new data\n * * datasetChanged - raised when {@link Settings} `dataset` receives a new data array\n * * pagesChanged - raised when a new pages array has been generated\n */\nexport interface NgTableEventsChannel {\n /**\n * Subscribe to receive notification whenever a new `NgTableParams` instance has finished being constructed.\n * Optionally supply an `eventFilter` to restrict which events that should trigger the `listener` to be called. Supply a\n * `scope` to have angular automatically unregister the listener when the `scope` is destroyed.\n *\n * @param listener the function that will be called when the event fires\n * @param scope the angular `$scope` that will limit the lifetime of the event subscription\n * @param eventFilter a predicate function that should return true to receive the event\n * @return a unregistration function that when called will unregister the `listener`\n */\n onAfterCreated(listener: AfterCreatedListener, scope: IScope, eventFilter?: EventSelectorFunc): UnregistrationFunc;\n /**\n * Subscribe to receive notification whenever a new `NgTableParams` instance has finished being constructed.\n * Optionally supply an `eventFilter` to restrict which events that should trigger the `listener` to be called.\n *\n * @param listener the function that will be called when the event fires\n * @param eventFilter a predicate function that should return true to receive the event\n * @return a unregistration function that when called will unregister the `listener`\n */\n onAfterCreated(listener: AfterCreatedListener, eventFilter?: EventSelectorFunc): UnregistrationFunc;\n /**\n * Subscribe to receive notification whenever the `reload` method of an `NgTableParams` instance has successfully executed\n * Optionally supply an `eventFilter` to restrict which events that should trigger the `listener` to be called. Supply a\n * `scope` to have angular automatically unregister the listener when the `scope` is destroyed.\n *\n * @param listener the function that will be called when the event fires\n * @param scope the angular `$scope` that will limit the lifetime of the event subscription\n * @param eventFilter either the specific `NgTableParams` instance you want to receive events for or a predicate function that should return true to receive the event\n * @return a unregistration function that when called will unregister the `listener`\n */\n onAfterReloadData<T>(listener: AfterReloadDataListener<T>, scope: IScope, eventFilter?: EventSelector<T>): UnregistrationFunc;\n /**\n * Subscribe to receive notification whenever the `reload` method of an `NgTableParams` instance has successfully executed\n * Optionally supply an `eventFilter` to restrict which events that should trigger the `listener` to be called.\n *\n * @param listener the function that will be called when the event fires\n * @param eventFilter a predicate function that should return true to receive the event\n * @return a unregistration function that when called will unregister the `listener`\n */\n onAfterReloadData<T>(listener: AfterReloadDataListener<T>, eventFilter?: EventSelector<T>): UnregistrationFunc;\n\n /**\n * Subscribe to receive notification whenever a new data rows *array* is supplied as a `settings` value to a `NgTableParams` instance.\n * Optionally supply an `eventFilter` to restrict which events that should trigger the `listener` to be called. Supply a\n * `scope` to have angular automatically unregister the listener when the `scope` is destroyed.\n *\n * @param listener the function that will be called when the event fires\n * @param scope the angular `$scope` that will limit the lifetime of the event subscription\n * @param eventFilter either the specific `NgTableParams` instance you want to receive events for or a predicate function that should return true to receive the event\n * @return a unregistration function that when called will unregister the `listener`\n */\n onDatasetChanged<T>(listener: DatasetChangedListener<T>, scope: IScope, eventFilter?: EventSelector<T>): UnregistrationFunc;\n /**\n * Subscribe to receive notification whenever a new data rows *array* is supplied as a `settings` value to a `NgTableParams` instance.\n * Optionally supply an `eventFilter` to restrict which events that should trigger the `listener` to be called.\n *\n * @param listener the function that will be called when the event fires\n * @param eventFilter either the specific `NgTableParams` instance you want to receive events for or a predicate function that should return true to receive the event\n * @return a unregistration function that when called will unregister the `listener`\n */\n onDatasetChanged<T>(listener: DatasetChangedListener<T>, eventFilter?: EventSelector<T>): UnregistrationFunc;\n\n /**\n * Subscribe to receive notification whenever the paging buttons for an `NgTableParams` instance change\n * Optionally supply an `eventFilter` to restrict which events that should trigger the `listener` to be called. Supply a\n * `scope` to have angular automatically unregister the listener when the `scope` is destroyed.\n *\n * @param listener the function that will be called when the event fires\n * @param scope the angular `$scope` that will limit the lifetime of the event subscription\n * @param eventFilter either the specific `NgTableParams` instance you want to receive events for or a predicate function that should return true to receive the event\n * @return a unregistration function that when called will unregister the `listener`\n */\n onPagesChanged<T>(listener: PagesChangedListener, scope: IScope, eventFilter?: EventSelector<T>): UnregistrationFunc;\n /**\n * Subscribe to receive notification whenever the paging buttons for an `NgTableParams` instance change\n * Optionally supply an `eventFilter` to restrict which events that should trigger the `listener` to be called.\n *\n * @param listener the function that will be called when the event fires\n * @param eventFilter either the specific `NgTableParams` instance you want to receive events for or a predicate function that should return true to receive the event\n * @return a unregistration function that when called will unregister the `listener`\n */\n onPagesChanged<T>(listener: PagesChangedListener, eventFilter?: EventSelector<T>): UnregistrationFunc;\n /**\n * Subscribe to receive notification whenever a `ngTableDefaultGetData` instance filters data\n * Optionally supply an `eventFilter` to restrict which events that should trigger the `listener` to be called.\n *\n * @param listener the function that will be called when the event fires\n * @param scope the angular `$scope` that will limit the lifetime of the event subscription\n * @param eventFilter either the specific `DefaultGetData` instance you want to receive events for or a predicate function that should return true to receive the event\n * @return a unregistration function that when called will unregister the `listener`\n */\n onAfterDataFiltered<T>(listener: AfterDataFilteredListener<T>, scope: IScope, eventFilter?: EventSelector<T> ): UnregistrationFunc;\n /**\n * Subscribe to receive notification whenever a `ngTableDefaultGetData` instance filters data\n * Optionally supply an `eventFilter` to restrict which events that should trigger the `listener` to be called.\n *\n * @param listener the function that will be called when the event fires\n * @param eventFilter either the specific `DefaultGetData` instance you want to receive events for or a predicate function that should return true to receive the event\n * @return a unregistration function that when called will unregister the `listener`\n */\n onAfterDataFiltered<T>(listener: AfterDataFilteredListener<T>, eventFilter?: EventSelector<T> ): UnregistrationFunc; \n /**\n * Subscribe to receive notification whenever a `ngTableDefaultGetData` instance orders data\n * Optionally supply an `eventFilter` to restrict which events that should trigger the `listener` to be called.\n *\n * @param listener the function that will be called when the event fires\n * @param scope the angular `$scope` that will limit the lifetime of the event subscription\n * @param eventFilter either the specific `DefaultGetData` instance you want to receive events for or a predicate function that should return true to receive the event\n * @return a unregistration function that when called will unregister the `listener`\n */\n onAfterDataSorted<T>(listener: AfterDataSortedListener<T>, scope: IScope, eventFilter?: EventSelector<T> ): UnregistrationFunc;\n /**\n * Subscribe to receive notification whenever a `ngTableDefaultGetData` instance orders data\n * Optionally supply an `eventFilter` to restrict which events that should trigger the `listener` to be called.\n *\n * @param listener the function that will be called when the event fires\n * @param eventFilter either the specific `DefaultGetData` instance you want to receive events for or a predicate function that should return true to receive the event\n * @return a unregistration function that when called will unregister the `listener`\n */\n onAfterDataSorted<T>(listener: AfterDataSortedListener<T>, eventFilter?: EventSelector<T> ): UnregistrationFunc;\n\n\n publishAfterCreated<T>(publisher: NgTableParams<T>): void;\n publishAfterReloadData<T>(publisher: NgTableParams<T>, newData: T[], oldData: T[]): void;\n publishDatasetChanged<T>(publisher: NgTableParams<T>, newDataset: T[] | undefined, oldDataset: T[] | undefined): void;\n publishPagesChanged<T>(publisher: NgTableParams<T>, newPages: PageButton[], oldPages: PageButton[]): void;\n publishAfterDataFiltered<T>(publisher: NgTableParams<T>, newData: T[]): void;\n publishAfterDataSorted<T>(params: NgTableParams<T>, newData: T[]): void;\n}\n\nexport class NgTableEventsChannel {\n static $inject = ['$rootScope'];\n constructor(private $rootScope: ng1.IRootScopeService) {\n let events = this;\n events = this.addTableParamsEvent('afterCreated', events);\n events = this.addTableParamsEvent('afterReloadData', events);\n events = this.addTableParamsEvent('datasetChanged', events);\n events = this.addTableParamsEvent('pagesChanged', events);\n events = this.addTableParamsEvent('afterDataFiltered', events);\n events = this.addTableParamsEvent('afterDataSorted', events);\n }\n private addTableParamsEvent(eventName: string, target: {}) {\n const fnName = eventName.charAt(0).toUpperCase() + eventName.substring(1);\n const event = {\n ['on' + fnName]: this.createEventSubscriptionFn(eventName),\n ['publish' + fnName]: this.createPublishEventFn(eventName)\n };\n return ng1.extend(target, event);\n }\n private createPublishEventFn(eventName: string) {\n return (...args: any[]) => {\n this.$rootScope.$broadcast('ngTable:' + eventName, ...args);\n }\n }\n private createEventSubscriptionFn(eventName: string) {\n\n return <T>(\n handler: (...args: any[]) => void,\n eventSelectorOrScope: EventSelector<T> | ng1.IScope,\n eventSelector?: EventSelector<T>) => {\n\n let actualEvtSelector: (publisher: NgTableParams<any>) => boolean;\n let scope: ng1.IScope = this.$rootScope;\n\n if (isScopeLike(eventSelectorOrScope)) {\n scope = eventSelectorOrScope;\n actualEvtSelector = createEventSelectorFn(eventSelector);\n } else {\n actualEvtSelector = createEventSelectorFn(eventSelectorOrScope);\n }\n\n return scope.$on('ngTable:' + eventName, function (event: ng1.IAngularEvent, params: InternalTableParams<any>, ...eventArgs: any[]) {\n // don't send events published by the internal NgTableParams created by ngTableController\n if (params.isNullInstance) return;\n\n const fnArgs = [params].concat(eventArgs);\n if (actualEvtSelector.apply(this, fnArgs)) {\n handler.apply(this, fnArgs);\n }\n });\n }\n\n function createEventSelectorFn<T>(eventSelector: EventSelector<T> = () => true): EventSelectorFunc {\n if (isEventSelectorFunc(eventSelector)) {\n return eventSelector\n } else {\n // shorthand for subscriber to only receive events from a specific publisher instance\n return (publisher: NgTableParams<any>) => publisher === eventSelector;\n }\n }\n\n function isEventSelectorFunc<T>(val: EventSelector<T>): val is (publisher: NgTableParams<any>) => boolean {\n return typeof val === 'function';\n }\n\n function isScopeLike(val: any): val is ng1.IScope {\n return val && typeof val.$new === 'function';\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/core/ngTableEventsChannel.ts","/**\n * ngTable: Table + Angular JS\n *\n * @author Vitalii Savchuk <[email protected]>\n * @url https://github.com/esvit/ng-table/\n * @license New BSD License <http://creativecommons.org/licenses/BSD/>\n */\n\nimport * as ng1 from 'angular';\nimport { ILogService, IPromise, IQService } from 'angular';\nimport { convertSortToOrderBy, isGroupingFun } from './util';\nimport { assignPartialDeep } from '../shared';\nimport { Defaults } from './ngTableDefaults'\nimport { NgTableEventsChannel } from './ngTableEventsChannel'\nimport { SettingsPartial, Settings } from './ngTableSettings'\nimport { DataResult, DataRowGroup, GetDataFunc } from './data';\nimport { FilterValues } from './filtering';\nimport { GetGroupFunc, Grouping, GroupingPartial, GroupValuesPartial, GroupingFunc, GroupSort, GroupValues } from './grouping';\nimport { SortDirection, SortingValues } from './sorting';\nimport { PageButton } from './paging';\n\n/**\n * @private\n */\nexport interface InternalTableParams<T> extends NgTableParams<T> {\n isNullInstance: boolean\n}\n\n\nexport type ParamValuesPartial<T> =\n Partial<Pick<ParamValues<T>, 'page' | 'count' | 'filter' | 'sorting'>>\n & {\n group?: string | GroupingPartial<T>\n };\n\n/**\n * The runtime values for {@link NgTableParams} that determine the set of data rows and\n * how they are to be displayed in a table\n */\nexport class ParamValues<T> {\n /**\n * The index of the \"slice\" of data rows, starting at 1, to be displayed by the table.\n */\n page = 1;\n /**\n * The number of data rows per page\n */\n count = 10;\n /**\n * The filter that should be applied to restrict the set of data rows\n */\n filter: FilterValues = {};\n /**\n * The sort order that should be applied to the data rows.\n */\n sorting: SortingValues = {};\n /**\n * The grouping that should be applied to the data rows\n */\n group: string | Grouping<T> = {};\n}\n\n\n/**\n * @private\n */\nfunction isNumber(n: any) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * @private\n */\ntype Memento<T> = {\n params: ParamValues<T>;\n groupSortDirection?: string;\n};\n\n/**\n * Parameters manager for an ngTable directive\n */\nexport class NgTableParams<T> {\n /**\n * The page of data rows currently being displayed in the table\n */\n data: T[] = [];\n reloadPages: () => void;\n private defaultSettings = Settings.createWithOverrides<T>();\n private errParamsMemento: Memento<T> | null;\n private isCommittedDataset = false;\n isNullInstance: boolean;\n private initialEvents: Function[] | null = [];\n private ngTableDefaults: Defaults\n private ngTableEventsChannel: NgTableEventsChannel;\n private prevParamsMemento: Memento<T>;\n private _params = new ParamValues<T>();\n private _settings = this.defaultSettings;\n private $q: IQService;\n private $log: ILogService\n constructor(baseParameters: ParamValuesPartial<T> | boolean = {}, baseSettings: SettingsPartial<T> = {}) {\n\n // the ngTableController \"needs\" to create a dummy/null instance and it's important to know whether an instance\n // is one of these\n if (typeof baseParameters === \"boolean\") {\n this.isNullInstance = true;\n }\n\n this.reloadPages = (() => {\n let currentPages: PageButton[];\n return () => {\n const oldPages = currentPages;\n const newPages = this.generatePagesArray(this.page(), this.total(), this.count());\n if (!ng1.equals(oldPages, newPages)) {\n currentPages = newPages;\n this.ngTableEventsChannel.publishPagesChanged(this, newPages, oldPages);\n }\n }\n })();\n\n assignPartialDeep(this._params, this.ngTableDefaults.params);\n\n this.settings(baseSettings);\n this.parameters(baseParameters, true);\n\n this.ngTableEventsChannel.publishAfterCreated(this);\n // run events during construction after the initial create event. That way a consumer\n // can subscribe to all events for a table without \"dropping\" an event\n ng1.forEach(this.initialEvents, event => {\n event();\n });\n this.initialEvents = null;\n }\n /**\n * Returns the number of data rows per page\n */\n count(): number\n /**\n * Sets the number of data rows per page.\n * Changes to count will cause `isDataReloadRequired` to return true\n */\n count(count: number): this\n count(count?: number) {\n // reset to first page because can be blank page\n return count !== undefined ? this.parameters({\n 'count': count,\n 'page': 1\n }) : this._params.count;\n }\n /**\n * Returns the current filter values used to restrict the set of data rows.\n * @param trim supply true to return the current filter minus any insignificant values\n * (null, undefined and empty string)\n */\n filter(trim?: boolean): FilterValues\n /**\n * Sets filter values to the `filter` supplied; any existing filter will be removed\n * Changes to filter will cause `isDataReloadRequired` to return true and the current `page` to be set to 1\n */\n filter(filter: FilterValues): this\n filter(filter?: FilterValues | boolean) {\n if (filter != null && typeof filter === 'object') {\n return this.parameters({\n 'filter': filter,\n 'page': 1\n });\n } else if (filter === true) {\n const keys = Object.keys(this._params.filter);\n const significantFilter: FilterValues = {};\n for (let i = 0; i < keys.length; i++) {\n const filterValue = this._params.filter[keys[i]];\n if (filterValue != null && filterValue !== '') {\n significantFilter[keys[i]] = filterValue;\n }\n }\n return significantFilter;\n } else {\n return this._params.filter;\n }\n }\n /**\n * Generate array of pages.\n * When no arguments supplied, the current parameter state of this `NgTableParams` instance will be used\n * @param currentPage Which page must be active\n * @param totalItems Total quantity of items\n * @param pageSize Quantity of items on page\n * @param maxBlocks Quantity of blocks for pagination\n * @returns Array of pages\n */\n generatePagesArray(currentPage?: number, totalItems?: number, pageSize?: number, maxBlocks?: number) {\n if (!arguments.length) {\n currentPage = this.page();\n totalItems = this.total();\n pageSize = this.count();\n }\n\n let maxPage: number, maxPivotPages: number, minPage: number, numPages: number;\n maxBlocks = maxBlocks && maxBlocks < 6 ? 6 : maxBlocks;\n\n const pages: PageButton[] = [];\n numPages = Math.ceil(totalItems / pageSize);\n if (numPages > 1) {\n pages.push({\n type: 'prev',\n number: Math.max(1, currentPage - 1),\n active: currentPage > 1\n });\n pages.push({\n type: 'first',\n number: 1,\n active: currentPage > 1,\n current: currentPage === 1\n });\n maxPivotPages = Math.round((this._settings.paginationMaxBlocks - this._settings.paginationMinBlocks) / 2);\n minPage = Math.max(2, currentPage - maxPivotPages);\n maxPage = Math.min(numPages - 1, currentPage + maxPivotPages * 2 - (currentPage - minPage));\n minPage = Math.max(2, minPage - (maxPivotPages * 2 - (maxPage - minPage)));\n let i = minPage;\n while (i <= maxPage) {\n if ((i === minPage && i !== 2) || (i === maxPage && i !== numPages - 1)) {\n pages.push({\n type: 'more',\n active: false\n });\n } else {\n pages.push({\n type: 'page',\n number: i,\n active: currentPage !== i,\n current: currentPage === i\n });\n }\n i++;\n }\n pages.push({\n type: 'last',\n number: numPages,\n active: currentPage !== numPages,\n current: currentPage === numPages\n });\n pages.push({\n type: 'next',\n number: Math.min(numPages, currentPage + 1),\n active: currentPage < numPages\n });\n }\n return pages;\n }\n /**\n * Returns the current grouping used to group the data rows\n */\n group(): Grouping<T>\n /**\n * Sets grouping to the `group` supplied; any existing grouping will be removed.\n * Changes to group will cause `isDataReloadRequired` to return true and the current `page` to be set to 1\n */\n group(group: GroupValuesPartial): this\n /**\n * Sets grouping to the `field` and `sortDirection` supplied; any existing grouping will be removed\n * Changes to group will cause `isDataReloadRequired` to return true and the current `page` to be set to 1\n */\n group(field: string, sortDirection?: GroupSort): this\n /**\n * Sets grouping to the `group` supplied; any existing grouping will be removed.\n * If `sortDirection` is supplied, this will be assigned to the sortDirection property of `group`\n * Changes to group will cause `isDataReloadRequired` to return true and the current `page` to be set to 1\n */\n group(group: GroupingFunc<T> | string, sortDirection?: GroupSort): this\n group(group?: GroupingPartial<T> | string, sortDirection?: GroupSort): string | Grouping<T> | this {\n if (group === undefined) {\n return this._params.group;\n }\n\n const newParameters: ParamValuesPartial<T> = {\n page: 1\n };\n if (isGroupingFun(group) && sortDirection !== undefined) {\n group.sortDirection = sortDirection;\n newParameters.group = group;\n } else if (typeof group === 'string' && sortDirection !== undefined) {\n newParameters.group = { [group]: sortDirection };\n } else {\n newParameters.group = group;\n }\n this.parameters(newParameters);\n return this;\n }\n /**\n * Returns true when an attempt to `reload` the current `parameter` values have resulted in a failure.\n * This method will continue to return true until the `reload` is successfully called or when the\n * `parameter` values have changed\n */\n hasErrorState() {\n return !!(this.errParamsMemento && ng1.equals(this.errParamsMemento, this.createComparableParams()));\n }\n /**\n * Returns true if `filter` has significant filter value(s) (any value except null, undefined, or empty string),\n * otherwise false\n */\n hasFilter() {\n return Object.keys(this.filter(true)).length > 0;\n }\n /**\n * Return true when a change to `filters` require the `reload` method\n * to be run so as to ensure the data presented to the user reflects these filters\n */\n hasFilterChanges() {\n const previousFilter = (this.prevParamsMemento && this.prevParamsMemento.params.filter);\n return !ng1.equals((this._params.filter), previousFilter) || this.hasGlobalSearchFieldChanges();\n }\n /**\n * Returns true when at least one group has been set\n */\n hasGroup(): boolean\n /**\n * Returns true when the `group` and when supplied, the `sortDirection` matches an existing group\n */\n hasGroup(group: string | GroupingFunc<T>, sortDirection?: string): boolean\n hasGroup(group?: string | GroupingFunc<T>, sortDirection?: string) {\n if (group == null) {\n return isGroupingFun(this._params.group) || Object.keys(this._params.group).length > 0\n }\n\n if (isGroupingFun(group)) {\n if (sortDirection == null) {\n return this._params.group === group;\n } else {\n return this._params.group === group && group.sortDirection === sortDirection;\n }\n } else {\n if (sortDirection == null) {\n return Object.keys(this._params.group).indexOf(group) !== -1;\n } else {\n return (this._params.group as GroupValues)[group] === sortDirection;\n }\n }\n }\n /**\n * Return true when a change to this instance should require the `reload` method\n * to be run so as to ensure the data rows presented to the user reflects the current state.\n *\n * Note that this method will return false when the `reload` method has run but fails. In this case\n * `hasErrorState` will return true.\n *\n * The built-in `ngTable` directives will watch for when this function returns true and will then call\n * the `reload` method to load its data rows\n */\n isDataReloadRequired() {\n // note: using != as want to treat null and undefined the same\n return !this.isCommittedDataset || !ng1.equals(this.createComparableParams(), this.prevParamsMemento)\n || this.hasGlobalSearchFieldChanges();\n }\n /**\n * Returns true if sorting by the field supplied. Where direction supplied\n * the field must also be sorted by that direction to return true\n */\n isSortBy(field: string, direction?: string) {\n if (direction !== undefined) {\n return this._params.sorting[field] !== undefined && this._params.sorting[field] == direction;\n } else {\n return this._params.sorting[field] !== undefined;\n }\n }\n /**\n * Returns sorting values in a format that can be consumed by the angular `$orderBy` filter service\n */\n orderBy() {\n return convertSortToOrderBy(this._params.sorting);\n }\n /**\n * Returns the index of the current \"slice\" of data rows\n */\n page(): number\n /**\n * Sets the index of the current \"slice\" of data rows. The index starts at 1.\n * Changing the page number will cause `isDataReloadRequired` to return true\n */\n page(page: number): this\n page(page?: number) {\n return page !== undefined ? this.parameters({\n 'page': page\n }) : this._params.page;\n }\n parameters(): ParamValues<T>\n /**\n * Set new parameters\n */\n parameters(newParameters?: ParamValuesPartial<T> | { [name: string]: string }, parseParamsFromUrl?: boolean): this\n parameters(newParameters?: ParamValuesPartial<T> | { [name: string]: string }, parseParamsFromUrl?: boolean): ParamValues<T> | this {\n if (newParameters === undefined) {\n return this._params;\n }\n\n // todo: move parsing of url like parameters into a seperate method\n\n parseParamsFromUrl = parseParamsFromUrl || false;\n for (const key in newParameters) {\n let value = newParameters[key];\n if (parseParamsFromUrl && key.indexOf('[') >= 0) {\n const keys = key.split(/\\[(.*)\\]/).reverse()\n let lastKey = '';\n for (let i = 0, len = keys.length; i < len; i++) {\n const name = keys[i];\n if (name !== '') {\n const v = value;\n value = {};\n value[lastKey = name] = (isNumber(v) ? parseFloat(v) : v);\n }\n }\n if (lastKey === 'sorting') {\n this._params[lastKey] = {};\n }\n this._params[lastKey] = ng1.extend(this._params[lastKey] || {}, value[lastKey]);\n } else {\n if (newParameters[key] === undefined) {\n // skip\n }\n else if (key === 'group') {\n this._params[key] = this.parseGroup(newParameters[key]);\n } else {\n this._params[key] = (isNumber(newParameters[key]) ? parseFloat(newParameters[key]) : newParameters[key]);\n }\n }\n }\n this.log('ngTable: set parameters', this._params);\n return this;\n }\n /**\n * Trigger a reload of the data rows\n */\n reload<TResult extends DataResult<T>>(): IPromise<TResult[]> {\n let pData: ng1.IPromise<any>;\n\n this._settings.$loading = true;\n\n this.prevParamsMemento = ng1.copy(this.createComparableParams());\n this.isCommittedDataset = true;\n\n if (this.hasGroup()) {\n pData = this.runInterceptorPipeline(this.$q.when(this._settings.getGroups(this)));\n } else {\n const fn = this._settings.getData as GetDataFunc<T>;\n pData = this.runInterceptorPipeline(this.$q.when(fn(this)));\n }\n\n this.log('ngTable: reload data');\n\n const oldData = this.data;\n return pData.then(data => {\n this._settings.$loading = false;\n this.errParamsMemento = null;\n\n this.data = data;\n // note: I think it makes sense to publish this event even when data === oldData\n // subscribers can always set a filter to only receive the event when data !== oldData\n this.ngTableEventsChannel.publishAfterReloadData(this, data, oldData);\n this.reloadPages();\n\n return data;\n }).catch(reason => {\n this.errParamsMemento = this.prevParamsMemento;\n // \"rethrow\"\n return this.$q.reject(reason);\n });\n }\n /**\n * Returns the settings for the table.\n */\n settings(): Settings<T>\n /**\n * Sets the settings for the table; new setting values will be merged with the existing settings.\n * Supplying a new `dataset` will cause `isDataReloadRequired` to return true and the `ngTableEventsChannel`\n * to fire its `datasetChanged` event\n */\n settings(newSettings: SettingsPartial<T>): this\n settings(newSettings?: SettingsPartial<T>): this | Settings<T> {\n if (newSettings === undefined) {\n return this._settings;\n }\n\n const settings = Settings.merge(this._settings, newSettings);\n\n const originalDataset = this._settings.dataset;\n this._settings = settings;\n\n // note: using != as want null and undefined to be treated the same\n const hasDatasetChanged = newSettings.hasOwnProperty('dataset') && (newSettings.dataset != originalDataset);\n if (hasDatasetChanged) {\n if (this.isCommittedDataset) {\n this.page(1); // reset page as a new dataset has been supplied\n }\n this.isCommittedDataset = false;\n\n const fireEvent = () => {\n this.ngTableEventsChannel.publishDatasetChanged(this, newSettings.dataset, originalDataset);\n };\n\n if (this.initialEvents) {\n this.initialEvents.push(fireEvent);\n } else {\n fireEvent();\n }\n }\n this.log('ngTable: set settings', this._settings);\n return this;\n }\n /**\n * Returns the current sorting used to order the data rows.\n * Changes to sorting will cause `isDataReloadRequired` to return true\n */\n sorting(): SortingValues\n /**\n * Sets sorting values to the `sorting` supplied; any existing sorting will be removed.\n * Changes to sorting will cause `isDataReloadRequired` to return true\n */\n sorting(sorting: SortingValues): this\n /**\n * Sets sorting to the `field` and `direction` supplied; any existing sorting will be removed\n */\n sorting(field: string, direction?: string): this\n sorting(sorting?: SortingValues | string, direction?: SortDirection) {\n if (typeof sorting === 'string') {\n this.parameters({\n 'sorting': { [sorting]: direction || this.settings().defaultSort }\n });\n return this;\n }\n return sorting !== undefined ? this.parameters({\n 'sorting': sorting\n }) : this._params.sorting;\n }\n /**\n * Returns the count of the data rows that match the current `filter`\n */\n total(): number\n /**\n * Sets `settings().total` to the value supplied.\n * Typically you will need to set a `total` in the body of any custom `getData` function\n * you supply as a setting value to this instance.\n * @example\n * ```js\n * const tp = new NgTableParams({}, { getData: customGetData })\n * function customGetData(params) {\n * const queryResult = // code to fetch current data rows and total //\n * params.total(queryResult.total);\n * return queryResult.dataRowsPage;\n * }\n * ```\n */\n total(total: number): this\n total(total?: number) {\n return total !== undefined ? this.settings({\n 'total': total\n }) : this._settings.total;\n }\n /**\n * Returns the current parameter values uri-encoded. Set `asString` to\n * true for the parameters to be returned as an array of strings of the form 'paramName=value'\n * otherwise parameters returned as a key-value object\n */\n url(asString = false) {\n const pairs: any[] | { [name: string]: string } = (asString ? [] : {});\n for (const key in this._params) {\n if (this._params.hasOwnProperty(key)) {\n const item = (this._params as { [name: string]: any })[key],\n name = encodeURIComponent(key);\n if (typeof item === \"object\") {\n for (const subkey in item) {\n if (isSignificantValue(item[subkey], key)) {\n const pname = name + \"[\" + encodeURIComponent(subkey) + \"]\";\n collectValue(item[subkey], pname);\n }\n }\n } else if (!ng1.isFunction(item) && isSignificantValue(item, key)) {\n collectValue(item, name);\n }\n }\n }\n return pairs;\n\n function collectValue(value: any, key: string) {\n if (isArray(pairs)) {\n pairs.push(key + \"=\" + encodeURIComponent(value));\n } else {\n pairs[key] = encodeURIComponent(value);\n }\n }\n\n function isArray(pairs: any[] | {}): pairs is Array<any> {\n return asString;\n }\n\n function isSignificantValue(value: any, key: string) {\n return key === \"group\" ? true : typeof value !== undefined && value !== \"\";\n }\n }\n private createComparableParams(): Memento<T> {\n const group = this._params.group;\n return {\n params: this._params,\n groupSortDirection: isGroupingFun(group) ? group.sortDirection : undefined\n };\n }\n private hasGlobalSearchFieldChanges() {\n const currentVal = (this._params.filter && this._params.filter['$']);\n const previousVal =\n (this.prevParamsMemento && this.prevParamsMemento.params.filter && this.prevParamsMemento.params.filter['$']);\n return !ng1.equals(currentVal, previousVal);\n }\n private log(...args: any[]) {\n if (this._settings.debugMode && this.$log.debug) {\n this.$log.debug(...args);\n }\n }\n private parseGroup(group: string | Grouping<T>) {\n const defaultSort = this._settings.groupOptions.defaultSort;\n if (!group) {\n return group;\n } else if (isGroupingFun(group)) {\n if (group.sortDirection == null) {\n group.sortDirection = defaultSort;\n }\n return group;\n } else if (typeof group === 'object') {\n for (const key in group) {\n if (group[key] == null) {\n group[key] = defaultSort;\n }\n }\n return group;\n } else {\n return {\n [group]: defaultSort\n };\n }\n }\n private runInterceptorPipeline(fetchedData: IPromise<any>) {\n return this._settings.interceptors.reduce((result, interceptor) => {\n const thenFn = (interceptor.response && interceptor.response.bind(interceptor)) || this.$q.when;\n const rejectFn = (interceptor.responseError && interceptor.responseError.bind(interceptor)) || this.$q.reject;\n return result.then(data => {\n return thenFn(data, this);\n }, reason => {\n return rejectFn(reason, this);\n });\n }, fetchedData);\n }\n\n static init(\n $q: IQService,\n $log: ILogService,\n ngTableDefaults: Defaults,\n ngTableEventsChannel: NgTableEventsChannel) {\n ng1.extend(NgTableParams.prototype, {\n $q, $log, ngTableDefaults, ngTableEventsChannel\n });\n }\n}\n\nNgTableParams.init.$inject = ['$q', '$log', 'ngTableDefaults', 'ngTableEventsChannel'];\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/core/ngTableParams.ts","import * as ng1 from 'angular';\nimport { assignPartialDeep, checkClassInit } from '../shared';\nimport { IPromise } from 'angular';\nimport { Defaults } from './ngTableDefaults';\nimport { DataRowGroup, DataSettingsPartial, DataSettings, DefaultGetData, GetDataFunc, Interceptor, InterceptableGetDataFunc } from './data';\nimport { FilterValues, FilterSettingsPartial, FilterSettings } from './filtering';\nimport { GetGroupFunc, GroupSettingsPartial, GroupSettings } from './grouping';\nimport { SortDirection } from './sorting';\nimport { NgTableParams } from './ngTableParams';\n\n/**\n * Configuration settings for {@link NgTableParams}\n */\nexport class Settings<T> {\n constructor() {\n checkClassInit(Settings);\n }\n /**\n * Returns true whenever a call to `getData` is in progress\n */\n $loading = false;\n /**\n * The page size buttons that should be displayed. Each value defined in the array\n * determines the possible values that can be supplied to {@link NgTableParams} `page`\n */\n counts = [10, 25, 50, 100];\n /**\n * An array that contains all the data rows that table should manage.\n * The `gateData` function will be used to manage the data rows\n * that ultimately will be displayed.\n */\n dataset?: T[] = undefined;\n dataOptions = new DataSettings();\n debugMode = false;\n /**\n * The total number of data rows before paging has been applied.\n * Typically you will not need to supply this yourself\n */\n total = 0;\n /**\n * The default sort direction that will be used whenever a sorting is supplied that\n * does not define its own sort direction\n */\n defaultSort: SortDirection = 'desc';\n filterOptions = new FilterSettings<T>();\n /**\n * The function that will be used fetch data rows. Leave undefined to let the {@link IDefaultGetData}\n * service provide a default implementation that will work with the `dataset` array you supply.\n *\n * Typically you will supply a custom function when you need to execute filtering, paging and sorting\n * on the server\n */\n getData: GetDataFunc<T> | InterceptableGetDataFunc<T> = Settings.defaultGetData;\n /**\n * The function that will be used group data rows according to the groupings returned by {@link NgTableParams} `group`\n */\n getGroups: GetGroupFunc<T> = Settings.defaultGetGroups;\n groupOptions = new GroupSettings();\n /**\n * The collection of interceptors that should apply to the results of a call to\n * the `getData` function before the data rows are displayed in the table\n */\n interceptors = new Array<Interceptor<T>>();\n /**\n * Configuration for the template that will display the page size buttons\n */\n paginationMaxBlocks = 11;\n /**\n * Configuration for the template that will display the page size buttons\n */\n paginationMinBlocks = 5;\n /**\n * The html tag that will be used to display the sorting indicator in the table header\n */\n sortingIndicator = 'span'\n static isInitialized = false;\n private static defaultGetData: GetDataFunc<any>;\n private static defaultGetGroups: GetGroupFunc<any>;\n private static ngTableDefaults: Defaults\n private static instance: Settings<any>;\n static createWithOverrides<T>(): Settings<T> {\n checkClassInit(Settings);\n return Settings.merge(Settings.instance, Settings.ngTableDefaults.settings || {});\n }\n static merge<T>(existing: Settings<T>, newSettings: SettingsPartial<T>): Settings<T> {\n checkClassInit(Settings);\n\n const optionalPropNames: (keyof Settings<T>)[] = ['dataset'];\n const results = assignPartialDeep(\n ng1.copy(existing),\n newSettings,\n (key: keyof Settings<T>) => optionalPropNames.indexOf(key) !== -1,\n (destValue: any, srcValue: any, key: keyof Settings<T>) => {\n // copy *reference* to dataset\n if (key === 'dataset') {\n return srcValue;\n }\n return undefined;\n });\n\n if (newSettings.dataset) {\n results.total = newSettings.dataset.length;\n Settings.optimizeFilterDelay(results);\n }\n return results;\n }\n private static optimizeFilterDelay<T>(settings: Settings<T>) {\n // don't debounce by default filter input when working with small synchronous datasets\n if (settings.filterOptions.filterDelay === Settings.instance.filterOptions.filterDelay &&\n settings.total <= settings.filterOptions.filterDelayThreshold &&\n settings.getData === Settings.instance.getData) {\n settings.filterOptions.filterDelay = 0;\n }\n }\n static init(ngTableDefaultGetData: DefaultGetData<any>,\n ngTableDefaultGetGroups: GetGroupFunc<any>,\n ngTableDefaults: Defaults) {\n Settings.defaultGetData = (params: NgTableParams<any>) => {\n return ngTableDefaultGetData(params.settings().dataset, params) as any[];\n };\n Settings.defaultGetGroups = ngTableDefaultGetGroups;\n Settings.ngTableDefaults = ngTableDefaults;\n Settings.isInitialized = true;\n Settings.instance = new Settings();\n }\n}\n\nSettings.init.$inject = ['ngTableDefaultGetData', 'ngTableDefaultGetGroups', 'ngTableDefaults'];\n\nexport type SettingsPartial<T> =\n Partial<Pick<Settings<T>,\n '$loading' |\n 'counts' |\n 'dataset' |\n 'debugMode' |\n 'total' |\n 'defaultSort' |\n 'getData' |\n 'getGroups' |\n 'interceptors' |\n 'paginationMaxBlocks' |\n 'paginationMinBlocks' |\n 'sortingIndicator'>>\n & {\n dataOptions?: DataSettingsPartial;\n filterOptions?: FilterSettingsPartial<T>;\n groupOptions?: GroupSettingsPartial;\n }\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/core/ngTableSettings.ts","import { GroupingPartial, GroupingFunc } from './grouping';\nimport { SortingValues } from './sorting';\n\n/**\n * @private\n */\nexport function convertSortToOrderBy(sorting: SortingValues) {\n const result: string[] = [];\n for (let column in sorting) {\n result.push((sorting[column] === \"asc\" ? \"+\" : \"-\") + column);\n }\n return result;\n}\n\n/**\n * @private\n */\nexport function isGroupingFun(val: string | GroupingPartial<any>): val is GroupingFunc<any> {\n return typeof val === 'function'\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/core/util.ts","/**\n * ngTable: Table + Angular JS\n *\n * @author Vitalii Savchuk <[email protected]>\n * @url https://github.com/esvit/ng-table/\n * @license New BSD License <http://creativecommons.org/licenses/BSD/>\n */\nimport { IAugmentedJQuery, IDirective, IQService, IParseService, IPromise, IScope } from 'angular';\nimport * as ng1 from 'angular';\nimport { \n ColumnDef, ColumnDefPartial, ColumnFieldContext, ColumnField, DeclarativeTableHtmlAttributes, \n FilterTemplateDefMap, SelectData \n} from './public-interfaces';\nimport { NgTableController } from './ngTableController';\n\ninterface ScopeExtensions {\n $columns: ColumnDef[]\n}\n\nngTable.$inject = ['$q', '$parse'];\n\n/**\n * Directive that instantiates {@link NgTableController NgTableController}.\n * @ngdoc directive\n * @name ngTable\n * @example\n * \n * ```html\n * <table ng-table=\"$ctrl.tableParams\" show-filter=\"true\" class=\"table table-bordered\">\n * <tr ng-repeat=\"user in $data\">\n * <td data-title=\"'Name'\" sortable=\"'name'\" filter=\"{ 'name': 'text' }\">\n * {{user.name}}\n * </td>\n * <td data-title=\"'Age'\" sortable=\"'age'\" filter=\"{ 'age': 'text' }\">\n * {{user.age}}\n * </td>\n * </tr>\n * </table>\n * ```\n */\nexport function ngTable($q: IQService, $parse: IParseService) : IDirective {\n\n return {\n restrict: 'A',\n priority: 1001,\n scope: true,\n controller: 'ngTableController',\n compile: function(element: IAugmentedJQuery) {\n let compiledColumns: ColumnDefPartial[] = [],\n i = 0,\n dataRow: JQuery,\n groupRow: JQuery\n const rows: JQuery[] = [];\n\n ng1.forEach(element.find('tr'), (tr: JQuery) => {\n rows.push(ng1.element(tr))\n });\n dataRow = rows.filter(tr => !tr.hasClass('ng-table-group'))[0];\n groupRow = rows.filter(tr => tr.hasClass('ng-table-group'))[0];\n\n if (!dataRow) {\n return undefined;\n }\n ng1.forEach(dataRow.find('td'), (item: JQuery) => {\n const el = ng1.element(item);\n if (el.attr('ignore-cell') && 'true' === el.attr('ignore-cell')) {\n return;\n }\n\n const getAttrValue = function(attr: string){\n return el.attr('x-data-' + attr) || el.attr('data-' + attr) || el.attr(attr);\n };\n const setAttrValue = function(attr: string, value: string){\n if (el.attr('x-data-' + attr)){\n el.attr('x-data-' + attr, value)\n } else if (el.attr('data' + attr)){\n el.attr('data' + attr, value)\n } else {\n el.attr(attr, value)\n }\n };\n\n const parsedAttribute = function<T>(attr: string): ColumnField<T> | undefined {\n const expr = getAttrValue(attr);\n if (!expr){\n return undefined;\n }\n\n let localValue: any;\n const getter = (context: ColumnFieldContext) => {\n if (localValue !== undefined){\n return localValue as T;\n }\n return $parse(expr)(context) as T;\n };\n (getter as any).assign = ($scope: ColumnFieldContext, value: any) => {\n const parsedExpr = $parse(expr);\n if (parsedExpr.assign) {\n // we should be writing back to the parent scope as this is where the expression\n // came from\n parsedExpr.assign($scope.$parent, value);\n } else {\n localValue = value;\n }\n };\n return getter as ColumnField<T>;\n };\n const titleExpr = getAttrValue('title-alt') || getAttrValue('title');\n if (titleExpr){\n el.attr('data-title-text', '{{' + titleExpr + '}}'); // this used in responsive table\n }\n // NOTE TO MAINTAINERS: if you add extra fields to a $column be sure to extend ngTableColumn with\n // a corresponding \"safe\" default\n compiledColumns.push({\n id: i++,\n title: parsedAttribute<string>('title'),\n titleAlt: parsedAttribute<string>('title-alt'),\n headerTitle: parsedAttribute<string>('header-title'),\n sortable: parsedAttribute<string | boolean>('sortable'),\n 'class': parsedAttribute<string>('header-class'),\n filter: parsedAttribute<FilterTemplateDefMap>('filter'),\n groupable: parsedAttribute<string | boolean>('groupable'),\n headerTemplateURL: parsedAttribute<string | boolean>('header'),\n filterData: parsedAttribute<IPromise<SelectData> | SelectData>('filter-data'),\n show: el.attr(\"ng-if\") ? parsedAttribute<boolean>('ng-if') : undefined\n });\n\n if (groupRow || el.attr(\"ng-if\")){\n // change ng-if to bind to our column definition which we know will be writable\n // because this will potentially increase the $watch count, only do so if we already have an\n // ng-if or when we definitely need to change visibility of the columns.\n // currently only ngTableGroupRow directive needs to change visibility\n setAttrValue('ng-if', '$columns[' + (compiledColumns.length - 1) + '].show(this)');\n }\n });\n return function(scope: IScope & ScopeExtensions, element: IAugmentedJQuery, attrs: DeclarativeTableHtmlAttributes, controller: NgTableController<any, ColumnDefPartial>) {\n const columns = scope.$columns = controller.buildColumns(compiledColumns);\n\n controller.setupBindingsToInternalScope(attrs.ngTable);\n controller.loadFilterData(columns);\n controller.compileDirectiveTemplates();\n };\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/browser/ngTable.directive.ts","/**\n * ngTable: Table + Angular JS\n *\n * @author Vitalii Savchuk <[email protected]>\n * @url https://github.com/esvit/ng-table/\n * @license New BSD License <http://creativecommons.org/licenses/BSD/>\n */\n\nimport { IScope } from 'angular';\nimport * as ng1 from 'angular';\nimport { ColumnDef, ColumnDefPartial, DynamicTableColDef } from './public-interfaces';\n\n/**\n * @private\n */\nfunction isScopeLike(object: any) {\n return object != null && ng1.isFunction(object.$new);\n}\n\n/**\n * @private\n * Service to construct a $column definition used by {@link ngTable ngTable} directive\n */\nexport class NgTableColumn<TCol extends ColumnDefPartial | DynamicTableColDef> {\n static $inject: string[] = [];\n\n /**\n * Creates a $column for use within a header template\n *\n * @param column the initial definition for $column to build\n * @param defaultScope the $scope to supply to the $column getter methods when not supplied by caller\n * @param columns a reference to the $columns array to make available on the context supplied to the\n * $column getter methods\n */\n buildColumn(column: TCol, defaultScope: IScope, columns: ColumnDef[]): ColumnDef {\n // note: we're not modifying the original column object. This helps to avoid unintended side affects\n const extendedCol = Object.create(column);\n const defaults = this.createDefaults();\n for (const prop in defaults) {\n if (extendedCol[prop] === undefined) {\n extendedCol[prop] = defaults[prop];\n }\n if (!ng1.isFunction(extendedCol[prop])) {\n // wrap raw field values with \"getter\" functions\n // - this is to ensure consistency with how ngTable.compile builds columns\n // - note that the original column object is being \"proxied\"; this is important\n // as it ensure that any changes to the original object will be returned by the \"getter\"\n const getterSetter = function getterSetter(/*[value] || [$scope, locals]*/) {\n if (arguments.length === 1 && !isScopeLike(arguments[0])) {\n (getterSetter as any).assign(null, arguments[0]);\n } else {\n return column[prop];\n }\n };\n (getterSetter as any).assign = function ($scope: IScope, value: any) {\n column[prop] = value;\n };\n extendedCol[prop] = getterSetter;\n }\n // satisfy the arguments expected by the function returned by parsedAttribute in the ngTable directive\n const getterFn = extendedCol[prop];\n extendedCol[prop] = function () {\n if (arguments.length === 1 && !isScopeLike(arguments[0])) {\n getterFn.assign(defaultScope, arguments[0]);\n } else {\n const scope = arguments[0] || defaultScope;\n const context = Object.create(scope);\n ng1.extend(context, {\n $column: extendedCol,\n $columns: columns\n });\n return getterFn.call(column, context);\n }\n };\n if (getterFn.assign) {\n extendedCol[prop].assign = getterFn.assign;\n } else {\n const wrappedGetterFn = extendedCol[prop];\n let localValue: any;\n const getterSetter = function getterSetter(/*[value] || [$scope, locals]*/) {\n if (arguments.length === 1 && !isScopeLike(arguments[0])) {\n (getterSetter as any).assign(null, arguments[0]);\n } else {\n return localValue != undefined ? localValue : wrappedGetterFn.apply(extendedCol, arguments);\n }\n };\n (getterSetter as any).assign = function ($scope: IScope, value: any) {\n localValue = value;\n };\n extendedCol[prop] = getterSetter;\n }\n }\n return extendedCol as ColumnDef;\n }\n\n private createDefaults() {\n return {\n 'class': this.createGetterSetter(''),\n filter: this.createGetterSetter(false),\n groupable: this.createGetterSetter(false),\n filterData: ng1.noop,\n headerTemplateURL: this.createGetterSetter(false),\n headerTitle: this.createGetterSetter(''),\n sortable: this.createGetterSetter(false),\n show: this.createGetterSetter(true),\n title: this.createGetterSetter(''),\n titleAlt: this.createGetterSetter('')\n };\n }\n\n private createGetterSetter(initialValue: any) {\n let value = initialValue;\n const getterSetter = function getterSetter(/*[value] || [$scope, locals]*/) {\n if (arguments.length === 1 && !isScopeLike(arguments[0])) {\n (getterSetter as any).assign(null, arguments[0]);\n } else {\n return value;\n }\n };\n (getterSetter as any).assign = function ($scope: IScope, newValue: any) {\n value = newValue;\n };\n return getterSetter;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/browser/ngTableColumn.ts","/**\n * ngTable: Table + Angular JS\n *\n * @author Vitalii Savchuk <[email protected]>\n * @url https://github.com/esvit/ng-table/\n * @license New BSD License <http://creativecommons.org/licenses/BSD/>\n */\n\nimport { IAugmentedJQuery, IAttributes, IDirective, IParseService } from 'angular';\nimport { TableScope } from './ngTableController';\nimport { ColumnDef } from './public-interfaces';\n\n/**\n * @private\n */\ninterface InputAttributes extends IAttributes {\n ngTableColumnsBinding: string;\n}\n\nngTableColumnsBinding.$inject = [\"$parse\"];\n\n/**\n * One-way data binds the $columns array generated by ngTable/ngTableDynamic to the specified\n * expression.\n * This allows the $columns array created for the table to be accessed outside of the html table\n * markup.\n * \n * @ngdoc directive\n * \n * @example\n * ```html\n * <table ng-table=\"$ctrl.tableParams\" class=\"table\" ng-table-columns-binding=\"$ctlr.tableColumns\">\n * ```\n */\nexport function ngTableColumnsBinding<T>($parse: IParseService) : IDirective {\n const directive = {\n restrict: 'A',\n link: linkFn\n };\n return directive;\n\n function linkFn($scope: TableScope<T>, $element: IAugmentedJQuery, $attrs: InputAttributes){\n const setter = $parse($attrs.ngTableColumnsBinding).assign;\n if (setter){\n $scope.$watch<ColumnDef[]>('$columns', newColumns => {\n const shallowClone = (newColumns || []).slice(0);\n setter($scope, shallowClone);\n });\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/browser/ngTableColumnsBinding.directive.ts","/**\n * ngTable: Table + Angular JS\n *\n * @author Vitalii Savchuk <[email protected]>\n * @url https://github.com/esvit/ng-table/\n * @license New BSD License <http://creativecommons.org/licenses/BSD/>\n */\n\nimport {\n IAttributes, IAugmentedJQuery, ICompileService, IDocumentService, IParseService, IPromise, IScope,\n ITimeoutService\n} from 'angular';\nimport * as ng1 from 'angular';\nimport {\n DataResult, DataResults, DataRowGroup, GroupedDataResults, NgTableParams, NgTableEventsChannel,\n PageButton\n} from '../core';\nimport { ColumnDef, ColumnDefPartial, DynamicTableColDef, SelectData, TableHtmlAttributes } from './public-interfaces';\nimport { NgTableColumn } from './ngTableColumn';\n\n/**\n * @private\n */\nexport interface TableScope<T> extends IScope {\n $columns: ColumnDef[];\n $loading: boolean;\n $filterRow: {\n disabled: boolean;\n };\n $data?: DataResults<T>;\n $groups?: GroupedDataResults<T>;\n $groupRow: {\n show: boolean;\n };\n show_filter: boolean;\n pages: PageButton[];\n templates: {\n header: string;\n pagination: string;\n },\n params: NgTableParams<T>\n}\n\n/**\n * The controller for the {@link ngTable ngTable} and {@link ngTableDynamic ngTableDynamic} directives\n */\nexport class NgTableController<TParams, TCol extends ColumnDefPartial | DynamicTableColDef> {\n static $inject = [\n '$scope', '$timeout', '$parse', '$compile', '$attrs', '$element', '$document', 'ngTableColumn', 'ngTableEventsChannel'\n ];\n private delayFilter: (callback: () => void, ms: number) => void;\n private get hasVisibleFilterColumn() {\n if (!this.$scope.$columns) return false;\n\n return this.some(this.$scope.$columns, ($column) => {\n return $column.show(this.$scope) && !!$column.filter(this.$scope);\n });\n }\n constructor(\n private $scope: TableScope<TParams>,\n $timeout: ITimeoutService,\n private $parse: IParseService,\n private $compile: ICompileService,\n private $attrs: IAttributes & TableHtmlAttributes,\n private $element: IAugmentedJQuery,\n private $document: IDocumentService,\n private ngTableColumn: NgTableColumn<TCol>,\n private ngTableEventsChannel: NgTableEventsChannel) {\n\n const isFirstTimeLoad = true;\n $scope.$filterRow = { disabled: false };\n $scope.$loading = false;\n\n // until such times as the directive uses an isolated scope, we need to ensure that the check for\n // the params field only consults the \"own properties\" of the $scope. This is to avoid seeing the params\n // field on a $scope higher up in the prototype chain\n if (!$scope.hasOwnProperty(\"params\")) {\n $scope.params = new NgTableParams<TParams>(true);\n }\n\n this.delayFilter = (function () {\n let timer: IPromise<any>;\n return (callback: () => void, ms: number) => {\n $timeout.cancel(timer);\n timer = $timeout(callback, ms);\n };\n })();\n\n // watch for when a new NgTableParams is bound to the scope\n // CRITICAL: the watch must be for reference and NOT value equality; this is because NgTableParams maintains\n // the current data page as a field. Checking this for value equality would be terrible for performance\n // and potentially cause an error if the items in that array has circular references\n this.$scope.$watch<NgTableParams<TParams>>('params', (newParams, oldParams) => {\n if (newParams === oldParams || !newParams) {\n return;\n }\n\n newParams.reload();\n }, false);\n\n this.subscribeToTableEvents();\n }\n\n private onDataReloadStatusChange(newStatus: boolean/*, oldStatus*/) {\n if (!newStatus || this.$scope.params.hasErrorState()) {\n return;\n }\n\n const currentParams = this.$scope.params;\n const filterOptions = currentParams.settings().filterOptions;\n\n if (currentParams.hasFilterChanges()) {\n const applyFilter = () => {\n currentParams.page(1);\n currentParams.reload();\n };\n if (filterOptions.filterDelay) {\n this.delayFilter(applyFilter, filterOptions.filterDelay);\n } else {\n applyFilter();\n }\n } else {\n currentParams.reload();\n }\n }\n\n compileDirectiveTemplates() {\n if (!this.$element.hasClass('ng-table')) {\n this.$scope.templates = {\n header: (this.$attrs.templateHeader ? this.$attrs.templateHeader : 'ng-table/header.html'),\n pagination: (this.$attrs.templatePagination ? this.$attrs.templatePagination : 'ng-table/pager.html')\n };\n this.$element.addClass('ng-table');\n let headerTemplate: IAugmentedJQuery | undefined;\n\n // $element.find('> thead').length === 0 doesn't work on jqlite\n let theadFound = false;\n ng1.forEach(this.$element.children(), (e) => {\n if (e.tagName === 'THEAD') {\n theadFound = true;\n }\n });\n if (!theadFound) {\n headerTemplate = ng1.element('<thead ng-include=\"templates.header\"></thead>', this.$document);\n this.$element.prepend(headerTemplate);\n }\n const paginationTemplate = ng1.element(\n '<div ng-table-pagination=\"params\" template-url=\"templates.pagination\"></div>',\n this.$document\n );\n this.$element.after(paginationTemplate);\n if (headerTemplate) {\n this.$compile(headerTemplate)(this.$scope);\n }\n this.$compile(paginationTemplate)(this.$scope);\n }\n }\n\n loadFilterData($columns: ColumnDef[]) {\n ng1.forEach($columns, ($column) => {\n const result = $column.filterData(this.$scope);\n if (!result) {\n delete $column.filterData;\n return undefined;\n }\n\n if (isPromiseLike(result)) {\n delete $column.filterData;\n return result.then(data => {\n // our deferred can eventually return arrays, functions and objects\n if (!ng1.isArray(data) && !ng1.isFunction(data) && !ng1.isObject(data)) {\n // if none of the above was found - we just want an empty array\n data = [];\n }\n $column.data = data;\n });\n }\n // otherwise, we just return what the user gave us. It could be a function, array, object, whatever\n else {\n return $column.data = result;\n }\n });\n\n function isPromiseLike(val: any): val is IPromise<SelectData> {\n return val && typeof val === 'object' && typeof val.then === 'function';\n }\n }\n\n buildColumns(columns: TCol[]): ColumnDef[] {\n // todo: use strictNullChecks and remove guard clause\n const result: ColumnDef[] = [];\n (columns || []).forEach(col => {\n result.push(this.ngTableColumn.buildColumn(col, this.$scope, result));\n });\n return result\n }\n\n parseNgTableDynamicExpr(attr: string) {\n if (!attr || attr.indexOf(\" with \") > -1) {\n const parts = attr.split(/\\s+with\\s+/);\n return {\n tableParams: parts[0],\n columns: parts[1]\n };\n } else {\n throw new Error('Parse error (expected example: ng-table-dynamic=\\'tableParams with cols\\')');\n }\n }\n\n setupBindingsToInternalScope(tableParamsExpr: string) {\n\n // note: this we're setting up watches to simulate angular's isolated scope bindings\n\n // note: is REALLY important to watch for a change to the ngTableParams *reference* rather than\n // $watch for value equivalence. This is because ngTableParams references the current page of data as\n // a field and it's important not to watch this\n this.$scope.$watch<NgTableParams<TParams>>(tableParamsExpr, (params) => {\n if (params === undefined) {\n return;\n }\n this.$scope.params = params;\n }, false);\n\n this.setupFilterRowBindingsToInternalScope();\n this.setupGroupRowBindingsToInternalScope();\n }\n\n private setupFilterRowBindingsToInternalScope() {\n if (this.$attrs.showFilter) {\n this.$scope.$parent.$watch<boolean>(this.$attrs.showFilter, (value) => {\n this.$scope.show_filter = value;\n });\n } else {\n this.$scope.$watch(() => this.hasVisibleFilterColumn, (value) => {\n this.$scope.show_filter = value;\n })\n }\n\n if (this.$attrs.disableFilter) {\n this.$scope.$parent.$watch<boolean>(this.$attrs.disableFilter, (value) => {\n this.$scope.$filterRow.disabled = value;\n });\n }\n }\n\n private setupGroupRowBindingsToInternalScope() {\n this.$scope.$groupRow = { show: false };\n if (this.$attrs.showGroup) {\n const showGroupGetter = this.$parse(this.$attrs.showGroup);\n this.$scope.$parent.$watch<boolean>(showGroupGetter, (value) => {\n this.$scope.$groupRow.show = value;\n });\n if (showGroupGetter.assign) {\n // setup two-way databinding thus allowing ngTableGrowRow to assign to the showGroup expression\n this.$scope.$watch<boolean>('$groupRow.show', (value) => {\n showGroupGetter.assign(this.$scope.$parent, value);\n });\n }\n } else {\n this.$scope.$watch<boolean>('params.hasGroup()', (newValue) => {\n this.$scope.$groupRow.show = newValue;\n });\n }\n }\n\n private getVisibleColumns() {\n return (this.$scope.$columns || []).filter((c) => {\n return c.show(this.$scope);\n });\n }\n\n private subscribeToTableEvents() {\n\n this.$scope.$watch('params.isDataReloadRequired()', (newStatus: boolean/*, oldStatus*/) => {\n this.onDataReloadStatusChange(newStatus);\n });\n\n this.ngTableEventsChannel.onAfterReloadData<TParams>(\n (params, newDatapage) => {\n const visibleColumns = this.getVisibleColumns();\n if (params.hasGroup()) {\n this.$scope.$groups = (newDatapage || []) as GroupedDataResults<TParams>;\n this.$scope.$groups.visibleColumnCount = visibleColumns.length;\n } else {\n this.$scope.$data = (newDatapage || []) as DataResults<TParams>;\n this.$scope.$data.visibleColumnCount = visibleColumns.length;\n }\n },\n this.$scope,\n (publisher) => this.$scope.params === publisher\n );\n\n this.ngTableEventsChannel.onPagesChanged<TParams>(\n (params, newPages) => {\n this.$scope.pages = newPages;\n },\n this.$scope,\n (publisher) => this.$scope.params === publisher\n );\n }\n\n private some<T>(array: T[], predicate: (item: T) => boolean) {\n let found = false;\n for (let i = 0; i < array.length; i++) {\n const obj = array[i];\n if (predicate(obj)) {\n found = true;\n break;\n }\n }\n return found;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/browser/ngTableController.ts","/**\n * ngTable: Table + Angular JS\n *\n * @author Vitalii Savchuk <[email protected]>\n * @url https://github.com/esvit/ng-table/\n * @license New BSD License <http://creativecommons.org/licenses/BSD/>\n */\n\nimport { IAugmentedJQuery, IDirective, IScope } from 'angular';\nimport * as ng1 from 'angular';\nimport { ColumnDef, DynamicTableColDef, DynamicTableHtmlAttributes } from './public-interfaces';\nimport { NgTableController } from './ngTableController';\n\ninterface ScopeExtensions {\n $columns: ColumnDef[]\n}\n\nfunction toArray<T>(arr: ArrayLike<T>) {\n return Array.prototype.slice.call(arr) as T[];\n}\n\nngTableDynamic.$inject = [];\n\n/**\n * A dynamic version of the {@link ngTable ngTable} directive that accepts a dynamic list of columns\n * definitions to render\n * @ngdoc directive\n *\n * @example\n * ```html\n * <table ng-table-dynamic=\"$ctrl.tableParams with $ctrl.cols\" class=\"table\">\n * <tr ng-repeat=\"row in $data\">\n * <td ng-repeat=\"col in $columns\">{{row[col.field]}}</td>\n * </tr>\n * </table>\n * ```\n */\nexport function ngTableDynamic(): IDirective {\n\n return {\n restrict: 'A',\n priority: 1001,\n scope: true,\n controller: 'ngTableController',\n compile: function (tElement: IAugmentedJQuery) {\n\n const tRows = toArray(tElement[0].getElementsByTagName('tr'));\n const tRow = tRows.filter(tr => !ng1.element(tr).hasClass('ng-table-group'))[0];\n\n if (!tRow) {\n return undefined;\n }\n\n toArray(tRow.getElementsByTagName('td')).forEach(tCell => {\n const el = ng1.element(tCell);\n const getAttrValue = (attr: string) => {\n return el.attr('x-data-' + attr) || el.attr('data-' + attr) || el.attr(attr);\n };\n\n // this used in responsive table\n const titleExpr = getAttrValue('title');\n if (!titleExpr) {\n el.attr('data-title-text', '{{$columns[$index].titleAlt(this) || $columns[$index].title(this)}}');\n }\n const showExpr = el.attr('ng-if');\n if (!showExpr) {\n el.attr('ng-if', '$columns[$index].show(this)');\n }\n });\n return function (scope: IScope & ScopeExtensions, element: IAugmentedJQuery, attrs: DynamicTableHtmlAttributes, controller: NgTableController<any, DynamicTableColDef>) {\n const expr = controller.parseNgTableDynamicExpr(attrs.ngTableDynamic);\n\n controller.setupBindingsToInternalScope(expr.tableParams);\n controller.compileDirectiveTemplates();\n\n scope.$watchCollection<DynamicTableColDef[]>(expr.columns, (newCols/*, oldCols*/) => {\n scope.$columns = controller.buildColumns(newCols);\n controller.loadFilterData(scope.$columns);\n });\n };\n }\n };\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/browser/ngTableDynamic.directive.ts","/**\n * ngTable: Table + Angular JS\n *\n * @author Vitalii Savchuk <[email protected]>\n * @url https://github.com/esvit/ng-table/\n * @license New BSD License <http://creativecommons.org/licenses/BSD/>\n */\n\nconst templateUrl = require('./filterRow.html');\n\nngTableFilterRow.$inject = [];\n\n/**\n * directive that renders the filter header row for a table \n * @ngdoc directive\n * @example\n * ```html\n * <ng-table-filter-row></ng-table-filter-row>\n * ```\n */\nexport function ngTableFilterRow(){\n const directive = {\n restrict: 'E',\n replace: true,\n templateUrl: templateUrl,\n scope: true,\n controller: 'ngTableFilterRowController',\n controllerAs: '$ctrl'\n };\n return directive;\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/browser/ngTableFilterRow.directive.ts","/**\n * ngTable: Table + Angular JS\n *\n * @author Vitalii Savchuk <[email protected]>\n * @url https://github.com/esvit/ng-table/\n * @license New BSD License <http://creativecommons.org/licenses/BSD/>\n */\n\nimport { IScope } from 'angular';\nimport { FilterTemplateDef, FilterTemplateDefMap } from './public-interfaces';\nimport { NgTableFilterConfig } from './ngTableFilterConfig';\n\n/**\n * @private\n */\nexport interface ScopeExtensions {\n getFilterPlaceholderValue(filterDef: string | FilterTemplateDef, filterKey?: string): string;\n}\n\n/**\n * Controller for the {@link ngTableFilterRow ngTableFilterRow} directive\n */\nexport class NgTableFilterRowController {\n static $inject = ['$scope', 'ngTableFilterConfig'];\n config: NgTableFilterConfig;\n constructor($scope: IScope & ScopeExtensions, ngTableFilterConfig: NgTableFilterConfig) {\n this.config = ngTableFilterConfig;\n\n // todo: stop doing this. Why?\n // * scope inheritance makes it hard to know how supplies functions\n // * scope is not a concept in angular 2\n // make function available to filter templates\n $scope.getFilterPlaceholderValue = this.getFilterPlaceholderValue.bind(this);\n }\n\n getFilterCellCss(filter: FilterTemplateDefMap, layout: string) {\n if (layout !== 'horizontal') {\n return 's12';\n }\n\n const size = Object.keys(filter).length;\n const width = parseInt((12 / size).toString(), 10);\n return 's' + width;\n }\n\n getFilterPlaceholderValue(filterDef: string | FilterTemplateDef, filterKey?: string) {\n if (typeof filterDef === 'string') {\n return '';\n } else {\n return filterDef.placeholder;\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/browser/ngTableFilterRowController.ts","/**\n * ngTable: Table + Angular JS\n *\n * @author Vitalii Savchuk <[email protected]>\n * @url https://github.com/esvit/ng-table/\n * @license New BSD License <http://creativecommons.org/licenses/BSD/>\n */\n\nconst templateUrl = require('./groupRow.html');\n\nngTableGroupRow.$inject = [];\n\n/**\n * directive that renders the group header row for a table \n * @ngdoc directive\n * @example\n * ```html\n * <ng-table-group-row></ng-table-group-row>\n * ```\n */\nexport function ngTableGroupRow(){\n const directive = {\n restrict: 'E',\n replace: true,\n templateUrl: templateUrl,\n scope: true,\n controller: 'ngTableGroupRowController',\n controllerAs: '$ctrl'\n };\n return directive;\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/browser/ngTableGroupRow.directive.ts","/**\n * ngTable: Table + Angular JS\n *\n * @author Vitalii Savchuk <[email protected]>\n * @url https://github.com/esvit/ng-table/\n * @license New BSD License <http://creativecommons.org/licenses/BSD/>\n */\n\nimport { IPromise } from 'angular';\nimport { DataResult, GroupingFunc, Grouping, GroupSort } from '../core';\nimport { ColumnDef } from './public-interfaces';\nimport { TableScope } from './ngTableController';\n\n/**\n * @private\n */\nexport interface ScopeExtensions<T> {\n $selGroup: GroupingFunc<any> | string;\n $selGroupTitle: string;\n}\n\n\n/**\n * Controller for the {@link ngTableGroupRow ngTableGroupRow} directive\n */\nexport class NgTableGroupRowController<T> {\n static $inject = ['$scope'];\n private groupFns: Array<GroupingFunc<any> | ColumnDef> = [];\n constructor(private $scope: TableScope<T> & ScopeExtensions<T>) {\n $scope.$watch<Grouping<any>>('params.group()', (newGrouping) => {\n this.setGroup(newGrouping);\n }, true);\n }\n\n getGroupables() {\n const groupableCols = this.$scope.$columns.filter($column => !!$column.groupable(this.$scope));\n return this.groupFns.concat(groupableCols);\n }\n\n getGroupTitle(group: GroupingFunc<any> | ColumnDef) {\n return this.isGroupingFunc(group) ? group.title : group.title(this.$scope);\n }\n\n\n getVisibleColumns() {\n return this.$scope.$columns.filter($column => $column.show(this.$scope))\n }\n\n groupBy(group: GroupingFunc<any> | ColumnDef) {\n if (this.isSelectedGroup(group)) {\n this.changeSortDirection();\n } else {\n if (this.isGroupingFunc(group)) {\n this.$scope.params.group(group);\n } else {\n // it's OK, we know that groupable will return a string\n // this is guaranteed by getGroupables returning only\n // columns that return (truthy) strings\n this.$scope.params.group(group.groupable(this.$scope) as string);\n }\n }\n }\n\n isSelectedGroup(group: GroupingFunc<any> | ColumnDef) {\n if (this.isGroupingFunc(group)) {\n return group === this.$scope.$selGroup;\n } else {\n return group.groupable(this.$scope) === this.$scope.$selGroup;\n }\n }\n\n toggleDetail() {\n this.$scope.params.settings().groupOptions.isExpanded = !this.$scope.params.settings().groupOptions.isExpanded;\n return this.$scope.params.reload();\n }\n\n private changeSortDirection() {\n let newDirection: GroupSort;\n if (this.$scope.params.hasGroup(this.$scope.$selGroup, 'asc')) {\n newDirection = 'desc';\n } else if (this.$scope.params.hasGroup(this.$scope.$selGroup, 'desc')) {\n newDirection = '';\n } else {\n newDirection = 'asc';\n }\n this.$scope.params.group(this.$scope.$selGroup, newDirection);\n }\n\n private findGroupColumn(groupKey: GroupingFunc<any> | string) {\n return this.$scope.$columns.filter($column => $column.groupable(this.$scope) === groupKey)[0];\n }\n\n private isGroupingFunc(val: ColumnDef | Grouping<any>): val is GroupingFunc<any> {\n return typeof val === 'function';\n }\n\n private setGroup(grouping: Grouping<any>) {\n const existingGroupCol = this.findGroupColumn(this.$scope.$selGroup);\n if (existingGroupCol && existingGroupCol.show.assign) {\n existingGroupCol.show.assign(this.$scope, true);\n }\n if (this.isGroupingFunc(grouping)) {\n this.groupFns = [grouping];\n this.$scope.$selGroup = grouping;\n this.$scope.$selGroupTitle = grouping.title || '';\n } else {\n // note: currently only one group is implemented\n const groupKey = Object.keys(grouping || {})[0];\n const groupedColumn = this.findGroupColumn(groupKey);\n if (groupedColumn) {\n this.$scope.$selGroupTitle = groupedColumn.title(this.$scope);\n this.$scope.$selGroup = groupKey;\n if (groupedColumn.show.assign) {\n groupedColumn.show.assign(this.$scope, false);\n }\n }\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/browser/ngTableGroupRowController.ts","/**\n * ngTable: Table + Angular JS\n *\n * @author Vitalii Savchuk <[email protected]>\n * @url https://github.com/esvit/ng-table/\n * @license New BSD License <http://creativecommons.org/licenses/BSD/>\n */\n\nimport * as ng1 from 'angular';\nimport { NgTableEventsChannel, PageButton } from '../core'\nimport { TableScope } from './ngTableController';\n\ninterface ScopeExtensions {\n pages: PageButton[]\n}\n\nngTablePagination.$inject = ['$compile', '$document', 'ngTableEventsChannel'];\n\n/**\n * Directive that renders the table pagination controls\n * @ngdoc directive\n */\nexport function ngTablePagination<T>($compile: ng1.ICompileService, $document: ng1.IDocumentService, ngTableEventsChannel: NgTableEventsChannel): ng1.IDirective {\n\n return {\n restrict: 'A',\n scope: {\n 'params': '=ngTablePagination',\n 'templateUrl': '='\n },\n replace: false,\n link: function(scope: TableScope<T> & ScopeExtensions, element: ng1.IAugmentedJQuery/*, attrs*/) {\n\n ngTableEventsChannel.onAfterReloadData<T>(function(pubParams) {\n scope.pages = pubParams.generatePagesArray();\n }, scope, function(pubParams){\n return pubParams === scope.params;\n });\n\n scope.$watch<string>('templateUrl', function(templateUrl) {\n if (templateUrl === undefined) {\n return;\n }\n const template = ng1.element('<div ng-include=\"templateUrl\"></div>', $document);\n element.append(template);\n $compile(template)(scope);\n });\n }\n };\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/browser/ngTablePagination.directive.ts","/**\n * ngTable: Table + Angular JS\n *\n * @author Vitalii Savchuk <[email protected]>\n * @url https://github.com/esvit/ng-table/\n * @license New BSD License <http://creativecommons.org/licenses/BSD/>\n */\n\nimport { IAttributes, IDirective, IParseService, IQService, IPromise, IScope } from 'angular';\nimport { ColumnDef, SelectData, SelectDataFunc, SelectOption } from './public-interfaces';\n\n/**\n * @private\n */\nexport interface InputAttributes extends IAttributes {\n ngTableSelectFilterDs: string;\n}\n\n/**\n * @private\n */\nexport interface ScopeExtensions {\n $selectData: SelectOption[]\n}\n\nngTableSelectFilterDs.$inject = [];\n\n/**\n * Takes the array returned by $column.filterData and makes it available as `$selectData` on the `$scope`.\n *\n * The resulting `$selectData` array will contain an extra item that is suitable to represent the user\n * \"deselecting\" an item from a `<select>` tag\n *\n * This directive is is focused on providing a datasource to an `ngOptions` directive\n */\nfunction ngTableSelectFilterDs(): IDirective {\n // note: not using isolated or child scope \"by design\"\n // this is to allow this directive to be combined with other directives that do\n\n const directive = {\n restrict: 'A',\n controller: NgTableSelectFilterDsController\n };\n return directive;\n}\n\n/**\n * @private\n */\nexport class NgTableSelectFilterDsController {\n static $inject = ['$scope', '$parse', '$attrs', '$q'];\n $column: ColumnDef;\n constructor(\n private $scope: IScope & ScopeExtensions,\n $parse: IParseService,\n private $attrs: InputAttributes,\n private $q: IQService) {\n\n this.$column = $parse($attrs.ngTableSelectFilterDs)($scope);\n $scope.$watch<SelectData | undefined>(\n () => this.$column && this.$column.data,\n () => { this.bindDataSource(); });\n }\n private bindDataSource() {\n this.getSelectListData(this.$column).then(data => {\n if (data && !this.hasEmptyOption(data)) {\n data.unshift({ id: '', title: '' });\n }\n data = data || [];\n this.$scope.$selectData = data;\n });\n }\n\n private hasEmptyOption(data: SelectOption[]) {\n let isMatch = false;\n for (let i = 0; i < data.length; i++) {\n const item = data[i];\n if (item && item.id === '') {\n isMatch = true;\n break;\n }\n }\n return isMatch;\n }\n\n private getSelectListData($column: ColumnDef) {\n const dataInput = $column.data;\n let result: IPromise<SelectOption[]> | SelectOption[] | undefined;\n if (typeof dataInput === 'function') {\n result = dataInput();\n } else {\n result = dataInput;\n }\n return this.$q.when<SelectOption[] | undefined>(result);\n }\n}\nexport { ngTableSelectFilterDs };\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/browser/ngTableSelectFilterDs.directive.ts","/**\n * ngTable: Table + Angular JS\n *\n * @author Vitalii Savchuk <[email protected]>\n * @url https://github.com/esvit/ng-table/\n * @license New BSD License <http://creativecommons.org/licenses/BSD/>\n */\n\nconst templateUrl = require('./sorterRow.html');\n\nngTableSorterRow.$inject = [];\n\n/**\n * directive that renders the sorting header row for a table \n * @ngdoc directive\n * @example\n * ```html\n * <ng-table-sorter-row></ng-table-sorter-row>\n * ```\n */\nexport function ngTableSorterRow(){\n const directive = {\n restrict: 'E',\n replace: true,\n templateUrl: templateUrl,\n scope: true,\n controller: 'ngTableSorterRowController',\n controllerAs: '$ctrl'\n };\n return directive;\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/browser/ngTableSorterRow.directive.ts","/**\n * ngTable: Table + Angular JS\n *\n * @author Vitalii Savchuk <[email protected]>\n * @url https://github.com/esvit/ng-table/\n * @license New BSD License <http://creativecommons.org/licenses/BSD/>\n */\nimport { IAngularEvent } from 'angular';\nimport { SortDirection, SortingValues } from '../core';\nimport { ColumnDef } from './public-interfaces';\nimport { TableScope } from './ngTableController';\n\n/**\n * @private\n */\nexport interface IAugmentedMouseEvent extends IAngularEvent {\n ctrlKey: boolean;\n metaKey: boolean;\n}\n/**\n * Controller for the {@link ngTableSorterRow ngTableSorterRow} directive\n */\nexport class NgTableSorterRowController<T> {\n static $inject = ['$scope'];\n constructor(private $scope: TableScope<T>) {}\n\n sortBy($column: ColumnDef, event: IAugmentedMouseEvent) {\n const parsedSortable = $column.sortable && $column.sortable();\n if (!parsedSortable || typeof parsedSortable !== 'string') {\n return;\n } else {\n const defaultSort = this.$scope.params.settings().defaultSort;\n const inverseSort: SortDirection = (defaultSort === 'asc' ? 'desc' : 'asc');\n const sorting = this.$scope.params.sorting() && this.$scope.params.sorting()[parsedSortable] && (this.$scope.params.sorting()[parsedSortable] === defaultSort);\n const sortingParams: SortingValues = (event.ctrlKey || event.metaKey) ? this.$scope.params.sorting() : {};\n sortingParams[parsedSortable] = (sorting ? inverseSort : defaultSort);\n this.$scope.params.parameters({\n sorting: sortingParams\n });\n }\n\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/browser/ngTableSorterRowController.ts","export type DataSettingsPartial = Partial<DataSettings>;\n\nexport class DataSettings {\n applyFilter = true;\n applyPaging = true;\n applySort = true;\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/core/data/dataSettings.ts","/**\n * ngTable: Table + Angular JS\n *\n * @author Vitalii Savchuk <[email protected]>\n * @url https://github.com/esvit/ng-table/\n * @license New BSD License <http://creativecommons.org/licenses/BSD/>\n */\n\nimport * as ng1 from 'angular';\nimport { IFilterFilter, IFilterOrderBy, IFilterService, IPromise, IServiceProvider} from 'angular';\nimport { FilterFunc } from '../filtering';\nimport { NgTableParams } from '../ngTableParams';\nimport { NgTableEventsChannel } from '../ngTableEventsChannel';\n\n\n/**\n * A default implementation of the getData function that will apply the `filter`, `orderBy` and\n * paging values from the {@link NgTableParams} instance supplied to the data array supplied.\n *\n * A call to this function will:\n * - return the resulting array\n * - assign the total item count after filtering to the `total` of the `NgTableParams` instance supplied\n */\nexport interface DefaultGetData<T> {\n (data: T[] | undefined, params: NgTableParams<T>): T[];\n /**\n * Convenience function that this service will use to apply paging to the data rows.\n *\n * Returns a slice of rows from the `data` array supplied and sets the `NgTableParams.total()`\n * on the `params` instance supplied to `data.length`\n */\n applyPaging(data: T[], params: NgTableParams<any>): T[],\n /**\n * Returns a reference to the function that this service will use to filter data rows\n */\n getFilterFn(params: NgTableParams<T>): FilterFunc<T>,\n /**\n * Returns a reference to the function that this service will use to sort data rows\n */\n getOrderByFn(params?: NgTableParams<T>): IFilterOrderBy\n}\n\n/**\n * Implementation of the {@link DefaultGetDataProvider} interface\n */\nexport class NgTableDefaultGetDataProvider implements IServiceProvider {\n /**\n * The name of a angular filter that knows how to apply the values returned by\n * `NgTableParams.filter()` to restrict an array of data.\n * (defaults to the angular `filter` filter service)\n */\n filterFilterName = 'filter';\n /**\n * The name of a angular filter that knows how to apply the values returned by\n * `NgTableParams.orderBy()` to sort an array of data.\n * (defaults to the angular `orderBy` filter service)\n */\n sortingFilterName = 'orderBy';\n $get: ($filter: IFilterService, ngTableEventsChannel: NgTableEventsChannel) => DefaultGetData<any>;\n constructor() {\n const provider = this;\n this.$get = ngTableDefaultGetData;\n\n ngTableDefaultGetData.$inject = ['$filter', 'ngTableEventsChannel'];\n\n function ngTableDefaultGetData<T>($filter: IFilterService, ngTableEventsChannel: NgTableEventsChannel): DefaultGetData<T> {\n\n (getData as DefaultGetData<T>).applyPaging = applyPaging;\n (getData as DefaultGetData<T>).getFilterFn = getFilterFn;\n (getData as DefaultGetData<T>).getOrderByFn = getOrderByFn;\n\n return getData as DefaultGetData<T>;\n\n function getFilterFn(params: NgTableParams<T>): FilterFunc<T> {\n const filterOptions = params.settings().filterOptions;\n if (ng1.isFunction(filterOptions.filterFn)) {\n return filterOptions.filterFn;\n } else {\n return $filter<IFilterFilter>(filterOptions.filterFilterName || provider.filterFilterName);\n }\n }\n\n function getOrderByFn(params: NgTableParams<T>) {\n return $filter<IFilterOrderBy>(provider.sortingFilterName);\n }\n\n function applyFilter(data: T[], params: NgTableParams<T>): T[] {\n if (!params.hasFilter()) {\n return data;\n }\n\n const filter = params.filter(true);\n const filterKeys = Object.keys(filter);\n const parsedFilter = filterKeys.reduce((result, key) => {\n result = setPath(result, filter[key], key);\n return result;\n }, {});\n const filterFn = getFilterFn(params);\n return filterFn.call(params, data, parsedFilter, params.settings().filterOptions.filterComparator);\n }\n\n function applyPaging(data: T[], params: NgTableParams<any>): T[] {\n const pagedData = data.slice((params.page() - 1) * params.count(), params.page() * params.count());\n params.total(data.length); // set total for recalc pagination\n return pagedData;\n }\n\n function applySort(data: T[], params: NgTableParams<T>): T[] {\n const orderBy = params.orderBy();\n const orderByFn = getOrderByFn(params);\n return orderBy.length ? orderByFn(data, orderBy) : data;\n }\n\n function getData(data: T[], params: NgTableParams<T>): T[] {\n if (data == null) {\n return [];\n }\n\n const options = params.settings().dataOptions;\n\n const fData = options.applyFilter ? applyFilter(data, params) : data;\n ngTableEventsChannel.publishAfterDataFiltered(params, fData);\n\n const orderedData = options.applySort ? applySort(fData, params) : fData;\n ngTableEventsChannel.publishAfterDataSorted(params,orderedData);\n\n return options.applyPaging ? applyPaging(orderedData, params) : orderedData;\n }\n\n // Sets the value at any depth in a nested object based on the path\n // note: adapted from: underscore-contrib#setPath\n function setPath(obj: any, value: any, path: string) {\n const keys = path.split('.');\n const ret = obj;\n const lastKey = keys[keys.length - 1];\n let target = ret;\n\n const parentPathKeys = keys.slice(0, keys.length - 1);\n parentPathKeys.forEach(function (key) {\n if (!target.hasOwnProperty(key)) {\n target[key] = {};\n }\n target = target[key];\n });\n\n target[lastKey] = value;\n return ret;\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/core/data/ngTableDefaultGetData.ts","import { FilterComparator } from './filterComparator';\nimport { FilterFunc } from './filterFunc';\n\nexport type FilterLayout = 'stack' | 'horizontal';\n\nexport type FilterSettingsPartial<T> = Partial<FilterSettings<T>>\n\nexport class FilterSettings<T> {\n /**\n * Use this to determine how items are matched against the filter values.\n * This setting is identical to the `comparator` parameter supported by the angular\n * `$filter` filter service\n *\n * Defaults to `undefined` which will result in a case insensitive susbstring match when\n * `DefaultGetData` service is supplying the implementation for the\n * `Settings.getData` function\n */\n filterComparator?: FilterComparator<T> = undefined; // look for a substring match in case insensitive way\n /**\n * A duration to wait for the user to stop typing before applying the filter.\n * Note: this delay will NOT be applied when *small* managed inmemory arrays are supplied as a \n * `SettingsPartial.dataset` argument to `NgTableParams.settings`.\n */\n filterDelay = 500;\n /**\n * The number of elements up to which a managed inmemory array is considered small\n */\n filterDelayThreshold: number | null = 10000;\n /**\n * Overrides `DefaultGetDataProvider.filterFilterName`.\n * The value supplied should be the name of the angular `$filter` service that will be selected to perform\n * the actual filter logic.\n */\n filterFilterName?: string = undefined;\n /**\n * Tells `DefaultGetData` to use this function supplied to perform the filtering instead of selecting an angular $filter.\n */\n filterFn?: FilterFunc<T> = undefined;\n /**\n * The layout to use when multiple html templates are to rendered in a single table header column.\n */\n filterLayout: FilterLayout = 'stack';\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/core/filtering/filterSettings.ts","import { IQService } from 'angular';\nimport * as ng1 from 'angular';\nimport { convertSortToOrderBy, isGroupingFun } from '../util';\nimport { NgTableParams, } from '../ngTableParams';\nimport { DataRowGroup, DefaultGetData, GetDataFunc } from '../data';\nimport { GetGroupFunc, Grouping, GroupingFunc, GroupSort } from './';\nimport { SortingValues } from '../sorting';\n\nngTableDefaultGetGroups.$inject = ['$q', 'ngTableDefaultGetData'];\n\n/**\n * Implementation of the {@link DefaultGetData} interface\n * \n * @ngdoc service\n */\nexport function ngTableDefaultGetGroups<T>($q: IQService, ngTableDefaultGetData: DefaultGetData<DataRowGroup<T>>): GetGroupFunc<T> {\n\n return getGroups;\n\n function getGroups(params: NgTableParams<T>) {\n\n const group = params.group();\n let groupFn: GroupingFunc<T>;\n let sortDirection: GroupSort | undefined;\n if (isGroupingFun(group)) {\n groupFn = group;\n sortDirection = group.sortDirection;\n } else {\n // currently support for only one group implemented\n const groupField = Object.keys(group)[0];\n sortDirection = group[groupField];\n groupFn = item => {\n return getPath(item, groupField);\n };\n }\n\n const settings = params.settings();\n const originalDataOptions = settings.dataOptions;\n settings.dataOptions = ng1.extend({}, originalDataOptions, { applyPaging: false });\n const getData: GetDataFunc<T> = settings.getData;\n const gotData = $q.when(getData(params));\n return gotData.then(data => {\n const groups: { [name: string]: DataRowGroup<T> } = {};\n ng1.forEach(data, item => {\n const groupName = groupFn(item);\n groups[groupName] = groups[groupName] || {\n data: [],\n $hideRows: !settings.groupOptions.isExpanded,\n value: groupName\n };\n groups[groupName].data.push(item);\n });\n let result: DataRowGroup<T>[] = [];\n for (const i in groups) {\n result.push(groups[i]);\n }\n if (sortDirection) {\n const orderByFn = ngTableDefaultGetData.getOrderByFn();\n const orderBy = convertSortToOrderBy({\n value: sortDirection\n });\n result = orderByFn(result, orderBy);\n }\n\n return ngTableDefaultGetData.applyPaging(result, params);\n }).finally(() => {\n // restore the real options\n settings.dataOptions = originalDataOptions;\n });\n }\n}\n\n\n/**\n * @private\n */\nfunction getPath(obj: { [name: string]: any }, ks: string | string[]): any {\n // origianl source https://github.com/documentcloud/underscore-contrib\n\n let keys: string[];\n if (typeof ks === \"string\") {\n keys = ks.split(\".\");\n } else {\n keys = ks;\n }\n\n // If we have reached an undefined property\n // then stop executing and return undefined\n if (obj === undefined) return void 0;\n\n // If the path array has no more elements, we've reached\n // the intended property and return its value\n if (keys.length === 0) return obj;\n\n // If we still have elements in the path array and the current\n // value is null, stop executing and return undefined\n if (obj === null) return void 0;\n\n return getPath(obj[keys[0]], keys.slice(1));\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/core/grouping/ngTableDefaultGetGroups.ts","export * from './getGroup';\nexport * from './groupingFunc';\nexport * from './groupSettings';\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/core/grouping/publicExports.ts","/**\n * ngTable: Table + Angular JS\n *\n * @author Vitalii Savchuk <[email protected]>\n * @url https://github.com/esvit/ng-table/\n * @license New BSD License <http://creativecommons.org/licenses/BSD/>\n */\n\nimport { ParamValuesPartial } from './ngTableParams';\nimport { SettingsPartial } from './ngTableSettings';\n\n\n/**\n * An angular value object that allow for overriding of the initial default values used when constructing\n * an instance of `NgTableParams`\n */\nexport interface Defaults {\n params?: ParamValuesPartial<any>;\n settings?: SettingsPartial<any>\n}\n\n/**\n * Default values for ngTable\n */\nexport let ngTableDefaults : Defaults = {\n params: {},\n settings: {}\n};\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/core/ngTableDefaults.ts","import * as ng1 from 'angular';\n\n/**\n * @private\n */\nexport function assignPartialDeep<T extends TPartial, TPartial>(\n destination: T, \n partial: TPartial,\n optionalPropSelector: (key: string, destination: T) => boolean = () => false,\n customizer: (destValue: any, srcValue: any, key: string) => any = () => undefined\n ) {\n const keys = Object.keys(partial);\n for(const key of keys) {\n let srcVal = partial[key];\n if (srcVal === undefined) {\n if (optionalPropSelector(key, destination)){\n destination[key] = srcVal;\n } else {\n // don't assign undefined to destination\n }\n continue;\n }\n\n const destVal = destination[key];\n const customVal = customizer(destVal, srcVal, key);\n if (customVal !== undefined){\n destination[key] = customVal;\n } else if (ng1.isArray(srcVal)) {\n destination[key] = [...srcVal];\n } else if (!ng1.isObject(srcVal)) {\n destination[key] = srcVal;\n } else {\n destination[key] = assignPartialDeep(destVal, srcVal);\n }\n }\n return destination;\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/shared/assign-partial-deep.ts","export interface InitializedClass {\n new(...args: any[]): any;\n isInitialized: boolean;\n}\n\n/**\n * @private\n */\nexport function checkClassInit(clazz: InitializedClass ) {\n if (!clazz.isInitialized) {\n throw new Error('Class used before initialized. Hint: it is only safe to use this class after all run blocks (ng 1) / app initializers (ng 2) have executed.');\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./src/shared/check-class-init.ts","var path = 'ng-table/filterRow.html';\nvar html = \"<tr ng-show=\\\"show_filter\\\" class=\\\"ng-table-filters\\\">\\n <th data-title-text=\\\"{{$column.titleAlt(this) || $column.title(this)}}\\\" ng-repeat=\\\"$column in $columns\\\" ng-if=\\\"$column.show(this)\\\" class=\\\"filter {{$column.class(this)}}\\\"\\n ng-class=\\\"params.settings().filterOptions.filterLayout === 'horizontal' ? 'filter-horizontal' : ''\\\">\\n <div ng-repeat=\\\"(name, filter) in $column.filter(this)\\\" ng-include=\\\"$ctrl.config.getTemplateUrl(filter)\\\" class=\\\"filter-cell\\\"\\n ng-class=\\\"[$ctrl.getFilterCellCss($column.filter(this), params.settings().filterOptions.filterLayout), $last ? 'last' : '']\\\">\\n </div>\\n </th>\\n</tr>\\n\";\nvar angular = require('angular');\nangular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/browser/filterRow.html\n// module id = 35\n// module chunks = 0","var path = 'ng-table/filters/number.html';\nvar html = \"<input type=\\\"number\\\" name=\\\"{{name}}\\\" ng-disabled=\\\"$filterRow.disabled\\\" ng-model=\\\"params.filter()[name]\\\" class=\\\"input-filter form-control\\\"\\n placeholder=\\\"{{getFilterPlaceholderValue(filter, name)}}\\\"/>\\n\";\nvar angular = require('angular');\nangular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/browser/filters/number.html\n// module id = 36\n// module chunks = 0","var path = 'ng-table/filters/select-multiple.html';\nvar html = \"<select ng-options=\\\"data.id as data.title for data in $column.data\\\"\\n ng-disabled=\\\"$filterRow.disabled\\\"\\n multiple ng-multiple=\\\"true\\\"\\n ng-model=\\\"params.filter()[name]\\\"\\n class=\\\"filter filter-select-multiple form-control\\\" name=\\\"{{name}}\\\">\\n</select>\\n\";\nvar angular = require('angular');\nangular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/browser/filters/select-multiple.html\n// module id = 37\n// module chunks = 0","var path = 'ng-table/filters/select.html';\nvar html = \"<select ng-options=\\\"data.id as data.title for data in $selectData\\\"\\n ng-table-select-filter-ds=\\\"$column\\\"\\n ng-disabled=\\\"$filterRow.disabled\\\"\\n ng-model=\\\"params.filter()[name]\\\"\\n class=\\\"filter filter-select form-control\\\" name=\\\"{{name}}\\\">\\n <option style=\\\"display:none\\\" value=\\\"\\\"></option>\\n</select>\\n\";\nvar angular = require('angular');\nangular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/browser/filters/select.html\n// module id = 38\n// module chunks = 0","var path = 'ng-table/filters/text.html';\nvar html = \"<input type=\\\"text\\\" name=\\\"{{name}}\\\" ng-disabled=\\\"$filterRow.disabled\\\" ng-model=\\\"params.filter()[name]\\\" class=\\\"input-filter form-control\\\"\\n placeholder=\\\"{{getFilterPlaceholderValue(filter, name)}}\\\"/>\\n\";\nvar angular = require('angular');\nangular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/browser/filters/text.html\n// module id = 39\n// module chunks = 0","var path = 'ng-table/groupRow.html';\nvar html = \"<tr ng-if=\\\"params.hasGroup()\\\" ng-show=\\\"$groupRow.show\\\" class=\\\"ng-table-group-header\\\">\\n <th colspan=\\\"{{$ctrl.getVisibleColumns().length}}\\\" class=\\\"sortable\\\" ng-class=\\\"{\\n 'sort-asc': params.hasGroup($selGroup, 'asc'),\\n 'sort-desc':params.hasGroup($selGroup, 'desc')\\n }\\\">\\n <a href=\\\"\\\" ng-click=\\\"isSelectorOpen = !isSelectorOpen\\\" class=\\\"ng-table-group-selector\\\">\\n <strong class=\\\"sort-indicator\\\">{{$selGroupTitle}}</strong>\\n <button class=\\\"btn btn-default btn-xs ng-table-group-close\\\"\\n ng-click=\\\"$groupRow.show = false; $event.preventDefault(); $event.stopPropagation();\\\">\\n <span class=\\\"glyphicon glyphicon-remove\\\"></span>\\n </button>\\n <button class=\\\"btn btn-default btn-xs ng-table-group-toggle\\\"\\n ng-click=\\\"$ctrl.toggleDetail(); $event.preventDefault(); $event.stopPropagation();\\\">\\n <span class=\\\"glyphicon\\\" ng-class=\\\"{\\n 'glyphicon-resize-small': params.settings().groupOptions.isExpanded,\\n 'glyphicon-resize-full': !params.settings().groupOptions.isExpanded\\n }\\\"></span>\\n </button>\\n </a>\\n <div class=\\\"list-group\\\" ng-if=\\\"isSelectorOpen\\\">\\n <a href=\\\"\\\" class=\\\"list-group-item\\\" ng-repeat=\\\"group in $ctrl.getGroupables()\\\" ng-click=\\\"$ctrl.groupBy(group)\\\">\\n <strong>{{ $ctrl.getGroupTitle(group)}}</strong>\\n <strong ng-class=\\\"$ctrl.isSelectedGroup(group) && 'sort-indicator'\\\"></strong>\\n </a>\\n </div>\\n </th>\\n</tr>\\n\";\nvar angular = require('angular');\nangular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/browser/groupRow.html\n// module id = 40\n// module chunks = 0","var path = 'ng-table/header.html';\nvar html = \"<ng-table-group-row></ng-table-group-row>\\n<ng-table-sorter-row></ng-table-sorter-row>\\n<ng-table-filter-row></ng-table-filter-row>\\n\";\nvar angular = require('angular');\nangular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/browser/header.html\n// module id = 41\n// module chunks = 0","var path = 'ng-table/pager.html';\nvar html = \"<div class=\\\"ng-cloak ng-table-pager\\\" ng-if=\\\"params.data.length\\\">\\n <div ng-if=\\\"params.settings().counts.length\\\" class=\\\"ng-table-counts btn-group pull-right\\\">\\n <button ng-repeat=\\\"count in params.settings().counts\\\" type=\\\"button\\\"\\n ng-class=\\\"{'active':params.count() == count}\\\"\\n ng-click=\\\"params.count(count)\\\" class=\\\"btn btn-default\\\">\\n <span ng-bind=\\\"count\\\"></span>\\n </button>\\n </div>\\n <ul ng-if=\\\"pages.length\\\" class=\\\"pagination ng-table-pagination\\\">\\n <li class=\\\"page-item\\\" ng-class=\\\"{'disabled': !page.active && !page.current, 'active': page.current}\\\" ng-repeat=\\\"page in pages\\\" ng-switch=\\\"page.type\\\">\\n <a class=\\\"page-link\\\" ng-switch-when=\\\"prev\\\" ng-click=\\\"params.page(page.number)\\\" href=\\\"\\\">«</a>\\n <a class=\\\"page-link\\\" ng-switch-when=\\\"first\\\" ng-click=\\\"params.page(page.number)\\\" href=\\\"\\\"><span ng-bind=\\\"page.number\\\"></span></a>\\n <a class=\\\"page-link\\\" ng-switch-when=\\\"page\\\" ng-click=\\\"params.page(page.number)\\\" href=\\\"\\\"><span ng-bind=\\\"page.number\\\"></span></a>\\n <a class=\\\"page-link\\\" ng-switch-when=\\\"more\\\" ng-click=\\\"params.page(page.number)\\\" href=\\\"\\\">…</a>\\n <a class=\\\"page-link\\\" ng-switch-when=\\\"last\\\" ng-click=\\\"params.page(page.number)\\\" href=\\\"\\\"><span ng-bind=\\\"page.number\\\"></span></a>\\n <a class=\\\"page-link\\\" ng-switch-when=\\\"next\\\" ng-click=\\\"params.page(page.number)\\\" href=\\\"\\\">»</a>\\n </li>\\n </ul>\\n</div>\\n\";\nvar angular = require('angular');\nangular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/browser/pager.html\n// module id = 42\n// module chunks = 0","var path = 'ng-table/sorterRow.html';\nvar html = \"<tr class=\\\"ng-table-sort-header\\\">\\n <th title=\\\"{{$column.headerTitle(this)}}\\\"\\n ng-repeat=\\\"$column in $columns\\\"\\n ng-class=\\\"{\\n 'sortable': $column.sortable(this),\\n 'sort-asc': params.sorting()[$column.sortable(this)]=='asc',\\n 'sort-desc': params.sorting()[$column.sortable(this)]=='desc'\\n }\\\"\\n ng-click=\\\"$ctrl.sortBy($column, $event)\\\"\\n ng-if=\\\"$column.show(this)\\\"\\n ng-init=\\\"template = $column.headerTemplateURL(this)\\\"\\n class=\\\"header {{$column.class(this)}}\\\">\\n <div ng-if=\\\"!template\\\" class=\\\"ng-table-header\\\" ng-class=\\\"{'sort-indicator': params.settings().sortingIndicator == 'div'}\\\">\\n <span ng-bind=\\\"$column.title(this)\\\" ng-class=\\\"{'sort-indicator': params.settings().sortingIndicator == 'span'}\\\"></span>\\n </div>\\n <div ng-if=\\\"template\\\" ng-include=\\\"template\\\"></div>\\n </th>\\n</tr>\\n\";\nvar angular = require('angular');\nangular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\nmodule.exports = path;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/browser/sorterRow.html\n// module id = 43\n// module chunks = 0","import * as ng1 from 'angular';\nimport { ngTableCoreModule } from './src/core';\nimport { ngTableBrowserModule } from './src/browser';\n\nconst ngTableModule = ng1.module('ngTable', [ngTableCoreModule.name, ngTableBrowserModule.name]);\n\nexport { ngTableModule };\nexport * from './src/core';\nexport * from './src/browser';\n\n\n// WEBPACK FOOTER //\n// ./~/angular1-template-loader!./index.ts"],"sourceRoot":""}