angular-ui-grid
Version:
A data grid for Angular
2 lines • 14.5 kB
JavaScript
/*! For license information please see ui-grid.selection.min.js.LICENSE.txt */
(()=>{var e={331:e=>{e.exports='<span\n ng-if="grid.selection.selectedCount !== 0 && grid.options.enableFooterTotalSelected">\n ({{"search.selectedItems" | t}} {{grid.selection.selectedCount}})\n</span>\n'},714:e=>{e.exports='<div>\n \x3c!-- <div class="ui-grid-vertical-bar"> </div> --\x3e\n <div\n class="ui-grid-cell-contents"\n col-index="renderIndex">\n <ui-grid-selection-select-all-buttons\n ng-if="grid.options.enableSelectAll"\n role="checkbox"\n ng-model="grid.selection.selectAll">\n </ui-grid-selection-select-all-buttons>\n </div>\n</div>\n'},623:e=>{e.exports='<div class="ui-grid-cell-contents ui-grid-disable-selection clickable">\n <ui-grid-selection-row-header-buttons>\n </ui-grid-selection-row-header-buttons>\n</div>\n'},465:e=>{e.exports='<div\n class="ui-grid-selection-row-header-buttons ui-grid-icon-ok clickable"\n ng-class="{\'ui-grid-row-selected\': row.isSelected}"\n tabindex="0"\n ng-click="selectButtonClick(row, $event)"\n ng-keydown="selectButtonKeyDown(row, $event)"\n ng-attr-aria-label="{{(\'selection.aria.row\' | t) + \' \' + (row.index + 1) + \', \' + col.displayName}}"\n aria-checked="{{row.isSelected}}"\n role="checkbox"\n ng-model="row.isSelected">\n \n</div>\n'},957:e=>{e.exports='<div\n\trole="checkbox"\n tabindex="0"\n class="ui-grid-selection-row-header-buttons ui-grid-icon-ok"\n ui-grid-one-bind-aria-label="\'selection.selectAll\' | t"\n aria-checked="{{grid.selection.selectAll}}"\n ng-class="{\'ui-grid-all-selected\': grid.selection.selectAll}"\n ng-click="headerButtonClick($event)"\n ng-keydown="headerButtonKeyDown($event)">\n</div>\n'},262:()=>{!function(){"use strict";var e=angular.module("ui.grid.selection",["ui.grid"]);e.constant("uiGridSelectionConstants",{featureName:"selection",selectionRowHeaderColName:"selectionRowHeaderCol"}),angular.module("ui.grid").config(["$provide",function(e){e.decorator("GridRow",["$delegate",function(e){return e.prototype.setSelected=function(e){e!==this.isSelected&&(this.isSelected=e,this.grid.selection.selectedCount+=e?1:-1)},e.prototype.setFocused=function(e){e!==this.isFocused&&(this.grid.selection.focusedRow&&(this.grid.selection.focusedRow.isFocused=!1),this.grid.selection.focusedRow=e?this:null,this.isFocused=e)},e}])}]),e.service("uiGridSelectionService",(function(){var e={initializeGrid:function(t){t.selection={lastSelectedRow:null,focusedRow:null,selectAll:!1},t.selection.selectedCount=0,e.defaultGridOptions(t.options);var i={events:{selection:{rowFocusChanged:function(e,t,i){},rowSelectionChanged:function(e,t,i){},rowSelectionChangedBatch:function(e,t,i){}}},methods:{selection:{toggleRowSelection:function(i,o){var n=t.getRow(i);null!=n&&null!==n&&e.toggleRowSelection(t,n,o,t.options.multiSelect,t.options.noUnselect,!0)},selectRow:function(i,o){var n=t.getRow(i);null==n||null===n||n.isSelected||e.toggleRowSelection(t,n,o,t.options.multiSelect,t.options.noUnselect,!0)},selectRowByVisibleIndex:function(i,o){var n=t.renderContainers.body.visibleRowCache[i];null==n||null==n||n.isSelected||e.toggleRowSelection(t,n,o,t.options.multiSelect,t.options.noUnselect,!1)},selectRowByKey:function(i,o,n,l,c){var r=t.findRowByKey(i,o,n,c);null==r||null==r||r.isSelected||e.toggleRowSelection(t,r,l,t.options.multiSelect,t.options.noUnselect,!1)},unSelectRow:function(i,o){var n=t.getRow(i);null!=n&&null!==n&&n.isSelected&&e.toggleRowSelection(t,n,o,t.options.multiSelect,t.options.noUnselect,!0)},unSelectRowByVisibleIndex:function(i,o){var n=t.renderContainers.body.visibleRowCache[i];null!=n&&null!=n&&n.isSelected&&e.toggleRowSelection(t,n,o,t.options.multiSelect,t.options.noUnselect,!1)},unSelectRowByKey:function(i,o,n,l,c){var r=t.findRowByKey(i,o,n,c);null!=r&&null!=r&&r.isSelected&&e.toggleRowSelection(t,r,l,t.options.multiSelect,t.options.noUnselect,!1)},selectAllRows:function(i){if(!1!==t.options.multiSelect){var o=[];t.rows.forEach((function(n){n.isSelected||!1===n.enableSelection||!1===t.options.isRowSelectable(n)||(n.setSelected(!0),e.decideRaiseSelectionEvent(t,n,o,i))})),t.selection.selectAll=!0,e.decideRaiseSelectionBatchEvent(t,o,i)}},selectAllVisibleRows:function(i){if(!1!==t.options.multiSelect){var o=[];t.rows.forEach((function(n){n.visible?n.isSelected||!1===n.enableSelection||!1===t.options.isRowSelectable(n)||(n.setSelected(!0),e.decideRaiseSelectionEvent(t,n,o,i)):n.isSelected&&(n.setSelected(!1),e.decideRaiseSelectionEvent(t,n,o,i))})),t.selection.selectAll=!0,e.decideRaiseSelectionBatchEvent(t,o,i)}},clearSelectedRows:function(i){e.clearSelectedRows(t,i)},getSelectedRows:function(){return e.mapAndFilterRowsByEntity(e.getSelectedRows(t))},getUnSelectedRows:function(){return e.mapAndFilterRowsByEntity(e.getUnSelectedRows(t))},getSelectedGridRows:function(){return e.getSelectedRows(t)},getUnSelectedGridRows:function(){return e.getUnSelectedRows(t)},getSelectedCount:function(){return t.selection.selectedCount},setMultiSelect:function(e){t.options.multiSelect=e},setModifierKeysToMultiSelect:function(e){t.options.modifierKeysToMultiSelect=e},getSelectAllState:function(){return t.selection.selectAll}}}};t.api.registerEventsFromObject(i.events),t.api.registerMethodsFromObject(i.methods)},defaultGridOptions:function(e){e.enableRowSelection=!1!==e.enableRowSelection,e.multiSelect=!1!==e.multiSelect,e.noUnselect=!0===e.noUnselect,e.modifierKeysToMultiSelect=!0===e.modifierKeysToMultiSelect,e.enableRowHeaderSelection=!1!==e.enableRowHeaderSelection,void 0===e.enableFullRowSelection&&(e.enableFullRowSelection=!e.enableRowHeaderSelection),e.enableFocusRowOnRowHeaderClick=!1!==e.enableFocusRowOnRowHeaderClick||!e.enableRowHeaderSelection,e.enableSelectRowOnFocus=!1!==e.enableSelectRowOnFocus,e.enableSelectAll=!1!==e.enableSelectAll,e.enableSelectionBatchEvent=!1!==e.enableSelectionBatchEvent,e.selectionRowHeaderWidth=angular.isDefined(e.selectionRowHeaderWidth)?e.selectionRowHeaderWidth:30,e.enableFooterTotalSelected=!1!==e.enableFooterTotalSelected,e.isRowSelectable=angular.isDefined(e.isRowSelectable)?e.isRowSelectable:angular.noop},toggleRowSelection:function(t,i,o,n,l,c){if(!1!==i.enableSelection){void 0===c&&(c=!0);var r=i.isSelected;n||(r?e.getSelectedRows(t).length>1&&(r=!1,e.clearSelectedRows(t,o)):e.clearSelectedRows(t,o)),r&&l||!c&&!i.visible||(i.setSelected(!r),!0===i.isSelected&&(t.selection.lastSelectedRow=i),t.selection.selectAll=t.rows.length===e.getSelectedRows(t).length,t.api.selection.raise.rowSelectionChanged(i,o))}},shiftSelect:function(t,i,o,n){if(n){var l=e.getSelectedRows(t).length>0?t.renderContainers.body.visibleRowCache.indexOf(t.selection.lastSelectedRow):0,c=t.renderContainers.body.visibleRowCache.indexOf(i);if(l>c){var r=l;l=c,c=r}for(var s=[],d=l;d<=c;d++){var a=t.renderContainers.body.visibleRowCache[d];a&&(a.isSelected||!1===a.enableSelection||(a.setSelected(!0),t.selection.lastSelectedRow=a,e.decideRaiseSelectionEvent(t,a,s,o)))}e.decideRaiseSelectionBatchEvent(t,s,o)}},getSelectedRows:function(e){return e.rows.filter((function(e){return e.isSelected}))},getUnSelectedRows:function(e){return e.rows.filter((function(e){return!e.isSelected}))},mapAndFilterRowsByEntity:function(e){return"function"==typeof e.reduce?e.reduce((function(e,t){return!t.entity.hasOwnProperty("$$hashKey")&&angular.isObject(t.entity)||e.push(t.entity),e}),[]):e.filter((function(e){return e.entity.hasOwnProperty("$$hashKey")||!angular.isObject(e.entity)})).map((function(e){return e.entity}))},clearSelectedRows:function(t,i){var o=[];e.getSelectedRows(t).forEach((function(n){n.isSelected&&!1!==n.enableSelection&&(n.setSelected(!1),e.decideRaiseSelectionEvent(t,n,o,i))})),t.selection.selectAll=!1,t.selection.selectedCount=0,e.decideRaiseSelectionBatchEvent(t,o,i)},decideRaiseSelectionEvent:function(e,t,i,o){e.options.enableSelectionBatchEvent?i.push(t):e.api.selection.raise.rowSelectionChanged(t,o)},decideRaiseSelectionBatchEvent:function(e,t,i){t.length>0&&e.api.selection.raise.rowSelectionChangedBatch(t,i)}};return e})),e.directive("uiGridSelection",["i18nService","uiGridSelectionConstants","uiGridSelectionService","uiGridConstants",function(e,t,i,o){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(n,l,c,r){if(i.initializeGrid(r.grid),r.grid.options.enableRowHeaderSelection){var s={name:t.selectionRowHeaderColName,displayName:e.getSafeText("selection.displayName"),width:r.grid.options.selectionRowHeaderWidth,minWidth:10,cellTemplate:"ui-grid/selectionRowHeader",headerCellTemplate:"ui-grid/selectionHeaderCell",enableColumnResizing:!1,enableColumnMenu:!1,exporterSuppressExport:!0,allowCellFocus:!0};r.grid.addRowHeaderColumn(s,0)}var d=!1,a=function(e){return e.forEach((function(e){e.enableSelection=r.grid.options.isRowSelectable(e)})),e},u=function(){r.grid.options.isRowSelectable!==angular.noop&&!0!==d&&(r.grid.registerRowsProcessor(a,500),d=!0)};u();var g=r.grid.registerDataChangeCallback(u,[o.dataChange.OPTIONS]);n.$on("$destroy",g)},post:function(e,t,i,o){}}}}}]),e.directive("uiGridSelectionRowHeaderButtons",["$templateCache","uiGridSelectionService","gridUtil",function(e,t,i){return{replace:!0,restrict:"E",template:e.get("ui-grid/selectionRowHeaderButtons"),scope:!0,require:"^uiGrid",link:function(e,o,n,l){var c=l.grid;function r(e,i){if(i.stopPropagation(),i.shiftKey)t.shiftSelect(c,e,i,c.options.multiSelect);else if(i.ctrlKey||i.metaKey)t.toggleRowSelection(c,e,i,c.options.multiSelect,c.options.noUnselect,!1);else if(e.groupHeader){t.toggleRowSelection(c,e,i,c.options.multiSelect,c.options.noUnselect,!1);for(var o=0;o<e.treeNode.children.length;o++)t.toggleRowSelection(c,e.treeNode.children[o].row,i,c.options.multiSelect,c.options.noUnselect,!1)}else t.toggleRowSelection(c,e,i,c.options.multiSelect&&!c.options.modifierKeysToMultiSelect,c.options.noUnselect,!1);c.options.enableFocusRowOnRowHeaderClick&&e.setFocused(!e.isFocused)&&c.api.selection.raise.rowFocusChanged(e,i)}e.selectButtonClick=r,e.selectButtonKeyDown=function(e,t){32!==t.keyCode&&13!==t.keyCode||(t.preventDefault(),r(e,t))},"ie"===i.detectBrowser()&&o.on("mousedown",(function(e){(e.ctrlKey||e.shiftKey)&&(e.target.onselectstart=function(){return!1},window.setTimeout((function(){e.target.onselectstart=null}),0))})),e.$on("$destroy",(function(){o.off()}))}}}]),e.directive("uiGridSelectionSelectAllButtons",["$templateCache","uiGridSelectionService",function(e,t){return{replace:!0,restrict:"E",template:e.get("ui-grid/selectionSelectAllButtons"),scope:!1,link:function(e){var i=e.col.grid;e.headerButtonKeyDown=function(t){32!==t.keyCode&&13!==t.keyCode||(t.preventDefault(),e.headerButtonClick(t))},e.headerButtonClick=function(e){i.selection.selectAll?(t.clearSelectedRows(i,e),i.options.noUnselect&&i.api.selection.selectRowByVisibleIndex(0,e),i.selection.selectAll=!1):i.options.multiSelect&&(i.api.selection.selectAllVisibleRows(e),i.selection.selectAll=!0)}}}}]),e.directive("uiGridViewport",(function(){return{priority:-200,scope:!1,compile:function(e){var t=angular.element(e[0].querySelector(".ui-grid-canvas:not(.ui-grid-empty-base-layer-container)").children[0]),i="'ui-grid-row-selected': row.isSelected, 'ui-grid-row-focused': row.isFocused}",o=t.attr("ng-class");return i=o?o.slice(0,-1)+","+i:"{"+i,t.attr("ng-class",i),{pre:function(e,t,i,o){},post:function(e,t,i,o){}}}}})),e.directive("uiGridCell",["uiGridConstants","uiGridSelectionService",function(e,t){return{priority:-200,restrict:"A",require:"?^uiGrid",scope:!1,link:function(i,o,n,l){var c=0,r={};l.grid.api.cellNav&&l.grid.api.cellNav.on.viewPortKeyDown(i,(function(o,n){null!==n&&n.row===i.row&&n.col===i.col&&o.keyCode===e.keymap.SPACE&&"selectionRowHeaderCol"===i.col.colDef.name&&(o.preventDefault(),t.toggleRowSelection(i.grid,i.row,o,i.grid.options.multiSelect&&!i.grid.options.modifierKeysToMultiSelect,i.grid.options.noUnselect,!1),i.$apply())}));var s=function(e){"ui-grid-icon-minus-squared"!==e.target.className&&"ui-grid-icon-plus-squared"!==e.target.className&&(o.off("touchend",a),e.shiftKey?t.shiftSelect(i.grid,i.row,e,i.grid.options.multiSelect):e.ctrlKey||e.metaKey?t.toggleRowSelection(i.grid,i.row,e,i.grid.options.multiSelect,i.grid.options.noUnselect,!1):i.grid.options.enableSelectRowOnFocus&&t.toggleRowSelection(i.grid,i.row,e,i.grid.options.multiSelect&&!i.grid.options.modifierKeysToMultiSelect,i.grid.options.noUnselect,!1),i.row.setFocused(!i.row.isFocused),i.grid.api.selection.raise.rowFocusChanged(i.row,e),i.$apply(),window.setTimeout((function(){o.on("touchend",a)}),300))},d=function(e){c=(new Date).getTime(),r=e.changedTouches[0],o.off("click",s)},a=function(e){var t=(new Date).getTime(),i=e.changedTouches[0],n=t-c,l=Math.abs(r.clientX-i.clientX),d=Math.abs(r.clientY-i.clientY);l<100&&d<100&&n<300&&s(e),window.setTimeout((function(){o.on("click",s)}),300)};function u(){i.grid.options.enableRowSelection&&i.grid.options.enableFullRowSelection&&"selectionRowHeaderCol"!==i.col.colDef.name&&(o.addClass("ui-grid-disable-selection"),o.on("touchstart",d),o.on("touchend",a),o.on("click",s),i.registered=!0)}u();var g=i.grid.registerDataChangeCallback((function(){i.grid.options.enableRowSelection&&i.grid.options.enableFullRowSelection&&!i.registered?u():i.grid.options.enableRowSelection&&i.grid.options.enableFullRowSelection||!i.registered||i.registered&&(o.removeClass("ui-grid-disable-selection"),o.off("touchstart",d),o.off("touchend",a),o.off("click",s),i.registered=!1)}),[e.dataChange.OPTIONS]);o.on("$destroy",g)}}}]),e.directive("uiGridGridFooter",["$compile","gridUtil",function(e,t){return{restrict:"EA",replace:!0,priority:-1e3,require:"^uiGrid",scope:!0,compile:function(){return{pre:function(i,o,n,l){l.grid.options.showGridFooter&&t.getTemplate("ui-grid/gridFooterSelectedItems").then((function(t){var n=angular.element(t),l=e(n)(i);angular.element(o[0].getElementsByClassName("ui-grid-grid-footer")[0]).append(l)}))},post:function(e,t,i,o){}}}}}])}()},561:(e,t,i)=>{angular.module("ui.grid.selection").run(["$templateCache",function(e){"use strict";e.put("ui-grid/gridFooterSelectedItems",i(331)),e.put("ui-grid/selectionHeaderCell",i(714)),e.put("ui-grid/selectionRowHeader",i(623)),e.put("ui-grid/selectionRowHeaderButtons",i(465)),e.put("ui-grid/selectionSelectAllButtons",i(957))}])}},t={};function i(o){var n=t[o];if(void 0!==n)return n.exports;var l=t[o]={exports:{}};return e[o](l,l.exports,i),l.exports}i(262),i(561)})();