{"version":3,"sources":["webpack:///./node_modules/react-infinite-scroller/dist/InfiniteScroll.js","webpack:///./node_modules/react-infinite-scroller/index.js","webpack:///./node_modules/@researchgate/react-intersection-observer/lib/es/utils.js","webpack:///./node_modules/@researchgate/react-intersection-observer/lib/es/observer.js","webpack:///./node_modules/@researchgate/react-intersection-observer/lib/es/IntersectionObserver.js","webpack:///./src/components/GridClientesFromBaixeCatalogo/index.js","webpack:///./src/pages/clientes/index.js","webpack:///./node_modules/intersection-observer/intersection-observer.js"],"names":["Object","defineProperty","exports","value","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","key","Constructor","protoProps","staticProps","prototype","_react","_react2","_interopRequireDefault","_propTypes2","obj","__esModule","default","InfiniteScroll","_Component","instance","TypeError","_classCallCheck","this","_this","self","call","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","scrollListener","bind","eventListenerOptions","mousewheelListener","subClass","superClass","create","constructor","setPrototypeOf","_inherits","pageLoaded","pageStart","options","attachScrollListener","isReverse","loadMore","parentElement","getParentElement","scrollComponent","scrollTop","scrollHeight","beforeScrollHeight","beforeScrollTop","detachScrollListener","detachMousewheelListener","passive","testOptions","document","addEventListener","removeEventListener","e","useCapture","isPassiveSupported","loader","defaultLoader","scrollEl","window","useWindow","parentNode","el","scrollParent","getScrollParent","hasMore","initialLoad","deltaY","preventDefault","offset","doc","documentElement","body","undefined","pageYOffset","calculateOffset","clientHeight","Number","threshold","offsetParent","calculateTopPosition","offsetHeight","innerHeight","offsetTop","_this2","renderProps","filterProps","children","element","ref","keys","indexOf","hasOwnProperty","_objectWithoutProperties","node","childrenArray","unshift","push","createElement","Component","propTypes","isRequired","bool","func","number","defaultProps","module","marginRE","shallowCompare","next","prev","Array","isArray","some","_","index","toString","isChildrenWithRef","observerElementsMap","Map","getPooled","observer","root","rootMargin","result","trim","split","map","margin","test","Error","m0","shift","_a","m1","_b","m2","_c","parseRootMargin","observers","thresholds","findObserverElement","entry","elements","get","values","callback","entries","handleChange","createObserver","pooled","IntersectionObserver","set","Set","observeElement","has","add","observe","unobserveElement","targets","delete","size","unobserve","disconnect","_extendStatics","__extends","d","b","p","__","observerOptions","observableProps","reduce","isRootString","assign","querySelector","_super","ReactIntersectionObserver","apply","arguments","event","onChange","externalUnobserve","handleNode","childenRef","current","targetNode","nodeType","disabled","getSnapshotBeforeUpdate","prevProps","prevTargetNode","relatedPropsChanged","prop","componentDidUpdate","targetNodeChanged","componentDidMount","componentWillUnmount","render","cloneElement","Children","only","displayName","pagina","IMAGE_INITIAL","handleIntersection","cat","logoPath","imagens","logo","isIntersecting","src","useState","catalogos","setCatalogos","temMaisCatalogos","setTemMaisCatalogos","fetch","then","response","contentType","headers","json","catalogosRetornados","concat","className","_id","plataformas","plat","download_ativo","href","catalogo","agrupa_catalogos","URL_BUSCA_BAIXE_CATALOGO","encodeURIComponent","JSON","stringify","campoEnum","filtros","id_nome","rel","style","display","alt","nome","renderCatalogos","location","intl","useIntl","Helmet","bodyAttributes","class","formatMessage","id","GridClientesFromBaixeCatalogo","IntersectionObserverEntry","intersectionRatio","startDoc","frame","getFrameElement","ownerDocument","registry","crossOriginUpdater","crossOriginRect","THROTTLE_TIMEOUT","POLL_INTERVAL","USE_MUTATION_OBSERVER","_setupCrossOriginUpdater","boundingClientRect","intersectionRect","convertFromParentRect","top","bottom","left","right","width","height","forEach","_checkForIntersections","_resetCrossOriginUpdater","_observationTargets","item","_registerInstance","_monitorIntersections","filter","_unmonitorIntersections","_unregisterInstance","_unmonitorAllIntersections","takeRecords","records","_queuedEntries","slice","_initThresholds","opt_threshold","sort","t","a","isNaN","_parseRootMargin","opt_rootMargin","margins","parts","exec","parseFloat","unit","win","defaultView","_monitoringDocuments","monitoringInterval","domObserver","setInterval","addEvent","MutationObserver","attributes","childList","characterData","subtree","_monitoringUnsubscribes","clearInterval","removeEvent","rootDoc","itemDoc","unsubscribe","splice","unsubscribes","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","targetRect","getBoundingClientRect","rootContainsTarget","_rootContainsTarget","oldEntry","_computeTargetAndRootIntersection","newEntry","time","performance","now","rootBounds","_hasCrossedThreshold","_callback","getComputedStyle","rect1","rect2","parent","getParentNode","atRoot","parentRect","parentComputedStyle","frameRect","frameIntersect","overflow","Math","max","min","html","clientWidth","_expandRectByRootMargin","rect","_rootMarginValues","newRect","oldRatio","newRatio","containsDeep","frameElement","ensureDOMRect","targetArea","intersectionArea","toFixed","opt_options","fn","timeout","timer","setTimeout","join","opt_useCapture","attachEvent","detatchEvent","err","y","x","parentBoundingRect","parentIntersectionRect","child","host","assignedSlot"],"mappings":"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","file":"component---src-pages-clientes-index-js-28006ca30f9e9787ca61.js","sourcesContent":["'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar InfiniteScroll = function (_Component) {\n _inherits(InfiniteScroll, _Component);\n\n function InfiniteScroll(props) {\n _classCallCheck(this, InfiniteScroll);\n\n var _this = _possibleConstructorReturn(this, (InfiniteScroll.__proto__ || Object.getPrototypeOf(InfiniteScroll)).call(this, props));\n\n _this.scrollListener = _this.scrollListener.bind(_this);\n _this.eventListenerOptions = _this.eventListenerOptions.bind(_this);\n _this.mousewheelListener = _this.mousewheelListener.bind(_this);\n return _this;\n }\n\n _createClass(InfiniteScroll, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.pageLoaded = this.props.pageStart;\n this.options = this.eventListenerOptions();\n this.attachScrollListener();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.isReverse && this.loadMore) {\n var parentElement = this.getParentElement(this.scrollComponent);\n parentElement.scrollTop = parentElement.scrollHeight - this.beforeScrollHeight + this.beforeScrollTop;\n this.loadMore = false;\n }\n\n this.attachScrollListener();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.detachScrollListener();\n this.detachMousewheelListener();\n }\n }, {\n key: 'isPassiveSupported',\n value: function isPassiveSupported() {\n var passive = false;\n var testOptions = {\n get passive() {\n passive = true;\n }\n\n };\n\n try {\n document.addEventListener('test', null, testOptions);\n document.removeEventListener('test', null, testOptions);\n } catch (e) {// ignore\n }\n\n return passive;\n }\n }, {\n key: 'eventListenerOptions',\n value: function eventListenerOptions() {\n var options = this.props.useCapture;\n\n if (this.isPassiveSupported()) {\n options = {\n useCapture: this.props.useCapture,\n passive: true\n };\n }\n\n return options;\n } // Set a defaut loader for all your `InfiniteScroll` components\n\n }, {\n key: 'setDefaultLoader',\n value: function setDefaultLoader(loader) {\n this.defaultLoader = loader;\n }\n }, {\n key: 'detachMousewheelListener',\n value: function detachMousewheelListener() {\n var scrollEl = window;\n\n if (this.props.useWindow === false) {\n scrollEl = this.scrollComponent.parentNode;\n }\n\n scrollEl.removeEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);\n }\n }, {\n key: 'detachScrollListener',\n value: function detachScrollListener() {\n var scrollEl = window;\n\n if (this.props.useWindow === false) {\n scrollEl = this.getParentElement(this.scrollComponent);\n }\n\n scrollEl.removeEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);\n scrollEl.removeEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);\n }\n }, {\n key: 'getParentElement',\n value: function getParentElement(el) {\n var scrollParent = this.props.getScrollParent && this.props.getScrollParent();\n\n if (scrollParent != null) {\n return scrollParent;\n }\n\n return el && el.parentNode;\n }\n }, {\n key: 'filterProps',\n value: function filterProps(props) {\n return props;\n }\n }, {\n key: 'attachScrollListener',\n value: function attachScrollListener() {\n var parentElement = this.getParentElement(this.scrollComponent);\n\n if (!this.props.hasMore || !parentElement) {\n return;\n }\n\n var scrollEl = window;\n\n if (this.props.useWindow === false) {\n scrollEl = parentElement;\n }\n\n scrollEl.addEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);\n scrollEl.addEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);\n scrollEl.addEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);\n\n if (this.props.initialLoad) {\n this.scrollListener();\n }\n }\n }, {\n key: 'mousewheelListener',\n value: function mousewheelListener(e) {\n // Prevents Chrome hangups\n // See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257\n if (e.deltaY === 1 && !this.isPassiveSupported()) {\n e.preventDefault();\n }\n }\n }, {\n key: 'scrollListener',\n value: function scrollListener() {\n var el = this.scrollComponent;\n var scrollEl = window;\n var parentNode = this.getParentElement(el);\n var offset = void 0;\n\n if (this.props.useWindow) {\n var doc = document.documentElement || document.body.parentNode || document.body;\n var scrollTop = scrollEl.pageYOffset !== undefined ? scrollEl.pageYOffset : doc.scrollTop;\n\n if (this.props.isReverse) {\n offset = scrollTop;\n } else {\n offset = this.calculateOffset(el, scrollTop);\n }\n } else if (this.props.isReverse) {\n offset = parentNode.scrollTop;\n } else {\n offset = el.scrollHeight - parentNode.scrollTop - parentNode.clientHeight;\n } // Here we make sure the element is visible as well as checking the offset\n\n\n if (offset < Number(this.props.threshold) && el && el.offsetParent !== null) {\n this.detachScrollListener();\n this.beforeScrollHeight = parentNode.scrollHeight;\n this.beforeScrollTop = parentNode.scrollTop; // Call loadMore after detachScrollListener to allow for non-async loadMore functions\n\n if (typeof this.props.loadMore === 'function') {\n this.props.loadMore(this.pageLoaded += 1);\n this.loadMore = true;\n }\n }\n }\n }, {\n key: 'calculateOffset',\n value: function calculateOffset(el, scrollTop) {\n if (!el) {\n return 0;\n }\n\n return this.calculateTopPosition(el) + (el.offsetHeight - scrollTop - window.innerHeight);\n }\n }, {\n key: 'calculateTopPosition',\n value: function calculateTopPosition(el) {\n if (!el) {\n return 0;\n }\n\n return el.offsetTop + this.calculateTopPosition(el.offsetParent);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var renderProps = this.filterProps(this.props);\n\n var children = renderProps.children,\n element = renderProps.element,\n hasMore = renderProps.hasMore,\n initialLoad = renderProps.initialLoad,\n isReverse = renderProps.isReverse,\n loader = renderProps.loader,\n loadMore = renderProps.loadMore,\n pageStart = renderProps.pageStart,\n ref = renderProps.ref,\n threshold = renderProps.threshold,\n useCapture = renderProps.useCapture,\n useWindow = renderProps.useWindow,\n getScrollParent = renderProps.getScrollParent,\n props = _objectWithoutProperties(renderProps, ['children', 'element', 'hasMore', 'initialLoad', 'isReverse', 'loader', 'loadMore', 'pageStart', 'ref', 'threshold', 'useCapture', 'useWindow', 'getScrollParent']);\n\n props.ref = function (node) {\n _this2.scrollComponent = node;\n\n if (ref) {\n ref(node);\n }\n };\n\n var childrenArray = [children];\n\n if (hasMore) {\n if (loader) {\n isReverse ? childrenArray.unshift(loader) : childrenArray.push(loader);\n } else if (this.defaultLoader) {\n isReverse ? childrenArray.unshift(this.defaultLoader) : childrenArray.push(this.defaultLoader);\n }\n }\n\n return _react2.default.createElement(element, props, childrenArray);\n }\n }]);\n\n return InfiniteScroll;\n}(_react.Component);\n\nInfiniteScroll.propTypes = {\n children: _propTypes2.default.node.isRequired,\n element: _propTypes2.default.node,\n hasMore: _propTypes2.default.bool,\n initialLoad: _propTypes2.default.bool,\n isReverse: _propTypes2.default.bool,\n loader: _propTypes2.default.node,\n loadMore: _propTypes2.default.func.isRequired,\n pageStart: _propTypes2.default.number,\n ref: _propTypes2.default.func,\n getScrollParent: _propTypes2.default.func,\n threshold: _propTypes2.default.number,\n useCapture: _propTypes2.default.bool,\n useWindow: _propTypes2.default.bool\n};\nInfiniteScroll.defaultProps = {\n element: 'div',\n hasMore: false,\n initialLoad: true,\n pageStart: 0,\n ref: null,\n threshold: 250,\n useWindow: true,\n isReverse: false,\n useCapture: false,\n loader: null,\n getScrollParent: null\n};\nexports.default = InfiniteScroll;\nmodule.exports = exports['default'];","module.exports = require('./dist/InfiniteScroll');","var _a;\n\nvar marginRE = /^-?\\d*\\.?\\d+(px|%)$/;\nexport function parseRootMargin(rootMargin) {\n var marginString = rootMargin ? rootMargin.trim() : '0px';\n var result = marginString.split(/\\s+/).map(function (margin) {\n if (!marginRE.test(margin)) {\n throw new Error('rootMargin must be a string literal containing pixels and/or percent values');\n }\n\n return margin;\n });\n var m0 = result.shift();\n var _a = result[0],\n m1 = _a === void 0 ? m0 : _a,\n _b = result[1],\n m2 = _b === void 0 ? m0 : _b,\n _c = result[2],\n m3 = _c === void 0 ? m1 : _c;\n return m0 + \" \" + m1 + \" \" + m2 + \" \" + m3;\n}\nexport function shallowCompare(next, prev) {\n if (Array.isArray(next) && Array.isArray(prev)) {\n if (next.length === prev.length) {\n return next.some(function (_, index) {\n return shallowCompare(next[index], prev[index]);\n });\n }\n }\n\n return next !== prev;\n}\nexport var hasOwnProperty = (_a = Object.prototype, _a.hasOwnProperty),\n toString = _a.toString;\nexport function isChildrenWithRef(children) {\n return children && hasOwnProperty.call(children, 'ref');\n}\nexport function thresholdCacheKey(threshold) {\n if (!threshold || typeof threshold === 'number') {\n return threshold;\n }\n\n return threshold.join(',');\n}","import { parseRootMargin, shallowCompare } from './utils';\nexport var observerElementsMap = new Map();\nexport function getPooled(options) {\n if (options === void 0) {\n options = {};\n }\n\n var root = options.root || null;\n var rootMargin = parseRootMargin(options.rootMargin);\n var threshold = Array.isArray(options.threshold) ? options.threshold : [options.threshold != null ? options.threshold : 0];\n var observers = observerElementsMap.keys();\n var observer;\n\n while (observer = observers.next().value) {\n var unmatched = root !== observer.root || rootMargin !== observer.rootMargin || shallowCompare(threshold, observer.thresholds);\n\n if (!unmatched) {\n return observer;\n }\n }\n\n return null;\n}\nexport function findObserverElement(observer, entry) {\n var elements = observerElementsMap.get(observer);\n\n if (elements) {\n var values = elements.values();\n var element = void 0;\n\n while (element = values.next().value) {\n if (element.target === entry.target) {\n return element;\n }\n }\n }\n\n return null;\n}\n/**\n * The Intersection Observer API callback that is called whenever one element\n * – namely the target – intersects either the device viewport or a specified element.\n * Also will get called whenever the visibility of the target element changes and\n * crosses desired amounts of intersection with the root.\n */\n\nexport function callback(entries, observer) {\n for (var i = 0; i < entries.length; i++) {\n var element = findObserverElement(observer, entries[i]);\n /* istanbul ignore next line */\n\n if (element) {\n element.handleChange(entries[i]);\n }\n }\n}\nexport function createObserver(options) {\n var pooled = getPooled(options);\n\n if (pooled) {\n return pooled;\n }\n\n var observer = new IntersectionObserver(callback, options);\n observerElementsMap.set(observer, new Set());\n return observer;\n}\nexport function observeElement(element) {\n var _a;\n\n if (element.observer && !observerElementsMap.has(element.observer)) {\n observerElementsMap.set(element.observer, new Set());\n }\n\n (_a = observerElementsMap.get(element.observer)) === null || _a === void 0 ? void 0 : _a.add(element);\n element.observer.observe(element.target);\n}\nexport function unobserveElement(element, target) {\n if (observerElementsMap.has(element.observer)) {\n var targets = observerElementsMap.get(element.observer);\n\n if (targets === null || targets === void 0 ? void 0 : targets.delete(element)) {\n if (targets.size > 0) {\n element.observer.unobserve(target);\n } else {\n element.observer.disconnect();\n observerElementsMap.delete(element.observer);\n }\n }\n }\n}","import \"core-js/modules/es.array.reduce\";\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nimport React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport { createObserver, observeElement, unobserveElement } from './observer';\nimport { shallowCompare, isChildrenWithRef, hasOwnProperty, toString } from './utils';\nvar observerOptions = ['root', 'rootMargin', 'threshold'];\nvar observableProps = ['root', 'rootMargin', 'threshold', 'disabled'];\nexport var getOptions = function getOptions(props) {\n return observerOptions.reduce(function (options, key) {\n var _a;\n\n var isRootString = key === 'root' && toString.call(props.root) === '[object String]';\n return Object.assign(options, (_a = {}, _a[key] = isRootString ? document.querySelector(props[key]) : props[key], _a));\n }, {});\n};\n\nvar ReactIntersectionObserver =\n/** @class */\nfunction (_super) {\n __extends(ReactIntersectionObserver, _super);\n\n function ReactIntersectionObserver() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.handleChange = function (event) {\n _this.props.onChange(event, _this.externalUnobserve);\n };\n\n _this.handleNode = function (target) {\n var children = _this.props.children;\n /**\n * Forward hijacked ref to user.\n */\n\n if (isChildrenWithRef(children)) {\n var childenRef = children.ref;\n\n if (typeof childenRef === 'function') {\n childenRef(target);\n } else if (childenRef && hasOwnProperty.call(childenRef, 'current')) {\n /*\n * The children ref.current is read-only, we aren't allowed to do this, so\n * in future release it has to go away, and the ref shall be\n * forwarded and assigned to a DOM node by the user.\n */\n childenRef.current = target;\n }\n }\n\n _this.targetNode = undefined;\n\n if (target) {\n var targetNode = findDOMNode(target);\n\n if (targetNode && targetNode.nodeType === 1) {\n _this.targetNode = targetNode;\n }\n }\n };\n\n _this.observe = function () {\n if (_this.props.children == null || _this.props.disabled) {\n return false;\n }\n\n if (!_this.targetNode) {\n throw new Error(\"ReactIntersectionObserver: Can't find DOM node in the provided children. Make sure to render at least one DOM node in the tree.\");\n }\n\n _this.observer = createObserver(getOptions(_this.props));\n _this.target = _this.targetNode;\n observeElement(_this);\n return true;\n };\n\n _this.unobserve = function (target) {\n unobserveElement(_this, target);\n };\n\n _this.externalUnobserve = function () {\n if (_this.targetNode) {\n _this.unobserve(_this.targetNode);\n }\n };\n\n return _this;\n }\n\n ReactIntersectionObserver.prototype.getSnapshotBeforeUpdate = function (prevProps) {\n var _this = this;\n\n this.prevTargetNode = this.targetNode;\n var relatedPropsChanged = observableProps.some(function (prop) {\n return shallowCompare(_this.props[prop], prevProps[prop]);\n });\n\n if (relatedPropsChanged) {\n if (this.prevTargetNode) {\n if (!prevProps.disabled) {\n this.unobserve(this.prevTargetNode);\n }\n }\n }\n\n return relatedPropsChanged;\n };\n\n ReactIntersectionObserver.prototype.componentDidUpdate = function (_, __, relatedPropsChanged) {\n var targetNodeChanged = false; // check if we didn't unobserve previously due to a prop change\n\n if (!relatedPropsChanged) {\n targetNodeChanged = this.prevTargetNode !== this.targetNode; // check we have a previous node we want to unobserve\n\n if (targetNodeChanged && this.prevTargetNode != null) {\n this.unobserve(this.prevTargetNode);\n }\n }\n\n if (relatedPropsChanged || targetNodeChanged) {\n this.observe();\n }\n };\n\n ReactIntersectionObserver.prototype.componentDidMount = function () {\n this.observe();\n };\n\n ReactIntersectionObserver.prototype.componentWillUnmount = function () {\n if (this.targetNode) {\n this.unobserve(this.targetNode);\n }\n };\n\n ReactIntersectionObserver.prototype.render = function () {\n var children = this.props.children;\n return children != null ? React.cloneElement(React.Children.only(children), {\n ref: this.handleNode\n }) : null;\n };\n\n ReactIntersectionObserver.displayName = 'IntersectionObserver';\n return ReactIntersectionObserver;\n}(React.Component);\n\nexport default ReactIntersectionObserver;\nexport * from './types';","import React, { useState } from 'react';\nimport 'intersection-observer'; // polyfill\nimport Observer from '@researchgate/react-intersection-observer';\nimport InfiniteScroll from 'react-infinite-scroller';\n\nconst DOMINIO_API = 'https://www.baixecatalogo.com.br/api/v1';\nconst DOMINIO_IMAGENS = 'https://www.baixecatalogo.com.br';\nlet pagina = 0;\nconst LIMIT_PAGINA = 10;\nconst PATH_CATALOGOS = '/exibe-no-site-ideia';\nconst URL_BUSCA_BAIXE_CATALOGO = 'https://baixecatalogo.com.br/busca';\nconst URL_CATALOGO_BAIXE_CATALOGO = 'https://baixecatalogo.com.br/catalogo/';\nconst IMAGE_INITIAL = 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAALAAD/7gAhQWRvYmUAZMAAAAABAwAQAwIDBgAAAoMAAAKPAAACtf/bAIQAFBAQGBEYJxcXJzElHiUxLSYlJSYtPTQ0NDQ0PURAQEBAQEBERERERERERERERERERERERERERERERERERERERAEVGBggGyAmGBgmNSYgJjVENSoqNUREREE0QURERERERERERERERERERERERERERERERERERERERERERERERERE/8IAEQgBLAEsAwEiAAIRAQMRAf/EAF4AAQEAAAAAAAAAAAAAAAAAAAAGAQEAAAAAAAAAAAAAAAAAAAAAEAEBAAAAAAAAAAAAAAAAAACAoBEBAAAAAAAAAAAAAAAAAAAAoBIBAAAAAAAAAAAAAAAAAAAAgP/aAAwDAQACEQMRAAAAswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/2gAIAQIAAQUANP8A/9oACAEDAAEFADT/AP/aAAgBAQABBQCaT//aAAgBAgIGPwA0/wD/2gAIAQMCBj8ANP8A/9oACAEBAQY/ADSf/9k=';\n\nconst downloadAtivo = (plataformas) => plataformas\n && plataformas.some((plat) => plat.download_ativo);\n\nconst handleIntersection = (event, cat) => {\n const logoPath = DOMINIO_IMAGENS + cat.imagens.logo;\n if (event.isIntersecting && event.target.src !== logoPath) {\n event.target.src = logoPath;\n }\n};\n\nconst montaUrlCatalogo = (catalogo) => (catalogo.agrupa_catalogos\n ? `${URL_BUSCA_BAIXE_CATALOGO}?filtros=${encodeURIComponent(JSON.stringify([{ campoEnum: 'agrupa_catalogos', filtros: [catalogo.agrupa_catalogos] }]))}`\n : `${URL_CATALOGO_BAIXE_CATALOGO}${catalogo.id_nome}`);\n\nconst renderCatalogos = (catalogos) => catalogos.map((cat) => (\n
\n {\n downloadAtivo(cat.plataformas)\n ? (\n \n handleIntersection(event, cat)}>\n \n \n \n ) : (\n handleIntersection(event, cat)}>\n \n \n )\n }\n
\n));\n\nexport default () => {\n const [catalogos, setCatalogos] = useState([]);\n const [temMaisCatalogos, setTemMaisCatalogos] = useState(true);\n\n const obtemCatalogos = () => {\n setTemMaisCatalogos(false);\n window.fetch(`${DOMINIO_API}${PATH_CATALOGOS}?offset=${pagina * LIMIT_PAGINA}&limit=${LIMIT_PAGINA}`)\n .then((response) => {\n const contentType = response.headers.get('content-type');\n if (contentType && contentType.indexOf('application/json') !== -1) {\n return response.json();\n }\n return [];\n })\n .then((catalogosRetornados) => {\n if (catalogosRetornados && catalogosRetornados.length) {\n // incrementa uma página\n pagina += 1;\n // indica que tem mais catalogos e carrega mais catálogos\n setTemMaisCatalogos(catalogosRetornados.length >= LIMIT_PAGINA);\n setCatalogos((catalogos) => catalogos.concat(catalogosRetornados));\n }\n });\n };\n\n return (\n <>\n Carregando ...}\n >\n {\n catalogos && catalogos.length\n ? renderCatalogos(catalogos) :
\n }\n \n \n );\n};\n","import React from 'react';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'gatsby-plugin-intl';\nimport Layout from '../../components/layout';\nimport GridClientesFromBaixeCatalogo from '../../components/GridClientesFromBaixeCatalogo';\n\nexport default ({ location }) => {\n const intl = useIntl();\n\n return (\n \n \n {intl.formatMessage({ id: 'Clientes | Ideia 2001' })}\n \n\n
\n
\n
\n
\n
\n

{intl.formatMessage({ id: 'Clientes' })}

\n

{intl.formatMessage({ id: 'conheça quem já está com a gente!' })}

\n
\n
\n
\n
\n\n
\n
\n
\n \n
\n
\n
\n
\n
\n );\n};\n","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n(function () {\n 'use strict'; // Exit early if we're not running in a browser.\n\n if (typeof window !== 'object') {\n return;\n } // Exit early if all IntersectionObserver and IntersectionObserverEntry\n // features are natively supported.\n\n\n if ('IntersectionObserver' in window && 'IntersectionObserverEntry' in window && 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype, 'isIntersecting', {\n get: function get() {\n return this.intersectionRatio > 0;\n }\n });\n }\n\n return;\n }\n /**\n * Returns the embedding frame element, if any.\n * @param {!Document} doc\n * @return {!Element}\n */\n\n\n function getFrameElement(doc) {\n try {\n return doc.defaultView && doc.defaultView.frameElement || null;\n } catch (e) {\n // Ignore the error.\n return null;\n }\n }\n /**\n * A local reference to the root document.\n */\n\n\n var document = function (startDoc) {\n var doc = startDoc;\n var frame = getFrameElement(doc);\n\n while (frame) {\n doc = frame.ownerDocument;\n frame = getFrameElement(doc);\n }\n\n return doc;\n }(window.document);\n /**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\n\n\n var registry = [];\n /**\n * The signal updater for cross-origin intersection. When not null, it means\n * that the polyfill is configured to work in a cross-origin mode.\n * @type {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\n\n var crossOriginUpdater = null;\n /**\n * The current cross-origin intersection. Only used in the cross-origin mode.\n * @type {DOMRect|ClientRect}\n */\n\n var crossOriginRect = null;\n /**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\n\n function IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = ensureDOMRect(entry.rootBounds);\n this.boundingClientRect = ensureDOMRect(entry.boundingClientRect);\n this.intersectionRect = ensureDOMRect(entry.intersectionRect || getEmptyRect());\n this.isIntersecting = !!entry.intersectionRect; // Calculates the intersection ratio.\n\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height; // Sets intersection ratio.\n\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n }\n /**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\n\n\n function IntersectionObserver(callback, opt_options) {\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (options.root && options.root.nodeType != 1) {\n throw new Error('root must be an Element');\n } // Binds and throttles `this._checkForIntersections`.\n\n\n this._checkForIntersections = throttle(this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT); // Private properties.\n\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin); // Public properties.\n\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function (margin) {\n return margin.value + margin.unit;\n }).join(' ');\n /** @private @const {!Array} */\n\n this._monitoringDocuments = [];\n /** @private @const {!Array} */\n\n this._monitoringUnsubscribes = [];\n }\n /**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\n\n\n IntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n /**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\n\n IntersectionObserver.prototype.POLL_INTERVAL = null;\n /**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\n\n IntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n /**\n * Sets up the polyfill in the cross-origin mode. The result is the\n * updater function that accepts two arguments: `boundingClientRect` and\n * `intersectionRect` - just as these fields would be available to the\n * parent via `IntersectionObserverEntry`. This function should be called\n * each time the iframe receives intersection information from the parent\n * window, e.g. via messaging.\n * @return {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\n\n IntersectionObserver._setupCrossOriginUpdater = function () {\n if (!crossOriginUpdater) {\n /**\n * @param {DOMRect|ClientRect} boundingClientRect\n * @param {DOMRect|ClientRect} intersectionRect\n */\n crossOriginUpdater = function crossOriginUpdater(boundingClientRect, intersectionRect) {\n if (!boundingClientRect || !intersectionRect) {\n crossOriginRect = getEmptyRect();\n } else {\n crossOriginRect = convertFromParentRect(boundingClientRect, intersectionRect);\n }\n\n registry.forEach(function (observer) {\n observer._checkForIntersections();\n });\n };\n }\n\n return crossOriginUpdater;\n };\n /**\n * Resets the cross-origin mode.\n */\n\n\n IntersectionObserver._resetCrossOriginUpdater = function () {\n crossOriginUpdater = null;\n crossOriginRect = null;\n };\n /**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\n\n\n IntersectionObserver.prototype.observe = function (target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function (item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n\n this._observationTargets.push({\n element: target,\n entry: null\n });\n\n this._monitorIntersections(target.ownerDocument);\n\n this._checkForIntersections();\n };\n /**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\n\n\n IntersectionObserver.prototype.unobserve = function (target) {\n this._observationTargets = this._observationTargets.filter(function (item) {\n return item.element != target;\n });\n\n this._unmonitorIntersections(target.ownerDocument);\n\n if (this._observationTargets.length == 0) {\n this._unregisterInstance();\n }\n };\n /**\n * Stops observing all target elements for intersection changes.\n */\n\n\n IntersectionObserver.prototype.disconnect = function () {\n this._observationTargets = [];\n\n this._unmonitorAllIntersections();\n\n this._unregisterInstance();\n };\n /**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\n\n\n IntersectionObserver.prototype.takeRecords = function () {\n var records = this._queuedEntries.slice();\n\n this._queuedEntries = [];\n return records;\n };\n /**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\n\n\n IntersectionObserver.prototype._initThresholds = function (opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n return threshold.sort().filter(function (t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n\n return t !== a[i - 1];\n });\n };\n /**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array} An array of margin objects with the keys\n * value and unit.\n */\n\n\n IntersectionObserver.prototype._parseRootMargin = function (opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function (margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n\n return {\n value: parseFloat(parts[1]),\n unit: parts[2]\n };\n }); // Handles shorthand.\n\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n return margins;\n };\n /**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @param {!Document} doc\n * @private\n */\n\n\n IntersectionObserver.prototype._monitorIntersections = function (doc) {\n var win = doc.defaultView;\n\n if (!win) {\n // Already destroyed.\n return;\n }\n\n if (this._monitoringDocuments.indexOf(doc) != -1) {\n // Already monitoring.\n return;\n } // Private state for monitoring.\n\n\n var callback = this._checkForIntersections;\n var monitoringInterval = null;\n var domObserver = null; // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n\n if (this.POLL_INTERVAL) {\n monitoringInterval = win.setInterval(callback, this.POLL_INTERVAL);\n } else {\n addEvent(win, 'resize', callback, true);\n addEvent(doc, 'scroll', callback, true);\n\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in win) {\n domObserver = new win.MutationObserver(callback);\n domObserver.observe(doc, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n\n this._monitoringDocuments.push(doc);\n\n this._monitoringUnsubscribes.push(function () {\n // Get the window object again. When a friendly iframe is destroyed, it\n // will be null.\n var win = doc.defaultView;\n\n if (win) {\n if (monitoringInterval) {\n win.clearInterval(monitoringInterval);\n }\n\n removeEvent(win, 'resize', callback, true);\n }\n\n removeEvent(doc, 'scroll', callback, true);\n\n if (domObserver) {\n domObserver.disconnect();\n }\n }); // Also monitor the parent.\n\n\n if (doc != (this.root && this.root.ownerDocument || document)) {\n var frame = getFrameElement(doc);\n\n if (frame) {\n this._monitorIntersections(frame.ownerDocument);\n }\n }\n };\n /**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\n\n\n IntersectionObserver.prototype._unmonitorIntersections = function (doc) {\n var index = this._monitoringDocuments.indexOf(doc);\n\n if (index == -1) {\n return;\n }\n\n var rootDoc = this.root && this.root.ownerDocument || document; // Check if any dependent targets are still remaining.\n\n var hasDependentTargets = this._observationTargets.some(function (item) {\n var itemDoc = item.element.ownerDocument; // Target is in this context.\n\n if (itemDoc == doc) {\n return true;\n } // Target is nested in this context.\n\n\n while (itemDoc && itemDoc != rootDoc) {\n var frame = getFrameElement(itemDoc);\n itemDoc = frame && frame.ownerDocument;\n\n if (itemDoc == doc) {\n return true;\n }\n }\n\n return false;\n });\n\n if (hasDependentTargets) {\n return;\n } // Unsubscribe.\n\n\n var unsubscribe = this._monitoringUnsubscribes[index];\n\n this._monitoringDocuments.splice(index, 1);\n\n this._monitoringUnsubscribes.splice(index, 1);\n\n unsubscribe(); // Also unmonitor the parent.\n\n if (doc != rootDoc) {\n var frame = getFrameElement(doc);\n\n if (frame) {\n this._unmonitorIntersections(frame.ownerDocument);\n }\n }\n };\n /**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\n\n\n IntersectionObserver.prototype._unmonitorAllIntersections = function () {\n var unsubscribes = this._monitoringUnsubscribes.slice(0);\n\n this._monitoringDocuments.length = 0;\n this._monitoringUnsubscribes.length = 0;\n\n for (var i = 0; i < unsubscribes.length; i++) {\n unsubscribes[i]();\n }\n };\n /**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\n\n\n IntersectionObserver.prototype._checkForIntersections = function () {\n if (!this.root && crossOriginUpdater && !crossOriginRect) {\n // Cross origin monitoring, but no initial data available yet.\n return;\n }\n\n var rootIsInDom = this._rootIsInDom();\n\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function (item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n\n var rootContainsTarget = this._rootContainsTarget(target);\n\n var oldEntry = item.entry;\n\n var intersectionRect = rootIsInDom && rootContainsTarget && this._computeTargetAndRootIntersection(target, targetRect, rootRect);\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: crossOriginUpdater && !this.root ? null : rootRect,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n };\n /**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} targetRect The bounding rect of the target.\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\n\n\n IntersectionObserver.prototype._computeTargetAndRootIntersection = function (target, targetRect, rootRect) {\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot && parent) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ? window.getComputedStyle(parent) : {}; // If the parent isn't displayed, an intersection can't happen.\n\n if (parentComputedStyle.display == 'none') return null;\n\n if (parent == this.root || parent.nodeType ==\n /* DOCUMENT */\n 9) {\n atRoot = true;\n\n if (parent == this.root || parent == document) {\n if (crossOriginUpdater && !this.root) {\n if (!crossOriginRect || crossOriginRect.width == 0 && crossOriginRect.height == 0) {\n // A 0-size cross-origin intersection means no-intersection.\n parent = null;\n parentRect = null;\n intersectionRect = null;\n } else {\n parentRect = crossOriginRect;\n }\n } else {\n parentRect = rootRect;\n }\n } else {\n // Check if there's a frame that can be navigated to.\n var frame = getParentNode(parent);\n var frameRect = frame && getBoundingClientRect(frame);\n\n var frameIntersect = frame && this._computeTargetAndRootIntersection(frame, frameRect, rootRect);\n\n if (frameRect && frameIntersect) {\n parent = frame;\n parentRect = convertFromParentRect(frameRect, frameIntersect);\n } else {\n parent = null;\n intersectionRect = null;\n }\n }\n } else {\n // If the element has a non-visible overflow, and it's not the \n // or element, update the intersection rect.\n // Note: and cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n var doc = parent.ownerDocument;\n\n if (parent != doc.body && parent != doc.documentElement && parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n } // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n\n\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n }\n\n if (!intersectionRect) break;\n parent = parent && getParentNode(parent);\n }\n\n return intersectionRect;\n };\n /**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {ClientRect} The expanded root rect.\n * @private\n */\n\n\n IntersectionObserver.prototype._getRootRect = function () {\n var rootRect;\n\n if (this.root) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use / instead of window since scroll bars affect size.\n var html = document.documentElement;\n var body = document.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n\n return this._expandRectByRootMargin(rootRect);\n };\n /**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {DOMRect|ClientRect} rect The rect object to expand.\n * @return {ClientRect} The expanded rect.\n * @private\n */\n\n\n IntersectionObserver.prototype._expandRectByRootMargin = function (rect) {\n var margins = this._rootMarginValues.map(function (margin, i) {\n return margin.unit == 'px' ? margin.value : margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n return newRect;\n };\n /**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\n\n\n IntersectionObserver.prototype._hasCrossedThreshold = function (oldEntry, newEntry) {\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ? oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ? newEntry.intersectionRatio || 0 : -1; // Ignore unchanged ratios\n\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i]; // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n\n if (threshold == oldRatio || threshold == newRatio || threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n };\n /**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\n\n\n IntersectionObserver.prototype._rootIsInDom = function () {\n return !this.root || containsDeep(document, this.root);\n };\n /**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\n\n\n IntersectionObserver.prototype._rootContainsTarget = function (target) {\n return containsDeep(this.root || document, target) && (!this.root || this.root.ownerDocument == target.ownerDocument);\n };\n /**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\n\n\n IntersectionObserver.prototype._registerInstance = function () {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n };\n /**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\n\n\n IntersectionObserver.prototype._unregisterInstance = function () {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n };\n /**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\n\n\n function now() {\n return window.performance && performance.now && performance.now();\n }\n /**\n * Throttles a function and delays its execution, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\n\n\n function throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function () {\n fn();\n timer = null;\n }, timeout);\n }\n };\n }\n /**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\n\n\n function addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n } else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n }\n /**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\n\n\n function removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n } else if (typeof node.detatchEvent == 'function') {\n node.detatchEvent('on' + event, fn);\n }\n }\n /**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object|?ClientRect} The intersection rect or undefined if no\n * intersection is found.\n */\n\n\n function computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n return width >= 0 && height >= 0 && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n } || null;\n }\n /**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {DOMRect|ClientRect} The (possibly shimmed) rect of the element.\n */\n\n\n function getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {// Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect(); // Older IE\n\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n\n return rect;\n }\n /**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {ClientRect} The empty rect.\n */\n\n\n function getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n }\n /**\n * Ensure that the result has all of the necessary fields of the DOMRect.\n * Specifically this ensures that `x` and `y` fields are set.\n *\n * @param {?DOMRect|?ClientRect} rect\n * @return {?DOMRect}\n */\n\n\n function ensureDOMRect(rect) {\n // A `DOMRect` object has `x` and `y` fields.\n if (!rect || 'x' in rect) {\n return rect;\n } // A IE's `ClientRect` type does not have `x` and `y`. The same is the case\n // for internally calculated Rect objects. For the purposes of\n // `IntersectionObserver`, it's sufficient to simply mirror `left` and `top`\n // for these fields.\n\n\n return {\n top: rect.top,\n y: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n right: rect.right,\n width: rect.width,\n height: rect.height\n };\n }\n /**\n * Inverts the intersection and bounding rect from the parent (frame) BCR to\n * the local BCR space.\n * @param {DOMRect|ClientRect} parentBoundingRect The parent's bound client rect.\n * @param {DOMRect|ClientRect} parentIntersectionRect The parent's own intersection rect.\n * @return {ClientRect} The local root bounding rect for the parent's children.\n */\n\n\n function convertFromParentRect(parentBoundingRect, parentIntersectionRect) {\n var top = parentIntersectionRect.top - parentBoundingRect.top;\n var left = parentIntersectionRect.left - parentBoundingRect.left;\n return {\n top: top,\n left: left,\n height: parentIntersectionRect.height,\n width: parentIntersectionRect.width,\n bottom: top + parentIntersectionRect.height,\n right: left + parentIntersectionRect.width\n };\n }\n /**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\n\n\n function containsDeep(parent, child) {\n var node = child;\n\n while (node) {\n if (node == parent) return true;\n node = getParentNode(node);\n }\n\n return false;\n }\n /**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\n\n\n function getParentNode(node) {\n var parent = node.parentNode;\n\n if (node.nodeType ==\n /* DOCUMENT */\n 9 && node != document) {\n // If this node is a document node, look for the embedding frame.\n return getFrameElement(node);\n }\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n\n if (parent && parent.assignedSlot) {\n // If the parent is distributed in a , return the parent of a slot.\n return parent.assignedSlot.parentNode;\n }\n\n return parent;\n } // Exposes the constructors globally.\n\n\n window.IntersectionObserver = IntersectionObserver;\n window.IntersectionObserverEntry = IntersectionObserverEntry;\n})();"],"sourceRoot":""}