-
Notifications
You must be signed in to change notification settings - Fork 77
/
Copy pathui-grid.saveState.min.js
6 lines (6 loc) · 5.98 KB
/
ui-grid.saveState.min.js
1
2
3
4
5
6
/*!
* ui-grid - v4.12.7 - 2024-04-12
* http://ui-grid.info/
* Copyright (c) 2024 ; License: MIT
*/
!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 a={initializeGrid:function(n){n.saveState={},this.defaultGridOptions(n.options);var e={saveState:{}},i={saveState:{save:function(){return a.save(n)},restore:function(e,i){return a.restore(n,e,i)}}};n.api.registerEventsFromObject(e),n.api.registerMethodsFromObject(i)},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(e){var i={};return i.columns=a.saveColumns(e),i.scrollFocus=a.saveScrollFocus(e),i.selection=a.saveSelection(e),i.grouping=a.saveGrouping(e),i.treeView=a.saveTreeView(e),i.pagination=a.savePagination(e),i},restore:function(e,i,n){return n.columns&&a.restoreColumns(e,n.columns),n.scrollFocus&&a.restoreScrollFocus(e,i,n.scrollFocus),n.selection&&a.restoreSelection(e,n.selection),n.grouping&&a.restoreGrouping(e,n.grouping),n.treeView&&a.restoreTreeView(e,n.treeView),n.pagination&&a.restorePagination(e,n.pagination),e.refresh()},saveColumns:function(n){var o=[];return n.getOnlyDataColumns().forEach(function(e){var i={};i.name=e.name,n.options.saveVisible&&(i.visible=e.visible),n.options.saveWidths&&(i.width=e.width),n.options.saveSort&&(i.sort=angular.copy(e.sort)),n.options.saveFilter&&(i.filters=[],e.filters.forEach(function(e){var n={};angular.forEach(e,function(e,i){"condition"!==i&&"$$hashKey"!==i&&"placeholder"!==i&&(n[i]=e)}),i.filters.push(n)})),n.api.pinning&&n.options.savePinning&&(i.pinned=e.renderContainer||""),o.push(i)}),o},saveScrollFocus:function(e){var i,n;return e.api.cellNav?(i={},e.options.saveFocus&&(i.focus=!0,null!==(n=e.api.cellNav.getFocusedCell()))&&(null!==n.col&&(i.colName=n.col.colDef.name),null!==n.row)&&(i.rowVal=a.getRowVal(e,n.row)),(e.options.saveScroll||e.options.saveFocus&&!i.colName&&!i.rowVal)&&(i.focus=!1,e.renderContainers.body.prevRowScrollIndex&&(i.rowVal=a.getRowVal(e,e.renderContainers.body.visibleRowCache[e.renderContainers.body.prevRowScrollIndex])),e.renderContainers.body.prevColScrollIndex)&&(i.colName=e.renderContainers.body.visibleColumnCache[e.renderContainers.body.prevColScrollIndex].name),i):{}},saveSelection:function(i){return i.api.selection&&i.options.saveSelection?i.api.selection.getSelectedGridRows().map(function(e){return a.getRowVal(i,e)}):[]},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){var n;return i?(n={},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):null},restoreColumns:function(o,e){var t=!1;e.forEach(function(e,i){var n=o.getColumn(e.name);n&&!o.isRowHeaderColumn(n)&&(!o.options.saveVisible||n.visible===e.visible&&n.colDef.visible===e.visible||(n.visible=e.visible,n.colDef.visible=e.visible,o.api.core.raise.columnVisibilityChanged(n)),o.options.saveWidths&&n.width!==e.width&&(n.width=e.width,n.hasCustomWidth=!0),!o.options.saveSort||angular.equals(n.sort,e.sort)||void 0===n.sort&&angular.isEmpty(e.sort)||(n.sort=angular.copy(e.sort),t=!0),o.options.saveFilter&&!angular.equals(n.filters,e.filters)&&(e.filters.forEach(function(e,i){angular.extend(n.filters[i],e),void 0!==e.term&&null!==e.term||delete n.filters[i].term}),o.api.core.raise.filterChanged(n)),o.api.pinning&&o.options.savePinning&&n.renderContainer!==e.pinned&&o.api.pinning.pinColumn(n,e.pinned),-1!==(e=o.getOnlyDataColumns().indexOf(n)))&&o.options.saveOrder&&e!==i&&(e=o.columns.splice(e+o.rowHeaderColumns.length,1)[0],o.columns.splice(i+o.rowHeaderColumns.length,0,e))}),t&&o.api.core.raise.sortChanged(o,o.getColumnSorting())},restoreScrollFocus:function(e,i,n){var o,t,r;e.api.cellNav&&(n.colName&&0<(r=e.options.columnDefs.filter(function(e){return e.name===n.colName})).length&&(o=r[0]),r=(t=n.rowVal&&n.rowVal.row?n.rowVal.identity?a.findRowByIdentity(e,n.rowVal):e.renderContainers.body.visibleRowCache[n.rowVal.row]:t)&&t.entity?t.entity:null,o||r)&&(n.focus?e.api.cellNav.scrollToFocus(r,o):e.scrollTo(r,o))},restoreSelection:function(n,e){n.api.selection&&(n.api.selection.clearSelectedRows(),e.forEach(function(e){var i;e.identity?(i=a.findRowByIdentity(n,e))&&n.api.selection.selectRow(i.entity):n.api.selection.selectRowByVisibleIndex(e.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(i,n){var e;return i.options.saveRowIdentity&&0<(e=i.rows.filter(function(e){return i.options.saveRowIdentity(e.entity)===n.row})).length?e[0]:null}};return a}),e.directive("uiGridSaveState",["uiGridSaveStateConstants","uiGridSaveStateService","gridUtil","$compile",function(e,t,i,n){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,link:function(e,i,n,o){t.initializeGrid(o.grid)}}}])}();