diff --git a/dist.tgz b/dist.tgz index edc08acba..c8b79dbb2 100644 Binary files a/dist.tgz and b/dist.tgz differ diff --git a/dist/app/modules/angular-slickgrid/models/gridOption.interface.d.ts b/dist/app/modules/angular-slickgrid/models/gridOption.interface.d.ts index fac9e9665..2f0d35934 100644 --- a/dist/app/modules/angular-slickgrid/models/gridOption.interface.d.ts +++ b/dist/app/modules/angular-slickgrid/models/gridOption.interface.d.ts @@ -2,6 +2,8 @@ import { AutoResizeOption, BackendEventChanged, BackendServiceApi, Column, Colum export interface GridOption { /** CSS class name used on newly added row */ addNewRowCssClass?: string; + /** Defaults to true, which leads to always show a vertical scrolling. This is rather important to use when using the Grid Menu (hamburger) */ + alwaysShowVerticalScroll?: boolean; /** Defaults to 100, which is the asynchronous editor loading delay */ asyncEditorLoadDelay?: number; /** Defaults to false, which leads to load editor asynchronously (delayed) */ @@ -14,6 +16,8 @@ export interface GridOption { autoEdit?: boolean; /** Defaults to true, which leads to automatically adjust the size of each column with the available space. Similar to "Force Fit Column" but only happens on first page/component load. */ autoFitColumnsOnFirstLoad?: boolean; + /** Defaults to false, when enabled will automatically adjust grid height. */ + autoHeight?: boolean; /** Auto-resize options (bottom padding, minHeight, ...) */ autoResize?: AutoResizeOption; /** Auto-tooltip options (enableForCells, enableForHeaderCells, maxToolTipLength) */ @@ -119,7 +123,7 @@ export interface GridOption { footerRowHeight?: number; /** Do we want to force fit columns in the grid at all time? */ forceFitColumns?: boolean; - /** Do we want to force synchronous scrolling? */ + /** Defaults to false, force synchronous scrolling */ forceSyncScrolling?: boolean; /** Formatter classes factory */ formatterFactory?: any; diff --git a/dist/bundles/angular-slickgrid.umd.js b/dist/bundles/angular-slickgrid.umd.js index c141b3e68..67661d6be 100644 --- a/dist/bundles/angular-slickgrid.umd.js +++ b/dist/bundles/angular-slickgrid.umd.js @@ -2350,7 +2350,7 @@ var ControlAndPluginService = /** @class */ (function () { this._grid.setSelectionModel(this.rowSelectionPlugin); } } - if (this._gridOptions.enableRowSelection) { + if (!this._gridOptions.enableCheckboxSelector && this._gridOptions.enableRowSelection) { this.rowSelectionPlugin = new Slick.RowSelectionModel(this._gridOptions.rowSelectionOptions || {}); this._grid.setSelectionModel(this.rowSelectionPlugin); } @@ -5754,6 +5754,7 @@ SlickPaginationComponent.propDecorators = { "grid": [{ type: core.Input },], }; var GlobalGridOptions = { + alwaysShowVerticalScroll: true, autoEdit: false, asyncEditorLoading: false, autoFitColumnsOnFirstLoad: true, @@ -5808,7 +5809,7 @@ var GlobalGridOptions = { iconRefreshDatasetCommand: 'fa fa-refresh', iconToggleFilterCommand: 'fa fa-random', menuWidth: 16, - resizeOnShowHeaderRow: false, + resizeOnShowHeaderRow: true, showClearAllFiltersCommand: true, showClearAllSortingCommand: true, showExportCsvCommand: true, diff --git a/dist/bundles/angular-slickgrid.umd.js.map b/dist/bundles/angular-slickgrid.umd.js.map index bc91a8b3a..dfa00f7c0 100644 --- a/dist/bundles/angular-slickgrid.umd.js.map +++ b/dist/bundles/angular-slickgrid.umd.js.map @@ -118,7 +118,7 @@ "sourcesContent": [ "import { SharedService } from './../services/shared.service';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { AngularSlickgridComponent } from './../components/angular-slickgrid.component';\nimport { CollectionService } from './../services/collection.service';\nimport { ControlAndPluginService } from '../services/controlAndPlugin.service';\nimport { ExportService } from '../services/export.service';\nimport { FilterService } from './../services/filter.service';\nimport { GraphqlService } from './../services/graphql.service';\nimport { GridOdataService } from './../services/grid-odata.service';\nimport { GridOption } from './../models/gridOption.interface';\nimport { GridEventService } from './../services/gridEvent.service';\nimport { GridExtraService } from './../services/gridExtra.service';\nimport { GridStateService } from './../services/gridState.service';\nimport { GroupingAndColspanService } from './../services/groupingAndColspan.service';\nimport { OdataService } from './../services/odata.service';\nimport { ResizerService } from './../services/resizer.service';\nimport { SlickPaginationComponent } from './../components/slick-pagination.component';\nimport { SortService } from './../services/sort.service';\n\n@NgModule({\n imports: [\n CommonModule,\n TranslateModule\n ],\n declarations: [\n AngularSlickgridComponent,\n SlickPaginationComponent\n ],\n exports: [\n AngularSlickgridComponent,\n SlickPaginationComponent\n ]\n})\nexport class AngularSlickgridModule {\n static forRoot(config: GridOption = {}) {\n return {\n ngModule: AngularSlickgridModule,\n providers: [\n {provide: 'config', useValue: config},\n CollectionService,\n ControlAndPluginService,\n ExportService,\n FilterService,\n GraphqlService,\n GridEventService,\n GridExtraService,\n GridOdataService,\n GridStateService,\n GroupingAndColspanService,\n OdataService,\n ResizerService,\n SharedService,\n SortService\n ]\n };\n }\n}\n", "// import 3rd party vendor libs\nimport 'jquery-ui-dist/jquery-ui';\nimport 'slickgrid/lib/jquery.event.drag-2.3.0';\nimport 'slickgrid/slick.core';\nimport 'slickgrid/slick.dataview';\nimport 'slickgrid/slick.grid';\nimport 'slickgrid/slick.dataview';\nimport 'slickgrid/slick.groupitemmetadataprovider';\nimport 'slickgrid/controls/slick.columnpicker';\nimport 'slickgrid/controls/slick.gridmenu';\nimport 'slickgrid/controls/slick.pager';\nimport 'slickgrid/plugins/slick.autotooltips';\nimport 'slickgrid/plugins/slick.cellexternalcopymanager';\nimport 'slickgrid/plugins/slick.cellrangedecorator';\nimport 'slickgrid/plugins/slick.cellrangeselector';\nimport 'slickgrid/plugins/slick.cellselectionmodel';\nimport 'slickgrid/plugins/slick.checkboxselectcolumn';\nimport 'slickgrid/plugins/slick.headerbuttons';\nimport 'slickgrid/plugins/slick.headermenu';\nimport 'slickgrid/plugins/slick.rowmovemanager';\nimport 'slickgrid/plugins/slick.rowselectionmodel';\nimport { AfterViewInit, Component, EventEmitter, Inject, Injectable, Input, Output, OnDestroy, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { castToPromise } from './../services/utilities';\nimport { GlobalGridOptions } from './../global-grid-options';\nimport { BackendServiceOption, Column, GridOption, GridStateChange, GridStateType, Pagination } from './../models/index';\nimport { ControlAndPluginService } from './../services/controlAndPlugin.service';\nimport { ExportService } from './../services/export.service';\nimport { FilterService } from './../services/filter.service';\nimport { GraphqlService } from './../services/graphql.service';\nimport { GridEventService } from './../services/gridEvent.service';\nimport { GridExtraService } from './../services/gridExtra.service';\nimport { GridStateService } from './../services/gridState.service';\nimport { GroupingAndColspanService } from './../services/groupingAndColspan.service';\nimport { ResizerService } from './../services/resizer.service';\nimport { SharedService } from '../services/shared.service';\nimport { SortService } from './../services/sort.service';\nimport { Subscription } from 'rxjs/Subscription';\n\n// using external non-typed js libraries\ndeclare var Slick: any;\ndeclare var $: any;\n\nconst eventPrefix = 'sg';\n\n@Injectable()\n@Component({\n selector: 'angular-slickgrid',\n template: `
\n
\n
\n\n \n \n
\n`\n})\nexport class AngularSlickgridComponent implements AfterViewInit, OnDestroy, OnInit {\n private _dataset: any[];\n private _columnDefinitions: Column[];\n private _dataView: any;\n private _eventHandler: any = new Slick.EventHandler();\n private _translateSubscriber: Subscription;\n private _gridStateSubscriber: Subscription;\n grid: any;\n gridPaginationOptions: GridOption;\n gridHeightString: string;\n gridWidthString: string;\n groupingDefinition: any = {};\n groupItemMetadataProvider: any;\n showPagination = false;\n isGridInitialized = false;\n\n @Output() onDataviewCreated = new EventEmitter();\n @Output() onGridCreated = new EventEmitter();\n @Output() onGridInitialized = new EventEmitter();\n @Output() onBeforeGridCreate = new EventEmitter();\n @Output() onBeforeGridDestroy = new EventEmitter();\n @Output() onAfterGridDestroyed = new EventEmitter();\n @Output() onGridStateServiceChanged = new EventEmitter();\n @Input() gridId: string;\n @Input() gridOptions: GridOption;\n @Input() gridHeight = 100;\n @Input() gridWidth = 600;\n\n @Input()\n set columnDefinitions(columnDefinitions: Column[]) {\n this._columnDefinitions = columnDefinitions;\n if (this.isGridInitialized) {\n this.updateColumnDefinitionsList(columnDefinitions);\n }\n }\n get columnDefinitions(): Column[] {\n return this._columnDefinitions;\n }\n @Input()\n set dataset(dataset: any[]) {\n this._dataset = dataset;\n this.refreshGridData(dataset);\n }\n get dataset(): any[] {\n return this._dataView.getItems();\n }\n\n constructor(\n private controlAndPluginService: ControlAndPluginService,\n private exportService: ExportService,\n private filterService: FilterService,\n private gridExtraService: GridExtraService,\n private gridEventService: GridEventService,\n private gridStateService: GridStateService,\n private groupingAndColspanService: GroupingAndColspanService,\n private resizer: ResizerService,\n private sharedService: SharedService,\n private sortService: SortService,\n private translate: TranslateService,\n @Inject('config') private forRootConfig: GridOption\n ) {}\n\n ngOnInit(): void {\n this.onBeforeGridCreate.emit(true);\n if (!this.gridOptions.enableAutoResize && !this.gridOptions.autoResize) {\n this.gridHeightString = `${this.gridHeight}px`;\n this.gridWidthString = `${this.gridWidth}px`;\n }\n }\n\n ngOnDestroy(): void {\n this.onBeforeGridDestroy.emit(this.grid);\n this.destroy();\n this.onAfterGridDestroyed.emit(true);\n }\n\n destroy() {\n this._dataView = [];\n this.gridOptions = {};\n this._eventHandler.unsubscribeAll();\n this.controlAndPluginService.dispose();\n this.filterService.dispose();\n this.gridEventService.dispose();\n this.gridStateService.dispose();\n this.groupingAndColspanService.dispose();\n this.resizer.dispose();\n this.sortService.dispose();\n this.grid.destroy();\n if (this._translateSubscriber) {\n this._translateSubscriber.unsubscribe();\n }\n if (this._gridStateSubscriber) {\n this._gridStateSubscriber.unsubscribe();\n }\n }\n\n ngAfterViewInit() {\n this.initialization();\n this.isGridInitialized = true;\n }\n\n initialization() {\n // make sure the dataset is initialized (if not it will throw an error that it cannot getLength of null)\n this._dataset = this._dataset || [];\n this.gridOptions = this.mergeGridOptions(this.gridOptions);\n this.createBackendApiInternalPostProcessCallback(this.gridOptions);\n\n if (this.gridOptions.enableGrouping) {\n this.groupItemMetadataProvider = new Slick.Data.GroupItemMetadataProvider();\n this.sharedService.groupItemMetadataProvider = this.groupItemMetadataProvider;\n this._dataView = new Slick.Data.DataView({\n groupItemMetadataProvider: this.groupItemMetadataProvider,\n inlineFilters: true\n });\n } else {\n this._dataView = new Slick.Data.DataView();\n }\n\n this.controlAndPluginService.createPluginBeforeGridCreation(this._columnDefinitions, this.gridOptions);\n this.grid = new Slick.Grid(`#${this.gridId}`, this._dataView, this._columnDefinitions, this.gridOptions);\n\n // pass all necessary options to the shared service\n this.sharedService.init(this.grid, this._dataView, this.gridOptions, this._columnDefinitions);\n\n this.controlAndPluginService.attachDifferentControlOrPlugins();\n this.attachDifferentHooks(this.grid, this.gridOptions, this._dataView);\n\n // emit the Grid & DataView object to make them available in parent component\n this.onGridCreated.emit(this.grid);\n this.onDataviewCreated.emit(this._dataView);\n\n this.grid.init();\n this._dataView.beginUpdate();\n this._dataView.setItems(this._dataset, this.gridOptions.datasetIdPropertyName);\n this._dataView.endUpdate();\n\n // attach resize ONLY after the dataView is ready\n this.attachResizeHook(this.grid, this.gridOptions);\n\n // attach grouping and header grouping colspan service\n if (this.gridOptions.createPreHeaderPanel) {\n this.groupingAndColspanService.init(this.grid, this._dataView);\n }\n\n // attach grid extra service\n this.gridExtraService.init(this.grid, this._columnDefinitions, this.gridOptions, this._dataView);\n\n // when user enables translation, we need to translate Headers on first pass & subsequently in the attachDifferentHooks\n if (this.gridOptions.enableTranslate) {\n this.controlAndPluginService.translateHeaders();\n }\n\n // if Export is enabled, initialize the service with the necessary grid and other objects\n if (this.gridOptions.enableExport) {\n this.exportService.init(this.grid, this.gridOptions, this._dataView);\n }\n\n // once all hooks are in placed and the grid is initialized, we can emit an event\n this.onGridInitialized.emit(this.grid);\n\n // attach the Backend Service API callback functions only after the grid is initialized\n // because the preProcess() and onInit() might get triggered\n if (this.gridOptions && (this.gridOptions.backendServiceApi || this.gridOptions.onBackendEventApi)) {\n this.attachBackendCallbackFunctions(this.gridOptions);\n }\n\n this.gridStateService.init(this.grid, this.filterService, this.sortService);\n }\n\n /**\n * Define what our internal Post Process callback, it will execute internally after we get back result from the Process backend call\n * For now, this is GraphQL Service only feautre and it will basically refresh the Dataset & Pagination without having the user to create his own PostProcess every time\n */\n createBackendApiInternalPostProcessCallback(gridOptions: GridOption) {\n if (gridOptions && (gridOptions.backendServiceApi || gridOptions.onBackendEventApi)) {\n const backendApi = gridOptions.backendServiceApi || gridOptions.onBackendEventApi;\n\n // internalPostProcess only works with a GraphQL Service, so make sure it is that type\n if (backendApi && backendApi.service && backendApi.service instanceof GraphqlService) {\n backendApi.internalPostProcess = (processResult: any) => {\n const datasetName = (backendApi && backendApi.service && typeof backendApi.service.getDatasetName === 'function') ? backendApi.service.getDatasetName() : '';\n if (processResult && processResult.data && processResult.data[datasetName]) {\n this._dataset = processResult.data[datasetName].nodes;\n this.refreshGridData(this._dataset, processResult.data[datasetName].totalCount);\n } else {\n this._dataset = [];\n }\n };\n }\n }\n }\n\n attachDifferentHooks(grid: any, gridOptions: GridOption, dataView: any) {\n // on locale change, we have to manually translate the Headers, GridMenu\n this._translateSubscriber = this.translate.onLangChange.subscribe((event) => {\n if (gridOptions.enableTranslate) {\n this.controlAndPluginService.translateHeaders();\n this.controlAndPluginService.translateColumnPicker();\n this.controlAndPluginService.translateGridMenu();\n this.controlAndPluginService.translateHeaderMenu();\n }\n });\n\n // attach external sorting (backend) when available or default onSort (dataView)\n if (gridOptions.enableSorting) {\n (gridOptions.backendServiceApi || gridOptions.onBackendEventApi) ? this.sortService.attachBackendOnSort(grid, dataView) : this.sortService.attachLocalOnSort(grid, dataView);\n }\n\n // attach external filter (backend) when available or default onFilter (dataView)\n if (gridOptions.enableFiltering) {\n this.filterService.init(grid, gridOptions, this._columnDefinitions);\n\n // if user entered some \"presets\", we need to reflect them all in the DOM\n if (gridOptions.presets && gridOptions.presets.filters) {\n this.filterService.populateColumnFilterSearchTerms(gridOptions, this._columnDefinitions);\n }\n (gridOptions.backendServiceApi || gridOptions.onBackendEventApi) ? this.filterService.attachBackendOnFilter(grid, gridOptions) : this.filterService.attachLocalOnFilter(grid, gridOptions, this._dataView);\n }\n\n // if user set an onInit Backend, we'll run it right away (and if so, we also need to run preProcess, internalPostProcess & postProcess)\n if (gridOptions.backendServiceApi || gridOptions.onBackendEventApi) {\n const backendApi = gridOptions.backendServiceApi || gridOptions.onBackendEventApi;\n if (gridOptions.onBackendEventApi) {\n console.warn(`\"onBackendEventApi\" has been DEPRECATED, please consider using \"backendServiceApi\" in the short term since \"onBackendEventApi\" will be removed in future versions. You can take look at the Angular-Slickgrid Wikis for OData/GraphQL Services implementation`);\n }\n\n if (backendApi && backendApi.service && backendApi.service.init) {\n backendApi.service.init(backendApi.options, gridOptions.pagination, this.grid);\n }\n }\n\n // expose GridState Service changes event through dispatch\n this._gridStateSubscriber = this.gridStateService.onGridStateChanged.subscribe((gridStateChange: GridStateChange) => {\n this.onGridStateServiceChanged.emit(gridStateChange);\n });\n\n\n // on cell click, mainly used with the columnDef.action callback\n this.gridEventService.attachOnCellChange(grid, this.gridOptions, dataView);\n this.gridEventService.attachOnClick(grid, this.gridOptions, dataView);\n\n this._eventHandler.subscribe(dataView.onRowCountChanged, (e: any, args: any) => {\n grid.updateRowCount();\n grid.render();\n });\n this._eventHandler.subscribe(dataView.onRowsChanged, (e: any, args: any) => {\n grid.invalidateRows(args.rows);\n grid.render();\n });\n\n // does the user have a colspan callback?\n if (gridOptions.colspanCallback) {\n this._dataView.getItemMetadata = (rowNumber: number) => {\n const item = this._dataView.getItem(rowNumber);\n return gridOptions.colspanCallback(item);\n };\n }\n }\n\n attachBackendCallbackFunctions(gridOptions: GridOption) {\n const backendApi = gridOptions.backendServiceApi || gridOptions.onBackendEventApi;\n const serviceOptions: BackendServiceOption = (backendApi && backendApi.service && backendApi.service.options) ? backendApi.service.options : {};\n const isExecuteCommandOnInit = (!serviceOptions) ? false : ((serviceOptions && serviceOptions.hasOwnProperty('executeProcessCommandOnInit')) ? serviceOptions['executeProcessCommandOnInit'] : true);\n\n // update backend filters (if need be) before the query runs\n if (backendApi) {\n const backendService = backendApi.service;\n if (gridOptions && gridOptions.presets) {\n if (backendService && backendService.updateFilters && gridOptions.presets.filters) {\n backendService.updateFilters(gridOptions.presets.filters, true);\n }\n if (backendService && backendService.updateSorters && gridOptions.presets.sorters) {\n backendService.updateSorters(undefined, gridOptions.presets.sorters);\n }\n if (backendService && backendService.updatePagination && gridOptions.presets.pagination) {\n backendService.updatePagination(gridOptions.presets.pagination.pageNumber, gridOptions.presets.pagination.pageSize);\n }\n } else {\n const columnFilters = this.filterService.getColumnFilters();\n if (columnFilters && backendService && backendService.updateFilters) {\n backendService.updateFilters(columnFilters, false);\n }\n }\n }\n\n if (backendApi && backendApi.service && (backendApi.onInit || isExecuteCommandOnInit)) {\n const query = (typeof backendApi.service.buildQuery === 'function') ? backendApi.service.buildQuery() : '';\n const observableOrPromise = (isExecuteCommandOnInit) ? backendApi.process(query) : backendApi.onInit(query);\n\n // wrap this inside a setTimeout to avoid timing issue since the gridOptions needs to be ready before running this onInit\n setTimeout(async () => {\n if (backendApi.preProcess) {\n backendApi.preProcess();\n }\n\n // the process could be an Observable (like HttpClient) or a Promise\n // in any case, we need to have a Promise so that we can await on it (if an Observable, convert it to Promise)\n const processResult = await castToPromise(observableOrPromise);\n\n // define what our internal Post Process callback, only available for GraphQL Service for now\n // it will basically refresh the Dataset & Pagination without having the user to create his own PostProcess every time\n if (processResult && backendApi && backendApi.service instanceof GraphqlService && backendApi.internalPostProcess) {\n backendApi.internalPostProcess(processResult);\n }\n\n // send the response process to the postProcess callback\n if (backendApi.postProcess) {\n backendApi.postProcess(processResult);\n }\n });\n }\n }\n\n attachResizeHook(grid: any, options: GridOption) {\n // expand/autofit columns on first page load\n if (grid && options.autoFitColumnsOnFirstLoad) {\n grid.autosizeColumns();\n }\n\n // auto-resize grid on browser resize\n this.resizer.init(grid);\n if (options.enableAutoResize) {\n this.resizer.attachAutoResizeDataGrid();\n if (grid && options.autoFitColumnsOnFirstLoad) {\n grid.autosizeColumns();\n }\n }\n }\n\n mergeGridOptions(gridOptions): GridOption {\n gridOptions.gridId = this.gridId;\n gridOptions.gridContainerId = `slickGridContainer-${this.gridId}`;\n if (gridOptions.enableFiltering || this.forRootConfig.enableFiltering) {\n gridOptions.showHeaderRow = true;\n }\n // use jquery extend to deep merge and avoid immutable properties changed in GlobalGridOptions after route change\n return $.extend(true, {}, GlobalGridOptions, this.forRootConfig, gridOptions);\n }\n\n paginationChanged(pagination: Pagination) {\n this.gridStateService.onGridStateChanged.next({\n change: { newValues: pagination, type: GridStateType.pagination },\n gridState: this.gridStateService.getCurrentGridState()\n });\n }\n\n /**\n * When dataset changes, we need to refresh the entire grid UI & possibly resize it as well\n * @param dataset\n */\n refreshGridData(dataset: any[], totalCount?: number) {\n if (dataset && this.grid && this._dataView && typeof this._dataView.setItems === 'function') {\n this._dataView.setItems(dataset, this.gridOptions.datasetIdPropertyName);\n\n // this.grid.setData(dataset);\n this.grid.invalidate();\n this.grid.render();\n\n if (this.gridOptions.enablePagination || this.gridOptions.backendServiceApi) {\n // do we want to show pagination?\n // if we have a backendServiceApi and the enablePagination is undefined, we'll assume that we do want to see it, else get that defined value\n this.showPagination = ((this.gridOptions.backendServiceApi && this.gridOptions.enablePagination === undefined) ? true : this.gridOptions.enablePagination) || false;\n\n // before merging the grid options, make sure that it has the totalItems count\n // once we have that, we can merge and pass all these options to the pagination component\n if (!this.gridOptions.pagination) {\n this.gridOptions.pagination = (this.gridOptions.pagination) ? this.gridOptions.pagination : undefined;\n }\n if (this.gridOptions.pagination && totalCount) {\n this.gridOptions.pagination.totalItems = totalCount;\n }\n if (this.gridOptions.presets && this.gridOptions.presets.pagination && this.gridOptions.pagination) {\n this.gridOptions.pagination.pageSize = this.gridOptions.presets.pagination.pageSize;\n this.gridOptions.pagination.pageNumber = this.gridOptions.presets.pagination.pageNumber;\n }\n this.gridPaginationOptions = this.mergeGridOptions(this.gridOptions);\n }\n if (this.grid && this.gridOptions.enableAutoResize) {\n // resize the grid inside a slight timeout, in case other DOM element changed prior to the resize (like a filter/pagination changed)\n this.resizer.resizeGrid(10);\n // this.grid.autosizeColumns();\n }\n }\n }\n\n updateColumnDefinitionsList(dynamicColumns) {\n this.grid.setColumns(dynamicColumns);\n if (this.gridOptions.enableTranslate) {\n this.controlAndPluginService.translateHeaders();\n }\n }\n\n /** Toggle the filter row displayed on first row\n * @param isShowing\n */\n showHeaderRow(isShowing: boolean) {\n this.grid.setHeaderRowVisibility(isShowing);\n return isShowing;\n }\n\n /** Toggle the filter row displayed on first row */\n toggleHeaderRow() {\n const isShowing = !this.grid.getOptions().showHeaderRow;\n this.grid.setHeaderRowVisibility(isShowing);\n return isShowing;\n }\n}\n", - "import { DelimiterType, FileType, FilterType, GridOption } from './models/index';\n\n/**\n * Options that can be passed to the Bootstrap-Datetimepicker directly\n */\nexport const GlobalGridOptions: GridOption = {\n autoEdit: false,\n asyncEditorLoading: false,\n autoFitColumnsOnFirstLoad: true,\n autoResize: {\n bottomPadding: 20,\n minHeight: 180,\n minWidth: 300,\n sidePadding: 0\n },\n cellHighlightCssClass: 'slick-cell-modified',\n checkboxSelector: {\n cssClass: 'slick-cell-checkboxsel'\n },\n columnPicker: {\n hideForceFitButton: false,\n hideSyncResizeButton: true\n },\n datasetIdPropertyName: 'id',\n defaultFilterPlaceholder: '🔍',\n defaultFilterType: FilterType.input,\n editable: false,\n enableAutoResize: true,\n enableCellNavigation: false,\n enableColumnPicker: true,\n enableColumnReorder: true,\n enableExport: true,\n enableGridMenu: true,\n enableHeaderMenu: true,\n enableMouseHoverHighlightRow: true,\n enableSorting: true,\n enableTextSelectionOnCells: true,\n explicitInitialization: true,\n exportOptions: {\n delimiter: DelimiterType.comma,\n exportWithFormatter: false,\n filename: 'export',\n format: FileType.csv,\n groupingAggregatorRowText: '',\n sanitizeDataExport: false,\n useUtf8WithBom: true\n },\n exportWithFormatter: false,\n forceFitColumns: false,\n gridMenu: {\n hideForceFitButton: false,\n hideSyncResizeButton: true,\n iconCssClass: 'fa fa-bars',\n iconClearAllFiltersCommand: 'fa fa-filter text-danger',\n iconClearAllSortingCommand: 'fa fa-unsorted text-danger',\n iconExportCsvCommand: 'fa fa-download',\n iconExportTextDelimitedCommand: 'fa fa-download',\n iconRefreshDatasetCommand: 'fa fa-refresh',\n iconToggleFilterCommand: 'fa fa-random',\n menuWidth: 16,\n resizeOnShowHeaderRow: false,\n showClearAllFiltersCommand: true,\n showClearAllSortingCommand: true,\n showExportCsvCommand: true,\n showRefreshDatasetCommand: true,\n showToggleFilterCommand: true\n },\n headerMenu: {\n autoAlign: true,\n autoAlignOffset: 12,\n minWidth: 140,\n iconSortAscCommand: 'fa fa-sort-asc',\n iconSortDescCommand: 'fa fa-sort-desc',\n iconColumnHideCommand: 'fa fa-times',\n showColumnHideCommand: true,\n showSortCommands: true\n },\n headerRowHeight: 35,\n multiColumnSort: true,\n numberedMultiColumnSort: true,\n tristateMultiColumnSort: false,\n sortColNumberInSeparateSpan: true,\n pagination: {\n pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100],\n pageSize: 25,\n totalItems: 0\n },\n rowHeight: 35,\n showHeaderRow: false,\n topPanelHeight: 35\n};\n", + "import { DelimiterType, FileType, FilterType, GridOption } from './models/index';\n\n/**\n * Options that can be passed to the Bootstrap-Datetimepicker directly\n */\nexport const GlobalGridOptions: GridOption = {\n alwaysShowVerticalScroll: true,\n autoEdit: false,\n asyncEditorLoading: false,\n autoFitColumnsOnFirstLoad: true,\n autoResize: {\n bottomPadding: 20,\n minHeight: 180,\n minWidth: 300,\n sidePadding: 0\n },\n cellHighlightCssClass: 'slick-cell-modified',\n checkboxSelector: {\n cssClass: 'slick-cell-checkboxsel'\n },\n columnPicker: {\n hideForceFitButton: false,\n hideSyncResizeButton: true\n },\n datasetIdPropertyName: 'id',\n defaultFilterPlaceholder: '🔍',\n defaultFilterType: FilterType.input,\n editable: false,\n enableAutoResize: true,\n enableCellNavigation: false,\n enableColumnPicker: true,\n enableColumnReorder: true,\n enableExport: true,\n enableGridMenu: true,\n enableHeaderMenu: true,\n enableMouseHoverHighlightRow: true,\n enableSorting: true,\n enableTextSelectionOnCells: true,\n explicitInitialization: true,\n exportOptions: {\n delimiter: DelimiterType.comma,\n exportWithFormatter: false,\n filename: 'export',\n format: FileType.csv,\n groupingAggregatorRowText: '',\n sanitizeDataExport: false,\n useUtf8WithBom: true\n },\n exportWithFormatter: false,\n forceFitColumns: false,\n gridMenu: {\n hideForceFitButton: false,\n hideSyncResizeButton: true,\n iconCssClass: 'fa fa-bars',\n iconClearAllFiltersCommand: 'fa fa-filter text-danger',\n iconClearAllSortingCommand: 'fa fa-unsorted text-danger',\n iconExportCsvCommand: 'fa fa-download',\n iconExportTextDelimitedCommand: 'fa fa-download',\n iconRefreshDatasetCommand: 'fa fa-refresh',\n iconToggleFilterCommand: 'fa fa-random',\n menuWidth: 16,\n resizeOnShowHeaderRow: true,\n showClearAllFiltersCommand: true,\n showClearAllSortingCommand: true,\n showExportCsvCommand: true,\n showRefreshDatasetCommand: true,\n showToggleFilterCommand: true\n },\n headerMenu: {\n autoAlign: true,\n autoAlignOffset: 12,\n minWidth: 140,\n iconSortAscCommand: 'fa fa-sort-asc',\n iconSortDescCommand: 'fa fa-sort-desc',\n iconColumnHideCommand: 'fa fa-times',\n showColumnHideCommand: true,\n showSortCommands: true\n },\n headerRowHeight: 35,\n multiColumnSort: true,\n numberedMultiColumnSort: true,\n tristateMultiColumnSort: false,\n sortColNumberInSeparateSpan: true,\n pagination: {\n pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100],\n pageSize: 25,\n totalItems: 0\n },\n rowHeight: 35,\n showHeaderRow: false,\n topPanelHeight: 35\n};\n", "import { Pagination } from './../models/pagination.interface';\r\nimport { AfterViewInit, Component, EventEmitter, Injectable, Input, OnDestroy, Output } from '@angular/core';\r\nimport { castToPromise } from './../services/utilities';\r\nimport { GridOption } from './../models/index';\r\nimport { FilterService, SortService } from './../services/index';\r\nimport { Subscription } from 'rxjs/Subscription';\r\n\r\n@Component({\r\n selector: 'slick-pagination',\r\n template: `
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n {{pageCount}}\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n ,\r\n \r\n \r\n \r\n \r\n
\r\n`\r\n})\r\n@Injectable()\r\nexport class SlickPaginationComponent implements AfterViewInit, OnDestroy {\r\n private _filterSubcription: Subscription;\r\n private _gridPaginationOptions: GridOption;\r\n private _isFirstRender = true;\r\n @Output() onPaginationChanged = new EventEmitter();\r\n\r\n @Input()\r\n set gridPaginationOptions(gridPaginationOptions: GridOption) {\r\n this._gridPaginationOptions = gridPaginationOptions;\r\n if (this._isFirstRender || !gridPaginationOptions || !gridPaginationOptions.pagination || (gridPaginationOptions.pagination.totalItems !== this.totalItems)) {\r\n this.refreshPagination();\r\n this._isFirstRender = false;\r\n }\r\n }\r\n get gridPaginationOptions(): GridOption {\r\n return this._gridPaginationOptions;\r\n }\r\n @Input() grid: any;\r\n dataFrom = 1;\r\n dataTo = 1;\r\n itemsPerPage: number;\r\n pageCount = 0;\r\n pageNumber = 1;\r\n totalItems = 0;\r\n paginationCallback: Function;\r\n paginationPageSizes = [25, 75, 100];\r\n fromToParams: any = { from: this.dataFrom, to: this.dataTo, totalItems: this.totalItems };\r\n\r\n /** Constructor */\r\n constructor(private filterService: FilterService, private sortService: SortService) { }\r\n\r\n ngOnDestroy() {\r\n this.dispose();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._gridPaginationOptions = this._gridPaginationOptions;\r\n if (!this._gridPaginationOptions || !this._gridPaginationOptions.pagination || (this._gridPaginationOptions.pagination.totalItems !== this.totalItems)) {\r\n this.refreshPagination();\r\n }\r\n\r\n // Subscribe to Event Emitter of Filter & Sort changed, go back to page 1 when that happen\r\n this._filterSubcription = this.filterService.onFilterChanged.subscribe((data) => {\r\n this.refreshPagination(true);\r\n });\r\n }\r\n\r\n ceil(number: number) {\r\n return Math.ceil(number);\r\n }\r\n\r\n changeToFirstPage(event: any) {\r\n this.pageNumber = 1;\r\n this.onPageChanged(event, this.pageNumber);\r\n }\r\n\r\n changeToLastPage(event: any) {\r\n this.pageNumber = this.pageCount;\r\n this.onPageChanged(event, this.pageNumber);\r\n }\r\n\r\n changeToNextPage(event: any) {\r\n if (this.pageNumber < this.pageCount) {\r\n this.pageNumber++;\r\n this.onPageChanged(event, this.pageNumber);\r\n }\r\n }\r\n\r\n changeToPreviousPage(event: any) {\r\n if (this.pageNumber > 0) {\r\n this.pageNumber--;\r\n this.onPageChanged(event, this.pageNumber);\r\n }\r\n }\r\n\r\n changeToCurrentPage(event: any) {\r\n this.pageNumber = event.currentTarget.value;\r\n if (this.pageNumber < 1) {\r\n this.pageNumber = 1;\r\n } else if (this.pageNumber > this.pageCount) {\r\n this.pageNumber = this.pageCount;\r\n }\r\n\r\n this.onPageChanged(event, this.pageNumber);\r\n }\r\n\r\n dispose() {\r\n this.onPaginationChanged.unsubscribe();\r\n if (this._filterSubcription) {\r\n this._filterSubcription.unsubscribe();\r\n }\r\n }\r\n\r\n onChangeItemPerPage(event: any) {\r\n const itemsPerPage = +event.target.value;\r\n this.pageCount = Math.ceil(this.totalItems / itemsPerPage);\r\n this.pageNumber = 1;\r\n this.itemsPerPage = itemsPerPage;\r\n this.onPageChanged(event, this.pageNumber);\r\n }\r\n\r\n refreshPagination(isPageNumberReset: boolean = false) {\r\n const backendApi = this._gridPaginationOptions.backendServiceApi || this._gridPaginationOptions.onBackendEventApi;\r\n if (!backendApi || !backendApi.service || !backendApi.process) {\r\n throw new Error(`BackendServiceApi requires at least a \"process\" function and a \"service\" defined`);\r\n }\r\n\r\n if (this._gridPaginationOptions && this._gridPaginationOptions.pagination) {\r\n const pagination = this._gridPaginationOptions.pagination;\r\n // set the number of items per page if not already set\r\n if (!this.itemsPerPage) {\r\n this.itemsPerPage = +((backendApi && backendApi.options && backendApi.options.paginationOptions && backendApi.options.paginationOptions.first) ? backendApi.options.paginationOptions.first : this._gridPaginationOptions.pagination.pageSize);\r\n }\r\n\r\n // if totalItems changed, we should always go back to the first page and recalculation the From-To indexes\r\n if (isPageNumberReset || this.totalItems !== pagination.totalItems) {\r\n if (this._isFirstRender && pagination.pageNumber && pagination.pageNumber > 1) {\r\n this.pageNumber = pagination.pageNumber || 1;\r\n } else {\r\n this.pageNumber = 1;\r\n }\r\n\r\n // when page number is set to 1 then also reset the \"offset\" of backend service\r\n if (this.pageNumber === 1) {\r\n backendApi.service.resetPaginationOptions();\r\n }\r\n }\r\n\r\n // calculate and refresh the multiple properties of the pagination UI\r\n this.paginationPageSizes = this._gridPaginationOptions.pagination.pageSizes;\r\n this.totalItems = this._gridPaginationOptions.pagination.totalItems;\r\n this.recalculateFromToIndexes();\r\n }\r\n this.pageCount = Math.ceil(this.totalItems / this.itemsPerPage);\r\n }\r\n\r\n async onPageChanged(event: Event | undefined, pageNumber: number) {\r\n this.recalculateFromToIndexes();\r\n\r\n const backendApi = this._gridPaginationOptions.backendServiceApi || this._gridPaginationOptions.onBackendEventApi;\r\n if (!backendApi || !backendApi.service || !backendApi.process) {\r\n throw new Error(`BackendServiceApi requires at least a \"process\" function and a \"service\" defined`);\r\n }\r\n\r\n if (this.dataTo > this.totalItems) {\r\n this.dataTo = this.totalItems;\r\n } else if (this.totalItems < this.itemsPerPage) {\r\n this.dataTo = this.totalItems;\r\n }\r\n if (backendApi) {\r\n const itemsPerPage = +this.itemsPerPage;\r\n\r\n if (backendApi.preProcess) {\r\n backendApi.preProcess();\r\n }\r\n\r\n const query = backendApi.service.onPaginationChanged(event, { newPage: pageNumber, pageSize: itemsPerPage });\r\n\r\n // the process could be an Observable (like HttpClient) or a Promise\r\n // in any case, we need to have a Promise so that we can await on it (if an Observable, convert it to Promise)\r\n const observableOrPromise = backendApi.process(query);\r\n const processResult = await castToPromise(observableOrPromise);\r\n\r\n // from the result, call our internal post process to update the Dataset and Pagination info\r\n if (processResult && backendApi.internalPostProcess) {\r\n backendApi.internalPostProcess(processResult);\r\n }\r\n\r\n // send the response process to the postProcess callback\r\n if (backendApi.postProcess) {\r\n backendApi.postProcess(processResult);\r\n }\r\n } else {\r\n throw new Error('Pagination with a backend service requires \"BackendServiceApi\" to be defined in your grid options');\r\n }\r\n\r\n // emit the changes to the parent component\r\n this.onPaginationChanged.emit({\r\n pageNumber: this.pageNumber,\r\n pageSizes: this.paginationPageSizes,\r\n pageSize: this.itemsPerPage,\r\n totalItems: this.totalItems\r\n });\r\n }\r\n\r\n recalculateFromToIndexes() {\r\n this.dataFrom = (this.pageNumber * this.itemsPerPage) - this.itemsPerPage + 1;\r\n this.dataTo = (this.totalItems < this.itemsPerPage) ? this.totalItems : (this.pageNumber * this.itemsPerPage);\r\n }\r\n}\r\n", "import { Column } from './../models/index';\nimport { avgTotalsPercentageFormatter } from './avgTotalsPercentageFormatter';\nimport { avgTotalsDollarFormatter } from './avgTotalsDollarFormatter';\nimport { avgTotalsFormatter } from './avgTotalsFormatter';\nimport { minTotalsFormatter } from './minTotalsFormatter';\nimport { maxTotalsFormatter } from './maxTotalsFormatter';\nimport { sumTotalsColoredFormatter } from './sumTotalsColoredFormatter';\nimport { sumTotalsDollarColoredBoldFormatter } from './sumTotalsDollarColoredBoldFormatter';\nimport { sumTotalsDollarColoredFormatter } from './sumTotalsDollarColoredFormatter';\nimport { sumTotalsDollarBoldFormatter } from './sumTotalsDollarBoldFormatter';\nimport { sumTotalsDollarFormatter } from './sumTotalsDollarFormatter';\nimport { sumTotalsFormatter } from './sumTotalsFormatter';\nimport { sumTotalsBoldFormatter } from './sumTotalsBoldFormatter';\n\n/** Provides a list of different Formatters that will change the cell value displayed in the UI */\nexport const GroupTotalFormatters = {\n /**\n * Average all the column totals\n * Extra options available in \"params\":: \"groupFormatterPrefix\" and \"groupFormatterSuffix\", e.g.: params: { groupFormatterPrefix: 'Total: ', groupFormatterSuffix: '$' }\n */\n avgTotals: avgTotalsFormatter,\n\n /**\n * Average all the column totals and display '$' at the end of the value\n * Extra options available in \"params\":: \"groupFormatterPrefix\" and \"groupFormatterSuffix\", e.g.: params: { groupFormatterPrefix: 'Total: ', groupFormatterSuffix: '$' }\n */\n avgTotalsDollar: avgTotalsDollarFormatter,\n\n /**\n * Average all the column totals and display '%' at the end of the value\n * Extra options available in \"params\":: \"groupFormatterPrefix\" and \"groupFormatterSuffix\", e.g.: params: { groupFormatterPrefix: 'Total: ', groupFormatterSuffix: '$' }\n */\n avgTotalsPercentage: avgTotalsPercentageFormatter,\n\n /**\n * Show max value of all the column totals\n * Extra options available in \"params\":: \"groupFormatterPrefix\" and \"groupFormatterSuffix\", e.g.: params: { groupFormatterPrefix: 'Total: ', groupFormatterSuffix: '$' }\n */\n maxTotals: maxTotalsFormatter,\n\n /**\n * Show min value of all the column totals\n * Extra options available in \"params\":: \"groupFormatterPrefix\" and \"groupFormatterSuffix\", e.g.: params: { groupFormatterPrefix: 'Total: ', groupFormatterSuffix: '$' }\n */\n minTotals: minTotalsFormatter,\n\n /**\n * Sums up all the column totals\n * Extra options available in \"params\":: \"groupFormatterPrefix\" and \"groupFormatterSuffix\", e.g.: params: { groupFormatterPrefix: 'Total: ', groupFormatterSuffix: '$' }\n */\n sumTotals: sumTotalsFormatter,\n\n /**\n * Sums up all the column totals and display it in bold font weight\n * Extra options available in \"params\":: \"groupFormatterPrefix\" and \"groupFormatterSuffix\", e.g: params: { groupFormatterPrefix: 'Total: ', groupFormatterSuffix: '$' }\n */\n sumTotalsBold: sumTotalsBoldFormatter,\n\n /**\n * Sums up all the column totals, change color of text to red/green on negative/positive value\n * Extra options available in \"params\":: \"groupFormatterPrefix\" and \"groupFormatterSuffix\", e.g: params: { groupFormatterPrefix: 'Total: ', groupFormatterSuffix: '$' }\n */\n sumTotalsColored: sumTotalsColoredFormatter,\n\n /**\n * Sums up all the column totals and display dollar sign\n * Extra options available in \"params\":: \"groupFormatterPrefix\" and \"groupFormatterSuffix\", e.g: params: { groupFormatterPrefix: 'Total: ', groupFormatterSuffix: '$' }\n */\n sumTotalsDollar: sumTotalsDollarFormatter,\n\n /**\n * Sums up all the column totals and display dollar sign and show it in bold font weight\n * Extra options available in \"params\":: \"groupFormatterPrefix\" and \"groupFormatterSuffix\", e.g: params: { groupFormatterPrefix: 'Total: ', groupFormatterSuffix: '$' }\n */\n sumTotalsDollarBold: sumTotalsDollarBoldFormatter,\n\n /**\n * Sums up all the column totals, change color of text to red/green on negative/positive value\n * Extra options available in \"params\":: \"groupFormatterPrefix\" and \"groupFormatterSuffix\", e.g: params: { groupFormatterPrefix: 'Total: ', groupFormatterSuffix: '$' }\n */\n sumTotalsDollarColored: sumTotalsDollarColoredFormatter,\n\n /**\n * Sums up all the column totals, change color of text to red/green on negative/positive value, show it in bold font weight as well\n * Extra options available in \"params\":: \"groupFormatterPrefix\" and \"groupFormatterSuffix\", e.g: params: { groupFormatterPrefix: 'Total: ', groupFormatterSuffix: '$' }\n */\n sumTotalsDollarColoredBold: sumTotalsDollarColoredBoldFormatter,\n};\n", "import { Column, GroupTotalsFormatter } from './../models/index';\n\nexport const sumTotalsBoldFormatter: GroupTotalsFormatter = (totals: any, columnDef: Column, grid?: any) => {\n const field = columnDef.field || '';\n const val = totals.sum && totals.sum[field];\n const prefix = (columnDef.params && columnDef.params.groupFormatterPrefix) ? columnDef.params.groupFormatterPrefix : '';\n const suffix = (columnDef.params && columnDef.params.groupFormatterSuffix) ? columnDef.params.groupFormatterSuffix : '';\n\n if (val != null) {\n return `${prefix + ((Math.round(parseFloat(val) * 1000000) / 1000000)) + suffix}`;\n }\n return '';\n};\n", @@ -188,7 +188,7 @@ "declare interface StringConstructor {\r\n allTitleCase(inputStr: string): string;\r\n format(inputStr: string, args: any): string;\r\n padZero(length: number): string;\r\n trim(inputStr: string): string;\r\n titleCase(inputStr: string): string;\r\n}\r\n\r\n\r\nString.format = function(format: string, args): string {\r\n // const args = (Array.isArray(arguments[1])) ? arguments[1] : Array.prototype.slice.call(arguments, 1);\r\n\r\n return format.replace(/{(\\d+)}/g, function (match, number) {\r\n return (typeof args[number] !== 'undefined') ? args[number] : match;\r\n });\r\n};\r\n\r\nString.padZero = function (this: string, length: number) {\r\n let s = this;\r\n while (s.length < length) {\r\n s = '0' + s;\r\n }\r\n return s;\r\n};\r\n\r\n/**\r\n * Trim any extra white space from the string\r\n * @param string inputStr\r\n * @returns string outputStr\r\n */\r\nString.trim = function(inputStr: string): string {\r\n return inputStr ? inputStr.replace(/\\s+/g, ' ') : inputStr;\r\n};\r\n\r\n/**\r\n * Title case the complete sentence (upper case first char of each word while changing everything else to lower case)\r\n * @param string inputStr\r\n * @returns string outputStr\r\n */\r\nString.allTitleCase = function(inputStr: string): string {\r\n return inputStr.replace(/\\w\\S*/g, function(outputStr) {\r\n return outputStr.charAt(0).toUpperCase() + outputStr.substr(1).toLowerCase();\r\n });\r\n};\r\n\r\n/**\r\n * Title case the complete sentence (upper case first char of each word while changing everything else to lower case)\r\n * @param string inputStr\r\n * @returns string outputStr\r\n*/\r\nString.titleCase = function(inputStr: string): string {\r\n return inputStr.charAt(0).toUpperCase() + inputStr.slice(1);\r\n};\r\n", "import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { mapOperatorType, mapOperatorByFilterType, mapOperatorByFieldType } from './utilities';\nimport {\n BackendService,\n Column,\n ColumnFilter,\n ColumnFilters,\n ColumnSort,\n CurrentFilter,\n CurrentPagination,\n CurrentSorter,\n FieldType,\n FilterChangedArgs,\n GraphqlCursorPaginationOption,\n GraphqlDatasetFilter,\n GraphqlFilteringOption,\n GraphqlPaginationOption,\n GraphqlServiceOption,\n GraphqlSortingOption,\n GridOption,\n Pagination,\n PaginationChangedArgs,\n SortChangedArgs,\n SortDirection,\n SortDirectionString\n} from './../models/index';\nimport QueryBuilder from './graphqlQueryBuilder';\n\n// timer for keeping track of user typing waits\nlet timer: any;\nconst DEFAULT_FILTER_TYPING_DEBOUNCE = 750;\nconst DEFAULT_ITEMS_PER_PAGE = 25;\nconst DEFAULT_PAGE_SIZE = 20;\n\n@Injectable()\nexport class GraphqlService implements BackendService {\n private _currentFilters: ColumnFilters | CurrentFilter[];\n private _currentPagination: CurrentPagination;\n private _currentSorters: CurrentSorter[];\n private _columnDefinitions: Column[];\n private _gridOptions: GridOption;\n private _grid: any;\n options: GraphqlServiceOption;\n pagination: Pagination | undefined;\n defaultOrderBy: GraphqlSortingOption = { field: 'id', direction: SortDirection.ASC };\n defaultPaginationOptions: GraphqlPaginationOption | GraphqlCursorPaginationOption = {\n first: DEFAULT_ITEMS_PER_PAGE,\n offset: 0\n };\n\n constructor(private translate: TranslateService) {}\n\n /**\n * Build the GraphQL query, since the service include/exclude cursor, the output query will be different.\n * @param serviceOptions GraphqlServiceOption\n */\n buildQuery() {\n if (!this.options || !this.options.datasetName || (!this._columnDefinitions && !this.options.columnDefinitions)) {\n throw new Error('GraphQL Service requires \"datasetName\" & \"columnDefinitions\" properties for it to work');\n }\n\n // get the column definitions and exclude some if they were tagged as excluded\n let columnDefinitions = this._columnDefinitions || this.options.columnDefinitions;\n columnDefinitions = columnDefinitions.filter((column: Column) => !column.excludeFromQuery);\n\n const queryQb = new QueryBuilder('query');\n const datasetQb = new QueryBuilder(this.options.datasetName);\n const dataQb = (this.options.isWithCursor) ? new QueryBuilder('edges') : new QueryBuilder('nodes');\n\n // get all the columnds Ids for the filters to work\n let columnIds: string[] = [];\n if (columnDefinitions && Array.isArray(columnDefinitions)) {\n for (const column of columnDefinitions) {\n columnIds.push(column.field);\n\n // if extra \"fields\" are passed, also push them to columnIds\n if (column.fields) {\n columnIds.push(...column.fields);\n }\n }\n // columnIds = columnDefinitions.map((column) => column.field);\n } else {\n columnIds = this.options.columnIds || [];\n }\n\n // Slickgrid also requires the \"id\" field to be part of DataView\n // add it to the GraphQL query if it wasn't already part of the list\n if (columnIds.indexOf('id') === -1) {\n columnIds.unshift('id');\n }\n\n const filters = this.buildFilterQuery(columnIds);\n\n if (this.options.isWithCursor) {\n // ...pageInfo { hasNextPage, endCursor }, edges { cursor, node { _filters_ } }\n const pageInfoQb = new QueryBuilder('pageInfo');\n pageInfoQb.find('hasNextPage', 'endCursor');\n dataQb.find(['cursor', { node: filters }]);\n datasetQb.find(['totalCount', pageInfoQb, dataQb]);\n } else {\n // ...nodes { _filters_ }\n dataQb.find(filters);\n datasetQb.find(['totalCount', dataQb]);\n }\n\n // add dataset filters, could be Pagination and SortingFilters and/or FieldFilters\n const datasetFilters: GraphqlDatasetFilter = {\n ...this.options.paginationOptions,\n first: ((this.options.paginationOptions && this.options.paginationOptions.first) ? this.options.paginationOptions.first : ((this.pagination && this.pagination.pageSize) ? this.pagination.pageSize : null)) || this.defaultPaginationOptions.first\n };\n\n if (!this.options.isWithCursor) {\n datasetFilters.offset = ((this.options.paginationOptions && this.options.paginationOptions.hasOwnProperty('offset')) ? +this.options.paginationOptions['offset'] : 0);\n }\n\n if (this.options.sortingOptions && Array.isArray(this.options.sortingOptions) && this.options.sortingOptions.length > 0) {\n // orderBy: [{ field:x, direction: 'ASC' }]\n datasetFilters.orderBy = this.options.sortingOptions;\n }\n if (this.options.filteringOptions && Array.isArray(this.options.filteringOptions) && this.options.filteringOptions.length > 0) {\n // filterBy: [{ field: date, operator: '>', value: '2000-10-10' }]\n datasetFilters.filterBy = this.options.filteringOptions;\n }\n if (this.options.addLocaleIntoQuery) {\n // first: 20, ... locale: \"en-CA\"\n datasetFilters.locale = this.translate.currentLang || 'en';\n }\n if (this.options.extraQueryArguments) {\n // first: 20, ... userId: 123\n for (const queryArgument of this.options.extraQueryArguments) {\n datasetFilters[queryArgument.field] = queryArgument.value;\n }\n }\n\n // query { users(first: 20, orderBy: [], filterBy: [])}\n datasetQb.filter(datasetFilters);\n queryQb.find(datasetQb);\n\n const enumSearchProperties = ['direction:', 'field:', 'operator:'];\n return this.trimDoubleQuotesOnEnumField(queryQb.toString(), enumSearchProperties, this.options.keepArgumentFieldDoubleQuotes || false);\n }\n\n /**\n * From an input array of strings, we want to build a GraphQL query string.\n * The process has to take the dot notation and parse it into a valid GraphQL query\n * Following this SO answer https://stackoverflow.com/a/47705476/1212166\n *\n * INPUT\n * ['firstName', 'lastName', 'billing.address.street', 'billing.address.zip']\n * OUTPUT\n * firstName, lastName, billing{address{street, zip}}\n * @param inputArray\n */\n buildFilterQuery(inputArray: string[]) {\n\n const set = (o: any = {}, a: any) => {\n const k = a.shift();\n o[k] = a.length ? set(o[k], a) : null;\n return o;\n };\n\n const output = inputArray.reduce((o: any, a: string) => set(o, a.split('.')), {});\n\n return JSON.stringify(output)\n .replace(/\\\"|\\:|null/g, '')\n .replace(/^\\{/, '')\n .replace(/\\}$/, '');\n }\n\n init(serviceOptions?: GraphqlServiceOption, pagination?: Pagination, grid?: any): void {\n this._grid = grid;\n this.options = serviceOptions || {};\n this.pagination = pagination;\n\n if (grid && grid.getColumns && grid.getOptions) {\n this._columnDefinitions = grid.getColumns();\n this._gridOptions = grid.getOptions();\n }\n }\n\n /**\n * Get an initialization of Pagination options\n * @return Pagination Options\n */\n getInitPaginationOptions(): GraphqlDatasetFilter {\n return (this.options.isWithCursor) ? { first: (this.pagination ? this.pagination.pageSize : DEFAULT_ITEMS_PER_PAGE) } : { first: (this.pagination ? this.pagination.pageSize : DEFAULT_ITEMS_PER_PAGE), offset: 0 };\n }\n\n /** Get the GraphQL dataset name */\n getDatasetName(): string {\n return this.options.datasetName || '';\n }\n\n /** Get the Filters that are currently used by the grid */\n getCurrentFilters(): ColumnFilters | CurrentFilter[] {\n return this._currentFilters;\n }\n\n /** Get the Pagination that is currently used by the grid */\n getCurrentPagination(): CurrentPagination {\n return this._currentPagination;\n }\n\n /** Get the Sorters that are currently used by the grid */\n getCurrentSorters(): CurrentSorter[] {\n return this._currentSorters;\n }\n\n /*\n * Reset the pagination options\n */\n resetPaginationOptions() {\n let paginationOptions;\n if (this.options.isWithCursor) {\n // first, last, after, before\n paginationOptions = {\n after: '',\n before: undefined,\n last: undefined\n } as GraphqlCursorPaginationOption;\n } else {\n // first, last, offset\n paginationOptions = (this.options.paginationOptions || this.getInitPaginationOptions()) as GraphqlPaginationOption;\n paginationOptions.offset = 0;\n }\n\n // save current pagination as Page 1 and page size as \"first\" set size\n this._currentPagination = {\n pageNumber: 1,\n pageSize: paginationOptions.first\n };\n\n this.updateOptions({ paginationOptions });\n }\n\n updateOptions(serviceOptions?: GraphqlServiceOption) {\n this.options = { ...this.options, ...serviceOptions };\n }\n\n /*\n * FILTERING\n */\n onFilterChanged(event: Event, args: FilterChangedArgs): Promise {\n const gridOptions: GridOption = this._gridOptions || args.grid.getOptions();\n const backendApi = gridOptions.backendServiceApi || gridOptions.onBackendEventApi;\n\n if (backendApi === undefined) {\n throw new Error('Something went wrong in the GraphqlService, \"backendServiceApi\" is not initialized');\n }\n\n // only add a delay when user is typing, on select dropdown filter it will execute right away\n let debounceTypingDelay = 0;\n if (event && (event.type === 'keyup' || event.type === 'keydown')) {\n debounceTypingDelay = backendApi.filterTypingDebounce || DEFAULT_FILTER_TYPING_DEBOUNCE;\n }\n\n const promise = new Promise((resolve, reject) => {\n if (!args || !args.grid) {\n throw new Error('Something went wrong when trying create the GraphQL Backend Service, it seems that \"args\" is not populated correctly');\n }\n\n // reset Pagination, then build the GraphQL query which we will use in the WebAPI callback\n // wait a minimum user typing inactivity before processing any query\n clearTimeout(timer);\n timer = setTimeout(() => {\n // loop through all columns to inspect filters & set the query\n this.updateFilters(args.columnFilters, false);\n\n this.resetPaginationOptions();\n resolve(this.buildQuery());\n }, debounceTypingDelay);\n });\n\n return promise;\n }\n\n /*\n * PAGINATION\n * With cursor, the query can have 4 arguments (first, after, last, before), for example:\n * users (first:20, after:\"YXJyYXljb25uZWN0aW9uOjM=\") {\n * totalCount\n * pageInfo {\n * hasNextPage\n * endCursor\n * }\n * edges {\n * cursor\n * node {\n * name\n * gender\n * }\n * }\n * }\n * Without cursor, the query can have 3 arguments (first, last, offset), for example:\n * users (first:20, offset: 10) {\n * totalCount\n * nodes {\n * name\n * gender\n * }\n * }\n */\n onPaginationChanged(event: Event, args: PaginationChangedArgs) {\n const pageSize = +(args.pageSize || ((this.pagination) ? this.pagination.pageSize : DEFAULT_PAGE_SIZE));\n this.updatePagination(args.newPage, pageSize);\n\n // build the GraphQL query which we will use in the WebAPI callback\n return this.buildQuery();\n }\n\n /*\n * SORTING\n * we will use sorting as per a Facebook suggestion on a Github issue (with some small changes)\n * https://github.com/graphql/graphql-relay-js/issues/20#issuecomment-220494222\n */\n onSortChanged(event: Event, args: SortChangedArgs) {\n const sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({ sortCol: args.sortCol, sortAsc: args.sortAsc });\n\n // loop through all columns to inspect sorters & set the query\n this.updateSorters(sortColumns);\n\n // build the GraphQL query which we will use in the WebAPI callback\n return this.buildQuery();\n }\n\n /**\n * loop through all columns to inspect filters & update backend service filteringOptions\n * @param columnFilters\n */\n updateFilters(columnFilters: ColumnFilters | CurrentFilter[], isUpdatedByPreset: boolean) {\n // keep current filters & always save it as an array (columnFilters can be an object when it is dealt by SlickGrid Filter)\n this._currentFilters = this.castFilterToColumnFilter(columnFilters);\n\n const searchByArray: GraphqlFilteringOption[] = [];\n let searchValue: string | string[];\n\n for (const columnId in columnFilters) {\n if (columnFilters.hasOwnProperty(columnId)) {\n const columnFilter = columnFilters[columnId];\n\n // if user defined some \"presets\", then we need to find the filters from the column definitions instead\n let columnDef: Column | undefined;\n if (isUpdatedByPreset && Array.isArray(this._columnDefinitions)) {\n columnDef = this._columnDefinitions.find((column: Column) => column.id === columnFilter.columnId);\n } else {\n columnDef = columnFilter.columnDef;\n }\n if (!columnDef) {\n throw new Error('[Backend Service API]: Something went wrong in trying to get the column definition of the specified filter (or preset filters). Did you make a typo on the filter columnId?');\n }\n\n const fieldName = columnDef.queryField || columnDef.queryFieldFilter || columnDef.field || columnDef.name || '';\n const searchTerms = (columnFilter ? columnFilter.searchTerms : null) || [];\n let fieldSearchValue = columnFilter.searchTerm;\n if (typeof fieldSearchValue === 'undefined') {\n fieldSearchValue = '';\n }\n\n if (typeof fieldSearchValue !== 'string' && !searchTerms) {\n throw new Error(`GraphQL filter searchTerm property must be provided as type \"string\", if you use filter with options then make sure your IDs are also string. For example: filter: {type: FilterType.select, collection: [{ id: \"0\", value: \"0\" }, { id: \"1\", value: \"1\" }]`);\n }\n\n fieldSearchValue = '' + fieldSearchValue; // make sure it's a string\n const matches = fieldSearchValue.match(/^([<>!=\\*]{0,2})(.*[^<>!=\\*])([\\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*)\n let operator = columnFilter.operator || ((matches) ? matches[1] : '');\n searchValue = (!!matches) ? matches[2] : '';\n const lastValueChar = (!!matches) ? matches[3] : (operator === '*z' ? '*' : '');\n\n // no need to query if search value is empty\n if (fieldName && searchValue === '' && searchTerms.length === 0) {\n continue;\n }\n\n // when having more than 1 search term (we need to create a CSV string for GraphQL \"IN\" or \"NOT IN\" filter search)\n if (searchTerms && searchTerms.length > 0) {\n searchValue = searchTerms.join(',');\n } else if (typeof searchValue === 'string') {\n // escaping the search value\n searchValue = searchValue.replace(`'`, `''`); // escape single quotes by doubling them\n if (operator === '*' || operator === 'a*' || operator === '*z' || lastValueChar === '*') {\n operator = (operator === '*' || operator === '*z') ? 'endsWith' : 'startsWith';\n }\n }\n\n // if we didn't find an Operator but we have a Filter Type, we should use default Operator\n // multipleSelect is \"IN\", while singleSelect is \"EQ\", else don't map any operator\n if (!operator && columnDef.filter) {\n operator = mapOperatorByFilterType(columnDef.filter.type || '');\n }\n\n // if we still don't have an operator find the proper Operator to use by it's field type\n if (!operator) {\n operator = mapOperatorByFieldType(columnDef.type || FieldType.string);\n }\n\n searchByArray.push({\n field: fieldName,\n operator: mapOperatorType(operator),\n value: searchValue\n });\n }\n }\n\n // update the service options with filters for the buildQuery() to work later\n this.updateOptions({ filteringOptions: searchByArray });\n }\n\n /**\n * Update the pagination component with it's new page number and size\n * @param newPage\n * @param pageSize\n */\n updatePagination(newPage: number, pageSize: number) {\n this._currentPagination = {\n pageNumber: newPage,\n pageSize\n };\n\n let paginationOptions;\n if (this.options.isWithCursor) {\n paginationOptions = {\n first: pageSize\n };\n } else {\n paginationOptions = {\n first: pageSize,\n offset: (newPage - 1) * pageSize\n };\n }\n\n this.updateOptions({ paginationOptions });\n }\n\n /**\n * loop through all columns to inspect sorters & update backend service sortingOptions\n * @param columnFilters\n */\n updateSorters(sortColumns?: ColumnSort[], presetSorters?: CurrentSorter[]) {\n let currentSorters: CurrentSorter[] = [];\n let graphqlSorters: GraphqlSortingOption[] = [];\n\n if (!sortColumns && presetSorters) {\n // make the presets the current sorters, also make sure that all direction are in uppercase for GraphQL\n currentSorters = presetSorters;\n currentSorters.forEach((sorter) => sorter.direction = sorter.direction.toUpperCase() as SortDirectionString);\n\n // display the correct sorting icons on the UI, for that it requires (columnId, sortAsc) properties\n const tmpSorterArray = currentSorters.map((sorter) => {\n const columnDef = this._columnDefinitions.find((column: Column) => column.id === sorter.columnId);\n if (columnDef) {\n graphqlSorters.push({\n field: (columnDef.queryField || columnDef.queryFieldSorter || columnDef.field || columnDef.id) + '',\n direction: sorter.direction\n });\n }\n return {\n columnId: sorter.columnId,\n sortAsc: sorter.direction.toUpperCase() === SortDirection.ASC\n };\n });\n this._grid.setSortColumns(tmpSorterArray);\n } else if (sortColumns && !presetSorters) {\n // build the orderBy array, it could be multisort, example\n // orderBy:[{field: lastName, direction: ASC}, {field: firstName, direction: DESC}]\n if (sortColumns && sortColumns.length === 0) {\n graphqlSorters = new Array(this.defaultOrderBy); // when empty, use the default sort\n currentSorters = new Array({ columnId: this.defaultOrderBy.field, direction: this.defaultOrderBy.direction });\n } else {\n if (sortColumns) {\n for (const column of sortColumns) {\n if (column && column.sortCol) {\n currentSorters.push({\n columnId: column.sortCol.id + '',\n direction: column.sortAsc ? SortDirection.ASC : SortDirection.DESC\n });\n\n graphqlSorters.push({\n field: (column.sortCol.queryField || column.sortCol.queryFieldSorter || column.sortCol.field || column.sortCol.id) + '',\n direction: column.sortAsc ? SortDirection.ASC : SortDirection.DESC\n });\n }\n }\n }\n }\n }\n\n // keep current Sorters and update the service options with the new sorting\n this._currentSorters = currentSorters;\n this.updateOptions({ sortingOptions: graphqlSorters });\n }\n\n /**\n * A function which takes an input string and removes double quotes only\n * on certain fields are identified as GraphQL enums (except fields with dot notation)\n * For example let say we identified (\"direction:\", \"sort\") as word which are GraphQL enum fields\n * then the result will be:\n * FROM\n * query { users (orderBy:[{field:\"firstName\", direction:\"ASC\"} }]) }\n * TO\n * query { users (orderBy:[{field: firstName, direction: ASC}})}\n *\n * EXCEPTIONS (fields with dot notation \".\" which are inside a \"field:\")\n * these fields will keep double quotes while everything else will be stripped of double quotes\n * query { users (orderBy:[{field:\"billing.street.name\", direction: \"ASC\"} }\n * TO\n * query { users (orderBy:[{field:\"billing.street.name\", direction: ASC}}\n * @param inputStr input string\n * @param enumSearchWords array of enum words to filter\n * @returns outputStr output string\n */\n trimDoubleQuotesOnEnumField(inputStr: string, enumSearchWords: string[], keepArgumentFieldDoubleQuotes: boolean) {\n const patternWordInQuotes = `\\s?((field:\\s*)?\".*?\")`;\n let patternRegex = enumSearchWords.join(patternWordInQuotes + '|');\n patternRegex += patternWordInQuotes; // the last one should also have the pattern but without the pipe \"|\"\n // example with (field: & direction:): /field:s?(\".*?\")|direction:s?(\".*?\")/\n const reg = new RegExp(patternRegex, 'g');\n\n return inputStr.replace(reg, (group1, group2, group3) => {\n // remove double quotes except when the string starts with a \"field:\"\n let removeDoubleQuotes = true;\n if (group1.startsWith('field:') && keepArgumentFieldDoubleQuotes) {\n removeDoubleQuotes = false;\n }\n const rep = removeDoubleQuotes ? group1.replace(/\"/g, '') : group1;\n return rep;\n });\n }\n\n //\n // private functions\n // -------------------\n /**\n * Cast provided filters (could be in multiple format) into an array of ColumnFilter\n * @param columnFilters\n */\n private castFilterToColumnFilter(columnFilters: ColumnFilters | CurrentFilter[]): CurrentFilter[] {\n // keep current filters & always save it as an array (columnFilters can be an object when it is dealt by SlickGrid Filter)\n const filtersArray: ColumnFilter[] = (typeof columnFilters === 'object') ? Object.keys(columnFilters).map(key => columnFilters[key]) : columnFilters;\n\n return filtersArray.map((filter) => {\n const columnDef = filter.columnDef;\n const header = (columnDef) ? (columnDef.headerKey || columnDef.name || '') : '';\n const tmpFilter: CurrentFilter = { columnId: filter.columnId || '' };\n if (filter.operator) {\n tmpFilter.operator = filter.operator;\n }\n if (Array.isArray(filter.searchTerms)) {\n tmpFilter.searchTerms = filter.searchTerms;\n } else {\n tmpFilter.searchTerm = filter.searchTerm;\n }\n return tmpFilter;\n });\n }\n}\n", "/**\r\n * This GraphqlQueryBuilder class is a lib that already exist\r\n * but was causing issues with TypeScript, RequireJS and other bundler/packagers\r\n * and so I rewrote it in pure TypeScript.\r\n *\r\n * The previous lib can be viewed here at this Github\r\n * https://github.com/codemeasandwich/graphql-query-builder\r\n */\r\nexport default class GraphqlQueryBuilder {\r\n alias: string;\r\n head: any[] = [];\r\n body: any;\r\n\r\n /* Constructor, query/mutator you wish to use, and an alias or filter arguments. */\r\n constructor(private queryFnName: string, aliasOrFilter?: string | object) {\r\n if (typeof aliasOrFilter === 'function') {\r\n this.alias = aliasOrFilter;\r\n } else if (typeof aliasOrFilter === 'object') {\r\n this.filter(aliasOrFilter);\r\n } else if (undefined === aliasOrFilter && 2 === arguments.length) {\r\n throw new TypeError(`You have passed undefined as Second argument to \"Query\"`);\r\n } else if (undefined !== aliasOrFilter) {\r\n throw new TypeError(`Second argument to \"Query\" should be an alias name(String) or filter arguments(Object). was passed ${aliasOrFilter}`);\r\n }\r\n }\r\n\r\n /**\r\n * The parameters to run the query against.\r\n * @param filters An object mapping attribute to values\r\n */\r\n filter(filters: any) {\r\n for (const prop of Object.keys(filters)) {\r\n if (typeof filters[prop] === 'function') {\r\n continue;\r\n }\r\n const val = this.getGraphQLValue(filters[prop]);\r\n if (val === '{}') {\r\n continue;\r\n }\r\n this.head.push(`${prop}:${val}`);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Outlines the properties you wish to be returned from the query.\r\n * @param properties representing each attribute you want Returned\r\n */\r\n find(...searches: any[]) { // THIS NEED TO BE A \"FUNCTION\" to scope 'arguments'\r\n if (!searches) {\r\n throw new TypeError(`find value can not be >>falsy<<`);\r\n }\r\n // if its a string.. it may have other values\r\n // else it sould be an Object or Array of maped values\r\n const searchKeys = (searches.length === 1 && Array.isArray(searches[0])) ? searches[0] : searches;\r\n this.body = this.parceFind(searchKeys);\r\n return this;\r\n }\r\n\r\n /**\r\n * set an alias for this result.\r\n * @param alias\r\n */\r\n setAlias(alias: string) {\r\n this.alias = alias;\r\n }\r\n\r\n /**\r\n * Return to the formatted query string\r\n * @return\r\n */\r\n toString() {\r\n if (this.body === undefined) {\r\n throw new ReferenceError(`return properties are not defined. use the 'find' function to defined them`);\r\n }\r\n\r\n return `${(this.alias) ? (this.alias + ':') : ''} ${this.queryFnName} ${(this.head.length > 0) ? '(' + this.head.join(',') + ')' : ''} { ${this.body} }`;\r\n }\r\n\r\n // --\r\n // PRIVATE FUNCTIONS\r\n // -----------------\r\n\r\n private parceFind(_levelA: any[]) {\r\n const propsA = _levelA.map((currentValue, index) => {\r\n const itemX = _levelA[index];\r\n\r\n if (itemX instanceof GraphqlQueryBuilder) {\r\n return itemX.toString();\r\n } else if (!Array.isArray(itemX) && typeof itemX === 'object') {\r\n const propsAA = Object.keys(itemX);\r\n if (1 !== propsAA.length) {\r\n throw new RangeError(`Alias objects should only have one value. was passed: ${JSON.stringify(itemX)}`);\r\n }\r\n const propS = propsAA[0];\r\n const item = itemX[propS];\r\n\r\n if (Array.isArray(item)) {\r\n return new GraphqlQueryBuilder(propS).find(item);\r\n }\r\n return `${propS} : ${item} `;\r\n } else if (typeof itemX === 'string') {\r\n return itemX;\r\n } else {\r\n throw new RangeError(`cannot handle Find value of ${itemX}`);\r\n }\r\n });\r\n\r\n return propsA.join(',');\r\n }\r\n\r\n private getGraphQLValue(value: any) {\r\n if (typeof value === 'string') {\r\n value = JSON.stringify(value);\r\n } else if (Array.isArray(value)) {\r\n value = value.map(item => {\r\n return this.getGraphQLValue(item);\r\n }).join();\r\n value = `[${value}]`;\r\n } else if (value instanceof Date) {\r\n value = JSON.stringify(value);\r\n } else if (value !== null && typeof value === 'object') {\r\n value = this.objectToString(value);\r\n }\r\n return value;\r\n }\r\n\r\n private objectToString(obj: any) {\r\n const sourceA = [];\r\n\r\n for (const prop of Object.keys(obj)) {\r\n if (typeof obj[prop] === 'function') {\r\n continue;\r\n }\r\n sourceA.push(`${prop}:${this.getGraphQLValue(obj[prop])}`);\r\n }\r\n return `{${sourceA.join()}}`;\r\n }\r\n}\r\n", - "import { Injectable } from '@angular/core';\nimport {\n CellArgs,\n ColumnSort,\n CustomGridMenu,\n Column,\n DelimiterType,\n FileType,\n GraphqlResult,\n GridMenu,\n GridOption,\n HeaderButtonOnCommandArgs,\n HeaderMenu,\n HeaderMenuItem,\n HeaderMenuOnCommandArgs,\n HeaderMenuOnBeforeMenuShowArgs,\n} from './../models/index';\nimport { TranslateService } from '@ngx-translate/core';\nimport { castToPromise, sanitizeHtmlToText } from './../services/utilities';\nimport { FilterService } from './filter.service';\nimport { ExportService } from './export.service';\nimport { SharedService } from './shared.service';\nimport { SortService } from './sort.service';\n\n// using external non-typed js libraries\ndeclare var Slick: any;\ndeclare var $: any;\n\n@Injectable()\nexport class ControlAndPluginService {\n private _dataView: any;\n private _grid: any;\n private _gridOptions: GridOption;\n private _columnDefinitions: Column[];\n visibleColumns: Column[];\n areVisibleColumnDifferent = false;\n\n // controls & plugins\n autoTooltipPlugin: any;\n checkboxSelectorPlugin: any;\n columnPickerControl: any;\n headerButtonsPlugin: any;\n headerMenuPlugin: any;\n gridMenuControl: any;\n rowSelectionPlugin: any;\n undoRedoBuffer: any;\n\n constructor(\n private exportService: ExportService,\n private filterService: FilterService,\n private sharedService: SharedService,\n private sortService: SortService,\n private translate: TranslateService\n ) {}\n\n /** Auto-resize all the column in the grid to fit the grid width */\n autoResizeColumns() {\n this._grid.autosizeColumns();\n }\n\n /**\n * Attach/Create different Controls or Plugins after the Grid is created\n * @param grid\n * @param columnDefinitions\n * @param options\n * @param dataView\n */\n attachDifferentControlOrPlugins() {\n this._grid = this.sharedService.grid;\n this._gridOptions = this.sharedService.gridOptions;\n this._dataView = this.sharedService.dataView;\n this._columnDefinitions = this.sharedService.columnDefinitions;\n this.visibleColumns = this.sharedService.columnDefinitions;\n\n // Column Picker Plugin\n if (this._gridOptions.enableColumnPicker) {\n this.columnPickerControl = this.createColumnPicker(this._grid, this._columnDefinitions, this._gridOptions);\n }\n\n // Grid Menu Plugin\n if (this._gridOptions.enableGridMenu) {\n this.gridMenuControl = this.createGridMenu(this._grid, this._columnDefinitions, this._gridOptions);\n }\n\n // Auto Tooltip Plugin\n if (this._gridOptions.enableAutoTooltip) {\n this.autoTooltipPlugin = new Slick.AutoTooltips(this._gridOptions.autoTooltipOptions || {});\n this._grid.registerPlugin(this.autoTooltipPlugin);\n }\n\n // Grouping Plugin\n // register the group item metadata provider to add expand/collapse group handlers\n if (this._gridOptions.enableGrouping) {\n const groupItemMetaProvider = this.sharedService.groupItemMetadataProvider || {};\n this._grid.registerPlugin(groupItemMetaProvider);\n }\n\n // Checkbox Selector Plugin\n if (this._gridOptions.enableCheckboxSelector) {\n // when enabling the Checkbox Selector Plugin, we need to also watch onClick events to perform certain actions\n // the selector column has to be create BEFORE the grid (else it behaves oddly), but we can only watch grid events AFTER the grid is created\n this._grid.registerPlugin(this.checkboxSelectorPlugin);\n\n // this also requires the Row Selection Model to be registered as well\n if (!this.rowSelectionPlugin) {\n this.rowSelectionPlugin = new Slick.RowSelectionModel(this._gridOptions.rowSelectionOptions || {});\n this._grid.setSelectionModel(this.rowSelectionPlugin);\n }\n }\n\n // Row Selection Plugin\n if (this._gridOptions.enableRowSelection) {\n this.rowSelectionPlugin = new Slick.RowSelectionModel(this._gridOptions.rowSelectionOptions || {});\n this._grid.setSelectionModel(this.rowSelectionPlugin);\n }\n\n // Header Button Plugin\n if (this._gridOptions.enableHeaderButton) {\n this.headerButtonsPlugin = new Slick.Plugins.HeaderButtons(this._gridOptions.headerButton || {});\n this._grid.registerPlugin(this.headerButtonsPlugin);\n this.headerButtonsPlugin.onCommand.subscribe((e: Event, args: HeaderButtonOnCommandArgs) => {\n if (this._gridOptions.headerButton && typeof this._gridOptions.headerButton.onCommand === 'function') {\n this._gridOptions.headerButton.onCommand(e, args);\n }\n });\n }\n\n // Header Menu Plugin\n if (this._gridOptions.enableHeaderMenu) {\n this.headerMenuPlugin = this.createHeaderMenu(this._grid, this._dataView, this._columnDefinitions, this._gridOptions);\n }\n\n // Cell External Copy Manager Plugin (Excel Like)\n if (this._gridOptions.enableExcelCopyBuffer) {\n this.createUndoRedoBuffer();\n this.hookUndoShortcutKey();\n this.createCellExternalCopyManagerPlugin(this._grid, this._gridOptions);\n }\n\n // manually register other plugins\n if (this._gridOptions.registerPlugins !== undefined) {\n if (Array.isArray(this._gridOptions.registerPlugins)) {\n this._gridOptions.registerPlugins.forEach((plugin) => {\n this._grid.registerPlugin(plugin);\n });\n } else {\n this._grid.registerPlugin(this._gridOptions.registerPlugins);\n }\n }\n }\n\n /**\n * Attach/Create different plugins before the Grid creation.\n * For example the multi-select have to be added to the column definition before the grid is created to work properly\n * @param columnDefinitions\n * @param options\n */\n createPluginBeforeGridCreation(columnDefinitions: Column[], options: GridOption) {\n if (options.enableCheckboxSelector) {\n this.checkboxSelectorPlugin = new Slick.CheckboxSelectColumn(options.checkboxSelector || {});\n const selectionColumn: Column = this.checkboxSelectorPlugin.getColumnDefinition();\n selectionColumn.excludeFromExport = true;\n selectionColumn.excludeFromQuery = true;\n columnDefinitions.unshift(selectionColumn);\n }\n }\n\n /** Create the Excel like copy manager */\n createCellExternalCopyManagerPlugin(grid: any, gridOptions: GridOption) {\n let newRowIds = 0;\n const pluginOptions = {\n clipboardCommandHandler: (editCommand) => {\n this.undoRedoBuffer.queueAndExecuteCommand.call(this.undoRedoBuffer, editCommand);\n },\n dataItemColumnValueExtractor: (item, columnDef) => {\n // when grid or cell is not editable, we will possibly evaluate the Formatter if it was passed\n // to decide if we evaluate the Formatter, we will use the same flag from Export which is \"exportWithFormatter\"\n if (!gridOptions.editable || !columnDef.editor) {\n const isEvaluatingFormatter = (columnDef.exportWithFormatter !== undefined) ? columnDef.exportWithFormatter : gridOptions.exportOptions.exportWithFormatter;\n if (columnDef.formatter && isEvaluatingFormatter) {\n const formattedOutput = columnDef.formatter(0, 0, item[columnDef.field], columnDef, item, this._grid);\n if (columnDef.sanitizeDataExport || (gridOptions.exportOptions && gridOptions.exportOptions.sanitizeDataExport)) {\n return sanitizeHtmlToText(formattedOutput);\n }\n return formattedOutput;\n }\n }\n\n // else use the default \"dataItemColumnValueExtractor\" from the plugin itself\n // we can do that by setting back the getter with null\n return null;\n },\n readOnlyMode: false,\n includeHeaderWhenCopying: false,\n newRowCreator: (count) => {\n for (let i = 0; i < count; i++) {\n const item = {\n id: 'newRow_' + newRowIds++\n };\n grid.getData().addItem(item);\n }\n }\n };\n\n grid.setSelectionModel(new Slick.CellSelectionModel());\n grid.registerPlugin(new Slick.CellExternalCopyManager(pluginOptions));\n }\n\n /**\n * Create the Column Picker and expose all the available hooks that user can subscribe (onColumnsChanged)\n * @param grid\n * @param columnDefinitions\n * @param options\n */\n createColumnPicker(grid: any, columnDefinitions: Column[], options: GridOption) {\n // localization support for the picker\n const forceFitTitle = options.enableTranslate ? this.translate.instant('FORCE_FIT_COLUMNS') : 'Force fit columns';\n const syncResizeTitle = options.enableTranslate ? this.translate.instant('SYNCHRONOUS_RESIZE') : 'Synchronous resize';\n\n options.columnPicker = options.columnPicker || {};\n options.columnPicker.forceFitTitle = options.columnPicker.forceFitTitle || forceFitTitle;\n options.columnPicker.syncResizeTitle = options.columnPicker.syncResizeTitle || syncResizeTitle;\n\n this.columnPickerControl = new Slick.Controls.ColumnPicker(columnDefinitions, grid, options);\n if (grid && options.enableColumnPicker) {\n this.columnPickerControl.onColumnsChanged.subscribe((e: Event, args: CellArgs) => {\n if (options.columnPicker && typeof options.columnPicker.onColumnsChanged === 'function') {\n options.columnPicker.onColumnsChanged(e, args);\n }\n });\n }\n }\n\n /**\n * Create (or re-create) Grid Menu and expose all the available hooks that user can subscribe (onCommand, onMenuClose, ...)\n * @param grid\n * @param columnDefinitions\n * @param options\n */\n createGridMenu(grid: any, columnDefinitions: Column[], options: GridOption) {\n options.gridMenu = { ...this.getDefaultGridMenuOptions(), ...options.gridMenu };\n this.addGridMenuCustomCommands(grid, options);\n\n const gridMenuControl = new Slick.Controls.GridMenu(columnDefinitions, grid, options);\n if (grid && options.gridMenu) {\n gridMenuControl.onBeforeMenuShow.subscribe((e: Event, args: CellArgs) => {\n if (options.gridMenu && typeof options.gridMenu.onBeforeMenuShow === 'function') {\n options.gridMenu.onBeforeMenuShow(e, args);\n }\n });\n gridMenuControl.onColumnsChanged.subscribe((e: Event, args: CellArgs) => {\n this.areVisibleColumnDifferent = true;\n if (options.gridMenu && typeof options.gridMenu.onColumnsChanged === 'function') {\n options.gridMenu.onColumnsChanged(e, args);\n }\n });\n gridMenuControl.onCommand.subscribe((e: Event, args: CellArgs) => {\n if (options.gridMenu && typeof options.gridMenu.onCommand === 'function') {\n options.gridMenu.onCommand(e, args);\n }\n });\n gridMenuControl.onMenuClose.subscribe((e: Event, args: CellArgs) => {\n if (options.gridMenu && typeof options.gridMenu.onMenuClose === 'function') {\n options.gridMenu.onMenuClose(e, args);\n }\n\n // we also want to resize the columns if the user decided to hide certain column(s)\n if (grid && typeof grid.autosizeColumns === 'function') {\n // make sure that the grid still exist (by looking if the Grid UID is found in the DOM tree)\n const gridUid = grid.getUID();\n if (this.areVisibleColumnDifferent && gridUid && $(`.${gridUid}`).length > 0) {\n grid.autosizeColumns();\n }\n }\n });\n }\n return gridMenuControl;\n }\n\n /**\n * Create the Header Menu and expose all the available hooks that user can subscribe (onCommand, onBeforeMenuShow, ...)\n * @param grid\n * @param columnDefinitions\n * @param options\n */\n createHeaderMenu(grid: any, dataView: any, columnDefinitions: Column[], options: GridOption) {\n options.headerMenu = { ...this.getDefaultHeaderMenuOptions(), ...options.headerMenu };\n if (options.enableHeaderMenu) {\n options.headerMenu = this.addHeaderMenuCustomCommands(grid, dataView, options, columnDefinitions);\n }\n\n const headerMenuPlugin = new Slick.Plugins.HeaderMenu(options.headerMenu);\n\n grid.registerPlugin(headerMenuPlugin);\n headerMenuPlugin.onCommand.subscribe((e: Event, args: HeaderMenuOnCommandArgs) => {\n if (options.headerMenu && typeof options.headerMenu.onCommand === 'function') {\n options.headerMenu.onCommand(e, args);\n }\n });\n headerMenuPlugin.onCommand.subscribe((e: Event, args: HeaderMenuOnBeforeMenuShowArgs) => {\n if (options.headerMenu && typeof options.headerMenu.onBeforeMenuShow === 'function') {\n options.headerMenu.onBeforeMenuShow(e, args);\n }\n });\n\n return headerMenuPlugin;\n }\n\n /** Create an undo redo buffer used by the Excel like copy */\n createUndoRedoBuffer() {\n const commandQueue = [];\n let commandCtr = 0;\n\n this.undoRedoBuffer = {\n queueAndExecuteCommand: (editCommand) => {\n commandQueue[commandCtr] = editCommand;\n commandCtr++;\n editCommand.execute();\n },\n undo: () => {\n if (commandCtr === 0) { return; }\n commandCtr--;\n const command = commandQueue[commandCtr];\n if (command && Slick.GlobalEditorLock.cancelCurrentEdit()) {\n command.undo();\n }\n },\n redo: () => {\n if (commandCtr >= commandQueue.length) { return; }\n const command = commandQueue[commandCtr];\n commandCtr++;\n if (command && Slick.GlobalEditorLock.cancelCurrentEdit()) {\n command.execute();\n }\n }\n };\n }\n\n /** Hide a column from the grid */\n hideColumn(column: Column) {\n if (this._grid && this.visibleColumns) {\n const columnIndex = this._grid.getColumnIndex(column.id);\n this.visibleColumns = this.removeColumnByIndex(this.visibleColumns, columnIndex);\n this._grid.setColumns(this.visibleColumns);\n }\n }\n\n /** Attach an undo shortcut key hook that will redo/undo the copy buffer */\n hookUndoShortcutKey() {\n // undo shortcut\n $(document).keydown((e) => {\n if (e.which === 90 && (e.ctrlKey || e.metaKey)) { // CTRL + (shift) + Z\n if (e.shiftKey) {\n this.undoRedoBuffer.redo();\n } else {\n this.undoRedoBuffer.undo();\n }\n }\n });\n }\n\n /** Dispose of all the controls & plugins */\n dispose() {\n this._grid = null;\n this._dataView = null;\n this.visibleColumns = [];\n\n if (this.columnPickerControl) {\n this.columnPickerControl.destroy();\n this.columnPickerControl = null;\n }\n if (this.gridMenuControl) {\n this.gridMenuControl.destroy();\n this.gridMenuControl = null;\n }\n if (this.rowSelectionPlugin) {\n this.rowSelectionPlugin.destroy();\n this.rowSelectionPlugin = null;\n }\n if (this.checkboxSelectorPlugin) {\n this.checkboxSelectorPlugin.destroy();\n this.checkboxSelectorPlugin = null;\n }\n if (this.autoTooltipPlugin) {\n this.autoTooltipPlugin.destroy();\n this.autoTooltipPlugin = null;\n }\n if (this.headerButtonsPlugin) {\n this.headerButtonsPlugin.destroy();\n this.headerButtonsPlugin = null;\n }\n if (this.headerMenuPlugin) {\n this.headerMenuPlugin.destroy();\n this.headerMenuPlugin = null;\n }\n }\n\n /**\n * Create Grid Menu with Custom Commands if user has enabled Filters and/or uses a Backend Service (OData, GraphQL)\n * @param grid\n * @param options\n * @return gridMenu\n */\n private addGridMenuCustomCommands(grid: any, options: GridOption) {\n const backendApi = options.backendServiceApi || options.onBackendEventApi || null;\n\n if (options.enableFiltering) {\n // show grid menu: clear all filters\n if (options && options.gridMenu && options.gridMenu.showClearAllFiltersCommand && options.gridMenu.customItems && options.gridMenu.customItems.filter((item: CustomGridMenu) => item.command === 'clear-filter').length === 0) {\n options.gridMenu.customItems.push(\n {\n iconCssClass: options.gridMenu.iconClearAllFiltersCommand || 'fa fa-filter text-danger',\n title: options.enableTranslate ? this.translate.instant('CLEAR_ALL_FILTERS') : 'Clear All Filters',\n disabled: false,\n command: 'clear-filter',\n positionOrder: 50\n }\n );\n }\n\n // show grid menu: toggle filter row\n if (options && options.gridMenu && options.gridMenu.showToggleFilterCommand && options.gridMenu.customItems && options.gridMenu.customItems.filter((item: CustomGridMenu) => item.command === 'toggle-filter').length === 0) {\n options.gridMenu.customItems.push(\n {\n iconCssClass: options.gridMenu.iconToggleFilterCommand || 'fa fa-random',\n title: options.enableTranslate ? this.translate.instant('TOGGLE_FILTER_ROW') : 'Toggle Filter Row',\n disabled: false,\n command: 'toggle-filter',\n positionOrder: 52\n }\n );\n }\n\n // show grid menu: refresh dataset\n if (options && options.gridMenu && options.gridMenu.showRefreshDatasetCommand && backendApi && options.gridMenu.customItems && options.gridMenu.customItems.filter((item: CustomGridMenu) => item.command === 'refresh-dataset').length === 0) {\n options.gridMenu.customItems.push(\n {\n iconCssClass: options.gridMenu.iconRefreshDatasetCommand || 'fa fa-refresh',\n title: options.enableTranslate ? this.translate.instant('REFRESH_DATASET') : 'Refresh Dataset',\n disabled: false,\n command: 'refresh-dataset',\n positionOrder: 54\n }\n );\n }\n }\n\n if (options.enableSorting) {\n // show grid menu: clear all sorting\n if (options && options.gridMenu && options.gridMenu.showClearAllSortingCommand && options.gridMenu.customItems && options.gridMenu.customItems.filter((item: CustomGridMenu) => item.command === 'clear-sorting').length === 0) {\n options.gridMenu.customItems.push(\n {\n iconCssClass: options.gridMenu.iconClearAllSortingCommand || 'fa fa-unsorted text-danger',\n title: options.enableTranslate ? this.translate.instant('CLEAR_ALL_SORTING') : 'Clear All Sorting',\n disabled: false,\n command: 'clear-sorting',\n positionOrder: 51\n }\n );\n }\n }\n\n // show grid menu: export to file\n if (options && options.enableExport && options.gridMenu && options.gridMenu.showExportCsvCommand && options.gridMenu.customItems && options.gridMenu.customItems.filter((item: CustomGridMenu) => item.command === 'export-csv').length === 0) {\n options.gridMenu.customItems.push(\n {\n iconCssClass: options.gridMenu.iconExportCsvCommand || 'fa fa-download',\n title: options.enableTranslate ? this.translate.instant('EXPORT_TO_CSV') : 'Export in CSV format',\n disabled: false,\n command: 'export-csv',\n positionOrder: 53\n }\n );\n }\n // show grid menu: export to text file as tab delimited\n if (options && options.enableExport && options.gridMenu && options.gridMenu.showExportTextDelimitedCommand && options.gridMenu.customItems && options.gridMenu.customItems.filter((item: CustomGridMenu) => item.command === 'export-text-delimited').length === 0) {\n options.gridMenu.customItems.push(\n {\n iconCssClass: options.gridMenu.iconExportTextDelimitedCommand || 'fa fa-download',\n title: options.enableTranslate ? this.translate.instant('EXPORT_TO_TAB_DELIMITED') : 'Export in Text format (Tab delimited)',\n disabled: false,\n command: 'export-text-delimited',\n positionOrder: 54\n }\n );\n }\n\n // Command callback, what will be executed after command is clicked\n if (options.gridMenu && options.gridMenu.customItems.length > 0) {\n options.gridMenu.onCommand = (e, args) => {\n if (args && args.command) {\n switch (args.command) {\n case 'clear-filter':\n this.filterService.clearFilters();\n this._dataView.refresh();\n break;\n case 'clear-sorting':\n this.sortService.clearSorting();\n this._dataView.refresh();\n break;\n case 'export-csv':\n this.exportService.exportToFile({\n delimiter: DelimiterType.comma,\n filename: 'export',\n format: FileType.csv,\n useUtf8WithBom: true\n });\n break;\n case 'export-text-delimited':\n this.exportService.exportToFile({\n delimiter: DelimiterType.tab,\n filename: 'export',\n format: FileType.txt,\n useUtf8WithBom: true\n });\n break;\n case 'toggle-filter':\n grid.setHeaderRowVisibility(!grid.getOptions().showHeaderRow);\n break;\n case 'toggle-toppanel':\n grid.setTopPanelVisibility(!grid.getOptions().showTopPanel);\n break;\n case 'refresh-dataset':\n this.refreshBackendDataset();\n break;\n default:\n alert('Command: ' + args.command);\n break;\n }\n }\n };\n }\n\n // add the custom \"Commands\" title if there are any commands\n if (options && options.gridMenu && options.gridMenu.customItems && options.gridMenu.customItems.length > 0) {\n const customTitle = options.enableTranslate ? this.translate.instant('COMMANDS') : 'Commands';\n options.gridMenu.customTitle = options.gridMenu.customTitle || customTitle;\n\n // sort the custom items by their position in the list\n options.gridMenu.customItems.sort((itemA, itemB) => {\n if (itemA && itemB && itemA.hasOwnProperty('positionOrder') && itemB.hasOwnProperty('positionOrder')) {\n return itemA.positionOrder - itemB.positionOrder;\n }\n return 0;\n });\n }\n }\n\n /**\n * Create Header Menu with Custom Commands if user has enabled Header Menu\n * @param grid\n * @param dataView\n * @param options\n * @param columnDefinitions\n * @return header menu\n */\n private addHeaderMenuCustomCommands(grid: any, dataView: any, options: GridOption, columnDefinitions: Column[]): HeaderMenu {\n const headerMenuOptions = options.headerMenu;\n\n if (columnDefinitions && Array.isArray(columnDefinitions) && options.enableHeaderMenu) {\n columnDefinitions.forEach((columnDef: Column) => {\n if (columnDef) {\n if (!columnDef.header || !columnDef.header.menu) {\n columnDef.header = {\n menu: {\n items: []\n }\n };\n }\n const columnHeaderMenuItems: HeaderMenuItem[] = columnDef.header.menu.items || [];\n\n // Sorting Commands\n if (options.enableSorting && columnDef.sortable && headerMenuOptions.showSortCommands) {\n if (columnHeaderMenuItems.filter((item: HeaderMenuItem) => item.command === 'sort-asc').length === 0) {\n columnHeaderMenuItems.push({\n iconCssClass: headerMenuOptions.iconSortAscCommand || 'fa fa-sort-asc',\n title: options.enableTranslate ? this.translate.instant('SORT_ASCENDING') : 'Sort Ascending',\n command: 'sort-asc'\n });\n }\n if (columnHeaderMenuItems.filter((item: HeaderMenuItem) => item.command === 'sort-desc').length === 0) {\n columnHeaderMenuItems.push({\n iconCssClass: headerMenuOptions.iconSortDescCommand || 'fa fa-sort-desc',\n title: options.enableTranslate ? this.translate.instant('SORT_DESCENDING') : 'Sort Descending',\n command: 'sort-desc'\n });\n }\n }\n\n // Hide Column Command\n if (headerMenuOptions.showColumnHideCommand && columnHeaderMenuItems.filter((item: HeaderMenuItem) => item.command === 'hide').length === 0) {\n columnHeaderMenuItems.push({\n iconCssClass: headerMenuOptions.iconColumnHideCommand || 'fa fa-times',\n title: options.enableTranslate ? this.translate.instant('HIDE_COLUMN') : 'Hide Column',\n command: 'hide'\n });\n }\n }\n });\n\n // Command callback, what will be executed after command is clicked\n if (headerMenuOptions) {\n headerMenuOptions.onCommand = (e, args) => {\n if (args && args.command) {\n switch (args.command) {\n case 'hide':\n this.hideColumn(args.column);\n this.autoResizeColumns();\n break;\n case 'sort-asc':\n case 'sort-desc':\n // get previously sorted columns\n const cols: ColumnSort[] = this.sortService.getPreviousColumnSorts(args.column.id + '');\n\n // add to the column array, the column sorted by the header menu\n cols.push({ sortCol: args.column, sortAsc: (args.command === 'sort-asc') });\n if (options.backendServiceApi) {\n this.sortService.onBackendSortChanged(e, { multiColumnSort: true, sortCols: cols, grid });\n } else {\n this.sortService.onLocalSortChanged(grid, options, dataView, cols);\n }\n\n // update the this.gridObj sortColumns array which will at the same add the visual sort icon(s) on the UI\n const newSortColumns: ColumnSort[] = cols.map((col) => {\n return { columnId: col.sortCol.id, sortAsc: col.sortAsc };\n });\n grid.setSortColumns(newSortColumns); // add sort icon in UI\n break;\n default:\n alert('Command: ' + args.command);\n break;\n }\n }\n };\n }\n }\n\n return headerMenuOptions;\n }\n\n /** Refresh the dataset through the Backend Service */\n refreshBackendDataset() {\n let query;\n const backendApi = this._gridOptions.backendServiceApi || this._gridOptions.onBackendEventApi;\n if (!backendApi || !backendApi.service || !backendApi.process) {\n throw new Error(`BackendServiceApi requires at least a \"process\" function and a \"service\" defined`);\n }\n\n if (backendApi.service) {\n query = backendApi.service.buildQuery();\n }\n\n if (query && query !== '') {\n if (backendApi.preProcess) {\n backendApi.preProcess();\n }\n\n // the process could be an Observable (like HttpClient) or a Promise\n // in any case, we need to have a Promise so that we can await on it (if an Observable, convert it to Promise)\n const observableOrPromise = backendApi.process(query);\n\n castToPromise(observableOrPromise).then((processResult: GraphqlResult | any) => {\n // from the result, call our internal post process to update the Dataset and Pagination info\n if (processResult && backendApi.internalPostProcess) {\n backendApi.internalPostProcess(processResult);\n }\n\n // send the response process to the postProcess callback\n if (backendApi.postProcess) {\n backendApi.postProcess(processResult);\n }\n });\n }\n }\n\n /** Remove a column from the grid by it's index in the grid */\n removeColumnByIndex(array: any[], index: number) {\n return array.filter((el: any, i: number) => {\n return index !== i;\n });\n }\n\n /**\n * Translate the Column Picker and it's last 2 checkboxes\n * Note that the only way that seems to work is to destroy and re-create the Column Picker\n * Changing only the columnPicker.columnTitle with i18n translate was not enough.\n */\n translateColumnPicker() {\n // destroy and re-create the Column Picker which seems to be the only way to translate properly\n if (this.columnPickerControl) {\n this.columnPickerControl.destroy();\n this.columnPickerControl = null;\n }\n\n this._gridOptions.columnPicker = undefined;\n this.createColumnPicker(this._grid, this.visibleColumns, this._gridOptions);\n }\n\n /**\n * Translate the Grid Menu ColumnTitle and CustomTitle.\n * Note that the only way that seems to work is to destroy and re-create the Grid Menu\n * Changing only the gridMenu.columnTitle with i18n translate was not enough.\n */\n translateGridMenu() {\n // destroy and re-create the Grid Menu which seems to be the only way to translate properly\n this.gridMenuControl.destroy();\n\n // reset all Grid Menu options that have translation text & then re-create the Grid Menu and also the custom items array\n if (this._gridOptions && this._gridOptions.gridMenu) {\n this._gridOptions.gridMenu = this.resetGridMenuTranslations(this._gridOptions.gridMenu);\n }\n this.createGridMenu(this._grid, this.visibleColumns, this._gridOptions);\n }\n\n /**\n * Translate the Header Menu titles, we need to loop through all column definition to re-translate them\n */\n translateHeaderMenu() {\n // reset all Grid Menu options that have translation text & then re-create the Grid Menu and also the custom items array\n if (this._gridOptions && this._gridOptions.headerMenu) {\n this.resetHeaderMenuTranslations(this.visibleColumns);\n }\n }\n\n /**\n * Translate manually the header titles.\n * We could optionally pass a locale (that will change currently loaded locale), else it will use current locale\n * @param locale locale to use\n */\n translateHeaders(locale?: string) {\n if (locale) {\n this.translate.use(locale);\n }\n\n for (const column of this._columnDefinitions) {\n if (column.headerKey) {\n column.name = this.translate.instant(column.headerKey);\n }\n }\n\n // calling setColumns() will trigger a grid re-render\n this._grid.setColumns(this._columnDefinitions);\n }\n\n /**\n * @return default Grid Menu options\n */\n private getDefaultGridMenuOptions(): GridMenu {\n return {\n columnTitle: this.translate.instant('COLUMNS') || 'Columns',\n forceFitTitle: this.translate.instant('FORCE_FIT_COLUMNS') || 'Force fit columns',\n syncResizeTitle: this.translate.instant('SYNCHRONOUS_RESIZE') || 'Synchronous resize',\n iconCssClass: 'fa fa-bars',\n menuWidth: 18,\n customTitle: undefined,\n customItems: [],\n showClearAllFiltersCommand: true,\n showRefreshDatasetCommand: true,\n showToggleFilterCommand: true\n };\n }\n\n /**\n * @return default Header Menu options\n */\n private getDefaultHeaderMenuOptions(): HeaderMenu {\n return {\n autoAlignOffset: 12,\n minWidth: 140,\n showColumnHideCommand: true,\n showSortCommands: true\n };\n }\n\n /**\n * Reset all the Grid Menu options which have text to translate\n * @param grid menu object\n */\n private resetGridMenuTranslations(gridMenu: GridMenu): GridMenu {\n // we will reset the custom items array since the commands title have to be translated too (no worries, we will re-create it later)\n gridMenu.customItems = [];\n delete gridMenu.customTitle;\n\n gridMenu.columnTitle = this.translate.instant('COLUMNS') || 'Columns';\n gridMenu.forceFitTitle = this.translate.instant('FORCE_FIT_COLUMNS') || 'Force fit columns';\n gridMenu.syncResizeTitle = this.translate.instant('SYNCHRONOUS_RESIZE') || 'Synchronous resize';\n\n return gridMenu;\n }\n\n /**\n * Reset all the Grid Menu options which have text to translate\n * @param grid menu object\n */\n private resetHeaderMenuTranslations(columnDefinitions: Column[]) {\n columnDefinitions.forEach((columnDef: Column) => {\n if (columnDef && columnDef.header && columnDef.header && columnDef.header.menu && columnDef.header.menu.items) {\n const columnHeaderMenuItems: HeaderMenuItem[] = columnDef.header.menu.items || [];\n\n columnHeaderMenuItems.forEach((item) => {\n switch (item.command) {\n case 'sort-asc':\n item.title = this.translate.instant('SORT_ASCENDING') || 'Sort Ascending';\n break;\n case 'sort-desc':\n item.title = this.translate.instant('SORT_DESCENDING') || 'Sort Ascending';\n break;\n case 'hide':\n item.title = this.translate.instant('HIDE_COLUMN') || 'Sort Ascending';\n break;\n }\n });\n }\n });\n }\n}\n", + "import { Injectable } from '@angular/core';\nimport {\n CellArgs,\n ColumnSort,\n CustomGridMenu,\n Column,\n DelimiterType,\n FileType,\n GraphqlResult,\n GridMenu,\n GridOption,\n HeaderButtonOnCommandArgs,\n HeaderMenu,\n HeaderMenuItem,\n HeaderMenuOnCommandArgs,\n HeaderMenuOnBeforeMenuShowArgs,\n} from './../models/index';\nimport { TranslateService } from '@ngx-translate/core';\nimport { castToPromise, sanitizeHtmlToText } from './../services/utilities';\nimport { FilterService } from './filter.service';\nimport { ExportService } from './export.service';\nimport { SharedService } from './shared.service';\nimport { SortService } from './sort.service';\n\n// using external non-typed js libraries\ndeclare var Slick: any;\ndeclare var $: any;\n\n@Injectable()\nexport class ControlAndPluginService {\n private _dataView: any;\n private _grid: any;\n private _gridOptions: GridOption;\n private _columnDefinitions: Column[];\n visibleColumns: Column[];\n areVisibleColumnDifferent = false;\n\n // controls & plugins\n autoTooltipPlugin: any;\n checkboxSelectorPlugin: any;\n columnPickerControl: any;\n headerButtonsPlugin: any;\n headerMenuPlugin: any;\n gridMenuControl: any;\n rowSelectionPlugin: any;\n undoRedoBuffer: any;\n\n constructor(\n private exportService: ExportService,\n private filterService: FilterService,\n private sharedService: SharedService,\n private sortService: SortService,\n private translate: TranslateService\n ) {}\n\n /** Auto-resize all the column in the grid to fit the grid width */\n autoResizeColumns() {\n this._grid.autosizeColumns();\n }\n\n /**\n * Attach/Create different Controls or Plugins after the Grid is created\n * @param grid\n * @param columnDefinitions\n * @param options\n * @param dataView\n */\n attachDifferentControlOrPlugins() {\n this._grid = this.sharedService.grid;\n this._gridOptions = this.sharedService.gridOptions;\n this._dataView = this.sharedService.dataView;\n this._columnDefinitions = this.sharedService.columnDefinitions;\n this.visibleColumns = this.sharedService.columnDefinitions;\n\n // Column Picker Plugin\n if (this._gridOptions.enableColumnPicker) {\n this.columnPickerControl = this.createColumnPicker(this._grid, this._columnDefinitions, this._gridOptions);\n }\n\n // Grid Menu Plugin\n if (this._gridOptions.enableGridMenu) {\n this.gridMenuControl = this.createGridMenu(this._grid, this._columnDefinitions, this._gridOptions);\n }\n\n // Auto Tooltip Plugin\n if (this._gridOptions.enableAutoTooltip) {\n this.autoTooltipPlugin = new Slick.AutoTooltips(this._gridOptions.autoTooltipOptions || {});\n this._grid.registerPlugin(this.autoTooltipPlugin);\n }\n\n // Grouping Plugin\n // register the group item metadata provider to add expand/collapse group handlers\n if (this._gridOptions.enableGrouping) {\n const groupItemMetaProvider = this.sharedService.groupItemMetadataProvider || {};\n this._grid.registerPlugin(groupItemMetaProvider);\n }\n\n // Checkbox Selector Plugin\n if (this._gridOptions.enableCheckboxSelector) {\n // when enabling the Checkbox Selector Plugin, we need to also watch onClick events to perform certain actions\n // the selector column has to be create BEFORE the grid (else it behaves oddly), but we can only watch grid events AFTER the grid is created\n this._grid.registerPlugin(this.checkboxSelectorPlugin);\n\n // this also requires the Row Selection Model to be registered as well\n if (!this.rowSelectionPlugin) {\n this.rowSelectionPlugin = new Slick.RowSelectionModel(this._gridOptions.rowSelectionOptions || {});\n this._grid.setSelectionModel(this.rowSelectionPlugin);\n }\n }\n\n // Row Selection Plugin\n if (!this._gridOptions.enableCheckboxSelector && this._gridOptions.enableRowSelection) {\n this.rowSelectionPlugin = new Slick.RowSelectionModel(this._gridOptions.rowSelectionOptions || {});\n this._grid.setSelectionModel(this.rowSelectionPlugin);\n }\n\n // Header Button Plugin\n if (this._gridOptions.enableHeaderButton) {\n this.headerButtonsPlugin = new Slick.Plugins.HeaderButtons(this._gridOptions.headerButton || {});\n this._grid.registerPlugin(this.headerButtonsPlugin);\n this.headerButtonsPlugin.onCommand.subscribe((e: Event, args: HeaderButtonOnCommandArgs) => {\n if (this._gridOptions.headerButton && typeof this._gridOptions.headerButton.onCommand === 'function') {\n this._gridOptions.headerButton.onCommand(e, args);\n }\n });\n }\n\n // Header Menu Plugin\n if (this._gridOptions.enableHeaderMenu) {\n this.headerMenuPlugin = this.createHeaderMenu(this._grid, this._dataView, this._columnDefinitions, this._gridOptions);\n }\n\n // Cell External Copy Manager Plugin (Excel Like)\n if (this._gridOptions.enableExcelCopyBuffer) {\n this.createUndoRedoBuffer();\n this.hookUndoShortcutKey();\n this.createCellExternalCopyManagerPlugin(this._grid, this._gridOptions);\n }\n\n // manually register other plugins\n if (this._gridOptions.registerPlugins !== undefined) {\n if (Array.isArray(this._gridOptions.registerPlugins)) {\n this._gridOptions.registerPlugins.forEach((plugin) => {\n this._grid.registerPlugin(plugin);\n });\n } else {\n this._grid.registerPlugin(this._gridOptions.registerPlugins);\n }\n }\n }\n\n /**\n * Attach/Create different plugins before the Grid creation.\n * For example the multi-select have to be added to the column definition before the grid is created to work properly\n * @param columnDefinitions\n * @param options\n */\n createPluginBeforeGridCreation(columnDefinitions: Column[], options: GridOption) {\n if (options.enableCheckboxSelector) {\n this.checkboxSelectorPlugin = new Slick.CheckboxSelectColumn(options.checkboxSelector || {});\n const selectionColumn: Column = this.checkboxSelectorPlugin.getColumnDefinition();\n selectionColumn.excludeFromExport = true;\n selectionColumn.excludeFromQuery = true;\n columnDefinitions.unshift(selectionColumn);\n }\n }\n\n /** Create the Excel like copy manager */\n createCellExternalCopyManagerPlugin(grid: any, gridOptions: GridOption) {\n let newRowIds = 0;\n const pluginOptions = {\n clipboardCommandHandler: (editCommand) => {\n this.undoRedoBuffer.queueAndExecuteCommand.call(this.undoRedoBuffer, editCommand);\n },\n dataItemColumnValueExtractor: (item, columnDef) => {\n // when grid or cell is not editable, we will possibly evaluate the Formatter if it was passed\n // to decide if we evaluate the Formatter, we will use the same flag from Export which is \"exportWithFormatter\"\n if (!gridOptions.editable || !columnDef.editor) {\n const isEvaluatingFormatter = (columnDef.exportWithFormatter !== undefined) ? columnDef.exportWithFormatter : gridOptions.exportOptions.exportWithFormatter;\n if (columnDef.formatter && isEvaluatingFormatter) {\n const formattedOutput = columnDef.formatter(0, 0, item[columnDef.field], columnDef, item, this._grid);\n if (columnDef.sanitizeDataExport || (gridOptions.exportOptions && gridOptions.exportOptions.sanitizeDataExport)) {\n return sanitizeHtmlToText(formattedOutput);\n }\n return formattedOutput;\n }\n }\n\n // else use the default \"dataItemColumnValueExtractor\" from the plugin itself\n // we can do that by setting back the getter with null\n return null;\n },\n readOnlyMode: false,\n includeHeaderWhenCopying: false,\n newRowCreator: (count) => {\n for (let i = 0; i < count; i++) {\n const item = {\n id: 'newRow_' + newRowIds++\n };\n grid.getData().addItem(item);\n }\n }\n };\n\n grid.setSelectionModel(new Slick.CellSelectionModel());\n grid.registerPlugin(new Slick.CellExternalCopyManager(pluginOptions));\n }\n\n /**\n * Create the Column Picker and expose all the available hooks that user can subscribe (onColumnsChanged)\n * @param grid\n * @param columnDefinitions\n * @param options\n */\n createColumnPicker(grid: any, columnDefinitions: Column[], options: GridOption) {\n // localization support for the picker\n const forceFitTitle = options.enableTranslate ? this.translate.instant('FORCE_FIT_COLUMNS') : 'Force fit columns';\n const syncResizeTitle = options.enableTranslate ? this.translate.instant('SYNCHRONOUS_RESIZE') : 'Synchronous resize';\n\n options.columnPicker = options.columnPicker || {};\n options.columnPicker.forceFitTitle = options.columnPicker.forceFitTitle || forceFitTitle;\n options.columnPicker.syncResizeTitle = options.columnPicker.syncResizeTitle || syncResizeTitle;\n\n this.columnPickerControl = new Slick.Controls.ColumnPicker(columnDefinitions, grid, options);\n if (grid && options.enableColumnPicker) {\n this.columnPickerControl.onColumnsChanged.subscribe((e: Event, args: CellArgs) => {\n if (options.columnPicker && typeof options.columnPicker.onColumnsChanged === 'function') {\n options.columnPicker.onColumnsChanged(e, args);\n }\n });\n }\n }\n\n /**\n * Create (or re-create) Grid Menu and expose all the available hooks that user can subscribe (onCommand, onMenuClose, ...)\n * @param grid\n * @param columnDefinitions\n * @param options\n */\n createGridMenu(grid: any, columnDefinitions: Column[], options: GridOption) {\n options.gridMenu = { ...this.getDefaultGridMenuOptions(), ...options.gridMenu };\n this.addGridMenuCustomCommands(grid, options);\n\n const gridMenuControl = new Slick.Controls.GridMenu(columnDefinitions, grid, options);\n if (grid && options.gridMenu) {\n gridMenuControl.onBeforeMenuShow.subscribe((e: Event, args: CellArgs) => {\n if (options.gridMenu && typeof options.gridMenu.onBeforeMenuShow === 'function') {\n options.gridMenu.onBeforeMenuShow(e, args);\n }\n });\n gridMenuControl.onColumnsChanged.subscribe((e: Event, args: CellArgs) => {\n this.areVisibleColumnDifferent = true;\n if (options.gridMenu && typeof options.gridMenu.onColumnsChanged === 'function') {\n options.gridMenu.onColumnsChanged(e, args);\n }\n });\n gridMenuControl.onCommand.subscribe((e: Event, args: CellArgs) => {\n if (options.gridMenu && typeof options.gridMenu.onCommand === 'function') {\n options.gridMenu.onCommand(e, args);\n }\n });\n gridMenuControl.onMenuClose.subscribe((e: Event, args: CellArgs) => {\n if (options.gridMenu && typeof options.gridMenu.onMenuClose === 'function') {\n options.gridMenu.onMenuClose(e, args);\n }\n\n // we also want to resize the columns if the user decided to hide certain column(s)\n if (grid && typeof grid.autosizeColumns === 'function') {\n // make sure that the grid still exist (by looking if the Grid UID is found in the DOM tree)\n const gridUid = grid.getUID();\n if (this.areVisibleColumnDifferent && gridUid && $(`.${gridUid}`).length > 0) {\n grid.autosizeColumns();\n }\n }\n });\n }\n return gridMenuControl;\n }\n\n /**\n * Create the Header Menu and expose all the available hooks that user can subscribe (onCommand, onBeforeMenuShow, ...)\n * @param grid\n * @param columnDefinitions\n * @param options\n */\n createHeaderMenu(grid: any, dataView: any, columnDefinitions: Column[], options: GridOption) {\n options.headerMenu = { ...this.getDefaultHeaderMenuOptions(), ...options.headerMenu };\n if (options.enableHeaderMenu) {\n options.headerMenu = this.addHeaderMenuCustomCommands(grid, dataView, options, columnDefinitions);\n }\n\n const headerMenuPlugin = new Slick.Plugins.HeaderMenu(options.headerMenu);\n\n grid.registerPlugin(headerMenuPlugin);\n headerMenuPlugin.onCommand.subscribe((e: Event, args: HeaderMenuOnCommandArgs) => {\n if (options.headerMenu && typeof options.headerMenu.onCommand === 'function') {\n options.headerMenu.onCommand(e, args);\n }\n });\n headerMenuPlugin.onCommand.subscribe((e: Event, args: HeaderMenuOnBeforeMenuShowArgs) => {\n if (options.headerMenu && typeof options.headerMenu.onBeforeMenuShow === 'function') {\n options.headerMenu.onBeforeMenuShow(e, args);\n }\n });\n\n return headerMenuPlugin;\n }\n\n /** Create an undo redo buffer used by the Excel like copy */\n createUndoRedoBuffer() {\n const commandQueue = [];\n let commandCtr = 0;\n\n this.undoRedoBuffer = {\n queueAndExecuteCommand: (editCommand) => {\n commandQueue[commandCtr] = editCommand;\n commandCtr++;\n editCommand.execute();\n },\n undo: () => {\n if (commandCtr === 0) { return; }\n commandCtr--;\n const command = commandQueue[commandCtr];\n if (command && Slick.GlobalEditorLock.cancelCurrentEdit()) {\n command.undo();\n }\n },\n redo: () => {\n if (commandCtr >= commandQueue.length) { return; }\n const command = commandQueue[commandCtr];\n commandCtr++;\n if (command && Slick.GlobalEditorLock.cancelCurrentEdit()) {\n command.execute();\n }\n }\n };\n }\n\n /** Hide a column from the grid */\n hideColumn(column: Column) {\n if (this._grid && this.visibleColumns) {\n const columnIndex = this._grid.getColumnIndex(column.id);\n this.visibleColumns = this.removeColumnByIndex(this.visibleColumns, columnIndex);\n this._grid.setColumns(this.visibleColumns);\n }\n }\n\n /** Attach an undo shortcut key hook that will redo/undo the copy buffer */\n hookUndoShortcutKey() {\n // undo shortcut\n $(document).keydown((e) => {\n if (e.which === 90 && (e.ctrlKey || e.metaKey)) { // CTRL + (shift) + Z\n if (e.shiftKey) {\n this.undoRedoBuffer.redo();\n } else {\n this.undoRedoBuffer.undo();\n }\n }\n });\n }\n\n /** Dispose of all the controls & plugins */\n dispose() {\n this._grid = null;\n this._dataView = null;\n this.visibleColumns = [];\n\n if (this.columnPickerControl) {\n this.columnPickerControl.destroy();\n this.columnPickerControl = null;\n }\n if (this.gridMenuControl) {\n this.gridMenuControl.destroy();\n this.gridMenuControl = null;\n }\n if (this.rowSelectionPlugin) {\n this.rowSelectionPlugin.destroy();\n this.rowSelectionPlugin = null;\n }\n if (this.checkboxSelectorPlugin) {\n this.checkboxSelectorPlugin.destroy();\n this.checkboxSelectorPlugin = null;\n }\n if (this.autoTooltipPlugin) {\n this.autoTooltipPlugin.destroy();\n this.autoTooltipPlugin = null;\n }\n if (this.headerButtonsPlugin) {\n this.headerButtonsPlugin.destroy();\n this.headerButtonsPlugin = null;\n }\n if (this.headerMenuPlugin) {\n this.headerMenuPlugin.destroy();\n this.headerMenuPlugin = null;\n }\n }\n\n /**\n * Create Grid Menu with Custom Commands if user has enabled Filters and/or uses a Backend Service (OData, GraphQL)\n * @param grid\n * @param options\n * @return gridMenu\n */\n private addGridMenuCustomCommands(grid: any, options: GridOption) {\n const backendApi = options.backendServiceApi || options.onBackendEventApi || null;\n\n if (options.enableFiltering) {\n // show grid menu: clear all filters\n if (options && options.gridMenu && options.gridMenu.showClearAllFiltersCommand && options.gridMenu.customItems && options.gridMenu.customItems.filter((item: CustomGridMenu) => item.command === 'clear-filter').length === 0) {\n options.gridMenu.customItems.push(\n {\n iconCssClass: options.gridMenu.iconClearAllFiltersCommand || 'fa fa-filter text-danger',\n title: options.enableTranslate ? this.translate.instant('CLEAR_ALL_FILTERS') : 'Clear All Filters',\n disabled: false,\n command: 'clear-filter',\n positionOrder: 50\n }\n );\n }\n\n // show grid menu: toggle filter row\n if (options && options.gridMenu && options.gridMenu.showToggleFilterCommand && options.gridMenu.customItems && options.gridMenu.customItems.filter((item: CustomGridMenu) => item.command === 'toggle-filter').length === 0) {\n options.gridMenu.customItems.push(\n {\n iconCssClass: options.gridMenu.iconToggleFilterCommand || 'fa fa-random',\n title: options.enableTranslate ? this.translate.instant('TOGGLE_FILTER_ROW') : 'Toggle Filter Row',\n disabled: false,\n command: 'toggle-filter',\n positionOrder: 52\n }\n );\n }\n\n // show grid menu: refresh dataset\n if (options && options.gridMenu && options.gridMenu.showRefreshDatasetCommand && backendApi && options.gridMenu.customItems && options.gridMenu.customItems.filter((item: CustomGridMenu) => item.command === 'refresh-dataset').length === 0) {\n options.gridMenu.customItems.push(\n {\n iconCssClass: options.gridMenu.iconRefreshDatasetCommand || 'fa fa-refresh',\n title: options.enableTranslate ? this.translate.instant('REFRESH_DATASET') : 'Refresh Dataset',\n disabled: false,\n command: 'refresh-dataset',\n positionOrder: 54\n }\n );\n }\n }\n\n if (options.enableSorting) {\n // show grid menu: clear all sorting\n if (options && options.gridMenu && options.gridMenu.showClearAllSortingCommand && options.gridMenu.customItems && options.gridMenu.customItems.filter((item: CustomGridMenu) => item.command === 'clear-sorting').length === 0) {\n options.gridMenu.customItems.push(\n {\n iconCssClass: options.gridMenu.iconClearAllSortingCommand || 'fa fa-unsorted text-danger',\n title: options.enableTranslate ? this.translate.instant('CLEAR_ALL_SORTING') : 'Clear All Sorting',\n disabled: false,\n command: 'clear-sorting',\n positionOrder: 51\n }\n );\n }\n }\n\n // show grid menu: export to file\n if (options && options.enableExport && options.gridMenu && options.gridMenu.showExportCsvCommand && options.gridMenu.customItems && options.gridMenu.customItems.filter((item: CustomGridMenu) => item.command === 'export-csv').length === 0) {\n options.gridMenu.customItems.push(\n {\n iconCssClass: options.gridMenu.iconExportCsvCommand || 'fa fa-download',\n title: options.enableTranslate ? this.translate.instant('EXPORT_TO_CSV') : 'Export in CSV format',\n disabled: false,\n command: 'export-csv',\n positionOrder: 53\n }\n );\n }\n // show grid menu: export to text file as tab delimited\n if (options && options.enableExport && options.gridMenu && options.gridMenu.showExportTextDelimitedCommand && options.gridMenu.customItems && options.gridMenu.customItems.filter((item: CustomGridMenu) => item.command === 'export-text-delimited').length === 0) {\n options.gridMenu.customItems.push(\n {\n iconCssClass: options.gridMenu.iconExportTextDelimitedCommand || 'fa fa-download',\n title: options.enableTranslate ? this.translate.instant('EXPORT_TO_TAB_DELIMITED') : 'Export in Text format (Tab delimited)',\n disabled: false,\n command: 'export-text-delimited',\n positionOrder: 54\n }\n );\n }\n\n // Command callback, what will be executed after command is clicked\n if (options.gridMenu && options.gridMenu.customItems.length > 0) {\n options.gridMenu.onCommand = (e, args) => {\n if (args && args.command) {\n switch (args.command) {\n case 'clear-filter':\n this.filterService.clearFilters();\n this._dataView.refresh();\n break;\n case 'clear-sorting':\n this.sortService.clearSorting();\n this._dataView.refresh();\n break;\n case 'export-csv':\n this.exportService.exportToFile({\n delimiter: DelimiterType.comma,\n filename: 'export',\n format: FileType.csv,\n useUtf8WithBom: true\n });\n break;\n case 'export-text-delimited':\n this.exportService.exportToFile({\n delimiter: DelimiterType.tab,\n filename: 'export',\n format: FileType.txt,\n useUtf8WithBom: true\n });\n break;\n case 'toggle-filter':\n grid.setHeaderRowVisibility(!grid.getOptions().showHeaderRow);\n break;\n case 'toggle-toppanel':\n grid.setTopPanelVisibility(!grid.getOptions().showTopPanel);\n break;\n case 'refresh-dataset':\n this.refreshBackendDataset();\n break;\n default:\n alert('Command: ' + args.command);\n break;\n }\n }\n };\n }\n\n // add the custom \"Commands\" title if there are any commands\n if (options && options.gridMenu && options.gridMenu.customItems && options.gridMenu.customItems.length > 0) {\n const customTitle = options.enableTranslate ? this.translate.instant('COMMANDS') : 'Commands';\n options.gridMenu.customTitle = options.gridMenu.customTitle || customTitle;\n\n // sort the custom items by their position in the list\n options.gridMenu.customItems.sort((itemA, itemB) => {\n if (itemA && itemB && itemA.hasOwnProperty('positionOrder') && itemB.hasOwnProperty('positionOrder')) {\n return itemA.positionOrder - itemB.positionOrder;\n }\n return 0;\n });\n }\n }\n\n /**\n * Create Header Menu with Custom Commands if user has enabled Header Menu\n * @param grid\n * @param dataView\n * @param options\n * @param columnDefinitions\n * @return header menu\n */\n private addHeaderMenuCustomCommands(grid: any, dataView: any, options: GridOption, columnDefinitions: Column[]): HeaderMenu {\n const headerMenuOptions = options.headerMenu;\n\n if (columnDefinitions && Array.isArray(columnDefinitions) && options.enableHeaderMenu) {\n columnDefinitions.forEach((columnDef: Column) => {\n if (columnDef) {\n if (!columnDef.header || !columnDef.header.menu) {\n columnDef.header = {\n menu: {\n items: []\n }\n };\n }\n const columnHeaderMenuItems: HeaderMenuItem[] = columnDef.header.menu.items || [];\n\n // Sorting Commands\n if (options.enableSorting && columnDef.sortable && headerMenuOptions.showSortCommands) {\n if (columnHeaderMenuItems.filter((item: HeaderMenuItem) => item.command === 'sort-asc').length === 0) {\n columnHeaderMenuItems.push({\n iconCssClass: headerMenuOptions.iconSortAscCommand || 'fa fa-sort-asc',\n title: options.enableTranslate ? this.translate.instant('SORT_ASCENDING') : 'Sort Ascending',\n command: 'sort-asc'\n });\n }\n if (columnHeaderMenuItems.filter((item: HeaderMenuItem) => item.command === 'sort-desc').length === 0) {\n columnHeaderMenuItems.push({\n iconCssClass: headerMenuOptions.iconSortDescCommand || 'fa fa-sort-desc',\n title: options.enableTranslate ? this.translate.instant('SORT_DESCENDING') : 'Sort Descending',\n command: 'sort-desc'\n });\n }\n }\n\n // Hide Column Command\n if (headerMenuOptions.showColumnHideCommand && columnHeaderMenuItems.filter((item: HeaderMenuItem) => item.command === 'hide').length === 0) {\n columnHeaderMenuItems.push({\n iconCssClass: headerMenuOptions.iconColumnHideCommand || 'fa fa-times',\n title: options.enableTranslate ? this.translate.instant('HIDE_COLUMN') : 'Hide Column',\n command: 'hide'\n });\n }\n }\n });\n\n // Command callback, what will be executed after command is clicked\n if (headerMenuOptions) {\n headerMenuOptions.onCommand = (e, args) => {\n if (args && args.command) {\n switch (args.command) {\n case 'hide':\n this.hideColumn(args.column);\n this.autoResizeColumns();\n break;\n case 'sort-asc':\n case 'sort-desc':\n // get previously sorted columns\n const cols: ColumnSort[] = this.sortService.getPreviousColumnSorts(args.column.id + '');\n\n // add to the column array, the column sorted by the header menu\n cols.push({ sortCol: args.column, sortAsc: (args.command === 'sort-asc') });\n if (options.backendServiceApi) {\n this.sortService.onBackendSortChanged(e, { multiColumnSort: true, sortCols: cols, grid });\n } else {\n this.sortService.onLocalSortChanged(grid, options, dataView, cols);\n }\n\n // update the this.gridObj sortColumns array which will at the same add the visual sort icon(s) on the UI\n const newSortColumns: ColumnSort[] = cols.map((col) => {\n return { columnId: col.sortCol.id, sortAsc: col.sortAsc };\n });\n grid.setSortColumns(newSortColumns); // add sort icon in UI\n break;\n default:\n alert('Command: ' + args.command);\n break;\n }\n }\n };\n }\n }\n\n return headerMenuOptions;\n }\n\n /** Refresh the dataset through the Backend Service */\n refreshBackendDataset() {\n let query;\n const backendApi = this._gridOptions.backendServiceApi || this._gridOptions.onBackendEventApi;\n if (!backendApi || !backendApi.service || !backendApi.process) {\n throw new Error(`BackendServiceApi requires at least a \"process\" function and a \"service\" defined`);\n }\n\n if (backendApi.service) {\n query = backendApi.service.buildQuery();\n }\n\n if (query && query !== '') {\n if (backendApi.preProcess) {\n backendApi.preProcess();\n }\n\n // the process could be an Observable (like HttpClient) or a Promise\n // in any case, we need to have a Promise so that we can await on it (if an Observable, convert it to Promise)\n const observableOrPromise = backendApi.process(query);\n\n castToPromise(observableOrPromise).then((processResult: GraphqlResult | any) => {\n // from the result, call our internal post process to update the Dataset and Pagination info\n if (processResult && backendApi.internalPostProcess) {\n backendApi.internalPostProcess(processResult);\n }\n\n // send the response process to the postProcess callback\n if (backendApi.postProcess) {\n backendApi.postProcess(processResult);\n }\n });\n }\n }\n\n /** Remove a column from the grid by it's index in the grid */\n removeColumnByIndex(array: any[], index: number) {\n return array.filter((el: any, i: number) => {\n return index !== i;\n });\n }\n\n /**\n * Translate the Column Picker and it's last 2 checkboxes\n * Note that the only way that seems to work is to destroy and re-create the Column Picker\n * Changing only the columnPicker.columnTitle with i18n translate was not enough.\n */\n translateColumnPicker() {\n // destroy and re-create the Column Picker which seems to be the only way to translate properly\n if (this.columnPickerControl) {\n this.columnPickerControl.destroy();\n this.columnPickerControl = null;\n }\n\n this._gridOptions.columnPicker = undefined;\n this.createColumnPicker(this._grid, this.visibleColumns, this._gridOptions);\n }\n\n /**\n * Translate the Grid Menu ColumnTitle and CustomTitle.\n * Note that the only way that seems to work is to destroy and re-create the Grid Menu\n * Changing only the gridMenu.columnTitle with i18n translate was not enough.\n */\n translateGridMenu() {\n // destroy and re-create the Grid Menu which seems to be the only way to translate properly\n this.gridMenuControl.destroy();\n\n // reset all Grid Menu options that have translation text & then re-create the Grid Menu and also the custom items array\n if (this._gridOptions && this._gridOptions.gridMenu) {\n this._gridOptions.gridMenu = this.resetGridMenuTranslations(this._gridOptions.gridMenu);\n }\n this.createGridMenu(this._grid, this.visibleColumns, this._gridOptions);\n }\n\n /**\n * Translate the Header Menu titles, we need to loop through all column definition to re-translate them\n */\n translateHeaderMenu() {\n // reset all Grid Menu options that have translation text & then re-create the Grid Menu and also the custom items array\n if (this._gridOptions && this._gridOptions.headerMenu) {\n this.resetHeaderMenuTranslations(this.visibleColumns);\n }\n }\n\n /**\n * Translate manually the header titles.\n * We could optionally pass a locale (that will change currently loaded locale), else it will use current locale\n * @param locale locale to use\n */\n translateHeaders(locale?: string) {\n if (locale) {\n this.translate.use(locale);\n }\n\n for (const column of this._columnDefinitions) {\n if (column.headerKey) {\n column.name = this.translate.instant(column.headerKey);\n }\n }\n\n // calling setColumns() will trigger a grid re-render\n this._grid.setColumns(this._columnDefinitions);\n }\n\n /**\n * @return default Grid Menu options\n */\n private getDefaultGridMenuOptions(): GridMenu {\n return {\n columnTitle: this.translate.instant('COLUMNS') || 'Columns',\n forceFitTitle: this.translate.instant('FORCE_FIT_COLUMNS') || 'Force fit columns',\n syncResizeTitle: this.translate.instant('SYNCHRONOUS_RESIZE') || 'Synchronous resize',\n iconCssClass: 'fa fa-bars',\n menuWidth: 18,\n customTitle: undefined,\n customItems: [],\n showClearAllFiltersCommand: true,\n showRefreshDatasetCommand: true,\n showToggleFilterCommand: true\n };\n }\n\n /**\n * @return default Header Menu options\n */\n private getDefaultHeaderMenuOptions(): HeaderMenu {\n return {\n autoAlignOffset: 12,\n minWidth: 140,\n showColumnHideCommand: true,\n showSortCommands: true\n };\n }\n\n /**\n * Reset all the Grid Menu options which have text to translate\n * @param grid menu object\n */\n private resetGridMenuTranslations(gridMenu: GridMenu): GridMenu {\n // we will reset the custom items array since the commands title have to be translated too (no worries, we will re-create it later)\n gridMenu.customItems = [];\n delete gridMenu.customTitle;\n\n gridMenu.columnTitle = this.translate.instant('COLUMNS') || 'Columns';\n gridMenu.forceFitTitle = this.translate.instant('FORCE_FIT_COLUMNS') || 'Force fit columns';\n gridMenu.syncResizeTitle = this.translate.instant('SYNCHRONOUS_RESIZE') || 'Synchronous resize';\n\n return gridMenu;\n }\n\n /**\n * Reset all the Grid Menu options which have text to translate\n * @param grid menu object\n */\n private resetHeaderMenuTranslations(columnDefinitions: Column[]) {\n columnDefinitions.forEach((columnDef: Column) => {\n if (columnDef && columnDef.header && columnDef.header && columnDef.header.menu && columnDef.header.menu.items) {\n const columnHeaderMenuItems: HeaderMenuItem[] = columnDef.header.menu.items || [];\n\n columnHeaderMenuItems.forEach((item) => {\n switch (item.command) {\n case 'sort-asc':\n item.title = this.translate.instant('SORT_ASCENDING') || 'Sort Ascending';\n break;\n case 'sort-desc':\n item.title = this.translate.instant('SORT_DESCENDING') || 'Sort Ascending';\n break;\n case 'hide':\n item.title = this.translate.instant('HIDE_COLUMN') || 'Sort Ascending';\n break;\n }\n });\n }\n });\n }\n}\n", "import { SortDirectionNumber } from './../models/sortDirectionNumber.enum';\nimport { castToPromise } from './utilities';\nimport {\n CellArgs,\n Column,\n ColumnSort,\n CurrentSorter,\n FieldType,\n GridOption,\n SlickEvent,\n SortDirection,\n SortDirectionString\n} from './../models/index';\nimport { sortByFieldType } from '../sorters/sorterUtilities';\nimport { Sorters } from './../sorters';\nimport { Subject } from 'rxjs/Subject';\n\n// using external non-typed js libraries\ndeclare var Slick: any;\n\nexport class SortService {\n private _currentLocalSorters: CurrentSorter[] = [];\n private _eventHandler: any = new Slick.EventHandler();\n private _dataView: any;\n private _grid: any;\n private _gridOptions: GridOption;\n private _slickSubscriber: SlickEvent;\n private _isBackendGrid = false;\n onSortChanged = new Subject();\n\n /**\n * Attach a backend sort (single/multi) hook to the grid\n * @param grid SlickGrid Grid object\n * @param gridOptions Grid Options object\n */\n attachBackendOnSort(grid: any, dataView: any) {\n this._isBackendGrid = true;\n this._grid = grid;\n this._dataView = dataView;\n if (grid) {\n this._gridOptions = grid.getOptions();\n }\n this._slickSubscriber = grid.onSort;\n\n // subscribe to the SlickGrid event and call the backend execution\n this._slickSubscriber.subscribe(this.onBackendSortChanged.bind(this));\n }\n\n async onBackendSortChanged(event: Event, args: any) {\n if (!args || !args.grid) {\n throw new Error('Something went wrong when trying to attach the \"onBackendSortChanged(event, args)\" function, it seems that \"args\" is not populated correctly');\n }\n const gridOptions: GridOption = args.grid.getOptions() || {};\n const backendApi = gridOptions.backendServiceApi || gridOptions.onBackendEventApi;\n\n if (!backendApi || !backendApi.process || !backendApi.service) {\n throw new Error(`BackendServiceApi requires at least a \"process\" function and a \"service\" defined`);\n }\n if (backendApi.preProcess) {\n backendApi.preProcess();\n }\n const query = backendApi.service.onSortChanged(event, args);\n this.emitSortChanged('remote');\n\n // the process could be an Observable (like HttpClient) or a Promise\n // in any case, we need to have a Promise so that we can await on it (if an Observable, convert it to Promise)\n const observableOrPromise = backendApi.process(query);\n const processResult = await castToPromise(observableOrPromise);\n\n // from the result, call our internal post process to update the Dataset and Pagination info\n if (processResult && backendApi.internalPostProcess) {\n backendApi.internalPostProcess(processResult);\n }\n\n // send the response process to the postProcess callback\n if (backendApi.postProcess) {\n backendApi.postProcess(processResult);\n }\n }\n\n /**\n * Attach a local sort (single/multi) hook to the grid\n * @param grid SlickGrid Grid object\n * @param gridOptions Grid Options object\n * @param dataView\n */\n attachLocalOnSort(grid: any, dataView: any) {\n this._isBackendGrid = false;\n this._grid = grid;\n this._dataView = dataView;\n let columnDefinitions = [];\n\n if (grid) {\n this._gridOptions = grid.getOptions();\n columnDefinitions = grid.getColumns();\n }\n this._slickSubscriber = grid.onSort;\n\n this._slickSubscriber.subscribe((e: any, args: any) => {\n // multiSort and singleSort are not exactly the same, but we want to structure it the same for the (for loop) after\n // also to avoid having to rewrite the for loop in the sort, we will make the singleSort an array of 1 object\n const sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({sortAsc: args.sortAsc, sortCol: args.sortCol});\n\n // keep current sorters\n this._currentLocalSorters = []; // reset current local sorters\n if (Array.isArray(sortColumns)) {\n sortColumns.forEach((sortColumn) => {\n if (sortColumn.sortCol) {\n this._currentLocalSorters.push({\n columnId: sortColumn.sortCol.id,\n direction: sortColumn.sortAsc ? SortDirection.ASC : SortDirection.DESC\n });\n }\n });\n }\n\n this.onLocalSortChanged(grid, this._gridOptions, dataView, sortColumns);\n this.emitSortChanged('local');\n });\n\n if (dataView && dataView.onRowCountChanged) {\n this._eventHandler.subscribe(dataView.onRowCountChanged, (e: Event, args: any) => {\n // load any presets if there are any\n if (args.current > 0) {\n this.loadLocalPresets(grid, this._gridOptions, dataView, columnDefinitions);\n }\n });\n }\n }\n\n clearSorting() {\n if (this._grid && this._gridOptions && this._dataView) {\n // remove any sort icons (this setSortColumns function call really does only that)\n this._grid.setSortColumns([]);\n\n // we also need to trigger a sort change\n // for a backend grid, we will trigger a backend sort changed with an empty sort columns array\n // however for a local grid, we need to pass a sort column and so we will sort by the 1st column\n if (this._isBackendGrid) {\n this.onBackendSortChanged(undefined, { grid: this._grid, sortCols: [] });\n } else {\n const columnDefinitions = this._grid.getColumns() as Column[];\n if (columnDefinitions && Array.isArray(columnDefinitions)) {\n this.onLocalSortChanged(this._grid, this._gridOptions, this._dataView, new Array({sortAsc: true, sortCol: columnDefinitions[0] }));\n }\n }\n }\n }\n\n getCurrentLocalSorters(): CurrentSorter[] {\n return this._currentLocalSorters;\n }\n\n /**\n * Get column sorts,\n * If a column is passed as an argument, we won't add this column to our output array since it is already in the array\n * We want to know the sort prior to calling the next sorting command\n */\n getPreviousColumnSorts(columnId?: string) {\n // getSortColumns() only returns sortAsc & columnId, we want the entire column definition\n const oldSortColumns = this._grid.getSortColumns();\n const columnDefinitions = this._grid.getColumns();\n\n // get the column definition but only keep column which are not equal to our current column\n const sortedCols = oldSortColumns.reduce((cols, col) => {\n if (!columnId || col.columnId !== columnId) {\n cols.push({ sortCol: columnDefinitions[this._grid.getColumnIndex(col.columnId)], sortAsc: col.sortAsc });\n }\n return cols;\n }, []);\n\n return sortedCols;\n }\n\n /**\n * load any presets if there are any\n * @param grid\n * @param gridOptions\n * @param dataView\n * @param columnDefinitions\n */\n loadLocalPresets(grid: any, gridOptions: GridOption, dataView: any, columnDefinitions: Column[]) {\n const sortCols: ColumnSort[] = [];\n this._currentLocalSorters = []; // reset current local sorters\n if (gridOptions && gridOptions.presets && gridOptions.presets.sorters) {\n const sorters = gridOptions.presets.sorters;\n columnDefinitions.forEach((columnDef: Column) => {\n const columnPreset = sorters.find((currentSorter: CurrentSorter) => {\n return currentSorter.columnId === columnDef.id;\n });\n if (columnPreset) {\n sortCols.push({\n columnId: columnDef.id,\n sortAsc: ((columnPreset.direction.toUpperCase() === SortDirection.ASC) ? true : false),\n sortCol: columnDef\n });\n\n // keep current sorters\n this._currentLocalSorters.push({\n columnId: columnDef.id + '',\n direction: columnPreset.direction.toUpperCase() as SortDirectionString\n });\n }\n });\n\n if (sortCols.length > 0) {\n this.onLocalSortChanged(grid, gridOptions, dataView, sortCols);\n grid.setSortColumns(sortCols); // add sort icon in UI\n }\n }\n }\n\n onLocalSortChanged(grid: any, gridOptions: GridOption, dataView: any, sortColumns: ColumnSort[]) {\n dataView.sort((dataRow1: any, dataRow2: any) => {\n for (let i = 0, l = sortColumns.length; i < l; i++) {\n const columnSortObj = sortColumns[i];\n if (columnSortObj && columnSortObj.sortCol) {\n const sortDirection = columnSortObj.sortAsc ? SortDirectionNumber.asc : SortDirectionNumber.desc;\n const sortField = columnSortObj.sortCol.queryField || columnSortObj.sortCol.queryFieldFilter || columnSortObj.sortCol.field;\n const fieldType = columnSortObj.sortCol.type || FieldType.string;\n const value1 = dataRow1[sortField];\n const value2 = dataRow2[sortField];\n const sortResult = sortByFieldType(value1, value2, fieldType, sortDirection);\n if (sortResult !== SortDirectionNumber.neutral) {\n return sortResult;\n }\n }\n }\n return 0;\n });\n grid.invalidate();\n grid.render();\n }\n\n dispose() {\n // unsubscribe local event\n if (this._slickSubscriber && typeof this._slickSubscriber.unsubscribe === 'function') {\n this._slickSubscriber.unsubscribe();\n }\n\n // unsubscribe all SlickGrid events\n this._eventHandler.unsubscribeAll();\n }\n\n /**\n * A simple function that is attached to the subscriber and emit a change when the sort is called.\n * Other services, like Pagination, can then subscribe to it.\n * @param sender\n */\n emitSortChanged(sender: 'local' | 'remote') {\n if (sender === 'remote' && this._gridOptions && this._gridOptions.backendServiceApi) {\n let currentSorters: CurrentSorter[] = [];\n const backendService = this._gridOptions.backendServiceApi.service;\n if (backendService && backendService.getCurrentSorters) {\n currentSorters = backendService.getCurrentSorters() as CurrentSorter[];\n }\n this.onSortChanged.next(currentSorters);\n } else if (sender === 'local') {\n this.onSortChanged.next(this.getCurrentLocalSorters());\n }\n }\n}\n", "import { GridOption, Column } from './../models/index';\r\n\r\nexport class SharedService {\r\n dataView: any;\r\n grid: any;\r\n gridOptions: GridOption;\r\n columnDefinitions: Column[];\r\n groupItemMetadataProvider: any;\r\n\r\n init(grid: any, dataView: any, gridOptions: GridOption, columnDefinitions: Column[]) {\r\n this.grid = grid;\r\n this.dataView = dataView;\r\n this.gridOptions = gridOptions;\r\n this.columnDefinitions = columnDefinitions;\r\n }\r\n}\r\n", "import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n CellArgs,\n CustomGridMenu,\n Column,\n DelimiterType,\n ExportOption,\n FileType,\n Formatter,\n GraphqlResult,\n GridMenu,\n GridOption,\n HeaderButtonOnCommandArgs,\n HeaderMenuOnCommandArgs,\n HeaderMenuOnBeforeMenuShowArgs\n} from './../models/index';\nimport { addWhiteSpaces, htmlEntityDecode, sanitizeHtmlToText } from './../services/utilities';\nimport { Subject } from 'rxjs/Subject';\nimport { TextEncoder } from 'text-encoding-utf-8';\n\n// using external non-typed js libraries\ndeclare let Slick: any;\ndeclare let $: any;\n\nexport interface ExportColumnHeader {\n key: string;\n title: string;\n}\n\n@Injectable()\nexport class ExportService {\n private _lineCarriageReturn = '\\n';\n private _dataView: any;\n private _grid: any;\n private _exportQuoteWrapper: string;\n private _columnHeaders: ExportColumnHeader[];\n private _groupedHeaders: ExportColumnHeader[];\n private _gridOptions: GridOption;\n private _hasGroupedItems = false;\n private _exportOptions: ExportOption;\n onGridBeforeExportToFile = new Subject();\n onGridAfterExportToFile = new Subject<{ options: any }>();\n\n constructor(private translate: TranslateService) { }\n\n /**\n * Initialize the Export Service\n * @param grid\n * @param gridOptions\n * @param dataView\n */\n init(grid: any, gridOptions: GridOption, dataView: any): void {\n this._grid = grid;\n this._gridOptions = gridOptions;\n this._dataView = dataView;\n }\n\n /**\n * Function to export the Grid result to an Excel CSV format using javascript for it to produce the CSV file.\n * This is a WYSIWYG export to file output (What You See is What You Get)\n *\n * NOTES: The column position needs to match perfectly the JSON Object position because of the way we are pulling the data,\n * which means that if any column(s) got moved in the UI, it has to be reflected in the JSON array output as well\n *\n * Example: exportToFile({ format: FileType.csv, delimiter: DelimiterType.comma })\n */\n exportToFile(options: ExportOption) {\n this.onGridBeforeExportToFile.next(true);\n this._exportOptions = $.extend(true, {}, this._gridOptions.exportOptions, options);\n\n // get the CSV output from the grid data\n const dataOutput = this.getDataOutput();\n\n // trigger a download file\n // wrap it into a setTimeout so that the EventAggregator has enough time to start a pre-process like showing a spinner\n setTimeout(() => {\n const downloadOptions = {\n filename: `${this._exportOptions.filename}.${this._exportOptions.format}`,\n csvContent: dataOutput,\n format: this._exportOptions.format,\n useUtf8WithBom: this._exportOptions.useUtf8WithBom\n };\n this.startDownloadFile(downloadOptions);\n this.onGridAfterExportToFile.next({ options: downloadOptions });\n }, 0);\n }\n\n // -----------------------\n // Private functions\n // -----------------------\n\n getDataOutput(): string {\n const columns = this._grid.getColumns() || [];\n const delimiter = this._exportOptions.delimiter || '';\n const format = this._exportOptions.format || '';\n const groupByColumnHeader = this._exportOptions.groupingColumnHeaderTitle || this.translate.instant('GROUP_BY');\n\n // a CSV needs double quotes wrapper, the other types do not need any wrapper\n this._exportQuoteWrapper = (format === FileType.csv) ? '\"' : '';\n\n // data variable which will hold all the fields data of a row\n let outputDataString = '';\n\n // get grouped column titles and if found, we will add a \"Group by\" column at the first column index\n const grouping = this._dataView.getGrouping();\n if (grouping && Array.isArray(grouping) && grouping.length > 0) {\n this._hasGroupedItems = true;\n outputDataString += `${groupByColumnHeader}` + delimiter;\n } else {\n this._hasGroupedItems = false;\n }\n\n // get all column headers\n this._columnHeaders = this.getColumnHeaders(columns) || [];\n if (this._columnHeaders && Array.isArray(this._columnHeaders) && this._columnHeaders.length > 0) {\n // add the header row + add a new line at the end of the row\n const outputHeaderTitles = this._columnHeaders.map((header) => {\n return this._exportQuoteWrapper + header.title + this._exportQuoteWrapper;\n });\n outputDataString += (outputHeaderTitles.join(delimiter) + this._lineCarriageReturn);\n }\n\n // Populate the rest of the Grid Data\n outputDataString += this.getAllGridRowData(columns, this._lineCarriageReturn);\n\n return outputDataString;\n }\n\n /**\n * Get all the grid row data and return that as an output string\n */\n getAllGridRowData(columns: Column[], lineCarriageReturn: string): string {\n let outputDataString = '';\n const lineCount = this._dataView.getLength();\n\n // loop through all the grid rows of data\n for (let rowNumber = 0; rowNumber < lineCount; rowNumber++) {\n const itemObj = this._dataView.getItem(rowNumber);\n\n if (itemObj != null) {\n // Normal row (not grouped by anything) would have an ID which was predefined in the Grid Columns definition\n if (itemObj.id != null) {\n // get regular row item data\n outputDataString += this.readRegularRowData(columns, rowNumber, itemObj);\n } else if (this._hasGroupedItems && itemObj.__groupTotals === undefined) {\n // get the group row\n outputDataString += this.readGroupedTitleRow(itemObj) + this._exportOptions.delimiter;\n } else if (itemObj.__groupTotals) {\n // else if the row is a Group By and we have agreggators, then a property of '__groupTotals' would exist under that object\n outputDataString += this.readGroupedTotalRow(columns, itemObj) + this._exportOptions.delimiter;\n }\n outputDataString += lineCarriageReturn;\n }\n }\n\n return outputDataString;\n }\n\n /**\n * Get all header titles and their keys, translate the title when required.\n * @param columns of the grid\n */\n getColumnHeaders(columns: Column[]): ExportColumnHeader[] {\n if (!columns || !Array.isArray(columns) || columns.length === 0) {\n return null;\n }\n const columnHeaders = [];\n\n // Populate the Column Header, pull the name defined\n columns.forEach((columnDef) => {\n const fieldName = (columnDef.headerKey) ? this.translate.instant(columnDef.headerKey) : columnDef.name;\n const skippedField = columnDef.excludeFromExport || false;\n\n // if column width is 0 then it's not evaluated since that field is considered hidden should not be part of the export\n if ((columnDef.width === undefined || columnDef.width > 0) && !skippedField) {\n columnHeaders.push({\n key: columnDef.field || columnDef.id,\n title: fieldName\n });\n }\n });\n\n return columnHeaders;\n }\n\n /**\n * Get the data of a regular row (a row without grouping)\n * @param row\n * @param itemObj\n */\n readRegularRowData(columns: Column[], row: number, itemObj: any) {\n let idx = 0;\n let rowOutputString = '';\n const delimiter = this._exportOptions.delimiter;\n const format = this._exportOptions.format;\n const exportQuoteWrapper = this._exportQuoteWrapper || '';\n\n for (let col = 0, ln = columns.length; col < ln; col++) {\n const columnDef = columns[col];\n const fieldId = columnDef.field || columnDef.id || '';\n\n // skip excluded column\n if (columnDef.excludeFromExport) {\n continue;\n }\n\n // if we are grouping and are on 1st column index, we need to skip this column since it will be used later by the grouping text:: Group by [columnX]\n if (this._hasGroupedItems && idx === 0) {\n rowOutputString += `\"\"` + delimiter;\n }\n\n // does the user want to evaluate current column Formatter?\n const isEvaluatingFormatter = (columnDef.exportWithFormatter !== undefined) ? columnDef.exportWithFormatter : (this._exportOptions.exportWithFormatter || this._gridOptions.exportWithFormatter);\n\n // did the user provide a Custom Formatter for the export\n const exportCustomFormatter: Formatter = (columnDef.exportCustomFormatter !== undefined) ? columnDef.exportCustomFormatter : undefined;\n\n let itemData = '';\n\n if (exportCustomFormatter) {\n itemData = exportCustomFormatter(row, col, itemObj[fieldId], columnDef, itemObj, this._grid);\n } else if (isEvaluatingFormatter && !!columnDef.formatter) {\n itemData = columnDef.formatter(row, col, itemObj[fieldId], columnDef, itemObj, this._grid);\n } else {\n itemData = (itemObj[fieldId] === null || itemObj[fieldId] === undefined) ? '' : itemObj[fieldId];\n }\n\n // does the user want to sanitize the output data (remove HTML tags)?\n if (columnDef.sanitizeDataExport || this._exportOptions.sanitizeDataExport) {\n itemData = sanitizeHtmlToText(itemData);\n }\n\n // when CSV we also need to escape double quotes twice, so \" becomes \"\"\n if (format === FileType.csv) {\n itemData = itemData.toString().replace(/\"/gi, `\"\"`);\n }\n\n // do we have a wrapper to keep as a string? in certain cases like \"1E06\", we don't want excel to transform it into exponential (1.0E06)\n // to cancel that effect we can had = in front, ex: =\"1E06\"\n const keepAsStringWrapper = (columnDef && columnDef.exportCsvForceToKeepAsString) ? '=' : '';\n\n rowOutputString += keepAsStringWrapper + exportQuoteWrapper + itemData + exportQuoteWrapper + delimiter;\n idx++;\n }\n\n return rowOutputString;\n }\n\n /**\n * Get the grouped title(s), for example if we grouped by salesRep, the returned result would be:: 'Sales Rep'\n * @param itemObj\n */\n readGroupedTitleRow(itemObj: any) {\n let groupName = sanitizeHtmlToText(itemObj.title);\n const exportQuoteWrapper = this._exportQuoteWrapper || '';\n const delimiter = this._exportOptions.delimiter;\n const format = this._exportOptions.format;\n\n groupName = addWhiteSpaces(5 * itemObj.level) + groupName;\n\n if (format === FileType.csv) {\n // when CSV we also need to escape double quotes twice, so \" becomes \"\"\n groupName = groupName.toString().replace(/\"/gi, `\"\"`);\n }\n\n // do we have a wrapper to keep as a string? in certain cases like \"1E06\", we don't want excel to transform it into exponential (1.0E06)\n // to cancel that effect we can had = in front, ex: =\"1E06\"\n // const keepAsStringWrapper = (columnDef && columnDef.exportCsvForceToKeepAsString) ? '=' : '';\n\n return /*keepAsStringWrapper +*/ exportQuoteWrapper + ' ' + groupName + exportQuoteWrapper + delimiter;\n }\n\n /**\n * Get the grouped totals, these are set by Slick Aggregators.\n * For example if we grouped by \"salesRep\" and we have a Sum Aggregator on \"sales\", then the returned output would be:: [\"Sum 123$\"]\n * @param itemObj\n */\n readGroupedTotalRow(columns: Column[], itemObj: any) {\n let exportExponentialWrapper = '';\n const delimiter = this._exportOptions.delimiter;\n const format = this._exportOptions.format;\n const groupingAggregatorRowText = this._exportOptions.groupingAggregatorRowText || '';\n const exportQuoteWrapper = this._exportQuoteWrapper || '';\n let output = `${exportQuoteWrapper}${groupingAggregatorRowText}${exportQuoteWrapper}${delimiter}`;\n\n columns.forEach((columnDef) => {\n let itemData = '';\n\n // if there's a groupTotalsFormatter, we will re-run it to get the exact same output as what is shown in UI\n if (columnDef.groupTotalsFormatter) {\n itemData = columnDef.groupTotalsFormatter(itemObj, columnDef);\n }\n\n // does the user want to sanitize the output data (remove HTML tags)?\n if (columnDef.sanitizeDataExport || this._exportOptions.sanitizeDataExport) {\n itemData = sanitizeHtmlToText(itemData);\n }\n\n if (format === FileType.csv) {\n // when CSV we also need to escape double quotes twice, so a double quote \" becomes 2x double quotes \"\"\n // and if we have a text of (number)E(number),\n // we don't want excel to transform it into exponential (1.0E06) to cancel that effect we can had = in front, ex: =\"1E06\"\n itemData = itemData.toString().replace(/\"/gi, `\"\"`);\n exportExponentialWrapper = (itemData.match(/^\\s*\\d+E\\d+\\s*$/i)) ? '=' : '';\n }\n output += exportQuoteWrapper + itemData + exportQuoteWrapper + delimiter;\n });\n\n return output;\n }\n\n /**\n * Triggers download file with file format.\n * IE(6-10) are not supported\n * All other browsers will use plain javascript on client side to produce a file download.\n * @param options\n */\n startDownloadFile(options: { filename: string, csvContent: any, format: FileType | string, useUtf8WithBom: boolean }): void {\n // IE(6-10) don't support javascript download and our service doesn't support either so throw an error, we have to make a round trip to the Web Server for exporting\n if (navigator.appName === 'Microsoft Internet Explorer') {\n throw new Error('Microsoft Internet Explorer 6 to 10 do not support javascript export to CSV. Please upgrade your browser.');\n }\n\n // set the correct MIME type\n const mimeType = (options.format === FileType.csv) ? 'text/csv' : 'text/plain';\n\n // make sure no html entities exist in the data\n const csvContent = htmlEntityDecode(options.csvContent);\n\n // dealing with Excel CSV export and UTF-8 is a little tricky.. We will use Option #2 to cover older Excel versions\n // Option #1: we need to make Excel knowing that it's dealing with an UTF-8, A correctly formatted UTF8 file can have a Byte Order Mark as its first three octets\n // reference: http://stackoverflow.com/questions/155097/microsoft-excel-mangles-diacritics-in-csv-files\n // Option#2: use a 3rd party extension to javascript encode into UTF-16\n let outputData: Uint8Array | string;\n if (options.format === FileType.csv) {\n outputData = new TextEncoder('utf-8').encode(csvContent);\n } else {\n outputData = csvContent;\n }\n\n // create a Blob object for the download\n const blob = new Blob([options.useUtf8WithBom ? '\\uFEFF' : '', outputData], {\n type: `${mimeType};charset=utf-8;`\n });\n\n // when using IE/Edge, then use different download call\n if (typeof navigator.msSaveOrOpenBlob === 'function') {\n navigator.msSaveOrOpenBlob(blob, options.filename);\n } else {\n // this trick will generate a temp tag\n // the code will then trigger a hidden click for it to start downloading\n const link = document.createElement('a');\n const csvUrl = URL.createObjectURL(blob);\n\n link.textContent = 'download';\n link.href = csvUrl;\n link.setAttribute('download', options.filename);\n\n // set the visibility to hidden so there is no effect on your web-layout\n link.style.visibility = 'hidden';\n\n // this part will append the anchor tag, trigger a click (for download to start) and finally remove the tag once completed\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n}\n", @@ -254,5 +254,5 @@ "TextEncoder", "Observable" ], - "mappings": "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" + "mappings": "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" } diff --git a/dist/bundles/angular-slickgrid.umd.min.js b/dist/bundles/angular-slickgrid.umd.min.js index cb3291ce3..29bfd80e5 100644 --- a/dist/bundles/angular-slickgrid.umd.min.js +++ b/dist/bundles/angular-slickgrid.umd.min.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("rxjs/Observable"),require("rxjs/add/operator/first"),require("rxjs/add/operator/take"),require("rxjs/add/operator/toPromise"),require("moment-mini"),require("@angular/core"),require("@ngx-translate/core"),require("rxjs/Subject"),require("text-encoding-utf-8"),require("jquery-ui-dist/jquery-ui"),require("slickgrid/lib/jquery.event.drag-2.3.0"),require("slickgrid/slick.core"),require("slickgrid/slick.dataview"),require("slickgrid/slick.grid"),require("slickgrid/slick.groupitemmetadataprovider"),require("slickgrid/controls/slick.columnpicker"),require("slickgrid/controls/slick.gridmenu"),require("slickgrid/controls/slick.pager"),require("slickgrid/plugins/slick.autotooltips"),require("slickgrid/plugins/slick.cellexternalcopymanager"),require("slickgrid/plugins/slick.cellrangedecorator"),require("slickgrid/plugins/slick.cellrangeselector"),require("slickgrid/plugins/slick.cellselectionmodel"),require("slickgrid/plugins/slick.checkboxselectcolumn"),require("slickgrid/plugins/slick.headerbuttons"),require("slickgrid/plugins/slick.headermenu"),require("slickgrid/plugins/slick.rowmovemanager"),require("slickgrid/plugins/slick.rowselectionmodel"),require("@angular/common")):"function"==typeof define&&define.amd?define("angular-slickgrid",["exports","rxjs/Observable","rxjs/add/operator/first","rxjs/add/operator/take","rxjs/add/operator/toPromise","moment-mini","@angular/core","@ngx-translate/core","rxjs/Subject","text-encoding-utf-8","jquery-ui-dist/jquery-ui","slickgrid/lib/jquery.event.drag-2.3.0","slickgrid/slick.core","slickgrid/slick.dataview","slickgrid/slick.grid","slickgrid/slick.groupitemmetadataprovider","slickgrid/controls/slick.columnpicker","slickgrid/controls/slick.gridmenu","slickgrid/controls/slick.pager","slickgrid/plugins/slick.autotooltips","slickgrid/plugins/slick.cellexternalcopymanager","slickgrid/plugins/slick.cellrangedecorator","slickgrid/plugins/slick.cellrangeselector","slickgrid/plugins/slick.cellselectionmodel","slickgrid/plugins/slick.checkboxselectcolumn","slickgrid/plugins/slick.headerbuttons","slickgrid/plugins/slick.headermenu","slickgrid/plugins/slick.rowmovemanager","slickgrid/plugins/slick.rowselectionmodel","@angular/common"],e):e(t["angular-slickgrid"]={},t.Rx,t.Rx.Observable.prototype,t.Rx.Observable.prototype,t.Rx.Observable.prototype,t.moment,t.ng.core,t["ngx-translate-core"],t.Rx,t.textEncodingUtf8,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,t.ng.common)}(this,function(t,r,e,i,n,o,p,a,s,l,u,c,d,h,f,m,g,v,y,b,S,C,w,_,O,T,k,E,P,D){"use strict";function F(e,a,s,l){return new(s||(s=Promise))(function(t,i){function r(t){try{o(l.next(t))}catch(e){i(e)}}function n(t){try{o(l["throw"](t))}catch(e){i(e)}}function o(e){e.done?t(e.value):new s(function(t){t(e.value)}).then(r,n)}o((l=l.apply(e,a||[])).next())})}function I(i,r){var n,o,a,t,s={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return t={next:e(0),"throw":e(1),"return":e(2)},"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function e(e){return function(t){return function(t){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,o&&(a=o[2&t[0]?"return":t[0]?"throw":"next"])&&!(a=a.call(o,t[1])).done)return a;switch(o=0,a&&(t=[0,a.value]),t[0]){case 0:case 1:a=t;break;case 4:return s.label++,{value:t[1],done:!1};case 5:s.label++,o=t[1],t=[0];continue;case 7:t=s.ops.pop(),s.trys.pop();continue;default:if(!(a=0<(a=s.trys).length&&a[a.length-1])&&(6===t[0]||2===t[0])){s=0;continue}if(3===t[0]&&(!a||t[1]>a[0]&&t[1]=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}}}function A(t,e){var i="function"==typeof Symbol&&t[Symbol.iterator];if(!i)return t;var r,n,o=i.call(t),a=[];try{for(;(void 0===e||0":e=U.greaterThan;break;case">=":e=U.greaterThanOrEqual;break;case"<>":case"!=":case"neq":case"NEQ":e=U.notEqual;break;case"*":case".*":case"startsWith":e=U.startsWith;break;case"*.":case"endsWith":e=U.endsWith;break;case"=":case"==":case"eq":case"EQ":e=U.equal;break;case"in":case"IN":e=U["in"];break;case"notIn":case"NIN":case"NOT_IN":e=U.notIn;break;default:e=U.contains}return e}function rt(t){var e;switch(t){case R.string:case R.unknown:e=U.contains;break;case R["float"]:case R.number:case R.date:case R.dateIso:case R.date:case R.dateUtc:case R.dateTime:case R.dateTimeIso:case R.dateTimeIsoAmPm:case R.dateTimeIsoAM_PM:case R.dateUs:case R.dateUsShort:case R.dateTimeUs:case R.dateTimeUsAmPm:case R.dateTimeUsAM_PM:case R.dateTimeUsShort:case R.dateTimeUsShortAmPm:case R.dateTimeUsShortAM_PM:default:e=U.equal}return e}function nt(t){var e;switch(t){case G.multipleSelect:e=U["in"];break;case G.singleSelect:e=U.equal}return e}function ot(t,e){var i=null;if(/^[0-9\-\/]*$/.test(t)){var r=decodeURIComponent(t),n=W(new Date(r));n.isValid()&&4===n.year().toString().length&&(i=e?n.utc().format():n.format())}return i}function at(t){var e=document.createElement("div");return e.innerHTML=t,e.textContent||e.innerText}function st(t){return t.replace(/(?:^\w|[A-Z]|\b\w|[\s+\-_\/])/g,function(t,e){return/[\s+\-_\/]/.test(t)?"":0===e?t.toLowerCase():t.toUpperCase()})}var lt=o,ut=tt(R.dateUsShort),ct=function(t,e,i){if(!lt(t,ut,!0).isValid()||!lt(e,ut,!0).isValid())return 0;var r=lt(t,ut,!0),n=lt(e,ut,!0),o=parseInt(r.format("X"),10)-parseInt(n.format("X"),10);return i*(0===o?0:0":case"GT":return i=":case"GE":return i<=e;case"!=":case"<>":case"NE":return e!==i;case"=":case"==":case"EQ":return e===i;case"IN":return!(!i||!i.includes)&&i.includes(e)}return!0},Et=o,Pt=function(t){var e=tt(t.filterSearchType||R.dateIso);if(!Et(t.cellValue,Et.ISO_8601).isValid()||!Et(t.searchTerm,e,!0).isValid())return!0;var i=Et(t.cellValue),r=Et(t.searchTerm);return kt(t.operator||"==",parseInt(i.format("X"),10),parseInt(r.format("X"),10))},Dt=o,Ft=tt(R.dateIso),It=function(t){if(!Dt(t.cellValue,Ft,!0).isValid()||!Dt(t.searchTerm,Ft,!0).isValid())return!0;var e=Dt(t.cellValue,Ft,!0),i=Dt(t.searchTerm,Ft,!0);return kt(t.operator||"==",parseInt(e.format("X"),10),parseInt(i.format("X"),10))},xt=o,At=tt(R.dateUs),$t=function(t){if(!xt(t.cellValue,At,!0).isValid()||!xt(t.searchTerm,At,!0).isValid())return!0;var e=xt(t.cellValue,At,!0),i=xt(t.searchTerm,At,!0);return kt(t.operator||"==",parseInt(e.format("X"),10),parseInt(i.format("X"),10))},Mt=o,Vt=tt(R.dateUsShort),Nt=function(t){if(!Mt(t.cellValue,Vt,!0).isValid()||!Mt(t.searchTerm,Vt,!0).isValid())return!0;var e=Mt(t.cellValue,Vt,!0),i=Mt(t.searchTerm,Vt,!0);return kt(t.operator||"==",parseInt(e.format("X"),10),parseInt(i.format("X"),10))},Rt=o,Bt=function(t){var e=tt(t.filterSearchType||t.fieldType);if(!Rt(t.cellValue,Rt.ISO_8601).isValid()||!Rt(t.searchTerm,e,!0).isValid())return!0;var i=Rt(t.cellValue,Rt.ISO_8601,!0),r=Rt(t.searchTerm,e,!0);return kt(t.operator||"==",parseInt(i.format("X"),10),parseInt(r.format("X"),10))},Gt=function(t){var e=t.cellValue+"";return kt(t.operator||"IN",e,t.searchTerms||[])},Ht=function(t){var e=parseFloat(t.cellValue),i="string"==typeof t.searchTerm?parseFloat(t.searchTerm):t.searchTerm;return kt(t.operator||"==",e,i)},Lt=function(t){t.cellValue=t.cellValue===undefined||null===t.cellValue?"":t.cellValue.toString();var e=t.cellValue.toLowerCase(),i="string"==typeof t.searchTerm?t.searchTerm.toLowerCase():t.searchTerm;return"*"===t.operator||t.operator===U.endsWith?e.endsWith(i):""===t.operator&&"*"===t.cellValueLastChar||t.operator===U.startsWith?e.startsWith(i):""===t.operator?e.includes(i):kt(t.operator||"==",e,i)},zt=function(t){if(t&&t.operator&&"IN"===t.operator.toUpperCase())return Gt(t);switch(t.fieldType){case R["boolean"]:return Tt(t);case R.date:return Pt(t);case R.dateUtc:return Bt(t);case R.dateIso:return It(t);case R.dateUs:case R.dateTimeUs:return $t(t);case R.dateUsShort:case R.dateTimeUsShort:return Nt(t);case R.number:return Ht(t);case R.string:default:return Lt(t)}},Ut={executeMappedCondition:zt,booleanFilter:Tt,collectionSearchFilter:Gt,dateFilter:Pt,dateIsoFilter:It,dateUtcFilter:Bt,dateUsFilter:$t,dateUsShortFilter:Nt,numberFilter:Ht,stringFilter:Lt,testFilter:kt};require("flatpickr");var jt=function(){function t(t){this.translate=t}return t.prototype.init=function(t){var e=this;this.grid=t.grid,this.callback=t.callback,this.columnDef=t.columnDef,this.operator=t.operator,this.searchTerm=t.searchTerm,this.grid&&"function"==typeof this.grid.getOptions&&(this.gridOptions=this.grid.getOptions()),this.$filterElm=this.createDomElement(),this.$filterInputElm.keyup(function(t){e.onTriggerEvent(t)}),this.$selectOperatorElm.change(function(t){e.onTriggerEvent(t)})},t.prototype.clear=function(t){void 0===t&&(t=!0),this.flatInstance&&this.$selectOperatorElm&&(this.$selectOperatorElm.val(0),this.flatInstance.clear())},t.prototype.destroy=function(){this.$filterElm&&(this.$filterElm.off("keyup").remove(),this.$selectOperatorElm.off("change").remove())},t.prototype.setValues=function(t){t&&this.flatInstance.setDate(t)},t.prototype.buildDatePickerInput=function(t){var r=this,e=et(this.columnDef.type||R.dateIso),i=et(this.columnDef.outputType||this.columnDef.type||R.dateUtc),n=this.getCurrentLocale(this.columnDef,this.gridOptions)||"";2');return this.flatInstance=s[0]&&"function"==typeof s[0].flatpickr?s[0].flatpickr(o):null,s},t.prototype.buildSelectOperatorHtmlString=function(){var t=this.getOptionValues(),e="";return t.forEach(function(t){e+='"}),'"},t.prototype.getOptionValues=function(){return[{operator:"",description:""},{operator:"=",description:""},{operator:"<",description:""},{operator:"<=",description:""},{operator:">",description:""},{operator:">=",description:""},{operator:"<>",description:""}]},t.prototype.createDomElement=function(){var t=this.grid.getHeaderRowColumn(this.columnDef.id);$(t).empty();var e=this.searchTerm||"";e&&(this._currentValue=e),this.$selectOperatorElm=$(this.buildSelectOperatorHtmlString()),this.$filterInputElm=this.buildDatePickerInput(e);var i=$('
'),r=$('
'),n=$('
');return n.append(this.$selectOperatorElm),r.append(n),r.append(this.$filterInputElm),i.append(r),i.attr("id","filter-"+this.columnDef.id),this.$filterInputElm.data("columnId",this.columnDef.id),this.operator&&this.$selectOperatorElm.val(this.operator),this.searchTerm&&i.addClass("filled"),i&&"function"==typeof i.appendTo&&i.appendTo(t),i},t.prototype.getCurrentLocale=function(t,e){var i=e.params||t.params||{};return i.i18n&&i.i18n instanceof a.TranslateService?i.i18n.currentLang:"en"},t.prototype.loadFlatpickrLocale=function(t){if("en"!==t){var e=require("flatpickr/dist/l10n/"+t+".js")["default"];return e&&e[t]?e[t]:"en"}return"en"},t.prototype.onTriggerEvent=function(t){var e=this.$selectOperatorElm.find("option:selected").text();this._currentValue?this.$filterElm.addClass("filled"):this.$filterElm.removeClass("filled"),this.callback(t,{columnDef:this.columnDef,searchTerm:this._currentValue,operator:e||"="})},t.prototype.hide=function(){this.flatInstance&&"function"==typeof this.flatInstance.close&&this.flatInstance.close()},t.prototype.show=function(){this.flatInstance&&"function"==typeof this.flatInstance.open&&this.flatInstance.open()},t}();jt.decorators=[{type:p.Injectable}],jt.ctorParameters=function(){return[{type:a.TranslateService}]};var qt=function(){function t(t){this.translate=t}return t.prototype.init=function(t){var e=this;this.grid=t.grid,this.callback=t.callback,this.columnDef=t.columnDef,this.operator=t.operator,this.searchTerm=t.searchTerm,this.grid&&"function"==typeof this.grid.getOptions&&(this.gridOptions=this.grid.getOptions()),this.$filterElm=this.createDomElement(),this.$filterInputElm.keyup(function(t){e.onTriggerEvent(t)}),this.$selectOperatorElm.change(function(t){e.onTriggerEvent(t)})},t.prototype.clear=function(t){void 0===t&&(t=!0),this.$filterElm&&this.$selectOperatorElm&&(this.$selectOperatorElm.val(0),this.$filterInputElm.val(""),t&&this.$filterElm.trigger("keyup"))},t.prototype.destroy=function(){this.$filterElm&&(this.$filterElm.off("keyup").remove(),this.$selectOperatorElm.off("change").remove())},t.prototype.setValues=function(t){t&&this.$filterElm.val(t)},t.prototype.buildInputHtmlString=function(){return''},t.prototype.buildSelectOperatorHtmlString=function(){var t=this.getOptionValues(),e="";return t.forEach(function(t){e+='"}),'"},t.prototype.getOptionValues=function(){var t=[];switch(this.columnDef.type&&this.columnDef.type?this.columnDef.type:R.string){case R.string:t=[{operator:"",description:this.translate.instant("CONTAINS")},{operator:"=",description:this.translate.instant("EQUALS")},{operator:"a*",description:this.translate.instant("STARTS_WITH")},{operator:"*z",description:this.translate.instant("ENDS_WITH")}];break;default:t=[{operator:"",description:this.translate.instant("CONTAINS")},{operator:"=",description:""},{operator:"<",description:""},{operator:"<=",description:""},{operator:">",description:""},{operator:">=",description:""},{operator:"<>",description:""}]}return t},t.prototype.createDomElement=function(){var t=this.grid.getHeaderRowColumn(this.columnDef.id);$(t).empty(),this.$selectOperatorElm=$(this.buildSelectOperatorHtmlString()),this.$filterInputElm=$(this.buildInputHtmlString());var e=$('
'),i=$('
'),r=$('
');r.append(this.$selectOperatorElm),i.append(r),i.append(this.$filterInputElm),e.append(i),e.attr("id","filter-"+this.columnDef.id);var n="boolean"==typeof this.searchTerm?""+this.searchTerm:this.searchTerm;return this.$filterInputElm.val(n),this.$filterInputElm.data("columnId",this.columnDef.id),this.operator&&this.$selectOperatorElm.val(this.operator),this.searchTerm&&e.addClass("filled"),e&&"function"==typeof e.appendTo&&e.appendTo(t),e},t.prototype.onTriggerEvent=function(t){var e=this.$selectOperatorElm.find("option:selected").text(),i=this.$filterInputElm.val();i?this.$filterElm.addClass("filled"):this.$filterElm.removeClass("filled"),this.callback(t,{columnDef:this.columnDef,searchTerm:i,operator:e||""})},t}();qt.decorators=[{type:p.Injectable}],qt.ctorParameters=function(){return[{type:a.TranslateService}]};var Wt=function(){function t(){}return t.prototype.init=function(t){var e=this;this.grid=t.grid,this.callback=t.callback,this.columnDef=t.columnDef,this.searchTerm=t.searchTerm,this.grid&&"function"==typeof this.grid.getOptions&&(this.gridOptions=this.grid.getOptions());var i=this.buildTemplateHtmlString();this.$filterElm=this.createDomElement(i),this.$filterElm.keyup(function(t){t&&t.target&&t.target.value?e.$filterElm.addClass("filled"):e.$filterElm.removeClass("filled"),e.callback(t,{columnDef:e.columnDef})})},t.prototype.clear=function(t){void 0===t&&(t=!0),this.$filterElm&&(this.$filterElm.val(""),t&&this.$filterElm.trigger("keyup"))},t.prototype.destroy=function(){this.$filterElm&&this.$filterElm.off("keyup").remove()},t.prototype.setValues=function(t){t&&this.$filterElm.val(t)},t.prototype.buildTemplateHtmlString=function(){return''},t.prototype.createDomElement=function(t){var e=this.grid.getHeaderRowColumn(this.columnDef.id);$(e).empty();var i=$(t),r="boolean"==typeof this.searchTerm?""+this.searchTerm:this.searchTerm;return i.val(r),i.attr("id","filter-"+this.columnDef.id),i.data("columnId",this.columnDef.id),this.searchTerm&&i.addClass("filled"),i&&"function"==typeof i.appendTo&&i.appendTo(e),i},t}(),Yt=function(){function t(t,e){var i=this;this.collectionService=t,this.translate=e,this.isFilled=!1,this.enableTranslateLabel=!1,this.defaultOptions={container:"body",filter:!1,maxHeight:200,okButton:!0,addTitle:!0,countSelected:this.translate.instant("X_OF_Y_SELECTED"),allSelected:this.translate.instant("ALL_SELECTED"),selectAllText:this.translate.instant("SELECT_ALL"),selectAllDelimiter:["",""],onClose:function(){var t=i.$filterElm.multipleSelect("getSelects");Array.isArray(t)&&0"+r+"",i&&(n.isFilled=!0)}),'"},t.prototype.createDomElement=function(t){var e=this.grid.getHeaderRowColumn(this.columnDef.id);if($(e).empty(),this.$filterElm=$(t),"function"!=typeof this.$filterElm.multipleSelect)throw new Error('multiple-select.js was not found, make sure to modify your "angular-cli.json" file and include "../node_modules/angular-slickgrid/lib/multiple-select/multiple-select.js" and it\'s css or SASS file');this.$filterElm.attr("id","filter-"+this.columnDef.id),this.$filterElm.data("columnId",this.columnDef.id),this.isFilled&&this.$filterElm.addClass("filled"),this.$filterElm&&"function"==typeof this.$filterElm.appendTo&&this.$filterElm.appendTo(e);var i=Object.assign({},this.defaultOptions,this.columnDef.filter.filterOptions);this.$filterElm=this.$filterElm.multipleSelect(i)},t.prototype.findValueInSearchTerms=function(t){if(this.searchTerms&&Array.isArray(this.searchTerms))for(var e=0;e'+i+""}),'"},t.prototype.createDomElement=function(t){var e=this.grid.getHeaderRowColumn(this.columnDef.id);$(e).empty();var i=$(t),r="boolean"==typeof this.searchTerm?""+this.searchTerm:this.searchTerm;return i.val(r),i.attr("id","filter-"+this.columnDef.id),i.data("columnId",this.columnDef.id),i&&"function"==typeof i.appendTo&&i.appendTo(e),i},t}(),Kt=function(){function t(t,e){var i=this;this.collectionService=t,this.translate=e,this.isFilled=!1,this.enableTranslateLabel=!1,this.defaultOptions={container:"body",filter:!1,maxHeight:200,single:!0,onClose:function(){var t=i.$filterElm.multipleSelect("getSelects"),e="";Array.isArray(t)&&0"+r+"",i&&(n.isFilled=!0)}),'"},t.prototype.createDomElement=function(t){var e=this.grid.getHeaderRowColumn(this.columnDef.id);if($(e).empty(),this.$filterElm=$(t),"function"!=typeof this.$filterElm.multipleSelect)throw new Error('multiple-select.js was not found, make sure to modify your "angular-cli.json" file and include "../node_modules/angular-slickgrid/lib/multiple-select/multiple-select.js" and it\'s css or SASS file');this.$filterElm.attr("id","filter-"+this.columnDef.id),this.$filterElm.data("columnId",this.columnDef.id),this.$filterElm&&"function"==typeof this.$filterElm.appendTo&&this.$filterElm.appendTo(e);var i=Object.assign({},this.defaultOptions,this.columnDef.filter.filterOptions);this.$filterElm=this.$filterElm.multipleSelect(i)},t}();Kt.decorators=[{type:p.Injectable}],Kt.ctorParameters=function(){return[{type:_t},{type:a.TranslateService}]};var Xt={input:Wt,multipleSelect:Yt,singleSelect:Kt,select:Qt,compoundDate:jt,compoundInput:qt},Zt=function(){function t(t,e){this.collectionService=t,this.translate=e,this._eventHandler=new Slick.EventHandler,this._filters=[],this._columnFilters={},this._isFirstQuery=!0,this.onFilterChanged=new s.Subject}return t.prototype.init=function(t,e,i){this._grid=t,this._gridOptions=e},t.prototype.attachBackendOnFilter=function(t,e){var i=this;this._filters=[],this._slickSubscriber=new Slick.Event,this._slickSubscriber.subscribe(this.attachBackendOnFilterSubscribe.bind(this)),this._eventHandler.subscribe(t.onHeaderRowCellRendered,function(t,e){i.addFilterTemplateToHeaderRow(e)})},t.prototype.attachBackendOnFilterSubscribe=function(o,a){return F(this,void 0,void 0,function(){var e,i,r,n;return I(this,function(t){switch(t.label){case 0:if(!a||!a.grid)throw new Error('Something went wrong when trying to attach the "attachBackendOnFilterSubscribe(event, args)" function, it seems that "args" is not populated correctly');if(e=a.grid.getOptions()||{},!(i=e.backendServiceApi||e.onBackendEventApi)||!i.process||!i.service)throw new Error('BackendServiceApi requires at least a "process" function and a "service" defined');return i.preProcess&&i.preProcess(),[4,i.service.onFilterChanged(o,a)];case 1:return r=t.sent(),this.emitFilterChanged("remote"),[4,X(i.process(r))];case 2:return(n=t.sent())&&i.internalPostProcess&&i.internalPostProcess(n),i.postProcess!==undefined&&i.postProcess(n),[2]}})})},t.prototype.attachLocalOnFilter=function(t,e,i){var r=this;this._filters=[],this._dataView=i,this._slickSubscriber=new Slick.Event,i.setFilterArgs({columnFilters:this._columnFilters,grid:this._grid}),i.setFilter(this.customLocalFilter.bind(this,i)),this._slickSubscriber.subscribe(function(t,e){null!=e.columnId&&i.refresh(),r.emitFilterChanged("local")}),this._eventHandler.subscribe(t.onHeaderRowCellRendered,function(t,e){r.addFilterTemplateToHeaderRow(e)})},t.prototype.clearFilters=function(){for(var t in this._filters.forEach(function(t,e){t&&t.clear&&t.clear(!0)}),this._columnFilters)t&&this._columnFilters[t]&&delete this._columnFilters[t];this._dataView&&(this._dataView.refresh(),this._grid.invalidate(),this._grid.render())},t.prototype.customLocalFilter=function(t,e,i){try{for(var r=x(Object.keys(i.columnFilters)),n=r.next();!n.done;n=r.next()){var o=n.value,a=i.columnFilters[o],s=i.grid.getColumnIndex(o),l=i.grid.getColumns()[s];if(!l)return!1;var u=l.type||R.string,c=l.filterSearchType?l.filterSearchType:null,d=e[l.queryField||l.queryFieldFilter||l.field],p=a&&a.searchTerms?a.searchTerms:null,h=!a||a.searchTerm===undefined&&null===a.searchTerm?undefined:a.searchTerm;void 0===h&&(h="");var f=(h=""+h).match(/^([<>!=\*]{0,2})(.*[^<>!=\*])([\*]?)$/),m=a.operator||(f?f[1]:""),g=f?f[2]:"",v=f?f[3]:"*z"===m?"*":"";p&&0=e.length)){var t=e[i];i++,t&&Slick.GlobalEditorLock.cancelCurrentEdit()&&t.execute()}}}},t.prototype.hideColumn=function(t){if(this._grid&&this.visibleColumns){var e=this._grid.getColumnIndex(t.id);this.visibleColumns=this.removeColumnByIndex(this.visibleColumns,e),this._grid.setColumns(this.visibleColumns)}},t.prototype.hookUndoShortcutKey=function(){var e=this;$(document).keydown(function(t){90===t.which&&(t.ctrlKey||t.metaKey)&&(t.shiftKey?e.undoRedoBuffer.redo():e.undoRedoBuffer.undo())})},t.prototype.dispose=function(){this._grid=null,this._dataView=null,this.visibleColumns=[],this.columnPickerControl&&(this.columnPickerControl.destroy(),this.columnPickerControl=null),this.gridMenuControl&&(this.gridMenuControl.destroy(),this.gridMenuControl=null),this.rowSelectionPlugin&&(this.rowSelectionPlugin.destroy(),this.rowSelectionPlugin=null),this.checkboxSelectorPlugin&&(this.checkboxSelectorPlugin.destroy(),this.checkboxSelectorPlugin=null),this.autoTooltipPlugin&&(this.autoTooltipPlugin.destroy(),this.autoTooltipPlugin=null),this.headerButtonsPlugin&&(this.headerButtonsPlugin.destroy(),this.headerButtonsPlugin=null),this.headerMenuPlugin&&(this.headerMenuPlugin.destroy(),this.headerMenuPlugin=null)},t.prototype.addGridMenuCustomCommands=function(i,t){var r=this,e=t.backendServiceApi||t.onBackendEventApi||null;if(t.enableFiltering&&(t&&t.gridMenu&&t.gridMenu.showClearAllFiltersCommand&&t.gridMenu.customItems&&0===t.gridMenu.customItems.filter(function(t){return"clear-filter"===t.command}).length&&t.gridMenu.customItems.push({iconCssClass:t.gridMenu.iconClearAllFiltersCommand||"fa fa-filter text-danger",title:t.enableTranslate?this.translate.instant("CLEAR_ALL_FILTERS"):"Clear All Filters",disabled:!1,command:"clear-filter",positionOrder:50}),t&&t.gridMenu&&t.gridMenu.showToggleFilterCommand&&t.gridMenu.customItems&&0===t.gridMenu.customItems.filter(function(t){return"toggle-filter"===t.command}).length&&t.gridMenu.customItems.push({iconCssClass:t.gridMenu.iconToggleFilterCommand||"fa fa-random",title:t.enableTranslate?this.translate.instant("TOGGLE_FILTER_ROW"):"Toggle Filter Row",disabled:!1,command:"toggle-filter",positionOrder:52}),t&&t.gridMenu&&t.gridMenu.showRefreshDatasetCommand&&e&&t.gridMenu.customItems&&0===t.gridMenu.customItems.filter(function(t){return"refresh-dataset"===t.command}).length&&t.gridMenu.customItems.push({iconCssClass:t.gridMenu.iconRefreshDatasetCommand||"fa fa-refresh",title:t.enableTranslate?this.translate.instant("REFRESH_DATASET"):"Refresh Dataset",disabled:!1,command:"refresh-dataset",positionOrder:54})),t.enableSorting&&t&&t.gridMenu&&t.gridMenu.showClearAllSortingCommand&&t.gridMenu.customItems&&0===t.gridMenu.customItems.filter(function(t){return"clear-sorting"===t.command}).length&&t.gridMenu.customItems.push({iconCssClass:t.gridMenu.iconClearAllSortingCommand||"fa fa-unsorted text-danger",title:t.enableTranslate?this.translate.instant("CLEAR_ALL_SORTING"):"Clear All Sorting",disabled:!1,command:"clear-sorting",positionOrder:51}),t&&t.enableExport&&t.gridMenu&&t.gridMenu.showExportCsvCommand&&t.gridMenu.customItems&&0===t.gridMenu.customItems.filter(function(t){return"export-csv"===t.command}).length&&t.gridMenu.customItems.push({iconCssClass:t.gridMenu.iconExportCsvCommand||"fa fa-download",title:t.enableTranslate?this.translate.instant("EXPORT_TO_CSV"):"Export in CSV format",disabled:!1,command:"export-csv",positionOrder:53}),t&&t.enableExport&&t.gridMenu&&t.gridMenu.showExportTextDelimitedCommand&&t.gridMenu.customItems&&0===t.gridMenu.customItems.filter(function(t){return"export-text-delimited"===t.command}).length&&t.gridMenu.customItems.push({iconCssClass:t.gridMenu.iconExportTextDelimitedCommand||"fa fa-download",title:t.enableTranslate?this.translate.instant("EXPORT_TO_TAB_DELIMITED"):"Export in Text format (Tab delimited)",disabled:!1,command:"export-text-delimited",positionOrder:54}),t.gridMenu&&0>falsy<<");var i=1===t.length&&Array.isArray(t[0])?t[0]:t;return this.body=this.parceFind(i),this},s.prototype.setAlias=function(t){this.alias=t},s.prototype.toString=function(){if(this.body===undefined)throw new ReferenceError("return properties are not defined. use the 'find' function to defined them");return(this.alias?this.alias+":":"")+" "+this.queryFnName+" "+(0!=\*]{0,2})(.*[^<>!=\*])([\*]?)$/),s=e.operator||(a?a[1]:"");d=a?a[2]:"";var l=a?a[3]:"*z"===s?"*":"";if(r&&""===d&&0===n.length)return"continue";n&&0!=\*]{0,2})(.*[^<>!=\*])([\*]?)$/),l=e.operator||(s?s[1]:""),u=s?s[2]:"",c=s?s[3]:"*z"===l?"*":"",d=e.bypassBackendQuery||!1;if(r&&""===u)return w.removeColumnFilter(r),"continue";if(u=u.replace("'","''"),u=encodeURIComponent(u),d)r&&w.saveColumnFilter(r,a,o);else{if(S="",w.odataService.options.caseType===V.pascalCase&&(r=String.titleCase(r||"")),o&&0":e="gt";break;case">=":e="ge";break;case"<>":case"!=":e="ne";break;case"=":case"==":default:e="eq"}return e},t}();ce.decorators=[{type:p.Injectable}],ce.ctorParameters=function(){return[{type:le}]};var de,pe=function(){function t(){this._eventHandler=new Slick.EventHandler}return t.prototype.attachOnCellChange=function(n,t,o){this._eventHandler.subscribe(n.onCellChange,function(t,e){if(t&&e&&e.grid&&e.cell!==undefined&&e.grid.getColumns&&e.grid.getDataItem){var i=e.grid.getColumns()[e.cell];if("function"==typeof i.onCellChange){var r={row:e.row,cell:e.cell,dataView:o,gridDefinition:n.getOptions(),grid:n,columnDef:i,dataContext:e.grid.getDataItem(e.row)};i.onCellChange(r)}}})},t.prototype.attachOnClick=function(n,t,o){this._eventHandler.subscribe(n.onClick,function(t,e){if(t&&e&&e.grid&&e.cell!==undefined&&e.grid.getColumns&&e.grid.getDataItem){var i=e.grid.getColumns()[e.cell];if("function"==typeof i.onCellClick){var r={row:e.row,cell:e.cell,dataView:o,gridDefinition:n.getOptions(),grid:n,columnDef:i,dataContext:e.grid.getDataItem(e.row)};i.onCellClick(r),t.stopImmediatePropagation()}n.getOptions&&n.getOptions().autoEdit}})},t.prototype.dispose=function(){this._eventHandler.unsubscribeAll()},t}(),he=function(){function t(){}return t.prototype.init=function(t,e,i,r){this._grid=t,this._gridOptions=i,this._dataView=r},t.prototype.getDataItemByRowNumber=function(t){if(!this._grid||"function"!=typeof this._grid.getDataItem)throw new Error("We could not find SlickGrid Grid object");return this._grid.getDataItem(t)},t.prototype.getItemRowMetadata=function(r){var n=this;return function(t){var e=n._dataView.getItem(t),i={cssClasses:""};return"object"!=typeof r||$.isEmptyObject(r)||(i=r(t)),e&&e._dirty&&(i.cssClasses=(i.cssClasses||"")+" dirty"),e&&e.rowClass&&(i.cssClasses+=" "+e.rowClass,i.cssClasses+=" row"+t),i}},t.prototype.highlightRow=function(t,e){var i=this;if(void 0===e&&(e=1500),!this._grid.getSelectionModel()){var r=new Slick.RowSelectionModel(this._gridOptions.rowSelectionOptions||{});this._grid.setSelectionModel(r)}this._grid.setSelectedRows([t]),this._dataView.getItemMetadata=this.getItemRowMetadata(this._dataView.getItemMetadata);var n=this._dataView.getItem(t);if(n&&n.id){n.rowClass="highlight",this._dataView.updateItem(n.id,n);var o=this._grid.getOptions();$("#"+o.gridId).find(".highlight.row"+t).first(),setTimeout(function(){n&&n.id&&(delete n.rowClass,i._dataView.getIdxById(n.id)!==undefined&&i._dataView.updateItem(n.id,n))},e+10)}},t.prototype.getSelectedRows=function(){return this._grid.getSelectedRows()},t.prototype.setSelectedRow=function(t){this._grid.setSelectedRows([t])},t.prototype.setSelectedRows=function(t){this._grid.setSelectedRows(t)},t.prototype.renderGrid=function(){this._grid&&"function"==typeof this._grid.invalidate&&(this._grid.invalidate(),this._grid.render())},t.prototype.addItemToDatagrid=function(t){if(!this._grid||!this._gridOptions||!this._dataView)throw new Error("We could not find SlickGrid Grid, DataView objects");if(!this._gridOptions||!this._gridOptions.enableCheckboxSelector&&!this._gridOptions.enableRowSelection)throw new Error("addItemToDatagrid() requires to have a valid Slickgrid Selection Model. You can overcome this issue by enabling enableCheckboxSelector or enableRowSelection to True");this._dataView.insertItem(0,t),this._grid.scrollRowIntoView(0),this.highlightRow(0,1500),this._dataView.refresh()},t.prototype.deleteDataGridItem=function(t){var e=this._dataView.getRowById(t.id),i=t&&t.hasOwnProperty("id")?t.id:-1;if(e===undefined||-1===i)throw new Error('Could not find the item in the grid or it\'s associated "id"');this._dataView.deleteItem(i),this._dataView.refresh()},t.prototype.deleteDataGridItemById=function(t){if(this._dataView.getRowById(t)===undefined)throw new Error('Could not find the item in the grid by it\'s associated "id"');this._dataView.deleteItem(t),this._dataView.refresh()},t.prototype.updateDataGridItem=function(t){var e=this._dataView.getRowById(t.id),i=t&&t.hasOwnProperty("id")?t.id:-1;if(-1===i)throw new Error('Could not find the item in the grid or it\'s associated "id"');this._dataView.getIdxById(i)!==undefined&&(this._dataView.updateItem(i,t),this.highlightRow(e,1500),this._dataView.refresh())},t}(),fe=function(){function t(){}return t.getColumnDefinitionAndData=function(t){if(!(t&&t.grid&&t.grid.getColumns&&t.grid.getDataItem))throw new Error("To get the column definition and data, we need to have these arguments passed (row, cell, grid)");return{columnDef:t.grid.getColumns()[t.cell],dataContext:t.grid.getDataItem(t.row)}},t}(),me=function(){function t(){this.onGridStateChanged=new s.Subject}return t.prototype.init=function(t,e,i){var r=this;this._grid=t,this.filterService=e,this.sortService=i,this._gridOptions=t&&t.getOptions?t.getOptions():{},this._filterSubcription=this.filterService.onFilterChanged.subscribe(function(t){r.onGridStateChanged.next({change:{newValues:t,type:L.filter},gridState:r.getCurrentGridState()})}),this._sorterSubcription=this.sortService.onSortChanged.subscribe(function(t){r.onGridStateChanged.next({change:{newValues:t,type:L.sorter},gridState:r.getCurrentGridState()})})},t.prototype.dispose=function(){this._filterSubcription.unsubscribe(),this._sorterSubcription.unsubscribe()},t.prototype.getCurrentGridState=function(){var t={filters:this.getCurrentFilters(),sorters:this.getCurrentSorters()},e=this.getCurrentPagination();return e&&(t.pagination=e),t},t.prototype.getCurrentFilters=function(){if(this._gridOptions&&this._gridOptions.backendServiceApi){var t=this._gridOptions.backendServiceApi.service;if(t&&t.getCurrentFilters)return t.getCurrentFilters()}else if(this.filterService&&this.filterService.getCurrentLocalFilters)return this.filterService.getCurrentLocalFilters();return null},t.prototype.getCurrentPagination=function(){if(this._gridOptions&&this._gridOptions.backendServiceApi){var t=this._gridOptions.backendServiceApi.service;if(t&&t.getCurrentPagination)return t.getCurrentPagination()}return null},t.prototype.getCurrentSorters=function(){if(this._gridOptions&&this._gridOptions.backendServiceApi){var t=this._gridOptions.backendServiceApi.service;if(t&&t.getCurrentSorters)return t.getCurrentSorters()}else if(this.sortService&&this.sortService.getCurrentLocalSorters)return this.sortService.getCurrentLocalSorters();return null},t}(),ge=function(){function t(){this._eventHandler=new Slick.EventHandler}return t.prototype.init=function(t,e){var i=this;this._grid=t,this._dataView=e,t&&(this._gridOptions=t.getOptions(),this._columnDefinitions=t.getColumns()),t&&this._gridOptions&&this._gridOptions.createPreHeaderPanel&&(this._eventHandler.subscribe(t.onSort,function(t,e){i.createPreHeaderRowGroupingTitle()}),this._eventHandler.subscribe(t.onColumnsResized,function(t,e){i.createPreHeaderRowGroupingTitle()}),this._eventHandler.subscribe(e.onRowCountChanged,function(t,e){i.createPreHeaderRowGroupingTitle()}),setTimeout(function(){i.createPreHeaderRowGroupingTitle()},50))},t.prototype.dispose=function(){this._eventHandler.unsubscribeAll()},t.prototype.createPreHeaderRowGroupingTitle=function(){var t=$(this._grid.getPreHeaderPanel()).empty().addClass("slick-header-columns").css("left","-1000px").width(this._grid.getHeadersWidth());t.parent().addClass("slick-header");for(var e,i,r=this._grid.getHeaderColumnWidthDiff(),n="",o=0,a=0;a').html(''+(e.columnGroup||"")+"").width(e.width-r).appendTo(t)),n=e.columnGroup},t}(),ve=function(){function t(){this.onGridBeforeResize=new s.Subject}return t.prototype.init=function(t){(this._grid=t)&&(this._gridOptions=t.getOptions())},t.prototype.attachAutoResizeDataGrid=function(){var t=this,e=$("#"+(this._gridOptions&&this._gridOptions.gridId?this._gridOptions.gridId:"grid1"));if(e===undefined||e.offset()===undefined)return null;this.resizeGrid(),$(window).on("resize.grid",function(){t.onGridBeforeResize.next(!0),t.resizeGrid(),t.resizeGrid()})},t.prototype.calculateGridNewDimensions=function(t){var e=$("#"+t.gridId),i=t.autoResize&&t.autoResize.containerId?$("#"+t.autoResize.containerId):$("#"+t.gridContainerId),r=$(window);if(r===undefined||i===undefined||e===undefined)return null;var n=t.autoResize&&t.autoResize.bottomPadding?t.autoResize.bottomPadding:20;n&&(t.enablePagination||this._gridOptions.backendServiceApi)&&(n+=35);var o=r.height()||0,a=e.offset(),s=o-(a!==undefined?a.top:0)-n,l=i.width()||0,u=t.autoResize&&t.autoResize.minHeight<0?t.autoResize.minHeight:180,c=t.autoResize&&t.autoResize.minWidth<0?t.autoResize.minWidth:300,d=s,p=t.autoResize&&t.autoResize.sidePadding?l-t.autoResize.sidePadding:l;return dthis._max)&&(this._max=e)},t.prototype.storeResult=function(t){t.max||(t.max={}),t.max[this._field]=this._max},t}(),Ce=function(){function t(t){this._field=t}return t.prototype.init=function(){this._sum=null},t.prototype.accumulate=function(t){var e=t[this._field];null==e||""===e||isNaN(e)||(this._sum+=parseFloat(e))},t.prototype.storeResult=function(t){t.sum||(t.sum={}),t.sum[this._field]=this._sum},t}(),we={Avg:ye,Min:be,Max:Se,Sum:Ce},_e=function(){function t(t){this.args=t,this.init()}return t.prototype.init=function(){this.$input=$(''),this.$input.appendTo(this.args.container),this.$input.focus()},t.prototype.destroy=function(){this.$input.remove()},t.prototype.focus=function(){this.$input.focus()},t.prototype.hide=function(){this.$input.hide()},t.prototype.show=function(){this.$input.show()},t.prototype.loadValue=function(t){this.defaultValue=!!t[this.args.column.field],this.defaultValue?this.$input.prop("checked",!0):this.$input.prop("checked",!1)},t.prototype.preClick=function(){this.$input.prop("checked",!this.$input.prop("checked"))},t.prototype.serializeValue=function(){return this.$input.prop("checked")},t.prototype.applyValue=function(t,e){t[this.args.column.field]=e},t.prototype.isValueChanged=function(){return this.serializeValue()!==this.defaultValue},t.prototype.validate=function(){return{valid:!0,msg:null}},t}(),Oe=o;require("flatpickr");var Te=function(){function t(t){this.args=t,this.init()}return t.prototype.init=function(){var r=this;if(this.args&&this.args.column){var t=this.args.column,e=this.args.grid.getOptions();this.defaultDate=this.args.item?this.args.item[this.args.column.field]:null;var i=et(t.type||R.dateIso),n=et(t.outputType||R.dateUtc),o=this.getCurrentLocale(t,e);2'),this.$input.appendTo(this.args.container),this.flatInstance=this.$input[0]&&"function"==typeof this.$input[0].flatpickr?this.$input[0].flatpickr(a):null,this.show()}},t.prototype.getCurrentLocale=function(t,e){var i=e.params||t.params||{};return i.i18n&&i.i18n instanceof a.TranslateService?i.i18n.currentLang:"en"},t.prototype.loadFlatpickrLocale=function(t){if("en"!==t){var e=require("flatpickr/dist/l10n/"+t+".js")["default"];return e&&e[t]?e[t]:"en"}return"en"},t.prototype.destroy=function(){this.hide(),this.$input.remove()},t.prototype.show=function(){this.flatInstance&&"function"==typeof this.flatInstance.open&&this.flatInstance.open()},t.prototype.hide=function(){this.flatInstance&&"function"==typeof this.flatInstance.close&&this.flatInstance.close()},t.prototype.focus=function(){this.$input.focus()},t.prototype.save=function(){this.args.commitChanges()},t.prototype.loadValue=function(t){this.defaultDate=t[this.args.column.field]},t.prototype.serializeValue=function(){var t=tt(this.args.column.type||R.dateIso);return Oe(this.defaultDate).format(t)},t.prototype.applyValue=function(t,e){t[this.args.column.field]=e},t.prototype.isValueChanged=function(){return!(""===this.$input.val()&&null==this.defaultDate)&&this.$input.val()!==this.defaultDate},t.prototype.validate=function(){if(this.args.column.validator){var t=this.args.column.validator(this.$input.val(),this.args);if(!t.valid)return t}return{valid:!0,msg:null}},t}(),ke=function(){function t(t){this.args=t,this.init()}return t.prototype.init=function(){var t=this;this.$input=$("").appendTo(this.args.container).on("keydown.nav",function(t){t.keyCode!==z.LEFT&&t.keyCode!==z.RIGHT||t.stopImmediatePropagation()}),setTimeout(function(){t.$input.focus().select()},50)},t.prototype.destroy=function(){this.$input.remove()},t.prototype.focus=function(){this.$input.focus()},t.prototype.getDecimalPlaces=function(){var t=this.args.column.params||{},e=t&&t.hasOwnProperty("decimalPlaces")?t.decimalPlaces:undefined;return e===undefined&&(e=2),e||0===e?e:null},t.prototype.loadValue=function(t){this.defaultValue=t[this.args.column.field];var e=this.getDecimalPlaces();null!==e&&(this.defaultValue||0===this.defaultValue)&&this.defaultValue.toFixed&&(this.defaultValue=this.defaultValue.toFixed(e)),this.$input.val(this.defaultValue),this.$input[0].defaultValue=this.defaultValue,this.$input.select()},t.prototype.serializeValue=function(){var t=parseFloat(this.$input.val())||0,e=this.getDecimalPlaces();return null!==e&&(t||0===t)&&t.toFixed&&(t=parseFloat(t.toFixed(e))),t},t.prototype.applyValue=function(t,e){t[this.args.column.field]=e},t.prototype.isValueChanged=function(){var t=this.$input.val();return!(""===t&&null===this.defaultValue)&&t!==this.defaultValue},t.prototype.validate=function(){var t=this.$input.val();if(isNaN(t))return{valid:!1,msg:"Please enter a valid number"};if(this.args.column.validator){var e=this.args.column.validator(t);if(!e.valid)return e}return{valid:!0,msg:null}},t}(),Ee=function(){function t(t){this.args=t,this.init()}return t.prototype.init=function(){var t=this;this.$input=$("").appendTo(this.args.container).on("keydown.nav",function(t){t.keyCode!==z.LEFT&&t.keyCode!==z.RIGHT||t.stopImmediatePropagation()}),setTimeout(function(){t.$input.focus().select()},50)},t.prototype.destroy=function(){this.$input.remove()},t.prototype.focus=function(){this.$input.focus()},t.prototype.loadValue=function(t){this.defaultValue=parseInt(t[this.args.column.field],10),this.$input.val(this.defaultValue),this.$input[0].defaultValue=this.defaultValue,this.$input.select()},t.prototype.serializeValue=function(){return parseInt(this.$input.val(),10)||0},t.prototype.applyValue=function(t,e){t[this.args.column.field]=e},t.prototype.isValueChanged=function(){var t=this.$input.val(),e=isNaN(t)?t:parseInt(t,10);return!(""===e&&null===this.defaultValue)&&e!==this.defaultValue},t.prototype.validate=function(){var t=this.$input.val();if(isNaN(t))return{valid:!1,msg:"Please enter a valid integer"};if(this.args.column.validator){var e=this.args.column.validator(t);if(!e.valid)return e}return{valid:!0,msg:null}},t}(),Pe=function(){function t(t){this.args=t,this.init()}return t.prototype.init=function(){var e=this,t=$("body");this.$wrapper=$('
').appendTo(t),this.$input=$('