{"version":3,"sources":["jsdelivr-header.js","/npm/page-wrapping@1.1.0/dist/page-wrapping.cjs.js"],"names":[],"mappings":"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","file":"/npm/page-wrapping@1.1.0/dist/page-wrapping.cjs.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/page-wrapping@1.1.0/dist/page-wrapping.cjs.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar _regeneratorRuntime = _interopDefault(require('babel-runtime/regenerator'));\nvar _asyncToGenerator = _interopDefault(require('babel-runtime/helpers/asyncToGenerator'));\n\nvar _this = undefined;\n\n// Default presence ahead function. Used when node does not provides one.\nvar defaultPresenceAhead = function defaultPresenceAhead(element) {\n  return function (height) {\n    return Math.min(element.height, height);\n  };\n};\n\n// Calculates the presence ahead or an array of nodes, given the available height.\nvar getPresenceAhead = function getPresenceAhead(elements, height) {\n  var result = 0;\n\n  for (var i = 0; i < elements.length; i++) {\n    var element = elements[i];\n    var isElementInside = height > element.top;\n    var presenceAhead = element.presenceAhead || defaultPresenceAhead(element);\n\n    if (element && isElementInside) {\n      result += presenceAhead(height - element.top);\n    }\n  }\n\n  return result;\n};\n\n// Clone element recursively including children\nvar cloneRecursively = function cloneRecursively(node) {\n  var clone = node.clone();\n\n  if (node.children && node.children.length > 0) {\n    node.children.forEach(function (child) {\n      return clone.appendChild(cloneRecursively(child));\n    });\n  }\n\n  return clone;\n};\n\n// Wrap nodes tree in fixed height page, and returns exceedings separately.\nvar wrap = function () {\n  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(elements, height, pageNumber) {\n    var nextPageElements, elementsToBeRemoved, i, element, futureElements, isElementOutside, elementShouldSplit, elementShouldBreak, presenceAhead, clone, newFutureElements, nonFixedElements, _ret;\n\n    return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n      while (1) {\n        switch (_context2.prev = _context2.next) {\n          case 0:\n            nextPageElements = [];\n            elementsToBeRemoved = [];\n            i = 0;\n\n          case 3:\n            if (!(i < elements.length)) {\n              _context2.next = 37;\n              break;\n            }\n\n            element = elements[i];\n\n            if (!element.nodeWillWrap) {\n              _context2.next = 8;\n              break;\n            }\n\n            _context2.next = 8;\n            return element.nodeWillWrap({ pageNumber: pageNumber });\n\n          case 8:\n            futureElements = elements.slice(i + 1);\n            isElementOutside = height <= element.top;\n            elementShouldSplit = height < element.top + element.height;\n            elementShouldBreak = element.break || !element.wrap && elementShouldSplit;\n\n            // If element is fixed, we add it both to the current page\n            // and to all future pages to come.\n\n            if (!element.fixed) {\n              _context2.next = 15;\n              break;\n            }\n\n            nextPageElements.push(cloneRecursively(element));\n            return _context2.abrupt(\"continue\", 34);\n\n          case 15:\n            if (!isElementOutside) {\n              _context2.next = 19;\n              break;\n            }\n\n            nextPageElements.push(cloneRecursively(element));\n            elementsToBeRemoved.push(element);\n            return _context2.abrupt(\"continue\", 34);\n\n          case 19:\n\n            // Checks if element has more than the minimun presence ahead on that page.\n            // If not, we break the page in this element.\n            if (element.minPresenceAhead) {\n              presenceAhead = getPresenceAhead(futureElements, height);\n\n              if (presenceAhead < element.minPresenceAhead) elementShouldBreak = true;\n            }\n\n            // Element can break based on many conditions: if has the break flag,\n            // if has the wrap flag as false and should be splitted or didn't have enough\n            // presence ahead. Either way, the element get's relocated on the next page,\n            // as well as all other next elements.\n\n            if (!elementShouldBreak) {\n              _context2.next = 29;\n              break;\n            }\n\n            clone = cloneRecursively(element);\n            newFutureElements = futureElements.map(function (element) {\n              return cloneRecursively(element);\n            });\n            nonFixedElements = futureElements.filter(function (element) {\n              return !element.fixed;\n            });\n\n\n            clone.top = 0;\n            clone.break = false;\n\n            nextPageElements.push.apply(nextPageElements, [clone].concat(newFutureElements));\n            elementsToBeRemoved.push.apply(elementsToBeRemoved, [element].concat(nonFixedElements));\n            return _context2.abrupt(\"break\", 37);\n\n          case 29:\n            if (!elementShouldSplit) {\n              _context2.next = 34;\n              break;\n            }\n\n            return _context2.delegateYield( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n              var clone, remainingHeight, wrappedChildren;\n              return _regeneratorRuntime.wrap(function _callee$(_context) {\n                while (1) {\n                  switch (_context.prev = _context.next) {\n                    case 0:\n                      clone = element.clone();\n                      remainingHeight = height - element.top;\n\n                      if (!(element.children && element.children.length > 0)) {\n                        _context.next = 7;\n                        break;\n                      }\n\n                      _context.next = 5;\n                      return wrap(element.children, remainingHeight);\n\n                    case 5:\n                      wrappedChildren = _context.sent;\n\n                      wrappedChildren.forEach(function (child) {\n                        return clone.appendChild(child);\n                      });\n\n                    case 7:\n\n                      element.onNodeSplit(remainingHeight, clone);\n                      nextPageElements.push(clone);\n\n                      return _context.abrupt(\"return\", \"continue\");\n\n                    case 10:\n                    case \"end\":\n                      return _context.stop();\n                  }\n                }\n              }, _callee, _this);\n            })(), \"t0\", 31);\n\n          case 31:\n            _ret = _context2.t0;\n\n            if (!(_ret === \"continue\")) {\n              _context2.next = 34;\n              break;\n            }\n\n            return _context2.abrupt(\"continue\", 34);\n\n          case 34:\n            i++;\n            _context2.next = 3;\n            break;\n\n          case 37:\n\n            // Remove elements that didn't fit inside page\n            // We do this here to not interfer with upper elements iteration\n            elementsToBeRemoved.forEach(function (element) {\n              return element.remove();\n            });\n\n            return _context2.abrupt(\"return\", nextPageElements);\n\n          case 39:\n          case \"end\":\n            return _context2.stop();\n        }\n      }\n    }, _callee2, _this);\n  }));\n\n  return function wrap(_x, _x2, _x3) {\n    return _ref.apply(this, arguments);\n  };\n}();\n\n// Wrap nodes tree in equal sized subpages\nvar wrapPages = function () {\n  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(nodes, height, pageIndex) {\n    var wrapResult, nextPage, hasOnlyFixedChilds, nextPages;\n    return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n      while (1) {\n        switch (_context3.prev = _context3.next) {\n          case 0:\n            _context3.next = 2;\n            return wrap(nodes, height, pageIndex++);\n\n          case 2:\n            wrapResult = _context3.sent;\n            nextPage = wrapResult[0];\n\n            if (!(!nextPage || nextPage.isEmpty())) {\n              _context3.next = 6;\n              break;\n            }\n\n            return _context3.abrupt(\"return\", nodes);\n\n          case 6:\n            hasOnlyFixedChilds = nextPage.children.length > 0 && nextPage.children.every(function (c) {\n              return c.fixed;\n            });\n\n            if (!hasOnlyFixedChilds) {\n              _context3.next = 9;\n              break;\n            }\n\n            return _context3.abrupt(\"return\", nodes);\n\n          case 9:\n            _context3.next = 11;\n            return wrapPages([nextPage], height, pageIndex);\n\n          case 11:\n            nextPages = _context3.sent;\n            return _context3.abrupt(\"return\", [].concat(nodes, nextPages));\n\n          case 13:\n          case \"end\":\n            return _context3.stop();\n        }\n      }\n    }, _callee3, _this);\n  }));\n\n  return function wrapPages(_x4, _x5, _x6) {\n    return _ref2.apply(this, arguments);\n  };\n}();\n\nvar wrapPage = function () {\n  var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(page, height) {\n    var pageIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n    var pages;\n    return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n      while (1) {\n        switch (_context4.prev = _context4.next) {\n          case 0:\n            if (page) {\n              _context4.next = 2;\n              break;\n            }\n\n            return _context4.abrupt(\"return\", []);\n\n          case 2:\n            _context4.next = 4;\n            return wrapPages([cloneRecursively(page)], height, pageIndex);\n\n          case 4:\n            pages = _context4.sent;\n            return _context4.abrupt(\"return\", pages);\n\n          case 6:\n          case \"end\":\n            return _context4.stop();\n        }\n      }\n    }, _callee4, _this);\n  }));\n\n  return function wrapPage(_x8, _x9) {\n    return _ref3.apply(this, arguments);\n  };\n}();\n\nexports.wrap = wrap;\nexports['default'] = wrapPage;\n"]}