{"version":3,"sources":["webpack:///webpack/bootstrap 7b7663c4ef0bd85aea15","webpack:///./src/ui-scroll.js","webpack:///./src/modules/jqLiteExtras.js","webpack:///./src/modules/elementRoutines.js","webpack:///./src/modules/buffer.js","webpack:///./src/modules/viewport.js","webpack:///./src/modules/padding.js","webpack:///./src/modules/adapter.js"],"names":["angular","module","constant","run","JQLiteExtras","window","jQuery","registerFor","element","directive","restrict","controller","scope","container","viewport","forEach","children","child","tagName","toLowerCase","console","$injector","$rootScope","$timeout","$interval","$q","$parse","require","transclude","priority","terminal","link","$scope","$attr","controllers","linker","match","uiScroll","Error","parseNumericAttr","value","defaultValue","result","isNaN","BUFFER_MIN","BUFFER_DEFAULT","PADDING_MIN","PADDING_DEFAULT","MAX_VIEWPORT_DELAY","VIEWPORT_POLLING_INTERVAL","datasource","itemName","datasourceName","viewportController","bufferSize","Math","max","padding","startIndex","ridActual","pending","elementRoutines","buffer","adapter","doAdjust","reload","isDatasourceValid","Object","prototype","toString","call","get","onRenderHandlers","onRenderHandlersRunner","handler","persistDatasourceIndex","propName","getter","Number","isInteger","filter","id","push","defineDatasourceIndex","propUserName","descriptor","getOwnPropertyDescriptor","set","defineProperty","length","topPaddingHeightOld","topDataPos","adjustPaddings","onAfterMinIndexSet","fetchNext","success","next","index","append","item","count","fetchPrevious","first","prepend","initialize","tryCount","applyContainerStyle","timer","cancel","clone","createPaddingElements","$destroy","remove","$on","unbindEvents","unbind","wheelHandler","bind","isInvalid","rid","$$destroyed","bindEvents","resizeAndScrollHandler","resetTopPadding","resetBottomPadding","arguments","reset","isElementVisible","wrapper","height","offsetParent","visibilityWatcher","unregisterVisibilityWatcher","insertWrapperContent","insertAfter","createElement","insertElement","$watch","hideElement","promises","sibling","undefined","transform","tdInitializer","uiScrollTdInitializer","linking","onLink","updateDOM","toBePrepended","toBeRemoved","inserted","i","op","unshift","concat","insertElementAnimated","removeItem","$index","prepended","removed","animated","updatePaddings","updates","all","then","enqueueFetch","shouldLoadBottom","effectiveHeight","loading","fetch","shouldLoadTop","processUpdates","$$phase","$digest","showElement","w","calculateProperties","doAdjustAfterFetch","onAfterPrepend","shift","eof","clipTop","bof","clipBottom","isLoading","disabled","event","scrollTop","yMax","scrollHeight","clientHeight","preventDefault","convertToPx","css","getStyle","isWindow","name","self","elem","nodeType","style","obj","document","location","alert","setInterval","scrollTo","direction","top","left","method","prop","preserve","isValueDefined","documentElement","getComputedStyle","parseFloat","currentStyle","rs","rsLeft","core_pnum","source","rnumnonpx","RegExp","test","runtimeStyle","pixelLeft","getMeasurements","measure","base","borderA","borderB","computedMarginA","computedMarginB","computedStyle","dirA","dirB","marginA","marginB","paddingA","paddingB","width","border","margin","offsetWidth","offsetHeight","getWidthHeight","measurements","outer","outerfull","before","newElem","j","parent","ref","contents","after","outerHTML","outerHeight","option","outerWidth","offset","docElem","win","box","doc","ownerDocument","getBoundingClientRect","defaultView","parentWindow","pageYOffset","clientTop","pageXOffset","scrollLeft","clientLeft","key","hideClassToken","addCSSRule","sheet","selector","rules","insertRule","addRule","ElementRoutines","$animate","has","isAngularVersionLessThen1_3","version","major","minor","styleSheets","addClass","removeClass","newElement","previousElement","deferred","defer","enter","resolve","promise","removeElement","leave","ScrollBuffer","create","Array","assign","size","minIndex","maxIndex","minIndexUser","maxIndexUser","items","insert","reverse","min","operation","isTop","splice","arg1","arg2","indexOf","_op","getAbsMinIndex","incrementMinIndex","decrementMaxIndex","removeElementAnimated","getAbsMaxIndex","elements","MAX_VALUE","bottom","NEGATIVE_INFINITY","Viewport","topPadding","bottomPadding","bufferPadding","getScope","template","bottomDataPos","bottomVisiblePos","topVisiblePos","e","overage","overageHeight","itemHeight","emptySpaceHeight","cache","add","visibleItemsHeight","reduce","summ","topPaddingHeight","topCount","bottomPaddingHeight","bottomCount","totalHeight","averageItemHeight","adjustTopPadding","adjustBottomPadding","topPaddingHeightAdd","bottomPaddingHeightAdd","diff","paddingHeight","clear","removeCacheItem","CacheProto","sort","a","b","argument","_isTop","Cache","instance","apply","setPrototypeOf","getOwnPropertyNames","methodName","generateElement","Node","ELEMENT_NODE","table","find","Padding","Adapter","viewportScope","startScope","$parent","publicContext","assignAdapter","generatePublicContext","adapterAttr","replace","adapterOnScope","error","message","publicMethods","publicProps","property","attr","newItems","applyUpdatesFunc","applyUpdatesIndex","cb","slice","applyUpdate","_index","isArray","position","some","newItem","rowTop","topHeight","topDone","bottomDone","itemTop","isEOF"],"mappings":"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","file":"ui-scroll.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, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\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 \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 7b7663c4ef0bd85aea15","import JQLiteExtras from './modules/jqLiteExtras';\r\nimport ElementRoutines from './modules/elementRoutines.js';\r\nimport ScrollBuffer from './modules/buffer.js';\r\nimport Viewport from './modules/viewport.js';\r\nimport Adapter from './modules/adapter.js';\r\n\r\nangular.module('ui.scroll', [])\r\n\r\n .constant('JQLiteExtras', JQLiteExtras)\r\n .run(['JQLiteExtras', (JQLiteExtras) =>\r\n !window.jQuery ? (new JQLiteExtras()).registerFor(angular.element) : null\r\n ])\r\n\r\n .directive('uiScrollViewport', function () {\r\n return {\r\n restrict: 'A',\r\n controller: [\r\n '$scope',\r\n '$element',\r\n function (scope, element) {\r\n this.container = element;\r\n this.viewport = element;\r\n this.scope = scope;\r\n\r\n angular.forEach(element.children(), child => {\r\n if (child.tagName.toLowerCase() === 'tbody') {\r\n this.viewport = angular.element(child);\r\n }\r\n });\r\n\r\n return this;\r\n }\r\n ]\r\n };\r\n })\r\n\r\n .directive('uiScroll', [\r\n '$log',\r\n '$injector',\r\n '$rootScope',\r\n '$timeout',\r\n '$interval',\r\n '$q',\r\n '$parse',\r\n function (console, $injector, $rootScope, $timeout, $interval, $q, $parse) {\r\n\r\n return {\r\n require: ['?^uiScrollViewport'],\r\n restrict: 'A',\r\n transclude: 'element',\r\n priority: 1000,\r\n terminal: true,\r\n link: link\r\n };\r\n\r\n function link($scope, element, $attr, controllers, linker) {\r\n const match = $attr.uiScroll.match(/^\\s*(\\w+)\\s+in\\s+([(\\w|\\$)\\.]+)\\s*$/);\r\n if (!match) {\r\n throw new Error('Expected uiScroll in form of \\'_item_ in _datasource_\\' but got \\'' + $attr.uiScroll + '\\'');\r\n }\r\n\r\n function parseNumericAttr(value, defaultValue) {\r\n const result = $parse(value)($scope);\r\n return isNaN(result) ? defaultValue : result;\r\n }\r\n\r\n const BUFFER_MIN = 3;\r\n const BUFFER_DEFAULT = 10;\r\n const PADDING_MIN = 0.3;\r\n const PADDING_DEFAULT = 0.5;\r\n const MAX_VIEWPORT_DELAY = 500;\r\n const VIEWPORT_POLLING_INTERVAL = 50;\r\n\r\n let datasource = null;\r\n const itemName = match[1];\r\n const datasourceName = match[2];\r\n const viewportController = controllers[0];\r\n const bufferSize = Math.max(BUFFER_MIN, parseNumericAttr($attr.bufferSize, BUFFER_DEFAULT));\r\n const padding = Math.max(PADDING_MIN, parseNumericAttr($attr.padding, PADDING_DEFAULT));\r\n let startIndex = parseNumericAttr($attr.startIndex, 1);\r\n let ridActual = 0; // current data revision id\r\n let pending = [];\r\n\r\n const elementRoutines = new ElementRoutines($injector, $q);\r\n const buffer = new ScrollBuffer(elementRoutines, bufferSize, startIndex);\r\n const viewport = new Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding);\r\n const adapter = new Adapter($scope, $parse, $attr, viewport, buffer, doAdjust, reload);\r\n\r\n if (viewportController) {\r\n viewportController.adapter = adapter;\r\n }\r\n\r\n const isDatasourceValid = () =>\r\n Object.prototype.toString.call(datasource) === '[object Object]' && typeof datasource.get === 'function';\r\n\r\n datasource = $parse(datasourceName)($scope); // try to get datasource on scope\r\n if (!isDatasourceValid()) {\r\n datasource = $injector.get(datasourceName); // try to inject datasource as service\r\n if (!isDatasourceValid()) {\r\n throw new Error(datasourceName + ' is not a valid datasource');\r\n }\r\n }\r\n\r\n let onRenderHandlers = [];\r\n function onRenderHandlersRunner() {\r\n onRenderHandlers.forEach(handler => handler.run());\r\n onRenderHandlers = [];\r\n }\r\n function persistDatasourceIndex(datasource, propName) {\r\n let getter;\r\n // need to postpone min/maxIndexUser processing if the view is empty\r\n if(Number.isInteger(datasource[propName])) {\r\n getter = datasource[propName];\r\n if(Number.isInteger(getter)) {\r\n onRenderHandlers = onRenderHandlers.filter(handler => handler.id !== propName);\r\n onRenderHandlers.push({\r\n id: propName,\r\n run: () => datasource[propName] = getter\r\n });\r\n }\r\n }\r\n }\r\n\r\n function defineDatasourceIndex(datasource, propName, propUserName) {\r\n const descriptor = Object.getOwnPropertyDescriptor(datasource, propName);\r\n if (descriptor && (descriptor.set || descriptor.get)) {\r\n return;\r\n }\r\n let getter;\r\n persistDatasourceIndex(datasource, propName);\r\n Object.defineProperty(datasource, propName, {\r\n set: (value) => {\r\n getter = value;\r\n if(pending.length && !buffer.length) {\r\n persistDatasourceIndex(datasource, propName);\r\n return;\r\n }\r\n buffer[propUserName] = value;\r\n const topPaddingHeightOld = viewport.topDataPos();\r\n viewport.adjustPaddings();\r\n if (propName === 'minIndex') {\r\n viewport.onAfterMinIndexSet(topPaddingHeightOld);\r\n }\r\n },\r\n get: () => getter\r\n });\r\n }\r\n\r\n defineDatasourceIndex(datasource, 'minIndex', 'minIndexUser');\r\n defineDatasourceIndex(datasource, 'maxIndex', 'maxIndexUser');\r\n\r\n const fetchNext = (datasource.get.length !== 2) ?\r\n (success) => datasource.get(buffer.next, bufferSize, success) :\r\n (success) => {\r\n datasource.get({\r\n index: buffer.next,\r\n append: buffer.length ? buffer[buffer.length - 1].item : void 0,\r\n count: bufferSize\r\n }, success);\r\n };\r\n\r\n const fetchPrevious = (datasource.get.length !== 2) ?\r\n (success) => datasource.get(buffer.first - bufferSize, bufferSize, success) :\r\n (success) => {\r\n datasource.get({\r\n index: buffer.first - bufferSize,\r\n prepend: buffer.length ? buffer[0].item : void 0,\r\n count: bufferSize\r\n }, success);\r\n };\r\n\r\n const initialize = () => {\r\n let tryCount = 0;\r\n if(!viewport.applyContainerStyle()) {\r\n const timer = $interval(() => {\r\n tryCount++;\r\n if(viewport.applyContainerStyle()) {\r\n $interval.cancel(timer);\r\n doAdjust();\r\n }\r\n if(tryCount * VIEWPORT_POLLING_INTERVAL >= MAX_VIEWPORT_DELAY) {\r\n $interval.cancel(timer);\r\n throw Error(`ui-scroll directive requires a viewport with non-zero height in ${MAX_VIEWPORT_DELAY}ms`);\r\n }\r\n }, VIEWPORT_POLLING_INTERVAL);\r\n }\r\n else {\r\n doAdjust();\r\n }\r\n };\r\n\r\n /**\r\n * Build padding elements\r\n *\r\n * Calling linker is the only way I found to get access to the tag name of the template\r\n * to prevent the directive scope from pollution a new scope is created and destroyed\r\n * right after the builder creation is completed\r\n */\r\n linker((clone, scope) => {\r\n viewport.createPaddingElements(clone[0]);\r\n // we do not include the clone in the DOM. It means that the nested directives will not\r\n // be able to reach the parent directives, but in this case it is intentional because we\r\n // created the clone to access the template tag name\r\n scope.$destroy();\r\n clone.remove();\r\n });\r\n\r\n $scope.$on('$destroy', () => {\r\n unbindEvents();\r\n viewport.unbind('mousewheel', wheelHandler);\r\n });\r\n\r\n viewport.bind('mousewheel', wheelHandler);\r\n\r\n initialize();\r\n\r\n /* Private function definitions */\r\n\r\n function isInvalid(rid) {\r\n return (rid && rid !== ridActual) || $scope.$$destroyed;\r\n }\r\n\r\n function bindEvents() {\r\n viewport.bind('resize', resizeAndScrollHandler);\r\n viewport.bind('scroll', resizeAndScrollHandler);\r\n }\r\n\r\n function unbindEvents() {\r\n viewport.unbind('resize', resizeAndScrollHandler);\r\n viewport.unbind('scroll', resizeAndScrollHandler);\r\n }\r\n\r\n function reload() {\r\n viewport.resetTopPadding();\r\n viewport.resetBottomPadding();\r\n if (arguments.length) {\r\n startIndex = arguments[0];\r\n }\r\n buffer.reset(startIndex);\r\n persistDatasourceIndex(datasource, 'minIndex');\r\n persistDatasourceIndex(datasource, 'maxIndex');\r\n doAdjust();\r\n }\r\n\r\n function isElementVisible(wrapper) {\r\n return wrapper.element.height() && wrapper.element[0].offsetParent;\r\n }\r\n\r\n function visibilityWatcher(wrapper) {\r\n if (isElementVisible(wrapper)) {\r\n buffer.forEach((item) => {\r\n if (typeof item.unregisterVisibilityWatcher === 'function') {\r\n item.unregisterVisibilityWatcher();\r\n delete item.unregisterVisibilityWatcher;\r\n }\r\n });\r\n if (!pending.length) {\r\n $timeout(() => doAdjust());\r\n }\r\n }\r\n }\r\n\r\n function insertWrapperContent(wrapper, insertAfter) {\r\n createElement(wrapper, insertAfter, viewport.insertElement);\r\n if (!isElementVisible(wrapper)) {\r\n wrapper.unregisterVisibilityWatcher = wrapper.scope.$watch(() => visibilityWatcher(wrapper));\r\n }\r\n elementRoutines.hideElement(wrapper); // hide inserted elements before data binding\r\n }\r\n\r\n function createElement(wrapper, insertAfter, insertElement) {\r\n let promises = null;\r\n const sibling = (insertAfter > 0) ? buffer[insertAfter - 1].element : undefined;\r\n linker((clone, scope) => {\r\n promises = insertElement(clone, sibling);\r\n wrapper.element = clone;\r\n wrapper.scope = scope;\r\n scope[itemName] = wrapper.item;\r\n });\r\n // ui-scroll-grid apply\r\n if (adapter.transform) {\r\n const tdInitializer = wrapper.scope.uiScrollTdInitializer;\r\n if (tdInitializer && tdInitializer.linking) {\r\n adapter.transform(wrapper.scope, wrapper.element);\r\n } else {\r\n wrapper.scope.uiScrollTdInitializer = {\r\n onLink: () => adapter.transform(wrapper.scope, wrapper.element),\r\n scope: wrapper.scope\r\n };\r\n }\r\n }\r\n return promises;\r\n }\r\n\r\n function updateDOM() {\r\n let promises = [];\r\n const toBePrepended = [];\r\n const toBeRemoved = [];\r\n const inserted = [];\r\n\r\n buffer.forEach((wrapper, i) => {\r\n switch (wrapper.op) {\r\n case 'prepend':\r\n toBePrepended.unshift(wrapper);\r\n break;\r\n case 'append':\r\n insertWrapperContent(wrapper, i);\r\n wrapper.op = 'none';\r\n inserted.push(wrapper);\r\n break;\r\n case 'insert':\r\n promises = promises.concat(createElement(wrapper, i, viewport.insertElementAnimated));\r\n wrapper.op = 'none';\r\n inserted.push(wrapper);\r\n break;\r\n case 'remove':\r\n toBeRemoved.push(wrapper);\r\n }\r\n });\r\n\r\n toBeRemoved.forEach((wrapper) => promises = promises.concat(viewport.removeItem(wrapper)));\r\n\r\n if (toBePrepended.length)\r\n toBePrepended.forEach((wrapper) => {\r\n insertWrapperContent(wrapper);\r\n wrapper.op = 'none';\r\n });\r\n\r\n buffer.forEach((item, i) => item.scope.$index = buffer.first + i);\r\n\r\n return {\r\n prepended: toBePrepended,\r\n removed: toBeRemoved,\r\n inserted: inserted,\r\n animated: promises\r\n };\r\n\r\n }\r\n\r\n function updatePaddings(rid, updates) {\r\n // schedule another doAdjust after animation completion\r\n if (updates.animated.length) {\r\n $q.all(updates.animated).then(() => {\r\n viewport.adjustPaddings();\r\n doAdjust(rid);\r\n });\r\n } else {\r\n viewport.adjustPaddings();\r\n }\r\n }\r\n\r\n function enqueueFetch(rid, updates) {\r\n if (viewport.shouldLoadBottom()) {\r\n if (!updates || buffer.effectiveHeight(updates.inserted) > 0) {\r\n // this means that at least one item appended in the last batch has height > 0\r\n if (pending.push(true) === 1) {\r\n adapter.loading(true);\r\n fetch(rid);\r\n }\r\n }\r\n } else if (viewport.shouldLoadTop()) {\r\n if ((!updates || buffer.effectiveHeight(updates.prepended) > 0) || pending[0]) {\r\n // this means that at least one item appended in the last batch has height > 0\r\n // pending[0] = true means that previous fetch was appending. We need to force at least one prepend\r\n // BTW there will always be at least 1 element in the pending array because bottom is fetched first\r\n if (pending.push(false) === 1) {\r\n adapter.loading(true);\r\n fetch(rid);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function processUpdates() {\r\n const updates = updateDOM();\r\n\r\n // We need the item bindings to be processed before we can do adjustments\r\n !$scope.$$phase && !$rootScope.$$phase && $scope.$digest();\r\n\r\n updates.inserted.forEach(w => elementRoutines.showElement(w));\r\n updates.prepended.forEach(w => elementRoutines.showElement(w));\r\n return updates;\r\n }\r\n\r\n function doAdjust(rid) {\r\n if (!rid) { // dismiss pending requests\r\n pending = [];\r\n rid = ++ridActual;\r\n }\r\n\r\n const updates = processUpdates();\r\n\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n updatePaddings(rid, updates);\r\n enqueueFetch(rid);\r\n\r\n if (!pending.length) {\r\n adapter.calculateProperties();\r\n }\r\n }\r\n\r\n function doAdjustAfterFetch(rid) {\r\n const updates = processUpdates();\r\n\r\n viewport.onAfterPrepend(updates);\r\n\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n updatePaddings(rid, updates);\r\n onRenderHandlersRunner();\r\n enqueueFetch(rid, updates);\r\n pending.shift();\r\n\r\n if (pending.length)\r\n fetch(rid);\r\n else {\r\n adapter.loading(false);\r\n bindEvents();\r\n adapter.calculateProperties();\r\n }\r\n }\r\n\r\n function fetch(rid) {\r\n if (pending[0]) {// scrolling down\r\n if (buffer.length && !viewport.shouldLoadBottom()) {\r\n doAdjustAfterFetch(rid);\r\n } else {\r\n fetchNext((result) => {\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n if (result.length < bufferSize) {\r\n buffer.eof = true;\r\n }\r\n\r\n if (result.length > 0) {\r\n viewport.clipTop();\r\n buffer.append(result);\r\n }\r\n\r\n doAdjustAfterFetch(rid);\r\n });\r\n }\r\n } else { // scrolling up\r\n if (buffer.length && !viewport.shouldLoadTop()) {\r\n doAdjustAfterFetch(rid);\r\n } else {\r\n fetchPrevious((result) => {\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n if (result.length < bufferSize) {\r\n buffer.bof = true;\r\n // log 'bof is reached'\r\n }\r\n\r\n if (result.length > 0) {\r\n if (buffer.length) {\r\n viewport.clipBottom();\r\n }\r\n buffer.prepend(result);\r\n }\r\n\r\n doAdjustAfterFetch(rid);\r\n });\r\n }\r\n }\r\n }\r\n\r\n function resizeAndScrollHandler() {\r\n if (!$rootScope.$$phase && !adapter.isLoading && !adapter.disabled) {\r\n\r\n enqueueFetch(ridActual);\r\n\r\n if (pending.length) {\r\n unbindEvents();\r\n } else {\r\n adapter.calculateProperties();\r\n !$scope.$$phase && $scope.$digest();\r\n }\r\n }\r\n }\r\n\r\n function wheelHandler(event) {\r\n if (!adapter.disabled) {\r\n const scrollTop = viewport[0].scrollTop;\r\n const yMax = viewport[0].scrollHeight - viewport[0].clientHeight;\r\n\r\n if ((scrollTop === 0 && !buffer.bof) || (scrollTop === yMax && !buffer.eof)) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n ]);\n\n\n// WEBPACK FOOTER //\n// ./src/ui-scroll.js","/*!\r\n globals: angular, window\r\n List of used element methods available in JQuery but not in JQuery Lite\r\n element.before(elem)\r\n element.height()\r\n element.outerHeight(true)\r\n element.height(value) = only for Top/Bottom padding elements\r\n element.scrollTop()\r\n element.scrollTop(value)\r\n */\r\n\r\nexport default class JQLiteExtras {\r\n\r\n registerFor(element) {\r\n let convertToPx, css, getStyle, isWindow;\r\n // angular implementation blows up if elem is the window\r\n css = angular.element.prototype.css;\r\n\r\n element.prototype.css = function (name, value) {\r\n let self = this;\r\n let elem = self[0];\r\n if (!(!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style)) {\r\n return css.call(self, name, value);\r\n }\r\n };\r\n\r\n // as defined in angularjs v1.0.5\r\n isWindow = (obj) => obj && obj.document && obj.location && obj.alert && obj.setInterval;\r\n\r\n function scrollTo(self, direction, value) {\r\n let elem = self[0];\r\n let [method, prop, preserve] = {\r\n top: [\r\n 'scrollTop',\r\n 'pageYOffset',\r\n 'scrollLeft'\r\n ],\r\n left: [\r\n 'scrollLeft',\r\n 'pageXOffset',\r\n 'scrollTop'\r\n ]\r\n }[direction];\r\n\r\n const isValueDefined = typeof value !== 'undefined';\r\n if (isWindow(elem)) {\r\n if (isValueDefined) {\r\n return elem.scrollTo(self[preserve].call(self), value);\r\n }\r\n return (prop in elem) ? elem[prop] : elem.document.documentElement[method];\r\n } else {\r\n if (isValueDefined) {\r\n elem[method] = value;\r\n }\r\n return elem[method];\r\n }\r\n }\r\n\r\n if (window.getComputedStyle) {\r\n getStyle = (elem) => window.getComputedStyle(elem, null);\r\n convertToPx = (elem, value) => parseFloat(value);\r\n } else {\r\n getStyle = (elem) => elem.currentStyle;\r\n convertToPx = (elem, value) => {\r\n let left, result, rs, rsLeft, style;\r\n let core_pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\r\n let rnumnonpx = new RegExp('^(' + core_pnum + ')(?!px)[a-z%]+$', 'i');\r\n\r\n if (!rnumnonpx.test(value)) {\r\n return parseFloat(value);\r\n }\r\n\r\n // ported from JQuery\r\n style = elem.style;\r\n left = style.left;\r\n rs = elem.runtimeStyle;\r\n rsLeft = rs && rs.left;\r\n if (rs) {\r\n rs.left = style.left;\r\n }\r\n // put in the new values to get a computed style out\r\n style.left = value;\r\n result = style.pixelLeft;\r\n style.left = left;\r\n if (rsLeft) {\r\n rs.left = rsLeft;\r\n }\r\n return result;\r\n };\r\n }\r\n\r\n function getMeasurements(elem, measure) {\r\n let base, borderA, borderB, computedMarginA, computedMarginB, computedStyle, dirA, dirB, marginA, marginB, paddingA, paddingB;\r\n\r\n if (isWindow(elem)) {\r\n base = document.documentElement[{height: 'clientHeight', width: 'clientWidth'}[measure]];\r\n\r\n return {\r\n base: base,\r\n padding: 0,\r\n border: 0,\r\n margin: 0\r\n };\r\n }\r\n\r\n // Start with offset property\r\n [\r\n base,\r\n dirA,\r\n dirB\r\n ] = {\r\n width: [\r\n elem.offsetWidth,\r\n 'Left',\r\n 'Right'\r\n ],\r\n height: [\r\n elem.offsetHeight,\r\n 'Top',\r\n 'Bottom'\r\n ]\r\n }[measure];\r\n\r\n computedStyle = getStyle(elem);\r\n paddingA = convertToPx(elem, computedStyle['padding' + dirA]) || 0;\r\n paddingB = convertToPx(elem, computedStyle['padding' + dirB]) || 0;\r\n borderA = convertToPx(elem, computedStyle['border' + dirA + 'Width']) || 0;\r\n borderB = convertToPx(elem, computedStyle['border' + dirB + 'Width']) || 0;\r\n computedMarginA = computedStyle['margin' + dirA];\r\n computedMarginB = computedStyle['margin' + dirB];\r\n\r\n // I do not care for width for now, so this hack is irrelevant\r\n // if ( !supportsPercentMargin )\r\n // computedMarginA = hackPercentMargin( elem, computedStyle, computedMarginA )\r\n // computedMarginB = hackPercentMargin( elem, computedStyle, computedMarginB )\r\n marginA = convertToPx(elem, computedMarginA) || 0;\r\n marginB = convertToPx(elem, computedMarginB) || 0;\r\n\r\n return {\r\n base: base,\r\n padding: paddingA + paddingB,\r\n border: borderA + borderB,\r\n margin: marginA + marginB\r\n };\r\n }\r\n\r\n function getWidthHeight(elem, direction, measure) {\r\n let computedStyle, result;\r\n\r\n let measurements = getMeasurements(elem, direction);\r\n\r\n if (measurements.base > 0) {\r\n return {\r\n base: measurements.base - measurements.padding - measurements.border,\r\n outer: measurements.base,\r\n outerfull: measurements.base + measurements.margin\r\n }[measure];\r\n }\r\n\r\n // Fall back to computed then uncomputed css if necessary\r\n computedStyle = getStyle(elem);\r\n result = computedStyle[direction];\r\n\r\n if (result < 0 || result === null) {\r\n result = elem.style[direction] || 0;\r\n }\r\n\r\n // Normalize \"\", auto, and prepare for extra\r\n result = parseFloat(result) || 0;\r\n\r\n return {\r\n base: result - measurements.padding - measurements.border,\r\n outer: result,\r\n outerfull: result + measurements.padding + measurements.border + measurements.margin\r\n }[measure];\r\n }\r\n\r\n // define missing methods\r\n return angular.forEach({\r\n before(newElem) {\r\n var children, elem, i, j, parent, ref, self;\r\n self = this;\r\n elem = self[0];\r\n parent = self.parent();\r\n children = parent.contents();\r\n if (children[0] === elem) {\r\n return parent.prepend(newElem);\r\n } else {\r\n for (i = j = 1, ref = children.length - 1; 1 <= ref ? j <= ref : j >= ref; i = 1 <= ref ? ++j : --j) {\r\n if (children[i] === elem) {\r\n angular.element(children[i - 1]).after(newElem);\r\n return;\r\n }\r\n }\r\n throw new Error('invalid DOM structure ' + elem.outerHTML);\r\n }\r\n },\r\n height (value){\r\n var self;\r\n self = this;\r\n if (typeof value !== 'undefined') {\r\n if (Number.isInteger(value)) {\r\n value = value + 'px';\r\n }\r\n return css.call(self, 'height', value);\r\n } else {\r\n return getWidthHeight(this[0], 'height', 'base');\r\n }\r\n },\r\n outerHeight(option) {\r\n return getWidthHeight(this[0], 'height', option ? 'outerfull' : 'outer');\r\n },\r\n outerWidth(option) {\r\n return getWidthHeight(this[0], 'width', option ? 'outerfull' : 'outer');\r\n },\r\n\r\n /*\r\n The offset setter method is not implemented\r\n */\r\n offset(value) {\r\n let docElem, win;\r\n let self = this;\r\n let box = {\r\n top: 0,\r\n left: 0\r\n };\r\n let elem = self[0];\r\n let doc = elem && elem.ownerDocument;\r\n\r\n if (arguments.length) {\r\n if (value === undefined) {\r\n return self;\r\n }\r\n // TODO: implement setter\r\n throw new Error('offset setter method is not implemented');\r\n }\r\n\r\n if (!doc) {\r\n return;\r\n }\r\n\r\n docElem = doc.documentElement;\r\n\r\n // TODO: Make sure it's not a disconnected DOM node\r\n\r\n if (elem.getBoundingClientRect != null) {\r\n box = elem.getBoundingClientRect();\r\n }\r\n\r\n win = doc.defaultView || doc.parentWindow;\r\n\r\n return {\r\n top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0),\r\n left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0)\r\n };\r\n },\r\n scrollTop(value) {\r\n return scrollTo(this, 'top', value);\r\n },\r\n scrollLeft(value) {\r\n return scrollTo(this, 'left', value);\r\n }\r\n }, (value, key) => {\r\n if (!element.prototype[key]) {\r\n return element.prototype[key] = value;\r\n }\r\n });\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/jqLiteExtras.js","const hideClassToken = 'ng-ui-scroll-hide';\r\n\r\nfunction addCSSRule(sheet, selector, rules, index) {\r\n if('insertRule' in sheet) {\r\n sheet.insertRule(selector + '{' + rules + '}', index);\r\n }\r\n else if('addRule' in sheet) {\r\n sheet.addRule(selector, rules, index);\r\n }\r\n}\r\n\r\nexport default class ElementRoutines {\r\n\r\n constructor($injector, $q) {\r\n this.$animate = ($injector.has && $injector.has('$animate')) ? $injector.get('$animate') : null;\r\n this.isAngularVersionLessThen1_3 = angular.version.major === 1 && angular.version.minor < 3;\r\n this.$q = $q;\r\n addCSSRule(document.styleSheets[0], '.' + hideClassToken, 'display: none');\r\n }\r\n\r\n hideElement(wrapper) {\r\n wrapper.element.addClass(hideClassToken);\r\n }\r\n\r\n showElement(wrapper) {\r\n wrapper.element.removeClass(hideClassToken);\r\n }\r\n\r\n insertElement(newElement, previousElement) {\r\n previousElement.after(newElement);\r\n return [];\r\n }\r\n\r\n removeElement(wrapper) {\r\n wrapper.element.remove();\r\n wrapper.scope.$destroy();\r\n return [];\r\n }\r\n\r\n insertElementAnimated(newElement, previousElement) {\r\n if (!this.$animate) {\r\n return this.insertElement(newElement, previousElement);\r\n }\r\n\r\n if (this.isAngularVersionLessThen1_3) {\r\n const deferred = this.$q.defer();\r\n // no need for parent - previous element is never null\r\n this.$animate.enter(newElement, null, previousElement, () => deferred.resolve());\r\n\r\n return [deferred.promise];\r\n }\r\n\r\n // no need for parent - previous element is never null\r\n return [this.$animate.enter(newElement, null, previousElement)];\r\n }\r\n\r\n removeElementAnimated(wrapper) {\r\n if (!this.$animate) {\r\n return this.removeElement(wrapper);\r\n }\r\n\r\n if (this.isAngularVersionLessThen1_3) {\r\n const deferred = this.$q.defer();\r\n this.$animate.leave(wrapper.element, () => {\r\n wrapper.scope.$destroy();\r\n return deferred.resolve();\r\n });\r\n\r\n return [deferred.promise];\r\n }\r\n\r\n return [(this.$animate.leave(wrapper.element)).then(() => wrapper.scope.$destroy())];\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/modules/elementRoutines.js","export default function ScrollBuffer(elementRoutines, bufferSize, startIndex) {\r\n const buffer = Object.create(Array.prototype);\r\n\r\n Object.assign(buffer, {\r\n size: bufferSize,\r\n\r\n reset(startIndex) {\r\n buffer.remove(0, buffer.length);\r\n buffer.eof = false;\r\n buffer.bof = false;\r\n buffer.first = startIndex;\r\n buffer.next = startIndex;\r\n buffer.minIndex = startIndex;\r\n buffer.maxIndex = startIndex;\r\n buffer.minIndexUser = null;\r\n buffer.maxIndexUser = null;\r\n },\r\n\r\n append(items) {\r\n items.forEach((item) => {\r\n ++buffer.next;\r\n buffer.insert('append', item);\r\n });\r\n buffer.maxIndex = buffer.eof ? buffer.next - 1 : Math.max(buffer.next - 1, buffer.maxIndex);\r\n },\r\n\r\n prepend(items) {\r\n items.reverse().forEach((item) => {\r\n --buffer.first;\r\n buffer.insert('prepend', item);\r\n });\r\n buffer.minIndex = buffer.bof ? buffer.minIndex = buffer.first : Math.min(buffer.first, buffer.minIndex);\r\n },\r\n\r\n /**\r\n * inserts wrapped element in the buffer\r\n * the first argument is either operation keyword (see below) or a number for operation 'insert'\r\n * for insert the number is the index for the buffer element the new one have to be inserted after\r\n * operations: 'append', 'prepend', 'insert', 'remove', 'update', 'none'\r\n */\r\n insert(operation, item, isTop) {\r\n const wrapper = {\r\n item: item\r\n };\r\n\r\n if (operation % 1 === 0) {// it is an insert\r\n wrapper.op = 'insert';\r\n buffer.splice(operation, 0, wrapper);\r\n if(isTop) {\r\n buffer.first--;\r\n }\r\n else {\r\n buffer.next++;\r\n }\r\n } else {\r\n wrapper.op = operation;\r\n switch (operation) {\r\n case 'append':\r\n buffer.push(wrapper);\r\n break;\r\n case 'prepend':\r\n buffer.unshift(wrapper);\r\n break;\r\n }\r\n }\r\n },\r\n\r\n // removes elements from buffer\r\n remove(arg1, arg2) {\r\n if (Number.isInteger(arg1)) {\r\n // removes items from arg1 (including) through arg2 (excluding)\r\n for (let i = arg1; i < arg2; i++) {\r\n elementRoutines.removeElement(buffer[i]);\r\n }\r\n return buffer.splice(arg1, arg2 - arg1);\r\n }\r\n // removes single item(wrapper) from the buffer\r\n buffer.splice(buffer.indexOf(arg1), 1);\r\n if(arg1._op === 'isTop' && buffer.first === this.getAbsMinIndex()) {\r\n this.incrementMinIndex();\r\n }\r\n else {\r\n this.decrementMaxIndex();\r\n }\r\n if(arg1._op === 'isTop') {\r\n buffer.first++;\r\n }\r\n else {\r\n buffer.next--;\r\n }\r\n if(!buffer.length) {\r\n buffer.first = 1;\r\n buffer.next = 1;\r\n }\r\n\r\n return elementRoutines.removeElementAnimated(arg1);\r\n },\r\n\r\n incrementMinIndex() {\r\n if(buffer.minIndexUser !== null) {\r\n if(buffer.minIndex > buffer.minIndexUser) {\r\n buffer.minIndexUser++;\r\n return;\r\n }\r\n if(buffer.minIndex === buffer.minIndexUser) {\r\n buffer.minIndexUser++;\r\n }\r\n }\r\n buffer.minIndex++;\r\n },\r\n\r\n decrementMaxIndex() {\r\n if(buffer.maxIndexUser !== null && buffer.maxIndex <= buffer.maxIndexUser) {\r\n buffer.maxIndexUser--;\r\n }\r\n buffer.maxIndex--;\r\n },\r\n\r\n getAbsMinIndex() {\r\n if(buffer.minIndexUser !== null) {\r\n return Math.min(buffer.minIndexUser, buffer.minIndex);\r\n }\r\n return buffer.minIndex;\r\n },\r\n\r\n getAbsMaxIndex() {\r\n if(buffer.maxIndexUser !== null) {\r\n return Math.max(buffer.maxIndexUser, buffer.maxIndex);\r\n }\r\n return buffer.maxIndex;\r\n },\r\n\r\n effectiveHeight(elements) {\r\n if (!elements.length) {\r\n return 0;\r\n }\r\n let top = Number.MAX_VALUE;\r\n let bottom = Number.NEGATIVE_INFINITY;\r\n elements.forEach((wrapper) => {\r\n if (wrapper.element[0].offsetParent) {\r\n // element style is not display:none\r\n top = Math.min(top, wrapper.element.offset().top);\r\n bottom = Math.max(bottom, wrapper.element.offset().top + wrapper.element.outerHeight(true));\r\n }\r\n });\r\n return Math.max(0, bottom - top);\r\n }\r\n\r\n });\r\n\r\n buffer.reset(startIndex);\r\n\r\n return buffer;\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/modules/buffer.js","import Padding from './padding';\r\n\r\nexport default function Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding) {\r\n let topPadding = null;\r\n let bottomPadding = null;\r\n const viewport = viewportController && viewportController.viewport ? viewportController.viewport : angular.element(window);\r\n const container = viewportController && viewportController.container ? viewportController.container : undefined;\r\n const scope = viewportController && viewportController.scope ? viewportController.scope : $rootScope;\r\n\r\n viewport.css({\r\n 'overflow-anchor': 'none',\r\n 'overflow-y': 'auto',\r\n 'display': 'block'\r\n });\r\n\r\n function bufferPadding() {\r\n return viewport.outerHeight() * padding; // some extra space to initiate preload\r\n }\r\n\r\n Object.assign(viewport, {\r\n getScope() {\r\n return scope;\r\n },\r\n\r\n createPaddingElements(template) {\r\n topPadding = new Padding(template);\r\n bottomPadding = new Padding(template);\r\n element.before(topPadding.element);\r\n element.after(bottomPadding.element);\r\n topPadding.height(0);\r\n bottomPadding.height(0);\r\n },\r\n\r\n applyContainerStyle() {\r\n if (!container) {\r\n return true;\r\n }\r\n if(container !== viewport) {\r\n viewport.css('height', window.getComputedStyle(container[0]).height);\r\n }\r\n return viewport.height() > 0;\r\n },\r\n\r\n bottomDataPos() {\r\n let scrollHeight = viewport[0].scrollHeight;\r\n scrollHeight = scrollHeight != null ? scrollHeight : viewport[0].document.documentElement.scrollHeight;\r\n return scrollHeight - bottomPadding.height();\r\n },\r\n\r\n topDataPos() {\r\n return topPadding.height();\r\n },\r\n\r\n bottomVisiblePos() {\r\n return viewport.scrollTop() + viewport.outerHeight();\r\n },\r\n\r\n topVisiblePos() {\r\n return viewport.scrollTop();\r\n },\r\n\r\n insertElement(e, sibling) {\r\n return elementRoutines.insertElement(e, sibling || topPadding.element);\r\n },\r\n\r\n insertElementAnimated(e, sibling) {\r\n return elementRoutines.insertElementAnimated(e, sibling || topPadding.element);\r\n },\r\n\r\n shouldLoadBottom() {\r\n return !buffer.eof && viewport.bottomDataPos() < viewport.bottomVisiblePos() + bufferPadding();\r\n },\r\n\r\n clipBottom() {\r\n // clip the invisible items off the bottom\r\n let overage = 0;\r\n let overageHeight = 0;\r\n let itemHeight = 0;\r\n let emptySpaceHeight = viewport.bottomDataPos() - viewport.bottomVisiblePos() - bufferPadding();\r\n\r\n for (let i = buffer.length - 1; i >= 0; i--) {\r\n itemHeight = buffer[i].element.outerHeight(true);\r\n if (overageHeight + itemHeight > emptySpaceHeight) {\r\n break;\r\n }\r\n bottomPadding.cache.add(buffer[i]);\r\n overageHeight += itemHeight;\r\n overage++;\r\n }\r\n\r\n if (overage > 0) {\r\n buffer.eof = false;\r\n buffer.remove(buffer.length - overage, buffer.length);\r\n buffer.next -= overage;\r\n viewport.adjustPaddings();\r\n }\r\n },\r\n\r\n shouldLoadTop() {\r\n return !buffer.bof && (viewport.topDataPos() > viewport.topVisiblePos() - bufferPadding());\r\n },\r\n\r\n clipTop() {\r\n // clip the invisible items off the top\r\n let overage = 0;\r\n let overageHeight = 0;\r\n let itemHeight = 0;\r\n let emptySpaceHeight = viewport.topVisiblePos() - viewport.topDataPos() - bufferPadding();\r\n\r\n for (let i = 0; i < buffer.length; i++) {\r\n itemHeight = buffer[i].element.outerHeight(true);\r\n if (overageHeight + itemHeight > emptySpaceHeight) {\r\n break;\r\n }\r\n topPadding.cache.add(buffer[i]);\r\n overageHeight += itemHeight;\r\n overage++;\r\n }\r\n\r\n if (overage > 0) {\r\n // we need to adjust top padding element before items are removed from top\r\n // to avoid strange behaviour of scroll bar during remove top items when we are at the very bottom\r\n topPadding.height(topPadding.height() + overageHeight);\r\n buffer.bof = false;\r\n buffer.remove(0, overage);\r\n buffer.first += overage;\r\n }\r\n },\r\n\r\n adjustPaddings() {\r\n if (!buffer.length) {\r\n return;\r\n }\r\n\r\n // precise heights calculation based on items that are in buffer or that were in buffer once\r\n const visibleItemsHeight = buffer.reduce((summ, item) => summ + item.element.outerHeight(true), 0);\r\n\r\n let topPaddingHeight = 0, topCount = 0;\r\n topPadding.cache.forEach(item => {\r\n if(item.index < buffer.first) {\r\n topPaddingHeight += item.height;\r\n topCount++;\r\n }\r\n });\r\n\r\n let bottomPaddingHeight = 0, bottomCount = 0;\r\n bottomPadding.cache.forEach(item => {\r\n if(item.index >= buffer.next) {\r\n bottomPaddingHeight += item.height;\r\n bottomCount++;\r\n }\r\n });\r\n\r\n const totalHeight = visibleItemsHeight + topPaddingHeight + bottomPaddingHeight;\r\n const averageItemHeight = totalHeight / (topCount + bottomCount + buffer.length);\r\n\r\n // average heights calculation, items that have never been reached\r\n let adjustTopPadding = buffer.minIndexUser !== null && buffer.minIndex > buffer.minIndexUser;\r\n let adjustBottomPadding = buffer.maxIndexUser !== null && buffer.maxIndex < buffer.maxIndexUser;\r\n let topPaddingHeightAdd = adjustTopPadding ? (buffer.minIndex - buffer.minIndexUser) * averageItemHeight : 0;\r\n let bottomPaddingHeightAdd = adjustBottomPadding ? (buffer.maxIndexUser - buffer.maxIndex) * averageItemHeight : 0;\r\n\r\n // paddings combine adjustment\r\n topPadding.height(topPaddingHeight + topPaddingHeightAdd);\r\n bottomPadding.height(bottomPaddingHeight + bottomPaddingHeightAdd);\r\n },\r\n\r\n onAfterMinIndexSet(topPaddingHeightOld) {\r\n // additional scrollTop adjustment in case of datasource.minIndex external set\r\n if (buffer.minIndexUser !== null && buffer.minIndex > buffer.minIndexUser) {\r\n let diff = topPadding.height() - topPaddingHeightOld;\r\n viewport.scrollTop(viewport.scrollTop() + diff);\r\n while((diff -= viewport.scrollTop()) > 0) {\r\n bottomPadding.height(bottomPadding.height() + diff);\r\n viewport.scrollTop(viewport.scrollTop() + diff);\r\n }\r\n }\r\n },\r\n\r\n onAfterPrepend(updates) {\r\n if (!updates.prepended.length)\r\n return;\r\n const height = buffer.effectiveHeight(updates.prepended);\r\n const paddingHeight = topPadding.height() - height;\r\n if (paddingHeight >= 0) {\r\n topPadding.height(paddingHeight);\r\n }\r\n else {\r\n topPadding.height(0);\r\n viewport.scrollTop(viewport.scrollTop() - paddingHeight);\r\n }\r\n },\r\n\r\n resetTopPadding() {\r\n topPadding.height(0);\r\n topPadding.cache.clear();\r\n },\r\n\r\n resetBottomPadding() {\r\n bottomPadding.height(0);\r\n bottomPadding.cache.clear();\r\n },\r\n\r\n removeCacheItem(item, isTop) {\r\n topPadding.cache.remove(item, isTop);\r\n bottomPadding.cache.remove(item, isTop);\r\n },\r\n\r\n removeItem(item) {\r\n this.removeCacheItem(item);\r\n return buffer.remove(item);\r\n }\r\n });\r\n\r\n return viewport;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/viewport.js","// Can't just extend the Array, due to Babel does not support built-in classes extending\r\n// This solution was taken from https://stackoverflow.com/questions/46897414/es6-class-extends-array-workaround-for-es5-babel-transpile\r\nclass CacheProto {\r\n add(item) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index === item.scope.$index) {\r\n this[i].height = item.element.outerHeight();\r\n return;\r\n }\r\n }\r\n this.push({\r\n index: item.scope.$index,\r\n height: item.element.outerHeight()\r\n });\r\n this.sort((a, b) => ((a.index < b.index) ? -1 : ((a.index > b.index) ? 1 : 0)));\r\n }\r\n\r\n remove(argument, _isTop) {\r\n const index = argument % 1 === 0 ? argument : argument.scope.$index;\r\n const isTop = argument % 1 === 0 ? _isTop : argument._op === 'isTop';\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index === index) {\r\n this.splice(i, 1);\r\n break;\r\n }\r\n }\r\n if(!isTop) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index > index) {\r\n this[i].index--;\r\n }\r\n }\r\n }\r\n }\r\n\r\n clear() {\r\n this.length = 0;\r\n }\r\n}\r\n\r\nfunction Cache() {\r\n const instance = [];\r\n instance.push.apply(instance, arguments);\r\n Object.setPrototypeOf(instance, Cache.prototype);\r\n return instance;\r\n}\r\nCache.prototype = Object.create(Array.prototype);\r\nObject.getOwnPropertyNames(CacheProto.prototype).forEach(methodName =>\r\n Cache.prototype[methodName] = CacheProto.prototype[methodName]\r\n);\r\n\r\nfunction generateElement(template) {\r\n if(template.nodeType !== Node.ELEMENT_NODE) {\r\n throw new Error('ui-scroll directive requires an Element node for templating the view');\r\n }\r\n let element;\r\n switch (template.tagName.toLowerCase()) {\r\n case 'dl':\r\n throw new Error(`ui-scroll directive does not support <${template.tagName}> as a repeating tag: ${template.outerHTML}`);\r\n case 'tr':\r\n let table = angular.element('
');\r\n element = table.find('tr');\r\n break;\r\n case 'li':\r\n element = angular.element('
  • ');\r\n break;\r\n default:\r\n element = angular.element('
    ');\r\n }\r\n return element;\r\n}\r\n\r\nclass Padding {\r\n constructor(template) {\r\n this.element = generateElement(template);\r\n this.cache = new Cache();\r\n }\r\n\r\n height() {\r\n return this.element.height.apply(this.element, arguments);\r\n }\r\n}\r\n\r\nexport default Padding;\n\n\n// WEBPACK FOOTER //\n// ./src/modules/padding.js","class Adapter {\r\n\r\n constructor($scope, $parse, $attr, viewport, buffer, doAdjust, reload) {\r\n this.$parse = $parse;\r\n this.$attr = $attr;\r\n this.viewport = viewport;\r\n this.buffer = buffer;\r\n\r\n this.doAdjust = doAdjust;\r\n this.reload = reload;\r\n\r\n this.isLoading = false;\r\n this.disabled = false;\r\n\r\n const viewportScope = viewport.getScope();\r\n this.startScope = viewportScope.$parent ? viewportScope : $scope;\r\n\r\n this.publicContext = {};\r\n this.assignAdapter($attr.adapter);\r\n this.generatePublicContext();\r\n }\r\n\r\n assignAdapter(adapterAttr) {\r\n if (!adapterAttr || !(adapterAttr = adapterAttr.replace(/^\\s+|\\s+$/gm, ''))) {\r\n return;\r\n }\r\n let adapterOnScope;\r\n\r\n try {\r\n this.$parse(adapterAttr).assign(this.startScope, {});\r\n adapterOnScope = this.$parse(adapterAttr)(this.startScope);\r\n }\r\n catch (error) {\r\n error.message = `Angular ui-scroll Adapter assignment exception.\\n` +\r\n `Can't parse \"${adapterAttr}\" expression.\\n` +\r\n error.message;\r\n throw error;\r\n }\r\n\r\n Object.assign(adapterOnScope, this.publicContext);\r\n this.publicContext = adapterOnScope;\r\n }\r\n\r\n generatePublicContext() {\r\n // these methods will be accessible out of ui-scroll via user defined adapter\r\n const publicMethods = ['reload', 'applyUpdates', 'append', 'prepend', 'isBOF', 'isEOF', 'isEmpty'];\r\n for (let i = publicMethods.length - 1; i >= 0; i--) {\r\n this.publicContext[publicMethods[i]] = this[publicMethods[i]].bind(this);\r\n }\r\n\r\n // these read-only props will be accessible out of ui-scroll via user defined adapter\r\n const publicProps = ['isLoading', 'topVisible', 'topVisibleElement', 'topVisibleScope', 'bottomVisible', 'bottomVisibleElement', 'bottomVisibleScope'];\r\n for (let i = publicProps.length - 1; i >= 0; i--) {\r\n let property, attr = this.$attr[publicProps[i]];\r\n Object.defineProperty(this, publicProps[i], {\r\n get: () => property,\r\n set: (value) => {\r\n property = value;\r\n this.publicContext[publicProps[i]] = value;\r\n if (attr) {\r\n this.$parse(attr).assign(this.startScope, value);\r\n }\r\n }\r\n });\r\n }\r\n\r\n // non-read-only public property\r\n Object.defineProperty(this.publicContext, 'disabled', {\r\n get: () => this.disabled,\r\n set: (value) => (!(this.disabled = value)) ? this.doAdjust() : null\r\n });\r\n }\r\n\r\n loading(value) {\r\n this.isLoading = value;\r\n }\r\n\r\n isBOF() {\r\n return this.buffer.bof;\r\n }\r\n\r\n isEOF() {\r\n return this.buffer.eof;\r\n }\r\n\r\n isEmpty() {\r\n return !this.buffer.length;\r\n }\r\n\r\n append(newItems) {\r\n this.buffer.append(newItems);\r\n this.doAdjust();\r\n this.viewport.clipTop();\r\n this.viewport.clipBottom();\r\n }\r\n\r\n prepend(newItems) {\r\n this.buffer.prepend(newItems);\r\n this.doAdjust();\r\n this.viewport.clipTop();\r\n this.viewport.clipBottom();\r\n }\r\n\r\n applyUpdates(arg1, arg2) {\r\n if (typeof arg1 === 'function') {\r\n this.applyUpdatesFunc(arg1);\r\n } else {\r\n this.applyUpdatesIndex(arg1, arg2);\r\n }\r\n this.doAdjust();\r\n }\r\n\r\n applyUpdatesFunc(cb) {\r\n this.buffer.slice(0).forEach((wrapper) => {\r\n // we need to do it on the buffer clone, because buffer content\r\n // may change as we iterate through\r\n this.applyUpdate(wrapper, cb(wrapper.item, wrapper.scope, wrapper.element));\r\n });\r\n }\r\n\r\n applyUpdatesIndex(index, newItems) {\r\n if (index % 1 !== 0) {\r\n throw new Error('applyUpdates - ' + index + ' is not a valid index (should be an integer)');\r\n }\r\n const _index = index - this.buffer.first;\r\n\r\n // apply updates only within buffer\r\n if (_index >= 0 && _index < this.buffer.length) {\r\n this.applyUpdate(this.buffer[_index], newItems);\r\n }\r\n // out-of-buffer case: deletion may affect Paddings\r\n else if(index >= this.buffer.getAbsMinIndex() && index <= this.buffer.getAbsMaxIndex()) {\r\n if(Array.isArray(newItems) && !newItems.length) {\r\n this.viewport.removeCacheItem(index, index === this.buffer.minIndex);\r\n if(index === this.buffer.getAbsMinIndex()) {\r\n this.buffer.incrementMinIndex();\r\n }\r\n else {\r\n this.buffer.decrementMaxIndex();\r\n }\r\n }\r\n }\r\n }\r\n\r\n applyUpdate(wrapper, newItems) {\r\n if (!Array.isArray(newItems)) {\r\n return;\r\n }\r\n let position = this.buffer.indexOf(wrapper);\r\n if (!newItems.reverse().some(newItem => newItem === wrapper.item)) {\r\n wrapper.op = 'remove';\r\n if(position === 0 && !newItems.length) {\r\n wrapper._op = 'isTop'; // to catch \"first\" edge case on remove\r\n }\r\n }\r\n newItems.forEach((newItem) => {\r\n if (newItem === wrapper.item) {\r\n position--;\r\n } else {\r\n // 3 parameter (isTop) is to catch \"first\" edge case on insert\r\n this.buffer.insert(position + 1, newItem, position === -1);\r\n }\r\n });\r\n }\r\n\r\n calculateProperties() {\r\n let rowTop = null, topHeight = 0;\r\n let topDone = false, bottomDone = false;\r\n const length = this.buffer.length;\r\n\r\n for (let i = 0; i < length; i++) {\r\n const item = this.buffer[i];\r\n const itemTop = item.element.offset().top;\r\n\r\n if (rowTop !== itemTop) { // a new row condition\r\n const itemHeight = item.element.outerHeight(true);\r\n const top = this.viewport.topDataPos() + topHeight + itemHeight;\r\n\r\n if (!topDone && top > this.viewport.topVisiblePos()) {\r\n topDone = true;\r\n this['topVisible'] = item.item;\r\n this['topVisibleElement'] = item.element;\r\n this['topVisibleScope'] = item.scope;\r\n }\r\n if (!bottomDone && (top >= this.viewport.bottomVisiblePos() || (i === length - 1 && this.isEOF()))) {\r\n bottomDone = true;\r\n this['bottomVisible'] = item.item;\r\n this['bottomVisibleElement'] = item.element;\r\n this['bottomVisibleScope'] = item.scope;\r\n }\r\n topHeight += itemHeight;\r\n }\r\n rowTop = itemTop;\r\n\r\n if (topDone && bottomDone) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default Adapter;\n\n\n// WEBPACK FOOTER //\n// ./src/modules/adapter.js"],"sourceRoot":""}