{"version":3,"sources":["webpack:///./node_modules/lodash/isSymbol.js","webpack:///./src/components/common/Divider.styled.js","webpack:///./src/components/common/Divider.js","webpack:///./node_modules/lodash/times.js","webpack:///./node_modules/unipointer/unipointer.js","webpack:///./node_modules/unidragger/unidragger.js","webpack:///./node_modules/flickity/js/animate.js","webpack:///./node_modules/flickity/js/page-dots.js","webpack:///./node_modules/ev-emitter/ev-emitter.js","webpack:///./node_modules/flickity/js/flickity.js","webpack:///./node_modules/lodash/_castFunction.js","webpack:///./node_modules/flickity/js/index.js","webpack:///./src/components/Solutions/Contents/Contable.js","webpack:///./src/components/Solutions/Contents/Fiscal.js","webpack:///./src/components/Solutions/Contents/Laboral.js","webpack:///./src/components/Solutions/Contents/Seguridad.js","webpack:///./src/components/Solutions/Contents/Facturacion.js","webpack:///./src/components/Solutions/Contents/Llave.js","webpack:///./src/components/Solutions/Contents/Administracion.js","webpack:///./src/components/Solutions/Contents/Legal.js","webpack:///./src/components/Solutions/Contents/Publicidad.js","webpack:///./src/components/Solutions/Contents/Auditoria.js","webpack:///./src/components/Solutions/Contents/Prevencion.js","webpack:///./src/components/Solutions/Contents/Desarrollo.js","webpack:///./src/components/Solutions/Contents/Constitucion.js","webpack:///./src/components/Solutions/utils.js","webpack:///./node_modules/get-size/get-size.js","webpack:///./node_modules/flickity/js/drag.js","webpack:///./node_modules/lodash/toInteger.js","webpack:///./src/components/Solutions/Solutions.styled.js","webpack:///./src/components/Solutions/index.js","webpack:///./src/components/common/Index.styled.js","webpack:///./node_modules/fizzy-ui-utils/utils.js","webpack:///./node_modules/lodash/toFinite.js","webpack:///./node_modules/flickity/js/slide.js","webpack:///./node_modules/flickity/js/lazyload.js","webpack:///./src/components/Carousel/index.js","webpack:///./src/images/security-badge.png","webpack:///./node_modules/flickity/js/player.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/flickity/js/add-remove-cell.js","webpack:///./node_modules/desandro-matches-selector/matches-selector.js","webpack:///./node_modules/flickity/js/cell.js","webpack:///./node_modules/flickity/js/prev-next-button.js","webpack:///./node_modules/lodash/identity.js"],"names":["baseGetTag","isObjectLike","module","exports","value","DividerContainer","styled","Col","props","theme","primary","border","css","small","BP_MEDIUM","DividerColContent","BP_SMALL","textLight","align","Divider","children","size","restProps","center","middle","style","minHeight","xs","lg","baseTimes","castFunction","toInteger","nativeMin","Math","min","n","iteratee","index","length","result","window","factory","EvEmitter","Unipointer","proto","prototype","Object","create","bindStartEvent","elem","this","_bindStartEvent","unbindStartEvent","isAdd","bindMethod","undefined","startEvent","PointerEvent","handleEvent","event","method","type","getTouch","touches","i","touch","identifier","pointerIdentifier","onmousedown","button","_pointerDown","ontouchstart","changedTouches","onpointerdown","pointer","isPointerDown","pointerId","pointerDown","_bindPostStartEvents","emitEvent","postStartEvents","mousedown","touchstart","pointerdown","events","forEach","eventName","addEventListener","_boundPointerEvents","_unbindPostStartEvents","removeEventListener","onmousemove","_pointerMove","onpointermove","ontouchmove","pointerMove","onmouseup","_pointerUp","onpointerup","ontouchend","_pointerDone","pointerUp","_pointerReset","pointerDone","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel","getPointerPoint","x","pageX","y","pageY","Unidragger","bindHandles","_bindHandles","unbindHandles","touchAction","_touchActionValue","handles","handle","okayPointerDown","pointerDownPointer","preventDefault","pointerDownBlur","cursorNodes","TEXTAREA","INPUT","SELECT","OPTION","clickTypes","radio","checkbox","submit","image","file","isCursorNode","target","nodeName","isClickType","isOkay","focused","document","activeElement","blur","body","moveVector","_dragPointerMove","_dragMove","isDragging","hasDragStarted","_dragStart","abs","_dragPointerUp","_dragEnd","_staticClick","isPreventingClicks","dragStart","dragMove","setTimeout","bind","dragEnd","onclick","isIgnoringMouseUp","staticClick","utils","isAnimating","restingFrames","animate","applyDragForce","applySelectedAttraction","previousX","integratePhysics","positionSlider","settle","_this","requestAnimationFrame","options","wrapAround","cells","modulo","slideableWidth","shiftWrapCells","setTranslateX","dispatchScrollEvent","is3d","cursorPosition","rightToLeft","translateX","getPositionValue","slider","transform","firstSlide","slides","positionX","progress","slidesWidth","dispatchEvent","selectedSlide","velocity","position","percentPosition","round","innerWidth","isFreeScrolling","selectedIndex","beforeGap","_shiftCells","beforeShiftCells","afterGap","afterShiftCells","gap","shift","cell","cellShift","wrapShift","outerWidth","getFrictionFactor","force","isDraggable","dragForce","dragX","applyForce","selectedAttraction","Flickity","PageDots","parent","_create","holder","createElement","className","dots","handleClick","onClick","on","childUIPointerDown","activate","setDots","element","appendChild","deactivate","removeChild","delta","addDots","removeDots","count","fragment","createDocumentFragment","newDots","max","dot","setAttribute","push","concat","splice","updateSelected","selectedDot","removeAttribute","onTap","uiChange","indexOf","select","destroy","allOff","extend","defaults","pageDots","createMethods","_createPageDots","activatePageDots","updateSelectedPageDots","updatePageDots","deactivatePageDots","listener","_events","listeners","once","onceEvents","_onceEvents","off","args","slice","onceListeners","apply","getSize","Cell","Slide","animatePrototype","jQuery","getComputedStyle","console","moveElements","elems","toElem","makeArray","GUID","instances","queryElement","getQueryElement","flickityGUID","instance","option","$element","constructor","error","accessibility","cellAlign","freeScrollFriction","friction","namespaceJQueryEvents","resize","setGallerySize","id","guid","originSide","viewport","_createSlider","watchCSS","opts","isActive","classList","add","_filterFindCellElements","reloadCells","tabIndex","selectInitialIndex","isInitActivated","filterFindElements","cellSelector","_makeCells","positionCells","_getWrapShiftCells","map","cellElem","getLastCell","getLastSlide","_sizeCells","_positionCells","maxCellHeight","cellX","startCell","len","setPosition","outerHeight","updateSlides","_containSlides","slide","nextMargin","canCellFit","_getCanCellFit","slideWidth","firstMargin","call","updateTarget","addCell","updateSelectedSlide","groupCells","number","parseInt","percentMatch","match","percent","_init","reposition","positionSliderAtSelected","setCellAlign","cellAlignShorthands","left","right","shorthand","height","adaptiveHeight","_unshiftCells","gapX","cellIndex","_getGapCells","increment","contain","isRightToLeft","beginMargin","endMargin","contentWidth","isContentSmaller","beginBound","endBound","emitArgs","$event","jQEvent","Event","trigger","isWrap","isInstant","_wrapSelect","prevIndex","startAnimation","wrapIndex","backWrapDelta","forewardWrapDelta","isDragSelect","previous","next","unselectSelectedSlide","selectedCells","selectedElements","getCellElements","selectedCell","selectedElement","unselect","initialIndex","queryCell","selectCell","getCellSlideIndex","getCell","getCells","getParentCell","getParent","getAdjacentCellElements","adjCount","cellElems","slideIndex","selector","querySelector","focus","onresize","debounceMethod","content","onkeydown","isNotFocused","handler","keyboardHandlers","keyCode","37","leftMethod","39","rightMethod","prevScrollY","pageYOffset","preventScroll","scrollTo","pageXOffset","remove","removeData","data","htmlInit","bridget","setJQuery","jq","identity","values","companyName","String","key","margin","marginLeft","to","textAlign","title","contentModal","Contable","Fiscal","Laboral","Seguridad","Facturacion","Llave","Constitucion","Administracion","Legal","Publicidad","Auditoria","Prevencion","Desarrollo","getStyleSize","num","parseFloat","isNaN","logError","message","measurements","measurementsLength","getStyle","isBoxSizeOuter","isSetup","div","width","padding","borderStyle","borderWidth","boxSizing","documentElement","setup","nodeType","display","innerHeight","getZeroSize","offsetWidth","offsetHeight","isBorderBox","measurement","paddingWidth","paddingLeft","paddingRight","paddingHeight","paddingTop","paddingBottom","marginWidth","marginRight","marginHeight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderHeight","borderTopWidth","borderBottomWidth","isBorderBoxSizeOuter","styleWidth","styleHeight","draggable","dragThreshold","isTouch","isTouchmoveScrollCanceled","_createDrag","onActivateDrag","_uiChangeDrag","onDeactivateDrag","updateDraggable","bindDrag","unbindDrag","_pointerDownPreventDefault","pointerDownFocus","pointerDownScroll","getScrollPosition","_pointerDownDefault","focusNodes","isTouchStart","isTouchPointer","pointerType","isFocusNode","isTouchScrolling","dragStartPosition","previousDragX","direction","originBound","dragMoveTime","Date","freeScroll","dragEndRestingSelect","restingX","getRestingPosition","dragEndBoostSelect","distance","getSlideDistance","positiveResting","_getClosestResting","negativeResting","minDistance","Infinity","condition","d","md","isWrapAround","wrap","floor","clickedCell","onscroll","scroll","scrollMoveX","scrollMoveY","toFinite","remainder","ContainerSolutions","Text","p","Content","hex2rgba","ButtonSolution","Solutions","solutionsData","edges","useStaticQuery","allFile","find","node","name","alt","fixed","childImageSharp","color","SectionContainer","textDark","CardContent","TitleSection","h1","black","backgroundFooter","ItemContainer","Link","primaryLight","TitleCard","h2","ImageStyled","Img","FillingBackground","img","top","GradientContainer","TwoColumns","image_security","green","matchesSelector","a","b","prop","arraySlice","Array","obj","isArray","removeFrom","ary","parentNode","ffElems","HTMLElement","childElems","querySelectorAll","_class","methodName","threshold","timeoutName","timeout","clearTimeout","arguments","docReady","callback","readyState","toDashed","str","replace","$1","$2","toLowerCase","WidgetClass","namespace","dashedNamespace","dataAttr","dataAttrElems","jsDashElems","dataOptionsAttr","attr","getAttribute","JSON","parse","toNumber","isOriginLeft","lastCell","lastMargin","LazyLoader","flickity","load","_createLazyload","lazyLoad","lazyImages","lazyCellImages","lazyloadAttr","srcAttr","srcsetAttr","imgs","getCellLazyImages","src","srcset","onload","complete","onerror","cellSizeChange","Carousel","slider2Ref","React","createRef","componentDidMount","autoPlay","require","flkty","current","imagesLoaded","render","disableButtons","ref","Component","defaultProps","Player","state","onVisibilityChange","visibilityChange","onVisibilityPlay","visibilityPlay","play","hidden","tick","time","clear","stop","pause","unpause","pauseAutoPlayOnHover","_createPlayer","player","activatePlayer","stopPlayer","deactivatePlayer","playPlayer","pausePlayer","unpausePlayer","onmouseenter","onmouseleave","isObject","isSymbol","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","other","valueOf","isBinary","test","insert","getCellsFragment","isAppend","insertCellElement","insertBefore","endCells","cellChange","append","prepend","minCellIndex","changedCellIndex","isPositioningSlider","prevSelectedElem","matchesMethod","ElemProto","Element","matches","prefixes","side","renderPosition","setDefaultTarget","marginProperty","svgURI","PrevNextButton","isEnabled","isPrevious","leftDirection","isLeft","disable","svg","createSVG","update","createElementNS","shape","path","pathMovements","arrowShape","x0","x1","y1","x2","y2","x3","enable","disabled","lastIndex","boundIndex","prevNextButtons","_createPrevNextButtons","prevButton","nextButton","activatePrevNextButtons","deactivatePrevNextButtons"],"mappings":"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","file":"4b878c35245611f069980b9a160f91e293e8c27b-6221affc070edb3739aa.js","sourcesContent":["var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","import styled, { css } from 'styled-components'\nimport { Col } from 'react-styled-flexboxgrid'\n\nimport { BP_MEDIUM, BP_SMALL } from '../../styles/theme'\n\nconst DividerContainer = styled(Col)`\n background-color: ${props => props.theme.primary};\n position: relative;\n ${props => {\n let border = props.border || 'none'\n switch (border) {\n case 'right':\n border = '0 100px 100px 0'\n break\n case 'left':\n border = '100px 0 0 100px'\n break\n case 'both':\n border = '100px'\n break\n default:\n border = '0'\n }\n return css`\n border-radius: ${border};\n `\n }};\n\n ${props =>\n props.small &&\n css`\n max-width: 70%;\n margin-left: ${props.border === 'left' ? 'auto' : 0};\n margin-right: ${props.border === 'right' ? 'auto' : 0};\n margin-top: 1rem;\n @media only screen and (max-width: ${BP_MEDIUM}) {\n max-width: 100%;\n }\n `}\n`\n\nconst DividerColContent = styled(Col)`\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n /* align-items: flex-start; */\n padding: 0.5rem 1rem;\n @media only screen and (max-width: ${BP_MEDIUM}) {\n padding: 0;\n }\n @media only screen and (max-width: ${BP_SMALL}) {\n align-items: center;\n flex-direction: column;\n padding: 1.5rem 0;\n }\n color: ${props => props.theme.textLight};\n\n ${props =>\n props.align &&\n css`\n align-items: center;\n `};\n ${props =>\n props.small &&\n css`\n justify-content: space-evenly;\n `}\n`\n\nexport { DividerContainer, DividerColContent }\n","import React from 'react'\nimport { Row, Col } from 'react-styled-flexboxgrid'\nimport { DividerContainer, DividerColContent } from './Divider.styled'\n\nconst Divider = ({\n children,\n size = '',\n border = '',\n align = false,\n small = false,\n ...restProps\n}) => (\n \n \n \n \n {children}\n \n \n \n \n)\n\nexport default Divider\n","var baseTimes = require('./_baseTimes'),\n castFunction = require('./_castFunction'),\n toInteger = require('./toInteger');\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Invokes the iteratee `n` times, returning an array of the results of\n * each invocation. The iteratee is invoked with one argument; (index).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.times(3, String);\n * // => ['0', '1', '2']\n *\n * _.times(4, _.constant(0));\n * // => [0, 0, 0, 0]\n */\nfunction times(n, iteratee) {\n n = toInteger(n);\n if (n < 1 || n > MAX_SAFE_INTEGER) {\n return [];\n }\n var index = MAX_ARRAY_LENGTH,\n length = nativeMin(n, MAX_ARRAY_LENGTH);\n\n iteratee = castFunction(iteratee);\n n -= MAX_ARRAY_LENGTH;\n\n var result = baseTimes(length, iteratee);\n while (++index < n) {\n iteratee(index);\n }\n return result;\n}\n\nmodule.exports = times;\n","/*!\n * Unipointer v2.3.0\n * base class for doing one thing with pointer event\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n\n /*global define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['ev-emitter/ev-emitter'], function (EvEmitter) {\n return factory(window, EvEmitter);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('ev-emitter'));\n } else {\n // browser global\n window.Unipointer = factory(window, window.EvEmitter);\n }\n})(window, function factory(window, EvEmitter) {\n 'use strict';\n\n function noop() {}\n\n function Unipointer() {} // inherit EvEmitter\n\n\n var proto = Unipointer.prototype = Object.create(EvEmitter.prototype);\n\n proto.bindStartEvent = function (elem) {\n this._bindStartEvent(elem, true);\n };\n\n proto.unbindStartEvent = function (elem) {\n this._bindStartEvent(elem, false);\n };\n /**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\n\n\n proto._bindStartEvent = function (elem, isAdd) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener'; // default to mouse events\n\n var startEvent = 'mousedown';\n\n if (window.PointerEvent) {\n // Pointer Events\n startEvent = 'pointerdown';\n } else if ('ontouchstart' in window) {\n // Touch Events. iOS Safari\n startEvent = 'touchstart';\n }\n\n elem[bindMethod](startEvent, this);\n }; // trigger handler methods for events\n\n\n proto.handleEvent = function (event) {\n var method = 'on' + event.type;\n\n if (this[method]) {\n this[method](event);\n }\n }; // returns the touch that we're keeping track of\n\n\n proto.getTouch = function (touches) {\n for (var i = 0; i < touches.length; i++) {\n var touch = touches[i];\n\n if (touch.identifier == this.pointerIdentifier) {\n return touch;\n }\n }\n }; // ----- start event ----- //\n\n\n proto.onmousedown = function (event) {\n // dismiss clicks from right or middle buttons\n var button = event.button;\n\n if (button && button !== 0 && button !== 1) {\n return;\n }\n\n this._pointerDown(event, event);\n };\n\n proto.ontouchstart = function (event) {\n this._pointerDown(event, event.changedTouches[0]);\n };\n\n proto.onpointerdown = function (event) {\n this._pointerDown(event, event);\n };\n /**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\n\n\n proto._pointerDown = function (event, pointer) {\n // dismiss right click and other pointers\n // button = 0 is okay, 1-4 not\n if (event.button || this.isPointerDown) {\n return;\n }\n\n this.isPointerDown = true; // save pointer identifier to match up touch events\n\n this.pointerIdentifier = pointer.pointerId !== undefined ? // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId : pointer.identifier;\n this.pointerDown(event, pointer);\n };\n\n proto.pointerDown = function (event, pointer) {\n this._bindPostStartEvents(event);\n\n this.emitEvent('pointerDown', [event, pointer]);\n }; // hash of events to be bound after start event\n\n\n var postStartEvents = {\n mousedown: ['mousemove', 'mouseup'],\n touchstart: ['touchmove', 'touchend', 'touchcancel'],\n pointerdown: ['pointermove', 'pointerup', 'pointercancel']\n };\n\n proto._bindPostStartEvents = function (event) {\n if (!event) {\n return;\n } // get proper events to match start event\n\n\n var events = postStartEvents[event.type]; // bind events to node\n\n events.forEach(function (eventName) {\n window.addEventListener(eventName, this);\n }, this); // save these arguments\n\n this._boundPointerEvents = events;\n };\n\n proto._unbindPostStartEvents = function () {\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n if (!this._boundPointerEvents) {\n return;\n }\n\n this._boundPointerEvents.forEach(function (eventName) {\n window.removeEventListener(eventName, this);\n }, this);\n\n delete this._boundPointerEvents;\n }; // ----- move event ----- //\n\n\n proto.onmousemove = function (event) {\n this._pointerMove(event, event);\n };\n\n proto.onpointermove = function (event) {\n if (event.pointerId == this.pointerIdentifier) {\n this._pointerMove(event, event);\n }\n };\n\n proto.ontouchmove = function (event) {\n var touch = this.getTouch(event.changedTouches);\n\n if (touch) {\n this._pointerMove(event, touch);\n }\n };\n /**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\n\n\n proto._pointerMove = function (event, pointer) {\n this.pointerMove(event, pointer);\n }; // public\n\n\n proto.pointerMove = function (event, pointer) {\n this.emitEvent('pointerMove', [event, pointer]);\n }; // ----- end event ----- //\n\n\n proto.onmouseup = function (event) {\n this._pointerUp(event, event);\n };\n\n proto.onpointerup = function (event) {\n if (event.pointerId == this.pointerIdentifier) {\n this._pointerUp(event, event);\n }\n };\n\n proto.ontouchend = function (event) {\n var touch = this.getTouch(event.changedTouches);\n\n if (touch) {\n this._pointerUp(event, touch);\n }\n };\n /**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\n\n\n proto._pointerUp = function (event, pointer) {\n this._pointerDone();\n\n this.pointerUp(event, pointer);\n }; // public\n\n\n proto.pointerUp = function (event, pointer) {\n this.emitEvent('pointerUp', [event, pointer]);\n }; // ----- pointer done ----- //\n // triggered on pointer up & pointer cancel\n\n\n proto._pointerDone = function () {\n this._pointerReset();\n\n this._unbindPostStartEvents();\n\n this.pointerDone();\n };\n\n proto._pointerReset = function () {\n // reset properties\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n };\n\n proto.pointerDone = noop; // ----- pointer cancel ----- //\n\n proto.onpointercancel = function (event) {\n if (event.pointerId == this.pointerIdentifier) {\n this._pointerCancel(event, event);\n }\n };\n\n proto.ontouchcancel = function (event) {\n var touch = this.getTouch(event.changedTouches);\n\n if (touch) {\n this._pointerCancel(event, touch);\n }\n };\n /**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\n\n\n proto._pointerCancel = function (event, pointer) {\n this._pointerDone();\n\n this.pointerCancel(event, pointer);\n }; // public\n\n\n proto.pointerCancel = function (event, pointer) {\n this.emitEvent('pointerCancel', [event, pointer]);\n }; // ----- ----- //\n // utility function for getting x/y coords from event\n\n\n Unipointer.getPointerPoint = function (pointer) {\n return {\n x: pointer.pageX,\n y: pointer.pageY\n };\n }; // ----- ----- //\n\n\n return Unipointer;\n});","/*!\n * Unidragger v2.3.1\n * Draggable base class\n * MIT license\n */\n\n/*jshint browser: true, unused: true, undef: true, strict: true */\n(function (window, factory) {\n // universal module definition\n\n /*jshint strict: false */\n\n /*globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['unipointer/unipointer'], function (Unipointer) {\n return factory(window, Unipointer);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('unipointer'));\n } else {\n // browser global\n window.Unidragger = factory(window, window.Unipointer);\n }\n})(window, function factory(window, Unipointer) {\n 'use strict'; // -------------------------- Unidragger -------------------------- //\n\n function Unidragger() {} // inherit Unipointer & EvEmitter\n\n\n var proto = Unidragger.prototype = Object.create(Unipointer.prototype); // ----- bind start ----- //\n\n proto.bindHandles = function () {\n this._bindHandles(true);\n };\n\n proto.unbindHandles = function () {\n this._bindHandles(false);\n };\n /**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\n\n\n proto._bindHandles = function (isAdd) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd; // bind each handle\n\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n var touchAction = isAdd ? this._touchActionValue : '';\n\n for (var i = 0; i < this.handles.length; i++) {\n var handle = this.handles[i];\n\n this._bindStartEvent(handle, isAdd);\n\n handle[bindMethod]('click', this); // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n\n if (window.PointerEvent) {\n handle.style.touchAction = touchAction;\n }\n }\n }; // prototype so it can be overwriteable by Flickity\n\n\n proto._touchActionValue = 'none'; // ----- start event ----- //\n\n /**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\n\n proto.pointerDown = function (event, pointer) {\n var isOkay = this.okayPointerDown(event);\n\n if (!isOkay) {\n return;\n } // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n\n\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY\n };\n event.preventDefault();\n this.pointerDownBlur(); // bind move and end events\n\n this._bindPostStartEvents(event);\n\n this.emitEvent('pointerDown', [event, pointer]);\n }; // nodes that have text fields\n\n\n var cursorNodes = {\n TEXTAREA: true,\n INPUT: true,\n SELECT: true,\n OPTION: true\n }; // input types that do not have text fields\n\n var clickTypes = {\n radio: true,\n checkbox: true,\n button: true,\n submit: true,\n image: true,\n file: true\n }; // dismiss inputs with text fields. flickity#403, flickity#404\n\n proto.okayPointerDown = function (event) {\n var isCursorNode = cursorNodes[event.target.nodeName];\n var isClickType = clickTypes[event.target.type];\n var isOkay = !isCursorNode || isClickType;\n\n if (!isOkay) {\n this._pointerReset();\n }\n\n return isOkay;\n }; // kludge to blur previously focused input\n\n\n proto.pointerDownBlur = function () {\n var focused = document.activeElement; // do not blur body for IE10, metafizzy/flickity#117\n\n var canBlur = focused && focused.blur && focused != document.body;\n\n if (canBlur) {\n focused.blur();\n }\n }; // ----- move event ----- //\n\n /**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\n\n\n proto.pointerMove = function (event, pointer) {\n var moveVector = this._dragPointerMove(event, pointer);\n\n this.emitEvent('pointerMove', [event, pointer, moveVector]);\n\n this._dragMove(event, pointer, moveVector);\n }; // base pointer move logic\n\n\n proto._dragPointerMove = function (event, pointer) {\n var moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY\n }; // start drag if pointer has moved far enough to start drag\n\n if (!this.isDragging && this.hasDragStarted(moveVector)) {\n this._dragStart(event, pointer);\n }\n\n return moveVector;\n }; // condition if pointer has moved far enough to start drag\n\n\n proto.hasDragStarted = function (moveVector) {\n return Math.abs(moveVector.x) > 3 || Math.abs(moveVector.y) > 3;\n }; // ----- end event ----- //\n\n /**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\n\n\n proto.pointerUp = function (event, pointer) {\n this.emitEvent('pointerUp', [event, pointer]);\n\n this._dragPointerUp(event, pointer);\n };\n\n proto._dragPointerUp = function (event, pointer) {\n if (this.isDragging) {\n this._dragEnd(event, pointer);\n } else {\n // pointer didn't move enough for drag to start\n this._staticClick(event, pointer);\n }\n }; // -------------------------- drag -------------------------- //\n // dragStart\n\n\n proto._dragStart = function (event, pointer) {\n this.isDragging = true; // prevent clicks\n\n this.isPreventingClicks = true;\n this.dragStart(event, pointer);\n };\n\n proto.dragStart = function (event, pointer) {\n this.emitEvent('dragStart', [event, pointer]);\n }; // dragMove\n\n\n proto._dragMove = function (event, pointer, moveVector) {\n // do not drag if not dragging yet\n if (!this.isDragging) {\n return;\n }\n\n this.dragMove(event, pointer, moveVector);\n };\n\n proto.dragMove = function (event, pointer, moveVector) {\n event.preventDefault();\n this.emitEvent('dragMove', [event, pointer, moveVector]);\n }; // dragEnd\n\n\n proto._dragEnd = function (event, pointer) {\n // set flags\n this.isDragging = false; // re-enable clicking async\n\n setTimeout(function () {\n delete this.isPreventingClicks;\n }.bind(this));\n this.dragEnd(event, pointer);\n };\n\n proto.dragEnd = function (event, pointer) {\n this.emitEvent('dragEnd', [event, pointer]);\n }; // ----- onclick ----- //\n // handle all clicks and prevent clicks when dragging\n\n\n proto.onclick = function (event) {\n if (this.isPreventingClicks) {\n event.preventDefault();\n }\n }; // ----- staticClick ----- //\n // triggered after pointer down & up with no/tiny movement\n\n\n proto._staticClick = function (event, pointer) {\n // ignore emulated mouse up clicks\n if (this.isIgnoringMouseUp && event.type == 'mouseup') {\n return;\n }\n\n this.staticClick(event, pointer); // set flag for emulated clicks 300ms after touchend\n\n if (event.type != 'mouseup') {\n this.isIgnoringMouseUp = true; // reset flag after 300ms\n\n setTimeout(function () {\n delete this.isIgnoringMouseUp;\n }.bind(this), 400);\n }\n };\n\n proto.staticClick = function (event, pointer) {\n this.emitEvent('staticClick', [event, pointer]);\n }; // ----- utils ----- //\n\n\n Unidragger.getPointerPoint = Unipointer.getPointerPoint; // ----- ----- //\n\n return Unidragger;\n});","// animate\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['fizzy-ui-utils/utils'], function (utils) {\n return factory(window, utils);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('fizzy-ui-utils'));\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.animatePrototype = factory(window, window.fizzyUIUtils);\n }\n})(window, function factory(window, utils) {\n 'use strict'; // -------------------------- animate -------------------------- //\n\n var proto = {};\n\n proto.startAnimation = function () {\n if (this.isAnimating) {\n return;\n }\n\n this.isAnimating = true;\n this.restingFrames = 0;\n this.animate();\n };\n\n proto.animate = function () {\n this.applyDragForce();\n this.applySelectedAttraction();\n var previousX = this.x;\n this.integratePhysics();\n this.positionSlider();\n this.settle(previousX); // animate next frame\n\n if (this.isAnimating) {\n var _this = this;\n\n requestAnimationFrame(function animateFrame() {\n _this.animate();\n });\n }\n };\n\n proto.positionSlider = function () {\n var x = this.x; // wrap position around\n\n if (this.options.wrapAround && this.cells.length > 1) {\n x = utils.modulo(x, this.slideableWidth);\n x = x - this.slideableWidth;\n this.shiftWrapCells(x);\n }\n\n this.setTranslateX(x, this.isAnimating);\n this.dispatchScrollEvent();\n };\n\n proto.setTranslateX = function (x, is3d) {\n x += this.cursorPosition; // reverse if right-to-left and using transform\n\n x = this.options.rightToLeft ? -x : x;\n var translateX = this.getPositionValue(x); // use 3D tranforms for hardware acceleration on iOS\n // but use 2D when settled, for better font-rendering\n\n this.slider.style.transform = is3d ? 'translate3d(' + translateX + ',0,0)' : 'translateX(' + translateX + ')';\n };\n\n proto.dispatchScrollEvent = function () {\n var firstSlide = this.slides[0];\n\n if (!firstSlide) {\n return;\n }\n\n var positionX = -this.x - firstSlide.target;\n var progress = positionX / this.slidesWidth;\n this.dispatchEvent('scroll', null, [progress, positionX]);\n };\n\n proto.positionSliderAtSelected = function () {\n if (!this.cells.length) {\n return;\n }\n\n this.x = -this.selectedSlide.target;\n this.velocity = 0; // stop wobble\n\n this.positionSlider();\n };\n\n proto.getPositionValue = function (position) {\n if (this.options.percentPosition) {\n // percent position, round to 2 digits, like 12.34%\n return Math.round(position / this.size.innerWidth * 10000) * 0.01 + '%';\n } else {\n // pixel positioning\n return Math.round(position) + 'px';\n }\n };\n\n proto.settle = function (previousX) {\n // keep track of frames where x hasn't moved\n if (!this.isPointerDown && Math.round(this.x * 100) == Math.round(previousX * 100)) {\n this.restingFrames++;\n } // stop animating if resting for 3 or more frames\n\n\n if (this.restingFrames > 2) {\n this.isAnimating = false;\n delete this.isFreeScrolling; // render position with translateX when settled\n\n this.positionSlider();\n this.dispatchEvent('settle', null, [this.selectedIndex]);\n }\n };\n\n proto.shiftWrapCells = function (x) {\n // shift before cells\n var beforeGap = this.cursorPosition + x;\n\n this._shiftCells(this.beforeShiftCells, beforeGap, -1); // shift after cells\n\n\n var afterGap = this.size.innerWidth - (x + this.slideableWidth + this.cursorPosition);\n\n this._shiftCells(this.afterShiftCells, afterGap, 1);\n };\n\n proto._shiftCells = function (cells, gap, shift) {\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n var cellShift = gap > 0 ? shift : 0;\n cell.wrapShift(cellShift);\n gap -= cell.size.outerWidth;\n }\n };\n\n proto._unshiftCells = function (cells) {\n if (!cells || !cells.length) {\n return;\n }\n\n for (var i = 0; i < cells.length; i++) {\n cells[i].wrapShift(0);\n }\n }; // -------------------------- physics -------------------------- //\n\n\n proto.integratePhysics = function () {\n this.x += this.velocity;\n this.velocity *= this.getFrictionFactor();\n };\n\n proto.applyForce = function (force) {\n this.velocity += force;\n };\n\n proto.getFrictionFactor = function () {\n return 1 - this.options[this.isFreeScrolling ? 'freeScrollFriction' : 'friction'];\n };\n\n proto.getRestingPosition = function () {\n // my thanks to Steven Wittens, who simplified this math greatly\n return this.x + this.velocity / (1 - this.getFrictionFactor());\n };\n\n proto.applyDragForce = function () {\n if (!this.isDraggable || !this.isPointerDown) {\n return;\n } // change the position to drag position by applying force\n\n\n var dragVelocity = this.dragX - this.x;\n var dragForce = dragVelocity - this.velocity;\n this.applyForce(dragForce);\n };\n\n proto.applySelectedAttraction = function () {\n // do not attract if pointer down or no slides\n var dragDown = this.isDraggable && this.isPointerDown;\n\n if (dragDown || this.isFreeScrolling || !this.slides.length) {\n return;\n }\n\n var distance = this.selectedSlide.target * -1 - this.x;\n var force = distance * this.options.selectedAttraction;\n this.applyForce(force);\n };\n\n return proto;\n});","// page dots\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['./flickity', 'unipointer/unipointer', 'fizzy-ui-utils/utils'], function (Flickity, Unipointer, utils) {\n return factory(window, Flickity, Unipointer, utils);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('./flickity'), require('unipointer'), require('fizzy-ui-utils'));\n } else {\n // browser global\n factory(window, window.Flickity, window.Unipointer, window.fizzyUIUtils);\n }\n})(window, function factory(window, Flickity, Unipointer, utils) {\n // -------------------------- PageDots -------------------------- //\n 'use strict';\n\n function PageDots(parent) {\n this.parent = parent;\n\n this._create();\n }\n\n PageDots.prototype = Object.create(Unipointer.prototype);\n\n PageDots.prototype._create = function () {\n // create holder element\n this.holder = document.createElement('ol');\n this.holder.className = 'flickity-page-dots'; // create dots, array of elements\n\n this.dots = []; // events\n\n this.handleClick = this.onClick.bind(this);\n this.on('pointerDown', this.parent.childUIPointerDown.bind(this.parent));\n };\n\n PageDots.prototype.activate = function () {\n this.setDots();\n this.holder.addEventListener('click', this.handleClick);\n this.bindStartEvent(this.holder); // add to DOM\n\n this.parent.element.appendChild(this.holder);\n };\n\n PageDots.prototype.deactivate = function () {\n this.holder.removeEventListener('click', this.handleClick);\n this.unbindStartEvent(this.holder); // remove from DOM\n\n this.parent.element.removeChild(this.holder);\n };\n\n PageDots.prototype.setDots = function () {\n // get difference between number of slides and number of dots\n var delta = this.parent.slides.length - this.dots.length;\n\n if (delta > 0) {\n this.addDots(delta);\n } else if (delta < 0) {\n this.removeDots(-delta);\n }\n };\n\n PageDots.prototype.addDots = function (count) {\n var fragment = document.createDocumentFragment();\n var newDots = [];\n var length = this.dots.length;\n var max = length + count;\n\n for (var i = length; i < max; i++) {\n var dot = document.createElement('li');\n dot.className = 'dot';\n dot.setAttribute('aria-label', 'Page dot ' + (i + 1));\n fragment.appendChild(dot);\n newDots.push(dot);\n }\n\n this.holder.appendChild(fragment);\n this.dots = this.dots.concat(newDots);\n };\n\n PageDots.prototype.removeDots = function (count) {\n // remove from this.dots collection\n var removeDots = this.dots.splice(this.dots.length - count, count); // remove from DOM\n\n removeDots.forEach(function (dot) {\n this.holder.removeChild(dot);\n }, this);\n };\n\n PageDots.prototype.updateSelected = function () {\n // remove selected class on previous\n if (this.selectedDot) {\n this.selectedDot.className = 'dot';\n this.selectedDot.removeAttribute('aria-current');\n } // don't proceed if no dots\n\n\n if (!this.dots.length) {\n return;\n }\n\n this.selectedDot = this.dots[this.parent.selectedIndex];\n this.selectedDot.className = 'dot is-selected';\n this.selectedDot.setAttribute('aria-current', 'step');\n };\n\n PageDots.prototype.onTap = // old method name, backwards-compatible\n PageDots.prototype.onClick = function (event) {\n var target = event.target; // only care about dot clicks\n\n if (target.nodeName != 'LI') {\n return;\n }\n\n this.parent.uiChange();\n var index = this.dots.indexOf(target);\n this.parent.select(index);\n };\n\n PageDots.prototype.destroy = function () {\n this.deactivate();\n this.allOff();\n };\n\n Flickity.PageDots = PageDots; // -------------------------- Flickity -------------------------- //\n\n utils.extend(Flickity.defaults, {\n pageDots: true\n });\n Flickity.createMethods.push('_createPageDots');\n var proto = Flickity.prototype;\n\n proto._createPageDots = function () {\n if (!this.options.pageDots) {\n return;\n }\n\n this.pageDots = new PageDots(this); // events\n\n this.on('activate', this.activatePageDots);\n this.on('select', this.updateSelectedPageDots);\n this.on('cellChange', this.updatePageDots);\n this.on('resize', this.updatePageDots);\n this.on('deactivate', this.deactivatePageDots);\n };\n\n proto.activatePageDots = function () {\n this.pageDots.activate();\n };\n\n proto.updateSelectedPageDots = function () {\n this.pageDots.updateSelected();\n };\n\n proto.updatePageDots = function () {\n this.pageDots.setDots();\n };\n\n proto.deactivatePageDots = function () {\n this.pageDots.deactivate();\n }; // ----- ----- //\n\n\n Flickity.PageDots = PageDots;\n return Flickity;\n});","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n(function (global, factory) {\n // universal module definition\n\n /* jshint strict: false */\n\n /* globals define, module, window */\n if (typeof define == 'function' && define.amd) {\n // AMD - RequireJS\n define(factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n})(typeof window != 'undefined' ? window : this, function () {\n \"use strict\";\n\n function EvEmitter() {}\n\n var proto = EvEmitter.prototype;\n\n proto.on = function (eventName, listener) {\n if (!eventName || !listener) {\n return;\n } // set events hash\n\n\n var events = this._events = this._events || {}; // set listeners array\n\n var listeners = events[eventName] = events[eventName] || []; // only add once\n\n if (listeners.indexOf(listener) == -1) {\n listeners.push(listener);\n }\n\n return this;\n };\n\n proto.once = function (eventName, listener) {\n if (!eventName || !listener) {\n return;\n } // add event\n\n\n this.on(eventName, listener); // set once flag\n // set onceEvents hash\n\n var onceEvents = this._onceEvents = this._onceEvents || {}; // set onceListeners object\n\n var onceListeners = onceEvents[eventName] = onceEvents[eventName] || {}; // set flag\n\n onceListeners[listener] = true;\n return this;\n };\n\n proto.off = function (eventName, listener) {\n var listeners = this._events && this._events[eventName];\n\n if (!listeners || !listeners.length) {\n return;\n }\n\n var index = listeners.indexOf(listener);\n\n if (index != -1) {\n listeners.splice(index, 1);\n }\n\n return this;\n };\n\n proto.emitEvent = function (eventName, args) {\n var listeners = this._events && this._events[eventName];\n\n if (!listeners || !listeners.length) {\n return;\n } // copy over to avoid interference if .off() in listener\n\n\n listeners = listeners.slice(0);\n args = args || []; // once stuff\n\n var onceListeners = this._onceEvents && this._onceEvents[eventName];\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n var isOnce = onceListeners && onceListeners[listener];\n\n if (isOnce) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off(eventName, listener); // unset once flag\n\n delete onceListeners[listener];\n } // trigger listener\n\n\n listener.apply(this, args);\n }\n\n return this;\n };\n\n proto.allOff = function () {\n delete this._events;\n delete this._onceEvents;\n };\n\n return EvEmitter;\n});","// Flickity main\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['ev-emitter/ev-emitter', 'get-size/get-size', 'fizzy-ui-utils/utils', './cell', './slide', './animate'], function (EvEmitter, getSize, utils, Cell, Slide, animatePrototype) {\n return factory(window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('ev-emitter'), require('get-size'), require('fizzy-ui-utils'), require('./cell'), require('./slide'), require('./animate'));\n } else {\n // browser global\n var _Flickity = window.Flickity;\n window.Flickity = factory(window, window.EvEmitter, window.getSize, window.fizzyUIUtils, _Flickity.Cell, _Flickity.Slide, _Flickity.animatePrototype);\n }\n})(window, function factory(window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype) {\n 'use strict'; // vars\n\n var jQuery = window.jQuery;\n var getComputedStyle = window.getComputedStyle;\n var console = window.console;\n\n function moveElements(elems, toElem) {\n elems = utils.makeArray(elems);\n\n while (elems.length) {\n toElem.appendChild(elems.shift());\n }\n } // -------------------------- Flickity -------------------------- //\n // globally unique identifiers\n\n\n var GUID = 0; // internal store of all Flickity intances\n\n var instances = {};\n\n function Flickity(element, options) {\n var queryElement = utils.getQueryElement(element);\n\n if (!queryElement) {\n if (console) {\n console.error('Bad element for Flickity: ' + (queryElement || element));\n }\n\n return;\n }\n\n this.element = queryElement; // do not initialize twice on same element\n\n if (this.element.flickityGUID) {\n var instance = instances[this.element.flickityGUID];\n instance.option(options);\n return instance;\n } // add jQuery\n\n\n if (jQuery) {\n this.$element = jQuery(this.element);\n } // options\n\n\n this.options = utils.extend({}, this.constructor.defaults);\n this.option(options); // kick things off\n\n this._create();\n }\n\n Flickity.defaults = {\n accessibility: true,\n // adaptiveHeight: false,\n cellAlign: 'center',\n // cellSelector: undefined,\n // contain: false,\n freeScrollFriction: 0.075,\n // friction when free-scrolling\n friction: 0.28,\n // friction when selecting\n namespaceJQueryEvents: true,\n // initialIndex: 0,\n percentPosition: true,\n resize: true,\n selectedAttraction: 0.025,\n setGallerySize: true // watchCSS: false,\n // wrapAround: false\n\n }; // hash of methods triggered on _create()\n\n Flickity.createMethods = [];\n var proto = Flickity.prototype; // inherit EventEmitter\n\n utils.extend(proto, EvEmitter.prototype);\n\n proto._create = function () {\n // add id for Flickity.data\n var id = this.guid = ++GUID;\n this.element.flickityGUID = id; // expando\n\n instances[id] = this; // associate via id\n // initial properties\n\n this.selectedIndex = 0; // how many frames slider has been in same position\n\n this.restingFrames = 0; // initial physics properties\n\n this.x = 0;\n this.velocity = 0;\n this.originSide = this.options.rightToLeft ? 'right' : 'left'; // create viewport & slider\n\n this.viewport = document.createElement('div');\n this.viewport.className = 'flickity-viewport';\n\n this._createSlider();\n\n if (this.options.resize || this.options.watchCSS) {\n window.addEventListener('resize', this);\n } // add listeners from on option\n\n\n for (var eventName in this.options.on) {\n var listener = this.options.on[eventName];\n this.on(eventName, listener);\n }\n\n Flickity.createMethods.forEach(function (method) {\n this[method]();\n }, this);\n\n if (this.options.watchCSS) {\n this.watchCSS();\n } else {\n this.activate();\n }\n };\n /**\n * set options\n * @param {Object} opts\n */\n\n\n proto.option = function (opts) {\n utils.extend(this.options, opts);\n };\n\n proto.activate = function () {\n if (this.isActive) {\n return;\n }\n\n this.isActive = true;\n this.element.classList.add('flickity-enabled');\n\n if (this.options.rightToLeft) {\n this.element.classList.add('flickity-rtl');\n }\n\n this.getSize(); // move initial cell elements so they can be loaded as cells\n\n var cellElems = this._filterFindCellElements(this.element.children);\n\n moveElements(cellElems, this.slider);\n this.viewport.appendChild(this.slider);\n this.element.appendChild(this.viewport); // get cells from children\n\n this.reloadCells();\n\n if (this.options.accessibility) {\n // allow element to focusable\n this.element.tabIndex = 0; // listen for key presses\n\n this.element.addEventListener('keydown', this);\n }\n\n this.emitEvent('activate');\n this.selectInitialIndex(); // flag for initial activation, for using initialIndex\n\n this.isInitActivated = true; // ready event. #493\n\n this.dispatchEvent('ready');\n }; // slider positions the cells\n\n\n proto._createSlider = function () {\n // slider element does all the positioning\n var slider = document.createElement('div');\n slider.className = 'flickity-slider';\n slider.style[this.originSide] = 0;\n this.slider = slider;\n };\n\n proto._filterFindCellElements = function (elems) {\n return utils.filterFindElements(elems, this.options.cellSelector);\n }; // goes through all children\n\n\n proto.reloadCells = function () {\n // collection of item elements\n this.cells = this._makeCells(this.slider.children);\n this.positionCells();\n\n this._getWrapShiftCells();\n\n this.setGallerySize();\n };\n /**\n * turn elements into Flickity.Cells\n * @param {Array or NodeList or HTMLElement} elems\n * @returns {Array} items - collection of new Flickity Cells\n */\n\n\n proto._makeCells = function (elems) {\n var cellElems = this._filterFindCellElements(elems); // create new Flickity for collection\n\n\n var cells = cellElems.map(function (cellElem) {\n return new Cell(cellElem, this);\n }, this);\n return cells;\n };\n\n proto.getLastCell = function () {\n return this.cells[this.cells.length - 1];\n };\n\n proto.getLastSlide = function () {\n return this.slides[this.slides.length - 1];\n }; // positions all cells\n\n\n proto.positionCells = function () {\n // size all cells\n this._sizeCells(this.cells); // position all cells\n\n\n this._positionCells(0);\n };\n /**\n * position certain cells\n * @param {Integer} index - which cell to start with\n */\n\n\n proto._positionCells = function (index) {\n index = index || 0; // also measure maxCellHeight\n // start 0 if positioning all cells\n\n this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\n var cellX = 0; // get cellX\n\n if (index > 0) {\n var startCell = this.cells[index - 1];\n cellX = startCell.x + startCell.size.outerWidth;\n }\n\n var len = this.cells.length;\n\n for (var i = index; i < len; i++) {\n var cell = this.cells[i];\n cell.setPosition(cellX);\n cellX += cell.size.outerWidth;\n this.maxCellHeight = Math.max(cell.size.outerHeight, this.maxCellHeight);\n } // keep track of cellX for wrap-around\n\n\n this.slideableWidth = cellX; // slides\n\n this.updateSlides(); // contain slides target\n\n this._containSlides(); // update slidesWidth\n\n\n this.slidesWidth = len ? this.getLastSlide().target - this.slides[0].target : 0;\n };\n /**\n * cell.getSize() on multiple cells\n * @param {Array} cells\n */\n\n\n proto._sizeCells = function (cells) {\n cells.forEach(function (cell) {\n cell.getSize();\n });\n }; // -------------------------- -------------------------- //\n\n\n proto.updateSlides = function () {\n this.slides = [];\n\n if (!this.cells.length) {\n return;\n }\n\n var slide = new Slide(this);\n this.slides.push(slide);\n var isOriginLeft = this.originSide == 'left';\n var nextMargin = isOriginLeft ? 'marginRight' : 'marginLeft';\n\n var canCellFit = this._getCanCellFit();\n\n this.cells.forEach(function (cell, i) {\n // just add cell if first cell in slide\n if (!slide.cells.length) {\n slide.addCell(cell);\n return;\n }\n\n var slideWidth = slide.outerWidth - slide.firstMargin + (cell.size.outerWidth - cell.size[nextMargin]);\n\n if (canCellFit.call(this, i, slideWidth)) {\n slide.addCell(cell);\n } else {\n // doesn't fit, new slide\n slide.updateTarget();\n slide = new Slide(this);\n this.slides.push(slide);\n slide.addCell(cell);\n }\n }, this); // last slide\n\n slide.updateTarget(); // update .selectedSlide\n\n this.updateSelectedSlide();\n };\n\n proto._getCanCellFit = function () {\n var groupCells = this.options.groupCells;\n\n if (!groupCells) {\n return function () {\n return false;\n };\n } else if (typeof groupCells == 'number') {\n // group by number. 3 -> [0,1,2], [3,4,5], ...\n var number = parseInt(groupCells, 10);\n return function (i) {\n return i % number !== 0;\n };\n } // default, group by width of slide\n // parse '75%\n\n\n var percentMatch = typeof groupCells == 'string' && groupCells.match(/^(\\d+)%$/);\n var percent = percentMatch ? parseInt(percentMatch[1], 10) / 100 : 1;\n return function (i, slideWidth) {\n return slideWidth <= (this.size.innerWidth + 1) * percent;\n };\n }; // alias _init for jQuery plugin .flickity()\n\n\n proto._init = proto.reposition = function () {\n this.positionCells();\n this.positionSliderAtSelected();\n };\n\n proto.getSize = function () {\n this.size = getSize(this.element);\n this.setCellAlign();\n this.cursorPosition = this.size.innerWidth * this.cellAlign;\n };\n\n var cellAlignShorthands = {\n // cell align, then based on origin side\n center: {\n left: 0.5,\n right: 0.5\n },\n left: {\n left: 0,\n right: 1\n },\n right: {\n right: 0,\n left: 1\n }\n };\n\n proto.setCellAlign = function () {\n var shorthand = cellAlignShorthands[this.options.cellAlign];\n this.cellAlign = shorthand ? shorthand[this.originSide] : this.options.cellAlign;\n };\n\n proto.setGallerySize = function () {\n if (this.options.setGallerySize) {\n var height = this.options.adaptiveHeight && this.selectedSlide ? this.selectedSlide.height : this.maxCellHeight;\n this.viewport.style.height = height + 'px';\n }\n };\n\n proto._getWrapShiftCells = function () {\n // only for wrap-around\n if (!this.options.wrapAround) {\n return;\n } // unshift previous cells\n\n\n this._unshiftCells(this.beforeShiftCells);\n\n this._unshiftCells(this.afterShiftCells); // get before cells\n // initial gap\n\n\n var gapX = this.cursorPosition;\n var cellIndex = this.cells.length - 1;\n this.beforeShiftCells = this._getGapCells(gapX, cellIndex, -1); // get after cells\n // ending gap between last cell and end of gallery viewport\n\n gapX = this.size.innerWidth - this.cursorPosition; // start cloning at first cell, working forwards\n\n this.afterShiftCells = this._getGapCells(gapX, 0, 1);\n };\n\n proto._getGapCells = function (gapX, cellIndex, increment) {\n // keep adding cells until the cover the initial gap\n var cells = [];\n\n while (gapX > 0) {\n var cell = this.cells[cellIndex];\n\n if (!cell) {\n break;\n }\n\n cells.push(cell);\n cellIndex += increment;\n gapX -= cell.size.outerWidth;\n }\n\n return cells;\n }; // ----- contain ----- //\n // contain cell targets so no excess sliding\n\n\n proto._containSlides = function () {\n if (!this.options.contain || this.options.wrapAround || !this.cells.length) {\n return;\n }\n\n var isRightToLeft = this.options.rightToLeft;\n var beginMargin = isRightToLeft ? 'marginRight' : 'marginLeft';\n var endMargin = isRightToLeft ? 'marginLeft' : 'marginRight';\n var contentWidth = this.slideableWidth - this.getLastCell().size[endMargin]; // content is less than gallery size\n\n var isContentSmaller = contentWidth < this.size.innerWidth; // bounds\n\n var beginBound = this.cursorPosition + this.cells[0].size[beginMargin];\n var endBound = contentWidth - this.size.innerWidth * (1 - this.cellAlign); // contain each cell target\n\n this.slides.forEach(function (slide) {\n if (isContentSmaller) {\n // all cells fit inside gallery\n slide.target = contentWidth * this.cellAlign;\n } else {\n // contain to bounds\n slide.target = Math.max(slide.target, beginBound);\n slide.target = Math.min(slide.target, endBound);\n }\n }, this);\n }; // ----- ----- //\n\n /**\n * emits events via eventEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\n\n\n proto.dispatchEvent = function (type, event, args) {\n var emitArgs = event ? [event].concat(args) : args;\n this.emitEvent(type, emitArgs);\n\n if (jQuery && this.$element) {\n // default trigger with type if no event\n type += this.options.namespaceJQueryEvents ? '.flickity' : '';\n var $event = type;\n\n if (event) {\n // create jQuery event\n var jQEvent = jQuery.Event(event);\n jQEvent.type = type;\n $event = jQEvent;\n }\n\n this.$element.trigger($event, args);\n }\n }; // -------------------------- select -------------------------- //\n\n /**\n * @param {Integer} index - index of the slide\n * @param {Boolean} isWrap - will wrap-around to last/first if at the end\n * @param {Boolean} isInstant - will immediately set position at selected cell\n */\n\n\n proto.select = function (index, isWrap, isInstant) {\n if (!this.isActive) {\n return;\n }\n\n index = parseInt(index, 10);\n\n this._wrapSelect(index);\n\n if (this.options.wrapAround || isWrap) {\n index = utils.modulo(index, this.slides.length);\n } // bail if invalid index\n\n\n if (!this.slides[index]) {\n return;\n }\n\n var prevIndex = this.selectedIndex;\n this.selectedIndex = index;\n this.updateSelectedSlide();\n\n if (isInstant) {\n this.positionSliderAtSelected();\n } else {\n this.startAnimation();\n }\n\n if (this.options.adaptiveHeight) {\n this.setGallerySize();\n } // events\n\n\n this.dispatchEvent('select', null, [index]); // change event if new index\n\n if (index != prevIndex) {\n this.dispatchEvent('change', null, [index]);\n } // old v1 event name, remove in v3\n\n\n this.dispatchEvent('cellSelect');\n }; // wraps position for wrapAround, to move to closest slide. #113\n\n\n proto._wrapSelect = function (index) {\n var len = this.slides.length;\n var isWrapping = this.options.wrapAround && len > 1;\n\n if (!isWrapping) {\n return index;\n }\n\n var wrapIndex = utils.modulo(index, len); // go to shortest\n\n var delta = Math.abs(wrapIndex - this.selectedIndex);\n var backWrapDelta = Math.abs(wrapIndex + len - this.selectedIndex);\n var forewardWrapDelta = Math.abs(wrapIndex - len - this.selectedIndex);\n\n if (!this.isDragSelect && backWrapDelta < delta) {\n index += len;\n } else if (!this.isDragSelect && forewardWrapDelta < delta) {\n index -= len;\n } // wrap position so slider is within normal area\n\n\n if (index < 0) {\n this.x -= this.slideableWidth;\n } else if (index >= len) {\n this.x += this.slideableWidth;\n }\n };\n\n proto.previous = function (isWrap, isInstant) {\n this.select(this.selectedIndex - 1, isWrap, isInstant);\n };\n\n proto.next = function (isWrap, isInstant) {\n this.select(this.selectedIndex + 1, isWrap, isInstant);\n };\n\n proto.updateSelectedSlide = function () {\n var slide = this.slides[this.selectedIndex]; // selectedIndex could be outside of slides, if triggered before resize()\n\n if (!slide) {\n return;\n } // unselect previous selected slide\n\n\n this.unselectSelectedSlide(); // update new selected slide\n\n this.selectedSlide = slide;\n slide.select();\n this.selectedCells = slide.cells;\n this.selectedElements = slide.getCellElements(); // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\n // Remove in v3?\n\n this.selectedCell = slide.cells[0];\n this.selectedElement = this.selectedElements[0];\n };\n\n proto.unselectSelectedSlide = function () {\n if (this.selectedSlide) {\n this.selectedSlide.unselect();\n }\n };\n\n proto.selectInitialIndex = function () {\n var initialIndex = this.options.initialIndex; // already activated, select previous selectedIndex\n\n if (this.isInitActivated) {\n this.select(this.selectedIndex, false, true);\n return;\n } // select with selector string\n\n\n if (initialIndex && typeof initialIndex == 'string') {\n var cell = this.queryCell(initialIndex);\n\n if (cell) {\n this.selectCell(initialIndex, false, true);\n return;\n }\n }\n\n var index = 0; // select with number\n\n if (initialIndex && this.slides[initialIndex]) {\n index = initialIndex;\n } // select instantly\n\n\n this.select(index, false, true);\n };\n /**\n * select slide from number or cell element\n * @param {Element or Number} elem\n */\n\n\n proto.selectCell = function (value, isWrap, isInstant) {\n // get cell\n var cell = this.queryCell(value);\n\n if (!cell) {\n return;\n }\n\n var index = this.getCellSlideIndex(cell);\n this.select(index, isWrap, isInstant);\n };\n\n proto.getCellSlideIndex = function (cell) {\n // get index of slides that has cell\n for (var i = 0; i < this.slides.length; i++) {\n var slide = this.slides[i];\n var index = slide.cells.indexOf(cell);\n\n if (index != -1) {\n return i;\n }\n }\n }; // -------------------------- get cells -------------------------- //\n\n /**\n * get Flickity.Cell, given an Element\n * @param {Element} elem\n * @returns {Flickity.Cell} item\n */\n\n\n proto.getCell = function (elem) {\n // loop through cells to get the one that matches\n for (var i = 0; i < this.cells.length; i++) {\n var cell = this.cells[i];\n\n if (cell.element == elem) {\n return cell;\n }\n }\n };\n /**\n * get collection of Flickity.Cells, given Elements\n * @param {Element, Array, NodeList} elems\n * @returns {Array} cells - Flickity.Cells\n */\n\n\n proto.getCells = function (elems) {\n elems = utils.makeArray(elems);\n var cells = [];\n elems.forEach(function (elem) {\n var cell = this.getCell(elem);\n\n if (cell) {\n cells.push(cell);\n }\n }, this);\n return cells;\n };\n /**\n * get cell elements\n * @returns {Array} cellElems\n */\n\n\n proto.getCellElements = function () {\n return this.cells.map(function (cell) {\n return cell.element;\n });\n };\n /**\n * get parent cell from an element\n * @param {Element} elem\n * @returns {Flickit.Cell} cell\n */\n\n\n proto.getParentCell = function (elem) {\n // first check if elem is cell\n var cell = this.getCell(elem);\n\n if (cell) {\n return cell;\n } // try to get parent cell elem\n\n\n elem = utils.getParent(elem, '.flickity-slider > *');\n return this.getCell(elem);\n };\n /**\n * get cells adjacent to a slide\n * @param {Integer} adjCount - number of adjacent slides\n * @param {Integer} index - index of slide to start\n * @returns {Array} cells - array of Flickity.Cells\n */\n\n\n proto.getAdjacentCellElements = function (adjCount, index) {\n if (!adjCount) {\n return this.selectedSlide.getCellElements();\n }\n\n index = index === undefined ? this.selectedIndex : index;\n var len = this.slides.length;\n\n if (1 + adjCount * 2 >= len) {\n return this.getCellElements();\n }\n\n var cellElems = [];\n\n for (var i = index - adjCount; i <= index + adjCount; i++) {\n var slideIndex = this.options.wrapAround ? utils.modulo(i, len) : i;\n var slide = this.slides[slideIndex];\n\n if (slide) {\n cellElems = cellElems.concat(slide.getCellElements());\n }\n }\n\n return cellElems;\n };\n /**\n * select slide from number or cell element\n * @param {Element, Selector String, or Number} selector\n */\n\n\n proto.queryCell = function (selector) {\n if (typeof selector == 'number') {\n // use number as index\n return this.cells[selector];\n }\n\n if (typeof selector == 'string') {\n // do not select invalid selectors from hash: #123, #/. #791\n if (selector.match(/^[#\\.]?[\\d\\/]/)) {\n return;\n } // use string as selector, get element\n\n\n selector = this.element.querySelector(selector);\n } // get cell from element\n\n\n return this.getCell(selector);\n }; // -------------------------- events -------------------------- //\n\n\n proto.uiChange = function () {\n this.emitEvent('uiChange');\n }; // keep focus on element when child UI elements are clicked\n\n\n proto.childUIPointerDown = function (event) {\n // HACK iOS does not allow touch events to bubble up?!\n if (event.type != 'touchstart') {\n event.preventDefault();\n }\n\n this.focus();\n }; // ----- resize ----- //\n\n\n proto.onresize = function () {\n this.watchCSS();\n this.resize();\n };\n\n utils.debounceMethod(Flickity, 'onresize', 150);\n\n proto.resize = function () {\n if (!this.isActive) {\n return;\n }\n\n this.getSize(); // wrap values\n\n if (this.options.wrapAround) {\n this.x = utils.modulo(this.x, this.slideableWidth);\n }\n\n this.positionCells();\n\n this._getWrapShiftCells();\n\n this.setGallerySize();\n this.emitEvent('resize'); // update selected index for group slides, instant\n // TODO: position can be lost between groups of various numbers\n\n var selectedElement = this.selectedElements && this.selectedElements[0];\n this.selectCell(selectedElement, false, true);\n }; // watches the :after property, activates/deactivates\n\n\n proto.watchCSS = function () {\n var watchOption = this.options.watchCSS;\n\n if (!watchOption) {\n return;\n }\n\n var afterContent = getComputedStyle(this.element, ':after').content; // activate if :after { content: 'flickity' }\n\n if (afterContent.indexOf('flickity') != -1) {\n this.activate();\n } else {\n this.deactivate();\n }\n }; // ----- keydown ----- //\n // go previous/next if left/right keys pressed\n\n\n proto.onkeydown = function (event) {\n // only work if element is in focus\n var isNotFocused = document.activeElement && document.activeElement != this.element;\n\n if (!this.options.accessibility || isNotFocused) {\n return;\n }\n\n var handler = Flickity.keyboardHandlers[event.keyCode];\n\n if (handler) {\n handler.call(this);\n }\n };\n\n Flickity.keyboardHandlers = {\n // left arrow\n 37: function _() {\n var leftMethod = this.options.rightToLeft ? 'next' : 'previous';\n this.uiChange();\n this[leftMethod]();\n },\n // right arrow\n 39: function _() {\n var rightMethod = this.options.rightToLeft ? 'previous' : 'next';\n this.uiChange();\n this[rightMethod]();\n }\n }; // ----- focus ----- //\n\n proto.focus = function () {\n // TODO remove scrollTo once focus options gets more support\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#Browser_compatibility\n var prevScrollY = window.pageYOffset;\n this.element.focus({\n preventScroll: true\n }); // hack to fix scroll jump after focus, #76\n\n if (window.pageYOffset != prevScrollY) {\n window.scrollTo(window.pageXOffset, prevScrollY);\n }\n }; // -------------------------- destroy -------------------------- //\n // deactivate all Flickity functionality, but keep stuff available\n\n\n proto.deactivate = function () {\n if (!this.isActive) {\n return;\n }\n\n this.element.classList.remove('flickity-enabled');\n this.element.classList.remove('flickity-rtl');\n this.unselectSelectedSlide(); // destroy cells\n\n this.cells.forEach(function (cell) {\n cell.destroy();\n });\n this.element.removeChild(this.viewport); // move child elements back into element\n\n moveElements(this.slider.children, this.element);\n\n if (this.options.accessibility) {\n this.element.removeAttribute('tabIndex');\n this.element.removeEventListener('keydown', this);\n } // set flags\n\n\n this.isActive = false;\n this.emitEvent('deactivate');\n };\n\n proto.destroy = function () {\n this.deactivate();\n window.removeEventListener('resize', this);\n this.allOff();\n this.emitEvent('destroy');\n\n if (jQuery && this.$element) {\n jQuery.removeData(this.element, 'flickity');\n }\n\n delete this.element.flickityGUID;\n delete instances[this.guid];\n }; // -------------------------- prototype -------------------------- //\n\n\n utils.extend(proto, animatePrototype); // -------------------------- extras -------------------------- //\n\n /**\n * get Flickity instance from element\n * @param {Element} elem\n * @returns {Flickity}\n */\n\n Flickity.data = function (elem) {\n elem = utils.getQueryElement(elem);\n var id = elem && elem.flickityGUID;\n return id && instances[id];\n };\n\n utils.htmlInit(Flickity, 'flickity');\n\n if (jQuery && jQuery.bridget) {\n jQuery.bridget('flickity', Flickity);\n } // set internal jQuery, for Webpack + jQuery v3, #478\n\n\n Flickity.setJQuery = function (jq) {\n jQuery = jq;\n };\n\n Flickity.Cell = Cell;\n Flickity.Slide = Slide;\n return Flickity;\n});","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","/*!\n * Flickity v2.2.1\n * Touch, responsive, flickable carousels\n *\n * Licensed GPLv3 for open source use\n * or Flickity Commercial License for commercial use\n *\n * https://flickity.metafizzy.co\n * Copyright 2015-2019 Metafizzy\n */\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['./flickity', './drag', './prev-next-button', './page-dots', './player', './add-remove-cell', './lazyload'], factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(require('./flickity'), require('./drag'), require('./prev-next-button'), require('./page-dots'), require('./player'), require('./add-remove-cell'), require('./lazyload'));\n }\n})(window, function factory(Flickity) {\n /*jshint strict: false*/\n return Flickity;\n});","import React from 'react'\nimport _ from 'lodash'\nimport { FormattedMessage, FormattedHTMLMessage } from 'react-intl'\n\nexport default () => (\n
\n

\n AS Consultores }}\n />\n

\n

\n \n

\n

\n \n

\n \n

\n \n

\n
\n)\n","import React from 'react'\nimport _ from 'lodash'\nimport { FormattedMessage } from 'react-intl'\n\nexport default () => (\n
\n

\n \n

\n

\n \n

\n

\n \n

\n \n

\n \n

\n

\n \n

\n
\n)\n","import React from 'react'\nimport _ from 'lodash'\nimport { FormattedMessage } from 'react-intl'\n\nexport default () => (\n
\n

\n \n

\n

\n \n

\n

\n \n

\n \n

\n \n

\n
\n)\n","import React from 'react'\nimport _ from 'lodash'\nimport { FormattedMessage } from 'react-intl'\n\nexport default () => (\n
\n

\n \n

\n

\n \n

\n \n
\n
\n {_.map(_.times(6, String), (value, key) => (\n

\n \n

\n ))}\n
\n
\n

\n \n

\n
\n)\n","import React from 'react'\nimport _ from 'lodash'\nimport { FormattedMessage, FormattedHTMLMessage } from 'react-intl'\n\nexport default () => (\n
\n

\n \n

\n

\n \n

\n

\n \n

\n

\n \n

\n \n

\n \n

\n
\n)\n","import React from 'react'\nimport { Link } from 'gatsby'\nimport _ from 'lodash'\nimport { FormattedMessage, FormattedHTMLMessage } from 'react-intl'\n\nexport default () => (\n
\n

\n \n

\n

\n \n

\n \n

\n \n \n \n \n \n \n

\n

\n \n

\n

\n \n

\n
\n)\n","import React from 'react'\nimport _ from 'lodash'\nimport { FormattedMessage, FormattedHTMLMessage } from 'react-intl'\n\nexport default () => (\n
\n

\n \n

\n

\n \n

\n \n
\n)\n","import React from 'react'\nimport _ from 'lodash'\nimport { FormattedMessage, FormattedHTMLMessage } from 'react-intl'\n\nexport default () => (\n
\n

\n \n

\n \n

\n \n

\n
\n)\n","import React from 'react'\nimport _ from 'lodash'\nimport { FormattedMessage, FormattedHTMLMessage } from 'react-intl'\n\nexport default () => (\n
\n {_.map(_.times(4, String), (value, key) => (\n

\n \n

\n ))}\n

\n \n

\n

\n \n

\n

\n \n

\n \n \n \n \n

\n \n

\n

\n \n

\n \n
\n)\n","import React from 'react'\nimport _ from 'lodash'\nimport { FormattedMessage, FormattedHTMLMessage } from 'react-intl'\n\nexport default () => (\n
\n

\n \n

\n

\n \n

\n \n

\n \n

\n
\n)\n","import React from 'react'\nimport _ from 'lodash'\nimport { FormattedMessage, FormattedHTMLMessage } from 'react-intl'\n\nexport default () => (\n
\n

\n \n

\n {_.map(_.times(3, String), (value, key) => (\n

\n \n

\n ))}\n \n
\n)\n","import React from 'react'\nimport _ from 'lodash'\nimport { FormattedMessage, FormattedHTMLMessage } from 'react-intl'\n\nexport default () => (\n
\n

\n \n

\n \n {_.map(_.times(14, String), (value, key) => (\n

\n \n

\n ))}\n \n
\n)\n","import React from 'react'\nimport _ from 'lodash'\nimport { FormattedMessage, FormattedHTMLMessage } from 'react-intl'\n\nexport default () => (\n
\n

\n \n

\n

\n \n

\n \n

\n \n

\n \n

\n \n

\n

\n \n

\n
\n)\n","import React from 'react'\n\n// import {\n// administracion,\n// auditoria,\n// contable,\n// desarrollo,\n// facturacion,\n// fiscal,\n// laboral,\n// legal,\n// llave,\n// prevencion,\n// publicidad,\n// seguridad,\n// } from '../../images/solutions'\n// import as_constitucion from '../../images/Garantía-servicios-contables.jpg';\nimport {\n Contable,\n Fiscal,\n Laboral,\n Seguridad,\n Facturacion,\n Llave,\n Constitucion,\n Administracion,\n Legal,\n Publicidad,\n Auditoria,\n Prevencion,\n Desarrollo,\n} from './Contents'\n\nexport default [\n {\n title: 'contable',\n // image: contable,\n contentModal: ,\n },\n {\n title: 'fiscal',\n // image: fiscal,\n contentModal: ,\n },\n {\n title: 'laboral',\n // image: laboral,\n contentModal: ,\n },\n {\n title: 'seguridad',\n // image: seguridad,\n contentModal: ,\n },\n {\n title: 'facturacion',\n // image: facturacion,\n contentModal: ,\n },\n {\n title: 'llave',\n // image: llave,\n contentModal: ,\n },\n {\n title: 'as_constitucion',\n // image: as_constitucion,\n contentModal: ,\n },\n {\n title: 'administracion',\n // image: administracion,\n contentModal: ,\n },\n {\n title: 'legal',\n // image: legal,\n contentModal: ,\n },\n\n {\n title: 'publicidad',\n // image: publicidad,\n contentModal: ,\n },\n {\n title: 'financial-sector',\n },\n {\n title: 'auditoria',\n // image: auditoria,\n contentModal: ,\n },\n {\n title: 'prevencion',\n // image: prevencion,\n contentModal: ,\n },\n {\n title: 'desarrollo',\n // image: desarrollo,\n contentModal: ,\n },\n {\n title: 'as-health',\n },\n]\n","/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n\n/* globals console: false */\n(function (window, factory) {\n /* jshint strict: false */\n\n /* globals define, module */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n})(window, function factory() {\n 'use strict'; // -------------------------- helpers -------------------------- //\n // get a number from a string, not a percentage\n\n function getStyleSize(value) {\n var num = parseFloat(value); // not a percent like '100%', and a number\n\n var isValid = value.indexOf('%') == -1 && !isNaN(num);\n return isValid && num;\n }\n\n function noop() {}\n\n var logError = typeof console == 'undefined' ? noop : function (message) {\n console.error(message);\n }; // -------------------------- measurements -------------------------- //\n\n var measurements = ['paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth', 'borderBottomWidth'];\n var measurementsLength = measurements.length;\n\n function getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n\n for (var i = 0; i < measurementsLength; i++) {\n var measurement = measurements[i];\n size[measurement] = 0;\n }\n\n return size;\n } // -------------------------- getStyle -------------------------- //\n\n /**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\n\n\n function getStyle(elem) {\n var style = getComputedStyle(elem);\n\n if (!style) {\n logError('Style returned ' + style + '. Are you running this code in a hidden iframe on Firefox? ' + 'See https://bit.ly/getsizebug1');\n }\n\n return style;\n } // -------------------------- setup -------------------------- //\n\n\n var isSetup = false;\n var isBoxSizeOuter;\n /**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\n\n function setup() {\n // setup once\n if (isSetup) {\n return;\n }\n\n isSetup = true; // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n var body = document.body || document.documentElement;\n body.appendChild(div);\n var style = getStyle(div); // round value for browser zoom. desandro/masonry#928\n\n isBoxSizeOuter = Math.round(getStyleSize(style.width)) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n body.removeChild(div);\n } // -------------------------- getSize -------------------------- //\n\n\n function getSize(elem) {\n setup(); // use querySeletor if elem is string\n\n if (typeof elem == 'string') {\n elem = document.querySelector(elem);\n } // do not proceed on non-objects\n\n\n if (!elem || typeof elem != 'object' || !elem.nodeType) {\n return;\n }\n\n var style = getStyle(elem); // if hidden, everything is 0\n\n if (style.display == 'none') {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box'; // get all measurements\n\n for (var i = 0; i < measurementsLength; i++) {\n var measurement = measurements[i];\n var value = style[measurement];\n var num = parseFloat(value); // any 'auto', 'medium' value will be 0\n\n size[measurement] = !isNaN(num) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter; // overwrite width and height if we can get it from style\n\n var styleWidth = getStyleSize(style.width);\n\n if (styleWidth !== false) {\n size.width = styleWidth + ( // add padding and border unless it's already including it\n isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth);\n }\n\n var styleHeight = getStyleSize(style.height);\n\n if (styleHeight !== false) {\n size.height = styleHeight + ( // add padding and border unless it's already including it\n isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight);\n }\n\n size.innerWidth = size.width - (paddingWidth + borderWidth);\n size.innerHeight = size.height - (paddingHeight + borderHeight);\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n return size;\n }\n\n return getSize;\n});","// drag\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['./flickity', 'unidragger/unidragger', 'fizzy-ui-utils/utils'], function (Flickity, Unidragger, utils) {\n return factory(window, Flickity, Unidragger, utils);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('./flickity'), require('unidragger'), require('fizzy-ui-utils'));\n } else {\n // browser global\n window.Flickity = factory(window, window.Flickity, window.Unidragger, window.fizzyUIUtils);\n }\n})(window, function factory(window, Flickity, Unidragger, utils) {\n 'use strict'; // ----- defaults ----- //\n\n utils.extend(Flickity.defaults, {\n draggable: '>1',\n dragThreshold: 3\n }); // ----- create ----- //\n\n Flickity.createMethods.push('_createDrag'); // -------------------------- drag prototype -------------------------- //\n\n var proto = Flickity.prototype;\n utils.extend(proto, Unidragger.prototype);\n proto._touchActionValue = 'pan-y'; // -------------------------- -------------------------- //\n\n var isTouch = ('createTouch' in document);\n var isTouchmoveScrollCanceled = false;\n\n proto._createDrag = function () {\n this.on('activate', this.onActivateDrag);\n this.on('uiChange', this._uiChangeDrag);\n this.on('deactivate', this.onDeactivateDrag);\n this.on('cellChange', this.updateDraggable); // TODO updateDraggable on resize? if groupCells & slides change\n // HACK - add seemingly innocuous handler to fix iOS 10 scroll behavior\n // #457, RubaXa/Sortable#973\n\n if (isTouch && !isTouchmoveScrollCanceled) {\n window.addEventListener('touchmove', function () {});\n isTouchmoveScrollCanceled = true;\n }\n };\n\n proto.onActivateDrag = function () {\n this.handles = [this.viewport];\n this.bindHandles();\n this.updateDraggable();\n };\n\n proto.onDeactivateDrag = function () {\n this.unbindHandles();\n this.element.classList.remove('is-draggable');\n };\n\n proto.updateDraggable = function () {\n // disable dragging if less than 2 slides. #278\n if (this.options.draggable == '>1') {\n this.isDraggable = this.slides.length > 1;\n } else {\n this.isDraggable = this.options.draggable;\n }\n\n if (this.isDraggable) {\n this.element.classList.add('is-draggable');\n } else {\n this.element.classList.remove('is-draggable');\n }\n }; // backwards compatibility\n\n\n proto.bindDrag = function () {\n this.options.draggable = true;\n this.updateDraggable();\n };\n\n proto.unbindDrag = function () {\n this.options.draggable = false;\n this.updateDraggable();\n };\n\n proto._uiChangeDrag = function () {\n delete this.isFreeScrolling;\n }; // -------------------------- pointer events -------------------------- //\n\n\n proto.pointerDown = function (event, pointer) {\n if (!this.isDraggable) {\n this._pointerDownDefault(event, pointer);\n\n return;\n }\n\n var isOkay = this.okayPointerDown(event);\n\n if (!isOkay) {\n return;\n }\n\n this._pointerDownPreventDefault(event);\n\n this.pointerDownFocus(event); // blur\n\n if (document.activeElement != this.element) {\n // do not blur if already focused\n this.pointerDownBlur();\n } // stop if it was moving\n\n\n this.dragX = this.x;\n this.viewport.classList.add('is-pointer-down'); // track scrolling\n\n this.pointerDownScroll = getScrollPosition();\n window.addEventListener('scroll', this);\n\n this._pointerDownDefault(event, pointer);\n }; // default pointerDown logic, used for staticClick\n\n\n proto._pointerDownDefault = function (event, pointer) {\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. #779\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY\n }; // bind move and end events\n\n this._bindPostStartEvents(event);\n\n this.dispatchEvent('pointerDown', event, [pointer]);\n };\n\n var focusNodes = {\n INPUT: true,\n TEXTAREA: true,\n SELECT: true\n };\n\n proto.pointerDownFocus = function (event) {\n var isFocusNode = focusNodes[event.target.nodeName];\n\n if (!isFocusNode) {\n this.focus();\n }\n };\n\n proto._pointerDownPreventDefault = function (event) {\n var isTouchStart = event.type == 'touchstart';\n var isTouchPointer = event.pointerType == 'touch';\n var isFocusNode = focusNodes[event.target.nodeName];\n\n if (!isTouchStart && !isTouchPointer && !isFocusNode) {\n event.preventDefault();\n }\n }; // ----- move ----- //\n\n\n proto.hasDragStarted = function (moveVector) {\n return Math.abs(moveVector.x) > this.options.dragThreshold;\n }; // ----- up ----- //\n\n\n proto.pointerUp = function (event, pointer) {\n delete this.isTouchScrolling;\n this.viewport.classList.remove('is-pointer-down');\n this.dispatchEvent('pointerUp', event, [pointer]);\n\n this._dragPointerUp(event, pointer);\n };\n\n proto.pointerDone = function () {\n window.removeEventListener('scroll', this);\n delete this.pointerDownScroll;\n }; // -------------------------- dragging -------------------------- //\n\n\n proto.dragStart = function (event, pointer) {\n if (!this.isDraggable) {\n return;\n }\n\n this.dragStartPosition = this.x;\n this.startAnimation();\n window.removeEventListener('scroll', this);\n this.dispatchEvent('dragStart', event, [pointer]);\n };\n\n proto.pointerMove = function (event, pointer) {\n var moveVector = this._dragPointerMove(event, pointer);\n\n this.dispatchEvent('pointerMove', event, [pointer, moveVector]);\n\n this._dragMove(event, pointer, moveVector);\n };\n\n proto.dragMove = function (event, pointer, moveVector) {\n if (!this.isDraggable) {\n return;\n }\n\n event.preventDefault();\n this.previousDragX = this.dragX; // reverse if right-to-left\n\n var direction = this.options.rightToLeft ? -1 : 1;\n\n if (this.options.wrapAround) {\n // wrap around move. #589\n moveVector.x = moveVector.x % this.slideableWidth;\n }\n\n var dragX = this.dragStartPosition + moveVector.x * direction;\n\n if (!this.options.wrapAround && this.slides.length) {\n // slow drag\n var originBound = Math.max(-this.slides[0].target, this.dragStartPosition);\n dragX = dragX > originBound ? (dragX + originBound) * 0.5 : dragX;\n var endBound = Math.min(-this.getLastSlide().target, this.dragStartPosition);\n dragX = dragX < endBound ? (dragX + endBound) * 0.5 : dragX;\n }\n\n this.dragX = dragX;\n this.dragMoveTime = new Date();\n this.dispatchEvent('dragMove', event, [pointer, moveVector]);\n };\n\n proto.dragEnd = function (event, pointer) {\n if (!this.isDraggable) {\n return;\n }\n\n if (this.options.freeScroll) {\n this.isFreeScrolling = true;\n } // set selectedIndex based on where flick will end up\n\n\n var index = this.dragEndRestingSelect();\n\n if (this.options.freeScroll && !this.options.wrapAround) {\n // if free-scroll & not wrap around\n // do not free-scroll if going outside of bounding slides\n // so bounding slides can attract slider, and keep it in bounds\n var restingX = this.getRestingPosition();\n this.isFreeScrolling = -restingX > this.slides[0].target && -restingX < this.getLastSlide().target;\n } else if (!this.options.freeScroll && index == this.selectedIndex) {\n // boost selection if selected index has not changed\n index += this.dragEndBoostSelect();\n }\n\n delete this.previousDragX; // apply selection\n // TODO refactor this, selecting here feels weird\n // HACK, set flag so dragging stays in correct direction\n\n this.isDragSelect = this.options.wrapAround;\n this.select(index);\n delete this.isDragSelect;\n this.dispatchEvent('dragEnd', event, [pointer]);\n };\n\n proto.dragEndRestingSelect = function () {\n var restingX = this.getRestingPosition(); // how far away from selected slide\n\n var distance = Math.abs(this.getSlideDistance(-restingX, this.selectedIndex)); // get closet resting going up and going down\n\n var positiveResting = this._getClosestResting(restingX, distance, 1);\n\n var negativeResting = this._getClosestResting(restingX, distance, -1); // use closer resting for wrap-around\n\n\n var index = positiveResting.distance < negativeResting.distance ? positiveResting.index : negativeResting.index;\n return index;\n };\n /**\n * given resting X and distance to selected cell\n * get the distance and index of the closest cell\n * @param {Number} restingX - estimated post-flick resting position\n * @param {Number} distance - distance to selected cell\n * @param {Integer} increment - +1 or -1, going up or down\n * @returns {Object} - { distance: {Number}, index: {Integer} }\n */\n\n\n proto._getClosestResting = function (restingX, distance, increment) {\n var index = this.selectedIndex;\n var minDistance = Infinity;\n var condition = this.options.contain && !this.options.wrapAround ? // if contain, keep going if distance is equal to minDistance\n function (d, md) {\n return d <= md;\n } : function (d, md) {\n return d < md;\n };\n\n while (condition(distance, minDistance)) {\n // measure distance to next cell\n index += increment;\n minDistance = distance;\n distance = this.getSlideDistance(-restingX, index);\n\n if (distance === null) {\n break;\n }\n\n distance = Math.abs(distance);\n }\n\n return {\n distance: minDistance,\n // selected was previous index\n index: index - increment\n };\n };\n /**\n * measure distance between x and a slide target\n * @param {Number} x\n * @param {Integer} index - slide index\n */\n\n\n proto.getSlideDistance = function (x, index) {\n var len = this.slides.length; // wrap around if at least 2 slides\n\n var isWrapAround = this.options.wrapAround && len > 1;\n var slideIndex = isWrapAround ? utils.modulo(index, len) : index;\n var slide = this.slides[slideIndex];\n\n if (!slide) {\n return null;\n } // add distance for wrap-around slides\n\n\n var wrap = isWrapAround ? this.slideableWidth * Math.floor(index / len) : 0;\n return x - (slide.target + wrap);\n };\n\n proto.dragEndBoostSelect = function () {\n // do not boost if no previousDragX or dragMoveTime\n if (this.previousDragX === undefined || !this.dragMoveTime || // or if drag was held for 100 ms\n new Date() - this.dragMoveTime > 100) {\n return 0;\n }\n\n var distance = this.getSlideDistance(-this.dragX, this.selectedIndex);\n var delta = this.previousDragX - this.dragX;\n\n if (distance > 0 && delta > 0) {\n // boost to next if moving towards the right, and positive velocity\n return 1;\n } else if (distance < 0 && delta < 0) {\n // boost to previous if moving towards the left, and negative velocity\n return -1;\n }\n\n return 0;\n }; // ----- staticClick ----- //\n\n\n proto.staticClick = function (event, pointer) {\n // get clickedCell, if cell was clicked\n var clickedCell = this.getParentCell(event.target);\n var cellElem = clickedCell && clickedCell.element;\n var cellIndex = clickedCell && this.cells.indexOf(clickedCell);\n this.dispatchEvent('staticClick', event, [pointer, cellElem, cellIndex]);\n }; // ----- scroll ----- //\n\n\n proto.onscroll = function () {\n var scroll = getScrollPosition();\n var scrollMoveX = this.pointerDownScroll.x - scroll.x;\n var scrollMoveY = this.pointerDownScroll.y - scroll.y; // cancel click/tap if scroll is too much\n\n if (Math.abs(scrollMoveX) > 3 || Math.abs(scrollMoveY) > 3) {\n this._pointerDone();\n }\n }; // ----- utils ----- //\n\n\n function getScrollPosition() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n } // ----- ----- //\n\n\n return Flickity;\n});","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","import styled from 'styled-components';\nimport hex2rgba from '../../utils/hex2rgba';\n\nconst ContainerSolutions = styled.div`\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tjustify-content: center;\n`;\nconst Text = styled.p`\n\topacity: 0;\n\tfont-size: 1rem;\n\ttransition: opacity 300ms ease-in;\n\ttext-align: center;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: 6;\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n`;\nconst Content = styled.div`\n\tposition: absolute;\n\ttop: 0;\n\tpadding: 1rem;\n\tbackground-color: ${(props) => hex2rgba(props.theme.primary, 0.3)};\n\twidth: 100%;\n\theight: 100%;\n`;\n\nconst ButtonSolution = styled.button`\n\tcursor: pointer;\n\tfont-family: 'Lato', 'sans-serif';\n\twidth: 220px;\n\theight: 220px;\n\tmargin: 1rem;\n\tborder: none;\n\tborder-radius: 30px;\n\tbox-shadow: var(--shadow-light);\n\tcolor: ${(props) => props.theme.textLight};\n\toverflow: hidden;\n\tpadding: 0;\n\tposition: relative;\n\n\t&:focus {\n\t\toutline: none;\n\t}\n\t&:hover {\n\t\t${Text} {\n\t\t\topacity: 1;\n\t\t}\n\t}\n`;\n\nexport { ContainerSolutions, ButtonSolution, Content, Text };\n","import React from 'react'\nimport Img from 'gatsby-image'\nimport { useStaticQuery, graphql } from 'gatsby'\nimport {\n ContainerSolutions,\n ButtonSolution,\n Content,\n Text,\n} from './Solutions.styled'\nimport { FormattedMessage } from 'react-intl'\nimport { Link } from 'gatsby'\n\nconst Solutions = ({ solutionsData }) => {\n const {\n allFile: { edges },\n } = useStaticQuery(graphql`\n query {\n allFile(filter: { relativeDirectory: { eq: \"solutions\" } }) {\n edges {\n node {\n name\n childImageSharp {\n fixed(height: 220) {\n ...GatsbyImageSharpFixed\n }\n }\n }\n }\n }\n }\n `)\n return (\n \n {solutionsData.map((data, index) => {\n const { title } = data\n const { node = null } =\n edges.find(({ node }) => node.name === title) || {}\n return (\n \n {title}\n \n \n

\n \n

\n \n \n \n
\n \n
\n )\n })}\n
\n )\n}\n\nexport default Solutions\n","import styled, { css } from 'styled-components'\nimport { Link } from 'gatsby'\nimport Img from 'gatsby-image'\n\nimport image_security from '../../images/security-badge.png'\nimport { BP_SMALL, BP_MEDIUM } from '../../styles/theme'\n\nconst SectionContainer = styled.div`\n display: flex;\n justify-content: space-evenly;\n text-align: justify;\n align-items: center;\n padding: 1rem 2rem;\n margin: 4rem 0;\n color: ${props => props.theme.textDark};\n @media only screen and (max-width: ${BP_MEDIUM}) {\n flex-direction: column;\n padding: 0;\n }\n`\nconst CardContent = styled.div`\n padding: 1rem 2rem;\n max-width: 600px;\n border-radius: 10px;\n background-color: white;\n text-align: justify;\n @media only screen and (max-width: ${BP_SMALL}) {\n margin: 1rem 0;\n }\n`\n\nconst TitleSection = styled.h1`\n font-size: 2.5rem;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${props => props.theme.primary};\n text-transform: uppercase;\n font-size: 30px;\n ${props =>\n props.black &&\n css`\n color: ${props => props.theme.backgroundFooter};\n `};\n`\n\nconst ItemContainer = styled(Link)`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n text-align: center;\n cursor: pointer;\n text-decoration: none;\n color: white;\n margin: 1rem 3rem;\n padding-top: 8px;\n padding-bottom: 40px;\n width: 15%;\n &:hover {\n color: ${props => props.theme.primaryLight};\n }\n @media only screen and (max-width: ${BP_SMALL}) {\n width: 90%;\n }\n`\nconst TitleCard = styled.h2`\n text-align: ${props => props.textAlign};\n color: ${props => props.theme.primary};\n`\n\nconst ImageStyled = styled(Img)`\n margin: 0 2rem;\n box-shadow: var(--shadow-dark);\n /* height: 250px; */\n border-radius: 20px;\n @media only screen and (max-width: ${BP_SMALL}) {\n height: 200px;\n }\n`\nconst ResponsiveImage = styled.img`\n height: 60px;\n @media only screen and (max-width: ${BP_MEDIUM}) {\n height: 50px;\n }\n`\n\nconst FillingBackground = styled.div`\n\twidth: 100%;\n\theight: 50%;\n\tposition: absolute;\n\tz-index: -1;\n\tbottom: 0;\n\t${props =>\n props.top &&\n css`\n top: 0;\n left: 0;\n `} background-color: ${props => props.theme.primary};\n`\nconst GradientContainer = styled.div`\n width: 100%;\n height: 100%;\n max-height: 160px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 10;\n background-image: linear-gradient(\n to right,\n rgba(255, 255, 255, 0) 65%,\n white 85%\n ),\n linear-gradient(-90deg, rgba(255, 255, 255, 0) 65%, white 85%);\n`\nconst ImageSecurityBadge = styled.div`\n height: 60px;\n width: 60px;\n display: flex;\n margin: 0 auto;\n justify-content: center;\n align-items: center;\n background-image: url(${image_security});\n background-size: 60px;\n background-repeat: no-repeat;\n background-position: center;\n\n &::after {\n content: '0';\n font-size: 3rem;\n font-weight: bold;\n color: ${props => props.theme.green};\n }\n`\nconst AdjustTwoColumnContent = styled.div`\n margin: 0 3rem;\n position: relative;\n @media only screen and (max-width: ${BP_SMALL}) {\n margin: 0;\n }\n`\n\nconst TwoColumns = styled.div`\n width: 50%;\n margin: 0 1rem;\n text-align: justify;\n position: relative;\n @media only screen and (max-width: ${BP_SMALL}) {\n width: 100%;\n }\n`\n\nconst LimitTwoColumns = styled(TwoColumns)`\n max-width: 500px;\n`\nconst TwoColumnsContent = styled.div`\n position: absolute;\n z-index: 10;\n color: white;\n width: 100%;\n padding: 1rem;\n max-width: 750px;\n`\nexport {\n SectionContainer,\n CardContent,\n ItemContainer,\n TitleSection,\n TitleCard,\n ImageStyled,\n AdjustTwoColumnContent,\n FillingBackground,\n ImageSecurityBadge,\n GradientContainer,\n ResponsiveImage,\n TwoColumns,\n TwoColumnsContent,\n LimitTwoColumns,\n}\n","/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n(function (window, factory) {\n // universal module definition\n\n /*jshint strict: false */\n\n /*globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['desandro-matches-selector/matches-selector'], function (matchesSelector) {\n return factory(window, matchesSelector);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('desandro-matches-selector'));\n } else {\n // browser global\n window.fizzyUIUtils = factory(window, window.matchesSelector);\n }\n})(window, function factory(window, matchesSelector) {\n 'use strict';\n\n var utils = {}; // ----- extend ----- //\n // extends objects\n\n utils.extend = function (a, b) {\n for (var prop in b) {\n a[prop] = b[prop];\n }\n\n return a;\n }; // ----- modulo ----- //\n\n\n utils.modulo = function (num, div) {\n return (num % div + div) % div;\n }; // ----- makeArray ----- //\n\n\n var arraySlice = Array.prototype.slice; // turn element or nodeList into an array\n\n utils.makeArray = function (obj) {\n if (Array.isArray(obj)) {\n // use object if already an array\n return obj;\n } // return empty array if undefined or null. #6\n\n\n if (obj === null || obj === undefined) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n\n if (isArrayLike) {\n // convert nodeList to array\n return arraySlice.call(obj);\n } // array of single index\n\n\n return [obj];\n }; // ----- removeFrom ----- //\n\n\n utils.removeFrom = function (ary, obj) {\n var index = ary.indexOf(obj);\n\n if (index != -1) {\n ary.splice(index, 1);\n }\n }; // ----- getParent ----- //\n\n\n utils.getParent = function (elem, selector) {\n while (elem.parentNode && elem != document.body) {\n elem = elem.parentNode;\n\n if (matchesSelector(elem, selector)) {\n return elem;\n }\n }\n }; // ----- getQueryElement ----- //\n // use element as selector string\n\n\n utils.getQueryElement = function (elem) {\n if (typeof elem == 'string') {\n return document.querySelector(elem);\n }\n\n return elem;\n }; // ----- handleEvent ----- //\n // enable .ontype to trigger from .addEventListener( elem, 'type' )\n\n\n utils.handleEvent = function (event) {\n var method = 'on' + event.type;\n\n if (this[method]) {\n this[method](event);\n }\n }; // ----- filterFindElements ----- //\n\n\n utils.filterFindElements = function (elems, selector) {\n // make array of elems\n elems = utils.makeArray(elems);\n var ffElems = [];\n elems.forEach(function (elem) {\n // check that elem is an actual element\n if (!(elem instanceof HTMLElement)) {\n return;\n } // add elem if no selector\n\n\n if (!selector) {\n ffElems.push(elem);\n return;\n } // filter & find items if we have a selector\n // filter\n\n\n if (matchesSelector(elem, selector)) {\n ffElems.push(elem);\n } // find children\n\n\n var childElems = elem.querySelectorAll(selector); // concat childElems to filterFound array\n\n for (var i = 0; i < childElems.length; i++) {\n ffElems.push(childElems[i]);\n }\n });\n return ffElems;\n }; // ----- debounceMethod ----- //\n\n\n utils.debounceMethod = function (_class, methodName, threshold) {\n threshold = threshold || 100; // original method\n\n var method = _class.prototype[methodName];\n var timeoutName = methodName + 'Timeout';\n\n _class.prototype[methodName] = function () {\n var timeout = this[timeoutName];\n clearTimeout(timeout);\n var args = arguments;\n\n var _this = this;\n\n this[timeoutName] = setTimeout(function () {\n method.apply(_this, args);\n delete _this[timeoutName];\n }, threshold);\n };\n }; // ----- docReady ----- //\n\n\n utils.docReady = function (callback) {\n var readyState = document.readyState;\n\n if (readyState == 'complete' || readyState == 'interactive') {\n // do async to allow for other scripts to run. metafizzy/flickity#441\n setTimeout(callback);\n } else {\n document.addEventListener('DOMContentLoaded', callback);\n }\n }; // ----- htmlInit ----- //\n // http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\n\n\n utils.toDashed = function (str) {\n return str.replace(/(.)([A-Z])/g, function (match, $1, $2) {\n return $1 + '-' + $2;\n }).toLowerCase();\n };\n\n var console = window.console;\n /**\n * allow user to initialize classes via [data-namespace] or .js-namespace class\n * htmlInit( Widget, 'widgetName' )\n * options are parsed from data-namespace-options\n */\n\n utils.htmlInit = function (WidgetClass, namespace) {\n utils.docReady(function () {\n var dashedNamespace = utils.toDashed(namespace);\n var dataAttr = 'data-' + dashedNamespace;\n var dataAttrElems = document.querySelectorAll('[' + dataAttr + ']');\n var jsDashElems = document.querySelectorAll('.js-' + dashedNamespace);\n var elems = utils.makeArray(dataAttrElems).concat(utils.makeArray(jsDashElems));\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n elems.forEach(function (elem) {\n var attr = elem.getAttribute(dataAttr) || elem.getAttribute(dataOptionsAttr);\n var options;\n\n try {\n options = attr && JSON.parse(attr);\n } catch (error) {\n // log error, do not initialize\n if (console) {\n console.error('Error parsing ' + dataAttr + ' on ' + elem.className + ': ' + error);\n }\n\n return;\n } // initialize\n\n\n var instance = new WidgetClass(elem, options); // make available via $().data('namespace')\n\n if (jQuery) {\n jQuery.data(elem, namespace, instance);\n }\n });\n });\n }; // ----- ----- //\n\n\n return utils;\n});","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","// slide\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Slide = factory();\n }\n})(window, function factory() {\n 'use strict';\n\n function Slide(parent) {\n this.parent = parent;\n this.isOriginLeft = parent.originSide == 'left';\n this.cells = [];\n this.outerWidth = 0;\n this.height = 0;\n }\n\n var proto = Slide.prototype;\n\n proto.addCell = function (cell) {\n this.cells.push(cell);\n this.outerWidth += cell.size.outerWidth;\n this.height = Math.max(cell.size.outerHeight, this.height); // first cell stuff\n\n if (this.cells.length == 1) {\n this.x = cell.x; // x comes from first cell\n\n var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\n this.firstMargin = cell.size[beginMargin];\n }\n };\n\n proto.updateTarget = function () {\n var endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft';\n var lastCell = this.getLastCell();\n var lastMargin = lastCell ? lastCell.size[endMargin] : 0;\n var slideWidth = this.outerWidth - (this.firstMargin + lastMargin);\n this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign;\n };\n\n proto.getLastCell = function () {\n return this.cells[this.cells.length - 1];\n };\n\n proto.select = function () {\n this.cells.forEach(function (cell) {\n cell.select();\n });\n };\n\n proto.unselect = function () {\n this.cells.forEach(function (cell) {\n cell.unselect();\n });\n };\n\n proto.getCellElements = function () {\n return this.cells.map(function (cell) {\n return cell.element;\n });\n };\n\n return Slide;\n});","// lazyload\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['./flickity', 'fizzy-ui-utils/utils'], function (Flickity, utils) {\n return factory(window, Flickity, utils);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('./flickity'), require('fizzy-ui-utils'));\n } else {\n // browser global\n factory(window, window.Flickity, window.fizzyUIUtils);\n }\n})(window, function factory(window, Flickity, utils) {\n 'use strict';\n\n Flickity.createMethods.push('_createLazyload');\n var proto = Flickity.prototype;\n\n proto._createLazyload = function () {\n this.on('select', this.lazyLoad);\n };\n\n proto.lazyLoad = function () {\n var lazyLoad = this.options.lazyLoad;\n\n if (!lazyLoad) {\n return;\n } // get adjacent cells, use lazyLoad option for adjacent count\n\n\n var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\n var cellElems = this.getAdjacentCellElements(adjCount); // get lazy images in those cells\n\n var lazyImages = [];\n cellElems.forEach(function (cellElem) {\n var lazyCellImages = getCellLazyImages(cellElem);\n lazyImages = lazyImages.concat(lazyCellImages);\n }); // load lazy images\n\n lazyImages.forEach(function (img) {\n new LazyLoader(img, this);\n }, this);\n };\n\n function getCellLazyImages(cellElem) {\n // check if cell element is lazy image\n if (cellElem.nodeName == 'IMG') {\n var lazyloadAttr = cellElem.getAttribute('data-flickity-lazyload');\n var srcAttr = cellElem.getAttribute('data-flickity-lazyload-src');\n var srcsetAttr = cellElem.getAttribute('data-flickity-lazyload-srcset');\n\n if (lazyloadAttr || srcAttr || srcsetAttr) {\n return [cellElem];\n }\n } // select lazy images in cell\n\n\n var lazySelector = 'img[data-flickity-lazyload], ' + 'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]';\n var imgs = cellElem.querySelectorAll(lazySelector);\n return utils.makeArray(imgs);\n } // -------------------------- LazyLoader -------------------------- //\n\n /**\n * class to handle loading images\n */\n\n\n function LazyLoader(img, flickity) {\n this.img = img;\n this.flickity = flickity;\n this.load();\n }\n\n LazyLoader.prototype.handleEvent = utils.handleEvent;\n\n LazyLoader.prototype.load = function () {\n this.img.addEventListener('load', this);\n this.img.addEventListener('error', this); // get src & srcset\n\n var src = this.img.getAttribute('data-flickity-lazyload') || this.img.getAttribute('data-flickity-lazyload-src');\n var srcset = this.img.getAttribute('data-flickity-lazyload-srcset'); // set src & serset\n\n this.img.src = src;\n\n if (srcset) {\n this.img.setAttribute('srcset', srcset);\n } // remove attr\n\n\n this.img.removeAttribute('data-flickity-lazyload');\n this.img.removeAttribute('data-flickity-lazyload-src');\n this.img.removeAttribute('data-flickity-lazyload-srcset');\n };\n\n LazyLoader.prototype.onload = function (event) {\n this.complete(event, 'flickity-lazyloaded');\n };\n\n LazyLoader.prototype.onerror = function (event) {\n this.complete(event, 'flickity-lazyerror');\n };\n\n LazyLoader.prototype.complete = function (event, className) {\n // unbind events\n this.img.removeEventListener('load', this);\n this.img.removeEventListener('error', this);\n var cell = this.flickity.getParentCell(this.img);\n var cellElem = cell && cell.element;\n this.flickity.cellSizeChange(cellElem);\n this.img.classList.add(className);\n this.flickity.dispatchEvent('lazyLoad', event, cellElem);\n }; // ----- ----- //\n\n\n Flickity.LazyLoader = LazyLoader;\n return Flickity;\n});","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport './styles.css';\n\nclass Carousel extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.slider2Ref = React.createRef();\n\t}\n\tstatic propTypes = {\n\t\tautoPlay: PropTypes.bool,\n\t\tdisableButtons: PropTypes.bool\n\t};\n\n\tstatic defaultProps = {\n\t\tautoPlay: false,\n\t\tdisableButtons: false\n\t};\n\n\tcomponentDidMount() {\n\t\tconst { autoPlay, groupCells } = this.props;\n\t\tif (typeof window !== undefined) {\n\t\t\tconst Flickity = require('flickity');\n\t\t\tthis.flkty = new Flickity(this.slider2Ref.current, {\n\t\t\t\tlazyLoad: true,\n\t\t\t\timagesLoaded: true,\n\t\t\t\twrapAround: true,\n\t\t\t\tautoPlay,\n\t\t\t\tgroupCells\n\t\t\t});\n\t\t}\n\t}\n\trender() {\n\t\tconst { disableButtons } = this.props;\n\t\treturn (\n\t\t\t
\n\t\t\t\t{this.props.children}\n\t\t\t
\n\t\t);\n\t}\n}\n\nexport default Carousel;\n","module.exports = __webpack_public_path__ + \"static/security-badge-810b4cd3a370ea056a37edac14c476e2.png\";","// player & autoPlay\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['ev-emitter/ev-emitter', 'fizzy-ui-utils/utils', './flickity'], function (EvEmitter, utils, Flickity) {\n return factory(EvEmitter, utils, Flickity);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(require('ev-emitter'), require('fizzy-ui-utils'), require('./flickity'));\n } else {\n // browser global\n factory(window.EvEmitter, window.fizzyUIUtils, window.Flickity);\n }\n})(window, function factory(EvEmitter, utils, Flickity) {\n 'use strict'; // -------------------------- Player -------------------------- //\n\n function Player(parent) {\n this.parent = parent;\n this.state = 'stopped'; // visibility change event handler\n\n this.onVisibilityChange = this.visibilityChange.bind(this);\n this.onVisibilityPlay = this.visibilityPlay.bind(this);\n }\n\n Player.prototype = Object.create(EvEmitter.prototype); // start play\n\n Player.prototype.play = function () {\n if (this.state == 'playing') {\n return;\n } // do not play if page is hidden, start playing when page is visible\n\n\n var isPageHidden = document.hidden;\n\n if (isPageHidden) {\n document.addEventListener('visibilitychange', this.onVisibilityPlay);\n return;\n }\n\n this.state = 'playing'; // listen to visibility change\n\n document.addEventListener('visibilitychange', this.onVisibilityChange); // start ticking\n\n this.tick();\n };\n\n Player.prototype.tick = function () {\n // do not tick if not playing\n if (this.state != 'playing') {\n return;\n }\n\n var time = this.parent.options.autoPlay; // default to 3 seconds\n\n time = typeof time == 'number' ? time : 3000;\n\n var _this = this; // HACK: reset ticks if stopped and started within interval\n\n\n this.clear();\n this.timeout = setTimeout(function () {\n _this.parent.next(true);\n\n _this.tick();\n }, time);\n };\n\n Player.prototype.stop = function () {\n this.state = 'stopped';\n this.clear(); // remove visibility change event\n\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n };\n\n Player.prototype.clear = function () {\n clearTimeout(this.timeout);\n };\n\n Player.prototype.pause = function () {\n if (this.state == 'playing') {\n this.state = 'paused';\n this.clear();\n }\n };\n\n Player.prototype.unpause = function () {\n // re-start play if paused\n if (this.state == 'paused') {\n this.play();\n }\n }; // pause if page visibility is hidden, unpause if visible\n\n\n Player.prototype.visibilityChange = function () {\n var isPageHidden = document.hidden;\n this[isPageHidden ? 'pause' : 'unpause']();\n };\n\n Player.prototype.visibilityPlay = function () {\n this.play();\n document.removeEventListener('visibilitychange', this.onVisibilityPlay);\n }; // -------------------------- Flickity -------------------------- //\n\n\n utils.extend(Flickity.defaults, {\n pauseAutoPlayOnHover: true\n });\n Flickity.createMethods.push('_createPlayer');\n var proto = Flickity.prototype;\n\n proto._createPlayer = function () {\n this.player = new Player(this);\n this.on('activate', this.activatePlayer);\n this.on('uiChange', this.stopPlayer);\n this.on('pointerDown', this.stopPlayer);\n this.on('deactivate', this.deactivatePlayer);\n };\n\n proto.activatePlayer = function () {\n if (!this.options.autoPlay) {\n return;\n }\n\n this.player.play();\n this.element.addEventListener('mouseenter', this);\n }; // Player API, don't hate the ... thanks I know where the door is\n\n\n proto.playPlayer = function () {\n this.player.play();\n };\n\n proto.stopPlayer = function () {\n this.player.stop();\n };\n\n proto.pausePlayer = function () {\n this.player.pause();\n };\n\n proto.unpausePlayer = function () {\n this.player.unpause();\n };\n\n proto.deactivatePlayer = function () {\n this.player.stop();\n this.element.removeEventListener('mouseenter', this);\n }; // ----- mouseenter/leave ----- //\n // pause auto-play on hover\n\n\n proto.onmouseenter = function () {\n if (!this.options.pauseAutoPlayOnHover) {\n return;\n }\n\n this.player.pause();\n this.element.addEventListener('mouseleave', this);\n }; // resume auto-play on hover off\n\n\n proto.onmouseleave = function () {\n this.player.unpause();\n this.element.removeEventListener('mouseleave', this);\n }; // ----- ----- //\n\n\n Flickity.Player = Player;\n return Flickity;\n});","var isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","// add, remove cell\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['./flickity', 'fizzy-ui-utils/utils'], function (Flickity, utils) {\n return factory(window, Flickity, utils);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('./flickity'), require('fizzy-ui-utils'));\n } else {\n // browser global\n factory(window, window.Flickity, window.fizzyUIUtils);\n }\n})(window, function factory(window, Flickity, utils) {\n 'use strict'; // append cells to a document fragment\n\n function getCellsFragment(cells) {\n var fragment = document.createDocumentFragment();\n cells.forEach(function (cell) {\n fragment.appendChild(cell.element);\n });\n return fragment;\n } // -------------------------- add/remove cell prototype -------------------------- //\n\n\n var proto = Flickity.prototype;\n /**\n * Insert, prepend, or append cells\n * @param {Element, Array, NodeList} elems\n * @param {Integer} index\n */\n\n proto.insert = function (elems, index) {\n var cells = this._makeCells(elems);\n\n if (!cells || !cells.length) {\n return;\n }\n\n var len = this.cells.length; // default to append\n\n index = index === undefined ? len : index; // add cells with document fragment\n\n var fragment = getCellsFragment(cells); // append to slider\n\n var isAppend = index == len;\n\n if (isAppend) {\n this.slider.appendChild(fragment);\n } else {\n var insertCellElement = this.cells[index].element;\n this.slider.insertBefore(fragment, insertCellElement);\n } // add to this.cells\n\n\n if (index === 0) {\n // prepend, add to start\n this.cells = cells.concat(this.cells);\n } else if (isAppend) {\n // append, add to end\n this.cells = this.cells.concat(cells);\n } else {\n // insert in this.cells\n var endCells = this.cells.splice(index, len - index);\n this.cells = this.cells.concat(cells).concat(endCells);\n }\n\n this._sizeCells(cells);\n\n this.cellChange(index, true);\n };\n\n proto.append = function (elems) {\n this.insert(elems, this.cells.length);\n };\n\n proto.prepend = function (elems) {\n this.insert(elems, 0);\n };\n /**\n * Remove cells\n * @param {Element, Array, NodeList} elems\n */\n\n\n proto.remove = function (elems) {\n var cells = this.getCells(elems);\n\n if (!cells || !cells.length) {\n return;\n }\n\n var minCellIndex = this.cells.length - 1; // remove cells from collection & DOM\n\n cells.forEach(function (cell) {\n cell.remove();\n var index = this.cells.indexOf(cell);\n minCellIndex = Math.min(index, minCellIndex);\n utils.removeFrom(this.cells, cell);\n }, this);\n this.cellChange(minCellIndex, true);\n };\n /**\n * logic to be run after a cell's size changes\n * @param {Element} elem - cell's element\n */\n\n\n proto.cellSizeChange = function (elem) {\n var cell = this.getCell(elem);\n\n if (!cell) {\n return;\n }\n\n cell.getSize();\n var index = this.cells.indexOf(cell);\n this.cellChange(index);\n };\n /**\n * logic any time a cell is changed: added, removed, or size changed\n * @param {Integer} changedCellIndex - index of the changed cell, optional\n */\n\n\n proto.cellChange = function (changedCellIndex, isPositioningSlider) {\n var prevSelectedElem = this.selectedElement;\n\n this._positionCells(changedCellIndex);\n\n this._getWrapShiftCells();\n\n this.setGallerySize(); // update selectedIndex\n // try to maintain position & select previous selected element\n\n var cell = this.getCell(prevSelectedElem);\n\n if (cell) {\n this.selectedIndex = this.getCellSlideIndex(cell);\n }\n\n this.selectedIndex = Math.min(this.slides.length - 1, this.selectedIndex);\n this.emitEvent('cellChange', [changedCellIndex]); // position slider\n\n this.select(this.selectedIndex); // do not position slider after lazy load\n\n if (isPositioningSlider) {\n this.positionSliderAtSelected();\n }\n }; // ----- ----- //\n\n\n return Flickity;\n});","/**\n * matchesSelector v2.0.2\n * matchesSelector( element, '.selector' )\n * MIT license\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n(function (window, factory) {\n /*global define: false, module: false */\n 'use strict'; // universal module definition\n\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.matchesSelector = factory();\n }\n})(window, function factory() {\n 'use strict';\n\n var matchesMethod = function () {\n var ElemProto = window.Element.prototype; // check for the standard method name first\n\n if (ElemProto.matches) {\n return 'matches';\n } // check un-prefixed\n\n\n if (ElemProto.matchesSelector) {\n return 'matchesSelector';\n } // check vendor prefixes\n\n\n var prefixes = ['webkit', 'moz', 'ms', 'o'];\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var method = prefix + 'MatchesSelector';\n\n if (ElemProto[method]) {\n return method;\n }\n }\n }();\n\n return function matchesSelector(elem, selector) {\n return elem[matchesMethod](selector);\n };\n});","// Flickity.Cell\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['get-size/get-size'], function (getSize) {\n return factory(window, getSize);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('get-size'));\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Cell = factory(window, window.getSize);\n }\n})(window, function factory(window, getSize) {\n 'use strict';\n\n function Cell(elem, parent) {\n this.element = elem;\n this.parent = parent;\n this.create();\n }\n\n var proto = Cell.prototype;\n\n proto.create = function () {\n this.element.style.position = 'absolute';\n this.element.setAttribute('aria-hidden', 'true');\n this.x = 0;\n this.shift = 0;\n };\n\n proto.destroy = function () {\n // reset style\n this.unselect();\n this.element.style.position = '';\n var side = this.parent.originSide;\n this.element.style[side] = '';\n };\n\n proto.getSize = function () {\n this.size = getSize(this.element);\n };\n\n proto.setPosition = function (x) {\n this.x = x;\n this.updateTarget();\n this.renderPosition(x);\n }; // setDefaultTarget v1 method, backwards compatibility, remove in v3\n\n\n proto.updateTarget = proto.setDefaultTarget = function () {\n var marginProperty = this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';\n this.target = this.x + this.size[marginProperty] + this.size.width * this.parent.cellAlign;\n };\n\n proto.renderPosition = function (x) {\n // render position of cell with in slider\n var side = this.parent.originSide;\n this.element.style[side] = this.parent.getPositionValue(x);\n };\n\n proto.select = function () {\n this.element.classList.add('is-selected');\n this.element.removeAttribute('aria-hidden');\n };\n\n proto.unselect = function () {\n this.element.classList.remove('is-selected');\n this.element.setAttribute('aria-hidden', 'true');\n };\n /**\n * @param {Integer} factor - 0, 1, or -1\n **/\n\n\n proto.wrapShift = function (shift) {\n this.shift = shift;\n this.renderPosition(this.x + this.parent.slideableWidth * shift);\n };\n\n proto.remove = function () {\n this.element.parentNode.removeChild(this.element);\n };\n\n return Cell;\n});","// prev/next buttons\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['./flickity', 'unipointer/unipointer', 'fizzy-ui-utils/utils'], function (Flickity, Unipointer, utils) {\n return factory(window, Flickity, Unipointer, utils);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('./flickity'), require('unipointer'), require('fizzy-ui-utils'));\n } else {\n // browser global\n factory(window, window.Flickity, window.Unipointer, window.fizzyUIUtils);\n }\n})(window, function factory(window, Flickity, Unipointer, utils) {\n 'use strict';\n\n var svgURI = 'http://www.w3.org/2000/svg'; // -------------------------- PrevNextButton -------------------------- //\n\n function PrevNextButton(direction, parent) {\n this.direction = direction;\n this.parent = parent;\n\n this._create();\n }\n\n PrevNextButton.prototype = Object.create(Unipointer.prototype);\n\n PrevNextButton.prototype._create = function () {\n // properties\n this.isEnabled = true;\n this.isPrevious = this.direction == -1;\n var leftDirection = this.parent.options.rightToLeft ? 1 : -1;\n this.isLeft = this.direction == leftDirection;\n var element = this.element = document.createElement('button');\n element.className = 'flickity-button flickity-prev-next-button';\n element.className += this.isPrevious ? ' previous' : ' next'; // prevent button from submitting form http://stackoverflow.com/a/10836076/182183\n\n element.setAttribute('type', 'button'); // init as disabled\n\n this.disable();\n element.setAttribute('aria-label', this.isPrevious ? 'Previous' : 'Next'); // create arrow\n\n var svg = this.createSVG();\n element.appendChild(svg); // events\n\n this.parent.on('select', this.update.bind(this));\n this.on('pointerDown', this.parent.childUIPointerDown.bind(this.parent));\n };\n\n PrevNextButton.prototype.activate = function () {\n this.bindStartEvent(this.element);\n this.element.addEventListener('click', this); // add to DOM\n\n this.parent.element.appendChild(this.element);\n };\n\n PrevNextButton.prototype.deactivate = function () {\n // remove from DOM\n this.parent.element.removeChild(this.element); // click events\n\n this.unbindStartEvent(this.element);\n this.element.removeEventListener('click', this);\n };\n\n PrevNextButton.prototype.createSVG = function () {\n var svg = document.createElementNS(svgURI, 'svg');\n svg.setAttribute('class', 'flickity-button-icon');\n svg.setAttribute('viewBox', '0 0 100 100');\n var path = document.createElementNS(svgURI, 'path');\n var pathMovements = getArrowMovements(this.parent.options.arrowShape);\n path.setAttribute('d', pathMovements);\n path.setAttribute('class', 'arrow'); // rotate arrow\n\n if (!this.isLeft) {\n path.setAttribute('transform', 'translate(100, 100) rotate(180) ');\n }\n\n svg.appendChild(path);\n return svg;\n }; // get SVG path movmement\n\n\n function getArrowMovements(shape) {\n // use shape as movement if string\n if (typeof shape == 'string') {\n return shape;\n } // create movement string\n\n\n return 'M ' + shape.x0 + ',50' + ' L ' + shape.x1 + ',' + (shape.y1 + 50) + ' L ' + shape.x2 + ',' + (shape.y2 + 50) + ' L ' + shape.x3 + ',50 ' + ' L ' + shape.x2 + ',' + (50 - shape.y2) + ' L ' + shape.x1 + ',' + (50 - shape.y1) + ' Z';\n }\n\n PrevNextButton.prototype.handleEvent = utils.handleEvent;\n\n PrevNextButton.prototype.onclick = function () {\n if (!this.isEnabled) {\n return;\n }\n\n this.parent.uiChange();\n var method = this.isPrevious ? 'previous' : 'next';\n this.parent[method]();\n }; // ----- ----- //\n\n\n PrevNextButton.prototype.enable = function () {\n if (this.isEnabled) {\n return;\n }\n\n this.element.disabled = false;\n this.isEnabled = true;\n };\n\n PrevNextButton.prototype.disable = function () {\n if (!this.isEnabled) {\n return;\n }\n\n this.element.disabled = true;\n this.isEnabled = false;\n };\n\n PrevNextButton.prototype.update = function () {\n // index of first or last slide, if previous or next\n var slides = this.parent.slides; // enable is wrapAround and at least 2 slides\n\n if (this.parent.options.wrapAround && slides.length > 1) {\n this.enable();\n return;\n }\n\n var lastIndex = slides.length ? slides.length - 1 : 0;\n var boundIndex = this.isPrevious ? 0 : lastIndex;\n var method = this.parent.selectedIndex == boundIndex ? 'disable' : 'enable';\n this[method]();\n };\n\n PrevNextButton.prototype.destroy = function () {\n this.deactivate();\n this.allOff();\n }; // -------------------------- Flickity prototype -------------------------- //\n\n\n utils.extend(Flickity.defaults, {\n prevNextButtons: true,\n arrowShape: {\n x0: 10,\n x1: 60,\n y1: 50,\n x2: 70,\n y2: 40,\n x3: 30\n }\n });\n Flickity.createMethods.push('_createPrevNextButtons');\n var proto = Flickity.prototype;\n\n proto._createPrevNextButtons = function () {\n if (!this.options.prevNextButtons) {\n return;\n }\n\n this.prevButton = new PrevNextButton(-1, this);\n this.nextButton = new PrevNextButton(1, this);\n this.on('activate', this.activatePrevNextButtons);\n };\n\n proto.activatePrevNextButtons = function () {\n this.prevButton.activate();\n this.nextButton.activate();\n this.on('deactivate', this.deactivatePrevNextButtons);\n };\n\n proto.deactivatePrevNextButtons = function () {\n this.prevButton.deactivate();\n this.nextButton.deactivate();\n this.off('deactivate', this.deactivatePrevNextButtons);\n }; // -------------------------- -------------------------- //\n\n\n Flickity.PrevNextButton = PrevNextButton;\n return Flickity;\n});","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n"],"sourceRoot":""}