{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/ui-scroll-grid.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","angular","directive","console","$timeout","GridAdapter","controller","this","getLayout","applyLayout","layout","columnFromPoint","x","y","getColumns","ColumnAdapter","column","css","attr","arguments","length","header","forEachRow","row","id","moveBefore","index","exchangeWith","ColumnController","columns","insidePoint","element","offset","left","outerWidth","top","outerHeight","target","detach","before","moveLast","parent","append","applyCss","removeAttr","mapTo","extend","result","GridController","scrollViewport","rowMap","Map","transform","visible","forEach","cell","adapter","publicContext","gridAdapter","scope","item","registerColumn","push","registerCell","set","unregisterCell","indexOf","splice","delete","callback","slice","sort","a","b","layouts","Error","map","selected","columnId","next","find","col","undefined","require","restrict","link","$scope","$attr","controllers","gridController","tdInitializer","uiScrollTdInitializer","linking","$on","onLink"],"mappings":"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","file":"ui-scroll-grid.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","angular.module('ui.scroll.grid', [])\r\n .directive('uiScrollTh', ['$log', '$timeout', function(console, $timeout) {\r\n\r\n function GridAdapter(controller) {\r\n\r\n this.getLayout = () => controller.getLayout();\r\n\r\n this.applyLayout = (layout) => controller.applyLayout(layout);\r\n\r\n this.columnFromPoint = (x, y) => controller.columnFromPoint(x, y);\r\n\r\n Object.defineProperty(this, 'columns', { get: () => controller.getColumns() });\r\n }\r\n\r\n function ColumnAdapter(controller, column) {\r\n\r\n this.css = function( /* attr, value */ ) {\r\n var attr = arguments[0];\r\n var value = arguments[1];\r\n if (arguments.length == 1) {\r\n return column.header.css(attr);\r\n }\r\n if (arguments.length == 2) {\r\n column.header.css(attr, value);\r\n controller.forEachRow((row) => row[column.id].css(attr, value));\r\n column.css[attr] = value;\r\n }\r\n };\r\n\r\n this.moveBefore = (index) => controller.moveBefore(column, index);\r\n\r\n this.exchangeWith = (index) => controller.exchangeWith(column, index);\r\n\r\n Object.defineProperty(this, 'columnId', { get: () => column.id });\r\n }\r\n\r\n function ColumnController(controller, columns, header) {\r\n\r\n this.header = header;\r\n this.css = {};\r\n this.mapTo = columns.length;\r\n this.id = columns.length;\r\n\r\n // controller api methods\r\n\r\n this.applyLayout = function(layout) {\r\n this.css = angular.extend({}, layout.css);\r\n this.mapTo = layout.mapTo;\r\n applyCss(this.header, this.css);\r\n };\r\n\r\n this.moveBefore = function(target) {\r\n if (target) {\r\n moveBefore(header, target.header);\r\n controller.forEachRow((row) => moveBefore(row[this.id], row[target.id]));\r\n } else {\r\n moveLast(header);\r\n controller.forEachRow((row) => moveLast(row[this.id]));\r\n }\r\n };\r\n\r\n this.columnFromPoint = function(x, y) {\r\n if (insidePoint(header, x, y)) {\r\n return this;\r\n }\r\n let result = null;\r\n controller.forEachRow((row) =>\r\n result = insidePoint(row[this.id], x, y) ? this : result\r\n );\r\n return result;\r\n };\r\n\r\n this.applyCss = function(target) {\r\n applyCss(target, this.css);\r\n };\r\n\r\n // function definitions\r\n\r\n function insidePoint(element, x, y) {\r\n let offset = element.offset();\r\n if (x < offset.left || offset.left + element.outerWidth(true) < x)\r\n return false;\r\n if (y < offset.top || offset.top + element.outerHeight(true) < y)\r\n return false;\r\n return true;\r\n }\r\n\r\n function moveBefore(element, target) {\r\n element.detach();\r\n target.before(element);\r\n }\r\n\r\n function moveLast(element) {\r\n let parent = element.parent();\r\n element.detach();\r\n parent.append(element);\r\n }\r\n\r\n function applyCss(target, css) {\r\n target.removeAttr('style');\r\n for (let attr in css) {\r\n if (css.hasOwnProperty(attr)) {\r\n target.css(attr, css[attr]);\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n function GridController(scrollViewport) {\r\n let columns = [];\r\n let rowMap = new Map();\r\n\r\n $timeout(() => {\r\n scrollViewport.adapter.publicContext.gridAdapter = new GridAdapter(this);\r\n scrollViewport.adapter.transform = (scope, item) => transform(rowMap.get(scope), item);\r\n });\r\n\r\n this.registerColumn = function(header) {\r\n columns.push(new ColumnController(this, columns, header));\r\n };\r\n\r\n this.registerCell = function(scope, cell) {\r\n let row = rowMap.get(scope);\r\n if (!row) {\r\n row = [];\r\n rowMap.set(scope, row);\r\n }\r\n if (row.length >= columns.length) {\r\n return false;\r\n }\r\n row.push(cell);\r\n return true;\r\n };\r\n\r\n this.unregisterCell = function(scope, cell) {\r\n let row = rowMap.get(scope);\r\n let i = row.indexOf(cell);\r\n row.splice(i, 1);\r\n if (!row.length) {\r\n rowMap.delete(scope);\r\n }\r\n };\r\n\r\n this.forEachRow = function(callback) {\r\n rowMap.forEach(callback);\r\n };\r\n\r\n this.getColumns = function() {\r\n let result = [];\r\n columns.slice()\r\n .sort((a, b) => a.mapTo - b.mapTo)\r\n .forEach((column) => result.push(new ColumnAdapter(this, column)));\r\n return result;\r\n };\r\n\r\n this.getLayout = function() {\r\n let result = [];\r\n columns.forEach((column, index) => result.push({\r\n index: index,\r\n css: angular.extend({}, column.css),\r\n mapTo: column.mapTo\r\n }));\r\n return result;\r\n };\r\n\r\n this.applyLayout = function(layouts) {\r\n if (!layouts || layouts.length != columns.length) {\r\n throw new Error('Failed to apply layout - number of layouts should match number of columns');\r\n }\r\n layouts.forEach((layout, index) => columns[index].applyLayout(layout));\r\n transform(columns.map((column) => column.header));\r\n rowMap.forEach((row) => transform(row));\r\n };\r\n\r\n this.moveBefore = function(selected, target) {\r\n let index = target;\r\n\r\n if (target % 1 !== 0) {\r\n index = target ? columns[target.columnId].mapTo : columns.length;\r\n }\r\n if (index < 0 || index > columns.length) {\r\n return; // throw an error?\r\n }\r\n\r\n let mapTo = selected.mapTo,\r\n next = null;\r\n index -= mapTo < index ? 1 : 0;\r\n\r\n columns.forEach(c => {\r\n c.mapTo -= c.mapTo > mapTo ? 1 : 0;\r\n c.mapTo += c.mapTo >= index ? 1 : 0;\r\n next = c.mapTo === index + 1 ? c : next;\r\n });\r\n\r\n selected.mapTo = index;\r\n selected.moveBefore(next);\r\n };\r\n\r\n this.exchangeWith = function(selected, index) {\r\n if (index < 0 || index >= columns.length) {\r\n return;\r\n }\r\n columns.find(c => c.mapTo === index).mapTo = selected.mapTo;\r\n selected.mapTo = index;\r\n };\r\n\r\n this.columnFromPoint = function(x, y) {\r\n let column = columns.find(col => col.columnFromPoint(x, y));\r\n return column ? new ColumnAdapter(this, column) : undefined;\r\n };\r\n\r\n // function definitions\r\n\r\n function transform(row) {\r\n let parent = row[0].parent();\r\n let visible = [];\r\n\r\n row.forEach((cell, index) => {\r\n columns[index].applyCss(cell);\r\n visible[columns[index].mapTo] = row[index];\r\n row[index].detach();\r\n });\r\n\r\n visible.forEach(cell => parent.append(cell));\r\n }\r\n\r\n }\r\n\r\n return {\r\n require: ['^^uiScrollViewport'],\r\n restrict: 'A',\r\n link: ($scope, element, $attr, controllers) => {\r\n controllers[0].gridController = controllers[0].gridController || new GridController(controllers[0]);\r\n controllers[0].gridController.registerColumn(element);\r\n }\r\n };\r\n }])\r\n\r\n.directive('uiScrollTd', function() {\r\n return {\r\n require: ['?^^uiScrollViewport'],\r\n restrict: 'A',\r\n link: ($scope, element, $attr, controllers) => {\r\n if (!controllers[0]) {\r\n return;\r\n }\r\n let scope = $scope;\r\n let tdInitializer = $scope.uiScrollTdInitializer;\r\n if (!tdInitializer) {\r\n tdInitializer = $scope.uiScrollTdInitializer = {\r\n linking: true\r\n };\r\n }\r\n if (!tdInitializer.linking) {\r\n scope = tdInitializer.scope;\r\n }\r\n let gridController = controllers[0].gridController;\r\n if (gridController.registerCell(scope, element)) {\r\n $scope.$on('$destroy', () => gridController.unregisterCell(scope, element));\r\n }\r\n if (!tdInitializer.linking) {\r\n tdInitializer.onLink();\r\n }\r\n }\r\n };\r\n});\r\n"],"sourceRoot":""}