angular-ui-grid
Version:
A data grid for Angular
2 lines • 5.19 kB
JavaScript
/*! For license information please see ui-grid.row-edit.min.js.LICENSE.txt */
(()=>{var r={178:()=>{!function(){"use strict";var r=angular.module("ui.grid.rowEdit",["ui.grid","ui.grid.edit","ui.grid.cellNav"]);r.constant("uiGridRowEditConstants",{}),r.service("uiGridRowEditService",["$interval","$q","uiGridConstants","uiGridRowEditConstants","gridUtil",function(r,i,e,t,o){var n={initializeGrid:function(r,i){i.rowEdit={};var e={events:{rowEdit:{saveRow:function(r){}}},methods:{rowEdit:{setSavePromise:function(r,e){n.setSavePromise(i,r,e)},getDirtyRows:function(){return i.rowEdit.dirtyRows?i.rowEdit.dirtyRows:[]},getErrorRows:function(){return i.rowEdit.errorRows?i.rowEdit.errorRows:[]},flushDirtyRows:function(){return n.flushDirtyRows(i)},setRowsDirty:function(r){n.setRowsDirty(i,r)},setRowsClean:function(r){n.setRowsClean(i,r)}}}};i.api.registerEventsFromObject(e.events),i.api.registerMethodsFromObject(e.methods),i.api.core.on.renderingComplete(r,(function(e){i.api.edit.on.afterCellEdit(r,n.endEditCell),i.api.edit.on.beginCellEdit(r,n.beginEditCell),i.api.edit.on.cancelCellEdit(r,n.cancelEditCell),i.api.cellNav&&i.api.cellNav.on.navigate(r,n.navigate)}))},defaultGridOptions:function(r){},saveRow:function(r,i){var e=this;return function(){if(i.isSaving=!0,i.rowEditSavePromise)return i.rowEditSavePromise;var t=r.api.rowEdit.raise.saveRow(i.entity);return i.rowEditSavePromise?i.rowEditSavePromise.then(e.processSuccessPromise(r,i),e.processErrorPromise(r,i)):o.logError("A promise was not returned when saveRow event was raised, either nobody is listening to event, or event handler did not return a promise"),t}},setSavePromise:function(r,i,e){r.getRow(i).rowEditSavePromise=e},processSuccessPromise:function(r,i){var e=this;return function(){delete i.isSaving,delete i.isDirty,delete i.isError,delete i.rowEditSaveTimer,delete i.rowEditSavePromise,e.removeRow(r.rowEdit.errorRows,i),e.removeRow(r.rowEdit.dirtyRows,i)}},processErrorPromise:function(r,i){return function(){delete i.isSaving,delete i.rowEditSaveTimer,delete i.rowEditSavePromise,i.isError=!0,r.rowEdit.errorRows||(r.rowEdit.errorRows=[]),n.isRowPresent(r.rowEdit.errorRows,i)||r.rowEdit.errorRows.push(i)}},removeRow:function(r,i){null!=r&&r.forEach((function(e,t){e.uid===i.uid&&r.splice(t,1)}))},isRowPresent:function(r,i){var e=!1;return r.forEach((function(r,t){r.uid===i.uid&&(e=!0)})),e},flushDirtyRows:function(r){var e=[];return r.api.rowEdit.getDirtyRows().forEach((function(i){n.cancelTimer(r,i),n.saveRow(r,i)(),e.push(i.rowEditSavePromise)})),i.all(e)},endEditCell:function(r,i,e,t){var s=this.grid,d=s.getRow(r);d?(e!==t||d.isDirty)&&(s.rowEdit.dirtyRows||(s.rowEdit.dirtyRows=[]),d.isDirty||(d.isDirty=!0,s.rowEdit.dirtyRows.push(d)),delete d.isError,n.considerSetTimer(s,d)):o.logError("Unable to find rowEntity in grid data, dirty flag cannot be set")},beginEditCell:function(r,i){var e=this.grid,t=e.getRow(r);t?n.cancelTimer(e,t):o.logError("Unable to find rowEntity in grid data, timer cannot be cancelled")},cancelEditCell:function(r,i){var e=this.grid,t=e.getRow(r);t?n.considerSetTimer(e,t):o.logError("Unable to find rowEntity in grid data, timer cannot be set")},navigate:function(r,i){var e=this.grid;r.row.rowEditSaveTimer&&n.cancelTimer(e,r.row),i&&i.row&&i.row!==r.row&&n.considerSetTimer(e,i.row)},considerSetTimer:function(i,e){if(n.cancelTimer(i,e),e.isDirty&&!e.isSaving&&-1!==i.options.rowEditWaitInterval){var t=i.options.rowEditWaitInterval?i.options.rowEditWaitInterval:2e3;e.rowEditSaveTimer=r(n.saveRow(i,e),t,1)}},cancelTimer:function(i,e){e.rowEditSaveTimer&&!e.isSaving&&(r.cancel(e.rowEditSaveTimer),delete e.rowEditSaveTimer)},setRowsDirty:function(r,i){var e;i.forEach((function(i,t){(e=r.getRow(i))?(r.rowEdit.dirtyRows||(r.rowEdit.dirtyRows=[]),e.isDirty||(e.isDirty=!0,r.rowEdit.dirtyRows.push(e)),delete e.isError,n.considerSetTimer(r,e)):o.logError("requested row not found in rowEdit.setRowsDirty, row was: "+i)}))},setRowsClean:function(r,i){var e;i.forEach((function(i,t){(e=r.getRow(i))?(delete e.isDirty,n.removeRow(r.rowEdit.dirtyRows,e),n.cancelTimer(r,e),delete e.isError,n.removeRow(r.rowEdit.errorRows,e)):o.logError("requested row not found in rowEdit.setRowsClean, row was: "+i)}))}};return n}]),r.directive("uiGridRowEdit",["gridUtil","uiGridRowEditService","uiGridEditConstants",function(r,i,e){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(r,e,t,o){i.initializeGrid(r,o.grid)},post:function(r,i,e,t){}}}}}]),r.directive("uiGridViewport",["$compile","uiGridConstants","gridUtil","$parse",function(r,i,e,t){return{priority:-200,scope:!1,compile:function(r,i){var e=angular.element(r.children().children()[0]),t=e.attr("ng-class"),o="";return o=t?t.slice(0,-1)+", 'ui-grid-row-dirty': row.isDirty, 'ui-grid-row-saving': row.isSaving, 'ui-grid-row-error': row.isError}":"{'ui-grid-row-dirty': row.isDirty, 'ui-grid-row-saving': row.isSaving, 'ui-grid-row-error': row.isError}",e.attr("ng-class",o),{pre:function(r,i,e,t){},post:function(r,i,e,t){}}}}}])}()}},i={};function e(t){var o=i[t];if(void 0!==o)return o.exports;var n=i[t]={exports:{}};return r[t](n,n.exports,e),n.exports}e(178)})();