@skyux/grids 4.0.6 → 4.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-grids.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@skyux/grids/modules/grid/types/grid-message-type.ts","ng://@skyux/grids/modules/grid/types/grid-selected-rows-source.ts","ng://@skyux/grids/modules/grid/grid-column.component.ts","ng://@skyux/grids/modules/grid/grid-column.model.ts","ng://@skyux/grids/modules/grid/grid-adapter.service.ts","ng://@skyux/grids/polyfills.ts","ng://@skyux/grids/modules/grid/grid.component.ts","ng://@skyux/grids/modules/grid/grid-cell.component.ts","ng://@skyux/grids/plugin-resources/grids-resources-provider.ts","ng://@skyux/grids/modules/shared/grids-resources.module.ts","ng://@skyux/grids/modules/grid/grid.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export enum SkyGridMessageType {\n\n /**\n * Selects the multiselect checkboxes for all rows in the grid.\n */\n SelectAll = 0,\n\n /**\n * Clears the multiselect checkboxes for all rows in the grid.\n */\n ClearAll = 1,\n\n /**\n * @internal\n */\n PromptDeleteRow = 2,\n\n /**\n * @internal\n */\n AbortDeleteRow = 3\n}\n","/**\n * @internal\n */\nexport enum SkyGridSelectedRowsSource {\n CheckboxChange,\n ClearAll,\n RowClick,\n SelectAll,\n SelectedRowIdsChange\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n QueryList,\n SimpleChanges,\n TemplateRef\n} from '@angular/core';\n\nimport {\n SkyGridColumnAlignment\n} from './types/grid-column-alignment';\n\nimport {\n SkyGridColumnDescriptionModelChange\n} from './types/grid-column-description-model-change';\n\nimport {\n SkyGridColumnHeadingModelChange\n} from './types/grid-column-heading-model-change';\n\nimport {\n SkyGridColumnInlineHelpPopoverModelChange\n} from './types/grid-column-inline-help-popover-model-change';\n\n/**\n * Specifies the column information.\n */\n@Component({\n selector: 'sky-grid-column',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyGridColumnComponent implements OnChanges {\n\n /**\n * Specifies the horizontal alignment of the column's data and header.\n * @default 'left'\n */\n @Input()\n public alignment: SkyGridColumnAlignment = 'left';\n\n /**\n * Specifies a description for the column.\n */\n @Input()\n public description: string;\n\n /**\n * @internal\n */\n @Input()\n public excludeFromHighlighting: boolean;\n\n /**\n * Specifies the property to retrieve cell information from an entry on the grid `data` array.\n * You must provide either the `id` or `field` property for every column,\n * but do not provide both. If `id` does not exist on a column, then `field` is the entry\n * for the grid `selectedColumnIds` array.\n */\n @Input()\n public field: string;\n\n /**\n * Specifies text to display in the column header.\n */\n @Input()\n public heading: string;\n\n /**\n * Indicates whether the column is initially hidden when grid `selectedColumnIds` are not provided.\n * @default false\n */\n @Input()\n public hidden: boolean;\n\n /**\n * Specifies a unique ID for the column. You must provide either the `id` or `field` property\n * for every column, but do not provide both. If `field` does not exist on a column,\n * then the `id` property retrieves cell information from an entry on the grid `data` array.\n */\n @Input()\n public id: string;\n\n /**\n * Specifies a template to display inside an inline help popup for this column.\n */\n @Input()\n public inlineHelpPopover: any;\n\n /**\n * Indicates whether the column sorts the grid when users click the column header.\n * @default true\n */\n @Input()\n public isSortable: boolean = true;\n\n /**\n * Indicates whether the column is locked. The intent is to display locked columns first\n * on the left side of the grid. If set to `true`, then users cannot drag the column\n * to another position and or drag other columns before the locked column.\n * @default false\n */\n @Input()\n public locked: boolean;\n\n /**\n * Specifies a search function to apply for the specific column. By default,\n * the column executes a string compare on the column data.\n * @default (value, searchText) => value.toString().toLowerCase().indexOf(searchText) !== -1\n */\n /* tslint:disable-next-line:no-input-rename */\n @Input('search')\n public searchFunction: (value: any, searchText: string) => boolean = this.search;\n\n /**\n * @internal\n */\n @Input()\n public type: string;\n\n /**\n * Specifies a template for a column. This can be assigned as a reference\n * to the `template` attribute, or it can be assigned as a child of the `template` element\n * inside the `sky-grid-column` component. The template has access to the `value` variable,\n * which contains the value passed to the column, and the `row` variable, which contains\n * the entire row data.\n */\n /* tslint:disable-next-line:no-input-rename */\n @Input('template')\n public templateInput: TemplateRef<any>;\n\n /**\n * Specifies the width of the column in pixels.\n * If undefined, the column width is evenly distributed.\n */\n @Input()\n public width: number;\n\n public descriptionChanges: EventEmitter<string> = new EventEmitter<string>();\n\n public descriptionModelChanges = new EventEmitter<SkyGridColumnDescriptionModelChange>();\n\n public headingChanges: EventEmitter<string> = new EventEmitter<string>();\n\n public headingModelChanges = new EventEmitter<SkyGridColumnHeadingModelChange>();\n\n public inlineHelpPopoverModelChanges = new EventEmitter<SkyGridColumnInlineHelpPopoverModelChange>();\n\n @ContentChildren(TemplateRef)\n private templates: QueryList<TemplateRef<any>>;\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.heading && changes.heading.firstChange === false) {\n this.headingChanges.emit(this.heading);\n this.headingModelChanges.emit({\n value: this.heading,\n id: this.id,\n field: this.field\n });\n }\n if (changes.description && changes.description.firstChange === false) {\n this.descriptionChanges.emit(this.description);\n this.descriptionModelChanges.emit({\n value: this.description,\n id: this.id,\n field: this.field\n });\n }\n if (changes.inlineHelpPopover && changes.inlineHelpPopover.firstChange === false) {\n this.inlineHelpPopoverModelChanges.emit({\n value: this.inlineHelpPopover,\n id: this.id,\n field: this.field\n });\n }\n }\n\n public get template(): TemplateRef<any> {\n if (this.templates.length > 0) {\n return this.templates.first;\n }\n\n return this.templateInput;\n }\n\n private search(value: any, searchText: string): boolean {\n /* tslint:disable:no-null-keyword */\n if (value !== undefined && value !== null) {\n return value.toString().toLowerCase().indexOf(searchText) !== -1;\n }\n /* tslint:enable */\n\n return false;\n }\n}\n","import {\n TemplateRef\n} from '@angular/core';\n\nimport {\n SkyGridColumnAlignment\n} from './types/grid-column-alignment';\n\n/**\n * @internal\n */\nexport class SkyGridColumnModel {\n public template: TemplateRef<any>;\n public id: string;\n public field: string;\n public heading: string;\n public inlineHelpPopover: any;\n public type: string;\n public width: number;\n public hidden: boolean;\n public locked: boolean;\n public description: string;\n public isSortable: boolean = true;\n public excludeFromHighlighting: boolean;\n\n /**\n * The horizontal alignment of the column's data and header.\n */\n public alignment: SkyGridColumnAlignment;\n\n public searchFunction: (data: any, searchText: string) => boolean;\n\n constructor(template: TemplateRef<any>, data?: any) {\n this.template = template;\n\n if (data) {\n this.id = data.id || data.field;\n this.type = data.type;\n this.field = data.field;\n this.heading = data.heading;\n this.inlineHelpPopover = data.inlineHelpPopover;\n this.width = data.width ? Number(data.width) : undefined;\n this.hidden = data.hidden;\n this.locked = data.locked;\n this.description = data.description;\n this.searchFunction = data.searchFunction;\n this.isSortable = data.isSortable;\n this.excludeFromHighlighting = data.excludeFromHighlighting;\n this.alignment = data.alignment;\n }\n }\n}\n","import {\n Injectable,\n Renderer2,\n RendererFactory2,\n ElementRef\n} from '@angular/core';\n\nimport {\n DragulaService\n} from 'ng2-dragula';\n\nconst GRID_HEADER_DRAGGING_CLASS = 'sky-grid-header-dragging';\nconst GRID_HEADER_LOCKED_SELECTOR = '.sky-grid-header-locked';\nconst GRID_HEADER_RESIZE_HANDLE = '.sky-grid-resize-handle';\nconst GRID_ROW_DELETE_SELECTOR = '.sky-grid-row-delete-heading';\nconst GRID_MULTISELECT_SELECTOR = '.sky-grid-multiselect-cell';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyGridAdapterService {\n private renderer: Renderer2;\n\n constructor(\n private rendererFactory: RendererFactory2\n ) {\n this.renderer = this.rendererFactory.createRenderer(undefined, undefined);\n }\n\n public initializeDragAndDrop(\n dragulaService: DragulaService,\n dropCallback: (newColumnIds: Array<string>) => void) {\n dragulaService.drag.subscribe(([, source]: Array<HTMLElement>) =>\n source.classList.add(GRID_HEADER_DRAGGING_CLASS)\n );\n\n dragulaService.dragend.subscribe(([, source]: Array<HTMLElement>) =>\n source.classList.remove(GRID_HEADER_DRAGGING_CLASS)\n );\n\n dragulaService.drop.subscribe(([, , container]: Array<HTMLElement>) => {\n let columnIds: string[] = [];\n let nodes = container.querySelectorAll(`th:not(${GRID_MULTISELECT_SELECTOR}):not(${GRID_ROW_DELETE_SELECTOR})`);\n for (let i = 0; i < nodes.length; i++) {\n let el = nodes[i];\n let id = el.getAttribute('sky-cmp-id');\n columnIds.push(id);\n }\n dropCallback(columnIds);\n\n });\n\n dragulaService.setOptions('sky-grid-heading', {\n moves: (el: HTMLElement, container: HTMLElement, handle: HTMLElement) => {\n const columns: NodeListOf<HTMLElement> = container.querySelectorAll('th div');\n const isLeftOfLocked = this.isLeftOfLocked(handle, columns);\n\n return !el.querySelector(GRID_HEADER_LOCKED_SELECTOR)\n && handle !== undefined\n && !handle.matches(GRID_HEADER_RESIZE_HANDLE)\n && !handle.matches(GRID_MULTISELECT_SELECTOR)\n && !handle.matches(GRID_ROW_DELETE_SELECTOR)\n && !isLeftOfLocked;\n },\n accepts: (\n el: HTMLElement,\n target: HTMLElement,\n source: HTMLElement,\n sibling: HTMLElement) => {\n\n if (sibling === undefined || !sibling) {\n return true;\n }\n\n const columns: NodeListOf<HTMLElement> = source.querySelectorAll('th div');\n const siblingDiv = sibling.querySelector('div');\n const isLeftOfLocked = this.isLeftOfLocked(siblingDiv, columns);\n\n return ((!sibling.matches(GRID_HEADER_LOCKED_SELECTOR)\n && !sibling.matches(GRID_HEADER_RESIZE_HANDLE)))\n && !isLeftOfLocked;\n }\n });\n }\n\n public getRowHeight(el: ElementRef, index: number): string {\n return el.nativeElement.querySelectorAll('tbody tr')[index].scrollHeight + 'px';\n }\n\n public setStyle(el: ElementRef, style: string, value: string): void {\n if (el) {\n this.renderer.setStyle(el.nativeElement, style, value);\n }\n }\n\n private isLeftOfLocked(handle: HTMLElement, columns: NodeListOf<HTMLElement>): boolean {\n let sourceColumn = handle;\n for (let column of Array.from(columns)) {\n if (column.contains(handle)) {\n sourceColumn = column;\n }\n }\n\n for (let i = (columns.length - 1); i >= 0; i--) {\n if (columns[i].classList.contains('sky-grid-header-locked')) {\n return true;\n }\n\n if (columns[i] === sourceColumn) {\n break;\n }\n }\n\n return false;\n }\n}\n","// tslint:disable:no-null-keyword\n\n// Polyfill for Element.closest().\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill\n// Returns the closest ancestor of the current element (or the current element itself) which\n// matches the selectors given in parameter. If there isn't such an ancestor, it returns null.\nif (!Element.prototype.closest) {\n Element.prototype.closest = function(s: any) {\n let el = this;\n /* istanbul ignore if */\n if (!document.documentElement.contains(el)) {\n return null;\n }\n do {\n if (el.matches(s)) {\n return el;\n }\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n return null;\n };\n}\n\n// Polyfill for Element.matches().\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\n// Returns true if the element would be selected by the specified selector string.\nif (!Element.prototype.matches) {\n Element.prototype.matches = (Element.prototype as any).msMatchesSelector\n /* istanbul ignore next */ || Element.prototype.webkitMatchesSelector;\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n ContentChildren,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren\n} from '@angular/core';\n\nimport {\n SkyAffixAutoFitContext,\n SkyAffixService,\n SkyAppWindowRef,\n SkyOverlayService,\n SkyUIConfigService\n} from '@skyux/core';\n\nimport {\n DragulaService\n} from 'ng2-dragula';\n\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n Subscription,\n merge,\n fromEvent\n} from 'rxjs';\n\nimport {\n distinctUntilChanged,\n map,\n take,\n takeUntil,\n takeWhile\n} from 'rxjs/operators';\n\nimport {\n ListItemModel,\n ListSortFieldSelectorModel\n} from '@skyux/list-builder-common';\n\nimport {\n SkyGridColumnDescriptionModelChange\n} from './types/grid-column-description-model-change';\n\nimport {\n SkyGridColumnHeadingModelChange\n} from './types/grid-column-heading-model-change';\n\nimport {\n SkyGridColumnInlineHelpPopoverModelChange\n} from './types/grid-column-inline-help-popover-model-change';\n\nimport {\n SkyGridColumnWidthModelChange\n} from './types/grid-column-width-model-change';\n\nimport {\n SkyGridMessage\n} from './types/grid-message';\n\nimport {\n SkyGridMessageType\n} from './types/grid-message-type';\n\nimport {\n SkyGridRowDeleteCancelArgs\n} from './types/grid-row-delete-cancel-args';\n\nimport {\n SkyGridRowDeleteConfig\n} from './types/grid-row-delete-config';\n\nimport {\n SkyGridRowDeleteConfirmArgs\n} from './types/grid-row-delete-confirm-args';\n\nimport {\n SkyGridRowDeleteContents\n} from './types/grid-row-delete-contents';\n\nimport {\n SkyGridSelectedRowsModelChange\n} from './types/grid-selected-rows-model-change';\n\nimport {\n SkyGridSelectedRowsSource\n} from './types/grid-selected-rows-source';\n\nimport {\n SkyGridColumnComponent\n} from './grid-column.component';\n\nimport {\n SkyGridColumnModel\n} from './grid-column.model';\n\nimport {\n SkyGridAdapterService\n} from './grid-adapter.service';\n\nimport {\n SkyGridUIConfig\n} from './types/grid-ui-config';\n\nimport '../../polyfills';\n\nlet nextId = 0;\n\n@Component({\n selector: 'sky-grid',\n templateUrl: './grid.component.html',\n styleUrls: ['./grid.component.scss'],\n viewProviders: [DragulaService],\n providers: [\n SkyGridAdapterService\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyGridComponent implements OnInit, AfterContentInit, AfterViewInit, OnChanges, OnDestroy {\n\n /**\n * Specifies columns and column properties for the grid.\n */\n @Input()\n public columns: Array<SkyGridColumnModel>;\n\n /**\n * Specifies the data for the grid. Each item requires an `id` and a property that maps\n * to the `field` or `id` property of each column in the grid.\n */\n @Input()\n public data: Array<any>;\n\n /**\n * Indicates whether to enable the multiselect feature to display a column of\n * checkboxes on the left side of the grid. You can specify a unique ID with\n * the `multiselectRowId` property, but multiselect defaults to the `id` property on\n * the `data` object. To include options to select and clear all multiselect checkboxes,\n * we recommend the [list view grid](https://developer.blackbaud.com/skyux/components/list/grid) component.\n * @default false\n */\n @Input()\n public enableMultiselect: boolean = false;\n\n /**\n * Specifies how the grid fits to its parent. The valid options are `width`,\n * which fits the grid to the parent's full width, and `scroll`, which allows the grid\n * to exceed the parent's width. If the grid does not have enough columns to fill\n * the parent's width, it always stretches to the parent's full width.\n */\n @Input()\n public fit: string = 'width';\n\n /**\n * Indicates whether to display a toolbar with the grid.\n */\n @Input()\n public hasToolbar: boolean = false;\n\n /**\n * Specifies the height of the grid.\n */\n @Input()\n public height: number;\n\n /**\n * Specifies text to highlight within the grid.\n * Typically, this property is used in conjunction with search.\n */\n @Input()\n public highlightText: string;\n\n /**\n * Provides an observable to send commands to the grid.\n */\n @Input()\n public messageStream = new Subject<SkyGridMessage>();\n\n /**\n * Specifies a unique ID that matches a property on the `data` object.\n * By default, this property uses the `id` property.\n */\n @Input()\n public multiselectRowId: string;\n\n /**\n * Specifies the ID of the row to highlight. The ID matches the `id` property\n * of the `data` object. Typically, this property is used in conjunction with\n * the flyout component to indicate the currently selected row.\n */\n @Input()\n public rowHighlightedId: string;\n\n /**\n * Specifies the columns to display in the grid based on the `id` or `field` properties\n * of the columns. If no columns are specified, then the grid displays all columns.\n */\n @Input()\n public set selectedColumnIds(value: Array<string>) {\n\n const currentIds = this._selectedColumnIds;\n this._selectedColumnIds = value;\n\n if (this.columns) {\n this.setDisplayedColumns();\n }\n\n // Ensure that the ids have changed.\n if (\n !currentIds ||\n !value ||\n !this.arraysEqual(value, currentIds)\n ) {\n // This variable ensures that we do not set user config options or fire the change event\n // on the first time that the columns are set up\n if (this.selectedColumnIdsSet) {\n this.setUserConfig({\n selectedColumnIds: value\n });\n\n this.selectedColumnIdsChange.emit(this._selectedColumnIds);\n\n if (this.isResized) {\n this.resetTableWidth();\n }\n }\n }\n\n this.selectedColumnIdsSet = true;\n }\n\n public get selectedColumnIds(): Array<string> {\n return this._selectedColumnIds;\n }\n\n /**\n * Specifies a set of IDs for the rows to select in a multiselect grid.\n * The IDs match the `id` properties of the `data` objects.\n * Rows with IDs that are not included are de-selected in the grid.\n */\n @Input()\n public set selectedRowIds(value: Array<string>) {\n if (value) {\n this._selectedRowIds = value;\n this.applySelectedRows();\n this.emitSelectedRows(SkyGridSelectedRowsSource.SelectedRowIdsChange);\n }\n }\n\n public get selectedRowIds(): Array<string> {\n return this._selectedRowIds;\n }\n\n /**\n * Specifies a unique key for the UI Config Service to retrieve stored settings from a database.\n * The UI Config Service saves configuration settings for users and returns\n * `selectedColumnIds` to preserve the columns to display and the preferred column order.\n * For more information about the UI Config Service, see\n * [the sticky settings documentation](https://developer.blackbaud.com/skyux/learn/get-started/advanced/sticky-settings).\n */\n @Input()\n public settingsKey: string;\n\n /**\n * Displays a caret in the column that was used to sort the grid. This is particularly useful\n * when you programmatically sort data and want to visually indicate how the grid was sorted.\n * This property accepts a `ListSortFieldSelectorModel` value with the following properties:\n * - `fieldSelector` Represents the current sort field. This property accepts `string` values.\n * - `descending` Indicates whether to sort in descending order. The caret that visually\n * indicates the sort order points down for descending order and up for ascending order.\n * This property accepts `boolean` values. Default is `false`.\n */\n @Input()\n public sortField: ListSortFieldSelectorModel;\n\n /**\n * Specifies the width of the grid in pixels.\n */\n @Input()\n public width: number;\n\n /**\n * Fires when the width of a column changes.\n */\n @Output()\n public columnWidthChange = new EventEmitter<Array<SkyGridColumnWidthModelChange>>();\n\n /**\n * Fires when the selection of multiselect checkboxes changes.\n * Emits an array of IDs for the selected rows based on the `multiselectRowId` property\n * that the consumer provides.\n */\n @Output()\n public multiselectSelectionChange = new EventEmitter<SkyGridSelectedRowsModelChange>();\n\n /**\n * @internal\n */\n @Output()\n public rowDeleteCancel = new EventEmitter<SkyGridRowDeleteCancelArgs>();\n\n /**\n * @internal\n */\n @Output()\n public rowDeleteConfirm = new EventEmitter<SkyGridRowDeleteConfirmArgs>();\n\n /**\n * Fires when the columns to display in the grid change or when the order of the columns changes.\n * The event emits an array of IDs for the displayed columns that reflects the column order.\n */\n @Output()\n public selectedColumnIdsChange = new EventEmitter<Array<string>>();\n\n /**\n * Fires when the active sort field changes.\n */\n @Output()\n public sortFieldChange = new EventEmitter<ListSortFieldSelectorModel>();\n\n public columnResizeStep = 10;\n public currentSortField: BehaviorSubject<ListSortFieldSelectorModel>;\n public displayedColumns: Array<SkyGridColumnModel>;\n public gridId: number = ++nextId;\n public rowDeleteConfigs: SkyGridRowDeleteConfig[] = [];\n public items: Array<any>;\n public maxColWidth = 9999; // This is an arbitrary number, as the input range picker won't work without a value.\n public minColWidth = 50;\n public showResizeBar: boolean = false;\n public showTopScroll: boolean = false;\n\n public get tableWidth() {\n return this.tableElementRef.nativeElement.offsetWidth;\n }\n\n @ContentChildren(SkyGridColumnComponent)\n private columnComponents: QueryList<SkyGridColumnComponent>;\n\n @ViewChildren('gridCol')\n private columnElementRefs: QueryList<ElementRef>;\n @ViewChildren('colSizeRange')\n private columnRangeInputElementRefs: QueryList<ElementRef>;\n @ViewChildren('inlineDeleteRef')\n private inlineDeleteRefs: QueryList<ElementRef>;\n @ViewChild('inlineDeleteTemplateRef', { read: TemplateRef })\n private inlineDeleteTemplateRef: TemplateRef<any>;\n @ViewChild('gridContainer')\n private tableContainerElementRef: ElementRef;\n @ViewChild('gridTable')\n private tableElementRef: ElementRef;\n @ViewChild('topScrollContainer')\n private topScrollContainerElementRef: ElementRef;\n @ViewChild('resizeBar')\n private resizeBar: ElementRef;\n\n private activeResizeColumnIndex: string;\n private isDraggingResizeHandle: boolean = false;\n private isResized: boolean = false;\n private ngUnsubscribe = new Subject();\n private rowDeleteContents: { [id: string]: SkyGridRowDeleteContents } = {};\n private startColumnWidth: number;\n private subscriptions: Subscription[] = [];\n private scrollTriggered: boolean = false;\n private selectedColumnIdsSet: boolean = false;\n private xPosStart: number;\n\n private _selectedColumnIds: Array<string>;\n private _selectedRowIds: Array<string>;\n\n constructor(\n private affixService: SkyAffixService,\n private changeDetector: ChangeDetectorRef,\n private dragulaService: DragulaService,\n private gridAdapter: SkyGridAdapterService,\n private overlayService: SkyOverlayService,\n private skyWindow: SkyAppWindowRef,\n private uiConfigService: SkyUIConfigService\n ) {\n this.displayedColumns = new Array<SkyGridColumnModel>();\n this.items = new Array<any>();\n this.currentSortField = new BehaviorSubject<ListSortFieldSelectorModel>({\n fieldSelector: '',\n descending: false\n });\n }\n\n public ngOnInit() {\n this.messageStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyGridMessage) => {\n this.handleIncomingMessages(message);\n });\n }\n\n public ngAfterContentInit() {\n if (this.settingsKey) {\n this.applyUserConfig().then(() => {\n this.initColumns();\n });\n } else {\n this.initColumns();\n }\n\n // Setup column drag-and-drop.\n this.gridAdapter.initializeDragAndDrop(\n this.dragulaService,\n (selectedColumnIds: Array<string>) => {\n this.onHeaderDrop(selectedColumnIds);\n }\n );\n\n this.applySelectedRows();\n }\n\n public ngAfterViewInit() {\n this.checkUserColumnWidthsForScroll();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.columns && this.columns) {\n if (this.selectedColumnIds) {\n this.selectedColumnIds = this.selectedColumnIds.filter(columnId => this.columns.find(column => column.id === columnId));\n }\n this.setDisplayedColumns(true);\n }\n\n if (changes.data && this.data) {\n this.transformData();\n\n // This set timeout is necessary to ensure the data has rendered in the grid\n setTimeout(() => {\n // This cleans up any lingering row deletes for items that have been removed.\n Object.keys(this.rowDeleteContents).forEach(id => {\n if (!this.data.find(item => item.id === id)) {\n this.destroyRowDelete(id);\n } else {\n // The rows re-render thus messing up the affixers. We must reaffix them so that things\n // continue to render correctly.\n let rowElement: HTMLElement =\n this.tableElementRef.nativeElement.querySelector('[sky-cmp-id=\"' + id + '\"]');\n\n this.rowDeleteContents[id].affixer.affixTo(rowElement, {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n isSticky: true,\n placement: 'above',\n verticalAlignment: 'top',\n horizontalAlignment: 'left',\n enableAutoFit: false\n });\n }\n });\n\n this.checkUserColumnWidthsForScroll();\n });\n }\n\n if (changes.sortField) {\n this.setSortHeaders();\n }\n }\n\n public ngOnDestroy() {\n this.subscriptions.forEach((subscription: Subscription) => {\n subscription.unsubscribe();\n });\n this.multiselectSelectionChange.complete();\n\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n\n Object.keys(this.rowDeleteContents).forEach(id => {\n this.destroyRowDelete(id);\n });\n }\n\n @HostListener('window:resize')\n public onWindowResize(): void {\n this.checkUserColumnWidthsForScroll();\n }\n\n public getTopScrollWidth(): string {\n return this.tableElementRef.nativeElement.scrollWidth;\n }\n\n public getTableClassNames() {\n let classNames: string[] = [];\n\n if (this.fit !== 'scroll') {\n classNames.push('sky-grid-fit');\n }\n\n if (this.hasToolbar) {\n classNames.push('sky-grid-has-toolbar');\n }\n\n return this.addDelimeter(classNames, ' ');\n }\n\n public getTableHeaderClassNames(column: SkyGridColumnModel) {\n let classNames: string[] = [];\n\n if (column && column.locked) {\n classNames.push('sky-grid-header-locked');\n }\n\n return this.addDelimeter(classNames, ' ');\n }\n\n public getCaretIconNames(column: SkyGridColumnModel) {\n let iconNames: string[] = [];\n\n this.getSortDirection(column.field).subscribe((sortDir) => {\n if (sortDir === 'asc') {\n iconNames.push('caret-up');\n }\n if (sortDir === 'desc') {\n iconNames.push('caret-down');\n }\n });\n\n return this.addDelimeter(iconNames, ' ');\n }\n\n public onKeydown(event: KeyboardEvent, column: SkyGridColumnModel) {\n const key = event.key.toLowerCase();\n if (key === 'enter' || key === ' ') {\n this.sortByColumn(column);\n }\n }\n\n public sortByColumn(column: SkyGridColumnModel) {\n if (!this.isDraggingResizeHandle && column.isSortable) {\n this.currentSortField\n .pipe(\n take(1),\n map(field => {\n let selector = {\n fieldSelector: column.field,\n descending: true\n };\n\n if (field && field.fieldSelector === column.field && field.descending) {\n selector = {\n fieldSelector: column.field,\n descending: false\n };\n }\n this.sortFieldChange.emit(selector);\n this.currentSortField.next(selector);\n })\n )\n .subscribe();\n }\n }\n\n public getSortDirection(columnField: string): Observable<string> {\n return this.currentSortField\n .pipe(\n distinctUntilChanged(),\n map(field => {\n return field.fieldSelector === columnField ?\n (field.descending ? 'desc' : 'asc') : undefined;\n })\n );\n }\n\n public getAriaSortDirection(column: SkyGridColumnModel): Observable<string> {\n return this.currentSortField\n .pipe(\n distinctUntilChanged(),\n map(field => {\n return field.fieldSelector === column.field ?\n (field.descending ? 'descending' : 'ascending') : (column.isSortable ? 'none' : undefined);\n })\n );\n }\n\n public getCaretVisibility(columnField: string): Observable<string> {\n return this.currentSortField\n .pipe(\n distinctUntilChanged(),\n map(field => {\n return field.fieldSelector === columnField ? 'visible' : 'hidden';\n })\n );\n }\n\n public getHelpInlineClass(columnField: string): Observable<boolean> {\n return this.getCaretVisibility(columnField)\n .pipe(\n map((visibility: string) => {\n return visibility === 'hidden';\n })\n );\n }\n\n public onMultiselectCheckboxChange() {\n this.emitSelectedRows(SkyGridSelectedRowsSource.CheckboxChange);\n }\n\n public updateColumnHeading(change: SkyGridColumnHeadingModelChange) {\n const foundColumnModel = this.columns.find((column: SkyGridColumnModel) => {\n return (\n change.id !== undefined && change.id === column.id ||\n change.field !== undefined && change.field === column.field\n );\n });\n\n /* istanbul ignore else */\n if (foundColumnModel) {\n foundColumnModel.heading = change.value;\n this.changeDetector.markForCheck();\n }\n }\n\n public updateInlineHelpPopover(change: SkyGridColumnInlineHelpPopoverModelChange) {\n const foundColumnModel = this.columns.find((column: SkyGridColumnModel) => {\n return (\n change.id !== undefined && change.id === column.id ||\n change.field !== undefined && change.field === column.field\n );\n });\n\n /* istanbul ignore else */\n if (foundColumnModel) {\n foundColumnModel.inlineHelpPopover = change.value;\n this.changeDetector.markForCheck();\n }\n }\n\n public updateColumnDescription(change: SkyGridColumnDescriptionModelChange) {\n const foundColumnModel = this.columns.find((column: SkyGridColumnModel) => {\n return (\n change.id !== undefined && change.id === column.id ||\n change.field !== undefined && change.field === column.field\n );\n });\n\n /* istanbul ignore else */\n if (foundColumnModel) {\n foundColumnModel.description = change.value;\n this.changeDetector.markForCheck();\n }\n }\n\n public onResizeColumnStart(event: MouseEvent): void {\n // If this table hasn't been resized, initialize all the resize widths.\n if (!this.isResized) {\n this.initColumnWidths();\n this.isResized = true;\n }\n\n this.initializeResizeColumn(event);\n\n this.isDraggingResizeHandle = true;\n this.xPosStart = event.pageX;\n this.showResizeBar = true;\n\n // Show visual indicator of where mouse is dragging (resizeBar).\n this.changeDetector.detectChanges();\n this.setResizeBarPosition(event.pageX);\n\n event.preventDefault();\n event.stopPropagation();\n\n const mouseMoveEvent = fromEvent(document, 'mousemove');\n const touchMoveEvent = fromEvent(document, 'touchmove');\n\n merge(mouseMoveEvent, touchMoveEvent)\n .pipe(\n takeWhile(() => {\n return this.isDraggingResizeHandle;\n })\n )\n .subscribe((moveEvent: any) => {\n this.onResizeHandleMove(moveEvent);\n });\n\n const mouseUpEvent = fromEvent(document, 'mouseup');\n const touchEndEvent = fromEvent(document, 'touchend');\n\n merge(mouseUpEvent, touchEndEvent)\n .pipe(\n takeWhile(() => {\n return this.isDraggingResizeHandle;\n })\n )\n .subscribe((endEvent: any) => {\n this.onResizeHandleRelease(endEvent);\n });\n }\n\n public onKeydownResizeCol(event: KeyboardEvent) {\n // If this table hasn't been resized, initialize all the resize widths.\n if (!this.isResized) {\n this.initColumnWidths();\n this.isResized = true;\n }\n\n this.initializeResizeColumn(event);\n }\n\n public onInputChangeResizeCol(event: Event) {\n const input = event.target as HTMLInputElement;\n let newValue = Number(input.value);\n let deltaX = newValue - this.startColumnWidth;\n this.resizeColumnByIndex(this.activeResizeColumnIndex, newValue, deltaX);\n const left = input.getBoundingClientRect().left;\n this.setResizeBarPosition(left);\n }\n\n public onResizeHandleMove(event: MouseEvent) {\n let deltaX = event.pageX - this.xPosStart;\n let newColWidth = this.startColumnWidth + deltaX;\n\n if (newColWidth <= this.minColWidth) {\n event.stopPropagation();\n return;\n }\n\n let max = this.getMaxRangeByIndex(this.activeResizeColumnIndex);\n if (this.fit === 'width' && newColWidth > max) {\n event.stopPropagation();\n return;\n }\n\n this.setResizeBarPosition(event.pageX);\n }\n\n public onResizeHandleBlur(event: Event) {\n this.showResizeBar = false;\n }\n\n public onResizeHandleFocus(event: KeyboardEvent) {\n this.showResizeBar = true;\n this.changeDetector.detectChanges();\n\n const target = event.target as HTMLElement;\n const left = target.getBoundingClientRect().left;\n this.setResizeBarPosition(left);\n }\n\n public onResizeHandleRelease(event: MouseEvent) {\n this.showResizeBar = false;\n let deltaX = event.pageX - this.xPosStart;\n let newColWidth = this.startColumnWidth + deltaX;\n this.resizeColumnByIndex(this.activeResizeColumnIndex, newColWidth, deltaX);\n this.isDraggingResizeHandle = false;\n this.activeResizeColumnIndex = undefined;\n\n event.stopPropagation();\n this.changeDetector.markForCheck();\n }\n\n public onRowClick(event: any, selectedItem: ListItemModel) {\n /* istanbul ignore else */\n if (this.enableMultiselect) {\n if (event.target === event.currentTarget || !this.isInteractiveElement(event)) {\n selectedItem.isSelected = !selectedItem.isSelected;\n this.changeDetector.markForCheck();\n this.emitSelectedRows(SkyGridSelectedRowsSource.RowClick);\n }\n }\n }\n\n public isRowHighlighted(id: string): boolean {\n if (this.rowHighlightedId) {\n return id === this.rowHighlightedId;\n }\n return false;\n }\n\n public getRowHeight(index: number): string {\n return this.gridAdapter.getRowHeight(this.tableElementRef, index);\n }\n\n public cancelRowDelete(id: string) {\n this.rowDeleteConfigs = this.rowDeleteConfigs.filter(config => config.id !== id);\n this.rowDeleteCancel.emit({ id: id });\n\n this.destroyRowDelete(id);\n }\n\n public confirmRowDelete(id: string) {\n this.rowDeleteConfigs.find(config => config.id === id).pending = true;\n this.rowDeleteConfirm.emit({ id: id });\n }\n\n public getRowDeleteItem(id: string): SkyGridRowDeleteConfig {\n return this.rowDeleteConfigs.find(rowDelete => rowDelete.id === id);\n }\n\n // Prevent touch devices from inadvertently scrolling grid while dragging columns.\n public onTouchMove(event: any): void {\n event.preventDefault();\n }\n\n public onTopScroll(event: any): void {\n /* sanity check */\n /* istanbul ignore else */\n if (this.tableContainerElementRef) {\n if (this.scrollTriggered) {\n this.scrollTriggered = false;\n this.tableContainerElementRef.nativeElement.scrollLeft =\n this.topScrollContainerElementRef.nativeElement.scrollLeft;\n } else {\n this.scrollTriggered = true;\n }\n }\n }\n\n public onGridScroll(event: any): void {\n /* sanity check */\n /* istanbul ignore else */\n if (this.topScrollContainerElementRef) {\n if (this.scrollTriggered) {\n this.scrollTriggered = false;\n this.topScrollContainerElementRef.nativeElement.scrollLeft =\n this.tableContainerElementRef.nativeElement.scrollLeft;\n } else {\n this.scrollTriggered = true;\n }\n }\n }\n\n private checkUserColumnWidthsForScroll(): void {\n if (!this.showTopScroll && this.columnElementRefs && this.columnElementRefs.length > 0) {\n let columnsWidthTotal = 0;\n const windowSize = this.skyWindow.nativeWindow.innerWidth;\n this.columnElementRefs.forEach(col => {\n if (!this.showTopScroll) {\n let computedWidth = parseFloat(window.getComputedStyle(col.nativeElement).width);\n let offsetWidth = col.nativeElement.offsetWidth;\n let width = Math.max(computedWidth || offsetWidth, this.minColWidth);\n columnsWidthTotal = columnsWidthTotal + width;\n if (columnsWidthTotal > windowSize) {\n this.showTopScroll = true;\n setTimeout(() => {\n this.changeDetector.markForCheck();\n });\n }\n }\n });\n }\n }\n\n private multiselectSelectAll() {\n for (let i = 0; i < this.items.length; i++) {\n this.items[i].isSelected = true;\n }\n this.changeDetector.markForCheck();\n this.emitSelectedRows(SkyGridSelectedRowsSource.SelectAll);\n }\n\n private multiselectClearAll() {\n for (let i = 0; i < this.items.length; i++) {\n this.items[i].isSelected = false;\n }\n this.changeDetector.markForCheck();\n this.emitSelectedRows(SkyGridSelectedRowsSource.ClearAll);\n }\n\n private handleIncomingMessages(message: SkyGridMessage) {\n /* tslint:disable-next-line:switch-default */\n switch (message.type) {\n case SkyGridMessageType.SelectAll:\n this.multiselectSelectAll();\n break;\n\n case SkyGridMessageType.ClearAll:\n this.multiselectClearAll();\n break;\n case SkyGridMessageType.PromptDeleteRow:\n /* sanity check */\n /* istanbul ignore else */\n if (message.data && message.data.promptDeleteRow) {\n const existingConfig = this.rowDeleteConfigs\n .find(config => config.id === message.data.promptDeleteRow.id);\n if (existingConfig) {\n existingConfig.pending = false;\n } else {\n this.rowDeleteConfigs.push({ id: message.data.promptDeleteRow.id, pending: false });\n let overlay = this.overlayService.create({\n enableScroll: true,\n showBackdrop: false,\n closeOnNavigation: true,\n enableClose: false,\n enablePointerEvents: true\n });\n\n overlay.attachTemplate(this.inlineDeleteTemplateRef,\n { $implicit: this.data.find(item => item.id === message.data.promptDeleteRow.id) });\n\n /**\n * We are manually setting the z-index here because overlays will always be on top of\n * the omnibar. This manual setting is 1 less than the omnibar's z-index of 1000. We\n * discussed changing the overlay service to allow for this but decided against that\n * change at this time due to its niche nature.\n */\n overlay.componentRef.instance.zIndex = '999';\n\n setTimeout(() => {\n const inlineDeleteRef = this.inlineDeleteRefs.toArray()\n .find(elRef => {\n return elRef.nativeElement.id === 'row-delete-ref-' + message.data.promptDeleteRow.id;\n });\n let affixer = this.affixService.createAffixer(inlineDeleteRef);\n\n let rowElement: HTMLElement =\n this.tableElementRef.nativeElement.querySelector('[sky-cmp-id=\"' + message.data.promptDeleteRow.id + '\"]');\n\n affixer.affixTo(rowElement, {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n isSticky: true,\n placement: 'above',\n verticalAlignment: 'top',\n horizontalAlignment: 'left',\n enableAutoFit: false\n });\n\n this.rowDeleteContents[message.data.promptDeleteRow.id] = {\n affixer: affixer,\n overlay: overlay\n };\n });\n }\n }\n break;\n case SkyGridMessageType.AbortDeleteRow:\n /* sanity check */\n /* istanbul ignore else */\n if (message.data && message.data.abortDeleteRow) {\n this.rowDeleteConfigs = this.rowDeleteConfigs.filter(config => config.id !== message.data.abortDeleteRow.id);\n\n this.destroyRowDelete(message.data.abortDeleteRow.id);\n }\n break;\n }\n this.changeDetector.markForCheck();\n }\n\n private onHeaderDrop(newColumnIds: Array<string>) {\n // update selected columnIds\n this.selectedColumnIdsSet = true;\n this.selectedColumnIds = newColumnIds;\n\n // mark for check because we are using ChangeDetectionStrategy.onPush\n this.changeDetector.markForCheck();\n }\n\n private setDisplayedColumns(respectHidden: boolean = false) {\n if (this.selectedColumnIds !== undefined) {\n // setup displayed columns\n this.displayedColumns = this.selectedColumnIds\n .filter(\n columnId => this.columns.find(column => column.id === columnId)\n ).map(\n columnId => this.columns.filter(column => column.id === columnId)[0]\n );\n } else if (respectHidden) {\n this.displayedColumns = this.columns.filter(column => {\n return !column.hidden;\n });\n } else {\n this.displayedColumns = this.columns;\n }\n }\n\n private transformData() {\n // Transform data into object with id and data properties\n if (this.data && this.data.length > 0 && this.data[0].id && !this.data[0].data) {\n if (this.multiselectRowId) {\n this.items = this.getGridDataWithSelectedRows();\n } else {\n this.items = this.data.map(item => new ListItemModel(item.id, item));\n }\n } else {\n this.items = this.data;\n }\n }\n\n private getGridDataWithSelectedRows() {\n let selectedRows = this.getSelectedRows();\n return this.data.map(item => {\n let checked;\n if (item.hasOwnProperty(this.multiselectRowId)) {\n checked = selectedRows.indexOf(item[this.multiselectRowId]) > -1;\n } else {\n checked = selectedRows.indexOf(item.id) > -1;\n }\n return new ListItemModel(item.id, item, checked);\n });\n }\n\n private applySelectedRows(): void {\n if (this.items && this.items.length > 0 && this.selectedRowIds) {\n for (let i = 0; i < this.items.length; i++) {\n this.items[i].isSelected = (this.selectedRowIds.indexOf(this.items[i].id) > -1);\n }\n this.changeDetector.markForCheck();\n }\n }\n\n private setSortHeaders() {\n this.currentSortField.next(this.sortField || { fieldSelector: '', descending: false });\n }\n\n private getColumnsFromComponent() {\n this.columns = this.columnComponents.map(columnComponent => {\n return new SkyGridColumnModel(columnComponent.template, columnComponent);\n });\n }\n\n private updateColumns() {\n this.getColumnsFromComponent();\n this.setDisplayedColumns(true);\n this.changeDetector.markForCheck();\n\n // This set timeout is necessary to ensure the columns have rendered in the grid\n setTimeout(() => {\n this.checkUserColumnWidthsForScroll();\n });\n }\n\n private resizeColumnByIndex(columnIndex: string, newColWidth: number, deltaX: number) {\n let column = this.getColumnModelByIndex(columnIndex);\n\n // Prevent accidental shrinkage below minimum width.\n if (newColWidth <= this.minColWidth) {\n deltaX = deltaX + this.minColWidth - newColWidth;\n newColWidth = this.minColWidth;\n }\n\n // fit=width adds/removes width from the last column\n // fit=scroll adds/removes width from the table\n if (this.fit === 'width') {\n let lastColumn = this.getLastDisplayedColumn();\n\n // Prevent accidental growth that would bump last column off screen.\n let max = this.getMaxRangeByIndex(columnIndex);\n if (newColWidth > max) {\n newColWidth = max;\n deltaX = max - this.startColumnWidth;\n }\n column.width = newColWidth;\n lastColumn.width = lastColumn.width - deltaX;\n this.updateMaxRange();\n } else {\n this.gridAdapter.setStyle(this.tableElementRef, 'width', `${this.tableWidth + deltaX}px`);\n column.width = newColWidth;\n }\n\n this.changeDetector.detectChanges();\n this.columnWidthChange.emit(this.getColumnWidthModelChange());\n }\n\n private initColumnWidths() {\n // Establish table width.\n this.showTopScroll = true;\n\n // Set column widths based on the width initially given by the browser.\n // computedWidth prevents accidental overflow for browsers with sub-pixel widths.\n this.columnElementRefs.forEach((col, index) => {\n let computedWidth = parseFloat(window.getComputedStyle(col.nativeElement).width);\n let offsetWidth = col.nativeElement.offsetWidth;\n let width = Math.max(\n computedWidth /* istanbul ignore next */ || offsetWidth,\n this.minColWidth\n );\n this.getColumnModelByIndex(index).width = width;\n });\n\n // 'scroll' tables should be allowed to expand outside of their constraints.\n if (this.fit === 'scroll') {\n this.gridAdapter.setStyle(this.tableElementRef, 'min-width', 'auto');\n }\n\n // Update max limits for input ranges.\n if (this.fit === 'width') {\n this.updateMaxRange();\n }\n\n this.changeDetector.detectChanges();\n }\n\n private getColumnWidthModelChange() {\n let columnWidthModelChange = new Array<SkyGridColumnWidthModelChange>();\n this.columns.forEach(column => {\n columnWidthModelChange.push({\n id: column.id,\n field: column.field,\n width: column.width\n });\n });\n return columnWidthModelChange;\n }\n\n private updateMaxRange() {\n let leftoverWidth = this.getLastDisplayedColumn().width - this.minColWidth;\n this.displayedColumns.forEach((column, index) => {\n let newMaxRange = column.width + leftoverWidth;\n let rangeInput = this.getRangeInputByIndex(index);\n rangeInput.nativeElement.max = newMaxRange;\n rangeInput.nativeElement.setAttribute('aria-valuemax', newMaxRange);\n });\n }\n\n private initializeResizeColumn(event: any) {\n const clickTarget = event.target as HTMLElement;\n this.activeResizeColumnIndex = clickTarget.getAttribute('sky-cmp-index');\n let column = this.getColumnModelByIndex(this.activeResizeColumnIndex);\n this.startColumnWidth = column.width;\n }\n\n private resetTableWidth() {\n this.skyWindow.nativeWindow.setTimeout(() => {\n this.gridAdapter.setStyle(this.tableElementRef, 'width', `auto`);\n this.changeDetector.detectChanges();\n this.gridAdapter.setStyle(this.tableElementRef, 'width', `${this.tableWidth}px`);\n this.changeDetector.detectChanges();\n });\n }\n\n private getRangeInputByIndex(index: string | number) {\n return this.columnRangeInputElementRefs.find(input =>\n input.nativeElement.getAttribute('sky-cmp-index') === index.toString()\n );\n }\n\n private getColumnModelByIndex(index: string | number) {\n return this.displayedColumns[Number(index)];\n }\n\n private getMaxRangeByIndex(index: string) {\n let columnElementRef = this.columnElementRefs.find(th =>\n th.nativeElement.getAttribute('sky-cmp-index') === index\n );\n let rangeInput = columnElementRef.nativeElement.querySelector('.sky-grid-column-input-aria-only');\n return Number(rangeInput.max);\n }\n\n private getLastDisplayedColumn() {\n return this.getColumnModelByIndex(this.displayedColumns.length - 1);\n }\n\n private addDelimeter(text: string[], delimiter: string) {\n return text.filter(val => val).join(delimiter);\n }\n\n private destroyRowDelete(id: string) {\n const rowDeleteContents = this.rowDeleteContents[id];\n if (rowDeleteContents) {\n rowDeleteContents.affixer.destroy();\n this.overlayService.close(rowDeleteContents.overlay);\n delete this.rowDeleteContents[id];\n }\n }\n\n private emitSelectedRows(source: SkyGridSelectedRowsSource) {\n let selectedRows: SkyGridSelectedRowsModelChange = {\n selectedRowIds: this.getSelectedRows(),\n source: source\n };\n this.multiselectSelectionChange.emit(selectedRows);\n }\n\n private getSelectedRows() {\n return this.items.filter(item => {\n return item.isSelected;\n }).map(item => {\n if (item.data.hasOwnProperty(this.multiselectRowId)) {\n return item.data[this.multiselectRowId];\n }\n return item.id;\n });\n }\n\n private isInteractiveElement(event: any): any {\n let interactiveElSelectors = `\n a,\n button,\n input,\n label,\n option,\n select,\n textarea,\n details,\n dialog,\n menu,\n menuitem,\n summary`;\n return event.target.closest(interactiveElSelectors);\n }\n\n private setResizeBarPosition(xPosition: number): void {\n let parentScroll = this.tableContainerElementRef.nativeElement.scrollLeft;\n let resizeBarX = xPosition - this.tableElementRef.nativeElement.getBoundingClientRect().left - parentScroll;\n this.gridAdapter.setStyle(this.resizeBar, 'left', resizeBarX + 'px');\n }\n\n private applyUserConfig(): Promise<void> {\n return new Promise<void>((resolve) => {\n this.uiConfigService.getConfig(this.settingsKey)\n .pipe(take(1))\n .subscribe((config: SkyGridUIConfig) => {\n /* istanbul ignore else */\n if (config && config.selectedColumnIds) {\n\n // Remove any columnIds that don't exist in the current data set.\n const filteredColumnIds = config.selectedColumnIds.filter(\n id => this.columns.find(column => column.id === id)\n );\n\n this.selectedColumnIds = filteredColumnIds;\n this.changeDetector.markForCheck();\n }\n\n resolve();\n }, () => {\n resolve();\n });\n });\n }\n\n private setUserConfig(config: SkyGridUIConfig): void {\n if (!this.settingsKey) {\n return;\n }\n\n this.uiConfigService.setConfig(\n this.settingsKey,\n config\n )\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(\n () => { },\n (err) => {\n console.warn('Could not save grid settings.');\n console.warn(err);\n }\n );\n }\n\n private initColumns(): void {\n /* istanbul ignore else */\n if (\n this.columnComponents.length !== 0 ||\n this.columns !== undefined\n ) {\n /* istanbul ignore else */\n /* sanity check */\n if (this.columnComponents.length > 0) {\n this.getColumnsFromComponent();\n }\n\n this.transformData();\n this.setDisplayedColumns(true);\n this.changeDetector.markForCheck();\n }\n\n // Watch for added/removed columns:\n this.subscriptions.push(\n this.columnComponents.changes.subscribe(() => this.updateColumns())\n );\n\n // Watch for column heading changes:\n this.columnComponents.forEach((comp: SkyGridColumnComponent) => {\n this.subscriptions.push(\n comp.headingModelChanges\n .subscribe((change: SkyGridColumnHeadingModelChange) => {\n this.updateColumnHeading(change);\n })\n );\n this.subscriptions.push(\n comp.descriptionModelChanges\n .subscribe((change: SkyGridColumnDescriptionModelChange) => {\n this.updateColumnDescription(change);\n })\n );\n this.subscriptions.push(\n comp.inlineHelpPopoverModelChanges\n .subscribe((change: SkyGridColumnInlineHelpPopoverModelChange) => {\n this.updateInlineHelpPopover(change);\n })\n );\n });\n }\n\n private arraysEqual(arrayA: any[], arrayB: any[]): boolean {\n return arrayA.length === arrayB.length &&\n arrayA.every((value, index) =>\n value === arrayB[index]);\n }\n}\n","import {\n Component,\n Input,\n ViewChild,\n ViewContainerRef,\n TemplateRef,\n OnInit,\n ChangeDetectionStrategy\n} from '@angular/core';\n\nimport {\n getData,\n ListItemModel\n} from '@skyux/list-builder-common';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-grid-cell',\n template: '<ng-template #cell></ng-template>',\n styleUrls: ['./grid-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyGridCellComponent implements OnInit {\n @Input()\n public item: ListItemModel;\n\n @Input()\n public columnId: string;\n\n @Input()\n private template: TemplateRef<any>;\n\n @Input()\n private fieldSelector: string;\n\n @ViewChild('cell', {\n read: ViewContainerRef,\n static: true\n })\n private container: ViewContainerRef;\n\n public ngOnInit() {\n this.container.createEmbeddedView(this.template, this);\n }\n\n get row() {\n return this.item.data;\n }\n\n get value() {\n if (this.item.data && (this.fieldSelector || this.columnId)) {\n return getData(this.item.data, this.fieldSelector || this.columnId);\n }\n\n return undefined;\n }\n}\n","\nimport {\n Injectable\n} from '@angular/core';\n\nimport {\n getStringForLocale,\n SkyAppLocaleInfo,\n SkyLibResourcesProvider\n} from '@skyux/i18n';\n\n@Injectable()\nexport class SkyGridsResourcesProvider implements SkyLibResourcesProvider {\n private resources: any = {\"EN-US\":{\"skyux_grid_multiselect_select_row\":\"Select row\"}};\n\n public getString(localeInfo: SkyAppLocaleInfo, name: string): string {\n return getStringForLocale(this.resources, localeInfo.locale, name);\n }\n}\n","import {\n NgModule\n} from '@angular/core';\n\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyI18nModule\n} from '@skyux/i18n';\n\nimport {\n SkyGridsResourcesProvider\n} from '../../plugin-resources/grids-resources-provider';\n\n@NgModule({\n exports: [\n SkyI18nModule\n ],\n providers: [{\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyGridsResourcesProvider,\n multi: true\n }]\n})\nexport class SkyGridsResourcesModule { }\n","import {\n NgModule\n} from '@angular/core';\n\nimport {\n CommonModule\n} from '@angular/common';\n\nimport {\n FormsModule\n} from '@angular/forms';\n\nimport {\n DragulaModule\n} from 'ng2-dragula';\n\nimport {\n SkyAffixModule,\n SkyAppWindowRef,\n SkyOverlayModule,\n SkyUIConfigService\n} from '@skyux/core';\n\nimport {\n SkyCheckboxModule\n} from '@skyux/forms';\n\nimport {\n SkyIconModule,\n SkyTextHighlightModule,\n SkyHelpInlineModule\n} from '@skyux/indicators';\n\nimport {\n SkyInlineDeleteModule\n} from '@skyux/layout';\n\nimport {\n SkyPopoverModule\n} from '@skyux/popovers';\n\nimport {\n SkyGridComponent\n} from './grid.component';\n\nimport {\n SkyGridColumnComponent\n} from './grid-column.component';\n\nimport {\n SkyGridCellComponent\n} from './grid-cell.component';\n\nimport {\n SkyGridsResourcesModule\n} from '../shared/grids-resources.module';\n\n@NgModule({\n declarations: [\n SkyGridComponent,\n SkyGridColumnComponent,\n SkyGridCellComponent\n ],\n imports: [\n CommonModule,\n DragulaModule,\n FormsModule,\n SkyAffixModule,\n SkyCheckboxModule,\n SkyGridsResourcesModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyInlineDeleteModule,\n SkyOverlayModule,\n SkyPopoverModule,\n SkyTextHighlightModule\n ],\n exports: [\n SkyGridComponent,\n SkyGridColumnComponent,\n SkyGridCellComponent\n ],\n providers: [\n SkyAppWindowRef,\n SkyUIConfigService\n ]\n})\nexport class SkyGridModule {\n}\n"],"names":["SkyGridMessageType","SkyGridSelectedRowsSource","EventEmitter","Input","ContentChildren","TemplateRef","Component","ChangeDetectionStrategy","RendererFactory2","Injectable","Subject","BehaviorSubject","takeUntil","SkyAffixAutoFitContext","take","map","distinctUntilChanged","fromEvent","merge","takeWhile","ListItemModel","SkyAffixService","ChangeDetectorRef","DragulaService","SkyOverlayService","SkyAppWindowRef","SkyUIConfigService","Output","ViewChildren","ViewChild","HostListener","getData","ViewContainerRef","getStringForLocale","NgModule","SkyI18nModule","SKY_LIB_RESOURCES_PROVIDERS","CommonModule","DragulaModule","FormsModule","SkyAffixModule","SkyCheckboxModule","SkyHelpInlineModule","SkyIconModule","SkyInlineDeleteModule","SkyOverlayModule","SkyPopoverModule","SkyTextHighlightModule"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-grids.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@skyux/grids/modules/grid/types/grid-message-type.ts","ng://@skyux/grids/modules/grid/types/grid-selected-rows-source.ts","ng://@skyux/grids/modules/grid/grid-column.component.ts","ng://@skyux/grids/modules/grid/grid-column.model.ts","ng://@skyux/grids/modules/grid/grid-adapter.service.ts","ng://@skyux/grids/polyfills.ts","ng://@skyux/grids/modules/grid/grid.component.ts","ng://@skyux/grids/modules/grid/grid-cell.component.ts","ng://@skyux/grids/plugin-resources/grids-resources-provider.ts","ng://@skyux/grids/modules/shared/grids-resources.module.ts","ng://@skyux/grids/modules/grid/grid.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export enum SkyGridMessageType {\n\n /**\n * Selects the multiselect checkboxes for all rows in the grid.\n */\n SelectAll = 0,\n\n /**\n * Clears the multiselect checkboxes for all rows in the grid.\n */\n ClearAll = 1,\n\n /**\n * @internal\n */\n PromptDeleteRow = 2,\n\n /**\n * @internal\n */\n AbortDeleteRow = 3\n}\n","/**\n * @internal\n */\nexport enum SkyGridSelectedRowsSource {\n CheckboxChange,\n ClearAll,\n RowClick,\n SelectAll,\n SelectedRowIdsChange\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n QueryList,\n SimpleChanges,\n TemplateRef\n} from '@angular/core';\n\nimport {\n SkyGridColumnAlignment\n} from './types/grid-column-alignment';\n\nimport {\n SkyGridColumnDescriptionModelChange\n} from './types/grid-column-description-model-change';\n\nimport {\n SkyGridColumnHeadingModelChange\n} from './types/grid-column-heading-model-change';\n\nimport {\n SkyGridColumnInlineHelpPopoverModelChange\n} from './types/grid-column-inline-help-popover-model-change';\n\n/**\n * Specifies the column information.\n */\n@Component({\n selector: 'sky-grid-column',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyGridColumnComponent implements OnChanges {\n\n /**\n * Specifies the horizontal alignment of the column's data and header.\n * @default 'left'\n */\n @Input()\n public alignment: SkyGridColumnAlignment = 'left';\n\n /**\n * Specifies a description for the column.\n */\n @Input()\n public description: string;\n\n /**\n * Indicates whether to disable the highlighting of search text in the column.\n * @default false\n */\n @Input()\n public excludeFromHighlighting: boolean;\n\n /**\n * Specifies the property to retrieve cell information from an entry on the grid `data` array.\n * You must provide either the `id` or `field` property for every column,\n * but do not provide both. If `id` does not exist on a column, then `field` is the entry\n * for the grid `selectedColumnIds` array.\n */\n @Input()\n public field: string;\n\n /**\n * Specifies text to display in the column header.\n */\n @Input()\n public heading: string;\n\n /**\n * Indicates whether the column is initially hidden when grid `selectedColumnIds` are not provided.\n * @default false\n */\n @Input()\n public hidden: boolean;\n\n /**\n * Specifies a unique ID for the column. You must provide either the `id` or `field` property\n * for every column, but do not provide both. If `field` does not exist on a column,\n * then the `id` property retrieves cell information from an entry on the grid `data` array.\n */\n @Input()\n public id: string;\n\n /**\n * Specifies a template to display inside an inline help popup for this column.\n */\n @Input()\n public inlineHelpPopover: any;\n\n /**\n * Indicates whether the column sorts the grid when users click the column header.\n * @default true\n */\n @Input()\n public isSortable: boolean = true;\n\n /**\n * Indicates whether the column is locked. The intent is to display locked columns first\n * on the left side of the grid. If set to `true`, then users cannot drag the column\n * to another position and or drag other columns before the locked column.\n * @default false\n */\n @Input()\n public locked: boolean;\n\n /**\n * Specifies a search function to apply for the specific column. By default,\n * the column executes a string compare on the column data.\n * @default (value, searchText) => value.toString().toLowerCase().indexOf(searchText) !== -1\n */\n /* tslint:disable-next-line:no-input-rename */\n @Input('search')\n public searchFunction: (value: any, searchText: string) => boolean = this.search;\n\n /**\n * @internal\n */\n @Input()\n public type: string;\n\n /**\n * Specifies a template for a column. This can be assigned as a reference\n * to the `template` attribute, or it can be assigned as a child of the `template` element\n * inside the `sky-grid-column` component. The template has access to the `value` variable,\n * which contains the value passed to the column, and the `row` variable, which contains\n * the entire row data.\n */\n /* tslint:disable-next-line:no-input-rename */\n @Input('template')\n public templateInput: TemplateRef<any>;\n\n /**\n * Specifies the width of the column in pixels.\n * If undefined, the column width is evenly distributed.\n */\n @Input()\n public width: number;\n\n public descriptionChanges: EventEmitter<string> = new EventEmitter<string>();\n\n public descriptionModelChanges = new EventEmitter<SkyGridColumnDescriptionModelChange>();\n\n public headingChanges: EventEmitter<string> = new EventEmitter<string>();\n\n public headingModelChanges = new EventEmitter<SkyGridColumnHeadingModelChange>();\n\n public inlineHelpPopoverModelChanges = new EventEmitter<SkyGridColumnInlineHelpPopoverModelChange>();\n\n @ContentChildren(TemplateRef)\n private templates: QueryList<TemplateRef<any>>;\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.heading && changes.heading.firstChange === false) {\n this.headingChanges.emit(this.heading);\n this.headingModelChanges.emit({\n value: this.heading,\n id: this.id,\n field: this.field\n });\n }\n if (changes.description && changes.description.firstChange === false) {\n this.descriptionChanges.emit(this.description);\n this.descriptionModelChanges.emit({\n value: this.description,\n id: this.id,\n field: this.field\n });\n }\n if (changes.inlineHelpPopover && changes.inlineHelpPopover.firstChange === false) {\n this.inlineHelpPopoverModelChanges.emit({\n value: this.inlineHelpPopover,\n id: this.id,\n field: this.field\n });\n }\n }\n\n public get template(): TemplateRef<any> {\n if (this.templates.length > 0) {\n return this.templates.first;\n }\n\n return this.templateInput;\n }\n\n private search(value: any, searchText: string): boolean {\n /* tslint:disable:no-null-keyword */\n if (value !== undefined && value !== null) {\n return value.toString().toLowerCase().indexOf(searchText) !== -1;\n }\n /* tslint:enable */\n\n return false;\n }\n}\n","import {\n TemplateRef\n} from '@angular/core';\n\nimport {\n SkyGridColumnAlignment\n} from './types/grid-column-alignment';\n\n/**\n * @internal\n */\nexport class SkyGridColumnModel {\n public template: TemplateRef<any>;\n public id: string;\n public field: string;\n public heading: string;\n public inlineHelpPopover: any;\n public type: string;\n public width: number;\n public hidden: boolean;\n public locked: boolean;\n public description: string;\n public isSortable: boolean = true;\n public excludeFromHighlighting: boolean;\n\n /**\n * The horizontal alignment of the column's data and header.\n */\n public alignment: SkyGridColumnAlignment;\n\n public searchFunction: (data: any, searchText: string) => boolean;\n\n constructor(template: TemplateRef<any>, data?: any) {\n this.template = template;\n\n if (data) {\n this.id = data.id || data.field;\n this.type = data.type;\n this.field = data.field;\n this.heading = data.heading;\n this.inlineHelpPopover = data.inlineHelpPopover;\n this.width = data.width ? Number(data.width) : undefined;\n this.hidden = data.hidden;\n this.locked = data.locked;\n this.description = data.description;\n this.searchFunction = data.searchFunction;\n this.isSortable = data.isSortable;\n this.excludeFromHighlighting = data.excludeFromHighlighting;\n this.alignment = data.alignment;\n }\n }\n}\n","import {\n Injectable,\n Renderer2,\n RendererFactory2,\n ElementRef\n} from '@angular/core';\n\nimport {\n DragulaService\n} from 'ng2-dragula';\n\nconst GRID_HEADER_DRAGGING_CLASS = 'sky-grid-header-dragging';\nconst GRID_HEADER_LOCKED_SELECTOR = '.sky-grid-header-locked';\nconst GRID_HEADER_RESIZE_HANDLE = '.sky-grid-resize-handle';\nconst GRID_ROW_DELETE_SELECTOR = '.sky-grid-row-delete-heading';\nconst GRID_MULTISELECT_SELECTOR = '.sky-grid-multiselect-cell';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyGridAdapterService {\n private renderer: Renderer2;\n\n constructor(\n private rendererFactory: RendererFactory2\n ) {\n this.renderer = this.rendererFactory.createRenderer(undefined, undefined);\n }\n\n public initializeDragAndDrop(\n dragulaService: DragulaService,\n dropCallback: (newColumnIds: Array<string>) => void) {\n dragulaService.drag.subscribe(([, source]: Array<HTMLElement>) =>\n source.classList.add(GRID_HEADER_DRAGGING_CLASS)\n );\n\n dragulaService.dragend.subscribe(([, source]: Array<HTMLElement>) =>\n source.classList.remove(GRID_HEADER_DRAGGING_CLASS)\n );\n\n dragulaService.drop.subscribe(([, , container]: Array<HTMLElement>) => {\n let columnIds: string[] = [];\n let nodes = container.querySelectorAll(`th:not(${GRID_MULTISELECT_SELECTOR}):not(${GRID_ROW_DELETE_SELECTOR})`);\n for (let i = 0; i < nodes.length; i++) {\n let el = nodes[i];\n let id = el.getAttribute('sky-cmp-id');\n columnIds.push(id);\n }\n dropCallback(columnIds);\n\n });\n\n dragulaService.setOptions('sky-grid-heading', {\n moves: (el: HTMLElement, container: HTMLElement, handle: HTMLElement) => {\n const columns: NodeListOf<HTMLElement> = container.querySelectorAll('th div');\n const isLeftOfLocked = this.isLeftOfLocked(handle, columns);\n\n return !el.querySelector(GRID_HEADER_LOCKED_SELECTOR)\n && handle !== undefined\n && !handle.matches(GRID_HEADER_RESIZE_HANDLE)\n && !handle.matches(GRID_MULTISELECT_SELECTOR)\n && !handle.matches(GRID_ROW_DELETE_SELECTOR)\n && !isLeftOfLocked;\n },\n accepts: (\n el: HTMLElement,\n target: HTMLElement,\n source: HTMLElement,\n sibling: HTMLElement) => {\n\n if (sibling === undefined || !sibling) {\n return true;\n }\n\n const columns: NodeListOf<HTMLElement> = source.querySelectorAll('th div');\n const siblingDiv = sibling.querySelector('div');\n const isLeftOfLocked = this.isLeftOfLocked(siblingDiv, columns);\n\n return ((!sibling.matches(GRID_HEADER_LOCKED_SELECTOR)\n && !sibling.matches(GRID_HEADER_RESIZE_HANDLE)))\n && !isLeftOfLocked;\n }\n });\n }\n\n public getRowHeight(el: ElementRef, index: number): string {\n return el.nativeElement.querySelectorAll('tbody tr')[index].scrollHeight + 'px';\n }\n\n public setStyle(el: ElementRef, style: string, value: string): void {\n if (el) {\n this.renderer.setStyle(el.nativeElement, style, value);\n }\n }\n\n private isLeftOfLocked(handle: HTMLElement, columns: NodeListOf<HTMLElement>): boolean {\n let sourceColumn = handle;\n for (let column of Array.from(columns)) {\n if (column.contains(handle)) {\n sourceColumn = column;\n }\n }\n\n for (let i = (columns.length - 1); i >= 0; i--) {\n if (columns[i].classList.contains('sky-grid-header-locked')) {\n return true;\n }\n\n if (columns[i] === sourceColumn) {\n break;\n }\n }\n\n return false;\n }\n}\n","// tslint:disable:no-null-keyword\n\n// Polyfill for Element.closest().\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill\n// Returns the closest ancestor of the current element (or the current element itself) which\n// matches the selectors given in parameter. If there isn't such an ancestor, it returns null.\nif (!Element.prototype.closest) {\n Element.prototype.closest = function(s: any) {\n let el = this;\n /* istanbul ignore if */\n if (!document.documentElement.contains(el)) {\n return null;\n }\n do {\n if (el.matches(s)) {\n return el;\n }\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n return null;\n };\n}\n\n// Polyfill for Element.matches().\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\n// Returns true if the element would be selected by the specified selector string.\nif (!Element.prototype.matches) {\n /* istanbul ignore next */\n Element.prototype.matches = (Element.prototype as any).msMatchesSelector || Element.prototype.webkitMatchesSelector;\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n ContentChildren,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren\n} from '@angular/core';\n\nimport {\n SkyAffixAutoFitContext,\n SkyAffixService,\n SkyAppWindowRef,\n SkyOverlayService,\n SkyUIConfigService\n} from '@skyux/core';\n\nimport {\n DragulaService\n} from 'ng2-dragula';\n\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n Subscription,\n merge,\n fromEvent\n} from 'rxjs';\n\nimport {\n distinctUntilChanged,\n map,\n take,\n takeUntil,\n takeWhile\n} from 'rxjs/operators';\n\nimport {\n ListItemModel,\n ListSortFieldSelectorModel\n} from '@skyux/list-builder-common';\n\nimport {\n SkyGridColumnDescriptionModelChange\n} from './types/grid-column-description-model-change';\n\nimport {\n SkyGridColumnHeadingModelChange\n} from './types/grid-column-heading-model-change';\n\nimport {\n SkyGridColumnInlineHelpPopoverModelChange\n} from './types/grid-column-inline-help-popover-model-change';\n\nimport {\n SkyGridColumnWidthModelChange\n} from './types/grid-column-width-model-change';\n\nimport {\n SkyGridMessage\n} from './types/grid-message';\n\nimport {\n SkyGridMessageType\n} from './types/grid-message-type';\n\nimport {\n SkyGridRowDeleteCancelArgs\n} from './types/grid-row-delete-cancel-args';\n\nimport {\n SkyGridRowDeleteConfig\n} from './types/grid-row-delete-config';\n\nimport {\n SkyGridRowDeleteConfirmArgs\n} from './types/grid-row-delete-confirm-args';\n\nimport {\n SkyGridRowDeleteContents\n} from './types/grid-row-delete-contents';\n\nimport {\n SkyGridSelectedRowsModelChange\n} from './types/grid-selected-rows-model-change';\n\nimport {\n SkyGridSelectedRowsSource\n} from './types/grid-selected-rows-source';\n\nimport {\n SkyGridColumnComponent\n} from './grid-column.component';\n\nimport {\n SkyGridColumnModel\n} from './grid-column.model';\n\nimport {\n SkyGridAdapterService\n} from './grid-adapter.service';\n\nimport {\n SkyGridUIConfig\n} from './types/grid-ui-config';\n\nimport '../../polyfills';\n\nlet nextId = 0;\n\n@Component({\n selector: 'sky-grid',\n templateUrl: './grid.component.html',\n styleUrls: ['./grid.component.scss'],\n viewProviders: [DragulaService],\n providers: [\n SkyGridAdapterService\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyGridComponent implements OnInit, AfterContentInit, AfterViewInit, OnChanges, OnDestroy {\n\n /**\n * Specifies columns and column properties for the grid.\n */\n @Input()\n public columns: Array<SkyGridColumnModel>;\n\n /**\n * Specifies the data for the grid. Each item requires an `id` and a property that maps\n * to the `field` or `id` property of each column in the grid.\n */\n @Input()\n public data: Array<any>;\n\n /**\n * Indicates whether to enable the multiselect feature to display a column of\n * checkboxes on the left side of the grid. You can specify a unique ID with\n * the `multiselectRowId` property, but multiselect defaults to the `id` property on\n * the `data` object. To include options to select and clear all multiselect checkboxes,\n * we recommend the [list view grid](https://developer.blackbaud.com/skyux/components/list/grid) component.\n * @default false\n */\n @Input()\n public enableMultiselect: boolean = false;\n\n /**\n * Specifies how the grid fits to its parent. The valid options are `width`,\n * which fits the grid to the parent's full width, and `scroll`, which allows the grid\n * to exceed the parent's width. If the grid does not have enough columns to fill\n * the parent's width, it always stretches to the parent's full width.\n */\n @Input()\n public fit: string = 'width';\n\n /**\n * Indicates whether to display a toolbar with the grid.\n */\n @Input()\n public hasToolbar: boolean = false;\n\n /**\n * Specifies the height of the grid.\n */\n @Input()\n public height: number;\n\n /**\n * Specifies text to highlight within the grid.\n * Typically, this property is used in conjunction with search.\n */\n @Input()\n public highlightText: string;\n\n /**\n * Provides an observable to send commands to the grid.\n */\n @Input()\n public messageStream = new Subject<SkyGridMessage>();\n\n /**\n * Specifies a unique ID that matches a property on the `data` object.\n * By default, this property uses the `id` property.\n */\n @Input()\n public multiselectRowId: string;\n\n /**\n * Specifies the ID of the row to highlight. The ID matches the `id` property\n * of the `data` object. Typically, this property is used in conjunction with\n * the flyout component to indicate the currently selected row.\n */\n @Input()\n public rowHighlightedId: string;\n\n /**\n * Specifies the columns to display in the grid based on the `id` or `field` properties\n * of the columns. If no columns are specified, then the grid displays all columns.\n */\n @Input()\n public set selectedColumnIds(value: Array<string>) {\n\n const currentIds = this._selectedColumnIds;\n this._selectedColumnIds = value;\n\n if (this.columns) {\n this.setDisplayedColumns();\n }\n\n // Ensure that the ids have changed.\n if (\n !currentIds ||\n !value ||\n !this.arraysEqual(value, currentIds)\n ) {\n // This variable ensures that we do not set user config options or fire the change event\n // on the first time that the columns are set up\n if (this.selectedColumnIdsSet) {\n this.setUserConfig({\n selectedColumnIds: value\n });\n\n this.selectedColumnIdsChange.emit(this._selectedColumnIds);\n\n if (this.isResized) {\n this.resetTableWidth();\n }\n }\n }\n\n this.selectedColumnIdsSet = true;\n }\n\n public get selectedColumnIds(): Array<string> {\n return this._selectedColumnIds;\n }\n\n /**\n * Specifies a set of IDs for the rows to select in a multiselect grid.\n * The IDs match the `id` properties of the `data` objects.\n * Rows with IDs that are not included are de-selected in the grid.\n */\n @Input()\n public set selectedRowIds(value: Array<string>) {\n if (value) {\n this._selectedRowIds = value;\n this.applySelectedRows();\n this.emitSelectedRows(SkyGridSelectedRowsSource.SelectedRowIdsChange);\n }\n }\n\n public get selectedRowIds(): Array<string> {\n return this._selectedRowIds;\n }\n\n /**\n * Specifies a unique key for the UI Config Service to retrieve stored settings from a database.\n * The UI Config Service saves configuration settings for users and returns\n * `selectedColumnIds` to preserve the columns to display and the preferred column order.\n * For more information about the UI Config Service, see\n * [the sticky settings documentation](https://developer.blackbaud.com/skyux/learn/get-started/advanced/sticky-settings).\n */\n @Input()\n public settingsKey: string;\n\n /**\n * Displays a caret in the column that was used to sort the grid. This is particularly useful\n * when you programmatically sort data and want to visually indicate how the grid was sorted.\n * This property accepts a `ListSortFieldSelectorModel` value with the following properties:\n * - `fieldSelector` Represents the current sort field. This property accepts `string` values.\n * - `descending` Indicates whether to sort in descending order. The caret that visually\n * indicates the sort order points down for descending order and up for ascending order.\n * This property accepts `boolean` values. Default is `false`.\n */\n @Input()\n public sortField: ListSortFieldSelectorModel;\n\n /**\n * Specifies the width of the grid in pixels.\n */\n @Input()\n public width: number;\n\n /**\n * Fires when the width of a column changes.\n */\n @Output()\n public columnWidthChange = new EventEmitter<Array<SkyGridColumnWidthModelChange>>();\n\n /**\n * Fires when the selection of multiselect checkboxes changes.\n * Emits an array of IDs for the selected rows based on the `multiselectRowId` property\n * that the consumer provides.\n */\n @Output()\n public multiselectSelectionChange = new EventEmitter<SkyGridSelectedRowsModelChange>();\n\n /**\n * @internal\n */\n @Output()\n public rowDeleteCancel = new EventEmitter<SkyGridRowDeleteCancelArgs>();\n\n /**\n * @internal\n */\n @Output()\n public rowDeleteConfirm = new EventEmitter<SkyGridRowDeleteConfirmArgs>();\n\n /**\n * Fires when the columns to display in the grid change or when the order of the columns changes.\n * The event emits an array of IDs for the displayed columns that reflects the column order.\n */\n @Output()\n public selectedColumnIdsChange = new EventEmitter<Array<string>>();\n\n /**\n * Fires when the active sort field changes.\n */\n @Output()\n public sortFieldChange = new EventEmitter<ListSortFieldSelectorModel>();\n\n public columnResizeStep = 10;\n public currentSortField: BehaviorSubject<ListSortFieldSelectorModel>;\n public displayedColumns: Array<SkyGridColumnModel>;\n public gridId: number = ++nextId;\n public rowDeleteConfigs: SkyGridRowDeleteConfig[] = [];\n public items: Array<any>;\n public maxColWidth = 9999; // This is an arbitrary number, as the input range picker won't work without a value.\n public minColWidth = 50;\n public showResizeBar: boolean = false;\n public showTopScroll: boolean = false;\n\n public get tableWidth() {\n return this.tableElementRef.nativeElement.offsetWidth;\n }\n\n @ContentChildren(SkyGridColumnComponent)\n private columnComponents: QueryList<SkyGridColumnComponent>;\n\n @ViewChildren('gridCol')\n private columnElementRefs: QueryList<ElementRef>;\n @ViewChildren('colSizeRange')\n private columnRangeInputElementRefs: QueryList<ElementRef>;\n @ViewChildren('inlineDeleteRef')\n private inlineDeleteRefs: QueryList<ElementRef>;\n @ViewChild('inlineDeleteTemplateRef', { read: TemplateRef })\n private inlineDeleteTemplateRef: TemplateRef<any>;\n @ViewChild('gridContainer')\n private tableContainerElementRef: ElementRef;\n @ViewChild('gridTable')\n private tableElementRef: ElementRef;\n @ViewChild('topScrollContainer')\n private topScrollContainerElementRef: ElementRef;\n @ViewChild('resizeBar')\n private resizeBar: ElementRef;\n\n private activeResizeColumnIndex: string;\n private isDraggingResizeHandle: boolean = false;\n private isResized: boolean = false;\n private ngUnsubscribe = new Subject();\n private rowDeleteContents: { [id: string]: SkyGridRowDeleteContents } = {};\n private startColumnWidth: number;\n private subscriptions: Subscription[] = [];\n private scrollTriggered: boolean = false;\n private selectedColumnIdsSet: boolean = false;\n private xPosStart: number;\n\n private _selectedColumnIds: Array<string>;\n private _selectedRowIds: Array<string>;\n\n constructor(\n private affixService: SkyAffixService,\n private changeDetector: ChangeDetectorRef,\n private dragulaService: DragulaService,\n private gridAdapter: SkyGridAdapterService,\n private overlayService: SkyOverlayService,\n private skyWindow: SkyAppWindowRef,\n private uiConfigService: SkyUIConfigService\n ) {\n this.displayedColumns = new Array<SkyGridColumnModel>();\n this.items = new Array<any>();\n this.currentSortField = new BehaviorSubject<ListSortFieldSelectorModel>({\n fieldSelector: '',\n descending: false\n });\n }\n\n public ngOnInit() {\n this.messageStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyGridMessage) => {\n this.handleIncomingMessages(message);\n });\n }\n\n public ngAfterContentInit() {\n if (this.settingsKey) {\n this.applyUserConfig().then(() => {\n this.initColumns();\n });\n } else {\n this.initColumns();\n }\n\n // Setup column drag-and-drop.\n this.gridAdapter.initializeDragAndDrop(\n this.dragulaService,\n (selectedColumnIds: Array<string>) => {\n this.onHeaderDrop(selectedColumnIds);\n }\n );\n\n this.applySelectedRows();\n }\n\n public ngAfterViewInit() {\n this.checkUserColumnWidthsForScroll();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.columns && this.columns) {\n if (this.selectedColumnIds) {\n this.selectedColumnIds = this.selectedColumnIds.filter(columnId => this.columns.find(column => column.id === columnId));\n }\n this.setDisplayedColumns(true);\n }\n\n if (changes.data && this.data) {\n this.transformData();\n\n // This set timeout is necessary to ensure the data has rendered in the grid\n setTimeout(() => {\n // This cleans up any lingering row deletes for items that have been removed.\n Object.keys(this.rowDeleteContents).forEach(id => {\n if (!this.data.find(item => item.id === id)) {\n this.destroyRowDelete(id);\n } else {\n // The rows re-render thus messing up the affixers. We must reaffix them so that things\n // continue to render correctly.\n let rowElement: HTMLElement =\n this.tableElementRef.nativeElement.querySelector('[sky-cmp-id=\"' + id + '\"]');\n\n this.rowDeleteContents[id].affixer.affixTo(rowElement, {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n isSticky: true,\n placement: 'above',\n verticalAlignment: 'top',\n horizontalAlignment: 'left',\n enableAutoFit: false\n });\n }\n });\n\n this.checkUserColumnWidthsForScroll();\n });\n }\n\n if (changes.sortField) {\n this.setSortHeaders();\n }\n }\n\n public ngOnDestroy() {\n this.subscriptions.forEach((subscription: Subscription) => {\n subscription.unsubscribe();\n });\n this.multiselectSelectionChange.complete();\n\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n\n Object.keys(this.rowDeleteContents).forEach(id => {\n this.destroyRowDelete(id);\n });\n }\n\n @HostListener('window:resize')\n public onWindowResize(): void {\n this.checkUserColumnWidthsForScroll();\n }\n\n public getTopScrollWidth(): string {\n return this.tableElementRef.nativeElement.scrollWidth;\n }\n\n public getTableClassNames() {\n let classNames: string[] = [];\n\n if (this.fit !== 'scroll') {\n classNames.push('sky-grid-fit');\n }\n\n if (this.hasToolbar) {\n classNames.push('sky-grid-has-toolbar');\n }\n\n return this.addDelimeter(classNames, ' ');\n }\n\n public getTableHeaderClassNames(column: SkyGridColumnModel) {\n let classNames: string[] = [];\n\n if (column && column.locked) {\n classNames.push('sky-grid-header-locked');\n }\n\n return this.addDelimeter(classNames, ' ');\n }\n\n public getCaretIconNames(column: SkyGridColumnModel) {\n let iconNames: string[] = [];\n\n this.getSortDirection(column.field).subscribe((sortDir) => {\n if (sortDir === 'asc') {\n iconNames.push('caret-up');\n }\n if (sortDir === 'desc') {\n iconNames.push('caret-down');\n }\n });\n\n return this.addDelimeter(iconNames, ' ');\n }\n\n public onKeydown(event: KeyboardEvent, column: SkyGridColumnModel) {\n const key = event.key.toLowerCase();\n if (key === 'enter' || key === ' ') {\n this.sortByColumn(column);\n }\n }\n\n public sortByColumn(column: SkyGridColumnModel) {\n if (!this.isDraggingResizeHandle && column.isSortable) {\n this.currentSortField\n .pipe(\n take(1),\n map(field => {\n let selector = {\n fieldSelector: column.field,\n descending: true\n };\n\n if (field && field.fieldSelector === column.field && field.descending) {\n selector = {\n fieldSelector: column.field,\n descending: false\n };\n }\n this.sortFieldChange.emit(selector);\n this.currentSortField.next(selector);\n })\n )\n .subscribe();\n }\n }\n\n public getSortDirection(columnField: string): Observable<string> {\n return this.currentSortField\n .pipe(\n distinctUntilChanged(),\n map(field => {\n return field.fieldSelector === columnField ?\n (field.descending ? 'desc' : 'asc') : undefined;\n })\n );\n }\n\n public getAriaSortDirection(column: SkyGridColumnModel): Observable<string> {\n return this.currentSortField\n .pipe(\n distinctUntilChanged(),\n map(field => {\n return field.fieldSelector === column.field ?\n (field.descending ? 'descending' : 'ascending') : (column.isSortable ? 'none' : undefined);\n })\n );\n }\n\n public getCaretVisibility(columnField: string): Observable<string> {\n return this.currentSortField\n .pipe(\n distinctUntilChanged(),\n map(field => {\n return field.fieldSelector === columnField ? 'visible' : 'hidden';\n })\n );\n }\n\n public getHelpInlineClass(columnField: string): Observable<boolean> {\n return this.getCaretVisibility(columnField)\n .pipe(\n map((visibility: string) => {\n return visibility === 'hidden';\n })\n );\n }\n\n public onMultiselectCheckboxChange() {\n this.emitSelectedRows(SkyGridSelectedRowsSource.CheckboxChange);\n }\n\n public updateColumnHeading(change: SkyGridColumnHeadingModelChange) {\n const foundColumnModel = this.columns.find((column: SkyGridColumnModel) => {\n return (\n change.id !== undefined && change.id === column.id ||\n change.field !== undefined && change.field === column.field\n );\n });\n\n /* istanbul ignore else */\n if (foundColumnModel) {\n foundColumnModel.heading = change.value;\n this.changeDetector.markForCheck();\n }\n }\n\n public updateInlineHelpPopover(change: SkyGridColumnInlineHelpPopoverModelChange) {\n const foundColumnModel = this.columns.find((column: SkyGridColumnModel) => {\n return (\n change.id !== undefined && change.id === column.id ||\n change.field !== undefined && change.field === column.field\n );\n });\n\n /* istanbul ignore else */\n if (foundColumnModel) {\n foundColumnModel.inlineHelpPopover = change.value;\n this.changeDetector.markForCheck();\n }\n }\n\n public updateColumnDescription(change: SkyGridColumnDescriptionModelChange) {\n const foundColumnModel = this.columns.find((column: SkyGridColumnModel) => {\n return (\n change.id !== undefined && change.id === column.id ||\n change.field !== undefined && change.field === column.field\n );\n });\n\n /* istanbul ignore else */\n if (foundColumnModel) {\n foundColumnModel.description = change.value;\n this.changeDetector.markForCheck();\n }\n }\n\n public onResizeColumnStart(event: MouseEvent): void {\n // If this table hasn't been resized, initialize all the resize widths.\n if (!this.isResized) {\n this.initColumnWidths();\n this.isResized = true;\n }\n\n this.initializeResizeColumn(event);\n\n this.isDraggingResizeHandle = true;\n this.xPosStart = event.pageX;\n this.showResizeBar = true;\n\n // Show visual indicator of where mouse is dragging (resizeBar).\n this.changeDetector.detectChanges();\n this.setResizeBarPosition(event.pageX);\n\n event.preventDefault();\n event.stopPropagation();\n\n const mouseMoveEvent = fromEvent(document, 'mousemove');\n const touchMoveEvent = fromEvent(document, 'touchmove');\n\n merge(mouseMoveEvent, touchMoveEvent)\n .pipe(\n takeWhile(() => {\n return this.isDraggingResizeHandle;\n })\n )\n .subscribe((moveEvent: any) => {\n this.onResizeHandleMove(moveEvent);\n });\n\n const mouseUpEvent = fromEvent(document, 'mouseup');\n const touchEndEvent = fromEvent(document, 'touchend');\n\n merge(mouseUpEvent, touchEndEvent)\n .pipe(\n takeWhile(() => {\n return this.isDraggingResizeHandle;\n })\n )\n .subscribe((endEvent: any) => {\n this.onResizeHandleRelease(endEvent);\n });\n }\n\n public onKeydownResizeCol(event: KeyboardEvent) {\n // If this table hasn't been resized, initialize all the resize widths.\n if (!this.isResized) {\n this.initColumnWidths();\n this.isResized = true;\n }\n\n this.initializeResizeColumn(event);\n }\n\n public onInputChangeResizeCol(event: Event) {\n const input = event.target as HTMLInputElement;\n let newValue = Number(input.value);\n let deltaX = newValue - this.startColumnWidth;\n this.resizeColumnByIndex(this.activeResizeColumnIndex, newValue, deltaX);\n const left = input.getBoundingClientRect().left;\n this.setResizeBarPosition(left);\n }\n\n public onResizeHandleMove(event: MouseEvent) {\n let deltaX = event.pageX - this.xPosStart;\n let newColWidth = this.startColumnWidth + deltaX;\n\n if (newColWidth <= this.minColWidth) {\n event.stopPropagation();\n return;\n }\n\n let max = this.getMaxRangeByIndex(this.activeResizeColumnIndex);\n if (this.fit === 'width' && newColWidth > max) {\n event.stopPropagation();\n return;\n }\n\n this.setResizeBarPosition(event.pageX);\n }\n\n public onResizeHandleBlur(event: Event) {\n this.showResizeBar = false;\n }\n\n public onResizeHandleFocus(event: KeyboardEvent) {\n this.showResizeBar = true;\n this.changeDetector.detectChanges();\n\n const target = event.target as HTMLElement;\n const left = target.getBoundingClientRect().left;\n this.setResizeBarPosition(left);\n }\n\n public onResizeHandleRelease(event: MouseEvent) {\n this.showResizeBar = false;\n let deltaX = event.pageX - this.xPosStart;\n let newColWidth = this.startColumnWidth + deltaX;\n this.resizeColumnByIndex(this.activeResizeColumnIndex, newColWidth, deltaX);\n this.isDraggingResizeHandle = false;\n this.activeResizeColumnIndex = undefined;\n\n event.stopPropagation();\n this.changeDetector.markForCheck();\n }\n\n public onRowClick(event: any, selectedItem: ListItemModel) {\n /* istanbul ignore else */\n if (this.enableMultiselect) {\n if (event.target === event.currentTarget || !this.isInteractiveElement(event)) {\n selectedItem.isSelected = !selectedItem.isSelected;\n this.changeDetector.markForCheck();\n this.emitSelectedRows(SkyGridSelectedRowsSource.RowClick);\n }\n }\n }\n\n public isRowHighlighted(id: string): boolean {\n if (this.rowHighlightedId) {\n return id === this.rowHighlightedId;\n }\n return false;\n }\n\n public getRowHeight(index: number): string {\n return this.gridAdapter.getRowHeight(this.tableElementRef, index);\n }\n\n public cancelRowDelete(id: string) {\n this.rowDeleteConfigs = this.rowDeleteConfigs.filter(config => config.id !== id);\n this.rowDeleteCancel.emit({ id: id });\n\n this.destroyRowDelete(id);\n }\n\n public confirmRowDelete(id: string) {\n this.rowDeleteConfigs.find(config => config.id === id).pending = true;\n this.rowDeleteConfirm.emit({ id: id });\n }\n\n public getRowDeleteItem(id: string): SkyGridRowDeleteConfig {\n return this.rowDeleteConfigs.find(rowDelete => rowDelete.id === id);\n }\n\n // Prevent touch devices from inadvertently scrolling grid while dragging columns.\n public onTouchMove(event: any): void {\n event.preventDefault();\n }\n\n public onTopScroll(event: any): void {\n /* sanity check */\n /* istanbul ignore else */\n if (this.tableContainerElementRef) {\n if (this.scrollTriggered) {\n this.scrollTriggered = false;\n this.tableContainerElementRef.nativeElement.scrollLeft =\n this.topScrollContainerElementRef.nativeElement.scrollLeft;\n } else {\n this.scrollTriggered = true;\n }\n }\n }\n\n public onGridScroll(event: any): void {\n /* sanity check */\n /* istanbul ignore else */\n if (this.topScrollContainerElementRef) {\n if (this.scrollTriggered) {\n this.scrollTriggered = false;\n this.topScrollContainerElementRef.nativeElement.scrollLeft =\n this.tableContainerElementRef.nativeElement.scrollLeft;\n } else {\n this.scrollTriggered = true;\n }\n }\n }\n\n private checkUserColumnWidthsForScroll(): void {\n if (!this.showTopScroll && this.columnElementRefs && this.columnElementRefs.length > 0) {\n let columnsWidthTotal = 0;\n const windowSize = this.skyWindow.nativeWindow.innerWidth;\n this.columnElementRefs.forEach(col => {\n if (!this.showTopScroll) {\n let computedWidth = parseFloat(window.getComputedStyle(col.nativeElement).width);\n let offsetWidth = col.nativeElement.offsetWidth;\n let width = Math.max(computedWidth || offsetWidth, this.minColWidth);\n columnsWidthTotal = columnsWidthTotal + width;\n if (columnsWidthTotal > windowSize) {\n this.showTopScroll = true;\n setTimeout(() => {\n this.changeDetector.markForCheck();\n });\n }\n }\n });\n }\n }\n\n private multiselectSelectAll() {\n for (let i = 0; i < this.items.length; i++) {\n this.items[i].isSelected = true;\n }\n this.changeDetector.markForCheck();\n this.emitSelectedRows(SkyGridSelectedRowsSource.SelectAll);\n }\n\n private multiselectClearAll() {\n for (let i = 0; i < this.items.length; i++) {\n this.items[i].isSelected = false;\n }\n this.changeDetector.markForCheck();\n this.emitSelectedRows(SkyGridSelectedRowsSource.ClearAll);\n }\n\n private handleIncomingMessages(message: SkyGridMessage) {\n /* tslint:disable-next-line:switch-default */\n switch (message.type) {\n case SkyGridMessageType.SelectAll:\n this.multiselectSelectAll();\n break;\n\n case SkyGridMessageType.ClearAll:\n this.multiselectClearAll();\n break;\n case SkyGridMessageType.PromptDeleteRow:\n /* sanity check */\n /* istanbul ignore else */\n if (message.data && message.data.promptDeleteRow) {\n const existingConfig = this.rowDeleteConfigs\n .find(config => config.id === message.data.promptDeleteRow.id);\n if (existingConfig) {\n existingConfig.pending = false;\n } else {\n this.rowDeleteConfigs.push({ id: message.data.promptDeleteRow.id, pending: false });\n let overlay = this.overlayService.create({\n enableScroll: true,\n showBackdrop: false,\n closeOnNavigation: true,\n enableClose: false,\n enablePointerEvents: true\n });\n\n overlay.attachTemplate(this.inlineDeleteTemplateRef,\n { $implicit: this.data.find(item => item.id === message.data.promptDeleteRow.id) });\n\n /**\n * We are manually setting the z-index here because overlays will always be on top of\n * the omnibar. This manual setting is 1 less than the omnibar's z-index of 1000. We\n * discussed changing the overlay service to allow for this but decided against that\n * change at this time due to its niche nature.\n */\n overlay.componentRef.instance.zIndex = '999';\n\n setTimeout(() => {\n const inlineDeleteRef = this.inlineDeleteRefs.toArray()\n .find(elRef => {\n return elRef.nativeElement.id === 'row-delete-ref-' + message.data.promptDeleteRow.id;\n });\n let affixer = this.affixService.createAffixer(inlineDeleteRef);\n\n let rowElement: HTMLElement =\n this.tableElementRef.nativeElement.querySelector('[sky-cmp-id=\"' + message.data.promptDeleteRow.id + '\"]');\n\n affixer.affixTo(rowElement, {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n isSticky: true,\n placement: 'above',\n verticalAlignment: 'top',\n horizontalAlignment: 'left',\n enableAutoFit: false\n });\n\n this.rowDeleteContents[message.data.promptDeleteRow.id] = {\n affixer: affixer,\n overlay: overlay\n };\n });\n }\n }\n break;\n case SkyGridMessageType.AbortDeleteRow:\n /* sanity check */\n /* istanbul ignore else */\n if (message.data && message.data.abortDeleteRow) {\n this.rowDeleteConfigs = this.rowDeleteConfigs.filter(config => config.id !== message.data.abortDeleteRow.id);\n\n this.destroyRowDelete(message.data.abortDeleteRow.id);\n }\n break;\n }\n this.changeDetector.markForCheck();\n }\n\n private onHeaderDrop(newColumnIds: Array<string>) {\n // update selected columnIds\n this.selectedColumnIdsSet = true;\n this.selectedColumnIds = newColumnIds;\n\n // mark for check because we are using ChangeDetectionStrategy.onPush\n this.changeDetector.markForCheck();\n }\n\n private setDisplayedColumns(respectHidden: boolean = false) {\n if (this.selectedColumnIds !== undefined) {\n // setup displayed columns\n this.displayedColumns = this.selectedColumnIds\n .filter(\n columnId => this.columns.find(column => column.id === columnId)\n ).map(\n columnId => this.columns.filter(column => column.id === columnId)[0]\n );\n } else if (respectHidden) {\n this.displayedColumns = this.columns.filter(column => {\n return !column.hidden;\n });\n } else {\n this.displayedColumns = this.columns;\n }\n }\n\n private transformData() {\n // Transform data into object with id and data properties\n if (this.data && this.data.length > 0 && this.data[0].id && !this.data[0].data) {\n if (this.multiselectRowId) {\n this.items = this.getGridDataWithSelectedRows();\n } else {\n this.items = this.data.map(item => new ListItemModel(item.id, item));\n }\n } else {\n this.items = this.data;\n }\n }\n\n private getGridDataWithSelectedRows() {\n let selectedRows = this.getSelectedRows();\n return this.data.map(item => {\n let checked;\n if (item.hasOwnProperty(this.multiselectRowId)) {\n checked = selectedRows.indexOf(item[this.multiselectRowId]) > -1;\n } else {\n checked = selectedRows.indexOf(item.id) > -1;\n }\n return new ListItemModel(item.id, item, checked);\n });\n }\n\n private applySelectedRows(): void {\n if (this.items && this.items.length > 0 && this.selectedRowIds) {\n for (let i = 0; i < this.items.length; i++) {\n this.items[i].isSelected = (this.selectedRowIds.indexOf(this.items[i].id) > -1);\n }\n this.changeDetector.markForCheck();\n }\n }\n\n private setSortHeaders() {\n this.currentSortField.next(this.sortField || { fieldSelector: '', descending: false });\n }\n\n private getColumnsFromComponent() {\n this.columns = this.columnComponents.map(columnComponent => {\n return new SkyGridColumnModel(columnComponent.template, columnComponent);\n });\n }\n\n private updateColumns() {\n this.getColumnsFromComponent();\n this.setDisplayedColumns(true);\n this.changeDetector.markForCheck();\n\n // This set timeout is necessary to ensure the columns have rendered in the grid\n setTimeout(() => {\n this.checkUserColumnWidthsForScroll();\n });\n }\n\n private resizeColumnByIndex(columnIndex: string, newColWidth: number, deltaX: number) {\n let column = this.getColumnModelByIndex(columnIndex);\n\n // Prevent accidental shrinkage below minimum width.\n if (newColWidth <= this.minColWidth) {\n deltaX = deltaX + this.minColWidth - newColWidth;\n newColWidth = this.minColWidth;\n }\n\n // fit=width adds/removes width from the last column\n // fit=scroll adds/removes width from the table\n if (this.fit === 'width') {\n let lastColumn = this.getLastDisplayedColumn();\n\n // Prevent accidental growth that would bump last column off screen.\n let max = this.getMaxRangeByIndex(columnIndex);\n if (newColWidth > max) {\n newColWidth = max;\n deltaX = max - this.startColumnWidth;\n }\n column.width = newColWidth;\n lastColumn.width = lastColumn.width - deltaX;\n this.updateMaxRange();\n } else {\n this.gridAdapter.setStyle(this.tableElementRef, 'width', `${this.tableWidth + deltaX}px`);\n column.width = newColWidth;\n }\n\n this.changeDetector.detectChanges();\n this.columnWidthChange.emit(this.getColumnWidthModelChange());\n }\n\n private initColumnWidths() {\n // Establish table width.\n this.showTopScroll = true;\n\n // Set column widths based on the width initially given by the browser.\n // computedWidth prevents accidental overflow for browsers with sub-pixel widths.\n this.columnElementRefs.forEach((col, index) => {\n let computedWidth = parseFloat(window.getComputedStyle(col.nativeElement).width);\n let offsetWidth = col.nativeElement.offsetWidth;\n let width = Math.max(\n computedWidth /* istanbul ignore next */ || offsetWidth,\n this.minColWidth\n );\n this.getColumnModelByIndex(index).width = width;\n });\n\n // 'scroll' tables should be allowed to expand outside of their constraints.\n if (this.fit === 'scroll') {\n this.gridAdapter.setStyle(this.tableElementRef, 'min-width', 'auto');\n }\n\n // Update max limits for input ranges.\n if (this.fit === 'width') {\n this.updateMaxRange();\n }\n\n this.changeDetector.detectChanges();\n }\n\n private getColumnWidthModelChange() {\n let columnWidthModelChange = new Array<SkyGridColumnWidthModelChange>();\n this.columns.forEach(column => {\n columnWidthModelChange.push({\n id: column.id,\n field: column.field,\n width: column.width\n });\n });\n return columnWidthModelChange;\n }\n\n private updateMaxRange() {\n let leftoverWidth = this.getLastDisplayedColumn().width - this.minColWidth;\n this.displayedColumns.forEach((column, index) => {\n let newMaxRange = column.width + leftoverWidth;\n let rangeInput = this.getRangeInputByIndex(index);\n rangeInput.nativeElement.max = newMaxRange;\n rangeInput.nativeElement.setAttribute('aria-valuemax', newMaxRange);\n });\n }\n\n private initializeResizeColumn(event: any) {\n const clickTarget = event.target as HTMLElement;\n this.activeResizeColumnIndex = clickTarget.getAttribute('sky-cmp-index');\n let column = this.getColumnModelByIndex(this.activeResizeColumnIndex);\n this.startColumnWidth = column.width;\n }\n\n private resetTableWidth() {\n this.skyWindow.nativeWindow.setTimeout(() => {\n this.gridAdapter.setStyle(this.tableElementRef, 'width', `auto`);\n this.changeDetector.detectChanges();\n this.gridAdapter.setStyle(this.tableElementRef, 'width', `${this.tableWidth}px`);\n this.changeDetector.detectChanges();\n });\n }\n\n private getRangeInputByIndex(index: string | number) {\n return this.columnRangeInputElementRefs.find(input =>\n input.nativeElement.getAttribute('sky-cmp-index') === index.toString()\n );\n }\n\n private getColumnModelByIndex(index: string | number) {\n return this.displayedColumns[Number(index)];\n }\n\n private getMaxRangeByIndex(index: string) {\n let columnElementRef = this.columnElementRefs.find(th =>\n th.nativeElement.getAttribute('sky-cmp-index') === index\n );\n let rangeInput = columnElementRef.nativeElement.querySelector('.sky-grid-column-input-aria-only');\n return Number(rangeInput.max);\n }\n\n private getLastDisplayedColumn() {\n return this.getColumnModelByIndex(this.displayedColumns.length - 1);\n }\n\n private addDelimeter(text: string[], delimiter: string) {\n return text.filter(val => val).join(delimiter);\n }\n\n private destroyRowDelete(id: string) {\n const rowDeleteContents = this.rowDeleteContents[id];\n if (rowDeleteContents) {\n rowDeleteContents.affixer.destroy();\n this.overlayService.close(rowDeleteContents.overlay);\n delete this.rowDeleteContents[id];\n }\n }\n\n private emitSelectedRows(source: SkyGridSelectedRowsSource) {\n let selectedRows: SkyGridSelectedRowsModelChange = {\n selectedRowIds: this.getSelectedRows(),\n source: source\n };\n this.multiselectSelectionChange.emit(selectedRows);\n }\n\n private getSelectedRows() {\n return this.items.filter(item => {\n return item.isSelected;\n }).map(item => {\n if (item.data.hasOwnProperty(this.multiselectRowId)) {\n return item.data[this.multiselectRowId];\n }\n return item.id;\n });\n }\n\n private isInteractiveElement(event: any): any {\n let interactiveElSelectors = `\n a,\n button,\n input,\n label,\n option,\n select,\n textarea,\n details,\n dialog,\n menu,\n menuitem,\n summary`;\n return event.target.closest(interactiveElSelectors);\n }\n\n private setResizeBarPosition(xPosition: number): void {\n let parentScroll = this.tableContainerElementRef.nativeElement.scrollLeft;\n let resizeBarX = xPosition - this.tableElementRef.nativeElement.getBoundingClientRect().left - parentScroll;\n this.gridAdapter.setStyle(this.resizeBar, 'left', resizeBarX + 'px');\n }\n\n private applyUserConfig(): Promise<void> {\n return new Promise<void>((resolve) => {\n this.uiConfigService.getConfig(this.settingsKey)\n .pipe(take(1))\n .subscribe((config: SkyGridUIConfig) => {\n /* istanbul ignore else */\n if (config && config.selectedColumnIds) {\n\n // Remove any columnIds that don't exist in the current data set.\n const filteredColumnIds = config.selectedColumnIds.filter(\n id => this.columns.find(column => column.id === id)\n );\n\n this.selectedColumnIds = filteredColumnIds;\n this.changeDetector.markForCheck();\n }\n\n resolve();\n }, () => {\n resolve();\n });\n });\n }\n\n private setUserConfig(config: SkyGridUIConfig): void {\n if (!this.settingsKey) {\n return;\n }\n\n this.uiConfigService.setConfig(\n this.settingsKey,\n config\n )\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(\n () => { },\n (err) => {\n console.warn('Could not save grid settings.');\n console.warn(err);\n }\n );\n }\n\n private initColumns(): void {\n /* istanbul ignore else */\n if (\n this.columnComponents.length !== 0 ||\n this.columns !== undefined\n ) {\n /* istanbul ignore else */\n /* sanity check */\n if (this.columnComponents.length > 0) {\n this.getColumnsFromComponent();\n }\n\n this.transformData();\n this.setDisplayedColumns(true);\n this.changeDetector.markForCheck();\n }\n\n // Watch for added/removed columns:\n this.subscriptions.push(\n this.columnComponents.changes.subscribe(() => this.updateColumns())\n );\n\n // Watch for column heading changes:\n this.columnComponents.forEach((comp: SkyGridColumnComponent) => {\n this.subscriptions.push(\n comp.headingModelChanges\n .subscribe((change: SkyGridColumnHeadingModelChange) => {\n this.updateColumnHeading(change);\n })\n );\n this.subscriptions.push(\n comp.descriptionModelChanges\n .subscribe((change: SkyGridColumnDescriptionModelChange) => {\n this.updateColumnDescription(change);\n })\n );\n this.subscriptions.push(\n comp.inlineHelpPopoverModelChanges\n .subscribe((change: SkyGridColumnInlineHelpPopoverModelChange) => {\n this.updateInlineHelpPopover(change);\n })\n );\n });\n }\n\n private arraysEqual(arrayA: any[], arrayB: any[]): boolean {\n return arrayA.length === arrayB.length &&\n arrayA.every((value, index) =>\n value === arrayB[index]);\n }\n}\n","import {\n Component,\n Input,\n ViewChild,\n ViewContainerRef,\n TemplateRef,\n OnInit,\n ChangeDetectionStrategy\n} from '@angular/core';\n\nimport {\n getData,\n ListItemModel\n} from '@skyux/list-builder-common';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-grid-cell',\n template: '<ng-template #cell></ng-template>',\n styleUrls: ['./grid-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkyGridCellComponent implements OnInit {\n @Input()\n public item: ListItemModel;\n\n @Input()\n public columnId: string;\n\n @Input()\n private template: TemplateRef<any>;\n\n @Input()\n private fieldSelector: string;\n\n @ViewChild('cell', {\n read: ViewContainerRef,\n static: true\n })\n private container: ViewContainerRef;\n\n public ngOnInit() {\n this.container.createEmbeddedView(this.template, this);\n }\n\n get row() {\n return this.item.data;\n }\n\n get value() {\n if (this.item.data && (this.fieldSelector || this.columnId)) {\n return getData(this.item.data, this.fieldSelector || this.columnId);\n }\n\n return undefined;\n }\n}\n","\nimport {\n Injectable\n} from '@angular/core';\n\nimport {\n getStringForLocale,\n SkyAppLocaleInfo,\n SkyLibResourcesProvider\n} from '@skyux/i18n';\n\n@Injectable()\nexport class SkyGridsResourcesProvider implements SkyLibResourcesProvider {\n private resources: any = {\"EN-US\":{\"skyux_grid_multiselect_select_row\":\"Select row\"}};\n\n public getString(localeInfo: SkyAppLocaleInfo, name: string): string {\n return getStringForLocale(this.resources, localeInfo.locale, name);\n }\n}\n","import {\n NgModule\n} from '@angular/core';\n\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyI18nModule\n} from '@skyux/i18n';\n\nimport {\n SkyGridsResourcesProvider\n} from '../../plugin-resources/grids-resources-provider';\n\n@NgModule({\n exports: [\n SkyI18nModule\n ],\n providers: [{\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyGridsResourcesProvider,\n multi: true\n }]\n})\nexport class SkyGridsResourcesModule { }\n","import {\n NgModule\n} from '@angular/core';\n\nimport {\n CommonModule\n} from '@angular/common';\n\nimport {\n FormsModule\n} from '@angular/forms';\n\nimport {\n DragulaModule\n} from 'ng2-dragula';\n\nimport {\n SkyAffixModule,\n SkyAppWindowRef,\n SkyOverlayModule,\n SkyUIConfigService\n} from '@skyux/core';\n\nimport {\n SkyCheckboxModule\n} from '@skyux/forms';\n\nimport {\n SkyIconModule,\n SkyTextHighlightModule,\n SkyHelpInlineModule\n} from '@skyux/indicators';\n\nimport {\n SkyInlineDeleteModule\n} from '@skyux/layout';\n\nimport {\n SkyPopoverModule\n} from '@skyux/popovers';\n\nimport {\n SkyGridComponent\n} from './grid.component';\n\nimport {\n SkyGridColumnComponent\n} from './grid-column.component';\n\nimport {\n SkyGridCellComponent\n} from './grid-cell.component';\n\nimport {\n SkyGridsResourcesModule\n} from '../shared/grids-resources.module';\n\n@NgModule({\n declarations: [\n SkyGridComponent,\n SkyGridColumnComponent,\n SkyGridCellComponent\n ],\n imports: [\n CommonModule,\n DragulaModule,\n FormsModule,\n SkyAffixModule,\n SkyCheckboxModule,\n SkyGridsResourcesModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyInlineDeleteModule,\n SkyOverlayModule,\n SkyPopoverModule,\n SkyTextHighlightModule\n ],\n exports: [\n SkyGridComponent,\n SkyGridColumnComponent,\n SkyGridCellComponent\n ],\n providers: [\n SkyAppWindowRef,\n SkyUIConfigService\n ]\n})\nexport class SkyGridModule {\n}\n"],"names":["SkyGridMessageType","SkyGridSelectedRowsSource","EventEmitter","Input","ContentChildren","TemplateRef","Component","ChangeDetectionStrategy","RendererFactory2","Injectable","Subject","BehaviorSubject","takeUntil","SkyAffixAutoFitContext","take","map","distinctUntilChanged","fromEvent","merge","takeWhile","ListItemModel","SkyAffixService","ChangeDetectorRef","DragulaService","SkyOverlayService","SkyAppWindowRef","SkyUIConfigService","Output","ViewChildren","ViewChild","HostListener","getData","ViewContainerRef","getStringForLocale","NgModule","SkyI18nModule","SKY_LIB_RESOURCES_PROVIDERS","CommonModule","DragulaModule","FormsModule","SkyAffixModule","SkyCheckboxModule","SkyHelpInlineModule","SkyIconModule","SkyInlineDeleteModule","SkyOverlayModule","SkyPopoverModule","SkyTextHighlightModule"],"mappings":"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"}