angular-ui-grid
Version:
A data grid for Angular
2 lines • 6.39 kB
JavaScript
/*! For license information please see ui-grid.saveState.min.js.LICENSE.txt */
(()=>{var e={609:()=>{!function(){"use strict";var e=angular.module("ui.grid.saveState",["ui.grid","ui.grid.selection","ui.grid.cellNav","ui.grid.grouping","ui.grid.pinning","ui.grid.treeView"]);e.constant("uiGridSaveStateConstants",{featureName:"saveState"}),e.service("uiGridSaveStateService",(function(){var e={initializeGrid:function(i){i.saveState={},this.defaultGridOptions(i.options);var n={events:{saveState:{}},methods:{saveState:{save:function(){return e.save(i)},restore:function(n,o){return e.restore(i,n,o)}}}};i.api.registerEventsFromObject(n.events),i.api.registerMethodsFromObject(n.methods)},defaultGridOptions:function(e){e.saveWidths=!1!==e.saveWidths,e.saveOrder=!1!==e.saveOrder,e.saveScroll=!0===e.saveScroll,e.saveFocus=!0!==e.saveScroll&&!1!==e.saveFocus,e.saveVisible=!1!==e.saveVisible,e.saveSort=!1!==e.saveSort,e.saveFilter=!1!==e.saveFilter,e.saveSelection=!1!==e.saveSelection,e.saveGrouping=!1!==e.saveGrouping,e.saveGroupingExpandedStates=!0===e.saveGroupingExpandedStates,e.savePinning=!1!==e.savePinning,e.saveTreeView=!1!==e.saveTreeView},save:function(i){var n={};return n.columns=e.saveColumns(i),n.scrollFocus=e.saveScrollFocus(i),n.selection=e.saveSelection(i),n.grouping=e.saveGrouping(i),n.treeView=e.saveTreeView(i),n.pagination=e.savePagination(i),n},restore:function(i,n,o){return o.columns&&e.restoreColumns(i,o.columns),o.scrollFocus&&e.restoreScrollFocus(i,n,o.scrollFocus),o.selection&&e.restoreSelection(i,o.selection),o.grouping&&e.restoreGrouping(i,o.grouping),o.treeView&&e.restoreTreeView(i,o.treeView),o.pagination&&e.restorePagination(i,o.pagination),i.refresh()},saveColumns:function(e){var i=[];return e.getOnlyDataColumns().forEach((function(n){var o={};o.name=n.name,e.options.saveVisible&&(o.visible=n.visible),e.options.saveWidths&&(o.width=n.width),e.options.saveSort&&(o.sort=angular.copy(n.sort)),e.options.saveFilter&&(o.filters=[],n.filters.forEach((function(e){var i={};angular.forEach(e,(function(e,n){"condition"!==n&&"$$hashKey"!==n&&"placeholder"!==n&&(i[n]=e)})),o.filters.push(i)}))),e.api.pinning&&e.options.savePinning&&(o.pinned=n.renderContainer?n.renderContainer:""),i.push(o)})),i},saveScrollFocus:function(i){if(!i.api.cellNav)return{};var n={};if(i.options.saveFocus){n.focus=!0;var o=i.api.cellNav.getFocusedCell();null!==o&&(null!==o.col&&(n.colName=o.col.colDef.name),null!==o.row&&(n.rowVal=e.getRowVal(i,o.row)))}return(i.options.saveScroll||i.options.saveFocus&&!n.colName&&!n.rowVal)&&(n.focus=!1,i.renderContainers.body.prevRowScrollIndex&&(n.rowVal=e.getRowVal(i,i.renderContainers.body.visibleRowCache[i.renderContainers.body.prevRowScrollIndex])),i.renderContainers.body.prevColScrollIndex&&(n.colName=i.renderContainers.body.visibleColumnCache[i.renderContainers.body.prevColScrollIndex].name)),n},saveSelection:function(i){return i.api.selection&&i.options.saveSelection?i.api.selection.getSelectedGridRows().map((function(n){return e.getRowVal(i,n)})):[]},saveGrouping:function(e){return e.api.grouping&&e.options.saveGrouping?e.api.grouping.getGrouping(e.options.saveGroupingExpandedStates):{}},savePagination:function(e){return e.api.pagination&&e.options.paginationPageSize?{paginationCurrentPage:e.options.paginationCurrentPage,paginationPageSize:e.options.paginationPageSize}:{}},saveTreeView:function(e){return e.api.treeView&&e.options.saveTreeView?e.api.treeView.getTreeView():{}},getRowVal:function(e,i){if(!i)return null;var n={};return e.options.saveRowIdentity?(n.identity=!0,n.row=e.options.saveRowIdentity(i.entity)):(n.identity=!1,n.row=e.renderContainers.body.visibleRowCache.indexOf(i)),n},restoreColumns:function(e,i){var n=!1;i.forEach((function(i,o){var t=e.getColumn(i.name);if(t&&!e.isRowHeaderColumn(t)){!e.options.saveVisible||t.visible===i.visible&&t.colDef.visible===i.visible||(t.visible=i.visible,t.colDef.visible=i.visible,e.api.core.raise.columnVisibilityChanged(t)),e.options.saveWidths&&t.width!==i.width&&(t.width=i.width,t.hasCustomWidth=!0),!e.options.saveSort||angular.equals(t.sort,i.sort)||void 0===t.sort&&angular.isEmpty(i.sort)||(t.sort=angular.copy(i.sort),n=!0),e.options.saveFilter&&!angular.equals(t.filters,i.filters)&&(i.filters.forEach((function(e,i){angular.extend(t.filters[i],e),void 0!==e.term&&null!==e.term||delete t.filters[i].term})),e.api.core.raise.filterChanged(t)),e.api.pinning&&e.options.savePinning&&t.renderContainer!==i.pinned&&e.api.pinning.pinColumn(t,i.pinned);var r=e.getOnlyDataColumns().indexOf(t);if(-1!==r&&e.options.saveOrder&&r!==o){var a=e.columns.splice(r+e.rowHeaderColumns.length,1)[0];e.columns.splice(o+e.rowHeaderColumns.length,0,a)}}})),n&&e.api.core.raise.sortChanged(e,e.getColumnSorting())},restoreScrollFocus:function(i,n,o){if(i.api.cellNav){var t,r;if(o.colName){var a=i.options.columnDefs.filter((function(e){return e.name===o.colName}));a.length>0&&(t=a[0])}o.rowVal&&o.rowVal.row&&(r=o.rowVal.identity?e.findRowByIdentity(i,o.rowVal):i.renderContainers.body.visibleRowCache[o.rowVal.row]);var s=r&&r.entity?r.entity:null;(t||s)&&(o.focus?i.api.cellNav.scrollToFocus(s,t):i.scrollTo(s,t))}},restoreSelection:function(i,n){i.api.selection&&(i.api.selection.clearSelectedRows(),n.forEach((function(n){if(n.identity){var o=e.findRowByIdentity(i,n);o&&i.api.selection.selectRow(o.entity)}else i.api.selection.selectRowByVisibleIndex(n.row)})))},restoreGrouping:function(e,i){e.api.grouping&&null!=i&&!angular.equals(i,{})&&e.api.grouping.setGrouping(i)},restoreTreeView:function(e,i){e.api.treeView&&null!=i&&!angular.equals(i,{})&&e.api.treeView.setTreeView(i)},restorePagination:function(e,i){e.api.pagination&&e.options.paginationPageSize&&(e.options.paginationCurrentPage=i.paginationCurrentPage,e.options.paginationPageSize=i.paginationPageSize)},findRowByIdentity:function(e,i){if(!e.options.saveRowIdentity)return null;var n=e.rows.filter((function(n){return e.options.saveRowIdentity(n.entity)===i.row}));return n.length>0?n[0]:null}};return e})),e.directive("uiGridSaveState",["uiGridSaveStateConstants","uiGridSaveStateService","gridUtil","$compile",function(e,i,n,o){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,link:function(e,n,o,t){i.initializeGrid(t.grid)}}}])}()}},i={};function n(o){var t=i[o];if(void 0!==t)return t.exports;var r=i[o]={exports:{}};return e[o](r,r.exports,n),r.exports}n(609)})();