{"version":3,"sources":["webpack:///webpack/bootstrap 1f138cd571aa622103ed","webpack:///external \"jQuery\"","webpack:///./scripts/util/dom.js","webpack:///./scripts/shop/connect.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/fizzy-ui-utils/utils.js","webpack:///./scripts/shop/store.js","webpack:///./scripts/util/helper.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/flickity.js","webpack:///./scripts/shop/render.js","webpack:///./scripts/config.js","webpack:///./scripts/util/object.js","webpack:///./scripts/util/string.js","webpack:///./scripts/shop/templates/partials.js","webpack:///./scripts/components/global-e.js","webpack:///./scripts/components/pfas.js","webpack:///./scripts/components/stoked.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/ev-emitter/ev-emitter.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/unipointer/unipointer.js","webpack:///./scripts/components/voyado.js","webpack:///./scripts/components/bundles.js","webpack:///./scripts/components/sliders/complete-system.js","webpack:///./scripts/components/alert.js","webpack:///./scripts/util/isOnScreen.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/get-size/get-size.js","webpack:///(webpack)/buildin/global.js","webpack:///./scripts/shop/async.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/vanilla-lazyload/dist/lazyload.min.js","webpack:///./scripts/partials/top/country.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/regenerator-runtime/runtime.js","webpack:///./scripts/components/analytics-ca.js","webpack:///./scripts/components/newsletter.js","webpack:///./scripts/components/scroll.js","webpack:///./scripts/routes/checkout.js","webpack:///./scripts/components/interstellar/video-grid.js","webpack:///./scripts/components/flexible-video.js","webpack:///./scripts/util/autoPadding.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/typed.js/lib/typed.js","webpack:///./scripts/main.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/dist/flickity.pkgd.js","webpack:///./scripts/vendor/flickity-fullscreen.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/index.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/desandro-matches-selector/matches-selector.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/cell.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/slide.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/animate.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/drag.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/unidragger/unidragger.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/prev-next-button.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/page-dots.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/player.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/add-remove-cell.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/lazyload.js","webpack:///./scripts/vendor/jquery.txtTruncate.js","webpack:///./scripts/vendor/isotope.pkgd.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/isotope-layout/dist/isotope.pkgd.js","webpack:///./scripts/autoload/_bootstrap.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/bootstrap/dist/js/bootstrap.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/popper.js/dist/esm/popper.js","webpack:///./scripts/util/Router.js","webpack:///./scripts/util/camelCase.js","webpack:///./scripts/routes/common.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/redux/es/redux.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/process/browser.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/symbol-observable/es/index.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/symbol-observable/es/ponyfill.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/dompurify/dist/purify.js","webpack:///./scripts/shop/templates/account.js","webpack:///./scripts/util/loadImages.js","webpack:///./scripts/util/modal.js","webpack:///./scripts/components/ipgeolocation.js","webpack:///./scripts/partials/top/message-bar.js","webpack:///./scripts/partials/top/cart.js","webpack:///./scripts/partials/top/voucher.js","webpack:///./scripts/components/abandoned-cart.js","webpack:///./scripts/partials/list/productItem.js","webpack:///./scripts/components/interstellar/listing.js","webpack:///./scripts/components/ge-tracking.js","webpack:///./scripts/routes/home.js","webpack:///./scripts/routes/archive.js","webpack:///./scripts/routes/account.js","webpack:///./scripts/routes/receipt.js","webpack:///./scripts/components/trustpilot.js","webpack:///./scripts/routes/about.js","webpack:///./scripts/components/sliders/index.js","webpack:///./scripts/components/sliders/product-selected.js","webpack:///./scripts/components/sliders/product-selected-system.js","webpack:///./scripts/components/sliders/popular-products.js","webpack:///./scripts/components/sliders/system-slider-part.js","webpack:///./scripts/components/sliders/system-slider.js","webpack:///./scripts/components/sliders/system-bundle-slider.js","webpack:///./scripts/components/sliders/compare-product.js","webpack:///./scripts/components/sliders/usp.js","webpack:///./scripts/components/sliders/row-slider.js","webpack:///./scripts/components/sliders/promo-slider.js","webpack:///./scripts/components/sliders/system-filter.js","webpack:///./scripts/components/sliders/system-bundle.js","webpack:///./scripts/components/sliders/shop-more.js","webpack:///./scripts/components/sliders/interstellar/hero.js","webpack:///./scripts/components/sliders/interstellar/premium-content.js","webpack:///./scripts/components/sliders/interstellar/triple-small-slider.js","webpack:///./scripts/components/sliders/interstellar/mega-slider.js","webpack:///./scripts/util/checkTruncate.js","webpack:///./scripts/components/sliders/interstellar/full-image-with-slider.js","webpack:///./scripts/util/plusItem.js","webpack:///./scripts/util/crossPlatform.js","webpack:///./scripts/util/ellipsis.js","webpack:///./scripts/components/nav.js","webpack:///./scripts/components/filter.js","webpack:///./scripts/util/disableBodyScroll.js","webpack:///./scripts/components/picker.js","webpack:///./scripts/components/resellers.js","webpack:///./scripts/components/video.js","webpack:///./scripts/components/instagram.js","webpack:///./scripts/components/category.js","webpack:///./scripts/components/section.js","webpack:///./scripts/components/checkoutv2.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/resize-sensor/ResizeSensor.min.js","webpack:///C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/sticky-sidebar/dist/sticky-sidebar.js","webpack:///./scripts/components/search.js","webpack:///./scripts/components/selected-modal.js","webpack:///./scripts/components/headroom.js","webpack:///./scripts/vendor/headroom.js","webpack:///./scripts/components/accordion.js","webpack:///./scripts/components/product.js","webpack:///./scripts/components/image-switcher.js","webpack:///./scripts/components/ze-widget.js","webpack:///./scripts/components/geo.js","webpack:///./scripts/components/copy.js","webpack:///./scripts/components/sticky-cart.js","webpack:///./scripts/components/system-filter.js","webpack:///./scripts/components/section-filter-anchor.js","webpack:///./scripts/components/system-filter-anchor.js","webpack:///./scripts/components/easycom.js","webpack:///./scripts/components/low-stock.js","webpack:///./scripts/components/form.js","webpack:///./scripts/components/thumbnail-filter.js","webpack:///./scripts/components/interstellar/smorgasbord.js","webpack:///./scripts/components/interstellar/type-quote.js","webpack:///./scripts/components/interstellar/list-look.js","webpack:///./scripts/components/interstellar/dropdown.js","webpack:///./scripts/components/interstellar/story.js","webpack:///./styles/main.scss?1226"],"names":["arguments","this"],"mappings":"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ED;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,GAAG;AACH;;AAEA;;AAEA;;AAEA,CAAC;;;;;;;;AChPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAS,OAAO,CAAC,CAAC,EAAE,EAAE,yBAAyB,CAAC,CAAC,OAAO,OAAO,GAAG,UAAU,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,OAAO,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,UAAU,I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GAAE;AACP,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,+BAA+B;AAC1C,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,cAAc;AAC3B;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,2BAA2B;AACtC,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,uBAAuB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,0BAA0B;AACrC,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,WAAW,kBAAkB;AAC7B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;ACt6BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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CA,GAAG;AACH;AACA;AACA;;AAEA,CAAC;;AAED;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;AC/GD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAQ;AACZ,MAAM,uBAAuB;AAC7B,KAAK,mCAAE;AACP;AACA,KAAK;AAAA,oGAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;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A;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC,wDAAwD;AAC7F;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qCAAqC,iBAAiB;AACtD;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,kBAAkB;AACnD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE,KAA0B;AAC5B;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;ACxvBA;AAAA;AAAA;AAAA;AAAkC;AAC+B;AACL;AAC5D,IAAI,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;EACpE,+BAA+B,GAAG,IAAI,CAAC;AACzC,CAAC;AACD,IAAI,uBAAuB,GAAG,IAAI;EAChC,kBAAkB,GAAG,OAAO,4DAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,KAAK,WAAW,G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V,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,IAAI;SAChD,CAAC,CAAC;OACJ;KACF;GACF,CAAC,CAAC;CACJ,C;;;;;;;ACrBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAyD;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAE;;AAEF,kCAAkC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEnjB,kDAAkD,0CAA0C,0DAA0D,EAAE;;AAExJ;;AAEA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA,QAAQ;AACR;;AAEA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,QAAQ;AACxB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA,EAAE;;AAEF;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,EAAE;;AAEF,oDAAoD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE/P,kCAAkC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EA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AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAwC,EAAE,sBAAQ,EAAE,mCAAE;AAC1D;AACA,KAAK;AAAA,oGAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,gDAAgD,IAAI;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gDAAgD,UAAU;AAC1D;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,uCAAgC,OAAO,6jBAAE;AAC7C,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,CAAC;;;;AAID;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,uCAA4B,OAAO,yjBAAE;AACzC,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,uCAAqD,OAAO,klBAAE;AAClE,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAA+B;AACnC,MAAM,0BAA4C;AAClD,KAAK,iCAAE;AACP;AACA,KAAK,gDAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;AAID;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,GAAG;AACH;;AAEA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAA2B;AAC/B,MAAM,0BAAmB;AACzB,KAAK,iCAAE;AACP;AACA,KAAK,gDAAE;AACP,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;AAID;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,uCAA4B,OAAO,yjBAAE;AACzC,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAA8B;AAClC,MAAM,0BAAsB;AAC5B,KAAK,iCAAE;AACP;AACA,KAAK,gDAAE;AACP,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;AAID;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAA+B;AACnC,MAAM,0BAAuB;AAC7B,MAAM,0BAAmB;AACzB,MAAM,0BAAsB;AAC5B,MAAM,0BAAQ;AACd,MAAM,0BAAS;AACf,MAAM,0BAAW;AACjB,KAAK,iCAAE;AACP;AACA,KAAK,gDAAE;AACP,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,+BAA+B;AAC1C,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,cAAc;AAC3B;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,2BAA2B;AACtC,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,uBAAuB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,0BAA0B;AACrC,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,WAAW,kBAAkB;AAC7B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAgC;AACpC,MAAM,0BAAuB;AAC7B,KAAK,iCAAE;AACP;AACA,KAAK,gDAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;AAID;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAgC;AACpC,MAAM,0BAAuB;AAC7B,KAAK,kCAAE;AACP;AACA,KAAK,gDAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;AAID;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yBAAyB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAA2B;AAC/B,MAAM,0BAAY;AAClB,MAAM,2BAAuB;AAC7B,MAAM,0BAAsB;AAC5B,KAAK,kCAAE;AACP;AACA,KAAK,gDAAE;AACP,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;AAID;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO,IAAI,YAAY,OAAO,UAAU,QAAQ;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAuC;AAC3C,MAAM,0BAAY;AAClB,MAAM,0BAAuB;AAC7B,MAAM,0BAAsB;AAC5B,KAAK,kCAAE;AACP;AACA,KAAK,gDAAE;AACP,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAgC;AACpC,MAAM,0BAAY;AAClB,MAAM,0BAAuB;AAC7B,MAAM,0BAAsB;AAC5B,KAAK,kCAAE;AACP;AACA,KAAK,gDAAE;AACP,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;;;;AAIA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAA6B;AACjC,MAAM,0BAAuB;AAC7B,MAAM,0BAAsB;AAC5B,MAAM,0BAAY;AAClB,KAAK,kCAAE;AACP;AACA,KAAK,gDAAE;AACP,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;AAID;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAsC;AAC1C,MAAM,0BAAY;AAClB,MAAM,0BAAsB;AAC5B,KAAK,kCAAE;AACP;AACA,KAAK,gDAAE;AACP,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;AAID;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,WAAW,2BAA2B;AACtC,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,2BAA2B;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAA+B;AACnC,MAAM,0BAAY;AAClB,MAAM,0BAAsB;AAC5B,KAAK,kCAAE;AACP;AACA,KAAK,gDAAE;AACP,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAA4B;AAChC,MAAM,0BAAY;AAClB,MAAM,2BAAQ;AACd,MAAM,2BAAoB;AAC1B,MAAM,2BAAa;AACnB,MAAM,2BAAU;AAChB,MAAM,2BAAmB;AACzB,MAAM,2BAAY;AAClB,KAAK,oCAAE,OAAO;AAAA;AAAA,oHAAE;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAyC;AAC7C,MAAM,2BAAmB;AACzB,MAAM,0BAAsB;AAC5B,KAAK,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAE;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;AAID;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA,+BAA+B;AAC/B;;AAEA;;AAEA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAoC;AACxC,MAAM,0BAAuB;AAC7B,KAAK,kCAAE;AACP;AACA,KAAK,gDAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;;AAEA;;;;AAIA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,WAAW,iCAAiC;AAC5C,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,qBAAqB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA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;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;ACrGD;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,oCAAQ,OAAO;AAAA;AAAA;AAAA;AAAA,oGAAE;AACrB,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA,CAAC;;;;;;;ACxED;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAQ;AACZ,MAAM,sBAAsB;AAC5B,KAAK,mCAAE;AACP;AACA,KAAK;AAAA,oGAAE;AACP,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;ACzMD;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAQ;AACZ,MAAM,sBAAY;AAClB,MAAM,uBAAuB;AAC7B,MAAM,sBAAsB;AAC5B,KAAK,mCAAE;AACP;AACA,KAAK;AAAA,oGAAE;AACP,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO,IAAI,YAAY,OAAO,UAAU,QAAQ;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC;;;;;;;AC5YD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAQ;AACZ,MAAM,uBAAuB;AAC7B,KAAK,mCAAE;AACP;AACA,KAAK;AAAA,oGAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yBAAyB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,CAAC;;;;;;;AC1RD;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAQ;AACZ,MAAM,sBAAY;AAClB,MAAM,uBAAuB;AAC7B,MAAM,sBAAsB;AAC5B,KAAK,mCAAE;AACP;AACA,KAAK;AAAA,oGAAE;AACP,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,CAAC;;;;;;;ACjND;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAQ;AACZ,MAAM,sBAAY;AAClB,MAAM,uBAAuB;AAC7B,MAAM,sBAAsB;AAC5B,KAAK,mCAAE;AACP;AACA,KAAK;AAAA,oGAAE;AACP,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,CAAC;;;;;;;AC1LD;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAQ;AACZ,MAAM,uBAAuB;AAC7B,MAAM,sBAAsB;AAC5B,MAAM,sBAAY;AAClB,KAAK,mCAAE;AACP;AACA,KAAK;AAAA,oGAAE;AACP,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,CAAC;;;;;;;AC7LD;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAQ;AACZ,MAAM,sBAAY;AAClB,MAAM,sBAAsB;AAC5B,KAAK,mCAAE;AACP;AACA,KAAK;AAAA,oGAAE;AACP,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,WAAW,2BAA2B;AACtC,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,2BAA2B;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC;;;;;;;AChKD;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAQ;AACZ,MAAM,sBAAY;AAClB,MAAM,sBAAsB;AAC5B,KAAK,mCAAE;AACP;AACA,KAAK;AAAA,oGAAE;AACP,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;A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C;GACpB,CAAC;;;;;;;;EAQF,KAAK,CAAC,uBAAuB,GAAG,YAAY;IAC1C,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;MAC5C,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB,CAAC,CAAC;GACJ,CAAC;;;;EAIF,OAAO,QAAQ,CAAC;CACjB,CAAC,C;;;;;;ACrnGF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAwC,EAAE,sBAAQ,EAAE,mCAAE;AAC1D;AACA,KAAK;AAAA,oGAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,gDAAgD,IAAI;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gDAAgD,UAAU;AAC1D;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,uCAAgC,OAAO,6jBAAE;AAC7C,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,CAAC;;;;AAID;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,uCAA4B,OAAO,yjBAAE;AACzC,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,uCAAqD,OAAO,klBAAE;AAClE,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAA+B;AACnC,MAAM,0BAA4C;AAClD,KAAK,iCAAE;AACP;AACA,KAAK,gDAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;AAID;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,GAAG;AACH;;AAEA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAwB;AAC5B,QAAQ,0BAAuB;AAC/B,QAAQ,0BAAmB;AAC3B,OAAO,oCACD,OAAO;AAAA;AAAA,oHACR;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB,aAAa;AACb;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAY,cAAc;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,YAAY,cAAc;;AAE1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,cAAc;;AAE1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,cAAc,kBAAkB;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAA4B;AAChC,QAAQ,0BAAuB;AAC/B,QAAQ,0BAAmB;AAC3B,QAAQ,0BAAsB;AAC9B,QAAQ,0BAAQ;AAChB,OAAO,iCACD;AACN;AACA,OAAO,gDACF;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA,WAAW,gBAAgB;AAC3B,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;;AAEA;AACA;AACA,iCAAiC;AACjC,yBAAyB;;AAEzB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,WAAW,iCAAiC;AAC5C,aAAa,MAAM;AACnB;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,iCAAiC;AAC5C,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,QAAQ;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,oCAAoC;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,4BAA4B;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,oCAAoC;AAC/C,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,6BAA6B;AACxC,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,MAAM,GAAG,QAAQ,GAAG,SAAS;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM,GAAG,QAAQ,GAAG,SAAS;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,cAAc;AAC3B;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,yCAAyC;;AAEzC;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAiC;AACrC,QAAQ,0BAAmB;AAC3B,OAAO,oCACD,OAAO;AAAA;AAAA,oHAAE;AACf,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAwC;AAC5C,QAAQ,0BAAmB;AAC3B,QAAQ,0BAAmB;AAC3B,OAAO,oCACD,OAAO;AAAA;AAAA,oHAAE;AACf,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAiC;AACrC,QAAQ,0BAAmB;AAC3B,QAAQ,0BAAmB;AAC3B,OAAO,oCACD,OAAO;AAAA;AAAA,oHAAE;AACf,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;AAID;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,cAAc;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAiD;AACrD,QAAQ,0BAAgB;AACxB,QAAQ,0BAAwB;AAChC,OAAO,oCACD,OAAO;AAAA;AAAA,oHAAE;AACf,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAkD;AACtD,QAAQ,0BAAgB;AACxB,OAAO,oCACD,OAAO;AAAA;AAAA,oHAAE;AACf,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,UAAU;AACV;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAkD;AACtD,QAAQ,0BAAgB;AACxB,OAAO,oCACD,OAAO;AAAA;AAAA,oHAAE;AACf,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA,UAAU;AACV;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAQ;AACZ,QAAQ,0BAAmB;AAC3B,QAAQ,0BAAmB;AAC3B,QAAQ,0BAA4C;AACpD,QAAQ,0BAAsB;AAC9B,QAAQ,0BAAwB;AAChC,QAAQ,0BAA+B;AACvC;AACA,QAAQ,2BAAwC;AAChD,QAAQ,2BAAyC;AACjD,QAAQ,2BAAyC;AACjD,OAAO,mCACD;AACN;AACA,OAAO;AAAA,oGAAC;AACR,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;;;;AAIA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,6BAA6B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;;AAEA,CAAC;;;;;;;;;ACz+GD;AAAA;;;;;;;ACAA;;;;;AAKA,CAAC,UAAU,MAAM,EAAE,OAAO,EAAE;EAC1B,KAA4D,GAAG,OAAO,CAAC,OAAO,EAAE,mBAAO,CAAC,CAAQ,CAAC,EAAE,mBAAO,CAAC,EAAW,CAAC,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;CACvT,CAAC,CAAC,IAAI,EAAE,UAAU,O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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,IAAI;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;AAMD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;;AAEA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA,cAAc;AACd;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd,mBAAmB;AACnB,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,gBAAgB;;AAE5D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,gBAAgB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,qBAAqB,yDAAyD;;AAE9E;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B;AAC/B,2BAA2B;AAC3B,gCAAgC;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gDAAgD;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,cAAc;AAC5B;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA,wBAAwB;AACxB,GAAG;;AAEH;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B,4BAA4B;AAC5B;;AAEA,qCAAqC;AACrC;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,cAAc,OAAO;AACrB,aAAa,WAAW;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,eAAe,cAAc;AAC7B;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,eAAe,mBAAmB;AAClC;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,IAAI;AACJ;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,kCAAkC;;AAElC;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA,WAAW,WAAW;AACtB;;AAEA;AACA;AACA,WAAW,WAAW;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC,aAAa,QAAQ;AACrB,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc;AACd,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B;AAC3B,iDAAiD,uCAAuC,kDAAkD;AAC1I,KAAK;;AAEL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;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AAc,CAAC,CAAC,MAAM,EAAE,CAAC;GACxC;EACD,IAAI,YAAY,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC;EACrD,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC;IACtB,SAAS,EAAE,YAAY;GACxB,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;CACnB,C;;;;;;;;ACrGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6C;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,IAAI;AACf,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA,WAAW,IAAI;AACf;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;;;AAGA;AACA;AACA;AACA;;AAEA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,OAAO,kEAAY;AACxB;AACA,KAAK;AACL,GAAG;AACH;AACA;;;AAGA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG,QAAQ,kEAAY;AACvB;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,GAAG,aAAa;;AAEhB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oEAAoE;AACpE;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;;;AAGA;AACA;AACA;;AAEA,iBAAiB,wBAAwB;AACzC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oDAAoD;AACpD;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA,sEAAsE,aAAa;AACnF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,SAAS;AACtB;;AAEA;AACA,4EAA4E,aAAa;AACzF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,8BAA8B;AAC9B;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEgI;;;;;;;;ACtpBhI;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;ACvLtC;AAAA;AACqC;;AAErC;;AAEA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC,UAAU,IAA6B;AACxC;AACA,CAAC;AACD;AACA;;AAEA,aAAa,qEAAQ;AACN,+DAAM,EAAC;;;;;;;;AClBtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;ACvBA;AAAe;AACf;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;;;;;;;AChBA;;AAEA;AACA,EAAE,KAA4D;AAC9D;AACA;AACA,CAAC,oBAAoB;;AAErB,oCAAoC,0BAA0B,0CAA0C,gBAAgB,OAAO,kBAAkB,EAAE,aAAa,EAAE,OAAO,wBAAwB,EAAE;;AAEnM;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;;AAE7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,wFAAwF,aAAa;AACrG;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,wEAAwE,eAAe;AACvF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,8BAA8B,EAAE,iBAAiB,EAAE,KAAK;AACxD;AACA,qDAAqD;AACrD,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA,sGAAsG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE5Q,sCAAsC,0BAA0B,0CAA0C,gBAAgB,OAAO,kBAAkB,EAAE,aAAa,EAAE,OAAO,wBAAwB,EAAE;;AAErM;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,0BAA0B;AACvC,aAAa,SAAS;AACtB,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,0CAA0C;;AAE1C;AACA;AACA,0CAA0C;;AAE1C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qCAAqC;;AAErC;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA,iDAAiD;;AAEjD;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wDAAwD;AACxD,wDAAwD;AACxD;AACA;AACA,sDAAsD;AACtD,sDAAsD;AACtD;AACA,sDAAsD;AACtD,sDAAsD;AACtD,qEAAqE;AACrE,2DAA2D;AAC3D,mDAAmD;AACnD,2CAA2C;AAC3C,6DAA6D;AAC7D,0DAA0D;AAC1D,6DAA6D;AAC7D,2CAA2C;AAC3C,gDAAgD;AAChD,gDAAgD;AAChD,uCAAuC;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oDAAoD;;AAEpD,6CAA6C;;AAE7C;AACA;AACA;AACA,kCAAkC;AAClC;AACA;;AAEA,qCAAqC;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA;AACA,oCAAoC,gBAAgB;AACpD;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,KAAK;AACrB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mCAAmC;AAC3E;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;AAC3C,gEAAgE,gEAAgE;AAChI;;AAEA;AACA,OAAO,wCAAwC,wFAAwF,oKAAoK,uHAAuH,mBAAmB;AACrb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AA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;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,eAAe,OAAO;AACtB;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;;AAEX;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA,iDAAiD,gCAAgC;AACjF,iDAAiD,gCAAgC;;AAEjF;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,OAAO;AACxB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,kBAAkB;AAClB;;AAEA,KAAK;AACL;AACA;AACA;;AAEA,qBAAqB,UAAU,WAAW;AAC1C;;AAEA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA,0CAA0C,wBAAwB,oBAAoB;AACtF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;;AAEA,4CAA4C,2BAA2B;AACvE,4CAA4C;AAC5C,kEAAkE;;AAElE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,wGAAwG;;AAExG;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,iBAAiB,OAAO;AACxB,iBAAiB,OAAO;AACxB,kBAAkB;AAClB;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA,4FAA4F,0EAA0E;AACtK;;AAEA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA,oDAAoD,iBAAiB;AACrE,oDAAoD,iBAAiB;;AAErE;AACA;;AAEA;;AAEA,0BAA0B,UAAU,WAAW;;AAE/C,4BAA4B;AAC5B,4BAA4B;;AAE5B;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB,kBAAkB;AAClB;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B,iBAAiB,OAAO;AACxB,iBAAiB,OAAO;AACxB;;AAEA,KAAK;AACL;AACA;AACA;AACA,kDAAkD,eAAe;AACjE,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,+EAA+E;AAC/E;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B,iBAAiB,OAAO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","file":"scripts/main.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/wp-content/themes/stellar/dist/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 36);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1f138cd571aa622103ed","module.exports = jQuery;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"jQuery\"\n// module id = 0\n// module chunks = 0 1","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _this = this,\n _arguments = typeof arguments === \"undefined\" ? void 0 : arguments;\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport DOMPurify from \"dompurify\";\n\n// Polyfills\nif (!(\"remove\" in Element.prototype)) {\n Element.prototype.remove = function () {\n if (this.parentNode) {\n this.parentNode.removeChild(this);\n }\n };\n}\nif (!Element.prototype.matches) {\n Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n}\nif (!Element.prototype.closest) {\n Element.prototype.closest = function (s) {\n var el = _this;\n do {\n if (el.matches(s)) return el;\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n return null;\n };\n}\nvar checkTouch = function checkTouch() {\n var $html = $(\"html\");\n if (\"ontouchstart\" in document.documentElement) {\n $html.removeClass(\"no-touchevents\");\n $html.addClass(\"touchevents\");\n }\n if ($html.hasClass(\"no-touchevents\")) {\n $(window).on(\"touchstart.touchTest\", function () {\n $html.removeClass(\"no-touchevents\");\n $html.addClass(\"touchevents\");\n $(window).off(\"touchstart.touchTest\");\n });\n }\n};\nvar isMobile = function isMobile() {\n var result = false;\n (function (a) {\n result = /Android|webOS|iPhone|iPad|BlackBerry|Windows Phone|Opera Mini|IEMobile|Mobile/i.test(a);\n })(navigator.userAgent || navigator.vendor || window.opera);\n return result;\n};\nvar isInView = function isInView(el, view) {\n var rect = el.getBoundingClientRect();\n var html = document.documentElement;\n if (view === \"completely\") {\n // to check if completely visible\n return rect.top >= 0 && rect.bottom <= (window.innerHeight || html.clientHeight);\n }\n if (view === \"partially\") {\n // to check if partially visible\n return rect.bottom >= 0 && rect.top < (window.innerHeight || html.clientHeight);\n }\n\n // if partially visible or above current fold,\n return rect.top < (window.innerHeight || html.clientHeight);\n};\nvar getScript = function getScript(source, callback) {\n var prior = document.getElementsByTagName(\"script\")[0];\n var script = document.createElement(\"script\");\n script.async = 1;\n\n // eslint-disable-next-line no-multi-assign\n script.onload = script.onreadystatechange = function (_, isAbort) {\n if (isAbort || !script.readyState || /loaded|complete/.test(script.readyState)) {\n // eslint-disable-next-line no-multi-assign\n script.onload = script.onreadystatechange = null;\n script = undefined;\n if (!isAbort) {\n if (callback) {\n callback();\n }\n }\n }\n };\n script.src = source;\n prior.parentNode.insertBefore(script, prior);\n};\nvar setCookie = function setCookie(cookieName) {\n var cookieValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var cookieDuration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 365;\n var sameSite = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var d = new Date();\n d.setTime(d.getTime() + cookieDuration * 24 * 60 * 60 * 1000);\n var expires = 'expires=' + d.toUTCString();\n var cookieString = '';\n var value = typeof cookieValue !== \"string\" ? JSON.stringify(cookieValue) : cookieValue;\n cookieString = \"\".concat(cookieName, \"=\").concat(value, \"; \").concat(expires, \"; path=/\");\n if (sameSite) {\n cookieString = \"\".concat(cookieString, \"; \").concat(sameSite);\n }\n document.cookie = cookieString;\n};\nvar getCookie = function getCookie(cookieName) {\n var parseJSON = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var cookieValue = null;\n document.cookie.split(\";\").forEach(function (cookie) {\n if (cookie.indexOf(cookieName) !== -1) {\n cookieValue = cookie.trim().split(\"=\").slice(-1)[0].trim();\n }\n });\n if (parseJSON) {\n return JSON.parse(decodeURIComponent(cookieValue));\n }\n return cookieValue;\n};\nvar deleteCookie = function deleteCookie(cookieName) {\n document.cookie = \"\".concat(cookieName, \"=; expires=Thu, 01 Jan 1970 00:00:01 GMT;\");\n};\nvar getQuery = function getQuery() {\n return window.location.search ? window.location.search.slice(1).split('&').map(function (query) {\n return query.split('=').map(function (p) {\n return window.decodeURIComponent(p).trim();\n });\n }).reduce(function (acc, p) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, p[0], p[1]));\n }, {}) : {};\n};\nvar documentWidth = function documentWidth() {\n var e = window;\n var a = \"inner\";\n if (!(\"innerWidth\" in window)) {\n a = \"client\";\n e = document.documentElement || document.body;\n }\n return {\n width: e[\"\".concat(a, \"Width\")],\n height: e[\"\".concat(a, \"Height\")]\n };\n};\nvar debounce = function debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = _this,\n args = _arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n};\nDOMPurify.addHook(\"afterSanitizeAttributes\", function (node) {\n // set all elements owning target to target=_blank\n if (\"target\" in node) {\n node.setAttribute(\"target\", \"_blank\");\n // prevent https://www.owasp.org/index.php/Reverse_Tabnabbing\n node.setAttribute(\"rel\", \"noopener noreferrer\");\n }\n});\nvar purifier = function purifier(text, config) {\n return DOMPurify.sanitize(text, config);\n};\nexport { checkTouch, isMobile, isInView, getScript, setCookie, getCookie, deleteCookie, getQuery, documentWidth, debounce, purifier };\n\n\n// WEBPACK FOOTER //\n// ./scripts/util/dom.js","var _excluded = [\"email\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport fetchCheckout, { fetchShop } from \"./async\";\nimport { getQuery, setCookie } from \"../util/dom\";\nimport { stokpress } from \"../util/helper\";\nimport { inputError, removeUrlParam } from \"../util/string\";\nimport { deepClone, deepCompare } from \"../util/object\";\nimport store from \"./store\";\nimport { paymentMethodsMap } from \"../config\";\nimport { renderMessage } from \"../partials/top/message-bar\";\nimport { scrollToElement } from \"../components/scroll\";\nimport { handleGeoBasedRedirect as handlePfasGeoBasedRedirect } from \"../components/pfas\";\nexport var setCountry = function setCountry() {\n console.log(\"setCountry\");\n var query = getQuery();\n if (query.hasOwnProperty(\"country\") && query.country && isValidCountry(query.country.toUpperCase())) {\n var queryCountry = query.country;\n var country = query.country.toUpperCase();\n if (!store.getState().store.country || store.getState().store.country && store.getState().store.country != country) {\n console.log(\"set country from query:\", country);\n changeCountry(country).then(function () {\n console.log(\"country changed\");\n $(window).trigger(\"store.setCountry\", store.getState());\n });\n } else {\n $(window).trigger(\"store.setCountry\", store.getState());\n }\n var newParam = removeUrlParam(window.location.search, \"country\", queryCountry);\n window.history.pushState(\"\", \"\", window.location.pathname + newParam);\n } else if (!store.getState().store.country) {\n fetchCheckout(\"/countries/auto\").then(function (data) {\n var country_code = \"NO\";\n var token = \"\";\n if (_typeof(data) === \"object\" && typeof data.country != \"undefined\") {\n country_code = data.country.country;\n token = data.token;\n } else {\n var nav_lang = navigator.language.toLocaleLowerCase();\n switch (nav_lang) {\n case \"nn\":\n case \"no\":\n case \"nb\":\n country_code = \"NO\";\n break;\n case \"ja\":\n country_code = \"JP\";\n break;\n default:\n country_code = \"US\";\n }\n }\n console.log(\"set country\");\n var store_countries = window.sitewide.countries;\n store.dispatch({\n type: \"UPDATE_COUNTRIES\",\n store_countries: store_countries\n });\n var country = store_countries[country_code];\n if (token) {\n country.token = token;\n }\n store.dispatch({\n type: \"UPDATE_ESC_STORE\",\n country: country\n });\n updateProductCache(true);\n setDefaultPaymentMethod(true);\n handlePfasGeoBasedRedirect(country.country || '');\n $(window).trigger(\"store.setCountry\", store.getState());\n $(window).trigger(\"store.changeCountry\", store.getState());\n });\n } else {\n setDefaultPaymentMethod(false);\n $(window).trigger(\"store.setCountry\", store.getState());\n }\n};\nexport var updateGlobalECountry = function updateGlobalECountry() {\n var forceReload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var _store$getState = store.getState(),\n escStore = _store$getState.store;\n\n // Global E geo IP data\n if (escStore && escStore.country) {\n var interval = setInterval(function () {\n if (typeof GEM_Components === 'undefined') {\n return;\n }\n clearInterval(interval);\n if (forceReload) {\n GEM_Components.ExternalMethodsComponent.SetUserLocalization({\n \"CountryCode\": escStore.country,\n \"CurrencyCode\": escStore.currency\n });\n } else {\n GEM_Components.ExternalMethodsComponent.ChangeLocalizeSettings(escStore.country, escStore.currency);\n }\n }, 1000);\n }\n};\nexport var setDefaultPaymentMethod = function setDefaultPaymentMethod() {\n var forceInit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var _store$getState$store = store.getState().store,\n country = _store$getState$store.country,\n token = _store$getState$store.token;\n var _store$getState2 = store.getState(),\n selection = _store$getState2.selection,\n defaultPaymentInitiated = _store$getState2.defaultPaymentInitiated;\n\n // Halt process if default payment already initiated\n if (defaultPaymentInitiated && forceInit === false) return;\n if (selection && Object.keys(selection).length === 0 && selection.constructor === Object) {\n updateSelection(token);\n }\n var _store$getState$selec = store.getState().selection,\n paymentMethod = _store$getState$selec.paymentMethod,\n paymentMethods = _store$getState$selec.paymentMethods;\n var defaultPaymentMethod = window.sitewide.defaultPaymentMethod || {};\n\n /* Default Payment method is not set in sitewide or\r\n * default payment method is set in the current country\r\n */\n if (!defaultPaymentMethod || !defaultPaymentMethod[country]) return; // Default Payment method is not set in sitewide\n\n var method = defaultPaymentMethod[country];\n if (!paymentMethods) return;\n var availablePaymentMethods = paymentMethods.map(function (item) {\n return item.paymentMethod;\n });\n if (method === paymentMethod) return; // default payment method is already set\n if ($.inArray(method, availablePaymentMethods) === -1) return; // default payment method is not available in the country\n\n store.dispatch({\n type: \"SET_DEFAULT_PAYMENT_METHOD\"\n });\n if ($(\"#js-paymentChoices input[value=\".concat(method, \"]\")).length) {\n $(\"#js-paymentChoices input[value=\".concat(method, \"]\")).trigger('click');\n } else {\n changePaymentMethod(method).then(function (data) {\n // Do nothing\n });\n }\n};\nexport var isValidCountry = function isValidCountry(country) {\n return window.sitewide.countries && window.sitewide.countries[country] ? true : false;\n};\nexport var getPaymentInfoItem = function getPaymentInfoItem(key) {\n return key && store.getState().hasOwnProperty(\"\".concat(key)) ? store.getState()[key] : null;\n};\n\n/*\r\n * WP FETCHES\r\n */\nexport var updateProductCache = function updateProductCache(forceReload) {\n /* If last update was more than 10 mins ago update product cache */\n if ((!store.getState().productCache.updated || store.getState().productCache.updated + 6e5 < Date.now() || forceReload) && store.getState().store.pricelist) {\n fetchShop(\"countries\").then(function (countries) {\n store.dispatch({\n type: \"UPDATE_COUNTRIES\",\n countries: countries\n });\n });\n fetchShop(\"geCountries\").then(function (geCountries) {\n store.dispatch({\n type: \"UPDATE_GE_COUNTRIES\",\n geCountries: geCountries\n });\n });\n return fetchShop(\"product_cache/\".concat(store.getState().store.market, \"/\").concat(store.getState().store.pricelist)).then(function (cache) {\n store.dispatch({\n type: \"UPDATE_PRODUCT_CACHE\",\n cache: cache\n });\n store.dispatch({\n type: \"UPDATE_CATEGORY_CACHE\",\n cache: cache\n });\n store.dispatch({\n type: \"UPDATE_BUNDLES_CACHE\",\n cache: cache\n });\n store.dispatch({\n type: \"UPDATE_PRICELIST\",\n cache: cache\n });\n $(window).trigger(\"store.productCache\", store.getState());\n });\n }\n if (store.getState().productCache.items) {\n $(window).trigger(\"store.productCache\", store.getState());\n }\n return false;\n};\n\n// export const getQuickShop = productID => {\n// \tif ( store.getState().quickShop && store.getState().quickShop[productID] ) {\n// \t\treturn new Promise( resolve =>\n// \t\t\tresolve( store.getState().quickShop[productID] )\n// \t\t);\n// \t}\n\n// \treturn fetchShop( `quick_shop/${productID}` ).then( product =>\n// \t\tstore.dispatch( { type: \"QUICK_SHOP\", product, productID } )\n// \t);\n// };\n\nexport var getProductItem = function getProductItem(productID) {\n if (store.getState().productListItems && store.getState().productListItems[productID]) {\n return new Promise(function (resolve) {\n return resolve(store.getState().productListItems[productID]);\n });\n }\n return fetchShop(\"change_product/\".concat(productID)).then(function (product) {\n return store.dispatch({\n type: \"UPDATE_PRODUCT_LIST_ITEM\",\n product: product,\n productID: productID\n });\n });\n};\n\n/*\r\n * JS STORE UPDATES\r\n */\n\n// export const addToFavourites = product =>\n// \tnew Promise( resolve =>\n// \t\tresolve( store.dispatch( { type: \"UPDATE_FAVOURITES\", product } ) )\n// \t);\n\nexport var productListDensity = function productListDensity() {\n return new Promise(function (resolve) {\n return resolve(store.dispatch({\n type: \"PRODUCT_LIST_DENSITY\"\n }));\n });\n};\n\n/*\r\n * CENTRA ACCOUNT\r\n */\n\nexport var toggleLogin = function toggleLogin() {\n return store.dispatch({\n type: \"TOGGLE_LOGIN\"\n });\n};\nexport var entryState = function entryState(state) {\n return store.dispatch({\n type: \"TOGGLE_ACCOUNT_ENTRY\",\n state: state\n });\n};\nexport var forgot = function forgot(token, _ref) {\n var email = _ref.email;\n return fetchCheckout(\"/password-reset-email/\".concat(email), token, {\n linkUri: \"\".concat(window.sitewide.prefix).concat(window.sitewide.loginPage.split(\"/\").filter(function (uri) {\n return !!uri;\n }).slice(-1)[0], \"/\").replace(/^\\/+/, \"\")\n }, \"POST\").then(function (data) {\n return data.hasOwnProperty(\"errors\") ? new Promise(function (resolve, reject) {\n return reject();\n }) : data;\n }).then(function () {\n return store.dispatch({\n type: \"ACCOUNT_FORGOT_SENT\"\n });\n }).catch(function () {\n return store.dispatch({\n type: \"ACCOUNT_FORGOT_FAILED\",\n hasError: true\n });\n });\n};\nexport var resetPassword = function resetPassword(token, args) {\n return fetchCheckout(\"/password-reset\", token, args, \"POST\").then(function (accountData) {\n return store.dispatch({\n type: \"UPDATE_ACCOUNT\",\n data: accountData\n });\n }).catch(function () {\n return store.dispatch({\n type: \"ACCOUNT_ENTRY_FAILED\",\n hasError: true\n });\n });\n};\nexport var login = function login(token, _ref2) {\n var email = _ref2.email,\n args = _objectWithoutProperties(_ref2, _excluded);\n return fetchCheckout(\"/login/\".concat(email), token, args, \"POST\").then(function (accountData) {\n if (accountData.errors && accountData.errors.password) return store.dispatch({\n type: \"SELECTION_ERROR_PASSWORD\",\n hasError: true\n });\n return store.dispatch({\n type: \"UPDATE_ACCOUNT\",\n data: accountData\n });\n }).catch(function () {\n return store.dispatch({\n type: \"ACCOUNT_ENTRY_FAILED\",\n hasError: true\n });\n });\n};\nexport var register = function register(token, args) {\n return fetchCheckout(\"/register\", token, args, \"POST\").then(function (accountData) {\n if (accountData.errors) {\n if (accountData.errors.email) return store.dispatch({\n type: \"SELECTION_ERROR_REGISTERED\",\n hasError: true\n });\n return store.dispatch({\n type: \"ACCOUNT_ENTRY_FAILED\",\n hasError: true\n });\n }\n return store.dispatch({\n type: \"UPDATE_ACCOUNT\",\n data: accountData\n });\n }).catch(function () {\n return store.dispatch({\n type: \"ACCOUNT_ENTRY_FAILED\",\n hasError: true\n });\n });\n};\nexport var entryAccount = function entryAccount(checkoutEntry) {\n var _store$getState$store2 = store.getState().store,\n token = _store$getState$store2.token,\n country = _store$getState$store2.country;\n var _store$getState3 = store.getState(),\n accountEntry = _store$getState3.accountEntry,\n payment = _store$getState3.payment;\n var _payment$address = payment.address,\n email = _payment$address.email,\n emailRepeat = _payment$address.emailRepeat,\n firstName = _payment$address.firstName,\n lastName = _payment$address.lastName,\n password = _payment$address.password,\n passwordRepeat = _payment$address.passwordRepeat,\n newsletter = _payment$address.newsletter;\n var errors = {\n address: {}\n };\n if ([\"register\", \"forgot\", \"login\"].indexOf(accountEntry) !== -1 && inputError(email, \"email\")) {\n errors.address.email = 1;\n }\n if ([\"register\", \"reset\", \"login\"].indexOf(accountEntry) !== -1 && inputError(password, \"password\")) {\n errors.address.password = 1;\n }\n if ([\"register\", \"reset\"].indexOf(accountEntry) !== -1 && password !== passwordRepeat) {\n errors.address.passwordRepeat = 1;\n }\n if ([\"register\"].indexOf(accountEntry) !== -1) {\n if (email !== emailRepeat) errors.address.emailRepeat = 1;\n if (inputError(firstName)) errors.address.firstName = 1;\n if (inputError(lastName)) errors.address.lastName = 1;\n if (!payment.termsAndConditions) errors.termsAndConditions = 1;\n }\n if (!deepCompare(errors, {\n address: {}\n })) {\n store.dispatch({\n type: \"FORM_ERRORS\",\n errors: errors\n });\n return new Promise(function (resolve, reject) {\n return reject();\n });\n }\n\n // Route to correct connect\n if (accountEntry === \"reset\") {\n return resetPassword(token, _objectSpread({\n newPassword: password\n }, getQuery()));\n }\n if (accountEntry === \"forgot\") {\n return forgot(token, {\n email: email\n });\n }\n if (accountEntry === \"login\" || checkoutEntry === \"login\") {\n return login(token, {\n email: email,\n password: password\n });\n }\n return register(token, {\n email: email,\n password: password,\n firstName: firstName,\n lastName: lastName,\n newsletter: newsletter,\n country: country\n });\n};\nexport var accountOrders = function accountOrders() {\n var token = store.getState().store.token;\n var _store$getState$accou = store.getState().account.orders,\n orders = _store$getState$accou === void 0 ? [] : _store$getState$accou;\n return fetchCheckout(\"/orders\", token, {\n size: 3,\n from: orders.length\n }, \"POST\").then(function (data) {\n store.dispatch({\n type: \"UPDATE_ACCOUNT\",\n data: data\n });\n return store.dispatch({\n type: \"ACCOUNT_ORDERS\",\n data: data\n });\n }).catch(function (err) {\n return store.dispatch({\n type: \"ACCOUNT_ORDERS_FAILED\",\n err: err\n });\n });\n};\nexport var updateAccountAddress = function updateAccountAddress() {\n var token = store.getState().store.token;\n var _store$getState4 = store.getState(),\n countries = _store$getState4.countries,\n payment = _store$getState4.payment;\n var args = {};\n var errors = {\n address: {}\n };\n var requiredFields = [\"firstName\", \"lastName\", \"address1\", \"zipCode\", \"city\", \"phoneNumber\", \"country\"];\n Object.keys(payment.address).forEach(function (input) {\n var value = payment.address[input];\n var checkStates = input === \"state\" && countries[payment.address.country].states;\n if (checkStates && !checkStates[value]) errors.address.state = 1;\n if (requiredFields.indexOf(input) !== -1 && inputError(value, input)) errors.address[input] = 1;\n if (input.indexOf(\"password\") === -1 && input.indexOf(\"email\") === -1) {\n args[input] = value;\n }\n });\n if (!deepCompare(errors, {\n address: {}\n })) {\n store.dispatch({\n type: \"FORM_ERRORS\",\n errors: errors\n });\n return new Promise(function (resolve, reject) {\n return reject();\n });\n }\n return fetchCheckout(\"/customer/update\", token, args, \"PUT\").then(function (data) {\n return store.dispatch({\n type: \"UPDATE_ACCOUNT\",\n data: data\n });\n }).catch(function () {\n return store.dispatch({\n type: \"UPDATE_ACCOUNT_FAILED\"\n });\n });\n};\nexport var updateAccountEmail = function updateAccountEmail() {\n var token = store.getState().store.token;\n var _store$getState$payme = store.getState().payment.address,\n emailNew = _store$getState$payme.emailNew,\n emailNewRepeat = _store$getState$payme.emailNewRepeat;\n var errors = {\n address: {}\n };\n if (inputError(emailNew, \"email\")) errors.address.emailNew = 1;\n if (emailNew !== emailNewRepeat) errors.address.emailNewRepeat = 1;\n if (!deepCompare(errors, {\n address: {}\n })) {\n store.dispatch({\n type: \"FORM_ERRORS\",\n errors: errors\n });\n return new Promise(function (resolve, reject) {\n return reject();\n });\n }\n return fetchCheckout(\"/email\", token, {\n newEmail: emailNew\n }, \"PUT\").then(function (data) {\n if (data.errors && data.errors.newEmail) return store.dispatch({\n type: \"SELECTION_ERROR_REGISTERED\",\n hasError: true\n });\n return store.dispatch({\n type: \"UPDATE_ACCOUNT\",\n data: data\n });\n }).catch(function () {\n return store.dispatch({\n type: \"UPDATE_ACCOUNT_FAILED\"\n });\n });\n};\nexport var updateAccountPassword = function updateAccountPassword() {\n var token = store.getState().store.token;\n var _store$getState$payme2 = store.getState().payment.address,\n passwordNew = _store$getState$payme2.passwordNew,\n passwordNewRepeat = _store$getState$payme2.passwordNewRepeat,\n passwordOld = _store$getState$payme2.passwordOld;\n var errors = {\n address: {}\n };\n if (inputError(passwordOld, \"password\")) errors.address.passwordOld = 1;\n if (inputError(passwordNew, \"password\")) errors.address.passwordNew = 1;\n if (passwordNew !== passwordNewRepeat) errors.address.passwordNewRepeat = 1;\n if (!deepCompare(errors, {\n address: {}\n })) {\n store.dispatch({\n type: \"FORM_ERRORS\",\n errors: errors\n });\n return new Promise(function (resolve, reject) {\n return reject();\n });\n }\n return fetchCheckout(\"/password\", token, {\n password: passwordOld,\n newPassword: passwordNew\n }, \"PUT\").then(function (data) {\n if (data.errors && data.errors.password) return store.dispatch({\n type: \"SELECTION_ERROR_PASSWORD\",\n hasError: true\n });\n return store.dispatch({\n type: \"UPDATE_ACCOUNT\",\n data: data\n });\n }).catch(function () {\n return store.dispatch({\n type: \"UPDATE_ACCOUNT_FAILED\"\n });\n });\n};\nexport var updateAccountConsents = function updateAccountConsents() {\n var token = store.getState().store.token;\n var _store$getState$payme3 = store.getState().payment.address,\n newsletter = _store$getState$payme3.newsletter,\n firstName = _store$getState$payme3.firstName,\n lastName = _store$getState$payme3.lastName;\n\n /*\r\n Centra requires sending in firstName and lastName for some reason.\r\n This can cause a small issue where the customer inadvertently updates\r\n their firstName and lastName in another form due to pulling the data\r\n from the store instead of the form.\r\n A small risk but no large consequences of doing so.\r\n */\n return fetchCheckout(\"/customer/update\", token, {\n newsletter: newsletter,\n firstName: firstName,\n lastName: lastName\n }, \"PUT\").then(function (data) {\n return store.dispatch({\n type: \"UPDATE_ACCOUNT\",\n data: data\n });\n }).catch(function () {\n return store.dispatch({\n type: \"UPDATE_ACCOUNT_FAILED\"\n });\n });\n};\nexport var logoutAccount = function logoutAccount() {\n var token = store.getState().store.token;\n return fetchCheckout(\"/logout\", token, {}, \"POST\").then(function () {\n return store.dispatch({\n type: \"ACCOUNT_LOGOUT\"\n });\n }).catch(function () {\n return store.dispatch({\n type: \"ACCOUNT_LOGOUT_FAILED\"\n });\n });\n};\n\n/*\r\n * CENTRA ECOMMERCE\r\n */\n\nexport var removeInvalidPaymentFields = function removeInvalidPaymentFields(paymentData, countries, country, useShippingAddress) {\n var keepPassword = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n var returnData = deepClone(paymentData);\n\n // Temporary state\n delete returnData.createAccount;\n delete returnData.loggedIn;\n delete returnData.voyadoId;\n delete returnData.dutyConsent;\n\n // Account fields\n delete returnData.address.emailOld;\n delete returnData.address.emailNew;\n delete returnData.address.emailRepeat;\n delete returnData.address.emailNewRepeat;\n if (!keepPassword) delete returnData.address.password;\n delete returnData.address.passwordNew;\n delete returnData.address.passwordRepeat;\n delete returnData.address.passwordNewRepeat;\n delete returnData.address.passwordOld;\n\n // Add required fields\n if (useShippingAddress) {\n returnData.shippingAddress.country = country;\n } else {\n returnData.address = paymentData.shippingAddress;\n delete returnData.shippingAddress;\n }\n returnData.address.country = returnData.address.country || country;\n\n // Check that state is correct and applicable else remove.\n if (!(returnData.address.state && returnData.address.country && countries[returnData.address.country].states && countries[returnData.address.country].states[returnData.address.state])) delete returnData.address.state;\n // Check that state is correct and applicable else remove.\n if (returnData.shippingAddress && !(returnData.shippingAddress.state && returnData.shippingAddress.country && countries[returnData.shippingAddress.country].states && countries[returnData.shippingAddress.country].states[returnData.shippingAddress.state])) delete returnData.shippingAddress.state;\n returnData.paymentFailedPage = window.sitewide.paymentFailedPage;\n returnData.paymentReturnPage = window.sitewide.paymentReturnPage;\n return returnData;\n};\nexport var updateSelection = function updateSelection(token) {\n if (token == \"\") {\n var country = store.getState().store.country;\n changeCountry(country);\n console.log(\"resetup country\");\n return false;\n }\n return fetchCheckout(\"/selection\", token, [], \"GET\").then(function (data) {\n if (data.errors) return store.dispatch({\n type: \"UPDATE_SELECTION_ERROR\"\n });\n return store.dispatch({\n type: \"UPDATE_SELECTION\",\n data: data\n });\n }).catch(function (err) {\n return console.log(\"DEBUG: err\", err);\n });\n};\nexport var toggleGiftWrap = function toggleGiftWrap() {\n return store.dispatch({\n type: \"TOGGLE_GIFT_WRAP\"\n });\n};\nexport var subscribeToNewsletter = function subscribeToNewsletter(email, item, gender, country, language) {\n var _store$getState$store3 = store.getState().store,\n token = _store$getState$store3.token,\n escCountry = _store$getState$store3.country;\n var payload = {};\n if (item !== undefined) {\n payload.item = item;\n }\n if (gender !== undefined) {\n payload.gender = gender;\n }\n if (country !== undefined) {\n payload.country = country;\n } else if (escCountry !== undefined) {\n payload.country = escCountry;\n }\n if (language !== undefined) {\n payload.language = language;\n }\n return fetchCheckout(\"/newsletter-subscription/\".concat(email), token, payload, \"POST\").then(function () {\n return store.dispatch({\n type: \"SUBSCRIBED\",\n email: email\n });\n }).catch(function (err) {\n return console.log(\"DEBUG: error when subscribing to newsletter \", err);\n });\n};\nexport var addToBag = function addToBag(item) {\n var quantity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var _store$getState$store4 = store.getState().store,\n token = _store$getState$store4.token,\n country = _store$getState$store4.country;\n var _store$getState5 = store.getState(),\n selection = _store$getState5.selection;\n\n // Check if there's no selection exists\n if (!country) {\n setCountry();\n } else if (Object.keys(selection).length === 0 || !token) {\n updateSelection(token || \"\");\n }\n return fetchCheckout(\"/items/\".concat(item, \"/quantity/\").concat(quantity), token, [], \"POST\").then(function (data) {\n if (data.errors) return store.dispatch({\n type: \"ADD_TO_BAG_ERROR\"\n });\n return store.dispatch({\n type: \"UPDATE_SELECTION\",\n data: data\n });\n }).catch(function (err) {\n return console.log(\"DEBUG: err\", err);\n });\n};\nexport var changeQuantity = function changeQuantity(line, quantity) {\n var token = store.getState().store.token;\n var _store$getState6 = store.getState(),\n _store$getState6$sele = _store$getState6.selection,\n selection = _store$getState6$sele === void 0 ? {} : _store$getState6$sele;\n\n // Before removing an item, check if there's another item with similar line. If it exists, remove only 1 instead all of it.\n if (quantity === 0) {\n var similarItemCount = selection.items.filter(function (item) {\n return item.line === line;\n }).length;\n quantity = similarItemCount <= 1 ? 0 : similarItemCount - 1;\n }\n return fetchCheckout(\"/lines/\".concat(line, \"/quantity/\").concat(quantity), token, [], \"PUT\").then(function (data) {\n store.dispatch({\n type: \"UPDATE_SELECTION\",\n data: data\n });\n return data;\n }).catch(function (err) {\n return console.log(\"DEBUG: err\", err);\n });\n};\nexport var bulkChangeQuantity = function bulkChangeQuantity(lines) {\n var token = store.getState().store.token;\n return fetchCheckout(\"/items\", token, {\n lines: lines\n }, \"PUT\").then(function (data) {\n return store.dispatch({\n type: \"UPDATE_SELECTION\",\n data: data\n });\n }).catch(function (err) {\n return console.log(\"DEBUG: err\", err);\n });\n};\nexport var changeSize = function changeSize(product, line, quantity, newItem) {\n var token = store.getState().store.token;\n\n // Remove previous product\n return fetchCheckout(\"/lines/\".concat(line, \"/quantity/0\"), token, [], \"PUT\").then(function () {\n return fetchCheckout(\"/items/\".concat(newItem, \"/quantity/\").concat(quantity), token, [], \"POST\");\n }).then(function (data) {\n return store.dispatch({\n type: \"UPDATE_SELECTION\",\n data: data\n });\n }).catch(function (err) {\n return console.log(\"DEBUG: err\", err);\n });\n};\nexport var changeCountry = function changeCountry(country) {\n var _$;\n var _store$getState7 = store.getState(),\n countries = _store$getState7.countries;\n if (!countries[country] || !countries[country].shipTo) return new Promise(function (_, reject) {\n return reject();\n });\n var token = store.getState().store.token;\n var storeCountry = countries[country];\n storeCountry.token = token;\n resetCheckoutFields(country, \"\");\n store.dispatch({\n type: \"UPDATE_ESC_STORE\",\n country: storeCountry\n });\n (_$ = $(\".js-loader\")) === null || _$ === void 0 ? void 0 : _$.removeClass(\"d-none\");\n return fetchCheckout(\"/countries/\".concat(country), token, [], \"PUT\").then(function (data) {\n store.dispatch({\n type: \"UPDATE_SELECTION\",\n data: data\n });\n return updateProductCache(true).then(function () {\n var _$2;\n renderMessage();\n setDefaultPaymentMethod(true);\n $(window).trigger(\"store.changeCountry\", store.getState());\n (_$2 = $(\".js-loader\")) === null || _$2 === void 0 ? void 0 : _$2.addClass(\"d-none\");\n return data;\n }).catch(function (err) {\n return console.log(\"DEBUG: err\", err);\n });\n }).catch(function (err) {\n return console.log(\"DEBUG: err\", err);\n });\n};\nexport var updateLanguage = function updateLanguage(language) {\n var _store$getState8 = store.getState(),\n countries = _store$getState8.countries;\n var country = store.getState().store.country;\n\n // Dummy function to enable thens if no sign in required.\n if (!countries[country] || !countries[country].language) return new Promise(function (resolve) {\n return resolve();\n });\n var token = store.getState().store.token;\n if (!language) language = countries[country].language;\n var storeCountry = countries[country];\n storeCountry.language = language;\n storeCountry.token = token;\n store.dispatch({\n type: \"UPDATE_ESC_STORE\",\n country: storeCountry\n });\n return fetchCheckout(\"/languages/\".concat(language), token, [], \"PUT\").then(function (data) {\n store.dispatch({\n type: \"UPDATE_SELECTION\",\n data: data\n });\n updateProductCache(true);\n }).catch(function (err) {\n return console.log(\"DEBUG: err\", err);\n });\n};\nexport var changePaymentMethod = function changePaymentMethod(method) {\n var token = store.getState().store.token;\n return fetchCheckout(\"/payment-methods/\".concat(method), token, [], \"PUT\").then(function (data) {\n return store.dispatch({\n type: \"UPDATE_SELECTION\",\n data: data\n });\n }).catch(function (err) {\n return console.log(\"DEBUG: err\", err);\n });\n};\nexport var changeShippingMethod = function changeShippingMethod(method) {\n var token = store.getState().store.token;\n return fetchCheckout(\"/shipping-methods/\".concat(method), token, [], \"PUT\").then(function (data) {\n return store.dispatch({\n type: \"UPDATE_SELECTION\",\n data: data\n });\n }).catch(function (err) {\n return console.log(\"DEBUG: err\", err);\n });\n};\nexport var addVoucher = function addVoucher(voucherCode) {\n var token = store.getState().store.token;\n if (inputError(voucherCode)) {\n store.dispatch({\n type: \"VOUCHER_ERROR\"\n });\n return new Promise(function (resolve, reject) {\n return reject();\n });\n }\n return fetchCheckout(\"/vouchers\", token, {\n voucher: voucherCode\n }, \"POST\").then(function (data) {\n if (data.errors) return store.dispatch({\n type: \"VOUCHER_ERROR\"\n });\n store.dispatch({\n type: \"VOUCHER_INPUT\",\n value: \"\"\n });\n return store.dispatch({\n type: \"UPDATE_SELECTION\",\n data: data\n });\n }).catch(function (err) {\n return console.log(\"DEBUG: err\", err);\n });\n};\nexport var removeVoucher = function removeVoucher(voucherId) {\n var token = store.getState().store.token;\n return fetchCheckout(\"/vouchers/\".concat(voucherId), token, {}, \"DELETE\").then(function (data) {\n return store.dispatch({\n type: \"UPDATE_SELECTION\",\n data: data\n });\n }).catch(function (err) {\n return console.log(\"DEBUG: err\", err);\n });\n};\nexport var forceTermsAndCondition = function forceTermsAndCondition(value) {\n var termsAndConditions = store.getState().payment.termsAndConditions;\n if (termsAndConditions !== undefined && Boolean(termsAndConditions) === Boolean(value)) return;\n store.dispatch({\n type: \"UPDATE_ADDRESS\",\n group: \"\",\n id: \"termsAndConditions\",\n value: value\n });\n};\nexport var changeAddressInput = function changeAddressInput(group, id, value) {\n return store.dispatch({\n type: \"UPDATE_ADDRESS\",\n group: group,\n id: id,\n value: value\n });\n};\nexport var changeUseShippingInput = function changeUseShippingInput() {\n return store.dispatch({\n type: \"BOOLEAN_CHANGE\",\n id: \"useShipping\"\n });\n};\nexport var changeGiftWrapInput = function changeGiftWrapInput(value) {\n var _store$getState$payme4 = store.getState().payment.additionalNotes,\n additionalNotes = _store$getState$payme4 === void 0 ? \"\" : _store$getState$payme4;\n // Need to clip out first line to ensure it remains.\n store.dispatch({\n type: \"UPDATE_ADDRESS\",\n group: \"\",\n id: \"additionalNotes\",\n value: \"\".concat(additionalNotes.match(/^(.*[\\s]*)/)[0]).concat(value)\n });\n};\nexport var changeSelectionFailedStatus = function changeSelectionFailedStatus(hasError) {\n setCookie(\"renderSelectionError\", true);\n return store.dispatch({\n type: \"SELECTION_FAILED\",\n hasError: hasError\n });\n};\nexport var initiateIngrid = function initiateIngrid() {\n var country = store.getState().store.country;\n var _store$getState9 = store.getState(),\n shipwallet = _store$getState9.shipwallet,\n countries = _store$getState9.countries;\n if (shipwallet == undefined) return;\n $(\"#js-shipwalletSnippet\").height(\"\");\n if (typeof countries !== \"undefined\" && countries[country] && countries[country].shipTo && shipwallet.sessionId && shipwallet.snippet) {\n $(\"#js-shipwalletSnippet\").html(shipwallet.snippet);\n } else {\n $(\"#js-shipwalletSnippet\").html(\"
\".concat(window.sitewide.ingridError, \"
\"));\n }\n};\nexport var resetCheckoutFields = function resetCheckoutFields(country, state) {\n var token = store.getState().store.token;\n if (!token) {\n console.log(\"no token in store\");\n return;\n }\n var paymentData = {\n address: {\n country: country,\n state: state,\n zipCode: null\n },\n shippingAddress: {\n country: country,\n state: state,\n zipCode: null\n }\n };\n Object.keys(paymentData.address).forEach(function (id) {\n changeAddressInput(\"address\", id, paymentData.address[id]);\n });\n Object.keys(paymentData.shippingAddress).forEach(function (id) {\n changeAddressInput(\"shippingAddress\", id, paymentData.shippingAddress[id]);\n });\n return fetchCheckout(\"/payment-fields\", token, paymentData, \"PUT\").then(function (data) {\n if (data.errors) {\n return store.dispatch({\n type: \"SELECTION_ERROR\",\n hasError: true\n });\n }\n return store.dispatch({\n type: \"UPDATE_SELECTION\",\n data: data\n });\n }).catch(function (err) {\n return console.log(\"DEBUG: err\", err);\n });\n};\nexport var updateIngrid = function updateIngrid(data) {\n var _store$getState$store5 = store.getState().store,\n token = _store$getState$store5.token,\n country = _store$getState$store5.country;\n var _store$getState10 = store.getState(),\n useShippingAddress = _store$getState10.useShippingAddress;\n var paymentData = {};\n if (data.additionalFields.event === \"shipwallet_shipping_option_changed\") {\n paymentData.additionalFields = data.additionalFields;\n }\n if (data.address) {\n paymentData.address = data.address;\n }\n if (paymentData.address) {\n Object.keys(paymentData.address).forEach(function (id) {\n if (!useShippingAddress) changeAddressInput(\"address\", id, paymentData.address[id]);\n changeAddressInput(\"shippingAddress\", id, paymentData.address[id]);\n });\n }\n if (paymentData.shippingAddress) {\n Object.keys(paymentData.shippingAddress).forEach(function (id) {\n changeAddressInput(\"shippingAddress\", id, paymentData.shippingAddress[id]);\n });\n }\n if (data.address && paymentData.address) {\n paymentData.address.country = country;\n }\n return fetchCheckout(\"/payment-fields\", token, paymentData, \"PUT\").then(function (data) {\n if (data.errors) {\n return store.dispatch({\n type: \"SELECTION_ERROR\",\n hasError: true\n });\n }\n return store.dispatch({\n type: \"UPDATE_SELECTION\",\n data: data\n });\n }).catch(function (err) {\n return console.log(\"DEBUG: err\", err);\n });\n};\nexport var initiateKlarna = function initiateKlarna() {\n var token = store.getState().store.token;\n var _store$getState11 = store.getState(),\n _store$getState11$sel = _store$getState11.selection,\n selection = _store$getState11$sel === void 0 ? {} : _store$getState11$sel;\n var hasKlarnaCheckout = paymentMethodsMap.klarnaCheckout.indexOf(selection.paymentMethod) !== -1;\n if (!hasKlarnaCheckout || !window.CentraCheckout) return new Promise(function (resolve, reject) {\n return reject();\n });\n var paymentData = {};\n paymentData.paymentFailedPage = window.sitewide.paymentFailedPage;\n paymentData.paymentReturnPage = window.sitewide.paymentReturnPage;\n return fetchCheckout(\"/payment\", token, paymentData, \"POST\").then(function (data) {\n if (data.errors && data.errors.stock) {\n store.dispatch({\n type: \"UPDATE_SELECTION\",\n data: data\n });\n return store.dispatch({\n type: \"INITIATE_SELECTION\",\n data: {\n formHtml: \"\"\n },\n error: \"SELECTION_ERROR_STOCK\"\n });\n }\n if (data.errors) {\n store.dispatch({\n type: \"UPDATE_SELECTION\",\n data: data\n });\n return store.dispatch({\n type: \"INITIATE_SELECTION\",\n data: {\n formHtml: \"\"\n },\n error: \"SELECTION_ERROR_PAYMENT\"\n });\n }\n console.log(data);\n return store.dispatch({\n type: \"INITIATE_SELECTION\",\n data: data\n });\n }).catch(function (err) {\n return console.log(\"DEBUG: err\", err);\n });\n};\nexport var updateKlarna = function updateKlarna() {\n var _store$getState12 = store.getState(),\n useShippingAddress = _store$getState12.useShippingAddress,\n countries = _store$getState12.countries;\n var _store$getState$store6 = store.getState().store,\n token = _store$getState$store6.token,\n country = _store$getState$store6.country;\n var paymentData = removeInvalidPaymentFields(store.getState().payment, countries, country, useShippingAddress);\n delete paymentData.termsAndConditions;\n if (window.CentraCheckout) {\n window.CentraCheckout.suspend();\n }\n return fetchCheckout(\"/payment-fields\", token, paymentData, \"PUT\").then(function (data) {\n return store.dispatch({\n type: \"PAYMENT_RETURN\",\n data: data\n });\n }).catch(function (err) {\n return console.log(\"DEBUG: err\", err);\n });\n};\nexport var checkDutyConsent = function checkDutyConsent() {\n var totals = store.getState().selection.totals;\n var country = store.getState().store.country;\n var dutyConsent = window.sitewide.dutyconsent;\n var duty = dutyConsent.country[country];\n var grandtotal = totals ? totals.grandTotalPriceAsNumber : 0;\n return duty !== undefined && (duty.required || false) && grandtotal >= parseFloat(duty.price_limit);\n};\nvar adyenEvaluate = function adyenEvaluate(subtree) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;\n function getSnippetType(script) {\n return script.type || \"\";\n }\n function getRawSnippet(script) {\n return script.text || script.textContent || script.innerHTML || \"\";\n }\n if (subtree) {\n try {\n var scripts = subtree.getElementsByTagName(\"script\");\n var scriptsAsArray = Array.from(scripts).filter(function (script) {\n return getSnippetType(script) !== \"application/json\";\n });\n scriptsAsArray.forEach(function (script) {\n var unescaped = getRawSnippet(script).replace(/\\\\/gi, \"\");\n eval.call(context, unescaped); // eslint-disable-line no-eval\n });\n } catch (error) {\n console.error(\"Catched error in evaluate function:\", error);\n }\n }\n};\nvar paymentSelected = function paymentSelected(event) {\n var _store$getState13 = store.getState(),\n useShippingAddress = _store$getState13.useShippingAddress,\n countries = _store$getState13.countries;\n var _store$getState$store7 = store.getState().store,\n token = _store$getState$store7.token,\n country = _store$getState$store7.country;\n var _event$detail = event.detail,\n paymentMethodSpecificFields = _event$detail.paymentMethodSpecificFields,\n paymentMethod = _event$detail.paymentMethod,\n responseEventRequired = _event$detail.responseEventRequired;\n var storeFields = removeInvalidPaymentFields(store.getState().payment, countries, country, useShippingAddress);\n var paymentData = _objectSpread({\n paymentMethod: paymentMethod,\n paymentMethodSpecificFields: paymentMethodSpecificFields\n }, storeFields);\n return fetchCheckout(\"/payment\", token, paymentData, \"POST\").then(function (response) {\n if (responseEventRequired) {\n if (response.action === \"redirect\") {\n window.location.href = response.url;\n return;\n }\n if (response.action === \"success\") {\n window.location.href = window.sitewide.paymentReturnPage;\n return;\n }\n if (response.errors) {\n // Payment failed for some reason, show error\n store.dispatch({\n type: \"SELECTION_ERROR\",\n hasError: true\n });\n }\n // action is javascript\n if (response.formFields) {\n var returnObject = response.formFields;\n var updateEvent = new CustomEvent(\"centra_checkout_payment_response\", {\n detail: returnObject\n });\n document.dispatchEvent(updateEvent);\n } else {\n store.dispatch({\n type: \"SELECTION_ERROR\",\n hasError: true\n });\n }\n }\n }).catch(function (err) {\n return console.log(err);\n });\n};\nexport var purchase = function purchase(enableScroll) {\n var _store$getState14 = store.getState(),\n useShippingAddress = _store$getState14.useShippingAddress,\n countries = _store$getState14.countries;\n var paymentFields = store.getState().selection.paymentFields;\n var _store$getState$store8 = store.getState().store,\n token = _store$getState$store8.token,\n country = _store$getState$store8.country;\n var paymentData = deepClone(store.getState().payment);\n var hasErrors = false;\n var keepPassword = false;\n // Dummy function to enable thens if no sign in required.\n var createAccountFirst = function createAccountFirst() {\n return new Promise(function (resolve) {\n return resolve();\n });\n };\n\n // Remove account information if not creating an account.\n if (!paymentData.createAccount) {\n delete paymentData.address.password;\n store.dispatch({\n type: \"UPDATE_ERRORS\",\n group: \"address\",\n id: \"password\",\n error: false\n });\n store.dispatch({\n type: \"UPDATE_ERRORS\",\n group: \"address\",\n id: \"passwordRepeat\",\n error: false\n });\n } else {\n // Create account\n if (inputError(paymentData.address.password, \"password\")) {\n hasErrors = true;\n store.dispatch({\n type: \"UPDATE_ERRORS\",\n group: \"address\",\n id: \"password\",\n error: true\n });\n }\n if (paymentData.address.password !== paymentData.address.passwordRepeat) {\n hasErrors = true;\n store.dispatch({\n type: \"UPDATE_ERRORS\",\n group: \"address\",\n id: \"passwordRepeat\",\n error: true\n });\n }\n keepPassword = true;\n createAccountFirst = function createAccountFirst() {\n return register(token, paymentData.address);\n };\n }\n if (checkDutyConsent() && paymentData.dutyConsent !== \"true\") {\n hasErrors = true;\n store.dispatch({\n type: \"SELECTION_ERROR_DUTY_CONSENT\",\n hasError: true\n });\n }\n paymentData = removeInvalidPaymentFields(paymentData, countries, country, useShippingAddress, keepPassword);\n\n // Check for errors.\n Object.keys(paymentFields).forEach(function (firstLevel) {\n if (firstLevel === \"address\" || firstLevel === \"shippingAddress\" && useShippingAddress) {\n Object.keys(paymentFields[firstLevel]).forEach(function (secondLevel) {\n var field = firstLevel === \"shippingAddress\" ? paymentFields.address[secondLevel] : paymentFields[firstLevel][secondLevel];\n\n // We've already evaluated these.\n if (secondLevel === \"password\" || secondLevel === \"passwordRepeat\") return;\n if (field.visible && field.required) {\n // We should have a value. Is it correct?\n var fieldType = secondLevel === \"email\" ? \"email\" : \"text\";\n var fieldValue = paymentData[firstLevel][secondLevel];\n if (secondLevel === \"phoneNumber\") {\n fieldType = \"phoneNumber\";\n } else if (secondLevel === \"zipCode\") {\n fieldType = \"zipCode\";\n fieldValue = {\n country: country,\n zipCode: paymentData[firstLevel][secondLevel]\n };\n } else if (/address/i.test(secondLevel)) {\n fieldType = \"address\";\n }\n var error = inputError(fieldValue, fieldType);\n if (error) {\n store.dispatch({\n type: \"UPDATE_ERRORS\",\n group: firstLevel,\n id: secondLevel,\n error: error\n });\n\n // Set address counterpart as error too if not using shipping address\n if (firstLevel === \"address\" && !useShippingAddress) {\n store.dispatch({\n type: \"UPDATE_ERRORS\",\n group: \"shippingAddress\",\n id: secondLevel,\n error: error\n });\n }\n hasErrors = true;\n }\n }\n });\n } else if (firstLevel !== \"shippingAddress\") {\n var field = paymentFields[firstLevel];\n if (field.visible && field.required) {\n // We should have a value. Is it correct?\n var error = inputError(paymentData[firstLevel], \"text\");\n if (error) {\n store.dispatch({\n type: \"UPDATE_ERRORS\",\n id: firstLevel,\n error: error\n });\n hasErrors = true;\n }\n }\n }\n });\n if (paymentData.address.country && countries[paymentData.address.country] && !countries[paymentData.address.country].shipTo) {\n // Country shipto is not enabled\n hasErrors = true;\n store.dispatch({\n type: \"UPDATE_ERRORS\",\n group: \"address\",\n id: \"country\",\n error: true\n });\n }\n if (!paymentData.address.state && countries[paymentData.address.country] && countries[paymentData.address.country].states) {\n // Missing state\n hasErrors = true;\n var group = useShippingAddress ? \"address\" : \"shippingAddress\";\n store.dispatch({\n type: \"UPDATE_ERRORS\",\n group: group,\n id: \"state\",\n error: true\n });\n }\n if (useShippingAddress && !paymentData.shippingAddress.state && countries[paymentData.shippingAddress.country] && countries[paymentData.shippingAddress.country].states) {\n // Missing shipping state\n hasErrors = true;\n store.dispatch({\n type: \"UPDATE_ERRORS\",\n group: \"shippingAddress\",\n id: \"state\",\n error: true\n });\n }\n if (hasErrors) {\n $(\"#checkout-adyen\").hide();\n\n // Scroll to error\n var visibleError = $(\".has-error:visible,.is-invalid:visible\");\n if (visibleError.length > 0 && !stokpress.isInView(visibleError.first()[0], \"completely\")) {\n scrollToElement(visibleError.first().parent(), 20);\n }\n return store.dispatch({\n type: \"SELECTION_ERROR\",\n hasError: true\n });\n }\n if (!useShippingAddress) {\n paymentData = Object.keys(paymentData).filter(function (data) {\n return data !== \"shippingAddress\";\n }).reduce(function (acc, data) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, data, paymentData[data]));\n }, {});\n }\n if (typeof window.dataLayer === \"undefined\") window.dataLayer = [];\n window.dataLayer.push({\n event: \"SubmitCheckout\",\n values: _objectSpread({}, paymentFields.address)\n });\n $(\"#js-purchase\").addClass(\"is-loading\");\n $(\"#js-adyenDropIn\").html(\"\");\n return createAccountFirst().then(function (data) {\n if (data && data.type && (data.type === \"ACCOUNT_ENTRY_FAILED\" || data.type === \"SELECTION_ERROR_REGISTERED\")) return Promise.reject(new Error(\"Register failed\"));\n return fetchCheckout(\"/payment\", token, paymentData, \"POST\");\n }).then(function (data) {\n $(\"#js-purchase\").parent().hide();\n $(\"#js-purchase\").removeClass(\"is-loading\");\n if (data.action === \"redirect\") {\n // Redirect to new URL\n window.location = data.url;\n return false;\n }\n if (data.action === \"form\") {\n // Return to checkout to display form\n\n if (data.formType === \"adyen-checkout\") {\n var $checkoutContainer = document.getElementById(\"adyenCheckoutContainer\");\n $checkoutContainer.innerHTML = data.formHtml;\n adyenEvaluate($checkoutContainer);\n store.dispatch({\n type: \"ADYEN_INITIATED\"\n });\n store.dispatch({\n type: \"ADYEN_UPDATING\",\n isUpdating: false\n });\n return false;\n }\n if (data.formType === \"adyen-drop-in\") {\n $(\"#js-adyenDropIn\").html(data.formHtml);\n $(\"#checkout-adyen\").show();\n store.dispatch({\n type: \"ADYEN_INITIATED\"\n });\n store.dispatch({\n type: \"ADYEN_UPDATING\",\n isUpdating: false\n });\n if (enableScroll) {\n scrollToElement($(\"#checkout-adyen\").first(), 20);\n // $( \"html,body\" ).stop( true ).animate( {\n // \tscrollTop: $( '#checkout-adyen' ).last().offset().top - ( window.innerHeight / 4 )\n // }, 500 );\n }\n document.addEventListener(\"centra_checkout_payment_callback\", paymentSelected);\n return false;\n }\n var d = document.createElement(\"div\");\n d.innerHTML = data.formHtml;\n document.body.appendChild(d);\n d.querySelector(\"form\").submit();\n return false;\n }\n if (data.action === \"success\") {\n // Purchase complete navigate to receipt.\n window.location = window.sitewide.paymentReturnPage;\n return true;\n }\n if (data.errors && data.errors.stock) {\n store.dispatch({\n type: \"UPDATE_SELECTION\",\n data: data\n });\n store.dispatch({\n type: \"ADYEN_UPDATING\",\n isUpdating: false\n });\n return store.dispatch({\n type: \"SELECTION_ERROR_STOCK\",\n hasError: true\n });\n }\n if (data.errors && data.errors.registered) {\n return store.dispatch({\n type: \"SELECTION_ERROR_REGISTERED\",\n hasError: true\n });\n }\n return store.dispatch({\n type: \"SELECTION_ERROR_PAYMENT\",\n hasError: true\n });\n }).catch(function (err) {\n console.log(\"DEBUG: err\", err);\n $(\"#js-purchase\").parent().show();\n $(\"#js-purchase\").removeClass(\"is-loading\");\n });\n};\nexport var updateAdyen = function updateAdyen() {\n var _store$getState15 = store.getState(),\n _store$getState15$ady = _store$getState15.adyenInitiated,\n adyenInitiated = _store$getState15$ady === void 0 ? false : _store$getState15$ady;\n var _store$getState16 = store.getState(),\n _store$getState16$sel = _store$getState16.selection,\n selection = _store$getState16$sel === void 0 ? {} : _store$getState16$sel;\n var hasAdyen = paymentMethodsMap.adyenDropIn.indexOf(selection.paymentMethod) !== -1;\n if (adyenInitiated && hasAdyen) {\n store.dispatch({\n type: \"ADYEN_UPDATING\",\n isUpdating: true\n });\n\n // Hide Adyen and show payment button again.\n return purchase(false);\n }\n return new Promise(function (resolve) {\n return resolve();\n });\n};\nexport var paymentResult = function paymentResult() {\n var token = store.getState().store.token;\n if (token) {\n return fetchCheckout(\"/payment-result\", token, {\n paymentMethodFields: window.tokens\n }, \"POST\").then(function (selectionData) {\n if (selectionData.token && selectionData.order && !selectionData.errors) {\n return store.dispatch({\n type: \"RECEIPT_DATA\",\n data: selectionData\n });\n }\n var selectionFailedData = changeSelectionFailedStatus(true);\n window.location = window.sitewide.paymentFailedPage;\n return selectionFailedData;\n }).catch(function (err) {\n console.error(err);\n changeSelectionFailedStatus(true);\n });\n }\n console.log(\"No token\");\n return changeSelectionFailedStatus(true);\n};\nexport var destroySelection = function destroySelection() {\n var _store$getState17 = store.getState(),\n countries = _store$getState17.countries;\n var country = store.getState().store.country;\n var defaultCountrySettings = countries[country];\n // Clear possible campaign market/pricelist to keep in sync with Centra.\n store.dispatch({\n type: \"UPDATE_COUNTRY\",\n country: country,\n market: parseInt(defaultCountrySettings.market, 10),\n pricelist: parseInt(defaultCountrySettings.pricelist, 10)\n });\n if (window.sitewide.paymentReturnPage === \"\".concat(window.location.origin).concat(window.location.pathname)) {\n store.dispatch({\n type: \"SET_DEFAULT_PAYMENT_METHOD\",\n status: false\n });\n }\n store.dispatch({\n type: \"DESTROY_SELECTION\"\n });\n};\n\n/**\r\n * @constructor\r\n * @param {string} item - Size item of bundle\r\n * @param {array} sections - Section id and bundle product item pairs\r\n */\nexport var addBundleToBag = function addBundleToBag(item, sections) {\n var _store$getState$store9 = store.getState().store,\n token = _store$getState$store9.token,\n country = _store$getState$store9.country;\n var _store$getState18 = store.getState(),\n selection = _store$getState18.selection;\n\n // Check if there's no selection exists\n if (!country) {\n setCountry();\n } else if (Object.keys(selection).length === 0 || !token) {\n updateSelection(token || \"\");\n }\n return fetchCheckout(\"/items/bundles/\".concat(item), token, {\n item: item,\n sections: sections\n }, \"POST\").then(function (data) {\n if (data.errors) return store.dispatch({\n type: \"ADD_TO_BAG_ERROR\"\n });\n return store.dispatch({\n type: \"UPDATE_SELECTION\",\n data: data\n });\n }).catch(function (err) {\n return console.log(\"DEBUG: err\", err);\n });\n};\n\n\n// WEBPACK FOOTER //\n// ./scripts/shop/connect.js","/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'desandro-matches-selector/matches-selector'\n ], function( matchesSelector ) {\n return factory( window, matchesSelector );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('desandro-matches-selector')\n );\n } else {\n // browser global\n window.fizzyUIUtils = factory(\n window,\n window.matchesSelector\n );\n }\n\n}( window, function factory( window, matchesSelector ) {\n\n'use strict';\n\nvar utils = {};\n\n// ----- extend ----- //\n\n// extends objects\nutils.extend = function( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n};\n\n// ----- modulo ----- //\n\nutils.modulo = function( num, div ) {\n return ( ( num % div ) + div ) % div;\n};\n\n// ----- makeArray ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nutils.makeArray = function( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n // return empty array if undefined or null. #6\n if ( obj === null || obj === undefined ) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n};\n\n// ----- removeFrom ----- //\n\nutils.removeFrom = function( ary, obj ) {\n var index = ary.indexOf( obj );\n if ( index != -1 ) {\n ary.splice( index, 1 );\n }\n};\n\n// ----- getParent ----- //\n\nutils.getParent = function( elem, selector ) {\n while ( elem.parentNode && elem != document.body ) {\n elem = elem.parentNode;\n if ( matchesSelector( elem, selector ) ) {\n return elem;\n }\n }\n};\n\n// ----- getQueryElement ----- //\n\n// use element as selector string\nutils.getQueryElement = function( elem ) {\n if ( typeof elem == 'string' ) {\n return document.querySelector( elem );\n }\n return elem;\n};\n\n// ----- handleEvent ----- //\n\n// enable .ontype to trigger from .addEventListener( elem, 'type' )\nutils.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// ----- filterFindElements ----- //\n\nutils.filterFindElements = function( elems, selector ) {\n // make array of elems\n elems = utils.makeArray( elems );\n var ffElems = [];\n\n elems.forEach( function( elem ) {\n // check that elem is an actual element\n if ( !( elem instanceof HTMLElement ) ) {\n return;\n }\n // add elem if no selector\n if ( !selector ) {\n ffElems.push( elem );\n return;\n }\n // filter & find items if we have a selector\n // filter\n if ( matchesSelector( elem, selector ) ) {\n ffElems.push( elem );\n }\n // find children\n var childElems = elem.querySelectorAll( selector );\n // concat childElems to filterFound array\n for ( var i=0; i < childElems.length; i++ ) {\n ffElems.push( childElems[i] );\n }\n });\n\n return ffElems;\n};\n\n// ----- debounceMethod ----- //\n\nutils.debounceMethod = function( _class, methodName, threshold ) {\n threshold = threshold || 100;\n // original method\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\n var args = arguments;\n var _this = this;\n this[ timeoutName ] = setTimeout( function() {\n method.apply( _this, args );\n delete _this[ timeoutName ];\n }, threshold );\n };\n};\n\n// ----- docReady ----- //\n\nutils.docReady = function( callback ) {\n var readyState = document.readyState;\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};\n\n// ----- htmlInit ----- //\n\n// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\nutils.toDashed = function( str ) {\n return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {\n return $1 + '-' + $2;\n }).toLowerCase();\n};\n\nvar 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 */\nutils.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 )\n .concat( utils.makeArray( jsDashElems ) );\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n\n elems.forEach( function( elem ) {\n var attr = elem.getAttribute( dataAttr ) ||\n elem.getAttribute( dataOptionsAttr );\n var options;\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 +\n ': ' + error );\n }\n return;\n }\n // initialize\n var instance = new WidgetClass( elem, options );\n // make available via $().data('namespace')\n if ( jQuery ) {\n jQuery.data( elem, namespace, instance );\n }\n });\n\n });\n};\n\n// ----- ----- //\n\nreturn utils;\n\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/fizzy-ui-utils/utils.js\n// module id = 3\n// module chunks = 0","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { createStore } from \"redux\";\nimport { getCookie, setCookie, deleteCookie } from \"../util/dom\";\nimport { deepClone } from \"../util/object\";\nimport { cleanNonLatinExtended } from \"../util/string\";\nimport render from \"./render\";\nimport { getBeforeDiscountTotal, includeBundleDiscount, splitBundles } from \"../components/bundles\";\nvar newsletterDefault = window.sitewide.newsletterDefault;\nvar defaultState = localStorage.getItem(\"state\") && window.location.hash !== \"#reset-application-state\" ? JSON.parse(localStorage.getItem(\"state\")) : {\n productCache: {},\n quickShop: {},\n productListItems: {},\n items: {},\n email: {},\n countries: {},\n geCountries: {},\n pricelist: {},\n checkoutLogin: false,\n accountEntry: 'login',\n useShippingAddress: false,\n initiatedScript: false,\n productListCompact: false,\n vouchers: {\n currentValue: \"\",\n error: false\n },\n formErrors: {},\n payment: {\n address: {\n newsletter: newsletterDefault\n },\n shippingAddress: {},\n paymentFailedPage: \"\",\n paymentReturnPage: \"\",\n loggedIn: false,\n voyadoId: '',\n createAccount: false,\n termsAndConditions: true,\n dutyConsent: false\n },\n adyenInitiated: false,\n adyenUpdating: false,\n klarnaLoaded: false,\n klarnaUnloaded: false,\n defaultPaymentInitiated: false,\n paymentReturn: {},\n addToBagError: false,\n selectionErrors: {},\n selectionFailed: false,\n account: {},\n store: {},\n favourites: [],\n selection: {}\n};\ndefaultState.store = getCookie(\"esc_store\", true) || {};\nif (localStorage.getItem(\"paymentInfo\")) {\n defaultState.payment = JSON.parse(localStorage.getItem(\"paymentInfo\"));\n defaultState.payment.createAccount = false;\n} else {\n defaultState.payment = {\n address: {\n newsletter: newsletterDefault\n },\n shippingAddress: {},\n paymentFailedPage: \"\",\n paymentReturnPage: \"\",\n loggedIn: false,\n voyadoId: '',\n createAccount: false,\n termsAndConditions: true,\n dutyConsent: false\n };\n}\nvar savePaymentInfo = function savePaymentInfo(paymentInfo, useShippingAddress) {\n if (typeof localStorage !== \"undefined\") {\n // Remove sensitive and duplicate data\n var tempPaymentInfo = deepClone(paymentInfo);\n delete tempPaymentInfo.address.emailOld;\n delete tempPaymentInfo.address.emailNew;\n delete tempPaymentInfo.address.emailRepeat;\n delete tempPaymentInfo.address.emailNewRepeat;\n delete tempPaymentInfo.address.password;\n delete tempPaymentInfo.address.passwordNew;\n delete tempPaymentInfo.address.passwordRepeat;\n delete tempPaymentInfo.address.passwordNewRepeat;\n delete tempPaymentInfo.address.passwordOld;\n tempPaymentInfo.createAccount = false;\n if (useShippingAddress === false) {\n Object.keys(tempPaymentInfo.address).forEach(function (id) {\n if (tempPaymentInfo.shippingAddress[id]) {\n tempPaymentInfo.address[id] = tempPaymentInfo.shippingAddress[id];\n }\n });\n }\n localStorage.setItem(\"paymentInfo\", JSON.stringify(tempPaymentInfo));\n }\n};\nvar updateCheckoutFieldErrors = function updateCheckoutFieldErrors(state, action) {\n var createAccount = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (action.group) {\n var field = {\n visible: 1,\n required: 1\n };\n if (state.paymentFields && state.paymentFields.hasOwnProperty(action.group) && state.paymentFields[action.group][action.id]) {\n field = state.paymentFields[action.group][action.id];\n }\n if (action.id === \"password\" || action.id === \"passwordRepeat\") {\n if (createAccount) {\n field.required = true;\n field.visible = true;\n } else {\n field.required = false;\n field.visible = false;\n }\n }\n if (action.id === \"state\") field.required = true;\n return _objectSpread(_objectSpread({}, state), {}, {\n paymentFields: _objectSpread(_objectSpread({}, state.paymentFields), {}, _defineProperty({}, action.group, _objectSpread(_objectSpread({}, state.paymentFields[action.group]), {}, _defineProperty({}, action.id, _objectSpread(_objectSpread({}, field), {}, {\n error: field.visible && field.required ? action.error : false\n })))))\n });\n }\n if (state.paymentFields[action.id]) {\n var singleField = state.paymentFields[action.id];\n return _objectSpread(_objectSpread({}, state), {}, {\n paymentFields: _objectSpread(_objectSpread({}, state.paymentFields), {}, _defineProperty({}, action.id, _objectSpread(_objectSpread({}, state.paymentFields[action.id]), {}, {\n error: singleField.visible && singleField.required ? action.error : false\n })))\n });\n }\n return _objectSpread({}, state);\n};\nvar shop = function shop() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultState;\n var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n console.log('in store');\n var useShippingAddressState = state.useShippingAddress || false;\n switch (action.type) {\n case \"UPDATE_PRODUCT_CACHE\":\n return _objectSpread(_objectSpread({}, state), {}, {\n productCache: {\n updated: Date.now(),\n items: deepClone(action.cache.products)\n }\n });\n case \"UPDATE_CATEGORY_CACHE\":\n return _objectSpread(_objectSpread({}, state), {}, {\n categoryCache: {\n updated: Date.now(),\n items: deepClone(action.cache.categories)\n }\n });\n case \"UPDATE_BUNDLES_CACHE\":\n return _objectSpread(_objectSpread({}, state), {}, {\n bundleCache: {\n updated: Date.now(),\n items: deepClone(action.cache.bundles)\n }\n });\n case \"UPDATE_PRICELIST\":\n {\n var pricelist = action.cache.pricelist || {};\n return _objectSpread(_objectSpread({}, state), {}, {\n pricelist: pricelist.currency || {}\n });\n }\n case \"QUICK_SHOP\":\n return _objectSpread(_objectSpread({}, state), {}, {\n quickShop: _objectSpread(_objectSpread({}, state.quickShop), {}, _defineProperty({}, action.productID, deepClone(action.product)))\n });\n case \"UPDATE_PRODUCT_LIST_ITEM\":\n return _objectSpread(_objectSpread({}, state), {}, {\n productListItems: _objectSpread(_objectSpread({}, state.productListItems), {}, _defineProperty({}, action.productID, deepClone(action.product)))\n });\n case \"PRODUCT_LIST_DENSITY\":\n return _objectSpread(_objectSpread({}, state), {}, {\n productListCompact: !state.productListCompact\n });\n case \"UPDATE_COUNTRIES\":\n return _objectSpread(_objectSpread({}, state), {}, {\n countries: _objectSpread({}, deepClone(action.countries))\n });\n case \"UPDATE_GE_COUNTRIES\":\n return _objectSpread(_objectSpread({}, state), {}, {\n geCountries: _objectSpread({}, deepClone(action.geCountries))\n });\n case \"UPDATE_ESC_STORE\":\n {\n var _store = _objectSpread(_objectSpread({}, state.store), {}, {\n country: action.country.country || state.store.country,\n state: action.state || state.store.state,\n currency: action.country.currency || state.store.currency,\n market: action.country.market || state.store.market,\n pricelist: action.country.pricelist || state.store.pricelist,\n token: action.country.token || state.store.token\n });\n\n // set token\n // token: action.data.token\n\n setCookie(\"esc_store\", _store, 365, 'SameSite=None; Secure');\n // setCookie(\"esc_store\", store, 365, '');\n setCookie(\"country\", _store.country.toUpperCase(), 365);\n return _objectSpread(_objectSpread({}, state), {}, {\n store: _store\n });\n }\n case \"SUBSCRIBED\":\n return _objectSpread(_objectSpread({}, state), {}, {\n email: action.email\n });\n case \"SELECT_SIZE\":\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionErrors: {},\n addToBagError: false,\n items: _objectSpread(_objectSpread({}, state.items), {}, _defineProperty({}, action.product, _objectSpread(_objectSpread({}, state.items[action.product]), {}, {\n size: action.item,\n quantity: action.quantity\n })))\n });\n case \"ADD_TO_BAG_ERROR\":\n return _objectSpread(_objectSpread({}, state), {}, {\n addToBagError: true\n });\n case \"INITIATE_SELECTION\":\n return _objectSpread(_objectSpread({}, state), {}, {\n paymentReturn: _objectSpread(_objectSpread({}, state.paymentReturn), {}, {\n paymentHTML: action.data.formHtml\n })\n });\n\n // case \"UPDATE_FAVOURITES\": {\n // const index = state.favourites.indexOf(action.product);\n // const favourites =\n // index !== -1\n // ? [\n // ...state.favourites.slice(0, index),\n // ...state.favourites.slice(index + 1)\n // ]\n // : [action.product, ...state.favourites];\n\n // return {\n // ...state,\n // favourites\n // };\n // }\n\n case \"TOGGLE_GIFT_WRAP\":\n {\n var paymentInfo = _objectSpread(_objectSpread({}, state.payment), {}, {\n additionalNotes: state.payment.additionalNotes ? '' : 'GIFT WRAP:\\n'\n });\n savePaymentInfo(paymentInfo, useShippingAddressState);\n return _objectSpread(_objectSpread({}, state), {}, {\n payment: paymentInfo\n });\n }\n case \"UPDATE_SELECTION\":\n {\n var _store2 = _objectSpread(_objectSpread({}, state.store), {}, {\n token: action.data.token\n });\n var paymentReturn = _objectSpread({}, state.paymentReturn);\n var shipwallet = _objectSpread({}, state.shipwallet);\n if (action.data.selection && action.data.selection.centraCheckoutScript) {\n paymentReturn.centraCheckoutScript = action.data.selection.centraCheckoutScript;\n }\n var pluginFields = action.data.selection ? action.data.selection.pluginFields : {};\n if (pluginFields && pluginFields.shipwallet) {\n shipwallet.snippet = action.data.selection.pluginFields.shipwallet.snippet || '';\n shipwallet.sessionId = action.data.selection.pluginFields.shipwallet.session_id || '';\n }\n setCookie(\"esc_store\", _store2, 365, 'SameSite=None; Secure');\n // setCookie(\"esc_store\", store, 365, '');\n\n // Why does it update if there is no selection ?\n if (!action.data.selection) return _objectSpread({}, state);\n action.data.selection.items = splitBundles(action.data.selection.items, state.productCache);\n var _getBeforeDiscountTot = getBeforeDiscountTotal(action.data.selection),\n _getBeforeDiscountTot2 = _slicedToArray(_getBeforeDiscountTot, 2),\n beforeDiscountItemTotalAsNumber = _getBeforeDiscountTot2[0],\n beforeDiscountItemTotal = _getBeforeDiscountTot2[1];\n action.data.selection.totals.itemsTotalPrice = beforeDiscountItemTotal;\n action.data.selection.totals.itemsTotalPriceAsNumber = beforeDiscountItemTotalAsNumber;\n var _includeBundleDiscoun = includeBundleDiscount(action.data.selection),\n _includeBundleDiscoun2 = _slicedToArray(_includeBundleDiscoun, 2),\n totalDiscountPriceAsNumber = _includeBundleDiscoun2[0],\n totalDiscountPrice = _includeBundleDiscoun2[1];\n action.data.selection.totals.totalDiscountPrice = totalDiscountPrice;\n action.data.selection.totals.totalDiscountPriceAsNumber = totalDiscountPriceAsNumber;\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionErrors: {},\n addToBagError: false,\n store: _store2,\n paymentReturn: paymentReturn,\n shipwallet: shipwallet,\n payment: _objectSpread(_objectSpread({}, state.payment), {}, {\n loggedIn: !!action.data.loggedIn,\n voyadoId: action.data.loggedIn && action.data.loggedIn.voyado_customer_id || state.payment.voyadoId\n }),\n selection: {\n // Replace all data every time.\n currency: action.data.selection.currency,\n paymentMethod: action.data.selection.paymentMethod,\n shippingMethod: action.data.selection.shippingMethod,\n items: action.data.selection.items.map(function (item) {\n return {\n item: item.item,\n size: item.size,\n name: item.product.name,\n id: \"p\".concat(item.product.centraProduct, \"-v\").concat(item.product.centraVariant),\n // Match google merchant feed.\n sku: item.product.productSku,\n brand: item.product.brandName,\n variant: item.product.variantName,\n category: item.product.categoryUri,\n quantity: item.quantity,\n line: item.line,\n priceEach: item.priceEach,\n priceEachAsNumber: item.priceEachAsNumber,\n totalPrice: item.totalPrice,\n totalPriceAsNumber: item.totalPriceAsNumber,\n priceEachBeforeDiscount: item.priceEachBeforeDiscount,\n priceEachBeforeDiscountAsNumber: item.priceEachBeforeDiscountAsNumber,\n anyDiscount: item.anyDiscount,\n taxPercent: item.taxPercent,\n priceEachWithoutTax: item.priceEachWithoutTax,\n priceEachWithoutTaxAsNumber: item.priceEachWithoutTaxAsNumber,\n priceEachReduction: item.priceEachReduction,\n priceEachReductionAsNumber: item.priceEachReductionAsNumber,\n bundle: \"bundle\" in item ? item.bundle.map(function (bundleItem) {\n return {\n product: bundleItem.product,\n size: bundleItem.size\n };\n }) : false,\n product: item.product.product\n };\n }),\n discounts: deepClone(action.data.selection.discounts),\n totals: _objectSpread({}, action.data.selection.totals),\n paymentMethods: action.data.paymentMethods.map(function (method) {\n return _objectSpread({}, method);\n }),\n shippingMethods: action.data.shippingMethods.map(function (method) {\n return _objectSpread({}, method);\n }),\n paymentFields: deepClone(action.data.paymentFields)\n }\n });\n }\n case \"INIT_PAYMENT_INFO\":\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n payment: action.paymentInfo\n });\n }\n case \"SET_DEFAULT_PAYMENT_METHOD\":\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n defaultPaymentInitiated: action.hasOwnProperty('status') ? action.status : true\n });\n }\n case \"KLARNA_UNLOADED\":\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionErrors: {},\n klarnaUnloaded: true\n });\n case \"KLARNA_LOADED\":\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionErrors: {},\n klarnaLoaded: true\n });\n case 'ADYEN_INITIATED':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionErrors: {},\n adyenInitiated: true\n });\n }\n case 'ADYEN_UPDATING':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionErrors: {},\n adyenUpdating: action.isUpdating\n });\n }\n case \"UPDATE_ADDRESS\":\n {\n if (!action.id) return state;\n var value = cleanNonLatinExtended(action.value);\n var _paymentInfo = action.group ? _objectSpread(_objectSpread({}, state.payment), {}, _defineProperty({}, action.group, _objectSpread(_objectSpread({}, state.payment[action.group]), {}, _defineProperty({}, action.id, value)))) : _objectSpread(_objectSpread({}, state.payment), {}, _defineProperty({}, action.id, value));\n savePaymentInfo(_paymentInfo, useShippingAddressState);\n return _objectSpread(_objectSpread({}, state), {}, {\n formErrors: {},\n selectionErrors: {},\n payment: _paymentInfo,\n selection: _objectSpread(_objectSpread({}, state.selection), updateCheckoutFieldErrors(state.selection, action, _paymentInfo.createAccount))\n });\n }\n case \"FORM_ERRORS\":\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n formErrors: _objectSpread(_objectSpread({}, state.formErrors), deepClone(action.errors))\n });\n }\n case \"UPDATE_ERRORS\":\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n selection: _objectSpread(_objectSpread({}, state.selection), updateCheckoutFieldErrors(state.selection, action, state.payment.createAccount))\n });\n }\n case \"ACCOUNT_FORGOT_SENT\":\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionSuccess: {\n forgotPasswordSuccess: true\n }\n });\n case \"ACCOUNT_FORGOT_FAILED\":\n delete state.selectionSuccess;\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionErrors: _objectSpread(_objectSpread({}, state.selectionErrors), {}, {\n forgotPasswordError: action.hasError\n })\n });\n case \"ACCOUNT_ENTRY_FAILED\":\n case \"SELECTION_ERROR\":\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionErrors: _objectSpread(_objectSpread({}, state.selectionErrors), {}, {\n selectionError: action.hasError\n })\n });\n case \"SELECTION_ERROR_STOCK\":\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionErrors: _objectSpread(_objectSpread({}, state.selectionErrors), {}, {\n selectionErrorStock: action.hasError\n })\n });\n case \"SELECTION_ERROR_PAYMENT\":\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionErrors: _objectSpread(_objectSpread({}, state.selectionErrors), {}, {\n selectionErrorPayment: action.hasError\n })\n });\n case \"SELECTION_FAILED\":\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionFailed: action.hasError\n });\n case \"SELECTION_ERROR_REGISTERED\":\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionErrors: _objectSpread(_objectSpread({}, state.selectionErrors), {}, {\n selectionErrorRegistered: action.hasError\n })\n });\n case \"SELECTION_ERROR_PASSWORD\":\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionErrors: _objectSpread(_objectSpread({}, state.selectionErrors), {}, {\n selectionErrorPassword: action.hasError\n })\n });\n case \"SELECTION_ERROR_DUTY_CONSENT\":\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionErrors: _objectSpread(_objectSpread({}, state.selectionErrors), {}, {\n selectionErrorDutyConsent: action.hasError\n })\n });\n case \"BOOLEAN_CHANGE\":\n {\n var _paymentInfo2;\n if (action.id === \"useShipping\") {\n var _paymentInfo3 = _objectSpread(_objectSpread({}, state.payment), {}, {\n shippingAddress: _objectSpread(_objectSpread({}, state.payment.shippingAddress), {}, {\n email: state.payment.shippingAddress.email || state.payment.address.email,\n firstName: state.payment.shippingAddress.firstName || state.payment.address.firstName,\n lastName: state.payment.shippingAddress.lastName || state.payment.address.lastName,\n company: state.payment.shippingAddress.company || state.payment.address.company,\n phoneNumber: state.payment.shippingAddress.phoneNumber || state.payment.address.phoneNumber,\n address1: state.payment.shippingAddress.address1 || state.payment.address.address1,\n address2: state.payment.shippingAddress.address2 || state.payment.address.address2,\n zipCode: state.payment.shippingAddress.zipCode || state.payment.address.zipCode,\n city: state.payment.shippingAddress.city || state.payment.address.city,\n country: state.payment.shippingAddress.country || state.payment.address.country\n })\n });\n savePaymentInfo(_paymentInfo3, !state.useShippingAddress);\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionErrors: {},\n useShippingAddress: !state.useShippingAddress,\n payment: _paymentInfo3\n });\n }\n if (action.id === \"subscribeToNewsletter\") {\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionErrors: {},\n payment: _objectSpread(_objectSpread({}, state.payment), {}, {\n address: _objectSpread(_objectSpread({}, state.payment.address), {}, {\n newsletter: !state.payment.address.newsletter\n })\n })\n });\n }\n _paymentInfo2 = _objectSpread(_objectSpread({}, state.payment), {}, _defineProperty({}, action.id, !state.payment[action.id]));\n savePaymentInfo(_paymentInfo2, useShippingAddressState);\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionErrors: {},\n payment: _paymentInfo2\n });\n }\n case \"VOUCHER_INPUT\":\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionErrors: {},\n vouchers: _objectSpread(_objectSpread({}, state.vouchers), {}, {\n currentValue: action.value,\n error: false\n })\n });\n case \"VOUCHER_ERROR\":\n return _objectSpread(_objectSpread({}, state), {}, {\n vouchers: _objectSpread(_objectSpread({}, state.vouchers), {}, {\n error: !state.vouchers.error\n })\n });\n case \"PAYMENT_RETURN\":\n if (window.CentraCheckout) window.CentraCheckout.resume();\n if (!action.data) {\n return _objectSpread(_objectSpread({}, state), {}, {\n paymentReturn: {}\n });\n }\n return _objectSpread(_objectSpread({}, state), {}, {\n paymentReturn: {\n paymentHTML: action.data.selection.paymentHTML,\n centraCheckoutScript: action.data.selection.centraCheckoutScript\n }\n });\n case \"INITIATED_SCRIPT\":\n return _objectSpread(_objectSpread({}, state), {}, {\n initiatedScript: true\n });\n case \"RECEIPT_DATA\":\n {\n var receiptSnippet = \"\";\n if (action.data.order.paymentMethodData && action.data.order.paymentMethodData.snippet) {\n receiptSnippet = action.data.order.paymentMethodData.snippet;\n }\n action.data.order.items = splitBundles(action.data.order.items, state.productCache);\n var _getBeforeDiscountTot3 = getBeforeDiscountTotal(action.data.order),\n _getBeforeDiscountTot4 = _slicedToArray(_getBeforeDiscountTot3, 2),\n _beforeDiscountItemTotalAsNumber = _getBeforeDiscountTot4[0],\n _beforeDiscountItemTotal = _getBeforeDiscountTot4[1];\n action.data.order.totals.itemsTotalPrice = _beforeDiscountItemTotal;\n action.data.order.totals.itemsTotalPriceAsNumber = _beforeDiscountItemTotalAsNumber;\n var _includeBundleDiscoun3 = includeBundleDiscount(action.data.order),\n _includeBundleDiscoun4 = _slicedToArray(_includeBundleDiscoun3, 2),\n _totalDiscountPriceAsNumber = _includeBundleDiscoun4[0],\n _totalDiscountPrice = _includeBundleDiscoun4[1];\n action.data.order.totals.totalDiscountPrice = _totalDiscountPrice;\n action.data.order.totals.totalDiscountPriceAsNumber = _totalDiscountPriceAsNumber;\n return _objectSpread(_objectSpread({}, state), {}, {\n store: _objectSpread(_objectSpread({}, state.store), {}, {\n token: action.data.token\n }),\n payment: _objectSpread(_objectSpread({}, state.payment), {}, {\n loggedIn: !!action.data.loggedIn,\n voyadoId: action.data.loggedIn && action.data.loggedIn.voyado_customer_id || state.payment.voyadoId\n }),\n selection: {\n // Replace all data every time.\n order: action.data.order.order,\n currency: action.data.order.currency,\n date: action.data.order.date,\n items: action.data.order.items.map(function (item) {\n return {\n item: item.item,\n size: item.size,\n name: item.product.name,\n id: \"p\".concat(item.product.centraProduct, \"-v\").concat(item.product.centraVariant),\n sku: item.product.productSku,\n brand: item.product.brandName,\n variant: item.product.variantName,\n category: item.product.categoryUri,\n quantity: item.quantity,\n line: item.line,\n priceEach: item.priceEach,\n priceEachAsNumber: item.priceEachAsNumber,\n totalPrice: item.totalPrice,\n totalPriceAsNumber: item.totalPriceAsNumber,\n priceEachBeforeDiscount: item.priceEachBeforeDiscount,\n priceEachBeforeDiscountAsNumber: item.priceEachBeforeDiscountAsNumber,\n anyDiscount: item.anyDiscount,\n taxPercent: item.taxPercent,\n priceEachWithoutTax: item.priceEachWithoutTax,\n priceEachWithoutTaxAsNumber: item.priceEachWithoutTaxAsNumber,\n priceEachReduction: item.priceEachReduction,\n priceEachReductionAsNumber: item.priceEachReductionAsNumber,\n bundle: \"bundle\" in item ? item.bundle.map(function (bundleItem) {\n return {\n product: bundleItem.product,\n size: bundleItem.size\n };\n }) : false,\n product: item.product.product\n };\n }),\n discounts: deepClone(action.data.order.discounts),\n totals: _objectSpread({}, action.data.order.totals),\n address: _objectSpread({}, action.data.order.address),\n shippingAddress: _objectSpread({}, action.data.order.shippingAddress),\n paymentMethodName: action.data.order.paymentMethodName,\n shippingMethodName: action.data.order.shippingMethodName,\n shipwalletMethod: action.data.order.attributes.shipwallet_method.data || '',\n receiptSnippet: receiptSnippet\n }\n });\n }\n case \"RECEIPT_ERROR\":\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionErrors: _objectSpread(_objectSpread({}, state.selectionErrors), {}, {\n selectionError: action.reason\n })\n });\n case \"DESTROY_SELECTION\":\n {\n deleteCookie('receiptRendered');\n setCookie(\"esc_store\", _objectSpread(_objectSpread({}, state.store), {}, {\n token: ''\n }), 365, 'SameSite=None; Secure');\n console.log('token reset');\n return _objectSpread(_objectSpread({}, state), {}, {\n items: {},\n store: _objectSpread(_objectSpread({}, state.store), {}, {\n token: ''\n }),\n useShippingAddress: false,\n vouchers: {\n currentValue: \"\",\n error: false\n },\n payment: _objectSpread(_objectSpread({}, state.payment), {}, {\n termsAndConditions: true,\n dutyConsent: false,\n createAccount: false,\n additionalNotes: ''\n }),\n paymentReturn: {},\n addToBagError: false,\n selectionErrors: {},\n selection: {}\n });\n }\n case \"TOGGLE_LOGIN\":\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n checkoutLogin: !state.checkoutLogin\n });\n }\n case \"TOGGLE_ACCOUNT_ENTRY\":\n {\n var accountEntry = 'login';\n if (state.accountEntry === 'register' && action.state === 'registerLogin') accountEntry = 'login';else if (state.accountEntry === 'login' && action.state === 'registerLogin') accountEntry = 'register';else if (state.accountEntry === 'forgot' && action.state === 'loginForgot') accountEntry = 'login';else if (state.accountEntry === 'login' && action.state === 'loginForgot') accountEntry = 'forgot';else accountEntry = action.state;\n delete state.selectionSuccess;\n return _objectSpread(_objectSpread({}, state), {}, {\n selectionErrors: {},\n formErrors: {},\n accountEntry: accountEntry\n });\n }\n case \"UPDATE_ACCOUNT\":\n {\n var _paymentInfo4 = _objectSpread(_objectSpread({}, state.payment), {}, {\n loggedIn: true,\n createAccount: false,\n address: _objectSpread(_objectSpread({}, state.payment.address), {}, {\n newsletter: action.data.loggedIn.newsletter || state.payment.address.newsletter,\n email: action.data.loggedIn.email || state.payment.address.email,\n firstName: action.data.loggedIn.firstName || state.payment.address.firstName,\n lastName: action.data.loggedIn.lastName || state.payment.address.lastName,\n company: action.data.loggedIn.company || state.payment.address.company,\n phoneNumber: action.data.loggedIn.phoneNumber || state.payment.address.phoneNumber,\n address1: action.data.loggedIn.address1 || state.payment.address.address1,\n address2: action.data.loggedIn.address2 || state.payment.address.address2,\n zipCode: action.data.loggedIn.zipCode || state.payment.address.zipCode,\n city: action.data.loggedIn.city || state.payment.address.city,\n state: action.data.loggedIn.state || state.payment.address.state,\n country: action.data.loggedIn.country || state.payment.address.country,\n emailOld: '',\n emailNew: '',\n emailRepeat: '',\n emailNewRepeat: '',\n password: '',\n passwordNew: '',\n passwordRepeat: '',\n passwordNewRepeat: '',\n passwordOld: ''\n })\n });\n savePaymentInfo(_paymentInfo4, useShippingAddressState);\n return _objectSpread(_objectSpread({}, state), {}, {\n payment: _paymentInfo4\n });\n }\n case \"ACCOUNT_ORDERS\":\n {\n var orders = [].concat(_toConsumableArray(state.account.orders || []), _toConsumableArray(deepClone(action.data.orders))).reduce(function (acc, o) {\n if (acc.length === 0) return [o];\n // Order doesn't exist in array add.\n if (acc.filter(function (fo) {\n return fo.order === o.order;\n }).length === 0) return [].concat(_toConsumableArray(acc), [o]);\n // Order exists in array skip.\n return acc;\n }, []);\n return _objectSpread(_objectSpread({}, state), {}, {\n account: _objectSpread(_objectSpread({}, state.account), {}, {\n orders: orders,\n hasMoreOrders: action.data.ordersPaging.totalSize > orders.length\n })\n });\n }\n case \"ACCOUNT_LOGOUT\":\n {\n var _paymentInfo5 = _objectSpread(_objectSpread({}, state.payment), {}, {\n loggedIn: false,\n voyadoId: ''\n });\n savePaymentInfo(_paymentInfo5, useShippingAddressState);\n return _objectSpread(_objectSpread({}, state), {}, {\n payment: _paymentInfo5,\n account: {}\n });\n }\n default:\n return state;\n }\n};\nvar store = createStore(shop);\nstore.subscribe(function () {\n render();\n\n /*\r\n Avoid saving quickShop to localstorage so we don't need to\r\n worry about clearing it's cache.\r\n */\n var saveState = deepClone(store.getState(), [\"quickShop\", \"account\", \"formErrors\", \"payment\"]);\n\n // Don't save following state.\n saveState.quickShop = {};\n saveState.account = {};\n saveState.formErrors = {};\n saveState.checkoutLogin = false;\n saveState.adyenInitiated = false;\n saveState.adyenUpdating = false;\n saveState.klarnaLoaded = false;\n saveState.klarnaUnloaded = false;\n saveState.vouchers.currentValue = '';\n saveState.vouchers.error = false;\n localStorage.setItem(\"state\", JSON.stringify(saveState).replace(/ we set up an action that listens to that -> we update and save the object -> we then render the changes.\n// uni-directional flow.\n\n\n// WEBPACK FOOTER //\n// ./scripts/shop/store.js","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n// Create Element.remove() function if not exist // BECAUSE IE 11\nif (!('remove' in Element.prototype)) {\n Element.prototype.remove = function () {\n if (this.parentNode) {\n this.parentNode.removeChild(this);\n }\n };\n}\n\n// var stokpress = {};\n\nexport var stokpress = {\n init: function init() {\n return true;\n },\n strToBool: function strToBool(str) {\n console.log(_typeof(str));\n if (typeof str == 'boolean') {\n return str;\n }\n switch (str.toLowerCase().trim()) {\n case 'true':\n case 'yes':\n case '1':\n return true;\n case 'false':\n case 'no':\n case '0':\n case null:\n return false;\n default:\n return Boolean(str);\n }\n },\n findAncestor: function findAncestor(el, cls) {\n while ((el = el.parentElement) && !el.classList.contains(cls));\n return el;\n },\n isMobile: function isMobile() {\n var result = false;\n (function (a) {\n result = /Android|webOS|iPhone|iPad|BlackBerry|Windows Phone|Opera Mini|IEMobile|Mobile/i.test(a);\n })(navigator.userAgent || navigator.vendor || window.opera);\n return result;\n },\n isInView: function isInView(el, view) {\n var rect = el.getBoundingClientRect();\n var html = document.documentElement;\n if (view == 'completely') {\n // to check if completely visible\n return rect.top >= 0 && rect.bottom <= (window.innerHeight || html.clientHeight);\n } else if (view == 'partially') {\n // to check if partially visible\n return rect.bottom >= 0 && rect.top < (window.innerHeight || html.clientHeight);\n } else {\n // if partially visible or above current fold,\n return rect.top < (window.innerHeight || html.clientHeight);\n }\n },\n getScript: function getScript(source, callback) {\n var script = document.createElement('script');\n var prior = document.getElementsByTagName('script')[0];\n script.async = 1;\n script.onload = script.onreadystatechange = function (_, isAbort) {\n if (isAbort || !script.readyState || /loaded|complete/.test(script.readyState)) {\n script.onload = script.onreadystatechange = null;\n script = undefined;\n if (!isAbort) {\n if (callback) {\n callback();\n }\n }\n }\n };\n script.src = source;\n prior.parentNode.insertBefore(script, prior);\n },\n setCookie: function setCookie(cname, cvalue, exdays) {\n var d = new Date();\n d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);\n var expires = 'expires=' + d.toUTCString();\n document.cookie = cname + '=' + cvalue + ';' + expires + ';path=/';\n },\n getCookie: function getCookie(cname) {\n var name = cname + '=';\n var decodedCookie = decodeURIComponent(document.cookie);\n var ca = decodedCookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return '';\n }\n};\nexport var stokpressViewPort = {\n init: function init() {\n return true;\n },\n documentWidth: function documentWidth() {\n var e = window,\n a = 'inner';\n if (!('innerWidth' in window)) {\n a = 'client';\n e = document.documentElement || document.body;\n }\n return {\n width: e[a + 'Width'],\n height: e[a + 'Height']\n };\n }\n};\n\n// stokpress.cartItems;\n\n// stokpress.cartHeight = function() {\n// var e = window, a = 'inner';\n\n// if( !( 'innerHeight' in window ) ) {\n// a = 'client';\n// e = document.documentElement || document.body;\n// }\n\n// (function () {\n// if ( typeof NodeList.prototype.forEach === 'function' ) return false;\n// NodeList.prototype.forEach = Array.prototype.forEach;\n// })();\n\n// stokpress.cartItems.forEach(function(element) {\n// element.style.setProperty('--cartheight', e[ a+'Height' ]+'px');\n// });\n// }\n\n\n// WEBPACK FOOTER //\n// ./scripts/util/helper.js","// Flickity main\n/* eslint-disable max-params */\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter',\n 'get-size/get-size',\n 'fizzy-ui-utils/utils',\n './cell',\n './slide',\n './animate',\n ], 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(\n window,\n require('ev-emitter'),\n require('get-size'),\n require('fizzy-ui-utils'),\n require('./cell'),\n require('./slide'),\n require('./animate')\n );\n } else {\n // browser global\n var _Flickity = window.Flickity;\n\n window.Flickity = factory(\n window,\n window.EvEmitter,\n window.getSize,\n window.fizzyUIUtils,\n _Flickity.Cell,\n _Flickity.Slide,\n _Flickity.animatePrototype\n );\n }\n\n}( window, function factory( window, EvEmitter, getSize,\n utils, Cell, Slide, animatePrototype ) {\n\n/* eslint-enable max-params */\n'use strict';\n\n// vars\nvar jQuery = window.jQuery;\nvar getComputedStyle = window.getComputedStyle;\nvar console = window.console;\n\nfunction moveElements( elems, toElem ) {\n elems = utils.makeArray( elems );\n while ( elems.length ) {\n toElem.appendChild( elems.shift() );\n }\n}\n\n// -------------------------- Flickity -------------------------- //\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Flickity intances\nvar instances = {};\n\nfunction Flickity( element, options ) {\n var queryElement = utils.getQueryElement( element );\n if ( !queryElement ) {\n if ( console ) {\n console.error( 'Bad element for Flickity: ' + ( queryElement || element ) );\n }\n return;\n }\n this.element = queryElement;\n // do not initialize twice on same element\n if ( this.element.flickityGUID ) {\n var instance = instances[ this.element.flickityGUID ];\n if ( instance ) instance.option( options );\n return instance;\n }\n\n // add jQuery\n if ( jQuery ) {\n this.$element = jQuery( this.element );\n }\n // options\n this.options = utils.extend( {}, this.constructor.defaults );\n this.option( options );\n\n // kick things off\n this._create();\n}\n\nFlickity.defaults = {\n accessibility: true,\n // adaptiveHeight: false,\n cellAlign: 'center',\n // cellSelector: undefined,\n // contain: false,\n freeScrollFriction: 0.075, // friction when free-scrolling\n friction: 0.28, // friction when selecting\n namespaceJQueryEvents: true,\n // initialIndex: 0,\n percentPosition: true,\n resize: true,\n selectedAttraction: 0.025,\n setGallerySize: true,\n // watchCSS: false,\n // wrapAround: false\n};\n\n// hash of methods triggered on _create()\nFlickity.createMethods = [];\n\nvar proto = Flickity.prototype;\n// inherit EventEmitter\nutils.extend( proto, EvEmitter.prototype );\n\nproto._create = function() {\n // add id for Flickity.data\n var id = this.guid = ++GUID;\n this.element.flickityGUID = id; // expando\n instances[ id ] = this; // associate via id\n // initial properties\n this.selectedIndex = 0;\n // how many frames slider has been in same position\n this.restingFrames = 0;\n // initial physics properties\n this.x = 0;\n this.velocity = 0;\n this.originSide = this.options.rightToLeft ? 'right' : 'left';\n // create viewport & slider\n this.viewport = document.createElement('div');\n this.viewport.className = 'flickity-viewport';\n this._createSlider();\n\n if ( this.options.resize || this.options.watchCSS ) {\n window.addEventListener( 'resize', this );\n }\n\n // add listeners from on option\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\n/**\n * set options\n * @param {Object} opts - options to extend\n */\nproto.option = function( opts ) {\n utils.extend( this.options, opts );\n};\n\nproto.activate = function() {\n if ( this.isActive ) {\n return;\n }\n this.isActive = true;\n this.element.classList.add('flickity-enabled');\n if ( this.options.rightToLeft ) {\n this.element.classList.add('flickity-rtl');\n }\n\n this.getSize();\n // move initial cell elements so they can be loaded as cells\n var cellElems = this._filterFindCellElements( this.element.children );\n moveElements( cellElems, this.slider );\n this.viewport.appendChild( this.slider );\n this.element.appendChild( this.viewport );\n // get cells from children\n this.reloadCells();\n\n if ( this.options.accessibility ) {\n // allow element to focusable\n this.element.tabIndex = 0;\n // listen for key presses\n this.element.addEventListener( 'keydown', this );\n }\n\n this.emitEvent('activate');\n this.selectInitialIndex();\n // flag for initial activation, for using initialIndex\n this.isInitActivated = true;\n // ready event. #493\n this.dispatchEvent('ready');\n};\n\n// slider positions the cells\nproto._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\nproto._filterFindCellElements = function( elems ) {\n return utils.filterFindElements( elems, this.options.cellSelector );\n};\n\n// goes through all children\nproto.reloadCells = function() {\n // collection of item elements\n this.cells = this._makeCells( this.slider.children );\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n};\n\n/**\n * turn elements into Flickity.Cells\n * @param {[Array, NodeList, HTMLElement]} elems - elements to make into cells\n * @returns {Array} items - collection of new Flickity Cells\n */\nproto._makeCells = function( elems ) {\n var cellElems = this._filterFindCellElements( elems );\n\n // create new Flickity for collection\n var cells = cellElems.map( function( cellElem ) {\n return new Cell( cellElem, this );\n }, this );\n\n return cells;\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.getLastSlide = function() {\n return this.slides[ this.slides.length - 1 ];\n};\n\n// positions all cells\nproto.positionCells = function() {\n // size all cells\n this._sizeCells( this.cells );\n // position all cells\n this._positionCells( 0 );\n};\n\n/**\n * position certain cells\n * @param {Integer} index - which cell to start with\n */\nproto._positionCells = function( index ) {\n index = index || 0;\n // also measure maxCellHeight\n // start 0 if positioning all cells\n this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\n var cellX = 0;\n // get cellX\n if ( index > 0 ) {\n var startCell = this.cells[ index - 1 ];\n cellX = startCell.x + startCell.size.outerWidth;\n }\n var len = this.cells.length;\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 }\n // keep track of cellX for wrap-around\n this.slideableWidth = cellX;\n // slides\n this.updateSlides();\n // contain slides target\n this._containSlides();\n // update slidesWidth\n this.slidesWidth = len ? this.getLastSlide().target - this.slides[0].target : 0;\n};\n\n/**\n * cell.getSize() on multiple cells\n * @param {Array} cells - cells to size\n */\nproto._sizeCells = function( cells ) {\n cells.forEach( function( cell ) {\n cell.getSize();\n } );\n};\n\n// -------------------------- -------------------------- //\n\nproto.updateSlides = function() {\n this.slides = [];\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 ) +\n ( 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\n slide = new Slide( this );\n this.slides.push( slide );\n slide.addCell( cell );\n }\n }, this );\n // last slide\n slide.updateTarget();\n // update .selectedSlide\n this.updateSelectedSlide();\n};\n\nproto._getCanCellFit = function() {\n var groupCells = this.options.groupCells;\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 }\n // default, group by width of slide\n // parse '75%\n var percentMatch = typeof groupCells == 'string' &&\n groupCells.match( /^(\\d+)%$/ );\n var percent = percentMatch ? parseInt( percentMatch[1], 10 ) / 100 : 1;\n return function( i, slideWidth ) {\n /* eslint-disable-next-line no-invalid-this */\n return slideWidth <= ( this.size.innerWidth + 1 ) * percent;\n };\n};\n\n// alias _init for jQuery plugin .flickity()\nproto._init =\nproto.reposition = function() {\n this.positionCells();\n this.positionSliderAtSelected();\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n this.setCellAlign();\n this.cursorPosition = this.size.innerWidth * this.cellAlign;\n};\n\nvar 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\nproto.setCellAlign = function() {\n var shorthand = cellAlignShorthands[ this.options.cellAlign ];\n this.cellAlign = shorthand ? shorthand[ this.originSide ] : this.options.cellAlign;\n};\n\nproto.setGallerySize = function() {\n if ( this.options.setGallerySize ) {\n var height = this.options.adaptiveHeight && this.selectedSlide ?\n this.selectedSlide.height : this.maxCellHeight;\n this.viewport.style.height = height + 'px';\n }\n};\n\nproto._getWrapShiftCells = function() {\n // only for wrap-around\n if ( !this.options.wrapAround ) {\n return;\n }\n // unshift previous cells\n this._unshiftCells( this.beforeShiftCells );\n this._unshiftCells( this.afterShiftCells );\n // get before cells\n // initial gap\n var gapX = this.cursorPosition;\n var cellIndex = this.cells.length - 1;\n this.beforeShiftCells = this._getGapCells( gapX, cellIndex, -1 );\n // get after cells\n // ending gap between last cell and end of gallery viewport\n gapX = this.size.innerWidth - this.cursorPosition;\n // start cloning at first cell, working forwards\n this.afterShiftCells = this._getGapCells( gapX, 0, 1 );\n};\n\nproto._getGapCells = function( gapX, cellIndex, increment ) {\n // keep adding cells until the cover the initial gap\n var cells = [];\n while ( gapX > 0 ) {\n var cell = this.cells[ cellIndex ];\n if ( !cell ) {\n break;\n }\n cells.push( cell );\n cellIndex += increment;\n gapX -= cell.size.outerWidth;\n }\n return cells;\n};\n\n// ----- contain ----- //\n\n// contain cell targets so no excess sliding\nproto._containSlides = function() {\n if ( !this.options.contain || this.options.wrapAround || !this.cells.length ) {\n return;\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 ];\n // content is less than gallery size\n var isContentSmaller = contentWidth < this.size.innerWidth;\n // bounds\n var beginBound = this.cursorPosition + this.cells[0].size[ beginMargin ];\n var endBound = contentWidth - this.size.innerWidth * ( 1 - this.cellAlign );\n // contain each cell target\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\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 */\nproto.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 if ( event ) {\n // create jQuery event\n var jQEvent = new jQuery.Event( event );\n jQEvent.type = type;\n $event = jQEvent;\n }\n this.$element.trigger( $event, args );\n }\n};\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 */\nproto.select = function( index, isWrap, isInstant ) {\n if ( !this.isActive ) {\n return;\n }\n index = parseInt( index, 10 );\n this._wrapSelect( index );\n\n if ( this.options.wrapAround || isWrap ) {\n index = utils.modulo( index, this.slides.length );\n }\n // bail if invalid index\n if ( !this.slides[ index ] ) {\n return;\n }\n var prevIndex = this.selectedIndex;\n this.selectedIndex = index;\n this.updateSelectedSlide();\n if ( isInstant ) {\n this.positionSliderAtSelected();\n } else {\n this.startAnimation();\n }\n if ( this.options.adaptiveHeight ) {\n this.setGallerySize();\n }\n // events\n this.dispatchEvent( 'select', null, [ index ] );\n // change event if new index\n if ( index != prevIndex ) {\n this.dispatchEvent( 'change', null, [ index ] );\n }\n // old v1 event name, remove in v3\n this.dispatchEvent('cellSelect');\n};\n\n// wraps position for wrapAround, to move to closest slide. #113\nproto._wrapSelect = function( index ) {\n var len = this.slides.length;\n var isWrapping = this.options.wrapAround && len > 1;\n if ( !isWrapping ) {\n return index;\n }\n var wrapIndex = utils.modulo( index, len );\n // go to shortest\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 if ( !this.isDragSelect && backWrapDelta < delta ) {\n index += len;\n } else if ( !this.isDragSelect && forewardWrapDelta < delta ) {\n index -= len;\n }\n // wrap position so slider is within normal area\n if ( index < 0 ) {\n this.x -= this.slideableWidth;\n } else if ( index >= len ) {\n this.x += this.slideableWidth;\n }\n};\n\nproto.previous = function( isWrap, isInstant ) {\n this.select( this.selectedIndex - 1, isWrap, isInstant );\n};\n\nproto.next = function( isWrap, isInstant ) {\n this.select( this.selectedIndex + 1, isWrap, isInstant );\n};\n\nproto.updateSelectedSlide = function() {\n var slide = this.slides[ this.selectedIndex ];\n // selectedIndex could be outside of slides, if triggered before resize()\n if ( !slide ) {\n return;\n }\n // unselect previous selected slide\n this.unselectSelectedSlide();\n // update new selected slide\n this.selectedSlide = slide;\n slide.select();\n this.selectedCells = slide.cells;\n this.selectedElements = slide.getCellElements();\n // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\n // Remove in v3?\n this.selectedCell = slide.cells[0];\n this.selectedElement = this.selectedElements[0];\n};\n\nproto.unselectSelectedSlide = function() {\n if ( this.selectedSlide ) {\n this.selectedSlide.unselect();\n }\n};\n\nproto.selectInitialIndex = function() {\n var initialIndex = this.options.initialIndex;\n // already activated, select previous selectedIndex\n if ( this.isInitActivated ) {\n this.select( this.selectedIndex, false, true );\n return;\n }\n // select with selector string\n if ( initialIndex && typeof initialIndex == 'string' ) {\n var cell = this.queryCell( initialIndex );\n if ( cell ) {\n this.selectCell( initialIndex, false, true );\n return;\n }\n }\n\n var index = 0;\n // select with number\n if ( initialIndex && this.slides[ initialIndex ] ) {\n index = initialIndex;\n }\n // select instantly\n this.select( index, false, true );\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, Number]} value - zero-based index or element to select\n * @param {Boolean} isWrap - enables wrapping around for extra index\n * @param {Boolean} isInstant - disables slide animation\n */\nproto.selectCell = function( value, isWrap, isInstant ) {\n // get cell\n var cell = this.queryCell( value );\n if ( !cell ) {\n return;\n }\n\n var index = this.getCellSlideIndex( cell );\n this.select( index, isWrap, isInstant );\n};\n\nproto.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 if ( index != -1 ) {\n return i;\n }\n }\n};\n\n// -------------------------- get cells -------------------------- //\n\n/**\n * get Flickity.Cell, given an Element\n * @param {Element} elem - matching cell element\n * @returns {Flickity.Cell} cell - matching cell\n */\nproto.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 if ( cell.element == elem ) {\n return cell;\n }\n }\n};\n\n/**\n * get collection of Flickity.Cells, given Elements\n * @param {[Element, Array, NodeList]} elems - multiple elements\n * @returns {Array} cells - Flickity.Cells\n */\nproto.getCells = function( elems ) {\n elems = utils.makeArray( elems );\n var cells = [];\n elems.forEach( function( elem ) {\n var cell = this.getCell( elem );\n if ( cell ) {\n cells.push( cell );\n }\n }, this );\n return cells;\n};\n\n/**\n * get cell elements\n * @returns {Array} cellElems\n */\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n } );\n};\n\n/**\n * get parent cell from an element\n * @param {Element} elem - child element\n * @returns {Flickit.Cell} cell - parent cell\n */\nproto.getParentCell = function( elem ) {\n // first check if elem is cell\n var cell = this.getCell( elem );\n if ( cell ) {\n return cell;\n }\n // try to get parent cell elem\n elem = utils.getParent( elem, '.flickity-slider > *' );\n return this.getCell( elem );\n};\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 */\nproto.getAdjacentCellElements = function( adjCount, index ) {\n if ( !adjCount ) {\n return this.selectedSlide.getCellElements();\n }\n index = index === undefined ? this.selectedIndex : index;\n\n var len = this.slides.length;\n if ( 1 + ( adjCount * 2 ) >= len ) {\n return this.getCellElements();\n }\n\n var cellElems = [];\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 if ( slide ) {\n cellElems = cellElems.concat( slide.getCellElements() );\n }\n }\n return cellElems;\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, String, Number]} selector - element, selector string, or index\n * @returns {Flickity.Cell} - matching cell\n */\nproto.queryCell = function( selector ) {\n if ( typeof selector == 'number' ) {\n // use number as index\n return this.cells[ selector ];\n }\n if ( typeof selector == 'string' ) {\n // do not select invalid selectors from hash: #123, #/. #791\n if ( selector.match( /^[#.]?[\\d/]/ ) ) {\n return;\n }\n // use string as selector, get element\n selector = this.element.querySelector( selector );\n }\n // get cell from element\n return this.getCell( selector );\n};\n\n// -------------------------- events -------------------------- //\n\nproto.uiChange = function() {\n this.emitEvent('uiChange');\n};\n\n// keep focus on element when child UI elements are clicked\nproto.childUIPointerDown = function( event ) {\n // HACK iOS does not allow touch events to bubble up?!\n if ( event.type != 'touchstart' ) {\n event.preventDefault();\n }\n this.focus();\n};\n\n// ----- resize ----- //\n\nproto.onresize = function() {\n this.watchCSS();\n this.resize();\n};\n\nutils.debounceMethod( Flickity, 'onresize', 150 );\n\nproto.resize = function() {\n if ( !this.isActive ) {\n return;\n }\n this.getSize();\n // wrap values\n if ( this.options.wrapAround ) {\n this.x = utils.modulo( this.x, this.slideableWidth );\n }\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n this.emitEvent('resize');\n // update selected index for group slides, instant\n // TODO: position can be lost between groups of various numbers\n var selectedElement = this.selectedElements && this.selectedElements[0];\n this.selectCell( selectedElement, false, true );\n};\n\n// watches the :after property, activates/deactivates\nproto.watchCSS = function() {\n var watchOption = this.options.watchCSS;\n if ( !watchOption ) {\n return;\n }\n\n var afterContent = getComputedStyle( this.element, ':after' ).content;\n // activate if :after { content: 'flickity' }\n if ( afterContent.indexOf('flickity') != -1 ) {\n this.activate();\n } else {\n this.deactivate();\n }\n};\n\n// ----- keydown ----- //\n\n// go previous/next if left/right keys pressed\nproto.onkeydown = function( event ) {\n // only work if element is in focus\n var isNotFocused = document.activeElement && document.activeElement != this.element;\n if ( !this.options.accessibility || isNotFocused ) {\n return;\n }\n\n var handler = Flickity.keyboardHandlers[ event.keyCode ];\n if ( handler ) {\n handler.call( this );\n }\n};\n\nFlickity.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};\n\n// ----- focus ----- //\n\nproto.focus = function() {\n // TODO remove scrollTo once focus options gets more support\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus ...\n // #Browser_compatibility\n var prevScrollY = window.pageYOffset;\n this.element.focus({ preventScroll: true });\n // hack to fix scroll jump after focus, #76\n if ( window.pageYOffset != prevScrollY ) {\n window.scrollTo( window.pageXOffset, prevScrollY );\n }\n};\n\n// -------------------------- destroy -------------------------- //\n\n// deactivate all Flickity functionality, but keep stuff available\nproto.deactivate = function() {\n if ( !this.isActive ) {\n return;\n }\n this.element.classList.remove('flickity-enabled');\n this.element.classList.remove('flickity-rtl');\n this.unselectSelectedSlide();\n // destroy cells\n this.cells.forEach( function( cell ) {\n cell.destroy();\n } );\n this.element.removeChild( this.viewport );\n // move child elements back into element\n moveElements( this.slider.children, this.element );\n if ( this.options.accessibility ) {\n this.element.removeAttribute('tabIndex');\n this.element.removeEventListener( 'keydown', this );\n }\n // set flags\n this.isActive = false;\n this.emitEvent('deactivate');\n};\n\nproto.destroy = function() {\n this.deactivate();\n window.removeEventListener( 'resize', this );\n this.allOff();\n this.emitEvent('destroy');\n if ( jQuery && this.$element ) {\n jQuery.removeData( this.element, 'flickity' );\n }\n delete this.element.flickityGUID;\n delete instances[ this.guid ];\n};\n\n// -------------------------- prototype -------------------------- //\n\nutils.extend( proto, animatePrototype );\n\n// -------------------------- extras -------------------------- //\n\n/**\n * get Flickity instance from element\n * @param {[Element, String]} elem - element or selector string\n * @returns {Flickity} - Flickity instance\n */\nFlickity.data = function( elem ) {\n elem = utils.getQueryElement( elem );\n var id = elem && elem.flickityGUID;\n return id && instances[ id ];\n};\n\nutils.htmlInit( Flickity, 'flickity' );\n\nif ( jQuery && jQuery.bridget ) {\n jQuery.bridget( 'flickity', Flickity );\n}\n\n// set internal jQuery, for Webpack + jQuery v3, #478\nFlickity.setJQuery = function( jq ) {\n jQuery = jq;\n};\n\nFlickity.Cell = Cell;\nFlickity.Slide = Slide;\n\nreturn Flickity;\n\n} ) );\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/flickity.js\n// module id = 6\n// module chunks = 0","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport store from \"./store\";\nimport account from \"./templates/account\";\nimport { localizeProductData, updateStateAddressForm, updateStateShippingAddressForm, getSizeStockData, renderSummaryItemImages, renderSummaryItemImagesCart, renderReceiptItem, renderStates, renderCountries, renderPaymentMethodsLogo } from \"./templates/partials\";\nimport { purifier } from \"../util/dom\";\nimport { deepClone } from \"../util/object\";\nimport { paymentMethodsMap } from \"../config\";\nimport loadImages from \"../util/loadImages\";\nimport completeSystemSlider from '../components/sliders/complete-system';\nimport { validatePostalCode } from \"../util/string\";\nimport country from \"../partials/top/country\";\nimport { trackPurchase } from \"../components/stoked\";\nimport { isBundle, monify } from \"../components/bundles\";\nvar firstRender = true;\nvar renderCartItemPrice = function renderCartItemPrice(item, cache) {\n // prettier-ignore\n return cache.price.showAsOnSale ? \"\\n\\t\\t
\\n\\t\\t\\t\".concat(purifier(item.priceEachBeforeDiscount || cache.price.priceBeforeDiscount), \" \").concat(purifier(item.priceEach || cache.price.price), \"\\n\\t\\t
\\n\\t\") : \"\\n\\t\\t
\\n\\t\\t\\t\".concat(purifier(item.priceEach || cache.price.price), \"\\n\\t\\t
\\n\\t\");\n};\nvar renderCheckoutItemSize = function renderCheckoutItemSize(item, cache, selectionItems) {\n return Object.keys(cache.sizes).map(function (size) {\n var sizeValue = cache.sizes[size];\n var sizeId = [sizeValue.sku, sizeValue.name].join('-');\n var lowStock = renderLowStockItem(sizeValue.item, cache);\n var sizeClass = sizeValue.name.toLowerCase().replace(' ', '') === 'onesize' ? 'size-modifier-one-size' : '';\n // prettier-ignore\n return \"\\n\\t\\t\\t
  • \\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\").concat(lowStock ? \"\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\\"\".concat(window.sitewide.lowStock.title,\\n\\t\\t\\t\\t\\t\\t\\t\").concat(window.sitewide.lowStock.title, \"\\n\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t

    \").concat(window.sitewide.lowStock.text, \"

    \\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\") : \"\", \"\\n\\t\\t\\t
  • \\n\\t\\t\\t\");\n }).join('');\n};\nvar renderLowStockItem = function renderLowStockItem(item, cache) {\n var stockInfo = getSizeStockData(item, cache);\n if (item.hasOwnProperty('line')) {\n // console.log(stockInfo);\n $(document).ready(function () {\n var cartAddBtn = $('#js-selectedItems div.cart-list ul.cart-items li[data-line=\"' + item.line + '\"]');\n if (cartAddBtn.length > 0) {\n cartAddBtn.find('.qty span[data-action=\"increase\"]').each(function (i, el) {\n if (stockInfo.addedInCart < stockInfo.sizeInStock) {\n $(el).prop('disabled', false).css('opacity', 1);\n } else {\n $(el).prop('disabled', true).css('opacity', .2);\n }\n });\n }\n var checkoutAddBtn = $('#js-checkoutPageItems div.checkout-product-item[data-line=\"' + item.line + '\"]');\n if (checkoutAddBtn.length > 0) {\n checkoutAddBtn.find('.checkout-product-quantity span[data-action=\"increase\"]').each(function (i, el) {\n if (stockInfo.addedInCart < stockInfo.sizeInStock) {\n $(el).prop('disabled', false).css('opacity', 1);\n } else {\n $(el).prop('disabled', true).css('opacity', .2);\n }\n });\n }\n });\n }\n return stockInfo.sizeInStock && stockInfo.sizeInStock <= window.sitewide.lowStock.count ? window.sitewide.lowStock.label : \"\";\n};\nvar renderCartItem = function renderCartItem(item, cache) {\n var _cache$swatch2;\n var checkout = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (!cache) return \"\";\n cache = localizeProductData(cache);\n\n // prettier-ignore\n if (isBundle(item)) {\n var _store$getState = store.getState(),\n productCache = _store$getState.productCache;\n return \"\\n\\t\\t
  • \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\").concat(renderSummaryItemImagesCart(item, cache), \"\\n\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\").concat(purifier(cache.name), \"\\n\\t\\t\\t\\t\\t\\t
    \\n \").concat(item.bundle.map(function (item) {\n var _cache$swatch;\n var cache = item.product in productCache.items ? localizeProductData(productCache.items[item.product]) : false;\n if (!cache) {\n return \"\";\n }\n var sub = [];\n if ((_cache$swatch = cache.swatch) !== null && _cache$swatch !== void 0 && _cache$swatch.desc) sub.push(cache.swatch.desc);\n if (item !== null && item !== void 0 && item.size) sub.push(\"Size \".concat(item.size));\n return \"\");\n }).join(\"\"), \"\\n\\t\\t\\t\\t\\t
    \\n\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\").concat(renderCartItemPrice(item, cache), \"\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\").concat(renderLowStockItem(item, cache), \"\\n\\t\\t\\t\\t
    \\n\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t
  • \");\n }\n return \"\\n
  • \\n
    \\n \").concat(renderSummaryItemImagesCart(item, cache), \"\\n\\n
    \\n \\n
    \\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t-\\n\\t\\t\\t\\t\\t\\t\").concat(purifier(item.quantity), \"\\n\\t\\t\\t\\t\\t\\t+\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\").concat(renderCartItemPrice(item, cache), \"\\n\\t\\t\\t\\t
    \\n \").concat(renderLowStockItem(item, cache), \"\\n
    \\n\\n
    \\n \\n
    \\n
    \\n
  • \");\n};\nvar renderCheckoutItem = function renderCheckoutItem(item, cache) {\n var _cache$swatch4;\n if (!cache) return \"\";\n cache = localizeProductData(cache);\n\n // prettier-ignore\n if (\"bundle\" in item && item.bundle) {\n var _store$getState2 = store.getState(),\n productCache = _store$getState2.productCache;\n return \"
    \\n \").concat(renderSummaryItemImages(item, cache), \"\\n
    \\n \\n \").concat(item.bundle.map(function (item) {\n var _cache$swatch3;\n var cache = item.product in productCache.items ? localizeProductData(productCache.items[item.product]) : false;\n if (!cache) {\n return \"\";\n }\n var sub = [];\n if ((_cache$swatch3 = cache.swatch) !== null && _cache$swatch3 !== void 0 && _cache$swatch3.desc) sub.push(cache.swatch.desc);\n if (item !== null && item !== void 0 && item.size) sub.push(\"Size \".concat(item.size));\n return \"\");\n }).join(\"\"), \"\\n
    \\n
    \\n
    \").concat(renderCartItemPrice(item, cache), \"
    \\n
    \\n
    \\n
    \\n
    \\n \\n \\n \\n \\n \\n \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \");\n }\n return \"\\n\\t
    \\n\\t\\t\").concat(renderSummaryItemImages(item, cache), \"\\n
    \\n \\n
    \\n
    \\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t-\\n\\t\\t\\t\\t\\t\\t\").concat(purifier(item.quantity), \"\\n\\t\\t\\t\\t\\t\\t+\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\").concat(renderLowStockItem(item, cache), \"\\n\\t\\t\\t\\t
    \\n\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\").concat(renderCartItemPrice(item, cache), \"\\n\\t\\t\\t\\t
    \\n
    \\n
    \\n
    \\n \\n \\n \\n \\n \\n \\n \\n \\n
    \\n
    \\n
    \\n
    \\n\\t
    \\n \");\n};\nvar renderCheckoutItemSlider = function renderCheckoutItemSlider(item, cache, selectionItems) {\n if (!cache) return \"\";\n cache = localizeProductData(cache);\n var addedProducts = selectionItems.map(function (item) {\n return item.slice(0, item.indexOf(\"-\"));\n });\n\n // prettier-ignore\n return \"\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\".concat(renderSummaryItemImages(item, cache), \"\\n\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\").concat(purifier(cache.name), \"\\n\\t\\t\\t\\t\\t
    \").concat(purifier(cache.variantName), \"
    \\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
    \").concat(renderCartItemPrice(item, cache), \"
    \\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\").concat(purifier(cache.excerpt), \"\\n\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\").concat(renderCheckoutItemSize(item, cache, selectionItems), \"\\n\\t\\t\\t\\t
    \\n\\n\\t\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n \");\n};\nvar renderAddOnProducts = function renderAddOnProducts(items) {\n var _store$getState3 = store.getState(),\n productCache = _store$getState3.productCache,\n selection = _store$getState3.selection;\n var pricelist = store.getState().store.pricelist;\n var priceLimit = window.sitewide.addOnLimit[pricelist] ? parseFloat(window.sitewide.addOnLimit[pricelist]) : 9999999999;\n var productSkus = items.map(function (item) {\n return item.sku;\n });\n var productSort = {};\n var products = [];\n\n // Get all upsell products related to items added to cart\n if (productCache && productCache.items) {\n Object.keys(items).forEach(function (key) {\n var item = items[key].item;\n var product = item.slice(0, item.indexOf(\"-\")); // Extract product id from item id\n var upsell = productCache.items[product] && productCache.items[product].upsell ? productCache.items[product].upsell : [];\n if (upsell) {\n products = products.concat(upsell.filter(function (item, index) {\n // This will be used for sorting products\n if (!productSort.hasOwnProperty(item)) productSort[item] = parseInt(index);\n var cache = productCache.items[item];\n var sku = cache.sku || '';\n var skuNotExists = productSkus.indexOf(sku) < 0;\n\n // Return false if product is less than the price limit set in the sitewide\n if (parseFloat(cache.price.priceAsNumber) > priceLimit) return false;\n\n // Return false if product is out of stock\n if (parseInt(cache.inStock) === 0) return false;\n\n // Return true if the current product sku still not on the list\n if (skuNotExists) {\n productSkus.push(sku);\n return true;\n }\n return false;\n }));\n }\n });\n }\n products = _toConsumableArray(new Set(products));\n\n // Sort combined upsell products\n var sortedProducts = products.sort(function (a, b) {\n a = parseInt(productSort[a], 10);\n b = parseInt(productSort[b], 10);\n if (a < b) {\n return -1;\n } else if (a > b) {\n return 1;\n } else {\n return 0;\n }\n });\n var html = sortedProducts.map(function (item) {\n return renderCheckoutItemSlider(item, productCache.items[item], selection.items.map(function (item) {\n return item.item;\n }));\n }).join('');\n return html ? \"
    \".concat(html, \"
    \") : '';\n};\nvar renderDutyConsent = function renderDutyConsent(countryCode) {\n var totals = store.getState().selection.totals;\n var country = store.getState().store.country;\n var container = $('#checkout-duties');\n var cCode = countryCode == undefined ? country : countryCode;\n var dutyConsent = window.sitewide.dutyconsent;\n var duty = dutyConsent.country[cCode];\n var grandtotal = totals ? totals.grandTotalPriceAsNumber : 0;\n if (duty == undefined || grandtotal <= parseFloat(duty.price_limit)) {\n return container.hide();\n } else {\n var bgColor = '';\n var textColor = '';\n if (typeof duty.bg_color !== 'undefined' && duty.bg_color) {\n var classes = duty.bg_color.split('_');\n bgColor = classes[0] || '';\n textColor = classes[1] || '';\n }\n return container.show().html(\"\\n\\t\\t
    \\n\\t\\t\\t
    \").concat(purifier(duty.title), \"
    \\n\\t\\t\\t
    \").concat(purifier(duty.message), \"
    \\n\\t\\t\\t\").concat(purifier(duty.learn_more), \"\\n\\t\\t\\t
    \\n\\t\\t\\t\\t\").concat(duty.required ? \"\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\") : '', \"\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t\\t
    \")); //is-invalid - checkbox\n }\n};\nvar renderCountryNotice = function renderCountryNotice(countryCode) {\n var _store$getState$store = store.getState().store,\n country = _store$getState$store.country,\n state = _store$getState$store.state;\n var shippingAddress = store.getState().payment.shippingAddress;\n var items = store.getState().selection.items;\n var _store$getState4 = store.getState(),\n countries = _store$getState4.countries;\n var container = $('#country-notice');\n var cCode = countryCode == undefined ? country : countryCode;\n var countryNotice = window.sitewide.countryNotice;\n var notice = countryNotice && countryNotice[cCode] ? countryNotice[cCode] : {};\n var showMessage = true;\n\n // Set showmessage state based on state filter\n if (notice.centra_state != undefined && notice.centra_state && countries[cCode].states != undefined && countries[cCode].states) {\n var currentStateName = countries[cCode].states[shippingAddress.state] || '';\n var filterState = notice.centra_state.split(\"
    \").map(function (item) {\n return item.replace('\\r\\n', '').trim().toUpperCase();\n });\n showMessage = $.inArray(currentStateName.toUpperCase(), filterState) !== -1;\n }\n\n // Set showmessage state based on cart Item SKUs, and if current country/state match a settting in the sitewide\n if (showMessage && notice.product_sku != undefined && notice.product_sku.length) {\n var cartSku = items.map(function (item) {\n return (item.sku + item.variant).toUpperCase();\n });\n var matchSku = notice.product_sku.filter(function (x) {\n return cartSku.includes(x);\n });\n showMessage = matchSku.length > 0;\n }\n if (Object.keys(notice).length === 0 || showMessage == false) {\n return container.hide();\n } else {\n var img = '';\n if (sitewide.countryNoticeLogo) {\n img = \"\\\"Prop65\");\n }\n return container.show().html(\"\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t \".concat(purifier(img), \"\\n
    \\n \").concat(purifier(notice.message), \"\\n
    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t \\t
    \"));\n }\n};\nvar renderProductItemPrice = function renderProductItemPrice(item, cache) {\n var hasMultiplePrices = cache.hasOwnProperty('connectedProducts') && Object.values(cache.connectedProducts).length > 0,\n from = hasMultiplePrices ? window.sitewide.from + ' ' : '';\n\n // prettier-ignore\n return cache.inStock === 0 ? \"\\n\\t\\t
    \".concat(from).concat(purifier(item.priceEach || cache.price.price), \"
    \\n\\t\") : cache.price.is_sale ? \"\\n\\t\\t
    \\n\\t\\t\\t
    \".concat(from).concat(purifier(item.priceEach || cache.price.price), \" \").concat(from).concat(purifier(item.priceEachBeforeDiscount || cache.price.priceBeforeDiscount), \"
    \\n\\t\\t
    \\n \\t\") : \"\\n\\t\\t
    \\n\\t\\t
    \".concat(from).concat(purifier(item.priceEach || cache.price.price), \"
    \\n\\t\\t
    \\n \\t\");\n};\nvar renderProductImages = function renderProductImages(item, cache) {\n var images = cache.image.length > 1 ? [cache.image[0], cache.image[cache.image.length - 1]] : cache.image;\n\n //src !!}\" data-srcset=\"{!! $image->srcSet !!}\" sizes=\"{{ $image->sizes }}\" alt=\"{{ $image->alt }}\" />\n // prettier-ignore\n return \"\\n
    1 ? 'has-second-image' : '', \"\\\">\\n\\t\\t\").concat(images.map(function (image) {\n return \"\\\"\").concat(purifier(cache.name),\");\n }).join(\"\"), \"\\n
    \\n \").concat(cache.price.is_flash_sale ? \"
    \") + purifier(window.sitewide.flashSale) + '
    ' : '', \"\\n \");\n};\nvar renderProductBadge = function renderProductBadge(text) {\n return \"
    \".concat(purifier(text), \"
    \");\n};\nvar renderProductItem = function renderProductItem(item, cache) {\n if (!cache) return \"\";\n cache = localizeProductData(cache);\n var variantName = cache.variantName;\n var disabledVariantHoverCategories = ['necklaces', 'bracelets'];\n if (cache.categories.length > 0 && cache.categories.filter(function (category) {\n return disabledVariantHoverCategories.includes(category.toLowerCase());\n }).length > 0) variantName = cache.name;\n var connectedSizes = cache.sizes.map(function (size) {\n size.name = size.name || (cache.hasOwnProperty('oneSizeName') ? cache.oneSizeName : null) || window.sitewide.oneSize;\n return size;\n });\n var allStock = cache.inStock;\n if (cache.hasOwnProperty('connectedProducts') && Object.values(cache.connectedProducts).length > 0) {\n connectedSizes = [].concat(_toConsumableArray(connectedSizes), _toConsumableArray(Object.values(cache.connectedProducts).map(function (product) {\n var currentProduct = store.getState().productCache.items[product];\n if (currentProduct === undefined) return null;\n allStock += currentProduct.inStock;\n return currentProduct.sizes.map(function (size) {\n var productData = store.getState().productCache.items[product];\n size.name = size.name || (productData.hasOwnProperty('oneSizeName') ? productData.oneSizeName : null) || window.sitewide.oneSize;\n return size;\n });\n }).filter(function (size) {\n return size;\n }).reduce(function (acc, val) {\n return [].concat(_toConsumableArray(acc), _toConsumableArray(val));\n }, [])));\n connectedSizes = connectedSizes.sort(function (a, b) {\n return a.name.trim() > b.name.trim() ? 1 : -1;\n });\n }\n var productCardClass = allStock === 0 ? 'is-out-of-stock' : cache.price.showAsOnSale ? ' is-sale' : '';\n\n // prettier-ignore\n return \"\\n
    \\n \\n
    \\n \").concat(renderProductImages(item, cache), \"\\n
    \\n
    \\n \").concat(allStock === 0 ? renderProductBadge(window.sitewide.soldOut) : '', \"\\n \").concat(cache.price.is_new ? renderProductBadge(window.sitewide.newProduct) : '', \"\\n \").concat(cache.badges ? Object.values(cache.badges).map(function (badge) {\n return renderProductBadge(badge);\n }).join(\"\") : '', \"\\n\\n\\t\\t
    \\n\\t\\t
    \").concat(purifier(cache.name), \"
    \\n\\t\\t\\t\").concat(renderProductItemPrice(item, cache), \"\\n\\t\\t
    \\n\\n
    \\n\\t\\t
    \").concat(purifier(variantName), \"
    \\n
    \\n\\t\\t\\t\\t\").concat(connectedSizes.map(function (size) {\n return \"
    0 || size.stock === \"infinite\" ? '' : 'is-out-of-stock', \"\\\">\").concat(size.name, \"
    \");\n }).join(\"\"), \"\\n
    \\n
    \\n
    \\n
    \\n
    \");\n};\nvar renderProductPagePrice = function renderProductPagePrice(item, cache) {\n var hasMultiplePrices = cache.hasOwnProperty('connectedProducts') && Object.values(cache.connectedProducts).length > 0,\n from = hasMultiplePrices ? \"\".concat(window.sitewide.from, \" \") : '';\n\n // prettier-ignore\n return cache.inStock === 0 ? \"\\n\\t\\t
    \".concat(from).concat(purifier(item.priceEach || cache.price.price), \"
    \\n \\t\") : cache.price.is_sale ? \"\\n\\t\\t
    \\n\\t\\t\".concat(from).concat(purifier(item.priceEach || cache.price.price), \"\").concat(purifier(item.priceEachBeforeDiscount || cache.price.priceBeforeDiscount), \"\\n\\t\\t
    \\n \\t\") : \"\\n\\t\\t
    \\n\\t\\t\".concat(from).concat(purifier(item.priceEach || cache.price.price), \"\\n\\t\\t
    \\n \\t\");\n};\nvar renderCheckoutVouchers = function renderCheckoutVouchers(vouchers) {\n if (vouchers.length === 0) return \"\";\n // prettier-ignore\n return vouchers.map(function (voucher) {\n return \"\\n
    \\n
    \\n
    \\n \\n \\n \\n \\n \\n \\n \\n \\n
    \\n

    \").concat(purifier(voucher.voucher), \"

    \\n
    \\n
    \\n \");\n });\n};\nvar renderCountriesSiteWide = function renderCountriesSiteWide(escStore, countries) {\n if (typeof countries === \"undefined\" || _typeof(countries) !== \"object\") return \"\";\n\n // prettier-ignore\n return Object.keys(countries).filter(function (country) {\n return countries[country].shipTo;\n }).map(function (country) {\n return \"\\n \\n \");\n });\n};\nvar renderCountriesCustomDropdown = function renderCountriesCustomDropdown(escStore, countries) {\n if (typeof countries === \"undefined\" || _typeof(countries) !== \"object\") return \"\";\n\n // prettier-ignore\n return Object.keys(countries).filter(function (country) {\n return countries[country].shipTo;\n }).map(function (country) {\n return \"\\n\\t\\t
  • \\n\\t\\t\\t\\n\\t\\t\\t
    \").concat(countries[country].name, \"
    \\n\\t\\t
  • \\n \");\n });\n};\nvar renderShippingChoices = function renderShippingChoices(methods, totals, selected) {\n if (typeof methods === 'undefined' || methods.length === 0) return \"\";\n\n // prettier-ignore\n return methods.map(function (method) {\n return \"\\n
    \\n
    \\n \\n \\n
    \\n
    \\n \");\n });\n};\nvar renderPaymentChoices = function renderPaymentChoices(methods, selected) {\n if (typeof methods === 'undefined' || methods.length === 0) return \"\";\n var sortedMethods = methods.map(function (method) {\n var sort = 999;\n var paymentMethodLogos = window.sitewide.paymentMethodLogos || {};\n if (paymentMethodLogos && paymentMethodLogos.method) {\n var pos = Object.keys(paymentMethodLogos.method).indexOf(method.paymentMethod);\n sort = pos !== -1 ? pos : sort;\n }\n method.sort = sort;\n return method;\n }).sort(function (a, b) {\n return a.sort - b.sort;\n });\n\n // prettier-ignore\n return sortedMethods.map(function (method) {\n return \"\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\").concat(window.sitewide.paymentMethodLogos.method && window.sitewide.paymentMethodLogos.method[method.paymentMethod] ? window.sitewide.paymentMethodLogos.method[method.paymentMethod].map(function (type) {\n return \"\\n\\t\\t\\t\\t\\t\\\"\").concat(type.alt,\\n\\t\\t\\t\\t\");\n }).join('') : '', \"\\n\\t\\t
    \\n\\t
    \\n \");\n });\n};\nvar updatePaymentFormPlaceholders = function updatePaymentFormPlaceholders() {\n var fields = $('#js-checkoutPaymentForm .js-form-input');\n if (fields.length === 0) return;\n var country = store.getState().store.country;\n\n // Get default payment form translations\n var defaultPaymentForm = window.sitewide.defaultPaymentForm || {};\n var paymentForm = {};\n\n // Get country payment form translation\n if (window.sitewide.paymentForm && window.sitewide.paymentForm[country]) {\n paymentForm = window.sitewide.paymentForm[country];\n }\n fields.each(function (i, item) {\n var el = $(item);\n var isDropdown = el.parent().hasClass('custom-dropdown');\n var name = isDropdown ? el.data('name') : el.attr('name');\n var placeholder = defaultPaymentForm[name] || '';\n if (typeof paymentForm[name] !== 'undefined' && paymentForm[name]) {\n placeholder = paymentForm[name];\n }\n if (!placeholder) return;\n if (el.parent().hasClass('custom-dropdown')) {\n var parent = el.parents('.form-group');\n if (parent.length) {\n parent.find('.custom-dropdown button').text(placeholder);\n el.find(\".dropdown-item[data-value='']\").text(placeholder);\n }\n } else {\n el.attr('placeholder', placeholder);\n }\n });\n};\nvar updateMessageForm = function updateMessageForm() {\n var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (message) {\n $(\"#js-checkoutPageMessage\").addClass(\"is-toggled\").find(\"textarea\").val(message);\n }\n};\nvar renderNewsletterInput = function renderNewsletterInput(paymentMethod) {\n var klarnaWrap = $('#js-newsletterInputKlarna');\n var adyenWrap = $('#js-newsletterInputAdyen');\n var wrapper, toHide;\n if (paymentMethod === 'klarna') {\n wrapper = klarnaWrap;\n toHide = adyenWrap;\n } else {\n wrapper = adyenWrap;\n toHide = klarnaWrap;\n }\n if (wrapper.length === 0) return;\n var field = wrapper.find('.js-checkboxInputs');\n wrapper.show();\n toHide.hide();\n field.html(\"\\n\\t\\n\\t\\n\"));\n SelectedModal.appendEventFromWrap(wrapper[0]);\n};\nvar displaySummaryItem = function displaySummaryItem(els) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var text = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n els.each(function (i, item) {\n var el = $(item);\n var showClass = el.data('show-class') ? el.data('show-class') : '';\n if (el && value) {\n el.text(text).parent().removeClass('d-none').addClass(showClass);\n } else {\n el.parent().removeClass(showClass).addClass('d-none');\n }\n });\n};\n\n/* Updates cart list in header */\nvar updateCart = function updateCart(selection, productCache, newProduct) {\n var items = \"\",\n moreItems = \"\",\n mobileCartItems = \"\";\n var currency = store.getState().store.currency;\n if (selection.items.length > 0) {\n items = selection.items.map(function (item) {\n return renderCartItem(item, productCache[item.item.slice(0, item.item.indexOf(\"-\"))]);\n });\n if ($('.js-cart-products').length != 0) {\n var cartContent = $('.js-cart-products');\n cartContent.find('.cart-title').text(cartContent.data('item-added')).removeClass('mb-0');\n cartContent.find('.cart-summary').removeClass('d-none');\n cartContent.find('.cart-dropdown').removeClass('d-none');\n cartContent.find('.cart-buttons').removeClass('d-none');\n }\n } else {\n // Empty cart\n if ($('.js-cart-products').length != 0) {\n var _cartContent = $('.js-cart-products');\n _cartContent.find('.cart-title').text(_cartContent.data('no-item')).addClass('mb-0');\n _cartContent.find('.cart-summary').addClass('d-none');\n _cartContent.find('.cart-dropdown').addClass('d-none');\n _cartContent.find('.cart-buttons').addClass('d-none');\n }\n }\n if (!selection.totals || selection.totals.totalQuantity === 0) {\n $(\".js-item-count\").addClass('d-none');\n } else {\n $(\".js-item-count\").removeClass('d-none').find('span').text(selection.totals.totalQuantity);\n }\n $(\"#js-items-initial\").html(items);\n mobileCartItems = selection.items.map(function (item) {\n return renderCartItem(item, productCache[item.item.slice(0, item.item.indexOf(\"-\"))]);\n });\n $(\"#js-items-recent\").html(mobileCartItems);\n if (moreItems && selection.items.length > 3 || selection.items.length > 1 && newProduct) {\n $(\"#js-items-more\").html(moreItems);\n $('#js-items-show-all').show();\n $('.js-items-more-count').text(newProduct ? selection.items.length - 1 : selection.items.length - 3);\n } else {\n $('#js-items-show-all').hide();\n $(\"#js-items-more\").html('');\n $('.js-items-more-count').text('');\n }\n $(\".js-cart-summary-item-total\").text(selection.totals.itemsTotalPrice);\n var discount = $(\".js-cart-summary-discount\");\n displaySummaryItem(discount, selection.totals.totalDiscountPriceAsNumber, selection.totals.totalDiscountPrice);\n var shippingText = selection.totals.shippingPrice;\n if (sitewide.excludeShipping) {\n shippingText = sitewide.excludeShipping;\n }\n $(\".js-cart-summary-shipping\").text(shippingText);\n\n // Exlude shipping from total\n var cartPartialTotal = selection.totals.grandTotalPriceAsNumber || 0;\n if (selection.totals.shippingPriceAsNumber && sitewide.excludeShipping) {\n cartPartialTotal -= selection.totals.shippingPriceAsNumber;\n }\n $(\".js-cart-summary-grand\").text(monify(cartPartialTotal, currency));\n $(\"#js-cart-header-count\").text(selection.totals.totalQuantity);\n $(\"#js-cart-summary-count\").text(selection.totals.totalQuantity + ' ' + (selection.totals.totalQuantity == 1 ? $(\"#js-cart-summary-count\").data('singular') : $(\"#js-cart-summary-count\").data('plural')));\n\n /* Render added vouchers */\n if (selection.discounts) {\n $(\".js-checkoutPageVoucher\").find(\".js-addedVouchers\").html(renderCheckoutVouchers(selection.discounts.vouchers));\n }\n};\n\n// eslint-disable-next-line\nvar updateCheckoutPage = function updateCheckoutPage(selection, payment, productCache, escStore, countries, checkoutLogin) {\n var selectionErrors = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};\n var vouchers = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : {};\n var shipwallet = arguments.length > 8 ? arguments[8] : undefined;\n var useShippingAddress = arguments.length > 9 ? arguments[9] : undefined;\n if (selection.items && selection.items.length > 0) {\n // eslint-disable-next-line\n var totals = selection.totals,\n discounts = selection.discounts,\n shippingMethods = selection.shippingMethods,\n shippingMethod = selection.shippingMethod,\n paymentMethods = selection.paymentMethods,\n paymentFields = selection.paymentFields,\n paymentMethod = selection.paymentMethod;\n var items = selection.items.filter(function (item) {\n return typeof productCache[item.item.slice(0, item.item.indexOf(\"-\"))] !== 'undefined';\n }).map(function (item) {\n return renderCheckoutItem(item, productCache[item.item.slice(0, item.item.indexOf(\"-\"))]);\n });\n\n /* Order items */\n $(\"#js-checkoutPageItems\").html(items);\n\n /* Addons */\n var addOns = renderAddOnProducts(selection.items);\n $(\"#js-checkoutPageAddOns\").html(renderAddOnProducts(selection.items));\n $(\"#js-checkoutPageAddOns\").parents(\".checkout-subsection-wrapper\").toggle(!!addOns);\n\n /* Duty consent */\n renderDutyConsent();\n renderCountryNotice();\n\n /* Render added vouchers */\n $(\".js-checkoutPageVoucher\").find(\".js-addedVouchers\").html(renderCheckoutVouchers(discounts.vouchers));\n var hasItems = selection.items.length > 0;\n var totalContainer = $(\".js-checkoutPageTotals,#js-checkoutPageSummarySubmit\");\n\n // Discount\n var discount = totalContainer.find(\".js-discount\");\n displaySummaryItem(discount, selection.totals.totalDiscountPriceAsNumber, selection.totals.totalDiscountPrice);\n\n // Tax\n var vat = totalContainer.find(\".js-vat\");\n displaySummaryItem(vat, hasItems ? selection.totals.grandTotalPriceTaxAsNumber : false, selection.totals.grandTotalPriceTax);\n totalContainer.find(\".js-vat-percent\").text(selection.totals.taxPercent);\n\n // item total\n var itemTotal = totalContainer.find(\".js-subTotal\");\n displaySummaryItem(itemTotal, hasItems ? selection.totals.itemsTotalPrice : false, selection.totals.itemsTotalPrice);\n\n // Shipping\n var shipping = totalContainer.find(\".js-shipping\");\n displaySummaryItem(shipping, hasItems ? selection.totals.shippingPrice : false, selection.totals.shippingPrice);\n\n // Grand total\n var grandTotal = totalContainer.find(\".js-grandTotal\");\n displaySummaryItem(grandTotal, hasItems ? selection.totals.grandTotalPrice : false, selection.totals.grandTotalPrice);\n\n // Payment method logos\n $(\".js-checkoutPaymentLogos\").html(renderPaymentMethodsLogo(escStore));\n $(\"#js-countryRepeat\").val(countries[escStore.country] ? countries[escStore.country].name : '');\n var isShippable = escStore.country && countries[escStore.country] && countries[escStore.country].shipTo;\n var countryName = isShippable ? countries[escStore.country].name : 'Select country';\n $(\"#js-checkoutPageDelivery\").find(\".js-country\").html(renderCountries(escStore, countries, true)).end().find(\".js-country-text\").text(countryName);\n $(\"#js-checkoutAccount\").find(\".js-checkoutHideLogin\").toggle(!checkoutLogin && !payment.loggedIn).end().find(\".js-checkoutShowLogin\").toggle(checkoutLogin && !payment.loggedIn).end().find(\".js-checkoutHideLogout\").toggle(!payment.loggedIn).end().find(\".js-checkoutShowLogout\").toggle(!!payment.loggedIn);\n $(\"#js-checkoutAccount\").find(\".js-checkoutShowRegister\").toggle(!!payment.createAccount);\n if (typeof countries !== 'undefined' && countries[escStore.country] && countries[escStore.country].states) {\n var currentStateName = countries[escStore.country].states[payment.shippingAddress.state] ? countries[escStore.country].states[payment.shippingAddress.state] : window.sitewide.chooseState;\n $(\"#js-checkoutPageDelivery\").find(\".js-state\").parent().css({\n display: \"inline-block\"\n }).end().html(renderStates(escStore, countries[escStore.country].states, payment.shippingAddress.state || '')).end().find(\".js-state-text\").text(currentStateName);\n $(\"#js-stateRepeat\").parent().show().end().val(currentStateName);\n $(\"#js-checkoutPageAddressForm\").find(\".js-state\").parents(\".form-group\").show().end().html(renderStates(escStore, countries[escStore.country].states, payment.address.state || '')).end().find(\".js-state-text\").text(countries[escStore.country].states[payment.address.state] ? countries[escStore.country].states[payment.address.state] : window.sitewide.chooseState);\n if (countries[escStore.country].states[payment.address.state]) {\n $(\"#js-checkoutPaymentForm .js-state[data-group=\\\"address\\\"]\").val(payment.address.state);\n }\n if (countries[escStore.country].states[payment.shippingAddress.state]) {\n $(\"#js-checkoutPaymentForm .js-state[data-group=\\\"shippingAddress\\\"]\").val(payment.shippingAddress.state);\n }\n } else {\n $(\"#js-checkoutPageDelivery\").find(\".js-state\").parent().hide();\n $(\"#js-checkoutPageAddressForm\").find(\".js-state\").parents(\".form-group\").hide();\n $(\"#js-stateRepeat\").parent().hide();\n }\n $(\"#js-shippingChoices\").html(renderShippingChoices(shippingMethods, totals, shippingMethod));\n\n /* Payment Choices */\n $(\"#js-paymentChoices\").html(renderPaymentChoices(paymentMethods, paymentMethod)).closest('.js-section').toggleClass('d-none', paymentMethods.length <= 1);\n $(\".js-timeline-payment\").toggleClass('d-none', paymentMethods.length <= 1);\n $(\".js-timeline-adyen\").toggleClass('d-none', !(paymentMethods.length <= 1 && paymentMethod.indexOf('adyen') !== -1));\n $('.js-section:not(.is-hidden) .js-number').each(function (i, el) {\n $(el).text(\"\".concat(i + 1, \".\"));\n });\n\n /* Render useShippingAsBilling */\n $(\"#js-useShippingAddress\").prop('checked', !useShippingAddress ? true : false);\n $('#js-checkoutPageAddressForm').toggle(useShippingAddress);\n $(\".js-shipping-title\").text(useShippingAddress ? $(\".js-shipping-title\").data('shipping') : $(\".js-shipping-title\").data('default'));\n\n // $('#js-checkoutPageShippingAddressForm .js-form-input').attr(\"data-group\", (useShippingAddress ? 'shippingAddress' : 'address'));\n\n var checkoutAddressFormFields = deepClone(paymentFields.address);\n if (payment.createAccount) {\n if (_typeof(checkoutAddressFormFields.password) !== 'object') checkoutAddressFormFields.password = {};\n if (_typeof(checkoutAddressFormFields.passwordRepeat) !== 'object') checkoutAddressFormFields.passwordRepeat = {};\n checkoutAddressFormFields.password.visible = true;\n checkoutAddressFormFields.passwordRepeat.visible = true;\n }\n\n // Remove errors\n $('.invalid-feedback').remove();\n updateStateShippingAddressForm(paymentFields.shippingAddress, payment.shippingAddress, 'checkout-');\n updateStateAddressForm(checkoutAddressFormFields, payment.address, 'checkout-');\n updateMessageForm(payment.additionalNotes);\n updatePaymentFormPlaceholders();\n\n // zipcode warning\n var invalidAddressZipCode = payment.address.zipCode ? validatePostalCode(escStore.country, payment.address.zipCode) : false;\n var invalidShippingZipCode = payment.shippingAddress.zipCode ? validatePostalCode(escStore.country, payment.shippingAddress.zipCode) : false;\n var invalidZipCode = !useShippingAddress && invalidShippingZipCode || useShippingAddress && (invalidAddressZipCode || invalidShippingZipCode);\n $('#js-selectionZipCodeWarning').toggle(!!invalidZipCode);\n\n // Payment method\n if (paymentMethodsMap.klarnaCheckout.indexOf(paymentMethod) !== -1) {\n // Klarna\n $(\"#js-checkoutPageSummarySubmit,#js-checkboxInputs-terms,#js-checkoutPaymentForm\").hide();\n $(\"#js-klarnaCheckout\").show();\n\n // Use shipping field\n $(\".js-useShippingAddress-field\").hide();\n $(\".js-acceptTerms-field\").addClass('col-lg-12').removeClass('col-lg-6');\n renderNewsletterInput('klarna');\n } else {\n $(\"#js-checkoutPageSummarySubmit,#js-checkboxInputs-terms,#js-checkoutPaymentForm\").show();\n $(\"#js-klarnaCheckout\").hide();\n\n // Use shipping field\n $(\".js-useShippingAddress-field\").show();\n $(\".js-acceptTerms-field\").addClass('col-lg-6').removeClass('col-lg-12');\n renderNewsletterInput('adyen');\n }\n $(\"#js-checkoutPageDelivery,#js-checkoutPageAddressForm,#js-checkboxInputs-terms,.js-checkboxInputs,#checkout-duties\").find('input').each(function (i, el) {\n var $input = $(el);\n var id = $input.attr('name');\n var inputType = $input.attr('type');\n if (inputType === 'checkbox' && (payment[id] || payment.address[id])) $input.prop('checked', true);else if (inputType === 'checkbox' && typeof payment[id] !== 'undefined') $input.prop('checked', !!payment[id]);else if ($input.val() !== payment.address[id] && payment.address[id]) $input.val(payment.address[id]);\n });\n\n // Gift Wrap\n $('#js-giftWrap').toggleClass('is-giftWrap', !!payment.additionalNotes).find('textarea')\n // Remove text on first line of text on additional notes\n // (first line is just notification of gift wrapping being applied)\n .val((payment.additionalNotes || '').replace(/^.*[\\s]*/, '')).end().find('#js-toggleGiftWrap span').text(payment.additionalNotes ? $('#js-toggleGiftWrap').data('remove') : $('#js-toggleGiftWrap').data('add'));\n\n // Toggle errors\n $('#terms-checkbox-checkout').toggleClass('is-invalid', !!paymentFields.termsAndConditions.error);\n if (paymentFields.termsAndConditions.error) $('#terms-checkbox-checkout').addClass('is-invalid').siblings('label').after(\"
    \".concat(window.sitewide.accountEntryErrors.accept_terms || \"Accept term is required\", \"
    \"));\n $('#js-selectionGeneralError').toggle(!!selectionErrors.selectionErrorPayment);\n $('#js-selectionStockError').toggle(!!selectionErrors.selectionErrorStock);\n $('#js-selectionRegisterError').toggle(!!selectionErrors.selectionErrorRegistered);\n $('#js-selectionVoucherError').toggle(!!vouchers.error);\n\n // Toggle Customs Duty errors\n // $( '#checkout-dutyConsent' ).toggleClass( 'is-invalid', !!selectionErrors.selectionErrorDutyConsent );\n if (selectionErrors.selectionErrorDutyConsent) $('#checkout-dutyConsent').addClass('is-invalid').siblings('label').after(\"
    \".concat(window.sitewide.dutyconsent.error || \"Accept customs duties is required\", \"
    \"));\n if (selectionErrors.selectionError || selectionErrors.selectionErrorStock || selectionErrors.selectionErrorPayment || selectionErrors.selectionErrorRegistered) {\n $('#js-purchase').parent().show();\n $('#checkout-adyen').hide();\n }\n $(\"#js-checkout\").show();\n $(\"#js-emptyCheckout\").hide();\n } else {\n var _selection$totals = selection.totals,\n _totals = _selection$totals === void 0 ? false : _selection$totals;\n $(\"#js-checkoutPageItems\").html(\"\");\n $(\".js-checkoutPageTotals,#js-checkoutPageSummarySubmit\").find(\".js-subTotal\").text(_totals.itemsTotalPrice).end().find(\".js-discount\").parent().toggle(!!_totals.totalDiscountPrice).end().text(_totals.totalDiscountPrice).end().find(\".js-shipping\").text(_totals.shippingPriceAsNumber === 0 ? window.sitewide.freeShipping : _totals.shippingPrice).end().find(\".js-grandTotal\").text(_totals.grandTotalPrice).end().find(\".js-vat\").text(\n\n // totals.grandTotalPriceTaxAsNumber === 0\n // \t? \"\"\n // \t: $( \"#js-checkoutPageTotals\" )\n // \t\t.find( \".js-vat\" )\n // \t\t.data( \"text\" )\n // \t\t.replace( \"%amount%\", totals.grandTotalPriceTax )\n );\n /*\r\n end()\r\n \t\t.find( \".js-vat\" )\r\n .parent()\r\n .css( \"display\",\r\n \t$( \"#js-checkoutPageTotals\" )\r\n \t\t.find( \".js-vat\" )\r\n \t\t.text()\r\n \t\t? \"\"\r\n \t\t: \"none\" )\r\n */\n\n $(\"#js-checkout\").hide();\n $(\"#js-emptyCheckout\").show();\n $('#js-selectionStockErrorEmpty').toggle(!!selectionErrors.selectionErrorStock);\n }\n};\n\n// eslint-disable-next-line\nvar updateReceiptPage = function updateReceiptPage(selection, payment, productCache) {\n if (selection.items.length > 0) {\n var items = selection.items.map(function (item) {\n return renderReceiptItem(item, productCache[item.item.slice(0, item.item.indexOf(\"-\"))]);\n });\n var totals = selection.totals,\n _selection$receiptSni = selection.receiptSnippet,\n receiptSnippet = _selection$receiptSni === void 0 ? \"\" : _selection$receiptSni,\n _selection$paymentMet = selection.paymentMethodName,\n paymentMethodName = _selection$paymentMet === void 0 ? \"Debug\" : _selection$paymentMet,\n _selection$shippingMe = selection.shippingMethodName,\n shippingMethodName = _selection$shippingMe === void 0 ? \"Debug\" : _selection$shippingMe;\n $(\"#js-receiptSnippet\").parent().toggle(!!receiptSnippet);\n if (receiptSnippet) $(\"#js-receiptSnippet\").html(receiptSnippet);\n $(\"#js-receiptPageItems\").html(items);\n $(\"#js-receiptPageSummary\").show();\n $(\"#js-receiptPageSummary\").find(\".js-orderNumber\").text(window.tokens.debug ? \"DEBUG\" : selection.order);\n $.event.trigger('stoked-purchase', [selection, trackPurchase]);\n var hasItems = selection.items.length > 0;\n var totalContainer = $(\"#js-receiptPageTotals\");\n\n // Discount\n var discount = totalContainer.find(\".js-discount\");\n displaySummaryItem(discount, hasItems ? selection.totals.totalDiscountPriceAsNumber : false, selection.totals.totalDiscountPrice);\n\n // Tax\n var vat = totalContainer.find(\".js-vat\");\n displaySummaryItem(vat, hasItems ? selection.totals.grandTotalPriceTaxAsNumber : false, selection.totals.grandTotalPriceTax);\n totalContainer.find(\".js-vat-percent\").text(selection.totals.taxPercent);\n\n // item total\n var itemTotal = totalContainer.find(\".js-subTotal\");\n displaySummaryItem(itemTotal, hasItems ? selection.totals.itemsTotalPrice : false, selection.totals.itemsTotalPrice);\n\n // Shipping\n var shipping = totalContainer.find(\".js-shipping\");\n displaySummaryItem(shipping, hasItems ? selection.totals.shippingPrice : false, selection.totals.shippingPrice);\n\n // Grand total\n var grandTotal = totalContainer.find(\".js-grandTotal\");\n displaySummaryItem(grandTotal, hasItems ? selection.totals.grandTotalPrice : false, selection.totals.grandTotalPrice);\n $(\"#js-paymentMethod\").text(paymentMethodName);\n $(\"#js-shippingMethod\").text(selection.shipwalletMethod ? window.sitewide.shippingMethod[selection.shipwalletMethod] || selection.shipwalletMethod : '---');\n var addressScr = window.tokens.debug ? payment : selection;\n Object.keys(addressScr.address).forEach(function (key) {\n $(\"[data-cust-\".concat(key, \"]\")).each(function (i, el) {\n $(el).text(addressScr.address[key]);\n });\n });\n $(\"#js-receiptPageBilling\").html(purifier(\"\\n \".concat(addressScr.address.firstName || \"First Name\", \" \").concat(addressScr.address.lastName || \"Last Name\", \"
    \\n \").concat(addressScr.address.email || \"Email\", \"
    \\n \").concat(addressScr.address.phoneNumber || \"Phone Number\", \"
    \\n \").concat(addressScr.address.address1 || \"Address Line 1\", \"
    \\n \").concat(addressScr.address.address2 ? \"\".concat(addressScr.address.address2, \"
    \") : \"\", \"\\n\\t \").concat(addressScr.address.city || \"City\", \"
    \\n\\t \").concat(addressScr.address.state ? \"\".concat(addressScr.address.state) : \"\", \"\\n\\t \").concat(addressScr.address.zipCode || \"Zip Code\", \"
    \\n \")));\n $(\"#js-receiptPageDelivery\").html(purifier(\"\\n \".concat(addressScr.shippingAddress.firstName || addressScr.address.firstName || \"First Name\", \" \").concat(addressScr.shippingAddress.lastName || addressScr.address.lastName || \"Last Name\", \"
    \\n \").concat(addressScr.shippingAddress.email || addressScr.address.email || \"Email\", \"
    \\n \").concat(addressScr.shippingAddress.phoneNumber || addressScr.address.phoneNumber || \"Phone Number\", \"
    \\n \").concat(addressScr.shippingAddress.address1 || addressScr.address.address1 || \"Address Line 1\", \"
    \\n \").concat(addressScr.shippingAddress.address2 ? \"\".concat(addressScr.shippingAddress.address2, \"
    \") : \"\", \"\\n \").concat(addressScr.shippingAddress.city || addressScr.address.city || \"City\", \"
    \\n\\t \").concat(addressScr.shippingAddress.state ? \"\".concat(addressScr.shippingAddress.state) : \"\", \"\\n\\t \").concat(addressScr.shippingAddress.zipCode || addressScr.address.zipCode || \"Zip Code\", \"\\n \")));\n } else {\n window.location = window.sitewide.paymentFailedPage;\n }\n};\n\n/* Updates hearts on page */\n// const updatePageFavourites = favourites => {\n// \t$( \".js-favourites\" ).each( ( i, el ) => {\n// \t\tconst id = $( el )\n// \t\t\t.parent()\n// \t\t\t.data( \"product\" );\n\n// \t\tif ( favourites.indexOf( id ) !== -1 ) {\n// \t\t\t$( el ).addClass( \"is-favourite\" );\n// \t\t} else {\n// \t\t\t$( el ).removeClass( \"is-favourite\" );\n// \t\t}\n// \t} );\n// };\n\n/* Updates favourites list in header */\n// const updateFavourites = ( favourites, productCache ) => {\n// \tconst count = favourites.length;\n// \tlet items = \"\";\n\n// \tif ( count > 0 ) {\n// \t\titems = favourites\n// \t\t\t.slice( 0, 3 )\n// \t\t\t.map( item => renderFavouritesItem( item, productCache[item] ) );\n\n// \t\t$( \"#js-favourites\" )\n// \t\t\t.parent()\n// \t\t\t.addClass( \"is-active\" );\n// \t} else {\n// \t\t$( \"#js-favourites\" )\n// \t\t\t.parent()\n// \t\t\t.removeClass( \"is-active\" );\n// \t}\n\n// \t$( \"#js-favourites\" )\n// \t\t.find( \".js-count\" )\n// \t\t.text( count );\n// \t$( \"#js-favourites\" )\n// \t\t.find( \".js-items\" )\n// \t\t.html( items );\n// };\n\n// const updateFavouritesPage = ( favourites, productCache ) => {\n// \tconst count = favourites.length;\n// \tif ( count > 0 ) {\n// \t\tconst items = favourites.map( item =>\n// \t\t\trenderFavouritesItem( item, productCache[item] )\n// \t\t);\n\n// \t\t$( \"#js-favouritesPage\" ).html( items );\n// \t\t$( \"#js-favouritesPage\" ).show();\n// \t\t$( \"#js-emptyFavourites\" ).hide();\n// \t} else {\n// \t\t$( \"#js-emptyFavourites\" ).show();\n// \t\t$( \"#js-favouritesPage\" ).hide();\n// \t}\n// };\n\n// eslint-disable-next-line\nvar update = function update() {\n // console.log(\"DEBUG: store.getState()\", deepClone(store.getState()));\n var _store$getState5 = store.getState(),\n selection = _store$getState5.selection,\n payment = _store$getState5.payment,\n favourites = _store$getState5.favourites,\n productCache = _store$getState5.productCache,\n escStore = _store$getState5.store,\n productListCompact = _store$getState5.productListCompact,\n useShippingAddress = _store$getState5.useShippingAddress,\n checkoutLogin = _store$getState5.checkoutLogin,\n countries = _store$getState5.countries,\n selectionErrors = _store$getState5.selectionErrors,\n vouchers = _store$getState5.vouchers,\n shipwallet = _store$getState5.shipwallet;\n\n // Render / check if account page.\n account(store.getState(), firstRender);\n if (!productCache || Object.keys(productCache).length === 0) {\n console.log(\"DEBUG: waiting for product cache\");\n // return;\n }\n if ($(\".js-select--country\")) {\n $('.js-languageLocation-toggle--text').text(window.sitewide.language.toUpperCase() + ' | ' + escStore.currency);\n $(\".js-select--country\").html(renderCountriesSiteWide(escStore, countries));\n }\n if ($(\".js-dropdownFlag--country\")) {\n var showCountry = escStore.country && countries[escStore.country] && countries[escStore.country].shipTo;\n var flag = $('.js-dropdownFlag-toggle--flag');\n if (flag.length > 0) {\n flag.each(function (i, el) {\n var classes = el.className.replace(/\\bfi-*[a-z]{2}\\b/g, '');\n if (showCountry) {\n classes = \"\".concat(classes, \" fi-\").concat(escStore.country.toLowerCase());\n }\n el.className = classes;\n });\n }\n var countryName = showCountry ? countries[escStore.country].name : '';\n $('.js-dropdownFlag-toggle--text').text(countryName);\n $(\".js-dropdownFlag--country\").html(renderCountriesCustomDropdown(escStore, countries));\n country();\n }\n var productItems = '';\n if ($('.taxonomy-silk_category-data').length > 0) {\n productItems = $(\".product-item\").not('.product-list .product-item');\n } else {\n productItems = $(\".product-item\");\n }\n\n // console.log( \"productItems\", productItems );\n\n if (productItems.length > 0) {\n console.log('rerender product currrency');\n productItems.each(function (i, product) {\n if ($(product).data('product-id')) {\n $(product).replaceWith(renderProductItem($(product).data('product-id'), productCache.items[$(product).data('product-id')]));\n }\n });\n loadImages();\n }\n if ($('#js-products')) {\n $('.products-details-form').removeClass('d-none');\n $('.js-switchable-price').each(function (i, product) {\n if ($(product).data('product-id')) {\n console.log('rerender product page price');\n if (productCache.items[$(product).data('product-id')]) {\n $(product).html(renderProductPagePrice($(product).data('product-id'), productCache.items[$(product).data('product-id')]));\n $('.product-addToCart').show();\n $('.product-sticky-inner-action').show();\n } else {\n $(product).html(window.sitewide.productUnavailable);\n $('.product-addToCart').hide();\n $('.product-sticky-inner-action').hide();\n }\n }\n });\n }\n if ($(\"body.category\").length > 0) $(\"body.category\").toggleClass(\"u-compact\", productListCompact);\n if ($(\".js-cart-overlay\").length > 0 && selection.items) updateCart(selection, productCache.items);\n if ($(\"#js-checkoutPageItems\").length > 0) {\n // eslint-disable-next-line\n updateCheckoutPage(selection, payment, productCache.items, escStore, countries, checkoutLogin, selectionErrors, vouchers, shipwallet, useShippingAddress);\n completeSystemSlider.init();\n }\n if ($(\"#js-receiptPageSummary\").length > 0) {\n $(\"#js-receiptPageSummary\").hide();\n }\n if ($(\"#js-receiptPageItems\").length > 0 && selection.items && (selection.order || !selection.order && window.tokens.debug)) updateReceiptPage(selection, payment, productCache.items);\n\n // if ( $( \".js-favourites\" ).length > 0 ) updatePageFavourites( favourites );\n\n // if ( $( \"#js-favourites\" ).length > 0 )\n // \tupdateFavourites( favourites, productCache.items );\n\n // if ( $( \"#js-favouritesPage\" ).length > 0 )\n // \tupdateFavouritesPage( favourites, productCache.items );\n\n if (firstRender) {\n $(window).trigger(\"store.firstRender\", store.getState());\n firstRender = false;\n }\n $(window).trigger(\"store.updated\", store.getState());\n};\nvar updateCartNewAdded = function updateCartNewAdded(item) {\n var _store$getState6 = store.getState(),\n selection = _store$getState6.selection,\n productCache = _store$getState6.productCache;\n if (!productCache || Object.keys(productCache).length === 0) {\n console.log(\"DEBUG: waiting for product cache\");\n return;\n }\n if ($(\".js-cart-overlay\").length > 0 && selection.items) {\n updateCart(selection, productCache.items, item);\n }\n};\nvar renderReceiptPage = function renderReceiptPage() {\n var pageData = window.sitewide.thankyouPage;\n var section = $('section.checkout-v2-thankyou');\n var message = section.find('.checkout-thankyou-message');\n var product = section.find('.checkout-product');\n var grandtotal = section.find('.checkout-grand-total');\n var snippet = section.find('.checkout-confirmation');\n var orderId = store.getState().selection.order || 0;\n // if( orderId == 0 ) {\n // \treturn window.location = window.sitewide.paymentFailedPage;\n // }\n var receiptSnippet = store.getState().selection.receiptSnippet || '';\n var address = store.getState().selection.address;\n var items = store.getState().selection.items;\n var totals = store.getState().selection.totals;\n if (pageData.success_msg != null) {\n message.find('H1').text(pageData.success_msg + ' #' + orderId);\n }\n if (address != undefined) {\n message.find('div.content h3').html(pageData.dear + ' ' + address.firstName + ' ' + address.lastName + ',');\n }\n message.find('div.content p').text(pageData.message);\n if (pageData.links.length > 0) {\n message.find('div.checkout-thankyou-links').html(pageData.links.map(function (link) {\n return \"\" + link.label + \"\";\n }).join(\"|\"));\n }\n // if ( items == undefined ) { window.location.reload(); return false; }\n product.find('.checkout-subsection-title').text(pageData.order_title || 'YOUR ORDER OVERVIEW');\n product.find('.checkout-product-list').html(items.map(function (item) {\n return renderReceiptItems(item);\n }).join(''));\n grandtotal.find('.checkout-grand-total-title').text(window.sitewide.grandTotal || 'Grand Total');\n grandtotal.find('.checkout-grand-total-breakdown').html(renderReceiptTotals(totals));\n snippet.html(receiptSnippet);\n};\nvar renderReceiptItems = function renderReceiptItems(item) {\n return \"
    \\n\\t\\t
    \\n\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t
    \".concat(purifier(item.name), \"
    \\n\\t\\t\\t
    \").concat(purifier(item.variant), \"
    \\n\\t\\t\\t
    \").concat(purifier(item.size), \"
    \\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\tQTY \").concat(purifier(item.quantity), \"\\n\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\").concat(purifier(item.priceEach), \"\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t\\t
    \\n\\t
    \");\n};\nvar renderReceiptTotals = function renderReceiptTotals(total) {\n return \"
    \\n\\t
    \".concat(purifier(window.sitewide.subTotal || 'Total Price'), \"
    \\n\\t
    \").concat(purifier(total.itemsTotalPrice), \"
    \\n
    \\n
    \\n\\t
    \").concat(purifier(window.sitewide.shipping || 'Shipping'), \"
    \\n\\t
    \").concat(purifier(total.shippingPrice), \"
    \\n
    \\n
    \\n\\t
    \").concat(purifier(window.sitewide.vat || 'VAT'), \"
    \\n\\t
    \").concat(purifier(total.grandTotalPriceTax), \"
    \\n
    \\n
    \\n\\t
    \").concat(purifier(window.sitewide.grandTotal || 'Grand Total'), \"
    \\n\\t
    \").concat(purifier(total.grandTotalPrice), \"
    \\n
    \");\n};\nexport { renderProductItem, updateCartNewAdded, updateCart, update, renderDutyConsent, renderReceiptPage };\nexport default update;\n\n\n// WEBPACK FOOTER //\n// ./scripts/shop/render.js","var checkoutURL = \"https://stellar.centraqa.com/api/checkout\";\nvar liveHosts = [\"stellarequipment.se\", \"www.stellarequipment.com\", \"c6837.cloudnet.cloud\", \"dev.www.stellar.se\"];\nif (liveHosts.indexOf(window.location.hostname) !== -1) {\n checkoutURL = \"https://stellar.centra.com/api/checkout\";\n}\nexport var checkoutAPI = checkoutURL;\nexport var paymentMethodsMap = {\n adyenDropIn: [\"adyen_di\", \"adyen-test\", \"adyen-test-aud\", \"adyen\", \"adyen-aud\", \"adyen-cad\", \"adyen-chf\", \"adyen-dkk\", \"adyen-eur\", \"adyen-gbp\", \"adyen-jpy\", \"adyen-krw\", \"adyen-nok\", \"adyen-nzd\", \"adyen-sek\", \"adyen-usd\"],\n klarnaCheckout: [\"klarna-checkout\", \"klarna-payments-dk\", \"kco\", \"klarna\"]\n};\nexport { liveHosts };\n\n\n// WEBPACK FOOTER //\n// ./scripts/config.js","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar isObject = function isObject(obj) {\n return obj && _typeof(obj) === \"object\";\n};\nvar deepClone = function deepClone(o) {\n var exclude = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var out = Array.isArray(o) ? [] : {};\n if (!isObject(o)) return out;\n Object.keys(o).forEach(function (key) {\n if (exclude.length > 0 && exclude.indexOf(key) !== -1) return;\n var v = o[key];\n out[key] = isObject(v) ? deepClone(v) : v;\n });\n return out;\n};\nvar deepMerge = function deepMerge() {\n for (var _len = arguments.length, objects = new Array(_len), _key = 0; _key < _len; _key++) {\n objects[_key] = arguments[_key];\n }\n return objects.reduce(function (prev, obj) {\n Object.keys(obj).forEach(function (key) {\n var pVal = prev[key];\n var oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = [].concat(_toConsumableArray(pVal), _toConsumableArray(oVal)).filter(function (element, index, array) {\n return array.indexOf(element) === index;\n });\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = deepMerge(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n};\nvar deepCompare = function deepCompare(obj1, obj2) {\n var isEqual = true;\n if (obj2 === undefined) return false;\n Object.keys(obj1).forEach(function (p) {\n switch (_typeof(obj1[p])) {\n case 'object':\n if (!deepCompare(obj1[p], obj2[p])) isEqual = false;\n break;\n default:\n if (obj1[p] !== obj2[p]) isEqual = false;\n }\n });\n Object.keys(obj2).forEach(function (p) {\n if (typeof obj1[p] === 'undefined') isEqual = false;\n });\n return isEqual;\n};\nexport { deepClone, deepMerge, deepCompare };\n\n\n// WEBPACK FOOTER //\n// ./scripts/util/object.js","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar urlify = function urlify(name) {\n // Replace diacritics\n var lookup = [/&/g, \"and\", /[\\300-\\306]/g, \"A\", /[\\340-\\346]/g, \"a\", /\\307/g, \"C\", /\\347/g, \"c\", /[\\310-\\313]/g, \"E\", /[\\350-\\353]/g, \"e\", /[\\314-\\317]/g, \"I\", /[\\354-\\357]/g, \"i\", /\\321/g, \"N\", /\\361/g, \"n\", /[\\322-\\330]/g, \"O\", /[\\362-\\370]/g, \"o\", /[\\331-\\334]/g, \"U\", /[\\371-\\374]/g, \"u\"];\n for (var i = 0; i < lookup.length; i += 2) {\n name = name.replace(lookup[i], lookup[i + 1]);\n }\n\n // Replace whitespace\n name = name.replace(/\\s+/g, \"-\");\n\n // Remove anything else\n name = name.replace(/[^a-z0-9_-]+/gi, \"\").toLowerCase();\n return name;\n};\nvar postalCodePatternLookup = function postalCodePatternLookup(country) {\n var patterns = {\n \"AC\": \"ASCN 1ZZ\",\n \"AD\": \"AD[1-7]0\\\\d\",\n \"AF\": \"\\\\d{4}\",\n \"AI\": \"(?:AI-)?2640\",\n \"AL\": \"\\\\d{4}\",\n \"AM\": \"(?:37)?\\\\d{4}\",\n \"AR\": \"((?:[A-HJ-NP-Z])?\\\\d{4})([A-Z]{3})?\",\n \"AS\": \"(96799)(?:[ \\\\-](\\\\d{4}))?\",\n \"AT\": \"\\\\d{4}\",\n \"AU\": \"\\\\d{4}\",\n \"AX\": \"22\\\\d{3}\",\n \"AZ\": \"\\\\d{4}\",\n \"BA\": \"\\\\d{5}\",\n \"BB\": \"BB\\\\d{5}\",\n \"BD\": \"\\\\d{4}\",\n \"BE\": \"\\\\d{4}\",\n \"BG\": \"\\\\d{4}\",\n \"BH\": \"(?:\\\\d|1[0-2])\\\\d{2}\",\n \"BL\": \"9[78][01]\\\\d{2}\",\n \"BM\": \"[A-Z]{2} ?[A-Z0-9]{2}\",\n \"BN\": \"[A-Z]{2} ?\\\\d{4}\",\n \"BR\": \"\\\\d{5}-?\\\\d{3}\",\n \"BT\": \"\\\\d{5}\",\n \"BY\": \"\\\\d{6}\",\n \"CA\": \"[ABCEGHJKLMNPRSTVXY]\\\\d[ABCEGHJ-NPRSTV-Z] ?\\\\d[ABCEGHJ-NPRSTV-Z]\\\\d\",\n \"CC\": \"6799\",\n \"CH\": \"\\\\d{4}\",\n \"CL\": \"\\\\d{7}\",\n \"CN\": \"\\\\d{6}\",\n \"CO\": \"\\\\d{6}\",\n \"CR\": \"\\\\d{4,5}|\\\\d{3}-\\\\d{4}\",\n \"CV\": \"\\\\d{4}\",\n \"CX\": \"6798\",\n \"CY\": \"\\\\d{4}\",\n \"CZ\": \"\\\\d{3} ?\\\\d{2}\",\n \"DE\": \"\\\\d{5}\",\n \"DK\": \"\\\\d{4}\",\n \"DO\": \"\\\\d{5}\",\n \"DZ\": \"\\\\d{5}\",\n \"EC\": \"\\\\d{6}\",\n \"EE\": \"\\\\d{5}\",\n \"EG\": \"\\\\d{5}\",\n \"EH\": \"\\\\d{5}\",\n \"ES\": \"\\\\d{5}\",\n \"ET\": \"\\\\d{4}\",\n \"FI\": \"\\\\d{5}\",\n \"FK\": \"FIQQ 1ZZ\",\n \"FM\": \"(9694[1-4])(?:[ \\\\-](\\\\d{4}))?\",\n \"FO\": \"\\\\d{3}\",\n \"FR\": \"\\\\d{2} ?\\\\d{3}\",\n \"GB\": \"GIR ?0AA|(?:(?:AB|AL|B|BA|BB|BD|BF|BH|BL|BN|BR|BS|BT|BX|CA|CB|CF|CH|CM|CO|CR|CT|CV|CW|DA|DD|DE|DG|DH|DL|DN|DT|DY|E|EC|EH|EN|EX|FK|FY|G|GL|GY|GU|HA|HD|HG|HP|HR|HS|HU|HX|IG|IM|IP|IV|JE|KA|KT|KW|KY|L|LA|LD|LE|LL|LN|LS|LU|M|ME|MK|ML|N|NE|NG|NN|NP|NR|NW|OL|OX|PA|PE|PH|PL|PO|PR|RG|RH|RM|S|SA|SE|SG|SK|SL|SM|SN|SO|SP|SR|SS|ST|SW|SY|TA|TD|TF|TN|TQ|TR|TS|TW|UB|W|WA|WC|WD|WF|WN|WR|WS|WV|YO|ZE)(?:\\\\d[\\\\dA-Z]? ?\\\\d[ABD-HJLN-UW-Z]{2}))|BFPO ?\\\\d{1,4}\",\n \"GE\": \"\\\\d{4}\",\n \"GF\": \"9[78]3\\\\d{2}\",\n \"GG\": \"GY\\\\d[\\\\dA-Z]? ?\\\\d[ABD-HJLN-UW-Z]{2}\",\n \"GI\": \"GX11 1AA\",\n \"GL\": \"39\\\\d{2}\",\n \"GN\": \"\\\\d{3}\",\n \"GP\": \"9[78][01]\\\\d{2}\",\n \"GR\": \"\\\\d{3} ?\\\\d{2}\",\n \"GS\": \"SIQQ 1ZZ\",\n \"GT\": \"\\\\d{5}\",\n \"GU\": \"(969(?:[12]\\\\d|3[12]))(?:[ \\\\-](\\\\d{4}))?\",\n \"GW\": \"\\\\d{4}\",\n \"HM\": \"\\\\d{4}\",\n \"HN\": \"\\\\d{5}\",\n \"HR\": \"\\\\d{5}\",\n \"HT\": \"\\\\d{4}\",\n \"HU\": \"\\\\d{4}\",\n \"ID\": \"\\\\d{5}\",\n \"IE\": \"[\\\\dA-Z]{3} ?[\\\\dA-Z]{4}\",\n \"IL\": \"\\\\d{5}(?:\\\\d{2})?\",\n \"IM\": \"IM\\\\d[\\\\dA-Z]? ?\\\\d[ABD-HJLN-UW-Z]{2}\",\n \"IN\": \"\\\\d{6}\",\n \"IO\": \"BBND 1ZZ\",\n \"IQ\": \"\\\\d{5}\",\n \"IR\": \"\\\\d{5}-?\\\\d{5}\",\n \"IS\": \"\\\\d{3}\",\n \"IT\": \"\\\\d{5}\",\n \"JE\": \"JE\\\\d[\\\\dA-Z]? ?\\\\d[ABD-HJLN-UW-Z]{2}\",\n \"JO\": \"\\\\d{5}\",\n \"JP\": \"\\\\d{3}-?\\\\d{4}\",\n \"KE\": \"\\\\d{5}\",\n \"KG\": \"\\\\d{6}\",\n \"KH\": \"\\\\d{5}\",\n \"KR\": \"\\\\d{5}\",\n \"KW\": \"\\\\d{5}\",\n \"KY\": \"KY\\\\d-\\\\d{4}\",\n \"KZ\": \"\\\\d{6}\",\n \"LA\": \"\\\\d{5}\",\n \"LB\": \"(?:\\\\d{4})(?: ?(?:\\\\d{4}))?\",\n \"LI\": \"948[5-9]|949[0-8]\",\n \"LK\": \"\\\\d{5}\",\n \"LR\": \"\\\\d{4}\",\n \"LS\": \"\\\\d{3}\",\n \"LT\": \"\\\\d{5}\",\n \"LU\": \"\\\\d{4}\",\n \"LV\": \"LV-\\\\d{4}\",\n \"MA\": \"\\\\d{5}\",\n \"MC\": \"980\\\\d{2}\",\n \"MD\": \"\\\\d{4}\",\n \"ME\": \"8\\\\d{4}\",\n \"MF\": \"9[78][01]\\\\d{2}\",\n \"MG\": \"\\\\d{3}\",\n \"MH\": \"(969[67]\\\\d)(?:[ \\\\-](\\\\d{4}))?\",\n \"MK\": \"\\\\d{4}\",\n \"MM\": \"\\\\d{5}\",\n \"MN\": \"\\\\d{5}\",\n \"MP\": \"(9695[012])(?:[ \\\\-](\\\\d{4}))?\",\n \"MQ\": \"9[78]2\\\\d{2}\",\n \"MT\": \"[A-Z]{3} ?\\\\d{2,4}\",\n \"MU\": \"\\\\d{3}(?:\\\\d{2}|[A-Z]{2}\\\\d{3})\",\n \"MV\": \"\\\\d{5}\",\n \"MX\": \"\\\\d{5}\",\n \"MY\": \"\\\\d{5}\",\n \"MZ\": \"\\\\d{4}\",\n \"NC\": \"988\\\\d{2}\",\n \"NE\": \"\\\\d{4}\",\n \"NF\": \"2899\",\n \"NG\": \"\\\\d{6}\",\n \"NI\": \"\\\\d{5}\",\n \"NL\": \"\\\\d{4} ?[A-Z]{2}\",\n \"NO\": \"\\\\d{4}\",\n \"NP\": \"\\\\d{5}\",\n \"NZ\": \"\\\\d{4}\",\n \"OM\": \"(?:PC )?\\\\d{3}\",\n \"PE\": \"(?:LIMA \\\\d{1,2}|CALLAO 0?\\\\d)|[0-2]\\\\d{4}\",\n \"PF\": \"987\\\\d{2}\",\n \"PG\": \"\\\\d{3}\",\n \"PH\": \"\\\\d{4}\",\n \"PK\": \"\\\\d{5}\",\n \"PL\": \"\\\\d{2}-\\\\d{3}\",\n \"PM\": \"9[78]5\\\\d{2}\",\n \"PN\": \"PCRN 1ZZ\",\n \"PR\": \"(00[679]\\\\d{2})(?:[ \\\\-](\\\\d{4}))?\",\n \"PT\": \"\\\\d{4}-\\\\d{3}\",\n \"PW\": \"(969(?:39|40))(?:[ \\\\-](\\\\d{4}))?\",\n \"PY\": \"\\\\d{4}\",\n \"RE\": \"9[78]4\\\\d{2}\",\n \"RO\": \"\\\\d{6}\",\n \"RS\": \"\\\\d{5,6}\",\n \"RU\": \"\\\\d{6}\",\n \"SA\": \"\\\\d{5}\",\n \"SE\": \"\\\\d{3} ?\\\\d{2}\",\n \"SG\": \"\\\\d{6}\",\n \"SH\": \"(?:ASCN|STHL) 1ZZ\",\n \"SI\": \"\\\\d{4}\",\n \"SJ\": \"\\\\d{4}\",\n \"SK\": \"\\\\d{3} ?\\\\d{2}\",\n \"SM\": \"4789\\\\d\",\n \"SN\": \"\\\\d{5}\",\n \"SO\": \"[A-Z]{2} ?\\\\d{5}\",\n \"SV\": \"CP [1-3][1-7][0-2]\\\\d\",\n \"SZ\": \"[HLMS]\\\\d{3}\",\n \"TA\": \"TDCU 1ZZ\",\n \"TC\": \"TKCA 1ZZ\",\n \"TH\": \"\\\\d{5}\",\n \"TJ\": \"\\\\d{6}\",\n \"TM\": \"\\\\d{6}\",\n \"TN\": \"\\\\d{4}\",\n \"TR\": \"\\\\d{5}\",\n \"TW\": \"\\\\d{3}(?:\\\\d{2})?\",\n \"TZ\": \"\\\\d{4,5}\",\n \"UA\": \"\\\\d{5}\",\n \"UM\": \"96898\",\n \"US\": \"(\\\\d{5})(?:[ \\\\-](\\\\d{4}))?\",\n \"UY\": \"\\\\d{5}\",\n \"UZ\": \"\\\\d{6}\",\n \"VA\": \"00120\",\n \"VC\": \"VC\\\\d{4}\",\n \"VE\": \"\\\\d{4}\",\n \"VG\": \"VG\\\\d{4}\",\n \"VI\": \"(008(?:(?:[0-4]\\\\d)|(?:5[01])))(?:[ \\\\-](\\\\d{4}))?\",\n \"VN\": \"\\\\d{6}\",\n \"WF\": \"986\\\\d{2}\",\n \"XK\": \"[1-7]\\\\d{4}\",\n \"YT\": \"976\\\\d{2}\",\n \"ZA\": \"\\\\d{4}\",\n \"ZM\": \"\\\\d{5}\"\n };\n if (patterns[country]) return new RegExp(\"^\".concat(patterns[country], \"$\"), 'gi');\n return '';\n};\nvar validatePostalCode = function validatePostalCode(country, postalCode) {\n if (postalCode === undefined) return true;\n if (country === undefined) return true;\n var regex = postalCodePatternLookup(country);\n if (regex) return !regex.test(postalCode);\n return false;\n};\nvar cleanNonLatinExtended = function cleanNonLatinExtended(str) {\n var replacer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n if (!str) str = '';\n if (typeof str !== 'string') str = str.toString();\n str = str.replace(/[^\\u00E0-\\u017E\\u1EA4\\u04D1\\u1EC7\\u1EDF\\u0219\\w -_.,]/gi, replacer);\n str = str.replace(/[\\u00F7\\u00FE]/gi, replacer);\n return str;\n};\n\n/**\r\n * the most terrible camelizer on the internet, guaranteed!\r\n * @param {string} str String that isn't camel-case, e.g., CAMeL_CaSEiS-harD\r\n * @return {string} String converted to camel-case, e.g., camelCaseIsHard\r\n */\nvar camelCase = function camelCase(str) {\n return \"\".concat(str.charAt(0).toLowerCase()).concat(str.replace(/[\\W_]/g, \"|\").split(\"|\").map(function (part) {\n return \"\".concat(part.charAt(0).toUpperCase()).concat(part.slice(1));\n }).join(\"\").slice(1));\n};\nvar strToBool = function strToBool(str) {\n if (typeof str === \"boolean\") {\n return str;\n }\n switch (str.toLowerCase().trim()) {\n case \"true\":\n case \"yes\":\n case \"1\":\n return true;\n case \"false\":\n case \"no\":\n case \"0\":\n case null:\n return false;\n default:\n return Boolean(str);\n }\n};\nvar replaceAllShortcode = function replaceAllShortcode(str, toReplace) {\n if (!str) return str;\n if (_typeof(toReplace) !== \"object\" || Object.keys(toReplace).length === 0) return str;\n var pattern = '\\\\[([' + Object.keys(toReplace).join(\"|\") + '].+?)\\\\]';\n var re = new RegExp(pattern, \"ig\");\n return str.replace(re, function (matched) {\n var key = matched.replace(/[[\\]]/g, '').trim();\n return toReplace[key] || '';\n });\n};\n\n/**\r\n * @return {boolean} true if incorrectly formatted\r\n */\nvar inputError = function inputError(value, type) {\n if (value === undefined) return true;\n if (typeof value === \"boolean\") return !value;\n switch (type) {\n case \"email\":\n return !/\\S/.test(value) || /\\s/g.test(value) || !/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@([a-zA-Z0-9-]+)+\\.([a-zA-Z0-9-]{2,})/.test(value);\n case \"phoneNumber\":\n return !/\\S/.test(value) ||\n // Only white space\n !/^(?=.*\\d)[\\d-+() ]{6,30}$/.test(value);\n case \"address\":\n return !/\\S/.test(value) ||\n // Only white space\n value.length > 100;\n case \"password\":\n return !/\\S/.test(value) ||\n // Only white space\n !/[^0-9]/.test(value) ||\n // No numbers\n value.trim().length < 8 // must be longer than 8 characters excluding white space.\n ;\n case \"zipCode\":\n return validatePostalCode(value.country, value.zipCode);\n default:\n return !/\\S/.test(value);\n }\n};\nvar removeUrlParam = function removeUrlParam(uri, name, val) {\n var regex = new RegExp(\"([&?]\".concat(name, \"=\").concat(val, \"*$|\").concat(name, \"=\").concat(val, \"&|[?&]\").concat(name, \"=\").concat(val, \"(?=#))\"));\n return uri.replace(regex, '');\n};\nvar formatCurrency = function formatCurrency(number) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$suffix = options.suffix,\n suffix = _options$suffix === void 0 ? \"\" : _options$suffix,\n _options$decimalPoint = options.decimalPoint,\n decimalPoint = _options$decimalPoint === void 0 ? \".\" : _options$decimalPoint,\n _options$thousandsSep = options.thousandsSeparator,\n thousandsSeparator = _options$thousandsSep === void 0 ? \",\" : _options$thousandsSep,\n _options$decimalDigit = options.decimalDigits,\n decimalDigits = _options$decimalDigit === void 0 ? 2 : _options$decimalDigit;\n\n // Add thousands separator\n var formattedNumber = number.toFixed(decimalDigits).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparator);\n\n // Format the number as a currency string\n return \"\".concat(formattedNumber).concat(suffix);\n};\nexport { cleanNonLatinExtended, camelCase, strToBool, inputError, urlify, validatePostalCode, removeUrlParam, replaceAllShortcode, formatCurrency };\n\n\n// WEBPACK FOOTER //\n// ./scripts/util/string.js","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport { purifier } from \"../../util/dom\";\nimport { deepMerge } from \"../../util/object\";\nimport { cleanNonLatinExtended, inputError, replaceAllShortcode } from \"../../util/string\";\nimport store from \"../store\";\nimport { isBundle } from \"../../components/bundles\";\nvar getProductData = function getProductData(productId) {\n var _store$getState = store.getState(),\n productCache = _store$getState.productCache;\n if (productCache.hasOwnProperty('items') && productCache.items.hasOwnProperty(productId)) {\n return productCache.items[productId];\n }\n return {};\n};\nvar extractProductId = function extractProductId(item) {\n return _typeof(item) === 'object' && item.hasOwnProperty('item') ? item.item.slice(0, item.item.indexOf(\"-\")) : '';\n};\nvar localizeProductData = function localizeProductData() {\n var productData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (productData.localized && productData.localized[window.sitewide.language]) {\n return deepMerge(productData, productData.localized[window.sitewide.language]);\n }\n return productData;\n};\nvar updateFieldState = function updateFieldState(el, isError, errorClass, isValid) {\n var validClass = 'is-valid';\n if (typeof isError !== 'undefined' && isError == true) {\n el.addClass(errorClass).removeClass(validClass);\n } else if (isValid == true) {\n el.removeClass(errorClass).addClass(validClass);\n } else {\n el.removeClass(errorClass).removeClass(validClass);\n }\n};\nvar checkError = function checkError(field, value) {\n var country = store.getState().store.country;\n var tempValue = value;\n var tempField = field === \"email\" ? \"email\" : \"text\";\n if (field === 'phoneNumber') {\n tempField = \"phoneNumber\";\n } else if (field === 'zipCode') {\n tempField = \"zipCode\";\n tempValue = {\n country: country,\n zipCode: value\n };\n } else if (/address/i.test(field)) {\n tempField = \"address\";\n }\n return inputError(tempValue, tempField);\n};\nvar updateStateAddressForm = function updateStateAddressForm(addressFields, customersInformation, country) {\n var prefix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var visibleFields = 0;\n Object.keys(addressFields).forEach(function (field) {\n var fieldEl = $(\"#js-checkoutPaymentForm .js-form-input[data-group=\\\"address\\\"][name=\\\"\".concat(field, \"\\\"]\"));\n var errorClass = 'is-invalid';\n var isValid = false;\n var isError = addressFields[field].error;\n if ($.inArray(field, ['country', 'state']) !== -1) {\n fieldEl = $(\"#js-checkout .js-form-input[data-group=\\\"address\\\"][data-name=\\\"\".concat(field, \"\\\"]\"));\n errorClass = 'has-error';\n }\n if (fieldEl.length === 0) return;\n var value = cleanNonLatinExtended(customersInformation[field]);\n if (value) {\n isError = checkError(field, value);\n isValid = !isError;\n }\n var isDropdown = fieldEl.parent().hasClass('custom-dropdown');\n if (fieldEl.parent().hasClass('required') || isDropdown) {\n fieldEl.val(value);\n updateFieldState(isDropdown ? fieldEl.parent() : fieldEl, isError, errorClass, isValid);\n if (fieldEl.parent().hasClass('required')) fieldEl.parents('.form-group').toggle(addressFields[field].visible);\n } else {\n fieldEl.val(value).toggle(addressFields[field].visible);\n updateFieldState(fieldEl, isError, errorClass, isValid);\n }\n if (addressFields[field].visible) visibleFields += 1;\n if (isError) {\n updateFieldErrorMessage(field, fieldEl, isDropdown, value);\n }\n });\n};\nvar updateStateShippingAddressForm = function updateStateShippingAddressForm(addressFields, customersInformation) {\n var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n var visibleFields = 0;\n Object.keys(addressFields).forEach(function (field) {\n var fieldEl = $(\"#js-checkoutPaymentForm .js-form-input[data-group=\\\"shippingAddress\\\"][name=\\\"\".concat(field, \"\\\"]\"));\n var errorClass = 'is-invalid';\n var isValid = false;\n var isError = addressFields[field].error;\n if ($.inArray(field, ['country', 'state']) !== -1) {\n fieldEl = $(\"#js-checkout .js-form-input[data-group=\\\"shippingAddress\\\"][data-name=\\\"\".concat(field, \"\\\"]\"));\n errorClass = 'has-error';\n }\n if (fieldEl.length === 0) return;\n var value = cleanNonLatinExtended(customersInformation[field]);\n if (value) {\n isError = checkError(field, value);\n isValid = !isError;\n }\n var isDropdown = fieldEl.parent().hasClass('custom-dropdown');\n if (fieldEl.parent().hasClass('required') || isDropdown) {\n fieldEl.val(value);\n updateFieldState(isDropdown ? fieldEl.parent() : fieldEl, isError, errorClass, isValid);\n if (fieldEl.parent().hasClass('required')) fieldEl.parents('.form-group').toggle(addressFields[field].visible);\n } else {\n fieldEl.val(value).toggle(addressFields[field].visible);\n updateFieldState(fieldEl, isError, errorClass, isValid);\n }\n if (addressFields[field].visible) visibleFields += 1;\n if (isError) {\n updateFieldErrorMessage(field, fieldEl, isDropdown, value);\n }\n });\n};\nvar updateFieldErrorMessage = function updateFieldErrorMessage(field, fieldEl, isDropdown, value) {\n var errorMessage = window.sitewide.accountEntryErrors.required_field;\n switch (field) {\n case 'password':\n errorMessage = window.sitewide.accountEntryErrors.password;\n break;\n case 'email':\n if (value) errorMessage = window.sitewide.accountEntryErrors.email;\n break;\n case 'passwordRepeat':\n errorMessage = window.sitewide.accountEntryErrors.password_repeat;\n break;\n case 'emailRepeat':\n errorMessage = window.sitewide.accountEntryErrors.email_repeat;\n break;\n default:\n if (value) errorMessage = window.sitewide.accountEntryErrors.incorrect_value;\n break;\n }\n var toReplace = {\n fieldPlaceholder: fieldEl.attr('placeholder'),\n fieldName: fieldEl.data('label') || field\n };\n errorMessage = replaceAllShortcode(errorMessage, toReplace);\n if (isDropdown) {\n fieldEl.parent().after(\"
    \".concat(errorMessage || '', \"
    \"));\n } else {\n fieldEl.after(\"
    \".concat(errorMessage || '', \"
    \"));\n }\n};\nvar getSizeStockData = function getSizeStockData(item, cache) {\n var size = _typeof(item) === 'object' ? item.item : item;\n var cartQuantity = item.quantity;\n var stock = Object.keys(cache.sizes).filter(function (item) {\n return cache.sizes[item].item === size;\n }).map(function (item) {\n return cache.sizes[item].stock;\n }).join(\"\");\n return {\n addedInCart: parseInt(cartQuantity || 0),\n sizeInStock: parseInt(stock || 0)\n };\n};\nvar getPostType = function getPostType(item) {\n return _typeof(item) === \"object\" && \"bundle\" in item && item.bundle ? \"bundle\" : \"product\";\n};\nvar generateImageMarkup = function generateImageMarkup(images, cache, isBundle) {\n var extraClasses = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : \"\";\n var replacePattern = /\\.([^.]+)$/;\n var toReplace = '-mini.$1';\n var imageHeight = 100;\n if (isBundle) {\n replacePattern = /sy_standard/;\n toReplace = 'sy_mini';\n imageHeight = 125;\n }\n return \"\\n\\t\\t
    \\n\\t\\t\").concat(images.slice(0, 1).map(function (image) {\n return \"\");\n }).join(\"\"), \"\\n\\t\\t
    \\n\\t
    \");\n};\nvar renderSummaryItemImages = function renderSummaryItemImages(item, cache) {\n var isBundle = getPostType(item) === 'bundle' && cache.bundle_image;\n var images = isBundle ? cache.bundle_image : cache.image;\n cache.postType = getPostType(item);\n return generateImageMarkup(images, cache, isBundle);\n};\nvar renderSummaryItemImagesCart = function renderSummaryItemImagesCart(item, cache) {\n var isBundle = getPostType(item) === 'bundle' && cache.bundle_image;\n var images = isBundle ? cache.bundle_image : cache.image;\n cache.postType = getPostType(item);\n return generateImageMarkup(images, cache, isBundle, 'image-wrap');\n};\nvar renderSummaryItemPrice = function renderSummaryItemPrice(item, cache) {\n return \"\".concat(cache.price.showAsOnSale ? \"\".concat(purifier(item.priceEachBeforeDiscount || cache.price.priceBeforeDiscount), \" \") : '', \"\").concat(purifier(item.priceEach || cache.price.price), \"\");\n};\nvar renderReceiptItem = function renderReceiptItem(item, cache) {\n console.log('DEBUG: cache', item, cache);\n if (!cache) return \"\";\n cache = localizeProductData(cache);\n var _store$getState2 = store.getState(),\n productCache = _store$getState2.productCache;\n\n // prettier-ignore\n return \"\\n\\t
    \\n\\t\\t\").concat(renderSummaryItemImages(item, cache), \"\\n\\t\\t
    \\n \").concat(isBundle(item) ? \"\") : '', \"\\n\\t\\t\").concat(isBundle(item) ? item.bundle.map(function (item) {\n var cache = item.product in productCache.items ? localizeProductData(productCache.items[item.product]) : false;\n if (!cache) {\n return \"\";\n }\n return \"\");\n }).join(\"\") : \"\"), \"\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\").concat(purifier(window.sitewide.quantity), \" \").concat(purifier(item.quantity), \"\\n\\t\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t\\t\\t\").concat(renderSummaryItemPrice(item, cache), \"\\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n \");\n};\nvar renderPaymentMethodsLogo = function renderPaymentMethodsLogo(escStore) {\n var sitewideLogos = window.sitewide.paymentMethodLogos || {};\n if (!sitewideLogos) return \"\";\n var logos = sitewideLogos.default;\n if (sitewideLogos.countries[escStore.country]) {\n logos = sitewideLogos.countries[escStore.country];\n }\n\n // prettier-ignore\n return logos.map(function (logo) {\n return \"\\n\\t\\t\\\"\").concat(purifier(logo.alt),\\n \");\n });\n};\nvar renderCountries = function renderCountries(escStore, countries) {\n var excludeGECountries = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (typeof countries === \"undefined\" || _typeof(countries) !== \"object\") return \"\";\n var _store$getState3 = store.getState(),\n geCountries = _store$getState3.geCountries;\n var toExclude = excludeGECountries ? Object.values(geCountries) : [];\n\n // prettier-ignore\n return Object.keys(countries).filter(function (country) {\n return countries[country].shipTo && toExclude.includes(country) === false;\n }).map(function (country) {\n return \"\\n\\t\\t\").concat(purifier(countries[country].name), \"\\n \");\n });\n // \n};\nvar renderStates = function renderStates(escStore, states) {\n var selectedState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n if (!selectedState) selectedState = escStore.state;\n var country = escStore.country;\n var validUsStates = ['AL', 'AK', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE', 'DC', 'FL', 'GA', 'HI', 'ID', 'IL', 'IN', 'IA', 'KS', 'KY', 'LA', 'ME', 'MD', 'MA', 'MI', 'MN', 'MS', 'MO', 'MT', 'NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND', 'OH', 'OK', 'OR', 'PA', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VT', 'VA', 'WA', 'WV', 'WI', 'WY'];\n\n // prettier-ignore\n var returnArray = Object.keys(states).map(function (state) {\n if (country === 'US' && validUsStates.includes(state) === false) return '';\n return \"\").concat(purifier(states[state]), \"\");\n }).filter(function (state) {\n return state;\n });\n\n // prettier-ignore\n returnArray.unshift(\"\\n\\t\".concat(purifier(window.sitewide.chooseState), \"\\n \"));\n return returnArray;\n};\nexport { getProductData, extractProductId, localizeProductData, updateStateAddressForm, updateStateShippingAddressForm, getSizeStockData, renderSummaryItemImages, renderSummaryItemImagesCart, renderSummaryItemPrice, renderReceiptItem, renderCountries, renderStates, renderPaymentMethodsLogo };\n\n\n// WEBPACK FOOTER //\n// ./scripts/shop/templates/partials.js","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator.return && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nimport store from \"../shop/store\";\nimport regeneratorRuntime from \"regenerator-runtime\";\nvar reloadGECheckout = function reloadGECheckout() {\n var currentHash = window.location.hash;\n if (currentHash === null || currentHash !== \"#Global-e_International_Checkout\") {\n return;\n }\n var goToCheckout = $(\".js-cart-products\").find(\".cart-buttons a button:first\");\n if (goToCheckout.length) {\n goToCheckout[0].click();\n }\n console.log(\"reload global-e checkout\");\n};\nvar updateGlobalECountryMethod = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var forceReload,\n _store$getState,\n escStore,\n _args = arguments;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n forceReload = _args.length > 0 && _args[0] !== undefined ? _args[0] : true;\n _store$getState = store.getState(), escStore = _store$getState.store; // Ensure escStore and country exist\n if (!(escStore && escStore.country)) {\n _context.next = 12;\n break;\n }\n _context.prev = 3;\n _context.next = 6;\n return waitForGEMComponents();\n case 6:\n GlobalE.UpdateCustomerInfo(escStore.country, escStore.currency, forceReload);\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](3);\n console.error(\"Failed to update Global E country:\", _context.t0);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[3, 9]]);\n }));\n return function updateGlobalECountryMethod() {\n return _ref.apply(this, arguments);\n };\n}();\n\n// Helper function to wait for GlobalE to be defined\nvar waitForGEMComponents = function waitForGEMComponents() {\n return new Promise(function (resolve, reject) {\n var timeout = 10000; // Maximum wait time (10 seconds)\n var intervalTime = 100; // Check every 100ms\n var elapsedTime = 0;\n var interval = setInterval(function () {\n if (typeof GlobalE !== 'undefined') {\n clearInterval(interval);\n resolve();\n } else if (elapsedTime >= timeout) {\n clearInterval(interval);\n reject(new Error(\"GlobalE did not load within the expected time.\"));\n }\n elapsedTime += intervalTime;\n }, intervalTime);\n });\n};\nexport { reloadGECheckout, updateGlobalECountryMethod };\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/global-e.js","import store from \"../shop/store\";\nimport { renderStates, renderCountries } from \"../shop/templates/partials\";\nimport { getCookie, setCookie } from \"../util/dom\";\nimport { changeAddressInput, changeCountry, bulkChangeQuantity, updateKlarna, updateGlobalECountry } from \"../shop/connect\";\nimport { getIpInfo } from \"./ipgeolocation\";\nimport { trackRemoveFromCart } from \"./stoked\";\nimport { updateGlobalECountryMethod } from \"./global-e\";\nvar pfasCountries = window.sitewide.pfasLocationSettings || {};\nvar geolocationCountries = window.sitewide.geolocationSettings || {};\nvar config = {\n wrapper: \"#js-pfas\",\n country: \".js-country\",\n countryText: \".js-country-text\",\n state: \".js-state\",\n stateText: \".js-state-text\",\n currentStateText: \".js-current-state\",\n submit: \".js-pfasContinue\",\n classes: {\n loading: \"is-loading\",\n active: \"active\"\n },\n cookieName: \"pfas_data\",\n cookieOriginName: \"pfas_origin_path\",\n cookieExpiryDays: 3652 // 10 years\n};\nvar redirectPage = window.sitewide.pfasHomeURL || \"\";\nvar geoLocationPage = window.sitewide.geoLocationPage || \"\";\nvar countries = {};\nvar currentCountry = \"\";\nvar states = \"\";\nvar onPageLoad = false;\nvar pfasInit = function pfasInit() {\n var wrapper = $(config.wrapper);\n if (wrapper.length === 0) {\n return;\n }\n var _store$getState = store.getState(),\n escCountries = _store$getState.countries,\n escStore = _store$getState.store;\n states = getStates();\n currentCountry = escStore.country;\n onPageLoad = true;\n countries = escCountries;\n setRedirectPageFromCookie();\n renderFormCountries(wrapper);\n renderFormState(wrapper);\n initializedEvent(wrapper);\n};\nvar handleGeoBasedRedirect = function handleGeoBasedRedirect(country) {\n var redirectPage = \"\";\n if (!getCookieData() && country && geolocationCountries[country]) {\n redirectPage = determineRedirectPage();\n }\n if (redirectPage) {\n window.location.href = redirectPage;\n }\n};\nvar determineRedirectPage = function determineRedirectPage() {\n var currentUrl = window.location.origin + window.location.pathname;\n var originalPath = window.location.href;\n if (geoLocationPage.trim() === currentUrl.trim()) {\n return null;\n }\n setOriginPathCookie(originalPath);\n return geoLocationPage;\n};\nvar removePfasProductFromCart = function removePfasProductFromCart() {\n if (!getCookieData('banEnabled')) return;\n var _store$getState2 = store.getState(),\n selection = _store$getState2.selection,\n productCache = _store$getState2.productCache;\n var pfasProductCartLines = selection.items.filter(function (item) {\n var productId = item.item.split('-')[0];\n var productData = productCache.items[productId] || {};\n if (!productData.isPfasProduct) return false;\n $.event.trigger(\"stoked-remove-from-cart\", [item.line, item.quantity, trackRemoveFromCart]);\n return true;\n }).map(function (item) {\n return {\n line: item.line,\n quantity: 0\n };\n });\n if (pfasProductCartLines.length === 0) return;\n bulkChangeQuantity(pfasProductCartLines).then(function () {});\n};\nvar setRedirectPageFromCookie = function setRedirectPageFromCookie() {\n var originPath = getCookie(config.cookieOriginName) || \"\";\n if (originPath) {\n redirectPage = decodeURIComponent(originPath);\n }\n};\nvar initializedEvent = function initializedEvent(wrapper) {\n // Select state\n wrapper.on(\"click\", \".dropdown-item\", function (e) {\n e.preventDefault();\n onPageLoad = false;\n var selectedValue = $(e.currentTarget).data(\"value\") || \"\";\n var btn = wrapper.find(config.submit);\n var fieldType = $(e.currentTarget).parent().data(\"name\") || \"state\";\n if (btn.length) {\n btn.prop(\"disabled\", !selectedValue);\n }\n wrapper.find(\"[data-name=\\\"\".concat(fieldType, \"\\\"] .dropdown-item\")).removeClass(config.classes.active);\n $(e.currentTarget).addClass(config.classes.active);\n updateFormDropdownText(wrapper, selectedValue, fieldType);\n if (fieldType === \"country\") {\n states = getStates(selectedValue);\n renderFormState(wrapper, selectedValue, true);\n }\n });\n\n // Submit state selection\n wrapper.on(\"click\", config.submit, function (e) {\n e.preventDefault();\n var _this = $(e.currentTarget);\n var selectedCountry = _this.parent().find(\".js-country .dropdown-item.active\").data(\"value\") || \"\";\n var selectedState = _this.parent().find(\".js-state .dropdown-item.active\").data(\"value\") || \"\";\n _this.addClass(config.classes.loading);\n setTimeout(function () {\n processFormSubmit(_this, selectedCountry, selectedState);\n }, 1000);\n });\n};\nvar processFormSubmit = function processFormSubmit(currentEl, selectedCountry, selectedState) {\n currentEl.removeClass(config.classes.loading);\n var pfasCountryStates = pfasCountries[selectedCountry] || [];\n var isPfasCountryWithoutState = pfasCountryStates.length === 0 && pfasCountries.hasOwnProperty(selectedCountry);\n var isBanEnabled = pfasCountryStates.includes(selectedState) || isPfasCountryWithoutState;\n changeCountry(selectedCountry).then(function () {\n updateGlobalECountryMethod(false).then(function () {\n changeAddressInput(\"address\", \"state\", selectedState);\n updatePfasCookie({\n selectedState: selectedState,\n isBanEnabled: isBanEnabled,\n country: selectedCountry\n });\n }).catch(function (error) {\n console.error('Error updating Global E country:', error);\n });\n });\n};\nvar handleCountryChange = function handleCountryChange(country) {\n updateGlobalECountryMethod(false).then(function () {\n var isBanEnabled = pfasCountries.hasOwnProperty(country) === true;\n var hasPfasState = isBanEnabled && pfasCountries[country] && pfasCountries[country].length > 0;\n var forceDeleteCookie = geolocationCountries.hasOwnProperty(country) && hasPfasState;\n if (hasPfasState || forceDeleteCookie) {\n deleteCookieData(config.cookieOriginName);\n deleteCookieData(config.cookieName);\n location.reload();\n return;\n }\n redirectPage = window.location.href;\n updatePfasCookie({\n isBanEnabled: isBanEnabled,\n selectedState: \"\",\n country: country\n });\n }).catch(function (error) {\n console.error('Error updating Global E country:', error);\n });\n};\nvar updatePfasCookie = function updatePfasCookie(_ref) {\n var selectedState = _ref.selectedState,\n isBanEnabled = _ref.isBanEnabled,\n country = _ref.country;\n var cookieCountry = country || currentCountry;\n updateCookieData({\n country: cookieCountry,\n state: selectedState,\n banEnabled: isBanEnabled\n });\n if (!redirectPage) {\n return;\n }\n if (redirectPage.replace(/\\/$/, \"\") !== window.location.href.replace(/\\/$/, \"\")) {\n deleteCookieData(config.cookieOriginName);\n window.location.href = decodeURI(redirectPage);\n return;\n }\n location.reload();\n};\nvar deleteCookieData = function deleteCookieData() {\n var cookieName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : config.cookieName;\n setCookie(cookieName, \"\", config.cookieExpiryDays * -1, getCookiePath());\n};\nvar getCookieData = function getCookieData() {\n var returnItem = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var data = JSON.parse(decodeURIComponent(getCookie(config.cookieName)) || \"{}\");\n if (returnItem) {\n return data && data[returnItem] ? data[returnItem] : null;\n }\n return data;\n};\nvar getCookiePath = function getCookiePath() {\n return window.location.protocol.indexOf('https:') !== -1 ? \"SameSite=None; Secure\" : \"\";\n};\nvar setOriginPathCookie = function setOriginPathCookie(originalPath) {\n setCookie(config.cookieOriginName, originalPath, config.cookieExpiryDays, getCookiePath());\n};\nvar updateCookieData = function updateCookieData(data) {\n setCookie(config.cookieName, JSON.stringify(data), config.cookieExpiryDays, getCookiePath());\n};\nvar renderFormCountries = function renderFormCountries(wrapper) {\n var _store$getState3 = store.getState(),\n countries = _store$getState3.countries,\n escStore = _store$getState3.store;\n if (!countries) {\n wrapper.find(config.country).parent().hide();\n return;\n }\n updateFormCountryField(wrapper, countries, escStore.country || \"\", escStore);\n};\nvar updateFormCountryField = function updateFormCountryField(wrapper, countries, selectedCountryCode, escStore) {\n var countryEl = wrapper.find(config.country);\n countryEl.parent().show().end().html(renderCountries(escStore, countries));\n updateFormDropdownText(wrapper, selectedCountryCode, \"country\");\n};\nvar getStates = function getStates() {\n var _countries$country;\n var country = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var _store$getState4 = store.getState(),\n countries = _store$getState4.countries,\n escStore = _store$getState4.store;\n if (!country) {\n country = escStore.country;\n }\n return (_countries$country = countries[country]) === null || _countries$country === void 0 ? void 0 : _countries$country.states;\n};\nvar renderFormState = function renderFormState(wrapper) {\n var _payment$address;\n var currentCountry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n var resetState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _store$getState5 = store.getState(),\n countries = _store$getState5.countries,\n escStore = _store$getState5.store,\n payment = _store$getState5.payment;\n var country = currentCountry || escStore.country;\n var countryData = countries[country] || [];\n if (showStateField(country, countryData.states || {}) === false) {\n wrapper.find(config.state).parent().hide();\n return;\n }\n var selectedState = resetState === true ? false : ((_payment$address = payment.address) === null || _payment$address === void 0 ? void 0 : _payment$address.state) || \"\";\n updateFormStateField(wrapper, countryData.states, selectedState, escStore);\n};\nvar showStateField = function showStateField(country, currentCountryStates) {\n var pfasCountryStates = pfasCountries[country] || [];\n return currentCountryStates && pfasCountryStates.length > 0;\n};\nvar extractStateCode = function extractStateCode(data) {\n if (!data || !data.state_code) {\n return null;\n }\n if (data.country_code2 && data.country_code2 == \"GB\") {\n return data.state_code;\n }\n var parts = data.state_code.split(\"-\");\n if (parts.length <= 1) {\n return data.state_code;\n }\n return parts[1];\n};\nvar getDefaultState = function getDefaultState(states) {\n return new Promise(function (resolve) {\n var defaultState = \"\";\n getIpInfo().then(function (ipInfo) {\n if (ipInfo && ipInfo.state_code) {\n var stateCode = extractStateCode(ipInfo);\n if (stateCode && states[stateCode] != undefined) {\n defaultState = stateCode;\n }\n }\n resolve(defaultState);\n }).catch(function (err) {\n console.log(\"error\", err);\n resolve(defaultState);\n });\n });\n};\nvar renderCurrentStateText = function renderCurrentStateText(wrapper, currentState) {\n if (wrapper.length === 0 || !currentState) return;\n var stateTextEl = wrapper.find(config.currentStateText);\n if (stateTextEl.length === 0) return;\n stateTextEl.text(currentState);\n};\nvar updateFormStateField = function updateFormStateField(wrapper, states, selectedStateCode, escStore) {\n var stateEl = wrapper.find(config.state);\n var handleUpdate = function handleUpdate(selectedStateCode) {\n stateEl.parent().show().end().html(renderStates(escStore, states, selectedStateCode));\n updateFormDropdownText(wrapper, selectedStateCode, \"state\");\n };\n if (!selectedStateCode) {\n getDefaultState(states).then(function (defaultState) {\n handleUpdate(defaultState);\n });\n } else {\n handleUpdate(selectedStateCode);\n }\n};\nvar updateFormDropdownText = function updateFormDropdownText(wrapper, selectedValue) {\n var _countries$selectedVa;\n var fieldType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"state\";\n var isCountry = fieldType === \"country\";\n var configText = isCountry ? config.countryText : config.stateText;\n var selectedValueName = isCountry ? ((_countries$selectedVa = countries[selectedValue]) === null || _countries$selectedVa === void 0 ? void 0 : _countries$selectedVa.name) || window.sitewide.chooseCountry : states[selectedValue] || window.sitewide.chooseState;\n wrapper.find(configText).text(selectedValueName);\n if (onPageLoad && fieldType === 'state' && selectedValue) {\n renderCurrentStateText(wrapper, selectedValueName);\n }\n};\nexport default pfasInit;\nexport { getCookieData, deleteCookieData, extractStateCode, handleCountryChange, removePfasProductFromCart, handleGeoBasedRedirect };\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/pfas.js","import { extractProductId, getProductData } from \"../shop/templates/partials\";\nvar formatProductData = function formatProductData(product, item, cache) {\n var formattedId = STOKED.GTM.formatProductId(item, STOKED.GTM.siteId, STOKED.GTM.country);\n product.dimension1 = \"\".concat(formattedId.slice(0, formattedId.lastIndexOf(\"-\")), \"-s\");\n product.dimension2 = cache.variantSku, product.dimension3 = \"\".concat(item.sku, \"-\").concat(item.variant.toUpperCase(), \"-\").concat(item.size.replace(' ', '').toUpperCase());\n product.category = cache.categoryName || (cache.categories.length > 0 ? cache.categories[0] : product.category), product.id = cache.variantSku || product.id;\n delete product.productId;\n return product;\n};\nvar trackAddToCart = function trackAddToCart(data, item) {\n var productId = extractProductId(item);\n var cache = productId ? getProductData(productId) : {};\n var product = data.ecommerce.add.products[0];\n data.ecommerce.add.products[0] = formatProductData(product, item, cache);\n return data;\n};\nvar trackRemoveFromCart = function trackRemoveFromCart(data, item) {\n var productId = extractProductId(item);\n var cache = productId ? getProductData(productId) : {};\n var product = data.ecommerce.remove.products[0];\n data.ecommerce.remove.products[0] = formatProductData(product, item, cache);\n return data;\n};\nvar trackPurchase = function trackPurchase(data, selection) {\n var products = [];\n if (selection.items.length > 0) {\n selection.items.forEach(function (item) {\n var formattedId = STOKED.GTM.formatProductId(item, STOKED.GTM.siteId, STOKED.GTM.country);\n var productId = extractProductId(item);\n var cache = productId ? getProductData(productId) : {};\n products.push({\n name: item.name,\n price: STOKED.GTM.includeTax ? item.priceEachAsNumber : item.priceEachWithoutTaxAsNumber,\n brand: item.brand || STOKED.siteName,\n id: item.sku,\n variant: item.variant,\n category: cache.categoryName || (cache.categories.length > 0 ? cache.categories[0] : item.category),\n quantity: item.quantity,\n dimension1: formattedId.slice(0, formattedId.lastIndexOf(\"-\")) + '-s',\n dimension2: cache.variantSku,\n dimension3: item.sku + \"-\" + item.variant.toUpperCase() + \"-\" + item.size.replace(' ', '').toUpperCase()\n });\n });\n data.ecommerce.purchase.products = products;\n }\n var paymentInfoCache = JSON.parse(localStorage.getItem('paymentInfo'));\n var addressDetails = window.tokens.debug ? paymentInfoCache : selection;\n if ((addressDetails === null || addressDetails === void 0 ? void 0 : addressDetails.address) != undefined) {\n data.ecommerce.purchase.user = {\n firstname: (addressDetails.address.firstName || '').toLowerCase(),\n lastname: (addressDetails.address.lastName || '').toLowerCase(),\n email: addressDetails.address.email || '',\n phone: (addressDetails.address.phoneNumber || '').replace(/[^0-9]/g, ''),\n city: (addressDetails.address.city || '').toLowerCase(),\n country: (addressDetails.address.country || '').toLowerCase(),\n zip: (addressDetails.address.zipCode || '').replace(/[\\s]/g, '')\n };\n }\n return data;\n};\nexport { trackAddToCart, trackRemoveFromCart, trackPurchase };\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/stoked.js","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* 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\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\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 if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/ev-emitter/ev-emitter.js\n// module id = 15\n// module chunks = 0","/*!\n * Unipointer v2.4.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\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*global define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.Unipointer = factory(\n window,\n window.EvEmitter\n );\n }\n\n}( window, function factory( window, EvEmitter ) {\n\n'use strict';\n\nfunction noop() {}\n\nfunction Unipointer() {}\n\n// inherit EvEmitter\nvar proto = Unipointer.prototype = Object.create( EvEmitter.prototype );\n\nproto.bindStartEvent = function( elem ) {\n this._bindStartEvent( elem, true );\n};\n\nproto.unbindStartEvent = function( elem ) {\n this._bindStartEvent( elem, false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\nproto._bindStartEvent = function( elem, isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n\n // default to mouse events\n var startEvent = 'mousedown';\n if ( 'ontouchstart' in window ) {\n // HACK prefer Touch Events as you can preventDefault on touchstart to\n // disable scroll in iOS & mobile Chrome metafizzy/flickity#1177\n startEvent = 'touchstart';\n } else if ( window.PointerEvent ) {\n // Pointer Events\n startEvent = 'pointerdown';\n }\n elem[ bindMethod ]( startEvent, this );\n};\n\n// trigger handler methods for events\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// returns the touch that we're keeping track of\nproto.getTouch = function( touches ) {\n for ( var i=0; i < touches.length; i++ ) {\n var touch = touches[i];\n if ( touch.identifier == this.pointerIdentifier ) {\n return touch;\n }\n }\n};\n\n// ----- start event ----- //\n\nproto.onmousedown = function( event ) {\n // dismiss clicks from right or middle buttons\n var button = event.button;\n if ( button && ( button !== 0 && button !== 1 ) ) {\n return;\n }\n this._pointerDown( event, event );\n};\n\nproto.ontouchstart = function( event ) {\n this._pointerDown( event, event.changedTouches[0] );\n};\n\nproto.onpointerdown = function( event ) {\n this._pointerDown( event, event );\n};\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto._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;\n // save pointer identifier to match up touch events\n this.pointerIdentifier = pointer.pointerId !== undefined ?\n // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId : pointer.identifier;\n\n this.pointerDown( event, pointer );\n};\n\nproto.pointerDown = function( event, pointer ) {\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// hash of events to be bound after start event\nvar postStartEvents = {\n mousedown: [ 'mousemove', 'mouseup' ],\n touchstart: [ 'touchmove', 'touchend', 'touchcancel' ],\n pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ],\n};\n\nproto._bindPostStartEvents = function( event ) {\n if ( !event ) {\n return;\n }\n // get proper events to match start event\n var events = postStartEvents[ event.type ];\n // bind events to node\n events.forEach( function( eventName ) {\n window.addEventListener( eventName, this );\n }, this );\n // save these arguments\n this._boundPointerEvents = events;\n};\n\nproto._unbindPostStartEvents = function() {\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n if ( !this._boundPointerEvents ) {\n return;\n }\n this._boundPointerEvents.forEach( function( eventName ) {\n window.removeEventListener( eventName, this );\n }, this );\n\n delete this._boundPointerEvents;\n};\n\n// ----- move event ----- //\n\nproto.onmousemove = function( event ) {\n this._pointerMove( event, event );\n};\n\nproto.onpointermove = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerMove( event, event );\n }\n};\n\nproto.ontouchmove = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerMove( event, touch );\n }\n};\n\n/**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerMove = function( event, pointer ) {\n this.pointerMove( event, pointer );\n};\n\n// public\nproto.pointerMove = function( event, pointer ) {\n this.emitEvent( 'pointerMove', [ event, pointer ] );\n};\n\n// ----- end event ----- //\n\n\nproto.onmouseup = function( event ) {\n this._pointerUp( event, event );\n};\n\nproto.onpointerup = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerUp( event, event );\n }\n};\n\nproto.ontouchend = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerUp( event, touch );\n }\n};\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerUp = function( event, pointer ) {\n this._pointerDone();\n this.pointerUp( event, pointer );\n};\n\n// public\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n};\n\n// ----- pointer done ----- //\n\n// triggered on pointer up & pointer cancel\nproto._pointerDone = function() {\n this._pointerReset();\n this._unbindPostStartEvents();\n this.pointerDone();\n};\n\nproto._pointerReset = function() {\n // reset properties\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n};\n\nproto.pointerDone = noop;\n\n// ----- pointer cancel ----- //\n\nproto.onpointercancel = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerCancel( event, event );\n }\n};\n\nproto.ontouchcancel = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerCancel( event, touch );\n }\n};\n\n/**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerCancel = function( event, pointer ) {\n this._pointerDone();\n this.pointerCancel( event, pointer );\n};\n\n// public\nproto.pointerCancel = function( event, pointer ) {\n this.emitEvent( 'pointerCancel', [ event, pointer ] );\n};\n\n// ----- ----- //\n\n// utility function for getting x/y coords from event\nUnipointer.getPointerPoint = function( pointer ) {\n return {\n x: pointer.pageX,\n y: pointer.pageY\n };\n};\n\n// ----- ----- //\n\nreturn Unipointer;\n\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/unipointer/unipointer.js\n// module id = 16\n// module chunks = 0","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport store from \"../shop/store\";\nimport voyadoPurchase from \"../components/analytics-ca\";\nimport Newsletter from \"../components/newsletter\";\nvar getVoyadoOptions = function getVoyadoOptions(body, method) {\n var fetchOptions = {\n mode: \"cors\",\n cache: \"no-cache\",\n method: method,\n headers: {\n Accept: \"application/json, text/plain, */*;\"\n },\n body: body\n };\n return fetchOptions;\n};\nvar fetchVoyado = function fetchVoyado(path, responseData, requestBody, method) {\n // POST /newsletter-subscription\n if (method === \"POST\" && /newsletter-subscription/.test(path)) {\n var email = path.substring(path.lastIndexOf(\"/\") + 1, path.length);\n addContact(email, requestBody.country, requestBody.gender);\n }\n\n // POST /payment-result\n if (method === \"POST\" && /payment-result/.test(path)) {\n var isNewsletterChecked = typeof store.getState().payment.address.newsletter !== 'undefined' && store.getState().payment.address.newsletter;\n updateContact(responseData, isNewsletterChecked);\n voyadoPurchase();\n }\n\n // PUT /customer/update\n if (method === \"PUT\" && /customer\\/update/.test(path)) {\n updateContact({\n order: {\n address: responseData.loggedIn\n }\n }, responseData.loggedIn.newsletter);\n }\n\n // PUT /email\n if (method === \"PUT\" && /email/.test(path)) {\n updateContact({\n order: {\n address: responseData.loggedIn\n }\n }, responseData.loggedIn.newsletter, true);\n }\n\n // POST /register\n if (method === \"POST\" && /register/.test(path) && !responseData.errors) {\n updateContact({\n order: {\n address: responseData.loggedIn\n }\n }, responseData.loggedIn.newsletter, true);\n }\n};\nvar addContact = function addContact(email, country, gender) {\n var formdata = new FormData();\n if (country !== undefined) {\n formdata.append(\"country\", country);\n }\n if (gender !== undefined) {\n formdata.append(\"gender\", gender);\n }\n var form = document.querySelector('.js-newsletter[data-processing=\"true\"]');\n var button = form ? form.querySelector('button[type=\"submit\"]') : null;\n if (form == undefined) {\n return;\n }\n\n // Check values\n var $this = $(form);\n var formInputs = $this.serializeArray().reduce(function (acc, input) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, input.name, input.value));\n }, {});\n if (formInputs.source !== undefined) {\n formdata.append(\"source\", formInputs.source);\n }\n return fetch(\"/wp-json/coalesce/v2/voyado/newsletter-signup/\".concat(email), getVoyadoOptions(formdata, \"POST\")).then(function (data) {\n return data.json();\n }).then(function (data) {\n // If form is interstellar, change message to interstellar message\n if (form && form.classList.contains(\"newsletter-interstellar-form\")) {\n data.message = data.message_interstellar || data.message;\n }\n setTimeout(function () {\n button.classList.remove(Newsletter.getClasses().isLoading);\n form.setAttribute(\"data-processing\", false);\n Newsletter.formSuccess(form, data);\n }, 1500);\n var targetEl = $(form.dataset.target);\n if (targetEl && targetEl.attr('id') === 'js-newsletter-modal') {\n var displayTime = targetEl.data('display_time');\n if (form.dataset.success_type === 'alert') {\n displayTime = 0;\n }\n Newsletter.forceCloseModal(targetEl, displayTime);\n }\n }).catch(function (err) {\n button.classList.remove(Newsletter.getClasses().isLoading);\n form.setAttribute(\"data-processing\", false);\n console.log(\"DEBUG: was not able to be fetched\", err);\n });\n};\nvar updateContact = function updateContact(orderData, isSubscribed) {\n var isEmailChanged = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var formdata = new FormData();\n formdata.append(\"order\", JSON.stringify(orderData.order));\n formdata.append(\"is_subscribed\", isSubscribed);\n formdata.append(\"is_email_changed\", isEmailChanged);\n return fetch(\"/wp-json/coalesce/v2/voyado/update_contact\", getVoyadoOptions(formdata, \"POST\")).then(function (data) {\n return data.json();\n }).catch(function (err) {\n return console.log(\"DEBUG: was not able to be fetched\", err);\n });\n};\nvar fetchVoyadoContactId = function fetchVoyadoContactId(email) {\n return fetch(\"/wp-json/coalesce/v2/voyado/get_contact_id/\".concat(email), getVoyadoOptions(null, \"GET\")).then(function (data) {\n return data.json();\n }).catch(function (err) {\n return console.log(\"DEBUG: was not able to be fetched\", err);\n });\n};\nexport { fetchVoyadoContactId, updateContact };\nexport default fetchVoyado;\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/voyado.js","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport { deepClone } from \"../util/object\";\nexport var isBundle = function isBundle(item) {\n return _typeof(item) === \"object\" && \"bundle\" in item && item.bundle;\n};\nvar getCurrency = function getCurrency(selection) {\n return (selection.totals.grandTotalPrice + \"\").split(/\\s| /g).pop();\n};\nexport var includeBundleDiscount = function includeBundleDiscount(selection) {\n var totalDiscount = Math.abs(selection.items.reduce(function (carry, item) {\n return carry + (isBundle(item) ? item.priceEachReductionAsNumber : 0);\n }, 0)) + Math.abs(selection.totals.totalDiscountPriceAsNumber || 0);\n return [totalDiscount, \"-\" + monify(totalDiscount, getCurrency(selection))];\n};\nexport var getBeforeDiscountTotal = function getBeforeDiscountTotal(selection) {\n var beforeDiscountItemTotal = Math.abs(selection.items.reduce(function (carry, item) {\n return carry + item.priceEachBeforeDiscountAsNumber * item.quantity;\n }, 0));\n return [beforeDiscountItemTotal, monify(beforeDiscountItemTotal, getCurrency(selection))];\n};\nexport var monify = function monify(amount, currency) {\n return moneyFormat(amount, 2, 3, \" \", \".\") + \" \".concat(currency);\n};\nvar moneyFormat = function moneyFormat(number, n, x, s, c) {\n var re = \"\\\\d(?=(\\\\d{\" + (x || 3) + \"})+\" + (n > 0 ? \"\\\\D\" : \"$\") + \")\",\n num = number.toFixed(Math.max(0, ~~n));\n return (c ? num.replace(\".\", c) : num).replace(new RegExp(re, \"g\"), \"$&\" + (s || \",\"));\n};\n\n/**\r\n * Split bundles with more than 1 quantity to different line items\r\n * Use `priceReduction` from cache instead from Checkout API because the value changes for some reason\r\n */\nexport var splitBundles = function splitBundles(selectionItems, productCache) {\n var newItems = [];\n deepClone(selectionItems).forEach(function (item) {\n if (!isBundle(item)) {\n newItems.push(item);\n return;\n }\n var cache = productCache.items[item.product.product];\n if (cache) {\n item.priceEachReductionAsNumber = cache.price.priceReductionAsNumber;\n }\n if (isBundle(item) && item.quantity === 1) {\n newItems.push(item);\n return;\n }\n var counter = item.quantity;\n item.quantity = 1;\n while (counter-- > 0) {\n newItems.push(item);\n }\n });\n return newItems;\n};\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/bundles.js","var completeSystemSlider = {\n init: function init() {\n var $completeSystemSlider = $('.js-complete-system-slider');\n var options;\n if ($completeSystemSlider.length === 0) {\n return;\n }\n $.each($completeSystemSlider, function () {\n var $completeSystemSliderInstance = $(this);\n var $sliderLength = $completeSystemSliderInstance.find('.checkout-system-slider-item ').length;\n if ($sliderLength <= 2) {\n options = {\n cellAlign: 'left',\n prevNextButtons: false,\n pageDots: false,\n dragThreshold: 10,\n wrapAround: false,\n contain: true,\n draggable: true,\n on: {\n ready: function ready() {\n $completeSystemSliderInstance.removeClass('invisible');\n }\n }\n };\n } else {\n options = {\n cellAlign: 'left',\n prevNextButtons: true,\n pageDots: false,\n dragThreshold: 10,\n wrapAround: false,\n contain: true,\n on: {\n ready: function ready() {\n $completeSystemSliderInstance.removeClass('invisible');\n }\n }\n };\n }\n $completeSystemSliderInstance.flickity(options);\n });\n }\n};\nexport default completeSystemSlider;\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/sliders/complete-system.js","/**\r\n * Created by STOK on 13/06/2019.\r\n */\nvar Alert = {};\n(function ($) {\n var target = $('#js-alert'),\n image = target.find('#js-alert-image'),\n text = target.find('#js-alert-text'),\n button = target.find('#js-alert-button'),\n close = target.find('.js-close-button');\n Alert.show = function (type, message, buttonText) {\n if (target.length === 0) {\n return;\n }\n var alertClass = target.data('classDefault') + ' ',\n buttonClass = button.data('classDefault'),\n imageSource = '';\n switch (type) {\n case 'success':\n alertClass += target.data('classSuccess');\n imageSource = image.data('iconSuccess');\n break;\n case 'warning':\n alertClass += target.data('classWarning');\n imageSource = image.data('iconWarning');\n break;\n case 'danger':\n alertClass += target.data('classDanger');\n buttonClass = button.data('classSpecial');\n imageSource = image.data('iconDanger');\n break;\n default:\n return;\n }\n target.attr('class', alertClass);\n image.attr('src', imageSource);\n text.html(message);\n button.text(buttonText);\n button.attr('class', buttonClass);\n target.slideDown('slow');\n };\n $(function () {\n if (target.length === 0) {\n return;\n }\n button.on('click', function () {\n target.slideUp('slow');\n });\n close.on('click', function () {\n target.slideUp('slow');\n });\n });\n})(jQuery);\nwindow.Alert = Alert;\nmodule.exports = Alert;\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/alert.js","var isOnScreen = function isOnScreen(elem) {\n if (elem.length == 0) {\n return;\n }\n var $window = $(window);\n var viewport_top = $window.scrollTop();\n var viewport_height = $window.height();\n var viewport_bottom = viewport_top + viewport_height;\n var $elem = $(elem);\n var top = $elem.offset().top;\n var height = $elem.height();\n var bottom = top + height;\n return top >= viewport_top && top < viewport_bottom || bottom > viewport_top && bottom <= viewport_bottom || height > viewport_height && top <= viewport_top && bottom >= viewport_bottom;\n};\nmodule.exports = isOnScreen;\n\n\n// WEBPACK FOOTER //\n// ./scripts/util/isOnScreen.js","/*!\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/* globals console: false */\n\n( function( window, factory ) {\n /* jshint strict: false */ /* 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\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n var num = parseFloat( value );\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n function( message ) {\n console.error( message );\n };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n size[ measurement ] = 0;\n }\n return size;\n}\n\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 */\nfunction getStyle( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n logError( 'Style returned ' + style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1' );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if ( isSetup ) {\n return;\n }\n isSetup = true;\n\n // -------------------------- 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 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\n var body = document.body || document.documentElement;\n body.appendChild( div );\n var style = getStyle( div );\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n setup();\n\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n\n // do not proceed on non-objects\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n return;\n }\n\n var style = getStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n var value = style[ measurement ];\n var num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\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\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n }\n\n var styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // 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\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n\nreturn getSize;\n\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/get-size/get-size.js\n// module id = 22\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 23\n// module chunks = 0","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport { checkoutAPI } from \"../config\";\nimport fetchVoyado from \"../components/voyado\";\nvar getCheckoutOptions = function getCheckoutOptions(token, body, method) {\n var fetchOptions = {\n mode: \"cors\",\n cache: \"no-cache\"\n };\n fetchOptions.method = method;\n if (token) fetchOptions.headers = {\n Accept: \"application/json, text/plain, */*; api-token:\".concat(token)\n };\n if (_typeof(body) === \"object\" && Object.keys(body).length > 0) {\n fetchOptions.body = JSON.stringify(body);\n }\n return fetchOptions;\n};\nvar fetchCheckout = function fetchCheckout(path, token) {\n var body = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var method = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : \"GET\";\n var encodedPath = path.split(\"/\").map(function (part) {\n return encodeURIComponent(part);\n }).join(\"/\");\n return fetch(\"\".concat(checkoutAPI).concat(encodedPath), getCheckoutOptions(token, body, method)).then(function (data) {\n return data.json();\n }).then(function (data) {\n fetchVoyado(path, data, body, method);\n return data;\n }).catch(function (err) {\n return console.log(\"DEBUG: was not able to be fetched\", err);\n });\n};\nvar fetchShop = function fetchShop(uri) {\n var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return fetch(\"\".concat(encodeURI(window.rest_object.api_url)).concat(encodeURI(window.sitewide.language).slice(0, 2), \"/\").concat(encodeURI(uri), \"/\").concat(encodeURI(param)), {\n method: \"GET\",\n cache: \"no-cache\"\n }).then(function (data) {\n if (data.ok) {\n return data.json();\n }\n return Promise.reject(data);\n });\n};\nexport default fetchCheckout;\nexport { fetchShop };\n\n\n// WEBPACK FOOTER //\n// ./scripts/shop/async.js","function _extends(){return(_extends=Object.assign||function(t){for(var e=1;e-1&&(k(t,e),p(t,o.class_loading)),h(t,e),function(t){i(t,\"was-processed\",\"true\")}(t),d(o.callback_reveal,t,e),d(o.callback_set,t,e))},N=function(t){return!!n&&(t._observer=new IntersectionObserver(function(e){e.forEach(function(e){return function(t){return t.isIntersecting||t.intersectionRatio>0}(e)?function(t,e,n){var o=n._settings;d(o.callback_enter,t,e,n),o.load_delay?z(t,n):L(t,n)}(e.target,e,t):function(t,e,n){var o=n._settings;d(o.callback_exit,t,e,n),o.load_delay&&x(t)}(e.target,e,t)})},{root:(e=t._settings).container===document?null:e.container,rootMargin:e.thresholds||e.threshold+\"px\"}),!0);var e},C=[\"IMG\",\"IFRAME\"],M=function(t,e){return function(t){return t.filter(function(t){return!c(t)})}((n=t||function(t){return t.container.querySelectorAll(t.elements_selector)}(e),Array.prototype.slice.call(n)));var n},S=function(t){var e=t._settings;e.container.querySelectorAll(\".\"+e.class_error).forEach(function(t){b(t,e.class_error),function(t){i(t,\"was-processed\",null)}(t)}),t.update()},R=function(e,n){var o;this._settings=function(t){return _extends({},r,t)}(e),this.loadingCount=0,N(this),this.update(n),o=this,t&&window.addEventListener(\"online\",function(t){S(o)})};return R.prototype={update:function(t){var n,o=this,r=this._settings;(this._elements=M(t,r),!e&&this._observer)?(function(t){return t.use_native&&\"loading\"in HTMLImageElement.prototype}(r)&&((n=this)._elements.forEach(function(t){-1!==C.indexOf(t.tagName)&&(t.setAttribute(\"loading\",\"lazy\"),O(t,n))}),this._elements=M(t,r)),this._elements.forEach(function(t){o._observer.observe(t)})):this.loadAll()},destroy:function(){var t=this;this._observer&&(this._elements.forEach(function(e){t._observer.unobserve(e)}),this._observer=null),this._elements=null,this._settings=null},load:function(t,e){O(t,this,e)},loadAll:function(){var t=this;this._elements.forEach(function(e){L(e,t)})}},t&&function(t,e){if(e)if(e.length)for(var n,o=0;n=e[o];o+=1)a(t,n);else a(t,e)}(R,window.lazyLoadOptions),R});\r\n//# sourceMappingURL=lazyload.min.js.map\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/vanilla-lazyload/dist/lazyload.min.js\n// module id = 25\n// module chunks = 0","import { changeCountry, updateGlobalECountry } from \"../../shop/connect\";\nimport displayModal from \"../../util/modal\";\nimport { reloadGECheckout } from \"../../components/global-e\";\nimport { handleCountryChange as updatePfasCountry } from \"../../components/pfas\";\nvar country = function country() {\n // Custom dropdown\n $(\".js-dropdownFlag--country .cart-dropdown-item\").on(\"click\", function (e) {\n e.preventDefault();\n var selectedCountry = e.currentTarget.dataset.value;\n var disabledLinkButton = $(document).find('.js-disabledOnClick button');\n if (disabledLinkButton.length) {\n disabledLinkButton.addClass('is-loading disabled');\n disabledLinkButton.prop('disabled', true);\n }\n changeCountry(selectedCountry).then(function () {\n updatePfasCountry(selectedCountry);\n reloadGECheckout();\n });\n });\n};\nvar countryModal = function countryModal() {\n if ($(\"#js-countrySelectorModal\").length === 0) return;\n var modalEl = $(\"#js-countrySelectorModal\");\n var dropdownCountry = modalEl.find(\".js-dropdown--country\");\n if (dropdownCountry.length > 0) {\n dropdownCountry.on(\"click\", function (e) {\n e.preventDefault();\n var selected = $(e.currentTarget);\n modalEl.find(\".js-dropdown--country\").removeClass('active');\n modalEl.find(\"#countrySelector\").text(selected.text());\n selected.addClass(\"active\");\n });\n }\n var submitBtn = modalEl.find(\".js-continue\");\n if (submitBtn.length > 0) {\n submitBtn.on(\"click\", function (e) {\n var btn = $(e.currentTarget);\n btn.addClass(\"is-loading\");\n var country = getSelectedOption(modalEl, \".js-dropdown--country\");\n if (country) {\n changeCountry(country).then(function () {\n updatePfasCountry(country);\n btn.removeClass(\"is-loading\");\n });\n } else {\n setTimeout(function () {\n btn.removeClass(\"is-loading\");\n }, 500);\n }\n });\n }\n};\nvar getSelectedOption = function getSelectedOption(modalEl, selector) {\n if (modalEl.length === 0) return;\n var el = modalEl.find(\"\".concat(selector, \".active\"));\n var val;\n if (el.length > 0) val = el.data('code');\n return val;\n};\nvar displayCountryModal = function displayCountryModal() {\n displayModal(\"js-countrySelectorModal\", \"country_modal\");\n countryModal();\n};\nexport default country;\nexport { displayCountryModal };\n\n\n// WEBPACK FOOTER //\n// ./scripts/partials/top/country.js","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per GeneratorResume behavior specified since ES2015:\n // ES2015 spec, step 3: https://262.ecma-international.org/6.0/#sec-generatorresume\n // Latest spec, step 2: https://tc39.es/ecma262/#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next method, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable != null) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n throw new TypeError(typeof iterable + \" is not iterable\");\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/regenerator-runtime/runtime.js\n// module id = 27\n// module chunks = 0","import store from \"../shop/store\";\nimport { setCookie, getCookie, deleteCookie } from \"../util/dom\";\nimport { fetchVoyadoContactId } from \"../components/voyado\";\nvar voyadoTrackingEnabled = $('body').hasClass('web-tracking-enabled'),\n emailFieldUpdateTimeoutDuration = 1000;\n;\nvar emailFieldUpdateTimeout = null,\n emailPreviousValue = typeof store.getState().payment.address.email === \"undefined\" ? null : store.getState().payment.address.email,\n cartPreviousTotalQuantity = typeof store.getState().selection.totals === \"undefined\" ? null : store.getState().selection.totals.totalQuantity;\nvar init = function init() {\n if (!voyadoTrackingEnabled) return;\n store.subscribe(function () {\n trackEmail();\n trackCartChanges();\n });\n\n // Track checkout page\n if (document.body.classList.contains('template-checkout')) {\n cartUpdate();\n }\n\n // Track product page view and variant change\n if (document.body.classList.contains('single-silk_products-data')) {\n var product = $('section.js-product-info').data('product');\n productView(product);\n }\n};\n\n// Track changes to cart\nvar trackCartChanges = function trackCartChanges() {\n if (typeof store.getState().selection.totals === \"undefined\") return;\n if (cartPreviousTotalQuantity === store.getState().selection.totals.totalQuantity) return;\n cartPreviousTotalQuantity = store.getState().selection.totals.totalQuantity;\n cartUpdate();\n};\n\n// Track changes to email property\nvar trackEmail = function trackEmail() {\n if (typeof store.getState().payment.address.email === \"undefined\") return;\n if (emailFieldUpdateTimeout) clearTimeout(emailFieldUpdateTimeout);\n emailFieldUpdateTimeout = setTimeout(function () {\n var email = store.getState().payment.address.email;\n if (emailPreviousValue === email || !email) return;\n emailPreviousValue = email;\n fetchVoyadoContactId(email).then(function (data) {\n assignContact(data.id);\n });\n }, emailFieldUpdateTimeoutDuration);\n};\nvar productView = function productView(itemId) {\n if (!voyadoTrackingEnabled) return;\n if (typeof va === 'undefined') return;\n if (typeof itemId === 'undefined' || !itemId) return;\n var item = null;\n if (store.getState().productCache.items && store.getState().productCache.items[itemId] !== 'undefined') {\n item = store.getState().productCache.items[itemId];\n }\n if (!item) return;\n var sku = item.sizes[0].hasOwnProperty('sku') ? item.sizes[0].sku : false;\n if (!sku) return;\n va('productview', {\n 'categoryName': item.categories.length > 0 ? item.categories[0] : '',\n // required\n 'itemId': sku\n });\n};\nvar cartUpdate = function cartUpdate() {\n if (!voyadoTrackingEnabled) return;\n if (typeof va === 'undefined') return;\n var items = store.getState().selection.items;\n var voyadoItems = [];\n if (!items) return;\n items.forEach(function (item) {\n var matchedProduct = Object.values(store.getState().productCache.items).filter(function (product) {\n return (item.sku + item.variant).toUpperCase() === product.variantSku.toUpperCase();\n });\n if (matchedProduct.length === 0) return;\n var size = matchedProduct[0].sizes.filter(function (size) {\n return item.size === size.name;\n });\n if (size.length === 0) return;\n voyadoItems.push({\n 'itemId': size[0].sku,\n 'price': item.priceEach,\n 'quantity': item.quantity\n });\n });\n\n // Generate checkout link\n var checkoutLink = document.querySelector('.cart-footer a'),\n cartRef = store.getState().store.token,\n cartUrl = document.location.href;\n if (checkoutLink) {\n cartUrl = checkoutLink.href;\n }\n cartUrl += '?cartId=' + cartRef;\n va('cart', {\n 'cartRef': cartRef,\n 'cartUrl': cartUrl,\n 'locale': 'en-US',\n //document.documentElement.lang,\n 'items': voyadoItems\n });\n setCookie('voyado_cart_url', cartUrl, 365, 'SameSite=None; Secure');\n};\nvar voyadoPurchase = function voyadoPurchase() {\n if (!voyadoTrackingEnabled) return;\n if (typeof va === 'undefined') return;\n var cartRef = getCookie('voyado_cart_url') || '';\n va('emptyCart', {\n cartRef: cartRef\n }); // This actually calls `cart()` with empty `items`.\n\n deleteCookie('voyado_cart_url');\n};\nvar assignContact = function assignContact(id) {\n if (!voyadoTrackingEnabled) return;\n if (typeof va === 'undefined') return;\n va(\"setContactId\", id);\n};\ninit();\nexport { productView };\nexport default voyadoPurchase;\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/analytics-ca.js","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { setCookie, getCookie } from \"../util/dom\";\nimport { subscribeToNewsletter } from \"../shop/connect\";\nvar Alert = require(\"../components/alert\");\nvar Newsletter = {};\nvar geo = {};\nvar currGeoStats = false;\n(function ($) {\n var elClasses = {};\n Newsletter.getClasses = function () {\n return {\n hidden: \"d-none\",\n isLoading: \"is-loading\",\n isDisabled: \"is-disabled\",\n error: \"is-invalid\"\n };\n };\n Newsletter.updateErrorHtml = function () {\n var formError = this.parentNode.querySelector(\".js-form-error\");\n if (!formError) {\n formError = this.parentNode.parentNode.querySelector(\".js-form-error\");\n }\n if (formError && formError.innerText.length > 0) {\n formError.innerText = null;\n this.classList.remove(elClasses.error);\n }\n };\n Newsletter.removeErrors = function (wrapperEl) {\n var inputs = wrapperEl.querySelectorAll(\"input\");\n if (inputs.length === 0) {\n return;\n }\n for (var i = 0; i < inputs.length; i++) {\n inputs[i].addEventListener(\"focus\", Newsletter.updateErrorHtml);\n inputs[i].addEventListener(\"click\", Newsletter.updateErrorHtml);\n }\n };\n Newsletter.validateEmail = function (email) {\n var re = /^([\\w-]+(?:\\.[\\w-]+)*)@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$/i;\n return re.test(email);\n };\n Newsletter.formValidation = function (wrapperEl) {\n var errorMessages = JSON.parse(wrapperEl.getAttribute(\"data-messages\"));\n var email = wrapperEl.querySelector('input[name=\"esc_email\"]');\n var terms = wrapperEl.querySelector('input[name=\"accept_terms\"]');\n var errors = {};\n\n // Form validation\n if (email.value.length === 0) {\n errors.email = errorMessages && errorMessages.required_email ? errorMessages.required_email : \"E-mail field is required\";\n } else if (!Newsletter.validateEmail(email.value)) {\n errors.email = errorMessages && errorMessages.invalid_email ? errorMessages.invalid_email : \"Email address is invalid\";\n }\n if (terms.checked === false) {\n errors.terms = errorMessages && errorMessages.required_terms ? errorMessages.required_terms : \"Accept terms is required\";\n }\n\n // Return false if no errors\n if (Object.keys(errors).length === 0) {\n return false;\n }\n\n // Display error\n for (var key in errors) {\n var errorEl = wrapperEl.querySelector('.js-form-error[data-field=\"' + key + '\"]');\n if (errorEl) {\n errorEl.innerText = errors[key];\n }\n var elToAddClass = key === \"email\" ? email : terms;\n elToAddClass.classList.add(elClasses.error);\n }\n return true;\n };\n Newsletter.formSubmit = function (form) {\n if (!form) {\n return;\n }\n var hasErrors = Newsletter.formValidation(form);\n var button = form.querySelector('button[type=\"submit\"]');\n if (hasErrors) {\n return setTimeout(function () {\n button.classList.remove(elClasses.isLoading);\n }, 500);\n }\n\n // Check values\n var $this = $(form);\n var formInputs = $this.serializeArray().reduce(function (acc, input) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, input.name, input.value));\n }, {});\n var item = undefined;\n if (formInputs.hasOwnProperty(\"item\")) {\n item = formInputs.item;\n }\n button.classList.add(elClasses.isLoading);\n form.setAttribute(\"data-processing\", true);\n subscribeToNewsletter(formInputs.esc_email, item, formInputs.esc_gender, formInputs.esc_country, formInputs.esc_language).then(function () {\n // setTimeout( function () {\n // \tbutton.classList.remove( elClasses.isLoading );\n // \tNewsletter.formSuccess(form);\n // }, 1500 );\n // var targetEl = $( form.dataset.target );\n // if (targetEl && targetEl.attr('id') === 'js-newsletter-modal') {\n // \tvar displayTime = targetEl.data('display_time');\n // \tif (form.dataset.success_type === 'alert') {\n // \t\tdisplayTime = 0;\n // \t}\n // \tNewsletter.forceCloseModal( targetEl, displayTime );\n // }\n }).catch(function () {\n $this.removeClass(\"is-success\");\n $this.addClass(\"is-error\");\n form.setAttribute(\"data-processing\", false);\n });\n };\n Newsletter.forceCloseModal = function (el, displayTime) {\n setTimeout(function () {\n el.modal(\"hide\");\n }, displayTime * 1000);\n };\n Newsletter.formSuccess = function (form) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var formData = form !== undefined ? form.dataset : {};\n var targetContainer = document.querySelector(formData.target);\n var successType = formData.success_type;\n if (targetContainer && successType === \"success-message\") {\n Newsletter.displaySuccessMessage(targetContainer, \".js-newsletter-success\", \".js-newsletter-content\");\n } else if (successType === \"alert\") {\n var btn = document.getElementById(\"js-alert-button\");\n var btnText = btn ? btn.dataset.text : \"\";\n var message = formData.alert;\n var status = \"success\";\n if (data.message != undefined) {\n message = data.message;\n }\n if (data.success != undefined) {\n status = data.success ? \"success\" : \"danger\";\n }\n Alert.show(status, message, btnText);\n document.getElementById(\"js-alert\").classList.add(\"newsletter-alert\");\n }\n Newsletter.resetForm(targetContainer, form, successType);\n };\n Newsletter.resetForm = function (targetContainer, form, successType) {\n form.querySelector('input[name=\"esc_email\"]').value = \"\";\n form.querySelector('input[name=\"accept_terms\"]').checked = false;\n if (successType === \"success-message\") {\n setTimeout(function () {\n Newsletter.displaySuccessMessage(targetContainer, \".js-newsletter-content\", \".js-newsletter-success\");\n }, 10000);\n }\n };\n Newsletter.displaySuccessMessage = function (targetContainer, toDisplayClass, toHideClass) {\n if (!targetContainer) {\n return;\n }\n var contentToDisplay = targetContainer.querySelectorAll(toDisplayClass);\n var contentToHide = targetContainer.querySelectorAll(toHideClass);\n if (contentToHide.length > 0) {\n Array.prototype.forEach.call(contentToHide, function (element) {\n element.classList.add(elClasses.hidden);\n });\n }\n if (contentToDisplay.length > 0) {\n Array.prototype.forEach.call(contentToDisplay, function (element) {\n element.classList.remove(elClasses.hidden);\n });\n }\n };\n Newsletter.modal = function (modal) {\n var offsetDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n if (!modal) {\n return;\n }\n var cookieName = modal.data(\"cookie\");\n var delay = modal.data(\"delay\");\n if (!getCookie(cookieName)) {\n // Show modal\n if (currGeoStats) {\n modal.modal(\"show\");\n setCookie(cookieName, true, 365, \"SameSite=None; Secure\");\n } else {\n setTimeout(function () {\n modal.modal(\"show\");\n setCookie(cookieName, true, 365, \"SameSite=None; Secure\");\n }, delay * 1000 - offsetDelay);\n }\n }\n };\n Newsletter.init = function (mainWrapper, modalId) {\n // var btn = document.getElementById( 'js-alert-button' );\n // var btnText = btn ? btn.dataset.text : '';\n\n // Alert.show( 'success', form.dataset.alert, btnText );\n\n var container = document.querySelectorAll(mainWrapper);\n if (container.length === 0) {\n return;\n }\n for (var i = 0; i < container.length; i++) {\n // Form submit\n var form = container[i];\n form.addEventListener(\"submit\", function (e) {\n e.preventDefault();\n Newsletter.formSubmit(this);\n });\n\n // Remove Errors on input change\n Newsletter.removeErrors(form);\n }\n\n // Newsletter Modal - if cookiebot is disabled\n setTimeout(function () {\n if (typeof window.Cookiebot === 'undefined') {\n var modal = $(modalId);\n if (modal.length) {\n Newsletter.modal(modal, 1000);\n }\n }\n }, 1000);\n };\n\n // Open newsletter modal after cookiebot has been loaded\n window.addEventListener('CookiebotOnLoad', function () {\n console.log('CookiebotOnLoad');\n var modal = $('#js-newsletter-modal');\n if (modal.length) {\n Newsletter.modal(modal);\n }\n });\n document.addEventListener(\"DOMContentLoaded\", function () {\n elClasses = Newsletter.getClasses();\n if (document.getElementById(\"geoModal\") == undefined || document.getElementById(\"geoModal\") == null) {\n Newsletter.init(\".js-newsletter\", \"#js-newsletter-modal\");\n } else {\n if (!document.getElementById(\"geoModal\").dataset.newsmodal) {\n Newsletter.init(\".js-newsletter\", \"#js-newsletter-modal\");\n } else {\n geo.init();\n }\n }\n });\n geo.init = function () {\n if (!document.getElementById(\"closeBtn\")) return;\n if (!document.getElementById(\"js-geo-modal-wrapper\")) return;\n if (!document.getElementById(\"geoModal\")) return;\n if (!document.getElementById(\"js-newsletter-modal\")) return;\n document.getElementById(\"closeBtn\").addEventListener(\"click\", function () {\n document.getElementById(\"geoModal\").style.display = \"none\";\n document.getElementById(\"js-geo-modal-wrapper\").style.display = \"none\";\n // document.getElementById('js-newsletter-modal').style.display = 'block';\n currGeoStats = true;\n Newsletter.init(\".js-newsletter\", \"#js-newsletter-modal\");\n });\n document.getElementById(\"js-geo-modal-wrapper\").addEventListener(\"click\", function () {\n document.getElementById(\"geoModal\").style.display = \"none\";\n document.getElementById(\"js-geo-modal-wrapper\").style.display = \"none\";\n // document.getElementById('js-newsletter-modal').style.display = 'block';\n currGeoStats = true;\n Newsletter.init(\".js-newsletter\", \"#js-newsletter-modal\");\n });\n document.getElementById(\"js-geo-modal\").addEventListener(\"click\", function () {\n document.getElementById(\"geoModal\").style.display = \"none\";\n document.getElementById(\"js-geo-modal-wrapper\").style.display = \"none\";\n // document.getElementById('js-newsletter-modal').style.display = 'block';\n Newsletter.init(\".js-newsletter\", \"#js-newsletter-modal\");\n });\n };\n})(jQuery);\nwindow.Newsletter = Newsletter;\nwindow.geo = geo;\nexport default Newsletter;\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/newsletter.js","var isOnScreen = require('../util/isOnScreen');\nvar PageScrollIndicator = {};\nPageScrollIndicator.init = function () {\n var jsContent = document.getElementById(\"js-content\");\n function scrollIndicator() {\n // we remove the offset of the #js-content so that we indicating from it.\n var windowScroll = (document.body.scrollTop || document.documentElement.scrollTop) - jsContent.offsetTop;\n // we are interested only by the height of the #js-content\n var documentheight = jsContent.offsetHeight;\n // remaining is the same\n var scrolledPercent = windowScroll / documentheight * 100;\n document.getElementById(\"scroll-indicator\").style.width = scrolledPercent + \"%\";\n }\n window.onscroll = function () {\n scrollIndicator();\n };\n};\n\n// PageScrollIndicator.init();\n\nexport var scrollToElement = function scrollToElement(targetEl) {\n var adjustment = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500;\n if (targetEl.length === 0) return;\n var navMessageHeight = $(\"#js-main-nav-msg\").height() || 0;\n var navMenuHeight = $(\"#js-nav-menu\").height() || 0;\n var navHeight = navMessageHeight + navMenuHeight + adjustment;\n if ($(\"body\").hasClass(\"is-admin-active\") && $(\"#wpadminbar\")) {\n navHeight = navHeight + $(\"#wpadminbar\").height();\n }\n $(\"html, body\").stop(true).animate({\n scrollTop: targetEl.offset().top - navHeight\n }, delay, 'linear');\n};\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/scroll.js","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n/* eslint-disable no-unused-vars */\n/* eslint-disable no-undef */\n\nimport { addVoucher, removeVoucher, toggleGiftWrap, changeCountry, changeShippingMethod, changePaymentMethod, initiateKlarna, updateKlarna, initiateIngrid, updateIngrid, updateAdyen, changeAddressInput, changeUseShippingInput, changeGiftWrapInput, purchase, toggleLogin, entryAccount, forceTermsAndCondition, getPaymentInfoItem, updateGlobalECountry } from \"../shop/connect\";\nimport { paymentMethodsMap } from \"../config\";\nimport { getCookie, setCookie } from \"../util/dom\";\nimport { strToBool } from \"../util/string\";\nimport abandonedCart from \"../components/abandoned-cart\";\nvar klarnaInitiated = false;\nvar checkout = {\n init: function init() {\n var _this = this;\n abandonedCart();\n this.updateSelectionError();\n $(\"#js-checkoutPageDelivery,#js-checkoutPageAddressForm\").on(\"click\", \".dropdown-item\", function (e) {\n e.preventDefault();\n var id = $(e.currentTarget).parent().data(\"name\");\n var value = $(e.currentTarget).data('value');\n var parent = $(e.currentTarget).parents('.js-state');\n var group = 'address';\n if (parent.length && parent.data(\"group\")) {\n group = parent.data(\"group\");\n }\n $('#checkout-adyen').hide();\n changeAddressInput(group, id, value);\n if (id === 'country') {\n var currentHeight = $(\"#js-shipwalletSnippet\").height();\n $(\"#js-shipwalletSnippet\").html('').height(currentHeight);\n changeCountry(value).then(function (changeCountryAction) {\n initiateIngrid();\n _this.updateSelectionError();\n if (changeCountryAction.selection.centraCheckoutScript) {\n var checkoutScriptContainer = document.getElementById('js-checkoutScript');\n if (checkoutScriptContainer) {\n checkoutScriptContainer.innerHTML = '';\n _this.appendCheckoutScript(checkoutScriptContainer, changeCountryAction.selection.centraCheckoutScript);\n }\n }\n var paymentMethods = changeCountryAction.paymentMethods || {};\n updateAdyen();\n updateGlobalECountry();\n if (!paymentMethods) return;\n var hasKlarnaCheckout = paymentMethods.filter(function (method) {\n if (Array.isArray(paymentMethodsMap.klarnaCheckout) && paymentMethodsMap.klarnaCheckout.indexOf(method.paymentMethod) !== -1) {\n return true;\n }\n return false;\n });\n if (hasKlarnaCheckout.length === 0) return;\n if (klarnaInitiated) {\n // window.location = window.location.href;\n updateKlarna();\n } else {\n initiateKlarna().then(function (initiateKlarnaAction) {\n if (initiateKlarnaAction.data && initiateKlarnaAction.data.formHtml) {\n klarnaInitiated = true;\n $(\"#js-klarnaCheckout\").html(initiateKlarnaAction.data.formHtml);\n }\n if (initiateKlarnaAction.error && initiateKlarnaAction.error === \"SELECTION_ERROR_STOCK\") {\n $(\"#js-checkoutErrors\").find(\".js-stockError\").show();\n setTimeout(function () {\n $(\"#js-checkoutErrors\").find(\".js-stockError\").fadeOut();\n }, 1e4);\n }\n });\n }\n });\n } else if (getPaymentInfoItem('useShippingAddress') === false && group === 'shippingAddress') {\n changeAddressInput('address', id, value);\n }\n });\n $(\"#js-checkoutPageDelivery\").on(\"click\", \".js-toggleLogin\", function (e) {\n e.preventDefault();\n toggleLogin();\n });\n $(\"#js-checkoutLoginForm\").on(\"submit\", function (e) {\n e.preventDefault();\n entryAccount(\"login\");\n });\n $(\"#js-shippingChoices\").on(\"change\", \"input\", function (e) {\n var $this = $(e.currentTarget);\n changeShippingMethod($this.val()).then(function () {\n updateKlarna();\n updateAdyen();\n _this.updateSelectionError();\n });\n });\n $(\"#js-paymentChoices\").on(\"change\", \"input\", function (e) {\n var $this = $(e.currentTarget);\n changePaymentMethod($this.val()).then(function () {\n $('#checkout-adyen').hide();\n $(\"#js-purchase\").parent().toggle(paymentMethodsMap.klarnaCheckout.indexOf($this.val()) === -1);\n _this.updateSelectionError();\n if (paymentMethodsMap.klarnaCheckout.indexOf($this.val()) !== -1 && !klarnaInitiated) {\n initiateKlarna().then(function (action) {\n if (action.data && action.data.formHtml) {\n klarnaInitiated = true;\n $(\"#js-klarnaCheckout\").html(action.data.formHtml);\n }\n if (action.error && action.error === \"SELECTION_ERROR_STOCK\") {\n $(\"#js-checkoutErrors\").find(\".js-stockError\").show();\n setTimeout(function () {\n $(\"#js-checkoutErrors\").find(\".js-stockError\").fadeOut();\n }, 1e4);\n }\n });\n }\n });\n });\n $(\"#js-checkoutPageMessage\").on(\"click\", \".js-toggleMessage\", function (e) {\n e.preventDefault();\n $(e.currentTarget).parent().toggleClass(\"is-toggled\");\n });\n $(\"#js-checkoutPageAddressForm,#js-checkoutPageShippingAddressForm,#js-checkoutPageAccountForm,#js-checkoutLoginForm,#js-checkoutRegisterForm\").on(\"keydown change blur\", \"input\", function (e) {\n var id = $(e.currentTarget).attr(\"name\");\n var value = $(e.currentTarget).val();\n var group = $(e.currentTarget).data(\"group\") ? $(e.currentTarget).data(\"group\") : \"address\";\n $(e.currentTarget).parent().removeClass(\"is-invalid\");\n if (e.type !== \"keydown\") {\n changeAddressInput(group, id, value);\n if (getPaymentInfoItem('useShippingAddress') === false && group === 'shippingAddress') {\n changeAddressInput('address', id, value);\n }\n }\n if (e.type === \"focusout\") {\n updateAdyen();\n }\n });\n $(\"#js-useShippingAddress\").on(\"change\", function (e) {\n $(\"#js-checkoutPageAddressForm\").toggle(!$(e.currentTarget).prop('checked'));\n changeUseShippingInput();\n $(\"#js-checkoutPageAddressForm input\").each(function (pos, el) {\n var value = $(el).val();\n var id = $(el).attr(\"name\");\n var group = $(el).data(\"group\");\n if (!value) changeAddressInput(group, id, value);\n });\n if (e.type === \"focusout\") {\n updateAdyen();\n }\n });\n $(\".js-checkboxInputs,#js-checkboxInputs-terms, #checkout-duties\").on(\"change\", \"input\", function (e) {\n var id = $(e.currentTarget).attr(\"name\");\n var group = id === \"newsletter\" ? \"address\" : false;\n var value = $(e.currentTarget).prop(\"checked\");\n if (id === \"createAccount\" && !value) {\n $('#js-checkoutRegisterForm').find('.is-invalid').removeClass('is-invalid');\n }\n changeAddressInput(group, id, value);\n if (id === \"newsletter\") {\n updateKlarna();\n updateAdyen();\n }\n });\n $(\"#js-checkoutPageMessage\").on(\"keydown blur\", \"textarea\", function (e) {\n var id = $(e.currentTarget).attr(\"name\");\n var value = $(e.currentTarget).val();\n changeAddressInput(false, id, value);\n if (e.type === \"focusout\") {\n updateKlarna();\n updateAdyen();\n }\n });\n $(\"#js-toggleGiftWrap\").on(\"click\", function (e) {\n e.preventDefault();\n toggleGiftWrap();\n });\n $(\"#js-giftWrap\").on(\"keydown blur\", \"textarea\", function (e) {\n var value = $(e.currentTarget).val();\n changeGiftWrapInput(value);\n if (e.type === \"focusout\") {\n updateKlarna();\n updateAdyen();\n }\n });\n $(\"#js-purchase\").on(\"click\", function (e) {\n e.preventDefault();\n _this.updateSelectionError();\n purchase(true);\n });\n $(\".js-change-country, .js-change-state\").on(\"click\", function (e) {\n e.preventDefault();\n var scrollToElement = $($(e.currentTarget).attr(\"href\"));\n if (scrollToElement.length === 0) return;\n $('html,body').stop(true).animate({\n scrollTop: scrollToElement.first().offset().top - window.innerHeight / 2\n }, 400);\n });\n $(window).on(\"store.firstRender\", function (e, renderedStore) {\n console.log('store.firstRender');\n if ($(\".js-checkoutPageVoucher\").find(\".js-addedVouchers\").children().length > 0) {\n $(\".js-checkoutPageVoucher\").addClass(\"is-toggled\");\n }\n forceTermsAndCondition(true);\n\n // Initiate ingrid\n initiateIngrid();\n if (renderedStore.paymentReturn.centraCheckoutScript) {\n var addCheckoutScriptContainer = document.createElement(\"div\");\n addCheckoutScriptContainer.id = 'js-checkoutScript';\n var container = _this.appendCheckoutScript(addCheckoutScriptContainer, renderedStore.paymentReturn.centraCheckoutScript);\n document.body.appendChild(container);\n }\n initiateKlarna().then(function (action) {\n if (action.data && action.data.formHtml) {\n klarnaInitiated = true;\n $(\"#js-klarnaCheckout\").html(action.data.formHtml);\n }\n if (action.error && action.error === \"SELECTION_ERROR_STOCK\") {\n $(\"#js-checkoutErrors\").find(\".js-stockError\").show();\n setTimeout(function () {\n $(\"#js-checkoutErrors\").find(\".js-stockError\").fadeOut();\n }, 1e4);\n }\n }).catch(function (err) {\n return console.log(\"KCO not initiated\");\n });\n\n // Catch Ingrid checkout updates\n document.addEventListener(\"centra_checkout_callback\", function (centraData) {\n console.log(\"centra_checkout_callback\");\n centraData.detail.action = \"process_checkout_update\";\n updateIngrid(centraData.detail);\n updateAdyen();\n // updateKlarna();\n });\n });\n },\n updateSelectionError: function updateSelectionError() {\n var renderSelectionFailed = getCookie('renderSelectionError');\n var selectionErrorEl = $('#js-selectionSelectionFailedError');\n if (renderSelectionFailed != null && strToBool(renderSelectionFailed)) {\n selectionErrorEl.show();\n setCookie('renderSelectionError', false);\n } else {\n selectionErrorEl.hide();\n }\n },\n appendCheckoutScript: function appendCheckoutScript(container, centraCheckoutScript) {\n var addCheckoutScript = document.createElement(\"script\");\n addCheckoutScript.text = centraCheckoutScript;\n container.appendChild(addCheckoutScript);\n return container;\n },\n scrolledScreen: function scrolledScreen() {\n var numberPositions = [];\n var whichNumber = 0;\n var headerPosition = $(\".checkoutPage-header\").innerHeight();\n var hasScrolledPast = false;\n var checkoutScroll = function checkoutScroll() {\n var scrollTop = $(window).scrollTop();\n var windowHeight = window.innerHeight;\n var differences = numberPositions.map(function (position) {\n return Math.abs(position - (scrollTop + windowHeight / 2));\n });\n var closest = Math.min.apply(Math, _toConsumableArray(differences));\n if (differences.indexOf(closest) !== whichNumber) {\n whichNumber = differences.indexOf(closest);\n $('.js-section').removeClass('is-active');\n $('.js-section:visible').eq(whichNumber).addClass('is-active');\n }\n if (!hasScrolledPast && scrollTop > headerPosition) {\n // Show sticky bar\n $(\"html\").addClass(\"is-passedCheckoutHeader\");\n hasScrolledPast = true;\n } else if (hasScrolledPast && scrollTop <= headerPosition) {\n $(\"html\").removeClass(\"is-passedCheckoutHeader\");\n hasScrolledPast = false;\n }\n };\n var updatePositions = function updatePositions() {\n numberPositions = [];\n $('.js-number:visible').each(function (i, el) {\n numberPositions[i] = $(el).offset().top;\n });\n headerPosition = $(\".checkoutPage-header\").innerHeight();\n checkoutScroll();\n };\n $(window).on(\"store.updated\", updatePositions);\n $(window).on(\"scroll\", function () {\n window.requestAnimationFrame(function () {\n checkoutScroll();\n });\n }).on(\"resize\", updatePositions);\n },\n finalize: function finalize() {}\n};\nexport default checkout;\n\n\n// WEBPACK FOOTER //\n// ./scripts/routes/checkout.js","var VideoGrid = {};\nvar videoEmbed = $(document).find('.js-video-embed');\nVideoGrid.OnReady = function (event) {};\nVideoGrid.OnError = function (event) {};\nVideoGrid.OnStateChange = function (event) {\n var targetIframe = event.target.getIframe();\n var videoWrapper = targetIframe.closest('.video-grid-image');\n if (event.data == 0) {\n // Video ends\n videoWrapper.classList.add('yt-player-end');\n } else if (event.data == 2) {\n // Video pause\n videoWrapper.classList.add('yt-player-pause');\n } else if (event.data == 1) {\n // Video playing\n videoWrapper.classList.add('yt-player-play');\n } else {\n videoWrapper.classList.remove('yt-player-end', 'yt-player-pause', 'yt-player-play');\n }\n};\nVideoGrid.YTplayer = function () {\n var videoEmbed = $(document).find('.js-video-embed');\n if (videoEmbed.length === 0) return;\n $.each(videoEmbed, function () {\n var $videoEmbed = $(this);\n var $videoEmbedID = $videoEmbed.attr('data-video-id');\n var $videoEmbedPlayerID = $videoEmbed.attr('data-player-id');\n $videoEmbed = new window.YT.Player($videoEmbedPlayerID, {\n videoId: $videoEmbedID,\n playerVars: {\n 'rel': 0,\n 'loop': 1,\n 'showinfo': 0,\n 'controls': 0,\n 'enablejsapi': 1,\n 'fs': 0,\n 'mute': 1,\n 'modestbranding': 1,\n 'end': 5,\n 'autohide': 0,\n 'cc_load_policy': 0,\n 'disablekb': 1,\n 'iv_load_policy': 3,\n 'playsinline': 0,\n 'autoplay': 0\n },\n events: {\n 'onReady': VideoGrid.OnReady,\n 'onError': VideoGrid.OnError,\n 'onStateChange': VideoGrid.OnStateChange\n }\n });\n $('#' + $videoEmbedPlayerID).on(\"mouseover\", function () {\n if (matchMedia('screen and (min-width: 992px)').matches) {\n if ($videoEmbed && $videoEmbed.hasOwnProperty('getPlayerState')) {\n $videoEmbed.seekTo(0);\n $videoEmbed.playVideo();\n }\n }\n });\n $('#' + $videoEmbedPlayerID).on(\"mouseout\", function () {\n if (matchMedia('screen and (min-width: 992px)').matches) {\n if ($videoEmbed && $videoEmbed.hasOwnProperty('getPlayerState')) {\n $videoEmbed.pauseVideo();\n }\n }\n });\n });\n};\nVideoGrid.init = function () {\n var videoEmbed = $(document).find('.js-video-embed');\n if (videoEmbed.length === 0) return;\n if (typeof YT == 'undefined' || typeof YT.Player == 'undefined') {\n var tag = document.createElement('script');\n tag.src = \"https://www.youtube.com/iframe_api\";\n var firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n }\n window.onYouTubePlayerAPIReady = function () {\n VideoGrid.YTplayer();\n };\n};\nVideoGrid.dynamicInit = function () {\n VideoGrid.YTplayer();\n};\ndocument.addEventListener('DOMContentLoaded', function () {\n VideoGrid.init();\n});\nwindow.VideoGrid = VideoGrid;\nexport default VideoGrid;\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/interstellar/video-grid.js","/**\r\n * Add the ff. class are setup in the section to make the video worked\r\n *\r\n * 1. Video tag should have .js-video-tag\r\n *\r\n * 2. Add data-target-cont to set the parent class. (Ideally, this should\r\n * be added in the element that is used to trigger the click event to play the video\r\n * )\r\n *\r\n * 3. Add .js-hide-on-play to the elements you want to hide when the\r\n * video is played\r\n *\r\n * 4. The element you want to set as trigger to play/pause the video should have\r\n * .js-playvideo. This is mostly added in the play button.\r\n *\r\n *\r\n */\nimport { stokpressViewPort } from \"../util/helper\";\nvar config = {\n selector: {\n hideOnPlay: \".js-hide-on-play\",\n removeOnPlay: \".js-remove-on-play\"\n },\n classes: {\n hide: \"d-none\",\n playButton: \"js-playvideo\"\n }\n};\nvar isAutoplaySupported = function isAutoplaySupported(callback) {\n if (!sessionStorage.autoPlaySupported) {\n var video = document.createElement(\"video\");\n video.autoplay = true;\n video.muted = true;\n video.setAttribute(\"webkit-playsinline\", \"webkit-playsinline\");\n video.setAttribute(\"playsinline\", \"playsinline\");\n video.src = \"data:video/mp4;base64,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\";\n video.load();\n video.style.display = \"none\";\n video.playing = false;\n video.play().catch(function (err) {\n return console.log(err);\n });\n video.onplay = function () {\n this.playing = true;\n };\n\n // Video has loaded, check autoplay support\n video.oncanplay = function () {\n if (video.playing) {\n sessionStorage.autoPlaySupported = \"true\";\n callback(true);\n } else {\n sessionStorage.autoPlaySupported = \"false\";\n callback(false);\n }\n };\n } else {\n if (sessionStorage.autoPlaySupported == \"true\") {\n callback(true);\n } else {\n callback(false);\n }\n }\n};\nvar removeElementsOnPlay = function removeElementsOnPlay(wrapperEl) {\n if (!wrapperEl) {\n return;\n }\n removeElement(wrapperEl);\n hideElement(wrapperEl, \"hide\");\n};\nvar removeElement = function removeElement(wrapperEl) {\n if (!wrapperEl) {\n return;\n }\n var elToHide = wrapperEl.querySelectorAll(config.selector.removeOnPlay);\n if (elToHide.length === 0) {\n return;\n }\n Array.prototype.forEach.call(elToHide, function (element) {\n element.parentNode.removeChild(element);\n });\n};\nvar hideElement = function hideElement(wrapperEl, action) {\n if (!wrapperEl) {\n return;\n }\n var items = wrapperEl.querySelectorAll(config.selector.hideOnPlay);\n if (items.length === 0) {\n return;\n }\n Array.prototype.forEach.call(items, function (item) {\n if (action === \"hide\") {\n item.classList.add(config.classes.hide);\n } else {\n item.classList.remove(config.classes.hide);\n }\n });\n};\n\n// Get video setting base on device type\nvar getVideoData = function getVideoData(video) {\n if (video.dataset.desktop == undefined) {\n return {\n src: video.getAttribute(\"data-src\") || video.getAttribute(\"src\"),\n autoplay: video.getAttribute(\"autoplay\") === \"autoplay\" ? true : false\n };\n }\n\n // Set Desktop data as default\n var deviceData = video.dataset.desktop;\n\n // Get mobile data if has value and viewport is less tha 767\n if (video.dataset.mobile && stokpressViewPort.documentWidth().width < 767) {\n deviceData = video.dataset.mobile;\n }\n return JSON.parse(deviceData);\n};\nvar getElParent = function getElParent(el) {\n if (!el) {\n return;\n }\n var wrapperClass = el.data(\"target-cont\");\n var parent = el.parent().parent();\n if (typeof wrapperClass !== \"undefined\") {\n var tempParent = el.parents(\".\".concat(wrapperClass));\n\n // Only override parent if selector exist\n if (tempParent.length) {\n parent = tempParent;\n }\n }\n return parent.length ? parent[0] : null;\n};\nvar videoOnClick = function videoOnClick(playVideo) {\n if (playVideo.length === 0) return;\n playVideo.off(\"click\").on(\"click\", function (e) {\n e.preventDefault();\n var targetParent = getElParent($(e.currentTarget));\n var targetVideo = targetParent.querySelector(\"video\");\n if (targetVideo.paused == false) {\n targetVideo.pause();\n removeElementsOnPlay(targetParent);\n } else {\n targetVideo.setAttribute(\"data-played\", true);\n updateVideo(targetParent, targetVideo);\n targetVideo.play().catch(function (err) {\n return console.log(err);\n });\n removeElementsOnPlay(targetParent);\n }\n targetVideo.style.zIndex = 1;\n });\n};\nvar videoLazyLoad = function videoLazyLoad(videoParent) {\n var options = {\n root: null,\n rootMargin: \"0px\",\n threshold: 0\n };\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (entry.isIntersecting) {\n var video = entry.target.querySelector(\"video\");\n var data = getVideoData(video);\n if (video.dataset.played === \"true\") {\n return;\n }\n\n /**\r\n * End process if video not autoplay and not yet played \r\n * this is to avoid loading the video if not yet needed \r\n **/\n if (data.autoplay === false && video.dataset.played !== \"true\") {\n return;\n }\n if (data.autoplay === true) {\n processAutoplay(video, videoParent);\n } else {\n video.autoplay = false;\n video.muted = false;\n }\n video.setAttribute(\"src\", video.dataset.src);\n video.load();\n observer.unobserve(video);\n }\n });\n }, options);\n observer.observe(videoParent);\n};\nvar processAutoplay = function processAutoplay(video, videoParent) {\n if (!video) return;\n isAutoplaySupported(function (canAutoplay) {\n if (canAutoplay === false) {\n return;\n }\n video.setAttribute(\"data-played\", true);\n video.style.zIndex = 1;\n video.autoplay = true;\n video.muted = true;\n removeElementsOnPlay(videoParent);\n });\n};\nvar updateVideo = function updateVideo(parent, video) {\n if (!parent) return;\n var data = getVideoData(video);\n var isLazyLoad = video.dataset.lazyload === \"true\";\n if (data.src != video.src) {\n if (video.dataset.played === \"true\") {\n video.setAttribute(\"src\", data.src);\n video.load();\n video.play().catch(function (err) {\n return console.log(err);\n });\n } else if (isLazyLoad) {\n video.setAttribute(\"data-src\", data.src);\n }\n }\n};\nvar flexibleVideo = function flexibleVideo() {\n var onLoad = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var jsVideo = $(\"video.js-video-tag\");\n if (jsVideo.length === 0) return;\n jsVideo.each(function () {\n var _this = $(this);\n var videoParent = getElParent(_this);\n var currentVideo = videoParent.querySelector(\"video\");\n var isLazyLoad = currentVideo.dataset.lazyload === \"true\";\n\n // Update video src based on window\n if (currentVideo) {\n updateVideo(videoParent, currentVideo);\n }\n\n // Do this onload only\n if (onLoad === true) {\n videoOnClick($(videoParent).find(\".\" + config.classes.playButton));\n if (isLazyLoad) {\n videoLazyLoad(videoParent);\n } else if (currentVideo.autoplay === true) {\n processAutoplay(currentVideo, videoParent);\n }\n }\n });\n};\n$(window).on(\"resize\", function () {\n flexibleVideo(false);\n});\nexport default flexibleVideo;\n\n\n// WEBPACK FOOTER //\n// ./scripts/components/flexible-video.js","$.fn.autoPadding = function ($settings) {\n var $config = {\n source: null\n },\n $target = $(this);\n var navMenu = $('#js-nav-menu');\n var windowWidth = $(window).width();\n if ($settings) jQuery.extend($config, $settings);\n $(this).css({\n paddingTop: $config.source.innerHeight() + 'px'\n });\n $(window).resize(function () {\n if ($(window).width() != windowWidth) {\n windowWidth = $(window).width();\n if (!navMenu.hasClass('is-fixed-top')) {\n $target.css({\n paddingTop: $config.source.innerHeight() + 'px'\n });\n }\n }\n });\n};\n\n\n// WEBPACK FOOTER //\n// ./scripts/util/autoPadding.js","/*!\n * \n * typed.js - A JavaScript Typing Animation Library\n * Author: Matt Boldt \n * Version: v2.0.12\n * Url: https://github.com/mattboldt/typed.js\n * License(s): MIT\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Typed\"] = factory();\n\telse\n\t\troot[\"Typed\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tvar _initializerJs = __webpack_require__(1);\n\t\n\tvar _htmlParserJs = __webpack_require__(3);\n\t\n\t/**\n\t * Welcome to Typed.js!\n\t * @param {string} elementId HTML element ID _OR_ HTML element\n\t * @param {object} options options object\n\t * @returns {object} a new Typed object\n\t */\n\t\n\tvar Typed = (function () {\n\t function Typed(elementId, options) {\n\t _classCallCheck(this, Typed);\n\t\n\t // Initialize it up\n\t _initializerJs.initializer.load(this, options, elementId);\n\t // All systems go!\n\t this.begin();\n\t }\n\t\n\t /**\n\t * Toggle start() and stop() of the Typed instance\n\t * @public\n\t */\n\t\n\t _createClass(Typed, [{\n\t key: 'toggle',\n\t value: function toggle() {\n\t this.pause.status ? this.start() : this.stop();\n\t }\n\t\n\t /**\n\t * Stop typing / backspacing and enable cursor blinking\n\t * @public\n\t */\n\t }, {\n\t key: 'stop',\n\t value: function stop() {\n\t if (this.typingComplete) return;\n\t if (this.pause.status) return;\n\t this.toggleBlinking(true);\n\t this.pause.status = true;\n\t this.options.onStop(this.arrayPos, this);\n\t }\n\t\n\t /**\n\t * Start typing / backspacing after being stopped\n\t * @public\n\t */\n\t }, {\n\t key: 'start',\n\t value: function start() {\n\t if (this.typingComplete) return;\n\t if (!this.pause.status) return;\n\t this.pause.status = false;\n\t if (this.pause.typewrite) {\n\t this.typewrite(this.pause.curString, this.pause.curStrPos);\n\t } else {\n\t this.backspace(this.pause.curString, this.pause.curStrPos);\n\t }\n\t this.options.onStart(this.arrayPos, this);\n\t }\n\t\n\t /**\n\t * Destroy this instance of Typed\n\t * @public\n\t */\n\t }, {\n\t key: 'destroy',\n\t value: function destroy() {\n\t this.reset(false);\n\t this.options.onDestroy(this);\n\t }\n\t\n\t /**\n\t * Reset Typed and optionally restarts\n\t * @param {boolean} restart\n\t * @public\n\t */\n\t }, {\n\t key: 'reset',\n\t value: function reset() {\n\t var restart = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];\n\t\n\t clearInterval(this.timeout);\n\t this.replaceText('');\n\t if (this.cursor && this.cursor.parentNode) {\n\t this.cursor.parentNode.removeChild(this.cursor);\n\t this.cursor = null;\n\t }\n\t this.strPos = 0;\n\t this.arrayPos = 0;\n\t this.curLoop = 0;\n\t if (restart) {\n\t this.insertCursor();\n\t this.options.onReset(this);\n\t this.begin();\n\t }\n\t }\n\t\n\t /**\n\t * Begins the typing animation\n\t * @private\n\t */\n\t }, {\n\t key: 'begin',\n\t value: function begin() {\n\t var _this = this;\n\t\n\t this.options.onBegin(this);\n\t this.typingComplete = false;\n\t this.shuffleStringsIfNeeded(this);\n\t this.insertCursor();\n\t if (this.bindInputFocusEvents) this.bindFocusEvents();\n\t this.timeout = setTimeout(function () {\n\t // Check if there is some text in the element, if yes start by backspacing the default message\n\t if (!_this.currentElContent || _this.currentElContent.length === 0) {\n\t _this.typewrite(_this.strings[_this.sequence[_this.arrayPos]], _this.strPos);\n\t } else {\n\t // Start typing\n\t _this.backspace(_this.currentElContent, _this.currentElContent.length);\n\t }\n\t }, this.startDelay);\n\t }\n\t\n\t /**\n\t * Called for each character typed\n\t * @param {string} curString the current string in the strings array\n\t * @param {number} curStrPos the current position in the curString\n\t * @private\n\t */\n\t }, {\n\t key: 'typewrite',\n\t value: function typewrite(curString, curStrPos) {\n\t var _this2 = this;\n\t\n\t if (this.fadeOut && this.el.classList.contains(this.fadeOutClass)) {\n\t this.el.classList.remove(this.fadeOutClass);\n\t if (this.cursor) this.cursor.classList.remove(this.fadeOutClass);\n\t }\n\t\n\t var humanize = this.humanizer(this.typeSpeed);\n\t var numChars = 1;\n\t\n\t if (this.pause.status === true) {\n\t this.setPauseStatus(curString, curStrPos, true);\n\t return;\n\t }\n\t\n\t // contain typing function in a timeout humanize'd delay\n\t this.timeout = setTimeout(function () {\n\t // skip over any HTML chars\n\t curStrPos = _htmlParserJs.htmlParser.typeHtmlChars(curString, curStrPos, _this2);\n\t\n\t var pauseTime = 0;\n\t var substr = curString.substr(curStrPos);\n\t // check for an escape character before a pause value\n\t // format: \\^\\d+ .. eg: ^1000 .. should be able to print the ^ too using ^^\n\t // single ^ are removed from string\n\t if (substr.charAt(0) === '^') {\n\t if (/^\\^\\d+/.test(substr)) {\n\t var skip = 1; // skip at least 1\n\t substr = /\\d+/.exec(substr)[0];\n\t skip += substr.length;\n\t pauseTime = parseInt(substr);\n\t _this2.temporaryPause = true;\n\t _this2.options.onTypingPaused(_this2.arrayPos, _this2);\n\t // strip out the escape character and pause value so they're not printed\n\t curString = curString.substring(0, curStrPos) + curString.substring(curStrPos + skip);\n\t _this2.toggleBlinking(true);\n\t }\n\t }\n\t\n\t // check for skip characters formatted as\n\t // \"this is a `string to print NOW` ...\"\n\t if (substr.charAt(0) === '`') {\n\t while (curString.substr(curStrPos + numChars).charAt(0) !== '`') {\n\t numChars++;\n\t if (curStrPos + numChars > curString.length) break;\n\t }\n\t // strip out the escape characters and append all the string in between\n\t var stringBeforeSkip = curString.substring(0, curStrPos);\n\t var stringSkipped = curString.substring(stringBeforeSkip.length + 1, curStrPos + numChars);\n\t var stringAfterSkip = curString.substring(curStrPos + numChars + 1);\n\t curString = stringBeforeSkip + stringSkipped + stringAfterSkip;\n\t numChars--;\n\t }\n\t\n\t // timeout for any pause after a character\n\t _this2.timeout = setTimeout(function () {\n\t // Accounts for blinking while paused\n\t _this2.toggleBlinking(false);\n\t\n\t // We're done with this sentence!\n\t if (curStrPos >= curString.length) {\n\t _this2.doneTyping(curString, curStrPos);\n\t } else {\n\t _this2.keepTyping(curString, curStrPos, numChars);\n\t }\n\t // end of character pause\n\t if (_this2.temporaryPause) {\n\t _this2.temporaryPause = false;\n\t _this2.options.onTypingResumed(_this2.arrayPos, _this2);\n\t }\n\t }, pauseTime);\n\t\n\t // humanized value for typing\n\t }, humanize);\n\t }\n\t\n\t /**\n\t * Continue to the next string & begin typing\n\t * @param {string} curString the current string in the strings array\n\t * @param {number} curStrPos the current position in the curString\n\t * @private\n\t */\n\t }, {\n\t key: 'keepTyping',\n\t value: function keepTyping(curString, curStrPos, numChars) {\n\t // call before functions if applicable\n\t if (curStrPos === 0) {\n\t this.toggleBlinking(false);\n\t this.options.preStringTyped(this.arrayPos, this);\n\t }\n\t // start typing each new char into existing string\n\t // curString: arg, this.el.html: original text inside element\n\t curStrPos += numChars;\n\t var nextString = curString.substr(0, curStrPos);\n\t this.replaceText(nextString);\n\t // loop the function\n\t this.typewrite(curString, curStrPos);\n\t }\n\t\n\t /**\n\t * We're done typing the current string\n\t * @param {string} curString the current string in the strings array\n\t * @param {number} curStrPos the current position in the curString\n\t * @private\n\t */\n\t }, {\n\t key: 'doneTyping',\n\t value: function doneTyping(curString, curStrPos) {\n\t var _this3 = this;\n\t\n\t // fires callback function\n\t this.options.onStringTyped(this.arrayPos, this);\n\t this.toggleBlinking(true);\n\t // is this the final string\n\t if (this.arrayPos === this.strings.length - 1) {\n\t // callback that occurs on the last typed string\n\t this.complete();\n\t // quit if we wont loop back\n\t if (this.loop === false || this.curLoop === this.loopCount) {\n\t return;\n\t }\n\t }\n\t this.timeout = setTimeout(function () {\n\t _this3.backspace(curString, curStrPos);\n\t }, this.backDelay);\n\t }\n\t\n\t /**\n\t * Backspaces 1 character at a time\n\t * @param {string} curString the current string in the strings array\n\t * @param {number} curStrPos the current position in the curString\n\t * @private\n\t */\n\t }, {\n\t key: 'backspace',\n\t value: function backspace(curString, curStrPos) {\n\t var _this4 = this;\n\t\n\t if (this.pause.status === true) {\n\t this.setPauseStatus(curString, curStrPos, false);\n\t return;\n\t }\n\t if (this.fadeOut) return this.initFadeOut();\n\t\n\t this.toggleBlinking(false);\n\t var humanize = this.humanizer(this.backSpeed);\n\t\n\t this.timeout = setTimeout(function () {\n\t curStrPos = _htmlParserJs.htmlParser.backSpaceHtmlChars(curString, curStrPos, _this4);\n\t // replace text with base text + typed characters\n\t var curStringAtPosition = curString.substr(0, curStrPos);\n\t _this4.replaceText(curStringAtPosition);\n\t\n\t // if smartBack is enabled\n\t if (_this4.smartBackspace) {\n\t // the remaining part of the current string is equal of the same part of the new string\n\t var nextString = _this4.strings[_this4.arrayPos + 1];\n\t if (nextString && curStringAtPosition === nextString.substr(0, curStrPos)) {\n\t _this4.stopNum = curStrPos;\n\t } else {\n\t _this4.stopNum = 0;\n\t }\n\t }\n\t\n\t // if the number (id of character in current string) is\n\t // less than the stop number, keep going\n\t if (curStrPos > _this4.stopNum) {\n\t // subtract characters one by one\n\t curStrPos--;\n\t // loop the function\n\t _this4.backspace(curString, curStrPos);\n\t } else if (curStrPos <= _this4.stopNum) {\n\t // if the stop number has been reached, increase\n\t // array position to next string\n\t _this4.arrayPos++;\n\t // When looping, begin at the beginning after backspace complete\n\t if (_this4.arrayPos === _this4.strings.length) {\n\t _this4.arrayPos = 0;\n\t _this4.options.onLastStringBackspaced();\n\t _this4.shuffleStringsIfNeeded();\n\t _this4.begin();\n\t } else {\n\t _this4.typewrite(_this4.strings[_this4.sequence[_this4.arrayPos]], curStrPos);\n\t }\n\t }\n\t // humanized value for typing\n\t }, humanize);\n\t }\n\t\n\t /**\n\t * Full animation is complete\n\t * @private\n\t */\n\t }, {\n\t key: 'complete',\n\t value: function complete() {\n\t this.options.onComplete(this);\n\t if (this.loop) {\n\t this.curLoop++;\n\t } else {\n\t this.typingComplete = true;\n\t }\n\t }\n\t\n\t /**\n\t * Has the typing been stopped\n\t * @param {string} curString the current string in the strings array\n\t * @param {number} curStrPos the current position in the curString\n\t * @param {boolean} isTyping\n\t * @private\n\t */\n\t }, {\n\t key: 'setPauseStatus',\n\t value: function setPauseStatus(curString, curStrPos, isTyping) {\n\t this.pause.typewrite = isTyping;\n\t this.pause.curString = curString;\n\t this.pause.curStrPos = curStrPos;\n\t }\n\t\n\t /**\n\t * Toggle the blinking cursor\n\t * @param {boolean} isBlinking\n\t * @private\n\t */\n\t }, {\n\t key: 'toggleBlinking',\n\t value: function toggleBlinking(isBlinking) {\n\t if (!this.cursor) return;\n\t // if in paused state, don't toggle blinking a 2nd time\n\t if (this.pause.status) return;\n\t if (this.cursorBlinking === isBlinking) return;\n\t this.cursorBlinking = isBlinking;\n\t if (isBlinking) {\n\t this.cursor.classList.add('typed-cursor--blink');\n\t } else {\n\t this.cursor.classList.remove('typed-cursor--blink');\n\t }\n\t }\n\t\n\t /**\n\t * Speed in MS to type\n\t * @param {number} speed\n\t * @private\n\t */\n\t }, {\n\t key: 'humanizer',\n\t value: function humanizer(speed) {\n\t return Math.round(Math.random() * speed / 2) + speed;\n\t }\n\t\n\t /**\n\t * Shuffle the sequence of the strings array\n\t * @private\n\t */\n\t }, {\n\t key: 'shuffleStringsIfNeeded',\n\t value: function shuffleStringsIfNeeded() {\n\t if (!this.shuffle) return;\n\t this.sequence = this.sequence.sort(function () {\n\t return Math.random() - 0.5;\n\t });\n\t }\n\t\n\t /**\n\t * Adds a CSS class to fade out current string\n\t * @private\n\t */\n\t }, {\n\t key: 'initFadeOut',\n\t value: function initFadeOut() {\n\t var _this5 = this;\n\t\n\t this.el.className += ' ' + this.fadeOutClass;\n\t if (this.cursor) this.cursor.className += ' ' + this.fadeOutClass;\n\t return setTimeout(function () {\n\t _this5.arrayPos++;\n\t _this5.replaceText('');\n\t\n\t // Resets current string if end of loop reached\n\t if (_this5.strings.length > _this5.arrayPos) {\n\t _this5.typewrite(_this5.strings[_this5.sequence[_this5.arrayPos]], 0);\n\t } else {\n\t _this5.typewrite(_this5.strings[0], 0);\n\t _this5.arrayPos = 0;\n\t }\n\t }, this.fadeOutDelay);\n\t }\n\t\n\t /**\n\t * Replaces current text in the HTML element\n\t * depending on element type\n\t * @param {string} str\n\t * @private\n\t */\n\t }, {\n\t key: 'replaceText',\n\t value: function replaceText(str) {\n\t if (this.attr) {\n\t this.el.setAttribute(this.attr, str);\n\t } else {\n\t if (this.isInput) {\n\t this.el.value = str;\n\t } else if (this.contentType === 'html') {\n\t this.el.innerHTML = str;\n\t } else {\n\t this.el.textContent = str;\n\t }\n\t }\n\t }\n\t\n\t /**\n\t * If using input elements, bind focus in order to\n\t * start and stop the animation\n\t * @private\n\t */\n\t }, {\n\t key: 'bindFocusEvents',\n\t value: function bindFocusEvents() {\n\t var _this6 = this;\n\t\n\t if (!this.isInput) return;\n\t this.el.addEventListener('focus', function (e) {\n\t _this6.stop();\n\t });\n\t this.el.addEventListener('blur', function (e) {\n\t if (_this6.el.value && _this6.el.value.length !== 0) {\n\t return;\n\t }\n\t _this6.start();\n\t });\n\t }\n\t\n\t /**\n\t * On init, insert the cursor element\n\t * @private\n\t */\n\t }, {\n\t key: 'insertCursor',\n\t value: function insertCursor() {\n\t if (!this.showCursor) return;\n\t if (this.cursor) return;\n\t this.cursor = document.createElement('span');\n\t this.cursor.className = 'typed-cursor';\n\t this.cursor.setAttribute('aria-hidden', true);\n\t this.cursor.innerHTML = this.cursorChar;\n\t this.el.parentNode && this.el.parentNode.insertBefore(this.cursor, this.el.nextSibling);\n\t }\n\t }]);\n\t\n\t return Typed;\n\t})();\n\t\n\texports['default'] = Typed;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tvar _defaultsJs = __webpack_require__(2);\n\t\n\tvar _defaultsJs2 = _interopRequireDefault(_defaultsJs);\n\t\n\t/**\n\t * Initialize the Typed object\n\t */\n\t\n\tvar Initializer = (function () {\n\t function Initializer() {\n\t _classCallCheck(this, Initializer);\n\t }\n\t\n\t _createClass(Initializer, [{\n\t key: 'load',\n\t\n\t /**\n\t * Load up defaults & options on the Typed instance\n\t * @param {Typed} self instance of Typed\n\t * @param {object} options options object\n\t * @param {string} elementId HTML element ID _OR_ instance of HTML element\n\t * @private\n\t */\n\t\n\t value: function load(self, options, elementId) {\n\t // chosen element to manipulate text\n\t if (typeof elementId === 'string') {\n\t self.el = document.querySelector(elementId);\n\t } else {\n\t self.el = elementId;\n\t }\n\t\n\t self.options = _extends({}, _defaultsJs2['default'], options);\n\t\n\t // attribute to type into\n\t self.isInput = self.el.tagName.toLowerCase() === 'input';\n\t self.attr = self.options.attr;\n\t self.bindInputFocusEvents = self.options.bindInputFocusEvents;\n\t\n\t // show cursor\n\t self.showCursor = self.isInput ? false : self.options.showCursor;\n\t\n\t // custom cursor\n\t self.cursorChar = self.options.cursorChar;\n\t\n\t // Is the cursor blinking\n\t self.cursorBlinking = true;\n\t\n\t // text content of element\n\t self.elContent = self.attr ? self.el.getAttribute(self.attr) : self.el.textContent;\n\t\n\t // html or plain text\n\t self.contentType = self.options.contentType;\n\t\n\t // typing speed\n\t self.typeSpeed = self.options.typeSpeed;\n\t\n\t // add a delay before typing starts\n\t self.startDelay = self.options.startDelay;\n\t\n\t // backspacing speed\n\t self.backSpeed = self.options.backSpeed;\n\t\n\t // only backspace what doesn't match the previous string\n\t self.smartBackspace = self.options.smartBackspace;\n\t\n\t // amount of time to wait before backspacing\n\t self.backDelay = self.options.backDelay;\n\t\n\t // Fade out instead of backspace\n\t self.fadeOut = self.options.fadeOut;\n\t self.fadeOutClass = self.options.fadeOutClass;\n\t self.fadeOutDelay = self.options.fadeOutDelay;\n\t\n\t // variable to check whether typing is currently paused\n\t self.isPaused = false;\n\t\n\t // input strings of text\n\t self.strings = self.options.strings.map(function (s) {\n\t return s.trim();\n\t });\n\t\n\t // div containing strings\n\t if (typeof self.options.stringsElement === 'string') {\n\t self.stringsElement = document.querySelector(self.options.stringsElement);\n\t } else {\n\t self.stringsElement = self.options.stringsElement;\n\t }\n\t\n\t if (self.stringsElement) {\n\t self.strings = [];\n\t self.stringsElement.style.display = 'none';\n\t var strings = Array.prototype.slice.apply(self.stringsElement.children);\n\t var stringsLength = strings.length;\n\t\n\t if (stringsLength) {\n\t for (var i = 0; i < stringsLength; i += 1) {\n\t var stringEl = strings[i];\n\t self.strings.push(stringEl.innerHTML.trim());\n\t }\n\t }\n\t }\n\t\n\t // character number position of current string\n\t self.strPos = 0;\n\t\n\t // current array position\n\t self.arrayPos = 0;\n\t\n\t // index of string to stop backspacing on\n\t self.stopNum = 0;\n\t\n\t // Looping logic\n\t self.loop = self.options.loop;\n\t self.loopCount = self.options.loopCount;\n\t self.curLoop = 0;\n\t\n\t // shuffle the strings\n\t self.shuffle = self.options.shuffle;\n\t // the order of strings\n\t self.sequence = [];\n\t\n\t self.pause = {\n\t status: false,\n\t typewrite: true,\n\t curString: '',\n\t curStrPos: 0\n\t };\n\t\n\t // When the typing is complete (when not looped)\n\t self.typingComplete = false;\n\t\n\t // Set the order in which the strings are typed\n\t for (var i in self.strings) {\n\t self.sequence[i] = i;\n\t }\n\t\n\t // If there is some text in the element\n\t self.currentElContent = this.getCurrentElContent(self);\n\t\n\t self.autoInsertCss = self.options.autoInsertCss;\n\t\n\t this.appendAnimationCss(self);\n\t }\n\t }, {\n\t key: 'getCurrentElContent',\n\t value: function getCurrentElContent(self) {\n\t var elContent = '';\n\t if (self.attr) {\n\t elContent = self.el.getAttribute(self.attr);\n\t } else if (self.isInput) {\n\t elContent = self.el.value;\n\t } else if (self.contentType === 'html') {\n\t elContent = self.el.innerHTML;\n\t } else {\n\t elContent = self.el.textContent;\n\t }\n\t return elContent;\n\t }\n\t }, {\n\t key: 'appendAnimationCss',\n\t value: function appendAnimationCss(self) {\n\t var cssDataName = 'data-typed-js-css';\n\t if (!self.autoInsertCss) {\n\t return;\n\t }\n\t if (!self.showCursor && !self.fadeOut) {\n\t return;\n\t }\n\t if (document.querySelector('[' + cssDataName + ']')) {\n\t return;\n\t }\n\t\n\t var css = document.createElement('style');\n\t css.type = 'text/css';\n\t css.setAttribute(cssDataName, true);\n\t\n\t var innerCss = '';\n\t if (self.showCursor) {\n\t innerCss += '\\n .typed-cursor{\\n opacity: 1;\\n }\\n .typed-cursor.typed-cursor--blink{\\n animation: typedjsBlink 0.7s infinite;\\n -webkit-animation: typedjsBlink 0.7s infinite;\\n animation: typedjsBlink 0.7s infinite;\\n }\\n @keyframes typedjsBlink{\\n 50% { opacity: 0.0; }\\n }\\n @-webkit-keyframes typedjsBlink{\\n 0% { opacity: 1; }\\n 50% { opacity: 0.0; }\\n 100% { opacity: 1; }\\n }\\n ';\n\t }\n\t if (self.fadeOut) {\n\t innerCss += '\\n .typed-fade-out{\\n opacity: 0;\\n transition: opacity .25s;\\n }\\n .typed-cursor.typed-cursor--blink.typed-fade-out{\\n -webkit-animation: 0;\\n animation: 0;\\n }\\n ';\n\t }\n\t if (css.length === 0) {\n\t return;\n\t }\n\t css.innerHTML = innerCss;\n\t document.body.appendChild(css);\n\t }\n\t }]);\n\t\n\t return Initializer;\n\t})();\n\t\n\texports['default'] = Initializer;\n\tvar initializer = new Initializer();\n\texports.initializer = initializer;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Defaults & options\n\t * @returns {object} Typed defaults & options\n\t * @public\n\t */\n\t\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\tvar defaults = {\n\t /**\n\t * @property {array} strings strings to be typed\n\t * @property {string} stringsElement ID of element containing string children\n\t */\n\t strings: ['These are the default values...', 'You know what you should do?', 'Use your own!', 'Have a great day!'],\n\t stringsElement: null,\n\t\n\t /**\n\t * @property {number} typeSpeed type speed in milliseconds\n\t */\n\t typeSpeed: 0,\n\t\n\t /**\n\t * @property {number} startDelay time before typing starts in milliseconds\n\t */\n\t startDelay: 0,\n\t\n\t /**\n\t * @property {number} backSpeed backspacing speed in milliseconds\n\t */\n\t backSpeed: 0,\n\t\n\t /**\n\t * @property {boolean} smartBackspace only backspace what doesn't match the previous string\n\t */\n\t smartBackspace: true,\n\t\n\t /**\n\t * @property {boolean} shuffle shuffle the strings\n\t */\n\t shuffle: false,\n\t\n\t /**\n\t * @property {number} backDelay time before backspacing in milliseconds\n\t */\n\t backDelay: 700,\n\t\n\t /**\n\t * @property {boolean} fadeOut Fade out instead of backspace\n\t * @property {string} fadeOutClass css class for fade animation\n\t * @property {boolean} fadeOutDelay Fade out delay in milliseconds\n\t */\n\t fadeOut: false,\n\t fadeOutClass: 'typed-fade-out',\n\t fadeOutDelay: 500,\n\t\n\t /**\n\t * @property {boolean} loop loop strings\n\t * @property {number} loopCount amount of loops\n\t */\n\t loop: false,\n\t loopCount: Infinity,\n\t\n\t /**\n\t * @property {boolean} showCursor show cursor\n\t * @property {string} cursorChar character for cursor\n\t * @property {boolean} autoInsertCss insert CSS for cursor and fadeOut into HTML \n\t */\n\t showCursor: true,\n\t cursorChar: '|',\n\t autoInsertCss: true,\n\t\n\t /**\n\t * @property {string} attr attribute for typing\n\t * Ex: input placeholder, value, or just HTML text\n\t */\n\t attr: null,\n\t\n\t /**\n\t * @property {boolean} bindInputFocusEvents bind to focus and blur if el is text input\n\t */\n\t bindInputFocusEvents: false,\n\t\n\t /**\n\t * @property {string} contentType 'html' or 'null' for plaintext\n\t */\n\t contentType: 'html',\n\t\n\t /**\n\t * Before it begins typing\n\t * @param {Typed} self\n\t */\n\t onBegin: function onBegin(self) {},\n\t\n\t /**\n\t * All typing is complete\n\t * @param {Typed} self\n\t */\n\t onComplete: function onComplete(self) {},\n\t\n\t /**\n\t * Before each string is typed\n\t * @param {number} arrayPos\n\t * @param {Typed} self\n\t */\n\t preStringTyped: function preStringTyped(arrayPos, self) {},\n\t\n\t /**\n\t * After each string is typed\n\t * @param {number} arrayPos\n\t * @param {Typed} self\n\t */\n\t onStringTyped: function onStringTyped(arrayPos, self) {},\n\t\n\t /**\n\t * During looping, after last string is typed\n\t * @param {Typed} self\n\t */\n\t onLastStringBackspaced: function onLastStringBackspaced(self) {},\n\t\n\t /**\n\t * Typing has been stopped\n\t * @param {number} arrayPos\n\t * @param {Typed} self\n\t */\n\t onTypingPaused: function onTypingPaused(arrayPos, self) {},\n\t\n\t /**\n\t * Typing has been started after being stopped\n\t * @param {number} arrayPos\n\t * @param {Typed} self\n\t */\n\t onTypingResumed: function onTypingResumed(arrayPos, self) {},\n\t\n\t /**\n\t * After reset\n\t * @param {Typed} self\n\t */\n\t onReset: function onReset(self) {},\n\t\n\t /**\n\t * After stop\n\t * @param {number} arrayPos\n\t * @param {Typed} self\n\t */\n\t onStop: function onStop(arrayPos, self) {},\n\t\n\t /**\n\t * After start\n\t * @param {number} arrayPos\n\t * @param {Typed} self\n\t */\n\t onStart: function onStart(arrayPos, self) {},\n\t\n\t /**\n\t * After destroy\n\t * @param {Typed} self\n\t */\n\t onDestroy: function onDestroy(self) {}\n\t};\n\t\n\texports['default'] = defaults;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * TODO: These methods can probably be combined somehow\n\t * Parse HTML tags & HTML Characters\n\t */\n\t\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tvar HTMLParser = (function () {\n\t function HTMLParser() {\n\t _classCallCheck(this, HTMLParser);\n\t }\n\t\n\t _createClass(HTMLParser, [{\n\t key: 'typeHtmlChars',\n\t\n\t /**\n\t * Type HTML tags & HTML Characters\n\t * @param {string} curString Current string\n\t * @param {number} curStrPos Position in current string\n\t * @param {Typed} self instance of Typed\n\t * @returns {number} a new string position\n\t * @private\n\t */\n\t\n\t value: function typeHtmlChars(curString, curStrPos, self) {\n\t if (self.contentType !== 'html') return curStrPos;\n\t var curChar = curString.substr(curStrPos).charAt(0);\n\t if (curChar === '<' || curChar === '&') {\n\t var endTag = '';\n\t if (curChar === '<') {\n\t endTag = '>';\n\t } else {\n\t endTag = ';';\n\t }\n\t while (curString.substr(curStrPos + 1).charAt(0) !== endTag) {\n\t curStrPos++;\n\t if (curStrPos + 1 > curString.length) {\n\t break;\n\t }\n\t }\n\t curStrPos++;\n\t }\n\t return curStrPos;\n\t }\n\t\n\t /**\n\t * Backspace HTML tags and HTML Characters\n\t * @param {string} curString Current string\n\t * @param {number} curStrPos Position in current string\n\t * @param {Typed} self instance of Typed\n\t * @returns {number} a new string position\n\t * @private\n\t */\n\t }, {\n\t key: 'backSpaceHtmlChars',\n\t value: function backSpaceHtmlChars(curString, curStrPos, self) {\n\t if (self.contentType !== 'html') return curStrPos;\n\t var curChar = curString.substr(curStrPos).charAt(0);\n\t if (curChar === '>' || curChar === ';') {\n\t var endTag = '';\n\t if (curChar === '>') {\n\t endTag = '<';\n\t } else {\n\t endTag = '&';\n\t }\n\t while (curString.substr(curStrPos - 1).charAt(0) !== endTag) {\n\t curStrPos--;\n\t if (curStrPos < 0) {\n\t break;\n\t }\n\t }\n\t curStrPos--;\n\t }\n\t return curStrPos;\n\t }\n\t }]);\n\t\n\t return HTMLParser;\n\t})();\n\t\n\texports['default'] = HTMLParser;\n\tvar htmlParser = new HTMLParser();\n\texports.htmlParser = htmlParser;\n\n/***/ })\n/******/ ])\n});\n;\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/typed.js/lib/typed.js\n// module id = 35\n// module chunks = 0","// import external dependencies\nimport \"jquery\";\n\n// Require/Import vendors\nrequire(\"../../../node_modules/flickity/dist/flickity.pkgd\");\nrequire(\"./vendor/flickity-fullscreen\");\nrequire(\"./vendor/jquery.txtTruncate\");\n// STELLAR USE\nrequire(\"./vendor/isotope.pkgd\");\n// INTERSTELLAR USE\nrequire(\"../../../node_modules/isotope-layout/dist/isotope.pkgd.js\");\n\n// Import everything from autoload\nimport \"./autoload/_bootstrap.js\";\n\n// Import local dependencies/utils\nimport Router from \"./util/Router\";\nimport common from \"./routes/common\";\nimport home from \"./routes/home\";\nimport archive from \"./routes/archive\";\n\n// Checkout API\nimport checkout from \"./routes/checkout\";\nimport account from \"./routes/account\";\nimport receipt from \"./routes/receipt\";\nimport aboutUs from \"./routes/about\";\nimport { sliders } from \"./components/sliders\";\nimport LazyLoad from \"vanilla-lazyload\";\nimport { liveHosts } from \"./config\";\nimport { getQuery } from \"./util/dom\";\nrequire(\"./util/plusItem\");\nrequire(\"./util/crossPlatform\");\nrequire(\"./util/autoPadding\");\nrequire(\"./util/ellipsis\");\n\n// Require Components\nrequire(\"./components/nav\");\nrequire(\"./components/filter\");\nrequire(\"./components/picker\");\nrequire(\"./components/resellers\");\nrequire(\"./components/video\");\nrequire(\"./components/instagram\");\nrequire(\"./components/newsletter\");\nrequire(\"./components/alert\");\nrequire(\"./components/category\");\nrequire(\"./components/section\");\nrequire(\"./components/checkoutv2\");\nrequire(\"./components/search\");\nrequire(\"./components/selected-modal\");\nrequire(\"./components/headroom\");\nrequire(\"./components/accordion\");\nrequire(\"./components/product\");\nrequire(\"./components/image-switcher\");\nrequire(\"./components/ze-widget\");\nrequire(\"./components/geo\");\nrequire(\"./components/copy\");\nrequire(\"./components/sticky-cart\");\nrequire(\"./components/system-filter\");\nrequire(\"./components/section-filter-anchor\");\nrequire(\"./components/system-filter-anchor\");\nrequire(\"./components/easycom\");\nrequire(\"./components/low-stock\");\nrequire(\"./components/form\");\nrequire(\"./components/thumbnail-filter\");\nrequire(\"./components/scroll\");\n\n// Interstellar\nrequire(\"./components/interstellar/smorgasbord\");\nrequire(\"./components/interstellar/type-quote\");\nrequire(\"./components/interstellar/list-look\");\nrequire(\"./components/interstellar/dropdown\");\nrequire(\"./components/interstellar/video-grid\");\nrequire(\"./components/interstellar/story\");\n\n/** Populate Router instance with DOM routes */\nvar routes = new Router({\n // All pages\n common: common,\n // Home page\n home: home,\n // About Us page, note the change from about-us to aboutUs.\n aboutUs: aboutUs,\n archive: archive,\n // Checkout API\n checkout: checkout,\n account: account,\n templateThankyou: receipt\n});\n\n// Load Events\njQuery(document).ready(function () {\n routes.loadEvents();\n sliders.init();\n $(\".js-plus-item\").plusItem();\n $(\".resellers-table\").resellersTable();\n var lazyLoadInstance = new LazyLoad({\n elements_selector: \".lazy\",\n threshold: 500,\n use_native: true,\n callback_enter: function callback_enter(el) {\n if (el.tagName === \"IMG\") return;\n if (el.dataset.bg && !el.dataset.bg.match(\"/((.*))/\")) {\n el.dataset.bg = \"url(\".concat(window.sitewide.imagePlaceholder || \"\", \")\");\n }\n },\n callback_error: function callback_error(el) {\n if (el.tagName !== \"IMG\") return;\n el.src = window.sitewide.imagePlaceholder || \"\";\n el.removeAttribute(\"data-srcset\");\n el.removeAttribute(\"srcset\");\n }\n });\n if (lazyLoadInstance) {\n lazyLoadInstance.update();\n }\n window.lazyLoadInstance = lazyLoadInstance;\n $(\"body\").autoPadding({\n source: $(\".js-header\")\n });\n\n // WHEN THE LAST ITEM IN INTERSTELLAR MENU IS HIDDEN ON MOBILE\n // ADD CLASS TO THE 2ND TO THE LAST SO WE CAN REMOVE THE BORDER\n var navItems = document.querySelectorAll('nav.is-interstellar .navbar-nav-desktop .nav-item');\n if (navItems.length > 1 && navItems[navItems.length - 1].classList.contains('d-none')) {\n navItems[navItems.length - 2].classList.add('nav-item-last');\n }\n});\n$(window).on(\"load\", function () {\n $(\"body\").autoPadding({\n source: $(\".js-header\")\n });\n setTimeout(function () {\n $(\"body\").addClass(\"page-loaded\");\n }, 1000);\n});\n\n// Disable right click\ndocument.addEventListener(\"contextmenu\", function (e) {\n // Check if current page is an Interstellar page\n var isInterstellar = $(\"body\").hasClass('is-interstellar') === true;\n\n // Check if the page is an Interstellar page and the current domain is the live site domain\n var isInterstellarProd = liveHosts.indexOf(window.location.hostname) > -1 && isInterstellar;\n\n // Get URL query parameters\n var queryParams = getQuery();\n\n // If on debug mode and in Interstellar page\n var debugRightClick = isInterstellar && queryParams.hasOwnProperty('disableRightClick');\n\n // Disable right click if debugRightClick is set or if the page is an Interstellar Prod page\n if (isInterstellarProd || debugRightClick) {\n e.preventDefault();\n }\n}, false);\n\n\n// WEBPACK FOOTER //\n// ./scripts/main.js","/*!\n * Flickity PACKAGED v2.2.2\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-2021 Metafizzy\n */\n\n/**\n * Bridget makes jQuery widgets\n * v2.0.1\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /* globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'jquery-bridget/jquery-bridget',[ 'jquery' ], function( jQuery ) {\n return factory( window, jQuery );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('jquery')\n );\n } else {\n // browser global\n window.jQueryBridget = factory(\n window,\n window.jQuery\n );\n }\n\n}( window, function factory( window, jQuery ) {\n'use strict';\n\n// ----- utils ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// helper function for logging errors\n// $.error breaks jQuery chaining\nvar console = window.console;\nvar logError = typeof console == 'undefined' ? function() {} :\n function( message ) {\n console.error( message );\n };\n\n// ----- jQueryBridget ----- //\n\nfunction jQueryBridget( namespace, PluginClass, $ ) {\n $ = $ || jQuery || window.jQuery;\n if ( !$ ) {\n return;\n }\n\n // add option method -> $().plugin('option', {...})\n if ( !PluginClass.prototype.option ) {\n // option setter\n PluginClass.prototype.option = function( opts ) {\n // bail out if not an object\n if ( !$.isPlainObject( opts ) ){\n return;\n }\n this.options = $.extend( true, this.options, opts );\n };\n }\n\n // make jQuery plugin\n $.fn[ namespace ] = function( arg0 /*, arg1 */ ) {\n if ( typeof arg0 == 'string' ) {\n // method call $().plugin( 'methodName', { options } )\n // shift arguments by 1\n var args = arraySlice.call( arguments, 1 );\n return methodCall( this, arg0, args );\n }\n // just $().plugin({ options })\n plainCall( this, arg0 );\n return this;\n };\n\n // $().plugin('methodName')\n function methodCall( $elems, methodName, args ) {\n var returnValue;\n var pluginMethodStr = '$().' + namespace + '(\"' + methodName + '\")';\n\n $elems.each( function( i, elem ) {\n // get instance\n var instance = $.data( elem, namespace );\n if ( !instance ) {\n logError( namespace + ' not initialized. Cannot call methods, i.e. ' +\n pluginMethodStr );\n return;\n }\n\n var method = instance[ methodName ];\n if ( !method || methodName.charAt(0) == '_' ) {\n logError( pluginMethodStr + ' is not a valid method' );\n return;\n }\n\n // apply method, get return value\n var value = method.apply( instance, args );\n // set return value if value is returned, use only first value\n returnValue = returnValue === undefined ? value : returnValue;\n });\n\n return returnValue !== undefined ? returnValue : $elems;\n }\n\n function plainCall( $elems, options ) {\n $elems.each( function( i, elem ) {\n var instance = $.data( elem, namespace );\n if ( instance ) {\n // set options & init\n instance.option( options );\n instance._init();\n } else {\n // initialize new instance\n instance = new PluginClass( elem, options );\n $.data( elem, namespace, instance );\n }\n });\n }\n\n updateJQuery( $ );\n\n}\n\n// ----- updateJQuery ----- //\n\n// set $.bridget for v1 backwards compatibility\nfunction updateJQuery( $ ) {\n if ( !$ || ( $ && $.bridget ) ) {\n return;\n }\n $.bridget = jQueryBridget;\n}\n\nupdateJQuery( jQuery || window.jQuery );\n\n// ----- ----- //\n\nreturn jQueryBridget;\n\n}));\n\n/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( 'ev-emitter/ev-emitter',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\n}( typeof window != 'undefined' ? window : this, function() {\n\n\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\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 if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\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/* globals console: false */\n\n( function( window, factory ) {\n /* jshint strict: false */ /* globals define, module */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'get-size/get-size',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\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n var num = parseFloat( value );\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n function( message ) {\n console.error( message );\n };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n size[ measurement ] = 0;\n }\n return size;\n}\n\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 */\nfunction getStyle( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n logError( 'Style returned ' + style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1' );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if ( isSetup ) {\n return;\n }\n isSetup = true;\n\n // -------------------------- 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 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\n var body = document.body || document.documentElement;\n body.appendChild( div );\n var style = getStyle( div );\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n setup();\n\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n\n // do not proceed on non-objects\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n return;\n }\n\n var style = getStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n var value = style[ measurement ];\n var num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\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\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n }\n\n var styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // 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\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n\nreturn getSize;\n\n});\n\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\n( function( window, factory ) {\n /*global define: false, module: false */\n 'use strict';\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'desandro-matches-selector/matches-selector',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\n}( window, function factory() {\n 'use strict';\n\n var matchesMethod = ( function() {\n var ElemProto = window.Element.prototype;\n // check for the standard method name first\n if ( ElemProto.matches ) {\n return 'matches';\n }\n // check un-prefixed\n if ( ElemProto.matchesSelector ) {\n return 'matchesSelector';\n }\n // check vendor prefixes\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 if ( ElemProto[ method ] ) {\n return method;\n }\n }\n })();\n\n return function matchesSelector( elem, selector ) {\n return elem[ matchesMethod ]( selector );\n };\n\n}));\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\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'fizzy-ui-utils/utils',[\n 'desandro-matches-selector/matches-selector'\n ], function( matchesSelector ) {\n return factory( window, matchesSelector );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('desandro-matches-selector')\n );\n } else {\n // browser global\n window.fizzyUIUtils = factory(\n window,\n window.matchesSelector\n );\n }\n\n}( window, function factory( window, matchesSelector ) {\n\n\n\nvar utils = {};\n\n// ----- extend ----- //\n\n// extends objects\nutils.extend = function( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n};\n\n// ----- modulo ----- //\n\nutils.modulo = function( num, div ) {\n return ( ( num % div ) + div ) % div;\n};\n\n// ----- makeArray ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nutils.makeArray = function( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n // return empty array if undefined or null. #6\n if ( obj === null || obj === undefined ) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n};\n\n// ----- removeFrom ----- //\n\nutils.removeFrom = function( ary, obj ) {\n var index = ary.indexOf( obj );\n if ( index != -1 ) {\n ary.splice( index, 1 );\n }\n};\n\n// ----- getParent ----- //\n\nutils.getParent = function( elem, selector ) {\n while ( elem.parentNode && elem != document.body ) {\n elem = elem.parentNode;\n if ( matchesSelector( elem, selector ) ) {\n return elem;\n }\n }\n};\n\n// ----- getQueryElement ----- //\n\n// use element as selector string\nutils.getQueryElement = function( elem ) {\n if ( typeof elem == 'string' ) {\n return document.querySelector( elem );\n }\n return elem;\n};\n\n// ----- handleEvent ----- //\n\n// enable .ontype to trigger from .addEventListener( elem, 'type' )\nutils.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// ----- filterFindElements ----- //\n\nutils.filterFindElements = function( elems, selector ) {\n // make array of elems\n elems = utils.makeArray( elems );\n var ffElems = [];\n\n elems.forEach( function( elem ) {\n // check that elem is an actual element\n if ( !( elem instanceof HTMLElement ) ) {\n return;\n }\n // add elem if no selector\n if ( !selector ) {\n ffElems.push( elem );\n return;\n }\n // filter & find items if we have a selector\n // filter\n if ( matchesSelector( elem, selector ) ) {\n ffElems.push( elem );\n }\n // find children\n var childElems = elem.querySelectorAll( selector );\n // concat childElems to filterFound array\n for ( var i=0; i < childElems.length; i++ ) {\n ffElems.push( childElems[i] );\n }\n });\n\n return ffElems;\n};\n\n// ----- debounceMethod ----- //\n\nutils.debounceMethod = function( _class, methodName, threshold ) {\n threshold = threshold || 100;\n // original method\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\n var args = arguments;\n var _this = this;\n this[ timeoutName ] = setTimeout( function() {\n method.apply( _this, args );\n delete _this[ timeoutName ];\n }, threshold );\n };\n};\n\n// ----- docReady ----- //\n\nutils.docReady = function( callback ) {\n var readyState = document.readyState;\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};\n\n// ----- htmlInit ----- //\n\n// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\nutils.toDashed = function( str ) {\n return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {\n return $1 + '-' + $2;\n }).toLowerCase();\n};\n\nvar 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 */\nutils.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 )\n .concat( utils.makeArray( jsDashElems ) );\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n\n elems.forEach( function( elem ) {\n var attr = elem.getAttribute( dataAttr ) ||\n elem.getAttribute( dataOptionsAttr );\n var options;\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 +\n ': ' + error );\n }\n return;\n }\n // initialize\n var instance = new WidgetClass( elem, options );\n // make available via $().data('namespace')\n if ( jQuery ) {\n jQuery.data( elem, namespace, instance );\n }\n });\n\n });\n};\n\n// ----- ----- //\n\nreturn utils;\n\n}));\n\n// Flickity.Cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/cell',[\n 'get-size/get-size',\n ], function( getSize ) {\n return factory( window, getSize );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('get-size')\n );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Cell = factory(\n window,\n window.getSize\n );\n }\n\n}( window, function factory( window, getSize ) {\n\n\n\nfunction Cell( elem, parent ) {\n this.element = elem;\n this.parent = parent;\n\n this.create();\n}\n\nvar proto = Cell.prototype;\n\nproto.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\nproto.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 this.element.removeAttribute('aria-hidden');\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\nproto.setPosition = function( x ) {\n this.x = x;\n this.updateTarget();\n this.renderPosition( x );\n};\n\n// setDefaultTarget v1 method, backwards compatibility, remove in v3\nproto.updateTarget = proto.setDefaultTarget = function() {\n var marginProperty = this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';\n this.target = this.x + this.size[ marginProperty ] +\n this.size.width * this.parent.cellAlign;\n};\n\nproto.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\nproto.select = function() {\n this.element.classList.add('is-selected');\n this.element.removeAttribute('aria-hidden');\n};\n\nproto.unselect = function() {\n this.element.classList.remove('is-selected');\n this.element.setAttribute( 'aria-hidden', 'true' );\n};\n\n/**\n * @param {Integer} shift - 0, 1, or -1\n */\nproto.wrapShift = function( shift ) {\n this.shift = shift;\n this.renderPosition( this.x + this.parent.slideableWidth * shift );\n};\n\nproto.remove = function() {\n this.element.parentNode.removeChild( this.element );\n};\n\nreturn Cell;\n\n} ) );\n\n// slide\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/slide',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\n}( window, function factory() {\n'use strict';\n\nfunction 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\nvar proto = Slide.prototype;\n\nproto.addCell = function( cell ) {\n this.cells.push( cell );\n this.outerWidth += cell.size.outerWidth;\n this.height = Math.max( cell.size.outerHeight, this.height );\n // first cell stuff\n if ( this.cells.length == 1 ) {\n this.x = cell.x; // x comes from first cell\n var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\n this.firstMargin = cell.size[ beginMargin ];\n }\n};\n\nproto.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\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.select = function() {\n this.cells.forEach( function( cell ) {\n cell.select();\n } );\n};\n\nproto.unselect = function() {\n this.cells.forEach( function( cell ) {\n cell.unselect();\n } );\n};\n\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n } );\n};\n\nreturn Slide;\n\n} ) );\n\n// animate\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/animate',[\n 'fizzy-ui-utils/utils',\n ], function( utils ) {\n return factory( window, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.animatePrototype = factory(\n window,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, utils ) {\n\n\n\n// -------------------------- animate -------------------------- //\n\nvar proto = {};\n\nproto.startAnimation = function() {\n if ( this.isAnimating ) {\n return;\n }\n\n this.isAnimating = true;\n this.restingFrames = 0;\n this.animate();\n};\n\nproto.animate = function() {\n this.applyDragForce();\n this.applySelectedAttraction();\n\n var previousX = this.x;\n\n this.integratePhysics();\n this.positionSlider();\n this.settle( previousX );\n // animate next frame\n if ( this.isAnimating ) {\n var _this = this;\n requestAnimationFrame( function animateFrame() {\n _this.animate();\n } );\n }\n};\n\nproto.positionSlider = function() {\n var x = this.x;\n // wrap position around\n if ( this.options.wrapAround && this.cells.length > 1 ) {\n x = utils.modulo( x, this.slideableWidth );\n x -= this.slideableWidth;\n this.shiftWrapCells( x );\n }\n\n this.setTranslateX( x, this.isAnimating );\n this.dispatchScrollEvent();\n};\n\nproto.setTranslateX = function( x, is3d ) {\n x += this.cursorPosition;\n // reverse if right-to-left and using transform\n x = this.options.rightToLeft ? -x : x;\n var translateX = this.getPositionValue( x );\n // use 3D transforms for hardware acceleration on iOS\n // but use 2D when settled, for better font-rendering\n this.slider.style.transform = is3d ?\n 'translate3d(' + translateX + ',0,0)' : 'translateX(' + translateX + ')';\n};\n\nproto.dispatchScrollEvent = function() {\n var firstSlide = this.slides[0];\n if ( !firstSlide ) {\n return;\n }\n var positionX = -this.x - firstSlide.target;\n var progress = positionX / this.slidesWidth;\n this.dispatchEvent( 'scroll', null, [ progress, positionX ] );\n};\n\nproto.positionSliderAtSelected = function() {\n if ( !this.cells.length ) {\n return;\n }\n this.x = -this.selectedSlide.target;\n this.velocity = 0; // stop wobble\n this.positionSlider();\n};\n\nproto.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\nproto.settle = function( previousX ) {\n // keep track of frames where x hasn't moved\n var isResting = !this.isPointerDown &&\n Math.round( this.x * 100 ) == Math.round( previousX * 100 );\n if ( isResting ) {\n this.restingFrames++;\n }\n // stop animating if resting for 3 or more frames\n if ( this.restingFrames > 2 ) {\n this.isAnimating = false;\n delete this.isFreeScrolling;\n // render position with translateX when settled\n this.positionSlider();\n this.dispatchEvent( 'settle', null, [ this.selectedIndex ] );\n }\n};\n\nproto.shiftWrapCells = function( x ) {\n // shift before cells\n var beforeGap = this.cursorPosition + x;\n this._shiftCells( this.beforeShiftCells, beforeGap, -1 );\n // shift after cells\n var afterGap = this.size.innerWidth - ( x + this.slideableWidth + this.cursorPosition );\n this._shiftCells( this.afterShiftCells, afterGap, 1 );\n};\n\nproto._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\nproto._unshiftCells = function( cells ) {\n if ( !cells || !cells.length ) {\n return;\n }\n for ( var i = 0; i < cells.length; i++ ) {\n cells[i].wrapShift( 0 );\n }\n};\n\n// -------------------------- physics -------------------------- //\n\nproto.integratePhysics = function() {\n this.x += this.velocity;\n this.velocity *= this.getFrictionFactor();\n};\n\nproto.applyForce = function( force ) {\n this.velocity += force;\n};\n\nproto.getFrictionFactor = function() {\n return 1 - this.options[ this.isFreeScrolling ? 'freeScrollFriction' : 'friction' ];\n};\n\nproto.getRestingPosition = function() {\n // my thanks to Steven Wittens, who simplified this math greatly\n return this.x + this.velocity / ( 1 - this.getFrictionFactor() );\n};\n\nproto.applyDragForce = function() {\n if ( !this.isDraggable || !this.isPointerDown ) {\n return;\n }\n // change the position to drag position by applying force\n var dragVelocity = this.dragX - this.x;\n var dragForce = dragVelocity - this.velocity;\n this.applyForce( dragForce );\n};\n\nproto.applySelectedAttraction = function() {\n // do not attract if pointer down or no slides\n var dragDown = this.isDraggable && this.isPointerDown;\n if ( dragDown || this.isFreeScrolling || !this.slides.length ) {\n return;\n }\n var distance = this.selectedSlide.target * -1 - this.x;\n var force = distance * this.options.selectedAttraction;\n this.applyForce( force );\n};\n\nreturn proto;\n\n} ) );\n\n// Flickity main\n/* eslint-disable max-params */\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/flickity',[\n 'ev-emitter/ev-emitter',\n 'get-size/get-size',\n 'fizzy-ui-utils/utils',\n './cell',\n './slide',\n './animate',\n ], 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(\n window,\n require('ev-emitter'),\n require('get-size'),\n require('fizzy-ui-utils'),\n require('./cell'),\n require('./slide'),\n require('./animate')\n );\n } else {\n // browser global\n var _Flickity = window.Flickity;\n\n window.Flickity = factory(\n window,\n window.EvEmitter,\n window.getSize,\n window.fizzyUIUtils,\n _Flickity.Cell,\n _Flickity.Slide,\n _Flickity.animatePrototype\n );\n }\n\n}( window, function factory( window, EvEmitter, getSize,\n utils, Cell, Slide, animatePrototype ) {\n\n/* eslint-enable max-params */\n\n\n// vars\nvar jQuery = window.jQuery;\nvar getComputedStyle = window.getComputedStyle;\nvar console = window.console;\n\nfunction moveElements( elems, toElem ) {\n elems = utils.makeArray( elems );\n while ( elems.length ) {\n toElem.appendChild( elems.shift() );\n }\n}\n\n// -------------------------- Flickity -------------------------- //\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Flickity intances\nvar instances = {};\n\nfunction Flickity( element, options ) {\n var queryElement = utils.getQueryElement( element );\n if ( !queryElement ) {\n if ( console ) {\n console.error( 'Bad element for Flickity: ' + ( queryElement || element ) );\n }\n return;\n }\n this.element = queryElement;\n // do not initialize twice on same element\n if ( this.element.flickityGUID ) {\n var instance = instances[ this.element.flickityGUID ];\n if ( instance ) instance.option( options );\n return instance;\n }\n\n // add jQuery\n if ( jQuery ) {\n this.$element = jQuery( this.element );\n }\n // options\n this.options = utils.extend( {}, this.constructor.defaults );\n this.option( options );\n\n // kick things off\n this._create();\n}\n\nFlickity.defaults = {\n accessibility: true,\n // adaptiveHeight: false,\n cellAlign: 'center',\n // cellSelector: undefined,\n // contain: false,\n freeScrollFriction: 0.075, // friction when free-scrolling\n friction: 0.28, // friction when selecting\n namespaceJQueryEvents: true,\n // initialIndex: 0,\n percentPosition: true,\n resize: true,\n selectedAttraction: 0.025,\n setGallerySize: true,\n // watchCSS: false,\n // wrapAround: false\n};\n\n// hash of methods triggered on _create()\nFlickity.createMethods = [];\n\nvar proto = Flickity.prototype;\n// inherit EventEmitter\nutils.extend( proto, EvEmitter.prototype );\n\nproto._create = function() {\n // add id for Flickity.data\n var id = this.guid = ++GUID;\n this.element.flickityGUID = id; // expando\n instances[ id ] = this; // associate via id\n // initial properties\n this.selectedIndex = 0;\n // how many frames slider has been in same position\n this.restingFrames = 0;\n // initial physics properties\n this.x = 0;\n this.velocity = 0;\n this.originSide = this.options.rightToLeft ? 'right' : 'left';\n // create viewport & slider\n this.viewport = document.createElement('div');\n this.viewport.className = 'flickity-viewport';\n this._createSlider();\n\n if ( this.options.resize || this.options.watchCSS ) {\n window.addEventListener( 'resize', this );\n }\n\n // add listeners from on option\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\n/**\n * set options\n * @param {Object} opts - options to extend\n */\nproto.option = function( opts ) {\n utils.extend( this.options, opts );\n};\n\nproto.activate = function() {\n if ( this.isActive ) {\n return;\n }\n this.isActive = true;\n this.element.classList.add('flickity-enabled');\n if ( this.options.rightToLeft ) {\n this.element.classList.add('flickity-rtl');\n }\n\n this.getSize();\n // move initial cell elements so they can be loaded as cells\n var cellElems = this._filterFindCellElements( this.element.children );\n moveElements( cellElems, this.slider );\n this.viewport.appendChild( this.slider );\n this.element.appendChild( this.viewport );\n // get cells from children\n this.reloadCells();\n\n if ( this.options.accessibility ) {\n // allow element to focusable\n this.element.tabIndex = 0;\n // listen for key presses\n this.element.addEventListener( 'keydown', this );\n }\n\n this.emitEvent('activate');\n this.selectInitialIndex();\n // flag for initial activation, for using initialIndex\n this.isInitActivated = true;\n // ready event. #493\n this.dispatchEvent('ready');\n};\n\n// slider positions the cells\nproto._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\nproto._filterFindCellElements = function( elems ) {\n return utils.filterFindElements( elems, this.options.cellSelector );\n};\n\n// goes through all children\nproto.reloadCells = function() {\n // collection of item elements\n this.cells = this._makeCells( this.slider.children );\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n};\n\n/**\n * turn elements into Flickity.Cells\n * @param {[Array, NodeList, HTMLElement]} elems - elements to make into cells\n * @returns {Array} items - collection of new Flickity Cells\n */\nproto._makeCells = function( elems ) {\n var cellElems = this._filterFindCellElements( elems );\n\n // create new Flickity for collection\n var cells = cellElems.map( function( cellElem ) {\n return new Cell( cellElem, this );\n }, this );\n\n return cells;\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.getLastSlide = function() {\n return this.slides[ this.slides.length - 1 ];\n};\n\n// positions all cells\nproto.positionCells = function() {\n // size all cells\n this._sizeCells( this.cells );\n // position all cells\n this._positionCells( 0 );\n};\n\n/**\n * position certain cells\n * @param {Integer} index - which cell to start with\n */\nproto._positionCells = function( index ) {\n index = index || 0;\n // also measure maxCellHeight\n // start 0 if positioning all cells\n this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\n var cellX = 0;\n // get cellX\n if ( index > 0 ) {\n var startCell = this.cells[ index - 1 ];\n cellX = startCell.x + startCell.size.outerWidth;\n }\n var len = this.cells.length;\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 }\n // keep track of cellX for wrap-around\n this.slideableWidth = cellX;\n // slides\n this.updateSlides();\n // contain slides target\n this._containSlides();\n // update slidesWidth\n this.slidesWidth = len ? this.getLastSlide().target - this.slides[0].target : 0;\n};\n\n/**\n * cell.getSize() on multiple cells\n * @param {Array} cells - cells to size\n */\nproto._sizeCells = function( cells ) {\n cells.forEach( function( cell ) {\n cell.getSize();\n } );\n};\n\n// -------------------------- -------------------------- //\n\nproto.updateSlides = function() {\n this.slides = [];\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 ) +\n ( 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\n slide = new Slide( this );\n this.slides.push( slide );\n slide.addCell( cell );\n }\n }, this );\n // last slide\n slide.updateTarget();\n // update .selectedSlide\n this.updateSelectedSlide();\n};\n\nproto._getCanCellFit = function() {\n var groupCells = this.options.groupCells;\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 }\n // default, group by width of slide\n // parse '75%\n var percentMatch = typeof groupCells == 'string' &&\n groupCells.match( /^(\\d+)%$/ );\n var percent = percentMatch ? parseInt( percentMatch[1], 10 ) / 100 : 1;\n return function( i, slideWidth ) {\n /* eslint-disable-next-line no-invalid-this */\n return slideWidth <= ( this.size.innerWidth + 1 ) * percent;\n };\n};\n\n// alias _init for jQuery plugin .flickity()\nproto._init =\nproto.reposition = function() {\n this.positionCells();\n this.positionSliderAtSelected();\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n this.setCellAlign();\n this.cursorPosition = this.size.innerWidth * this.cellAlign;\n};\n\nvar 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\nproto.setCellAlign = function() {\n var shorthand = cellAlignShorthands[ this.options.cellAlign ];\n this.cellAlign = shorthand ? shorthand[ this.originSide ] : this.options.cellAlign;\n};\n\nproto.setGallerySize = function() {\n if ( this.options.setGallerySize ) {\n var height = this.options.adaptiveHeight && this.selectedSlide ?\n this.selectedSlide.height : this.maxCellHeight;\n this.viewport.style.height = height + 'px';\n }\n};\n\nproto._getWrapShiftCells = function() {\n // only for wrap-around\n if ( !this.options.wrapAround ) {\n return;\n }\n // unshift previous cells\n this._unshiftCells( this.beforeShiftCells );\n this._unshiftCells( this.afterShiftCells );\n // get before cells\n // initial gap\n var gapX = this.cursorPosition;\n var cellIndex = this.cells.length - 1;\n this.beforeShiftCells = this._getGapCells( gapX, cellIndex, -1 );\n // get after cells\n // ending gap between last cell and end of gallery viewport\n gapX = this.size.innerWidth - this.cursorPosition;\n // start cloning at first cell, working forwards\n this.afterShiftCells = this._getGapCells( gapX, 0, 1 );\n};\n\nproto._getGapCells = function( gapX, cellIndex, increment ) {\n // keep adding cells until the cover the initial gap\n var cells = [];\n while ( gapX > 0 ) {\n var cell = this.cells[ cellIndex ];\n if ( !cell ) {\n break;\n }\n cells.push( cell );\n cellIndex += increment;\n gapX -= cell.size.outerWidth;\n }\n return cells;\n};\n\n// ----- contain ----- //\n\n// contain cell targets so no excess sliding\nproto._containSlides = function() {\n if ( !this.options.contain || this.options.wrapAround || !this.cells.length ) {\n return;\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 ];\n // content is less than gallery size\n var isContentSmaller = contentWidth < this.size.innerWidth;\n // bounds\n var beginBound = this.cursorPosition + this.cells[0].size[ beginMargin ];\n var endBound = contentWidth - this.size.innerWidth * ( 1 - this.cellAlign );\n // contain each cell target\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\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 */\nproto.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 if ( event ) {\n // create jQuery event\n var jQEvent = new jQuery.Event( event );\n jQEvent.type = type;\n $event = jQEvent;\n }\n this.$element.trigger( $event, args );\n }\n};\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 */\nproto.select = function( index, isWrap, isInstant ) {\n if ( !this.isActive ) {\n return;\n }\n index = parseInt( index, 10 );\n this._wrapSelect( index );\n\n if ( this.options.wrapAround || isWrap ) {\n index = utils.modulo( index, this.slides.length );\n }\n // bail if invalid index\n if ( !this.slides[ index ] ) {\n return;\n }\n var prevIndex = this.selectedIndex;\n this.selectedIndex = index;\n this.updateSelectedSlide();\n if ( isInstant ) {\n this.positionSliderAtSelected();\n } else {\n this.startAnimation();\n }\n if ( this.options.adaptiveHeight ) {\n this.setGallerySize();\n }\n // events\n this.dispatchEvent( 'select', null, [ index ] );\n // change event if new index\n if ( index != prevIndex ) {\n this.dispatchEvent( 'change', null, [ index ] );\n }\n // old v1 event name, remove in v3\n this.dispatchEvent('cellSelect');\n};\n\n// wraps position for wrapAround, to move to closest slide. #113\nproto._wrapSelect = function( index ) {\n var len = this.slides.length;\n var isWrapping = this.options.wrapAround && len > 1;\n if ( !isWrapping ) {\n return index;\n }\n var wrapIndex = utils.modulo( index, len );\n // go to shortest\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 if ( !this.isDragSelect && backWrapDelta < delta ) {\n index += len;\n } else if ( !this.isDragSelect && forewardWrapDelta < delta ) {\n index -= len;\n }\n // wrap position so slider is within normal area\n if ( index < 0 ) {\n this.x -= this.slideableWidth;\n } else if ( index >= len ) {\n this.x += this.slideableWidth;\n }\n};\n\nproto.previous = function( isWrap, isInstant ) {\n this.select( this.selectedIndex - 1, isWrap, isInstant );\n};\n\nproto.next = function( isWrap, isInstant ) {\n this.select( this.selectedIndex + 1, isWrap, isInstant );\n};\n\nproto.updateSelectedSlide = function() {\n var slide = this.slides[ this.selectedIndex ];\n // selectedIndex could be outside of slides, if triggered before resize()\n if ( !slide ) {\n return;\n }\n // unselect previous selected slide\n this.unselectSelectedSlide();\n // update new selected slide\n this.selectedSlide = slide;\n slide.select();\n this.selectedCells = slide.cells;\n this.selectedElements = slide.getCellElements();\n // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\n // Remove in v3?\n this.selectedCell = slide.cells[0];\n this.selectedElement = this.selectedElements[0];\n};\n\nproto.unselectSelectedSlide = function() {\n if ( this.selectedSlide ) {\n this.selectedSlide.unselect();\n }\n};\n\nproto.selectInitialIndex = function() {\n var initialIndex = this.options.initialIndex;\n // already activated, select previous selectedIndex\n if ( this.isInitActivated ) {\n this.select( this.selectedIndex, false, true );\n return;\n }\n // select with selector string\n if ( initialIndex && typeof initialIndex == 'string' ) {\n var cell = this.queryCell( initialIndex );\n if ( cell ) {\n this.selectCell( initialIndex, false, true );\n return;\n }\n }\n\n var index = 0;\n // select with number\n if ( initialIndex && this.slides[ initialIndex ] ) {\n index = initialIndex;\n }\n // select instantly\n this.select( index, false, true );\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, Number]} value - zero-based index or element to select\n * @param {Boolean} isWrap - enables wrapping around for extra index\n * @param {Boolean} isInstant - disables slide animation\n */\nproto.selectCell = function( value, isWrap, isInstant ) {\n // get cell\n var cell = this.queryCell( value );\n if ( !cell ) {\n return;\n }\n\n var index = this.getCellSlideIndex( cell );\n this.select( index, isWrap, isInstant );\n};\n\nproto.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 if ( index != -1 ) {\n return i;\n }\n }\n};\n\n// -------------------------- get cells -------------------------- //\n\n/**\n * get Flickity.Cell, given an Element\n * @param {Element} elem - matching cell element\n * @returns {Flickity.Cell} cell - matching cell\n */\nproto.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 if ( cell.element == elem ) {\n return cell;\n }\n }\n};\n\n/**\n * get collection of Flickity.Cells, given Elements\n * @param {[Element, Array, NodeList]} elems - multiple elements\n * @returns {Array} cells - Flickity.Cells\n */\nproto.getCells = function( elems ) {\n elems = utils.makeArray( elems );\n var cells = [];\n elems.forEach( function( elem ) {\n var cell = this.getCell( elem );\n if ( cell ) {\n cells.push( cell );\n }\n }, this );\n return cells;\n};\n\n/**\n * get cell elements\n * @returns {Array} cellElems\n */\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n } );\n};\n\n/**\n * get parent cell from an element\n * @param {Element} elem - child element\n * @returns {Flickit.Cell} cell - parent cell\n */\nproto.getParentCell = function( elem ) {\n // first check if elem is cell\n var cell = this.getCell( elem );\n if ( cell ) {\n return cell;\n }\n // try to get parent cell elem\n elem = utils.getParent( elem, '.flickity-slider > *' );\n return this.getCell( elem );\n};\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 */\nproto.getAdjacentCellElements = function( adjCount, index ) {\n if ( !adjCount ) {\n return this.selectedSlide.getCellElements();\n }\n index = index === undefined ? this.selectedIndex : index;\n\n var len = this.slides.length;\n if ( 1 + ( adjCount * 2 ) >= len ) {\n return this.getCellElements();\n }\n\n var cellElems = [];\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 if ( slide ) {\n cellElems = cellElems.concat( slide.getCellElements() );\n }\n }\n return cellElems;\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, String, Number]} selector - element, selector string, or index\n * @returns {Flickity.Cell} - matching cell\n */\nproto.queryCell = function( selector ) {\n if ( typeof selector == 'number' ) {\n // use number as index\n return this.cells[ selector ];\n }\n if ( typeof selector == 'string' ) {\n // do not select invalid selectors from hash: #123, #/. #791\n if ( selector.match( /^[#.]?[\\d/]/ ) ) {\n return;\n }\n // use string as selector, get element\n selector = this.element.querySelector( selector );\n }\n // get cell from element\n return this.getCell( selector );\n};\n\n// -------------------------- events -------------------------- //\n\nproto.uiChange = function() {\n this.emitEvent('uiChange');\n};\n\n// keep focus on element when child UI elements are clicked\nproto.childUIPointerDown = function( event ) {\n // HACK iOS does not allow touch events to bubble up?!\n if ( event.type != 'touchstart' ) {\n event.preventDefault();\n }\n this.focus();\n};\n\n// ----- resize ----- //\n\nproto.onresize = function() {\n this.watchCSS();\n this.resize();\n};\n\nutils.debounceMethod( Flickity, 'onresize', 150 );\n\nproto.resize = function() {\n if ( !this.isActive ) {\n return;\n }\n this.getSize();\n // wrap values\n if ( this.options.wrapAround ) {\n this.x = utils.modulo( this.x, this.slideableWidth );\n }\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n this.emitEvent('resize');\n // update selected index for group slides, instant\n // TODO: position can be lost between groups of various numbers\n var selectedElement = this.selectedElements && this.selectedElements[0];\n this.selectCell( selectedElement, false, true );\n};\n\n// watches the :after property, activates/deactivates\nproto.watchCSS = function() {\n var watchOption = this.options.watchCSS;\n if ( !watchOption ) {\n return;\n }\n\n var afterContent = getComputedStyle( this.element, ':after' ).content;\n // activate if :after { content: 'flickity' }\n if ( afterContent.indexOf('flickity') != -1 ) {\n this.activate();\n } else {\n this.deactivate();\n }\n};\n\n// ----- keydown ----- //\n\n// go previous/next if left/right keys pressed\nproto.onkeydown = function( event ) {\n // only work if element is in focus\n var isNotFocused = document.activeElement && document.activeElement != this.element;\n if ( !this.options.accessibility || isNotFocused ) {\n return;\n }\n\n var handler = Flickity.keyboardHandlers[ event.keyCode ];\n if ( handler ) {\n handler.call( this );\n }\n};\n\nFlickity.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};\n\n// ----- focus ----- //\n\nproto.focus = function() {\n // TODO remove scrollTo once focus options gets more support\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus ...\n // #Browser_compatibility\n var prevScrollY = window.pageYOffset;\n this.element.focus({ preventScroll: true });\n // hack to fix scroll jump after focus, #76\n if ( window.pageYOffset != prevScrollY ) {\n window.scrollTo( window.pageXOffset, prevScrollY );\n }\n};\n\n// -------------------------- destroy -------------------------- //\n\n// deactivate all Flickity functionality, but keep stuff available\nproto.deactivate = function() {\n if ( !this.isActive ) {\n return;\n }\n this.element.classList.remove('flickity-enabled');\n this.element.classList.remove('flickity-rtl');\n this.unselectSelectedSlide();\n // destroy cells\n this.cells.forEach( function( cell ) {\n cell.destroy();\n } );\n this.element.removeChild( this.viewport );\n // move child elements back into element\n moveElements( this.slider.children, this.element );\n if ( this.options.accessibility ) {\n this.element.removeAttribute('tabIndex');\n this.element.removeEventListener( 'keydown', this );\n }\n // set flags\n this.isActive = false;\n this.emitEvent('deactivate');\n};\n\nproto.destroy = function() {\n this.deactivate();\n window.removeEventListener( 'resize', this );\n this.allOff();\n this.emitEvent('destroy');\n if ( jQuery && this.$element ) {\n jQuery.removeData( this.element, 'flickity' );\n }\n delete this.element.flickityGUID;\n delete instances[ this.guid ];\n};\n\n// -------------------------- prototype -------------------------- //\n\nutils.extend( proto, animatePrototype );\n\n// -------------------------- extras -------------------------- //\n\n/**\n * get Flickity instance from element\n * @param {[Element, String]} elem - element or selector string\n * @returns {Flickity} - Flickity instance\n */\nFlickity.data = function( elem ) {\n elem = utils.getQueryElement( elem );\n var id = elem && elem.flickityGUID;\n return id && instances[ id ];\n};\n\nutils.htmlInit( Flickity, 'flickity' );\n\nif ( jQuery && jQuery.bridget ) {\n jQuery.bridget( 'flickity', Flickity );\n}\n\n// set internal jQuery, for Webpack + jQuery v3, #478\nFlickity.setJQuery = function( jq ) {\n jQuery = jq;\n};\n\nFlickity.Cell = Cell;\nFlickity.Slide = Slide;\n\nreturn Flickity;\n\n} ) );\n\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\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*global define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'unipointer/unipointer',[\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.Unipointer = factory(\n window,\n window.EvEmitter\n );\n }\n\n}( window, function factory( window, EvEmitter ) {\n\n\n\nfunction noop() {}\n\nfunction Unipointer() {}\n\n// inherit EvEmitter\nvar proto = Unipointer.prototype = Object.create( EvEmitter.prototype );\n\nproto.bindStartEvent = function( elem ) {\n this._bindStartEvent( elem, true );\n};\n\nproto.unbindStartEvent = function( elem ) {\n this._bindStartEvent( elem, false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\nproto._bindStartEvent = function( elem, isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n\n // default to mouse events\n var startEvent = 'mousedown';\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 elem[ bindMethod ]( startEvent, this );\n};\n\n// trigger handler methods for events\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// returns the touch that we're keeping track of\nproto.getTouch = function( touches ) {\n for ( var i=0; i < touches.length; i++ ) {\n var touch = touches[i];\n if ( touch.identifier == this.pointerIdentifier ) {\n return touch;\n }\n }\n};\n\n// ----- start event ----- //\n\nproto.onmousedown = function( event ) {\n // dismiss clicks from right or middle buttons\n var button = event.button;\n if ( button && ( button !== 0 && button !== 1 ) ) {\n return;\n }\n this._pointerDown( event, event );\n};\n\nproto.ontouchstart = function( event ) {\n this._pointerDown( event, event.changedTouches[0] );\n};\n\nproto.onpointerdown = function( event ) {\n this._pointerDown( event, event );\n};\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto._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;\n // save pointer identifier to match up touch events\n this.pointerIdentifier = pointer.pointerId !== undefined ?\n // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId : pointer.identifier;\n\n this.pointerDown( event, pointer );\n};\n\nproto.pointerDown = function( event, pointer ) {\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// hash of events to be bound after start event\nvar postStartEvents = {\n mousedown: [ 'mousemove', 'mouseup' ],\n touchstart: [ 'touchmove', 'touchend', 'touchcancel' ],\n pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ],\n};\n\nproto._bindPostStartEvents = function( event ) {\n if ( !event ) {\n return;\n }\n // get proper events to match start event\n var events = postStartEvents[ event.type ];\n // bind events to node\n events.forEach( function( eventName ) {\n window.addEventListener( eventName, this );\n }, this );\n // save these arguments\n this._boundPointerEvents = events;\n};\n\nproto._unbindPostStartEvents = function() {\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n if ( !this._boundPointerEvents ) {\n return;\n }\n this._boundPointerEvents.forEach( function( eventName ) {\n window.removeEventListener( eventName, this );\n }, this );\n\n delete this._boundPointerEvents;\n};\n\n// ----- move event ----- //\n\nproto.onmousemove = function( event ) {\n this._pointerMove( event, event );\n};\n\nproto.onpointermove = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerMove( event, event );\n }\n};\n\nproto.ontouchmove = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerMove( event, touch );\n }\n};\n\n/**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerMove = function( event, pointer ) {\n this.pointerMove( event, pointer );\n};\n\n// public\nproto.pointerMove = function( event, pointer ) {\n this.emitEvent( 'pointerMove', [ event, pointer ] );\n};\n\n// ----- end event ----- //\n\n\nproto.onmouseup = function( event ) {\n this._pointerUp( event, event );\n};\n\nproto.onpointerup = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerUp( event, event );\n }\n};\n\nproto.ontouchend = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerUp( event, touch );\n }\n};\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerUp = function( event, pointer ) {\n this._pointerDone();\n this.pointerUp( event, pointer );\n};\n\n// public\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n};\n\n// ----- pointer done ----- //\n\n// triggered on pointer up & pointer cancel\nproto._pointerDone = function() {\n this._pointerReset();\n this._unbindPostStartEvents();\n this.pointerDone();\n};\n\nproto._pointerReset = function() {\n // reset properties\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n};\n\nproto.pointerDone = noop;\n\n// ----- pointer cancel ----- //\n\nproto.onpointercancel = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerCancel( event, event );\n }\n};\n\nproto.ontouchcancel = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerCancel( event, touch );\n }\n};\n\n/**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerCancel = function( event, pointer ) {\n this._pointerDone();\n this.pointerCancel( event, pointer );\n};\n\n// public\nproto.pointerCancel = function( event, pointer ) {\n this.emitEvent( 'pointerCancel', [ event, pointer ] );\n};\n\n// ----- ----- //\n\n// utility function for getting x/y coords from event\nUnipointer.getPointerPoint = function( pointer ) {\n return {\n x: pointer.pageX,\n y: pointer.pageY\n };\n};\n\n// ----- ----- //\n\nreturn Unipointer;\n\n}));\n\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\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'unidragger/unidragger',[\n 'unipointer/unipointer'\n ], function( Unipointer ) {\n return factory( window, Unipointer );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('unipointer')\n );\n } else {\n // browser global\n window.Unidragger = factory(\n window,\n window.Unipointer\n );\n }\n\n}( window, function factory( window, Unipointer ) {\n\n\n\n// -------------------------- Unidragger -------------------------- //\n\nfunction Unidragger() {}\n\n// inherit Unipointer & EvEmitter\nvar proto = Unidragger.prototype = Object.create( Unipointer.prototype );\n\n// ----- bind start ----- //\n\nproto.bindHandles = function() {\n this._bindHandles( true );\n};\n\nproto.unbindHandles = function() {\n this._bindHandles( false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\nproto._bindHandles = function( isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n // bind each handle\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n var touchAction = isAdd ? this._touchActionValue : '';\n for ( var i=0; i < this.handles.length; i++ ) {\n var handle = this.handles[i];\n this._bindStartEvent( handle, isAdd );\n handle[ bindMethod ]( 'click', this );\n // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n if ( window.PointerEvent ) {\n handle.style.touchAction = touchAction;\n }\n }\n};\n\n// prototype so it can be overwriteable by Flickity\nproto._touchActionValue = 'none';\n\n// ----- start event ----- //\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerDown = function( event, pointer ) {\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n event.preventDefault();\n this.pointerDownBlur();\n // bind move and end events\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// nodes that have text fields\nvar cursorNodes = {\n TEXTAREA: true,\n INPUT: true,\n SELECT: true,\n OPTION: true,\n};\n\n// input types that do not have text fields\nvar clickTypes = {\n radio: true,\n checkbox: true,\n button: true,\n submit: true,\n image: true,\n file: true,\n};\n\n// dismiss inputs with text fields. flickity#403, flickity#404\nproto.okayPointerDown = function( event ) {\n var isCursorNode = cursorNodes[ event.target.nodeName ];\n var isClickType = clickTypes[ event.target.type ];\n var isOkay = !isCursorNode || isClickType;\n if ( !isOkay ) {\n this._pointerReset();\n }\n return isOkay;\n};\n\n// kludge to blur previously focused input\nproto.pointerDownBlur = function() {\n var focused = document.activeElement;\n // do not blur body for IE10, metafizzy/flickity#117\n var canBlur = focused && focused.blur && focused != document.body;\n if ( canBlur ) {\n focused.blur();\n }\n};\n\n// ----- move event ----- //\n\n/**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\n// base pointer move logic\nproto._dragPointerMove = function( event, pointer ) {\n var moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY\n };\n // start drag if pointer has moved far enough to start drag\n if ( !this.isDragging && this.hasDragStarted( moveVector ) ) {\n this._dragStart( event, pointer );\n }\n return moveVector;\n};\n\n// condition if pointer has moved far enough to start drag\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3;\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto._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};\n\n// -------------------------- drag -------------------------- //\n\n// dragStart\nproto._dragStart = function( event, pointer ) {\n this.isDragging = true;\n // prevent clicks\n this.isPreventingClicks = true;\n this.dragStart( event, pointer );\n};\n\nproto.dragStart = function( event, pointer ) {\n this.emitEvent( 'dragStart', [ event, pointer ] );\n};\n\n// dragMove\nproto._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\nproto.dragMove = function( event, pointer, moveVector ) {\n event.preventDefault();\n this.emitEvent( 'dragMove', [ event, pointer, moveVector ] );\n};\n\n// dragEnd\nproto._dragEnd = function( event, pointer ) {\n // set flags\n this.isDragging = false;\n // re-enable clicking async\n setTimeout( function() {\n delete this.isPreventingClicks;\n }.bind( this ) );\n\n this.dragEnd( event, pointer );\n};\n\nproto.dragEnd = function( event, pointer ) {\n this.emitEvent( 'dragEnd', [ event, pointer ] );\n};\n\n// ----- onclick ----- //\n\n// handle all clicks and prevent clicks when dragging\nproto.onclick = function( event ) {\n if ( this.isPreventingClicks ) {\n event.preventDefault();\n }\n};\n\n// ----- staticClick ----- //\n\n// triggered after pointer down & up with no/tiny movement\nproto._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 );\n\n // set flag for emulated clicks 300ms after touchend\n if ( event.type != 'mouseup' ) {\n this.isIgnoringMouseUp = true;\n // reset flag after 300ms\n setTimeout( function() {\n delete this.isIgnoringMouseUp;\n }.bind( this ), 400 );\n }\n};\n\nproto.staticClick = function( event, pointer ) {\n this.emitEvent( 'staticClick', [ event, pointer ] );\n};\n\n// ----- utils ----- //\n\nUnidragger.getPointerPoint = Unipointer.getPointerPoint;\n\n// ----- ----- //\n\nreturn Unidragger;\n\n}));\n\n// drag\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/drag',[\n './flickity',\n 'unidragger/unidragger',\n 'fizzy-ui-utils/utils',\n ], 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(\n window,\n require('./flickity'),\n require('unidragger'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = factory(\n window,\n window.Flickity,\n window.Unidragger,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unidragger, utils ) {\n\n\n\n// ----- defaults ----- //\n\nutils.extend( Flickity.defaults, {\n draggable: '>1',\n dragThreshold: 3,\n} );\n\n// ----- create ----- //\n\nFlickity.createMethods.push('_createDrag');\n\n// -------------------------- drag prototype -------------------------- //\n\nvar proto = Flickity.prototype;\nutils.extend( proto, Unidragger.prototype );\nproto._touchActionValue = 'pan-y';\n\n// -------------------------- -------------------------- //\n\nvar isTouch = 'createTouch' in document;\nvar isTouchmoveScrollCanceled = false;\n\nproto._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 );\n // 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 if ( isTouch && !isTouchmoveScrollCanceled ) {\n window.addEventListener( 'touchmove', function() {} );\n isTouchmoveScrollCanceled = true;\n }\n};\n\nproto.onActivateDrag = function() {\n this.handles = [ this.viewport ];\n this.bindHandles();\n this.updateDraggable();\n};\n\nproto.onDeactivateDrag = function() {\n this.unbindHandles();\n this.element.classList.remove('is-draggable');\n};\n\nproto.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 if ( this.isDraggable ) {\n this.element.classList.add('is-draggable');\n } else {\n this.element.classList.remove('is-draggable');\n }\n};\n\n// backwards compatibility\nproto.bindDrag = function() {\n this.options.draggable = true;\n this.updateDraggable();\n};\n\nproto.unbindDrag = function() {\n this.options.draggable = false;\n this.updateDraggable();\n};\n\nproto._uiChangeDrag = function() {\n delete this.isFreeScrolling;\n};\n\n// -------------------------- pointer events -------------------------- //\n\nproto.pointerDown = function( event, pointer ) {\n if ( !this.isDraggable ) {\n this._pointerDownDefault( event, pointer );\n return;\n }\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n\n this._pointerDownPreventDefault( event );\n this.pointerDownFocus( event );\n // blur\n if ( document.activeElement != this.element ) {\n // do not blur if already focused\n this.pointerDownBlur();\n }\n\n // stop if it was moving\n this.dragX = this.x;\n this.viewport.classList.add('is-pointer-down');\n // track scrolling\n this.pointerDownScroll = getScrollPosition();\n window.addEventListener( 'scroll', this );\n\n this._pointerDownDefault( event, pointer );\n};\n\n// default pointerDown logic, used for staticClick\nproto._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 };\n // bind move and end events\n this._bindPostStartEvents( event );\n this.dispatchEvent( 'pointerDown', event, [ pointer ] );\n};\n\nvar focusNodes = {\n INPUT: true,\n TEXTAREA: true,\n SELECT: true,\n};\n\nproto.pointerDownFocus = function( event ) {\n var isFocusNode = focusNodes[ event.target.nodeName ];\n if ( !isFocusNode ) {\n this.focus();\n }\n};\n\nproto._pointerDownPreventDefault = function( event ) {\n var isTouchStart = event.type == 'touchstart';\n var isTouchPointer = event.pointerType == 'touch';\n var isFocusNode = focusNodes[ event.target.nodeName ];\n if ( !isTouchStart && !isTouchPointer && !isFocusNode ) {\n event.preventDefault();\n }\n};\n\n// ----- move ----- //\n\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > this.options.dragThreshold;\n};\n\n// ----- up ----- //\n\nproto.pointerUp = function( event, pointer ) {\n delete this.isTouchScrolling;\n this.viewport.classList.remove('is-pointer-down');\n this.dispatchEvent( 'pointerUp', event, [ pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto.pointerDone = function() {\n window.removeEventListener( 'scroll', this );\n delete this.pointerDownScroll;\n};\n\n// -------------------------- dragging -------------------------- //\n\nproto.dragStart = function( event, pointer ) {\n if ( !this.isDraggable ) {\n return;\n }\n this.dragStartPosition = this.x;\n this.startAnimation();\n window.removeEventListener( 'scroll', this );\n this.dispatchEvent( 'dragStart', event, [ pointer ] );\n};\n\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.dispatchEvent( 'pointerMove', event, [ pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n if ( !this.isDraggable ) {\n return;\n }\n event.preventDefault();\n\n this.previousDragX = this.dragX;\n // reverse if right-to-left\n var direction = this.options.rightToLeft ? -1 : 1;\n if ( this.options.wrapAround ) {\n // wrap around move. #589\n moveVector.x %= this.slideableWidth;\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\n this.dragMoveTime = new Date();\n this.dispatchEvent( 'dragMove', event, [ pointer, moveVector ] );\n};\n\nproto.dragEnd = function( event, pointer ) {\n if ( !this.isDraggable ) {\n return;\n }\n if ( this.options.freeScroll ) {\n this.isFreeScrolling = true;\n }\n // set selectedIndex based on where flick will end up\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 &&\n -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 delete this.previousDragX;\n // apply selection\n // TODO refactor this, selecting here feels weird\n // HACK, set flag so dragging stays in correct direction\n this.isDragSelect = this.options.wrapAround;\n this.select( index );\n delete this.isDragSelect;\n this.dispatchEvent( 'dragEnd', event, [ pointer ] );\n};\n\nproto.dragEndRestingSelect = function() {\n var restingX = this.getRestingPosition();\n // how far away from selected slide\n var distance = Math.abs( this.getSlideDistance( -restingX, this.selectedIndex ) );\n // get closet resting going up and going down\n var positiveResting = this._getClosestResting( restingX, distance, 1 );\n var negativeResting = this._getClosestResting( restingX, distance, -1 );\n // use closer resting for wrap-around\n var index = positiveResting.distance < negativeResting.distance ?\n positiveResting.index : negativeResting.index;\n return index;\n};\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 */\nproto._getClosestResting = function( restingX, distance, increment ) {\n var index = this.selectedIndex;\n var minDistance = Infinity;\n var condition = this.options.contain && !this.options.wrapAround ?\n // if contain, keep going if distance is equal to minDistance\n function( dist, minDist ) {\n return dist <= minDist;\n } : function( dist, minDist ) {\n return dist < minDist;\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 if ( distance === null ) {\n break;\n }\n distance = Math.abs( distance );\n }\n return {\n distance: minDistance,\n // selected was previous index\n index: index - increment,\n };\n};\n\n/**\n * measure distance between x and a slide target\n * @param {Number} x - horizontal position\n * @param {Integer} index - slide index\n * @returns {Number} - slide distance\n */\nproto.getSlideDistance = function( x, index ) {\n var len = this.slides.length;\n // wrap around if at least 2 slides\n var isWrapAround = this.options.wrapAround && len > 1;\n var slideIndex = isWrapAround ? utils.modulo( index, len ) : index;\n var slide = this.slides[ slideIndex ];\n if ( !slide ) {\n return null;\n }\n // add distance for wrap-around slides\n var wrap = isWrapAround ? this.slideableWidth * Math.floor( index/len ) : 0;\n return x - ( slide.target + wrap );\n};\n\nproto.dragEndBoostSelect = function() {\n // do not boost if no previousDragX or dragMoveTime\n if ( this.previousDragX === undefined || !this.dragMoveTime ||\n // 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 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 return 0;\n};\n\n// ----- staticClick ----- //\n\nproto.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};\n\n// ----- scroll ----- //\n\nproto.onscroll = function() {\n var scroll = getScrollPosition();\n var scrollMoveX = this.pointerDownScroll.x - scroll.x;\n var scrollMoveY = this.pointerDownScroll.y - scroll.y;\n // cancel click/tap if scroll is too much\n if ( Math.abs( scrollMoveX ) > 3 || Math.abs( scrollMoveY ) > 3 ) {\n this._pointerDone();\n }\n};\n\n// ----- utils ----- //\n\nfunction getScrollPosition() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset,\n };\n}\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n\n// prev/next buttons\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/prev-next-button',[\n './flickity',\n 'unipointer/unipointer',\n 'fizzy-ui-utils/utils',\n ], 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(\n window,\n require('./flickity'),\n require('unipointer'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.Unipointer,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n'use strict';\n\nvar svgURI = 'http://www.w3.org/2000/svg';\n\n// -------------------------- PrevNextButton -------------------------- //\n\nfunction PrevNextButton( direction, parent ) {\n this.direction = direction;\n this.parent = parent;\n this._create();\n}\n\nPrevNextButton.prototype = Object.create( Unipointer.prototype );\n\nPrevNextButton.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\n var element = this.element = document.createElement('button');\n element.className = 'flickity-button flickity-prev-next-button';\n element.className += this.isPrevious ? ' previous' : ' next';\n // prevent button from submitting form http://stackoverflow.com/a/10836076/182183\n element.setAttribute( 'type', 'button' );\n // init as disabled\n this.disable();\n\n element.setAttribute( 'aria-label', this.isPrevious ? 'Previous' : 'Next' );\n\n // create arrow\n var svg = this.createSVG();\n element.appendChild( svg );\n // events\n this.parent.on( 'select', this.update.bind( this ) );\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPrevNextButton.prototype.activate = function() {\n this.bindStartEvent( this.element );\n this.element.addEventListener( 'click', this );\n // add to DOM\n this.parent.element.appendChild( this.element );\n};\n\nPrevNextButton.prototype.deactivate = function() {\n // remove from DOM\n this.parent.element.removeChild( this.element );\n // click events\n this.unbindStartEvent( this.element );\n this.element.removeEventListener( 'click', this );\n};\n\nPrevNextButton.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' );\n // rotate arrow\n if ( !this.isLeft ) {\n path.setAttribute( 'transform', 'translate(100, 100) rotate(180) ' );\n }\n svg.appendChild( path );\n return svg;\n};\n\n// get SVG path movmement\nfunction getArrowMovements( shape ) {\n // use shape as movement if string\n if ( typeof shape == 'string' ) {\n return shape;\n }\n // create movement string\n return 'M ' + shape.x0 + ',50' +\n ' L ' + shape.x1 + ',' + ( shape.y1 + 50 ) +\n ' L ' + shape.x2 + ',' + ( shape.y2 + 50 ) +\n ' L ' + shape.x3 + ',50 ' +\n ' L ' + shape.x2 + ',' + ( 50 - shape.y2 ) +\n ' L ' + shape.x1 + ',' + ( 50 - shape.y1 ) +\n ' Z';\n}\n\nPrevNextButton.prototype.handleEvent = utils.handleEvent;\n\nPrevNextButton.prototype.onclick = function() {\n if ( !this.isEnabled ) {\n return;\n }\n this.parent.uiChange();\n var method = this.isPrevious ? 'previous' : 'next';\n this.parent[ method ]();\n};\n\n// ----- ----- //\n\nPrevNextButton.prototype.enable = function() {\n if ( this.isEnabled ) {\n return;\n }\n this.element.disabled = false;\n this.isEnabled = true;\n};\n\nPrevNextButton.prototype.disable = function() {\n if ( !this.isEnabled ) {\n return;\n }\n this.element.disabled = true;\n this.isEnabled = false;\n};\n\nPrevNextButton.prototype.update = function() {\n // index of first or last slide, if previous or next\n var slides = this.parent.slides;\n // enable is wrapAround and at least 2 slides\n if ( this.parent.options.wrapAround && slides.length > 1 ) {\n this.enable();\n return;\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\nPrevNextButton.prototype.destroy = function() {\n this.deactivate();\n this.allOff();\n};\n\n// -------------------------- Flickity prototype -------------------------- //\n\nutils.extend( Flickity.defaults, {\n prevNextButtons: true,\n arrowShape: {\n x0: 10,\n x1: 60, y1: 50,\n x2: 70, y2: 40,\n x3: 30,\n },\n} );\n\nFlickity.createMethods.push('_createPrevNextButtons');\nvar proto = Flickity.prototype;\n\nproto._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\n this.on( 'activate', this.activatePrevNextButtons );\n};\n\nproto.activatePrevNextButtons = function() {\n this.prevButton.activate();\n this.nextButton.activate();\n this.on( 'deactivate', this.deactivatePrevNextButtons );\n};\n\nproto.deactivatePrevNextButtons = function() {\n this.prevButton.deactivate();\n this.nextButton.deactivate();\n this.off( 'deactivate', this.deactivatePrevNextButtons );\n};\n\n// -------------------------- -------------------------- //\n\nFlickity.PrevNextButton = PrevNextButton;\n\nreturn Flickity;\n\n} ) );\n\n// page dots\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/page-dots',[\n './flickity',\n 'unipointer/unipointer',\n 'fizzy-ui-utils/utils',\n ], 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(\n window,\n require('./flickity'),\n require('unipointer'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.Unipointer,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n\n// -------------------------- PageDots -------------------------- //\n\n\n\nfunction PageDots( parent ) {\n this.parent = parent;\n this._create();\n}\n\nPageDots.prototype = Object.create( Unipointer.prototype );\n\nPageDots.prototype._create = function() {\n // create holder element\n this.holder = document.createElement('ol');\n this.holder.className = 'flickity-page-dots';\n // create dots, array of elements\n this.dots = [];\n // events\n this.handleClick = this.onClick.bind( this );\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPageDots.prototype.activate = function() {\n this.setDots();\n this.holder.addEventListener( 'click', this.handleClick );\n this.bindStartEvent( this.holder );\n // add to DOM\n this.parent.element.appendChild( this.holder );\n};\n\nPageDots.prototype.deactivate = function() {\n this.holder.removeEventListener( 'click', this.handleClick );\n this.unbindStartEvent( this.holder );\n // remove from DOM\n this.parent.element.removeChild( this.holder );\n};\n\nPageDots.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 if ( delta > 0 ) {\n this.addDots( delta );\n } else if ( delta < 0 ) {\n this.removeDots( -delta );\n }\n};\n\nPageDots.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\nPageDots.prototype.removeDots = function( count ) {\n // remove from this.dots collection\n var removeDots = this.dots.splice( this.dots.length - count, count );\n // remove from DOM\n removeDots.forEach( function( dot ) {\n this.holder.removeChild( dot );\n }, this );\n};\n\nPageDots.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 }\n // don't proceed if no dots\n if ( !this.dots.length ) {\n return;\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\nPageDots.prototype.onTap = // old method name, backwards-compatible\nPageDots.prototype.onClick = function( event ) {\n var target = event.target;\n // only care about dot clicks\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\nPageDots.prototype.destroy = function() {\n this.deactivate();\n this.allOff();\n};\n\nFlickity.PageDots = PageDots;\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n pageDots: true,\n} );\n\nFlickity.createMethods.push('_createPageDots');\n\nvar proto = Flickity.prototype;\n\nproto._createPageDots = function() {\n if ( !this.options.pageDots ) {\n return;\n }\n this.pageDots = new PageDots( this );\n // events\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\nproto.activatePageDots = function() {\n this.pageDots.activate();\n};\n\nproto.updateSelectedPageDots = function() {\n this.pageDots.updateSelected();\n};\n\nproto.updatePageDots = function() {\n this.pageDots.setDots();\n};\n\nproto.deactivatePageDots = function() {\n this.pageDots.deactivate();\n};\n\n// ----- ----- //\n\nFlickity.PageDots = PageDots;\n\nreturn Flickity;\n\n} ) );\n\n// player & autoPlay\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/player',[\n 'ev-emitter/ev-emitter',\n 'fizzy-ui-utils/utils',\n './flickity',\n ], 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(\n require('ev-emitter'),\n require('fizzy-ui-utils'),\n require('./flickity')\n );\n } else {\n // browser global\n factory(\n window.EvEmitter,\n window.fizzyUIUtils,\n window.Flickity\n );\n }\n\n}( window, function factory( EvEmitter, utils, Flickity ) {\n\n\n\n// -------------------------- Player -------------------------- //\n\nfunction Player( parent ) {\n this.parent = parent;\n this.state = 'stopped';\n // visibility change event handler\n this.onVisibilityChange = this.visibilityChange.bind( this );\n this.onVisibilityPlay = this.visibilityPlay.bind( this );\n}\n\nPlayer.prototype = Object.create( EvEmitter.prototype );\n\n// start play\nPlayer.prototype.play = function() {\n if ( this.state == 'playing' ) {\n return;\n }\n // do not play if page is hidden, start playing when page is visible\n var isPageHidden = document.hidden;\n if ( isPageHidden ) {\n document.addEventListener( 'visibilitychange', this.onVisibilityPlay );\n return;\n }\n\n this.state = 'playing';\n // listen to visibility change\n document.addEventListener( 'visibilitychange', this.onVisibilityChange );\n // start ticking\n this.tick();\n};\n\nPlayer.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;\n // default to 3 seconds\n time = typeof time == 'number' ? time : 3000;\n var _this = this;\n // HACK: reset ticks if stopped and started within interval\n this.clear();\n this.timeout = setTimeout( function() {\n _this.parent.next( true );\n _this.tick();\n }, time );\n};\n\nPlayer.prototype.stop = function() {\n this.state = 'stopped';\n this.clear();\n // remove visibility change event\n document.removeEventListener( 'visibilitychange', this.onVisibilityChange );\n};\n\nPlayer.prototype.clear = function() {\n clearTimeout( this.timeout );\n};\n\nPlayer.prototype.pause = function() {\n if ( this.state == 'playing' ) {\n this.state = 'paused';\n this.clear();\n }\n};\n\nPlayer.prototype.unpause = function() {\n // re-start play if paused\n if ( this.state == 'paused' ) {\n this.play();\n }\n};\n\n// pause if page visibility is hidden, unpause if visible\nPlayer.prototype.visibilityChange = function() {\n var isPageHidden = document.hidden;\n this[ isPageHidden ? 'pause' : 'unpause' ]();\n};\n\nPlayer.prototype.visibilityPlay = function() {\n this.play();\n document.removeEventListener( 'visibilitychange', this.onVisibilityPlay );\n};\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n pauseAutoPlayOnHover: true,\n} );\n\nFlickity.createMethods.push('_createPlayer');\nvar proto = Flickity.prototype;\n\nproto._createPlayer = function() {\n this.player = new Player( this );\n\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\nproto.activatePlayer = function() {\n if ( !this.options.autoPlay ) {\n return;\n }\n this.player.play();\n this.element.addEventListener( 'mouseenter', this );\n};\n\n// Player API, don't hate the ... thanks I know where the door is\n\nproto.playPlayer = function() {\n this.player.play();\n};\n\nproto.stopPlayer = function() {\n this.player.stop();\n};\n\nproto.pausePlayer = function() {\n this.player.pause();\n};\n\nproto.unpausePlayer = function() {\n this.player.unpause();\n};\n\nproto.deactivatePlayer = function() {\n this.player.stop();\n this.element.removeEventListener( 'mouseenter', this );\n};\n\n// ----- mouseenter/leave ----- //\n\n// pause auto-play on hover\nproto.onmouseenter = function() {\n if ( !this.options.pauseAutoPlayOnHover ) {\n return;\n }\n this.player.pause();\n this.element.addEventListener( 'mouseleave', this );\n};\n\n// resume auto-play on hover off\nproto.onmouseleave = function() {\n this.player.unpause();\n this.element.removeEventListener( 'mouseleave', this );\n};\n\n// ----- ----- //\n\nFlickity.Player = Player;\n\nreturn Flickity;\n\n} ) );\n\n// add, remove cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/add-remove-cell',[\n './flickity',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, utils ) {\n return factory( window, Flickity, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, utils ) {\n\n\n\n// append cells to a document fragment\nfunction getCellsFragment( cells ) {\n var fragment = document.createDocumentFragment();\n cells.forEach( function( cell ) {\n fragment.appendChild( cell.element );\n } );\n return fragment;\n}\n\n// -------------------------- add/remove cell prototype -------------------------- //\n\nvar proto = Flickity.prototype;\n\n/**\n * Insert, prepend, or append cells\n * @param {[Element, Array, NodeList]} elems - Elements to insert\n * @param {Integer} index - Zero-based number to insert\n */\nproto.insert = function( elems, index ) {\n var cells = this._makeCells( elems );\n if ( !cells || !cells.length ) {\n return;\n }\n var len = this.cells.length;\n // default to append\n index = index === undefined ? len : index;\n // add cells with document fragment\n var fragment = getCellsFragment( cells );\n // append to slider\n var isAppend = index == len;\n if ( isAppend ) {\n this.slider.appendChild( fragment );\n } else {\n var insertCellElement = this.cells[ index ].element;\n this.slider.insertBefore( fragment, insertCellElement );\n }\n // add to this.cells\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 this.cellChange( index, true );\n};\n\nproto.append = function( elems ) {\n this.insert( elems, this.cells.length );\n};\n\nproto.prepend = function( elems ) {\n this.insert( elems, 0 );\n};\n\n/**\n * Remove cells\n * @param {[Element, Array, NodeList]} elems - ELements to remove\n */\nproto.remove = function( elems ) {\n var cells = this.getCells( elems );\n if ( !cells || !cells.length ) {\n return;\n }\n\n var minCellIndex = this.cells.length - 1;\n // remove cells from collection & DOM\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\n this.cellChange( minCellIndex, true );\n};\n\n/**\n * logic to be run after a cell's size changes\n * @param {Element} elem - cell's element\n */\nproto.cellSizeChange = function( elem ) {\n var cell = this.getCell( elem );\n if ( !cell ) {\n return;\n }\n cell.getSize();\n\n var index = this.cells.indexOf( cell );\n this.cellChange( index );\n};\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 * @param {Boolean} isPositioningSlider - Positions slider after selection\n */\nproto.cellChange = function( changedCellIndex, isPositioningSlider ) {\n var prevSelectedElem = this.selectedElement;\n this._positionCells( changedCellIndex );\n this._getWrapShiftCells();\n this.setGallerySize();\n // update selectedIndex\n // try to maintain position & select previous selected element\n var cell = this.getCell( prevSelectedElem );\n if ( cell ) {\n this.selectedIndex = this.getCellSlideIndex( cell );\n }\n this.selectedIndex = Math.min( this.slides.length - 1, this.selectedIndex );\n\n this.emitEvent( 'cellChange', [ changedCellIndex ] );\n // position slider\n this.select( this.selectedIndex );\n // do not position slider after lazy load\n if ( isPositioningSlider ) {\n this.positionSliderAtSelected();\n }\n};\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n\n// lazyload\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/lazyload',[\n './flickity',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, utils ) {\n return factory( window, Flickity, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, utils ) {\n'use strict';\n\nFlickity.createMethods.push('_createLazyload');\nvar proto = Flickity.prototype;\n\nproto._createLazyload = function() {\n this.on( 'select', this.lazyLoad );\n};\n\nproto.lazyLoad = function() {\n var lazyLoad = this.options.lazyLoad;\n if ( !lazyLoad ) {\n return;\n }\n // get adjacent cells, use lazyLoad option for adjacent count\n var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\n var cellElems = this.getAdjacentCellElements( adjCount );\n // get lazy images in those cells\n var lazyImages = [];\n cellElems.forEach( function( cellElem ) {\n var lazyCellImages = getCellLazyImages( cellElem );\n lazyImages = lazyImages.concat( lazyCellImages );\n } );\n // load lazy images\n lazyImages.forEach( function( img ) {\n new LazyLoader( img, this );\n }, this );\n};\n\nfunction 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 if ( lazyloadAttr || srcAttr || srcsetAttr ) {\n return [ cellElem ];\n }\n }\n // select lazy images in cell\n var lazySelector = 'img[data-flickity-lazyload], ' +\n 'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]';\n var imgs = cellElem.querySelectorAll( lazySelector );\n return utils.makeArray( imgs );\n}\n\n// -------------------------- LazyLoader -------------------------- //\n\n/**\n * class to handle loading images\n * @param {Image} img - Image element\n * @param {Flickity} flickity - Flickity instance\n */\nfunction LazyLoader( img, flickity ) {\n this.img = img;\n this.flickity = flickity;\n this.load();\n}\n\nLazyLoader.prototype.handleEvent = utils.handleEvent;\n\nLazyLoader.prototype.load = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n // get src & srcset\n var src = this.img.getAttribute('data-flickity-lazyload') ||\n this.img.getAttribute('data-flickity-lazyload-src');\n var srcset = this.img.getAttribute('data-flickity-lazyload-srcset');\n // set src & serset\n this.img.src = src;\n if ( srcset ) {\n this.img.setAttribute( 'srcset', srcset );\n }\n // remove attr\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\nLazyLoader.prototype.onload = function( event ) {\n this.complete( event, 'flickity-lazyloaded' );\n};\n\nLazyLoader.prototype.onerror = function( event ) {\n this.complete( event, 'flickity-lazyerror' );\n};\n\nLazyLoader.prototype.complete = function( event, className ) {\n // unbind events\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n\n var cell = this.flickity.getParentCell( this.img );\n var cellElem = cell && cell.element;\n this.flickity.cellSizeChange( cellElem );\n\n this.img.classList.add( className );\n this.flickity.dispatchEvent( 'lazyLoad', event, cellElem );\n};\n\n// ----- ----- //\n\nFlickity.LazyLoader = LazyLoader;\n\nreturn Flickity;\n\n} ) );\n\n/*!\n * Flickity v2.2.2\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-2021 Metafizzy\n */\n\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity/js/index',[\n './flickity',\n './drag',\n './prev-next-button',\n './page-dots',\n './player',\n './add-remove-cell',\n './lazyload',\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('./flickity'),\n require('./drag'),\n require('./prev-next-button'),\n require('./page-dots'),\n require('./player'),\n require('./add-remove-cell'),\n require('./lazyload')\n );\n }\n\n} )( window, function factory( Flickity ) {\n return Flickity;\n} );\n\n/*!\n * Flickity asNavFor v2.0.2\n * enable asNavFor for Flickity\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true*/\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'flickity-as-nav-for/as-nav-for',[\n 'flickity/js/index',\n 'fizzy-ui-utils/utils'\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = factory(\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( Flickity, utils ) {\n\n\n\n// -------------------------- asNavFor prototype -------------------------- //\n\n// Flickity.defaults.asNavFor = null;\n\nFlickity.createMethods.push('_createAsNavFor');\n\nvar proto = Flickity.prototype;\n\nproto._createAsNavFor = function() {\n this.on( 'activate', this.activateAsNavFor );\n this.on( 'deactivate', this.deactivateAsNavFor );\n this.on( 'destroy', this.destroyAsNavFor );\n\n var asNavForOption = this.options.asNavFor;\n if ( !asNavForOption ) {\n return;\n }\n // HACK do async, give time for other flickity to be initalized\n var _this = this;\n setTimeout( function initNavCompanion() {\n _this.setNavCompanion( asNavForOption );\n });\n};\n\nproto.setNavCompanion = function( elem ) {\n elem = utils.getQueryElement( elem );\n var companion = Flickity.data( elem );\n // stop if no companion or companion is self\n if ( !companion || companion == this ) {\n return;\n }\n\n this.navCompanion = companion;\n // companion select\n var _this = this;\n this.onNavCompanionSelect = function() {\n _this.navCompanionSelect();\n };\n companion.on( 'select', this.onNavCompanionSelect );\n // click\n this.on( 'staticClick', this.onNavStaticClick );\n\n this.navCompanionSelect( true );\n};\n\nproto.navCompanionSelect = function( isInstant ) {\n // wait for companion & selectedCells first. #8\n var companionCells = this.navCompanion && this.navCompanion.selectedCells;\n if ( !companionCells ) {\n return;\n }\n // select slide that matches first cell of slide\n var selectedCell = companionCells[0];\n var firstIndex = this.navCompanion.cells.indexOf( selectedCell );\n var lastIndex = firstIndex + companionCells.length - 1;\n var selectIndex = Math.floor( lerp( firstIndex, lastIndex,\n this.navCompanion.cellAlign ) );\n this.selectCell( selectIndex, false, isInstant );\n // set nav selected class\n this.removeNavSelectedElements();\n // stop if companion has more cells than this one\n if ( selectIndex >= this.cells.length ) {\n return;\n }\n\n var selectedCells = this.cells.slice( firstIndex, lastIndex + 1 );\n this.navSelectedElements = selectedCells.map( function( cell ) {\n return cell.element;\n });\n this.changeNavSelectedClass('add');\n};\n\nfunction lerp( a, b, t ) {\n return ( b - a ) * t + a;\n}\n\nproto.changeNavSelectedClass = function( method ) {\n this.navSelectedElements.forEach( function( navElem ) {\n navElem.classList[ method ]('is-nav-selected');\n });\n};\n\nproto.activateAsNavFor = function() {\n this.navCompanionSelect( true );\n};\n\nproto.removeNavSelectedElements = function() {\n if ( !this.navSelectedElements ) {\n return;\n }\n this.changeNavSelectedClass('remove');\n delete this.navSelectedElements;\n};\n\nproto.onNavStaticClick = function( event, pointer, cellElement, cellIndex ) {\n if ( typeof cellIndex == 'number' ) {\n this.navCompanion.selectCell( cellIndex );\n }\n};\n\nproto.deactivateAsNavFor = function() {\n this.removeNavSelectedElements();\n};\n\nproto.destroyAsNavFor = function() {\n if ( !this.navCompanion ) {\n return;\n }\n this.navCompanion.off( 'select', this.onNavCompanionSelect );\n this.off( 'staticClick', this.onNavStaticClick );\n delete this.navCompanion;\n};\n\n// ----- ----- //\n\nreturn Flickity;\n\n}));\n\n/*!\n * imagesLoaded v4.1.4\n * JavaScript is all like \"You images are done yet or what?\"\n * MIT License\n */\n\n( function( window, factory ) { 'use strict';\n // universal module definition\n\n /*global define: false, module: false, require: false */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'imagesloaded/imagesloaded',[\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.imagesLoaded = factory(\n window,\n window.EvEmitter\n );\n }\n\n})( typeof window !== 'undefined' ? window : this,\n\n// -------------------------- factory -------------------------- //\n\nfunction factory( window, EvEmitter ) {\n\n\n\nvar $ = window.jQuery;\nvar console = window.console;\n\n// -------------------------- helpers -------------------------- //\n\n// extend objects\nfunction extend( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n}\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nfunction makeArray( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n}\n\n// -------------------------- imagesLoaded -------------------------- //\n\n/**\n * @param {Array, Element, NodeList, String} elem\n * @param {Object or Function} options - if function, use as callback\n * @param {Function} onAlways - callback function\n */\nfunction ImagesLoaded( elem, options, onAlways ) {\n // coerce ImagesLoaded() without new, to be new ImagesLoaded()\n if ( !( this instanceof ImagesLoaded ) ) {\n return new ImagesLoaded( elem, options, onAlways );\n }\n // use elem as selector string\n var queryElem = elem;\n if ( typeof elem == 'string' ) {\n queryElem = document.querySelectorAll( elem );\n }\n // bail if bad element\n if ( !queryElem ) {\n console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) );\n return;\n }\n\n this.elements = makeArray( queryElem );\n this.options = extend( {}, this.options );\n // shift arguments if no options set\n if ( typeof options == 'function' ) {\n onAlways = options;\n } else {\n extend( this.options, options );\n }\n\n if ( onAlways ) {\n this.on( 'always', onAlways );\n }\n\n this.getImages();\n\n if ( $ ) {\n // add jQuery Deferred object\n this.jqDeferred = new $.Deferred();\n }\n\n // HACK check async to allow time to bind listeners\n setTimeout( this.check.bind( this ) );\n}\n\nImagesLoaded.prototype = Object.create( EvEmitter.prototype );\n\nImagesLoaded.prototype.options = {};\n\nImagesLoaded.prototype.getImages = function() {\n this.images = [];\n\n // filter & find items if we have an item selector\n this.elements.forEach( this.addElementImages, this );\n};\n\n/**\n * @param {Node} element\n */\nImagesLoaded.prototype.addElementImages = function( elem ) {\n // filter siblings\n if ( elem.nodeName == 'IMG' ) {\n this.addImage( elem );\n }\n // get background image on element\n if ( this.options.background === true ) {\n this.addElementBackgroundImages( elem );\n }\n\n // find children\n // no non-element nodes, #143\n var nodeType = elem.nodeType;\n if ( !nodeType || !elementNodeTypes[ nodeType ] ) {\n return;\n }\n var childImgs = elem.querySelectorAll('img');\n // concat childElems to filterFound array\n for ( var i=0; i < childImgs.length; i++ ) {\n var img = childImgs[i];\n this.addImage( img );\n }\n\n // get child background images\n if ( typeof this.options.background == 'string' ) {\n var children = elem.querySelectorAll( this.options.background );\n for ( i=0; i < children.length; i++ ) {\n var child = children[i];\n this.addElementBackgroundImages( child );\n }\n }\n};\n\nvar elementNodeTypes = {\n 1: true,\n 9: true,\n 11: true\n};\n\nImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n // Firefox returns null if in a hidden iframe https://bugzil.la/548397\n return;\n }\n // get url inside url(\"...\")\n var reURL = /url\\((['\"])?(.*?)\\1\\)/gi;\n var matches = reURL.exec( style.backgroundImage );\n while ( matches !== null ) {\n var url = matches && matches[2];\n if ( url ) {\n this.addBackground( url, elem );\n }\n matches = reURL.exec( style.backgroundImage );\n }\n};\n\n/**\n * @param {Image} img\n */\nImagesLoaded.prototype.addImage = function( img ) {\n var loadingImage = new LoadingImage( img );\n this.images.push( loadingImage );\n};\n\nImagesLoaded.prototype.addBackground = function( url, elem ) {\n var background = new Background( url, elem );\n this.images.push( background );\n};\n\nImagesLoaded.prototype.check = function() {\n var _this = this;\n this.progressedCount = 0;\n this.hasAnyBroken = false;\n // complete if no images\n if ( !this.images.length ) {\n this.complete();\n return;\n }\n\n function onProgress( image, elem, message ) {\n // HACK - Chrome triggers event before object properties have changed. #83\n setTimeout( function() {\n _this.progress( image, elem, message );\n });\n }\n\n this.images.forEach( function( loadingImage ) {\n loadingImage.once( 'progress', onProgress );\n loadingImage.check();\n });\n};\n\nImagesLoaded.prototype.progress = function( image, elem, message ) {\n this.progressedCount++;\n this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;\n // progress event\n this.emitEvent( 'progress', [ this, image, elem ] );\n if ( this.jqDeferred && this.jqDeferred.notify ) {\n this.jqDeferred.notify( this, image );\n }\n // check if completed\n if ( this.progressedCount == this.images.length ) {\n this.complete();\n }\n\n if ( this.options.debug && console ) {\n console.log( 'progress: ' + message, image, elem );\n }\n};\n\nImagesLoaded.prototype.complete = function() {\n var eventName = this.hasAnyBroken ? 'fail' : 'done';\n this.isComplete = true;\n this.emitEvent( eventName, [ this ] );\n this.emitEvent( 'always', [ this ] );\n if ( this.jqDeferred ) {\n var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';\n this.jqDeferred[ jqMethod ]( this );\n }\n};\n\n// -------------------------- -------------------------- //\n\nfunction LoadingImage( img ) {\n this.img = img;\n}\n\nLoadingImage.prototype = Object.create( EvEmitter.prototype );\n\nLoadingImage.prototype.check = function() {\n // If complete is true and browser supports natural sizes,\n // try to check for image status manually.\n var isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n // report based on naturalWidth\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n return;\n }\n\n // If none of the checks above matched, simulate loading on detached element.\n this.proxyImage = new Image();\n this.proxyImage.addEventListener( 'load', this );\n this.proxyImage.addEventListener( 'error', this );\n // bind to image as well for Firefox. #191\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.proxyImage.src = this.img.src;\n};\n\nLoadingImage.prototype.getIsImageComplete = function() {\n // check for non-zero, non-undefined naturalWidth\n // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671\n return this.img.complete && this.img.naturalWidth;\n};\n\nLoadingImage.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n this.emitEvent( 'progress', [ this, this.img, message ] );\n};\n\n// ----- events ----- //\n\n// trigger specified handler for event type\nLoadingImage.prototype.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\nLoadingImage.prototype.onload = function() {\n this.confirm( true, 'onload' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.onerror = function() {\n this.confirm( false, 'onerror' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.unbindEvents = function() {\n this.proxyImage.removeEventListener( 'load', this );\n this.proxyImage.removeEventListener( 'error', this );\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\n// -------------------------- Background -------------------------- //\n\nfunction Background( url, element ) {\n this.url = url;\n this.element = element;\n this.img = new Image();\n}\n\n// inherit LoadingImage prototype\nBackground.prototype = Object.create( LoadingImage.prototype );\n\nBackground.prototype.check = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.img.src = this.url;\n // check if image is already complete\n var isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n this.unbindEvents();\n }\n};\n\nBackground.prototype.unbindEvents = function() {\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\nBackground.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n this.emitEvent( 'progress', [ this, this.element, message ] );\n};\n\n// -------------------------- jQuery -------------------------- //\n\nImagesLoaded.makeJQueryPlugin = function( jQuery ) {\n jQuery = jQuery || window.jQuery;\n if ( !jQuery ) {\n return;\n }\n // set local variable\n $ = jQuery;\n // $().imagesLoaded()\n $.fn.imagesLoaded = function( options, callback ) {\n var instance = new ImagesLoaded( this, options, callback );\n return instance.jqDeferred.promise( $(this) );\n };\n};\n// try making plugin\nImagesLoaded.makeJQueryPlugin();\n\n// -------------------------- -------------------------- //\n\nreturn ImagesLoaded;\n\n});\n\n/*!\n * Flickity imagesLoaded v2.0.0\n * enables imagesLoaded option for Flickity\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'flickity/js/index',\n 'imagesloaded/imagesloaded'\n ], function( Flickity, imagesLoaded ) {\n return factory( window, Flickity, imagesLoaded );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('flickity'),\n require('imagesloaded')\n );\n } else {\n // browser global\n window.Flickity = factory(\n window,\n window.Flickity,\n window.imagesLoaded\n );\n }\n\n}( window, function factory( window, Flickity, imagesLoaded ) {\n'use strict';\n\nFlickity.createMethods.push('_createImagesLoaded');\n\nvar proto = Flickity.prototype;\n\nproto._createImagesLoaded = function() {\n this.on( 'activate', this.imagesLoaded );\n};\n\nproto.imagesLoaded = function() {\n if ( !this.options.imagesLoaded ) {\n return;\n }\n var _this = this;\n function onImagesLoadedProgress( instance, image ) {\n var cell = _this.getParentCell( image.img );\n _this.cellSizeChange( cell && cell.element );\n if ( !_this.options.freeScroll ) {\n _this.positionSliderAtSelected();\n }\n }\n imagesLoaded( this.slider ).on( 'progress', onImagesLoadedProgress );\n};\n\nreturn Flickity;\n\n}));\n\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/dist/flickity.pkgd.js\n// module id = 38\n// module chunks = 0","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*!\r\n * Flickity fullscreen v1.1.1\r\n * Enable fullscreen view for Flickity\r\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true*/\n\n(function (window, factory) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['flickity/js/index'], factory);\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(require('flickity'));\n } else {\n // browser global\n factory(window.Flickity);\n }\n})(window, function factory(Flickity) {\n 'use strict';\n\n Flickity.createMethods.push('_createFullscreen');\n var proto = Flickity.prototype;\n proto._createFullscreen = function () {\n this.isFullscreen = false;\n if (!this.options.fullscreen) {\n return;\n }\n // buttons\n this.viewFullscreenButton = new FullscreenButton('view', this);\n this.exitFullscreenButton = new FullscreenButton('exit', this);\n this.on('activate', this._changeFullscreenActive);\n this.on('deactivate', this._changeFullscreenActive);\n };\n\n // ----- activation ----- //\n\n proto._changeFullscreenActive = function () {\n var childMethod = this.isActive ? 'appendChild' : 'removeChild';\n this.element[childMethod](this.viewFullscreenButton.element);\n this.element[childMethod](this.exitFullscreenButton.element);\n // activate or deactivate buttons\n var activeMethod = this.isActive ? 'activate' : 'deactivate';\n this.viewFullscreenButton[activeMethod]();\n this.exitFullscreenButton[activeMethod]();\n };\n\n // ----- view, exit, toggle ----- //\n\n proto.viewFullscreen = function () {\n this._changeFullscreen(true);\n this.focus();\n };\n proto.exitFullscreen = function () {\n this._changeFullscreen(false);\n };\n proto._changeFullscreen = function (isView) {\n if (this.isFullscreen == isView) {\n return;\n }\n this.isFullscreen = isView;\n var classMethod = isView ? 'add' : 'remove';\n document.documentElement.classList[classMethod]('is-flickity-fullscreen');\n this.element.classList[classMethod]('is-fullscreen');\n this.resize();\n // HACK extra reposition on fullscreen for images\n if (this.isFullscreen) {\n this.reposition();\n }\n this.dispatchEvent('fullscreenChange', null, [isView]);\n };\n proto.toggleFullscreen = function () {\n this._changeFullscreen(!this.isFullscreen);\n };\n\n // ----- setGallerySize ----- //\n\n // overwrite so fullscreen cells are full height\n var setGallerySize = proto.setGallerySize;\n proto.setGallerySize = function () {\n if (!this.options.setGallerySize) {\n return;\n }\n if (this.isFullscreen) {\n // remove height style on fullscreen\n this.viewport.style.height = '';\n } else {\n // otherwise, do normal\n setGallerySize.call(this);\n }\n };\n\n // ----- keyboard ----- //\n\n // ESC key closes full screen\n Flickity.keyboardHandlers[27] = function () {\n this.exitFullscreen();\n };\n\n // ----- FullscreenButton ----- //\n\n function FullscreenButton(name, flickity) {\n this.name = name;\n this.createButton();\n this.createIcon();\n // events\n // trigger viewFullscreen or exitFullscreen on click\n this.onClick = function () {\n flickity[name + 'Fullscreen']();\n };\n this.clickHandler = this.onClick.bind(this);\n }\n FullscreenButton.prototype.createButton = function () {\n var element = this.element = document.createElement('button');\n element.className = 'flickity-button flickity-fullscreen-button ' + 'flickity-fullscreen-button-' + this.name;\n // prevent button from submitting form\n element.setAttribute('type', 'button');\n // set label\n var label = capitalize(this.name + ' full-screen');\n element.setAttribute('aria-label', label);\n element.title = label;\n };\n function capitalize(text) {\n return text[0].toUpperCase() + text.slice(1);\n }\n var svgURI = 'http://www.w3.org/2000/svg';\n var pathDirections = {\n view: 'M15,20,7,28h5v4H0V20H4v5l8-8Zm5-5,8-8v5h4V0H20V4h5l-8,8Z',\n exit: 'M32,3l-7,7h5v4H18V2h4V7l7-7ZM3,32l7-7v5h4V18H2v4H7L0,29Z'\n };\n FullscreenButton.prototype.createIcon = function () {\n var svg = document.createElementNS(svgURI, 'svg');\n svg.setAttribute('class', 'flickity-button-icon');\n svg.setAttribute('viewBox', '0 0 32 32');\n // path & direction\n var path = document.createElementNS(svgURI, 'path');\n var direction = pathDirections[this.name];\n path.setAttribute('d', direction);\n // put it together\n svg.appendChild(path);\n this.element.appendChild(svg);\n };\n FullscreenButton.prototype.activate = function () {\n this.element.addEventListener('click', this.clickHandler);\n };\n FullscreenButton.prototype.deactivate = function () {\n this.element.removeEventListener('click', this.clickHandler);\n };\n Flickity.FullscreenButton = FullscreenButton;\n Flickity.createMethods.push('_createPrevNextCells');\n Flickity.prototype._createPrevNextCells = function () {\n this.on('select', this.setPrevNextCells);\n };\n Flickity.prototype.setPrevNextCells = function () {\n // remove classes\n changeSlideClasses(this.previousSlide, 'remove', 'is-previous');\n changeSlideClasses(this.nextSlide, 'remove', 'is-next');\n // set slides\n this.previousSlide = this.slides[this.selectedIndex - 1];\n this.nextSlide = this.slides[this.selectedIndex + 1];\n // add classes\n changeSlideClasses(this.previousSlide, 'add', 'is-previous');\n changeSlideClasses(this.nextSlide, 'add', 'is-next');\n };\n function changeSlideClasses(slide, method, className) {\n if (!slide) {\n return;\n }\n slide.getCellElements().forEach(function (cellElem) {\n cellElem.classList[method](className);\n });\n }\n\n // ----- fin ----- //\n\n return Flickity;\n});\n\n\n// WEBPACK FOOTER //\n// ./scripts/vendor/flickity-fullscreen.js","/*!\n * Flickity v2.2.2\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-2021 Metafizzy\n */\n\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n './drag',\n './prev-next-button',\n './page-dots',\n './player',\n './add-remove-cell',\n './lazyload',\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('./flickity'),\n require('./drag'),\n require('./prev-next-button'),\n require('./page-dots'),\n require('./player'),\n require('./add-remove-cell'),\n require('./lazyload')\n );\n }\n\n} )( window, function factory( Flickity ) {\n return Flickity;\n} );\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/index.js\n// module id = 40\n// module chunks = 0","/**\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\n( function( window, factory ) {\n /*global define: false, module: false */\n 'use strict';\n // universal module definition\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\n}( window, function factory() {\n 'use strict';\n\n var matchesMethod = ( function() {\n var ElemProto = window.Element.prototype;\n // check for the standard method name first\n if ( ElemProto.matches ) {\n return 'matches';\n }\n // check un-prefixed\n if ( ElemProto.matchesSelector ) {\n return 'matchesSelector';\n }\n // check vendor prefixes\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 if ( ElemProto[ method ] ) {\n return method;\n }\n }\n })();\n\n return function matchesSelector( elem, selector ) {\n return elem[ matchesMethod ]( selector );\n };\n\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/desandro-matches-selector/matches-selector.js\n// module id = 41\n// module chunks = 0","// Flickity.Cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'get-size/get-size',\n ], function( getSize ) {\n return factory( window, getSize );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('get-size')\n );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Cell = factory(\n window,\n window.getSize\n );\n }\n\n}( window, function factory( window, getSize ) {\n\n'use strict';\n\nfunction Cell( elem, parent ) {\n this.element = elem;\n this.parent = parent;\n\n this.create();\n}\n\nvar proto = Cell.prototype;\n\nproto.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\nproto.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 this.element.removeAttribute('aria-hidden');\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\nproto.setPosition = function( x ) {\n this.x = x;\n this.updateTarget();\n this.renderPosition( x );\n};\n\n// setDefaultTarget v1 method, backwards compatibility, remove in v3\nproto.updateTarget = proto.setDefaultTarget = function() {\n var marginProperty = this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';\n this.target = this.x + this.size[ marginProperty ] +\n this.size.width * this.parent.cellAlign;\n};\n\nproto.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\nproto.select = function() {\n this.element.classList.add('is-selected');\n this.element.removeAttribute('aria-hidden');\n};\n\nproto.unselect = function() {\n this.element.classList.remove('is-selected');\n this.element.setAttribute( 'aria-hidden', 'true' );\n};\n\n/**\n * @param {Integer} shift - 0, 1, or -1\n */\nproto.wrapShift = function( shift ) {\n this.shift = shift;\n this.renderPosition( this.x + this.parent.slideableWidth * shift );\n};\n\nproto.remove = function() {\n this.element.parentNode.removeChild( this.element );\n};\n\nreturn Cell;\n\n} ) );\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/cell.js\n// module id = 42\n// module chunks = 0","// slide\n( function( window, factory ) {\n // universal module definition\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\n}( window, function factory() {\n'use strict';\n\nfunction 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\nvar proto = Slide.prototype;\n\nproto.addCell = function( cell ) {\n this.cells.push( cell );\n this.outerWidth += cell.size.outerWidth;\n this.height = Math.max( cell.size.outerHeight, this.height );\n // first cell stuff\n if ( this.cells.length == 1 ) {\n this.x = cell.x; // x comes from first cell\n var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\n this.firstMargin = cell.size[ beginMargin ];\n }\n};\n\nproto.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\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.select = function() {\n this.cells.forEach( function( cell ) {\n cell.select();\n } );\n};\n\nproto.unselect = function() {\n this.cells.forEach( function( cell ) {\n cell.unselect();\n } );\n};\n\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n } );\n};\n\nreturn Slide;\n\n} ) );\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/slide.js\n// module id = 43\n// module chunks = 0","// animate\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'fizzy-ui-utils/utils',\n ], function( utils ) {\n return factory( window, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.animatePrototype = factory(\n window,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, utils ) {\n\n'use strict';\n\n// -------------------------- animate -------------------------- //\n\nvar proto = {};\n\nproto.startAnimation = function() {\n if ( this.isAnimating ) {\n return;\n }\n\n this.isAnimating = true;\n this.restingFrames = 0;\n this.animate();\n};\n\nproto.animate = function() {\n this.applyDragForce();\n this.applySelectedAttraction();\n\n var previousX = this.x;\n\n this.integratePhysics();\n this.positionSlider();\n this.settle( previousX );\n // animate next frame\n if ( this.isAnimating ) {\n var _this = this;\n requestAnimationFrame( function animateFrame() {\n _this.animate();\n } );\n }\n};\n\nproto.positionSlider = function() {\n var x = this.x;\n // wrap position around\n if ( this.options.wrapAround && this.cells.length > 1 ) {\n x = utils.modulo( x, this.slideableWidth );\n x -= this.slideableWidth;\n this.shiftWrapCells( x );\n }\n\n this.setTranslateX( x, this.isAnimating );\n this.dispatchScrollEvent();\n};\n\nproto.setTranslateX = function( x, is3d ) {\n x += this.cursorPosition;\n // reverse if right-to-left and using transform\n x = this.options.rightToLeft ? -x : x;\n var translateX = this.getPositionValue( x );\n // use 3D transforms for hardware acceleration on iOS\n // but use 2D when settled, for better font-rendering\n this.slider.style.transform = is3d ?\n 'translate3d(' + translateX + ',0,0)' : 'translateX(' + translateX + ')';\n};\n\nproto.dispatchScrollEvent = function() {\n var firstSlide = this.slides[0];\n if ( !firstSlide ) {\n return;\n }\n var positionX = -this.x - firstSlide.target;\n var progress = positionX / this.slidesWidth;\n this.dispatchEvent( 'scroll', null, [ progress, positionX ] );\n};\n\nproto.positionSliderAtSelected = function() {\n if ( !this.cells.length ) {\n return;\n }\n this.x = -this.selectedSlide.target;\n this.velocity = 0; // stop wobble\n this.positionSlider();\n};\n\nproto.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\nproto.settle = function( previousX ) {\n // keep track of frames where x hasn't moved\n var isResting = !this.isPointerDown &&\n Math.round( this.x * 100 ) == Math.round( previousX * 100 );\n if ( isResting ) {\n this.restingFrames++;\n }\n // stop animating if resting for 3 or more frames\n if ( this.restingFrames > 2 ) {\n this.isAnimating = false;\n delete this.isFreeScrolling;\n // render position with translateX when settled\n this.positionSlider();\n this.dispatchEvent( 'settle', null, [ this.selectedIndex ] );\n }\n};\n\nproto.shiftWrapCells = function( x ) {\n // shift before cells\n var beforeGap = this.cursorPosition + x;\n this._shiftCells( this.beforeShiftCells, beforeGap, -1 );\n // shift after cells\n var afterGap = this.size.innerWidth - ( x + this.slideableWidth + this.cursorPosition );\n this._shiftCells( this.afterShiftCells, afterGap, 1 );\n};\n\nproto._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\nproto._unshiftCells = function( cells ) {\n if ( !cells || !cells.length ) {\n return;\n }\n for ( var i = 0; i < cells.length; i++ ) {\n cells[i].wrapShift( 0 );\n }\n};\n\n// -------------------------- physics -------------------------- //\n\nproto.integratePhysics = function() {\n this.x += this.velocity;\n this.velocity *= this.getFrictionFactor();\n};\n\nproto.applyForce = function( force ) {\n this.velocity += force;\n};\n\nproto.getFrictionFactor = function() {\n return 1 - this.options[ this.isFreeScrolling ? 'freeScrollFriction' : 'friction' ];\n};\n\nproto.getRestingPosition = function() {\n // my thanks to Steven Wittens, who simplified this math greatly\n return this.x + this.velocity / ( 1 - this.getFrictionFactor() );\n};\n\nproto.applyDragForce = function() {\n if ( !this.isDraggable || !this.isPointerDown ) {\n return;\n }\n // change the position to drag position by applying force\n var dragVelocity = this.dragX - this.x;\n var dragForce = dragVelocity - this.velocity;\n this.applyForce( dragForce );\n};\n\nproto.applySelectedAttraction = function() {\n // do not attract if pointer down or no slides\n var dragDown = this.isDraggable && this.isPointerDown;\n if ( dragDown || this.isFreeScrolling || !this.slides.length ) {\n return;\n }\n var distance = this.selectedSlide.target * -1 - this.x;\n var force = distance * this.options.selectedAttraction;\n this.applyForce( force );\n};\n\nreturn proto;\n\n} ) );\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/animate.js\n// module id = 44\n// module chunks = 0","// drag\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unidragger/unidragger',\n 'fizzy-ui-utils/utils',\n ], 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(\n window,\n require('./flickity'),\n require('unidragger'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = factory(\n window,\n window.Flickity,\n window.Unidragger,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unidragger, utils ) {\n\n'use strict';\n\n// ----- defaults ----- //\n\nutils.extend( Flickity.defaults, {\n draggable: '>1',\n dragThreshold: 3,\n} );\n\n// ----- create ----- //\n\nFlickity.createMethods.push('_createDrag');\n\n// -------------------------- drag prototype -------------------------- //\n\nvar proto = Flickity.prototype;\nutils.extend( proto, Unidragger.prototype );\nproto._touchActionValue = 'pan-y';\n\n// -------------------------- -------------------------- //\n\nvar isTouch = 'createTouch' in document;\nvar isTouchmoveScrollCanceled = false;\n\nproto._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 );\n // 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 if ( isTouch && !isTouchmoveScrollCanceled ) {\n window.addEventListener( 'touchmove', function() {} );\n isTouchmoveScrollCanceled = true;\n }\n};\n\nproto.onActivateDrag = function() {\n this.handles = [ this.viewport ];\n this.bindHandles();\n this.updateDraggable();\n};\n\nproto.onDeactivateDrag = function() {\n this.unbindHandles();\n this.element.classList.remove('is-draggable');\n};\n\nproto.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 if ( this.isDraggable ) {\n this.element.classList.add('is-draggable');\n } else {\n this.element.classList.remove('is-draggable');\n }\n};\n\n// backwards compatibility\nproto.bindDrag = function() {\n this.options.draggable = true;\n this.updateDraggable();\n};\n\nproto.unbindDrag = function() {\n this.options.draggable = false;\n this.updateDraggable();\n};\n\nproto._uiChangeDrag = function() {\n delete this.isFreeScrolling;\n};\n\n// -------------------------- pointer events -------------------------- //\n\nproto.pointerDown = function( event, pointer ) {\n if ( !this.isDraggable ) {\n this._pointerDownDefault( event, pointer );\n return;\n }\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n\n this._pointerDownPreventDefault( event );\n this.pointerDownFocus( event );\n // blur\n if ( document.activeElement != this.element ) {\n // do not blur if already focused\n this.pointerDownBlur();\n }\n\n // stop if it was moving\n this.dragX = this.x;\n this.viewport.classList.add('is-pointer-down');\n // track scrolling\n this.pointerDownScroll = getScrollPosition();\n window.addEventListener( 'scroll', this );\n\n this._pointerDownDefault( event, pointer );\n};\n\n// default pointerDown logic, used for staticClick\nproto._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 };\n // bind move and end events\n this._bindPostStartEvents( event );\n this.dispatchEvent( 'pointerDown', event, [ pointer ] );\n};\n\nvar focusNodes = {\n INPUT: true,\n TEXTAREA: true,\n SELECT: true,\n};\n\nproto.pointerDownFocus = function( event ) {\n var isFocusNode = focusNodes[ event.target.nodeName ];\n if ( !isFocusNode ) {\n this.focus();\n }\n};\n\nproto._pointerDownPreventDefault = function( event ) {\n var isTouchStart = event.type == 'touchstart';\n var isTouchPointer = event.pointerType == 'touch';\n var isFocusNode = focusNodes[ event.target.nodeName ];\n if ( !isTouchStart && !isTouchPointer && !isFocusNode ) {\n event.preventDefault();\n }\n};\n\n// ----- move ----- //\n\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > this.options.dragThreshold;\n};\n\n// ----- up ----- //\n\nproto.pointerUp = function( event, pointer ) {\n delete this.isTouchScrolling;\n this.viewport.classList.remove('is-pointer-down');\n this.dispatchEvent( 'pointerUp', event, [ pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto.pointerDone = function() {\n window.removeEventListener( 'scroll', this );\n delete this.pointerDownScroll;\n};\n\n// -------------------------- dragging -------------------------- //\n\nproto.dragStart = function( event, pointer ) {\n if ( !this.isDraggable ) {\n return;\n }\n this.dragStartPosition = this.x;\n this.startAnimation();\n window.removeEventListener( 'scroll', this );\n this.dispatchEvent( 'dragStart', event, [ pointer ] );\n};\n\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.dispatchEvent( 'pointerMove', event, [ pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n if ( !this.isDraggable ) {\n return;\n }\n event.preventDefault();\n\n this.previousDragX = this.dragX;\n // reverse if right-to-left\n var direction = this.options.rightToLeft ? -1 : 1;\n if ( this.options.wrapAround ) {\n // wrap around move. #589\n moveVector.x %= this.slideableWidth;\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\n this.dragMoveTime = new Date();\n this.dispatchEvent( 'dragMove', event, [ pointer, moveVector ] );\n};\n\nproto.dragEnd = function( event, pointer ) {\n if ( !this.isDraggable ) {\n return;\n }\n if ( this.options.freeScroll ) {\n this.isFreeScrolling = true;\n }\n // set selectedIndex based on where flick will end up\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 &&\n -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 delete this.previousDragX;\n // apply selection\n // TODO refactor this, selecting here feels weird\n // HACK, set flag so dragging stays in correct direction\n this.isDragSelect = this.options.wrapAround;\n this.select( index );\n delete this.isDragSelect;\n this.dispatchEvent( 'dragEnd', event, [ pointer ] );\n};\n\nproto.dragEndRestingSelect = function() {\n var restingX = this.getRestingPosition();\n // how far away from selected slide\n var distance = Math.abs( this.getSlideDistance( -restingX, this.selectedIndex ) );\n // get closet resting going up and going down\n var positiveResting = this._getClosestResting( restingX, distance, 1 );\n var negativeResting = this._getClosestResting( restingX, distance, -1 );\n // use closer resting for wrap-around\n var index = positiveResting.distance < negativeResting.distance ?\n positiveResting.index : negativeResting.index;\n return index;\n};\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 */\nproto._getClosestResting = function( restingX, distance, increment ) {\n var index = this.selectedIndex;\n var minDistance = Infinity;\n var condition = this.options.contain && !this.options.wrapAround ?\n // if contain, keep going if distance is equal to minDistance\n function( dist, minDist ) {\n return dist <= minDist;\n } : function( dist, minDist ) {\n return dist < minDist;\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 if ( distance === null ) {\n break;\n }\n distance = Math.abs( distance );\n }\n return {\n distance: minDistance,\n // selected was previous index\n index: index - increment,\n };\n};\n\n/**\n * measure distance between x and a slide target\n * @param {Number} x - horizontal position\n * @param {Integer} index - slide index\n * @returns {Number} - slide distance\n */\nproto.getSlideDistance = function( x, index ) {\n var len = this.slides.length;\n // wrap around if at least 2 slides\n var isWrapAround = this.options.wrapAround && len > 1;\n var slideIndex = isWrapAround ? utils.modulo( index, len ) : index;\n var slide = this.slides[ slideIndex ];\n if ( !slide ) {\n return null;\n }\n // add distance for wrap-around slides\n var wrap = isWrapAround ? this.slideableWidth * Math.floor( index/len ) : 0;\n return x - ( slide.target + wrap );\n};\n\nproto.dragEndBoostSelect = function() {\n // do not boost if no previousDragX or dragMoveTime\n if ( this.previousDragX === undefined || !this.dragMoveTime ||\n // 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 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 return 0;\n};\n\n// ----- staticClick ----- //\n\nproto.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};\n\n// ----- scroll ----- //\n\nproto.onscroll = function() {\n var scroll = getScrollPosition();\n var scrollMoveX = this.pointerDownScroll.x - scroll.x;\n var scrollMoveY = this.pointerDownScroll.y - scroll.y;\n // cancel click/tap if scroll is too much\n if ( Math.abs( scrollMoveX ) > 3 || Math.abs( scrollMoveY ) > 3 ) {\n this._pointerDone();\n }\n};\n\n// ----- utils ----- //\n\nfunction getScrollPosition() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset,\n };\n}\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/drag.js\n// module id = 45\n// module chunks = 0","/*!\n * Unidragger v2.4.0\n * Draggable base class\n * MIT license\n */\n\n/*jshint browser: true, unused: true, undef: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'unipointer/unipointer'\n ], function( Unipointer ) {\n return factory( window, Unipointer );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('unipointer')\n );\n } else {\n // browser global\n window.Unidragger = factory(\n window,\n window.Unipointer\n );\n }\n\n}( window, function factory( window, Unipointer ) {\n\n'use strict';\n\n// -------------------------- Unidragger -------------------------- //\n\nfunction Unidragger() {}\n\n// inherit Unipointer & EvEmitter\nvar proto = Unidragger.prototype = Object.create( Unipointer.prototype );\n\n// ----- bind start ----- //\n\nproto.bindHandles = function() {\n this._bindHandles( true );\n};\n\nproto.unbindHandles = function() {\n this._bindHandles( false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\nproto._bindHandles = function( isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n // bind each handle\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n var touchAction = isAdd ? this._touchActionValue : '';\n for ( var i=0; i < this.handles.length; i++ ) {\n var handle = this.handles[i];\n this._bindStartEvent( handle, isAdd );\n handle[ bindMethod ]( 'click', this );\n // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n if ( window.PointerEvent ) {\n handle.style.touchAction = touchAction;\n }\n }\n};\n\n// prototype so it can be overwriteable by Flickity\nproto._touchActionValue = 'none';\n\n// ----- start event ----- //\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerDown = function( event, pointer ) {\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n event.preventDefault();\n this.pointerDownBlur();\n // bind move and end events\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// nodes that have text fields\nvar cursorNodes = {\n TEXTAREA: true,\n INPUT: true,\n SELECT: true,\n OPTION: true,\n};\n\n// input types that do not have text fields\nvar clickTypes = {\n radio: true,\n checkbox: true,\n button: true,\n submit: true,\n image: true,\n file: true,\n};\n\n// dismiss inputs with text fields. flickity#403, flickity#404\nproto.okayPointerDown = function( event ) {\n var isCursorNode = cursorNodes[ event.target.nodeName ];\n var isClickType = clickTypes[ event.target.type ];\n var isOkay = !isCursorNode || isClickType;\n if ( !isOkay ) {\n this._pointerReset();\n }\n return isOkay;\n};\n\n// kludge to blur previously focused input\nproto.pointerDownBlur = function() {\n var focused = document.activeElement;\n // do not blur body for IE10, metafizzy/flickity#117\n var canBlur = focused && focused.blur && focused != document.body;\n if ( canBlur ) {\n focused.blur();\n }\n};\n\n// ----- move event ----- //\n\n/**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\n// base pointer move logic\nproto._dragPointerMove = function( event, pointer ) {\n var moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY\n };\n // start drag if pointer has moved far enough to start drag\n if ( !this.isDragging && this.hasDragStarted( moveVector ) ) {\n this._dragStart( event, pointer );\n }\n return moveVector;\n};\n\n// condition if pointer has moved far enough to start drag\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3;\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto._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};\n\n// -------------------------- drag -------------------------- //\n\n// dragStart\nproto._dragStart = function( event, pointer ) {\n this.isDragging = true;\n // prevent clicks\n this.isPreventingClicks = true;\n this.dragStart( event, pointer );\n};\n\nproto.dragStart = function( event, pointer ) {\n this.emitEvent( 'dragStart', [ event, pointer ] );\n};\n\n// dragMove\nproto._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\nproto.dragMove = function( event, pointer, moveVector ) {\n event.preventDefault();\n this.emitEvent( 'dragMove', [ event, pointer, moveVector ] );\n};\n\n// dragEnd\nproto._dragEnd = function( event, pointer ) {\n // set flags\n this.isDragging = false;\n // re-enable clicking async\n setTimeout( function() {\n delete this.isPreventingClicks;\n }.bind( this ) );\n\n this.dragEnd( event, pointer );\n};\n\nproto.dragEnd = function( event, pointer ) {\n this.emitEvent( 'dragEnd', [ event, pointer ] );\n};\n\n// ----- onclick ----- //\n\n// handle all clicks and prevent clicks when dragging\nproto.onclick = function( event ) {\n if ( this.isPreventingClicks ) {\n event.preventDefault();\n }\n};\n\n// ----- staticClick ----- //\n\n// triggered after pointer down & up with no/tiny movement\nproto._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 );\n\n // set flag for emulated clicks 300ms after touchend\n if ( event.type != 'mouseup' ) {\n this.isIgnoringMouseUp = true;\n // reset flag after 300ms\n setTimeout( function() {\n delete this.isIgnoringMouseUp;\n }.bind( this ), 400 );\n }\n};\n\nproto.staticClick = function( event, pointer ) {\n this.emitEvent( 'staticClick', [ event, pointer ] );\n};\n\n// ----- utils ----- //\n\nUnidragger.getPointerPoint = Unipointer.getPointerPoint;\n\n// ----- ----- //\n\nreturn Unidragger;\n\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/unidragger/unidragger.js\n// module id = 46\n// module chunks = 0","// prev/next buttons\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unipointer/unipointer',\n 'fizzy-ui-utils/utils',\n ], 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(\n window,\n require('./flickity'),\n require('unipointer'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.Unipointer,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n'use strict';\n\nvar svgURI = 'http://www.w3.org/2000/svg';\n\n// -------------------------- PrevNextButton -------------------------- //\n\nfunction PrevNextButton( direction, parent ) {\n this.direction = direction;\n this.parent = parent;\n this._create();\n}\n\nPrevNextButton.prototype = Object.create( Unipointer.prototype );\n\nPrevNextButton.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\n var element = this.element = document.createElement('button');\n element.className = 'flickity-button flickity-prev-next-button';\n element.className += this.isPrevious ? ' previous' : ' next';\n // prevent button from submitting form http://stackoverflow.com/a/10836076/182183\n element.setAttribute( 'type', 'button' );\n // init as disabled\n this.disable();\n\n element.setAttribute( 'aria-label', this.isPrevious ? 'Previous' : 'Next' );\n\n // create arrow\n var svg = this.createSVG();\n element.appendChild( svg );\n // events\n this.parent.on( 'select', this.update.bind( this ) );\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPrevNextButton.prototype.activate = function() {\n this.bindStartEvent( this.element );\n this.element.addEventListener( 'click', this );\n // add to DOM\n this.parent.element.appendChild( this.element );\n};\n\nPrevNextButton.prototype.deactivate = function() {\n // remove from DOM\n this.parent.element.removeChild( this.element );\n // click events\n this.unbindStartEvent( this.element );\n this.element.removeEventListener( 'click', this );\n};\n\nPrevNextButton.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' );\n // rotate arrow\n if ( !this.isLeft ) {\n path.setAttribute( 'transform', 'translate(100, 100) rotate(180) ' );\n }\n svg.appendChild( path );\n return svg;\n};\n\n// get SVG path movmement\nfunction getArrowMovements( shape ) {\n // use shape as movement if string\n if ( typeof shape == 'string' ) {\n return shape;\n }\n // create movement string\n return 'M ' + shape.x0 + ',50' +\n ' L ' + shape.x1 + ',' + ( shape.y1 + 50 ) +\n ' L ' + shape.x2 + ',' + ( shape.y2 + 50 ) +\n ' L ' + shape.x3 + ',50 ' +\n ' L ' + shape.x2 + ',' + ( 50 - shape.y2 ) +\n ' L ' + shape.x1 + ',' + ( 50 - shape.y1 ) +\n ' Z';\n}\n\nPrevNextButton.prototype.handleEvent = utils.handleEvent;\n\nPrevNextButton.prototype.onclick = function() {\n if ( !this.isEnabled ) {\n return;\n }\n this.parent.uiChange();\n var method = this.isPrevious ? 'previous' : 'next';\n this.parent[ method ]();\n};\n\n// ----- ----- //\n\nPrevNextButton.prototype.enable = function() {\n if ( this.isEnabled ) {\n return;\n }\n this.element.disabled = false;\n this.isEnabled = true;\n};\n\nPrevNextButton.prototype.disable = function() {\n if ( !this.isEnabled ) {\n return;\n }\n this.element.disabled = true;\n this.isEnabled = false;\n};\n\nPrevNextButton.prototype.update = function() {\n // index of first or last slide, if previous or next\n var slides = this.parent.slides;\n // enable is wrapAround and at least 2 slides\n if ( this.parent.options.wrapAround && slides.length > 1 ) {\n this.enable();\n return;\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\nPrevNextButton.prototype.destroy = function() {\n this.deactivate();\n this.allOff();\n};\n\n// -------------------------- Flickity prototype -------------------------- //\n\nutils.extend( Flickity.defaults, {\n prevNextButtons: true,\n arrowShape: {\n x0: 10,\n x1: 60, y1: 50,\n x2: 70, y2: 40,\n x3: 30,\n },\n} );\n\nFlickity.createMethods.push('_createPrevNextButtons');\nvar proto = Flickity.prototype;\n\nproto._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\n this.on( 'activate', this.activatePrevNextButtons );\n};\n\nproto.activatePrevNextButtons = function() {\n this.prevButton.activate();\n this.nextButton.activate();\n this.on( 'deactivate', this.deactivatePrevNextButtons );\n};\n\nproto.deactivatePrevNextButtons = function() {\n this.prevButton.deactivate();\n this.nextButton.deactivate();\n this.off( 'deactivate', this.deactivatePrevNextButtons );\n};\n\n// -------------------------- -------------------------- //\n\nFlickity.PrevNextButton = PrevNextButton;\n\nreturn Flickity;\n\n} ) );\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/prev-next-button.js\n// module id = 47\n// module chunks = 0","// page dots\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unipointer/unipointer',\n 'fizzy-ui-utils/utils',\n ], 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(\n window,\n require('./flickity'),\n require('unipointer'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.Unipointer,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n\n// -------------------------- PageDots -------------------------- //\n\n'use strict';\n\nfunction PageDots( parent ) {\n this.parent = parent;\n this._create();\n}\n\nPageDots.prototype = Object.create( Unipointer.prototype );\n\nPageDots.prototype._create = function() {\n // create holder element\n this.holder = document.createElement('ol');\n this.holder.className = 'flickity-page-dots';\n // create dots, array of elements\n this.dots = [];\n // events\n this.handleClick = this.onClick.bind( this );\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPageDots.prototype.activate = function() {\n this.setDots();\n this.holder.addEventListener( 'click', this.handleClick );\n this.bindStartEvent( this.holder );\n // add to DOM\n this.parent.element.appendChild( this.holder );\n};\n\nPageDots.prototype.deactivate = function() {\n this.holder.removeEventListener( 'click', this.handleClick );\n this.unbindStartEvent( this.holder );\n // remove from DOM\n this.parent.element.removeChild( this.holder );\n};\n\nPageDots.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 if ( delta > 0 ) {\n this.addDots( delta );\n } else if ( delta < 0 ) {\n this.removeDots( -delta );\n }\n};\n\nPageDots.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\nPageDots.prototype.removeDots = function( count ) {\n // remove from this.dots collection\n var removeDots = this.dots.splice( this.dots.length - count, count );\n // remove from DOM\n removeDots.forEach( function( dot ) {\n this.holder.removeChild( dot );\n }, this );\n};\n\nPageDots.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 }\n // don't proceed if no dots\n if ( !this.dots.length ) {\n return;\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\nPageDots.prototype.onTap = // old method name, backwards-compatible\nPageDots.prototype.onClick = function( event ) {\n var target = event.target;\n // only care about dot clicks\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\nPageDots.prototype.destroy = function() {\n this.deactivate();\n this.allOff();\n};\n\nFlickity.PageDots = PageDots;\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n pageDots: true,\n} );\n\nFlickity.createMethods.push('_createPageDots');\n\nvar proto = Flickity.prototype;\n\nproto._createPageDots = function() {\n if ( !this.options.pageDots ) {\n return;\n }\n this.pageDots = new PageDots( this );\n // events\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\nproto.activatePageDots = function() {\n this.pageDots.activate();\n};\n\nproto.updateSelectedPageDots = function() {\n this.pageDots.updateSelected();\n};\n\nproto.updatePageDots = function() {\n this.pageDots.setDots();\n};\n\nproto.deactivatePageDots = function() {\n this.pageDots.deactivate();\n};\n\n// ----- ----- //\n\nFlickity.PageDots = PageDots;\n\nreturn Flickity;\n\n} ) );\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/page-dots.js\n// module id = 48\n// module chunks = 0","// player & autoPlay\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter',\n 'fizzy-ui-utils/utils',\n './flickity',\n ], 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(\n require('ev-emitter'),\n require('fizzy-ui-utils'),\n require('./flickity')\n );\n } else {\n // browser global\n factory(\n window.EvEmitter,\n window.fizzyUIUtils,\n window.Flickity\n );\n }\n\n}( window, function factory( EvEmitter, utils, Flickity ) {\n\n'use strict';\n\n// -------------------------- Player -------------------------- //\n\nfunction Player( parent ) {\n this.parent = parent;\n this.state = 'stopped';\n // visibility change event handler\n this.onVisibilityChange = this.visibilityChange.bind( this );\n this.onVisibilityPlay = this.visibilityPlay.bind( this );\n}\n\nPlayer.prototype = Object.create( EvEmitter.prototype );\n\n// start play\nPlayer.prototype.play = function() {\n if ( this.state == 'playing' ) {\n return;\n }\n // do not play if page is hidden, start playing when page is visible\n var isPageHidden = document.hidden;\n if ( isPageHidden ) {\n document.addEventListener( 'visibilitychange', this.onVisibilityPlay );\n return;\n }\n\n this.state = 'playing';\n // listen to visibility change\n document.addEventListener( 'visibilitychange', this.onVisibilityChange );\n // start ticking\n this.tick();\n};\n\nPlayer.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;\n // default to 3 seconds\n time = typeof time == 'number' ? time : 3000;\n var _this = this;\n // HACK: reset ticks if stopped and started within interval\n this.clear();\n this.timeout = setTimeout( function() {\n _this.parent.next( true );\n _this.tick();\n }, time );\n};\n\nPlayer.prototype.stop = function() {\n this.state = 'stopped';\n this.clear();\n // remove visibility change event\n document.removeEventListener( 'visibilitychange', this.onVisibilityChange );\n};\n\nPlayer.prototype.clear = function() {\n clearTimeout( this.timeout );\n};\n\nPlayer.prototype.pause = function() {\n if ( this.state == 'playing' ) {\n this.state = 'paused';\n this.clear();\n }\n};\n\nPlayer.prototype.unpause = function() {\n // re-start play if paused\n if ( this.state == 'paused' ) {\n this.play();\n }\n};\n\n// pause if page visibility is hidden, unpause if visible\nPlayer.prototype.visibilityChange = function() {\n var isPageHidden = document.hidden;\n this[ isPageHidden ? 'pause' : 'unpause' ]();\n};\n\nPlayer.prototype.visibilityPlay = function() {\n this.play();\n document.removeEventListener( 'visibilitychange', this.onVisibilityPlay );\n};\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n pauseAutoPlayOnHover: true,\n} );\n\nFlickity.createMethods.push('_createPlayer');\nvar proto = Flickity.prototype;\n\nproto._createPlayer = function() {\n this.player = new Player( this );\n\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\nproto.activatePlayer = function() {\n if ( !this.options.autoPlay ) {\n return;\n }\n this.player.play();\n this.element.addEventListener( 'mouseenter', this );\n};\n\n// Player API, don't hate the ... thanks I know where the door is\n\nproto.playPlayer = function() {\n this.player.play();\n};\n\nproto.stopPlayer = function() {\n this.player.stop();\n};\n\nproto.pausePlayer = function() {\n this.player.pause();\n};\n\nproto.unpausePlayer = function() {\n this.player.unpause();\n};\n\nproto.deactivatePlayer = function() {\n this.player.stop();\n this.element.removeEventListener( 'mouseenter', this );\n};\n\n// ----- mouseenter/leave ----- //\n\n// pause auto-play on hover\nproto.onmouseenter = function() {\n if ( !this.options.pauseAutoPlayOnHover ) {\n return;\n }\n this.player.pause();\n this.element.addEventListener( 'mouseleave', this );\n};\n\n// resume auto-play on hover off\nproto.onmouseleave = function() {\n this.player.unpause();\n this.element.removeEventListener( 'mouseleave', this );\n};\n\n// ----- ----- //\n\nFlickity.Player = Player;\n\nreturn Flickity;\n\n} ) );\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/player.js\n// module id = 49\n// module chunks = 0","// add, remove cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, utils ) {\n return factory( window, Flickity, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, utils ) {\n\n'use strict';\n\n// append cells to a document fragment\nfunction getCellsFragment( cells ) {\n var fragment = document.createDocumentFragment();\n cells.forEach( function( cell ) {\n fragment.appendChild( cell.element );\n } );\n return fragment;\n}\n\n// -------------------------- add/remove cell prototype -------------------------- //\n\nvar proto = Flickity.prototype;\n\n/**\n * Insert, prepend, or append cells\n * @param {[Element, Array, NodeList]} elems - Elements to insert\n * @param {Integer} index - Zero-based number to insert\n */\nproto.insert = function( elems, index ) {\n var cells = this._makeCells( elems );\n if ( !cells || !cells.length ) {\n return;\n }\n var len = this.cells.length;\n // default to append\n index = index === undefined ? len : index;\n // add cells with document fragment\n var fragment = getCellsFragment( cells );\n // append to slider\n var isAppend = index == len;\n if ( isAppend ) {\n this.slider.appendChild( fragment );\n } else {\n var insertCellElement = this.cells[ index ].element;\n this.slider.insertBefore( fragment, insertCellElement );\n }\n // add to this.cells\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 this.cellChange( index, true );\n};\n\nproto.append = function( elems ) {\n this.insert( elems, this.cells.length );\n};\n\nproto.prepend = function( elems ) {\n this.insert( elems, 0 );\n};\n\n/**\n * Remove cells\n * @param {[Element, Array, NodeList]} elems - ELements to remove\n */\nproto.remove = function( elems ) {\n var cells = this.getCells( elems );\n if ( !cells || !cells.length ) {\n return;\n }\n\n var minCellIndex = this.cells.length - 1;\n // remove cells from collection & DOM\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\n this.cellChange( minCellIndex, true );\n};\n\n/**\n * logic to be run after a cell's size changes\n * @param {Element} elem - cell's element\n */\nproto.cellSizeChange = function( elem ) {\n var cell = this.getCell( elem );\n if ( !cell ) {\n return;\n }\n cell.getSize();\n\n var index = this.cells.indexOf( cell );\n this.cellChange( index );\n};\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 * @param {Boolean} isPositioningSlider - Positions slider after selection\n */\nproto.cellChange = function( changedCellIndex, isPositioningSlider ) {\n var prevSelectedElem = this.selectedElement;\n this._positionCells( changedCellIndex );\n this._getWrapShiftCells();\n this.setGallerySize();\n // update selectedIndex\n // try to maintain position & select previous selected element\n var cell = this.getCell( prevSelectedElem );\n if ( cell ) {\n this.selectedIndex = this.getCellSlideIndex( cell );\n }\n this.selectedIndex = Math.min( this.slides.length - 1, this.selectedIndex );\n\n this.emitEvent( 'cellChange', [ changedCellIndex ] );\n // position slider\n this.select( this.selectedIndex );\n // do not position slider after lazy load\n if ( isPositioningSlider ) {\n this.positionSliderAtSelected();\n }\n};\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/add-remove-cell.js\n// module id = 50\n// module chunks = 0","// lazyload\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, utils ) {\n return factory( window, Flickity, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, utils ) {\n'use strict';\n\nFlickity.createMethods.push('_createLazyload');\nvar proto = Flickity.prototype;\n\nproto._createLazyload = function() {\n this.on( 'select', this.lazyLoad );\n};\n\nproto.lazyLoad = function() {\n var lazyLoad = this.options.lazyLoad;\n if ( !lazyLoad ) {\n return;\n }\n // get adjacent cells, use lazyLoad option for adjacent count\n var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\n var cellElems = this.getAdjacentCellElements( adjCount );\n // get lazy images in those cells\n var lazyImages = [];\n cellElems.forEach( function( cellElem ) {\n var lazyCellImages = getCellLazyImages( cellElem );\n lazyImages = lazyImages.concat( lazyCellImages );\n } );\n // load lazy images\n lazyImages.forEach( function( img ) {\n new LazyLoader( img, this );\n }, this );\n};\n\nfunction 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 if ( lazyloadAttr || srcAttr || srcsetAttr ) {\n return [ cellElem ];\n }\n }\n // select lazy images in cell\n var lazySelector = 'img[data-flickity-lazyload], ' +\n 'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]';\n var imgs = cellElem.querySelectorAll( lazySelector );\n return utils.makeArray( imgs );\n}\n\n// -------------------------- LazyLoader -------------------------- //\n\n/**\n * class to handle loading images\n * @param {Image} img - Image element\n * @param {Flickity} flickity - Flickity instance\n */\nfunction LazyLoader( img, flickity ) {\n this.img = img;\n this.flickity = flickity;\n this.load();\n}\n\nLazyLoader.prototype.handleEvent = utils.handleEvent;\n\nLazyLoader.prototype.load = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n // get src & srcset\n var src = this.img.getAttribute('data-flickity-lazyload') ||\n this.img.getAttribute('data-flickity-lazyload-src');\n var srcset = this.img.getAttribute('data-flickity-lazyload-srcset');\n // set src & serset\n this.img.src = src;\n if ( srcset ) {\n this.img.setAttribute( 'srcset', srcset );\n }\n // remove attr\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\nLazyLoader.prototype.onload = function( event ) {\n this.complete( event, 'flickity-lazyloaded' );\n};\n\nLazyLoader.prototype.onerror = function( event ) {\n this.complete( event, 'flickity-lazyerror' );\n};\n\nLazyLoader.prototype.complete = function( event, className ) {\n // unbind events\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n\n var cell = this.flickity.getParentCell( this.img );\n var cellElem = cell && cell.element;\n this.flickity.cellSizeChange( cellElem );\n\n this.img.classList.add( className );\n this.flickity.dispatchEvent( 'lazyLoad', event, cellElem );\n};\n\n// ----- ----- //\n\nFlickity.LazyLoader = LazyLoader;\n\nreturn Flickity;\n\n} ) );\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/flickity/js/lazyload.js\n// module id = 51\n// module chunks = 0","// txtTruncate - a jQuery plugin to truncate text\n// version 1.1.0\n// https://github.com/blakehaswell/txtTruncate\n//\n// Copyright (c) 2011-2012 Blake Haswell\n// Licensed under the MIT license: http://opensource.org/licenses/MIT\n(function ($) {\n 'use strict';\n\n // Constructor\n function Truncator(elem, options) {\n // Cache the instance.\n var self = this;\n self.$elem = $(elem);\n self.lineHeight = self._getLineHeight();\n self.origHeight = self.$elem.height();\n self.origTxt = self.$elem.text();\n\n // Override default settings with passed options (if any)\n self.settings = $.extend({}, self._defaults, options || {});\n self._setLines();\n self.truncate();\n\n // Text should be truncated whenever the window has been resized so that it\n // works as expected on fluid layouts\n var timeout;\n $(window).resize(function () {\n // Clear any existing timeout.\n clearTimeout(timeout);\n\n // Create a new one.\n timeout = setTimeout($.proxy(self.truncate, self), 200);\n });\n }\n Truncator.prototype = {\n /**\r\n * If the element doesn't fit in the specified number of lines then we\r\n * collapse the element to the desired height and truncate the text.\r\n */\n hide: function hide() {\n if (this._getCurrentLines() > this.settings.lines) {\n this.$elem.animate({\n height: this.lineHeight * this.settings.lines\n }, $.proxy(this.truncate, this));\n }\n },\n /**\r\n * Restores the element's original text and expands the element to take\r\n * up the required space.\r\n */\n show: function show() {\n // Set the element's height to the current height to stop it from\n // getting bigger when we restore the original text\n this.$elem.height(this.$elem.height());\n this._restoreOrigTxt();\n this.$elem.animate({\n height: this.origHeight\n });\n },\n /**\r\n * Removes characters from the element until it fits in the specified\r\n * number of lines.\r\n */\n truncate: function truncate() {\n // Prepare the element before calculating the lines\n this._prepareElem();\n var currTxt = this._restoreOrigTxt(),\n origTxtLines = this._getCurrentLines(),\n charsPerLine = Math.round(currTxt.length / origTxtLines),\n charsPerHalfLine = Math.round(charsPerLine / 2);\n\n // Only continue to truncate if we have more lines than we want\n if (origTxtLines > this.settings.lines) {\n // If we have way more lines than we want take a guess at how\n // much to cull\n if (origTxtLines > this.settings.lines + 1) {\n // Given our charsPerLine value, truncate text so it's about\n // 1 line too tall\n currTxt = this._truncateElementTxt((this.settings.lines + 1) * charsPerLine);\n\n // If we still have way too many lines then keep removing\n // half a line of text until we only have 1 line more than\n // we want\n while (this._getCurrentLines() > this.settings.lines + 1) {\n currTxt = this._truncateElementTxt(currTxt.length - charsPerHalfLine);\n }\n }\n\n // Take off 1 character at a time until we have the number of\n // lines we want.\n while (this._getCurrentLines() > this.settings.lines) {\n // Due to potential weirdness where height() and lineHeight produce different values even for one line, we need to stop infinite loops.\n // If we're down to half a line and still truncating, something has gone wrong.\n if (currTxt.length == charsPerHalfLine) {\n this._recoverFromLoop(currTxt);\n break;\n }\n\n // Otherwise, truncate.\n currTxt = this._truncateElementTxt(currTxt.length - 1);\n }\n }\n this._restoreElem();\n },\n /**\r\n * The default settings to use if no `options` argument is provided when\r\n * instantiating the Truncator.\r\n */\n _defaults: {\n end: '…',\n lines: null\n },\n /**\r\n * Get the line height, if we're in IE and there's no unit of measurement convert it to a %\r\n * so jQuery can calculate the right px value and IE doesn't explode.\r\n */\n _getLineHeight: function _getLineHeight() {\n var ieVal = null;\n\n // check if IE's 'currentStyle' is available\n if (document.body.currentStyle) {\n // get the line height as IE reports it - note % are converted to pt\n ieVal = this.$elem.get(0).currentStyle.lineHeight;\n\n // if there's no unit of measurement\n if (!ieVal.match(/px|PX|pt|PT|em|EM/)) {\n // set the lineHeight to an equivalent % so that IE reports a value\n // jQuery can work with\n this.$elem.css('line-height', ieVal * 100 + '%');\n }\n }\n return parseInt(this.$elem.css('line-height'), 10);\n },\n /**\r\n * Determines how many \"lines\" the element takes up (based on\r\n * its height).\r\n */\n _getCurrentLines: function _getCurrentLines() {\n return Math.round(this.$elem.height() / this.lineHeight);\n },\n /**\r\n * Prepares the element to be manipulated by the truncate method by\r\n * removing CSS properties which influence height.\r\n *\r\n * TODO Call at the start of the truncate method and reset properties to their original value at the end?\r\n */\n _prepareElem: function _prepareElem() {\n // Store the original CSS values so we can restore them later\n this.css = {\n height: $.style(this.$elem, 'height') || 'auto',\n maxHeight: this.$elem.css('max-height'),\n minHeight: this.$elem.css('min-height')\n };\n\n // Remove CSS values which influence the height of the element\n this.$elem.css({\n height: 'auto',\n maxHeight: 'none',\n minHeight: 0\n });\n },\n /**\r\n * Helps recover from infinite loops brought on by stupid discrepancies between height and line-height.\r\n * @param string currTxt The currently displayed text.\r\n */\n _recoverFromLoop: function _recoverFromLoop(currTxt) {\n // Grab the current height of the element (which should be the 'ideal' height).\n var height = this.$elem.height();\n var maxLength = this.origTxt.length;\n\n // Now keep adding characters back until the height changes, or alternatively, we've restored all the characters.\n while (height == this.$elem.height() && currTxt.length < maxLength) {\n currTxt = this._truncateElementTxt(currTxt.length + 1);\n }\n\n // If the height actually changed, take off the last character we added.\n if (this.$elem.height() != height) {\n this._truncateElementTxt(currTxt.length - 1);\n }\n\n // If we wound up displaying everything, drop the ...\n if (currTxt.length == maxLength) {\n this._restoreOrigTxt();\n }\n },\n /**\r\n * Restores the element's original styles.\r\n */\n _restoreElem: function _restoreElem() {\n this.$elem.css(this.css);\n },\n /**\r\n * Restores the element's original text. Return value is the\r\n * original text.\r\n */\n _restoreOrigTxt: function _restoreOrigTxt() {\n this.$elem.text(this.origTxt);\n return this.origTxt;\n },\n /**\r\n * If a number of lines hasn't been defined in the settings then we set\r\n * the lines based on the element's `max-height` or, failing that,\r\n * default to 1 line.\r\n */\n _setLines: function _setLines() {\n // If a maximum number of lines hasn't been defined then we\n // calculate it\n if (!this.settings.lines) {\n // If the element's max-height is greater than its line-height\n // we use that to calculate the number of lines\n var maxHeight = parseInt(this.$elem.css('max-height'), 10);\n if (maxHeight > this.lineHeight) {\n this.settings.lines = Math.floor(maxHeight / this.lineHeight);\n }\n\n // Otherwise we'll just assume that we want to truncate to\n // 1 line\n else {\n this.settings.lines = 1;\n }\n }\n },\n /**\r\n * Given a `length`, this method truncates the element's text to that\r\n * length and adds the prepends the `end` string.\r\n *\r\n * Returns the truncated text (not including the `end` string).\r\n */\n _truncateElementTxt: function _truncateElementTxt(length) {\n var txt = this.origTxt.substring(0, length);\n this.$elem.text(txt + this.settings.end);\n return txt;\n }\n };\n\n // jQuery plugin\n $.fn.txtTruncate = function (options) {\n return this.each(function () {\n $(this).data('truncator', new Truncator(this, options));\n });\n };\n})(jQuery);\n\n\n// WEBPACK FOOTER //\n// ./scripts/vendor/jquery.txtTruncate.js","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*!\r\n * Isotopee PACKAGED v3.0.6\r\n *\r\n * Licensed GPLv3 for open source use\r\n * or Isotopee Commercial License for commercial use\r\n *\r\n * https://isotopee.metafizzy.co\r\n * Copyright 2010-2018 Metafizzy\r\n */\n\n/**\r\n * Bridget makes jQuery widgets\r\n * v2.0.1\r\n * MIT license\r\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n\n(function (window, factory) {\n // universal module definition\n /*jshint strict: false */ /* globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define('jquery-bridget/jquery-bridget', ['jquery'], function (jQuery) {\n return factory(window, jQuery);\n });\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('jquery'));\n } else {\n // browser global\n window.jQueryBridget = factory(window, window.jQuery);\n }\n})(window, function factory(window, jQuery) {\n 'use strict';\n\n // ----- utils ----- //\n var arraySlice = Array.prototype.slice;\n\n // helper function for logging errors\n // $.error breaks jQuery chaining\n var console = window.console;\n var logError = typeof console == 'undefined' ? function () {} : function (message) {\n console.error(message);\n };\n\n // ----- jQueryBridget ----- //\n\n function jQueryBridget(namespace, PluginClass, $) {\n $ = $ || jQuery || window.jQuery;\n if (!$) {\n return;\n }\n\n // add option method -> $().plugin('option', {...})\n if (!PluginClass.prototype.option) {\n // option setter\n PluginClass.prototype.option = function (opts) {\n // bail out if not an object\n if (!$.isPlainObject(opts)) {\n return;\n }\n this.options = $.extend(true, this.options, opts);\n };\n }\n\n // make jQuery plugin\n $.fn[namespace] = function (arg0 /*, arg1 */) {\n if (typeof arg0 == 'string') {\n // method call $().plugin( 'methodName', { options } )\n // shift arguments by 1\n var args = arraySlice.call(arguments, 1);\n return methodCall(this, arg0, args);\n }\n // just $().plugin({ options })\n plainCall(this, arg0);\n return this;\n };\n\n // $().plugin('methodName')\n function methodCall($elems, methodName, args) {\n var returnValue;\n var pluginMethodStr = '$().' + namespace + '(\"' + methodName + '\")';\n $elems.each(function (i, elem) {\n // get instance\n var instance = $.data(elem, namespace);\n if (!instance) {\n logError(namespace + ' not initialized. Cannot call methods, i.e. ' + pluginMethodStr);\n return;\n }\n var method = instance[methodName];\n if (!method || methodName.charAt(0) == '_') {\n logError(pluginMethodStr + ' is not a valid method');\n return;\n }\n\n // apply method, get return value\n var value = method.apply(instance, args);\n // set return value if value is returned, use only first value\n returnValue = returnValue === undefined ? value : returnValue;\n });\n return returnValue !== undefined ? returnValue : $elems;\n }\n function plainCall($elems, options) {\n $elems.each(function (i, elem) {\n var instance = $.data(elem, namespace);\n if (instance) {\n // set options & init\n instance.option(options);\n instance._init();\n } else {\n // initialize new instance\n instance = new PluginClass(elem, options);\n $.data(elem, namespace, instance);\n }\n });\n }\n updateJQuery($);\n }\n\n // ----- updateJQuery ----- //\n\n // set $.bridget for v1 backwards compatibility\n function updateJQuery($) {\n if (!$ || $ && $.bridget) {\n return;\n }\n $.bridget = jQueryBridget;\n }\n updateJQuery(jQuery || window.jQuery);\n\n // ----- ----- //\n\n return jQueryBridget;\n});\n\n/**\r\n * EvEmitter v1.1.0\r\n * Lil' event emitter\r\n * MIT License\r\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n(function (global, factory) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if (typeof define == 'function' && define.amd) {\n // AMD - RequireJS\n define('ev-emitter/ev-emitter', factory);\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _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 function EvEmitter() {}\n var proto = EvEmitter.prototype;\n proto.on = function (eventName, listener) {\n if (!eventName || !listener) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[eventName] = events[eventName] || [];\n // only add once\n if (listeners.indexOf(listener) == -1) {\n listeners.push(listener);\n }\n return this;\n };\n proto.once = function (eventName, listener) {\n if (!eventName || !listener) {\n return;\n }\n // add event\n this.on(eventName, listener);\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[eventName] = onceEvents[eventName] || {};\n // set flag\n onceListeners[listener] = true;\n return this;\n };\n proto.off = function (eventName, listener) {\n var listeners = this._events && this._events[eventName];\n if (!listeners || !listeners.length) {\n return;\n }\n var index = listeners.indexOf(listener);\n if (index != -1) {\n listeners.splice(index, 1);\n }\n return this;\n };\n proto.emitEvent = function (eventName, args) {\n var listeners = this._events && this._events[eventName];\n if (!listeners || !listeners.length) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[eventName];\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n var isOnce = onceListeners && onceListeners[listener];\n if (isOnce) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off(eventName, listener);\n // unset once flag\n delete onceListeners[listener];\n }\n // trigger listener\n listener.apply(this, args);\n }\n return this;\n };\n proto.allOff = function () {\n delete this._events;\n delete this._onceEvents;\n };\n return EvEmitter;\n});\n\n/*!\r\n * getSize v2.0.3\r\n * measure size of elements\r\n * MIT license\r\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n/* globals console: false */\n\n(function (window, factory) {\n /* jshint strict: false */ /* globals define, module */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define('get-size/get-size', factory);\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _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';\n\n // -------------------------- helpers -------------------------- //\n\n // get a number from a string, not a percentage\n function getStyleSize(value) {\n var num = parseFloat(value);\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN(num);\n return isValid && num;\n }\n function noop() {}\n var logError = typeof console == 'undefined' ? noop : function (message) {\n console.error(message);\n };\n\n // -------------------------- measurements -------------------------- //\n\n var measurements = ['paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth', 'borderBottomWidth'];\n var measurementsLength = measurements.length;\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 for (var i = 0; i < measurementsLength; i++) {\n var measurement = measurements[i];\n size[measurement] = 0;\n }\n return size;\n }\n\n // -------------------------- getStyle -------------------------- //\n\n /**\r\n * getStyle, get style of element, check for Firefox bug\r\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\r\n */\n function getStyle(elem) {\n var style = getComputedStyle(elem);\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 return style;\n }\n\n // -------------------------- setup -------------------------- //\n\n var isSetup = false;\n var isBoxSizeOuter;\n\n /**\r\n * setup\r\n * check isBoxSizerOuter\r\n * do on first getSize() rather than on page load for Firefox bug\r\n */\n function setup() {\n // setup once\n if (isSetup) {\n return;\n }\n isSetup = true;\n\n // -------------------------- box sizing -------------------------- //\n\n /**\r\n * Chrome & Safari measure the outer-width on style.width on border-box elems\r\n * IE11 & Firefox<29 measures the inner-width\r\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);\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round(getStyleSize(style.width)) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n body.removeChild(div);\n }\n\n // -------------------------- getSize -------------------------- //\n\n function getSize(elem) {\n setup();\n\n // use querySeletor if elem is string\n if (typeof elem == 'string') {\n elem = document.querySelector(elem);\n }\n\n // do not proceed on non-objects\n if (!elem || _typeof(elem) != 'object' || !elem.nodeType) {\n return;\n }\n var style = getStyle(elem);\n\n // if hidden, everything is 0\n if (style.display == 'none') {\n return getZeroSize();\n }\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for (var i = 0; i < measurementsLength; i++) {\n var measurement = measurements[i];\n var value = style[measurement];\n var num = parseFloat(value);\n // any 'auto', 'medium' value will be 0\n size[measurement] = !isNaN(num) ? num : 0;\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;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize(style.width);\n if (styleWidth !== false) {\n size.width = styleWidth + (\n // add padding and border unless it's already including it\n isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth);\n }\n var styleHeight = getStyleSize(style.height);\n if (styleHeight !== false) {\n size.height = styleHeight + (\n // add padding and border unless it's already including it\n isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight);\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 return getSize;\n});\n\n/**\r\n * matchesSelector v2.0.2\r\n * matchesSelector( element, '.selector' )\r\n * MIT license\r\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n(function (window, factory) {\n /*global define: false, module: false */\n 'use strict';\n\n // universal module definition\n if (typeof define == 'function' && define.amd) {\n // AMD\n define('desandro-matches-selector/matches-selector', factory);\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _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;\n // check for the standard method name first\n if (ElemProto.matches) {\n return 'matches';\n }\n // check un-prefixed\n if (ElemProto.matchesSelector) {\n return 'matchesSelector';\n }\n // check vendor prefixes\n var prefixes = ['webkit', 'moz', 'ms', 'o'];\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var method = prefix + 'MatchesSelector';\n if (ElemProto[method]) {\n return method;\n }\n }\n }();\n return function matchesSelector(elem, selector) {\n return elem[matchesMethod](selector);\n };\n});\n\n/**\r\n * Fizzy UI utils v2.0.7\r\n * MIT license\r\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n(function (window, factory) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if (typeof define == 'function' && define.amd) {\n // AMD\n define('fizzy-ui-utils/utils', ['desandro-matches-selector/matches-selector'], function (matchesSelector) {\n return factory(window, matchesSelector);\n });\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _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 var utils = {};\n\n // ----- extend ----- //\n\n // extends objects\n utils.extend = function (a, b) {\n for (var prop in b) {\n a[prop] = b[prop];\n }\n return a;\n };\n\n // ----- modulo ----- //\n\n utils.modulo = function (num, div) {\n return (num % div + div) % div;\n };\n\n // ----- makeArray ----- //\n\n var arraySlice = Array.prototype.slice;\n\n // turn element or nodeList into an array\n utils.makeArray = function (obj) {\n if (Array.isArray(obj)) {\n // use object if already an array\n return obj;\n }\n // return empty array if undefined or null. #6\n if (obj === null || obj === undefined) {\n return [];\n }\n var isArrayLike = _typeof(obj) == 'object' && typeof obj.length == 'number';\n if (isArrayLike) {\n // convert nodeList to array\n return arraySlice.call(obj);\n }\n\n // array of single index\n return [obj];\n };\n\n // ----- removeFrom ----- //\n\n utils.removeFrom = function (ary, obj) {\n var index = ary.indexOf(obj);\n if (index != -1) {\n ary.splice(index, 1);\n }\n };\n\n // ----- getParent ----- //\n\n utils.getParent = function (elem, selector) {\n while (elem.parentNode && elem != document.body) {\n elem = elem.parentNode;\n if (matchesSelector(elem, selector)) {\n return elem;\n }\n }\n };\n\n // ----- getQueryElement ----- //\n\n // use element as selector string\n utils.getQueryElement = function (elem) {\n if (typeof elem == 'string') {\n return document.querySelector(elem);\n }\n return elem;\n };\n\n // ----- handleEvent ----- //\n\n // enable .ontype to trigger from .addEventListener( elem, 'type' )\n utils.handleEvent = function (event) {\n var method = 'on' + event.type;\n if (this[method]) {\n this[method](event);\n }\n };\n\n // ----- filterFindElements ----- //\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 }\n // add elem if no selector\n if (!selector) {\n ffElems.push(elem);\n return;\n }\n // filter & find items if we have a selector\n // filter\n if (matchesSelector(elem, selector)) {\n ffElems.push(elem);\n }\n // find children\n var childElems = elem.querySelectorAll(selector);\n // concat childElems to filterFound array\n for (var i = 0; i < childElems.length; i++) {\n ffElems.push(childElems[i]);\n }\n });\n return ffElems;\n };\n\n // ----- debounceMethod ----- //\n\n utils.debounceMethod = function (_class, methodName, threshold) {\n threshold = threshold || 100;\n // original method\n var method = _class.prototype[methodName];\n var timeoutName = methodName + 'Timeout';\n _class.prototype[methodName] = function () {\n var timeout = this[timeoutName];\n clearTimeout(timeout);\n var args = arguments;\n var _this = this;\n this[timeoutName] = setTimeout(function () {\n method.apply(_this, args);\n delete _this[timeoutName];\n }, threshold);\n };\n };\n\n // ----- docReady ----- //\n\n utils.docReady = function (callback) {\n var readyState = document.readyState;\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 };\n\n // ----- htmlInit ----- //\n\n // http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\n utils.toDashed = function (str) {\n return str.replace(/(.)([A-Z])/g, function (match, $1, $2) {\n return $1 + '-' + $2;\n }).toLowerCase();\n };\n var console = window.console;\n /**\r\n * allow user to initialize classes via [data-namespace] or .js-namespace class\r\n * htmlInit( Widget, 'widgetName' )\r\n * options are parsed from data-namespace-options\r\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 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 return;\n }\n // initialize\n var instance = new WidgetClass(elem, options);\n // make available via $().data('namespace')\n if (jQuery) {\n jQuery.data(elem, namespace, instance);\n }\n });\n });\n };\n\n // ----- ----- //\n\n return utils;\n});\n\n/**\r\n * Outlayer Item\r\n */\n\n(function (window, factory) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD - RequireJS\n define('outlayer/item', ['ev-emitter/ev-emitter', 'get-size/get-size'], factory);\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) == 'object' && module.exports) {\n // CommonJS - Browserify, Webpack\n module.exports = factory(require('ev-emitter'), require('get-size'));\n } else {\n // browser global\n window.Outlayer = {};\n window.Outlayer.Item = factory(window.EvEmitter, window.getSize);\n }\n})(window, function factory(EvEmitter, getSize) {\n 'use strict';\n\n // ----- helpers ----- //\n function isEmptyObj(obj) {\n for (var prop in obj) {\n return false;\n }\n prop = null;\n return true;\n }\n\n // -------------------------- CSS3 support -------------------------- //\n\n var docElemStyle = document.documentElement.style;\n var transitionProperty = typeof docElemStyle.transition == 'string' ? 'transition' : 'WebkitTransition';\n var transformProperty = typeof docElemStyle.transform == 'string' ? 'transform' : 'WebkitTransform';\n var transitionEndEvent = {\n WebkitTransition: 'webkitTransitionEnd',\n transition: 'transitionend'\n }[transitionProperty];\n\n // cache all vendor properties that could have vendor prefix\n var vendorProperties = {\n transform: transformProperty,\n transition: transitionProperty,\n transitionDuration: transitionProperty + 'Duration',\n transitionProperty: transitionProperty + 'Property',\n transitionDelay: transitionProperty + 'Delay'\n };\n\n // -------------------------- Item -------------------------- //\n\n function Item(element, layout) {\n if (!element) {\n return;\n }\n this.element = element;\n // parent layout class, i.e. Masonry, Isotopee, or Packery\n this.layout = layout;\n this.position = {\n x: 0,\n y: 0\n };\n this._create();\n }\n\n // inherit EvEmitter\n var proto = Item.prototype = Object.create(EvEmitter.prototype);\n proto.constructor = Item;\n proto._create = function () {\n // transition objects\n this._transn = {\n ingProperties: {},\n clean: {},\n onEnd: {}\n };\n this.css({\n position: 'absolute'\n });\n };\n\n // trigger specified handler for event type\n proto.handleEvent = function (event) {\n var method = 'on' + event.type;\n if (this[method]) {\n this[method](event);\n }\n };\n proto.getSize = function () {\n this.size = getSize(this.element);\n };\n\n /**\r\n * apply CSS styles to element\r\n * @param {Object} style\r\n */\n proto.css = function (style) {\n var elemStyle = this.element.style;\n for (var prop in style) {\n // use vendor property if available\n var supportedProp = vendorProperties[prop] || prop;\n elemStyle[supportedProp] = style[prop];\n }\n };\n\n // measure position, and sets it\n proto.getPosition = function () {\n var style = getComputedStyle(this.element);\n var isOriginLeft = this.layout._getOption('originLeft');\n var isOriginTop = this.layout._getOption('originTop');\n var xValue = style[isOriginLeft ? 'left' : 'right'];\n var yValue = style[isOriginTop ? 'top' : 'bottom'];\n var x = parseFloat(xValue);\n var y = parseFloat(yValue);\n // convert percent to pixels\n var layoutSize = this.layout.size;\n if (xValue.indexOf('%') != -1) {\n x = x / 100 * layoutSize.width;\n }\n if (yValue.indexOf('%') != -1) {\n y = y / 100 * layoutSize.height;\n }\n // clean up 'auto' or other non-integer values\n x = isNaN(x) ? 0 : x;\n y = isNaN(y) ? 0 : y;\n // remove padding from measurement\n x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight;\n y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom;\n this.position.x = x;\n this.position.y = y;\n };\n\n // set settled position, apply padding\n proto.layoutPosition = function () {\n var layoutSize = this.layout.size;\n var style = {};\n var isOriginLeft = this.layout._getOption('originLeft');\n var isOriginTop = this.layout._getOption('originTop');\n\n // x\n var xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight';\n var xProperty = isOriginLeft ? 'left' : 'right';\n var xResetProperty = isOriginLeft ? 'right' : 'left';\n var x = this.position.x + layoutSize[xPadding];\n // set in percentage or pixels\n style[xProperty] = this.getXValue(x);\n // reset other property\n style[xResetProperty] = '';\n\n // y\n var yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom';\n var yProperty = isOriginTop ? 'top' : 'bottom';\n var yResetProperty = isOriginTop ? 'bottom' : 'top';\n var y = this.position.y + layoutSize[yPadding];\n // set in percentage or pixels\n style[yProperty] = this.getYValue(y);\n // reset other property\n style[yResetProperty] = '';\n this.css(style);\n this.emitEvent('layout', [this]);\n };\n proto.getXValue = function (x) {\n var isHorizontal = this.layout._getOption('horizontal');\n return this.layout.options.percentPosition && !isHorizontal ? x / this.layout.size.width * 100 + '%' : x + 'px';\n };\n proto.getYValue = function (y) {\n var isHorizontal = this.layout._getOption('horizontal');\n return this.layout.options.percentPosition && isHorizontal ? y / this.layout.size.height * 100 + '%' : y + 'px';\n };\n proto._transitionTo = function (x, y) {\n this.getPosition();\n // get current x & y from top/left\n var curX = this.position.x;\n var curY = this.position.y;\n var didNotMove = x == this.position.x && y == this.position.y;\n\n // save end position\n this.setPosition(x, y);\n\n // if did not move and not transitioning, just go to layout\n if (didNotMove && !this.isTransitioning) {\n this.layoutPosition();\n return;\n }\n var transX = x - curX;\n var transY = y - curY;\n var transitionStyle = {};\n transitionStyle.transform = this.getTranslate(transX, transY);\n this.transition({\n to: transitionStyle,\n onTransitionEnd: {\n transform: this.layoutPosition\n },\n isCleaning: true\n });\n };\n proto.getTranslate = function (x, y) {\n // flip cooridinates if origin on right or bottom\n var isOriginLeft = this.layout._getOption('originLeft');\n var isOriginTop = this.layout._getOption('originTop');\n x = isOriginLeft ? x : -x;\n y = isOriginTop ? y : -y;\n return 'translate3d(' + x + 'px, ' + y + 'px, 0)';\n };\n\n // non transition + transform support\n proto.goTo = function (x, y) {\n this.setPosition(x, y);\n this.layoutPosition();\n };\n proto.moveTo = proto._transitionTo;\n proto.setPosition = function (x, y) {\n this.position.x = parseFloat(x);\n this.position.y = parseFloat(y);\n };\n\n // ----- transition ----- //\n\n /**\r\n * @param {Object} style - CSS\r\n * @param {Function} onTransitionEnd\r\n */\n\n // non transition, just trigger callback\n proto._nonTransition = function (args) {\n this.css(args.to);\n if (args.isCleaning) {\n this._removeStyles(args.to);\n }\n for (var prop in args.onTransitionEnd) {\n args.onTransitionEnd[prop].call(this);\n }\n };\n\n /**\r\n * proper transition\r\n * @param {Object} args - arguments\r\n * @param {Object} to - style to transition to\r\n * @param {Object} from - style to start transition from\r\n * @param {Boolean} isCleaning - removes transition styles after transition\r\n * @param {Function} onTransitionEnd - callback\r\n */\n proto.transition = function (args) {\n // redirect to nonTransition if no transition duration\n if (!parseFloat(this.layout.options.transitionDuration)) {\n this._nonTransition(args);\n return;\n }\n var _transition = this._transn;\n // keep track of onTransitionEnd callback by css property\n for (var prop in args.onTransitionEnd) {\n _transition.onEnd[prop] = args.onTransitionEnd[prop];\n }\n // keep track of properties that are transitioning\n for (prop in args.to) {\n _transition.ingProperties[prop] = true;\n // keep track of properties to clean up when transition is done\n if (args.isCleaning) {\n _transition.clean[prop] = true;\n }\n }\n\n // set from styles\n if (args.from) {\n this.css(args.from);\n // force redraw. http://blog.alexmaccaw.com/css-transitions\n var h = this.element.offsetHeight;\n // hack for JSHint to hush about unused var\n h = null;\n }\n // enable transition\n this.enableTransition(args.to);\n // set styles that are transitioning\n this.css(args.to);\n this.isTransitioning = true;\n };\n\n // dash before all cap letters, including first for\n // WebkitTransform => -webkit-transform\n function toDashedAll(str) {\n return str.replace(/([A-Z])/g, function ($1) {\n return '-' + $1.toLowerCase();\n });\n }\n var transitionProps = 'opacity,' + toDashedAll(transformProperty);\n proto.enableTransition = function /* style */\n () {\n // HACK changing transitionProperty during a transition\n // will cause transition to jump\n if (this.isTransitioning) {\n return;\n }\n\n // make `transition: foo, bar, baz` from style object\n // HACK un-comment this when enableTransition can work\n // while a transition is happening\n // var transitionValues = [];\n // for ( var prop in style ) {\n // // dash-ify camelCased properties like WebkitTransition\n // prop = vendorProperties[ prop ] || prop;\n // transitionValues.push( toDashedAll( prop ) );\n // }\n // munge number to millisecond, to match stagger\n var duration = this.layout.options.transitionDuration;\n duration = typeof duration == 'number' ? duration + 'ms' : duration;\n // enable transition styles\n this.css({\n transitionProperty: transitionProps,\n transitionDuration: duration,\n transitionDelay: this.staggerDelay || 0\n });\n // listen for transition end event\n this.element.addEventListener(transitionEndEvent, this, false);\n };\n\n // ----- events ----- //\n\n proto.onwebkitTransitionEnd = function (event) {\n this.ontransitionend(event);\n };\n proto.onotransitionend = function (event) {\n this.ontransitionend(event);\n };\n\n // properties that I munge to make my life easier\n var dashedVendorProperties = {\n '-webkit-transform': 'transform'\n };\n proto.ontransitionend = function (event) {\n // disregard bubbled events from children\n if (event.target !== this.element) {\n return;\n }\n var _transition = this._transn;\n // get property name of transitioned property, convert to prefix-free\n var propertyName = dashedVendorProperties[event.propertyName] || event.propertyName;\n\n // remove property that has completed transitioning\n delete _transition.ingProperties[propertyName];\n // check if any properties are still transitioning\n if (isEmptyObj(_transition.ingProperties)) {\n // all properties have completed transitioning\n this.disableTransition();\n }\n // clean style\n if (propertyName in _transition.clean) {\n // clean up style\n this.element.style[event.propertyName] = '';\n delete _transition.clean[propertyName];\n }\n // trigger onTransitionEnd callback\n if (propertyName in _transition.onEnd) {\n var onTransitionEnd = _transition.onEnd[propertyName];\n onTransitionEnd.call(this);\n delete _transition.onEnd[propertyName];\n }\n this.emitEvent('transitionEnd', [this]);\n };\n proto.disableTransition = function () {\n this.removeTransitionStyles();\n this.element.removeEventListener(transitionEndEvent, this, false);\n this.isTransitioning = false;\n };\n\n /**\r\n * removes style property from element\r\n * @param {Object} style\r\n **/\n proto._removeStyles = function (style) {\n // clean up transition styles\n var cleanStyle = {};\n for (var prop in style) {\n cleanStyle[prop] = '';\n }\n this.css(cleanStyle);\n };\n var cleanTransitionStyle = {\n transitionProperty: '',\n transitionDuration: '',\n transitionDelay: ''\n };\n proto.removeTransitionStyles = function () {\n // remove transition\n this.css(cleanTransitionStyle);\n };\n\n // ----- stagger ----- //\n\n proto.stagger = function (delay) {\n delay = isNaN(delay) ? 0 : delay;\n this.staggerDelay = delay + 'ms';\n };\n\n // ----- show/hide/remove ----- //\n\n // remove element from DOM\n proto.removeElem = function () {\n this.element.parentNode.removeChild(this.element);\n // remove display: none\n this.css({\n display: ''\n });\n this.emitEvent('remove', [this]);\n };\n proto.remove = function () {\n // just remove element if no transition support or no transition\n if (!transitionProperty || !parseFloat(this.layout.options.transitionDuration)) {\n this.removeElem();\n return;\n }\n\n // start transition\n this.once('transitionEnd', function () {\n this.removeElem();\n });\n this.hide();\n };\n proto.reveal = function () {\n delete this.isHidden;\n // remove display: none\n this.css({\n display: ''\n });\n var options = this.layout.options;\n var onTransitionEnd = {};\n var transitionEndProperty = this.getHideRevealTransitionEndProperty('visibleStyle');\n onTransitionEnd[transitionEndProperty] = this.onRevealTransitionEnd;\n this.transition({\n from: options.hiddenStyle,\n to: options.visibleStyle,\n isCleaning: true,\n onTransitionEnd: onTransitionEnd\n });\n };\n proto.onRevealTransitionEnd = function () {\n // check if still visible\n // during transition, item may have been hidden\n if (!this.isHidden) {\n this.emitEvent('reveal');\n }\n };\n\n /**\r\n * get style property use for hide/reveal transition end\r\n * @param {String} styleProperty - hiddenStyle/visibleStyle\r\n * @returns {String}\r\n */\n proto.getHideRevealTransitionEndProperty = function (styleProperty) {\n var optionStyle = this.layout.options[styleProperty];\n // use opacity\n if (optionStyle.opacity) {\n return 'opacity';\n }\n // get first property\n for (var prop in optionStyle) {\n return prop;\n }\n };\n proto.hide = function () {\n // set flag\n this.isHidden = true;\n // remove display: none\n this.css({\n display: ''\n });\n var options = this.layout.options;\n var onTransitionEnd = {};\n var transitionEndProperty = this.getHideRevealTransitionEndProperty('hiddenStyle');\n onTransitionEnd[transitionEndProperty] = this.onHideTransitionEnd;\n this.transition({\n from: options.visibleStyle,\n to: options.hiddenStyle,\n // keep hidden stuff hidden\n isCleaning: true,\n onTransitionEnd: onTransitionEnd\n });\n };\n proto.onHideTransitionEnd = function () {\n // check if still hidden\n // during transition, item may have been un-hidden\n if (this.isHidden) {\n this.css({\n display: 'none'\n });\n this.emitEvent('hide');\n }\n };\n proto.destroy = function () {\n this.css({\n position: '',\n left: '',\n right: '',\n top: '',\n bottom: '',\n transition: '',\n transform: ''\n });\n };\n return Item;\n});\n\n/*!\r\n * Outlayer v2.1.1\r\n * the brains and guts of a layout library\r\n * MIT license\r\n */\n\n(function (window, factory) {\n 'use strict';\n\n // universal module definition\n /* jshint strict: false */ /* globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD - RequireJS\n define('outlayer/outlayer', ['ev-emitter/ev-emitter', 'get-size/get-size', 'fizzy-ui-utils/utils', './item'], function (EvEmitter, getSize, utils, Item) {\n return factory(window, EvEmitter, getSize, utils, Item);\n });\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) == 'object' && module.exports) {\n // CommonJS - Browserify, Webpack\n module.exports = factory(window, require('ev-emitter'), require('get-size'), require('fizzy-ui-utils'), require('./item'));\n } else {\n // browser global\n window.Outlayer = factory(window, window.EvEmitter, window.getSize, window.fizzyUIUtils, window.Outlayer.Item);\n }\n})(window, function factory(window, EvEmitter, getSize, utils, Item) {\n 'use strict';\n\n // ----- vars ----- //\n var console = window.console;\n var jQuery = window.jQuery;\n var noop = function noop() {};\n\n // -------------------------- Outlayer -------------------------- //\n\n // globally unique identifiers\n var GUID = 0;\n // internal store of all Outlayer intances\n var instances = {};\n\n /**\r\n * @param {Element, String} element\r\n * @param {Object} options\r\n * @constructor\r\n */\n function Outlayer(element, options) {\n var queryElement = utils.getQueryElement(element);\n if (!queryElement) {\n if (console) {\n console.error('Bad element for ' + this.constructor.namespace + ': ' + (queryElement || element));\n }\n return;\n }\n this.element = queryElement;\n // add jQuery\n if (jQuery) {\n this.$element = jQuery(this.element);\n }\n\n // options\n this.options = utils.extend({}, this.constructor.defaults);\n this.option(options);\n\n // add id for Outlayer.getFromElement\n var id = ++GUID;\n this.element.outlayerGUID = id; // expando\n instances[id] = this; // associate via id\n\n // kick it off\n this._create();\n var isInitLayout = this._getOption('initLayout');\n if (isInitLayout) {\n this.layout();\n }\n }\n\n // settings are for internal use only\n Outlayer.namespace = 'outlayer';\n Outlayer.Item = Item;\n\n // default options\n Outlayer.defaults = {\n containerStyle: {\n position: 'relative'\n },\n initLayout: true,\n originLeft: true,\n originTop: true,\n resize: true,\n resizeContainer: true,\n // item options\n transitionDuration: '0.4s',\n hiddenStyle: {\n opacity: 0,\n transform: 'scale(0.001)'\n },\n visibleStyle: {\n opacity: 1,\n transform: 'scale(1)'\n }\n };\n var proto = Outlayer.prototype;\n // inherit EvEmitter\n utils.extend(proto, EvEmitter.prototype);\n\n /**\r\n * set options\r\n * @param {Object} opts\r\n */\n proto.option = function (opts) {\n utils.extend(this.options, opts);\n };\n\n /**\r\n * get backwards compatible option value, check old name\r\n */\n proto._getOption = function (option) {\n var oldOption = this.constructor.compatOptions[option];\n return oldOption && this.options[oldOption] !== undefined ? this.options[oldOption] : this.options[option];\n };\n Outlayer.compatOptions = {\n // currentName: oldName\n initLayout: 'isInitLayout',\n horizontal: 'isHorizontal',\n layoutInstant: 'isLayoutInstant',\n originLeft: 'isOriginLeft',\n originTop: 'isOriginTop',\n resize: 'isResizeBound',\n resizeContainer: 'isResizingContainer'\n };\n proto._create = function () {\n // get items from children\n this.reloadItems();\n // elements that affect layout, but are not laid out\n this.stamps = [];\n this.stamp(this.options.stamp);\n // set container style\n utils.extend(this.element.style, this.options.containerStyle);\n\n // bind resize method\n var canBindResize = this._getOption('resize');\n if (canBindResize) {\n this.bindResize();\n }\n };\n\n // goes through all children again and gets bricks in proper order\n proto.reloadItems = function () {\n // collection of item elements\n this.items = this._itemize(this.element.children);\n };\n\n /**\r\n * turn elements into Outlayer.Items to be used in layout\r\n * @param {Array or NodeList or HTMLElement} elems\r\n * @returns {Array} items - collection of new Outlayer Items\r\n */\n proto._itemize = function (elems) {\n var itemElems = this._filterFindItemElements(elems);\n var Item = this.constructor.Item;\n\n // create new Outlayer Items for collection\n var items = [];\n for (var i = 0; i < itemElems.length; i++) {\n var elem = itemElems[i];\n var item = new Item(elem, this);\n items.push(item);\n }\n return items;\n };\n\n /**\r\n * get item elements to be used in layout\r\n * @param {Array or NodeList or HTMLElement} elems\r\n * @returns {Array} items - item elements\r\n */\n proto._filterFindItemElements = function (elems) {\n return utils.filterFindElements(elems, this.options.itemSelector);\n };\n\n /**\r\n * getter method for getting item elements\r\n * @returns {Array} elems - collection of item elements\r\n */\n proto.getItemElements = function () {\n return this.items.map(function (item) {\n return item.element;\n });\n };\n\n // ----- init & layout ----- //\n\n /**\r\n * lays out all items\r\n */\n proto.layout = function () {\n this._resetLayout();\n this._manageStamps();\n\n // don't animate first layout\n var layoutInstant = this._getOption('layoutInstant');\n var isInstant = layoutInstant !== undefined ? layoutInstant : !this._isLayoutInited;\n this.layoutItems(this.items, isInstant);\n\n // flag for initalized\n this._isLayoutInited = true;\n };\n\n // _init is alias for layout\n proto._init = proto.layout;\n\n /**\r\n * logic before any new layout\r\n */\n proto._resetLayout = function () {\n this.getSize();\n };\n proto.getSize = function () {\n this.size = getSize(this.element);\n };\n\n /**\r\n * get measurement from option, for columnWidth, rowHeight, gutter\r\n * if option is String -> get element from selector string, & get size of element\r\n * if option is Element -> get size of element\r\n * else use option as a number\r\n *\r\n * @param {String} measurement\r\n * @param {String} size - width or height\r\n * @private\r\n */\n proto._getMeasurement = function (measurement, size) {\n var option = this.options[measurement];\n var elem;\n if (!option) {\n // default to 0\n this[measurement] = 0;\n } else {\n // use option as an element\n if (typeof option == 'string') {\n elem = this.element.querySelector(option);\n } else if (option instanceof HTMLElement) {\n elem = option;\n }\n // use size of element, if element\n this[measurement] = elem ? getSize(elem)[size] : option;\n }\n };\n\n /**\r\n * layout a collection of item elements\r\n * @api public\r\n */\n proto.layoutItems = function (items, isInstant) {\n items = this._getItemsForLayout(items);\n this._layoutItems(items, isInstant);\n this._postLayout();\n };\n\n /**\r\n * get the items to be laid out\r\n * you may want to skip over some items\r\n * @param {Array} items\r\n * @returns {Array} items\r\n */\n proto._getItemsForLayout = function (items) {\n return items.filter(function (item) {\n return !item.isIgnored;\n });\n };\n\n /**\r\n * layout items\r\n * @param {Array} items\r\n * @param {Boolean} isInstant\r\n */\n proto._layoutItems = function (items, isInstant) {\n this._emitCompleteOnItems('layout', items);\n if (!items || !items.length) {\n // no items, emit event with empty array\n return;\n }\n var queue = [];\n items.forEach(function (item) {\n // get x/y object from method\n var position = this._getItemLayoutPosition(item);\n // enqueue\n position.item = item;\n position.isInstant = isInstant || item.isLayoutInstant;\n queue.push(position);\n }, this);\n this._processLayoutQueue(queue);\n };\n\n /**\r\n * get item layout position\r\n * @param {Outlayer.Item} item\r\n * @returns {Object} x and y position\r\n */\n proto._getItemLayoutPosition = function /* item */\n () {\n return {\n x: 0,\n y: 0\n };\n };\n\n /**\r\n * iterate over array and position each item\r\n * Reason being - separating this logic prevents 'layout invalidation'\r\n * thx @paul_irish\r\n * @param {Array} queue\r\n */\n proto._processLayoutQueue = function (queue) {\n this.updateStagger();\n queue.forEach(function (obj, i) {\n this._positionItem(obj.item, obj.x, obj.y, obj.isInstant, i);\n }, this);\n };\n\n // set stagger from option in milliseconds number\n proto.updateStagger = function () {\n var stagger = this.options.stagger;\n if (stagger === null || stagger === undefined) {\n this.stagger = 0;\n return;\n }\n this.stagger = getMilliseconds(stagger);\n return this.stagger;\n };\n\n /**\r\n * Sets position of item in DOM\r\n * @param {Outlayer.Item} item\r\n * @param {Number} x - horizontal position\r\n * @param {Number} y - vertical position\r\n * @param {Boolean} isInstant - disables transitions\r\n */\n proto._positionItem = function (item, x, y, isInstant, i) {\n if (isInstant) {\n // if not transition, just set CSS\n item.goTo(x, y);\n } else {\n item.stagger(i * this.stagger);\n item.moveTo(x, y);\n }\n };\n\n /**\r\n * Any logic you want to do after each layout,\r\n * i.e. size the container\r\n */\n proto._postLayout = function () {\n this.resizeContainer();\n };\n proto.resizeContainer = function () {\n var isResizingContainer = this._getOption('resizeContainer');\n if (!isResizingContainer) {\n return;\n }\n var size = this._getContainerSize();\n if (size) {\n this._setContainerMeasure(size.width, true);\n this._setContainerMeasure(size.height, false);\n }\n };\n\n /**\r\n * Sets width or height of container if returned\r\n * @returns {Object} size\r\n * @param {Number} width\r\n * @param {Number} height\r\n */\n proto._getContainerSize = noop;\n\n /**\r\n * @param {Number} measure - size of width or height\r\n * @param {Boolean} isWidth\r\n */\n proto._setContainerMeasure = function (measure, isWidth) {\n if (measure === undefined) {\n return;\n }\n var elemSize = this.size;\n // add padding and border width if border box\n if (elemSize.isBorderBox) {\n measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight + elemSize.borderLeftWidth + elemSize.borderRightWidth : elemSize.paddingBottom + elemSize.paddingTop + elemSize.borderTopWidth + elemSize.borderBottomWidth;\n }\n measure = Math.max(measure, 0);\n this.element.style[isWidth ? 'width' : 'height'] = measure + 'px';\n };\n\n /**\r\n * emit eventComplete on a collection of items events\r\n * @param {String} eventName\r\n * @param {Array} items - Outlayer.Items\r\n */\n proto._emitCompleteOnItems = function (eventName, items) {\n var _this = this;\n function onComplete() {\n _this.dispatchEvent(eventName + 'Complete', null, [items]);\n }\n var count = items.length;\n if (!items || !count) {\n onComplete();\n return;\n }\n var doneCount = 0;\n function tick() {\n doneCount++;\n if (doneCount == count) {\n onComplete();\n }\n }\n\n // bind callback\n items.forEach(function (item) {\n item.once(eventName, tick);\n });\n };\n\n /**\r\n * emits events via EvEmitter and jQuery events\r\n * @param {String} type - name of event\r\n * @param {Event} event - original event\r\n * @param {Array} args - extra arguments\r\n */\n proto.dispatchEvent = function (type, event, args) {\n // add original event to arguments\n var emitArgs = event ? [event].concat(args) : args;\n this.emitEvent(type, emitArgs);\n if (jQuery) {\n // set this.$element\n this.$element = this.$element || jQuery(this.element);\n if (event) {\n // create jQuery event\n var $event = jQuery.Event(event);\n $event.type = type;\n this.$element.trigger($event, args);\n } else {\n // just trigger with type if no event available\n this.$element.trigger(type, args);\n }\n }\n };\n\n // -------------------------- ignore & stamps -------------------------- //\n\n /**\r\n * keep item in collection, but do not lay it out\r\n * ignored items do not get skipped in layout\r\n * @param {Element} elem\r\n */\n proto.ignore = function (elem) {\n var item = this.getItem(elem);\n if (item) {\n item.isIgnored = true;\n }\n };\n\n /**\r\n * return item to layout collection\r\n * @param {Element} elem\r\n */\n proto.unignore = function (elem) {\n var item = this.getItem(elem);\n if (item) {\n delete item.isIgnored;\n }\n };\n\n /**\r\n * adds elements to stamps\r\n * @param {NodeList, Array, Element, or String} elems\r\n */\n proto.stamp = function (elems) {\n elems = this._find(elems);\n if (!elems) {\n return;\n }\n this.stamps = this.stamps.concat(elems);\n // ignore\n elems.forEach(this.ignore, this);\n };\n\n /**\r\n * removes elements to stamps\r\n * @param {NodeList, Array, or Element} elems\r\n */\n proto.unstamp = function (elems) {\n elems = this._find(elems);\n if (!elems) {\n return;\n }\n elems.forEach(function (elem) {\n // filter out removed stamp elements\n utils.removeFrom(this.stamps, elem);\n this.unignore(elem);\n }, this);\n };\n\n /**\r\n * finds child elements\r\n * @param {NodeList, Array, Element, or String} elems\r\n * @returns {Array} elems\r\n */\n proto._find = function (elems) {\n if (!elems) {\n return;\n }\n // if string, use argument as selector string\n if (typeof elems == 'string') {\n elems = this.element.querySelectorAll(elems);\n }\n elems = utils.makeArray(elems);\n return elems;\n };\n proto._manageStamps = function () {\n if (!this.stamps || !this.stamps.length) {\n return;\n }\n this._getBoundingRect();\n this.stamps.forEach(this._manageStamp, this);\n };\n\n // update boundingLeft / Top\n proto._getBoundingRect = function () {\n // get bounding rect for container element\n var boundingRect = this.element.getBoundingClientRect();\n var size = this.size;\n this._boundingRect = {\n left: boundingRect.left + size.paddingLeft + size.borderLeftWidth,\n top: boundingRect.top + size.paddingTop + size.borderTopWidth,\n right: boundingRect.right - (size.paddingRight + size.borderRightWidth),\n bottom: boundingRect.bottom - (size.paddingBottom + size.borderBottomWidth)\n };\n };\n\n /**\r\n * @param {Element} stamp\r\n **/\n proto._manageStamp = noop;\n\n /**\r\n * get x/y position of element relative to container element\r\n * @param {Element} elem\r\n * @returns {Object} offset - has left, top, right, bottom\r\n */\n proto._getElementOffset = function (elem) {\n var boundingRect = elem.getBoundingClientRect();\n var thisRect = this._boundingRect;\n var size = getSize(elem);\n var offset = {\n left: boundingRect.left - thisRect.left - size.marginLeft,\n top: boundingRect.top - thisRect.top - size.marginTop,\n right: thisRect.right - boundingRect.right - size.marginRight,\n bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom\n };\n return offset;\n };\n\n // -------------------------- resize -------------------------- //\n\n // enable event handlers for listeners\n // i.e. resize -> onresize\n proto.handleEvent = utils.handleEvent;\n\n /**\r\n * Bind layout to window resizing\r\n */\n proto.bindResize = function () {\n window.addEventListener('resize', this);\n this.isResizeBound = true;\n };\n\n /**\r\n * Unbind layout to window resizing\r\n */\n proto.unbindResize = function () {\n window.removeEventListener('resize', this);\n this.isResizeBound = false;\n };\n proto.onresize = function () {\n this.resize();\n };\n utils.debounceMethod(Outlayer, 'onresize', 100);\n proto.resize = function () {\n // don't trigger if size did not change\n // or if resize was unbound. See #9\n if (!this.isResizeBound || !this.needsResizeLayout()) {\n return;\n }\n this.layout();\n };\n\n /**\r\n * check if layout is needed post layout\r\n * @returns Boolean\r\n */\n proto.needsResizeLayout = function () {\n var size = getSize(this.element);\n // check that this.size and size are there\n // IE8 triggers resize on body size change, so they might not be\n var hasSizes = this.size && size;\n return hasSizes && size.innerWidth !== this.size.innerWidth;\n };\n\n // -------------------------- methods -------------------------- //\n\n /**\r\n * add items to Outlayer instance\r\n * @param {Array or NodeList or Element} elems\r\n * @returns {Array} items - Outlayer.Items\r\n **/\n proto.addItems = function (elems) {\n var items = this._itemize(elems);\n // add items to collection\n if (items.length) {\n this.items = this.items.concat(items);\n }\n return items;\n };\n\n /**\r\n * Layout newly-appended item elements\r\n * @param {Array or NodeList or Element} elems\r\n */\n proto.appended = function (elems) {\n var items = this.addItems(elems);\n if (!items.length) {\n return;\n }\n // layout and reveal just the new items\n this.layoutItems(items, true);\n this.reveal(items);\n };\n\n /**\r\n * Layout prepended elements\r\n * @param {Array or NodeList or Element} elems\r\n */\n proto.prepended = function (elems) {\n var items = this._itemize(elems);\n if (!items.length) {\n return;\n }\n // add items to beginning of collection\n var previousItems = this.items.slice(0);\n this.items = items.concat(previousItems);\n // start new layout\n this._resetLayout();\n this._manageStamps();\n // layout new stuff without transition\n this.layoutItems(items, true);\n this.reveal(items);\n // layout previous items\n this.layoutItems(previousItems);\n };\n\n /**\r\n * reveal a collection of items\r\n * @param {Array of Outlayer.Items} items\r\n */\n proto.reveal = function (items) {\n this._emitCompleteOnItems('reveal', items);\n if (!items || !items.length) {\n return;\n }\n var stagger = this.updateStagger();\n items.forEach(function (item, i) {\n item.stagger(i * stagger);\n item.reveal();\n });\n };\n\n /**\r\n * hide a collection of items\r\n * @param {Array of Outlayer.Items} items\r\n */\n proto.hide = function (items) {\n this._emitCompleteOnItems('hide', items);\n if (!items || !items.length) {\n return;\n }\n var stagger = this.updateStagger();\n items.forEach(function (item, i) {\n item.stagger(i * stagger);\n item.hide();\n });\n };\n\n /**\r\n * reveal item elements\r\n * @param {Array}, {Element}, {NodeList} items\r\n */\n proto.revealItemElements = function (elems) {\n var items = this.getItems(elems);\n this.reveal(items);\n };\n\n /**\r\n * hide item elements\r\n * @param {Array}, {Element}, {NodeList} items\r\n */\n proto.hideItemElements = function (elems) {\n var items = this.getItems(elems);\n this.hide(items);\n };\n\n /**\r\n * get Outlayer.Item, given an Element\r\n * @param {Element} elem\r\n * @param {Function} callback\r\n * @returns {Outlayer.Item} item\r\n */\n proto.getItem = function (elem) {\n // loop through items to get the one that matches\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i];\n if (item.element == elem) {\n // return item\n return item;\n }\n }\n };\n\n /**\r\n * get collection of Outlayer.Items, given Elements\r\n * @param {Array} elems\r\n * @returns {Array} items - Outlayer.Items\r\n */\n proto.getItems = function (elems) {\n elems = utils.makeArray(elems);\n var items = [];\n elems.forEach(function (elem) {\n var item = this.getItem(elem);\n if (item) {\n items.push(item);\n }\n }, this);\n return items;\n };\n\n /**\r\n * remove element(s) from instance and DOM\r\n * @param {Array or NodeList or Element} elems\r\n */\n proto.remove = function (elems) {\n var removeItems = this.getItems(elems);\n this._emitCompleteOnItems('remove', removeItems);\n\n // bail if no items to remove\n if (!removeItems || !removeItems.length) {\n return;\n }\n removeItems.forEach(function (item) {\n item.remove();\n // remove item from collection\n utils.removeFrom(this.items, item);\n }, this);\n };\n\n // ----- destroy ----- //\n\n // remove and disable Outlayer instance\n proto.destroy = function () {\n // clean up dynamic styles\n var style = this.element.style;\n style.height = '';\n style.position = '';\n style.width = '';\n // destroy items\n this.items.forEach(function (item) {\n item.destroy();\n });\n this.unbindResize();\n var id = this.element.outlayerGUID;\n delete instances[id]; // remove reference to instance by id\n delete this.element.outlayerGUID;\n // remove data for jQuery\n if (jQuery) {\n jQuery.removeData(this.element, this.constructor.namespace);\n }\n };\n\n // -------------------------- data -------------------------- //\n\n /**\r\n * get Outlayer instance from element\r\n * @param {Element} elem\r\n * @returns {Outlayer}\r\n */\n Outlayer.data = function (elem) {\n elem = utils.getQueryElement(elem);\n var id = elem && elem.outlayerGUID;\n return id && instances[id];\n };\n\n // -------------------------- create Outlayer class -------------------------- //\n\n /**\r\n * create a layout class\r\n * @param {String} namespace\r\n */\n Outlayer.create = function (namespace, options) {\n // sub-class Outlayer\n var Layout = subclass(Outlayer);\n // apply new options and compatOptions\n Layout.defaults = utils.extend({}, Outlayer.defaults);\n utils.extend(Layout.defaults, options);\n Layout.compatOptions = utils.extend({}, Outlayer.compatOptions);\n Layout.namespace = namespace;\n Layout.data = Outlayer.data;\n\n // sub-class Item\n Layout.Item = subclass(Item);\n\n // -------------------------- declarative -------------------------- //\n\n utils.htmlInit(Layout, namespace);\n\n // -------------------------- jQuery bridge -------------------------- //\n\n // make into jQuery plugin\n if (jQuery && jQuery.bridget) {\n jQuery.bridget(namespace, Layout);\n }\n return Layout;\n };\n function subclass(Parent) {\n function SubClass() {\n Parent.apply(this, arguments);\n }\n SubClass.prototype = Object.create(Parent.prototype);\n SubClass.prototype.constructor = SubClass;\n return SubClass;\n }\n\n // ----- helpers ----- //\n\n // how many milliseconds are in each unit\n var msUnits = {\n ms: 1,\n s: 1000\n };\n\n // munge time-like parameter into millisecond number\n // '0.4s' -> 40\n function getMilliseconds(time) {\n if (typeof time == 'number') {\n return time;\n }\n var matches = time.match(/(^\\d*\\.?\\d*)(\\w*)/);\n var num = matches && matches[1];\n var unit = matches && matches[2];\n if (!num.length) {\n return 0;\n }\n num = parseFloat(num);\n var mult = msUnits[unit] || 1;\n return num * mult;\n }\n\n // ----- fin ----- //\n\n // back in global\n Outlayer.Item = Item;\n return Outlayer;\n});\n\n/**\r\n * Isotopee Item\r\n**/\n\n(function (window, factory) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define('isotopee-layout/js/item', ['outlayer/outlayer'], factory);\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(require('outlayer'));\n } else {\n // browser global\n window.Isotopee = window.Isotopee || {};\n window.Isotopee.Item = factory(window.Outlayer);\n }\n})(window, function factory(Outlayer) {\n 'use strict';\n\n // -------------------------- Item -------------------------- //\n\n // sub-class Outlayer Item\n function Item() {\n Outlayer.Item.apply(this, arguments);\n }\n var proto = Item.prototype = Object.create(Outlayer.Item.prototype);\n var _create = proto._create;\n proto._create = function () {\n // assign id, used for original-order sorting\n this.id = this.layout.itemGUID++;\n _create.call(this);\n this.sortData = {};\n };\n proto.updateSortData = function () {\n if (this.isIgnored) {\n return;\n }\n // default sorters\n this.sortData.id = this.id;\n // for backward compatibility\n this.sortData['original-order'] = this.id;\n this.sortData.random = Math.random();\n // go thru getSortData obj and apply the sorters\n var getSortData = this.layout.options.getSortData;\n var sorters = this.layout._sorters;\n for (var key in getSortData) {\n var sorter = sorters[key];\n this.sortData[key] = sorter(this.element, this);\n }\n };\n var _destroy = proto.destroy;\n proto.destroy = function () {\n // call super\n _destroy.apply(this, arguments);\n // reset display, #741\n this.css({\n display: ''\n });\n };\n return Item;\n});\n\n/**\r\n * Isotopee LayoutMode\r\n */\n\n(function (window, factory) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define('isotopee-layout/js/layout-mode', ['get-size/get-size', 'outlayer/outlayer'], factory);\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(require('get-size'), require('outlayer'));\n } else {\n // browser global\n window.Isotopee = window.Isotopee || {};\n window.Isotopee.LayoutMode = factory(window.getSize, window.Outlayer);\n }\n})(window, function factory(getSize, Outlayer) {\n 'use strict';\n\n // layout mode class\n function LayoutMode(isotopee) {\n this.isotopee = isotopee;\n // link properties\n if (isotopee) {\n this.options = isotopee.options[this.namespace];\n this.element = isotopee.element;\n this.items = isotopee.filteredItems;\n this.size = isotopee.size;\n }\n }\n var proto = LayoutMode.prototype;\n\n /**\r\n * some methods should just defer to default Outlayer method\r\n * and reference the Isotopee instance as `this`\r\n **/\n var facadeMethods = ['_resetLayout', '_getItemLayoutPosition', '_manageStamp', '_getContainerSize', '_getElementOffset', 'needsResizeLayout', '_getOption'];\n facadeMethods.forEach(function (methodName) {\n proto[methodName] = function () {\n return Outlayer.prototype[methodName].apply(this.isotopee, arguments);\n };\n });\n\n // ----- ----- //\n\n // for horizontal layout modes, check vertical size\n proto.needsVerticalResizeLayout = function () {\n // don't trigger if size did not change\n var size = getSize(this.isotopee.element);\n // check that this.size and size are there\n // IE8 triggers resize on body size change, so they might not be\n var hasSizes = this.isotopee.size && size;\n return hasSizes && size.innerHeight != this.isotopee.size.innerHeight;\n };\n\n // ----- measurements ----- //\n\n proto._getMeasurement = function () {\n this.isotopee._getMeasurement.apply(this, arguments);\n };\n proto.getColumnWidth = function () {\n this.getSegmentSize('column', 'Width');\n };\n proto.getRowHeight = function () {\n this.getSegmentSize('row', 'Height');\n };\n\n /**\r\n * get columnWidth or rowHeight\r\n * segment: 'column' or 'row'\r\n * size 'Width' or 'Height'\r\n **/\n proto.getSegmentSize = function (segment, size) {\n var segmentName = segment + size;\n var outerSize = 'outer' + size;\n // columnWidth / outerWidth // rowHeight / outerHeight\n this._getMeasurement(segmentName, outerSize);\n // got rowHeight or columnWidth, we can chill\n if (this[segmentName]) {\n return;\n }\n // fall back to item of first element\n var firstItemSize = this.getFirstItemSize();\n this[segmentName] = firstItemSize && firstItemSize[outerSize] ||\n // or size of container\n this.isotopee.size['inner' + size];\n };\n proto.getFirstItemSize = function () {\n var firstItem = this.isotopee.filteredItems[0];\n return firstItem && firstItem.element && getSize(firstItem.element);\n };\n\n // ----- methods that should reference isotopee ----- //\n\n proto.layout = function () {\n this.isotopee.layout.apply(this.isotopee, arguments);\n };\n proto.getSize = function () {\n this.isotopee.getSize();\n this.size = this.isotopee.size;\n };\n\n // -------------------------- create -------------------------- //\n\n LayoutMode.modes = {};\n LayoutMode.create = function (namespace, options) {\n function Mode() {\n LayoutMode.apply(this, arguments);\n }\n Mode.prototype = Object.create(proto);\n Mode.prototype.constructor = Mode;\n\n // default options\n if (options) {\n Mode.options = options;\n }\n Mode.prototype.namespace = namespace;\n // register in Isotopee\n LayoutMode.modes[namespace] = Mode;\n return Mode;\n };\n return LayoutMode;\n});\n\n/*!\r\n * Masonry v4.2.1\r\n * Cascading grid layout library\r\n * https://masonry.desandro.com\r\n * MIT License\r\n * by David DeSandro\r\n */\n\n(function (window, factory) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define('masonry-layout/masonry', ['outlayer/outlayer', 'get-size/get-size'], factory);\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(require('outlayer'), require('get-size'));\n } else {\n // browser global\n window.Masonry = factory(window.Outlayer, window.getSize);\n }\n})(window, function factory(Outlayer, getSize) {\n // -------------------------- masonryDefinition -------------------------- //\n\n // create an Outlayer layout class\n var Masonry = Outlayer.create('masonry');\n // isFitWidth -> fitWidth\n Masonry.compatOptions.fitWidth = 'isFitWidth';\n var proto = Masonry.prototype;\n proto._resetLayout = function () {\n this.getSize();\n this._getMeasurement('columnWidth', 'outerWidth');\n this._getMeasurement('gutter', 'outerWidth');\n this.measureColumns();\n\n // reset column Y\n this.colYs = [];\n for (var i = 0; i < this.cols; i++) {\n this.colYs.push(0);\n }\n this.maxY = 0;\n this.horizontalColIndex = 0;\n };\n proto.measureColumns = function () {\n this.getContainerWidth();\n // if columnWidth is 0, default to outerWidth of first item\n if (!this.columnWidth) {\n var firstItem = this.items[0];\n var firstItemElem = firstItem && firstItem.element;\n // columnWidth fall back to item of first element\n this.columnWidth = firstItemElem && getSize(firstItemElem).outerWidth ||\n // if first elem has no width, default to size of container\n this.containerWidth;\n }\n var columnWidth = this.columnWidth += this.gutter;\n\n // calculate columns\n var containerWidth = this.containerWidth + this.gutter;\n var cols = containerWidth / columnWidth;\n // fix rounding errors, typically with gutters\n var excess = columnWidth - containerWidth % columnWidth;\n // if overshoot is less than a pixel, round up, otherwise floor it\n var mathMethod = excess && excess < 1 ? 'round' : 'floor';\n cols = Math[mathMethod](cols);\n this.cols = Math.max(cols, 1);\n };\n proto.getContainerWidth = function () {\n // container is parent if fit width\n var isFitWidth = this._getOption('fitWidth');\n var container = isFitWidth ? this.element.parentNode : this.element;\n // check that this.size and size are there\n // IE8 triggers resize on body size change, so they might not be\n var size = getSize(container);\n this.containerWidth = size && size.innerWidth;\n };\n proto._getItemLayoutPosition = function (item) {\n item.getSize();\n // how many columns does this brick span\n var remainder = item.size.outerWidth % this.columnWidth;\n var mathMethod = remainder && remainder < 1 ? 'round' : 'ceil';\n // round if off by 1 pixel, otherwise use ceil\n var colSpan = Math[mathMethod](item.size.outerWidth / this.columnWidth);\n colSpan = Math.min(colSpan, this.cols);\n // use horizontal or top column position\n var colPosMethod = this.options.horizontalOrder ? '_getHorizontalColPosition' : '_getTopColPosition';\n var colPosition = this[colPosMethod](colSpan, item);\n // position the brick\n var position = {\n x: this.columnWidth * colPosition.col,\n y: colPosition.y\n };\n // apply setHeight to necessary columns\n var setHeight = colPosition.y + item.size.outerHeight;\n var setMax = colSpan + colPosition.col;\n for (var i = colPosition.col; i < setMax; i++) {\n this.colYs[i] = setHeight;\n }\n return position;\n };\n proto._getTopColPosition = function (colSpan) {\n var colGroup = this._getTopColGroup(colSpan);\n // get the minimum Y value from the columns\n var minimumY = Math.min.apply(Math, colGroup);\n return {\n col: colGroup.indexOf(minimumY),\n y: minimumY\n };\n };\n\n /**\r\n * @param {Number} colSpan - number of columns the element spans\r\n * @returns {Array} colGroup\r\n */\n proto._getTopColGroup = function (colSpan) {\n if (colSpan < 2) {\n // if brick spans only one column, use all the column Ys\n return this.colYs;\n }\n var colGroup = [];\n // how many different places could this brick fit horizontally\n var groupCount = this.cols + 1 - colSpan;\n // for each group potential horizontal position\n for (var i = 0; i < groupCount; i++) {\n colGroup[i] = this._getColGroupY(i, colSpan);\n }\n return colGroup;\n };\n proto._getColGroupY = function (col, colSpan) {\n if (colSpan < 2) {\n return this.colYs[col];\n }\n // make an array of colY values for that one group\n var groupColYs = this.colYs.slice(col, col + colSpan);\n // and get the max value of the array\n return Math.max.apply(Math, groupColYs);\n };\n\n // get column position based on horizontal index. #873\n proto._getHorizontalColPosition = function (colSpan, item) {\n var col = this.horizontalColIndex % this.cols;\n var isOver = colSpan > 1 && col + colSpan > this.cols;\n // shift to next row if item can't fit on current row\n col = isOver ? 0 : col;\n // don't let zero-size items take up space\n var hasSize = item.size.outerWidth && item.size.outerHeight;\n this.horizontalColIndex = hasSize ? col + colSpan : this.horizontalColIndex;\n return {\n col: col,\n y: this._getColGroupY(col, colSpan)\n };\n };\n proto._manageStamp = function (stamp) {\n var stampSize = getSize(stamp);\n var offset = this._getElementOffset(stamp);\n // get the columns that this stamp affects\n var isOriginLeft = this._getOption('originLeft');\n var firstX = isOriginLeft ? offset.left : offset.right;\n var lastX = firstX + stampSize.outerWidth;\n var firstCol = Math.floor(firstX / this.columnWidth);\n firstCol = Math.max(0, firstCol);\n var lastCol = Math.floor(lastX / this.columnWidth);\n // lastCol should not go over if multiple of columnWidth #425\n lastCol -= lastX % this.columnWidth ? 0 : 1;\n lastCol = Math.min(this.cols - 1, lastCol);\n // set colYs to bottom of the stamp\n\n var isOriginTop = this._getOption('originTop');\n var stampMaxY = (isOriginTop ? offset.top : offset.bottom) + stampSize.outerHeight;\n for (var i = firstCol; i <= lastCol; i++) {\n this.colYs[i] = Math.max(stampMaxY, this.colYs[i]);\n }\n };\n proto._getContainerSize = function () {\n this.maxY = Math.max.apply(Math, this.colYs);\n var size = {\n height: this.maxY\n };\n if (this._getOption('fitWidth')) {\n size.width = this._getContainerFitWidth();\n }\n return size;\n };\n proto._getContainerFitWidth = function () {\n var unusedCols = 0;\n // count unused columns\n var i = this.cols;\n while (--i) {\n if (this.colYs[i] !== 0) {\n break;\n }\n unusedCols++;\n }\n // fit container to columns that have been used\n return (this.cols - unusedCols) * this.columnWidth - this.gutter;\n };\n proto.needsResizeLayout = function () {\n var previousWidth = this.containerWidth;\n this.getContainerWidth();\n return previousWidth != this.containerWidth;\n };\n return Masonry;\n});\n\n/*!\r\n * Masonry layout mode\r\n * sub-classes Masonry\r\n * https://masonry.desandro.com\r\n */\n\n(function (window, factory) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define('isotopee-layout/js/layout-modes/masonry', ['../layout-mode', 'masonry-layout/masonry'], factory);\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(require('../layout-mode'), require('masonry-layout'));\n } else {\n // browser global\n factory(window.Isotopee.LayoutMode, window.Masonry);\n }\n})(window, function factory(LayoutMode, Masonry) {\n 'use strict';\n\n // -------------------------- masonryDefinition -------------------------- //\n\n // create an Outlayer layout class\n var MasonryMode = LayoutMode.create('masonry');\n var proto = MasonryMode.prototype;\n var keepModeMethods = {\n _getElementOffset: true,\n layout: true,\n _getMeasurement: true\n };\n\n // inherit Masonry prototype\n for (var method in Masonry.prototype) {\n // do not inherit mode methods\n if (!keepModeMethods[method]) {\n proto[method] = Masonry.prototype[method];\n }\n }\n var measureColumns = proto.measureColumns;\n proto.measureColumns = function () {\n // set items, used if measuring first item\n this.items = this.isotopee.filteredItems;\n measureColumns.call(this);\n };\n\n // point to mode options for fitWidth\n var _getOption = proto._getOption;\n proto._getOption = function (option) {\n if (option == 'fitWidth') {\n return this.options.isFitWidth !== undefined ? this.options.isFitWidth : this.options.fitWidth;\n }\n return _getOption.apply(this.isotopee, arguments);\n };\n return MasonryMode;\n});\n\n/**\r\n * fitRows layout mode\r\n */\n\n(function (window, factory) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define('isotopee-layout/js/layout-modes/fit-rows', ['../layout-mode'], factory);\n } else if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) == 'object') {\n // CommonJS\n module.exports = factory(require('../layout-mode'));\n } else {\n // browser global\n factory(window.Isotopee.LayoutMode);\n }\n})(window, function factory(LayoutMode) {\n 'use strict';\n\n var FitRows = LayoutMode.create('fitRows');\n var proto = FitRows.prototype;\n proto._resetLayout = function () {\n this.x = 0;\n this.y = 0;\n this.maxY = 0;\n this._getMeasurement('gutter', 'outerWidth');\n };\n proto._getItemLayoutPosition = function (item) {\n item.getSize();\n var itemWidth = item.size.outerWidth + this.gutter;\n // if this element cannot fit in the current row\n var containerWidth = this.isotopee.size.innerWidth + this.gutter;\n if (this.x !== 0 && itemWidth + this.x > containerWidth) {\n this.x = 0;\n this.y = this.maxY;\n }\n var position = {\n x: this.x,\n y: this.y\n };\n this.maxY = Math.max(this.maxY, this.y + item.size.outerHeight);\n this.x += itemWidth;\n return position;\n };\n proto._getContainerSize = function () {\n return {\n height: this.maxY\n };\n };\n return FitRows;\n});\n\n/**\r\n * vertical layout mode\r\n */\n\n(function (window, factory) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define('isotopee-layout/js/layout-modes/vertical', ['../layout-mode'], factory);\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(require('../layout-mode'));\n } else {\n // browser global\n factory(window.Isotopee.LayoutMode);\n }\n})(window, function factory(LayoutMode) {\n 'use strict';\n\n var Vertical = LayoutMode.create('vertical', {\n horizontalAlignment: 0\n });\n var proto = Vertical.prototype;\n proto._resetLayout = function () {\n this.y = 0;\n };\n proto._getItemLayoutPosition = function (item) {\n item.getSize();\n var x = (this.isotopee.size.innerWidth - item.size.outerWidth) * this.options.horizontalAlignment;\n var y = this.y;\n this.y += item.size.outerHeight;\n return {\n x: x,\n y: y\n };\n };\n proto._getContainerSize = function () {\n return {\n height: this.y\n };\n };\n return Vertical;\n});\n\n/*!\r\n * Isotopee v3.0.6\r\n *\r\n * Licensed GPLv3 for open source use\r\n * or Isotopee Commercial License for commercial use\r\n *\r\n * https://isotopee.metafizzy.co\r\n * Copyright 2010-2018 Metafizzy\r\n */\n\n(function (window, factory) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['outlayer/outlayer', 'get-size/get-size', 'desandro-matches-selector/matches-selector', 'fizzy-ui-utils/utils', 'isotopee-layout/js/item', 'isotopee-layout/js/layout-mode',\n // include default layout modes\n 'isotopee-layout/js/layout-modes/masonry', 'isotopee-layout/js/layout-modes/fit-rows', 'isotopee-layout/js/layout-modes/vertical'], function (Outlayer, getSize, matchesSelector, utils, Item, LayoutMode) {\n return factory(window, Outlayer, getSize, matchesSelector, utils, Item, LayoutMode);\n });\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('outlayer'), require('get-size'), require('desandro-matches-selector'), require('fizzy-ui-utils'), require('isotopee-layout/js/item'), require('isotopee-layout/js/layout-mode'),\n // include default layout modes\n require('isotopee-layout/js/layout-modes/masonry'), require('isotopee-layout/js/layout-modes/fit-rows'), require('isotopee-layout/js/layout-modes/vertical'));\n } else {\n // browser global\n window.Isotopee = factory(window, window.Outlayer, window.getSize, window.matchesSelector, window.fizzyUIUtils, window.Isotopee.Item, window.Isotopee.LayoutMode);\n }\n})(window, function factory(window, Outlayer, getSize, matchesSelector, utils, Item, LayoutMode) {\n // -------------------------- vars -------------------------- //\n\n var jQuery = window.jQuery;\n\n // -------------------------- helpers -------------------------- //\n\n var trim = String.prototype.trim ? function (str) {\n return str.trim();\n } : function (str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n };\n\n // -------------------------- isotopeDefinition -------------------------- //\n\n // create an Outlayer layout class\n var Isotopee = Outlayer.create('isotopee', {\n layoutMode: 'masonry',\n isJQueryFiltering: true,\n sortAscending: true\n });\n Isotopee.Item = Item;\n Isotopee.LayoutMode = LayoutMode;\n var proto = Isotopee.prototype;\n proto._create = function () {\n this.itemGUID = 0;\n // functions that sort items\n this._sorters = {};\n this._getSorters();\n // call super\n Outlayer.prototype._create.call(this);\n\n // create layout modes\n this.modes = {};\n // start filteredItems with all items\n this.filteredItems = this.items;\n // keep of track of sortBys\n this.sortHistory = ['original-order'];\n // create from registered layout modes\n for (var name in LayoutMode.modes) {\n this._initLayoutMode(name);\n }\n };\n Isotopee.Item.prototype._create = function () {\n // assign id, used for original-order sorting\n this.id = this.layout.itemGUID++;\n // transition objects\n this._transn = {\n ingProperties: {},\n clean: {},\n onEnd: {}\n };\n this.sortData = {};\n };\n Isotopee.Item.prototype.layoutPosition = function () {\n this.emitEvent('layout', [this]);\n };\n Isotopee.prototype.arrange = function (opts) {\n // set any options pass\n this.option(opts);\n this._getIsInstant();\n // just filter\n this.filteredItems = this._filter(this.items);\n // flag for initalized\n this._isLayoutInited = true;\n };\n // layout mode that does not position items\n Isotopee.LayoutMode.create('none');\n proto.reloadItems = function () {\n // reset item ID counter\n this.itemGUID = 0;\n // call super\n Outlayer.prototype.reloadItems.call(this);\n };\n proto._itemize = function () {\n var items = Outlayer.prototype._itemize.apply(this, arguments);\n // assign ID for original-order\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n item.id = this.itemGUID++;\n }\n this._updateItemsSortData(items);\n return items;\n };\n\n // -------------------------- layout -------------------------- //\n\n proto._initLayoutMode = function (name) {\n var Mode = LayoutMode.modes[name];\n // set mode options\n // HACK extend initial options, back-fill in default options\n var initialOpts = this.options[name] || {};\n this.options[name] = Mode.options ? utils.extend(Mode.options, initialOpts) : initialOpts;\n // init layout mode instance\n this.modes[name] = new Mode(this);\n };\n proto.layout = function () {\n // if first time doing layout, do all magic\n if (!this._isLayoutInited && this._getOption('initLayout')) {\n this.arrange();\n return;\n }\n this._layout();\n };\n\n // private method to be used in layout() & magic()\n proto._layout = function () {\n // don't animate first layout\n var isInstant = this._getIsInstant();\n // layout flow\n this._resetLayout();\n this._manageStamps();\n this.layoutItems(this.filteredItems, isInstant);\n\n // flag for initalized\n this._isLayoutInited = true;\n };\n\n // filter + sort + layout\n proto.arrange = function (opts) {\n // set any options pass\n this.option(opts);\n this._getIsInstant();\n // filter, sort, and layout\n\n // filter\n var filtered = this._filter(this.items);\n this.filteredItems = filtered.matches;\n this._bindArrangeComplete();\n if (this._isInstant) {\n this._noTransition(this._hideReveal, [filtered]);\n } else {\n this._hideReveal(filtered);\n }\n this._sort();\n this._layout();\n };\n // alias to _init for main plugin method\n proto._init = proto.arrange;\n proto._hideReveal = function (filtered) {\n this.reveal(filtered.needReveal);\n this.hide(filtered.needHide);\n };\n\n // HACK\n // Don't animate/transition first layout\n // Or don't animate/transition other layouts\n proto._getIsInstant = function () {\n var isLayoutInstant = this._getOption('layoutInstant');\n var isInstant = isLayoutInstant !== undefined ? isLayoutInstant : !this._isLayoutInited;\n this._isInstant = isInstant;\n return isInstant;\n };\n\n // listen for layoutComplete, hideComplete and revealComplete\n // to trigger arrangeComplete\n proto._bindArrangeComplete = function () {\n // listen for 3 events to trigger arrangeComplete\n var isLayoutComplete, isHideComplete, isRevealComplete;\n var _this = this;\n function arrangeParallelCallback() {\n if (isLayoutComplete && isHideComplete && isRevealComplete) {\n _this.dispatchEvent('arrangeComplete', null, [_this.filteredItems]);\n }\n }\n this.once('layoutComplete', function () {\n isLayoutComplete = true;\n arrangeParallelCallback();\n });\n this.once('hideComplete', function () {\n isHideComplete = true;\n arrangeParallelCallback();\n });\n this.once('revealComplete', function () {\n isRevealComplete = true;\n arrangeParallelCallback();\n });\n };\n\n // -------------------------- filter -------------------------- //\n\n proto._filter = function (items) {\n var filter = this.options.filter;\n filter = filter || '*';\n var matches = [];\n var hiddenMatched = [];\n var visibleUnmatched = [];\n var test = this._getFilterTest(filter);\n\n // test each item\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n if (item.isIgnored) {\n continue;\n }\n // add item to either matched or unmatched group\n var isMatched = test(item);\n // item.isFilterMatched = isMatched;\n // add to matches if its a match\n if (isMatched) {\n matches.push(item);\n }\n // add to additional group if item needs to be hidden or revealed\n if (isMatched && item.isHidden) {\n hiddenMatched.push(item);\n } else if (!isMatched && !item.isHidden) {\n visibleUnmatched.push(item);\n }\n }\n\n // return collections of items to be manipulated\n return {\n matches: matches,\n needReveal: hiddenMatched,\n needHide: visibleUnmatched\n };\n };\n\n // get a jQuery, function, or a matchesSelector test given the filter\n proto._getFilterTest = function (filter) {\n if (jQuery && this.options.isJQueryFiltering) {\n // use jQuery\n return function (item) {\n return jQuery(item.element).is(filter);\n };\n }\n if (typeof filter == 'function') {\n // use filter as function\n return function (item) {\n return filter(item.element);\n };\n }\n // default, use filter as selector string\n return function (item) {\n return matchesSelector(item.element, filter);\n };\n };\n\n // -------------------------- sorting -------------------------- //\n\n /**\r\n * @params {Array} elems\r\n * @public\r\n */\n proto.updateSortData = function (elems) {\n // get items\n var items;\n if (elems) {\n elems = utils.makeArray(elems);\n items = this.getItems(elems);\n } else {\n // update all items if no elems provided\n items = this.items;\n }\n this._getSorters();\n this._updateItemsSortData(items);\n };\n proto._getSorters = function () {\n var getSortData = this.options.getSortData;\n for (var key in getSortData) {\n var sorter = getSortData[key];\n this._sorters[key] = mungeSorter(sorter);\n }\n };\n\n /**\r\n * @params {Array} items - of Isotopee.Items\r\n * @private\r\n */\n proto._updateItemsSortData = function (items) {\n // do not update if no items\n var len = items && items.length;\n for (var i = 0; len && i < len; i++) {\n var item = items[i];\n item.updateSortData();\n }\n };\n\n // ----- munge sorter ----- //\n\n // encapsulate this, as we just need mungeSorter\n // other functions in here are just for munging\n var mungeSorter = function () {\n // add a magic layer to sorters for convienent shorthands\n // `.foo-bar` will use the text of .foo-bar querySelector\n // `[foo-bar]` will use attribute\n // you can also add parser\n // `.foo-bar parseInt` will parse that as a number\n function mungeSorter(sorter) {\n // if not a string, return function or whatever it is\n if (typeof sorter != 'string') {\n return sorter;\n }\n // parse the sorter string\n var args = trim(sorter).split(' ');\n var query = args[0];\n // check if query looks like [an-attribute]\n var attrMatch = query.match(/^\\[(.+)\\]$/);\n var attr = attrMatch && attrMatch[1];\n var getValue = getValueGetter(attr, query);\n // use second argument as a parser\n var parser = Isotopee.sortDataParsers[args[1]];\n // parse the value, if there was a parser\n sorter = parser ? function (elem) {\n return elem && parser(getValue(elem));\n } :\n // otherwise just return value\n function (elem) {\n return elem && getValue(elem);\n };\n return sorter;\n }\n\n // get an attribute getter, or get text of the querySelector\n function getValueGetter(attr, query) {\n // if query looks like [foo-bar], get attribute\n if (attr) {\n return function getAttribute(elem) {\n return elem.getAttribute(attr);\n };\n }\n\n // otherwise, assume its a querySelector, and get its text\n return function getChildText(elem) {\n var child = elem.querySelector(query);\n return child && child.textContent;\n };\n }\n return mungeSorter;\n }();\n\n // parsers used in getSortData shortcut strings\n Isotopee.sortDataParsers = {\n 'parseInt': function (_parseInt) {\n function parseInt(_x) {\n return _parseInt.apply(this, arguments);\n }\n parseInt.toString = function () {\n return _parseInt.toString();\n };\n return parseInt;\n }(function (val) {\n return parseInt(val, 10);\n }),\n 'parseFloat': function (_parseFloat) {\n function parseFloat(_x2) {\n return _parseFloat.apply(this, arguments);\n }\n parseFloat.toString = function () {\n return _parseFloat.toString();\n };\n return parseFloat;\n }(function (val) {\n return parseFloat(val);\n })\n };\n\n // ----- sort method ----- //\n\n // sort filteredItem order\n proto._sort = function () {\n if (!this.options.sortBy) {\n return;\n }\n // keep track of sortBy History\n var sortBys = utils.makeArray(this.options.sortBy);\n if (!this._getIsSameSortBy(sortBys)) {\n // concat all sortBy and sortHistory, add to front, oldest goes in last\n this.sortHistory = sortBys.concat(this.sortHistory);\n }\n // sort magic\n var itemSorter = getItemSorter(this.sortHistory, this.options.sortAscending);\n this.filteredItems.sort(itemSorter);\n };\n\n // check if sortBys is same as start of sortHistory\n proto._getIsSameSortBy = function (sortBys) {\n for (var i = 0; i < sortBys.length; i++) {\n if (sortBys[i] != this.sortHistory[i]) {\n return false;\n }\n }\n return true;\n };\n\n // returns a function used for sorting\n function getItemSorter(sortBys, sortAsc) {\n return function sorter(itemA, itemB) {\n // cycle through all sortKeys\n for (var i = 0; i < sortBys.length; i++) {\n var sortBy = sortBys[i];\n var a = itemA.sortData[sortBy];\n var b = itemB.sortData[sortBy];\n if (a > b || a < b) {\n // if sortAsc is an object, use the value given the sortBy key\n var isAscending = sortAsc[sortBy] !== undefined ? sortAsc[sortBy] : sortAsc;\n var direction = isAscending ? 1 : -1;\n return (a > b ? 1 : -1) * direction;\n }\n }\n return 0;\n };\n }\n\n // -------------------------- methods -------------------------- //\n\n // get layout mode\n proto._mode = function () {\n var layoutMode = this.options.layoutMode;\n var mode = this.modes[layoutMode];\n if (!mode) {\n // TODO console.error\n throw new Error('No layout mode: ' + layoutMode);\n }\n // HACK sync mode's options\n // any options set after init for layout mode need to be synced\n mode.options = this.options[layoutMode];\n return mode;\n };\n proto._resetLayout = function () {\n // trigger original reset layout\n Outlayer.prototype._resetLayout.call(this);\n this._mode()._resetLayout();\n };\n proto._getItemLayoutPosition = function (item) {\n return this._mode()._getItemLayoutPosition(item);\n };\n proto._manageStamp = function (stamp) {\n this._mode()._manageStamp(stamp);\n };\n proto._getContainerSize = function () {\n return this._mode()._getContainerSize();\n };\n proto.needsResizeLayout = function () {\n return this._mode().needsResizeLayout();\n };\n\n // -------------------------- adding & removing -------------------------- //\n\n // HEADS UP overwrites default Outlayer appended\n proto.appended = function (elems) {\n var items = this.addItems(elems);\n if (!items.length) {\n return;\n }\n // filter, layout, reveal new items\n var filteredItems = this._filterRevealAdded(items);\n // add to filteredItems\n this.filteredItems = this.filteredItems.concat(filteredItems);\n };\n\n // HEADS UP overwrites default Outlayer prepended\n proto.prepended = function (elems) {\n var items = this._itemize(elems);\n if (!items.length) {\n return;\n }\n // start new layout\n this._resetLayout();\n this._manageStamps();\n // filter, layout, reveal new items\n var filteredItems = this._filterRevealAdded(items);\n // layout previous items\n this.layoutItems(this.filteredItems);\n // add to items and filteredItems\n this.filteredItems = filteredItems.concat(this.filteredItems);\n this.items = items.concat(this.items);\n };\n proto._filterRevealAdded = function (items) {\n var filtered = this._filter(items);\n this.hide(filtered.needHide);\n // reveal all new items\n this.reveal(filtered.matches);\n // layout new items, no transition\n this.layoutItems(filtered.matches, true);\n return filtered.matches;\n };\n\n /**\r\n * Filter, sort, and layout newly-appended item elements\r\n * @param {Array or NodeList or Element} elems\r\n */\n proto.insert = function (elems) {\n var items = this.addItems(elems);\n if (!items.length) {\n return;\n }\n // append item elements\n var i, item;\n var len = items.length;\n for (i = 0; i < len; i++) {\n item = items[i];\n this.element.appendChild(item.element);\n }\n // filter new stuff\n var filteredInsertItems = this._filter(items).matches;\n // set flag\n for (i = 0; i < len; i++) {\n items[i].isLayoutInstant = true;\n }\n this.arrange();\n // reset flag\n for (i = 0; i < len; i++) {\n delete items[i].isLayoutInstant;\n }\n this.reveal(filteredInsertItems);\n };\n var _remove = proto.remove;\n proto.remove = function (elems) {\n elems = utils.makeArray(elems);\n var removeItems = this.getItems(elems);\n // do regular thing\n _remove.call(this, elems);\n // bail if no items to remove\n var len = removeItems && removeItems.length;\n // remove elems from filteredItems\n for (var i = 0; len && i < len; i++) {\n var item = removeItems[i];\n // remove item from collection\n utils.removeFrom(this.filteredItems, item);\n }\n };\n proto.shuffle = function () {\n // update random sortData\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i];\n item.sortData.random = Math.random();\n }\n this.options.sortBy = 'random';\n this._sort();\n this._layout();\n };\n\n /**\r\n * trigger fn without transition\r\n * kind of hacky to have this in the first place\r\n * @param {Function} fn\r\n * @param {Array} args\r\n * @returns ret\r\n * @private\r\n */\n proto._noTransition = function (fn, args) {\n // save transitionDuration before disabling\n var transitionDuration = this.options.transitionDuration;\n // disable transition\n this.options.transitionDuration = 0;\n // do it\n var returnValue = fn.apply(this, args);\n // re-enable transition for reveal\n this.options.transitionDuration = transitionDuration;\n return returnValue;\n };\n\n // ----- helper methods ----- //\n\n /**\r\n * getter method for getting filtered item elements\r\n * @returns {Array} elems - collection of item elements\r\n */\n proto.getFilteredItemElements = function () {\n return this.filteredItems.map(function (item) {\n return item.element;\n });\n };\n\n // ----- ----- //\n\n return Isotopee;\n});\n\n\n// WEBPACK FOOTER //\n// ./scripts/vendor/isotope.pkgd.js","/*!\n * Isotope PACKAGED v3.0.6\n *\n * Licensed GPLv3 for open source use\n * or Isotope Commercial License for commercial use\n *\n * https://isotope.metafizzy.co\n * Copyright 2010-2018 Metafizzy\n */\n\n/**\n * Bridget makes jQuery widgets\n * v2.0.1\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /* globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'jquery-bridget/jquery-bridget',[ 'jquery' ], function( jQuery ) {\n return factory( window, jQuery );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('jquery')\n );\n } else {\n // browser global\n window.jQueryBridget = factory(\n window,\n window.jQuery\n );\n }\n\n}( window, function factory( window, jQuery ) {\n'use strict';\n\n// ----- utils ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// helper function for logging errors\n// $.error breaks jQuery chaining\nvar console = window.console;\nvar logError = typeof console == 'undefined' ? function() {} :\n function( message ) {\n console.error( message );\n };\n\n// ----- jQueryBridget ----- //\n\nfunction jQueryBridget( namespace, PluginClass, $ ) {\n $ = $ || jQuery || window.jQuery;\n if ( !$ ) {\n return;\n }\n\n // add option method -> $().plugin('option', {...})\n if ( !PluginClass.prototype.option ) {\n // option setter\n PluginClass.prototype.option = function( opts ) {\n // bail out if not an object\n if ( !$.isPlainObject( opts ) ){\n return;\n }\n this.options = $.extend( true, this.options, opts );\n };\n }\n\n // make jQuery plugin\n $.fn[ namespace ] = function( arg0 /*, arg1 */ ) {\n if ( typeof arg0 == 'string' ) {\n // method call $().plugin( 'methodName', { options } )\n // shift arguments by 1\n var args = arraySlice.call( arguments, 1 );\n return methodCall( this, arg0, args );\n }\n // just $().plugin({ options })\n plainCall( this, arg0 );\n return this;\n };\n\n // $().plugin('methodName')\n function methodCall( $elems, methodName, args ) {\n var returnValue;\n var pluginMethodStr = '$().' + namespace + '(\"' + methodName + '\")';\n\n $elems.each( function( i, elem ) {\n // get instance\n var instance = $.data( elem, namespace );\n if ( !instance ) {\n logError( namespace + ' not initialized. Cannot call methods, i.e. ' +\n pluginMethodStr );\n return;\n }\n\n var method = instance[ methodName ];\n if ( !method || methodName.charAt(0) == '_' ) {\n logError( pluginMethodStr + ' is not a valid method' );\n return;\n }\n\n // apply method, get return value\n var value = method.apply( instance, args );\n // set return value if value is returned, use only first value\n returnValue = returnValue === undefined ? value : returnValue;\n });\n\n return returnValue !== undefined ? returnValue : $elems;\n }\n\n function plainCall( $elems, options ) {\n $elems.each( function( i, elem ) {\n var instance = $.data( elem, namespace );\n if ( instance ) {\n // set options & init\n instance.option( options );\n instance._init();\n } else {\n // initialize new instance\n instance = new PluginClass( elem, options );\n $.data( elem, namespace, instance );\n }\n });\n }\n\n updateJQuery( $ );\n\n}\n\n// ----- updateJQuery ----- //\n\n// set $.bridget for v1 backwards compatibility\nfunction updateJQuery( $ ) {\n if ( !$ || ( $ && $.bridget ) ) {\n return;\n }\n $.bridget = jQueryBridget;\n}\n\nupdateJQuery( jQuery || window.jQuery );\n\n// ----- ----- //\n\nreturn jQueryBridget;\n\n}));\n\n/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( 'ev-emitter/ev-emitter',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\n}( typeof window != 'undefined' ? window : this, function() {\n\n\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\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 if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\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/* globals console: false */\n\n( function( window, factory ) {\n /* jshint strict: false */ /* globals define, module */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'get-size/get-size',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\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n var num = parseFloat( value );\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n function( message ) {\n console.error( message );\n };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n size[ measurement ] = 0;\n }\n return size;\n}\n\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 */\nfunction getStyle( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n logError( 'Style returned ' + style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1' );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if ( isSetup ) {\n return;\n }\n isSetup = true;\n\n // -------------------------- 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 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\n var body = document.body || document.documentElement;\n body.appendChild( div );\n var style = getStyle( div );\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n setup();\n\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n\n // do not proceed on non-objects\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n return;\n }\n\n var style = getStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n var value = style[ measurement ];\n var num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\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\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n }\n\n var styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // 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\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n\nreturn getSize;\n\n});\n\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\n( function( window, factory ) {\n /*global define: false, module: false */\n 'use strict';\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'desandro-matches-selector/matches-selector',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\n}( window, function factory() {\n 'use strict';\n\n var matchesMethod = ( function() {\n var ElemProto = window.Element.prototype;\n // check for the standard method name first\n if ( ElemProto.matches ) {\n return 'matches';\n }\n // check un-prefixed\n if ( ElemProto.matchesSelector ) {\n return 'matchesSelector';\n }\n // check vendor prefixes\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 if ( ElemProto[ method ] ) {\n return method;\n }\n }\n })();\n\n return function matchesSelector( elem, selector ) {\n return elem[ matchesMethod ]( selector );\n };\n\n}));\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\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'fizzy-ui-utils/utils',[\n 'desandro-matches-selector/matches-selector'\n ], function( matchesSelector ) {\n return factory( window, matchesSelector );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('desandro-matches-selector')\n );\n } else {\n // browser global\n window.fizzyUIUtils = factory(\n window,\n window.matchesSelector\n );\n }\n\n}( window, function factory( window, matchesSelector ) {\n\n\n\nvar utils = {};\n\n// ----- extend ----- //\n\n// extends objects\nutils.extend = function( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n};\n\n// ----- modulo ----- //\n\nutils.modulo = function( num, div ) {\n return ( ( num % div ) + div ) % div;\n};\n\n// ----- makeArray ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nutils.makeArray = function( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n // return empty array if undefined or null. #6\n if ( obj === null || obj === undefined ) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n};\n\n// ----- removeFrom ----- //\n\nutils.removeFrom = function( ary, obj ) {\n var index = ary.indexOf( obj );\n if ( index != -1 ) {\n ary.splice( index, 1 );\n }\n};\n\n// ----- getParent ----- //\n\nutils.getParent = function( elem, selector ) {\n while ( elem.parentNode && elem != document.body ) {\n elem = elem.parentNode;\n if ( matchesSelector( elem, selector ) ) {\n return elem;\n }\n }\n};\n\n// ----- getQueryElement ----- //\n\n// use element as selector string\nutils.getQueryElement = function( elem ) {\n if ( typeof elem == 'string' ) {\n return document.querySelector( elem );\n }\n return elem;\n};\n\n// ----- handleEvent ----- //\n\n// enable .ontype to trigger from .addEventListener( elem, 'type' )\nutils.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// ----- filterFindElements ----- //\n\nutils.filterFindElements = function( elems, selector ) {\n // make array of elems\n elems = utils.makeArray( elems );\n var ffElems = [];\n\n elems.forEach( function( elem ) {\n // check that elem is an actual element\n if ( !( elem instanceof HTMLElement ) ) {\n return;\n }\n // add elem if no selector\n if ( !selector ) {\n ffElems.push( elem );\n return;\n }\n // filter & find items if we have a selector\n // filter\n if ( matchesSelector( elem, selector ) ) {\n ffElems.push( elem );\n }\n // find children\n var childElems = elem.querySelectorAll( selector );\n // concat childElems to filterFound array\n for ( var i=0; i < childElems.length; i++ ) {\n ffElems.push( childElems[i] );\n }\n });\n\n return ffElems;\n};\n\n// ----- debounceMethod ----- //\n\nutils.debounceMethod = function( _class, methodName, threshold ) {\n threshold = threshold || 100;\n // original method\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\n var args = arguments;\n var _this = this;\n this[ timeoutName ] = setTimeout( function() {\n method.apply( _this, args );\n delete _this[ timeoutName ];\n }, threshold );\n };\n};\n\n// ----- docReady ----- //\n\nutils.docReady = function( callback ) {\n var readyState = document.readyState;\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};\n\n// ----- htmlInit ----- //\n\n// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\nutils.toDashed = function( str ) {\n return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {\n return $1 + '-' + $2;\n }).toLowerCase();\n};\n\nvar 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 */\nutils.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 )\n .concat( utils.makeArray( jsDashElems ) );\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n\n elems.forEach( function( elem ) {\n var attr = elem.getAttribute( dataAttr ) ||\n elem.getAttribute( dataOptionsAttr );\n var options;\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 +\n ': ' + error );\n }\n return;\n }\n // initialize\n var instance = new WidgetClass( elem, options );\n // make available via $().data('namespace')\n if ( jQuery ) {\n jQuery.data( elem, namespace, instance );\n }\n });\n\n });\n};\n\n// ----- ----- //\n\nreturn utils;\n\n}));\n\n/**\n * Outlayer Item\n */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( 'outlayer/item',[\n 'ev-emitter/ev-emitter',\n 'get-size/get-size'\n ],\n factory\n );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory(\n require('ev-emitter'),\n require('get-size')\n );\n } else {\n // browser global\n window.Outlayer = {};\n window.Outlayer.Item = factory(\n window.EvEmitter,\n window.getSize\n );\n }\n\n}( window, function factory( EvEmitter, getSize ) {\n'use strict';\n\n// ----- helpers ----- //\n\nfunction isEmptyObj( obj ) {\n for ( var prop in obj ) {\n return false;\n }\n prop = null;\n return true;\n}\n\n// -------------------------- CSS3 support -------------------------- //\n\n\nvar docElemStyle = document.documentElement.style;\n\nvar transitionProperty = typeof docElemStyle.transition == 'string' ?\n 'transition' : 'WebkitTransition';\nvar transformProperty = typeof docElemStyle.transform == 'string' ?\n 'transform' : 'WebkitTransform';\n\nvar transitionEndEvent = {\n WebkitTransition: 'webkitTransitionEnd',\n transition: 'transitionend'\n}[ transitionProperty ];\n\n// cache all vendor properties that could have vendor prefix\nvar vendorProperties = {\n transform: transformProperty,\n transition: transitionProperty,\n transitionDuration: transitionProperty + 'Duration',\n transitionProperty: transitionProperty + 'Property',\n transitionDelay: transitionProperty + 'Delay'\n};\n\n// -------------------------- Item -------------------------- //\n\nfunction Item( element, layout ) {\n if ( !element ) {\n return;\n }\n\n this.element = element;\n // parent layout class, i.e. Masonry, Isotope, or Packery\n this.layout = layout;\n this.position = {\n x: 0,\n y: 0\n };\n\n this._create();\n}\n\n// inherit EvEmitter\nvar proto = Item.prototype = Object.create( EvEmitter.prototype );\nproto.constructor = Item;\n\nproto._create = function() {\n // transition objects\n this._transn = {\n ingProperties: {},\n clean: {},\n onEnd: {}\n };\n\n this.css({\n position: 'absolute'\n });\n};\n\n// trigger specified handler for event type\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\n/**\n * apply CSS styles to element\n * @param {Object} style\n */\nproto.css = function( style ) {\n var elemStyle = this.element.style;\n\n for ( var prop in style ) {\n // use vendor property if available\n var supportedProp = vendorProperties[ prop ] || prop;\n elemStyle[ supportedProp ] = style[ prop ];\n }\n};\n\n // measure position, and sets it\nproto.getPosition = function() {\n var style = getComputedStyle( this.element );\n var isOriginLeft = this.layout._getOption('originLeft');\n var isOriginTop = this.layout._getOption('originTop');\n var xValue = style[ isOriginLeft ? 'left' : 'right' ];\n var yValue = style[ isOriginTop ? 'top' : 'bottom' ];\n var x = parseFloat( xValue );\n var y = parseFloat( yValue );\n // convert percent to pixels\n var layoutSize = this.layout.size;\n if ( xValue.indexOf('%') != -1 ) {\n x = ( x / 100 ) * layoutSize.width;\n }\n if ( yValue.indexOf('%') != -1 ) {\n y = ( y / 100 ) * layoutSize.height;\n }\n // clean up 'auto' or other non-integer values\n x = isNaN( x ) ? 0 : x;\n y = isNaN( y ) ? 0 : y;\n // remove padding from measurement\n x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight;\n y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom;\n\n this.position.x = x;\n this.position.y = y;\n};\n\n// set settled position, apply padding\nproto.layoutPosition = function() {\n var layoutSize = this.layout.size;\n var style = {};\n var isOriginLeft = this.layout._getOption('originLeft');\n var isOriginTop = this.layout._getOption('originTop');\n\n // x\n var xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight';\n var xProperty = isOriginLeft ? 'left' : 'right';\n var xResetProperty = isOriginLeft ? 'right' : 'left';\n\n var x = this.position.x + layoutSize[ xPadding ];\n // set in percentage or pixels\n style[ xProperty ] = this.getXValue( x );\n // reset other property\n style[ xResetProperty ] = '';\n\n // y\n var yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom';\n var yProperty = isOriginTop ? 'top' : 'bottom';\n var yResetProperty = isOriginTop ? 'bottom' : 'top';\n\n var y = this.position.y + layoutSize[ yPadding ];\n // set in percentage or pixels\n style[ yProperty ] = this.getYValue( y );\n // reset other property\n style[ yResetProperty ] = '';\n\n this.css( style );\n this.emitEvent( 'layout', [ this ] );\n};\n\nproto.getXValue = function( x ) {\n var isHorizontal = this.layout._getOption('horizontal');\n return this.layout.options.percentPosition && !isHorizontal ?\n ( ( x / this.layout.size.width ) * 100 ) + '%' : x + 'px';\n};\n\nproto.getYValue = function( y ) {\n var isHorizontal = this.layout._getOption('horizontal');\n return this.layout.options.percentPosition && isHorizontal ?\n ( ( y / this.layout.size.height ) * 100 ) + '%' : y + 'px';\n};\n\nproto._transitionTo = function( x, y ) {\n this.getPosition();\n // get current x & y from top/left\n var curX = this.position.x;\n var curY = this.position.y;\n\n var didNotMove = x == this.position.x && y == this.position.y;\n\n // save end position\n this.setPosition( x, y );\n\n // if did not move and not transitioning, just go to layout\n if ( didNotMove && !this.isTransitioning ) {\n this.layoutPosition();\n return;\n }\n\n var transX = x - curX;\n var transY = y - curY;\n var transitionStyle = {};\n transitionStyle.transform = this.getTranslate( transX, transY );\n\n this.transition({\n to: transitionStyle,\n onTransitionEnd: {\n transform: this.layoutPosition\n },\n isCleaning: true\n });\n};\n\nproto.getTranslate = function( x, y ) {\n // flip cooridinates if origin on right or bottom\n var isOriginLeft = this.layout._getOption('originLeft');\n var isOriginTop = this.layout._getOption('originTop');\n x = isOriginLeft ? x : -x;\n y = isOriginTop ? y : -y;\n return 'translate3d(' + x + 'px, ' + y + 'px, 0)';\n};\n\n// non transition + transform support\nproto.goTo = function( x, y ) {\n this.setPosition( x, y );\n this.layoutPosition();\n};\n\nproto.moveTo = proto._transitionTo;\n\nproto.setPosition = function( x, y ) {\n this.position.x = parseFloat( x );\n this.position.y = parseFloat( y );\n};\n\n// ----- transition ----- //\n\n/**\n * @param {Object} style - CSS\n * @param {Function} onTransitionEnd\n */\n\n// non transition, just trigger callback\nproto._nonTransition = function( args ) {\n this.css( args.to );\n if ( args.isCleaning ) {\n this._removeStyles( args.to );\n }\n for ( var prop in args.onTransitionEnd ) {\n args.onTransitionEnd[ prop ].call( this );\n }\n};\n\n/**\n * proper transition\n * @param {Object} args - arguments\n * @param {Object} to - style to transition to\n * @param {Object} from - style to start transition from\n * @param {Boolean} isCleaning - removes transition styles after transition\n * @param {Function} onTransitionEnd - callback\n */\nproto.transition = function( args ) {\n // redirect to nonTransition if no transition duration\n if ( !parseFloat( this.layout.options.transitionDuration ) ) {\n this._nonTransition( args );\n return;\n }\n\n var _transition = this._transn;\n // keep track of onTransitionEnd callback by css property\n for ( var prop in args.onTransitionEnd ) {\n _transition.onEnd[ prop ] = args.onTransitionEnd[ prop ];\n }\n // keep track of properties that are transitioning\n for ( prop in args.to ) {\n _transition.ingProperties[ prop ] = true;\n // keep track of properties to clean up when transition is done\n if ( args.isCleaning ) {\n _transition.clean[ prop ] = true;\n }\n }\n\n // set from styles\n if ( args.from ) {\n this.css( args.from );\n // force redraw. http://blog.alexmaccaw.com/css-transitions\n var h = this.element.offsetHeight;\n // hack for JSHint to hush about unused var\n h = null;\n }\n // enable transition\n this.enableTransition( args.to );\n // set styles that are transitioning\n this.css( args.to );\n\n this.isTransitioning = true;\n\n};\n\n// dash before all cap letters, including first for\n// WebkitTransform => -webkit-transform\nfunction toDashedAll( str ) {\n return str.replace( /([A-Z])/g, function( $1 ) {\n return '-' + $1.toLowerCase();\n });\n}\n\nvar transitionProps = 'opacity,' + toDashedAll( transformProperty );\n\nproto.enableTransition = function(/* style */) {\n // HACK changing transitionProperty during a transition\n // will cause transition to jump\n if ( this.isTransitioning ) {\n return;\n }\n\n // make `transition: foo, bar, baz` from style object\n // HACK un-comment this when enableTransition can work\n // while a transition is happening\n // var transitionValues = [];\n // for ( var prop in style ) {\n // // dash-ify camelCased properties like WebkitTransition\n // prop = vendorProperties[ prop ] || prop;\n // transitionValues.push( toDashedAll( prop ) );\n // }\n // munge number to millisecond, to match stagger\n var duration = this.layout.options.transitionDuration;\n duration = typeof duration == 'number' ? duration + 'ms' : duration;\n // enable transition styles\n this.css({\n transitionProperty: transitionProps,\n transitionDuration: duration,\n transitionDelay: this.staggerDelay || 0\n });\n // listen for transition end event\n this.element.addEventListener( transitionEndEvent, this, false );\n};\n\n// ----- events ----- //\n\nproto.onwebkitTransitionEnd = function( event ) {\n this.ontransitionend( event );\n};\n\nproto.onotransitionend = function( event ) {\n this.ontransitionend( event );\n};\n\n// properties that I munge to make my life easier\nvar dashedVendorProperties = {\n '-webkit-transform': 'transform'\n};\n\nproto.ontransitionend = function( event ) {\n // disregard bubbled events from children\n if ( event.target !== this.element ) {\n return;\n }\n var _transition = this._transn;\n // get property name of transitioned property, convert to prefix-free\n var propertyName = dashedVendorProperties[ event.propertyName ] || event.propertyName;\n\n // remove property that has completed transitioning\n delete _transition.ingProperties[ propertyName ];\n // check if any properties are still transitioning\n if ( isEmptyObj( _transition.ingProperties ) ) {\n // all properties have completed transitioning\n this.disableTransition();\n }\n // clean style\n if ( propertyName in _transition.clean ) {\n // clean up style\n this.element.style[ event.propertyName ] = '';\n delete _transition.clean[ propertyName ];\n }\n // trigger onTransitionEnd callback\n if ( propertyName in _transition.onEnd ) {\n var onTransitionEnd = _transition.onEnd[ propertyName ];\n onTransitionEnd.call( this );\n delete _transition.onEnd[ propertyName ];\n }\n\n this.emitEvent( 'transitionEnd', [ this ] );\n};\n\nproto.disableTransition = function() {\n this.removeTransitionStyles();\n this.element.removeEventListener( transitionEndEvent, this, false );\n this.isTransitioning = false;\n};\n\n/**\n * removes style property from element\n * @param {Object} style\n**/\nproto._removeStyles = function( style ) {\n // clean up transition styles\n var cleanStyle = {};\n for ( var prop in style ) {\n cleanStyle[ prop ] = '';\n }\n this.css( cleanStyle );\n};\n\nvar cleanTransitionStyle = {\n transitionProperty: '',\n transitionDuration: '',\n transitionDelay: ''\n};\n\nproto.removeTransitionStyles = function() {\n // remove transition\n this.css( cleanTransitionStyle );\n};\n\n// ----- stagger ----- //\n\nproto.stagger = function( delay ) {\n delay = isNaN( delay ) ? 0 : delay;\n this.staggerDelay = delay + 'ms';\n};\n\n// ----- show/hide/remove ----- //\n\n// remove element from DOM\nproto.removeElem = function() {\n this.element.parentNode.removeChild( this.element );\n // remove display: none\n this.css({ display: '' });\n this.emitEvent( 'remove', [ this ] );\n};\n\nproto.remove = function() {\n // just remove element if no transition support or no transition\n if ( !transitionProperty || !parseFloat( this.layout.options.transitionDuration ) ) {\n this.removeElem();\n return;\n }\n\n // start transition\n this.once( 'transitionEnd', function() {\n this.removeElem();\n });\n this.hide();\n};\n\nproto.reveal = function() {\n delete this.isHidden;\n // remove display: none\n this.css({ display: '' });\n\n var options = this.layout.options;\n\n var onTransitionEnd = {};\n var transitionEndProperty = this.getHideRevealTransitionEndProperty('visibleStyle');\n onTransitionEnd[ transitionEndProperty ] = this.onRevealTransitionEnd;\n\n this.transition({\n from: options.hiddenStyle,\n to: options.visibleStyle,\n isCleaning: true,\n onTransitionEnd: onTransitionEnd\n });\n};\n\nproto.onRevealTransitionEnd = function() {\n // check if still visible\n // during transition, item may have been hidden\n if ( !this.isHidden ) {\n this.emitEvent('reveal');\n }\n};\n\n/**\n * get style property use for hide/reveal transition end\n * @param {String} styleProperty - hiddenStyle/visibleStyle\n * @returns {String}\n */\nproto.getHideRevealTransitionEndProperty = function( styleProperty ) {\n var optionStyle = this.layout.options[ styleProperty ];\n // use opacity\n if ( optionStyle.opacity ) {\n return 'opacity';\n }\n // get first property\n for ( var prop in optionStyle ) {\n return prop;\n }\n};\n\nproto.hide = function() {\n // set flag\n this.isHidden = true;\n // remove display: none\n this.css({ display: '' });\n\n var options = this.layout.options;\n\n var onTransitionEnd = {};\n var transitionEndProperty = this.getHideRevealTransitionEndProperty('hiddenStyle');\n onTransitionEnd[ transitionEndProperty ] = this.onHideTransitionEnd;\n\n this.transition({\n from: options.visibleStyle,\n to: options.hiddenStyle,\n // keep hidden stuff hidden\n isCleaning: true,\n onTransitionEnd: onTransitionEnd\n });\n};\n\nproto.onHideTransitionEnd = function() {\n // check if still hidden\n // during transition, item may have been un-hidden\n if ( this.isHidden ) {\n this.css({ display: 'none' });\n this.emitEvent('hide');\n }\n};\n\nproto.destroy = function() {\n this.css({\n position: '',\n left: '',\n right: '',\n top: '',\n bottom: '',\n transition: '',\n transform: ''\n });\n};\n\nreturn Item;\n\n}));\n\n/*!\n * Outlayer v2.1.1\n * the brains and guts of a layout library\n * MIT license\n */\n\n( function( window, factory ) {\n 'use strict';\n // universal module definition\n /* jshint strict: false */ /* globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( 'outlayer/outlayer',[\n 'ev-emitter/ev-emitter',\n 'get-size/get-size',\n 'fizzy-ui-utils/utils',\n './item'\n ],\n function( EvEmitter, getSize, utils, Item ) {\n return factory( window, EvEmitter, getSize, utils, Item);\n }\n );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory(\n window,\n require('ev-emitter'),\n require('get-size'),\n require('fizzy-ui-utils'),\n require('./item')\n );\n } else {\n // browser global\n window.Outlayer = factory(\n window,\n window.EvEmitter,\n window.getSize,\n window.fizzyUIUtils,\n window.Outlayer.Item\n );\n }\n\n}( window, function factory( window, EvEmitter, getSize, utils, Item ) {\n'use strict';\n\n// ----- vars ----- //\n\nvar console = window.console;\nvar jQuery = window.jQuery;\nvar noop = function() {};\n\n// -------------------------- Outlayer -------------------------- //\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Outlayer intances\nvar instances = {};\n\n\n/**\n * @param {Element, String} element\n * @param {Object} options\n * @constructor\n */\nfunction Outlayer( element, options ) {\n var queryElement = utils.getQueryElement( element );\n if ( !queryElement ) {\n if ( console ) {\n console.error( 'Bad element for ' + this.constructor.namespace +\n ': ' + ( queryElement || element ) );\n }\n return;\n }\n this.element = queryElement;\n // add jQuery\n if ( jQuery ) {\n this.$element = jQuery( this.element );\n }\n\n // options\n this.options = utils.extend( {}, this.constructor.defaults );\n this.option( options );\n\n // add id for Outlayer.getFromElement\n var id = ++GUID;\n this.element.outlayerGUID = id; // expando\n instances[ id ] = this; // associate via id\n\n // kick it off\n this._create();\n\n var isInitLayout = this._getOption('initLayout');\n if ( isInitLayout ) {\n this.layout();\n }\n}\n\n// settings are for internal use only\nOutlayer.namespace = 'outlayer';\nOutlayer.Item = Item;\n\n// default options\nOutlayer.defaults = {\n containerStyle: {\n position: 'relative'\n },\n initLayout: true,\n originLeft: true,\n originTop: true,\n resize: true,\n resizeContainer: true,\n // item options\n transitionDuration: '0.4s',\n hiddenStyle: {\n opacity: 0,\n transform: 'scale(0.001)'\n },\n visibleStyle: {\n opacity: 1,\n transform: 'scale(1)'\n }\n};\n\nvar proto = Outlayer.prototype;\n// inherit EvEmitter\nutils.extend( proto, EvEmitter.prototype );\n\n/**\n * set options\n * @param {Object} opts\n */\nproto.option = function( opts ) {\n utils.extend( this.options, opts );\n};\n\n/**\n * get backwards compatible option value, check old name\n */\nproto._getOption = function( option ) {\n var oldOption = this.constructor.compatOptions[ option ];\n return oldOption && this.options[ oldOption ] !== undefined ?\n this.options[ oldOption ] : this.options[ option ];\n};\n\nOutlayer.compatOptions = {\n // currentName: oldName\n initLayout: 'isInitLayout',\n horizontal: 'isHorizontal',\n layoutInstant: 'isLayoutInstant',\n originLeft: 'isOriginLeft',\n originTop: 'isOriginTop',\n resize: 'isResizeBound',\n resizeContainer: 'isResizingContainer'\n};\n\nproto._create = function() {\n // get items from children\n this.reloadItems();\n // elements that affect layout, but are not laid out\n this.stamps = [];\n this.stamp( this.options.stamp );\n // set container style\n utils.extend( this.element.style, this.options.containerStyle );\n\n // bind resize method\n var canBindResize = this._getOption('resize');\n if ( canBindResize ) {\n this.bindResize();\n }\n};\n\n// goes through all children again and gets bricks in proper order\nproto.reloadItems = function() {\n // collection of item elements\n this.items = this._itemize( this.element.children );\n};\n\n\n/**\n * turn elements into Outlayer.Items to be used in layout\n * @param {Array or NodeList or HTMLElement} elems\n * @returns {Array} items - collection of new Outlayer Items\n */\nproto._itemize = function( elems ) {\n\n var itemElems = this._filterFindItemElements( elems );\n var Item = this.constructor.Item;\n\n // create new Outlayer Items for collection\n var items = [];\n for ( var i=0; i < itemElems.length; i++ ) {\n var elem = itemElems[i];\n var item = new Item( elem, this );\n items.push( item );\n }\n\n return items;\n};\n\n/**\n * get item elements to be used in layout\n * @param {Array or NodeList or HTMLElement} elems\n * @returns {Array} items - item elements\n */\nproto._filterFindItemElements = function( elems ) {\n return utils.filterFindElements( elems, this.options.itemSelector );\n};\n\n/**\n * getter method for getting item elements\n * @returns {Array} elems - collection of item elements\n */\nproto.getItemElements = function() {\n return this.items.map( function( item ) {\n return item.element;\n });\n};\n\n// ----- init & layout ----- //\n\n/**\n * lays out all items\n */\nproto.layout = function() {\n this._resetLayout();\n this._manageStamps();\n\n // don't animate first layout\n var layoutInstant = this._getOption('layoutInstant');\n var isInstant = layoutInstant !== undefined ?\n layoutInstant : !this._isLayoutInited;\n this.layoutItems( this.items, isInstant );\n\n // flag for initalized\n this._isLayoutInited = true;\n};\n\n// _init is alias for layout\nproto._init = proto.layout;\n\n/**\n * logic before any new layout\n */\nproto._resetLayout = function() {\n this.getSize();\n};\n\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\n/**\n * get measurement from option, for columnWidth, rowHeight, gutter\n * if option is String -> get element from selector string, & get size of element\n * if option is Element -> get size of element\n * else use option as a number\n *\n * @param {String} measurement\n * @param {String} size - width or height\n * @private\n */\nproto._getMeasurement = function( measurement, size ) {\n var option = this.options[ measurement ];\n var elem;\n if ( !option ) {\n // default to 0\n this[ measurement ] = 0;\n } else {\n // use option as an element\n if ( typeof option == 'string' ) {\n elem = this.element.querySelector( option );\n } else if ( option instanceof HTMLElement ) {\n elem = option;\n }\n // use size of element, if element\n this[ measurement ] = elem ? getSize( elem )[ size ] : option;\n }\n};\n\n/**\n * layout a collection of item elements\n * @api public\n */\nproto.layoutItems = function( items, isInstant ) {\n items = this._getItemsForLayout( items );\n\n this._layoutItems( items, isInstant );\n\n this._postLayout();\n};\n\n/**\n * get the items to be laid out\n * you may want to skip over some items\n * @param {Array} items\n * @returns {Array} items\n */\nproto._getItemsForLayout = function( items ) {\n return items.filter( function( item ) {\n return !item.isIgnored;\n });\n};\n\n/**\n * layout items\n * @param {Array} items\n * @param {Boolean} isInstant\n */\nproto._layoutItems = function( items, isInstant ) {\n this._emitCompleteOnItems( 'layout', items );\n\n if ( !items || !items.length ) {\n // no items, emit event with empty array\n return;\n }\n\n var queue = [];\n\n items.forEach( function( item ) {\n // get x/y object from method\n var position = this._getItemLayoutPosition( item );\n // enqueue\n position.item = item;\n position.isInstant = isInstant || item.isLayoutInstant;\n queue.push( position );\n }, this );\n\n this._processLayoutQueue( queue );\n};\n\n/**\n * get item layout position\n * @param {Outlayer.Item} item\n * @returns {Object} x and y position\n */\nproto._getItemLayoutPosition = function( /* item */ ) {\n return {\n x: 0,\n y: 0\n };\n};\n\n/**\n * iterate over array and position each item\n * Reason being - separating this logic prevents 'layout invalidation'\n * thx @paul_irish\n * @param {Array} queue\n */\nproto._processLayoutQueue = function( queue ) {\n this.updateStagger();\n queue.forEach( function( obj, i ) {\n this._positionItem( obj.item, obj.x, obj.y, obj.isInstant, i );\n }, this );\n};\n\n// set stagger from option in milliseconds number\nproto.updateStagger = function() {\n var stagger = this.options.stagger;\n if ( stagger === null || stagger === undefined ) {\n this.stagger = 0;\n return;\n }\n this.stagger = getMilliseconds( stagger );\n return this.stagger;\n};\n\n/**\n * Sets position of item in DOM\n * @param {Outlayer.Item} item\n * @param {Number} x - horizontal position\n * @param {Number} y - vertical position\n * @param {Boolean} isInstant - disables transitions\n */\nproto._positionItem = function( item, x, y, isInstant, i ) {\n if ( isInstant ) {\n // if not transition, just set CSS\n item.goTo( x, y );\n } else {\n item.stagger( i * this.stagger );\n item.moveTo( x, y );\n }\n};\n\n/**\n * Any logic you want to do after each layout,\n * i.e. size the container\n */\nproto._postLayout = function() {\n this.resizeContainer();\n};\n\nproto.resizeContainer = function() {\n var isResizingContainer = this._getOption('resizeContainer');\n if ( !isResizingContainer ) {\n return;\n }\n var size = this._getContainerSize();\n if ( size ) {\n this._setContainerMeasure( size.width, true );\n this._setContainerMeasure( size.height, false );\n }\n};\n\n/**\n * Sets width or height of container if returned\n * @returns {Object} size\n * @param {Number} width\n * @param {Number} height\n */\nproto._getContainerSize = noop;\n\n/**\n * @param {Number} measure - size of width or height\n * @param {Boolean} isWidth\n */\nproto._setContainerMeasure = function( measure, isWidth ) {\n if ( measure === undefined ) {\n return;\n }\n\n var elemSize = this.size;\n // add padding and border width if border box\n if ( elemSize.isBorderBox ) {\n measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight +\n elemSize.borderLeftWidth + elemSize.borderRightWidth :\n elemSize.paddingBottom + elemSize.paddingTop +\n elemSize.borderTopWidth + elemSize.borderBottomWidth;\n }\n\n measure = Math.max( measure, 0 );\n this.element.style[ isWidth ? 'width' : 'height' ] = measure + 'px';\n};\n\n/**\n * emit eventComplete on a collection of items events\n * @param {String} eventName\n * @param {Array} items - Outlayer.Items\n */\nproto._emitCompleteOnItems = function( eventName, items ) {\n var _this = this;\n function onComplete() {\n _this.dispatchEvent( eventName + 'Complete', null, [ items ] );\n }\n\n var count = items.length;\n if ( !items || !count ) {\n onComplete();\n return;\n }\n\n var doneCount = 0;\n function tick() {\n doneCount++;\n if ( doneCount == count ) {\n onComplete();\n }\n }\n\n // bind callback\n items.forEach( function( item ) {\n item.once( eventName, tick );\n });\n};\n\n/**\n * emits events via EvEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function( type, event, args ) {\n // add original event to arguments\n var emitArgs = event ? [ event ].concat( args ) : args;\n this.emitEvent( type, emitArgs );\n\n if ( jQuery ) {\n // set this.$element\n this.$element = this.$element || jQuery( this.element );\n if ( event ) {\n // create jQuery event\n var $event = jQuery.Event( event );\n $event.type = type;\n this.$element.trigger( $event, args );\n } else {\n // just trigger with type if no event available\n this.$element.trigger( type, args );\n }\n }\n};\n\n// -------------------------- ignore & stamps -------------------------- //\n\n\n/**\n * keep item in collection, but do not lay it out\n * ignored items do not get skipped in layout\n * @param {Element} elem\n */\nproto.ignore = function( elem ) {\n var item = this.getItem( elem );\n if ( item ) {\n item.isIgnored = true;\n }\n};\n\n/**\n * return item to layout collection\n * @param {Element} elem\n */\nproto.unignore = function( elem ) {\n var item = this.getItem( elem );\n if ( item ) {\n delete item.isIgnored;\n }\n};\n\n/**\n * adds elements to stamps\n * @param {NodeList, Array, Element, or String} elems\n */\nproto.stamp = function( elems ) {\n elems = this._find( elems );\n if ( !elems ) {\n return;\n }\n\n this.stamps = this.stamps.concat( elems );\n // ignore\n elems.forEach( this.ignore, this );\n};\n\n/**\n * removes elements to stamps\n * @param {NodeList, Array, or Element} elems\n */\nproto.unstamp = function( elems ) {\n elems = this._find( elems );\n if ( !elems ){\n return;\n }\n\n elems.forEach( function( elem ) {\n // filter out removed stamp elements\n utils.removeFrom( this.stamps, elem );\n this.unignore( elem );\n }, this );\n};\n\n/**\n * finds child elements\n * @param {NodeList, Array, Element, or String} elems\n * @returns {Array} elems\n */\nproto._find = function( elems ) {\n if ( !elems ) {\n return;\n }\n // if string, use argument as selector string\n if ( typeof elems == 'string' ) {\n elems = this.element.querySelectorAll( elems );\n }\n elems = utils.makeArray( elems );\n return elems;\n};\n\nproto._manageStamps = function() {\n if ( !this.stamps || !this.stamps.length ) {\n return;\n }\n\n this._getBoundingRect();\n\n this.stamps.forEach( this._manageStamp, this );\n};\n\n// update boundingLeft / Top\nproto._getBoundingRect = function() {\n // get bounding rect for container element\n var boundingRect = this.element.getBoundingClientRect();\n var size = this.size;\n this._boundingRect = {\n left: boundingRect.left + size.paddingLeft + size.borderLeftWidth,\n top: boundingRect.top + size.paddingTop + size.borderTopWidth,\n right: boundingRect.right - ( size.paddingRight + size.borderRightWidth ),\n bottom: boundingRect.bottom - ( size.paddingBottom + size.borderBottomWidth )\n };\n};\n\n/**\n * @param {Element} stamp\n**/\nproto._manageStamp = noop;\n\n/**\n * get x/y position of element relative to container element\n * @param {Element} elem\n * @returns {Object} offset - has left, top, right, bottom\n */\nproto._getElementOffset = function( elem ) {\n var boundingRect = elem.getBoundingClientRect();\n var thisRect = this._boundingRect;\n var size = getSize( elem );\n var offset = {\n left: boundingRect.left - thisRect.left - size.marginLeft,\n top: boundingRect.top - thisRect.top - size.marginTop,\n right: thisRect.right - boundingRect.right - size.marginRight,\n bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom\n };\n return offset;\n};\n\n// -------------------------- resize -------------------------- //\n\n// enable event handlers for listeners\n// i.e. resize -> onresize\nproto.handleEvent = utils.handleEvent;\n\n/**\n * Bind layout to window resizing\n */\nproto.bindResize = function() {\n window.addEventListener( 'resize', this );\n this.isResizeBound = true;\n};\n\n/**\n * Unbind layout to window resizing\n */\nproto.unbindResize = function() {\n window.removeEventListener( 'resize', this );\n this.isResizeBound = false;\n};\n\nproto.onresize = function() {\n this.resize();\n};\n\nutils.debounceMethod( Outlayer, 'onresize', 100 );\n\nproto.resize = function() {\n // don't trigger if size did not change\n // or if resize was unbound. See #9\n if ( !this.isResizeBound || !this.needsResizeLayout() ) {\n return;\n }\n\n this.layout();\n};\n\n/**\n * check if layout is needed post layout\n * @returns Boolean\n */\nproto.needsResizeLayout = function() {\n var size = getSize( this.element );\n // check that this.size and size are there\n // IE8 triggers resize on body size change, so they might not be\n var hasSizes = this.size && size;\n return hasSizes && size.innerWidth !== this.size.innerWidth;\n};\n\n// -------------------------- methods -------------------------- //\n\n/**\n * add items to Outlayer instance\n * @param {Array or NodeList or Element} elems\n * @returns {Array} items - Outlayer.Items\n**/\nproto.addItems = function( elems ) {\n var items = this._itemize( elems );\n // add items to collection\n if ( items.length ) {\n this.items = this.items.concat( items );\n }\n return items;\n};\n\n/**\n * Layout newly-appended item elements\n * @param {Array or NodeList or Element} elems\n */\nproto.appended = function( elems ) {\n var items = this.addItems( elems );\n if ( !items.length ) {\n return;\n }\n // layout and reveal just the new items\n this.layoutItems( items, true );\n this.reveal( items );\n};\n\n/**\n * Layout prepended elements\n * @param {Array or NodeList or Element} elems\n */\nproto.prepended = function( elems ) {\n var items = this._itemize( elems );\n if ( !items.length ) {\n return;\n }\n // add items to beginning of collection\n var previousItems = this.items.slice(0);\n this.items = items.concat( previousItems );\n // start new layout\n this._resetLayout();\n this._manageStamps();\n // layout new stuff without transition\n this.layoutItems( items, true );\n this.reveal( items );\n // layout previous items\n this.layoutItems( previousItems );\n};\n\n/**\n * reveal a collection of items\n * @param {Array of Outlayer.Items} items\n */\nproto.reveal = function( items ) {\n this._emitCompleteOnItems( 'reveal', items );\n if ( !items || !items.length ) {\n return;\n }\n var stagger = this.updateStagger();\n items.forEach( function( item, i ) {\n item.stagger( i * stagger );\n item.reveal();\n });\n};\n\n/**\n * hide a collection of items\n * @param {Array of Outlayer.Items} items\n */\nproto.hide = function( items ) {\n this._emitCompleteOnItems( 'hide', items );\n if ( !items || !items.length ) {\n return;\n }\n var stagger = this.updateStagger();\n items.forEach( function( item, i ) {\n item.stagger( i * stagger );\n item.hide();\n });\n};\n\n/**\n * reveal item elements\n * @param {Array}, {Element}, {NodeList} items\n */\nproto.revealItemElements = function( elems ) {\n var items = this.getItems( elems );\n this.reveal( items );\n};\n\n/**\n * hide item elements\n * @param {Array}, {Element}, {NodeList} items\n */\nproto.hideItemElements = function( elems ) {\n var items = this.getItems( elems );\n this.hide( items );\n};\n\n/**\n * get Outlayer.Item, given an Element\n * @param {Element} elem\n * @param {Function} callback\n * @returns {Outlayer.Item} item\n */\nproto.getItem = function( elem ) {\n // loop through items to get the one that matches\n for ( var i=0; i < this.items.length; i++ ) {\n var item = this.items[i];\n if ( item.element == elem ) {\n // return item\n return item;\n }\n }\n};\n\n/**\n * get collection of Outlayer.Items, given Elements\n * @param {Array} elems\n * @returns {Array} items - Outlayer.Items\n */\nproto.getItems = function( elems ) {\n elems = utils.makeArray( elems );\n var items = [];\n elems.forEach( function( elem ) {\n var item = this.getItem( elem );\n if ( item ) {\n items.push( item );\n }\n }, this );\n\n return items;\n};\n\n/**\n * remove element(s) from instance and DOM\n * @param {Array or NodeList or Element} elems\n */\nproto.remove = function( elems ) {\n var removeItems = this.getItems( elems );\n\n this._emitCompleteOnItems( 'remove', removeItems );\n\n // bail if no items to remove\n if ( !removeItems || !removeItems.length ) {\n return;\n }\n\n removeItems.forEach( function( item ) {\n item.remove();\n // remove item from collection\n utils.removeFrom( this.items, item );\n }, this );\n};\n\n// ----- destroy ----- //\n\n// remove and disable Outlayer instance\nproto.destroy = function() {\n // clean up dynamic styles\n var style = this.element.style;\n style.height = '';\n style.position = '';\n style.width = '';\n // destroy items\n this.items.forEach( function( item ) {\n item.destroy();\n });\n\n this.unbindResize();\n\n var id = this.element.outlayerGUID;\n delete instances[ id ]; // remove reference to instance by id\n delete this.element.outlayerGUID;\n // remove data for jQuery\n if ( jQuery ) {\n jQuery.removeData( this.element, this.constructor.namespace );\n }\n\n};\n\n// -------------------------- data -------------------------- //\n\n/**\n * get Outlayer instance from element\n * @param {Element} elem\n * @returns {Outlayer}\n */\nOutlayer.data = function( elem ) {\n elem = utils.getQueryElement( elem );\n var id = elem && elem.outlayerGUID;\n return id && instances[ id ];\n};\n\n\n// -------------------------- create Outlayer class -------------------------- //\n\n/**\n * create a layout class\n * @param {String} namespace\n */\nOutlayer.create = function( namespace, options ) {\n // sub-class Outlayer\n var Layout = subclass( Outlayer );\n // apply new options and compatOptions\n Layout.defaults = utils.extend( {}, Outlayer.defaults );\n utils.extend( Layout.defaults, options );\n Layout.compatOptions = utils.extend( {}, Outlayer.compatOptions );\n\n Layout.namespace = namespace;\n\n Layout.data = Outlayer.data;\n\n // sub-class Item\n Layout.Item = subclass( Item );\n\n // -------------------------- declarative -------------------------- //\n\n utils.htmlInit( Layout, namespace );\n\n // -------------------------- jQuery bridge -------------------------- //\n\n // make into jQuery plugin\n if ( jQuery && jQuery.bridget ) {\n jQuery.bridget( namespace, Layout );\n }\n\n return Layout;\n};\n\nfunction subclass( Parent ) {\n function SubClass() {\n Parent.apply( this, arguments );\n }\n\n SubClass.prototype = Object.create( Parent.prototype );\n SubClass.prototype.constructor = SubClass;\n\n return SubClass;\n}\n\n// ----- helpers ----- //\n\n// how many milliseconds are in each unit\nvar msUnits = {\n ms: 1,\n s: 1000\n};\n\n// munge time-like parameter into millisecond number\n// '0.4s' -> 40\nfunction getMilliseconds( time ) {\n if ( typeof time == 'number' ) {\n return time;\n }\n var matches = time.match( /(^\\d*\\.?\\d*)(\\w*)/ );\n var num = matches && matches[1];\n var unit = matches && matches[2];\n if ( !num.length ) {\n return 0;\n }\n num = parseFloat( num );\n var mult = msUnits[ unit ] || 1;\n return num * mult;\n}\n\n// ----- fin ----- //\n\n// back in global\nOutlayer.Item = Item;\n\nreturn Outlayer;\n\n}));\n\n/**\n * Isotope Item\n**/\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'isotope-layout/js/item',[\n 'outlayer/outlayer'\n ],\n factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('outlayer')\n );\n } else {\n // browser global\n window.Isotope = window.Isotope || {};\n window.Isotope.Item = factory(\n window.Outlayer\n );\n }\n\n}( window, function factory( Outlayer ) {\n'use strict';\n\n// -------------------------- Item -------------------------- //\n\n// sub-class Outlayer Item\nfunction Item() {\n Outlayer.Item.apply( this, arguments );\n}\n\nvar proto = Item.prototype = Object.create( Outlayer.Item.prototype );\n\nvar _create = proto._create;\nproto._create = function() {\n // assign id, used for original-order sorting\n this.id = this.layout.itemGUID++;\n _create.call( this );\n this.sortData = {};\n};\n\nproto.updateSortData = function() {\n if ( this.isIgnored ) {\n return;\n }\n // default sorters\n this.sortData.id = this.id;\n // for backward compatibility\n this.sortData['original-order'] = this.id;\n this.sortData.random = Math.random();\n // go thru getSortData obj and apply the sorters\n var getSortData = this.layout.options.getSortData;\n var sorters = this.layout._sorters;\n for ( var key in getSortData ) {\n var sorter = sorters[ key ];\n this.sortData[ key ] = sorter( this.element, this );\n }\n};\n\nvar _destroy = proto.destroy;\nproto.destroy = function() {\n // call super\n _destroy.apply( this, arguments );\n // reset display, #741\n this.css({\n display: ''\n });\n};\n\nreturn Item;\n\n}));\n\n/**\n * Isotope LayoutMode\n */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'isotope-layout/js/layout-mode',[\n 'get-size/get-size',\n 'outlayer/outlayer'\n ],\n factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('get-size'),\n require('outlayer')\n );\n } else {\n // browser global\n window.Isotope = window.Isotope || {};\n window.Isotope.LayoutMode = factory(\n window.getSize,\n window.Outlayer\n );\n }\n\n}( window, function factory( getSize, Outlayer ) {\n 'use strict';\n\n // layout mode class\n function LayoutMode( isotope ) {\n this.isotope = isotope;\n // link properties\n if ( isotope ) {\n this.options = isotope.options[ this.namespace ];\n this.element = isotope.element;\n this.items = isotope.filteredItems;\n this.size = isotope.size;\n }\n }\n\n var proto = LayoutMode.prototype;\n\n /**\n * some methods should just defer to default Outlayer method\n * and reference the Isotope instance as `this`\n **/\n var facadeMethods = [\n '_resetLayout',\n '_getItemLayoutPosition',\n '_manageStamp',\n '_getContainerSize',\n '_getElementOffset',\n 'needsResizeLayout',\n '_getOption'\n ];\n\n facadeMethods.forEach( function( methodName ) {\n proto[ methodName ] = function() {\n return Outlayer.prototype[ methodName ].apply( this.isotope, arguments );\n };\n });\n\n // ----- ----- //\n\n // for horizontal layout modes, check vertical size\n proto.needsVerticalResizeLayout = function() {\n // don't trigger if size did not change\n var size = getSize( this.isotope.element );\n // check that this.size and size are there\n // IE8 triggers resize on body size change, so they might not be\n var hasSizes = this.isotope.size && size;\n return hasSizes && size.innerHeight != this.isotope.size.innerHeight;\n };\n\n // ----- measurements ----- //\n\n proto._getMeasurement = function() {\n this.isotope._getMeasurement.apply( this, arguments );\n };\n\n proto.getColumnWidth = function() {\n this.getSegmentSize( 'column', 'Width' );\n };\n\n proto.getRowHeight = function() {\n this.getSegmentSize( 'row', 'Height' );\n };\n\n /**\n * get columnWidth or rowHeight\n * segment: 'column' or 'row'\n * size 'Width' or 'Height'\n **/\n proto.getSegmentSize = function( segment, size ) {\n var segmentName = segment + size;\n var outerSize = 'outer' + size;\n // columnWidth / outerWidth // rowHeight / outerHeight\n this._getMeasurement( segmentName, outerSize );\n // got rowHeight or columnWidth, we can chill\n if ( this[ segmentName ] ) {\n return;\n }\n // fall back to item of first element\n var firstItemSize = this.getFirstItemSize();\n this[ segmentName ] = firstItemSize && firstItemSize[ outerSize ] ||\n // or size of container\n this.isotope.size[ 'inner' + size ];\n };\n\n proto.getFirstItemSize = function() {\n var firstItem = this.isotope.filteredItems[0];\n return firstItem && firstItem.element && getSize( firstItem.element );\n };\n\n // ----- methods that should reference isotope ----- //\n\n proto.layout = function() {\n this.isotope.layout.apply( this.isotope, arguments );\n };\n\n proto.getSize = function() {\n this.isotope.getSize();\n this.size = this.isotope.size;\n };\n\n // -------------------------- create -------------------------- //\n\n LayoutMode.modes = {};\n\n LayoutMode.create = function( namespace, options ) {\n\n function Mode() {\n LayoutMode.apply( this, arguments );\n }\n\n Mode.prototype = Object.create( proto );\n Mode.prototype.constructor = Mode;\n\n // default options\n if ( options ) {\n Mode.options = options;\n }\n\n Mode.prototype.namespace = namespace;\n // register in Isotope\n LayoutMode.modes[ namespace ] = Mode;\n\n return Mode;\n };\n\n return LayoutMode;\n\n}));\n\n/*!\n * Masonry v4.2.1\n * Cascading grid layout library\n * https://masonry.desandro.com\n * MIT License\n * by David DeSandro\n */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'masonry-layout/masonry',[\n 'outlayer/outlayer',\n 'get-size/get-size'\n ],\n factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('outlayer'),\n require('get-size')\n );\n } else {\n // browser global\n window.Masonry = factory(\n window.Outlayer,\n window.getSize\n );\n }\n\n}( window, function factory( Outlayer, getSize ) {\n\n\n\n// -------------------------- masonryDefinition -------------------------- //\n\n // create an Outlayer layout class\n var Masonry = Outlayer.create('masonry');\n // isFitWidth -> fitWidth\n Masonry.compatOptions.fitWidth = 'isFitWidth';\n\n var proto = Masonry.prototype;\n\n proto._resetLayout = function() {\n this.getSize();\n this._getMeasurement( 'columnWidth', 'outerWidth' );\n this._getMeasurement( 'gutter', 'outerWidth' );\n this.measureColumns();\n\n // reset column Y\n this.colYs = [];\n for ( var i=0; i < this.cols; i++ ) {\n this.colYs.push( 0 );\n }\n\n this.maxY = 0;\n this.horizontalColIndex = 0;\n };\n\n proto.measureColumns = function() {\n this.getContainerWidth();\n // if columnWidth is 0, default to outerWidth of first item\n if ( !this.columnWidth ) {\n var firstItem = this.items[0];\n var firstItemElem = firstItem && firstItem.element;\n // columnWidth fall back to item of first element\n this.columnWidth = firstItemElem && getSize( firstItemElem ).outerWidth ||\n // if first elem has no width, default to size of container\n this.containerWidth;\n }\n\n var columnWidth = this.columnWidth += this.gutter;\n\n // calculate columns\n var containerWidth = this.containerWidth + this.gutter;\n var cols = containerWidth / columnWidth;\n // fix rounding errors, typically with gutters\n var excess = columnWidth - containerWidth % columnWidth;\n // if overshoot is less than a pixel, round up, otherwise floor it\n var mathMethod = excess && excess < 1 ? 'round' : 'floor';\n cols = Math[ mathMethod ]( cols );\n this.cols = Math.max( cols, 1 );\n };\n\n proto.getContainerWidth = function() {\n // container is parent if fit width\n var isFitWidth = this._getOption('fitWidth');\n var container = isFitWidth ? this.element.parentNode : this.element;\n // check that this.size and size are there\n // IE8 triggers resize on body size change, so they might not be\n var size = getSize( container );\n this.containerWidth = size && size.innerWidth;\n };\n\n proto._getItemLayoutPosition = function( item ) {\n item.getSize();\n // how many columns does this brick span\n var remainder = item.size.outerWidth % this.columnWidth;\n var mathMethod = remainder && remainder < 1 ? 'round' : 'ceil';\n // round if off by 1 pixel, otherwise use ceil\n var colSpan = Math[ mathMethod ]( item.size.outerWidth / this.columnWidth );\n colSpan = Math.min( colSpan, this.cols );\n // use horizontal or top column position\n var colPosMethod = this.options.horizontalOrder ?\n '_getHorizontalColPosition' : '_getTopColPosition';\n var colPosition = this[ colPosMethod ]( colSpan, item );\n // position the brick\n var position = {\n x: this.columnWidth * colPosition.col,\n y: colPosition.y\n };\n // apply setHeight to necessary columns\n var setHeight = colPosition.y + item.size.outerHeight;\n var setMax = colSpan + colPosition.col;\n for ( var i = colPosition.col; i < setMax; i++ ) {\n this.colYs[i] = setHeight;\n }\n\n return position;\n };\n\n proto._getTopColPosition = function( colSpan ) {\n var colGroup = this._getTopColGroup( colSpan );\n // get the minimum Y value from the columns\n var minimumY = Math.min.apply( Math, colGroup );\n\n return {\n col: colGroup.indexOf( minimumY ),\n y: minimumY,\n };\n };\n\n /**\n * @param {Number} colSpan - number of columns the element spans\n * @returns {Array} colGroup\n */\n proto._getTopColGroup = function( colSpan ) {\n if ( colSpan < 2 ) {\n // if brick spans only one column, use all the column Ys\n return this.colYs;\n }\n\n var colGroup = [];\n // how many different places could this brick fit horizontally\n var groupCount = this.cols + 1 - colSpan;\n // for each group potential horizontal position\n for ( var i = 0; i < groupCount; i++ ) {\n colGroup[i] = this._getColGroupY( i, colSpan );\n }\n return colGroup;\n };\n\n proto._getColGroupY = function( col, colSpan ) {\n if ( colSpan < 2 ) {\n return this.colYs[ col ];\n }\n // make an array of colY values for that one group\n var groupColYs = this.colYs.slice( col, col + colSpan );\n // and get the max value of the array\n return Math.max.apply( Math, groupColYs );\n };\n\n // get column position based on horizontal index. #873\n proto._getHorizontalColPosition = function( colSpan, item ) {\n var col = this.horizontalColIndex % this.cols;\n var isOver = colSpan > 1 && col + colSpan > this.cols;\n // shift to next row if item can't fit on current row\n col = isOver ? 0 : col;\n // don't let zero-size items take up space\n var hasSize = item.size.outerWidth && item.size.outerHeight;\n this.horizontalColIndex = hasSize ? col + colSpan : this.horizontalColIndex;\n\n return {\n col: col,\n y: this._getColGroupY( col, colSpan ),\n };\n };\n\n proto._manageStamp = function( stamp ) {\n var stampSize = getSize( stamp );\n var offset = this._getElementOffset( stamp );\n // get the columns that this stamp affects\n var isOriginLeft = this._getOption('originLeft');\n var firstX = isOriginLeft ? offset.left : offset.right;\n var lastX = firstX + stampSize.outerWidth;\n var firstCol = Math.floor( firstX / this.columnWidth );\n firstCol = Math.max( 0, firstCol );\n var lastCol = Math.floor( lastX / this.columnWidth );\n // lastCol should not go over if multiple of columnWidth #425\n lastCol -= lastX % this.columnWidth ? 0 : 1;\n lastCol = Math.min( this.cols - 1, lastCol );\n // set colYs to bottom of the stamp\n\n var isOriginTop = this._getOption('originTop');\n var stampMaxY = ( isOriginTop ? offset.top : offset.bottom ) +\n stampSize.outerHeight;\n for ( var i = firstCol; i <= lastCol; i++ ) {\n this.colYs[i] = Math.max( stampMaxY, this.colYs[i] );\n }\n };\n\n proto._getContainerSize = function() {\n this.maxY = Math.max.apply( Math, this.colYs );\n var size = {\n height: this.maxY\n };\n\n if ( this._getOption('fitWidth') ) {\n size.width = this._getContainerFitWidth();\n }\n\n return size;\n };\n\n proto._getContainerFitWidth = function() {\n var unusedCols = 0;\n // count unused columns\n var i = this.cols;\n while ( --i ) {\n if ( this.colYs[i] !== 0 ) {\n break;\n }\n unusedCols++;\n }\n // fit container to columns that have been used\n return ( this.cols - unusedCols ) * this.columnWidth - this.gutter;\n };\n\n proto.needsResizeLayout = function() {\n var previousWidth = this.containerWidth;\n this.getContainerWidth();\n return previousWidth != this.containerWidth;\n };\n\n return Masonry;\n\n}));\n\n/*!\n * Masonry layout mode\n * sub-classes Masonry\n * https://masonry.desandro.com\n */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'isotope-layout/js/layout-modes/masonry',[\n '../layout-mode',\n 'masonry-layout/masonry'\n ],\n factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('../layout-mode'),\n require('masonry-layout')\n );\n } else {\n // browser global\n factory(\n window.Isotope.LayoutMode,\n window.Masonry\n );\n }\n\n}( window, function factory( LayoutMode, Masonry ) {\n'use strict';\n\n// -------------------------- masonryDefinition -------------------------- //\n\n // create an Outlayer layout class\n var MasonryMode = LayoutMode.create('masonry');\n\n var proto = MasonryMode.prototype;\n\n var keepModeMethods = {\n _getElementOffset: true,\n layout: true,\n _getMeasurement: true\n };\n\n // inherit Masonry prototype\n for ( var method in Masonry.prototype ) {\n // do not inherit mode methods\n if ( !keepModeMethods[ method ] ) {\n proto[ method ] = Masonry.prototype[ method ];\n }\n }\n\n var measureColumns = proto.measureColumns;\n proto.measureColumns = function() {\n // set items, used if measuring first item\n this.items = this.isotope.filteredItems;\n measureColumns.call( this );\n };\n\n // point to mode options for fitWidth\n var _getOption = proto._getOption;\n proto._getOption = function( option ) {\n if ( option == 'fitWidth' ) {\n return this.options.isFitWidth !== undefined ?\n this.options.isFitWidth : this.options.fitWidth;\n }\n return _getOption.apply( this.isotope, arguments );\n };\n\n return MasonryMode;\n\n}));\n\n/**\n * fitRows layout mode\n */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'isotope-layout/js/layout-modes/fit-rows',[\n '../layout-mode'\n ],\n factory );\n } else if ( typeof exports == 'object' ) {\n // CommonJS\n module.exports = factory(\n require('../layout-mode')\n );\n } else {\n // browser global\n factory(\n window.Isotope.LayoutMode\n );\n }\n\n}( window, function factory( LayoutMode ) {\n'use strict';\n\nvar FitRows = LayoutMode.create('fitRows');\n\nvar proto = FitRows.prototype;\n\nproto._resetLayout = function() {\n this.x = 0;\n this.y = 0;\n this.maxY = 0;\n this._getMeasurement( 'gutter', 'outerWidth' );\n};\n\nproto._getItemLayoutPosition = function( item ) {\n item.getSize();\n\n var itemWidth = item.size.outerWidth + this.gutter;\n // if this element cannot fit in the current row\n var containerWidth = this.isotope.size.innerWidth + this.gutter;\n if ( this.x !== 0 && itemWidth + this.x > containerWidth ) {\n this.x = 0;\n this.y = this.maxY;\n }\n\n var position = {\n x: this.x,\n y: this.y\n };\n\n this.maxY = Math.max( this.maxY, this.y + item.size.outerHeight );\n this.x += itemWidth;\n\n return position;\n};\n\nproto._getContainerSize = function() {\n return { height: this.maxY };\n};\n\nreturn FitRows;\n\n}));\n\n/**\n * vertical layout mode\n */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( 'isotope-layout/js/layout-modes/vertical',[\n '../layout-mode'\n ],\n factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('../layout-mode')\n );\n } else {\n // browser global\n factory(\n window.Isotope.LayoutMode\n );\n }\n\n}( window, function factory( LayoutMode ) {\n'use strict';\n\nvar Vertical = LayoutMode.create( 'vertical', {\n horizontalAlignment: 0\n});\n\nvar proto = Vertical.prototype;\n\nproto._resetLayout = function() {\n this.y = 0;\n};\n\nproto._getItemLayoutPosition = function( item ) {\n item.getSize();\n var x = ( this.isotope.size.innerWidth - item.size.outerWidth ) *\n this.options.horizontalAlignment;\n var y = this.y;\n this.y += item.size.outerHeight;\n return { x: x, y: y };\n};\n\nproto._getContainerSize = function() {\n return { height: this.y };\n};\n\nreturn Vertical;\n\n}));\n\n/*!\n * Isotope v3.0.6\n *\n * Licensed GPLv3 for open source use\n * or Isotope Commercial License for commercial use\n *\n * https://isotope.metafizzy.co\n * Copyright 2010-2018 Metafizzy\n */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'outlayer/outlayer',\n 'get-size/get-size',\n 'desandro-matches-selector/matches-selector',\n 'fizzy-ui-utils/utils',\n 'isotope-layout/js/item',\n 'isotope-layout/js/layout-mode',\n // include default layout modes\n 'isotope-layout/js/layout-modes/masonry',\n 'isotope-layout/js/layout-modes/fit-rows',\n 'isotope-layout/js/layout-modes/vertical'\n ],\n function( Outlayer, getSize, matchesSelector, utils, Item, LayoutMode ) {\n return factory( window, Outlayer, getSize, matchesSelector, utils, Item, LayoutMode );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('outlayer'),\n require('get-size'),\n require('desandro-matches-selector'),\n require('fizzy-ui-utils'),\n require('isotope-layout/js/item'),\n require('isotope-layout/js/layout-mode'),\n // include default layout modes\n require('isotope-layout/js/layout-modes/masonry'),\n require('isotope-layout/js/layout-modes/fit-rows'),\n require('isotope-layout/js/layout-modes/vertical')\n );\n } else {\n // browser global\n window.Isotope = factory(\n window,\n window.Outlayer,\n window.getSize,\n window.matchesSelector,\n window.fizzyUIUtils,\n window.Isotope.Item,\n window.Isotope.LayoutMode\n );\n }\n\n}( window, function factory( window, Outlayer, getSize, matchesSelector, utils,\n Item, LayoutMode ) {\n\n\n\n// -------------------------- vars -------------------------- //\n\nvar jQuery = window.jQuery;\n\n// -------------------------- helpers -------------------------- //\n\nvar trim = String.prototype.trim ?\n function( str ) {\n return str.trim();\n } :\n function( str ) {\n return str.replace( /^\\s+|\\s+$/g, '' );\n };\n\n// -------------------------- isotopeDefinition -------------------------- //\n\n // create an Outlayer layout class\n var Isotope = Outlayer.create( 'isotope', {\n layoutMode: 'masonry',\n isJQueryFiltering: true,\n sortAscending: true\n });\n\n Isotope.Item = Item;\n Isotope.LayoutMode = LayoutMode;\n\n var proto = Isotope.prototype;\n\n proto._create = function() {\n this.itemGUID = 0;\n // functions that sort items\n this._sorters = {};\n this._getSorters();\n // call super\n Outlayer.prototype._create.call( this );\n\n // create layout modes\n this.modes = {};\n // start filteredItems with all items\n this.filteredItems = this.items;\n // keep of track of sortBys\n this.sortHistory = [ 'original-order' ];\n // create from registered layout modes\n for ( var name in LayoutMode.modes ) {\n this._initLayoutMode( name );\n }\n };\n\n proto.reloadItems = function() {\n // reset item ID counter\n this.itemGUID = 0;\n // call super\n Outlayer.prototype.reloadItems.call( this );\n };\n\n proto._itemize = function() {\n var items = Outlayer.prototype._itemize.apply( this, arguments );\n // assign ID for original-order\n for ( var i=0; i < items.length; i++ ) {\n var item = items[i];\n item.id = this.itemGUID++;\n }\n this._updateItemsSortData( items );\n return items;\n };\n\n\n // -------------------------- layout -------------------------- //\n\n proto._initLayoutMode = function( name ) {\n var Mode = LayoutMode.modes[ name ];\n // set mode options\n // HACK extend initial options, back-fill in default options\n var initialOpts = this.options[ name ] || {};\n this.options[ name ] = Mode.options ?\n utils.extend( Mode.options, initialOpts ) : initialOpts;\n // init layout mode instance\n this.modes[ name ] = new Mode( this );\n };\n\n\n proto.layout = function() {\n // if first time doing layout, do all magic\n if ( !this._isLayoutInited && this._getOption('initLayout') ) {\n this.arrange();\n return;\n }\n this._layout();\n };\n\n // private method to be used in layout() & magic()\n proto._layout = function() {\n // don't animate first layout\n var isInstant = this._getIsInstant();\n // layout flow\n this._resetLayout();\n this._manageStamps();\n this.layoutItems( this.filteredItems, isInstant );\n\n // flag for initalized\n this._isLayoutInited = true;\n };\n\n // filter + sort + layout\n proto.arrange = function( opts ) {\n // set any options pass\n this.option( opts );\n this._getIsInstant();\n // filter, sort, and layout\n\n // filter\n var filtered = this._filter( this.items );\n this.filteredItems = filtered.matches;\n\n this._bindArrangeComplete();\n\n if ( this._isInstant ) {\n this._noTransition( this._hideReveal, [ filtered ] );\n } else {\n this._hideReveal( filtered );\n }\n\n this._sort();\n this._layout();\n };\n // alias to _init for main plugin method\n proto._init = proto.arrange;\n\n proto._hideReveal = function( filtered ) {\n this.reveal( filtered.needReveal );\n this.hide( filtered.needHide );\n };\n\n // HACK\n // Don't animate/transition first layout\n // Or don't animate/transition other layouts\n proto._getIsInstant = function() {\n var isLayoutInstant = this._getOption('layoutInstant');\n var isInstant = isLayoutInstant !== undefined ? isLayoutInstant :\n !this._isLayoutInited;\n this._isInstant = isInstant;\n return isInstant;\n };\n\n // listen for layoutComplete, hideComplete and revealComplete\n // to trigger arrangeComplete\n proto._bindArrangeComplete = function() {\n // listen for 3 events to trigger arrangeComplete\n var isLayoutComplete, isHideComplete, isRevealComplete;\n var _this = this;\n function arrangeParallelCallback() {\n if ( isLayoutComplete && isHideComplete && isRevealComplete ) {\n _this.dispatchEvent( 'arrangeComplete', null, [ _this.filteredItems ] );\n }\n }\n this.once( 'layoutComplete', function() {\n isLayoutComplete = true;\n arrangeParallelCallback();\n });\n this.once( 'hideComplete', function() {\n isHideComplete = true;\n arrangeParallelCallback();\n });\n this.once( 'revealComplete', function() {\n isRevealComplete = true;\n arrangeParallelCallback();\n });\n };\n\n // -------------------------- filter -------------------------- //\n\n proto._filter = function( items ) {\n var filter = this.options.filter;\n filter = filter || '*';\n var matches = [];\n var hiddenMatched = [];\n var visibleUnmatched = [];\n\n var test = this._getFilterTest( filter );\n\n // test each item\n for ( var i=0; i < items.length; i++ ) {\n var item = items[i];\n if ( item.isIgnored ) {\n continue;\n }\n // add item to either matched or unmatched group\n var isMatched = test( item );\n // item.isFilterMatched = isMatched;\n // add to matches if its a match\n if ( isMatched ) {\n matches.push( item );\n }\n // add to additional group if item needs to be hidden or revealed\n if ( isMatched && item.isHidden ) {\n hiddenMatched.push( item );\n } else if ( !isMatched && !item.isHidden ) {\n visibleUnmatched.push( item );\n }\n }\n\n // return collections of items to be manipulated\n return {\n matches: matches,\n needReveal: hiddenMatched,\n needHide: visibleUnmatched\n };\n };\n\n // get a jQuery, function, or a matchesSelector test given the filter\n proto._getFilterTest = function( filter ) {\n if ( jQuery && this.options.isJQueryFiltering ) {\n // use jQuery\n return function( item ) {\n return jQuery( item.element ).is( filter );\n };\n }\n if ( typeof filter == 'function' ) {\n // use filter as function\n return function( item ) {\n return filter( item.element );\n };\n }\n // default, use filter as selector string\n return function( item ) {\n return matchesSelector( item.element, filter );\n };\n };\n\n // -------------------------- sorting -------------------------- //\n\n /**\n * @params {Array} elems\n * @public\n */\n proto.updateSortData = function( elems ) {\n // get items\n var items;\n if ( elems ) {\n elems = utils.makeArray( elems );\n items = this.getItems( elems );\n } else {\n // update all items if no elems provided\n items = this.items;\n }\n\n this._getSorters();\n this._updateItemsSortData( items );\n };\n\n proto._getSorters = function() {\n var getSortData = this.options.getSortData;\n for ( var key in getSortData ) {\n var sorter = getSortData[ key ];\n this._sorters[ key ] = mungeSorter( sorter );\n }\n };\n\n /**\n * @params {Array} items - of Isotope.Items\n * @private\n */\n proto._updateItemsSortData = function( items ) {\n // do not update if no items\n var len = items && items.length;\n\n for ( var i=0; len && i < len; i++ ) {\n var item = items[i];\n item.updateSortData();\n }\n };\n\n // ----- munge sorter ----- //\n\n // encapsulate this, as we just need mungeSorter\n // other functions in here are just for munging\n var mungeSorter = ( function() {\n // add a magic layer to sorters for convienent shorthands\n // `.foo-bar` will use the text of .foo-bar querySelector\n // `[foo-bar]` will use attribute\n // you can also add parser\n // `.foo-bar parseInt` will parse that as a number\n function mungeSorter( sorter ) {\n // if not a string, return function or whatever it is\n if ( typeof sorter != 'string' ) {\n return sorter;\n }\n // parse the sorter string\n var args = trim( sorter ).split(' ');\n var query = args[0];\n // check if query looks like [an-attribute]\n var attrMatch = query.match( /^\\[(.+)\\]$/ );\n var attr = attrMatch && attrMatch[1];\n var getValue = getValueGetter( attr, query );\n // use second argument as a parser\n var parser = Isotope.sortDataParsers[ args[1] ];\n // parse the value, if there was a parser\n sorter = parser ? function( elem ) {\n return elem && parser( getValue( elem ) );\n } :\n // otherwise just return value\n function( elem ) {\n return elem && getValue( elem );\n };\n\n return sorter;\n }\n\n // get an attribute getter, or get text of the querySelector\n function getValueGetter( attr, query ) {\n // if query looks like [foo-bar], get attribute\n if ( attr ) {\n return function getAttribute( elem ) {\n return elem.getAttribute( attr );\n };\n }\n\n // otherwise, assume its a querySelector, and get its text\n return function getChildText( elem ) {\n var child = elem.querySelector( query );\n return child && child.textContent;\n };\n }\n\n return mungeSorter;\n })();\n\n // parsers used in getSortData shortcut strings\n Isotope.sortDataParsers = {\n 'parseInt': function( val ) {\n return parseInt( val, 10 );\n },\n 'parseFloat': function( val ) {\n return parseFloat( val );\n }\n };\n\n // ----- sort method ----- //\n\n // sort filteredItem order\n proto._sort = function() {\n if ( !this.options.sortBy ) {\n return;\n }\n // keep track of sortBy History\n var sortBys = utils.makeArray( this.options.sortBy );\n if ( !this._getIsSameSortBy( sortBys ) ) {\n // concat all sortBy and sortHistory, add to front, oldest goes in last\n this.sortHistory = sortBys.concat( this.sortHistory );\n }\n // sort magic\n var itemSorter = getItemSorter( this.sortHistory, this.options.sortAscending );\n this.filteredItems.sort( itemSorter );\n };\n\n // check if sortBys is same as start of sortHistory\n proto._getIsSameSortBy = function( sortBys ) {\n for ( var i=0; i < sortBys.length; i++ ) {\n if ( sortBys[i] != this.sortHistory[i] ) {\n return false;\n }\n }\n return true;\n };\n\n // returns a function used for sorting\n function getItemSorter( sortBys, sortAsc ) {\n return function sorter( itemA, itemB ) {\n // cycle through all sortKeys\n for ( var i = 0; i < sortBys.length; i++ ) {\n var sortBy = sortBys[i];\n var a = itemA.sortData[ sortBy ];\n var b = itemB.sortData[ sortBy ];\n if ( a > b || a < b ) {\n // if sortAsc is an object, use the value given the sortBy key\n var isAscending = sortAsc[ sortBy ] !== undefined ? sortAsc[ sortBy ] : sortAsc;\n var direction = isAscending ? 1 : -1;\n return ( a > b ? 1 : -1 ) * direction;\n }\n }\n return 0;\n };\n }\n\n // -------------------------- methods -------------------------- //\n\n // get layout mode\n proto._mode = function() {\n var layoutMode = this.options.layoutMode;\n var mode = this.modes[ layoutMode ];\n if ( !mode ) {\n // TODO console.error\n throw new Error( 'No layout mode: ' + layoutMode );\n }\n // HACK sync mode's options\n // any options set after init for layout mode need to be synced\n mode.options = this.options[ layoutMode ];\n return mode;\n };\n\n proto._resetLayout = function() {\n // trigger original reset layout\n Outlayer.prototype._resetLayout.call( this );\n this._mode()._resetLayout();\n };\n\n proto._getItemLayoutPosition = function( item ) {\n return this._mode()._getItemLayoutPosition( item );\n };\n\n proto._manageStamp = function( stamp ) {\n this._mode()._manageStamp( stamp );\n };\n\n proto._getContainerSize = function() {\n return this._mode()._getContainerSize();\n };\n\n proto.needsResizeLayout = function() {\n return this._mode().needsResizeLayout();\n };\n\n // -------------------------- adding & removing -------------------------- //\n\n // HEADS UP overwrites default Outlayer appended\n proto.appended = function( elems ) {\n var items = this.addItems( elems );\n if ( !items.length ) {\n return;\n }\n // filter, layout, reveal new items\n var filteredItems = this._filterRevealAdded( items );\n // add to filteredItems\n this.filteredItems = this.filteredItems.concat( filteredItems );\n };\n\n // HEADS UP overwrites default Outlayer prepended\n proto.prepended = function( elems ) {\n var items = this._itemize( elems );\n if ( !items.length ) {\n return;\n }\n // start new layout\n this._resetLayout();\n this._manageStamps();\n // filter, layout, reveal new items\n var filteredItems = this._filterRevealAdded( items );\n // layout previous items\n this.layoutItems( this.filteredItems );\n // add to items and filteredItems\n this.filteredItems = filteredItems.concat( this.filteredItems );\n this.items = items.concat( this.items );\n };\n\n proto._filterRevealAdded = function( items ) {\n var filtered = this._filter( items );\n this.hide( filtered.needHide );\n // reveal all new items\n this.reveal( filtered.matches );\n // layout new items, no transition\n this.layoutItems( filtered.matches, true );\n return filtered.matches;\n };\n\n /**\n * Filter, sort, and layout newly-appended item elements\n * @param {Array or NodeList or Element} elems\n */\n proto.insert = function( elems ) {\n var items = this.addItems( elems );\n if ( !items.length ) {\n return;\n }\n // append item elements\n var i, item;\n var len = items.length;\n for ( i=0; i < len; i++ ) {\n item = items[i];\n this.element.appendChild( item.element );\n }\n // filter new stuff\n var filteredInsertItems = this._filter( items ).matches;\n // set flag\n for ( i=0; i < len; i++ ) {\n items[i].isLayoutInstant = true;\n }\n this.arrange();\n // reset flag\n for ( i=0; i < len; i++ ) {\n delete items[i].isLayoutInstant;\n }\n this.reveal( filteredInsertItems );\n };\n\n var _remove = proto.remove;\n proto.remove = function( elems ) {\n elems = utils.makeArray( elems );\n var removeItems = this.getItems( elems );\n // do regular thing\n _remove.call( this, elems );\n // bail if no items to remove\n var len = removeItems && removeItems.length;\n // remove elems from filteredItems\n for ( var i=0; len && i < len; i++ ) {\n var item = removeItems[i];\n // remove item from collection\n utils.removeFrom( this.filteredItems, item );\n }\n };\n\n proto.shuffle = function() {\n // update random sortData\n for ( var i=0; i < this.items.length; i++ ) {\n var item = this.items[i];\n item.sortData.random = Math.random();\n }\n this.options.sortBy = 'random';\n this._sort();\n this._layout();\n };\n\n /**\n * trigger fn without transition\n * kind of hacky to have this in the first place\n * @param {Function} fn\n * @param {Array} args\n * @returns ret\n * @private\n */\n proto._noTransition = function( fn, args ) {\n // save transitionDuration before disabling\n var transitionDuration = this.options.transitionDuration;\n // disable transition\n this.options.transitionDuration = 0;\n // do it\n var returnValue = fn.apply( this, args );\n // re-enable transition for reveal\n this.options.transitionDuration = transitionDuration;\n return returnValue;\n };\n\n // ----- helper methods ----- //\n\n /**\n * getter method for getting filtered item elements\n * @returns {Array} elems - collection of item elements\n */\n proto.getFilteredItemElements = function() {\n return this.filteredItems.map( function( item ) {\n return item.element;\n });\n };\n\n // ----- ----- //\n\n return Isotope;\n\n}));\n\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/xampp/htdocs/dev.www.stellar.com/wp-content/themes/stellar/node_modules/isotope-layout/dist/isotope.pkgd.js\n// module id = 54\n// module chunks = 0","import 'bootstrap';\n\n\n// WEBPACK FOOTER //\n// ./scripts/autoload/_bootstrap.js","/*!\n * Bootstrap v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) : typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) : (global = global || self, factory(global.bootstrap = {}, global.jQuery, global.Popper));\n})(this, function (exports, $, Popper) {\n 'use strict';\n\n $ = $ && $.hasOwnProperty('default') ? $['default'] : $;\n Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n return target;\n }\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n var TRANSITION_END = 'transitionend';\n var MAX_UID = 1000000;\n var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n }\n function getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle: function handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\n }\n return undefined; // eslint-disable-line no-undefined\n }\n };\n }\n function transitionEndEmulator(duration) {\n var _this = this;\n var called = false;\n $(this).one(Util.TRANSITION_END, function () {\n called = true;\n });\n setTimeout(function () {\n if (!called) {\n Util.triggerTransitionEnd(_this);\n }\n }, duration);\n return this;\n }\n function setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator;\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n }\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n var Util = {\n TRANSITION_END: 'bsTransitionEnd',\n getUID: function getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix));\n return prefix;\n },\n getSelectorFromElement: function getSelectorFromElement(element) {\n var selector = element.getAttribute('data-target');\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href');\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';\n }\n try {\n return document.querySelector(selector) ? selector : null;\n } catch (err) {\n return null;\n }\n },\n getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n var transitionDuration = $(element).css('transition-duration');\n var transitionDelay = $(element).css('transition-delay');\n var floatTransitionDuration = parseFloat(transitionDuration);\n var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n },\n reflow: function reflow(element) {\n return element.offsetHeight;\n },\n triggerTransitionEnd: function triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END);\n },\n // TODO: Remove in v5\n supportsTransitionEnd: function supportsTransitionEnd() {\n return Boolean(TRANSITION_END);\n },\n isElement: function isElement(obj) {\n return (obj[0] || obj).nodeType;\n },\n typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\n for (var property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && Util.isElement(value) ? 'element' : toType(value);\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n }\n }\n },\n findShadowRoot: function findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n if (typeof element.getRootNode === 'function') {\n var root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n if (element instanceof ShadowRoot) {\n return element;\n } // when we don't find a shadow root\n\n if (!element.parentNode) {\n return null;\n }\n return Util.findShadowRoot(element.parentNode);\n }\n };\n setTransitionEndSupport();\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'alert';\n var VERSION = '4.3.1';\n var DATA_KEY = 'bs.alert';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $.fn[NAME];\n var Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n };\n var Event = {\n CLOSE: \"close\" + EVENT_KEY,\n CLOSED: \"closed\" + EVENT_KEY,\n CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY\n };\n var ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n };\n var Alert = /*#__PURE__*/\n function () {\n function Alert(element) {\n this._element = element;\n } // Getters\n\n var _proto = Alert.prototype;\n\n // Public\n _proto.close = function close(element) {\n var rootElement = this._element;\n if (element) {\n rootElement = this._getRootElement(element);\n }\n var customEvent = this._triggerCloseEvent(rootElement);\n if (customEvent.isDefaultPrevented()) {\n return;\n }\n this._removeElement(rootElement);\n };\n _proto.dispose = function dispose() {\n $.removeData(this._element, DATA_KEY);\n this._element = null;\n } // Private\n ;\n _proto._getRootElement = function _getRootElement(element) {\n var selector = Util.getSelectorFromElement(element);\n var parent = false;\n if (selector) {\n parent = document.querySelector(selector);\n }\n if (!parent) {\n parent = $(element).closest(\".\" + ClassName.ALERT)[0];\n }\n return parent;\n };\n _proto._triggerCloseEvent = function _triggerCloseEvent(element) {\n var closeEvent = $.Event(Event.CLOSE);\n $(element).trigger(closeEvent);\n return closeEvent;\n };\n _proto._removeElement = function _removeElement(element) {\n var _this = this;\n $(element).removeClass(ClassName.SHOW);\n if (!$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element);\n return;\n }\n var transitionDuration = Util.getTransitionDurationFromElement(element);\n $(element).one(Util.TRANSITION_END, function (event) {\n return _this._destroyElement(element, event);\n }).emulateTransitionEnd(transitionDuration);\n };\n _proto._destroyElement = function _destroyElement(element) {\n $(element).detach().trigger(Event.CLOSED).remove();\n } // Static\n ;\n Alert._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $element = $(this);\n var data = $element.data(DATA_KEY);\n if (!data) {\n data = new Alert(this);\n $element.data(DATA_KEY, data);\n }\n if (config === 'close') {\n data[config](this);\n }\n });\n };\n Alert._handleDismiss = function _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault();\n }\n alertInstance.close(this);\n };\n };\n _createClass(Alert, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }]);\n return Alert;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Alert._jQueryInterface;\n $.fn[NAME].Constructor = Alert;\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n return Alert._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$1 = 'button';\n var VERSION$1 = '4.3.1';\n var DATA_KEY$1 = 'bs.button';\n var EVENT_KEY$1 = \".\" + DATA_KEY$1;\n var DATA_API_KEY$1 = '.data-api';\n var JQUERY_NO_CONFLICT$1 = $.fn[NAME$1];\n var ClassName$1 = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n };\n var Selector$1 = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n };\n var Event$1 = {\n CLICK_DATA_API: \"click\" + EVENT_KEY$1 + DATA_API_KEY$1,\n FOCUS_BLUR_DATA_API: \"focus\" + EVENT_KEY$1 + DATA_API_KEY$1 + \" \" + (\"blur\" + EVENT_KEY$1 + DATA_API_KEY$1)\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n };\n var Button = /*#__PURE__*/\n function () {\n function Button(element) {\n this._element = element;\n } // Getters\n\n var _proto = Button.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n var triggerChangeEvent = true;\n var addAriaPressed = true;\n var rootElement = $(this._element).closest(Selector$1.DATA_TOGGLE)[0];\n if (rootElement) {\n var input = this._element.querySelector(Selector$1.INPUT);\n if (input) {\n if (input.type === 'radio') {\n if (input.checked && this._element.classList.contains(ClassName$1.ACTIVE)) {\n triggerChangeEvent = false;\n } else {\n var activeElement = rootElement.querySelector(Selector$1.ACTIVE);\n if (activeElement) {\n $(activeElement).removeClass(ClassName$1.ACTIVE);\n }\n }\n }\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {\n return;\n }\n input.checked = !this._element.classList.contains(ClassName$1.ACTIVE);\n $(input).trigger('change');\n }\n input.focus();\n addAriaPressed = false;\n }\n }\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed', !this._element.classList.contains(ClassName$1.ACTIVE));\n }\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName$1.ACTIVE);\n }\n };\n _proto.dispose = function dispose() {\n $.removeData(this._element, DATA_KEY$1);\n this._element = null;\n } // Static\n ;\n Button._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $(this).data(DATA_KEY$1);\n if (!data) {\n data = new Button(this);\n $(this).data(DATA_KEY$1, data);\n }\n if (config === 'toggle') {\n data[config]();\n }\n });\n };\n _createClass(Button, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$1;\n }\n }]);\n return Button;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event$1.CLICK_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) {\n event.preventDefault();\n var button = event.target;\n if (!$(button).hasClass(ClassName$1.BUTTON)) {\n button = $(button).closest(Selector$1.BUTTON);\n }\n Button._jQueryInterface.call($(button), 'toggle');\n }).on(Event$1.FOCUS_BLUR_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) {\n var button = $(event.target).closest(Selector$1.BUTTON)[0];\n $(button).toggleClass(ClassName$1.FOCUS, /^focus(in)?$/.test(event.type));\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME$1] = Button._jQueryInterface;\n $.fn[NAME$1].Constructor = Button;\n $.fn[NAME$1].noConflict = function () {\n $.fn[NAME$1] = JQUERY_NO_CONFLICT$1;\n return Button._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$2 = 'carousel';\n var VERSION$2 = '4.3.1';\n var DATA_KEY$2 = 'bs.carousel';\n var EVENT_KEY$2 = \".\" + DATA_KEY$2;\n var DATA_API_KEY$2 = '.data-api';\n var JQUERY_NO_CONFLICT$2 = $.fn[NAME$2];\n var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key\n\n var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key\n\n var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n var SWIPE_THRESHOLD = 40;\n var Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n };\n var DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n };\n var Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n };\n var Event$2 = {\n SLIDE: \"slide\" + EVENT_KEY$2,\n SLID: \"slid\" + EVENT_KEY$2,\n KEYDOWN: \"keydown\" + EVENT_KEY$2,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY$2,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY$2,\n TOUCHSTART: \"touchstart\" + EVENT_KEY$2,\n TOUCHMOVE: \"touchmove\" + EVENT_KEY$2,\n TOUCHEND: \"touchend\" + EVENT_KEY$2,\n POINTERDOWN: \"pointerdown\" + EVENT_KEY$2,\n POINTERUP: \"pointerup\" + EVENT_KEY$2,\n DRAG_START: \"dragstart\" + EVENT_KEY$2,\n LOAD_DATA_API: \"load\" + EVENT_KEY$2 + DATA_API_KEY$2,\n CLICK_DATA_API: \"click\" + EVENT_KEY$2 + DATA_API_KEY$2\n };\n var ClassName$2 = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n };\n var Selector$2 = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n };\n var PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n };\n var Carousel = /*#__PURE__*/\n function () {\n function Carousel(element, config) {\n this._items = null;\n this._interval = null;\n this._activeElement = null;\n this._isPaused = false;\n this._isSliding = false;\n this.touchTimeout = null;\n this.touchStartX = 0;\n this.touchDeltaX = 0;\n this._config = this._getConfig(config);\n this._element = element;\n this._indicatorsElement = this._element.querySelector(Selector$2.INDICATORS);\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);\n this._addEventListeners();\n } // Getters\n\n var _proto = Carousel.prototype;\n\n // Public\n _proto.next = function next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT);\n }\n };\n _proto.nextWhenVisible = function nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') {\n this.next();\n }\n };\n _proto.prev = function prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV);\n }\n };\n _proto.pause = function pause(event) {\n if (!event) {\n this._isPaused = true;\n }\n if (this._element.querySelector(Selector$2.NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element);\n this.cycle(true);\n }\n clearInterval(this._interval);\n this._interval = null;\n };\n _proto.cycle = function cycle(event) {\n if (!event) {\n this._isPaused = false;\n }\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n }\n };\n _proto.to = function to(index) {\n var _this = this;\n this._activeElement = this._element.querySelector(Selector$2.ACTIVE_ITEM);\n var activeIndex = this._getItemIndex(this._activeElement);\n if (index > this._items.length - 1 || index < 0) {\n return;\n }\n if (this._isSliding) {\n $(this._element).one(Event$2.SLID, function () {\n return _this.to(index);\n });\n return;\n }\n if (activeIndex === index) {\n this.pause();\n this.cycle();\n return;\n }\n var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;\n this._slide(direction, this._items[index]);\n };\n _proto.dispose = function dispose() {\n $(this._element).off(EVENT_KEY$2);\n $.removeData(this._element, DATA_KEY$2);\n this._items = null;\n this._config = null;\n this._element = null;\n this._interval = null;\n this._isPaused = null;\n this._isSliding = null;\n this._activeElement = null;\n this._indicatorsElement = null;\n } // Private\n ;\n _proto._getConfig = function _getConfig(config) {\n config = _objectSpread({}, Default, config);\n Util.typeCheckConfig(NAME$2, config, DefaultType);\n return config;\n };\n _proto._handleSwipe = function _handleSwipe() {\n var absDeltax = Math.abs(this.touchDeltaX);\n if (absDeltax <= SWIPE_THRESHOLD) {\n return;\n }\n var direction = absDeltax / this.touchDeltaX; // swipe left\n\n if (direction > 0) {\n this.prev();\n } // swipe right\n\n if (direction < 0) {\n this.next();\n }\n };\n _proto._addEventListeners = function _addEventListeners() {\n var _this2 = this;\n if (this._config.keyboard) {\n $(this._element).on(Event$2.KEYDOWN, function (event) {\n return _this2._keydown(event);\n });\n }\n if (this._config.pause === 'hover') {\n $(this._element).on(Event$2.MOUSEENTER, function (event) {\n return _this2.pause(event);\n }).on(Event$2.MOUSELEAVE, function (event) {\n return _this2.cycle(event);\n });\n }\n if (this._config.touch) {\n this._addTouchEventListeners();\n }\n };\n _proto._addTouchEventListeners = function _addTouchEventListeners() {\n var _this3 = this;\n if (!this._touchSupported) {\n return;\n }\n var start = function start(event) {\n if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n _this3.touchStartX = event.originalEvent.clientX;\n } else if (!_this3._pointerEvent) {\n _this3.touchStartX = event.originalEvent.touches[0].clientX;\n }\n };\n var move = function move(event) {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n _this3.touchDeltaX = 0;\n } else {\n _this3.touchDeltaX = event.originalEvent.touches[0].clientX - _this3.touchStartX;\n }\n };\n var end = function end(event) {\n if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;\n }\n _this3._handleSwipe();\n if (_this3._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n _this3.pause();\n if (_this3.touchTimeout) {\n clearTimeout(_this3.touchTimeout);\n }\n _this3.touchTimeout = setTimeout(function (event) {\n return _this3.cycle(event);\n }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);\n }\n };\n $(this._element.querySelectorAll(Selector$2.ITEM_IMG)).on(Event$2.DRAG_START, function (e) {\n return e.preventDefault();\n });\n if (this._pointerEvent) {\n $(this._element).on(Event$2.POINTERDOWN, function (event) {\n return start(event);\n });\n $(this._element).on(Event$2.POINTERUP, function (event) {\n return end(event);\n });\n this._element.classList.add(ClassName$2.POINTER_EVENT);\n } else {\n $(this._element).on(Event$2.TOUCHSTART, function (event) {\n return start(event);\n });\n $(this._element).on(Event$2.TOUCHMOVE, function (event) {\n return move(event);\n });\n $(this._element).on(Event$2.TOUCHEND, function (event) {\n return end(event);\n });\n }\n };\n _proto._keydown = function _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault();\n this.prev();\n break;\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault();\n this.next();\n break;\n default:\n }\n };\n _proto._getItemIndex = function _getItemIndex(element) {\n this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(Selector$2.ITEM)) : [];\n return this._items.indexOf(element);\n };\n _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {\n var isNextDirection = direction === Direction.NEXT;\n var isPrevDirection = direction === Direction.PREV;\n var activeIndex = this._getItemIndex(activeElement);\n var lastItemIndex = this._items.length - 1;\n var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement;\n }\n var delta = direction === Direction.PREV ? -1 : 1;\n var itemIndex = (activeIndex + delta) % this._items.length;\n return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];\n };\n _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {\n var targetIndex = this._getItemIndex(relatedTarget);\n var fromIndex = this._getItemIndex(this._element.querySelector(Selector$2.ACTIVE_ITEM));\n var slideEvent = $.Event(Event$2.SLIDE, {\n relatedTarget: relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n });\n $(this._element).trigger(slideEvent);\n return slideEvent;\n };\n _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector$2.ACTIVE));\n $(indicators).removeClass(ClassName$2.ACTIVE);\n var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName$2.ACTIVE);\n }\n }\n };\n _proto._slide = function _slide(direction, element) {\n var _this4 = this;\n var activeElement = this._element.querySelector(Selector$2.ACTIVE_ITEM);\n var activeElementIndex = this._getItemIndex(activeElement);\n var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);\n var nextElementIndex = this._getItemIndex(nextElement);\n var isCycling = Boolean(this._interval);\n var directionalClassName;\n var orderClassName;\n var eventDirectionName;\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName$2.LEFT;\n orderClassName = ClassName$2.NEXT;\n eventDirectionName = Direction.LEFT;\n } else {\n directionalClassName = ClassName$2.RIGHT;\n orderClassName = ClassName$2.PREV;\n eventDirectionName = Direction.RIGHT;\n }\n if (nextElement && $(nextElement).hasClass(ClassName$2.ACTIVE)) {\n this._isSliding = false;\n return;\n }\n var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n if (slideEvent.isDefaultPrevented()) {\n return;\n }\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return;\n }\n this._isSliding = true;\n if (isCycling) {\n this.pause();\n }\n this._setActiveIndicatorElement(nextElement);\n var slidEvent = $.Event(Event$2.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n });\n if ($(this._element).hasClass(ClassName$2.SLIDE)) {\n $(nextElement).addClass(orderClassName);\n Util.reflow(nextElement);\n $(activeElement).addClass(directionalClassName);\n $(nextElement).addClass(directionalClassName);\n var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10);\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\n this._config.interval = nextElementInterval;\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval;\n }\n var transitionDuration = Util.getTransitionDurationFromElement(activeElement);\n $(activeElement).one(Util.TRANSITION_END, function () {\n $(nextElement).removeClass(directionalClassName + \" \" + orderClassName).addClass(ClassName$2.ACTIVE);\n $(activeElement).removeClass(ClassName$2.ACTIVE + \" \" + orderClassName + \" \" + directionalClassName);\n _this4._isSliding = false;\n setTimeout(function () {\n return $(_this4._element).trigger(slidEvent);\n }, 0);\n }).emulateTransitionEnd(transitionDuration);\n } else {\n $(activeElement).removeClass(ClassName$2.ACTIVE);\n $(nextElement).addClass(ClassName$2.ACTIVE);\n this._isSliding = false;\n $(this._element).trigger(slidEvent);\n }\n if (isCycling) {\n this.cycle();\n }\n } // Static\n ;\n Carousel._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $(this).data(DATA_KEY$2);\n var _config = _objectSpread({}, Default, $(this).data());\n if (typeof config === 'object') {\n _config = _objectSpread({}, _config, config);\n }\n var action = typeof config === 'string' ? config : _config.slide;\n if (!data) {\n data = new Carousel(this, _config);\n $(this).data(DATA_KEY$2, data);\n }\n if (typeof config === 'number') {\n data.to(config);\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + action + \"\\\"\");\n }\n data[action]();\n } else if (_config.interval && _config.ride) {\n data.pause();\n data.cycle();\n }\n });\n };\n Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {\n var selector = Util.getSelectorFromElement(this);\n if (!selector) {\n return;\n }\n var target = $(selector)[0];\n if (!target || !$(target).hasClass(ClassName$2.CAROUSEL)) {\n return;\n }\n var config = _objectSpread({}, $(target).data(), $(this).data());\n var slideIndex = this.getAttribute('data-slide-to');\n if (slideIndex) {\n config.interval = false;\n }\n Carousel._jQueryInterface.call($(target), config);\n if (slideIndex) {\n $(target).data(DATA_KEY$2).to(slideIndex);\n }\n event.preventDefault();\n };\n _createClass(Carousel, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$2;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }]);\n return Carousel;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event$2.CLICK_DATA_API, Selector$2.DATA_SLIDE, Carousel._dataApiClickHandler);\n $(window).on(Event$2.LOAD_DATA_API, function () {\n var carousels = [].slice.call(document.querySelectorAll(Selector$2.DATA_RIDE));\n for (var i = 0, len = carousels.length; i < len; i++) {\n var $carousel = $(carousels[i]);\n Carousel._jQueryInterface.call($carousel, $carousel.data());\n }\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME$2] = Carousel._jQueryInterface;\n $.fn[NAME$2].Constructor = Carousel;\n $.fn[NAME$2].noConflict = function () {\n $.fn[NAME$2] = JQUERY_NO_CONFLICT$2;\n return Carousel._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$3 = 'collapse';\n var VERSION$3 = '4.3.1';\n var DATA_KEY$3 = 'bs.collapse';\n var EVENT_KEY$3 = \".\" + DATA_KEY$3;\n var DATA_API_KEY$3 = '.data-api';\n var JQUERY_NO_CONFLICT$3 = $.fn[NAME$3];\n var Default$1 = {\n toggle: true,\n parent: ''\n };\n var DefaultType$1 = {\n toggle: 'boolean',\n parent: '(string|element)'\n };\n var Event$3 = {\n SHOW: \"show\" + EVENT_KEY$3,\n SHOWN: \"shown\" + EVENT_KEY$3,\n HIDE: \"hide\" + EVENT_KEY$3,\n HIDDEN: \"hidden\" + EVENT_KEY$3,\n CLICK_DATA_API: \"click\" + EVENT_KEY$3 + DATA_API_KEY$3\n };\n var ClassName$3 = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n };\n var Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n };\n var Selector$3 = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n };\n var Collapse = /*#__PURE__*/\n function () {\n function Collapse(element, config) {\n this._isTransitioning = false;\n this._element = element;\n this._config = this._getConfig(config);\n this._triggerArray = [].slice.call(document.querySelectorAll(\"[data-toggle=\\\"collapse\\\"][href=\\\"#\" + element.id + \"\\\"],\" + (\"[data-toggle=\\\"collapse\\\"][data-target=\\\"#\" + element.id + \"\\\"]\")));\n var toggleList = [].slice.call(document.querySelectorAll(Selector$3.DATA_TOGGLE));\n for (var i = 0, len = toggleList.length; i < len; i++) {\n var elem = toggleList[i];\n var selector = Util.getSelectorFromElement(elem);\n var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {\n return foundElem === element;\n });\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector;\n this._triggerArray.push(elem);\n }\n }\n this._parent = this._config.parent ? this._getParent() : null;\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray);\n }\n if (this._config.toggle) {\n this.toggle();\n }\n } // Getters\n\n var _proto = Collapse.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n if ($(this._element).hasClass(ClassName$3.SHOW)) {\n this.hide();\n } else {\n this.show();\n }\n };\n _proto.show = function show() {\n var _this = this;\n if (this._isTransitioning || $(this._element).hasClass(ClassName$3.SHOW)) {\n return;\n }\n var actives;\n var activesData;\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(Selector$3.ACTIVES)).filter(function (elem) {\n if (typeof _this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === _this._config.parent;\n }\n return elem.classList.contains(ClassName$3.COLLAPSE);\n });\n if (actives.length === 0) {\n actives = null;\n }\n }\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY$3);\n if (activesData && activesData._isTransitioning) {\n return;\n }\n }\n var startEvent = $.Event(Event$3.SHOW);\n $(this._element).trigger(startEvent);\n if (startEvent.isDefaultPrevented()) {\n return;\n }\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide');\n if (!activesData) {\n $(actives).data(DATA_KEY$3, null);\n }\n }\n var dimension = this._getDimension();\n $(this._element).removeClass(ClassName$3.COLLAPSE).addClass(ClassName$3.COLLAPSING);\n this._element.style[dimension] = 0;\n if (this._triggerArray.length) {\n $(this._triggerArray).removeClass(ClassName$3.COLLAPSED).attr('aria-expanded', true);\n }\n this.setTransitioning(true);\n var complete = function complete() {\n $(_this._element).removeClass(ClassName$3.COLLAPSING).addClass(ClassName$3.COLLAPSE).addClass(ClassName$3.SHOW);\n _this._element.style[dimension] = '';\n _this.setTransitioning(false);\n $(_this._element).trigger(Event$3.SHOWN);\n };\n var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n var scrollSize = \"scroll\" + capitalizedDimension;\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n this._element.style[dimension] = this._element[scrollSize] + \"px\";\n };\n _proto.hide = function hide() {\n var _this2 = this;\n if (this._isTransitioning || !$(this._element).hasClass(ClassName$3.SHOW)) {\n return;\n }\n var startEvent = $.Event(Event$3.HIDE);\n $(this._element).trigger(startEvent);\n if (startEvent.isDefaultPrevented()) {\n return;\n }\n var dimension = this._getDimension();\n this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + \"px\";\n Util.reflow(this._element);\n $(this._element).addClass(ClassName$3.COLLAPSING).removeClass(ClassName$3.COLLAPSE).removeClass(ClassName$3.SHOW);\n var triggerArrayLength = this._triggerArray.length;\n if (triggerArrayLength > 0) {\n for (var i = 0; i < triggerArrayLength; i++) {\n var trigger = this._triggerArray[i];\n var selector = Util.getSelectorFromElement(trigger);\n if (selector !== null) {\n var $elem = $([].slice.call(document.querySelectorAll(selector)));\n if (!$elem.hasClass(ClassName$3.SHOW)) {\n $(trigger).addClass(ClassName$3.COLLAPSED).attr('aria-expanded', false);\n }\n }\n }\n }\n this.setTransitioning(true);\n var complete = function complete() {\n _this2.setTransitioning(false);\n $(_this2._element).removeClass(ClassName$3.COLLAPSING).addClass(ClassName$3.COLLAPSE).trigger(Event$3.HIDDEN);\n };\n this._element.style[dimension] = '';\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n };\n _proto.setTransitioning = function setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning;\n };\n _proto.dispose = function dispose() {\n $.removeData(this._element, DATA_KEY$3);\n this._config = null;\n this._parent = null;\n this._element = null;\n this._triggerArray = null;\n this._isTransitioning = null;\n } // Private\n ;\n _proto._getConfig = function _getConfig(config) {\n config = _objectSpread({}, Default$1, config);\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n Util.typeCheckConfig(NAME$3, config, DefaultType$1);\n return config;\n };\n _proto._getDimension = function _getDimension() {\n var hasWidth = $(this._element).hasClass(Dimension.WIDTH);\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;\n };\n _proto._getParent = function _getParent() {\n var _this3 = this;\n var parent;\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent; // It's a jQuery object\n\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0];\n }\n } else {\n parent = document.querySelector(this._config.parent);\n }\n var selector = \"[data-toggle=\\\"collapse\\\"][data-parent=\\\"\" + this._config.parent + \"\\\"]\";\n var children = [].slice.call(parent.querySelectorAll(selector));\n $(children).each(function (i, element) {\n _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);\n });\n return parent;\n };\n _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {\n var isOpen = $(element).hasClass(ClassName$3.SHOW);\n if (triggerArray.length) {\n $(triggerArray).toggleClass(ClassName$3.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);\n }\n } // Static\n ;\n Collapse._getTargetFromElement = function _getTargetFromElement(element) {\n var selector = Util.getSelectorFromElement(element);\n return selector ? document.querySelector(selector) : null;\n };\n Collapse._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $this = $(this);\n var data = $this.data(DATA_KEY$3);\n var _config = _objectSpread({}, Default$1, $this.data(), typeof config === 'object' && config ? config : {});\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n if (!data) {\n data = new Collapse(this, _config);\n $this.data(DATA_KEY$3, data);\n }\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n data[config]();\n }\n });\n };\n _createClass(Collapse, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$3;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$1;\n }\n }]);\n return Collapse;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event$3.CLICK_DATA_API, Selector$3.DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault();\n }\n var $trigger = $(this);\n var selector = Util.getSelectorFromElement(this);\n var selectors = [].slice.call(document.querySelectorAll(selector));\n $(selectors).each(function () {\n var $target = $(this);\n var data = $target.data(DATA_KEY$3);\n var config = data ? 'toggle' : $trigger.data();\n Collapse._jQueryInterface.call($target, config);\n });\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME$3] = Collapse._jQueryInterface;\n $.fn[NAME$3].Constructor = Collapse;\n $.fn[NAME$3].noConflict = function () {\n $.fn[NAME$3] = JQUERY_NO_CONFLICT$3;\n return Collapse._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$4 = 'dropdown';\n var VERSION$4 = '4.3.1';\n var DATA_KEY$4 = 'bs.dropdown';\n var EVENT_KEY$4 = \".\" + DATA_KEY$4;\n var DATA_API_KEY$4 = '.data-api';\n var JQUERY_NO_CONFLICT$4 = $.fn[NAME$4];\n var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key\n\n var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key\n\n var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key\n\n var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key\n\n var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)\n\n var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + \"|\" + ARROW_DOWN_KEYCODE + \"|\" + ESCAPE_KEYCODE);\n var Event$4 = {\n HIDE: \"hide\" + EVENT_KEY$4,\n HIDDEN: \"hidden\" + EVENT_KEY$4,\n SHOW: \"show\" + EVENT_KEY$4,\n SHOWN: \"shown\" + EVENT_KEY$4,\n CLICK: \"click\" + EVENT_KEY$4,\n CLICK_DATA_API: \"click\" + EVENT_KEY$4 + DATA_API_KEY$4,\n KEYDOWN_DATA_API: \"keydown\" + EVENT_KEY$4 + DATA_API_KEY$4,\n KEYUP_DATA_API: \"keyup\" + EVENT_KEY$4 + DATA_API_KEY$4\n };\n var ClassName$4 = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n MENULEFT: 'dropdown-menu-left',\n POSITION_STATIC: 'position-static'\n };\n var Selector$4 = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n };\n var AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n };\n var Default$2 = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n };\n var DefaultType$2 = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n };\n var Dropdown = /*#__PURE__*/\n function () {\n function Dropdown(element, config) {\n this._element = element;\n this._popper = null;\n this._config = this._getConfig(config);\n this._menu = this._getMenuElement();\n this._inNavbar = this._detectNavbar();\n this._addEventListeners();\n } // Getters\n\n var _proto = Dropdown.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED)) {\n return;\n }\n var parent = Dropdown._getParentFromElement(this._element);\n var isActive = $(this._menu).hasClass(ClassName$4.SHOW);\n Dropdown._clearMenus();\n if (isActive) {\n return;\n }\n var relatedTarget = {\n relatedTarget: this._element\n };\n var showEvent = $.Event(Event$4.SHOW, relatedTarget);\n $(parent).trigger(showEvent);\n if (showEvent.isDefaultPrevented()) {\n return;\n } // Disable totally Popper.js for Dropdown in Navbar\n\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org/)');\n }\n var referenceElement = this._element;\n if (this._config.reference === 'parent') {\n referenceElement = parent;\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference; // Check if it's jQuery element\n\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0];\n }\n } // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName$4.POSITION_STATIC);\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());\n } // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n if ('ontouchstart' in document.documentElement && $(parent).closest(Selector$4.NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop);\n }\n this._element.focus();\n this._element.setAttribute('aria-expanded', true);\n $(this._menu).toggleClass(ClassName$4.SHOW);\n $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.SHOWN, relatedTarget));\n };\n _proto.show = function show() {\n if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED) || $(this._menu).hasClass(ClassName$4.SHOW)) {\n return;\n }\n var relatedTarget = {\n relatedTarget: this._element\n };\n var showEvent = $.Event(Event$4.SHOW, relatedTarget);\n var parent = Dropdown._getParentFromElement(this._element);\n $(parent).trigger(showEvent);\n if (showEvent.isDefaultPrevented()) {\n return;\n }\n $(this._menu).toggleClass(ClassName$4.SHOW);\n $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.SHOWN, relatedTarget));\n };\n _proto.hide = function hide() {\n if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED) || !$(this._menu).hasClass(ClassName$4.SHOW)) {\n return;\n }\n var relatedTarget = {\n relatedTarget: this._element\n };\n var hideEvent = $.Event(Event$4.HIDE, relatedTarget);\n var parent = Dropdown._getParentFromElement(this._element);\n $(parent).trigger(hideEvent);\n if (hideEvent.isDefaultPrevented()) {\n return;\n }\n $(this._menu).toggleClass(ClassName$4.SHOW);\n $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.HIDDEN, relatedTarget));\n };\n _proto.dispose = function dispose() {\n $.removeData(this._element, DATA_KEY$4);\n $(this._element).off(EVENT_KEY$4);\n this._element = null;\n this._menu = null;\n if (this._popper !== null) {\n this._popper.destroy();\n this._popper = null;\n }\n };\n _proto.update = function update() {\n this._inNavbar = this._detectNavbar();\n if (this._popper !== null) {\n this._popper.scheduleUpdate();\n }\n } // Private\n ;\n _proto._addEventListeners = function _addEventListeners() {\n var _this = this;\n $(this._element).on(Event$4.CLICK, function (event) {\n event.preventDefault();\n event.stopPropagation();\n _this.toggle();\n });\n };\n _proto._getConfig = function _getConfig(config) {\n config = _objectSpread({}, this.constructor.Default, $(this._element).data(), config);\n Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType);\n return config;\n };\n _proto._getMenuElement = function _getMenuElement() {\n if (!this._menu) {\n var parent = Dropdown._getParentFromElement(this._element);\n if (parent) {\n this._menu = parent.querySelector(Selector$4.MENU);\n }\n }\n return this._menu;\n };\n _proto._getPlacement = function _getPlacement() {\n var $parentDropdown = $(this._element.parentNode);\n var placement = AttachmentMap.BOTTOM; // Handle dropup\n\n if ($parentDropdown.hasClass(ClassName$4.DROPUP)) {\n placement = AttachmentMap.TOP;\n if ($(this._menu).hasClass(ClassName$4.MENURIGHT)) {\n placement = AttachmentMap.TOPEND;\n }\n } else if ($parentDropdown.hasClass(ClassName$4.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT;\n } else if ($parentDropdown.hasClass(ClassName$4.DROPLEFT)) {\n placement = AttachmentMap.LEFT;\n } else if ($(this._menu).hasClass(ClassName$4.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND;\n }\n return placement;\n };\n _proto._detectNavbar = function _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0;\n };\n _proto._getOffset = function _getOffset() {\n var _this2 = this;\n var offset = {};\n if (typeof this._config.offset === 'function') {\n offset.fn = function (data) {\n data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});\n return data;\n };\n } else {\n offset.offset = this._config.offset;\n }\n return offset;\n };\n _proto._getPopperConfig = function _getPopperConfig() {\n var popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n } // Disable Popper.js if we have a static display\n };\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n };\n }\n return popperConfig;\n } // Static\n ;\n Dropdown._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $(this).data(DATA_KEY$4);\n var _config = typeof config === 'object' ? config : null;\n if (!data) {\n data = new Dropdown(this, _config);\n $(this).data(DATA_KEY$4, data);\n }\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n data[config]();\n }\n });\n };\n Dropdown._clearMenus = function _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return;\n }\n var toggles = [].slice.call(document.querySelectorAll(Selector$4.DATA_TOGGLE));\n for (var i = 0, len = toggles.length; i < len; i++) {\n var parent = Dropdown._getParentFromElement(toggles[i]);\n var context = $(toggles[i]).data(DATA_KEY$4);\n var relatedTarget = {\n relatedTarget: toggles[i]\n };\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n if (!context) {\n continue;\n }\n var dropdownMenu = context._menu;\n if (!$(parent).hasClass(ClassName$4.SHOW)) {\n continue;\n }\n if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {\n continue;\n }\n var hideEvent = $.Event(Event$4.HIDE, relatedTarget);\n $(parent).trigger(hideEvent);\n if (hideEvent.isDefaultPrevented()) {\n continue;\n } // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop);\n }\n toggles[i].setAttribute('aria-expanded', 'false');\n $(dropdownMenu).removeClass(ClassName$4.SHOW);\n $(parent).removeClass(ClassName$4.SHOW).trigger($.Event(Event$4.HIDDEN, relatedTarget));\n }\n };\n Dropdown._getParentFromElement = function _getParentFromElement(element) {\n var parent;\n var selector = Util.getSelectorFromElement(element);\n if (selector) {\n parent = document.querySelector(selector);\n }\n return parent || element.parentNode;\n } // eslint-disable-next-line complexity\n ;\n Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $(event.target).closest(Selector$4.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n if (this.disabled || $(this).hasClass(ClassName$4.DISABLED)) {\n return;\n }\n var parent = Dropdown._getParentFromElement(this);\n var isActive = $(parent).hasClass(ClassName$4.SHOW);\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n var toggle = parent.querySelector(Selector$4.DATA_TOGGLE);\n $(toggle).trigger('focus');\n }\n $(this).trigger('click');\n return;\n }\n var items = [].slice.call(parent.querySelectorAll(Selector$4.VISIBLE_ITEMS));\n if (items.length === 0) {\n return;\n }\n var index = items.indexOf(event.target);\n if (event.which === ARROW_UP_KEYCODE && index > 0) {\n // Up\n index--;\n }\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {\n // Down\n index++;\n }\n if (index < 0) {\n index = 0;\n }\n items[index].focus();\n };\n _createClass(Dropdown, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$4;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$2;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$2;\n }\n }]);\n return Dropdown;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event$4.KEYDOWN_DATA_API, Selector$4.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event$4.KEYDOWN_DATA_API, Selector$4.MENU, Dropdown._dataApiKeydownHandler).on(Event$4.CLICK_DATA_API + \" \" + Event$4.KEYUP_DATA_API, Dropdown._clearMenus).on(Event$4.CLICK_DATA_API, Selector$4.DATA_TOGGLE, function (event) {\n event.preventDefault();\n event.stopPropagation();\n Dropdown._jQueryInterface.call($(this), 'toggle');\n }).on(Event$4.CLICK_DATA_API, Selector$4.FORM_CHILD, function (e) {\n e.stopPropagation();\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME$4] = Dropdown._jQueryInterface;\n $.fn[NAME$4].Constructor = Dropdown;\n $.fn[NAME$4].noConflict = function () {\n $.fn[NAME$4] = JQUERY_NO_CONFLICT$4;\n return Dropdown._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$5 = 'modal';\n var VERSION$5 = '4.3.1';\n var DATA_KEY$5 = 'bs.modal';\n var EVENT_KEY$5 = \".\" + DATA_KEY$5;\n var DATA_API_KEY$5 = '.data-api';\n var JQUERY_NO_CONFLICT$5 = $.fn[NAME$5];\n var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n var Default$3 = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n };\n var DefaultType$3 = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n };\n var Event$5 = {\n HIDE: \"hide\" + EVENT_KEY$5,\n HIDDEN: \"hidden\" + EVENT_KEY$5,\n SHOW: \"show\" + EVENT_KEY$5,\n SHOWN: \"shown\" + EVENT_KEY$5,\n FOCUSIN: \"focusin\" + EVENT_KEY$5,\n RESIZE: \"resize\" + EVENT_KEY$5,\n CLICK_DISMISS: \"click.dismiss\" + EVENT_KEY$5,\n KEYDOWN_DISMISS: \"keydown.dismiss\" + EVENT_KEY$5,\n MOUSEUP_DISMISS: \"mouseup.dismiss\" + EVENT_KEY$5,\n MOUSEDOWN_DISMISS: \"mousedown.dismiss\" + EVENT_KEY$5,\n CLICK_DATA_API: \"click\" + EVENT_KEY$5 + DATA_API_KEY$5\n };\n var ClassName$5 = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n };\n var Selector$5 = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n };\n var Modal = /*#__PURE__*/\n function () {\n function Modal(element, config) {\n this._config = this._getConfig(config);\n this._element = element;\n this._dialog = element.querySelector(Selector$5.DIALOG);\n this._backdrop = null;\n this._isShown = false;\n this._isBodyOverflowing = false;\n this._ignoreBackdropClick = false;\n this._isTransitioning = false;\n this._scrollbarWidth = 0;\n } // Getters\n\n var _proto = Modal.prototype;\n\n // Public\n _proto.toggle = function toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n };\n _proto.show = function show(relatedTarget) {\n var _this = this;\n if (this._isShown || this._isTransitioning) {\n return;\n }\n if ($(this._element).hasClass(ClassName$5.FADE)) {\n this._isTransitioning = true;\n }\n var showEvent = $.Event(Event$5.SHOW, {\n relatedTarget: relatedTarget\n });\n $(this._element).trigger(showEvent);\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return;\n }\n this._isShown = true;\n this._checkScrollbar();\n this._setScrollbar();\n this._adjustDialog();\n this._setEscapeEvent();\n this._setResizeEvent();\n $(this._element).on(Event$5.CLICK_DISMISS, Selector$5.DATA_DISMISS, function (event) {\n return _this.hide(event);\n });\n $(this._dialog).on(Event$5.MOUSEDOWN_DISMISS, function () {\n $(_this._element).one(Event$5.MOUSEUP_DISMISS, function (event) {\n if ($(event.target).is(_this._element)) {\n _this._ignoreBackdropClick = true;\n }\n });\n });\n this._showBackdrop(function () {\n return _this._showElement(relatedTarget);\n });\n };\n _proto.hide = function hide(event) {\n var _this2 = this;\n if (event) {\n event.preventDefault();\n }\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n var hideEvent = $.Event(Event$5.HIDE);\n $(this._element).trigger(hideEvent);\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return;\n }\n this._isShown = false;\n var transition = $(this._element).hasClass(ClassName$5.FADE);\n if (transition) {\n this._isTransitioning = true;\n }\n this._setEscapeEvent();\n this._setResizeEvent();\n $(document).off(Event$5.FOCUSIN);\n $(this._element).removeClass(ClassName$5.SHOW);\n $(this._element).off(Event$5.CLICK_DISMISS);\n $(this._dialog).off(Event$5.MOUSEDOWN_DISMISS);\n if (transition) {\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $(this._element).one(Util.TRANSITION_END, function (event) {\n return _this2._hideModal(event);\n }).emulateTransitionEnd(transitionDuration);\n } else {\n this._hideModal();\n }\n };\n _proto.dispose = function dispose() {\n [window, this._element, this._dialog].forEach(function (htmlElement) {\n return $(htmlElement).off(EVENT_KEY$5);\n });\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n\n $(document).off(Event$5.FOCUSIN);\n $.removeData(this._element, DATA_KEY$5);\n this._config = null;\n this._element = null;\n this._dialog = null;\n this._backdrop = null;\n this._isShown = null;\n this._isBodyOverflowing = null;\n this._ignoreBackdropClick = null;\n this._isTransitioning = null;\n this._scrollbarWidth = null;\n };\n _proto.handleUpdate = function handleUpdate() {\n this._adjustDialog();\n } // Private\n ;\n _proto._getConfig = function _getConfig(config) {\n config = _objectSpread({}, Default$3, config);\n Util.typeCheckConfig(NAME$5, config, DefaultType$3);\n return config;\n };\n _proto._showElement = function _showElement(relatedTarget) {\n var _this3 = this;\n var transition = $(this._element).hasClass(ClassName$5.FADE);\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element);\n }\n this._element.style.display = 'block';\n this._element.removeAttribute('aria-hidden');\n this._element.setAttribute('aria-modal', true);\n if ($(this._dialog).hasClass(ClassName$5.SCROLLABLE)) {\n this._dialog.querySelector(Selector$5.MODAL_BODY).scrollTop = 0;\n } else {\n this._element.scrollTop = 0;\n }\n if (transition) {\n Util.reflow(this._element);\n }\n $(this._element).addClass(ClassName$5.SHOW);\n if (this._config.focus) {\n this._enforceFocus();\n }\n var shownEvent = $.Event(Event$5.SHOWN, {\n relatedTarget: relatedTarget\n });\n var transitionComplete = function transitionComplete() {\n if (_this3._config.focus) {\n _this3._element.focus();\n }\n _this3._isTransitioning = false;\n $(_this3._element).trigger(shownEvent);\n };\n if (transition) {\n var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);\n } else {\n transitionComplete();\n }\n };\n _proto._enforceFocus = function _enforceFocus() {\n var _this4 = this;\n $(document).off(Event$5.FOCUSIN) // Guard against infinite focus loop\n .on(Event$5.FOCUSIN, function (event) {\n if (document !== event.target && _this4._element !== event.target && $(_this4._element).has(event.target).length === 0) {\n _this4._element.focus();\n }\n });\n };\n _proto._setEscapeEvent = function _setEscapeEvent() {\n var _this5 = this;\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event$5.KEYDOWN_DISMISS, function (event) {\n if (event.which === ESCAPE_KEYCODE$1) {\n event.preventDefault();\n _this5.hide();\n }\n });\n } else if (!this._isShown) {\n $(this._element).off(Event$5.KEYDOWN_DISMISS);\n }\n };\n _proto._setResizeEvent = function _setResizeEvent() {\n var _this6 = this;\n if (this._isShown) {\n $(window).on(Event$5.RESIZE, function (event) {\n return _this6.handleUpdate(event);\n });\n } else {\n $(window).off(Event$5.RESIZE);\n }\n };\n _proto._hideModal = function _hideModal() {\n var _this7 = this;\n this._element.style.display = 'none';\n this._element.setAttribute('aria-hidden', true);\n this._element.removeAttribute('aria-modal');\n this._isTransitioning = false;\n this._showBackdrop(function () {\n $(document.body).removeClass(ClassName$5.OPEN);\n _this7._resetAdjustments();\n _this7._resetScrollbar();\n $(_this7._element).trigger(Event$5.HIDDEN);\n });\n };\n _proto._removeBackdrop = function _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove();\n this._backdrop = null;\n }\n };\n _proto._showBackdrop = function _showBackdrop(callback) {\n var _this8 = this;\n var animate = $(this._element).hasClass(ClassName$5.FADE) ? ClassName$5.FADE : '';\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div');\n this._backdrop.className = ClassName$5.BACKDROP;\n if (animate) {\n this._backdrop.classList.add(animate);\n }\n $(this._backdrop).appendTo(document.body);\n $(this._element).on(Event$5.CLICK_DISMISS, function (event) {\n if (_this8._ignoreBackdropClick) {\n _this8._ignoreBackdropClick = false;\n return;\n }\n if (event.target !== event.currentTarget) {\n return;\n }\n if (_this8._config.backdrop === 'static') {\n _this8._element.focus();\n } else {\n _this8.hide();\n }\n });\n if (animate) {\n Util.reflow(this._backdrop);\n }\n $(this._backdrop).addClass(ClassName$5.SHOW);\n if (!callback) {\n return;\n }\n if (!animate) {\n callback();\n return;\n }\n var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName$5.SHOW);\n var callbackRemove = function callbackRemove() {\n _this8._removeBackdrop();\n if (callback) {\n callback();\n }\n };\n if ($(this._element).hasClass(ClassName$5.FADE)) {\n var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);\n } else {\n callbackRemove();\n }\n } else if (callback) {\n callback();\n }\n } // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n ;\n _proto._adjustDialog = function _adjustDialog() {\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = this._scrollbarWidth + \"px\";\n }\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = this._scrollbarWidth + \"px\";\n }\n };\n _proto._resetAdjustments = function _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n };\n _proto._checkScrollbar = function _checkScrollbar() {\n var rect = document.body.getBoundingClientRect();\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;\n this._scrollbarWidth = this._getScrollbarWidth();\n };\n _proto._setScrollbar = function _setScrollbar() {\n var _this9 = this;\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n var fixedContent = [].slice.call(document.querySelectorAll(Selector$5.FIXED_CONTENT));\n var stickyContent = [].slice.call(document.querySelectorAll(Selector$5.STICKY_CONTENT)); // Adjust fixed content padding\n\n $(fixedContent).each(function (index, element) {\n var actualPadding = element.style.paddingRight;\n var calculatedPadding = $(element).css('padding-right');\n $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + \"px\");\n }); // Adjust sticky content margin\n\n $(stickyContent).each(function (index, element) {\n var actualMargin = element.style.marginRight;\n var calculatedMargin = $(element).css('margin-right');\n $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + \"px\");\n }); // Adjust body padding\n\n var actualPadding = document.body.style.paddingRight;\n var calculatedPadding = $(document.body).css('padding-right');\n $(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + \"px\");\n }\n $(document.body).addClass(ClassName$5.OPEN);\n };\n _proto._resetScrollbar = function _resetScrollbar() {\n // Restore fixed content padding\n var fixedContent = [].slice.call(document.querySelectorAll(Selector$5.FIXED_CONTENT));\n $(fixedContent).each(function (index, element) {\n var padding = $(element).data('padding-right');\n $(element).removeData('padding-right');\n element.style.paddingRight = padding ? padding : '';\n }); // Restore sticky content\n\n var elements = [].slice.call(document.querySelectorAll(\"\" + Selector$5.STICKY_CONTENT));\n $(elements).each(function (index, element) {\n var margin = $(element).data('margin-right');\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right');\n }\n }); // Restore body padding\n\n var padding = $(document.body).data('padding-right');\n $(document.body).removeData('padding-right');\n document.body.style.paddingRight = padding ? padding : '';\n };\n _proto._getScrollbarWidth = function _getScrollbarWidth() {\n // thx d.walsh\n var scrollDiv = document.createElement('div');\n scrollDiv.className = ClassName$5.SCROLLBAR_MEASURER;\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n } // Static\n ;\n Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n var data = $(this).data(DATA_KEY$5);\n var _config = _objectSpread({}, Default$3, $(this).data(), typeof config === 'object' && config ? config : {});\n if (!data) {\n data = new Modal(this, _config);\n $(this).data(DATA_KEY$5, data);\n }\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n data[config](relatedTarget);\n } else if (_config.show) {\n data.show(relatedTarget);\n }\n });\n };\n _createClass(Modal, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$5;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$3;\n }\n }]);\n return Modal;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event$5.CLICK_DATA_API, Selector$5.DATA_TOGGLE, function (event) {\n var _this10 = this;\n var target;\n var selector = Util.getSelectorFromElement(this);\n if (selector) {\n target = document.querySelector(selector);\n }\n var config = $(target).data(DATA_KEY$5) ? 'toggle' : _objectSpread({}, $(target).data(), $(this).data());\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault();\n }\n var $target = $(target).one(Event$5.SHOW, function (showEvent) {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return;\n }\n $target.one(Event$5.HIDDEN, function () {\n if ($(_this10).is(':visible')) {\n _this10.focus();\n }\n });\n });\n Modal._jQueryInterface.call($(target), config, this);\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME$5] = Modal._jQueryInterface;\n $.fn[NAME$5].Constructor = Modal;\n $.fn[NAME$5].noConflict = function () {\n $.fn[NAME$5] = JQUERY_NO_CONFLICT$5;\n return Modal._jQueryInterface;\n };\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];\n var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n var DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n /**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n };\n var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;\n /**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n\n var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;\n function allowedAttribute(attr, allowedAttributeList) {\n var attrName = attr.nodeName.toLowerCase();\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));\n }\n return true;\n }\n var regExp = allowedAttributeList.filter(function (attrRegex) {\n return attrRegex instanceof RegExp;\n }); // Check if a regular expression validates the attribute.\n\n for (var i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true;\n }\n }\n return false;\n }\n function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml;\n }\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml);\n }\n var domParser = new window.DOMParser();\n var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n var whitelistKeys = Object.keys(whiteList);\n var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));\n var _loop = function _loop(i, len) {\n var el = elements[i];\n var elName = el.nodeName.toLowerCase();\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el);\n return \"continue\";\n }\n var attributeList = [].slice.call(el.attributes);\n var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);\n attributeList.forEach(function (attr) {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName);\n }\n });\n };\n for (var i = 0, len = elements.length; i < len; i++) {\n var _ret = _loop(i, len);\n if (_ret === \"continue\") continue;\n }\n return createdDocument.body.innerHTML;\n }\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$6 = 'tooltip';\n var VERSION$6 = '4.3.1';\n var DATA_KEY$6 = 'bs.tooltip';\n var EVENT_KEY$6 = \".\" + DATA_KEY$6;\n var JQUERY_NO_CONFLICT$6 = $.fn[NAME$6];\n var CLASS_PREFIX = 'bs-tooltip';\n var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\n var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];\n var DefaultType$4 = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n };\n var AttachmentMap$1 = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n };\n var Default$4 = {\n animation: true,\n template: '
    ' + '
    ' + '
    ',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n };\n var HoverState = {\n SHOW: 'show',\n OUT: 'out'\n };\n var Event$6 = {\n HIDE: \"hide\" + EVENT_KEY$6,\n HIDDEN: \"hidden\" + EVENT_KEY$6,\n SHOW: \"show\" + EVENT_KEY$6,\n SHOWN: \"shown\" + EVENT_KEY$6,\n INSERTED: \"inserted\" + EVENT_KEY$6,\n CLICK: \"click\" + EVENT_KEY$6,\n FOCUSIN: \"focusin\" + EVENT_KEY$6,\n FOCUSOUT: \"focusout\" + EVENT_KEY$6,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY$6,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY$6\n };\n var ClassName$6 = {\n FADE: 'fade',\n SHOW: 'show'\n };\n var Selector$6 = {\n TOOLTIP: '.tooltip',\n TOOLTIP_INNER: '.tooltip-inner',\n ARROW: '.arrow'\n };\n var Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n };\n var Tooltip = /*#__PURE__*/\n function () {\n function Tooltip(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org/)');\n } // private\n\n this._isEnabled = true;\n this._timeout = 0;\n this._hoverState = '';\n this._activeTrigger = {};\n this._popper = null; // Protected\n\n this.element = element;\n this.config = this._getConfig(config);\n this.tip = null;\n this._setListeners();\n } // Getters\n\n var _proto = Tooltip.prototype;\n\n // Public\n _proto.enable = function enable() {\n this._isEnabled = true;\n };\n _proto.disable = function disable() {\n this._isEnabled = false;\n };\n _proto.toggleEnabled = function toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n };\n _proto.toggle = function toggle(event) {\n if (!this._isEnabled) {\n return;\n }\n if (event) {\n var dataKey = this.constructor.DATA_KEY;\n var context = $(event.currentTarget).data(dataKey);\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $(event.currentTarget).data(dataKey, context);\n }\n context._activeTrigger.click = !context._activeTrigger.click;\n if (context._isWithActiveTrigger()) {\n context._enter(null, context);\n } else {\n context._leave(null, context);\n }\n } else {\n if ($(this.getTipElement()).hasClass(ClassName$6.SHOW)) {\n this._leave(null, this);\n return;\n }\n this._enter(null, this);\n }\n };\n _proto.dispose = function dispose() {\n clearTimeout(this._timeout);\n $.removeData(this.element, this.constructor.DATA_KEY);\n $(this.element).off(this.constructor.EVENT_KEY);\n $(this.element).closest('.modal').off('hide.bs.modal');\n if (this.tip) {\n $(this.tip).remove();\n }\n this._isEnabled = null;\n this._timeout = null;\n this._hoverState = null;\n this._activeTrigger = null;\n if (this._popper !== null) {\n this._popper.destroy();\n }\n this._popper = null;\n this.element = null;\n this.config = null;\n this.tip = null;\n };\n _proto.show = function show() {\n var _this = this;\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements');\n }\n var showEvent = $.Event(this.constructor.Event.SHOW);\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent);\n var shadowRoot = Util.findShadowRoot(this.element);\n var isInTheDom = $.contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element);\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return;\n }\n var tip = this.getTipElement();\n var tipId = Util.getUID(this.constructor.NAME);\n tip.setAttribute('id', tipId);\n this.element.setAttribute('aria-describedby', tipId);\n this.setContent();\n if (this.config.animation) {\n $(tip).addClass(ClassName$6.FADE);\n }\n var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;\n var attachment = this._getAttachment(placement);\n this.addAttachmentClass(attachment);\n var container = this._getContainer();\n $(tip).data(this.constructor.DATA_KEY, this);\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container);\n }\n $(this.element).trigger(this.constructor.Event.INSERTED);\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector$6.ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: function onCreate(data) {\n if (data.originalPlacement !== data.placement) {\n _this._handlePopperPlacementChange(data);\n }\n },\n onUpdate: function onUpdate(data) {\n return _this._handlePopperPlacementChange(data);\n }\n });\n $(tip).addClass(ClassName$6.SHOW); // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop);\n }\n var complete = function complete() {\n if (_this.config.animation) {\n _this._fixTransition();\n }\n var prevHoverState = _this._hoverState;\n _this._hoverState = null;\n $(_this.element).trigger(_this.constructor.Event.SHOWN);\n if (prevHoverState === HoverState.OUT) {\n _this._leave(null, _this);\n }\n };\n if ($(this.tip).hasClass(ClassName$6.FADE)) {\n var transitionDuration = Util.getTransitionDurationFromElement(this.tip);\n $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n } else {\n complete();\n }\n }\n };\n _proto.hide = function hide(callback) {\n var _this2 = this;\n var tip = this.getTipElement();\n var hideEvent = $.Event(this.constructor.Event.HIDE);\n var complete = function complete() {\n if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip);\n }\n _this2._cleanTipClass();\n _this2.element.removeAttribute('aria-describedby');\n $(_this2.element).trigger(_this2.constructor.Event.HIDDEN);\n if (_this2._popper !== null) {\n _this2._popper.destroy();\n }\n if (callback) {\n callback();\n }\n };\n $(this.element).trigger(hideEvent);\n if (hideEvent.isDefaultPrevented()) {\n return;\n }\n $(tip).removeClass(ClassName$6.SHOW); // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop);\n }\n this._activeTrigger[Trigger.CLICK] = false;\n this._activeTrigger[Trigger.FOCUS] = false;\n this._activeTrigger[Trigger.HOVER] = false;\n if ($(this.tip).hasClass(ClassName$6.FADE)) {\n var transitionDuration = Util.getTransitionDurationFromElement(tip);\n $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n } else {\n complete();\n }\n this._hoverState = '';\n };\n _proto.update = function update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate();\n }\n } // Protected\n ;\n _proto.isWithContent = function isWithContent() {\n return Boolean(this.getTitle());\n };\n _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(CLASS_PREFIX + \"-\" + attachment);\n };\n _proto.getTipElement = function getTipElement() {\n this.tip = this.tip || $(this.config.template)[0];\n return this.tip;\n };\n _proto.setContent = function setContent() {\n var tip = this.getTipElement();\n this.setElementContent($(tip.querySelectorAll(Selector$6.TOOLTIP_INNER)), this.getTitle());\n $(tip).removeClass(ClassName$6.FADE + \" \" + ClassName$6.SHOW);\n };\n _proto.setElementContent = function setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content);\n }\n } else {\n $element.text($(content).text());\n }\n return;\n }\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);\n }\n $element.html(content);\n } else {\n $element.text(content);\n }\n };\n _proto.getTitle = function getTitle() {\n var title = this.element.getAttribute('data-original-title');\n if (!title) {\n title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;\n }\n return title;\n } // Private\n ;\n _proto._getOffset = function _getOffset() {\n var _this3 = this;\n var offset = {};\n if (typeof this.config.offset === 'function') {\n offset.fn = function (data) {\n data.offsets = _objectSpread({}, data.offsets, _this3.config.offset(data.offsets, _this3.element) || {});\n return data;\n };\n } else {\n offset.offset = this.config.offset;\n }\n return offset;\n };\n _proto._getContainer = function _getContainer() {\n if (this.config.container === false) {\n return document.body;\n }\n if (Util.isElement(this.config.container)) {\n return $(this.config.container);\n }\n return $(document).find(this.config.container);\n };\n _proto._getAttachment = function _getAttachment(placement) {\n return AttachmentMap$1[placement.toUpperCase()];\n };\n _proto._setListeners = function _setListeners() {\n var _this4 = this;\n var triggers = this.config.trigger.split(' ');\n triggers.forEach(function (trigger) {\n if (trigger === 'click') {\n $(_this4.element).on(_this4.constructor.Event.CLICK, _this4.config.selector, function (event) {\n return _this4.toggle(event);\n });\n } else if (trigger !== Trigger.MANUAL) {\n var eventIn = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSEENTER : _this4.constructor.Event.FOCUSIN;\n var eventOut = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSELEAVE : _this4.constructor.Event.FOCUSOUT;\n $(_this4.element).on(eventIn, _this4.config.selector, function (event) {\n return _this4._enter(event);\n }).on(eventOut, _this4.config.selector, function (event) {\n return _this4._leave(event);\n });\n }\n });\n $(this.element).closest('.modal').on('hide.bs.modal', function () {\n if (_this4.element) {\n _this4.hide();\n }\n });\n if (this.config.selector) {\n this.config = _objectSpread({}, this.config, {\n trigger: 'manual',\n selector: ''\n });\n } else {\n this._fixTitle();\n }\n };\n _proto._fixTitle = function _fixTitle() {\n var titleType = typeof this.element.getAttribute('data-original-title');\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');\n this.element.setAttribute('title', '');\n }\n };\n _proto._enter = function _enter(event, context) {\n var dataKey = this.constructor.DATA_KEY;\n context = context || $(event.currentTarget).data(dataKey);\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $(event.currentTarget).data(dataKey, context);\n }\n if (event) {\n context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;\n }\n if ($(context.getTipElement()).hasClass(ClassName$6.SHOW) || context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW;\n return;\n }\n clearTimeout(context._timeout);\n context._hoverState = HoverState.SHOW;\n if (!context.config.delay || !context.config.delay.show) {\n context.show();\n return;\n }\n context._timeout = setTimeout(function () {\n if (context._hoverState === HoverState.SHOW) {\n context.show();\n }\n }, context.config.delay.show);\n };\n _proto._leave = function _leave(event, context) {\n var dataKey = this.constructor.DATA_KEY;\n context = context || $(event.currentTarget).data(dataKey);\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $(event.currentTarget).data(dataKey, context);\n }\n if (event) {\n context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;\n }\n if (context._isWithActiveTrigger()) {\n return;\n }\n clearTimeout(context._timeout);\n context._hoverState = HoverState.OUT;\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide();\n return;\n }\n context._timeout = setTimeout(function () {\n if (context._hoverState === HoverState.OUT) {\n context.hide();\n }\n }, context.config.delay.hide);\n };\n _proto._isWithActiveTrigger = function _isWithActiveTrigger() {\n for (var trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true;\n }\n }\n return false;\n };\n _proto._getConfig = function _getConfig(config) {\n var dataAttributes = $(this.element).data();\n Object.keys(dataAttributes).forEach(function (dataAttr) {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr];\n }\n });\n config = _objectSpread({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType);\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);\n }\n return config;\n };\n _proto._getDelegateConfig = function _getDelegateConfig() {\n var config = {};\n if (this.config) {\n for (var key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key];\n }\n }\n }\n return config;\n };\n _proto._cleanTipClass = function _cleanTipClass() {\n var $tip = $(this.getTipElement());\n var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''));\n }\n };\n _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {\n var popperInstance = popperData.instance;\n this.tip = popperInstance.popper;\n this._cleanTipClass();\n this.addAttachmentClass(this._getAttachment(popperData.placement));\n };\n _proto._fixTransition = function _fixTransition() {\n var tip = this.getTipElement();\n var initConfigAnimation = this.config.animation;\n if (tip.getAttribute('x-placement') !== null) {\n return;\n }\n $(tip).removeClass(ClassName$6.FADE);\n this.config.animation = false;\n this.hide();\n this.show();\n this.config.animation = initConfigAnimation;\n } // Static\n ;\n Tooltip._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $(this).data(DATA_KEY$6);\n var _config = typeof config === 'object' && config;\n if (!data && /dispose|hide/.test(config)) {\n return;\n }\n if (!data) {\n data = new Tooltip(this, _config);\n $(this).data(DATA_KEY$6, data);\n }\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n data[config]();\n }\n });\n };\n _createClass(Tooltip, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$6;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$4;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$6;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY$6;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event$6;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return EVENT_KEY$6;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$4;\n }\n }]);\n return Tooltip;\n }();\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME$6] = Tooltip._jQueryInterface;\n $.fn[NAME$6].Constructor = Tooltip;\n $.fn[NAME$6].noConflict = function () {\n $.fn[NAME$6] = JQUERY_NO_CONFLICT$6;\n return Tooltip._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$7 = 'popover';\n var VERSION$7 = '4.3.1';\n var DATA_KEY$7 = 'bs.popover';\n var EVENT_KEY$7 = \".\" + DATA_KEY$7;\n var JQUERY_NO_CONFLICT$7 = $.fn[NAME$7];\n var CLASS_PREFIX$1 = 'bs-popover';\n var BSCLS_PREFIX_REGEX$1 = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX$1 + \"\\\\S+\", 'g');\n var Default$5 = _objectSpread({}, Tooltip.Default, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '
    ' + '
    ' + '

    ' + '
    '\n });\n var DefaultType$5 = _objectSpread({}, Tooltip.DefaultType, {\n content: '(string|element|function)'\n });\n var ClassName$7 = {\n FADE: 'fade',\n SHOW: 'show'\n };\n var Selector$7 = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n };\n var Event$7 = {\n HIDE: \"hide\" + EVENT_KEY$7,\n HIDDEN: \"hidden\" + EVENT_KEY$7,\n SHOW: \"show\" + EVENT_KEY$7,\n SHOWN: \"shown\" + EVENT_KEY$7,\n INSERTED: \"inserted\" + EVENT_KEY$7,\n CLICK: \"click\" + EVENT_KEY$7,\n FOCUSIN: \"focusin\" + EVENT_KEY$7,\n FOCUSOUT: \"focusout\" + EVENT_KEY$7,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY$7,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY$7\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n };\n var Popover = /*#__PURE__*/\n function (_Tooltip) {\n _inheritsLoose(Popover, _Tooltip);\n function Popover() {\n return _Tooltip.apply(this, arguments) || this;\n }\n var _proto = Popover.prototype;\n\n // Overrides\n _proto.isWithContent = function isWithContent() {\n return this.getTitle() || this._getContent();\n };\n _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(CLASS_PREFIX$1 + \"-\" + attachment);\n };\n _proto.getTipElement = function getTipElement() {\n this.tip = this.tip || $(this.config.template)[0];\n return this.tip;\n };\n _proto.setContent = function setContent() {\n var $tip = $(this.getTipElement()); // We use append for html objects to maintain js events\n\n this.setElementContent($tip.find(Selector$7.TITLE), this.getTitle());\n var content = this._getContent();\n if (typeof content === 'function') {\n content = content.call(this.element);\n }\n this.setElementContent($tip.find(Selector$7.CONTENT), content);\n $tip.removeClass(ClassName$7.FADE + \" \" + ClassName$7.SHOW);\n } // Private\n ;\n _proto._getContent = function _getContent() {\n return this.element.getAttribute('data-content') || this.config.content;\n };\n _proto._cleanTipClass = function _cleanTipClass() {\n var $tip = $(this.getTipElement());\n var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1);\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''));\n }\n } // Static\n ;\n Popover._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $(this).data(DATA_KEY$7);\n var _config = typeof config === 'object' ? config : null;\n if (!data && /dispose|hide/.test(config)) {\n return;\n }\n if (!data) {\n data = new Popover(this, _config);\n $(this).data(DATA_KEY$7, data);\n }\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n data[config]();\n }\n });\n };\n _createClass(Popover, null, [{\n key: \"VERSION\",\n // Getters\n get: function get() {\n return VERSION$7;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$5;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$7;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY$7;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event$7;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return EVENT_KEY$7;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$5;\n }\n }]);\n return Popover;\n }(Tooltip);\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME$7] = Popover._jQueryInterface;\n $.fn[NAME$7].Constructor = Popover;\n $.fn[NAME$7].noConflict = function () {\n $.fn[NAME$7] = JQUERY_NO_CONFLICT$7;\n return Popover._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$8 = 'scrollspy';\n var VERSION$8 = '4.3.1';\n var DATA_KEY$8 = 'bs.scrollspy';\n var EVENT_KEY$8 = \".\" + DATA_KEY$8;\n var DATA_API_KEY$6 = '.data-api';\n var JQUERY_NO_CONFLICT$8 = $.fn[NAME$8];\n var Default$6 = {\n offset: 10,\n method: 'auto',\n target: ''\n };\n var DefaultType$6 = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n };\n var Event$8 = {\n ACTIVATE: \"activate\" + EVENT_KEY$8,\n SCROLL: \"scroll\" + EVENT_KEY$8,\n LOAD_DATA_API: \"load\" + EVENT_KEY$8 + DATA_API_KEY$6\n };\n var ClassName$8 = {\n DROPDOWN_ITEM: 'dropdown-item',\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active'\n };\n var Selector$8 = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n ACTIVE: '.active',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_ITEMS: '.dropdown-item',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n };\n var OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n };\n var ScrollSpy = /*#__PURE__*/\n function () {\n function ScrollSpy(element, config) {\n var _this = this;\n this._element = element;\n this._scrollElement = element.tagName === 'BODY' ? window : element;\n this._config = this._getConfig(config);\n this._selector = this._config.target + \" \" + Selector$8.NAV_LINKS + \",\" + (this._config.target + \" \" + Selector$8.LIST_ITEMS + \",\") + (this._config.target + \" \" + Selector$8.DROPDOWN_ITEMS);\n this._offsets = [];\n this._targets = [];\n this._activeTarget = null;\n this._scrollHeight = 0;\n $(this._scrollElement).on(Event$8.SCROLL, function (event) {\n return _this._process(event);\n });\n this.refresh();\n this._process();\n } // Getters\n\n var _proto = ScrollSpy.prototype;\n\n // Public\n _proto.refresh = function refresh() {\n var _this2 = this;\n var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;\n var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;\n this._offsets = [];\n this._targets = [];\n this._scrollHeight = this._getScrollHeight();\n var targets = [].slice.call(document.querySelectorAll(this._selector));\n targets.map(function (element) {\n var target;\n var targetSelector = Util.getSelectorFromElement(element);\n if (targetSelector) {\n target = document.querySelector(targetSelector);\n }\n if (target) {\n var targetBCR = target.getBoundingClientRect();\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [$(target)[offsetMethod]().top + offsetBase, targetSelector];\n }\n }\n return null;\n }).filter(function (item) {\n return item;\n }).sort(function (a, b) {\n return a[0] - b[0];\n }).forEach(function (item) {\n _this2._offsets.push(item[0]);\n _this2._targets.push(item[1]);\n });\n };\n _proto.dispose = function dispose() {\n $.removeData(this._element, DATA_KEY$8);\n $(this._scrollElement).off(EVENT_KEY$8);\n this._element = null;\n this._scrollElement = null;\n this._config = null;\n this._selector = null;\n this._offsets = null;\n this._targets = null;\n this._activeTarget = null;\n this._scrollHeight = null;\n } // Private\n ;\n _proto._getConfig = function _getConfig(config) {\n config = _objectSpread({}, Default$6, typeof config === 'object' && config ? config : {});\n if (typeof config.target !== 'string') {\n var id = $(config.target).attr('id');\n if (!id) {\n id = Util.getUID(NAME$8);\n $(config.target).attr('id', id);\n }\n config.target = \"#\" + id;\n }\n Util.typeCheckConfig(NAME$8, config, DefaultType$6);\n return config;\n };\n _proto._getScrollTop = function _getScrollTop() {\n return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n };\n _proto._getScrollHeight = function _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n };\n _proto._getOffsetHeight = function _getOffsetHeight() {\n return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n };\n _proto._process = function _process() {\n var scrollTop = this._getScrollTop() + this._config.offset;\n var scrollHeight = this._getScrollHeight();\n var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n if (this._scrollHeight !== scrollHeight) {\n this.refresh();\n }\n if (scrollTop >= maxScroll) {\n var target = this._targets[this._targets.length - 1];\n if (this._activeTarget !== target) {\n this._activate(target);\n }\n return;\n }\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null;\n this._clear();\n return;\n }\n var offsetLength = this._offsets.length;\n for (var i = offsetLength; i--;) {\n var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\n if (isActiveTarget) {\n this._activate(this._targets[i]);\n }\n }\n };\n _proto._activate = function _activate(target) {\n this._activeTarget = target;\n this._clear();\n var queries = this._selector.split(',').map(function (selector) {\n return selector + \"[data-target=\\\"\" + target + \"\\\"],\" + selector + \"[href=\\\"\" + target + \"\\\"]\";\n });\n var $link = $([].slice.call(document.querySelectorAll(queries.join(','))));\n if ($link.hasClass(ClassName$8.DROPDOWN_ITEM)) {\n $link.closest(Selector$8.DROPDOWN).find(Selector$8.DROPDOWN_TOGGLE).addClass(ClassName$8.ACTIVE);\n $link.addClass(ClassName$8.ACTIVE);\n } else {\n // Set triggered link as active\n $link.addClass(ClassName$8.ACTIVE); // Set triggered links parents as active\n // With both