UNPKG

angular-ui-grid

Version:

A data grid for Angular

2 lines 12.2 kB
/*! For license information please see ui-grid.edit.min.js.LICENSE.txt */ (()=>{var e={717:e=>{e.exports='<div>\n <form\n name="inputForm">\n <input\n type="INPUT_TYPE"\n ng-class="\'colt\' + col.uid"\n ui-grid-editor\n ng-model="MODEL_COL_FIELD" />\n </form>\n</div>\n'},792:e=>{e.exports='<div>\n <form\n name="inputForm">\n <select\n ng-class="\'colt\' + col.uid"\n ui-grid-edit-dropdown\n ng-model="MODEL_COL_FIELD"\n ng-options="field[editDropdownIdLabel] as field[editDropdownValueLabel] CUSTOM_FILTERS for field in editDropdownOptionsArray">\n </select>\n </form>\n</div>\n'},347:e=>{e.exports='<div>\n <form\n name="inputForm">\n <input\n ng-class="\'colt\' + col.uid"\n ui-grid-edit-file-chooser\n type="file"\n id="files"\n name="files[]"\n ng-model="MODEL_COL_FIELD"/>\n </form>\n</div>\n'},991:()=>{!function(){"use strict";var e=angular.module("ui.grid.edit",["ui.grid"]);e.constant("uiGridEditConstants",{EDITABLE_CELL_TEMPLATE:/EDITABLE_CELL_TEMPLATE/g,EDITABLE_CELL_DIRECTIVE:/editable_cell_directive/g,events:{BEGIN_CELL_EDIT:"uiGridEventBeginCellEdit",END_CELL_EDIT:"uiGridEventEndCellEdit",CANCEL_CELL_EDIT:"uiGridEventCancelCellEdit"}}),e.service("uiGridEditService",["$q","uiGridConstants","gridUtil",function(e,i,t){var n={initializeGrid:function(e){n.defaultGridOptions(e.options),e.registerColumnBuilder(n.editColumnBuilder),e.edit={};e.api.registerEventsFromObject({edit:{afterCellEdit:function(e,i,t,n){},beginCellEdit:function(e,i,t){},cancelCellEdit:function(e,i){}}})},defaultGridOptions:function(e){e.cellEditableCondition=void 0===e.cellEditableCondition||e.cellEditableCondition,e.enableCellEditOnFocus=void 0!==e.enableCellEditOnFocus&&e.enableCellEditOnFocus},editColumnBuilder:function(i,n,o){var l=[];return i.enableCellEdit=void 0===i.enableCellEdit?void 0===o.enableCellEdit?"object"!==i.type:o.enableCellEdit:i.enableCellEdit,i.cellEditableCondition=void 0===i.cellEditableCondition?o.cellEditableCondition:i.cellEditableCondition,i.enableCellEdit&&(i.editableCellTemplate=i.editableCellTemplate||o.editableCellTemplate||"ui-grid/cellEditor",l.push(t.getTemplate(i.editableCellTemplate).then((function(e){n.editableCellTemplate=e}),(function(e){throw new Error("Couldn't fetch/use colDef.editableCellTemplate '"+i.editableCellTemplate+"'")})))),i.enableCellEditOnFocus=void 0===i.enableCellEditOnFocus?o.enableCellEditOnFocus:i.enableCellEditOnFocus,e.all(l)},isStartEditKey:function(e){return!(e.metaKey||e.keyCode===i.keymap.ESC||e.keyCode===i.keymap.SHIFT||e.keyCode===i.keymap.CTRL||e.keyCode===i.keymap.ALT||e.keyCode===i.keymap.WIN||e.keyCode===i.keymap.CAPSLOCK||e.keyCode===i.keymap.LEFT||e.keyCode===i.keymap.TAB&&e.shiftKey||e.keyCode===i.keymap.RIGHT||e.keyCode===i.keymap.TAB||e.keyCode===i.keymap.UP||e.keyCode===i.keymap.ENTER&&e.shiftKey||e.keyCode===i.keymap.DOWN||e.keyCode===i.keymap.ENTER)}};return n}]),e.directive("uiGridEdit",["gridUtil","uiGridEditService",function(e,i){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(e,t,n,o){i.initializeGrid(o.grid)},post:function(e,i,t,n){}}}}}]),e.directive("uiGridViewport",["uiGridEditConstants",function(e){return{replace:!0,priority:-99998,require:["^uiGrid","^uiGridRenderContainer"],scope:!1,compile:function(){return{post:function(i,t,n,o){var l=o[0];l.grid.api.edit&&l.grid.api.cellNav&&("body"===o[1].containerId&&(i.$on(e.events.CANCEL_CELL_EDIT,(function(){l.focus()})),i.$on(e.events.END_CELL_EDIT,(function(){l.focus()}))))}}}}}]),e.directive("uiGridCell",["$compile","$injector","$timeout","uiGridConstants","uiGridEditConstants","gridUtil","$parse","uiGridEditService","$rootScope","$q",function(e,i,t,n,o,l,r,d,c,a){if(i.has("uiGridCellNavService"))i.get("uiGridCellNavService");return{priority:-100,restrict:"A",scope:!1,require:"?^uiGrid",link:function(i,u,s,f){var E,p,C,v,g,y=!1;if(i.col.colDef.enableCellEdit){var m=function(){},D=function(){},L=function(){i.col.colDef.enableCellEdit&&!1!==i.row.enableCellEdit?i.beginEditEventsWired||T():i.beginEditEventsWired&&w()};L();var b=i.$watch("row",(function(e,i){e!==i&&L()}));i.$on("$destroy",(function(){b(),u.off()}))}function T(){u.on("dblclick",I),u.on("touchstart",k),f&&f.grid.api.cellNav&&(D=f.grid.api.cellNav.on.viewPortKeyDown(i,(function(e,t){null!==t&&(t.row!==i.row||t.col!==i.col||i.col.colDef.enableCellEditOnFocus||_(e))})),m=f.grid.api.cellNav.on.navigate(i,(function(e,n,o){i.col.colDef.enableCellEditOnFocus&&(e.row!==i.row||e.col!==i.col||null!==o&&(!o||"click"!==o.type&&"keydown"!==o.type)||t((function(){I(o)})))}))),i.beginEditEventsWired=!0}function k(e){void 0!==e.originalEvent&&void 0!==e.originalEvent&&(e=e.originalEvent),u.on("touchend",h),(v=t((function(){}),500)).then((function(){setTimeout(I,0),u.off("touchend",h)})).catch(angular.noop)}function h(){t.cancel(v),u.off("touchend",h)}function w(){u.off("dblclick",I),u.off("keydown",_),u.off("touchstart",k),m(),D(),i.beginEditEventsWired=!1}function _(e){d.isStartEditKey(e)&&I(e)}function I(d){i.grid.api.core.scrollToIfNecessary(i.row,i.col).then((function(){!function(d){if(y)return;if(!function(e,t,n){return!t.isSaving&&(angular.isFunction(e.colDef.cellEditableCondition)?e.colDef.cellEditableCondition(i,n):e.colDef.cellEditableCondition)}(i.col,i.row,d))return;var s=i.row.getQualifiedColField(i.col);i.col.colDef.editModelField&&(s=l.preEval("row.entity."+i.col.colDef.editModelField));C=r(s),p=C(i),E=(E=(E=i.col.editableCellTemplate).replace(n.MODEL_COL_FIELD,s)).replace(n.COL_FIELD,"grid.getCellValue(row, col)");var f=i.col.colDef.editDropdownFilter?"|"+i.col.colDef.editDropdownFilter:"";E=E.replace(n.CUSTOM_FILTERS,f);var v="text";switch(i.col.colDef.type){case"boolean":v="checkbox";break;case"number":v="number";break;case"date":v="date"}E=E.replace("INPUT_TYPE",v);var m=i.col.colDef.editDropdownOptionsFunction;if(m)a.when(m(i.row.entity,i.col.colDef)).then((function(e){i.editDropdownOptionsArray=e}));else{var D=i.col.colDef.editDropdownRowEntityOptionsArrayPath;i.editDropdownOptionsArray=D?function(e,i){var t=(i=(i=i.replace(/\[(\w+)\]/g,".$1")).replace(/^\./,"")).split(".");for(;t.length;){var n=t.shift();if(!(n in e))return;e=e[n]}return e}(i.row.entity,D):i.col.colDef.editDropdownOptionsArray}i.editDropdownIdLabel=i.col.colDef.editDropdownIdLabel?i.col.colDef.editDropdownIdLabel:"id",i.editDropdownValueLabel=i.col.colDef.editDropdownValueLabel?i.col.colDef.editDropdownValueLabel:"value";var L=function(){y=!0,w();var t=angular.element(E);u.append(t),g=i.$new(),e(t)(g),angular.element(u.children()[0]).addClass("ui-grid-cell-contents-hidden")};c.$$phase?L():i.$apply(L);var b=i.col.grid.api.core.on.scrollBegin(i,(function(){i.grid.disableScrolling||(G(),i.grid.api.edit.raise.afterCellEdit(i.row.entity,i.col.colDef,C(i),p),b(),T(),k())})),T=i.$on(o.events.END_CELL_EDIT,(function(){G(),i.grid.api.edit.raise.afterCellEdit(i.row.entity,i.col.colDef,C(i),p),T(),b(),k()})),k=i.$on(o.events.CANCEL_CELL_EDIT,(function(){!function(){if(i.grid.disableScrolling=!1,!y)return;C.assign(i,p),i.$apply(),i.grid.api.edit.raise.cancelCellEdit(i.row.entity,i.col.colDef),G()}(),k(),b(),T()}));i.$broadcast(o.events.BEGIN_CELL_EDIT,d),t((function(){i.grid.api.edit.raise.beginCellEdit(i.row.entity,i.col.colDef,d)}))}(d)}))}function G(){if(i.grid.disableScrolling=!1,y){f&&f.grid.api.cellNav&&f.focus();var e=angular.element(u.children()[0]);g.$destroy();for(var t=u.children(),o=1;o<t.length;o++)angular.element(t[o]).remove();e.removeClass("ui-grid-cell-contents-hidden"),y=!1,T(),i.grid.api.core.notifyDataChange(n.dataChange.EDIT)}}}}}]),e.directive("uiGridEditor",["gridUtil","uiGridConstants","uiGridEditConstants","$timeout","uiGridEditService",function(e,i,t,n,o){return{scope:!0,require:["?^uiGrid","?^uiGridRenderContainer","ngModel"],compile:function(){return{pre:function(e,i,t){},post:function(e,l,r,d){var c,a,u;d[0]&&(c=d[0]),d[1]&&(a=d[1]),d[2]&&(u=d[2]),e.$on(t.events.BEGIN_CELL_EDIT,(function(){if(n((function(){if(l[0].focus(),!l[0].select||!e.col.colDef.enableCellEditOnFocus&&c&&c.grid.api.cellNav)try{l[0].setSelectionRange(l[0].value.length,l[0].value.length)}catch(e){}else l[0].select()})),c&&c.grid.api.cellNav)var i=c.grid.api.cellNav.on.viewPortKeyPress(e,(function(e,t){if(o.isStartEditKey(e)){var n="number"==typeof e.which?e.which:e.keyCode;n>0&&(u.$setViewValue(String.fromCharCode(n),e),u.$render())}i()}));l.on("mousedown",(function(i){"checkbox"===l[0].type&&(l.off("blur",e.stopEdit),n((function(){l[0].focus(),l.on("blur",e.stopEdit)})))})),l[0]&&l[0].focus(),l.on("blur",e.stopEdit)})),e.deepEdit=!1,e.stopEdit=function(i){e.inputForm&&!e.inputForm.$valid?(i.stopPropagation(),e.$emit(t.events.CANCEL_CELL_EDIT)):e.$emit(t.events.END_CELL_EDIT),e.deepEdit=!1},l.on("click",(function(i){"checkbox"!==l[0].type&&(e.deepEdit=!0,e.$applyAsync((function(){e.grid.disableScrolling=!0})))})),l.on("keydown",(function(n){if(n.keyCode===i.keymap.ESC)n.stopPropagation(),e.$emit(t.events.CANCEL_CELL_EDIT);if(!e.deepEdit||n.keyCode!==i.keymap.LEFT&&n.keyCode!==i.keymap.RIGHT&&n.keyCode!==i.keymap.UP&&n.keyCode!==i.keymap.DOWN)if(c&&c.grid.api.cellNav)n.uiGridTargetRenderContainerId=a.containerId,null!==c.cellNav.handleKeyDown(n)&&e.stopEdit(n);else switch(n.keyCode){case i.keymap.ENTER:case i.keymap.TAB:n.stopPropagation(),n.preventDefault(),e.stopEdit(n)}else n.stopPropagation();return!0})),e.$on("$destroy",(function(){l.off()}))}}}}}]),e.directive("uiGridEditor",["$filter",function(e){return{priority:-100,require:"?ngModel",link:function(i,t,n,o){2===angular.version.minor&&n.type&&"date"===n.type&&o&&(o.$formatters.push((function(i){return o.$setValidity(null,!i||!isNaN(i.getTime())),e("date")(i,"yyyy-MM-dd")})),o.$parsers.push((function(e){if(e&&e.length>0){var i=function(e){if(void 0===e||""===e)return null;var i=e.split("-");if(3!==i.length)return null;var t=parseInt(i[0],10),n=parseInt(i[1],10),o=parseInt(i[2],10);return n<1||t<1||o<1?null:new Date(t,n-1,o)}(e);return o.$setValidity(null,i&&!isNaN(i.getTime())),i}return o.$setValidity(null,!0),null})))}}}]),e.directive("uiGridEditDropdown",["uiGridConstants","uiGridEditConstants","$timeout",function(e,i,t){return{require:["?^uiGrid","?^uiGridRenderContainer"],scope:!0,compile:function(){return{pre:function(e,i,t){},post:function(n,o,l,r){var d=r[0],c=r[1];n.$on(i.events.BEGIN_CELL_EDIT,(function(){t((function(){o[0].focus()})),o[0].style.width=o[0].parentElement.offsetWidth-1+"px",o.on("blur",(function(e){n.stopEdit(e)}))})),n.stopEdit=function(e){n.$emit(i.events.END_CELL_EDIT)},o.on("keydown",(function(t){if(t.keyCode===e.keymap.ESC)t.stopPropagation(),n.$emit(i.events.CANCEL_CELL_EDIT);if(d&&d.grid.api.cellNav)t.uiGridTargetRenderContainerId=c.containerId,null!==d.cellNav.handleKeyDown(t)&&n.stopEdit(t);else switch(t.keyCode){case e.keymap.ENTER:case e.keymap.TAB:t.stopPropagation(),t.preventDefault(),n.stopEdit(t)}return!0})),n.$on("$destroy",(function(){o.off()}))}}}}}]),e.directive("uiGridEditFileChooser",["gridUtil","uiGridConstants","uiGridEditConstants",function(e,i,t){return{scope:!0,require:["?^uiGrid","?^uiGridRenderContainer"],compile:function(){return{pre:function(e,i,t){},post:function(i,n){n[0].addEventListener("change",(function o(l){var r=l.srcElement||l.target;r&&r.files&&r.files.length>0?("function"==typeof i.col.colDef.editFileChooserCallback?i.col.colDef.editFileChooserCallback(i.row,i.col,r.files):e.logError("You need to set colDef.editFileChooserCallback to use the file chooser"),r.form.reset(),i.$emit(t.events.END_CELL_EDIT)):i.$emit(t.events.CANCEL_CELL_EDIT),n[0].removeEventListener("change",o,!1)}),!1),i.$on(t.events.BEGIN_CELL_EDIT,(function(){n[0].focus(),n[0].select(),n.on("blur",(function(){i.$emit(t.events.END_CELL_EDIT),n.off()}))}))}}}}}])}()},561:(e,i,t)=>{angular.module("ui.grid.edit").run(["$templateCache",function(e){"use strict";e.put("ui-grid/cellEditor",t(717)),e.put("ui-grid/dropdownEditor",t(792)),e.put("ui-grid/fileChooserEditor",t(347))}])}},i={};function t(n){var o=i[n];if(void 0!==o)return o.exports;var l=i[n]={exports:{}};return e[n](l,l.exports,t),l.exports}t(991),t(561)})();