diff --git a/401.html b/401.html new file mode 100644 index 0000000..51f5c58 --- /dev/null +++ b/401.html @@ -0,0 +1,145 @@ + + + + + + NFT Peeps - Webflow HTML website template + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
Pass
+
+
+
Incorrect password. Please try again.
+
+ + +
+
+
+
+ + +
+
+
Bored NFT Peeps
+
+
+
Bored NFT Peeps
+
+
+
Bored NFT Peeps
+
+
+
+ + + + + \ No newline at end of file diff --git a/404.html b/404.html new file mode 100644 index 0000000..27e0980 --- /dev/null +++ b/404.html @@ -0,0 +1,136 @@ + + + + + + NFT Peeps - Webflow HTML website template + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
404
+
+
Page Not Found
+
+

The page you are looking for doesn't exist or has been moved

+ Homepage +
+
+ + +
+
+
Bored NFT Peeps
+
+
+
Bored NFT Peeps
+
+
+
Bored NFT Peeps
+
+
+
+ + + + + \ No newline at end of file diff --git a/css/bored-fun-cloggss.webflow.css b/css/bored-fun-cloggss.webflow.css new file mode 100644 index 0000000..17c41d2 --- /dev/null +++ b/css/bored-fun-cloggss.webflow.css @@ -0,0 +1,3581 @@ +body { + font-family: 'Open Sans', sans-serif; + color: #404756; + font-size: 18px; + line-height: 140%; +} + +h1 { + margin-top: 0px; + margin-bottom: 0px; + font-family: Montserrat, sans-serif; + color: #222; + font-size: 6.75vw; + line-height: 90%; + font-weight: 800; +} + +h2 { + margin-top: 0px; + margin-bottom: 0px; + font-family: Montserrat, sans-serif; + color: #222; + font-size: 4.5vw; + line-height: 90%; + font-weight: 800; +} + +p { + margin-bottom: 0px; + line-height: 140%; +} + +.hero { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + min-height: 100vh; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.hero-container { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.hero-image-wrapper { + position: absolute; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 25vw; + min-width: 0px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-align-self: flex-end; + -ms-flex-item-align: end; + align-self: flex-end; +} + +.hero-image-wrapper.left { + left: 4.5vw; +} + +.hero-image-wrapper.right { + right: 4.5vw; +} + +.image { + width: 100%; + height: 100%; + max-width: 100%; + -o-object-fit: cover; + object-fit: cover; +} + +.image.rotate { + -webkit-transform: rotateX(0deg) rotateY(180deg) rotateZ(0deg); + transform: rotateX(0deg) rotateY(180deg) rotateZ(0deg); + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; +} + +.image.rotate.rotate-on-mobile { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; +} + +.image.power-law-content { + max-width: 40%; +} + +.hero-content { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.section-name { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + margin-bottom: 15px; + -webkit-box-pack: start; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.section-name.for-footer { + width: 100px; + margin-bottom: 0px; +} + +.section-name-text { + position: relative; + z-index: 1; + color: #222; + font-weight: 700; +} + +.heading-1 { + color: #31ffff; + line-height: 90%; + text-align: center; +} + +.hero-paragraph { + max-width: 490px; + margin-top: 30px; + margin-bottom: 30px; + text-align: center; +} + +.paragraph { + margin-top: 34px; +} + +.paragraph.for-faq { + max-width: 80%; + padding-bottom: 34px; +} + +.paragraph.pink { + color: #f7859c; + text-align: center; +} + +.paragraph.red { + margin-top: 8px; + color: red; +} + +.primary-button { + padding: 10px 28px; + border-radius: 12px; + background-color: #f7859c; + color: #fff; + font-weight: 700; +} + +.primary-button.utility { + margin-top: 32px; +} + +.page-wrapper { + overflow: hidden; +} + +.hero-blob { + position: absolute; + z-index: -2; + width: 44vw; + max-width: none; +} + +.hero-blob.blob-1 { + top: 1vw; + right: -8vw; +} + +.hero-blob.blob-2 { + top: -12.5vw; + right: -3vw; +} + +.hero-blob.blob-3 { + display: none; +} + +.section-blob { + position: absolute; + z-index: 0; + width: 34px; + -webkit-transform: translate(-40%, -20%); + -ms-transform: translate(-40%, -20%); + transform: translate(-40%, -20%); +} + +.pattern-1 { + position: absolute; + z-index: -1; + width: 17vw; + min-width: 0px; +} + +.pattern-1.hero-pattern-1 { + top: 0px; + right: 0px; + -webkit-transform: translate(30%, -100%); + -ms-transform: translate(30%, -100%); + transform: translate(30%, -100%); +} + +.pattern-1.hero-pattern-4 { + display: none; +} + +.pattern-1.roadmap-pattern { + top: 0px; + right: 0px; + -webkit-transform: translate(-60%, -90%); + -ms-transform: translate(-60%, -90%); + transform: translate(-60%, -90%); +} + +.pattern-1.for-footer { + left: 0px; + top: 0px; + z-index: 0; + -webkit-transform: translate(-58%, -25%) rotate(-80deg); + -ms-transform: translate(-58%, -25%) rotate(-80deg); + transform: translate(-58%, -25%) rotate(-80deg); +} + +.pattern-1.for-footer-2 { + display: none; +} + +.pattern-1.loader-pattern { + z-index: 1; + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); +} + +.pattern-1.loader-pattern.top { + top: 0px; + right: 0px; + z-index: 10; + -webkit-transform: translate(-50%, 50%) rotate(-44deg); + -ms-transform: translate(-50%, 50%) rotate(-44deg); + transform: translate(-50%, 50%) rotate(-44deg); +} + +.pattern-1.loader-pattern.bottom { + left: 0px; + bottom: 0px; + z-index: 10; + -webkit-transform: translate(-25%, 15%) rotate(-44deg); + -ms-transform: translate(-25%, 15%) rotate(-44deg); + transform: translate(-25%, 15%) rotate(-44deg); +} + +.pattern-2 { + position: absolute; + z-index: -1; + width: 17vw; +} + +.pattern-2.hero-pattern-2 { + left: 0px; + bottom: 0px; + -webkit-transform: translate(-64%, -10%); + -ms-transform: translate(-64%, -10%); + transform: translate(-64%, -10%); +} + +.pattern-2.hero-pattern-3 { + display: none; +} + +.pattern-2.roadmap-pattern-2 { + right: 0px; + min-width: 17vw; + -webkit-transform: translate(20%, 45%) rotate(-125deg); + -ms-transform: translate(20%, 45%) rotate(-125deg); + transform: translate(20%, 45%) rotate(-125deg); +} + +.pattern-2.for-faq { + left: 0px; + top: 0px; + -webkit-transform: translate(0px, -10%) rotate(34deg); + -ms-transform: translate(0px, -10%) rotate(34deg); + transform: translate(0px, -10%) rotate(34deg); +} + +.navbar { + position: fixed; + left: 0px; + top: 0px; + right: 0px; + display: block; + width: 100%; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + background-color: transparent; +} + +.logo-wrapper { + width: 69px; + padding-left: 0px; +} + +.navbar-inner { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + padding: 18px 4.5vw; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.link-wrapper { + position: relative; + margin-right: 15px; + margin-left: 15px; +} + +.nav-link { + padding: 0px; + font-weight: 600; +} + +.nav-link:visited { + color: #404756; +} + +.nav-link.w--current { + color: #404756; +} + +.nav-menu { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.navbar-button-wrapper { + margin-left: 15px; +} + +.hero-paragraph-and-btn { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.hero-images { + position: absolute; + z-index: -2; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + height: 100%; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: end; + -webkit-align-items: flex-end; + -ms-flex-align: end; + align-items: flex-end; +} + +.hero-mobile-text-and-btn { + display: none; +} + +.navbar-button-divider { + display: none; +} + +.section { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + padding-top: 120px; + padding-bottom: 120px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; +} + +.section.collection-section { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + margin-top: 5vw; + padding-bottom: 90px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.section.rarity-section { + position: relative; + display: block; + min-height: 100vh; + padding-top: 0px; + padding-bottom: 0px; +} + +.section.for-roadmap.for-template-page { + margin-top: 5vw; +} + +.section.for-team { + padding-top: 120px; + padding-bottom: 0px; +} + +.section.for-faq { + position: relative; + display: none; + padding-top: 100px; +} + +.section.for-template-page { + margin-top: 5vw; +} + +.wide-container { + width: 100%; + max-width: 1040px; + padding-right: 30px; + padding-left: 30px; + -webkit-align-self: center; + -ms-flex-item-align: center; + -ms-grid-row-align: center; + align-self: center; +} + +.wide-container.center { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.wide-container.relative { + position: relative; +} + +.section-title-container { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + text-align: center; +} + +.section-title-container.align-left { + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; + text-align: left; +} + +.collection-content { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.collection-info-container { + width: 100%; + max-width: 400px; +} + +.collection-info-item { + padding-top: 32px; + padding-bottom: 32px; + border-bottom: 1px solid rgba(64, 71, 86, 0.6); +} + +.collection-info-item.no-underline { + border-bottom-style: none; + border-bottom-width: 0px; +} + +.info-header-text { + font-family: Montserrat, sans-serif; + color: #222; + font-size: 24px; + line-height: 90%; + font-weight: 800; +} + +.collection-info-paragraph { + max-width: 340px; + margin-top: 14px; +} + +.collection-images { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + height: 620px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.collection-main { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + margin-top: 80px; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.collection-row { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.collection-row.first { + position: relative; + bottom: -120px; +} + +.collection-row.third { + position: relative; + top: -120px; +} + +.collection-image-wrapper { + width: 194px; + -webkit-transform: translate(0px, 0px); + -ms-transform: translate(0px, 0px); + transform: translate(0px, 0px); +} + +.collection-image-wrapper.left { + position: relative; + right: -80px; +} + +.collection-image-wrapper.center { + position: relative; + right: -40px; +} + +.collection-info-divider { + display: none; +} + +.desktop-rarity-top-wave { + position: static; + left: 0px; + top: 0px; + right: 0px; + z-index: 1; + width: 100%; +} + +.exclusive-content-inner { + position: relative; + display: block; + padding-top: 140px; + padding-bottom: 40px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + background-color: #fbf1e6; +} + +.exclusive-content-item { + display: none; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; +} + +.exclusive-content-item.returns-content { + display: block; +} + +.exclusive-content-item.item-2 { + display: block; +} + +.exclusive-divider { + width: 100vw; + height: 1px; + margin-top: 68px; + margin-bottom: 68px; + background-color: rgba(64, 71, 86, 0.6); +} + +.exclusive-item-inner { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; +} + +.exclusive-item-text-content { + max-width: 360px; +} + +.big-text { + font-family: Montserrat, sans-serif; + color: #222; + font-size: 36px; + line-height: 90%; + font-weight: 800; +} + +.big-text.pink { + color: #f7859c; +} + +.tier-container { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 200px; + margin-top: 28px; + margin-bottom: 28px; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.small-text { + font-family: Montserrat, sans-serif; + color: #222; + line-height: 90%; + font-weight: 700; +} + +.stars-container { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.star-image { + width: 17px; + margin-right: 5.5px; +} + +.exclusive-image-wrapper { + height: 505px; +} + +.absolute-wrapper { + position: absolute; + right: 0px; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.desktop-rarity-bottom-wave { + width: 100%; +} + +.mobile-rarity-top-wave { + display: none; +} + +.mobile-rarity-bottom-wave { + display: none; + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; +} + +.navbar-white-overlay { + position: absolute; + left: 0px; + top: 0px; + right: 0px; + bottom: 0px; + z-index: -1; + width: 100%; + height: 100%; + background-color: #fff; + opacity: 0; +} + +.roadmap-main { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: start; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.roadmap-main.for-licenses { + margin-bottom: 90px; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; +} + +.roadmap-item { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + margin-top: 380px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.roadmap-item.first { + margin-top: 220px; +} + +.roadmap-item.for-style-gudie { + margin-top: 120px; +} + +.roadmap-item.for-style-gudie.first { + margin-top: 68px; +} + +.roadmap-item.for-template-page { + margin-top: 170px; +} + +.roadmap { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.roadmap.for-style-guide { + height: 145px; + padding-left: 200px; + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; +} + +.roadmap-text-content { + max-width: 360px; +} + +.roadmap-text-content.for-style-guide { + max-width: 100%; +} + +.roadmap-text-content.for-template-page { + max-width: 300px; +} + +.roadmap-title-wrapper { + margin-top: 13px; + margin-bottom: 18px; +} + +.roadmap-blob { + position: absolute; + z-index: -1; + width: 530px; + max-width: none; + -webkit-transform: translate(0px, 2.5%); + -ms-transform: translate(0px, 2.5%); + transform: translate(0px, 2.5%); +} + +.roadmap-blob.for-template-page { + width: 420px; +} + +.roadmap-percentage { + position: absolute; + left: 0px; + top: 0px; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; +} + +.roadmap-small-blob { + width: 34px; + height: 36px; +} + +.roadmap-percentage-text { + font-family: Montserrat, sans-serif; + color: #f7859c; + line-height: 90%; + font-weight: 700; +} + +.blob-and-dotted-line { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + margin-top: -14px; + margin-right: 10px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: start; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.dotted-line { + width: 1px; + height: 560px; + border-right: 2px none #f7859c; +} + +.dotted-line.for-style-guide { + height: 240px; +} + +.roadmap-image-1 { + position: absolute; + right: 0px; + width: 195px; + min-width: 195px; + -webkit-transform: rotateX(0deg) rotateY(180deg) rotateZ(0deg); + transform: rotateX(0deg) rotateY(180deg) rotateZ(0deg); + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; +} + +.roadmap-image-2 { + position: absolute; + right: 0px; + width: 235px; + min-width: 235px; + -webkit-transform: rotateX(0deg) rotateY(180deg) rotateZ(0deg); + transform: rotateX(0deg) rotateY(180deg) rotateZ(0deg); + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; +} + +.roadmap-image-3 { + position: absolute; + right: 0px; + width: 297px; + min-width: 297px; + -webkit-transform: translate(0px, 0px); + -ms-transform: translate(0px, 0px); + transform: translate(0px, 0px); +} + +.desktop-team-top-wave { + width: 100%; +} + +.team-content-inner { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + padding-top: 140px; + padding-bottom: 120px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + background-color: #fddbe2; +} + +.team-members-grid { + display: -ms-grid; + display: grid; + margin-top: 48px; + grid-auto-columns: 1fr; + grid-column-gap: 16px; + grid-row-gap: 68px; + -ms-grid-columns: 1fr 1fr; + grid-template-columns: 1fr 1fr; + -ms-grid-rows: auto auto; + grid-template-rows: auto auto; +} + +.team-member { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.team-member-image { + position: relative; + bottom: -20px; + height: 290px; +} + +.team-member-image.rotate { + -webkit-transform: rotateX(0deg) rotateY(-180deg) rotateZ(0deg); + transform: rotateX(0deg) rotateY(-180deg) rotateZ(0deg); + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; +} + +.team-member-image-wrapper { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: end; + -webkit-justify-content: flex-end; + -ms-flex-pack: end; + justify-content: flex-end; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.ellipse { + width: 315px; +} + +.job-text-wrapper { + margin-top: 28px; + margin-bottom: 10px; +} + +.desktop-team-bottom-wave { + position: relative; + top: -1px; + -webkit-transform: rotateX(0deg) rotateY(180deg) rotateZ(180deg); + transform: rotateX(0deg) rotateY(180deg) rotateZ(180deg); + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; +} + +.mobile-team-top-wave { + display: none; +} + +.mobile-team-bottom-wave { + display: none; + width: 100%; + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; +} + +.frequent-questions-main { + width: 100%; + margin-top: 68px; +} + +.faq { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; + border-bottom: 1px solid rgba(64, 71, 86, 0.6); +} + +.faq.first { + border-top: 1px solid rgba(64, 71, 86, 0.6); +} + +.faq-header { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + padding-top: 34px; + padding-bottom: 34px; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + cursor: pointer; +} + +.faq-question { + font-family: Montserrat, sans-serif; + color: #222; + font-size: 24px; + line-height: 90%; + font-weight: 500; +} + +.plus-container { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 17px; + height: 17px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.plus-vertical-line { + position: absolute; + width: 3px; + height: 17px; + background-color: #404756; +} + +.plus-horizontal-line { + position: absolute; + width: 17px; + height: 3px; + background-color: #404756; +} + +.faq-answer-container { + overflow: hidden; + width: 100%; +} + +.desktop-footer-wave { + width: 100%; +} + +.footer-inner { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + padding-top: 100px; + padding-bottom: 24px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: start; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + background-color: #d3d4ed; +} + +.footer-container { + position: relative; + z-index: 1; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; +} + +.footer-header-container { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: end; + -webkit-align-items: flex-end; + -ms-flex-align: end; + align-items: flex-end; +} + +.footer-top-divider { + width: 100%; + height: 1px; + margin-top: 16px; + background-color: rgba(64, 71, 86, 0.6); +} + +.footer-top-divider.for-mobile { + display: none; +} + +.socials { + display: none; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + grid-auto-columns: 1fr; + grid-column-gap: 42px; + grid-row-gap: 0px; + -ms-grid-columns: auto auto auto auto; + grid-template-columns: auto auto auto auto; + -ms-grid-rows: auto; + grid-template-rows: auto; +} + +.footer-link { + position: relative; + margin-top: 12px; + margin-right: 0px; + color: #404756; + text-decoration: none; +} + +.footer-link.navigation-link { + margin-right: 0px; +} + +.footer-link-text { + font-weight: 600; + white-space: nowrap; +} + +.footer-main-links { + display: none; + width: 100%; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; +} + +.navigation-links { + display: -ms-grid; + display: grid; + width: 100px; + grid-auto-columns: 1fr; + grid-column-gap: 0px; + grid-row-gap: 0px; + -ms-grid-columns: 1fr; + grid-template-columns: 1fr; + -ms-grid-rows: auto auto auto auto; + grid-template-rows: auto auto auto auto; +} + +.footer-bottom-divider { + width: 100%; + height: 1px; + margin-top: 56px; + background-color: rgba(64, 71, 86, 0.6); +} + +.copyright-links { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.copyright-text { + margin-top: 12px; + margin-right: 78px; + font-size: 14px; +} + +.bold-link { + color: #404756; + font-weight: 700; + text-decoration: none; +} + +.bold-link.underline { + text-decoration: underline; +} + +.footer-heading { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.footer-heading.for-mobile { + display: none; +} + +.footer-blob-image { + position: absolute; + z-index: -1; + display: none; + width: 75px; +} + +.mobile-footer-image { + display: none; +} + +.loader { + position: fixed; + left: 0px; + top: 0px; + right: 0px; + bottom: 0px; + z-index: 9999; + display: none; + overflow: hidden; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.loader-inner { + position: absolute; + left: 0px; + top: 0px; + right: 0px; + bottom: 0px; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + height: 100%; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + background-color: #fbf1e6; +} + +.loader-inner.first { + z-index: 1; + opacity: 1; +} + +.loader-inner.second { + z-index: 2; + background-color: #fddbe2; + opacity: 0; +} + +.loader-inner.third { + z-index: 3; + background-color: #d3d4ed; + opacity: 0; +} + +.huge-text { + font-family: Montserrat, sans-serif; + color: #ff8961; + font-size: 10.25vw; + line-height: 100%; + font-weight: 800; + text-align: center; +} + +.huge-text.pink { + color: #f7859c; +} + +.huge-text.purple { + color: #9093d1; +} + +.inner-dotted-line { + height: 100%; + border-right: 2px dashed #f7859c; +} + +.link-blob { + position: absolute; + left: -6px; + top: -2px; + z-index: -1; + width: 16px; + -webkit-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); +} + +.utility-section { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + min-height: 100vh; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.utility-section.overflow-hidden { + overflow: hidden; +} + +.utility-container { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + max-width: 400px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.utility-text-wrapper { + width: 100%; + margin-top: 24px; + margin-bottom: 12px; + text-align: center; +} + +.utility-text-wrapper.bigger { + margin-top: 6px; + margin-bottom: 18px; +} + +.utility-blob { + position: absolute; + z-index: -1; + width: 650px; + max-width: none; +} + +.field-label { + display: none; +} + +.text-field { + margin-bottom: 0px; + padding-top: 22px; + padding-bottom: 22px; + border-style: solid; + border-width: 1px; + border-color: #ff8961; + border-radius: 12px; + background-color: transparent; + color: #ff8961; +} + +.text-field:focus { + border-style: solid; + border-color: #ff8961; +} + +.text-field::-webkit-input-placeholder { + color: rgba(255, 137, 97, 0.6); +} + +.text-field:-ms-input-placeholder { + color: rgba(255, 137, 97, 0.6); +} + +.text-field::-ms-input-placeholder { + color: rgba(255, 137, 97, 0.6); +} + +.text-field::placeholder { + color: rgba(255, 137, 97, 0.6); +} + +.secondary-button { + padding: 10px 28px; + border-radius: 12px; + background-color: #ff8961; + color: #fff; + font-weight: 700; +} + +.error-message { + margin-top: 0px; + padding: 0px; + background-color: transparent; +} + +.image-2 { + margin-top: 44px; +} + +@media screen and (min-width: 1280px) { + .pattern-1.roadmap-pattern.smaller { + width: 17vw; + } + + .pattern-2.roadmap-pattern-2 { + -webkit-transform: translate(40%, 45%) rotate(-125deg); + -ms-transform: translate(40%, 45%) rotate(-125deg); + transform: translate(40%, 45%) rotate(-125deg); + } + + .pattern-2.for-faq { + -webkit-transform: translate(-35%, -10%) rotate(34deg); + -ms-transform: translate(-35%, -10%) rotate(34deg); + transform: translate(-35%, -10%) rotate(34deg); + } + + .roadmap-image-1 { + -webkit-transform: translate(20%, 0px) rotateX(0deg) rotateY(180deg) rotateZ(0deg); + transform: translate(20%, 0px) rotateX(0deg) rotateY(180deg) rotateZ(0deg); + } + + .roadmap-image-2 { + -webkit-transform: translate(20%, 0px) rotateX(0deg) rotateY(180deg) rotateZ(0deg); + transform: translate(20%, 0px) rotateX(0deg) rotateY(180deg) rotateZ(0deg); + } + + .roadmap-image-3 { + -webkit-transform: translate(30%, 0px) translate(0px, 0px); + -ms-transform: translate(30%, 0px) translate(0px, 0px); + transform: translate(30%, 0px) translate(0px, 0px); + } +} + +@media screen and (min-width: 1440px) { + .paragraph.for-faq { + max-width: 800px; + } + + .pattern-1.roadmap-pattern.smaller { + width: 14vw; + -webkit-transform: translate(-65%, -90%); + -ms-transform: translate(-65%, -90%); + transform: translate(-65%, -90%); + } + + .pattern-1.for-footer { + left: 13vw; + } + + .pattern-2.for-faq { + left: 12vw; + -webkit-transform: translate(-35%, -15%) rotate(34deg); + -ms-transform: translate(-35%, -15%) rotate(34deg); + transform: translate(-35%, -15%) rotate(34deg); + } + + .wide-container { + max-width: 100%; + padding-right: 16vw; + padding-left: 16vw; + } + + .collection-images { + height: 45vw; + } + + .collection-main { + position: relative; + margin-top: 5.8vw; + } + + .collection-row.first { + bottom: -8.5vw; + } + + .collection-row.third { + top: -8.5vw; + } + + .collection-image-wrapper { + width: 14vw; + } + + .collection-image-wrapper.left { + right: -5vw; + } + + .collection-image-wrapper.center { + right: -2.5vw; + } + + .team-members-grid { + grid-column-gap: 48px; + } + + .team-member-image { + bottom: -1.4vw; + height: 20vw; + } + + .ellipse { + width: 23vw; + } +} + +@media screen and (min-width: 1920px) { + .section-name { + margin-bottom: 0.75vw; + } + + .section-name.for-footer { + width: 5.25vw; + } + + .section-name-text { + font-size: 0.95vw; + } + + .hero-paragraph { + max-width: 26vw; + margin-top: 1.5vw; + margin-bottom: 1.5vw; + } + + .paragraph { + font-size: 0.95vw; + } + + .paragraph.for-faq { + max-width: 44vw; + padding-bottom: 1.8vw; + } + + .primary-button { + padding: 0.55vw 1.55vw; + font-size: 0.95vw; + } + + .section-blob { + width: 1.7vw; + } + + .pattern-1.roadmap-pattern.smaller { + width: 13vw; + -webkit-transform: translate(-75%, -90%); + -ms-transform: translate(-75%, -90%); + transform: translate(-75%, -90%); + } + + .pattern-1.for-footer { + left: 15vw; + } + + .pattern-2.for-faq { + -webkit-transform: translate(-18%, -30%) rotate(34deg); + -ms-transform: translate(-18%, -30%) rotate(34deg); + transform: translate(-18%, -30%) rotate(34deg); + } + + .logo-wrapper { + width: 3.6vw; + } + + .navbar-inner { + padding-top: 1vw; + padding-bottom: 1vw; + } + + .link-wrapper { + margin-right: 0.75vw; + margin-left: 0.75vw; + } + + .nav-link { + font-size: 0.95vw; + } + + .navbar-button-wrapper { + margin-left: 0.75vw; + } + + .section { + padding-top: 14vh; + padding-bottom: 14vh; + } + + .section.collection-section { + padding-top: 14vh; + padding-bottom: 12vh; + } + + .section.for-faq { + padding-top: 12vh; + } + + .wide-container { + max-width: none; + padding-right: 18vw; + padding-left: 18vw; + } + + .heading-2 { + font-size: 4vw; + } + + .collection-info-container { + max-width: 20vw; + } + + .collection-info-item { + padding-top: 2vw; + padding-bottom: 2vw; + } + + .info-header-text { + font-size: 1.33vw; + } + + .collection-info-paragraph { + max-width: 18vw; + margin-top: 0.8vw; + } + + .collection-images { + height: 38vw; + } + + .collection-image-wrapper { + width: 12.5vw; + } + + .exclusive-content-inner { + padding-top: 18vh; + padding-bottom: 6vh; + } + + .exclusive-divider { + margin-top: 3.75vw; + margin-bottom: 3.75vw; + } + + .exclusive-item-text-content { + max-width: 18vw; + } + + .big-text { + font-size: 2vw; + } + + .tier-container { + width: 11vw; + margin-top: 1.5vw; + margin-bottom: 1.5vw; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + } + + .small-text { + font-size: 0.95vw; + } + + .star-image { + width: 0.9vw; + margin-right: 0.3vw; + } + + .exclusive-image-wrapper { + height: 28vw; + } + + .roadmap-main.for-licenses { + margin-bottom: 9vh; + } + + .roadmap-item { + margin-top: 21vw; + } + + .roadmap-item.first { + margin-top: 12vw; + } + + .roadmap-item.for-style-gudie { + margin-top: 6.5vw; + } + + .roadmap-item.for-style-gudie.first { + margin-top: 3.75vw; + } + + .roadmap-item.for-template-page { + margin-top: 10vw; + } + + .roadmap.for-style-guide { + height: 10vw; + padding-left: 11vw; + } + + .roadmap-text-content { + max-width: 18.5vw; + } + + .roadmap-text-content.for-template-page { + max-width: 15vw; + } + + .roadmap-title-wrapper { + margin-top: 0.72vw; + margin-bottom: 1vw; + } + + .roadmap-blob { + width: 29.4vw; + } + + .roadmap-blob.for-template-page { + width: 23vw; + } + + .roadmap-small-blob { + width: 1.7vw; + height: auto; + } + + .roadmap-percentage-text { + font-size: 0.95vw; + } + + .blob-and-dotted-line { + margin-top: -0.66vw; + margin-right: 0.55vw; + } + + .dotted-line { + height: 31vw; + } + + .dotted-line.for-style-guide { + height: 15vw; + } + + .roadmap-image-1 { + width: 12.5vw; + min-width: 12.5vw; + } + + .roadmap-image-2 { + width: 15.5vw; + min-width: 15.5vw; + } + + .roadmap-image-3 { + width: 19vw; + min-width: 19vw; + } + + .team-content-inner { + padding-top: 16vh; + padding-bottom: 14vh; + } + + .team-members-grid { + margin-top: 3.75vw; + grid-column-gap: 2.65vw; + grid-row-gap: 3.75vw; + } + + .job-text-wrapper { + margin-top: 1.5vw; + margin-bottom: 0.55vw; + } + + .frequent-questions-main { + margin-top: 3.75vw; + } + + .faq-header { + padding-top: 1.8vw; + padding-bottom: 1.8vw; + } + + .faq-question { + font-size: 1.3vw; + } + + .plus-container { + width: 0.9vw; + height: 0.9vw; + } + + .plus-vertical-line { + height: 0.9vw; + } + + .plus-horizontal-line { + width: 0.9vw; + } + + .footer-inner { + padding-top: 12vh; + padding-bottom: 2.5vh; + } + + .footer-top-divider { + margin-top: 0.8vw; + } + + .socials { + grid-column-gap: 2.25vw; + } + + .footer-link { + margin-top: 0.8vw; + } + + .footer-link-text { + font-size: 0.95vw; + } + + .navigation-links { + width: 5.25vw; + } + + .footer-bottom-divider { + margin-top: 3vw; + } + + .copyright-text { + margin-top: 0.8vw; + margin-right: 4.25vw; + font-size: 0.74vw; + } + + .link-blob { + left: -0.3vw; + top: -0.1vw; + width: 0.8vw; + } + + .utility-container { + max-width: 22vw; + } + + .utility-text-wrapper { + margin-top: 1.3vw; + margin-bottom: 0.62vw; + } + + .utility-text-wrapper.bigger { + margin-top: 0vw; + margin-bottom: 0.95vw; + } + + .utility-blob { + width: 35vw; + } + + .utility-blob.bigger { + width: 45vw; + } + + .text-field { + padding: 1.2vw 0.75vw; + font-size: 0.95vw; + } + + .secondary-button { + padding: 0.55vw 1.55vw; + font-size: 0.95vw; + } +} + +@media screen and (max-width: 991px) { + .hero { + min-height: auto; + margin-bottom: 40px; + } + + .hero-container { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: start; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + } + + .hero-image-wrapper.left { + position: relative; + left: 0vw; + width: 35vw; + } + + .hero-image-wrapper.right { + position: relative; + top: 10vw; + right: 0vw; + width: 35vw; + } + + .image.rotate { + -webkit-transform: none; + -ms-transform: none; + transform: none; + } + + .image.rotate.rotate-on-mobile { + -webkit-transform: rotateX(0deg) rotateY(180deg) rotateZ(0deg); + transform: rotateX(0deg) rotateY(180deg) rotateZ(0deg); + } + + .hero-content { + margin-top: 160px; + } + + .section-name { + margin-bottom: 14px; + } + + .heading-1 { + font-size: 12vw; + } + + .hero-paragraph { + margin-top: 0px; + margin-bottom: 24px; + } + + .hero-blob.blob-1 { + top: 4vw; + right: -10vw; + width: 60vw; + } + + .hero-blob.blob-2 { + display: none; + } + + .hero-blob.blob-3 { + left: -12vw; + top: 6vw; + display: block; + width: 60vw; + } + + .pattern-1.hero-pattern-1 { + display: none; + } + + .pattern-1.hero-pattern-4 { + left: 0px; + top: 0px; + display: block; + width: 24vw; + -webkit-transform: translate(-40%, -40%); + -ms-transform: translate(-40%, -40%); + transform: translate(-40%, -40%); + } + + .pattern-1.roadmap-pattern.smaller { + width: 24vw; + } + + .pattern-1.for-footer { + width: 24vw; + -webkit-transform: translate(-50%, -25%) rotate(-80deg); + -ms-transform: translate(-50%, -25%) rotate(-80deg); + transform: translate(-50%, -25%) rotate(-80deg); + } + + .pattern-1.loader-pattern.top { + width: 24vw; + -webkit-transform: translate(-25%, 50%) rotate(-44deg); + -ms-transform: translate(-25%, 50%) rotate(-44deg); + transform: translate(-25%, 50%) rotate(-44deg); + } + + .pattern-1.loader-pattern.bottom { + width: 24vw; + } + + .pattern-2.hero-pattern-2 { + display: none; + } + + .pattern-2.hero-pattern-3 { + top: 0px; + display: block; + width: 24vw; + -webkit-transform: translate(-20%, -130%) rotate(50deg); + -ms-transform: translate(-20%, -130%) rotate(50deg); + transform: translate(-20%, -130%) rotate(50deg); + } + + .pattern-2.for-faq { + width: 22vw; + -webkit-transform: translate(-20%, -60%) rotate(63deg); + -ms-transform: translate(-20%, -60%) rotate(63deg); + transform: translate(-20%, -60%) rotate(63deg); + } + + .logo-wrapper { + z-index: 999; + } + + .navbar-inner { + padding: 15px 30px; + } + + .link-wrapper { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + margin-right: 0px; + margin-bottom: 18px; + margin-left: 0px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + } + + .nav-link { + padding: 6px; + font-size: 20px; + } + + .nav-menu { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + background-color: #fff; + } + + .navbar-button-wrapper { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + margin-top: 30px; + margin-left: 0px; + padding-bottom: 38px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + } + + .hero-paragraph-and-btn { + display: none; + } + + .hero-images { + position: static; + width: 100%; + height: auto; + margin-top: 24px; + padding-right: 30px; + padding-left: 30px; + } + + .hero-mobile-text-and-btn { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + margin-top: 21vw; + padding-right: 30px; + padding-left: 30px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + } + + .menu-button { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 32px; + height: 30px; + padding: 0px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + } + + .menu-button.w--open { + z-index: 999; + background-color: transparent; + } + + .open-menu-icon { + position: absolute; + left: 0px; + top: 0px; + right: 0px; + bottom: 0px; + width: 100%; + opacity: 1; + } + + .navbar-button-divider { + display: block; + width: 60%; + height: 1px; + margin-bottom: 38px; + padding-right: 0px; + padding-bottom: 0px; + background-color: #404756; + } + + .close-menu-icon { + opacity: 0; + } + + .section.collection-section { + margin-top: 0vw; + padding-bottom: 80px; + } + + .section.for-roadmap { + padding-top: 100px; + padding-bottom: 100px; + } + + .section.for-roadmap.for-template-page { + margin-top: 0vw; + } + + .section.for-template-page { + margin-top: 0vw; + } + + .section-title-container.for-collection { + max-width: 65vw; + } + + .heading-2 { + font-size: 8vw; + line-height: 100%; + } + + .collection-content { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + } + + .collection-info-container { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + max-width: 600px; + margin-top: 24px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + } + + .collection-info-item { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + padding-top: 24px; + padding-bottom: 24px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + border-bottom-style: none; + text-align: center; + } + + .collection-info-paragraph { + max-width: 500px; + } + + .collection-images { + position: relative; + left: -7vw; + height: 79vw; + } + + .collection-main { + margin-top: 42px; + -webkit-box-orient: vertical; + -webkit-box-direction: reverse; + -webkit-flex-direction: column-reverse; + -ms-flex-direction: column-reverse; + flex-direction: column-reverse; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + } + + .collection-row.first { + bottom: -20vw; + } + + .collection-row.third { + top: -20vw; + } + + .collection-image-wrapper { + width: 27vw; + } + + .collection-image-wrapper.left { + right: -14vw; + } + + .collection-image-wrapper.center { + right: -7vw; + } + + .collection-info-divider { + display: block; + width: 64px; + height: 1px; + margin-bottom: 48px; + padding-right: 0px; + padding-bottom: 0px; + background-color: rgba(64, 71, 86, 0.6); + } + + .exclusive-content-inner { + padding-top: 120px; + padding-bottom: 20px; + } + + .mobile-rarity-top-wave { + display: none; + } + + .roadmap-main.for-licenses { + margin-bottom: 70px; + } + + .roadmap-item { + margin-top: 320px; + } + + .roadmap-item.first { + margin-top: 180px; + } + + .roadmap-item.for-style-gudie { + margin-top: 80px; + } + + .roadmap-item.for-template-page { + margin-top: 130px; + } + + .roadmap.for-style-guide { + padding-left: 44px; + } + + .roadmap-text-content.for-template-page { + width: 100%; + max-width: 260px; + } + + .roadmap-blob { + width: 480px; + -webkit-transform: translate(-5%, 3%); + -ms-transform: translate(-5%, 3%); + transform: translate(-5%, 3%); + } + + .roadmap-blob.for-template-page { + width: 360px; + } + + .dotted-line { + height: 500px; + } + + .dotted-line.for-style-guide { + height: 200px; + } + + .roadmap-image-1 { + width: 20vw; + min-width: 20vw; + } + + .roadmap-image-2 { + width: 24vw; + min-width: 24vw; + } + + .roadmap-image-3 { + width: 30vw; + min-width: 30vw; + } + + .team-content-inner { + padding-top: 120px; + } + + .huge-text { + font-size: 16vw; + } +} + +@media screen and (max-width: 767px) { + .image.rotate.rotate-on-mobile.exclusive-content { + -o-object-fit: scale-down; + object-fit: scale-down; + } + + .hero-content { + margin-top: 120px; + } + + .section-name.for-footer { + display: none; + } + + .paragraph.for-faq { + max-width: 94%; + padding-bottom: 24px; + } + + .primary-button.utility { + margin-top: 20px; + } + + .pattern-1.hero-pattern-4 { + width: 28vw; + -webkit-transform: translate(-48%, -42%); + -ms-transform: translate(-48%, -42%); + transform: translate(-48%, -42%); + } + + .pattern-1.roadmap-pattern.smaller { + display: none; + } + + .pattern-1.for-footer { + display: none; + } + + .pattern-1.for-footer-2 { + top: 50%; + right: 0px; + display: block; + width: 28vw; + -webkit-transform: translate(50%, -80%) rotate(143deg); + -ms-transform: translate(50%, -80%) rotate(143deg); + transform: translate(50%, -80%) rotate(143deg); + } + + .pattern-1.loader-pattern.top { + -webkit-transform: translate(-25%, -25%) rotate(-44deg); + -ms-transform: translate(-25%, -25%) rotate(-44deg); + transform: translate(-25%, -25%) rotate(-44deg); + } + + .pattern-2.hero-pattern-3 { + width: 28vw; + } + + .pattern-2.roadmap-pattern-2 { + display: none; + width: 32vw; + -webkit-transform: translate(35%, -95%) rotate(-40deg); + -ms-transform: translate(35%, -95%) rotate(-40deg); + transform: translate(35%, -95%) rotate(-40deg); + } + + .pattern-2.for-faq { + width: 26vw; + } + + .navbar-inner { + padding-right: 24px; + padding-left: 24px; + } + + .link-wrapper { + margin-bottom: 12px; + } + + .nav-link { + font-size: 18px; + } + + .navbar-button-wrapper { + margin-top: 24px; + padding-bottom: 34px; + } + + .hero-images { + padding-right: 24px; + padding-left: 24px; + } + + .hero-mobile-text-and-btn { + padding-right: 24px; + padding-left: 24px; + } + + .navbar-button-divider { + margin-bottom: 34px; + } + + .close-menu-icon { + position: absolute; + left: 0px; + top: 0px; + right: 0px; + bottom: 0px; + width: 100%; + height: 100%; + opacity: 0; + } + + .section { + padding-top: 100px; + padding-bottom: 100px; + } + + .section.collection-section { + padding-bottom: 60px; + } + + .section.for-roadmap { + padding-top: 90px; + padding-bottom: 100px; + } + + .section.for-template-page { + padding-top: 90px; + } + + .wide-container { + padding-right: 24px; + padding-left: 24px; + } + + .heading-2 { + font-size: 9vw; + } + + .collection-images { + height: 97vw; + } + + .collection-image-wrapper { + width: 31vw; + } + + .collection-info-divider { + width: 54px; + } + + .desktop-rarity-top-wave { + display: none; + } + + .exclusive-content-inner { + padding-top: 40px; + padding-bottom: 10px; + } + + .exclusive-divider { + margin-top: 48px; + margin-bottom: 48px; + } + + .exclusive-item-inner { + position: relative; + min-height: 505px; + } + + .exclusive-image-wrapper { + position: absolute; + right: 0px; + -webkit-transform: translate(50%, 0px); + -ms-transform: translate(50%, 0px); + transform: translate(50%, 0px); + } + + .absolute-wrapper { + display: none; + } + + .desktop-rarity-bottom-wave { + display: none; + } + + .mobile-rarity-top-wave { + display: block; + width: 100%; + } + + .mobile-rarity-bottom-wave { + display: block; + width: 100%; + -webkit-transform: rotateX(0deg) rotateY(180deg) rotateZ(180deg); + transform: rotateX(0deg) rotateY(180deg) rotateZ(180deg); + } + + .roadmap-main.for-licenses { + margin-bottom: 70px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + } + + .roadmap-item { + margin-top: 280px; + } + + .roadmap-item.first { + margin-top: 150px; + } + + .roadmap-item.for-style-gudie.first { + margin-top: 48px; + } + + .roadmap-item.for-template-page { + margin-top: 210px; + text-align: center; + } + + .roadmap-item.for-template-page.first { + margin-top: 120px; + } + + .roadmap { + padding-left: 20vw; + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; + } + + .roadmap.for-template-page { + padding-left: 0vw; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + } + + .roadmap-text-content.for-template-page { + max-width: 300px; + } + + .roadmap-blob { + -webkit-transform: translate(-17%, 3%); + -ms-transform: translate(-17%, 3%); + transform: translate(-17%, 3%); + } + + .roadmap-blob.for-template-page { + -webkit-transform: translate(0%, 3%); + -ms-transform: translate(0%, 3%); + transform: translate(0%, 3%); + } + + .dotted-line { + height: 460px; + } + + .roadmap-image-1 { + display: none; + } + + .roadmap-image-2 { + display: none; + } + + .roadmap-image-3 { + display: none; + } + + .desktop-team-top-wave { + display: none; + } + + .team-content-inner { + padding-top: 40px; + padding-bottom: 50px; + } + + .team-members-grid { + margin-top: 28px; + grid-row-gap: 48px; + -ms-grid-columns: 1fr 1fr; + grid-template-columns: 1fr 1fr; + -ms-grid-rows: auto auto auto; + grid-template-rows: auto auto auto; + } + + .ellipse { + width: 290px; + } + + .desktop-team-bottom-wave { + display: none; + } + + .mobile-team-top-wave { + display: block; + width: 100%; + } + + .mobile-team-bottom-wave { + position: relative; + top: -1px; + display: block; + -webkit-transform: rotateX(180deg) rotateY(0deg) rotateZ(0deg); + transform: rotateX(180deg) rotateY(0deg) rotateZ(0deg); + } + + .frequent-questions-main { + margin-top: 48px; + } + + .faq-header { + padding-top: 24px; + padding-bottom: 24px; + } + + .faq-question { + width: 90%; + font-size: 22px; + line-height: 140%; + } + + .plus-container { + width: 16px; + height: 16px; + } + + .plus-vertical-line { + width: 2px; + height: 16px; + } + + .plus-horizontal-line { + width: 16px; + height: 2px; + } + + .desktop-footer-wave { + display: none; + } + + .footer-inner { + padding-top: 80px; + } + + .footer-top-divider.for-mobile { + display: block; + } + + .socials { + grid-column-gap: 0px; + -ms-grid-columns: 42vw auto; + grid-template-columns: 42vw auto; + -ms-grid-rows: auto auto; + grid-template-rows: auto auto; + } + + .footer-main-links { + position: relative; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + } + + .navigation-links { + -ms-grid-columns: 42vw 1fr; + grid-template-columns: 42vw 1fr; + -ms-grid-rows: auto auto; + grid-template-rows: auto auto; + } + + .footer-bottom-divider { + margin-top: 100px; + } + + .copyright-text { + width: 42vw; + margin-right: 0px; + } + + .footer-heading.for-mobile { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + margin-top: 120px; + -webkit-box-pack: start; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; + } + + .footer-blob-image { + display: block; + width: 12vw; + -webkit-transform: translate(-60%, -10%); + -ms-transform: translate(-60%, -10%); + transform: translate(-60%, -10%); + } + + .mobile-footer-image { + display: block; + width: 100%; + } + + .huge-text { + font-size: 11vw; + } + + .utility-container { + width: 100%; + } + + .utility-container.for-password { + max-width: 320px; + } + + .utility-text-wrapper { + margin-top: 14px; + margin-bottom: 6px; + } + + .utility-blob { + width: 560px; + } +} + +@media screen and (max-width: 479px) { + .hero { + margin-bottom: 20px; + } + + .hero-image-wrapper.left { + width: 38vw; + } + + .hero-image-wrapper.right { + width: 38vw; + } + + .image { + margin-top: 35px; + } + + .image.power-law-content { + position: relative; + max-width: 100%; + } + + .hero-content { + margin-top: 110px; + } + + .section-name { + margin-bottom: 10px; + } + + .section-name-text { + font-size: 16px; + } + + .heading-1 { + font-size: 15vw; + } + + .hero-paragraph { + margin-bottom: 16px; + } + + .paragraph.for-faq { + padding-bottom: 16px; + } + + .primary-button { + text-align: center; + } + + .hero-blob.blob-1 { + right: -11vw; + width: 66vw; + } + + .hero-blob.blob-3 { + left: -13vw; + width: 66vw; + } + + .section-blob { + width: 32px; + } + + .pattern-1.hero-pattern-4 { + width: 34vw; + -webkit-transform: translate(-50%, -40%); + -ms-transform: translate(-50%, -40%); + transform: translate(-50%, -40%); + } + + .pattern-1.for-footer-2 { + width: 44vw; + -webkit-transform: translate(43%, -80%) rotate(143deg); + -ms-transform: translate(43%, -80%) rotate(143deg); + transform: translate(43%, -80%) rotate(143deg); + } + + .pattern-1.loader-pattern.top { + width: 32vw; + -webkit-transform: translate(-25%, 50%) rotate(-44deg); + -ms-transform: translate(-25%, 50%) rotate(-44deg); + transform: translate(-25%, 50%) rotate(-44deg); + } + + .pattern-1.loader-pattern.bottom { + width: 32vw; + } + + .pattern-2.hero-pattern-3 { + width: 34vw; + -webkit-transform: translate(-23%, -130%) rotate(50deg); + -ms-transform: translate(-23%, -130%) rotate(50deg); + transform: translate(-23%, -130%) rotate(50deg); + } + + .pattern-2.for-faq { + width: 38vw; + } + + .logo-wrapper { + width: 54px; + } + + .navbar-inner { + padding: 12px 16px; + } + + .hero-images { + padding-right: 16px; + padding-left: 16px; + } + + .hero-mobile-text-and-btn { + margin-top: 23vw; + padding-right: 16px; + padding-left: 16px; + } + + .menu-button { + width: 30px; + height: 28px; + } + + .section { + padding-top: 80px; + padding-bottom: 80px; + } + + .section.collection-section { + padding-bottom: 60px; + } + + .section.rarity-section { + display: block; + } + + .section.for-roadmap { + padding-top: 80px; + padding-bottom: 70px; + } + + .section.for-faq { + padding-top: 80px; + } + + .section.for-template-page { + padding-top: 80px; + } + + .wide-container { + padding-right: 16px; + padding-left: 16px; + } + + .section-title-container.for-collection { + max-width: 80vw; + } + + .heading-2 { + font-size: 11vw; + } + + .collection-info-container { + margin-top: 16px; + } + + .collection-info-item { + padding-top: 16px; + padding-bottom: 16px; + } + + .collection-main { + margin-top: 28px; + } + + .collection-info-divider { + width: 48px; + margin-bottom: 32px; + } + + .exclusive-content-inner { + padding-top: 40px; + } + + .exclusive-content-item { + display: none; + } + + .exclusive-item-inner { + min-height: 320px; + } + + .exclusive-item-text-content { + max-width: 100%; + padding-right: 0vw; + } + + .big-text { + font-size: 28px; + } + + .tier-container { + margin-top: 18px; + margin-bottom: 18px; + } + + .exclusive-image-wrapper { + height: 316px; + -webkit-transform: translate(60%, 0px); + -ms-transform: translate(60%, 0px); + transform: translate(60%, 0px); + } + + .mobile-rarity-top-wave { + display: block; + } + + .roadmap-main { + position: relative; + } + + .roadmap-main.for-licenses { + margin-bottom: 40px; + } + + .roadmap-item { + margin-top: 240px; + } + + .roadmap-item.first { + margin-top: 120px; + } + + .roadmap-item.for-template-page { + margin-top: 120px; + } + + .roadmap-item.for-template-page.first { + margin-top: 70px; + } + + .roadmap { + height: 240px; + padding-left: 40px; + -webkit-box-orient: vertical; + -webkit-box-direction: reverse; + -webkit-flex-direction: column-reverse; + -ms-flex-direction: column-reverse; + flex-direction: column-reverse; + } + + .roadmap.for-style-guide { + height: 140px; + -webkit-box-pack: end; + -webkit-justify-content: flex-end; + -ms-flex-pack: end; + justify-content: flex-end; + } + + .roadmap-text-content { + margin-top: 10px; + } + + .roadmap-title-wrapper { + margin-top: 14px; + margin-bottom: 15px; + } + + .roadmap-blob { + display: block; + -webkit-transform: translate(-17%, 4.5%); + -ms-transform: translate(-17%, 4.5%); + transform: translate(-17%, 4.5%); + } + + .roadmap-percentage { + position: relative; + left: -44px; + } + + .dotted-line { + position: absolute; + top: 16px; + height: 460px; + } + + .dotted-line.for-style-guide { + height: 200px; + } + + .team-content-inner { + padding-top: 40px; + padding-bottom: 35px; + } + + .team-members-grid { + -ms-grid-columns: 1fr; + grid-template-columns: 1fr; + -ms-grid-rows: auto auto auto auto auto auto; + grid-template-rows: auto auto auto auto auto auto; + } + + .faq-header { + padding-top: 16px; + padding-bottom: 16px; + } + + .faq-question { + font-size: 20px; + } + + .footer-inner { + padding-top: 60px; + } + + .footer-bottom-divider { + margin-top: 80px; + } + + .copyright-text { + padding-right: 12px; + } + + .footer-heading.for-mobile { + margin-top: 100px; + } + + .footer-blob-image { + width: 14vw; + } + + .huge-text { + font-size: 16vw; + } + + .utility-container { + padding-right: 16px; + padding-left: 16px; + } + + .utility-text-wrapper { + margin-top: 12px; + } + + .utility-blob { + width: 480px; + } +} + +#w-node-_9745497a-f465-3e5b-09a7-791fc327b429-eccde88d { + -ms-grid-column: span 1; + grid-column-start: span 1; + -ms-grid-column-span: 1; + grid-column-end: span 1; + -ms-grid-row: span 1; + grid-row-start: span 1; + -ms-grid-row-span: 1; + grid-row-end: span 1; +} + +#w-node-_859c2f29-3174-1d78-8125-d140518f10dd-eccde88d { + -ms-grid-column: span 1; + grid-column-start: span 1; + -ms-grid-column-span: 1; + grid-column-end: span 1; + -ms-grid-row: span 1; + grid-row-start: span 1; + -ms-grid-row-span: 1; + grid-row-end: span 1; +} + diff --git a/css/normalize.css b/css/normalize.css new file mode 100644 index 0000000..411d0b2 --- /dev/null +++ b/css/normalize.css @@ -0,0 +1,355 @@ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS and IE text size adjust after device orientation change, + * without disabling user zoom. + */ +html { + font-family: sans-serif; + /* 1 */ + -ms-text-size-adjust: 100%; + /* 2 */ + -webkit-text-size-adjust: 100%; + /* 2 */ +} +/** + * Remove default margin. + */ +body { + margin: 0; +} +/* HTML5 display definitions + ========================================================================== */ +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ +audio, +canvas, +progress, +video { + display: inline-block; + /* 1 */ + vertical-align: baseline; + /* 2 */ +} +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ +audio:not([controls]) { + display: none; + height: 0; +} +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. + */ +[hidden], +template { + display: none; +} +/* Links + ========================================================================== */ +/** + * Remove the gray background color from active links in IE 10. + */ +a { + background-color: transparent; +} +/** + * Improve readability of focused elements when they are also in an + * active/hover state. + */ +a:active, +a:hover { + outline: 0; +} +/* Text-level semantics + ========================================================================== */ +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ +abbr[title] { + border-bottom: 1px dotted; +} +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ +b, +strong { + font-weight: bold; +} +/** + * Address styling not present in Safari and Chrome. + */ +dfn { + font-style: italic; +} +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; +} +/** + * Address styling not present in IE 8/9. + */ +mark { + background: #ff0; + color: #000; +} +/** + * Address inconsistent and variable font size in all browsers. + */ +small { + font-size: 80%; +} +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +/* Embedded content + ========================================================================== */ +/** + * Remove border when inside `a` element in IE 8/9/10. + */ +img { + border: 0; +} +/** + * Correct overflow not hidden in IE 9/10/11. + */ +svg:not(:root) { + overflow: hidden; +} +/* Grouping content + ========================================================================== */ +/** + * Address margin not present in IE 8/9 and Safari. + */ +figure { + margin: 1em 40px; +} +/** + * Address differences between Firefox and other browsers. + */ +hr { + box-sizing: content-box; + height: 0; +} +/** + * Contain overflow in all browsers. + */ +pre { + overflow: auto; +} +/** + * Address odd `em`-unit font size rendering in all browsers. + */ +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +/* Forms + ========================================================================== */ +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ +button, +input, +optgroup, +select, +textarea { + color: inherit; + /* 1 */ + font: inherit; + /* 2 */ + margin: 0; + /* 3 */ +} +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ +button { + overflow: visible; +} +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ +button, +select { + text-transform: none; +} +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + * 4. CUSTOM FOR WEBFLOW: Removed the input[type="submit"] selector to reduce + * specificity and defer to the .w-button selector + */ +button, +html input[type="button"], +input[type="reset"] { + -webkit-appearance: button; + /* 2 */ + cursor: pointer; + /* 3 */ +} +/** + * Re-set default cursor for disabled elements. + */ +button[disabled], +html input[disabled] { + cursor: default; +} +/** + * Remove inner padding and border in Firefox 4+. + */ +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ +input { + line-height: normal; +} +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ +input[type='checkbox'], +input[type='radio'] { + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ +} +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ +input[type='number']::-webkit-inner-spin-button, +input[type='number']::-webkit-outer-spin-button { + height: auto; +} +/** + * 1. CUSTOM FOR WEBFLOW: changed from `textfield` to `none` to normalize iOS rounded input + * 2. CUSTOM FOR WEBFLOW: box-sizing: content-box rule removed + * (similar to normalize.css >=4.0.0) + */ +input[type='search'] { + -webkit-appearance: none; + /* 1 */ +} +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ +input[type='search']::-webkit-search-cancel-button, +input[type='search']::-webkit-search-decoration { + -webkit-appearance: none; +} +/** + * Define consistent border, margin, and padding. + */ +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ +legend { + border: 0; + /* 1 */ + padding: 0; + /* 2 */ +} +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ +textarea { + overflow: auto; +} +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ +optgroup { + font-weight: bold; +} +/* Tables + ========================================================================== */ +/** + * Remove most spacing between table cells. + */ +table { + border-collapse: collapse; + border-spacing: 0; +} +td, +th { + padding: 0; +} diff --git a/css/webflow.css b/css/webflow.css new file mode 100644 index 0000000..90584d6 --- /dev/null +++ b/css/webflow.css @@ -0,0 +1,1826 @@ +@font-face { + font-family: 'webflow-icons'; + src: url("data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBiUAAAC8AAAAYGNtYXDpP+a4AAABHAAAAFxnYXNwAAAAEAAAAXgAAAAIZ2x5ZmhS2XEAAAGAAAADHGhlYWQTFw3HAAAEnAAAADZoaGVhCXYFgQAABNQAAAAkaG10eCe4A1oAAAT4AAAAMGxvY2EDtALGAAAFKAAAABptYXhwABAAPgAABUQAAAAgbmFtZSoCsMsAAAVkAAABznBvc3QAAwAAAAAHNAAAACAAAwP4AZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpAwPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAQAAAAAwACAACAAQAAQAg5gPpA//9//8AAAAAACDmAOkA//3//wAB/+MaBBcIAAMAAQAAAAAAAAAAAAAAAAABAAH//wAPAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEBIAAAAyADgAAFAAAJAQcJARcDIP5AQAGA/oBAAcABwED+gP6AQAABAOAAAALgA4AABQAAEwEXCQEH4AHAQP6AAYBAAcABwED+gP6AQAAAAwDAAOADQALAAA8AHwAvAAABISIGHQEUFjMhMjY9ATQmByEiBh0BFBYzITI2PQE0JgchIgYdARQWMyEyNj0BNCYDIP3ADRMTDQJADRMTDf3ADRMTDQJADRMTDf3ADRMTDQJADRMTAsATDSANExMNIA0TwBMNIA0TEw0gDRPAEw0gDRMTDSANEwAAAAABAJ0AtAOBApUABQAACQIHCQEDJP7r/upcAXEBcgKU/usBFVz+fAGEAAAAAAL//f+9BAMDwwAEAAkAABcBJwEXAwE3AQdpA5ps/GZsbAOabPxmbEMDmmz8ZmwDmvxmbAOabAAAAgAA/8AEAAPAAB0AOwAABSInLgEnJjU0Nz4BNzYzMTIXHgEXFhUUBw4BBwYjNTI3PgE3NjU0Jy4BJyYjMSIHDgEHBhUUFx4BFxYzAgBqXV6LKCgoKIteXWpqXV6LKCgoKIteXWpVSktvICEhIG9LSlVVSktvICEhIG9LSlVAKCiLXl1qal1eiygoKCiLXl1qal1eiygoZiEgb0tKVVVKS28gISEgb0tKVVVKS28gIQABAAABwAIAA8AAEgAAEzQ3PgE3NjMxFSIHDgEHBhUxIwAoKIteXWpVSktvICFmAcBqXV6LKChmISBvS0pVAAAAAgAA/8AFtgPAADIAOgAAARYXHgEXFhUUBw4BBwYHIxUhIicuAScmNTQ3PgE3NjMxOAExNDc+ATc2MzIXHgEXFhcVATMJATMVMzUEjD83NlAXFxYXTjU1PQL8kz01Nk8XFxcXTzY1PSIjd1BQWlJJSXInJw3+mdv+2/7c25MCUQYcHFg5OUA/ODlXHBwIAhcXTzY1PTw1Nk8XF1tQUHcjIhwcYUNDTgL+3QFt/pOTkwABAAAAAQAAmM7nP18PPPUACwQAAAAAANciZKUAAAAA1yJkpf/9/70FtgPDAAAACAACAAAAAAAAAAEAAAPA/8AAAAW3//3//QW2AAEAAAAAAAAAAAAAAAAAAAAMBAAAAAAAAAAAAAAAAgAAAAQAASAEAADgBAAAwAQAAJ0EAP/9BAAAAAQAAAAFtwAAAAAAAAAKABQAHgAyAEYAjACiAL4BFgE2AY4AAAABAAAADAA8AAMAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADQAAAAEAAAAAAAIABwCWAAEAAAAAAAMADQBIAAEAAAAAAAQADQCrAAEAAAAAAAUACwAnAAEAAAAAAAYADQBvAAEAAAAAAAoAGgDSAAMAAQQJAAEAGgANAAMAAQQJAAIADgCdAAMAAQQJAAMAGgBVAAMAAQQJAAQAGgC4AAMAAQQJAAUAFgAyAAMAAQQJAAYAGgB8AAMAAQQJAAoANADsd2ViZmxvdy1pY29ucwB3AGUAYgBmAGwAbwB3AC0AaQBjAG8AbgBzVmVyc2lvbiAxLjAAVgBlAHIAcwBpAG8AbgAgADEALgAwd2ViZmxvdy1pY29ucwB3AGUAYgBmAGwAbwB3AC0AaQBjAG8AbgBzd2ViZmxvdy1pY29ucwB3AGUAYgBmAGwAbwB3AC0AaQBjAG8AbgBzUmVndWxhcgBSAGUAZwB1AGwAYQByd2ViZmxvdy1pY29ucwB3AGUAYgBmAGwAbwB3AC0AaQBjAG8AbgBzRm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==") format('truetype'); + font-weight: normal; + font-style: normal; +} +[class^="w-icon-"], +[class*=" w-icon-"] { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'webflow-icons' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.w-icon-slider-right:before { + content: "\e600"; +} +.w-icon-slider-left:before { + content: "\e601"; +} +.w-icon-nav-menu:before { + content: "\e602"; +} +.w-icon-arrow-down:before, +.w-icon-dropdown-toggle:before { + content: "\e603"; +} +.w-icon-file-upload-remove:before { + content: "\e900"; +} +.w-icon-file-upload-icon:before { + content: "\e903"; +} +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +html { + height: 100%; +} +body { + margin: 0; + min-height: 100%; + background-color: #fff; + font-family: Arial, sans-serif; + font-size: 14px; + line-height: 20px; + color: #333; +} +img { + max-width: 100%; + vertical-align: middle; + display: inline-block; +} +html.w-mod-touch * { + background-attachment: scroll !important; +} +.w-block { + display: block; +} +.w-inline-block { + max-width: 100%; + display: inline-block; +} +.w-clearfix:before, +.w-clearfix:after { + content: " "; + display: table; + grid-column-start: 1; + grid-row-start: 1; + grid-column-end: 2; + grid-row-end: 2; +} +.w-clearfix:after { + clear: both; +} +.w-hidden { + display: none; +} +.w-button { + display: inline-block; + padding: 9px 15px; + background-color: #3898EC; + color: white; + border: 0; + line-height: inherit; + text-decoration: none; + cursor: pointer; + border-radius: 0; +} +input.w-button { + -webkit-appearance: button; +} +html[data-w-dynpage] [data-w-cloak] { + color: transparent !important; +} +.w-webflow-badge, +.w-webflow-badge * { + position: static; + left: auto; + top: auto; + right: auto; + bottom: auto; + z-index: auto; + display: block; + visibility: visible; + overflow: visible; + overflow-x: visible; + overflow-y: visible; + box-sizing: border-box; + width: auto; + height: auto; + max-height: none; + max-width: none; + min-height: 0; + min-width: 0; + margin: 0; + padding: 0; + float: none; + clear: none; + border: 0 none transparent; + border-radius: 0; + background: none; + background-image: none; + background-position: 0% 0%; + background-size: auto auto; + background-repeat: repeat; + background-origin: padding-box; + background-clip: border-box; + background-attachment: scroll; + background-color: transparent; + box-shadow: none; + opacity: 1; + transform: none; + transition: none; + direction: ltr; + font-family: inherit; + font-weight: inherit; + color: inherit; + font-size: inherit; + line-height: inherit; + font-style: inherit; + font-variant: inherit; + text-align: inherit; + letter-spacing: inherit; + text-decoration: inherit; + text-indent: 0; + text-transform: inherit; + list-style-type: disc; + text-shadow: none; + font-smoothing: auto; + vertical-align: baseline; + cursor: inherit; + white-space: inherit; + word-break: normal; + word-spacing: normal; + word-wrap: normal; +} +.w-webflow-badge { + position: fixed !important; + display: inline-block !important; + visibility: visible !important; + z-index: 2147483647 !important; + top: auto !important; + right: 12px !important; + bottom: 12px !important; + left: auto !important; + color: #AAADB0 !important; + background-color: #fff !important; + border-radius: 3px !important; + padding: 6px 8px 6px 6px !important; + font-size: 12px !important; + opacity: 1 !important; + line-height: 14px !important; + text-decoration: none !important; + transform: none !important; + margin: 0 !important; + width: auto !important; + height: auto !important; + overflow: visible !important; + white-space: nowrap; + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1), 0px 1px 3px rgba(0, 0, 0, 0.1); + cursor: pointer; +} +.w-webflow-badge > img { + display: inline-block !important; + visibility: visible !important; + opacity: 1 !important; + vertical-align: middle !important; +} +h1, +h2, +h3, +h4, +h5, +h6 { + font-weight: bold; + margin-bottom: 10px; +} +h1 { + font-size: 38px; + line-height: 44px; + margin-top: 20px; +} +h2 { + font-size: 32px; + line-height: 36px; + margin-top: 20px; +} +h3 { + font-size: 24px; + line-height: 30px; + margin-top: 20px; +} +h4 { + font-size: 18px; + line-height: 24px; + margin-top: 10px; +} +h5 { + font-size: 14px; + line-height: 20px; + margin-top: 10px; +} +h6 { + font-size: 12px; + line-height: 18px; + margin-top: 10px; +} +p { + margin-top: 0; + margin-bottom: 10px; +} +blockquote { + margin: 0 0 10px 0; + padding: 10px 20px; + border-left: 5px solid #E2E2E2; + font-size: 18px; + line-height: 22px; +} +figure { + margin: 0; + margin-bottom: 10px; +} +figcaption { + margin-top: 5px; + text-align: center; +} +ul, +ol { + margin-top: 0px; + margin-bottom: 10px; + padding-left: 40px; +} +.w-list-unstyled { + padding-left: 0; + list-style: none; +} +.w-embed:before, +.w-embed:after { + content: " "; + display: table; + grid-column-start: 1; + grid-row-start: 1; + grid-column-end: 2; + grid-row-end: 2; +} +.w-embed:after { + clear: both; +} +.w-video { + width: 100%; + position: relative; + padding: 0; +} +.w-video iframe, +.w-video object, +.w-video embed { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border: none; +} +fieldset { + padding: 0; + margin: 0; + border: 0; +} +button, +[type='button'], +[type='reset'] { + border: 0; + cursor: pointer; + -webkit-appearance: button; +} +.w-form { + margin: 0 0 15px; +} +.w-form-done { + display: none; + padding: 20px; + text-align: center; + background-color: #dddddd; +} +.w-form-fail { + display: none; + margin-top: 10px; + padding: 10px; + background-color: #ffdede; +} +label { + display: block; + margin-bottom: 5px; + font-weight: bold; +} +.w-input, +.w-select { + display: block; + width: 100%; + height: 38px; + padding: 8px 12px; + margin-bottom: 10px; + font-size: 14px; + line-height: 1.42857143; + color: #333333; + vertical-align: middle; + background-color: #ffffff; + border: 1px solid #cccccc; +} +.w-input:-moz-placeholder, +.w-select:-moz-placeholder { + color: #999; +} +.w-input::-moz-placeholder, +.w-select::-moz-placeholder { + color: #999; + opacity: 1; +} +.w-input:-ms-input-placeholder, +.w-select:-ms-input-placeholder { + color: #999; +} +.w-input::-webkit-input-placeholder, +.w-select::-webkit-input-placeholder { + color: #999; +} +.w-input:focus, +.w-select:focus { + border-color: #3898EC; + outline: 0; +} +.w-input[disabled], +.w-select[disabled], +.w-input[readonly], +.w-select[readonly], +fieldset[disabled] .w-input, +fieldset[disabled] .w-select { + cursor: not-allowed; +} +.w-input[disabled]:not(.w-input-disabled), +.w-select[disabled]:not(.w-input-disabled), +.w-input[readonly], +.w-select[readonly], +fieldset[disabled]:not(.w-input-disabled) .w-input, +fieldset[disabled]:not(.w-input-disabled) .w-select { + background-color: #eeeeee; +} +textarea.w-input, +textarea.w-select { + height: auto; +} +.w-select { + background-color: #f3f3f3; +} +.w-select[multiple] { + height: auto; +} +.w-form-label { + display: inline-block; + cursor: pointer; + font-weight: normal; + margin-bottom: 0px; +} +.w-radio { + display: block; + margin-bottom: 5px; + padding-left: 20px; +} +.w-radio:before, +.w-radio:after { + content: " "; + display: table; + grid-column-start: 1; + grid-row-start: 1; + grid-column-end: 2; + grid-row-end: 2; +} +.w-radio:after { + clear: both; +} +.w-radio-input { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal; + float: left; + margin-left: -20px; +} +.w-radio-input { + margin-top: 3px; +} +.w-file-upload { + display: block; + margin-bottom: 10px; +} +.w-file-upload-input { + width: 0.1px; + height: 0.1px; + opacity: 0; + overflow: hidden; + position: absolute; + z-index: -100; +} +.w-file-upload-default, +.w-file-upload-uploading, +.w-file-upload-success { + display: inline-block; + color: #333333; +} +.w-file-upload-error { + display: block; + margin-top: 10px; +} +.w-file-upload-default.w-hidden, +.w-file-upload-uploading.w-hidden, +.w-file-upload-error.w-hidden, +.w-file-upload-success.w-hidden { + display: none; +} +.w-file-upload-uploading-btn { + display: flex; + font-size: 14px; + font-weight: normal; + cursor: pointer; + margin: 0; + padding: 8px 12px; + border: 1px solid #cccccc; + background-color: #fafafa; +} +.w-file-upload-file { + display: flex; + flex-grow: 1; + justify-content: space-between; + margin: 0; + padding: 8px 9px 8px 11px; + border: 1px solid #cccccc; + background-color: #fafafa; +} +.w-file-upload-file-name { + font-size: 14px; + font-weight: normal; + display: block; +} +.w-file-remove-link { + margin-top: 3px; + margin-left: 10px; + width: auto; + height: auto; + padding: 3px; + display: block; + cursor: pointer; +} +.w-icon-file-upload-remove { + margin: auto; + font-size: 10px; +} +.w-file-upload-error-msg { + display: inline-block; + color: #ea384c; + padding: 2px 0; +} +.w-file-upload-info { + display: inline-block; + line-height: 38px; + padding: 0 12px; +} +.w-file-upload-label { + display: inline-block; + font-size: 14px; + font-weight: normal; + cursor: pointer; + margin: 0; + padding: 8px 12px; + border: 1px solid #cccccc; + background-color: #fafafa; +} +.w-icon-file-upload-icon, +.w-icon-file-upload-uploading { + display: inline-block; + margin-right: 8px; + width: 20px; +} +.w-icon-file-upload-uploading { + height: 20px; +} +.w-container { + margin-left: auto; + margin-right: auto; + max-width: 940px; +} +.w-container:before, +.w-container:after { + content: " "; + display: table; + grid-column-start: 1; + grid-row-start: 1; + grid-column-end: 2; + grid-row-end: 2; +} +.w-container:after { + clear: both; +} +.w-container .w-row { + margin-left: -10px; + margin-right: -10px; +} +.w-row:before, +.w-row:after { + content: " "; + display: table; + grid-column-start: 1; + grid-row-start: 1; + grid-column-end: 2; + grid-row-end: 2; +} +.w-row:after { + clear: both; +} +.w-row .w-row { + margin-left: 0; + margin-right: 0; +} +.w-col { + position: relative; + float: left; + width: 100%; + min-height: 1px; + padding-left: 10px; + padding-right: 10px; +} +.w-col .w-col { + padding-left: 0; + padding-right: 0; +} +.w-col-1 { + width: 8.33333333%; +} +.w-col-2 { + width: 16.66666667%; +} +.w-col-3 { + width: 25%; +} +.w-col-4 { + width: 33.33333333%; +} +.w-col-5 { + width: 41.66666667%; +} +.w-col-6 { + width: 50%; +} +.w-col-7 { + width: 58.33333333%; +} +.w-col-8 { + width: 66.66666667%; +} +.w-col-9 { + width: 75%; +} +.w-col-10 { + width: 83.33333333%; +} +.w-col-11 { + width: 91.66666667%; +} +.w-col-12 { + width: 100%; +} +.w-hidden-main { + display: none !important; +} +@media screen and (max-width: 991px) { + .w-container { + max-width: 728px; + } + .w-hidden-main { + display: inherit !important; + } + .w-hidden-medium { + display: none !important; + } + .w-col-medium-1 { + width: 8.33333333%; + } + .w-col-medium-2 { + width: 16.66666667%; + } + .w-col-medium-3 { + width: 25%; + } + .w-col-medium-4 { + width: 33.33333333%; + } + .w-col-medium-5 { + width: 41.66666667%; + } + .w-col-medium-6 { + width: 50%; + } + .w-col-medium-7 { + width: 58.33333333%; + } + .w-col-medium-8 { + width: 66.66666667%; + } + .w-col-medium-9 { + width: 75%; + } + .w-col-medium-10 { + width: 83.33333333%; + } + .w-col-medium-11 { + width: 91.66666667%; + } + .w-col-medium-12 { + width: 100%; + } + .w-col-stack { + width: 100%; + left: auto; + right: auto; + } +} +@media screen and (max-width: 767px) { + .w-hidden-main { + display: inherit !important; + } + .w-hidden-medium { + display: inherit !important; + } + .w-hidden-small { + display: none !important; + } + .w-row, + .w-container .w-row { + margin-left: 0; + margin-right: 0; + } + .w-col { + width: 100%; + left: auto; + right: auto; + } + .w-col-small-1 { + width: 8.33333333%; + } + .w-col-small-2 { + width: 16.66666667%; + } + .w-col-small-3 { + width: 25%; + } + .w-col-small-4 { + width: 33.33333333%; + } + .w-col-small-5 { + width: 41.66666667%; + } + .w-col-small-6 { + width: 50%; + } + .w-col-small-7 { + width: 58.33333333%; + } + .w-col-small-8 { + width: 66.66666667%; + } + .w-col-small-9 { + width: 75%; + } + .w-col-small-10 { + width: 83.33333333%; + } + .w-col-small-11 { + width: 91.66666667%; + } + .w-col-small-12 { + width: 100%; + } +} +@media screen and (max-width: 479px) { + .w-container { + max-width: none; + } + .w-hidden-main { + display: inherit !important; + } + .w-hidden-medium { + display: inherit !important; + } + .w-hidden-small { + display: inherit !important; + } + .w-hidden-tiny { + display: none !important; + } + .w-col { + width: 100%; + } + .w-col-tiny-1 { + width: 8.33333333%; + } + .w-col-tiny-2 { + width: 16.66666667%; + } + .w-col-tiny-3 { + width: 25%; + } + .w-col-tiny-4 { + width: 33.33333333%; + } + .w-col-tiny-5 { + width: 41.66666667%; + } + .w-col-tiny-6 { + width: 50%; + } + .w-col-tiny-7 { + width: 58.33333333%; + } + .w-col-tiny-8 { + width: 66.66666667%; + } + .w-col-tiny-9 { + width: 75%; + } + .w-col-tiny-10 { + width: 83.33333333%; + } + .w-col-tiny-11 { + width: 91.66666667%; + } + .w-col-tiny-12 { + width: 100%; + } +} +.w-widget { + position: relative; +} +.w-widget-map { + width: 100%; + height: 400px; +} +.w-widget-map label { + width: auto; + display: inline; +} +.w-widget-map img { + max-width: inherit; +} +.w-widget-map .gm-style-iw { + text-align: center; +} +.w-widget-map .gm-style-iw > button { + display: none !important; +} +.w-widget-twitter { + overflow: hidden; +} +.w-widget-twitter-count-shim { + display: inline-block; + vertical-align: top; + position: relative; + width: 28px; + height: 20px; + text-align: center; + background: white; + border: #758696 solid 1px; + border-radius: 3px; +} +.w-widget-twitter-count-shim * { + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.w-widget-twitter-count-shim .w-widget-twitter-count-inner { + position: relative; + font-size: 15px; + line-height: 12px; + text-align: center; + color: #999; + font-family: serif; +} +.w-widget-twitter-count-shim .w-widget-twitter-count-clear { + position: relative; + display: block; +} +.w-widget-twitter-count-shim.w--large { + width: 36px; + height: 28px; +} +.w-widget-twitter-count-shim.w--large .w-widget-twitter-count-inner { + font-size: 18px; + line-height: 18px; +} +.w-widget-twitter-count-shim:not(.w--vertical) { + margin-left: 5px; + margin-right: 8px; +} +.w-widget-twitter-count-shim:not(.w--vertical).w--large { + margin-left: 6px; +} +.w-widget-twitter-count-shim:not(.w--vertical):before, +.w-widget-twitter-count-shim:not(.w--vertical):after { + top: 50%; + left: 0; + border: solid transparent; + content: ' '; + height: 0; + width: 0; + position: absolute; + pointer-events: none; +} +.w-widget-twitter-count-shim:not(.w--vertical):before { + border-color: rgba(117, 134, 150, 0); + border-right-color: #5d6c7b; + border-width: 4px; + margin-left: -9px; + margin-top: -4px; +} +.w-widget-twitter-count-shim:not(.w--vertical).w--large:before { + border-width: 5px; + margin-left: -10px; + margin-top: -5px; +} +.w-widget-twitter-count-shim:not(.w--vertical):after { + border-color: rgba(255, 255, 255, 0); + border-right-color: white; + border-width: 4px; + margin-left: -8px; + margin-top: -4px; +} +.w-widget-twitter-count-shim:not(.w--vertical).w--large:after { + border-width: 5px; + margin-left: -9px; + margin-top: -5px; +} +.w-widget-twitter-count-shim.w--vertical { + width: 61px; + height: 33px; + margin-bottom: 8px; +} +.w-widget-twitter-count-shim.w--vertical:before, +.w-widget-twitter-count-shim.w--vertical:after { + top: 100%; + left: 50%; + border: solid transparent; + content: ' '; + height: 0; + width: 0; + position: absolute; + pointer-events: none; +} +.w-widget-twitter-count-shim.w--vertical:before { + border-color: rgba(117, 134, 150, 0); + border-top-color: #5d6c7b; + border-width: 5px; + margin-left: -5px; +} +.w-widget-twitter-count-shim.w--vertical:after { + border-color: rgba(255, 255, 255, 0); + border-top-color: white; + border-width: 4px; + margin-left: -4px; +} +.w-widget-twitter-count-shim.w--vertical .w-widget-twitter-count-inner { + font-size: 18px; + line-height: 22px; +} +.w-widget-twitter-count-shim.w--vertical.w--large { + width: 76px; +} +.w-background-video { + position: relative; + overflow: hidden; + height: 500px; + color: white; +} +.w-background-video > video { + background-size: cover; + background-position: 50% 50%; + position: absolute; + margin: auto; + width: 100%; + height: 100%; + right: -100%; + bottom: -100%; + top: -100%; + left: -100%; + object-fit: cover; + z-index: -100; +} +.w-background-video > video::-webkit-media-controls-start-playback-button { + display: none !important; + -webkit-appearance: none; +} +.w-background-video--control { + position: absolute; + bottom: 1em; + right: 1em; + background-color: transparent; + padding: 0; +} +.w-background-video--control > [hidden] { + display: none !important; +} +.w-slider { + position: relative; + height: 300px; + text-align: center; + background: #dddddd; + clear: both; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + tap-highlight-color: rgba(0, 0, 0, 0); +} +.w-slider-mask { + position: relative; + display: block; + overflow: hidden; + z-index: 1; + left: 0; + right: 0; + height: 100%; + white-space: nowrap; +} +.w-slide { + position: relative; + display: inline-block; + vertical-align: top; + width: 100%; + height: 100%; + white-space: normal; + text-align: left; +} +.w-slider-nav { + position: absolute; + z-index: 2; + top: auto; + right: 0; + bottom: 0; + left: 0; + margin: auto; + padding-top: 10px; + height: 40px; + text-align: center; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + tap-highlight-color: rgba(0, 0, 0, 0); +} +.w-slider-nav.w-round > div { + border-radius: 100%; +} +.w-slider-nav.w-num > div { + width: auto; + height: auto; + padding: 0.2em 0.5em; + font-size: inherit; + line-height: inherit; +} +.w-slider-nav.w-shadow > div { + box-shadow: 0 0 3px rgba(51, 51, 51, 0.4); +} +.w-slider-nav-invert { + color: #fff; +} +.w-slider-nav-invert > div { + background-color: rgba(34, 34, 34, 0.4); +} +.w-slider-nav-invert > div.w-active { + background-color: #222; +} +.w-slider-dot { + position: relative; + display: inline-block; + width: 1em; + height: 1em; + background-color: rgba(255, 255, 255, 0.4); + cursor: pointer; + margin: 0 3px 0.5em; + transition: background-color 100ms, color 100ms; +} +.w-slider-dot.w-active { + background-color: #fff; +} +.w-slider-dot:focus { + outline: none; + box-shadow: 0px 0px 0px 2px #fff; +} +.w-slider-dot:focus.w-active { + box-shadow: none; +} +.w-slider-arrow-left, +.w-slider-arrow-right { + position: absolute; + width: 80px; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + cursor: pointer; + overflow: hidden; + color: white; + font-size: 40px; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.w-slider-arrow-left [class^='w-icon-'], +.w-slider-arrow-right [class^='w-icon-'], +.w-slider-arrow-left [class*=' w-icon-'], +.w-slider-arrow-right [class*=' w-icon-'] { + position: absolute; +} +.w-slider-arrow-left:focus, +.w-slider-arrow-right:focus { + outline: 0; +} +.w-slider-arrow-left { + z-index: 3; + right: auto; +} +.w-slider-arrow-right { + z-index: 4; + left: auto; +} +.w-icon-slider-left, +.w-icon-slider-right { + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + width: 1em; + height: 1em; +} +.w-slider-aria-label { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.w-slider-force-show { + display: block !important; +} +.w-dropdown { + display: inline-block; + position: relative; + text-align: left; + margin-left: auto; + margin-right: auto; + z-index: 900; +} +.w-dropdown-btn, +.w-dropdown-toggle, +.w-dropdown-link { + position: relative; + vertical-align: top; + text-decoration: none; + color: #222222; + padding: 20px; + text-align: left; + margin-left: auto; + margin-right: auto; + white-space: nowrap; +} +.w-dropdown-toggle { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + display: inline-block; + cursor: pointer; + padding-right: 40px; +} +.w-dropdown-toggle:focus { + outline: 0; +} +.w-icon-dropdown-toggle { + position: absolute; + top: 0; + right: 0; + bottom: 0; + margin: auto; + margin-right: 20px; + width: 1em; + height: 1em; +} +.w-dropdown-list { + position: absolute; + background: #dddddd; + display: none; + min-width: 100%; +} +.w-dropdown-list.w--open { + display: block; +} +.w-dropdown-link { + padding: 10px 20px; + display: block; + color: #222222; +} +.w-dropdown-link.w--current { + color: #0082f3; +} +.w-dropdown-link:focus { + outline: 0; +} +@media screen and (max-width: 767px) { + .w-nav-brand { + padding-left: 10px; + } +} +/** + * ## Note + * Safari (on both iOS and OS X) does not handle viewport units (vh, vw) well. + * For example percentage units do not work on descendants of elements that + * have any dimensions expressed in viewport units. It also doesn’t handle them at + * all in `calc()`. + */ +/** + * Wrapper around all lightbox elements + * + * 1. Since the lightbox can receive focus, IE also gives it an outline. + * 2. Fixes flickering on Chrome when a transition is in progress + * underneath the lightbox. + */ +.w-lightbox-backdrop { + color: #000; + cursor: auto; + font-family: serif; + font-size: medium; + font-style: normal; + font-variant: normal; + font-weight: normal; + letter-spacing: normal; + line-height: normal; + list-style: disc; + text-align: start; + text-indent: 0; + text-shadow: none; + text-transform: none; + visibility: visible; + white-space: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + color: #fff; + font-family: "Helvetica Neue", Helvetica, Ubuntu, "Segoe UI", Verdana, sans-serif; + font-size: 17px; + line-height: 1.2; + font-weight: 300; + text-align: center; + background: rgba(0, 0, 0, 0.9); + z-index: 2000; + outline: 0; + /* 1 */ + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -webkit-tap-highlight-color: transparent; + -webkit-transform: translate(0, 0); + /* 2 */ +} +/** + * Neat trick to bind the rubberband effect to our canvas instead of the whole + * document on iOS. It also prevents a bug that causes the document underneath to scroll. + */ +.w-lightbox-backdrop, +.w-lightbox-container { + height: 100%; + overflow: auto; + -webkit-overflow-scrolling: touch; +} +.w-lightbox-content { + position: relative; + height: 100vh; + overflow: hidden; +} +.w-lightbox-view { + position: absolute; + width: 100vw; + height: 100vh; + opacity: 0; +} +.w-lightbox-view:before { + content: ""; + height: 100vh; +} +/* .w-lightbox-content */ +.w-lightbox-group, +.w-lightbox-group .w-lightbox-view, +.w-lightbox-group .w-lightbox-view:before { + height: 86vh; +} +.w-lightbox-frame, +.w-lightbox-view:before { + display: inline-block; + vertical-align: middle; +} +/* + * 1. Remove default margin set by user-agent on the
element. + */ +.w-lightbox-figure { + position: relative; + margin: 0; + /* 1 */ +} +.w-lightbox-group .w-lightbox-figure { + cursor: pointer; +} +/** + * IE adds image dimensions as width and height attributes on the IMG tag, + * but we need both width and height to be set to auto to enable scaling. + */ +.w-lightbox-img { + width: auto; + height: auto; + max-width: none; +} +/** + * 1. Reset if style is set by user on "All Images" + */ +.w-lightbox-image { + display: block; + float: none; + /* 1 */ + max-width: 100vw; + max-height: 100vh; +} +.w-lightbox-group .w-lightbox-image { + max-height: 86vh; +} +.w-lightbox-caption { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 0.5em 1em; + background: rgba(0, 0, 0, 0.4); + text-align: left; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.w-lightbox-embed { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; +} +.w-lightbox-control { + position: absolute; + top: 0; + width: 4em; + background-size: 24px; + background-repeat: no-repeat; + background-position: center; + cursor: pointer; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.w-lightbox-left { + display: none; + bottom: 0; + left: 0; + /* */ + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0yMCAwIDI0IDQwIiB3aWR0aD0iMjQiIGhlaWdodD0iNDAiPjxnIHRyYW5zZm9ybT0icm90YXRlKDQ1KSI+PHBhdGggZD0ibTAgMGg1djIzaDIzdjVoLTI4eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDN2MjNoMjN2M2gtMjZ6IiBmaWxsPSIjZmZmIi8+PC9nPjwvc3ZnPg=="); +} +.w-lightbox-right { + display: none; + right: 0; + bottom: 0; + /* */ + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMjQgNDAiIHdpZHRoPSIyNCIgaGVpZ2h0PSI0MCI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMC0waDI4djI4aC01di0yM2gtMjN6IiBvcGFjaXR5PSIuNCIvPjxwYXRoIGQ9Im0xIDFoMjZ2MjZoLTN2LTIzaC0yM3oiIGZpbGw9IiNmZmYiLz48L2c+PC9zdmc+"); +} +/* + * Without specifying the with and height inside the SVG, all versions of IE render the icon too small. + * The bug does not seem to manifest itself if the elements are tall enough such as the above arrows. + * (http://stackoverflow.com/questions/16092114/background-size-differs-in-internet-explorer) + */ +.w-lightbox-close { + right: 0; + height: 2.6em; + /* */ + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMTggMTciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNyI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMCAwaDd2LTdoNXY3aDd2NWgtN3Y3aC01di03aC03eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDd2LTdoM3Y3aDd2M2gtN3Y3aC0zdi03aC03eiIgZmlsbD0iI2ZmZiIvPjwvZz48L3N2Zz4="); + background-size: 18px; +} +/** + * 1. All IE versions add extra space at the bottom without this. + */ +.w-lightbox-strip { + position: absolute; + bottom: 0; + left: 0; + right: 0; + padding: 0 1vh; + line-height: 0; + /* 1 */ + white-space: nowrap; + overflow-x: auto; + overflow-y: hidden; +} +/* + * 1. We use content-box to avoid having to do `width: calc(10vh + 2vw)` + * which doesn’t work in Safari anyway. + * 2. Chrome renders images pixelated when switching to GPU. Making sure + * the parent is also rendered on the GPU (by setting translate3d for + * example) fixes this behavior. + */ +.w-lightbox-item { + display: inline-block; + width: 10vh; + padding: 2vh 1vh; + box-sizing: content-box; + /* 1 */ + cursor: pointer; + -webkit-transform: translate3d(0, 0, 0); + /* 2 */ +} +.w-lightbox-active { + opacity: 0.3; +} +.w-lightbox-thumbnail { + position: relative; + height: 10vh; + background: #222; + overflow: hidden; +} +.w-lightbox-thumbnail-image { + position: absolute; + top: 0; + left: 0; +} +.w-lightbox-thumbnail .w-lightbox-tall { + top: 50%; + width: 100%; + -webkit-transform: translate(0, -50%); + -ms-transform: translate(0, -50%); + transform: translate(0, -50%); +} +.w-lightbox-thumbnail .w-lightbox-wide { + left: 50%; + height: 100%; + -webkit-transform: translate(-50%, 0); + -ms-transform: translate(-50%, 0); + transform: translate(-50%, 0); +} +/* + * Spinner + * + * Absolute pixel values are used to avoid rounding errors that would cause + * the white spinning element to be misaligned with the track. + */ +.w-lightbox-spinner { + position: absolute; + top: 50%; + left: 50%; + box-sizing: border-box; + width: 40px; + height: 40px; + margin-top: -20px; + margin-left: -20px; + border: 5px solid rgba(0, 0, 0, 0.4); + border-radius: 50%; + -webkit-animation: spin 0.8s infinite linear; + animation: spin 0.8s infinite linear; +} +.w-lightbox-spinner:after { + content: ""; + position: absolute; + top: -4px; + right: -4px; + bottom: -4px; + left: -4px; + border: 3px solid transparent; + border-bottom-color: #fff; + border-radius: 50%; +} +/* + * Utility classes + */ +.w-lightbox-hide { + display: none; +} +.w-lightbox-noscroll { + overflow: hidden; +} +@media (min-width: 768px) { + .w-lightbox-content { + height: 96vh; + margin-top: 2vh; + } + .w-lightbox-view, + .w-lightbox-view:before { + height: 96vh; + } + /* .w-lightbox-content */ + .w-lightbox-group, + .w-lightbox-group .w-lightbox-view, + .w-lightbox-group .w-lightbox-view:before { + height: 84vh; + } + .w-lightbox-image { + max-width: 96vw; + max-height: 96vh; + } + .w-lightbox-group .w-lightbox-image { + max-width: 82.3vw; + max-height: 84vh; + } + .w-lightbox-left, + .w-lightbox-right { + display: block; + opacity: 0.5; + } + .w-lightbox-close { + opacity: 0.8; + } + .w-lightbox-control:hover { + opacity: 1; + } +} +.w-lightbox-inactive, +.w-lightbox-inactive:hover { + opacity: 0; +} +.w-richtext:before, +.w-richtext:after { + content: " "; + display: table; + grid-column-start: 1; + grid-row-start: 1; + grid-column-end: 2; + grid-row-end: 2; +} +.w-richtext:after { + clear: both; +} +.w-richtext[contenteditable="true"]:before, +.w-richtext[contenteditable="true"]:after { + white-space: initial; +} +.w-richtext ol, +.w-richtext ul { + overflow: hidden; +} +.w-richtext .w-richtext-figure-selected.w-richtext-figure-type-video div:after, +.w-richtext .w-richtext-figure-selected[data-rt-type="video"] div:after { + outline: 2px solid #2895f7; +} +.w-richtext .w-richtext-figure-selected.w-richtext-figure-type-image div, +.w-richtext .w-richtext-figure-selected[data-rt-type="image"] div { + outline: 2px solid #2895f7; +} +.w-richtext figure.w-richtext-figure-type-video > div:after, +.w-richtext figure[data-rt-type="video"] > div:after { + content: ''; + position: absolute; + display: none; + left: 0; + top: 0; + right: 0; + bottom: 0; +} +.w-richtext figure { + position: relative; + max-width: 60%; +} +.w-richtext figure > div:before { + cursor: default!important; +} +.w-richtext figure img { + width: 100%; +} +.w-richtext figure figcaption.w-richtext-figcaption-placeholder { + opacity: 0.6; +} +.w-richtext figure div { + /* fix incorrectly sized selection border in the data manager */ + font-size: 0px; + color: transparent; +} +.w-richtext figure.w-richtext-figure-type-image, +.w-richtext figure[data-rt-type="image"] { + display: table; +} +.w-richtext figure.w-richtext-figure-type-image > div, +.w-richtext figure[data-rt-type="image"] > div { + display: inline-block; +} +.w-richtext figure.w-richtext-figure-type-image > figcaption, +.w-richtext figure[data-rt-type="image"] > figcaption { + display: table-caption; + caption-side: bottom; +} +.w-richtext figure.w-richtext-figure-type-video, +.w-richtext figure[data-rt-type="video"] { + width: 60%; + height: 0; +} +.w-richtext figure.w-richtext-figure-type-video iframe, +.w-richtext figure[data-rt-type="video"] iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.w-richtext figure.w-richtext-figure-type-video > div, +.w-richtext figure[data-rt-type="video"] > div { + width: 100%; +} +.w-richtext figure.w-richtext-align-center { + margin-right: auto; + margin-left: auto; + clear: both; +} +.w-richtext figure.w-richtext-align-center.w-richtext-figure-type-image > div, +.w-richtext figure.w-richtext-align-center[data-rt-type="image"] > div { + max-width: 100%; +} +.w-richtext figure.w-richtext-align-normal { + clear: both; +} +.w-richtext figure.w-richtext-align-fullwidth { + width: 100%; + max-width: 100%; + text-align: center; + clear: both; + display: block; + margin-right: auto; + margin-left: auto; +} +.w-richtext figure.w-richtext-align-fullwidth > div { + display: inline-block; + /* padding-bottom is used for aspect ratios in video figures + we want the div to inherit that so hover/selection borders in the designer-canvas + fit right*/ + padding-bottom: inherit; +} +.w-richtext figure.w-richtext-align-fullwidth > figcaption { + display: block; +} +.w-richtext figure.w-richtext-align-floatleft { + float: left; + margin-right: 15px; + clear: none; +} +.w-richtext figure.w-richtext-align-floatright { + float: right; + margin-left: 15px; + clear: none; +} +.w-nav { + position: relative; + background: #dddddd; + z-index: 1000; +} +.w-nav:before, +.w-nav:after { + content: " "; + display: table; + grid-column-start: 1; + grid-row-start: 1; + grid-column-end: 2; + grid-row-end: 2; +} +.w-nav:after { + clear: both; +} +.w-nav-brand { + position: relative; + float: left; + text-decoration: none; + color: #333333; +} +.w-nav-link { + position: relative; + display: inline-block; + vertical-align: top; + text-decoration: none; + color: #222222; + padding: 20px; + text-align: left; + margin-left: auto; + margin-right: auto; +} +.w-nav-link.w--current { + color: #0082f3; +} +.w-nav-menu { + position: relative; + float: right; +} +[data-nav-menu-open] { + display: block !important; + position: absolute; + top: 100%; + left: 0; + right: 0; + background: #C8C8C8; + text-align: center; + overflow: visible; + min-width: 200px; +} +.w--nav-link-open { + display: block; + position: relative; +} +.w-nav-overlay { + position: absolute; + overflow: hidden; + display: none; + top: 100%; + left: 0; + right: 0; + width: 100%; +} +.w-nav-overlay [data-nav-menu-open] { + top: 0; +} +.w-nav[data-animation="over-left"] .w-nav-overlay { + width: auto; +} +.w-nav[data-animation="over-left"] .w-nav-overlay, +.w-nav[data-animation="over-left"] [data-nav-menu-open] { + right: auto; + z-index: 1; + top: 0; +} +.w-nav[data-animation="over-right"] .w-nav-overlay { + width: auto; +} +.w-nav[data-animation="over-right"] .w-nav-overlay, +.w-nav[data-animation="over-right"] [data-nav-menu-open] { + left: auto; + z-index: 1; + top: 0; +} +.w-nav-button { + position: relative; + float: right; + padding: 18px; + font-size: 24px; + display: none; + cursor: pointer; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.w-nav-button:focus { + outline: 0; +} +.w-nav-button.w--open { + background-color: #C8C8C8; + color: white; +} +.w-nav[data-collapse="all"] .w-nav-menu { + display: none; +} +.w-nav[data-collapse="all"] .w-nav-button { + display: block; +} +.w--nav-dropdown-open { + display: block; +} +.w--nav-dropdown-toggle-open { + display: block; +} +.w--nav-dropdown-list-open { + position: static; +} +@media screen and (max-width: 991px) { + .w-nav[data-collapse="medium"] .w-nav-menu { + display: none; + } + .w-nav[data-collapse="medium"] .w-nav-button { + display: block; + } +} +@media screen and (max-width: 767px) { + .w-nav[data-collapse="small"] .w-nav-menu { + display: none; + } + .w-nav[data-collapse="small"] .w-nav-button { + display: block; + } + .w-nav-brand { + padding-left: 10px; + } +} +@media screen and (max-width: 479px) { + .w-nav[data-collapse="tiny"] .w-nav-menu { + display: none; + } + .w-nav[data-collapse="tiny"] .w-nav-button { + display: block; + } +} +.w-tabs { + position: relative; +} +.w-tabs:before, +.w-tabs:after { + content: " "; + display: table; + grid-column-start: 1; + grid-row-start: 1; + grid-column-end: 2; + grid-row-end: 2; +} +.w-tabs:after { + clear: both; +} +.w-tab-menu { + position: relative; +} +.w-tab-link { + position: relative; + display: inline-block; + vertical-align: top; + text-decoration: none; + padding: 9px 30px; + text-align: left; + cursor: pointer; + color: #222222; + background-color: #dddddd; +} +.w-tab-link.w--current { + background-color: #C8C8C8; +} +.w-tab-link:focus { + outline: 0; +} +.w-tab-content { + position: relative; + display: block; + overflow: hidden; +} +.w-tab-pane { + position: relative; + display: none; +} +.w--tab-active { + display: block; +} +@media screen and (max-width: 479px) { + .w-tab-link { + display: block; + } +} +.w-ix-emptyfix:after { + content: ""; +} +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +.w-dyn-empty { + padding: 10px; + background-color: #dddddd; +} +.w-dyn-hide { + display: none !important; +} +.w-dyn-bind-empty { + display: none !important; +} +.w-condition-invisible { + display: none !important; +} diff --git a/images/Comp_13-p-500.webp b/images/Comp_13-p-500.webp new file mode 100644 index 0000000..f35150b Binary files /dev/null and b/images/Comp_13-p-500.webp differ diff --git a/images/Comp_13-p-800.webp b/images/Comp_13-p-800.webp new file mode 100644 index 0000000..b43a222 Binary files /dev/null and b/images/Comp_13-p-800.webp differ diff --git a/images/Comp_13.webp b/images/Comp_13.webp new file mode 100644 index 0000000..be2c05f Binary files /dev/null and b/images/Comp_13.webp differ diff --git a/images/ellipse.svg b/images/ellipse.svg new file mode 100644 index 0000000..4960384 --- /dev/null +++ b/images/ellipse.svg @@ -0,0 +1,3 @@ + + + diff --git a/images/favicon.svg b/images/favicon.svg new file mode 100644 index 0000000..182bee7 --- /dev/null +++ b/images/favicon.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/images/giphy-2.gif b/images/giphy-2.gif new file mode 100644 index 0000000..54b304c Binary files /dev/null and b/images/giphy-2.gif differ diff --git a/images/giphy-9.gif b/images/giphy-9.gif new file mode 100644 index 0000000..13ba32d Binary files /dev/null and b/images/giphy-9.gif differ diff --git a/images/hero_blob1.svg b/images/hero_blob1.svg new file mode 100644 index 0000000..daeea99 --- /dev/null +++ b/images/hero_blob1.svg @@ -0,0 +1,3 @@ + + + diff --git a/images/hero_blob2.svg b/images/hero_blob2.svg new file mode 100644 index 0000000..9ed0d7e --- /dev/null +++ b/images/hero_blob2.svg @@ -0,0 +1,3 @@ + + + diff --git a/images/hero_nft_rotated.svg b/images/hero_nft_rotated.svg new file mode 100644 index 0000000..e17073a --- /dev/null +++ b/images/hero_nft_rotated.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/images/logo.svg b/images/logo.svg new file mode 100644 index 0000000..4d538f6 --- /dev/null +++ b/images/logo.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/images/menu_close_icon.svg b/images/menu_close_icon.svg new file mode 100644 index 0000000..3a209a5 --- /dev/null +++ b/images/menu_close_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/images/menu_open_icon.svg b/images/menu_open_icon.svg new file mode 100644 index 0000000..acf0872 --- /dev/null +++ b/images/menu_open_icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/images/nft1.svg b/images/nft1.svg new file mode 100644 index 0000000..82e5afb --- /dev/null +++ b/images/nft1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/nft10.svg b/images/nft10.svg new file mode 100644 index 0000000..fa5042c --- /dev/null +++ b/images/nft10.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/nft3.svg b/images/nft3.svg new file mode 100644 index 0000000..553fd35 --- /dev/null +++ b/images/nft3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/nft4.svg b/images/nft4.svg new file mode 100644 index 0000000..98d0206 --- /dev/null +++ b/images/nft4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/nft5.svg b/images/nft5.svg new file mode 100644 index 0000000..5e403c2 --- /dev/null +++ b/images/nft5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/nft6.svg b/images/nft6.svg new file mode 100644 index 0000000..b26b234 --- /dev/null +++ b/images/nft6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/nft7.svg b/images/nft7.svg new file mode 100644 index 0000000..ad54b91 --- /dev/null +++ b/images/nft7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/nft8.svg b/images/nft8.svg new file mode 100644 index 0000000..ae8d0ae --- /dev/null +++ b/images/nft8.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/nft9.svg b/images/nft9.svg new file mode 100644 index 0000000..480cef3 --- /dev/null +++ b/images/nft9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/pattern1.svg b/images/pattern1.svg new file mode 100644 index 0000000..b726425 --- /dev/null +++ b/images/pattern1.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/images/pattern2.svg b/images/pattern2.svg new file mode 100644 index 0000000..4106c62 --- /dev/null +++ b/images/pattern2.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/images/roadmap_blob.svg b/images/roadmap_blob.svg new file mode 100644 index 0000000..aedb343 --- /dev/null +++ b/images/roadmap_blob.svg @@ -0,0 +1,3 @@ + + + diff --git a/images/section_blob.svg b/images/section_blob.svg new file mode 100644 index 0000000..c94fc93 --- /dev/null +++ b/images/section_blob.svg @@ -0,0 +1,3 @@ + + + diff --git a/images/section_blob2.svg b/images/section_blob2.svg new file mode 100644 index 0000000..56b7c65 --- /dev/null +++ b/images/section_blob2.svg @@ -0,0 +1,3 @@ + + + diff --git a/images/section_blob3.svg b/images/section_blob3.svg new file mode 100644 index 0000000..1fd162e --- /dev/null +++ b/images/section_blob3.svg @@ -0,0 +1,3 @@ + + + diff --git a/images/section_blob4.svg b/images/section_blob4.svg new file mode 100644 index 0000000..230af82 --- /dev/null +++ b/images/section_blob4.svg @@ -0,0 +1,3 @@ + + + diff --git a/images/sitting_image.svg b/images/sitting_image.svg new file mode 100644 index 0000000..8df5a2f --- /dev/null +++ b/images/sitting_image.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/wave-2.svg b/images/wave-2.svg new file mode 100644 index 0000000..94a5d1a --- /dev/null +++ b/images/wave-2.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/images/wave-3.svg b/images/wave-3.svg new file mode 100644 index 0000000..6a8514e --- /dev/null +++ b/images/wave-3.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/images/wave-3_mobile.svg b/images/wave-3_mobile.svg new file mode 100644 index 0000000..5f90d6b --- /dev/null +++ b/images/wave-3_mobile.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/images/wave-4.svg b/images/wave-4.svg new file mode 100644 index 0000000..1bfc855 --- /dev/null +++ b/images/wave-4.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/images/wave-4_mobile.svg b/images/wave-4_mobile.svg new file mode 100644 index 0000000..06773ca --- /dev/null +++ b/images/wave-4_mobile.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/images/wave1.svg b/images/wave1.svg new file mode 100644 index 0000000..aac4220 --- /dev/null +++ b/images/wave1.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/images/wave1_mobile.svg b/images/wave1_mobile.svg new file mode 100644 index 0000000..8e9e149 --- /dev/null +++ b/images/wave1_mobile.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/images/webclip.svg b/images/webclip.svg new file mode 100644 index 0000000..ae528bd --- /dev/null +++ b/images/webclip.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..7f8a373 --- /dev/null +++ b/index.html @@ -0,0 +1,529 @@ + + + + + + Bored Fund - Become wealthy the bored way + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+
Bored Investments
+
+

Make money while you're Bored

+
+
+

"Making money has never been so boring but delightful" - The Bored Wealthy

+
+ Make money while you sleep walk +
+
+
+
NFT 1 image
+
NFT 6 Image
+
+
+
+

"Making money has never been so boring but delightful" - The Bored Wealthy

+
+ Make money while you sleep walk +
+
+
+
+
+
+
+
Become a new you
+
+

Meet the Bored Wealthy!

+
+
+
+
+
+
+
246 Bored Investors and counting
+
+

Our growing investors growing their net wealth.

+
+
+
+
+
Wealth is Ethical
+
+

We invest in companies that create abundance and more wealth..

Check your pockets yeaah what's that?
There's an iPhone made by Apple. Dont just buy one, own the company

+
+
+
+
+
You cant be normal and expect abnormal results
+
+

Let your investment in us be your dirty little secret

+
+
+
+
+
+
+
+
NFT 3 Image
+
NFT 4 Image
+
+
+
NFT 6 Image
+
NFT 5 Image
+
NFT 7 Image
+
+
+
NFT 8 Image
+
NFT 9 Image
+
NFT 10 Image
+
+
+
+
+
+
+
+
+
+
+
Rarity
+
+

Exclusive Power Law Returns

+
+
+
+
+
+
+
20% Set Target Returns @ minimum
+
+
+
+

Our secret proprietary sauce (better than Coca-colas soda and the Kentucky Fried Chicken recipes) means we believe we can consistently achieve a minimum of 20% returns.

+
+
+
+
+
+
+
+
+
Your money safe against inflation & Black Swan 🦢Events
+
+
+
+

We hedge our strategy with Inflation Insurance so even in the most trying of times with endless money printing, you're assets always conserve their value relative to the money printing.

We have also made damn sure we back-tested this strategy to even account for Black Swan events like the Global Financial Crisis.

+
+
+
+
+
+
+
+
+
Rare
+
+
Tier 3
+
+
+

Diam vestibulum mattis aliquam, urna condimentum id. Ultrices sit tincidunt diam integer amet, nec facilisis nec mi. Faucibus posuere turpis commodo leo ipsum magnis.

+
+
NFT 8 Image
+
+
+
+
+
+
+
Very Rare
+
+
Tier 4
+
+
+

Diam vestibulum mattis aliquam, urna condimentum id. Ultrices sit tincidunt diam integer amet, nec facilisis nec mi. Faucibus posuere turpis commodo leo ipsum magnis.

+
+
NFT 9 Image
+
+
+
+
+
+
+
Legendary
+
+
Tier 1
+
+
+

Diam vestibulum mattis aliquam, urna condimentum id. Ultrices sit tincidunt diam integer amet, nec facilisis nec mi. Faucibus posuere turpis commodo leo ipsum magnis.

+
+
NFT 10 Image
+
+
+
+
+
+
+
+
+
+
+
+
Grow wealthy
+
+

Your Investment Roadmap

+
+
+
+
+
+
Day Zero
+
+
Your First Investment
+
+

ooh here's where the fear of taking the first step...knowing it will be life changing, are you ready for it?

+
+
+
+
+
+
+
+
0%
+
+
+
+
+
+
+
12 months in
+
+
Your first 20% return
+
+

This is where you start to feel really ecstatic in anticipation of how much money you're going to make

+
+
+
+
+
+
+
+
20%
+
+
NFT 5 Image
+
+
+
+
+
+
24 months in
+
+
Second 20% return
+
+

This is when you start to bubble and watch your money compound and grow..you start to feel becoming rich

+
+
+
+
+
+
+
+
40%
+
+
+
+
+
+
+
36 months in
+
+
Join the rich class
+
+

Depending on your level of investment, you are now certifiably part of the rich class. Your confidence shoots up, your mindset becomes "anything is possible"

+
+
+
+
+
+
+
+
60%
+
+
+
+
+
+
+
+
48 months in
+
+
Your life is changed
+
+

You start thinking like a rich person not in spending but in investing. You look for more opportunities or double down to plant a tree that will provide shade for your future generations

+
+
+
+
+
+
+
+
80%
+
+
+
+
+
+
+
Year 4 & 6 months
+
+
You can access your liquidity
+
+

Access your returns! ..or continue to double down and grow wealthy to go after Bill Gates

+
+
+
+
100%
+
+
NFT 9 Image
+
+
+
+
+
+
+
+
+
+
+
Team
+
+

Meet Our Team

+
+
+
+
NFT 7 Image
+
+
Investment Wizard
+
+ +
Omar
+
+
+
+
NFT 6 Image
+
+
Executive Assistant
+
+
Alecx
+
+
+
+
+
+
+
+
+
+
Faq
+
+

Frequent Questions

+
+
+
+
+
Imperdiet et nunc, ipsum laoreet iaculis aliquet?
+
+
+
+
+
+
+

Tristique quisque leo, suscipit ultrices consectetur feugiat proin. Egestas tortor ut tempor gravida egestas. Maecenas purus, habitant sed fusce viverra. Nibh nunc, porttitor luctus quis est lacus eget mauris porttitor. Consequat, vestibulum ipsum sit purus porta. Non, neque viverra molestie semper mauris, nam odio. Tempus lacus morbi tortor arcu in.

+
+
+
+
+
Mi fringilla sit felis tristique varius tempus?
+
+
+
+
+
+
+

Tristique quisque leo, suscipit ultrices consectetur feugiat proin. Egestas tortor ut tempor gravida egestas. Maecenas purus, habitant sed fusce viverra. Nibh nunc, porttitor luctus quis est lacus eget mauris porttitor. Consequat, vestibulum ipsum sit purus porta. Non, neque viverra molestie semper mauris, nam odio. Tempus lacus morbi tortor arcu in.

+
+
+
+
+
Faucibus nec dictum pellentesque arcu ultrices ultricies?
+
+
+
+
+
+
+

Tristique quisque leo, suscipit ultrices consectetur feugiat proin. Egestas tortor ut tempor gravida egestas. Maecenas purus, habitant sed fusce viverra. Nibh nunc, porttitor luctus quis est lacus eget mauris porttitor. Consequat, vestibulum ipsum sit purus porta. Non, neque viverra molestie semper mauris, nam odio. Tempus lacus morbi tortor arcu in.

+
+
+
+
+
Morbi eget tristique porttitor turpis placerat tristique?
+
+
+
+
+
+
+

Tristique quisque leo, suscipit ultrices consectetur feugiat proin. Egestas tortor ut tempor gravida egestas. Maecenas purus, habitant sed fusce viverra. Nibh nunc, porttitor luctus quis est lacus eget mauris porttitor. Consequat, vestibulum ipsum sit purus porta. Non, neque viverra molestie semper mauris, nam odio. Tempus lacus morbi tortor arcu in.

+
+
+
+
+
Dolor turpis at turpis senectus convallis nunc pellentesque?
+
+
+
+
+
+
+

Tristique quisque leo, suscipit ultrices consectetur feugiat proin. Egestas tortor ut tempor gravida egestas. Maecenas purus, habitant sed fusce viverra. Nibh nunc, porttitor luctus quis est lacus eget mauris porttitor. Consequat, vestibulum ipsum sit purus porta. Non, neque viverra molestie semper mauris, nam odio. Tempus lacus morbi tortor arcu in.

+
+
+
+
+
Amet, viverra tellus ultricies non eros faucibus hendrerit?
+
+
+
+
+
+
+

Tristique quisque leo, suscipit ultrices consectetur feugiat proin. Egestas tortor ut tempor gravida egestas. Maecenas purus, habitant sed fusce viverra. Nibh nunc, porttitor luctus quis est lacus eget mauris porttitor. Consequat, vestibulum ipsum sit purus porta. Non, neque viverra molestie semper mauris, nam odio. Tempus lacus morbi tortor arcu in.

+
+
+
+
+
+ +
+
+
Bored..🥱💰💰
+
+
+
Bored..🥱💰💰
+
+
+
Bored..🥱💰💰
+
+
+
+ + + + + \ No newline at end of file diff --git a/js/webflow.js b/js/webflow.js new file mode 100644 index 0000000..1d52ec2 --- /dev/null +++ b/js/webflow.js @@ -0,0 +1,20106 @@ +/*! + * Webflow: Front-end site library + * @license MIT + * Inline scripts may access the api using an async handler: + * var Webflow = Webflow || []; + * Webflow.push(readyFunction); + */ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 129); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) { + return it && it.Math == Math && it; +}; + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +module.exports = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof global == 'object' && global) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25))) + +/***/ }), +/* 1 */ +/***/ (function(module, exports) { + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; +} + +module.exports = _interopRequireDefault; + +/***/ }), +/* 2 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ +var isArray = Array.isArray; + +module.exports = isArray; + + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(18); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var _exportNames = { + IX2EngineActionTypes: true, + IX2EngineConstants: true +}; +exports.IX2EngineConstants = exports.IX2EngineActionTypes = void 0; + +var _triggerEvents = __webpack_require__(187); + +Object.keys(_triggerEvents).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _triggerEvents[key]; + } + }); +}); + +var _animationActions = __webpack_require__(94); + +Object.keys(_animationActions).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _animationActions[key]; + } + }); +}); + +var _triggerInteractions = __webpack_require__(188); + +Object.keys(_triggerInteractions).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _triggerInteractions[key]; + } + }); +}); + +var _reducedMotion = __webpack_require__(189); + +Object.keys(_reducedMotion).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _reducedMotion[key]; + } + }); +}); + +var IX2EngineActionTypes = _interopRequireWildcard(__webpack_require__(190)); + +exports.IX2EngineActionTypes = IX2EngineActionTypes; + +var IX2EngineConstants = _interopRequireWildcard(__webpack_require__(191)); + +exports.IX2EngineConstants = IX2EngineConstants; + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals window, document, navigator, WEBFLOW_ENV_TEST */ + +/* eslint-disable no-var */ + +/** + * Webflow: Core site library + */ + +var Webflow = {}; +var modules = {}; +var primary = []; +var secondary = window.Webflow || []; +var $ = window.jQuery; +var $win = $(window); +var $doc = $(document); +var isFunction = $.isFunction; + +var _ = Webflow._ = __webpack_require__(131); + +var tram = Webflow.tram = __webpack_require__(68) && $.tram; +var domready = false; +var destroyed = false; +tram.config.hideBackface = false; +tram.config.keepInherited = true; +/** + * Webflow.define - Define a named module + * @param {string} name + * @param {function} factory + * @param {object} options + * @return {object} + */ + +Webflow.define = function (name, factory, options) { + if (modules[name]) { + unbindModule(modules[name]); + } + + var instance = modules[name] = factory($, _, options) || {}; + bindModule(instance); + return instance; +}; +/** + * Webflow.require - Require a named module + * @param {string} name + * @return {object} + */ + + +Webflow.require = function (name) { + return modules[name]; +}; + +function bindModule(module) { + // If running in Webflow app, subscribe to design/preview events + if (Webflow.env()) { + isFunction(module.design) && $win.on('__wf_design', module.design); + isFunction(module.preview) && $win.on('__wf_preview', module.preview); + } // Subscribe to front-end destroy event + + + isFunction(module.destroy) && $win.on('__wf_destroy', module.destroy); // Look for ready method on module + + if (module.ready && isFunction(module.ready)) { + addReady(module); + } +} + +function addReady(module) { + // If domready has already happened, run ready method + if (domready) { + module.ready(); + return; + } // Otherwise add ready method to the primary queue (only once) + + + if (_.contains(primary, module.ready)) { + return; + } + + primary.push(module.ready); +} + +function unbindModule(module) { + // Unsubscribe module from window events + isFunction(module.design) && $win.off('__wf_design', module.design); + isFunction(module.preview) && $win.off('__wf_preview', module.preview); + isFunction(module.destroy) && $win.off('__wf_destroy', module.destroy); // Remove ready method from primary queue + + if (module.ready && isFunction(module.ready)) { + removeReady(module); + } +} + +function removeReady(module) { + primary = _.filter(primary, function (readyFn) { + return readyFn !== module.ready; + }); +} +/** + * Webflow.push - Add a ready handler into secondary queue + * @param {function} ready Callback to invoke on domready + */ + + +Webflow.push = function (ready) { + // If domready has already happened, invoke handler + if (domready) { + isFunction(ready) && ready(); + return; + } // Otherwise push into secondary queue + + + secondary.push(ready); +}; +/** + * Webflow.env - Get the state of the Webflow app + * @param {string} mode [optional] + * @return {boolean} + */ + + +Webflow.env = function (mode) { + var designFlag = window.__wf_design; + var inApp = typeof designFlag !== 'undefined'; + + if (!mode) { + return inApp; + } + + if (mode === 'design') { + return inApp && designFlag; + } + + if (mode === 'preview') { + return inApp && !designFlag; + } + + if (mode === 'slug') { + return inApp && window.__wf_slug; + } + + if (mode === 'editor') { + return window.WebflowEditor; + } + + if (mode === 'test') { + return false || window.__wf_test; + } + + if (mode === 'frame') { + return window !== window.top; + } +}; // Feature detects + browser sniffs ಠ_ಠ + + +var userAgent = navigator.userAgent.toLowerCase(); +var touch = Webflow.env.touch = 'ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch; +var chrome = Webflow.env.chrome = /chrome/.test(userAgent) && /Google/.test(navigator.vendor) && parseInt(userAgent.match(/chrome\/(\d+)\./)[1], 10); +var ios = Webflow.env.ios = /(ipod|iphone|ipad)/.test(userAgent); +Webflow.env.safari = /safari/.test(userAgent) && !chrome && !ios; // Maintain current touch target to prevent late clicks on touch devices + +var touchTarget; // Listen for both events to support touch/mouse hybrid devices + +touch && $doc.on('touchstart mousedown', function (evt) { + touchTarget = evt.target; +}); +/** + * Webflow.validClick - validate click target against current touch target + * @param {HTMLElement} clickTarget Element being clicked + * @return {Boolean} True if click target is valid (always true on non-touch) + */ + +Webflow.validClick = touch ? function (clickTarget) { + return clickTarget === touchTarget || $.contains(clickTarget, touchTarget); +} : function () { + return true; +}; +/** + * Webflow.resize, Webflow.scroll - throttled event proxies + */ + +var resizeEvents = 'resize.webflow orientationchange.webflow load.webflow'; +var scrollEvents = 'scroll.webflow ' + resizeEvents; +Webflow.resize = eventProxy($win, resizeEvents); +Webflow.scroll = eventProxy($win, scrollEvents); +Webflow.redraw = eventProxy(); // Create a proxy instance for throttled events + +function eventProxy(target, types) { + // Set up throttled method (using custom frame-based _.throttle) + var handlers = []; + var proxy = {}; + proxy.up = _.throttle(function (evt) { + _.each(handlers, function (h) { + h(evt); + }); + }); // Bind events to target + + if (target && types) { + target.on(types, proxy.up); + } + /** + * Add an event handler + * @param {function} handler + */ + + + proxy.on = function (handler) { + if (typeof handler !== 'function') { + return; + } + + if (_.contains(handlers, handler)) { + return; + } + + handlers.push(handler); + }; + /** + * Remove an event handler + * @param {function} handler + */ + + + proxy.off = function (handler) { + // If no arguments supplied, clear all handlers + if (!arguments.length) { + handlers = []; + return; + } // Otherwise, remove handler from the list + + + handlers = _.filter(handlers, function (h) { + return h !== handler; + }); + }; + + return proxy; +} // Webflow.location - Wrap window.location in api + + +Webflow.location = function (url) { + window.location = url; +}; + +if (Webflow.env()) { + // Ignore redirects inside a Webflow design/edit environment + Webflow.location = function () {}; +} // Webflow.ready - Call primary and secondary handlers + + +Webflow.ready = function () { + domready = true; // Restore modules after destroy + + if (destroyed) { + restoreModules(); // Otherwise run primary ready methods + } else { + _.each(primary, callReady); + } // Run secondary ready methods + + + _.each(secondary, callReady); // Trigger resize + + + Webflow.resize.up(); +}; + +function callReady(readyFn) { + isFunction(readyFn) && readyFn(); +} + +function restoreModules() { + destroyed = false; + + _.each(modules, bindModule); +} +/** + * Webflow.load - Add a window load handler that will run even if load event has already happened + * @param {function} handler + */ + + +var deferLoad; + +Webflow.load = function (handler) { + deferLoad.then(handler); +}; + +function bindLoad() { + // Reject any previous deferred (to support destroy) + if (deferLoad) { + deferLoad.reject(); + $win.off('load', deferLoad.resolve); + } // Create deferred and bind window load event + + + deferLoad = new $.Deferred(); + $win.on('load', deferLoad.resolve); +} // Webflow.destroy - Trigger a destroy event for all modules + + +Webflow.destroy = function (options) { + options = options || {}; + destroyed = true; + $win.triggerHandler('__wf_destroy'); // Allow domready reset for tests + + if (options.domready != null) { + domready = options.domready; + } // Unbind modules + + + _.each(modules, unbindModule); // Clear any proxy event handlers + + + Webflow.resize.off(); + Webflow.scroll.off(); + Webflow.redraw.off(); // Clear any queued ready methods + + primary = []; + secondary = []; // If load event has not yet fired, replace the deferred + + if (deferLoad.state() === 'pending') { + bindLoad(); + } +}; // Listen for domready + + +$(Webflow.ready); // Listen for window.onload and resolve deferred + +bindLoad(); // Export commonjs module + +module.exports = window.Webflow = Webflow; + +/***/ }), +/* 5 */ +/***/ (function(module, exports) { + +var FunctionPrototype = Function.prototype; +var bind = FunctionPrototype.bind; +var call = FunctionPrototype.call; +var callBind = bind && bind.bind(call); + +module.exports = bind ? function (fn) { + return fn && callBind(call, fn); +} : function (fn) { + return fn && function () { + return call.apply(fn, arguments); + }; +}; + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +var freeGlobal = __webpack_require__(99); + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = freeGlobal || freeSelf || Function('return this')(); + +module.exports = root; + + +/***/ }), +/* 7 */ +/***/ (function(module, exports) { + +// `IsCallable` abstract operation +// https://tc39.es/ecma262/#sec-iscallable +module.exports = function (argument) { + return typeof argument == 'function'; +}; + + +/***/ }), +/* 8 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); +} + +module.exports = isObject; + + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +var uncurryThis = __webpack_require__(5); +var toObject = __webpack_require__(155); + +var hasOwnProperty = uncurryThis({}.hasOwnProperty); + +// `HasOwnProperty` abstract operation +// https://tc39.es/ecma262/#sec-hasownproperty +module.exports = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject(it), key); +}; + + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseMatches = __webpack_require__(194), + baseMatchesProperty = __webpack_require__(248), + identity = __webpack_require__(62), + isArray = __webpack_require__(2), + property = __webpack_require__(257); + +/** + * The base implementation of `_.iteratee`. + * + * @private + * @param {*} [value=_.identity] The value to convert to an iteratee. + * @returns {Function} Returns the iteratee. + */ +function baseIteratee(value) { + // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. + // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. + if (typeof value == 'function') { + return value; + } + if (value == null) { + return identity; + } + if (typeof value == 'object') { + return isArray(value) + ? baseMatchesProperty(value[0], value[1]) + : baseMatches(value); + } + return property(value); +} + +module.exports = baseIteratee; + + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsNative = __webpack_require__(206), + getValue = __webpack_require__(211); + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; +} + +module.exports = getNative; + + +/***/ }), +/* 12 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return value != null && typeof value == 'object'; +} + +module.exports = isObjectLike; + + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +var fails = __webpack_require__(19); + +// Detect IE8's incomplete defineProperty implementation +module.exports = !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; +}); + + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(18); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.IX2VanillaUtils = exports.IX2VanillaPlugins = exports.IX2ElementsReducer = exports.IX2EasingUtils = exports.IX2Easings = exports.IX2BrowserSupport = void 0; + +var IX2BrowserSupport = _interopRequireWildcard(__webpack_require__(47)); + +exports.IX2BrowserSupport = IX2BrowserSupport; + +var IX2Easings = _interopRequireWildcard(__webpack_require__(116)); + +exports.IX2Easings = IX2Easings; + +var IX2EasingUtils = _interopRequireWildcard(__webpack_require__(118)); + +exports.IX2EasingUtils = IX2EasingUtils; + +var IX2ElementsReducer = _interopRequireWildcard(__webpack_require__(266)); + +exports.IX2ElementsReducer = IX2ElementsReducer; + +var IX2VanillaPlugins = _interopRequireWildcard(__webpack_require__(120)); + +exports.IX2VanillaPlugins = IX2VanillaPlugins; + +var IX2VanillaUtils = _interopRequireWildcard(__webpack_require__(268)); + +exports.IX2VanillaUtils = IX2VanillaUtils; + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + +var Symbol = __webpack_require__(23), + getRawTag = __webpack_require__(207), + objectToString = __webpack_require__(208); + +/** `Object#toString` result references. */ +var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; + +/** Built-in value references. */ +var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + +/** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? getRawTag(value) + : objectToString(value); +} + +module.exports = baseGetTag; + + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + +var isFunction = __webpack_require__(98), + isLength = __webpack_require__(55); + +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ +function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); +} + +module.exports = isArrayLike; + + +/***/ }), +/* 17 */ +/***/ (function(module, exports) { + +function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } + +function _typeof(obj) { + if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") { + module.exports = _typeof = function _typeof(obj) { + return _typeof2(obj); + }; + } else { + module.exports = _typeof = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); + }; + } + + return _typeof(obj); +} + +module.exports = _typeof; + +/***/ }), +/* 18 */ +/***/ (function(module, exports) { + +function _interopRequireWildcard(obj) { + if (obj && obj.__esModule) { + return obj; + } else { + var newObj = {}; + + if (obj != null) { + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; + + if (desc.get || desc.set) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + } + + newObj["default"] = obj; + return newObj; + } +} + +module.exports = _interopRequireWildcard; + +/***/ }), +/* 19 */ +/***/ (function(module, exports) { + +module.exports = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } +}; + + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + +var isCallable = __webpack_require__(7); + +module.exports = function (it) { + return typeof it == 'object' ? it !== null : isCallable(it); +}; + + +/***/ }), +/* 21 */ +/***/ (function(module, exports) { + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +module.exports = _defineProperty; + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +exports.clone = clone; +exports.addLast = addLast; +exports.addFirst = addFirst; +exports.removeLast = removeLast; +exports.removeFirst = removeFirst; +exports.insert = insert; +exports.removeAt = removeAt; +exports.replaceAt = replaceAt; +exports.getIn = getIn; +exports.set = set; +exports.setIn = setIn; +exports.update = update; +exports.updateIn = updateIn; +exports.merge = merge; +exports.mergeDeep = mergeDeep; +exports.mergeIn = mergeIn; +exports.omit = omit; +exports.addDefaults = addDefaults; + + +/*! + * Timm + * + * Immutability helpers with fast reads and acceptable writes. + * + * @copyright Guillermo Grau Panea 2016 + * @license MIT + */ + +var INVALID_ARGS = 'INVALID_ARGS'; + +// =============================================== +// ### Helpers +// =============================================== + + +function throwStr(msg) { + throw new Error(msg); +} + +function getKeysAndSymbols(obj) { + var keys = Object.keys(obj); + if (Object.getOwnPropertySymbols) { + return keys.concat(Object.getOwnPropertySymbols(obj)); + } + return keys; +} + +var hasOwnProperty = {}.hasOwnProperty; + +function clone(obj) { + if (Array.isArray(obj)) return obj.slice(); + var keys = getKeysAndSymbols(obj); + var out = {}; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + out[key] = obj[key]; + } + return out; +} + +function doMerge(fAddDefaults, fDeep, first) { + var out = first; + !(out != null) && throwStr( false ? undefined : INVALID_ARGS); + var fChanged = false; + + for (var _len = arguments.length, rest = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { + rest[_key - 3] = arguments[_key]; + } + + for (var idx = 0; idx < rest.length; idx++) { + var obj = rest[idx]; + if (obj == null) continue; + var keys = getKeysAndSymbols(obj); + if (!keys.length) continue; + for (var j = 0; j <= keys.length; j++) { + var key = keys[j]; + if (fAddDefaults && out[key] !== undefined) continue; + var nextVal = obj[key]; + if (fDeep && isObject(out[key]) && isObject(nextVal)) { + nextVal = doMerge(fAddDefaults, fDeep, out[key], nextVal); + } + if (nextVal === undefined || nextVal === out[key]) continue; + if (!fChanged) { + fChanged = true; + out = clone(out); + } + out[key] = nextVal; + } + } + return out; +} + +function isObject(o) { + var type = typeof o === 'undefined' ? 'undefined' : _typeof(o); + return o != null && (type === 'object' || type === 'function'); +} + +// _deepFreeze = (obj) -> +// Object.freeze obj +// for key in Object.getOwnPropertyNames obj +// val = obj[key] +// if isObject(val) and not Object.isFrozen val +// _deepFreeze val +// obj + +// =============================================== +// -- ### Arrays +// =============================================== + +// -- #### addLast() +// -- Returns a new array with an appended item or items. +// -- +// -- Usage: `addLast(array: Array, val: Array|T): Array` +// -- +// -- ```js +// -- arr = ['a', 'b'] +// -- arr2 = addLast(arr, 'c') +// -- // ['a', 'b', 'c'] +// -- arr2 === arr +// -- // false +// -- arr3 = addLast(arr, ['c', 'd']) +// -- // ['a', 'b', 'c', 'd'] +// -- ``` +// `array.concat(val)` also handles the scalar case, +// but is apparently very slow +function addLast(array, val) { + if (Array.isArray(val)) return array.concat(val); + return array.concat([val]); +} + +// -- #### addFirst() +// -- Returns a new array with a prepended item or items. +// -- +// -- Usage: `addFirst(array: Array, val: Array|T): Array` +// -- +// -- ```js +// -- arr = ['a', 'b'] +// -- arr2 = addFirst(arr, 'c') +// -- // ['c', 'a', 'b'] +// -- arr2 === arr +// -- // false +// -- arr3 = addFirst(arr, ['c', 'd']) +// -- // ['c', 'd', 'a', 'b'] +// -- ``` +function addFirst(array, val) { + if (Array.isArray(val)) return val.concat(array); + return [val].concat(array); +} + +// -- #### removeLast() +// -- Returns a new array removing the last item. +// -- +// -- Usage: `removeLast(array: Array): Array` +// -- +// -- ```js +// -- arr = ['a', 'b'] +// -- arr2 = removeLast(arr) +// -- // ['a'] +// -- arr2 === arr +// -- // false +// -- +// -- // The same array is returned if there are no changes: +// -- arr3 = [] +// -- removeLast(arr3) === arr3 +// -- // true +// -- ``` +function removeLast(array) { + if (!array.length) return array; + return array.slice(0, array.length - 1); +} + +// -- #### removeFirst() +// -- Returns a new array removing the first item. +// -- +// -- Usage: `removeFirst(array: Array): Array` +// -- +// -- ```js +// -- arr = ['a', 'b'] +// -- arr2 = removeFirst(arr) +// -- // ['b'] +// -- arr2 === arr +// -- // false +// -- +// -- // The same array is returned if there are no changes: +// -- arr3 = [] +// -- removeFirst(arr3) === arr3 +// -- // true +// -- ``` +function removeFirst(array) { + if (!array.length) return array; + return array.slice(1); +} + +// -- #### insert() +// -- Returns a new array obtained by inserting an item or items +// -- at a specified index. +// -- +// -- Usage: `insert(array: Array, idx: number, val: Array|T): Array` +// -- +// -- ```js +// -- arr = ['a', 'b', 'c'] +// -- arr2 = insert(arr, 1, 'd') +// -- // ['a', 'd', 'b', 'c'] +// -- arr2 === arr +// -- // false +// -- insert(arr, 1, ['d', 'e']) +// -- // ['a', 'd', 'e', 'b', 'c'] +// -- ``` +function insert(array, idx, val) { + return array.slice(0, idx).concat(Array.isArray(val) ? val : [val]).concat(array.slice(idx)); +} + +// -- #### removeAt() +// -- Returns a new array obtained by removing an item at +// -- a specified index. +// -- +// -- Usage: `removeAt(array: Array, idx: number): Array` +// -- +// -- ```js +// -- arr = ['a', 'b', 'c'] +// -- arr2 = removeAt(arr, 1) +// -- // ['a', 'c'] +// -- arr2 === arr +// -- // false +// -- +// -- // The same array is returned if there are no changes: +// -- removeAt(arr, 4) === arr +// -- // true +// -- ``` +function removeAt(array, idx) { + if (idx >= array.length || idx < 0) return array; + return array.slice(0, idx).concat(array.slice(idx + 1)); +} + +// -- #### replaceAt() +// -- Returns a new array obtained by replacing an item at +// -- a specified index. If the provided item is the same as +// -- (*referentially equal to*) the previous item at that position, +// -- the original array is returned. +// -- +// -- Usage: `replaceAt(array: Array, idx: number, newItem: T): Array` +// -- +// -- ```js +// -- arr = ['a', 'b', 'c'] +// -- arr2 = replaceAt(arr, 1, 'd') +// -- // ['a', 'd', 'c'] +// -- arr2 === arr +// -- // false +// -- +// -- // The same object is returned if there are no changes: +// -- replaceAt(arr, 1, 'b') === arr +// -- // true +// -- ``` +function replaceAt(array, idx, newItem) { + if (array[idx] === newItem) return array; + var len = array.length; + var result = Array(len); + for (var i = 0; i < len; i++) { + result[i] = array[i]; + } + result[idx] = newItem; + return result; +} + +// =============================================== +// -- ### Collections (objects and arrays) +// =============================================== +// -- The following types are used throughout this section +// -- ```js +// -- type ArrayOrObject = Array|Object; +// -- type Key = number|string; +// -- ``` + +// -- #### getIn() +// -- Returns a value from an object at a given path. Works with +// -- nested arrays and objects. If the path does not exist, it returns +// -- `undefined`. +// -- +// -- Usage: `getIn(obj: ?ArrayOrObject, path: Array): any` +// -- +// -- ```js +// -- obj = { a: 1, b: 2, d: { d1: 3, d2: 4 }, e: ['a', 'b', 'c'] } +// -- getIn(obj, ['d', 'd1']) +// -- // 3 +// -- getIn(obj, ['e', 1]) +// -- // 'b' +// -- ``` +function getIn(obj, path) { + !Array.isArray(path) && throwStr( false ? undefined : INVALID_ARGS); + if (obj == null) return undefined; + var ptr = obj; + for (var i = 0; i < path.length; i++) { + var key = path[i]; + ptr = ptr != null ? ptr[key] : undefined; + if (ptr === undefined) return ptr; + } + return ptr; +} + +// -- #### set() +// -- Returns a new object with a modified attribute. +// -- If the provided value is the same as (*referentially equal to*) +// -- the previous value, the original object is returned. +// -- +// -- Usage: `set(obj: ?T, key: Key, val: any): T` +// -- +// -- ```js +// -- obj = { a: 1, b: 2, c: 3 } +// -- obj2 = set(obj, 'b', 5) +// -- // { a: 1, b: 5, c: 3 } +// -- obj2 === obj +// -- // false +// -- +// -- // The same object is returned if there are no changes: +// -- set(obj, 'b', 2) === obj +// -- // true +// -- ``` +function set(obj, key, val) { + var fallback = typeof key === 'number' ? [] : {}; + var finalObj = obj == null ? fallback : obj; + if (finalObj[key] === val) return finalObj; + var obj2 = clone(finalObj); + obj2[key] = val; + return obj2; +} + +// -- #### setIn() +// -- Returns a new object with a modified **nested** attribute. +// -- +// -- Notes: +// -- +// -- * If the provided value is the same as (*referentially equal to*) +// -- the previous value, the original object is returned. +// -- * If the path does not exist, it will be created before setting +// -- the new value. +// -- +// -- Usage: `setIn(obj: T, path: Array, val: any): T` +// -- +// -- ```js +// -- obj = { a: 1, b: 2, d: { d1: 3, d2: 4 }, e: { e1: 'foo', e2: 'bar' } } +// -- obj2 = setIn(obj, ['d', 'd1'], 4) +// -- // { a: 1, b: 2, d: { d1: 4, d2: 4 }, e: { e1: 'foo', e2: 'bar' } } +// -- obj2 === obj +// -- // false +// -- obj2.d === obj.d +// -- // false +// -- obj2.e === obj.e +// -- // true +// -- +// -- // The same object is returned if there are no changes: +// -- obj3 = setIn(obj, ['d', 'd1'], 3) +// -- // { a: 1, b: 2, d: { d1: 3, d2: 4 }, e: { e1: 'foo', e2: 'bar' } } +// -- obj3 === obj +// -- // true +// -- obj3.d === obj.d +// -- // true +// -- obj3.e === obj.e +// -- // true +// -- +// -- // ... unknown paths create intermediate keys. Numeric segments are treated as array indices: +// -- setIn({ a: 3 }, ['unknown', 0, 'path'], 4) +// -- // { a: 3, unknown: [{ path: 4 }] } +// -- ``` +function doSetIn(obj, path, val, idx) { + var newValue = void 0; + var key = path[idx]; + if (idx === path.length - 1) { + newValue = val; + } else { + var nestedObj = isObject(obj) && isObject(obj[key]) ? obj[key] : typeof path[idx + 1] === 'number' ? [] : {}; + newValue = doSetIn(nestedObj, path, val, idx + 1); + } + return set(obj, key, newValue); +} + +function setIn(obj, path, val) { + if (!path.length) return val; + return doSetIn(obj, path, val, 0); +} + +// -- #### update() +// -- Returns a new object with a modified attribute, +// -- calculated via a user-provided callback based on the current value. +// -- If the calculated value is the same as (*referentially equal to*) +// -- the previous value, the original object is returned. +// -- +// -- Usage: `update(obj: T, key: Key, +// -- fnUpdate: (prevValue: any) => any): T` +// -- +// -- ```js +// -- obj = { a: 1, b: 2, c: 3 } +// -- obj2 = update(obj, 'b', (val) => val + 1) +// -- // { a: 1, b: 3, c: 3 } +// -- obj2 === obj +// -- // false +// -- +// -- // The same object is returned if there are no changes: +// -- update(obj, 'b', (val) => val) === obj +// -- // true +// -- ``` +function update(obj, key, fnUpdate) { + var prevVal = obj == null ? undefined : obj[key]; + var nextVal = fnUpdate(prevVal); + return set(obj, key, nextVal); +} + +// -- #### updateIn() +// -- Returns a new object with a modified **nested** attribute, +// -- calculated via a user-provided callback based on the current value. +// -- If the calculated value is the same as (*referentially equal to*) +// -- the previous value, the original object is returned. +// -- +// -- Usage: `updateIn(obj: T, path: Array, +// -- fnUpdate: (prevValue: any) => any): T` +// -- +// -- ```js +// -- obj = { a: 1, d: { d1: 3, d2: 4 } } +// -- obj2 = updateIn(obj, ['d', 'd1'], (val) => val + 1) +// -- // { a: 1, d: { d1: 4, d2: 4 } } +// -- obj2 === obj +// -- // false +// -- +// -- // The same object is returned if there are no changes: +// -- obj3 = updateIn(obj, ['d', 'd1'], (val) => val) +// -- // { a: 1, d: { d1: 3, d2: 4 } } +// -- obj3 === obj +// -- // true +// -- ``` +function updateIn(obj, path, fnUpdate) { + var prevVal = getIn(obj, path); + var nextVal = fnUpdate(prevVal); + return setIn(obj, path, nextVal); +} + +// -- #### merge() +// -- Returns a new object built as follows: the overlapping keys from the +// -- second one overwrite the corresponding entries from the first one. +// -- Similar to `Object.assign()`, but immutable. +// -- +// -- Usage: +// -- +// -- * `merge(obj1: Object, obj2: ?Object): Object` +// -- * `merge(obj1: Object, ...objects: Array): Object` +// -- +// -- The unmodified `obj1` is returned if `obj2` does not *provide something +// -- new to* `obj1`, i.e. if either of the following +// -- conditions are true: +// -- +// -- * `obj2` is `null` or `undefined` +// -- * `obj2` is an object, but it is empty +// -- * All attributes of `obj2` are `undefined` +// -- * All attributes of `obj2` are referentially equal to the +// -- corresponding attributes of `obj1` +// -- +// -- Note that `undefined` attributes in `obj2` do not modify the +// -- corresponding attributes in `obj1`. +// -- +// -- ```js +// -- obj1 = { a: 1, b: 2, c: 3 } +// -- obj2 = { c: 4, d: 5 } +// -- obj3 = merge(obj1, obj2) +// -- // { a: 1, b: 2, c: 4, d: 5 } +// -- obj3 === obj1 +// -- // false +// -- +// -- // The same object is returned if there are no changes: +// -- merge(obj1, { c: 3 }) === obj1 +// -- // true +// -- ``` +function merge(a, b, c, d, e, f) { + for (var _len2 = arguments.length, rest = Array(_len2 > 6 ? _len2 - 6 : 0), _key2 = 6; _key2 < _len2; _key2++) { + rest[_key2 - 6] = arguments[_key2]; + } + + return rest.length ? doMerge.call.apply(doMerge, [null, false, false, a, b, c, d, e, f].concat(rest)) : doMerge(false, false, a, b, c, d, e, f); +} + +// -- #### mergeDeep() +// -- Returns a new object built as follows: the overlapping keys from the +// -- second one overwrite the corresponding entries from the first one. +// -- If both the first and second entries are objects they are merged recursively. +// -- Similar to `Object.assign()`, but immutable, and deeply merging. +// -- +// -- Usage: +// -- +// -- * `mergeDeep(obj1: Object, obj2: ?Object): Object` +// -- * `mergeDeep(obj1: Object, ...objects: Array): Object` +// -- +// -- The unmodified `obj1` is returned if `obj2` does not *provide something +// -- new to* `obj1`, i.e. if either of the following +// -- conditions are true: +// -- +// -- * `obj2` is `null` or `undefined` +// -- * `obj2` is an object, but it is empty +// -- * All attributes of `obj2` are `undefined` +// -- * All attributes of `obj2` are referentially equal to the +// -- corresponding attributes of `obj1` +// -- +// -- Note that `undefined` attributes in `obj2` do not modify the +// -- corresponding attributes in `obj1`. +// -- +// -- ```js +// -- obj1 = { a: 1, b: 2, c: { a: 1 } } +// -- obj2 = { b: 3, c: { b: 2 } } +// -- obj3 = mergeDeep(obj1, obj2) +// -- // { a: 1, b: 3, c: { a: 1, b: 2 } } +// -- obj3 === obj1 +// -- // false +// -- +// -- // The same object is returned if there are no changes: +// -- mergeDeep(obj1, { c: { a: 1 } }) === obj1 +// -- // true +// -- ``` +function mergeDeep(a, b, c, d, e, f) { + for (var _len3 = arguments.length, rest = Array(_len3 > 6 ? _len3 - 6 : 0), _key3 = 6; _key3 < _len3; _key3++) { + rest[_key3 - 6] = arguments[_key3]; + } + + return rest.length ? doMerge.call.apply(doMerge, [null, false, true, a, b, c, d, e, f].concat(rest)) : doMerge(false, true, a, b, c, d, e, f); +} + +// -- #### mergeIn() +// -- Similar to `merge()`, but merging the value at a given nested path. +// -- Note that the returned type is the same as that of the first argument. +// -- +// -- Usage: +// -- +// -- * `mergeIn(obj1: T, path: Array, obj2: ?Object): T` +// -- * `mergeIn(obj1: T, path: Array, +// -- ...objects: Array): T` +// -- +// -- ```js +// -- obj1 = { a: 1, d: { b: { d1: 3, d2: 4 } } } +// -- obj2 = { d3: 5 } +// -- obj3 = mergeIn(obj1, ['d', 'b'], obj2) +// -- // { a: 1, d: { b: { d1: 3, d2: 4, d3: 5 } } } +// -- obj3 === obj1 +// -- // false +// -- +// -- // The same object is returned if there are no changes: +// -- mergeIn(obj1, ['d', 'b'], { d2: 4 }) === obj1 +// -- // true +// -- ``` +function mergeIn(a, path, b, c, d, e, f) { + var prevVal = getIn(a, path); + if (prevVal == null) prevVal = {}; + var nextVal = void 0; + + for (var _len4 = arguments.length, rest = Array(_len4 > 7 ? _len4 - 7 : 0), _key4 = 7; _key4 < _len4; _key4++) { + rest[_key4 - 7] = arguments[_key4]; + } + + if (rest.length) { + nextVal = doMerge.call.apply(doMerge, [null, false, false, prevVal, b, c, d, e, f].concat(rest)); + } else { + nextVal = doMerge(false, false, prevVal, b, c, d, e, f); + } + return setIn(a, path, nextVal); +} + +// -- #### omit() +// -- Returns an object excluding one or several attributes. +// -- +// -- Usage: `omit(obj: Object, attrs: Array|string): Object` +// +// -- ```js +// -- obj = { a: 1, b: 2, c: 3, d: 4 } +// -- omit(obj, 'a') +// -- // { b: 2, c: 3, d: 4 } +// -- omit(obj, ['b', 'c']) +// -- // { a: 1, d: 4 } +// -- +// -- // The same object is returned if there are no changes: +// -- omit(obj, 'z') === obj1 +// -- // true +// -- ``` +function omit(obj, attrs) { + var omitList = Array.isArray(attrs) ? attrs : [attrs]; + var fDoSomething = false; + for (var i = 0; i < omitList.length; i++) { + if (hasOwnProperty.call(obj, omitList[i])) { + fDoSomething = true; + break; + } + } + if (!fDoSomething) return obj; + var out = {}; + var keys = getKeysAndSymbols(obj); + for (var _i = 0; _i < keys.length; _i++) { + var key = keys[_i]; + if (omitList.indexOf(key) >= 0) continue; + out[key] = obj[key]; + } + return out; +} + +// -- #### addDefaults() +// -- Returns a new object built as follows: `undefined` keys in the first one +// -- are filled in with the corresponding values from the second one +// -- (even if they are `null`). +// -- +// -- Usage: +// -- +// -- * `addDefaults(obj: Object, defaults: Object): Object` +// -- * `addDefaults(obj: Object, ...defaultObjects: Array): Object` +// -- +// -- ```js +// -- obj1 = { a: 1, b: 2, c: 3 } +// -- obj2 = { c: 4, d: 5, e: null } +// -- obj3 = addDefaults(obj1, obj2) +// -- // { a: 1, b: 2, c: 3, d: 5, e: null } +// -- obj3 === obj1 +// -- // false +// -- +// -- // The same object is returned if there are no changes: +// -- addDefaults(obj1, { c: 4 }) === obj1 +// -- // true +// -- ``` +function addDefaults(a, b, c, d, e, f) { + for (var _len5 = arguments.length, rest = Array(_len5 > 6 ? _len5 - 6 : 0), _key5 = 6; _key5 < _len5; _key5++) { + rest[_key5 - 6] = arguments[_key5]; + } + + return rest.length ? doMerge.call.apply(doMerge, [null, true, false, a, b, c, d, e, f].concat(rest)) : doMerge(true, false, a, b, c, d, e, f); +} + +// =============================================== +// ### Public API +// =============================================== +var timm = { + clone: clone, + addLast: addLast, + addFirst: addFirst, + removeLast: removeLast, + removeFirst: removeFirst, + insert: insert, + removeAt: removeAt, + replaceAt: replaceAt, + + getIn: getIn, + // eslint-disable-next-line object-shorthand + set: set, // so that flow doesn't complain + setIn: setIn, + update: update, + updateIn: updateIn, + merge: merge, + mergeDeep: mergeDeep, + mergeIn: mergeIn, + omit: omit, + addDefaults: addDefaults +}; + +exports.default = timm; + + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + +var root = __webpack_require__(6); + +/** Built-in value references. */ +var Symbol = root.Symbol; + +module.exports = Symbol; + + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + +var isSymbol = __webpack_require__(38); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ +function toKey(value) { + if (typeof value == 'string' || isSymbol(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +module.exports = toKey; + + +/***/ }), +/* 25 */ +/***/ (function(module, exports) { + +var g; + +// This works in non-strict mode +g = (function() { + return this; +})(); + +try { + // This works if eval is allowed (see CSP) + g = g || new Function("return this")(); +} catch (e) { + // This works if the window reference is available + if (typeof window === "object") g = window; +} + +// g can still be undefined, but nothing to do about it... +// We return undefined, instead of nothing here, so it's +// easier to handle this case. if(!global) { ...} + +module.exports = g; + + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __webpack_require__) { + +// toObject with fallback for non-array-like ES3 strings +var IndexedObject = __webpack_require__(144); +var requireObjectCoercible = __webpack_require__(72); + +module.exports = function (it) { + return IndexedObject(requireObjectCoercible(it)); +}; + + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0); +var isCallable = __webpack_require__(7); + +var aFunction = function (argument) { + return isCallable(argument) ? argument : undefined; +}; + +module.exports = function (namespace, method) { + return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method]; +}; + + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0); +var DESCRIPTORS = __webpack_require__(13); +var IE8_DOM_DEFINE = __webpack_require__(80); +var anObject = __webpack_require__(29); +var toPropertyKey = __webpack_require__(73); + +var TypeError = global.TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var $defineProperty = Object.defineProperty; + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +exports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + + +/***/ }), +/* 29 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0); +var isObject = __webpack_require__(20); + +var String = global.String; +var TypeError = global.TypeError; + +// `Assert: Type(argument) is Object` +module.exports = function (argument) { + if (isObject(argument)) return argument; + throw TypeError(String(argument) + ' is not an object'); +}; + + +/***/ }), +/* 30 */ +/***/ (function(module, exports) { + +function _extends() { + module.exports = _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; + }; + + return _extends.apply(this, arguments); +} + +module.exports = _extends; + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __webpack_require__) { + +var listCacheClear = __webpack_require__(196), + listCacheDelete = __webpack_require__(197), + listCacheGet = __webpack_require__(198), + listCacheHas = __webpack_require__(199), + listCacheSet = __webpack_require__(200); + +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `ListCache`. +ListCache.prototype.clear = listCacheClear; +ListCache.prototype['delete'] = listCacheDelete; +ListCache.prototype.get = listCacheGet; +ListCache.prototype.has = listCacheHas; +ListCache.prototype.set = listCacheSet; + +module.exports = ListCache; + + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { + +var eq = __webpack_require__(48); + +/** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; +} + +module.exports = assocIndexOf; + + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(11); + +/* Built-in method references that are verified to be native. */ +var nativeCreate = getNative(Object, 'create'); + +module.exports = nativeCreate; + + +/***/ }), +/* 34 */ +/***/ (function(module, exports, __webpack_require__) { + +var isKeyable = __webpack_require__(220); + +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ +function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; +} + +module.exports = getMapData; + + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayLikeKeys = __webpack_require__(106), + baseKeys = __webpack_require__(56), + isArrayLike = __webpack_require__(16); + +/** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ +function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); +} + +module.exports = keys; + + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsArguments = __webpack_require__(238), + isObjectLike = __webpack_require__(12); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + +/** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ +var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); +}; + +module.exports = isArguments; + + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { + +var isArray = __webpack_require__(2), + isKey = __webpack_require__(61), + stringToPath = __webpack_require__(249), + toString = __webpack_require__(252); + +/** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. + */ +function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath(toString(value)); +} + +module.exports = castPath; + + +/***/ }), +/* 38 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(15), + isObjectLike = __webpack_require__(12); + +/** `Object#toString` result references. */ +var symbolTag = '[object Symbol]'; + +/** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ +function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && baseGetTag(value) == symbolTag); +} + +module.exports = isSymbol; + + +/***/ }), +/* 39 */ +/***/ (function(module, exports) { + +var call = Function.prototype.call; + +module.exports = call.bind ? call.bind(call) : function () { + return call.apply(call, arguments); +}; + + +/***/ }), +/* 40 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0); +var setGlobal = __webpack_require__(41); + +var SHARED = '__core-js_shared__'; +var store = global[SHARED] || setGlobal(SHARED, {}); + +module.exports = store; + + +/***/ }), +/* 41 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0); + +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; + +module.exports = function (key, value) { + try { + defineProperty(global, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global[key] = value; + } return value; +}; + + +/***/ }), +/* 42 */ +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__(13); +var definePropertyModule = __webpack_require__(28); +var createPropertyDescriptor = __webpack_require__(71); + +module.exports = DESCRIPTORS ? function (object, key, value) { + return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + + +/***/ }), +/* 43 */ +/***/ (function(module, exports) { + +module.exports = {}; + + +/***/ }), +/* 44 */ +/***/ (function(module, exports) { + +// IE8- don't enum bug keys +module.exports = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; + + +/***/ }), +/* 45 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ActionTypes", function() { return ActionTypes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return createStore; }); +/* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88); +/* harmony import */ var symbol_observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(182); + + + +/** + * These are private action types reserved by Redux. + * For any unknown actions, you must return the current state. + * If the current state is undefined, you must return the initial state. + * Do not reference these action types directly in your code. + */ +var ActionTypes = { + INIT: '@@redux/INIT' +}; + +/** + * Creates a Redux store that holds the state tree. + * The only way to change the data in the store is to call `dispatch()` on it. + * + * There should only be a single store in your app. To specify how different + * parts of the state tree respond to actions, you may combine several reducers + * into a single reducer function by using `combineReducers`. + * + * @param {Function} reducer A function that returns the next state tree, given + * the current state tree and the action to handle. + * + * @param {any} [preloadedState] The initial state. You may optionally specify it + * to hydrate the state from the server in universal apps, or to restore a + * previously serialized user session. + * If you use `combineReducers` to produce the root reducer function, this must be + * an object with the same shape as `combineReducers` keys. + * + * @param {Function} enhancer The store enhancer. You may optionally specify it + * to enhance the store with third-party capabilities such as middleware, + * time travel, persistence, etc. The only store enhancer that ships with Redux + * is `applyMiddleware()`. + * + * @returns {Store} A Redux store that lets you read the state, dispatch actions + * and subscribe to changes. + */ +function createStore(reducer, preloadedState, enhancer) { + var _ref2; + + if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') { + enhancer = preloadedState; + preloadedState = undefined; + } + + if (typeof enhancer !== 'undefined') { + if (typeof enhancer !== 'function') { + throw new Error('Expected the enhancer to be a function.'); + } + + return enhancer(createStore)(reducer, preloadedState); + } + + if (typeof reducer !== 'function') { + throw new Error('Expected the reducer to be a function.'); + } + + var currentReducer = reducer; + var currentState = preloadedState; + var currentListeners = []; + var nextListeners = currentListeners; + var isDispatching = false; + + function ensureCanMutateNextListeners() { + if (nextListeners === currentListeners) { + nextListeners = currentListeners.slice(); + } + } + + /** + * Reads the state tree managed by the store. + * + * @returns {any} The current state tree of your application. + */ + function getState() { + return currentState; + } + + /** + * Adds a change listener. It will be called any time an action is dispatched, + * and some part of the state tree may potentially have changed. You may then + * call `getState()` to read the current state tree inside the callback. + * + * You may call `dispatch()` from a change listener, with the following + * caveats: + * + * 1. The subscriptions are snapshotted just before every `dispatch()` call. + * If you subscribe or unsubscribe while the listeners are being invoked, this + * will not have any effect on the `dispatch()` that is currently in progress. + * However, the next `dispatch()` call, whether nested or not, will use a more + * recent snapshot of the subscription list. + * + * 2. The listener should not expect to see all state changes, as the state + * might have been updated multiple times during a nested `dispatch()` before + * the listener is called. It is, however, guaranteed that all subscribers + * registered before the `dispatch()` started will be called with the latest + * state by the time it exits. + * + * @param {Function} listener A callback to be invoked on every dispatch. + * @returns {Function} A function to remove this change listener. + */ + function subscribe(listener) { + if (typeof listener !== 'function') { + throw new Error('Expected listener to be a function.'); + } + + var isSubscribed = true; + + ensureCanMutateNextListeners(); + nextListeners.push(listener); + + return function unsubscribe() { + if (!isSubscribed) { + return; + } + + isSubscribed = false; + + ensureCanMutateNextListeners(); + var index = nextListeners.indexOf(listener); + nextListeners.splice(index, 1); + }; + } + + /** + * Dispatches an action. It is the only way to trigger a state change. + * + * The `reducer` function, used to create the store, will be called with the + * current state tree and the given `action`. Its return value will + * be considered the **next** state of the tree, and the change listeners + * will be notified. + * + * The base implementation only supports plain object actions. If you want to + * dispatch a Promise, an Observable, a thunk, or something else, you need to + * wrap your store creating function into the corresponding middleware. For + * example, see the documentation for the `redux-thunk` package. Even the + * middleware will eventually dispatch plain object actions using this method. + * + * @param {Object} action A plain object representing “what changed”. It is + * a good idea to keep actions serializable so you can record and replay user + * sessions, or use the time travelling `redux-devtools`. An action must have + * a `type` property which may not be `undefined`. It is a good idea to use + * string constants for action types. + * + * @returns {Object} For convenience, the same action object you dispatched. + * + * Note that, if you use a custom middleware, it may wrap `dispatch()` to + * return something else (for example, a Promise you can await). + */ + function dispatch(action) { + if (!Object(lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_0__["default"])(action)) { + throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.'); + } + + if (typeof action.type === 'undefined') { + throw new Error('Actions may not have an undefined "type" property. ' + 'Have you misspelled a constant?'); + } + + if (isDispatching) { + throw new Error('Reducers may not dispatch actions.'); + } + + try { + isDispatching = true; + currentState = currentReducer(currentState, action); + } finally { + isDispatching = false; + } + + var listeners = currentListeners = nextListeners; + for (var i = 0; i < listeners.length; i++) { + listeners[i](); + } + + return action; + } + + /** + * Replaces the reducer currently used by the store to calculate the state. + * + * You might need this if your app implements code splitting and you want to + * load some of the reducers dynamically. You might also need this if you + * implement a hot reloading mechanism for Redux. + * + * @param {Function} nextReducer The reducer for the store to use instead. + * @returns {void} + */ + function replaceReducer(nextReducer) { + if (typeof nextReducer !== 'function') { + throw new Error('Expected the nextReducer to be a function.'); + } + + currentReducer = nextReducer; + dispatch({ type: ActionTypes.INIT }); + } + + /** + * Interoperability point for observable/reactive libraries. + * @returns {observable} A minimal observable of state changes. + * For more information, see the observable proposal: + * https://github.com/zenparsing/es-observable + */ + function observable() { + var _ref; + + var outerSubscribe = subscribe; + return _ref = { + /** + * The minimal observable subscription method. + * @param {Object} observer Any object that can be used as an observer. + * The observer object should have a `next` method. + * @returns {subscription} An object with an `unsubscribe` method that can + * be used to unsubscribe the observable from the store, and prevent further + * emission of values from the observable. + */ + subscribe: function subscribe(observer) { + if (typeof observer !== 'object') { + throw new TypeError('Expected the observer to be an object.'); + } + + function observeState() { + if (observer.next) { + observer.next(getState()); + } + } + + observeState(); + var unsubscribe = outerSubscribe(observeState); + return { unsubscribe: unsubscribe }; + } + }, _ref[symbol_observable__WEBPACK_IMPORTED_MODULE_1__["default"]] = function () { + return this; + }, _ref; + } + + // When a store is created, an "INIT" action is dispatched so that every + // reducer returns their initial state. This effectively populates + // the initial state tree. + dispatch({ type: ActionTypes.INIT }); + + return _ref2 = { + dispatch: dispatch, + subscribe: subscribe, + getState: getState, + replaceReducer: replaceReducer + }, _ref2[symbol_observable__WEBPACK_IMPORTED_MODULE_1__["default"]] = observable, _ref2; +} + +/***/ }), +/* 46 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return compose; }); +/** + * Composes single-argument functions from right to left. The rightmost + * function can take multiple arguments as it provides the signature for + * the resulting composite function. + * + * @param {...Function} funcs The functions to compose. + * @returns {Function} A function obtained by composing the argument functions + * from right to left. For example, compose(f, g, h) is identical to doing + * (...args) => f(g(h(...args))). + */ + +function compose() { + for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) { + funcs[_key] = arguments[_key]; + } + + if (funcs.length === 0) { + return function (arg) { + return arg; + }; + } + + if (funcs.length === 1) { + return funcs[0]; + } + + var last = funcs[funcs.length - 1]; + var rest = funcs.slice(0, -1); + return function () { + return rest.reduceRight(function (composed, f) { + return f(composed); + }, last.apply(undefined, arguments)); + }; +} + +/***/ }), +/* 47 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(1); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.TRANSFORM_STYLE_PREFIXED = exports.TRANSFORM_PREFIXED = exports.FLEX_PREFIXED = exports.ELEMENT_MATCHES = exports.withBrowser = exports.IS_BROWSER_ENV = void 0; + +var _find = _interopRequireDefault(__webpack_require__(95)); +/* eslint-env browser */ + + +var IS_BROWSER_ENV = typeof window !== 'undefined'; // $FlowFixMe + +exports.IS_BROWSER_ENV = IS_BROWSER_ENV; + +var withBrowser = function withBrowser(fn, fallback) { + if (IS_BROWSER_ENV) { + return fn(); + } + + return fallback; +}; + +exports.withBrowser = withBrowser; +var ELEMENT_MATCHES = withBrowser(function () { + return (0, _find["default"])(['matches', 'matchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector', 'webkitMatchesSelector'], function (key) { + return key in Element.prototype; + }); +}); +exports.ELEMENT_MATCHES = ELEMENT_MATCHES; +var FLEX_PREFIXED = withBrowser(function () { + var el = document.createElement('i'); + var values = ['flex', '-webkit-flex', '-ms-flexbox', '-moz-box', '-webkit-box']; + var none = ''; + + try { + var length = values.length; + + for (var i = 0; i < length; i++) { + var value = values[i]; + el.style.display = value; + + if (el.style.display === value) { + return value; + } + } + + return none; + } catch (err) { + return none; + } +}, 'flex'); +exports.FLEX_PREFIXED = FLEX_PREFIXED; +var TRANSFORM_PREFIXED = withBrowser(function () { + var el = document.createElement('i'); + + if (el.style.transform == null) { + var prefixes = ['Webkit', 'Moz', 'ms']; + var suffix = 'Transform'; + var length = prefixes.length; + + for (var i = 0; i < length; i++) { + var prop = prefixes[i] + suffix; // $FlowFixMe + + if (el.style[prop] !== undefined) { + return prop; + } + } + } + + return 'transform'; +}, 'transform'); // $FlowFixMe + +exports.TRANSFORM_PREFIXED = TRANSFORM_PREFIXED; +var TRANSFORM_PREFIX = TRANSFORM_PREFIXED.split('transform')[0]; +var TRANSFORM_STYLE_PREFIXED = TRANSFORM_PREFIX ? TRANSFORM_PREFIX + 'TransformStyle' : 'transformStyle'; +exports.TRANSFORM_STYLE_PREFIXED = TRANSFORM_STYLE_PREFIXED; + +/***/ }), +/* 48 */ +/***/ (function(module, exports) { + +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ +function eq(value, other) { + return value === other || (value !== value && other !== other); +} + +module.exports = eq; + + +/***/ }), +/* 49 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(11), + root = __webpack_require__(6); + +/* Built-in method references that are verified to be native. */ +var Map = getNative(root, 'Map'); + +module.exports = Map; + + +/***/ }), +/* 50 */ +/***/ (function(module, exports, __webpack_require__) { + +var mapCacheClear = __webpack_require__(212), + mapCacheDelete = __webpack_require__(219), + mapCacheGet = __webpack_require__(221), + mapCacheHas = __webpack_require__(222), + mapCacheSet = __webpack_require__(223); + +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `MapCache`. +MapCache.prototype.clear = mapCacheClear; +MapCache.prototype['delete'] = mapCacheDelete; +MapCache.prototype.get = mapCacheGet; +MapCache.prototype.has = mapCacheHas; +MapCache.prototype.set = mapCacheSet; + +module.exports = MapCache; + + +/***/ }), +/* 51 */ +/***/ (function(module, exports) { + +/** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ +function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; + } + return array; +} + +module.exports = arrayPush; + + +/***/ }), +/* 52 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(6), + stubFalse = __webpack_require__(239); + +/** Detect free variable `exports`. */ +var freeExports = true && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Built-in value references. */ +var Buffer = moduleExports ? root.Buffer : undefined; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; + +/** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ +var isBuffer = nativeIsBuffer || stubFalse; + +module.exports = isBuffer; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(107)(module))) + +/***/ }), +/* 53 */ +/***/ (function(module, exports) { + +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** Used to detect unsigned integer values. */ +var reIsUint = /^(?:0|[1-9]\d*)$/; + +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + + return !!length && + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); +} + +module.exports = isIndex; + + +/***/ }), +/* 54 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsTypedArray = __webpack_require__(240), + baseUnary = __webpack_require__(241), + nodeUtil = __webpack_require__(242); + +/* Node.js helper references. */ +var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + +/** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ +var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + +module.exports = isTypedArray; + + +/***/ }), +/* 55 */ +/***/ (function(module, exports) { + +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ +function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +module.exports = isLength; + + +/***/ }), +/* 56 */ +/***/ (function(module, exports, __webpack_require__) { + +var isPrototype = __webpack_require__(57), + nativeKeys = __webpack_require__(243); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty.call(object, key) && key != 'constructor') { + result.push(key); + } + } + return result; +} + +module.exports = baseKeys; + + +/***/ }), +/* 57 */ +/***/ (function(module, exports) { + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ +function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; + + return value === proto; +} + +module.exports = isPrototype; + + +/***/ }), +/* 58 */ +/***/ (function(module, exports, __webpack_require__) { + +var DataView = __webpack_require__(244), + Map = __webpack_require__(49), + Promise = __webpack_require__(245), + Set = __webpack_require__(246), + WeakMap = __webpack_require__(109), + baseGetTag = __webpack_require__(15), + toSource = __webpack_require__(100); + +/** `Object#toString` result references. */ +var mapTag = '[object Map]', + objectTag = '[object Object]', + promiseTag = '[object Promise]', + setTag = '[object Set]', + weakMapTag = '[object WeakMap]'; + +var dataViewTag = '[object DataView]'; + +/** Used to detect maps, sets, and weakmaps. */ +var dataViewCtorString = toSource(DataView), + mapCtorString = toSource(Map), + promiseCtorString = toSource(Promise), + setCtorString = toSource(Set), + weakMapCtorString = toSource(WeakMap); + +/** + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +var getTag = baseGetTag; + +// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. +if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || + (Map && getTag(new Map) != mapTag) || + (Promise && getTag(Promise.resolve()) != promiseTag) || + (Set && getTag(new Set) != setTag) || + (WeakMap && getTag(new WeakMap) != weakMapTag)) { + getTag = function(value) { + var result = baseGetTag(value), + Ctor = result == objectTag ? value.constructor : undefined, + ctorString = Ctor ? toSource(Ctor) : ''; + + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: return dataViewTag; + case mapCtorString: return mapTag; + case promiseCtorString: return promiseTag; + case setCtorString: return setTag; + case weakMapCtorString: return weakMapTag; + } + } + return result; + }; +} + +module.exports = getTag; + + +/***/ }), +/* 59 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGet = __webpack_require__(60); + +/** + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' + */ +function get(object, path, defaultValue) { + var result = object == null ? undefined : baseGet(object, path); + return result === undefined ? defaultValue : result; +} + +module.exports = get; + + +/***/ }), +/* 60 */ +/***/ (function(module, exports, __webpack_require__) { + +var castPath = __webpack_require__(37), + toKey = __webpack_require__(24); + +/** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ +function baseGet(object, path) { + path = castPath(path, object); + + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return (index && index == length) ? object : undefined; +} + +module.exports = baseGet; + + +/***/ }), +/* 61 */ +/***/ (function(module, exports, __webpack_require__) { + +var isArray = __webpack_require__(2), + isSymbol = __webpack_require__(38); + +/** Used to match property names within property paths. */ +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; + +/** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ +function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); +} + +module.exports = isKey; + + +/***/ }), +/* 62 */ +/***/ (function(module, exports) { + +/** + * This method returns the first argument it receives. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true + */ +function identity(value) { + return value; +} + +module.exports = identity; + + +/***/ }), +/* 63 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseTrim = __webpack_require__(261), + isObject = __webpack_require__(8), + isSymbol = __webpack_require__(38); + +/** Used as references for various `Number` constants. */ +var NAN = 0 / 0; + +/** Used to detect bad signed hexadecimal string values. */ +var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + +/** Used to detect binary string values. */ +var reIsBinary = /^0b[01]+$/i; + +/** Used to detect octal string values. */ +var reIsOctal = /^0o[0-7]+$/i; + +/** Built-in method references without a dependency on `root`. */ +var freeParseInt = parseInt; + +/** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ +function toNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == 'function' ? value.valueOf() : value; + value = isObject(other) ? (other + '') : other; + } + if (typeof value != 'string') { + return value === 0 ? value : +value; + } + value = baseTrim(value); + var isBinary = reIsBinary.test(value); + return (isBinary || reIsOctal.test(value)) + ? freeParseInt(value.slice(2), isBinary ? 2 : 8) + : (reIsBadHex.test(value) ? NAN : +value); +} + +module.exports = toNumber; + + +/***/ }), +/* 64 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(1); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.mediaQueriesDefined = exports.viewportWidthChanged = exports.actionListPlaybackChanged = exports.elementStateChanged = exports.instanceRemoved = exports.instanceStarted = exports.instanceAdded = exports.parameterChanged = exports.animationFrameChanged = exports.eventStateChanged = exports.testFrameRendered = exports.eventListenerAdded = exports.clearRequested = exports.stopRequested = exports.playbackRequested = exports.previewRequested = exports.sessionStopped = exports.sessionStarted = exports.sessionInitialized = exports.rawDataImported = void 0; + +var _extends2 = _interopRequireDefault(__webpack_require__(30)); + +var _constants = __webpack_require__(3); + +var _shared = __webpack_require__(14); + +var _constants$IX2EngineA = _constants.IX2EngineActionTypes, + IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, + IX2_SESSION_INITIALIZED = _constants$IX2EngineA.IX2_SESSION_INITIALIZED, + IX2_SESSION_STARTED = _constants$IX2EngineA.IX2_SESSION_STARTED, + IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, + IX2_PREVIEW_REQUESTED = _constants$IX2EngineA.IX2_PREVIEW_REQUESTED, + IX2_PLAYBACK_REQUESTED = _constants$IX2EngineA.IX2_PLAYBACK_REQUESTED, + IX2_STOP_REQUESTED = _constants$IX2EngineA.IX2_STOP_REQUESTED, + IX2_CLEAR_REQUESTED = _constants$IX2EngineA.IX2_CLEAR_REQUESTED, + IX2_EVENT_LISTENER_ADDED = _constants$IX2EngineA.IX2_EVENT_LISTENER_ADDED, + IX2_TEST_FRAME_RENDERED = _constants$IX2EngineA.IX2_TEST_FRAME_RENDERED, + IX2_EVENT_STATE_CHANGED = _constants$IX2EngineA.IX2_EVENT_STATE_CHANGED, + IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED, + IX2_PARAMETER_CHANGED = _constants$IX2EngineA.IX2_PARAMETER_CHANGED, + IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, + IX2_INSTANCE_STARTED = _constants$IX2EngineA.IX2_INSTANCE_STARTED, + IX2_INSTANCE_REMOVED = _constants$IX2EngineA.IX2_INSTANCE_REMOVED, + IX2_ELEMENT_STATE_CHANGED = _constants$IX2EngineA.IX2_ELEMENT_STATE_CHANGED, + IX2_ACTION_LIST_PLAYBACK_CHANGED = _constants$IX2EngineA.IX2_ACTION_LIST_PLAYBACK_CHANGED, + IX2_VIEWPORT_WIDTH_CHANGED = _constants$IX2EngineA.IX2_VIEWPORT_WIDTH_CHANGED, + IX2_MEDIA_QUERIES_DEFINED = _constants$IX2EngineA.IX2_MEDIA_QUERIES_DEFINED; +var reifyState = _shared.IX2VanillaUtils.reifyState; // TODO: Figure out what this is and elevate it + +var rawDataImported = function rawDataImported(rawData) { + return { + type: IX2_RAW_DATA_IMPORTED, + payload: (0, _extends2["default"])({}, reifyState(rawData)) + }; +}; + +exports.rawDataImported = rawDataImported; + +var sessionInitialized = function sessionInitialized(_ref) { + var hasBoundaryNodes = _ref.hasBoundaryNodes, + reducedMotion = _ref.reducedMotion; + return { + type: IX2_SESSION_INITIALIZED, + payload: { + hasBoundaryNodes: hasBoundaryNodes, + reducedMotion: reducedMotion + } + }; +}; + +exports.sessionInitialized = sessionInitialized; + +var sessionStarted = function sessionStarted() { + return { + type: IX2_SESSION_STARTED + }; +}; + +exports.sessionStarted = sessionStarted; + +var sessionStopped = function sessionStopped() { + return { + type: IX2_SESSION_STOPPED + }; +}; + +exports.sessionStopped = sessionStopped; + +var previewRequested = function previewRequested(_ref2) { + var rawData = _ref2.rawData, + defer = _ref2.defer; + return { + type: IX2_PREVIEW_REQUESTED, + payload: { + defer: defer, + rawData: rawData + } + }; +}; + +exports.previewRequested = previewRequested; + +var playbackRequested = function playbackRequested(_ref3) { + var _ref3$actionTypeId = _ref3.actionTypeId, + actionTypeId = _ref3$actionTypeId === void 0 ? _constants.ActionTypeConsts.GENERAL_START_ACTION : _ref3$actionTypeId, + actionListId = _ref3.actionListId, + actionItemId = _ref3.actionItemId, + eventId = _ref3.eventId, + allowEvents = _ref3.allowEvents, + immediate = _ref3.immediate, + testManual = _ref3.testManual, + verbose = _ref3.verbose, + rawData = _ref3.rawData; + return { + type: IX2_PLAYBACK_REQUESTED, + payload: { + actionTypeId: actionTypeId, + actionListId: actionListId, + actionItemId: actionItemId, + testManual: testManual, + eventId: eventId, + allowEvents: allowEvents, + immediate: immediate, + verbose: verbose, + rawData: rawData + } + }; +}; + +exports.playbackRequested = playbackRequested; + +var stopRequested = function stopRequested(actionListId) { + return { + type: IX2_STOP_REQUESTED, + payload: { + actionListId: actionListId + } + }; +}; + +exports.stopRequested = stopRequested; + +var clearRequested = function clearRequested() { + return { + type: IX2_CLEAR_REQUESTED + }; +}; + +exports.clearRequested = clearRequested; + +var eventListenerAdded = function eventListenerAdded(target, listenerParams) { + return { + type: IX2_EVENT_LISTENER_ADDED, + payload: { + target: target, + listenerParams: listenerParams + } + }; +}; + +exports.eventListenerAdded = eventListenerAdded; + +var testFrameRendered = function testFrameRendered() { + var step = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; + return { + type: IX2_TEST_FRAME_RENDERED, + payload: { + step: step + } + }; +}; + +exports.testFrameRendered = testFrameRendered; + +var eventStateChanged = function eventStateChanged(stateKey, newState) { + return { + type: IX2_EVENT_STATE_CHANGED, + payload: { + stateKey: stateKey, + newState: newState + } + }; +}; + +exports.eventStateChanged = eventStateChanged; + +var animationFrameChanged = function animationFrameChanged(now, parameters) { + return { + type: IX2_ANIMATION_FRAME_CHANGED, + payload: { + now: now, + parameters: parameters + } + }; +}; + +exports.animationFrameChanged = animationFrameChanged; + +var parameterChanged = function parameterChanged(key, value) { + return { + type: IX2_PARAMETER_CHANGED, + payload: { + key: key, + value: value + } + }; +}; + +exports.parameterChanged = parameterChanged; + +var instanceAdded = function instanceAdded(options) { + return { + type: IX2_INSTANCE_ADDED, + payload: (0, _extends2["default"])({}, options) + }; +}; + +exports.instanceAdded = instanceAdded; + +var instanceStarted = function instanceStarted(instanceId, time) { + return { + type: IX2_INSTANCE_STARTED, + payload: { + instanceId: instanceId, + time: time + } + }; +}; + +exports.instanceStarted = instanceStarted; + +var instanceRemoved = function instanceRemoved(instanceId) { + return { + type: IX2_INSTANCE_REMOVED, + payload: { + instanceId: instanceId + } + }; +}; + +exports.instanceRemoved = instanceRemoved; + +var elementStateChanged = function elementStateChanged(elementId, actionTypeId, current, actionItem) { + return { + type: IX2_ELEMENT_STATE_CHANGED, + payload: { + elementId: elementId, + actionTypeId: actionTypeId, + current: current, + actionItem: actionItem + } + }; +}; + +exports.elementStateChanged = elementStateChanged; + +var actionListPlaybackChanged = function actionListPlaybackChanged(_ref4) { + var actionListId = _ref4.actionListId, + isPlaying = _ref4.isPlaying; + return { + type: IX2_ACTION_LIST_PLAYBACK_CHANGED, + payload: { + actionListId: actionListId, + isPlaying: isPlaying + } + }; +}; + +exports.actionListPlaybackChanged = actionListPlaybackChanged; + +var viewportWidthChanged = function viewportWidthChanged(_ref5) { + var width = _ref5.width, + mediaQueries = _ref5.mediaQueries; + return { + type: IX2_VIEWPORT_WIDTH_CHANGED, + payload: { + width: width, + mediaQueries: mediaQueries + } + }; +}; + +exports.viewportWidthChanged = viewportWidthChanged; + +var mediaQueriesDefined = function mediaQueriesDefined() { + return { + type: IX2_MEDIA_QUERIES_DEFINED + }; +}; + +exports.mediaQueriesDefined = mediaQueriesDefined; + +/***/ }), +/* 65 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseCreate = __webpack_require__(126), + baseLodash = __webpack_require__(66); + +/** + * The base constructor for creating `lodash` wrapper objects. + * + * @private + * @param {*} value The value to wrap. + * @param {boolean} [chainAll] Enable explicit method chain sequences. + */ +function LodashWrapper(value, chainAll) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__chain__ = !!chainAll; + this.__index__ = 0; + this.__values__ = undefined; +} + +LodashWrapper.prototype = baseCreate(baseLodash.prototype); +LodashWrapper.prototype.constructor = LodashWrapper; + +module.exports = LodashWrapper; + + +/***/ }), +/* 66 */ +/***/ (function(module, exports) { + +/** + * The function whose prototype chain sequence wrappers inherit from. + * + * @private + */ +function baseLodash() { + // No operation performed. +} + +module.exports = baseLodash; + + +/***/ }), +/* 67 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseCreate = __webpack_require__(126), + baseLodash = __webpack_require__(66); + +/** Used as references for the maximum length and index of an array. */ +var MAX_ARRAY_LENGTH = 4294967295; + +/** + * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. + * + * @private + * @constructor + * @param {*} value The value to wrap. + */ +function LazyWrapper(value) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__dir__ = 1; + this.__filtered__ = false; + this.__iteratees__ = []; + this.__takeCount__ = MAX_ARRAY_LENGTH; + this.__views__ = []; +} + +// Ensure `LazyWrapper` is an instance of `baseLodash`. +LazyWrapper.prototype = baseCreate(baseLodash.prototype); +LazyWrapper.prototype.constructor = LazyWrapper; + +module.exports = LazyWrapper; + + +/***/ }), +/* 68 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* eslint-disable eslint-comments/no-unlimited-disable */ + +/* eslint-disable */ + +/*! + * tram.js v0.8.2-global + * Cross-browser CSS3 transitions in JavaScript + * https://github.com/bkwld/tram + * MIT License + */ + +/* prettier-ignore */ + +var _interopRequireDefault = __webpack_require__(1); + +var _typeof2 = _interopRequireDefault(__webpack_require__(17)); + +window.tram = function (a) { + function b(a, b) { + var c = new M.Bare(); + return c.init(a, b); + } + + function c(a) { + return a.replace(/[A-Z]/g, function (a) { + return "-" + a.toLowerCase(); + }); + } + + function d(a) { + var b = parseInt(a.slice(1), 16), + c = b >> 16 & 255, + d = b >> 8 & 255, + e = 255 & b; + return [c, d, e]; + } + + function e(a, b, c) { + return "#" + (1 << 24 | a << 16 | b << 8 | c).toString(16).slice(1); + } + + function f() {} + + function g(a, b) { + j("Type warning: Expected: [" + a + "] Got: [" + (0, _typeof2["default"])(b) + "] " + b); + } + + function h(a, b, c) { + j("Units do not match [" + a + "]: " + b + ", " + c); + } + + function i(a, b, c) { + if (void 0 !== b && (c = b), void 0 === a) return c; + var d = c; + return $.test(a) || !_.test(a) ? d = parseInt(a, 10) : _.test(a) && (d = 1e3 * parseFloat(a)), 0 > d && (d = 0), d === d ? d : c; + } + + function j(a) { + U.debug && window && window.console.warn(a); + } + + function k(a) { + for (var b = -1, c = a ? a.length : 0, d = []; ++b < c;) { + var e = a[b]; + e && d.push(e); + } + + return d; + } + + var l = function (a, b, c) { + function d(a) { + return "object" == (0, _typeof2["default"])(a); + } + + function e(a) { + return "function" == typeof a; + } + + function f() {} + + function g(h, i) { + function j() { + var a = new k(); + return e(a.init) && a.init.apply(a, arguments), a; + } + + function k() {} + + i === c && (i = h, h = Object), j.Bare = k; + var l, + m = f[a] = h[a], + n = k[a] = j[a] = new f(); + return n.constructor = j, j.mixin = function (b) { + return k[a] = j[a] = g(j, b)[a], j; + }, j.open = function (a) { + if (l = {}, e(a) ? l = a.call(j, n, m, j, h) : d(a) && (l = a), d(l)) for (var c in l) { + b.call(l, c) && (n[c] = l[c]); + } + return e(n.init) || (n.init = h), j; + }, j.open(i); + } + + return g; + }("prototype", {}.hasOwnProperty), + m = { + ease: ["ease", function (a, b, c, d) { + var e = (a /= d) * a, + f = e * a; + return b + c * (-2.75 * f * e + 11 * e * e + -15.5 * f + 8 * e + .25 * a); + }], + "ease-in": ["ease-in", function (a, b, c, d) { + var e = (a /= d) * a, + f = e * a; + return b + c * (-1 * f * e + 3 * e * e + -3 * f + 2 * e); + }], + "ease-out": ["ease-out", function (a, b, c, d) { + var e = (a /= d) * a, + f = e * a; + return b + c * (.3 * f * e + -1.6 * e * e + 2.2 * f + -1.8 * e + 1.9 * a); + }], + "ease-in-out": ["ease-in-out", function (a, b, c, d) { + var e = (a /= d) * a, + f = e * a; + return b + c * (2 * f * e + -5 * e * e + 2 * f + 2 * e); + }], + linear: ["linear", function (a, b, c, d) { + return c * a / d + b; + }], + "ease-in-quad": ["cubic-bezier(0.550, 0.085, 0.680, 0.530)", function (a, b, c, d) { + return c * (a /= d) * a + b; + }], + "ease-out-quad": ["cubic-bezier(0.250, 0.460, 0.450, 0.940)", function (a, b, c, d) { + return -c * (a /= d) * (a - 2) + b; + }], + "ease-in-out-quad": ["cubic-bezier(0.455, 0.030, 0.515, 0.955)", function (a, b, c, d) { + return (a /= d / 2) < 1 ? c / 2 * a * a + b : -c / 2 * (--a * (a - 2) - 1) + b; + }], + "ease-in-cubic": ["cubic-bezier(0.550, 0.055, 0.675, 0.190)", function (a, b, c, d) { + return c * (a /= d) * a * a + b; + }], + "ease-out-cubic": ["cubic-bezier(0.215, 0.610, 0.355, 1)", function (a, b, c, d) { + return c * ((a = a / d - 1) * a * a + 1) + b; + }], + "ease-in-out-cubic": ["cubic-bezier(0.645, 0.045, 0.355, 1)", function (a, b, c, d) { + return (a /= d / 2) < 1 ? c / 2 * a * a * a + b : c / 2 * ((a -= 2) * a * a + 2) + b; + }], + "ease-in-quart": ["cubic-bezier(0.895, 0.030, 0.685, 0.220)", function (a, b, c, d) { + return c * (a /= d) * a * a * a + b; + }], + "ease-out-quart": ["cubic-bezier(0.165, 0.840, 0.440, 1)", function (a, b, c, d) { + return -c * ((a = a / d - 1) * a * a * a - 1) + b; + }], + "ease-in-out-quart": ["cubic-bezier(0.770, 0, 0.175, 1)", function (a, b, c, d) { + return (a /= d / 2) < 1 ? c / 2 * a * a * a * a + b : -c / 2 * ((a -= 2) * a * a * a - 2) + b; + }], + "ease-in-quint": ["cubic-bezier(0.755, 0.050, 0.855, 0.060)", function (a, b, c, d) { + return c * (a /= d) * a * a * a * a + b; + }], + "ease-out-quint": ["cubic-bezier(0.230, 1, 0.320, 1)", function (a, b, c, d) { + return c * ((a = a / d - 1) * a * a * a * a + 1) + b; + }], + "ease-in-out-quint": ["cubic-bezier(0.860, 0, 0.070, 1)", function (a, b, c, d) { + return (a /= d / 2) < 1 ? c / 2 * a * a * a * a * a + b : c / 2 * ((a -= 2) * a * a * a * a + 2) + b; + }], + "ease-in-sine": ["cubic-bezier(0.470, 0, 0.745, 0.715)", function (a, b, c, d) { + return -c * Math.cos(a / d * (Math.PI / 2)) + c + b; + }], + "ease-out-sine": ["cubic-bezier(0.390, 0.575, 0.565, 1)", function (a, b, c, d) { + return c * Math.sin(a / d * (Math.PI / 2)) + b; + }], + "ease-in-out-sine": ["cubic-bezier(0.445, 0.050, 0.550, 0.950)", function (a, b, c, d) { + return -c / 2 * (Math.cos(Math.PI * a / d) - 1) + b; + }], + "ease-in-expo": ["cubic-bezier(0.950, 0.050, 0.795, 0.035)", function (a, b, c, d) { + return 0 === a ? b : c * Math.pow(2, 10 * (a / d - 1)) + b; + }], + "ease-out-expo": ["cubic-bezier(0.190, 1, 0.220, 1)", function (a, b, c, d) { + return a === d ? b + c : c * (-Math.pow(2, -10 * a / d) + 1) + b; + }], + "ease-in-out-expo": ["cubic-bezier(1, 0, 0, 1)", function (a, b, c, d) { + return 0 === a ? b : a === d ? b + c : (a /= d / 2) < 1 ? c / 2 * Math.pow(2, 10 * (a - 1)) + b : c / 2 * (-Math.pow(2, -10 * --a) + 2) + b; + }], + "ease-in-circ": ["cubic-bezier(0.600, 0.040, 0.980, 0.335)", function (a, b, c, d) { + return -c * (Math.sqrt(1 - (a /= d) * a) - 1) + b; + }], + "ease-out-circ": ["cubic-bezier(0.075, 0.820, 0.165, 1)", function (a, b, c, d) { + return c * Math.sqrt(1 - (a = a / d - 1) * a) + b; + }], + "ease-in-out-circ": ["cubic-bezier(0.785, 0.135, 0.150, 0.860)", function (a, b, c, d) { + return (a /= d / 2) < 1 ? -c / 2 * (Math.sqrt(1 - a * a) - 1) + b : c / 2 * (Math.sqrt(1 - (a -= 2) * a) + 1) + b; + }], + "ease-in-back": ["cubic-bezier(0.600, -0.280, 0.735, 0.045)", function (a, b, c, d, e) { + return void 0 === e && (e = 1.70158), c * (a /= d) * a * ((e + 1) * a - e) + b; + }], + "ease-out-back": ["cubic-bezier(0.175, 0.885, 0.320, 1.275)", function (a, b, c, d, e) { + return void 0 === e && (e = 1.70158), c * ((a = a / d - 1) * a * ((e + 1) * a + e) + 1) + b; + }], + "ease-in-out-back": ["cubic-bezier(0.680, -0.550, 0.265, 1.550)", function (a, b, c, d, e) { + return void 0 === e && (e = 1.70158), (a /= d / 2) < 1 ? c / 2 * a * a * (((e *= 1.525) + 1) * a - e) + b : c / 2 * ((a -= 2) * a * (((e *= 1.525) + 1) * a + e) + 2) + b; + }] + }, + n = { + "ease-in-back": "cubic-bezier(0.600, 0, 0.735, 0.045)", + "ease-out-back": "cubic-bezier(0.175, 0.885, 0.320, 1)", + "ease-in-out-back": "cubic-bezier(0.680, 0, 0.265, 1)" + }, + o = document, + p = window, + q = "bkwld-tram", + r = /[\-\.0-9]/g, + s = /[A-Z]/, + t = "number", + u = /^(rgb|#)/, + v = /(em|cm|mm|in|pt|pc|px)$/, + w = /(em|cm|mm|in|pt|pc|px|%)$/, + x = /(deg|rad|turn)$/, + y = "unitless", + z = /(all|none) 0s ease 0s/, + A = /^(width|height)$/, + B = " ", + C = o.createElement("a"), + D = ["Webkit", "Moz", "O", "ms"], + E = ["-webkit-", "-moz-", "-o-", "-ms-"], + F = function F(a) { + if (a in C.style) return { + dom: a, + css: a + }; + var b, + c, + d = "", + e = a.split("-"); + + for (b = 0; b < e.length; b++) { + d += e[b].charAt(0).toUpperCase() + e[b].slice(1); + } + + for (b = 0; b < D.length; b++) { + if (c = D[b] + d, c in C.style) return { + dom: c, + css: E[b] + a + }; + } + }, + G = b.support = { + bind: Function.prototype.bind, + transform: F("transform"), + transition: F("transition"), + backface: F("backface-visibility"), + timing: F("transition-timing-function") + }; + + if (G.transition) { + var H = G.timing.dom; + if (C.style[H] = m["ease-in-back"][0], !C.style[H]) for (var I in n) { + m[I][0] = n[I]; + } + } + + var J = b.frame = function () { + var a = p.requestAnimationFrame || p.webkitRequestAnimationFrame || p.mozRequestAnimationFrame || p.oRequestAnimationFrame || p.msRequestAnimationFrame; + return a && G.bind ? a.bind(p) : function (a) { + p.setTimeout(a, 16); + }; + }(), + K = b.now = function () { + var a = p.performance, + b = a && (a.now || a.webkitNow || a.msNow || a.mozNow); + return b && G.bind ? b.bind(a) : Date.now || function () { + return +new Date(); + }; + }(), + L = l(function (b) { + function d(a, b) { + var c = k(("" + a).split(B)), + d = c[0]; + b = b || {}; + var e = Y[d]; + if (!e) return j("Unsupported property: " + d); + + if (!b.weak || !this.props[d]) { + var f = e[0], + g = this.props[d]; + return g || (g = this.props[d] = new f.Bare()), g.init(this.$el, c, e, b), g; + } + } + + function e(a, b, c) { + if (a) { + var e = (0, _typeof2["default"])(a); + if (b || (this.timer && this.timer.destroy(), this.queue = [], this.active = !1), "number" == e && b) return this.timer = new S({ + duration: a, + context: this, + complete: h + }), void (this.active = !0); + + if ("string" == e && b) { + switch (a) { + case "hide": + o.call(this); + break; + + case "stop": + l.call(this); + break; + + case "redraw": + p.call(this); + break; + + default: + d.call(this, a, c && c[1]); + } + + return h.call(this); + } + + if ("function" == e) return void a.call(this, this); + + if ("object" == e) { + var f = 0; + u.call(this, a, function (a, b) { + a.span > f && (f = a.span), a.stop(), a.animate(b); + }, function (a) { + "wait" in a && (f = i(a.wait, 0)); + }), t.call(this), f > 0 && (this.timer = new S({ + duration: f, + context: this + }), this.active = !0, b && (this.timer.complete = h)); + var g = this, + j = !1, + k = {}; + J(function () { + u.call(g, a, function (a) { + a.active && (j = !0, k[a.name] = a.nextStyle); + }), j && g.$el.css(k); + }); + } + } + } + + function f(a) { + a = i(a, 0), this.active ? this.queue.push({ + options: a + }) : (this.timer = new S({ + duration: a, + context: this, + complete: h + }), this.active = !0); + } + + function g(a) { + return this.active ? (this.queue.push({ + options: a, + args: arguments + }), void (this.timer.complete = h)) : j("No active transition timer. Use start() or wait() before then()."); + } + + function h() { + if (this.timer && this.timer.destroy(), this.active = !1, this.queue.length) { + var a = this.queue.shift(); + e.call(this, a.options, !0, a.args); + } + } + + function l(a) { + this.timer && this.timer.destroy(), this.queue = [], this.active = !1; + var b; + "string" == typeof a ? (b = {}, b[a] = 1) : b = "object" == (0, _typeof2["default"])(a) && null != a ? a : this.props, u.call(this, b, v), t.call(this); + } + + function m(a) { + l.call(this, a), u.call(this, a, w, x); + } + + function n(a) { + "string" != typeof a && (a = "block"), this.el.style.display = a; + } + + function o() { + l.call(this), this.el.style.display = "none"; + } + + function p() { + this.el.offsetHeight; + } + + function r() { + l.call(this), a.removeData(this.el, q), this.$el = this.el = null; + } + + function t() { + var a, + b, + c = []; + this.upstream && c.push(this.upstream); + + for (a in this.props) { + b = this.props[a], b.active && c.push(b.string); + } + + c = c.join(","), this.style !== c && (this.style = c, this.el.style[G.transition.dom] = c); + } + + function u(a, b, e) { + var f, + g, + h, + i, + j = b !== v, + k = {}; + + for (f in a) { + h = a[f], f in Z ? (k.transform || (k.transform = {}), k.transform[f] = h) : (s.test(f) && (f = c(f)), f in Y ? k[f] = h : (i || (i = {}), i[f] = h)); + } + + for (f in k) { + if (h = k[f], g = this.props[f], !g) { + if (!j) continue; + g = d.call(this, f); + } + + b.call(this, g, h); + } + + e && i && e.call(this, i); + } + + function v(a) { + a.stop(); + } + + function w(a, b) { + a.set(b); + } + + function x(a) { + this.$el.css(a); + } + + function y(a, c) { + b[a] = function () { + return this.children ? A.call(this, c, arguments) : (this.el && c.apply(this, arguments), this); + }; + } + + function A(a, b) { + var c, + d = this.children.length; + + for (c = 0; d > c; c++) { + a.apply(this.children[c], b); + } + + return this; + } + + b.init = function (b) { + if (this.$el = a(b), this.el = this.$el[0], this.props = {}, this.queue = [], this.style = "", this.active = !1, U.keepInherited && !U.fallback) { + var c = W(this.el, "transition"); + c && !z.test(c) && (this.upstream = c); + } + + G.backface && U.hideBackface && V(this.el, G.backface.css, "hidden"); + }, y("add", d), y("start", e), y("wait", f), y("then", g), y("next", h), y("stop", l), y("set", m), y("show", n), y("hide", o), y("redraw", p), y("destroy", r); + }), + M = l(L, function (b) { + function c(b, c) { + var d = a.data(b, q) || a.data(b, q, new L.Bare()); + return d.el || d.init(b), c ? d.start(c) : d; + } + + b.init = function (b, d) { + var e = a(b); + if (!e.length) return this; + if (1 === e.length) return c(e[0], d); + var f = []; + return e.each(function (a, b) { + f.push(c(b, d)); + }), this.children = f, this; + }; + }), + N = l(function (a) { + function b() { + var a = this.get(); + this.update("auto"); + var b = this.get(); + return this.update(a), b; + } + + function c(a, b, c) { + return void 0 !== b && (c = b), a in m ? a : c; + } + + function d(a) { + var b = /rgba?\((\d+),\s*(\d+),\s*(\d+)/.exec(a); + return (b ? e(b[1], b[2], b[3]) : a).replace(/#(\w)(\w)(\w)$/, "#$1$1$2$2$3$3"); + } + + var f = { + duration: 500, + ease: "ease", + delay: 0 + }; + a.init = function (a, b, d, e) { + this.$el = a, this.el = a[0]; + var g = b[0]; + d[2] && (g = d[2]), X[g] && (g = X[g]), this.name = g, this.type = d[1], this.duration = i(b[1], this.duration, f.duration), this.ease = c(b[2], this.ease, f.ease), this.delay = i(b[3], this.delay, f.delay), this.span = this.duration + this.delay, this.active = !1, this.nextStyle = null, this.auto = A.test(this.name), this.unit = e.unit || this.unit || U.defaultUnit, this.angle = e.angle || this.angle || U.defaultAngle, U.fallback || e.fallback ? this.animate = this.fallback : (this.animate = this.transition, this.string = this.name + B + this.duration + "ms" + ("ease" != this.ease ? B + m[this.ease][0] : "") + (this.delay ? B + this.delay + "ms" : "")); + }, a.set = function (a) { + a = this.convert(a, this.type), this.update(a), this.redraw(); + }, a.transition = function (a) { + this.active = !0, a = this.convert(a, this.type), this.auto && ("auto" == this.el.style[this.name] && (this.update(this.get()), this.redraw()), "auto" == a && (a = b.call(this))), this.nextStyle = a; + }, a.fallback = function (a) { + var c = this.el.style[this.name] || this.convert(this.get(), this.type); + a = this.convert(a, this.type), this.auto && ("auto" == c && (c = this.convert(this.get(), this.type)), "auto" == a && (a = b.call(this))), this.tween = new R({ + from: c, + to: a, + duration: this.duration, + delay: this.delay, + ease: this.ease, + update: this.update, + context: this + }); + }, a.get = function () { + return W(this.el, this.name); + }, a.update = function (a) { + V(this.el, this.name, a); + }, a.stop = function () { + (this.active || this.nextStyle) && (this.active = !1, this.nextStyle = null, V(this.el, this.name, this.get())); + var a = this.tween; + a && a.context && a.destroy(); + }, a.convert = function (a, b) { + if ("auto" == a && this.auto) return a; + var c, + e = "number" == typeof a, + f = "string" == typeof a; + + switch (b) { + case t: + if (e) return a; + if (f && "" === a.replace(r, "")) return +a; + c = "number(unitless)"; + break; + + case u: + if (f) { + if ("" === a && this.original) return this.original; + if (b.test(a)) return "#" == a.charAt(0) && 7 == a.length ? a : d(a); + } + + c = "hex or rgb string"; + break; + + case v: + if (e) return a + this.unit; + if (f && b.test(a)) return a; + c = "number(px) or string(unit)"; + break; + + case w: + if (e) return a + this.unit; + if (f && b.test(a)) return a; + c = "number(px) or string(unit or %)"; + break; + + case x: + if (e) return a + this.angle; + if (f && b.test(a)) return a; + c = "number(deg) or string(angle)"; + break; + + case y: + if (e) return a; + if (f && w.test(a)) return a; + c = "number(unitless) or string(unit or %)"; + } + + return g(c, a), a; + }, a.redraw = function () { + this.el.offsetHeight; + }; + }), + O = l(N, function (a, b) { + a.init = function () { + b.init.apply(this, arguments), this.original || (this.original = this.convert(this.get(), u)); + }; + }), + P = l(N, function (a, b) { + a.init = function () { + b.init.apply(this, arguments), this.animate = this.fallback; + }, a.get = function () { + return this.$el[this.name](); + }, a.update = function (a) { + this.$el[this.name](a); + }; + }), + Q = l(N, function (a, b) { + function c(a, b) { + var c, d, e, f, g; + + for (c in a) { + f = Z[c], e = f[0], d = f[1] || c, g = this.convert(a[c], e), b.call(this, d, g, e); + } + } + + a.init = function () { + b.init.apply(this, arguments), this.current || (this.current = {}, Z.perspective && U.perspective && (this.current.perspective = U.perspective, V(this.el, this.name, this.style(this.current)), this.redraw())); + }, a.set = function (a) { + c.call(this, a, function (a, b) { + this.current[a] = b; + }), V(this.el, this.name, this.style(this.current)), this.redraw(); + }, a.transition = function (a) { + var b = this.values(a); + this.tween = new T({ + current: this.current, + values: b, + duration: this.duration, + delay: this.delay, + ease: this.ease + }); + var c, + d = {}; + + for (c in this.current) { + d[c] = c in b ? b[c] : this.current[c]; + } + + this.active = !0, this.nextStyle = this.style(d); + }, a.fallback = function (a) { + var b = this.values(a); + this.tween = new T({ + current: this.current, + values: b, + duration: this.duration, + delay: this.delay, + ease: this.ease, + update: this.update, + context: this + }); + }, a.update = function () { + V(this.el, this.name, this.style(this.current)); + }, a.style = function (a) { + var b, + c = ""; + + for (b in a) { + c += b + "(" + a[b] + ") "; + } + + return c; + }, a.values = function (a) { + var b, + d = {}; + return c.call(this, a, function (a, c, e) { + d[a] = c, void 0 === this.current[a] && (b = 0, ~a.indexOf("scale") && (b = 1), this.current[a] = this.convert(b, e)); + }), d; + }; + }), + R = l(function (b) { + function c(a) { + 1 === n.push(a) && J(g); + } + + function g() { + var a, + b, + c, + d = n.length; + if (d) for (J(g), b = K(), a = d; a--;) { + c = n[a], c && c.render(b); + } + } + + function i(b) { + var c, + d = a.inArray(b, n); + d >= 0 && (c = n.slice(d + 1), n.length = d, c.length && (n = n.concat(c))); + } + + function j(a) { + return Math.round(a * o) / o; + } + + function k(a, b, c) { + return e(a[0] + c * (b[0] - a[0]), a[1] + c * (b[1] - a[1]), a[2] + c * (b[2] - a[2])); + } + + var l = { + ease: m.ease[1], + from: 0, + to: 1 + }; + b.init = function (a) { + this.duration = a.duration || 0, this.delay = a.delay || 0; + var b = a.ease || l.ease; + m[b] && (b = m[b][1]), "function" != typeof b && (b = l.ease), this.ease = b, this.update = a.update || f, this.complete = a.complete || f, this.context = a.context || this, this.name = a.name; + var c = a.from, + d = a.to; + void 0 === c && (c = l.from), void 0 === d && (d = l.to), this.unit = a.unit || "", "number" == typeof c && "number" == typeof d ? (this.begin = c, this.change = d - c) : this.format(d, c), this.value = this.begin + this.unit, this.start = K(), a.autoplay !== !1 && this.play(); + }, b.play = function () { + this.active || (this.start || (this.start = K()), this.active = !0, c(this)); + }, b.stop = function () { + this.active && (this.active = !1, i(this)); + }, b.render = function (a) { + var b, + c = a - this.start; + + if (this.delay) { + if (c <= this.delay) return; + c -= this.delay; + } + + if (c < this.duration) { + var d = this.ease(c, 0, 1, this.duration); + return b = this.startRGB ? k(this.startRGB, this.endRGB, d) : j(this.begin + d * this.change), this.value = b + this.unit, void this.update.call(this.context, this.value); + } + + b = this.endHex || this.begin + this.change, this.value = b + this.unit, this.update.call(this.context, this.value), this.complete.call(this.context), this.destroy(); + }, b.format = function (a, b) { + if (b += "", a += "", "#" == a.charAt(0)) return this.startRGB = d(b), this.endRGB = d(a), this.endHex = a, this.begin = 0, void (this.change = 1); + + if (!this.unit) { + var c = b.replace(r, ""), + e = a.replace(r, ""); + c !== e && h("tween", b, a), this.unit = c; + } + + b = parseFloat(b), a = parseFloat(a), this.begin = this.value = b, this.change = a - b; + }, b.destroy = function () { + this.stop(), this.context = null, this.ease = this.update = this.complete = f; + }; + var n = [], + o = 1e3; + }), + S = l(R, function (a) { + a.init = function (a) { + this.duration = a.duration || 0, this.complete = a.complete || f, this.context = a.context, this.play(); + }, a.render = function (a) { + var b = a - this.start; + b < this.duration || (this.complete.call(this.context), this.destroy()); + }; + }), + T = l(R, function (a, b) { + a.init = function (a) { + this.context = a.context, this.update = a.update, this.tweens = [], this.current = a.current; + var b, c; + + for (b in a.values) { + c = a.values[b], this.current[b] !== c && this.tweens.push(new R({ + name: b, + from: this.current[b], + to: c, + duration: a.duration, + delay: a.delay, + ease: a.ease, + autoplay: !1 + })); + } + + this.play(); + }, a.render = function (a) { + var b, + c, + d = this.tweens.length, + e = !1; + + for (b = d; b--;) { + c = this.tweens[b], c.context && (c.render(a), this.current[c.name] = c.value, e = !0); + } + + return e ? void (this.update && this.update.call(this.context)) : this.destroy(); + }, a.destroy = function () { + if (b.destroy.call(this), this.tweens) { + var a, + c = this.tweens.length; + + for (a = c; a--;) { + this.tweens[a].destroy(); + } + + this.tweens = null, this.current = null; + } + }; + }), + U = b.config = { + debug: !1, + defaultUnit: "px", + defaultAngle: "deg", + keepInherited: !1, + hideBackface: !1, + perspective: "", + fallback: !G.transition, + agentTests: [] + }; + + b.fallback = function (a) { + if (!G.transition) return U.fallback = !0; + U.agentTests.push("(" + a + ")"); + var b = new RegExp(U.agentTests.join("|"), "i"); + U.fallback = b.test(navigator.userAgent); + }, b.fallback("6.0.[2-5] Safari"), b.tween = function (a) { + return new R(a); + }, b.delay = function (a, b, c) { + return new S({ + complete: b, + duration: a, + context: c + }); + }, a.fn.tram = function (a) { + return b.call(null, this, a); + }; + var V = a.style, + W = a.css, + X = { + transform: G.transform && G.transform.css + }, + Y = { + color: [O, u], + background: [O, u, "background-color"], + "outline-color": [O, u], + "border-color": [O, u], + "border-top-color": [O, u], + "border-right-color": [O, u], + "border-bottom-color": [O, u], + "border-left-color": [O, u], + "border-width": [N, v], + "border-top-width": [N, v], + "border-right-width": [N, v], + "border-bottom-width": [N, v], + "border-left-width": [N, v], + "border-spacing": [N, v], + "letter-spacing": [N, v], + margin: [N, v], + "margin-top": [N, v], + "margin-right": [N, v], + "margin-bottom": [N, v], + "margin-left": [N, v], + padding: [N, v], + "padding-top": [N, v], + "padding-right": [N, v], + "padding-bottom": [N, v], + "padding-left": [N, v], + "outline-width": [N, v], + opacity: [N, t], + top: [N, w], + right: [N, w], + bottom: [N, w], + left: [N, w], + "font-size": [N, w], + "text-indent": [N, w], + "word-spacing": [N, w], + width: [N, w], + "min-width": [N, w], + "max-width": [N, w], + height: [N, w], + "min-height": [N, w], + "max-height": [N, w], + "line-height": [N, y], + "scroll-top": [P, t, "scrollTop"], + "scroll-left": [P, t, "scrollLeft"] + }, + Z = {}; + G.transform && (Y.transform = [Q], Z = { + x: [w, "translateX"], + y: [w, "translateY"], + rotate: [x], + rotateX: [x], + rotateY: [x], + scale: [t], + scaleX: [t], + scaleY: [t], + skew: [x], + skewX: [x], + skewY: [x] + }), G.transform && G.backface && (Z.z = [w, "translateZ"], Z.rotateZ = [x], Z.scaleZ = [t], Z.perspective = [v]); + var $ = /ms/, + _ = /s|\./; + return a.tram = b; +}(window.jQuery); + +/***/ }), +/* 69 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// @wf-will-never-add-flow-to-this-file + +/* globals window, document */ + +/* eslint-disable no-var */ +// eslint-disable-next-line strict + + +var IXEvents = __webpack_require__(135); + +function dispatchCustomEvent(element, eventName) { + var event = document.createEvent('CustomEvent'); + event.initCustomEvent(eventName, true, true, null); + element.dispatchEvent(event); +} +/** + * Webflow: IX Event triggers for other modules + */ + + +var $ = window.jQuery; +var api = {}; +var namespace = '.w-ix'; +var eventTriggers = { + reset: function reset(i, el) { + IXEvents.triggers.reset(i, el); + }, + intro: function intro(i, el) { + IXEvents.triggers.intro(i, el); + dispatchCustomEvent(el, 'COMPONENT_ACTIVE'); + }, + outro: function outro(i, el) { + IXEvents.triggers.outro(i, el); + dispatchCustomEvent(el, 'COMPONENT_INACTIVE'); + } +}; +api.triggers = {}; +api.types = { + INTRO: 'w-ix-intro' + namespace, + OUTRO: 'w-ix-outro' + namespace +}; +$.extend(api.triggers, eventTriggers); +module.exports = api; + +/***/ }), +/* 70 */ +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__(13); +var call = __webpack_require__(39); +var propertyIsEnumerableModule = __webpack_require__(143); +var createPropertyDescriptor = __webpack_require__(71); +var toIndexedObject = __webpack_require__(26); +var toPropertyKey = __webpack_require__(73); +var hasOwn = __webpack_require__(9); +var IE8_DOM_DEFINE = __webpack_require__(80); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPropertyKey(P); + if (IE8_DOM_DEFINE) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); +}; + + +/***/ }), +/* 71 */ +/***/ (function(module, exports) { + +module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + + +/***/ }), +/* 72 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0); + +var TypeError = global.TypeError; + +// `RequireObjectCoercible` abstract operation +// https://tc39.es/ecma262/#sec-requireobjectcoercible +module.exports = function (it) { + if (it == undefined) throw TypeError("Can't call method on " + it); + return it; +}; + + +/***/ }), +/* 73 */ +/***/ (function(module, exports, __webpack_require__) { + +var toPrimitive = __webpack_require__(146); +var isSymbol = __webpack_require__(74); + +// `ToPropertyKey` abstract operation +// https://tc39.es/ecma262/#sec-topropertykey +module.exports = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; +}; + + +/***/ }), +/* 74 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0); +var getBuiltIn = __webpack_require__(27); +var isCallable = __webpack_require__(7); +var isPrototypeOf = __webpack_require__(147); +var USE_SYMBOL_AS_UID = __webpack_require__(75); + +var Object = global.Object; + +module.exports = USE_SYMBOL_AS_UID ? function (it) { + return typeof it == 'symbol'; +} : function (it) { + var $Symbol = getBuiltIn('Symbol'); + return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it)); +}; + + +/***/ }), +/* 75 */ +/***/ (function(module, exports, __webpack_require__) { + +/* eslint-disable es/no-symbol -- required for testing */ +var NATIVE_SYMBOL = __webpack_require__(76); + +module.exports = NATIVE_SYMBOL + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + + +/***/ }), +/* 76 */ +/***/ (function(module, exports, __webpack_require__) { + +/* eslint-disable es/no-symbol -- required for testing */ +var V8_VERSION = __webpack_require__(148); +var fails = __webpack_require__(19); + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing +module.exports = !!Object.getOwnPropertySymbols && !fails(function () { + var symbol = Symbol(); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + return !String(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION && V8_VERSION < 41; +}); + + +/***/ }), +/* 77 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0); +var shared = __webpack_require__(78); +var hasOwn = __webpack_require__(9); +var uid = __webpack_require__(79); +var NATIVE_SYMBOL = __webpack_require__(76); +var USE_SYMBOL_AS_UID = __webpack_require__(75); + +var WellKnownSymbolsStore = shared('wks'); +var Symbol = global.Symbol; +var symbolFor = Symbol && Symbol['for']; +var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; + +module.exports = function (name) { + if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) { + var description = 'Symbol.' + name; + if (NATIVE_SYMBOL && hasOwn(Symbol, name)) { + WellKnownSymbolsStore[name] = Symbol[name]; + } else if (USE_SYMBOL_AS_UID && symbolFor) { + WellKnownSymbolsStore[name] = symbolFor(description); + } else { + WellKnownSymbolsStore[name] = createWellKnownSymbol(description); + } + } return WellKnownSymbolsStore[name]; +}; + + +/***/ }), +/* 78 */ +/***/ (function(module, exports, __webpack_require__) { + +var IS_PURE = __webpack_require__(154); +var store = __webpack_require__(40); + +(module.exports = function (key, value) { + return store[key] || (store[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: '3.19.0', + mode: IS_PURE ? 'pure' : 'global', + copyright: '© 2021 Denis Pushkarev (zloirock.ru)' +}); + + +/***/ }), +/* 79 */ +/***/ (function(module, exports, __webpack_require__) { + +var uncurryThis = __webpack_require__(5); + +var id = 0; +var postfix = Math.random(); +var toString = uncurryThis(1.0.toString); + +module.exports = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36); +}; + + +/***/ }), +/* 80 */ +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__(13); +var fails = __webpack_require__(19); +var createElement = __webpack_require__(81); + +// Thank's IE8 for his funny defineProperty +module.exports = !DESCRIPTORS && !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- requied for testing + return Object.defineProperty(createElement('div'), 'a', { + get: function () { return 7; } + }).a != 7; +}); + + +/***/ }), +/* 81 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0); +var isObject = __webpack_require__(20); + +var document = global.document; +// typeof document.createElement is 'object' in old IE +var EXISTS = isObject(document) && isObject(document.createElement); + +module.exports = function (it) { + return EXISTS ? document.createElement(it) : {}; +}; + + +/***/ }), +/* 82 */ +/***/ (function(module, exports, __webpack_require__) { + +var uncurryThis = __webpack_require__(5); +var isCallable = __webpack_require__(7); +var store = __webpack_require__(40); + +var functionToString = uncurryThis(Function.toString); + +// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper +if (!isCallable(store.inspectSource)) { + store.inspectSource = function (it) { + return functionToString(it); + }; +} + +module.exports = store.inspectSource; + + +/***/ }), +/* 83 */ +/***/ (function(module, exports, __webpack_require__) { + +var shared = __webpack_require__(78); +var uid = __webpack_require__(79); + +var keys = shared('keys'); + +module.exports = function (key) { + return keys[key] || (keys[key] = uid(key)); +}; + + +/***/ }), +/* 84 */ +/***/ (function(module, exports, __webpack_require__) { + +var uncurryThis = __webpack_require__(5); +var hasOwn = __webpack_require__(9); +var toIndexedObject = __webpack_require__(26); +var indexOf = __webpack_require__(85).indexOf; +var hiddenKeys = __webpack_require__(43); + +var push = uncurryThis([].push); + +module.exports = function (object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn(O, key = names[i++])) { + ~indexOf(result, key) || push(result, key); + } + return result; +}; + + +/***/ }), +/* 85 */ +/***/ (function(module, exports, __webpack_require__) { + +var toIndexedObject = __webpack_require__(26); +var toAbsoluteIndex = __webpack_require__(163); +var lengthOfArrayLike = __webpack_require__(164); + +// `Array.prototype.{ indexOf, includes }` methods implementation +var createMethod = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = lengthOfArrayLike(O); + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + +module.exports = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod(false) +}; + + +/***/ }), +/* 86 */ +/***/ (function(module, exports) { + +var ceil = Math.ceil; +var floor = Math.floor; + +// `ToIntegerOrInfinity` abstract operation +// https://tc39.es/ecma262/#sec-tointegerorinfinity +module.exports = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- safe + return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number); +}; + + +/***/ }), +/* 87 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _createStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createStore", function() { return _createStore__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _combineReducers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(90); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineReducers", function() { return _combineReducers__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + +/* harmony import */ var _bindActionCreators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(92); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bindActionCreators", function() { return _bindActionCreators__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + +/* harmony import */ var _applyMiddleware__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(93); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "applyMiddleware", function() { return _applyMiddleware__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + +/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(46); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "compose", function() { return _compose__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + +/* harmony import */ var _utils_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(91); + + + + + + + +/* +* This is a dummy function to check if the function name has been altered by minification. +* If the function has been minified and NODE_ENV !== 'production', warn the user. +*/ +function isCrushed() {} + +if (false) {} + + + +/***/ }), +/* 88 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(174); +/* harmony import */ var _getPrototype_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(179); +/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(181); + + + + +/** `Object#toString` result references. */ +var objectTag = '[object Object]'; + +/** Used for built-in method references. */ +var funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Used to infer the `Object` constructor. */ +var objectCtorString = funcToString.call(Object); + +/** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * @static + * @memberOf _ + * @since 0.8.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */ +function isPlainObject(value) { + if (!Object(_isObjectLike_js__WEBPACK_IMPORTED_MODULE_2__["default"])(value) || Object(_baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value) != objectTag) { + return false; + } + var proto = Object(_getPrototype_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; + return typeof Ctor == 'function' && Ctor instanceof Ctor && + funcToString.call(Ctor) == objectCtorString; +} + +/* harmony default export */ __webpack_exports__["default"] = (isPlainObject); + + +/***/ }), +/* 89 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(175); + + +/** Built-in value references. */ +var Symbol = _root_js__WEBPACK_IMPORTED_MODULE_0__["default"].Symbol; + +/* harmony default export */ __webpack_exports__["default"] = (Symbol); + + +/***/ }), +/* 90 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return combineReducers; }); +/* harmony import */ var _createStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45); +/* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88); +/* harmony import */ var _utils_warning__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(91); + + + + +function getUndefinedStateErrorMessage(key, action) { + var actionType = action && action.type; + var actionName = actionType && '"' + actionType.toString() + '"' || 'an action'; + + return 'Given action ' + actionName + ', reducer "' + key + '" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.'; +} + +function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) { + var reducerKeys = Object.keys(reducers); + var argumentName = action && action.type === _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer'; + + if (reducerKeys.length === 0) { + return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.'; + } + + if (!Object(lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_1__["default"])(inputState)) { + return 'The ' + argumentName + ' has unexpected type of "' + {}.toString.call(inputState).match(/\s([a-z|A-Z]+)/)[1] + '". Expected argument to be an object with the following ' + ('keys: "' + reducerKeys.join('", "') + '"'); + } + + var unexpectedKeys = Object.keys(inputState).filter(function (key) { + return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]; + }); + + unexpectedKeys.forEach(function (key) { + unexpectedKeyCache[key] = true; + }); + + if (unexpectedKeys.length > 0) { + return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('"' + unexpectedKeys.join('", "') + '" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('"' + reducerKeys.join('", "') + '". Unexpected keys will be ignored.'); + } +} + +function assertReducerSanity(reducers) { + Object.keys(reducers).forEach(function (key) { + var reducer = reducers[key]; + var initialState = reducer(undefined, { type: _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT }); + + if (typeof initialState === 'undefined') { + throw new Error('Reducer "' + key + '" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.'); + } + + var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.'); + if (typeof reducer(undefined, { type: type }) === 'undefined') { + throw new Error('Reducer "' + key + '" returned undefined when probed with a random type. ' + ('Don\'t try to handle ' + _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT + ' or other actions in "redux/*" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.'); + } + }); +} + +/** + * Turns an object whose values are different reducer functions, into a single + * reducer function. It will call every child reducer, and gather their results + * into a single state object, whose keys correspond to the keys of the passed + * reducer functions. + * + * @param {Object} reducers An object whose values correspond to different + * reducer functions that need to be combined into one. One handy way to obtain + * it is to use ES6 `import * as reducers` syntax. The reducers may never return + * undefined for any action. Instead, they should return their initial state + * if the state passed to them was undefined, and the current state for any + * unrecognized action. + * + * @returns {Function} A reducer function that invokes every reducer inside the + * passed object, and builds a state object with the same shape. + */ +function combineReducers(reducers) { + var reducerKeys = Object.keys(reducers); + var finalReducers = {}; + for (var i = 0; i < reducerKeys.length; i++) { + var key = reducerKeys[i]; + + if (false) {} + + if (typeof reducers[key] === 'function') { + finalReducers[key] = reducers[key]; + } + } + var finalReducerKeys = Object.keys(finalReducers); + + if (false) { var unexpectedKeyCache; } + + var sanityError; + try { + assertReducerSanity(finalReducers); + } catch (e) { + sanityError = e; + } + + return function combination() { + var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + var action = arguments[1]; + + if (sanityError) { + throw sanityError; + } + + if (false) { var warningMessage; } + + var hasChanged = false; + var nextState = {}; + for (var i = 0; i < finalReducerKeys.length; i++) { + var key = finalReducerKeys[i]; + var reducer = finalReducers[key]; + var previousStateForKey = state[key]; + var nextStateForKey = reducer(previousStateForKey, action); + if (typeof nextStateForKey === 'undefined') { + var errorMessage = getUndefinedStateErrorMessage(key, action); + throw new Error(errorMessage); + } + nextState[key] = nextStateForKey; + hasChanged = hasChanged || nextStateForKey !== previousStateForKey; + } + return hasChanged ? nextState : state; + }; +} + +/***/ }), +/* 91 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return warning; }); +/** + * Prints a warning in the console if it exists. + * + * @param {String} message The warning message. + * @returns {void} + */ +function warning(message) { + /* eslint-disable no-console */ + if (typeof console !== 'undefined' && typeof console.error === 'function') { + console.error(message); + } + /* eslint-enable no-console */ + try { + // This error was thrown as a convenience so that if you enable + // "break on all exceptions" in your console, + // it would pause the execution at this line. + throw new Error(message); + /* eslint-disable no-empty */ + } catch (e) {} + /* eslint-enable no-empty */ +} + +/***/ }), +/* 92 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return bindActionCreators; }); +function bindActionCreator(actionCreator, dispatch) { + return function () { + return dispatch(actionCreator.apply(undefined, arguments)); + }; +} + +/** + * Turns an object whose values are action creators, into an object with the + * same keys, but with every function wrapped into a `dispatch` call so they + * may be invoked directly. This is just a convenience method, as you can call + * `store.dispatch(MyActionCreators.doSomething())` yourself just fine. + * + * For convenience, you can also pass a single function as the first argument, + * and get a function in return. + * + * @param {Function|Object} actionCreators An object whose values are action + * creator functions. One handy way to obtain it is to use ES6 `import * as` + * syntax. You may also pass a single function. + * + * @param {Function} dispatch The `dispatch` function available on your Redux + * store. + * + * @returns {Function|Object} The object mimicking the original object, but with + * every action creator wrapped into the `dispatch` call. If you passed a + * function as `actionCreators`, the return value will also be a single + * function. + */ +function bindActionCreators(actionCreators, dispatch) { + if (typeof actionCreators === 'function') { + return bindActionCreator(actionCreators, dispatch); + } + + if (typeof actionCreators !== 'object' || actionCreators === null) { + throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?'); + } + + var keys = Object.keys(actionCreators); + var boundActionCreators = {}; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + var actionCreator = actionCreators[key]; + if (typeof actionCreator === 'function') { + boundActionCreators[key] = bindActionCreator(actionCreator, dispatch); + } + } + return boundActionCreators; +} + +/***/ }), +/* 93 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return applyMiddleware; }); +/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46); +var _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; }; + + + +/** + * Creates a store enhancer that applies middleware to the dispatch method + * of the Redux store. This is handy for a variety of tasks, such as expressing + * asynchronous actions in a concise manner, or logging every action payload. + * + * See `redux-thunk` package as an example of the Redux middleware. + * + * Because middleware is potentially asynchronous, this should be the first + * store enhancer in the composition chain. + * + * Note that each middleware will be given the `dispatch` and `getState` functions + * as named arguments. + * + * @param {...Function} middlewares The middleware chain to be applied. + * @returns {Function} A store enhancer applying the middleware. + */ +function applyMiddleware() { + for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) { + middlewares[_key] = arguments[_key]; + } + + return function (createStore) { + return function (reducer, preloadedState, enhancer) { + var store = createStore(reducer, preloadedState, enhancer); + var _dispatch = store.dispatch; + var chain = []; + + var middlewareAPI = { + getState: store.getState, + dispatch: function dispatch(action) { + return _dispatch(action); + } + }; + chain = middlewares.map(function (middleware) { + return middleware(middlewareAPI); + }); + _dispatch = _compose__WEBPACK_IMPORTED_MODULE_0__["default"].apply(undefined, chain)(store.dispatch); + + return _extends({}, store, { + dispatch: _dispatch + }); + }; + }; +} + +/***/ }), +/* 94 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ActionAppliesTo = exports.ActionTypeConsts = void 0; +var ActionTypeConsts = { + TRANSFORM_MOVE: 'TRANSFORM_MOVE', + TRANSFORM_SCALE: 'TRANSFORM_SCALE', + TRANSFORM_ROTATE: 'TRANSFORM_ROTATE', + TRANSFORM_SKEW: 'TRANSFORM_SKEW', + STYLE_OPACITY: 'STYLE_OPACITY', + STYLE_SIZE: 'STYLE_SIZE', + STYLE_FILTER: 'STYLE_FILTER', + STYLE_FONT_VARIATION: 'STYLE_FONT_VARIATION', + STYLE_BACKGROUND_COLOR: 'STYLE_BACKGROUND_COLOR', + STYLE_BORDER: 'STYLE_BORDER', + STYLE_TEXT_COLOR: 'STYLE_TEXT_COLOR', + PLUGIN_LOTTIE: 'PLUGIN_LOTTIE', + GENERAL_DISPLAY: 'GENERAL_DISPLAY', + GENERAL_START_ACTION: 'GENERAL_START_ACTION', + GENERAL_CONTINUOUS_ACTION: 'GENERAL_CONTINUOUS_ACTION', + // TODO: Clean these up below because they're not used at this time + GENERAL_COMBO_CLASS: 'GENERAL_COMBO_CLASS', + GENERAL_STOP_ACTION: 'GENERAL_STOP_ACTION', + GENERAL_LOOP: 'GENERAL_LOOP', + STYLE_BOX_SHADOW: 'STYLE_BOX_SHADOW' +}; +exports.ActionTypeConsts = ActionTypeConsts; +var ActionAppliesTo = { + ELEMENT: 'ELEMENT', + ELEMENT_CLASS: 'ELEMENT_CLASS', + TRIGGER_ELEMENT: 'TRIGGER_ELEMENT' +}; +exports.ActionAppliesTo = ActionAppliesTo; + +/***/ }), +/* 95 */ +/***/ (function(module, exports, __webpack_require__) { + +var createFind = __webpack_require__(96), + findIndex = __webpack_require__(259); + +/** + * Iterates over elements of `collection`, returning the first element + * `predicate` returns truthy for. The predicate is invoked with three + * arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false }, + * { 'user': 'pebbles', 'age': 1, 'active': true } + * ]; + * + * _.find(users, function(o) { return o.age < 40; }); + * // => object for 'barney' + * + * // The `_.matches` iteratee shorthand. + * _.find(users, { 'age': 1, 'active': true }); + * // => object for 'pebbles' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.find(users, ['active', false]); + * // => object for 'fred' + * + * // The `_.property` iteratee shorthand. + * _.find(users, 'active'); + * // => object for 'barney' + */ +var find = createFind(findIndex); + +module.exports = find; + + +/***/ }), +/* 96 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIteratee = __webpack_require__(10), + isArrayLike = __webpack_require__(16), + keys = __webpack_require__(35); + +/** + * Creates a `_.find` or `_.findLast` function. + * + * @private + * @param {Function} findIndexFunc The function to find the collection index. + * @returns {Function} Returns the new find function. + */ +function createFind(findIndexFunc) { + return function(collection, predicate, fromIndex) { + var iterable = Object(collection); + if (!isArrayLike(collection)) { + var iteratee = baseIteratee(predicate, 3); + collection = keys(collection); + predicate = function(key) { return iteratee(iterable[key], key, iterable); }; + } + var index = findIndexFunc(collection, predicate, fromIndex); + return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; + }; +} + +module.exports = createFind; + + +/***/ }), +/* 97 */ +/***/ (function(module, exports, __webpack_require__) { + +var ListCache = __webpack_require__(31), + stackClear = __webpack_require__(201), + stackDelete = __webpack_require__(202), + stackGet = __webpack_require__(203), + stackHas = __webpack_require__(204), + stackSet = __webpack_require__(205); + +/** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Stack(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; +} + +// Add methods to `Stack`. +Stack.prototype.clear = stackClear; +Stack.prototype['delete'] = stackDelete; +Stack.prototype.get = stackGet; +Stack.prototype.has = stackHas; +Stack.prototype.set = stackSet; + +module.exports = Stack; + + +/***/ }), +/* 98 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(15), + isObject = __webpack_require__(8); + +/** `Object#toString` result references. */ +var asyncTag = '[object AsyncFunction]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + proxyTag = '[object Proxy]'; + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + if (!isObject(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; +} + +module.exports = isFunction; + + +/***/ }), +/* 99 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + +module.exports = freeGlobal; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25))) + +/***/ }), +/* 100 */ +/***/ (function(module, exports) { + +/** Used for built-in method references. */ +var funcProto = Function.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ +function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; +} + +module.exports = toSource; + + +/***/ }), +/* 101 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsEqualDeep = __webpack_require__(224), + isObjectLike = __webpack_require__(12); + +/** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ +function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); +} + +module.exports = baseIsEqual; + + +/***/ }), +/* 102 */ +/***/ (function(module, exports, __webpack_require__) { + +var SetCache = __webpack_require__(225), + arraySome = __webpack_require__(228), + cacheHas = __webpack_require__(229); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ +function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + // Check that cyclic values are equal. + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } + var index = -1, + result = true, + seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; + + stack.set(array, other); + stack.set(other, array); + + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, arrValue, index, other, array, stack) + : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== undefined) { + if (compared) { + continue; + } + result = false; + break; + } + // Recursively compare arrays (susceptible to call stack limits). + if (seen) { + if (!arraySome(other, function(othValue, othIndex) { + if (!cacheHas(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + )) { + result = false; + break; + } + } + stack['delete'](array); + stack['delete'](other); + return result; +} + +module.exports = equalArrays; + + +/***/ }), +/* 103 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayPush = __webpack_require__(51), + isArray = __webpack_require__(2); + +/** + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. + */ +function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); +} + +module.exports = baseGetAllKeys; + + +/***/ }), +/* 104 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayFilter = __webpack_require__(236), + stubArray = __webpack_require__(105); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeGetSymbols = Object.getOwnPropertySymbols; + +/** + * Creates an array of the own enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ +var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); +}; + +module.exports = getSymbols; + + +/***/ }), +/* 105 */ +/***/ (function(module, exports) { + +/** + * This method returns a new empty array. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {Array} Returns the new empty array. + * @example + * + * var arrays = _.times(2, _.stubArray); + * + * console.log(arrays); + * // => [[], []] + * + * console.log(arrays[0] === arrays[1]); + * // => false + */ +function stubArray() { + return []; +} + +module.exports = stubArray; + + +/***/ }), +/* 106 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseTimes = __webpack_require__(237), + isArguments = __webpack_require__(36), + isArray = __webpack_require__(2), + isBuffer = __webpack_require__(52), + isIndex = __webpack_require__(53), + isTypedArray = __webpack_require__(54); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ +function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), + isArg = !isArr && isArguments(value), + isBuff = !isArr && !isArg && isBuffer(value), + isType = !isArr && !isArg && !isBuff && isTypedArray(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? baseTimes(value.length, String) : [], + length = result.length; + + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && + !(skipIndexes && ( + // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || + // Node.js 0.10 has enumerable non-index properties on buffers. + (isBuff && (key == 'offset' || key == 'parent')) || + // PhantomJS 2 has enumerable non-index properties on typed arrays. + (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || + // Skip index properties. + isIndex(key, length) + ))) { + result.push(key); + } + } + return result; +} + +module.exports = arrayLikeKeys; + + +/***/ }), +/* 107 */ +/***/ (function(module, exports) { + +module.exports = function(module) { + if (!module.webpackPolyfill) { + module.deprecate = function() {}; + module.paths = []; + // module.parent = undefined by default + if (!module.children) module.children = []; + Object.defineProperty(module, "loaded", { + enumerable: true, + get: function() { + return module.l; + } + }); + Object.defineProperty(module, "id", { + enumerable: true, + get: function() { + return module.i; + } + }); + module.webpackPolyfill = 1; + } + return module; +}; + + +/***/ }), +/* 108 */ +/***/ (function(module, exports) { + +/** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ +function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; +} + +module.exports = overArg; + + +/***/ }), +/* 109 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(11), + root = __webpack_require__(6); + +/* Built-in method references that are verified to be native. */ +var WeakMap = getNative(root, 'WeakMap'); + +module.exports = WeakMap; + + +/***/ }), +/* 110 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(8); + +/** + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ +function isStrictComparable(value) { + return value === value && !isObject(value); +} + +module.exports = isStrictComparable; + + +/***/ }), +/* 111 */ +/***/ (function(module, exports) { + +/** + * A specialized version of `matchesProperty` for source values suitable + * for strict equality comparisons, i.e. `===`. + * + * @private + * @param {string} key The key of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ +function matchesStrictComparable(key, srcValue) { + return function(object) { + if (object == null) { + return false; + } + return object[key] === srcValue && + (srcValue !== undefined || (key in Object(object))); + }; +} + +module.exports = matchesStrictComparable; + + +/***/ }), +/* 112 */ +/***/ (function(module, exports) { + +/** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function arrayMap(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; +} + +module.exports = arrayMap; + + +/***/ }), +/* 113 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new accessor function. + */ +function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; +} + +module.exports = baseProperty; + + +/***/ }), +/* 114 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 1 : -1); + + while ((fromRight ? index-- : ++index < length)) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; +} + +module.exports = baseFindIndex; + + +/***/ }), +/* 115 */ +/***/ (function(module, exports, __webpack_require__) { + +var toFinite = __webpack_require__(260); + +/** + * Converts `value` to an integer. + * + * **Note:** This method is loosely based on + * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toInteger(3.2); + * // => 3 + * + * _.toInteger(Number.MIN_VALUE); + * // => 0 + * + * _.toInteger(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toInteger('3.2'); + * // => 3 + */ +function toInteger(value) { + var result = toFinite(value), + remainder = result % 1; + + return result === result ? (remainder ? result - remainder : result) : 0; +} + +module.exports = toInteger; + + +/***/ }), +/* 116 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(1); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.inQuad = inQuad; +exports.outQuad = outQuad; +exports.inOutQuad = inOutQuad; +exports.inCubic = inCubic; +exports.outCubic = outCubic; +exports.inOutCubic = inOutCubic; +exports.inQuart = inQuart; +exports.outQuart = outQuart; +exports.inOutQuart = inOutQuart; +exports.inQuint = inQuint; +exports.outQuint = outQuint; +exports.inOutQuint = inOutQuint; +exports.inSine = inSine; +exports.outSine = outSine; +exports.inOutSine = inOutSine; +exports.inExpo = inExpo; +exports.outExpo = outExpo; +exports.inOutExpo = inOutExpo; +exports.inCirc = inCirc; +exports.outCirc = outCirc; +exports.inOutCirc = inOutCirc; +exports.outBounce = outBounce; +exports.inBack = inBack; +exports.outBack = outBack; +exports.inOutBack = inOutBack; +exports.inElastic = inElastic; +exports.outElastic = outElastic; +exports.inOutElastic = inOutElastic; +exports.swingFromTo = swingFromTo; +exports.swingFrom = swingFrom; +exports.swingTo = swingTo; +exports.bounce = bounce; +exports.bouncePast = bouncePast; +exports.easeInOut = exports.easeOut = exports.easeIn = exports.ease = void 0; + +var _bezierEasing = _interopRequireDefault(__webpack_require__(117)); // Easing functions adapted from Thomas Fuchs & Jeremy Kahn +// Easing Equations (c) 2003 Robert Penner, BSD license +// https://raw.github.com/danro/easing-js/master/LICENSE + + +var magicSwing = 1.70158; +var ease = (0, _bezierEasing["default"])(0.25, 0.1, 0.25, 1.0); +exports.ease = ease; +var easeIn = (0, _bezierEasing["default"])(0.42, 0.0, 1.0, 1.0); +exports.easeIn = easeIn; +var easeOut = (0, _bezierEasing["default"])(0.0, 0.0, 0.58, 1.0); +exports.easeOut = easeOut; +var easeInOut = (0, _bezierEasing["default"])(0.42, 0.0, 0.58, 1.0); +exports.easeInOut = easeInOut; + +function inQuad(pos) { + return Math.pow(pos, 2); +} + +function outQuad(pos) { + return -(Math.pow(pos - 1, 2) - 1); +} + +function inOutQuad(pos) { + if ((pos /= 0.5) < 1) { + return 0.5 * Math.pow(pos, 2); + } + + return -0.5 * ((pos -= 2) * pos - 2); +} + +function inCubic(pos) { + return Math.pow(pos, 3); +} + +function outCubic(pos) { + return Math.pow(pos - 1, 3) + 1; +} + +function inOutCubic(pos) { + if ((pos /= 0.5) < 1) { + return 0.5 * Math.pow(pos, 3); + } + + return 0.5 * (Math.pow(pos - 2, 3) + 2); +} + +function inQuart(pos) { + return Math.pow(pos, 4); +} + +function outQuart(pos) { + return -(Math.pow(pos - 1, 4) - 1); +} + +function inOutQuart(pos) { + if ((pos /= 0.5) < 1) { + return 0.5 * Math.pow(pos, 4); + } + + return -0.5 * ((pos -= 2) * Math.pow(pos, 3) - 2); +} + +function inQuint(pos) { + return Math.pow(pos, 5); +} + +function outQuint(pos) { + return Math.pow(pos - 1, 5) + 1; +} + +function inOutQuint(pos) { + if ((pos /= 0.5) < 1) { + return 0.5 * Math.pow(pos, 5); + } + + return 0.5 * (Math.pow(pos - 2, 5) + 2); +} + +function inSine(pos) { + return -Math.cos(pos * (Math.PI / 2)) + 1; +} + +function outSine(pos) { + return Math.sin(pos * (Math.PI / 2)); +} + +function inOutSine(pos) { + return -0.5 * (Math.cos(Math.PI * pos) - 1); +} + +function inExpo(pos) { + return pos === 0 ? 0 : Math.pow(2, 10 * (pos - 1)); +} + +function outExpo(pos) { + return pos === 1 ? 1 : -Math.pow(2, -10 * pos) + 1; +} + +function inOutExpo(pos) { + if (pos === 0) { + return 0; + } + + if (pos === 1) { + return 1; + } + + if ((pos /= 0.5) < 1) { + return 0.5 * Math.pow(2, 10 * (pos - 1)); + } + + return 0.5 * (-Math.pow(2, -10 * --pos) + 2); +} + +function inCirc(pos) { + return -(Math.sqrt(1 - pos * pos) - 1); +} + +function outCirc(pos) { + return Math.sqrt(1 - Math.pow(pos - 1, 2)); +} + +function inOutCirc(pos) { + if ((pos /= 0.5) < 1) { + return -0.5 * (Math.sqrt(1 - pos * pos) - 1); + } + + return 0.5 * (Math.sqrt(1 - (pos -= 2) * pos) + 1); +} + +function outBounce(pos) { + if (pos < 1 / 2.75) { + return 7.5625 * pos * pos; + } else if (pos < 2 / 2.75) { + return 7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75; + } else if (pos < 2.5 / 2.75) { + return 7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375; + } else { + return 7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375; + } +} + +function inBack(pos) { + var s = magicSwing; + return pos * pos * ((s + 1) * pos - s); +} + +function outBack(pos) { + var s = magicSwing; + return (pos -= 1) * pos * ((s + 1) * pos + s) + 1; +} + +function inOutBack(pos) { + var s = magicSwing; + + if ((pos /= 0.5) < 1) { + return 0.5 * (pos * pos * (((s *= 1.525) + 1) * pos - s)); + } + + return 0.5 * ((pos -= 2) * pos * (((s *= 1.525) + 1) * pos + s) + 2); +} + +function inElastic(pos) { + var s = magicSwing; + var p = 0; + var a = 1; + + if (pos === 0) { + return 0; + } + + if (pos === 1) { + return 1; + } + + if (!p) { + p = 0.3; + } + + if (a < 1) { + a = 1; + s = p / 4; + } else { + s = p / (2 * Math.PI) * Math.asin(1 / a); + } + + return -(a * Math.pow(2, 10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p)); +} + +function outElastic(pos) { + var s = magicSwing; + var p = 0; + var a = 1; + + if (pos === 0) { + return 0; + } + + if (pos === 1) { + return 1; + } + + if (!p) { + p = 0.3; + } + + if (a < 1) { + a = 1; + s = p / 4; + } else { + s = p / (2 * Math.PI) * Math.asin(1 / a); + } + + return a * Math.pow(2, -10 * pos) * Math.sin((pos - s) * (2 * Math.PI) / p) + 1; +} + +function inOutElastic(pos) { + var s = magicSwing; + var p = 0; + var a = 1; + + if (pos === 0) { + return 0; + } + + if ((pos /= 1 / 2) === 2) { + return 1; + } + + if (!p) { + p = 0.3 * 1.5; + } + + if (a < 1) { + a = 1; + s = p / 4; + } else { + s = p / (2 * Math.PI) * Math.asin(1 / a); + } + + if (pos < 1) { + return -0.5 * (a * Math.pow(2, 10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p)); + } + + return a * Math.pow(2, -10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p) * 0.5 + 1; +} + +function swingFromTo(pos) { + var s = magicSwing; + return (pos /= 0.5) < 1 ? 0.5 * (pos * pos * (((s *= 1.525) + 1) * pos - s)) : 0.5 * ((pos -= 2) * pos * (((s *= 1.525) + 1) * pos + s) + 2); +} + +function swingFrom(pos) { + var s = magicSwing; + return pos * pos * ((s + 1) * pos - s); +} + +function swingTo(pos) { + var s = magicSwing; + return (pos -= 1) * pos * ((s + 1) * pos + s) + 1; +} + +function bounce(pos) { + if (pos < 1 / 2.75) { + return 7.5625 * pos * pos; + } else if (pos < 2 / 2.75) { + return 7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75; + } else if (pos < 2.5 / 2.75) { + return 7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375; + } else { + return 7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375; + } +} + +function bouncePast(pos) { + if (pos < 1 / 2.75) { + return 7.5625 * pos * pos; + } else if (pos < 2 / 2.75) { + return 2 - (7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75); + } else if (pos < 2.5 / 2.75) { + return 2 - (7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375); + } else { + return 2 - (7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375); + } +} + +/***/ }), +/* 117 */ +/***/ (function(module, exports) { + +/** + * https://github.com/gre/bezier-easing + * BezierEasing - use bezier curve for transition easing function + * by Gaëtan Renaudeau 2014 - 2015 – MIT License + */ + +// These values are established by empiricism with tests (tradeoff: performance VS precision) +var NEWTON_ITERATIONS = 4; +var NEWTON_MIN_SLOPE = 0.001; +var SUBDIVISION_PRECISION = 0.0000001; +var SUBDIVISION_MAX_ITERATIONS = 10; + +var kSplineTableSize = 11; +var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0); + +var float32ArraySupported = typeof Float32Array === 'function'; + +function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; } +function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; } +function C (aA1) { return 3.0 * aA1; } + +// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2. +function calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; } + +// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2. +function getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); } + +function binarySubdivide (aX, aA, aB, mX1, mX2) { + var currentX, currentT, i = 0; + do { + currentT = aA + (aB - aA) / 2.0; + currentX = calcBezier(currentT, mX1, mX2) - aX; + if (currentX > 0.0) { + aB = currentT; + } else { + aA = currentT; + } + } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS); + return currentT; +} + +function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) { + for (var i = 0; i < NEWTON_ITERATIONS; ++i) { + var currentSlope = getSlope(aGuessT, mX1, mX2); + if (currentSlope === 0.0) { + return aGuessT; + } + var currentX = calcBezier(aGuessT, mX1, mX2) - aX; + aGuessT -= currentX / currentSlope; + } + return aGuessT; +} + +module.exports = function bezier (mX1, mY1, mX2, mY2) { + if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { + throw new Error('bezier x values must be in [0, 1] range'); + } + + // Precompute samples table + var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize); + if (mX1 !== mY1 || mX2 !== mY2) { + for (var i = 0; i < kSplineTableSize; ++i) { + sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2); + } + } + + function getTForX (aX) { + var intervalStart = 0.0; + var currentSample = 1; + var lastSample = kSplineTableSize - 1; + + for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) { + intervalStart += kSampleStepSize; + } + --currentSample; + + // Interpolate to provide an initial guess for t + var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]); + var guessForT = intervalStart + dist * kSampleStepSize; + + var initialSlope = getSlope(guessForT, mX1, mX2); + if (initialSlope >= NEWTON_MIN_SLOPE) { + return newtonRaphsonIterate(aX, guessForT, mX1, mX2); + } else if (initialSlope === 0.0) { + return guessForT; + } else { + return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2); + } + } + + return function BezierEasing (x) { + if (mX1 === mY1 && mX2 === mY2) { + return x; // linear + } + // Because JavaScript number are imprecise, we should guarantee the extremes are right. + if (x === 0) { + return 0; + } + if (x === 1) { + return 1; + } + return calcBezier(getTForX(x), mY1, mY2); + }; +}; + + +/***/ }), +/* 118 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault2 = __webpack_require__(1); + +var _toConsumableArray2 = _interopRequireDefault2(__webpack_require__(119)); + +var _interopRequireDefault = __webpack_require__(1); + +var _interopRequireWildcard = __webpack_require__(18); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.optimizeFloat = optimizeFloat; +exports.createBezierEasing = createBezierEasing; +exports.applyEasing = applyEasing; + +var easings = _interopRequireWildcard(__webpack_require__(116)); + +var _bezierEasing = _interopRequireDefault(__webpack_require__(117)); + +function optimizeFloat(value) { + var digits = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5; + var base = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10; + var pow = Math.pow(base, digits); + + var _float = Number(Math.round(value * pow) / pow); + + return Math.abs(_float) > 0.0001 ? _float : 0; +} + +function createBezierEasing(easing) { + return (0, _bezierEasing["default"]).apply(void 0, (0, _toConsumableArray2["default"])(easing)); +} + +function applyEasing(easing, position, customEasingFn) { + if (position === 0) { + return 0; + } + + if (position === 1) { + return 1; + } + + if (customEasingFn) { + return optimizeFloat(position > 0 ? customEasingFn(position) : position); + } + + return optimizeFloat(position > 0 && easing && easings[easing] ? easings[easing](position) : position); +} + +/***/ }), +/* 119 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayWithoutHoles = __webpack_require__(263); + +var iterableToArray = __webpack_require__(264); + +var nonIterableSpread = __webpack_require__(265); + +function _toConsumableArray(arr) { + return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread(); +} + +module.exports = _toConsumableArray; + +/***/ }), +/* 120 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(1); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(21)); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isPluginType = isPluginType; +exports.clearPlugin = exports.renderPlugin = exports.createPluginInstance = exports.getPluginDestination = exports.getPluginDuration = exports.getPluginOrigin = exports.getPluginConfig = void 0; + +var _IX2LottieUtils = __webpack_require__(267); + +var _constants = __webpack_require__(3); + +var _IX2BrowserSupport = __webpack_require__(47); // eslint-disable-next-line webflow/module-top-level-imports, webflow/packages-must-be-defined + + +var pluginMethodMap = (0, _defineProperty2["default"])({}, _constants.ActionTypeConsts.PLUGIN_LOTTIE, { + getConfig: _IX2LottieUtils.getPluginConfig, + getOrigin: _IX2LottieUtils.getPluginOrigin, + getDuration: _IX2LottieUtils.getPluginDuration, + getDestination: _IX2LottieUtils.getPluginDestination, + createInstance: _IX2LottieUtils.createPluginInstance, + render: _IX2LottieUtils.renderPlugin, + clear: _IX2LottieUtils.clearPlugin +}); + +function isPluginType(actionTypeId) { + return actionTypeId === _constants.ActionTypeConsts.PLUGIN_LOTTIE; +} + +var pluginMethod = function pluginMethod(methodName) { + return function (actionTypeId) { + if (!_IX2BrowserSupport.IS_BROWSER_ENV) { + // IX2 plugins require browser libs for now + return function () { + return null; + }; + } + + var plugin = pluginMethodMap[actionTypeId]; + + if (!plugin) { + throw new Error("IX2 no plugin configured for: ".concat(actionTypeId)); + } + + var method = plugin[methodName]; + + if (!method) { + throw new Error("IX2 invalid plugin method: ".concat(methodName)); + } + + return method; + }; +}; + +var getPluginConfig = pluginMethod('getConfig'); +exports.getPluginConfig = getPluginConfig; +var getPluginOrigin = pluginMethod('getOrigin'); +exports.getPluginOrigin = getPluginOrigin; +var getPluginDuration = pluginMethod('getDuration'); +exports.getPluginDuration = getPluginDuration; +var getPluginDestination = pluginMethod('getDestination'); +exports.getPluginDestination = getPluginDestination; +var createPluginInstance = pluginMethod('createInstance'); +exports.createPluginInstance = createPluginInstance; +var renderPlugin = pluginMethod('render'); +exports.renderPlugin = renderPlugin; +var clearPlugin = pluginMethod('clear'); +exports.clearPlugin = clearPlugin; + +/***/ }), +/* 121 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseForOwn = __webpack_require__(122), + createBaseEach = __webpack_require__(274); + +/** + * The base implementation of `_.forEach` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + */ +var baseEach = createBaseEach(baseForOwn); + +module.exports = baseEach; + + +/***/ }), +/* 122 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseFor = __webpack_require__(272), + keys = __webpack_require__(35); + +/** + * The base implementation of `_.forOwn` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ +function baseForOwn(object, iteratee) { + return object && baseFor(object, iteratee, keys); +} + +module.exports = baseForOwn; + + +/***/ }), +/* 123 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault2 = __webpack_require__(1); + +var _toConsumableArray2 = _interopRequireDefault2(__webpack_require__(119)); + +var _interopRequireWildcard = __webpack_require__(18); + +var _interopRequireDefault = __webpack_require__(1); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.observeRequests = observeRequests; +exports.startEngine = startEngine; +exports.stopEngine = stopEngine; +exports.stopAllActionGroups = stopAllActionGroups; +exports.stopActionGroup = stopActionGroup; +exports.startActionGroup = startActionGroup; + +var _extends2 = _interopRequireDefault(__webpack_require__(30)); + +var _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(281)); + +var _find = _interopRequireDefault(__webpack_require__(95)); + +var _get = _interopRequireDefault(__webpack_require__(59)); + +var _size = _interopRequireDefault(__webpack_require__(282)); + +var _omitBy = _interopRequireDefault(__webpack_require__(288)); + +var _isEmpty = _interopRequireDefault(__webpack_require__(300)); + +var _mapValues = _interopRequireDefault(__webpack_require__(301)); + +var _forEach = _interopRequireDefault(__webpack_require__(302)); + +var _throttle = _interopRequireDefault(__webpack_require__(305)); + +var _constants = __webpack_require__(3); + +var _shared = __webpack_require__(14); + +var _IX2EngineActions = __webpack_require__(64); + +var elementApi = _interopRequireWildcard(__webpack_require__(308)); + +var _IX2VanillaEvents = _interopRequireDefault(__webpack_require__(309)); +/* eslint-env browser */ + + +var QuickEffectsIdList = Object.keys(_constants.QuickEffectIds); + +var isQuickEffect = function isQuickEffect(actionTypeId) { + return QuickEffectsIdList.includes(actionTypeId); +}; + +var _constants$IX2EngineC = _constants.IX2EngineConstants, + COLON_DELIMITER = _constants$IX2EngineC.COLON_DELIMITER, + BOUNDARY_SELECTOR = _constants$IX2EngineC.BOUNDARY_SELECTOR, + HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, + RENDER_GENERAL = _constants$IX2EngineC.RENDER_GENERAL, + W_MOD_IX = _constants$IX2EngineC.W_MOD_IX; +var _shared$IX2VanillaUti = _shared.IX2VanillaUtils, + getAffectedElements = _shared$IX2VanillaUti.getAffectedElements, + getElementId = _shared$IX2VanillaUti.getElementId, + getDestinationValues = _shared$IX2VanillaUti.getDestinationValues, + observeStore = _shared$IX2VanillaUti.observeStore, + getInstanceId = _shared$IX2VanillaUti.getInstanceId, + renderHTMLElement = _shared$IX2VanillaUti.renderHTMLElement, + clearAllStyles = _shared$IX2VanillaUti.clearAllStyles, + getMaxDurationItemIndex = _shared$IX2VanillaUti.getMaxDurationItemIndex, + getComputedStyle = _shared$IX2VanillaUti.getComputedStyle, + getInstanceOrigin = _shared$IX2VanillaUti.getInstanceOrigin, + reduceListToGroup = _shared$IX2VanillaUti.reduceListToGroup, + shouldNamespaceEventParameter = _shared$IX2VanillaUti.shouldNamespaceEventParameter, + getNamespacedParameterId = _shared$IX2VanillaUti.getNamespacedParameterId, + shouldAllowMediaQuery = _shared$IX2VanillaUti.shouldAllowMediaQuery, + cleanupHTMLElement = _shared$IX2VanillaUti.cleanupHTMLElement, + stringifyTarget = _shared$IX2VanillaUti.stringifyTarget, + mediaQueriesEqual = _shared$IX2VanillaUti.mediaQueriesEqual, + shallowEqual = _shared$IX2VanillaUti.shallowEqual; +var _shared$IX2VanillaPlu = _shared.IX2VanillaPlugins, + isPluginType = _shared$IX2VanillaPlu.isPluginType, + createPluginInstance = _shared$IX2VanillaPlu.createPluginInstance, + getPluginDuration = _shared$IX2VanillaPlu.getPluginDuration; +var ua = navigator.userAgent; +var IS_MOBILE_SAFARI = ua.match(/iPad/i) || ua.match(/iPhone/); // Keep throttled events at ~80fps to reduce reflows while maintaining render accuracy + +var THROTTLED_EVENT_WAIT = 12; // $FlowFixMe + +function observeRequests(store) { + observeStore({ + store: store, + select: function select(_ref) { + var ixRequest = _ref.ixRequest; + return ixRequest.preview; + }, + onChange: handlePreviewRequest + }); + observeStore({ + store: store, + select: function select(_ref2) { + var ixRequest = _ref2.ixRequest; + return ixRequest.playback; + }, + onChange: handlePlaybackRequest + }); + observeStore({ + store: store, + select: function select(_ref3) { + var ixRequest = _ref3.ixRequest; + return ixRequest.stop; + }, + onChange: handleStopRequest + }); + observeStore({ + store: store, + select: function select(_ref4) { + var ixRequest = _ref4.ixRequest; + return ixRequest.clear; + }, + onChange: handleClearRequest + }); +} + +function observeMediaQueryChange(store) { + observeStore({ + store: store, + select: function select(_ref5) { + var ixSession = _ref5.ixSession; + return ixSession.mediaQueryKey; + }, + onChange: function onChange() { + stopEngine(store); + clearAllStyles({ + store: store, + elementApi: elementApi + }); + startEngine({ + store: store, + allowEvents: true + }); + dispatchPageUpdateEvent(); + } + }); +} + +function observeOneRenderTick(store, onTick) { + var unsubscribe = observeStore({ + store: store, + select: function select(_ref6) { + var ixSession = _ref6.ixSession; + return ixSession.tick; + }, + onChange: function onChange(tick) { + onTick(tick); + unsubscribe(); + } + }); +} + +function handlePreviewRequest(_ref7, store) { + var rawData = _ref7.rawData, + defer = _ref7.defer; + + var start = function start() { + startEngine({ + store: store, + rawData: rawData, + allowEvents: true + }); + dispatchPageUpdateEvent(); + }; + + defer ? setTimeout(start, 0) : start(); +} + +function dispatchPageUpdateEvent() { + document.dispatchEvent(new CustomEvent('IX2_PAGE_UPDATE')); +} + +function handlePlaybackRequest(playback, store) { + var actionTypeId = playback.actionTypeId, + actionListId = playback.actionListId, + actionItemId = playback.actionItemId, + eventId = playback.eventId, + allowEvents = playback.allowEvents, + immediate = playback.immediate, + testManual = playback.testManual, + _playback$verbose = playback.verbose, + verbose = _playback$verbose === void 0 ? true : _playback$verbose; + var rawData = playback.rawData; + + if (actionListId && actionItemId && rawData && immediate) { + var actionList = rawData.actionLists[actionListId]; + + if (actionList) { + rawData = reduceListToGroup({ + actionList: actionList, + actionItemId: actionItemId, + rawData: rawData + }); + } + } + + startEngine({ + store: store, + rawData: rawData, + allowEvents: allowEvents, + testManual: testManual + }); + + if (actionListId && actionTypeId === _constants.ActionTypeConsts.GENERAL_START_ACTION || isQuickEffect(actionTypeId)) { + stopActionGroup({ + store: store, + actionListId: actionListId + }); + renderInitialGroup({ + store: store, + actionListId: actionListId, + eventId: eventId + }); + var started = startActionGroup({ + store: store, + eventId: eventId, + actionListId: actionListId, + immediate: immediate, + verbose: verbose + }); + + if (verbose && started) { + store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ + actionListId: actionListId, + isPlaying: !immediate + })); + } + } +} + +function handleStopRequest(_ref8, store) { + var actionListId = _ref8.actionListId; + + if (actionListId) { + stopActionGroup({ + store: store, + actionListId: actionListId + }); + } else { + stopAllActionGroups({ + store: store + }); + } + + stopEngine(store); +} + +function handleClearRequest(state, store) { + stopEngine(store); + clearAllStyles({ + store: store, + elementApi: elementApi + }); +} // $FlowFixMe + + +function startEngine(_ref9) { + var store = _ref9.store, + rawData = _ref9.rawData, + allowEvents = _ref9.allowEvents, + testManual = _ref9.testManual; + + var _store$getState = store.getState(), + ixSession = _store$getState.ixSession; + + if (rawData) { + store.dispatch((0, _IX2EngineActions.rawDataImported)(rawData)); + } + + if (!ixSession.active) { + store.dispatch((0, _IX2EngineActions.sessionInitialized)({ + hasBoundaryNodes: Boolean(document.querySelector(BOUNDARY_SELECTOR)), + reducedMotion: // $FlowFixMe - Remove this attribute on beta launch + document.body.hasAttribute('data-wf-ix-vacation') && window.matchMedia('(prefers-reduced-motion)').matches + })); + + if (allowEvents) { + bindEvents(store); + addDocumentClass(); + + if (store.getState().ixSession.hasDefinedMediaQueries) { + observeMediaQueryChange(store); + } + } + + store.dispatch((0, _IX2EngineActions.sessionStarted)()); + startRenderLoop(store, testManual); + } +} + +function addDocumentClass() { + var _document = document, + documentElement = _document.documentElement; // $FlowFixMe + + if (documentElement.className.indexOf(W_MOD_IX) === -1) { + // $FlowFixMe + documentElement.className += " ".concat(W_MOD_IX); + } +} + +function startRenderLoop(store, testManual) { + var handleFrame = function handleFrame(now) { + var _store$getState2 = store.getState(), + ixSession = _store$getState2.ixSession, + ixParameters = _store$getState2.ixParameters; + + if (ixSession.active) { + store.dispatch((0, _IX2EngineActions.animationFrameChanged)(now, ixParameters)); + + if (testManual) { + observeOneRenderTick(store, handleFrame); + } else { + requestAnimationFrame(handleFrame); + } + } + }; + + handleFrame(window.performance.now()); +} // $FlowFixMe + + +function stopEngine(store) { + var _store$getState3 = store.getState(), + ixSession = _store$getState3.ixSession; + + if (ixSession.active) { + var eventListeners = ixSession.eventListeners; + eventListeners.forEach(clearEventListener); + store.dispatch((0, _IX2EngineActions.sessionStopped)()); + } +} + +function clearEventListener(_ref10) { + var target = _ref10.target, + listenerParams = _ref10.listenerParams; + target.removeEventListener.apply(target, listenerParams); +} + +function createGroupInstances(_ref11) { + var store = _ref11.store, + eventStateKey = _ref11.eventStateKey, + eventTarget = _ref11.eventTarget, + eventId = _ref11.eventId, + eventConfig = _ref11.eventConfig, + actionListId = _ref11.actionListId, + parameterGroup = _ref11.parameterGroup, + smoothing = _ref11.smoothing, + restingValue = _ref11.restingValue; + + var _store$getState4 = store.getState(), + ixData = _store$getState4.ixData, + ixSession = _store$getState4.ixSession; + + var events = ixData.events; + var event = events[eventId]; + var eventTypeId = event.eventTypeId; + var targetCache = {}; + var instanceActionGroups = {}; + var instanceConfigs = []; + var continuousActionGroups = parameterGroup.continuousActionGroups; + var parameterId = parameterGroup.id; + + if (shouldNamespaceEventParameter(eventTypeId, eventConfig)) { + parameterId = getNamespacedParameterId(eventStateKey, parameterId); + } // Limit affected elements when event target is within a boundary node + + + var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null; + continuousActionGroups.forEach(function (actionGroup) { + var keyframe = actionGroup.keyframe, + actionItems = actionGroup.actionItems; + actionItems.forEach(function (actionItem) { + var actionTypeId = actionItem.actionTypeId; + var target = actionItem.config.target; + + if (!target) { + return; + } + + var elementRoot = target.boundaryMode ? eventElementRoot : null; + var key = stringifyTarget(target) + COLON_DELIMITER + actionTypeId; + instanceActionGroups[key] = appendActionItem(instanceActionGroups[key], keyframe, actionItem); + + if (!targetCache[key]) { + targetCache[key] = true; + var config = actionItem.config; + getAffectedElements({ + config: config, + event: event, + eventTarget: eventTarget, + elementRoot: elementRoot, + elementApi: elementApi + }).forEach(function (element) { + instanceConfigs.push({ + element: element, + key: key + }); + }); + } + }); + }); + instanceConfigs.forEach(function (_ref12) { + var element = _ref12.element, + key = _ref12.key; + var actionGroups = instanceActionGroups[key]; + var actionItem = (0, _get["default"])(actionGroups, "[0].actionItems[0]", {}); + var actionTypeId = actionItem.actionTypeId; + var pluginInstance = isPluginType(actionTypeId) ? // $FlowFixMe + createPluginInstance(actionTypeId)(element, actionItem) : null; + var destination = getDestinationValues({ + element: element, + actionItem: actionItem, + elementApi: elementApi + }, // $FlowFixMe + pluginInstance); + createInstance({ + store: store, + element: element, + eventId: eventId, + actionListId: actionListId, + actionItem: actionItem, + destination: destination, + continuous: true, + parameterId: parameterId, + actionGroups: actionGroups, + smoothing: smoothing, + restingValue: restingValue, + pluginInstance: pluginInstance + }); + }); +} + +function appendActionItem() { + var actionGroups = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var keyframe = arguments.length > 1 ? arguments[1] : undefined; + var actionItem = arguments.length > 2 ? arguments[2] : undefined; + var newActionGroups = (0, _toConsumableArray2["default"])(actionGroups); + var groupIndex; + newActionGroups.some(function (group, index) { + if (group.keyframe === keyframe) { + groupIndex = index; + return true; + } + + return false; + }); + + if (groupIndex == null) { + groupIndex = newActionGroups.length; + newActionGroups.push({ + keyframe: keyframe, + actionItems: [] + }); + } + + newActionGroups[groupIndex].actionItems.push(actionItem); + return newActionGroups; +} + +function bindEvents(store) { + var _store$getState5 = store.getState(), + ixData = _store$getState5.ixData; + + var eventTypeMap = ixData.eventTypeMap; + updateViewportWidth(store); + (0, _forEach["default"])(eventTypeMap, function (events, key) { + var logic = _IX2VanillaEvents["default"][key]; + + if (!logic) { + console.warn("IX2 event type not configured: ".concat(key)); + return; + } + + bindEventType({ + logic: logic, + store: store, + events: events + }); + }); + + var _store$getState6 = store.getState(), + ixSession = _store$getState6.ixSession; + + if (ixSession.eventListeners.length) { + bindResizeEvents(store); + } +} + +var WINDOW_RESIZE_EVENTS = ['resize', 'orientationchange']; + +function bindResizeEvents(store) { + var handleResize = function handleResize() { + updateViewportWidth(store); + }; + + WINDOW_RESIZE_EVENTS.forEach(function (type) { + window.addEventListener(type, handleResize); + store.dispatch((0, _IX2EngineActions.eventListenerAdded)(window, [type, handleResize])); + }); + handleResize(); +} + +function updateViewportWidth(store) { + var _store$getState7 = store.getState(), + ixSession = _store$getState7.ixSession, + ixData = _store$getState7.ixData; + + var width = window.innerWidth; + + if (width !== ixSession.viewportWidth) { + var mediaQueries = ixData.mediaQueries; + store.dispatch((0, _IX2EngineActions.viewportWidthChanged)({ + width: width, + mediaQueries: mediaQueries + })); + } +} + +var mapFoundValues = function mapFoundValues(object, iteratee) { + return (0, _omitBy["default"])((0, _mapValues["default"])(object, iteratee), _isEmpty["default"]); +}; + +var forEachEventTarget = function forEachEventTarget(eventTargets, eventCallback) { + (0, _forEach["default"])(eventTargets, function (elements, eventId) { + elements.forEach(function (element, index) { + var eventStateKey = eventId + COLON_DELIMITER + index; + eventCallback(element, eventId, eventStateKey); + }); + }); +}; + +var getAffectedForEvent = function getAffectedForEvent(event) { + var config = { + target: event.target, + targets: event.targets + }; + return getAffectedElements({ + config: config, + elementApi: elementApi + }); +}; + +function bindEventType(_ref13) { + var logic = _ref13.logic, + store = _ref13.store, + events = _ref13.events; + injectBehaviorCSSFixes(events); + var eventTypes = logic.types, + eventHandler = logic.handler; + + var _store$getState8 = store.getState(), + ixData = _store$getState8.ixData; + + var actionLists = ixData.actionLists; + var eventTargets = mapFoundValues(events, getAffectedForEvent); + + if (!(0, _size["default"])(eventTargets)) { + return; + } + + (0, _forEach["default"])(eventTargets, function (elements, key) { + var event = events[key]; + var eventAction = event.action, + eventId = event.id, + _event$mediaQueries = event.mediaQueries, + mediaQueries = _event$mediaQueries === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries; + var actionListId = eventAction.config.actionListId; + + if (!mediaQueriesEqual(mediaQueries, ixData.mediaQueryKeys)) { + store.dispatch((0, _IX2EngineActions.mediaQueriesDefined)()); + } + + if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_CONTINUOUS_ACTION) { + var configs = Array.isArray(event.config) ? event.config : [event.config]; + configs.forEach(function (eventConfig) { + var continuousParameterGroupId = eventConfig.continuousParameterGroupId; + var paramGroups = (0, _get["default"])(actionLists, "".concat(actionListId, ".continuousParameterGroups"), []); + var parameterGroup = (0, _find["default"])(paramGroups, function (_ref14) { + var id = _ref14.id; + return id === continuousParameterGroupId; + }); + var smoothing = (eventConfig.smoothing || 0) / 100; + var restingValue = (eventConfig.restingState || 0) / 100; + + if (!parameterGroup) { + return; + } + + elements.forEach(function (eventTarget, index) { + var eventStateKey = eventId + COLON_DELIMITER + index; + createGroupInstances({ + store: store, + eventStateKey: eventStateKey, + eventTarget: eventTarget, + eventId: eventId, + eventConfig: eventConfig, + actionListId: actionListId, + parameterGroup: parameterGroup, + smoothing: smoothing, + restingValue: restingValue + }); + }); + }); + } + + if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_START_ACTION || isQuickEffect(eventAction.actionTypeId)) { + renderInitialGroup({ + store: store, + actionListId: actionListId, + eventId: eventId + }); + } + }); + + var handleEvent = function handleEvent(nativeEvent) { + var _store$getState9 = store.getState(), + ixSession = _store$getState9.ixSession; + + forEachEventTarget(eventTargets, function (element, eventId, eventStateKey) { + var event = events[eventId]; + var oldState = ixSession.eventState[eventStateKey]; + var eventAction = event.action, + _event$mediaQueries2 = event.mediaQueries, + mediaQueries = _event$mediaQueries2 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries2; // Bypass event handler if current media query is not listed in event config + + if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { + return; + } + + var handleEventWithConfig = function handleEventWithConfig() { + var eventConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var newState = eventHandler({ + store: store, + element: element, + event: event, + eventConfig: eventConfig, + nativeEvent: nativeEvent, + eventStateKey: eventStateKey + }, oldState); + + if (!shallowEqual(newState, oldState)) { + store.dispatch((0, _IX2EngineActions.eventStateChanged)(eventStateKey, newState)); + } + }; + + if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_CONTINUOUS_ACTION) { + var configs = Array.isArray(event.config) ? event.config : [event.config]; + configs.forEach(handleEventWithConfig); + } else { + handleEventWithConfig(); + } + }); + }; + + var handleEventThrottled = (0, _throttle["default"])(handleEvent, THROTTLED_EVENT_WAIT); + + var addListeners = function addListeners(_ref15) { + var _ref15$target = _ref15.target, + target = _ref15$target === void 0 ? document : _ref15$target, + types = _ref15.types, + shouldThrottle = _ref15.throttle; + types.split(' ').filter(Boolean).forEach(function (type) { + var handlerFunc = shouldThrottle ? handleEventThrottled : handleEvent; // $FlowFixMe + + target.addEventListener(type, handlerFunc); + store.dispatch((0, _IX2EngineActions.eventListenerAdded)(target, [type, handlerFunc])); + }); + }; + + if (Array.isArray(eventTypes)) { + eventTypes.forEach(addListeners); + } else if (typeof eventTypes === 'string') { + addListeners(logic); + } +} +/** + * Injects CSS into the document to fix behavior issues across + * different devices. + */ + + +function injectBehaviorCSSFixes(events) { + if (!IS_MOBILE_SAFARI) { + return; + } + + var injectedSelectors = {}; + var cssText = ''; + + for (var eventId in events) { + var _events$eventId = events[eventId], + eventTypeId = _events$eventId.eventTypeId, + target = _events$eventId.target; + var selector = elementApi.getQuerySelector(target); // $FlowFixMe + + if (injectedSelectors[selector]) { + continue; + } // add a "cursor: pointer" style rule to ensure that CLICK events get fired for IOS devices + + + if (eventTypeId === _constants.EventTypeConsts.MOUSE_CLICK || eventTypeId === _constants.EventTypeConsts.MOUSE_SECOND_CLICK) { + // $FlowFixMe + injectedSelectors[selector] = true; + cssText += // $FlowFixMe + selector + '{' + 'cursor: pointer;' + 'touch-action: manipulation;' + '}'; + } + } + + if (cssText) { + var style = document.createElement('style'); + style.textContent = cssText; // $FlowFixMe + + document.body.appendChild(style); + } +} + +function renderInitialGroup(_ref16) { + var store = _ref16.store, + actionListId = _ref16.actionListId, + eventId = _ref16.eventId; + + var _store$getState10 = store.getState(), + ixData = _store$getState10.ixData, + ixSession = _store$getState10.ixSession; + + var actionLists = ixData.actionLists, + events = ixData.events; + var event = events[eventId]; + var actionList = actionLists[actionListId]; + + if (actionList && actionList.useFirstGroupAsInitialState) { + var initialStateItems = (0, _get["default"])(actionList, 'actionItemGroups[0].actionItems', []); // Bypass initial state render if current media query is not listed in event config + + var mediaQueries = (0, _get["default"])(event, 'mediaQueries', ixData.mediaQueryKeys); + + if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { + return; + } + + initialStateItems.forEach(function (actionItem) { + var _itemConfig$target; + + var itemConfig = actionItem.config, + actionTypeId = actionItem.actionTypeId; + var config = // When useEventTarget is explicitly true, use event target/targets to query elements + (itemConfig === null || itemConfig === void 0 ? void 0 : (_itemConfig$target = itemConfig.target) === null || _itemConfig$target === void 0 ? void 0 : _itemConfig$target.useEventTarget) === true ? { + target: event.target, + targets: event.targets + } : itemConfig; + var itemElements = getAffectedElements({ + config: config, + event: event, + elementApi: elementApi + }); + var shouldUsePlugin = isPluginType(actionTypeId); + itemElements.forEach(function (element) { + var pluginInstance = shouldUsePlugin ? // $FlowFixMe + createPluginInstance(actionTypeId)(element, actionItem) : null; + createInstance({ + destination: getDestinationValues({ + element: element, + actionItem: actionItem, + elementApi: elementApi + }, // $FlowFixMe + pluginInstance), + immediate: true, + store: store, + element: element, + eventId: eventId, + actionItem: actionItem, + actionListId: actionListId, + pluginInstance: pluginInstance + }); + }); + }); + } +} // $FlowFixMe + + +function stopAllActionGroups(_ref17) { + var store = _ref17.store; + + var _store$getState11 = store.getState(), + ixInstances = _store$getState11.ixInstances; + + (0, _forEach["default"])(ixInstances, function (instance) { + if (!instance.continuous) { + var actionListId = instance.actionListId, + verbose = instance.verbose; + removeInstance(instance, store); + + if (verbose) { + store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ + actionListId: actionListId, + isPlaying: false + })); + } + } + }); +} // $FlowFixMe + + +function stopActionGroup(_ref18) { + var store = _ref18.store, + eventId = _ref18.eventId, + eventTarget = _ref18.eventTarget, + eventStateKey = _ref18.eventStateKey, + actionListId = _ref18.actionListId; + + var _store$getState12 = store.getState(), + ixInstances = _store$getState12.ixInstances, + ixSession = _store$getState12.ixSession; // Check for element boundary before stopping engine instances + + + var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null; + (0, _forEach["default"])(ixInstances, function (instance) { + var boundaryMode = (0, _get["default"])(instance, 'actionItem.config.target.boundaryMode'); // Validate event key if eventStateKey was provided, otherwise default to true + + var validEventKey = eventStateKey ? instance.eventStateKey === eventStateKey : true; // Remove engine instances that match the required ids + + if (instance.actionListId === actionListId && instance.eventId === eventId && validEventKey) { + // Avoid removal when root boundary does not contain instance element + if (eventElementRoot && boundaryMode && !elementApi.elementContains(eventElementRoot, instance.element)) { + return; + } + + removeInstance(instance, store); + + if (instance.verbose) { + store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ + actionListId: actionListId, + isPlaying: false + })); + } + } + }); +} // $FlowFixMe + + +function startActionGroup(_ref19) { + var store = _ref19.store, + eventId = _ref19.eventId, + eventTarget = _ref19.eventTarget, + eventStateKey = _ref19.eventStateKey, + actionListId = _ref19.actionListId, + _ref19$groupIndex = _ref19.groupIndex, + groupIndex = _ref19$groupIndex === void 0 ? 0 : _ref19$groupIndex, + immediate = _ref19.immediate, + verbose = _ref19.verbose; + + var _event$action; + + var _store$getState13 = store.getState(), + ixData = _store$getState13.ixData, + ixSession = _store$getState13.ixSession; + + var events = ixData.events; + var event = events[eventId] || {}; + var _event$mediaQueries3 = event.mediaQueries, + mediaQueries = _event$mediaQueries3 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries3; + var actionList = (0, _get["default"])(ixData, "actionLists.".concat(actionListId), {}); + var actionItemGroups = actionList.actionItemGroups, + useFirstGroupAsInitialState = actionList.useFirstGroupAsInitialState; // Abort playback if no action groups + + if (!actionItemGroups || !actionItemGroups.length) { + return false; + } // Reset to first group when event loop is configured + + + if (groupIndex >= actionItemGroups.length && (0, _get["default"])(event, 'config.loop')) { + groupIndex = 0; + } // Skip initial state group during action list playback, as it should already be applied + + + if (groupIndex === 0 && useFirstGroupAsInitialState) { + groupIndex++; + } // Identify first animated group and apply the initial QuickEffect delay + + + var isFirstGroup = groupIndex === 0 || groupIndex === 1 && useFirstGroupAsInitialState; + var instanceDelay = isFirstGroup && isQuickEffect((_event$action = event.action) === null || _event$action === void 0 ? void 0 : _event$action.actionTypeId) ? event.config.delay : undefined; // Abort playback if no action items exist at group index + + var actionItems = (0, _get["default"])(actionItemGroups, [groupIndex, 'actionItems'], []); + + if (!actionItems.length) { + return false; + } // Abort playback if current media query is not listed in event config + + + if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { + return false; + } // Limit affected elements when event target is within a boundary node + + + var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null; + var carrierIndex = getMaxDurationItemIndex(actionItems); + var groupStartResult = false; + actionItems.forEach(function (actionItem, actionIndex) { + var config = actionItem.config, + actionTypeId = actionItem.actionTypeId; + var shouldUsePlugin = isPluginType(actionTypeId); + var target = config.target; + + if (!target) { + return; + } + + var elementRoot = target.boundaryMode ? eventElementRoot : null; + var elements = getAffectedElements({ + config: config, + event: event, + eventTarget: eventTarget, + elementRoot: elementRoot, + elementApi: elementApi + }); + elements.forEach(function (element, elementIndex) { + var pluginInstance = shouldUsePlugin ? // $FlowFixMe + createPluginInstance(actionTypeId)(element, actionItem) : null; + var pluginDuration = shouldUsePlugin ? // $FlowFixMe + getPluginDuration(actionTypeId)(element, actionItem) : null; + groupStartResult = true; + var isCarrier = carrierIndex === actionIndex && elementIndex === 0; + var computedStyle = getComputedStyle({ + element: element, + actionItem: actionItem + }); + var destination = getDestinationValues({ + element: element, + actionItem: actionItem, + elementApi: elementApi + }, // $FlowFixMe + pluginInstance); + createInstance({ + store: store, + element: element, + actionItem: actionItem, + eventId: eventId, + eventTarget: eventTarget, + eventStateKey: eventStateKey, + actionListId: actionListId, + groupIndex: groupIndex, + isCarrier: isCarrier, + computedStyle: computedStyle, + destination: destination, + immediate: immediate, + verbose: verbose, + pluginInstance: pluginInstance, + pluginDuration: pluginDuration, + instanceDelay: instanceDelay + }); + }); + }); + return groupStartResult; +} + +function createInstance(options) { + var _ixData$events$eventI; // $FlowFixMe + + + var store = options.store, + computedStyle = options.computedStyle, + rest = (0, _objectWithoutPropertiesLoose2["default"])(options, ["store", "computedStyle"]); + var element = rest.element, + actionItem = rest.actionItem, + immediate = rest.immediate, + pluginInstance = rest.pluginInstance, + continuous = rest.continuous, + restingValue = rest.restingValue, + eventId = rest.eventId; + var autoStart = !continuous; + var instanceId = getInstanceId(); + + var _store$getState14 = store.getState(), + ixElements = _store$getState14.ixElements, + ixSession = _store$getState14.ixSession, + ixData = _store$getState14.ixData; + + var elementId = getElementId(ixElements, element); + + var _ref20 = ixElements[elementId] || {}, + refState = _ref20.refState; + + var refType = elementApi.getRefType(element); + var skipMotion = ixSession.reducedMotion && _constants.ReducedMotionTypes[actionItem.actionTypeId]; + var skipToValue; + + if (skipMotion && continuous) { + switch ((_ixData$events$eventI = ixData.events[eventId]) === null || _ixData$events$eventI === void 0 ? void 0 : _ixData$events$eventI.eventTypeId) { + case _constants.EventTypeConsts.MOUSE_MOVE: + case _constants.EventTypeConsts.MOUSE_MOVE_IN_VIEWPORT: + skipToValue = restingValue; + break; + + default: + skipToValue = 0.5; + break; + } + } + + var origin = getInstanceOrigin(element, refState, computedStyle, actionItem, elementApi, // $FlowFixMe + pluginInstance); + store.dispatch((0, _IX2EngineActions.instanceAdded)((0, _extends2["default"])({ + instanceId: instanceId, + elementId: elementId, + origin: origin, + refType: refType, + skipMotion: skipMotion, + skipToValue: skipToValue + }, rest))); + dispatchCustomEvent(document.body, 'ix2-animation-started', instanceId); + + if (immediate) { + renderImmediateInstance(store, instanceId); + return; + } + + observeStore({ + store: store, + select: function select(_ref21) { + var ixInstances = _ref21.ixInstances; + return ixInstances[instanceId]; + }, + onChange: handleInstanceChange + }); + + if (autoStart) { + store.dispatch((0, _IX2EngineActions.instanceStarted)(instanceId, ixSession.tick)); + } +} + +function removeInstance(instance, store) { + dispatchCustomEvent(document.body, 'ix2-animation-stopping', { + instanceId: instance.id, + state: store.getState() + }); + var elementId = instance.elementId, + actionItem = instance.actionItem; + + var _store$getState15 = store.getState(), + ixElements = _store$getState15.ixElements; + + var _ref22 = ixElements[elementId] || {}, + ref = _ref22.ref, + refType = _ref22.refType; + + if (refType === HTML_ELEMENT) { + cleanupHTMLElement(ref, actionItem, elementApi); + } + + store.dispatch((0, _IX2EngineActions.instanceRemoved)(instance.id)); +} + +function dispatchCustomEvent(element, eventName, detail) { + var event = document.createEvent('CustomEvent'); + event.initCustomEvent(eventName, true, true, detail); // $FlowFixMe + + element.dispatchEvent(event); +} + +function renderImmediateInstance(store, instanceId) { + var _store$getState16 = store.getState(), + ixParameters = _store$getState16.ixParameters; + + store.dispatch((0, _IX2EngineActions.instanceStarted)(instanceId, 0)); + store.dispatch((0, _IX2EngineActions.animationFrameChanged)(performance.now(), ixParameters)); + + var _store$getState17 = store.getState(), + ixInstances = _store$getState17.ixInstances; + + handleInstanceChange(ixInstances[instanceId], store); +} + +function handleInstanceChange(instance, store) { + var active = instance.active, + continuous = instance.continuous, + complete = instance.complete, + elementId = instance.elementId, + actionItem = instance.actionItem, + actionTypeId = instance.actionTypeId, + renderType = instance.renderType, + current = instance.current, + groupIndex = instance.groupIndex, + eventId = instance.eventId, + eventTarget = instance.eventTarget, + eventStateKey = instance.eventStateKey, + actionListId = instance.actionListId, + isCarrier = instance.isCarrier, + styleProp = instance.styleProp, + verbose = instance.verbose, + pluginInstance = instance.pluginInstance; // Bypass render if current media query is not listed in event config + + var _store$getState18 = store.getState(), + ixData = _store$getState18.ixData, + ixSession = _store$getState18.ixSession; + + var events = ixData.events; + var event = events[eventId] || {}; + var _event$mediaQueries4 = event.mediaQueries, + mediaQueries = _event$mediaQueries4 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries4; + + if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { + return; + } + + if (continuous || active || complete) { + if (current || renderType === RENDER_GENERAL && complete) { + // Render current values to ref state and grab latest + store.dispatch((0, _IX2EngineActions.elementStateChanged)(elementId, actionTypeId, current, actionItem)); + + var _store$getState19 = store.getState(), + ixElements = _store$getState19.ixElements; + + var _ref23 = ixElements[elementId] || {}, + ref = _ref23.ref, + refType = _ref23.refType, + refState = _ref23.refState; + + var actionState = refState && refState[actionTypeId]; // Choose render based on ref type + + switch (refType) { + case HTML_ELEMENT: + { + renderHTMLElement(ref, refState, actionState, eventId, actionItem, styleProp, elementApi, renderType, pluginInstance); + break; + } + } + } + + if (complete) { + if (isCarrier) { + var started = startActionGroup({ + store: store, + eventId: eventId, + eventTarget: eventTarget, + eventStateKey: eventStateKey, + actionListId: actionListId, + groupIndex: groupIndex + 1, + verbose: verbose + }); + + if (verbose && !started) { + store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ + actionListId: actionListId, + isPlaying: false + })); + } + } + + removeInstance(instance, store); + } + } +} + +/***/ }), +/* 124 */ +/***/ (function(module, exports, __webpack_require__) { + +var defineProperty = __webpack_require__(125); + +/** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function baseAssignValue(object, key, value) { + if (key == '__proto__' && defineProperty) { + defineProperty(object, key, { + 'configurable': true, + 'enumerable': true, + 'value': value, + 'writable': true + }); + } else { + object[key] = value; + } +} + +module.exports = baseAssignValue; + + +/***/ }), +/* 125 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(11); + +var defineProperty = (function() { + try { + var func = getNative(Object, 'defineProperty'); + func({}, '', {}); + return func; + } catch (e) {} +}()); + +module.exports = defineProperty; + + +/***/ }), +/* 126 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(8); + +/** Built-in value references. */ +var objectCreate = Object.create; + +/** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */ +var baseCreate = (function() { + function object() {} + return function(proto) { + if (!isObject(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result = new object; + object.prototype = undefined; + return result; + }; +}()); + +module.exports = baseCreate; + + +/***/ }), +/* 127 */ +/***/ (function(module, exports, __webpack_require__) { + +var metaMap = __webpack_require__(322), + noop = __webpack_require__(323); + +/** + * Gets metadata for `func`. + * + * @private + * @param {Function} func The function to query. + * @returns {*} Returns the metadata for `func`. + */ +var getData = !metaMap ? noop : function(func) { + return metaMap.get(func); +}; + +module.exports = getData; + + +/***/ }), +/* 128 */ +/***/ (function(module, exports, __webpack_require__) { + +var realNames = __webpack_require__(324); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Gets the name of `func`. + * + * @private + * @param {Function} func The function to query. + * @returns {string} Returns the function name. + */ +function getFuncName(func) { + var result = (func.name + ''), + array = realNames[result], + length = hasOwnProperty.call(realNames, result) ? array.length : 0; + + while (length--) { + var data = array[length], + otherFunc = data.func; + if (otherFunc == null || otherFunc == func) { + return data.name; + } + } + return result; +} + +module.exports = getFuncName; + + +/***/ }), +/* 129 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(130); +__webpack_require__(132); +__webpack_require__(133); +__webpack_require__(134); +__webpack_require__(69); +__webpack_require__(136); +__webpack_require__(331); +__webpack_require__(332); +__webpack_require__(333); +__webpack_require__(334); +module.exports = __webpack_require__(339); + + +/***/ }), +/* 130 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals document, window, navigator */ + +/* eslint-disable no-var */ + +/** + * Webflow: Brand pages on the subdomain + */ + +var Webflow = __webpack_require__(4); + +Webflow.define('brand', module.exports = function ($) { + var api = {}; + var doc = document; + var $html = $('html'); + var $body = $('body'); + var namespace = '.w-webflow-badge'; + var location = window.location; + var isPhantom = /PhantomJS/i.test(navigator.userAgent); + var fullScreenEvents = 'fullscreenchange webkitfullscreenchange mozfullscreenchange msfullscreenchange'; + var brandElement; // ----------------------------------- + // Module methods + + api.ready = function () { + var shouldBrand = $html.attr('data-wf-status'); + var publishedDomain = $html.attr('data-wf-domain') || ''; + + if (/\.webflow\.io$/i.test(publishedDomain) && location.hostname !== publishedDomain) { + shouldBrand = true; + } + + if (shouldBrand && !isPhantom) { + brandElement = brandElement || createBadge(); + ensureBrand(); + setTimeout(ensureBrand, 500); + $(doc).off(fullScreenEvents, onFullScreenChange).on(fullScreenEvents, onFullScreenChange); + } + }; + + function onFullScreenChange() { + var fullScreen = doc.fullScreen || doc.mozFullScreen || doc.webkitIsFullScreen || doc.msFullscreenElement || Boolean(doc.webkitFullscreenElement); + $(brandElement).attr('style', fullScreen ? 'display: none !important;' : ''); + } + + function createBadge() { + var $brand = $('').attr('href', 'https://webflow.com?utm_campaign=brandjs'); + var $logoArt = $('').attr('src', 'https://d3e54v103j8qbb.cloudfront.net/img/webflow-badge-icon.f67cd735e3.svg').attr('alt', '').css({ + marginRight: '8px', + width: '16px' + }); + var $logoText = $('').attr('src', 'https://d1otoma47x30pg.cloudfront.net/img/webflow-badge-text.6faa6a38cd.svg').attr('alt', 'Made in Webflow'); + $brand.append($logoArt, $logoText); + return $brand[0]; + } + + function ensureBrand() { + var found = $body.children(namespace); + var match = found.length && found.get(0) === brandElement; + var inEditor = Webflow.env('editor'); + + if (match) { + // Remove brand when Editor is active + if (inEditor) { + found.remove(); + } // Exit early, brand is in place + + + return; + } // Remove any invalid brand elements + + + if (found.length) { + found.remove(); + } // Append the brand (unless Editor is active) + + + if (!inEditor) { + $body.append(brandElement); + } + } // Export module + + + return api; +}); + +/***/ }), +/* 131 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file +// Include tram for frame-throttling + +/* globals window */ + +/* eslint-disable no-var */ + +var $ = window.$; +var tram = __webpack_require__(68) && $.tram; +/*! + * Webflow._ (aka) Underscore.js 1.6.0 (custom build) + * _.each + * _.map + * _.find + * _.filter + * _.any + * _.contains + * _.delay + * _.defer + * _.throttle (webflow) + * _.debounce + * _.keys + * _.has + * _.now + * + * http://underscorejs.org + * (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Underscore may be freely distributed under the MIT license. + * @license MIT + */ + +module.exports = function () { + var _ = {}; // Current version. + + _.VERSION = '1.6.0-Webflow'; // Establish the object that gets returned to break out of a loop iteration. + + var breaker = {}; // Save bytes in the minified (but not gzipped) version: + + /* eslint-disable one-var */ + + var ArrayProto = Array.prototype, + ObjProto = Object.prototype, + FuncProto = Function.prototype; + /* eslint-enable one-var */ + // Create quick reference variables for speed access to core prototypes. + + /* eslint-disable one-var, no-unused-vars */ + + var push = ArrayProto.push, + slice = ArrayProto.slice, + concat = ArrayProto.concat, + toString = ObjProto.toString, + hasOwnProperty = ObjProto.hasOwnProperty; + /* eslint-enable one-var, no-unused-vars */ + // All **ECMAScript 5** native function implementations that we hope to use + // are declared here. + + /* eslint-disable one-var, no-unused-vars */ + + var nativeForEach = ArrayProto.forEach, + nativeMap = ArrayProto.map, + nativeReduce = ArrayProto.reduce, + nativeReduceRight = ArrayProto.reduceRight, + nativeFilter = ArrayProto.filter, + nativeEvery = ArrayProto.every, + nativeSome = ArrayProto.some, + nativeIndexOf = ArrayProto.indexOf, + nativeLastIndexOf = ArrayProto.lastIndexOf, + nativeIsArray = Array.isArray, + nativeKeys = Object.keys, + nativeBind = FuncProto.bind; + /* eslint-enable one-var, no-unused-vars */ + // Collection Functions + // -------------------- + // The cornerstone, an `each` implementation, aka `forEach`. + // Handles objects with the built-in `forEach`, arrays, and raw objects. + // Delegates to **ECMAScript 5**'s native `forEach` if available. + + var each = _.each = _.forEach = function (obj, iterator, context) { + /* jshint shadow:true */ + if (obj == null) return obj; + + if (nativeForEach && obj.forEach === nativeForEach) { + obj.forEach(iterator, context); // eslint-disable-next-line no-implicit-coercion + } else if (obj.length === +obj.length) { + for (var i = 0, length = obj.length; i < length; i++) { + if (iterator.call(context, obj[i], i, obj) === breaker) return; + } + } else { + var keys = _.keys(obj); // eslint-disable-next-line no-redeclare + + + for (var i = 0, length = keys.length; i < length; i++) { + if (iterator.call(context, obj[keys[i]], keys[i], obj) === breaker) return; + } + } + + return obj; + }; // Return the results of applying the iterator to each element. + // Delegates to **ECMAScript 5**'s native `map` if available. + + + _.map = _.collect = function (obj, iterator, context) { + var results = []; + if (obj == null) return results; + if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context); + each(obj, function (value, index, list) { + results.push(iterator.call(context, value, index, list)); + }); + return results; + }; // Return the first value which passes a truth test. Aliased as `detect`. + + + _.find = _.detect = function (obj, predicate, context) { + var result; + any(obj, function (value, index, list) { + if (predicate.call(context, value, index, list)) { + result = value; + return true; + } + }); + return result; + }; // Return all the elements that pass a truth test. + // Delegates to **ECMAScript 5**'s native `filter` if available. + // Aliased as `select`. + + + _.filter = _.select = function (obj, predicate, context) { + var results = []; + if (obj == null) return results; + if (nativeFilter && obj.filter === nativeFilter) return obj.filter(predicate, context); + each(obj, function (value, index, list) { + if (predicate.call(context, value, index, list)) results.push(value); + }); + return results; + }; // Determine if at least one element in the object matches a truth test. + // Delegates to **ECMAScript 5**'s native `some` if available. + // Aliased as `any`. + + + var any = _.some = _.any = function (obj, predicate, context) { + predicate || (predicate = _.identity); + var result = false; + if (obj == null) return result; + if (nativeSome && obj.some === nativeSome) return obj.some(predicate, context); + each(obj, function (value, index, list) { + if (result || (result = predicate.call(context, value, index, list))) return breaker; + }); + return !!result; // eslint-disable-line no-implicit-coercion + }; // Determine if the array or object contains a given value (using `===`). + // Aliased as `include`. + + + _.contains = _.include = function (obj, target) { + if (obj == null) return false; + if (nativeIndexOf && obj.indexOf === nativeIndexOf) // eslint-disable-next-line eqeqeq + return obj.indexOf(target) != -1; + return any(obj, function (value) { + return value === target; + }); + }; // Function (ahem) Functions + // -------------------- + // Delays a function for the given number of milliseconds, and then calls + // it with the arguments supplied. + + + _.delay = function (func, wait) { + var args = slice.call(arguments, 2); + return setTimeout(function () { + return func.apply(null, args); + }, wait); + }; // Defers a function, scheduling it to run after the current call stack has + // cleared. + + + _.defer = function (func) { + return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1))); + }; // Returns a function, that, when invoked, will only be triggered once every + // browser animation frame - using tram's requestAnimationFrame polyfill. + + + _.throttle = function (func) { + // eslint-disable-next-line one-var + var wait, args, context; + return function () { + if (wait) return; + wait = true; + args = arguments; + context = this; + tram.frame(function () { + wait = false; + func.apply(context, args); + }); + }; + }; // Returns a function, that, as long as it continues to be invoked, will not + // be triggered. The function will be called after it stops being called for + // N milliseconds. If `immediate` is passed, trigger the function on the + // leading edge, instead of the trailing. + + + _.debounce = function (func, wait, immediate) { + // eslint-disable-next-line one-var + var timeout, args, context, timestamp, result; + + var later = function later() { + var last = _.now() - timestamp; + + if (last < wait) { + timeout = setTimeout(later, wait - last); + } else { + timeout = null; + + if (!immediate) { + result = func.apply(context, args); + context = args = null; + } + } + }; + + return function () { + context = this; + args = arguments; + timestamp = _.now(); + var callNow = immediate && !timeout; + + if (!timeout) { + timeout = setTimeout(later, wait); + } + + if (callNow) { + result = func.apply(context, args); + context = args = null; + } + + return result; + }; + }; // Object Functions + // ---------------- + // Fill in a given object with default properties. + + + _.defaults = function (obj) { + if (!_.isObject(obj)) return obj; + + for (var i = 1, length = arguments.length; i < length; i++) { + var source = arguments[i]; + + for (var prop in source) { + // eslint-disable-next-line no-void + if (obj[prop] === void 0) obj[prop] = source[prop]; + } + } + + return obj; + }; // Retrieve the names of an object's properties. + // Delegates to **ECMAScript 5**'s native `Object.keys` + + + _.keys = function (obj) { + if (!_.isObject(obj)) return []; + if (nativeKeys) return nativeKeys(obj); + var keys = []; + + for (var key in obj) { + if (_.has(obj, key)) keys.push(key); + } + + return keys; + }; // Shortcut function for checking if an object has a given property directly + // on itself (in other words, not on a prototype). + + + _.has = function (obj, key) { + return hasOwnProperty.call(obj, key); + }; // Is a given variable an object? + + + _.isObject = function (obj) { + return obj === Object(obj); + }; // Utility Functions + // ----------------- + // A (possibly faster) way to get the current timestamp as an integer. + + + _.now = Date.now || function () { + return new Date().getTime(); + }; // By default, Underscore uses ERB-style template delimiters, change the + // following template settings to use alternative delimiters. + + + _.templateSettings = { + evaluate: /<%([\s\S]+?)%>/g, + interpolate: /<%=([\s\S]+?)%>/g, + escape: /<%-([\s\S]+?)%>/g + }; // When customizing `templateSettings`, if you don't want to define an + // interpolation, evaluation or escaping regex, we need one that is + // guaranteed not to match. + + var noMatch = /(.)^/; // Certain characters need to be escaped so that they can be put into a + // string literal. + + var escapes = { + "'": "'", + '\\': '\\', + '\r': 'r', + '\n': 'n', + "\u2028": 'u2028', + "\u2029": 'u2029' + }; + var escaper = /\\|'|\r|\n|\u2028|\u2029/g; + + var escapeChar = function escapeChar(match) { + return '\\' + escapes[match]; + }; // JavaScript micro-templating, similar to John Resig's implementation. + // Underscore templating handles arbitrary delimiters, preserves whitespace, + // and correctly escapes quotes within interpolated code. + // NB: `oldSettings` only exists for backwards compatibility. + + + _.template = function (text, settings, oldSettings) { + if (!settings && oldSettings) settings = oldSettings; + settings = _.defaults({}, settings, _.templateSettings); // Combine delimiters into one regular expression via alternation. + + var matcher = RegExp([(settings.escape || noMatch).source, (settings.interpolate || noMatch).source, (settings.evaluate || noMatch).source].join('|') + '|$', 'g'); // Compile the template source, escaping string literals appropriately. + + var index = 0; + var source = "__p+='"; + text.replace(matcher, function (match, escape, interpolate, evaluate, offset) { + source += text.slice(index, offset).replace(escaper, escapeChar); + index = offset + match.length; + + if (escape) { + source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; + } else if (interpolate) { + source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'"; + } else if (evaluate) { + source += "';\n" + evaluate + "\n__p+='"; + } // Adobe VMs need the match returned to produce the correct offest. + + + return match; + }); + source += "';\n"; // If a variable is not specified, place data values in local scope. + + if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n'; + source = "var __t,__p='',__j=Array.prototype.join," + "print=function(){__p+=__j.call(arguments,'');};\n" + source + 'return __p;\n'; + + try { + // eslint-disable-next-line no-new-func + var render = new Function(settings.variable || 'obj', '_', source); + } catch (e) { + e.source = source; + throw e; + } + + var template = function template(data) { + return render.call(this, data, _); + }; // Provide the compiled source as a convenience for precompilation. + + + var argument = settings.variable || 'obj'; + template.source = 'function(' + argument + '){\n' + source + '}'; + return template; + }; // Export underscore + + + return _; +}(); +/* eslint-enable */ + +/***/ }), +/* 132 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals window, document */ + +/* eslint-disable no-var */ + +/** + * Webflow: focus-visible + */ + +var Webflow = __webpack_require__(4); +/* + * This polyfill comes from https://github.com/WICG/focus-visible + */ + + +Webflow.define('focus-visible', module.exports = function () { + /** + * Applies the :focus-visible polyfill at the given scope. + * A scope in this case is either the top-level Document or a Shadow Root. + * + * @param {(Document|ShadowRoot)} scope + * @see https://github.com/WICG/focus-visible + */ + function applyFocusVisiblePolyfill(scope) { + var hadKeyboardEvent = true; + var hadFocusVisibleRecently = false; + var hadFocusVisibleRecentlyTimeout = null; + var inputTypesAllowlist = { + text: true, + search: true, + url: true, + tel: true, + email: true, + password: true, + number: true, + date: true, + month: true, + week: true, + time: true, + datetime: true, + 'datetime-local': true + }; + /** + * Helper function for legacy browsers and iframes which sometimes focus + * elements like document, body, and non-interactive SVG. + * @param {Element} el + */ + + function isValidFocusTarget(el) { + if (el && el !== document && el.nodeName !== 'HTML' && el.nodeName !== 'BODY' && 'classList' in el && 'contains' in el.classList) { + return true; + } + + return false; + } + /** + * Computes whether the given element should automatically trigger the + * `focus-visible` class being added, i.e. whether it should always match + * `:focus-visible` when focused. + * @param {Element} el + * @return {boolean} + */ + + + function focusTriggersKeyboardModality(el) { + var type = el.type; + var tagName = el.tagName; + + if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) { + return true; + } + + if (tagName === 'TEXTAREA' && !el.readOnly) { + return true; + } + + if (el.isContentEditable) { + return true; + } + + return false; + } + + function addFocusVisibleAttribute(el) { + if (el.getAttribute('data-wf-focus-visible')) { + return; + } + + el.setAttribute('data-wf-focus-visible', 'true'); + } + + function removeFocusVisibleAttribute(el) { + if (!el.getAttribute('data-wf-focus-visible')) { + return; + } + + el.removeAttribute('data-wf-focus-visible'); + } + /** + * If the most recent user interaction was via the keyboard; + * and the key press did not include a meta, alt/option, or control key; + * then the modality is keyboard. Otherwise, the modality is not keyboard. + * Apply `focus-visible` to any current active element and keep track + * of our keyboard modality state with `hadKeyboardEvent`. + * @param {KeyboardEvent} e + */ + + + function onKeyDown(e) { + if (e.metaKey || e.altKey || e.ctrlKey) { + return; + } + + if (isValidFocusTarget(scope.activeElement)) { + addFocusVisibleAttribute(scope.activeElement); + } + + hadKeyboardEvent = true; + } + /** + * If at any point a user clicks with a pointing device, ensure that we change + * the modality away from keyboard. + * This avoids the situation where a user presses a key on an already focused + * element, and then clicks on a different element, focusing it with a + * pointing device, while we still think we're in keyboard modality. + * @param {Event} e + */ + + + function onPointerDown() { + hadKeyboardEvent = false; + } + /** + * On `focus`, add the `focus-visible` class to the target if: + * - the target received focus as a result of keyboard navigation, or + * - the event target is an element that will likely require interaction + * via the keyboard (e.g. a text box) + * @param {Event} e + */ + + + function onFocus(e) { + // Prevent IE from focusing the document or HTML element. + if (!isValidFocusTarget(e.target)) { + return; + } + + if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) { + addFocusVisibleAttribute(e.target); + } + } + /** + * On `blur`, remove the `focus-visible` class from the target. + * @param {Event} e + */ + + + function onBlur(e) { + if (!isValidFocusTarget(e.target)) { + return; + } + + if (e.target.hasAttribute('data-wf-focus-visible')) { + // To detect a tab/window switch, we look for a blur event followed + // rapidly by a visibility change. + // If we don't see a visibility change within 100ms, it's probably a + // regular focus change. + hadFocusVisibleRecently = true; + window.clearTimeout(hadFocusVisibleRecentlyTimeout); + hadFocusVisibleRecentlyTimeout = window.setTimeout(function () { + hadFocusVisibleRecently = false; + }, 100); + removeFocusVisibleAttribute(e.target); + } + } + /** + * If the user changes tabs, keep track of whether or not the previously + * focused element had .focus-visible. + * @param {Event} e + */ + + + function onVisibilityChange() { + if (document.visibilityState === 'hidden') { + // If the tab becomes active again, the browser will handle calling focus + // on the element (Safari actually calls it twice). + // If this tab change caused a blur on an element with focus-visible, + // re-apply the class when the user switches back to the tab. + if (hadFocusVisibleRecently) { + hadKeyboardEvent = true; + } + + addInitialPointerMoveListeners(); + } + } + /** + * Add a group of listeners to detect usage of any pointing devices. + * These listeners will be added when the polyfill first loads, and anytime + * the window is blurred, so that they are active when the window regains + * focus. + */ + + + function addInitialPointerMoveListeners() { + document.addEventListener('mousemove', onInitialPointerMove); + document.addEventListener('mousedown', onInitialPointerMove); + document.addEventListener('mouseup', onInitialPointerMove); + document.addEventListener('pointermove', onInitialPointerMove); + document.addEventListener('pointerdown', onInitialPointerMove); + document.addEventListener('pointerup', onInitialPointerMove); + document.addEventListener('touchmove', onInitialPointerMove); + document.addEventListener('touchstart', onInitialPointerMove); + document.addEventListener('touchend', onInitialPointerMove); + } + + function removeInitialPointerMoveListeners() { + document.removeEventListener('mousemove', onInitialPointerMove); + document.removeEventListener('mousedown', onInitialPointerMove); + document.removeEventListener('mouseup', onInitialPointerMove); + document.removeEventListener('pointermove', onInitialPointerMove); + document.removeEventListener('pointerdown', onInitialPointerMove); + document.removeEventListener('pointerup', onInitialPointerMove); + document.removeEventListener('touchmove', onInitialPointerMove); + document.removeEventListener('touchstart', onInitialPointerMove); + document.removeEventListener('touchend', onInitialPointerMove); + } + /** + * When the polfyill first loads, assume the user is in keyboard modality. + * If any event is received from a pointing device (e.g. mouse, pointer, + * touch), turn off keyboard modality. + * This accounts for situations where focus enters the page from the URL bar. + * @param {Event} e + */ + + + function onInitialPointerMove(e) { + // Work around a Safari quirk that fires a mousemove on whenever the + // window blurs, even if you're tabbing out of the page. ¯\_(ツ)_/¯ + if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') { + return; + } + + hadKeyboardEvent = false; + removeInitialPointerMoveListeners(); + } // For some kinds of state, we are interested in changes at the global scope + // only. For example, global pointer input, global key presses and global + // visibility change should affect the state at every scope: + + + document.addEventListener('keydown', onKeyDown, true); + document.addEventListener('mousedown', onPointerDown, true); + document.addEventListener('pointerdown', onPointerDown, true); + document.addEventListener('touchstart', onPointerDown, true); + document.addEventListener('visibilitychange', onVisibilityChange, true); + addInitialPointerMoveListeners(); // For focus and blur, we specifically care about state changes in the local + // scope. This is because focus / blur events that originate from within a + // shadow root are not re-dispatched from the host element if it was already + // the active element in its own scope: + + scope.addEventListener('focus', onFocus, true); + scope.addEventListener('blur', onBlur, true); + } + + function ready() { + if (typeof document !== 'undefined') { + try { + // check for native support; this will throw if the selector is not considered valid + document.querySelector(':focus-visible'); + } catch (e) { + // :focus-visible pseudo-selector is not supported natively + applyFocusVisiblePolyfill(document); + } + } + } // Export module + + + return { + ready: ready + }; +}); + +/***/ }), +/* 133 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals window, document */ + +/* eslint-disable no-var */ + +/** + * Webflow: focus-within + */ + +var Webflow = __webpack_require__(4); // polyfill based off of https://github.com/matteobad/focus-within-polyfill + + +Webflow.define('focus-within', module.exports = function () { + /** + * Calculate the entire event path. + * + * @param {Element} node + * @return {Array} computedPath + */ + function computeEventPath(node) { + var path = [node]; + var parent = null; + + while (parent = node.parentNode || node.host || node.defaultView) { + path.push(parent); + node = parent; + } + + return path; + } + + function addFocusWithinAttribute(el) { + if (typeof el.getAttribute !== 'function' || el.getAttribute('data-wf-focus-within')) { + return; + } + + el.setAttribute('data-wf-focus-within', 'true'); + } + + function removeFocusWithinAttribute(el) { + if (typeof el.getAttribute !== 'function' || !el.getAttribute('data-wf-focus-within')) { + return; + } + + el.removeAttribute('data-wf-focus-within'); + } + /** + * Attach event listerns to initiate polyfill + * @return {boolean} + */ + + + function loadFocusWithinPolyfill() { + var handler = function handler(e) { + var running; + /** + * Request animation frame callback. + * Remove previously applied attributes. + * Add new attributes. + */ + + function action() { + running = false; + + if ('blur' === e.type) { + Array.prototype.slice.call(computeEventPath(e.target)).forEach(removeFocusWithinAttribute); + } + + if ('focus' === e.type) { + Array.prototype.slice.call(computeEventPath(e.target)).forEach(addFocusWithinAttribute); + } + } + + if (!running) { + window.requestAnimationFrame(action); + running = true; + } + }; + + document.addEventListener('focus', handler, true); + document.addEventListener('blur', handler, true); + addFocusWithinAttribute(document.body); + return true; + } + + function ready() { + if (typeof document !== 'undefined' && document.body.hasAttribute('data-wf-focus-within')) { + try { + // check for native support; this will throw if the selector is not considered valid + document.querySelector(':focus-within'); + } catch (e) { + loadFocusWithinPolyfill(); + } + } + } // Export module + + + return { + ready: ready + }; +}); + +/***/ }), +/* 134 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals document, MouseEvent */ + +/* eslint-disable no-var */ + +/** + * Webflow: focus + */ + +var Webflow = __webpack_require__(4); +/* + * Safari has a weird bug where it doesn't support :focus for links with hrefs, + * buttons, and input[type=button|submit], so we listen for mousedown events + * instead and force the element to emit a focus event in those cases. + + * See these webkit bugs for reference: + * https://bugs.webkit.org/show_bug.cgi?id=22261 + * https://bugs.webkit.org/show_bug.cgi?id=229895 + */ + + +Webflow.define('focus', module.exports = function () { + var capturedEvents = []; + var capturing = false; + + function captureEvent(e) { + if (capturing) { + e.preventDefault(); + e.stopPropagation(); + e.stopImmediatePropagation(); + capturedEvents.unshift(e); + } + } + /* + * The only mousedown events we care about here are ones emanating from + * (A) anchor links with href attribute, + * (B) non-disabled buttons, + * (C) non-disabled textarea, + * (D) non-disabled inputs of type "button", "reset", "checkbox", "radio", "submit" + * (E) non-interactive elements (button, a, input, textarea, select) that have a tabindex with a numeric value + * (F) audio elements + * (G) video elements with controls attribute + */ + + + function isPolyfilledFocusEvent(e) { + var el = e.target; + var tag = el.tagName; + return /^a$/i.test(tag) && el.href != null || // (A) + /^(button|textarea)$/i.test(tag) && el.disabled !== true || // (B) (C) + /^input$/i.test(tag) && /^(button|reset|submit|radio|checkbox)$/i.test(el.type) && !el.disabled || // (D) + !/^(button|input|textarea|select|a)$/i.test(tag) && !Number.isNaN(Number.parseFloat(el.tabIndex)) || // (E) + /^audio$/i.test(tag) || // (F) + /^video$/i.test(tag) && el.controls === true // (G) + ; + } + + function handler(e) { + if (isPolyfilledFocusEvent(e)) { + // start capturing possible out-of-order mouse events + capturing = true; + /* + * enqueue the focus event _after_ the current batch of events, which + * includes any blur events. The correct order of events is: + * + * [this element] MOUSEDOWN <-- this event + * [previously active element] BLUR + * [previously active element] FOCUSOUT + * [this element] FOCUS <-- forced event + * [this element] FOCUSIN <-- forced event + * [this element] MOUSEUP <-- possibly captured event (it may have fired _before_ the FOCUS event) + * [this element] CLICK <-- possibly captured event (it may have fired _before_ the FOCUS event) + */ + + setTimeout(function () { + // stop capturing possible out-of-order mouse events + capturing = false; // trigger focus event + + e.target.focus(); // re-dispatch captured mouse events in order + + while (capturedEvents.length > 0) { + var event = capturedEvents.pop(); + event.target.dispatchEvent(new MouseEvent(event.type, event)); + } + }, 0); + } + } + + function ready() { + if (typeof document !== 'undefined' && document.body.hasAttribute('data-wf-focus-within') && Webflow.env.safari) { + document.addEventListener('mousedown', handler, true); + document.addEventListener('mouseup', captureEvent, true); + document.addEventListener('click', captureEvent, true); + } + } // Export module + + + return { + ready: ready + }; +}); + +/***/ }), +/* 135 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// @wf-will-never-add-flow-to-this-file + +/* globals window */ + +/* eslint-disable no-var */ + +/** + * Webflow: IX Event triggers for other modules + */ +// eslint-disable-next-line strict + + +var $ = window.jQuery; +var api = {}; +var eventQueue = []; +var namespace = '.w-ix'; +var eventTriggers = { + reset: function reset(i, el) { + el.__wf_intro = null; + }, + intro: function intro(i, el) { + if (el.__wf_intro) { + return; + } + + el.__wf_intro = true; + $(el).triggerHandler(api.types.INTRO); + }, + outro: function outro(i, el) { + if (!el.__wf_intro) { + return; + } + + el.__wf_intro = null; + $(el).triggerHandler(api.types.OUTRO); + } +}; +api.triggers = {}; +api.types = { + INTRO: 'w-ix-intro' + namespace, + OUTRO: 'w-ix-outro' + namespace +}; // Trigger any events in queue + restore trigger methods + +api.init = function () { + var count = eventQueue.length; + + for (var i = 0; i < count; i++) { + var memo = eventQueue[i]; + memo[0](0, memo[1]); + } + + eventQueue = []; + $.extend(api.triggers, eventTriggers); +}; // Replace all triggers with async wrapper to queue events until init + + +api.async = function () { + for (var key in eventTriggers) { + var func = eventTriggers[key]; + + if (!eventTriggers.hasOwnProperty(key)) { + continue; + } // Replace trigger method with async wrapper + + + api.triggers[key] = function (i, el) { + eventQueue.push([func, el]); + }; + } +}; // Default triggers to async queue + + +api.async(); +module.exports = api; + +/***/ }), +/* 136 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* eslint-disable no-var */ + +/** + * Webflow: Interactions 2 + */ + +var Webflow = __webpack_require__(4); + +var ix2 = __webpack_require__(137); + +ix2.setEnv(Webflow.env); +Webflow.define('ix2', module.exports = function () { + return ix2; +}); + +/***/ }), +/* 137 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireWildcard = __webpack_require__(18); + +var _interopRequireDefault = __webpack_require__(1); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.setEnv = setEnv; +exports.init = init; +exports.destroy = destroy; +exports.actions = exports.store = void 0; + +__webpack_require__(138); + +var _redux = __webpack_require__(87); + +var _IX2Reducer = _interopRequireDefault(__webpack_require__(185)); + +var _IX2VanillaEngine = __webpack_require__(123); + +var actions = _interopRequireWildcard(__webpack_require__(64)); + +exports.actions = actions; // Array.includes needed for IE11 @packages/systems/ix2/shared/utils/quick-effects + +var store = (0, _redux.createStore)(_IX2Reducer["default"]); +exports.store = store; + +function setEnv(env) { + if (env()) { + (0, _IX2VanillaEngine.observeRequests)(store); + } +} + +function init(rawData) { + destroy(); + (0, _IX2VanillaEngine.startEngine)({ + store: store, + rawData: rawData, + allowEvents: true + }); +} + +function destroy() { + (0, _IX2VanillaEngine.stopEngine)(store); +} + +/***/ }), +/* 138 */ +/***/ (function(module, exports, __webpack_require__) { + +var parent = __webpack_require__(139); + +module.exports = parent; + + +/***/ }), +/* 139 */ +/***/ (function(module, exports, __webpack_require__) { + +var parent = __webpack_require__(140); + +module.exports = parent; + + +/***/ }), +/* 140 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(141); +var entryUnbind = __webpack_require__(173); + +module.exports = entryUnbind('Array', 'includes'); + + +/***/ }), +/* 141 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $ = __webpack_require__(142); +var $includes = __webpack_require__(85).includes; +var addToUnscopables = __webpack_require__(168); + +// `Array.prototype.includes` method +// https://tc39.es/ecma262/#sec-array.prototype.includes +$({ target: 'Array', proto: true }, { + includes: function includes(el /* , fromIndex = 0 */) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('includes'); + + +/***/ }), +/* 142 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0); +var getOwnPropertyDescriptor = __webpack_require__(70).f; +var createNonEnumerableProperty = __webpack_require__(42); +var redefine = __webpack_require__(156); +var setGlobal = __webpack_require__(41); +var copyConstructorProperties = __webpack_require__(160); +var isForced = __webpack_require__(167); + +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.noTargetGet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key +*/ +module.exports = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global; + } else if (STATIC) { + target = global[TARGET] || setGlobal(TARGET, {}); + } else { + target = (global[TARGET] || {}).prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.noTargetGet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } + // extend global + redefine(target, key, sourceProperty, options); + } +}; + + +/***/ }), +/* 143 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $propertyIsEnumerable = {}.propertyIsEnumerable; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Nashorn ~ JDK8 bug +var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); + +// `Object.prototype.propertyIsEnumerable` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable +exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor(this, V); + return !!descriptor && descriptor.enumerable; +} : $propertyIsEnumerable; + + +/***/ }), +/* 144 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0); +var uncurryThis = __webpack_require__(5); +var fails = __webpack_require__(19); +var classof = __webpack_require__(145); + +var Object = global.Object; +var split = uncurryThis(''.split); + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +module.exports = fails(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !Object('z').propertyIsEnumerable(0); +}) ? function (it) { + return classof(it) == 'String' ? split(it, '') : Object(it); +} : Object; + + +/***/ }), +/* 145 */ +/***/ (function(module, exports, __webpack_require__) { + +var uncurryThis = __webpack_require__(5); + +var toString = uncurryThis({}.toString); +var stringSlice = uncurryThis(''.slice); + +module.exports = function (it) { + return stringSlice(toString(it), 8, -1); +}; + + +/***/ }), +/* 146 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0); +var call = __webpack_require__(39); +var isObject = __webpack_require__(20); +var isSymbol = __webpack_require__(74); +var getMethod = __webpack_require__(150); +var ordinaryToPrimitive = __webpack_require__(153); +var wellKnownSymbol = __webpack_require__(77); + +var TypeError = global.TypeError; +var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); + +// `ToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-toprimitive +module.exports = function (input, pref) { + if (!isObject(input) || isSymbol(input)) return input; + var exoticToPrim = getMethod(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call(exoticToPrim, input, pref); + if (!isObject(result) || isSymbol(result)) return result; + throw TypeError("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); +}; + + +/***/ }), +/* 147 */ +/***/ (function(module, exports, __webpack_require__) { + +var uncurryThis = __webpack_require__(5); + +module.exports = uncurryThis({}.isPrototypeOf); + + +/***/ }), +/* 148 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0); +var userAgent = __webpack_require__(149); + +var process = global.process; +var Deno = global.Deno; +var versions = process && process.versions || Deno && Deno.version; +var v8 = versions && versions.v8; +var match, version; + +if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); +} + +// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` +// so check `userAgent` even if `.v8` exists, but 0 +if (!version && userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } +} + +module.exports = version; + + +/***/ }), +/* 149 */ +/***/ (function(module, exports, __webpack_require__) { + +var getBuiltIn = __webpack_require__(27); + +module.exports = getBuiltIn('navigator', 'userAgent') || ''; + + +/***/ }), +/* 150 */ +/***/ (function(module, exports, __webpack_require__) { + +var aCallable = __webpack_require__(151); + +// `GetMethod` abstract operation +// https://tc39.es/ecma262/#sec-getmethod +module.exports = function (V, P) { + var func = V[P]; + return func == null ? undefined : aCallable(func); +}; + + +/***/ }), +/* 151 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0); +var isCallable = __webpack_require__(7); +var tryToString = __webpack_require__(152); + +var TypeError = global.TypeError; + +// `Assert: IsCallable(argument) is true` +module.exports = function (argument) { + if (isCallable(argument)) return argument; + throw TypeError(tryToString(argument) + ' is not a function'); +}; + + +/***/ }), +/* 152 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0); + +var String = global.String; + +module.exports = function (argument) { + try { + return String(argument); + } catch (error) { + return 'Object'; + } +}; + + +/***/ }), +/* 153 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0); +var call = __webpack_require__(39); +var isCallable = __webpack_require__(7); +var isObject = __webpack_require__(20); + +var TypeError = global.TypeError; + +// `OrdinaryToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-ordinarytoprimitive +module.exports = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; + if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val; + if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; + throw TypeError("Can't convert object to primitive value"); +}; + + +/***/ }), +/* 154 */ +/***/ (function(module, exports) { + +module.exports = false; + + +/***/ }), +/* 155 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0); +var requireObjectCoercible = __webpack_require__(72); + +var Object = global.Object; + +// `ToObject` abstract operation +// https://tc39.es/ecma262/#sec-toobject +module.exports = function (argument) { + return Object(requireObjectCoercible(argument)); +}; + + +/***/ }), +/* 156 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0); +var isCallable = __webpack_require__(7); +var hasOwn = __webpack_require__(9); +var createNonEnumerableProperty = __webpack_require__(42); +var setGlobal = __webpack_require__(41); +var inspectSource = __webpack_require__(82); +var InternalStateModule = __webpack_require__(157); +var CONFIGURABLE_FUNCTION_NAME = __webpack_require__(159).CONFIGURABLE; + +var getInternalState = InternalStateModule.get; +var enforceInternalState = InternalStateModule.enforce; +var TEMPLATE = String(String).split('String'); + +(module.exports = function (O, key, value, options) { + var unsafe = options ? !!options.unsafe : false; + var simple = options ? !!options.enumerable : false; + var noTargetGet = options ? !!options.noTargetGet : false; + var name = options && options.name !== undefined ? options.name : key; + var state; + if (isCallable(value)) { + if (String(name).slice(0, 7) === 'Symbol(') { + name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']'; + } + if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { + createNonEnumerableProperty(value, 'name', name); + } + state = enforceInternalState(value); + if (!state.source) { + state.source = TEMPLATE.join(typeof name == 'string' ? name : ''); + } + } + if (O === global) { + if (simple) O[key] = value; + else setGlobal(key, value); + return; + } else if (!unsafe) { + delete O[key]; + } else if (!noTargetGet && O[key]) { + simple = true; + } + if (simple) O[key] = value; + else createNonEnumerableProperty(O, key, value); +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +})(Function.prototype, 'toString', function toString() { + return isCallable(this) && getInternalState(this).source || inspectSource(this); +}); + + +/***/ }), +/* 157 */ +/***/ (function(module, exports, __webpack_require__) { + +var NATIVE_WEAK_MAP = __webpack_require__(158); +var global = __webpack_require__(0); +var uncurryThis = __webpack_require__(5); +var isObject = __webpack_require__(20); +var createNonEnumerableProperty = __webpack_require__(42); +var hasOwn = __webpack_require__(9); +var shared = __webpack_require__(40); +var sharedKey = __webpack_require__(83); +var hiddenKeys = __webpack_require__(43); + +var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; +var TypeError = global.TypeError; +var WeakMap = global.WeakMap; +var set, get, has; + +var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); +}; + +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw TypeError('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; +}; + +if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + var wmget = uncurryThis(store.get); + var wmhas = uncurryThis(store.has); + var wmset = uncurryThis(store.set); + set = function (it, metadata) { + if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + wmset(store, it, metadata); + return metadata; + }; + get = function (it) { + return wmget(store, it) || {}; + }; + has = function (it) { + return wmhas(store, it); + }; +} else { + var STATE = sharedKey('state'); + hiddenKeys[STATE] = true; + set = function (it, metadata) { + if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn(it, STATE); + }; +} + +module.exports = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor +}; + + +/***/ }), +/* 158 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0); +var isCallable = __webpack_require__(7); +var inspectSource = __webpack_require__(82); + +var WeakMap = global.WeakMap; + +module.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap)); + + +/***/ }), +/* 159 */ +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__(13); +var hasOwn = __webpack_require__(9); + +var FunctionPrototype = Function.prototype; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; + +var EXISTS = hasOwn(FunctionPrototype, 'name'); +// additional protection from minified / mangled / dropped function names +var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; +var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable)); + +module.exports = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE +}; + + +/***/ }), +/* 160 */ +/***/ (function(module, exports, __webpack_require__) { + +var hasOwn = __webpack_require__(9); +var ownKeys = __webpack_require__(161); +var getOwnPropertyDescriptorModule = __webpack_require__(70); +var definePropertyModule = __webpack_require__(28); + +module.exports = function (target, source) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } +}; + + +/***/ }), +/* 161 */ +/***/ (function(module, exports, __webpack_require__) { + +var getBuiltIn = __webpack_require__(27); +var uncurryThis = __webpack_require__(5); +var getOwnPropertyNamesModule = __webpack_require__(162); +var getOwnPropertySymbolsModule = __webpack_require__(166); +var anObject = __webpack_require__(29); + +var concat = uncurryThis([].concat); + +// all object keys, includes non-enumerable and symbols +module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys; +}; + + +/***/ }), +/* 162 */ +/***/ (function(module, exports, __webpack_require__) { + +var internalObjectKeys = __webpack_require__(84); +var enumBugKeys = __webpack_require__(44); + +var hiddenKeys = enumBugKeys.concat('length', 'prototype'); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +// eslint-disable-next-line es/no-object-getownpropertynames -- safe +exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys(O, hiddenKeys); +}; + + +/***/ }), +/* 163 */ +/***/ (function(module, exports, __webpack_require__) { + +var toIntegerOrInfinity = __webpack_require__(86); + +var max = Math.max; +var min = Math.min; + +// Helper for a popular repeating case of the spec: +// Let integer be ? ToInteger(index). +// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). +module.exports = function (index, length) { + var integer = toIntegerOrInfinity(index); + return integer < 0 ? max(integer + length, 0) : min(integer, length); +}; + + +/***/ }), +/* 164 */ +/***/ (function(module, exports, __webpack_require__) { + +var toLength = __webpack_require__(165); + +// `LengthOfArrayLike` abstract operation +// https://tc39.es/ecma262/#sec-lengthofarraylike +module.exports = function (obj) { + return toLength(obj.length); +}; + + +/***/ }), +/* 165 */ +/***/ (function(module, exports, __webpack_require__) { + +var toIntegerOrInfinity = __webpack_require__(86); + +var min = Math.min; + +// `ToLength` abstract operation +// https://tc39.es/ecma262/#sec-tolength +module.exports = function (argument) { + return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +}; + + +/***/ }), +/* 166 */ +/***/ (function(module, exports) { + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe +exports.f = Object.getOwnPropertySymbols; + + +/***/ }), +/* 167 */ +/***/ (function(module, exports, __webpack_require__) { + +var fails = __webpack_require__(19); +var isCallable = __webpack_require__(7); + +var replacement = /#|\.prototype\./; + +var isForced = function (feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true + : value == NATIVE ? false + : isCallable(detection) ? fails(detection) + : !!detection; +}; + +var normalize = isForced.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); +}; + +var data = isForced.data = {}; +var NATIVE = isForced.NATIVE = 'N'; +var POLYFILL = isForced.POLYFILL = 'P'; + +module.exports = isForced; + + +/***/ }), +/* 168 */ +/***/ (function(module, exports, __webpack_require__) { + +var wellKnownSymbol = __webpack_require__(77); +var create = __webpack_require__(169); +var definePropertyModule = __webpack_require__(28); + +var UNSCOPABLES = wellKnownSymbol('unscopables'); +var ArrayPrototype = Array.prototype; + +// Array.prototype[@@unscopables] +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +if (ArrayPrototype[UNSCOPABLES] == undefined) { + definePropertyModule.f(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create(null) + }); +} + +// add a key to Array.prototype[@@unscopables] +module.exports = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; +}; + + +/***/ }), +/* 169 */ +/***/ (function(module, exports, __webpack_require__) { + +/* global ActiveXObject -- old IE, WSH */ +var anObject = __webpack_require__(29); +var defineProperties = __webpack_require__(170); +var enumBugKeys = __webpack_require__(44); +var hiddenKeys = __webpack_require__(43); +var html = __webpack_require__(172); +var documentCreateElement = __webpack_require__(81); +var sharedKey = __webpack_require__(83); + +var GT = '>'; +var LT = '<'; +var PROTOTYPE = 'prototype'; +var SCRIPT = 'script'; +var IE_PROTO = sharedKey('IE_PROTO'); + +var EmptyConstructor = function () { /* empty */ }; + +var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; +}; + +// Create object with fake `null` prototype: use ActiveX Object with cleared prototype +var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; +}; + +// Create object with fake `null` prototype: use iframe Object with cleared prototype +var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; +}; + +// Check for document.domain and active x support +// No need to use active x approach when document.domain is not set +// see https://github.com/es-shims/es5-shim/issues/150 +// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 +// avoid IE GC bug +var activeXDocument; +var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); +}; + +hiddenKeys[IE_PROTO] = true; + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +module.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : defineProperties(result, Properties); +}; + + +/***/ }), +/* 170 */ +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__(13); +var definePropertyModule = __webpack_require__(28); +var anObject = __webpack_require__(29); +var toIndexedObject = __webpack_require__(26); +var objectKeys = __webpack_require__(171); + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +// eslint-disable-next-line es/no-object-defineproperties -- safe +module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var props = toIndexedObject(Properties); + var keys = objectKeys(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); + return O; +}; + + +/***/ }), +/* 171 */ +/***/ (function(module, exports, __webpack_require__) { + +var internalObjectKeys = __webpack_require__(84); +var enumBugKeys = __webpack_require__(44); + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +// eslint-disable-next-line es/no-object-keys -- safe +module.exports = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys); +}; + + +/***/ }), +/* 172 */ +/***/ (function(module, exports, __webpack_require__) { + +var getBuiltIn = __webpack_require__(27); + +module.exports = getBuiltIn('document', 'documentElement'); + + +/***/ }), +/* 173 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(0); +var uncurryThis = __webpack_require__(5); + +module.exports = function (CONSTRUCTOR, METHOD) { + return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]); +}; + + +/***/ }), +/* 174 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89); +/* harmony import */ var _getRawTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(177); +/* harmony import */ var _objectToString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(178); + + + + +/** `Object#toString` result references. */ +var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; + +/** Built-in value references. */ +var symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"].toStringTag : undefined; + +/** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? Object(_getRawTag_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value) + : Object(_objectToString_js__WEBPACK_IMPORTED_MODULE_2__["default"])(value); +} + +/* harmony default export */ __webpack_exports__["default"] = (baseGetTag); + + +/***/ }), +/* 175 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(176); + + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__["default"] || freeSelf || Function('return this')(); + +/* harmony default export */ __webpack_exports__["default"] = (root); + + +/***/ }), +/* 176 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + +/* harmony default export */ __webpack_exports__["default"] = (freeGlobal); + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25))) + +/***/ }), +/* 177 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89); + + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** Built-in value references. */ +var symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"].toStringTag : undefined; + +/** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ +function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), + tag = value[symToStringTag]; + + try { + value[symToStringTag] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result; +} + +/* harmony default export */ __webpack_exports__["default"] = (getRawTag); + + +/***/ }), +/* 178 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ +function objectToString(value) { + return nativeObjectToString.call(value); +} + +/* harmony default export */ __webpack_exports__["default"] = (objectToString); + + +/***/ }), +/* 179 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _overArg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(180); + + +/** Built-in value references. */ +var getPrototype = Object(_overArg_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Object.getPrototypeOf, Object); + +/* harmony default export */ __webpack_exports__["default"] = (getPrototype); + + +/***/ }), +/* 180 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ +function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; +} + +/* harmony default export */ __webpack_exports__["default"] = (overArg); + + +/***/ }), +/* 181 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return value != null && typeof value == 'object'; +} + +/* harmony default export */ __webpack_exports__["default"] = (isObjectLike); + + +/***/ }), +/* 182 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* WEBPACK VAR INJECTION */(function(global, module) {/* harmony import */ var _ponyfill_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(184); +/* global window */ + + +var root; + +if (typeof self !== 'undefined') { + root = self; +} else if (typeof window !== 'undefined') { + root = window; +} else if (typeof global !== 'undefined') { + root = global; +} else if (true) { + root = module; +} else {} + +var result = Object(_ponyfill_js__WEBPACK_IMPORTED_MODULE_0__["default"])(root); +/* harmony default export */ __webpack_exports__["default"] = (result); + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25), __webpack_require__(183)(module))) + +/***/ }), +/* 183 */ +/***/ (function(module, exports) { + +module.exports = function(originalModule) { + if (!originalModule.webpackPolyfill) { + var module = Object.create(originalModule); + // module.parent = undefined by default + if (!module.children) module.children = []; + Object.defineProperty(module, "loaded", { + enumerable: true, + get: function() { + return module.l; + } + }); + Object.defineProperty(module, "id", { + enumerable: true, + get: function() { + return module.i; + } + }); + Object.defineProperty(module, "exports", { + enumerable: true + }); + module.webpackPolyfill = 1; + } + return module; +}; + + +/***/ }), +/* 184 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return symbolObservablePonyfill; }); +function symbolObservablePonyfill(root) { + var result; + var Symbol = root.Symbol; + + if (typeof Symbol === 'function') { + if (Symbol.observable) { + result = Symbol.observable; + } else { + result = Symbol('observable'); + Symbol.observable = result; + } + } else { + result = '@@observable'; + } + + return result; +}; + + +/***/ }), +/* 185 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _redux = __webpack_require__(87); + +var _IX2DataReducer = __webpack_require__(186); + +var _IX2RequestReducer = __webpack_require__(192); + +var _IX2SessionReducer = __webpack_require__(193); + +var _shared = __webpack_require__(14); + +var _IX2InstancesReducer = __webpack_require__(279); + +var _IX2ParametersReducer = __webpack_require__(280); + +var ixElements = _shared.IX2ElementsReducer.ixElements; + +var _default = (0, _redux.combineReducers)({ + ixData: _IX2DataReducer.ixData, + ixRequest: _IX2RequestReducer.ixRequest, + ixSession: _IX2SessionReducer.ixSession, + ixElements: ixElements, + ixInstances: _IX2InstancesReducer.ixInstances, + ixParameters: _IX2ParametersReducer.ixParameters +}); + +exports["default"] = _default; + +/***/ }), +/* 186 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ixData = void 0; + +var _constants = __webpack_require__(3); + +var IX2_RAW_DATA_IMPORTED = _constants.IX2EngineActionTypes.IX2_RAW_DATA_IMPORTED; + +var ixData = function ixData() { + var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object.freeze({}); + var action = arguments.length > 1 ? arguments[1] : undefined; + + switch (action.type) { + case IX2_RAW_DATA_IMPORTED: + { + return action.payload.ixData || Object.freeze({}); + } + + default: + { + return state; + } + } +}; + +exports.ixData = ixData; + +/***/ }), +/* 187 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.QuickEffectDirectionConsts = exports.QuickEffectIds = exports.EventLimitAffectedElements = exports.EventContinuousMouseAxes = exports.EventBasedOn = exports.EventAppliesTo = exports.EventTypeConsts = void 0; +/** + * Event Type IDs + */ + +var EventTypeConsts = { + NAVBAR_OPEN: 'NAVBAR_OPEN', + NAVBAR_CLOSE: 'NAVBAR_CLOSE', + TAB_ACTIVE: 'TAB_ACTIVE', + TAB_INACTIVE: 'TAB_INACTIVE', + SLIDER_ACTIVE: 'SLIDER_ACTIVE', + SLIDER_INACTIVE: 'SLIDER_INACTIVE', + DROPDOWN_OPEN: 'DROPDOWN_OPEN', + DROPDOWN_CLOSE: 'DROPDOWN_CLOSE', + MOUSE_CLICK: 'MOUSE_CLICK', + MOUSE_SECOND_CLICK: 'MOUSE_SECOND_CLICK', + MOUSE_DOWN: 'MOUSE_DOWN', + MOUSE_UP: 'MOUSE_UP', + MOUSE_OVER: 'MOUSE_OVER', + MOUSE_OUT: 'MOUSE_OUT', + MOUSE_MOVE: 'MOUSE_MOVE', + MOUSE_MOVE_IN_VIEWPORT: 'MOUSE_MOVE_IN_VIEWPORT', + SCROLL_INTO_VIEW: 'SCROLL_INTO_VIEW', + SCROLL_OUT_OF_VIEW: 'SCROLL_OUT_OF_VIEW', + SCROLLING_IN_VIEW: 'SCROLLING_IN_VIEW', + ECOMMERCE_CART_OPEN: 'ECOMMERCE_CART_OPEN', + ECOMMERCE_CART_CLOSE: 'ECOMMERCE_CART_CLOSE', + PAGE_START: 'PAGE_START', + PAGE_FINISH: 'PAGE_FINISH', + PAGE_SCROLL_UP: 'PAGE_SCROLL_UP', + PAGE_SCROLL_DOWN: 'PAGE_SCROLL_DOWN', + PAGE_SCROLL: 'PAGE_SCROLL' +}; +/** + * Event Config Enums + */ + +exports.EventTypeConsts = EventTypeConsts; +var EventAppliesTo = { + ELEMENT: 'ELEMENT', + CLASS: 'CLASS', + PAGE: 'PAGE' +}; +exports.EventAppliesTo = EventAppliesTo; +var EventBasedOn = { + ELEMENT: 'ELEMENT', + VIEWPORT: 'VIEWPORT' +}; +exports.EventBasedOn = EventBasedOn; +var EventContinuousMouseAxes = { + X_AXIS: 'X_AXIS', + Y_AXIS: 'Y_AXIS' +}; +exports.EventContinuousMouseAxes = EventContinuousMouseAxes; +var EventLimitAffectedElements = { + CHILDREN: 'CHILDREN', + SIBLINGS: 'SIBLINGS', + IMMEDIATE_CHILDREN: 'IMMEDIATE_CHILDREN' +}; +/** + * Quick Effect Enums + */ + +exports.EventLimitAffectedElements = EventLimitAffectedElements; +var QuickEffectIds = { + FADE_EFFECT: 'FADE_EFFECT', + SLIDE_EFFECT: 'SLIDE_EFFECT', + GROW_EFFECT: 'GROW_EFFECT', + SHRINK_EFFECT: 'SHRINK_EFFECT', + SPIN_EFFECT: 'SPIN_EFFECT', + FLY_EFFECT: 'FLY_EFFECT', + POP_EFFECT: 'POP_EFFECT', + FLIP_EFFECT: 'FLIP_EFFECT', + JIGGLE_EFFECT: 'JIGGLE_EFFECT', + PULSE_EFFECT: 'PULSE_EFFECT', + DROP_EFFECT: 'DROP_EFFECT', + BLINK_EFFECT: 'BLINK_EFFECT', + BOUNCE_EFFECT: 'BOUNCE_EFFECT', + FLIP_LEFT_TO_RIGHT_EFFECT: 'FLIP_LEFT_TO_RIGHT_EFFECT', + FLIP_RIGHT_TO_LEFT_EFFECT: 'FLIP_RIGHT_TO_LEFT_EFFECT', + RUBBER_BAND_EFFECT: 'RUBBER_BAND_EFFECT', + JELLO_EFFECT: 'JELLO_EFFECT', + GROW_BIG_EFFECT: 'GROW_BIG_EFFECT', + SHRINK_BIG_EFFECT: 'SHRINK_BIG_EFFECT', + PLUGIN_LOTTIE_EFFECT: 'PLUGIN_LOTTIE_EFFECT' +}; +/** + * Quick Effect Direction Enums + */ + +exports.QuickEffectIds = QuickEffectIds; +var QuickEffectDirectionConsts = { + LEFT: 'LEFT', + RIGHT: 'RIGHT', + BOTTOM: 'BOTTOM', + TOP: 'TOP', + BOTTOM_LEFT: 'BOTTOM_LEFT', + BOTTOM_RIGHT: 'BOTTOM_RIGHT', + TOP_RIGHT: 'TOP_RIGHT', + TOP_LEFT: 'TOP_LEFT', + CLOCKWISE: 'CLOCKWISE', + COUNTER_CLOCKWISE: 'COUNTER_CLOCKWISE' +}; +exports.QuickEffectDirectionConsts = QuickEffectDirectionConsts; + +/***/ }), +/* 188 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.InteractionTypeConsts = void 0; +var InteractionTypeConsts = { + MOUSE_CLICK_INTERACTION: 'MOUSE_CLICK_INTERACTION', + MOUSE_HOVER_INTERACTION: 'MOUSE_HOVER_INTERACTION', + MOUSE_MOVE_INTERACTION: 'MOUSE_MOVE_INTERACTION', + SCROLL_INTO_VIEW_INTERACTION: 'SCROLL_INTO_VIEW_INTERACTION', + SCROLLING_IN_VIEW_INTERACTION: 'SCROLLING_IN_VIEW_INTERACTION', + MOUSE_MOVE_IN_VIEWPORT_INTERACTION: 'MOUSE_MOVE_IN_VIEWPORT_INTERACTION', + PAGE_IS_SCROLLING_INTERACTION: 'PAGE_IS_SCROLLING_INTERACTION', + PAGE_LOAD_INTERACTION: 'PAGE_LOAD_INTERACTION', + PAGE_SCROLLED_INTERACTION: 'PAGE_SCROLLED_INTERACTION', + NAVBAR_INTERACTION: 'NAVBAR_INTERACTION', + DROPDOWN_INTERACTION: 'DROPDOWN_INTERACTION', + ECOMMERCE_CART_INTERACTION: 'ECOMMERCE_CART_INTERACTION', + TAB_INTERACTION: 'TAB_INTERACTION', + SLIDER_INTERACTION: 'SLIDER_INTERACTION' +}; +exports.InteractionTypeConsts = InteractionTypeConsts; + +/***/ }), +/* 189 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(1); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(21)); + +var _ReducedMotionTypes; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ReducedMotionTypes = void 0; + +var _animationActions = __webpack_require__(94); + +var _animationActions$Act = _animationActions.ActionTypeConsts, + TRANSFORM_MOVE = _animationActions$Act.TRANSFORM_MOVE, + TRANSFORM_SCALE = _animationActions$Act.TRANSFORM_SCALE, + TRANSFORM_ROTATE = _animationActions$Act.TRANSFORM_ROTATE, + TRANSFORM_SKEW = _animationActions$Act.TRANSFORM_SKEW, + STYLE_SIZE = _animationActions$Act.STYLE_SIZE, + STYLE_FILTER = _animationActions$Act.STYLE_FILTER, + STYLE_FONT_VARIATION = _animationActions$Act.STYLE_FONT_VARIATION; +/** + * Reduced Motion: Action types to bypass during `prefers-reduced-motion` + */ + +var ReducedMotionTypes = (_ReducedMotionTypes = {}, (0, _defineProperty2["default"])(_ReducedMotionTypes, TRANSFORM_MOVE, true), (0, _defineProperty2["default"])(_ReducedMotionTypes, TRANSFORM_SCALE, true), (0, _defineProperty2["default"])(_ReducedMotionTypes, TRANSFORM_ROTATE, true), (0, _defineProperty2["default"])(_ReducedMotionTypes, TRANSFORM_SKEW, true), (0, _defineProperty2["default"])(_ReducedMotionTypes, STYLE_SIZE, true), (0, _defineProperty2["default"])(_ReducedMotionTypes, STYLE_FILTER, true), (0, _defineProperty2["default"])(_ReducedMotionTypes, STYLE_FONT_VARIATION, true), _ReducedMotionTypes); +exports.ReducedMotionTypes = ReducedMotionTypes; + +/***/ }), +/* 190 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.IX2_TEST_FRAME_RENDERED = exports.IX2_MEDIA_QUERIES_DEFINED = exports.IX2_VIEWPORT_WIDTH_CHANGED = exports.IX2_ACTION_LIST_PLAYBACK_CHANGED = exports.IX2_ELEMENT_STATE_CHANGED = exports.IX2_INSTANCE_REMOVED = exports.IX2_INSTANCE_STARTED = exports.IX2_INSTANCE_ADDED = exports.IX2_PARAMETER_CHANGED = exports.IX2_ANIMATION_FRAME_CHANGED = exports.IX2_EVENT_STATE_CHANGED = exports.IX2_EVENT_LISTENER_ADDED = exports.IX2_CLEAR_REQUESTED = exports.IX2_STOP_REQUESTED = exports.IX2_PLAYBACK_REQUESTED = exports.IX2_PREVIEW_REQUESTED = exports.IX2_SESSION_STOPPED = exports.IX2_SESSION_STARTED = exports.IX2_SESSION_INITIALIZED = exports.IX2_RAW_DATA_IMPORTED = void 0; +var IX2_RAW_DATA_IMPORTED = 'IX2_RAW_DATA_IMPORTED'; +exports.IX2_RAW_DATA_IMPORTED = IX2_RAW_DATA_IMPORTED; +var IX2_SESSION_INITIALIZED = 'IX2_SESSION_INITIALIZED'; +exports.IX2_SESSION_INITIALIZED = IX2_SESSION_INITIALIZED; +var IX2_SESSION_STARTED = 'IX2_SESSION_STARTED'; +exports.IX2_SESSION_STARTED = IX2_SESSION_STARTED; +var IX2_SESSION_STOPPED = 'IX2_SESSION_STOPPED'; +exports.IX2_SESSION_STOPPED = IX2_SESSION_STOPPED; +var IX2_PREVIEW_REQUESTED = 'IX2_PREVIEW_REQUESTED'; +exports.IX2_PREVIEW_REQUESTED = IX2_PREVIEW_REQUESTED; +var IX2_PLAYBACK_REQUESTED = 'IX2_PLAYBACK_REQUESTED'; +exports.IX2_PLAYBACK_REQUESTED = IX2_PLAYBACK_REQUESTED; +var IX2_STOP_REQUESTED = 'IX2_STOP_REQUESTED'; +exports.IX2_STOP_REQUESTED = IX2_STOP_REQUESTED; +var IX2_CLEAR_REQUESTED = 'IX2_CLEAR_REQUESTED'; +exports.IX2_CLEAR_REQUESTED = IX2_CLEAR_REQUESTED; +var IX2_EVENT_LISTENER_ADDED = 'IX2_EVENT_LISTENER_ADDED'; +exports.IX2_EVENT_LISTENER_ADDED = IX2_EVENT_LISTENER_ADDED; +var IX2_EVENT_STATE_CHANGED = 'IX2_EVENT_STATE_CHANGED'; +exports.IX2_EVENT_STATE_CHANGED = IX2_EVENT_STATE_CHANGED; +var IX2_ANIMATION_FRAME_CHANGED = 'IX2_ANIMATION_FRAME_CHANGED'; +exports.IX2_ANIMATION_FRAME_CHANGED = IX2_ANIMATION_FRAME_CHANGED; +var IX2_PARAMETER_CHANGED = 'IX2_PARAMETER_CHANGED'; +exports.IX2_PARAMETER_CHANGED = IX2_PARAMETER_CHANGED; +var IX2_INSTANCE_ADDED = 'IX2_INSTANCE_ADDED'; +exports.IX2_INSTANCE_ADDED = IX2_INSTANCE_ADDED; +var IX2_INSTANCE_STARTED = 'IX2_INSTANCE_STARTED'; +exports.IX2_INSTANCE_STARTED = IX2_INSTANCE_STARTED; +var IX2_INSTANCE_REMOVED = 'IX2_INSTANCE_REMOVED'; +exports.IX2_INSTANCE_REMOVED = IX2_INSTANCE_REMOVED; +var IX2_ELEMENT_STATE_CHANGED = 'IX2_ELEMENT_STATE_CHANGED'; +exports.IX2_ELEMENT_STATE_CHANGED = IX2_ELEMENT_STATE_CHANGED; +var IX2_ACTION_LIST_PLAYBACK_CHANGED = 'IX2_ACTION_LIST_PLAYBACK_CHANGED'; +exports.IX2_ACTION_LIST_PLAYBACK_CHANGED = IX2_ACTION_LIST_PLAYBACK_CHANGED; +var IX2_VIEWPORT_WIDTH_CHANGED = 'IX2_VIEWPORT_WIDTH_CHANGED'; +exports.IX2_VIEWPORT_WIDTH_CHANGED = IX2_VIEWPORT_WIDTH_CHANGED; +var IX2_MEDIA_QUERIES_DEFINED = 'IX2_MEDIA_QUERIES_DEFINED'; +exports.IX2_MEDIA_QUERIES_DEFINED = IX2_MEDIA_QUERIES_DEFINED; +var IX2_TEST_FRAME_RENDERED = 'IX2_TEST_FRAME_RENDERED'; +exports.IX2_TEST_FRAME_RENDERED = IX2_TEST_FRAME_RENDERED; + +/***/ }), +/* 191 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.RENDER_PLUGIN = exports.RENDER_STYLE = exports.RENDER_GENERAL = exports.RENDER_TRANSFORM = exports.ABSTRACT_NODE = exports.PLAIN_OBJECT = exports.HTML_ELEMENT = exports.PRESERVE_3D = exports.PARENT = exports.SIBLINGS = exports.IMMEDIATE_CHILDREN = exports.CHILDREN = exports.BAR_DELIMITER = exports.COLON_DELIMITER = exports.COMMA_DELIMITER = exports.AUTO = exports.WILL_CHANGE = exports.FLEX = exports.DISPLAY = exports.COLOR = exports.BORDER_COLOR = exports.BACKGROUND = exports.BACKGROUND_COLOR = exports.HEIGHT = exports.WIDTH = exports.FONT_VARIATION_SETTINGS = exports.FILTER = exports.OPACITY = exports.SKEW_Y = exports.SKEW_X = exports.SKEW = exports.ROTATE_Z = exports.ROTATE_Y = exports.ROTATE_X = exports.SCALE_3D = exports.SCALE_Z = exports.SCALE_Y = exports.SCALE_X = exports.TRANSLATE_3D = exports.TRANSLATE_Z = exports.TRANSLATE_Y = exports.TRANSLATE_X = exports.TRANSFORM = exports.CONFIG_UNIT = exports.CONFIG_Z_UNIT = exports.CONFIG_Y_UNIT = exports.CONFIG_X_UNIT = exports.CONFIG_VALUE = exports.CONFIG_Z_VALUE = exports.CONFIG_Y_VALUE = exports.CONFIG_X_VALUE = exports.BOUNDARY_SELECTOR = exports.W_MOD_IX = exports.W_MOD_JS = exports.WF_PAGE = exports.IX2_ID_DELIMITER = void 0; +var IX2_ID_DELIMITER = '|'; +exports.IX2_ID_DELIMITER = IX2_ID_DELIMITER; +var WF_PAGE = 'data-wf-page'; +exports.WF_PAGE = WF_PAGE; +var W_MOD_JS = 'w-mod-js'; +exports.W_MOD_JS = W_MOD_JS; +var W_MOD_IX = 'w-mod-ix'; +exports.W_MOD_IX = W_MOD_IX; +var BOUNDARY_SELECTOR = '.w-dyn-item'; +exports.BOUNDARY_SELECTOR = BOUNDARY_SELECTOR; +var CONFIG_X_VALUE = 'xValue'; +exports.CONFIG_X_VALUE = CONFIG_X_VALUE; +var CONFIG_Y_VALUE = 'yValue'; +exports.CONFIG_Y_VALUE = CONFIG_Y_VALUE; +var CONFIG_Z_VALUE = 'zValue'; +exports.CONFIG_Z_VALUE = CONFIG_Z_VALUE; +var CONFIG_VALUE = 'value'; +exports.CONFIG_VALUE = CONFIG_VALUE; +var CONFIG_X_UNIT = 'xUnit'; +exports.CONFIG_X_UNIT = CONFIG_X_UNIT; +var CONFIG_Y_UNIT = 'yUnit'; +exports.CONFIG_Y_UNIT = CONFIG_Y_UNIT; +var CONFIG_Z_UNIT = 'zUnit'; +exports.CONFIG_Z_UNIT = CONFIG_Z_UNIT; +var CONFIG_UNIT = 'unit'; +exports.CONFIG_UNIT = CONFIG_UNIT; +var TRANSFORM = 'transform'; +exports.TRANSFORM = TRANSFORM; +var TRANSLATE_X = 'translateX'; +exports.TRANSLATE_X = TRANSLATE_X; +var TRANSLATE_Y = 'translateY'; +exports.TRANSLATE_Y = TRANSLATE_Y; +var TRANSLATE_Z = 'translateZ'; +exports.TRANSLATE_Z = TRANSLATE_Z; +var TRANSLATE_3D = 'translate3d'; +exports.TRANSLATE_3D = TRANSLATE_3D; +var SCALE_X = 'scaleX'; +exports.SCALE_X = SCALE_X; +var SCALE_Y = 'scaleY'; +exports.SCALE_Y = SCALE_Y; +var SCALE_Z = 'scaleZ'; +exports.SCALE_Z = SCALE_Z; +var SCALE_3D = 'scale3d'; +exports.SCALE_3D = SCALE_3D; +var ROTATE_X = 'rotateX'; +exports.ROTATE_X = ROTATE_X; +var ROTATE_Y = 'rotateY'; +exports.ROTATE_Y = ROTATE_Y; +var ROTATE_Z = 'rotateZ'; +exports.ROTATE_Z = ROTATE_Z; +var SKEW = 'skew'; +exports.SKEW = SKEW; +var SKEW_X = 'skewX'; +exports.SKEW_X = SKEW_X; +var SKEW_Y = 'skewY'; +exports.SKEW_Y = SKEW_Y; +var OPACITY = 'opacity'; +exports.OPACITY = OPACITY; +var FILTER = 'filter'; +exports.FILTER = FILTER; +var FONT_VARIATION_SETTINGS = 'font-variation-settings'; +exports.FONT_VARIATION_SETTINGS = FONT_VARIATION_SETTINGS; +var WIDTH = 'width'; +exports.WIDTH = WIDTH; +var HEIGHT = 'height'; +exports.HEIGHT = HEIGHT; +var BACKGROUND_COLOR = 'backgroundColor'; +exports.BACKGROUND_COLOR = BACKGROUND_COLOR; +var BACKGROUND = 'background'; +exports.BACKGROUND = BACKGROUND; +var BORDER_COLOR = 'borderColor'; +exports.BORDER_COLOR = BORDER_COLOR; +var COLOR = 'color'; +exports.COLOR = COLOR; +var DISPLAY = 'display'; +exports.DISPLAY = DISPLAY; +var FLEX = 'flex'; +exports.FLEX = FLEX; +var WILL_CHANGE = 'willChange'; +exports.WILL_CHANGE = WILL_CHANGE; +var AUTO = 'AUTO'; +exports.AUTO = AUTO; +var COMMA_DELIMITER = ','; +exports.COMMA_DELIMITER = COMMA_DELIMITER; +var COLON_DELIMITER = ':'; +exports.COLON_DELIMITER = COLON_DELIMITER; +var BAR_DELIMITER = '|'; +exports.BAR_DELIMITER = BAR_DELIMITER; +var CHILDREN = 'CHILDREN'; +exports.CHILDREN = CHILDREN; +var IMMEDIATE_CHILDREN = 'IMMEDIATE_CHILDREN'; +exports.IMMEDIATE_CHILDREN = IMMEDIATE_CHILDREN; +var SIBLINGS = 'SIBLINGS'; +exports.SIBLINGS = SIBLINGS; +var PARENT = 'PARENT'; +exports.PARENT = PARENT; +var PRESERVE_3D = 'preserve-3d'; +exports.PRESERVE_3D = PRESERVE_3D; +var HTML_ELEMENT = 'HTML_ELEMENT'; +exports.HTML_ELEMENT = HTML_ELEMENT; +var PLAIN_OBJECT = 'PLAIN_OBJECT'; +exports.PLAIN_OBJECT = PLAIN_OBJECT; +var ABSTRACT_NODE = 'ABSTRACT_NODE'; +exports.ABSTRACT_NODE = ABSTRACT_NODE; +var RENDER_TRANSFORM = 'RENDER_TRANSFORM'; +exports.RENDER_TRANSFORM = RENDER_TRANSFORM; +var RENDER_GENERAL = 'RENDER_GENERAL'; +exports.RENDER_GENERAL = RENDER_GENERAL; +var RENDER_STYLE = 'RENDER_STYLE'; +exports.RENDER_STYLE = RENDER_STYLE; +var RENDER_PLUGIN = 'RENDER_PLUGIN'; +exports.RENDER_PLUGIN = RENDER_PLUGIN; + +/***/ }), +/* 192 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault2 = __webpack_require__(1); + +var _defineProperty2 = _interopRequireDefault2(__webpack_require__(21)); + +var _Object$create; + +var _interopRequireDefault = __webpack_require__(1); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ixRequest = void 0; + +var _extends2 = _interopRequireDefault(__webpack_require__(30)); + +var _constants = __webpack_require__(3); + +var _timm = __webpack_require__(22); + +var _constants$IX2EngineA = _constants.IX2EngineActionTypes, + IX2_PREVIEW_REQUESTED = _constants$IX2EngineA.IX2_PREVIEW_REQUESTED, + IX2_PLAYBACK_REQUESTED = _constants$IX2EngineA.IX2_PLAYBACK_REQUESTED, + IX2_STOP_REQUESTED = _constants$IX2EngineA.IX2_STOP_REQUESTED, + IX2_CLEAR_REQUESTED = _constants$IX2EngineA.IX2_CLEAR_REQUESTED; +var initialState = { + preview: {}, + playback: {}, + stop: {}, + clear: {} +}; +var stateKeys = Object.create(null, (_Object$create = {}, (0, _defineProperty2["default"])(_Object$create, IX2_PREVIEW_REQUESTED, { + value: 'preview' +}), (0, _defineProperty2["default"])(_Object$create, IX2_PLAYBACK_REQUESTED, { + value: 'playback' +}), (0, _defineProperty2["default"])(_Object$create, IX2_STOP_REQUESTED, { + value: 'stop' +}), (0, _defineProperty2["default"])(_Object$create, IX2_CLEAR_REQUESTED, { + value: 'clear' +}), _Object$create)); + +var ixRequest = function ixRequest() { + var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; + var action = arguments.length > 1 ? arguments[1] : undefined; + + if (action.type in stateKeys) { + var key = [stateKeys[action.type]]; + return (0, _timm.setIn)(state, [key], (0, _extends2["default"])({}, action.payload)); + } + + return state; +}; + +exports.ixRequest = ixRequest; + +/***/ }), +/* 193 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ixSession = void 0; + +var _constants = __webpack_require__(3); + +var _timm = __webpack_require__(22); + +var _constants$IX2EngineA = _constants.IX2EngineActionTypes, + IX2_SESSION_INITIALIZED = _constants$IX2EngineA.IX2_SESSION_INITIALIZED, + IX2_SESSION_STARTED = _constants$IX2EngineA.IX2_SESSION_STARTED, + IX2_TEST_FRAME_RENDERED = _constants$IX2EngineA.IX2_TEST_FRAME_RENDERED, + IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, + IX2_EVENT_LISTENER_ADDED = _constants$IX2EngineA.IX2_EVENT_LISTENER_ADDED, + IX2_EVENT_STATE_CHANGED = _constants$IX2EngineA.IX2_EVENT_STATE_CHANGED, + IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED, + IX2_ACTION_LIST_PLAYBACK_CHANGED = _constants$IX2EngineA.IX2_ACTION_LIST_PLAYBACK_CHANGED, + IX2_VIEWPORT_WIDTH_CHANGED = _constants$IX2EngineA.IX2_VIEWPORT_WIDTH_CHANGED, + IX2_MEDIA_QUERIES_DEFINED = _constants$IX2EngineA.IX2_MEDIA_QUERIES_DEFINED; +var initialState = { + active: false, + tick: 0, + eventListeners: [], + eventState: {}, + playbackState: {}, + viewportWidth: 0, + mediaQueryKey: null, + hasBoundaryNodes: false, + hasDefinedMediaQueries: false, + reducedMotion: false +}; +var TEST_FRAME_STEPS_SIZE = 20; // $FlowFixMe + +var ixSession = function ixSession() { + var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; + var action = arguments.length > 1 ? arguments[1] : undefined; + + switch (action.type) { + case IX2_SESSION_INITIALIZED: + { + var _action$payload = action.payload, + hasBoundaryNodes = _action$payload.hasBoundaryNodes, + reducedMotion = _action$payload.reducedMotion; + return (0, _timm.merge)(state, { + hasBoundaryNodes: hasBoundaryNodes, + reducedMotion: reducedMotion + }); + } + + case IX2_SESSION_STARTED: + { + return (0, _timm.set)(state, 'active', true); + } + + case IX2_TEST_FRAME_RENDERED: + { + var _action$payload$step = action.payload.step, + step = _action$payload$step === void 0 ? TEST_FRAME_STEPS_SIZE : _action$payload$step; + return (0, _timm.set)(state, 'tick', state.tick + step); + } + + case IX2_SESSION_STOPPED: + { + return initialState; + } + + case IX2_ANIMATION_FRAME_CHANGED: + { + var now = action.payload.now; + return (0, _timm.set)(state, 'tick', now); + } + + case IX2_EVENT_LISTENER_ADDED: + { + var eventListeners = (0, _timm.addLast)(state.eventListeners, action.payload); + return (0, _timm.set)(state, 'eventListeners', eventListeners); + } + + case IX2_EVENT_STATE_CHANGED: + { + var _action$payload2 = action.payload, + stateKey = _action$payload2.stateKey, + newState = _action$payload2.newState; + return (0, _timm.setIn)(state, ['eventState', stateKey], newState); + } + + case IX2_ACTION_LIST_PLAYBACK_CHANGED: + { + var _action$payload3 = action.payload, + actionListId = _action$payload3.actionListId, + isPlaying = _action$payload3.isPlaying; + return (0, _timm.setIn)(state, ['playbackState', actionListId], isPlaying); + } + + case IX2_VIEWPORT_WIDTH_CHANGED: + { + var _action$payload4 = action.payload, + width = _action$payload4.width, + mediaQueries = _action$payload4.mediaQueries; + var mediaQueryCount = mediaQueries.length; + var mediaQueryKey = null; + + for (var i = 0; i < mediaQueryCount; i++) { + var _mediaQueries$i = mediaQueries[i], + key = _mediaQueries$i.key, + min = _mediaQueries$i.min, + max = _mediaQueries$i.max; + + if (width >= min && width <= max) { + mediaQueryKey = key; + break; + } + } + + return (0, _timm.merge)(state, { + viewportWidth: width, + mediaQueryKey: mediaQueryKey + }); + } + + case IX2_MEDIA_QUERIES_DEFINED: + { + return (0, _timm.set)(state, 'hasDefinedMediaQueries', true); + } + + default: + { + return state; + } + } +}; + +exports.ixSession = ixSession; + +/***/ }), +/* 194 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsMatch = __webpack_require__(195), + getMatchData = __webpack_require__(247), + matchesStrictComparable = __webpack_require__(111); + +/** + * The base implementation of `_.matches` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + */ +function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + return matchesStrictComparable(matchData[0][0], matchData[0][1]); + } + return function(object) { + return object === source || baseIsMatch(object, source, matchData); + }; +} + +module.exports = baseMatches; + + +/***/ }), +/* 195 */ +/***/ (function(module, exports, __webpack_require__) { + +var Stack = __webpack_require__(97), + baseIsEqual = __webpack_require__(101); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** + * The base implementation of `_.isMatch` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Array} matchData The property names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ +function baseIsMatch(object, source, matchData, customizer) { + var index = matchData.length, + length = index, + noCustomizer = !customizer; + + if (object == null) { + return !length; + } + object = Object(object); + while (index--) { + var data = matchData[index]; + if ((noCustomizer && data[2]) + ? data[1] !== object[data[0]] + : !(data[0] in object) + ) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], + objValue = object[key], + srcValue = data[1]; + + if (noCustomizer && data[2]) { + if (objValue === undefined && !(key in object)) { + return false; + } + } else { + var stack = new Stack; + if (customizer) { + var result = customizer(objValue, srcValue, key, object, source, stack); + } + if (!(result === undefined + ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) + : result + )) { + return false; + } + } + } + return true; +} + +module.exports = baseIsMatch; + + +/***/ }), +/* 196 */ +/***/ (function(module, exports) { + +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ +function listCacheClear() { + this.__data__ = []; + this.size = 0; +} + +module.exports = listCacheClear; + + +/***/ }), +/* 197 */ +/***/ (function(module, exports, __webpack_require__) { + +var assocIndexOf = __webpack_require__(32); + +/** Used for built-in method references. */ +var arrayProto = Array.prototype; + +/** Built-in value references. */ +var splice = arrayProto.splice; + +/** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; +} + +module.exports = listCacheDelete; + + +/***/ }), +/* 198 */ +/***/ (function(module, exports, __webpack_require__) { + +var assocIndexOf = __webpack_require__(32); + +/** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; +} + +module.exports = listCacheGet; + + +/***/ }), +/* 199 */ +/***/ (function(module, exports, __webpack_require__) { + +var assocIndexOf = __webpack_require__(32); + +/** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; +} + +module.exports = listCacheHas; + + +/***/ }), +/* 200 */ +/***/ (function(module, exports, __webpack_require__) { + +var assocIndexOf = __webpack_require__(32); + +/** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ +function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; +} + +module.exports = listCacheSet; + + +/***/ }), +/* 201 */ +/***/ (function(module, exports, __webpack_require__) { + +var ListCache = __webpack_require__(31); + +/** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ +function stackClear() { + this.__data__ = new ListCache; + this.size = 0; +} + +module.exports = stackClear; + + +/***/ }), +/* 202 */ +/***/ (function(module, exports) { + +/** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function stackDelete(key) { + var data = this.__data__, + result = data['delete'](key); + + this.size = data.size; + return result; +} + +module.exports = stackDelete; + + +/***/ }), +/* 203 */ +/***/ (function(module, exports) { + +/** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function stackGet(key) { + return this.__data__.get(key); +} + +module.exports = stackGet; + + +/***/ }), +/* 204 */ +/***/ (function(module, exports) { + +/** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function stackHas(key) { + return this.__data__.has(key); +} + +module.exports = stackHas; + + +/***/ }), +/* 205 */ +/***/ (function(module, exports, __webpack_require__) { + +var ListCache = __webpack_require__(31), + Map = __webpack_require__(49), + MapCache = __webpack_require__(50); + +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; + +/** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ +function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; +} + +module.exports = stackSet; + + +/***/ }), +/* 206 */ +/***/ (function(module, exports, __webpack_require__) { + +var isFunction = __webpack_require__(98), + isMasked = __webpack_require__(209), + isObject = __webpack_require__(8), + toSource = __webpack_require__(100); + +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + +/** Used to detect host constructors (Safari). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** Used for built-in method references. */ +var funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ +function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); +} + +module.exports = baseIsNative; + + +/***/ }), +/* 207 */ +/***/ (function(module, exports, __webpack_require__) { + +var Symbol = __webpack_require__(23); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** Built-in value references. */ +var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + +/** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ +function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), + tag = value[symToStringTag]; + + try { + value[symToStringTag] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result; +} + +module.exports = getRawTag; + + +/***/ }), +/* 208 */ +/***/ (function(module, exports) { + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ +function objectToString(value) { + return nativeObjectToString.call(value); +} + +module.exports = objectToString; + + +/***/ }), +/* 209 */ +/***/ (function(module, exports, __webpack_require__) { + +var coreJsData = __webpack_require__(210); + +/** Used to detect methods masquerading as native. */ +var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; +}()); + +/** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ +function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); +} + +module.exports = isMasked; + + +/***/ }), +/* 210 */ +/***/ (function(module, exports, __webpack_require__) { + +var root = __webpack_require__(6); + +/** Used to detect overreaching core-js shims. */ +var coreJsData = root['__core-js_shared__']; + +module.exports = coreJsData; + + +/***/ }), +/* 211 */ +/***/ (function(module, exports) { + +/** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function getValue(object, key) { + return object == null ? undefined : object[key]; +} + +module.exports = getValue; + + +/***/ }), +/* 212 */ +/***/ (function(module, exports, __webpack_require__) { + +var Hash = __webpack_require__(213), + ListCache = __webpack_require__(31), + Map = __webpack_require__(49); + +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ +function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new Hash, + 'map': new (Map || ListCache), + 'string': new Hash + }; +} + +module.exports = mapCacheClear; + + +/***/ }), +/* 213 */ +/***/ (function(module, exports, __webpack_require__) { + +var hashClear = __webpack_require__(214), + hashDelete = __webpack_require__(215), + hashGet = __webpack_require__(216), + hashHas = __webpack_require__(217), + hashSet = __webpack_require__(218); + +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `Hash`. +Hash.prototype.clear = hashClear; +Hash.prototype['delete'] = hashDelete; +Hash.prototype.get = hashGet; +Hash.prototype.has = hashHas; +Hash.prototype.set = hashSet; + +module.exports = Hash; + + +/***/ }), +/* 214 */ +/***/ (function(module, exports, __webpack_require__) { + +var nativeCreate = __webpack_require__(33); + +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ +function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; +} + +module.exports = hashClear; + + +/***/ }), +/* 215 */ +/***/ (function(module, exports) { + +/** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; +} + +module.exports = hashDelete; + + +/***/ }), +/* 216 */ +/***/ (function(module, exports, __webpack_require__) { + +var nativeCreate = __webpack_require__(33); + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? undefined : result; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined; +} + +module.exports = hashGet; + + +/***/ }), +/* 217 */ +/***/ (function(module, exports, __webpack_require__) { + +var nativeCreate = __webpack_require__(33); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function hashHas(key) { + var data = this.__data__; + return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); +} + +module.exports = hashHas; + + +/***/ }), +/* 218 */ +/***/ (function(module, exports, __webpack_require__) { + +var nativeCreate = __webpack_require__(33); + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ +function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; +} + +module.exports = hashSet; + + +/***/ }), +/* 219 */ +/***/ (function(module, exports, __webpack_require__) { + +var getMapData = __webpack_require__(34); + +/** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function mapCacheDelete(key) { + var result = getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; +} + +module.exports = mapCacheDelete; + + +/***/ }), +/* 220 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ +function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); +} + +module.exports = isKeyable; + + +/***/ }), +/* 221 */ +/***/ (function(module, exports, __webpack_require__) { + +var getMapData = __webpack_require__(34); + +/** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function mapCacheGet(key) { + return getMapData(this, key).get(key); +} + +module.exports = mapCacheGet; + + +/***/ }), +/* 222 */ +/***/ (function(module, exports, __webpack_require__) { + +var getMapData = __webpack_require__(34); + +/** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function mapCacheHas(key) { + return getMapData(this, key).has(key); +} + +module.exports = mapCacheHas; + + +/***/ }), +/* 223 */ +/***/ (function(module, exports, __webpack_require__) { + +var getMapData = __webpack_require__(34); + +/** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ +function mapCacheSet(key, value) { + var data = getMapData(this, key), + size = data.size; + + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; +} + +module.exports = mapCacheSet; + + +/***/ }), +/* 224 */ +/***/ (function(module, exports, __webpack_require__) { + +var Stack = __webpack_require__(97), + equalArrays = __webpack_require__(102), + equalByTag = __webpack_require__(230), + equalObjects = __webpack_require__(234), + getTag = __webpack_require__(58), + isArray = __webpack_require__(2), + isBuffer = __webpack_require__(52), + isTypedArray = __webpack_require__(54); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1; + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + objectTag = '[object Object]'; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = objIsArr ? arrayTag : getTag(object), + othTag = othIsArr ? arrayTag : getTag(other); + + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; + + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack); + return (objIsArr || isTypedArray(object)) + ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) + : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; + + stack || (stack = new Stack); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); +} + +module.exports = baseIsEqualDeep; + + +/***/ }), +/* 225 */ +/***/ (function(module, exports, __webpack_require__) { + +var MapCache = __webpack_require__(50), + setCacheAdd = __webpack_require__(226), + setCacheHas = __webpack_require__(227); + +/** + * + * Creates an array cache object to store unique values. + * + * @private + * @constructor + * @param {Array} [values] The values to cache. + */ +function SetCache(values) { + var index = -1, + length = values == null ? 0 : values.length; + + this.__data__ = new MapCache; + while (++index < length) { + this.add(values[index]); + } +} + +// Add methods to `SetCache`. +SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; +SetCache.prototype.has = setCacheHas; + +module.exports = SetCache; + + +/***/ }), +/* 226 */ +/***/ (function(module, exports) { + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** + * Adds `value` to the array cache. + * + * @private + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. + */ +function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; +} + +module.exports = setCacheAdd; + + +/***/ }), +/* 227 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is in the array cache. + * + * @private + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. + */ +function setCacheHas(value) { + return this.__data__.has(value); +} + +module.exports = setCacheHas; + + +/***/ }), +/* 228 */ +/***/ (function(module, exports) { + +/** + * A specialized version of `_.some` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ +function arraySome(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; +} + +module.exports = arraySome; + + +/***/ }), +/* 229 */ +/***/ (function(module, exports) { + +/** + * Checks if a `cache` value for `key` exists. + * + * @private + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function cacheHas(cache, key) { + return cache.has(key); +} + +module.exports = cacheHas; + + +/***/ }), +/* 230 */ +/***/ (function(module, exports, __webpack_require__) { + +var Symbol = __webpack_require__(23), + Uint8Array = __webpack_require__(231), + eq = __webpack_require__(48), + equalArrays = __webpack_require__(102), + mapToArray = __webpack_require__(232), + setToArray = __webpack_require__(233); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** `Object#toString` result references. */ +var boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + mapTag = '[object Map]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + symbolTag = '[object Symbol]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]'; + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; + +/** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if ((object.byteLength != other.byteLength) || + (object.byteOffset != other.byteOffset)) { + return false; + } + object = object.buffer; + other = other.buffer; + + case arrayBufferTag: + if ((object.byteLength != other.byteLength) || + !equalFunc(new Uint8Array(object), new Uint8Array(other))) { + return false; + } + return true; + + case boolTag: + case dateTag: + case numberTag: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq(+object, +other); + + case errorTag: + return object.name == other.name && object.message == other.message; + + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == (other + ''); + + case mapTag: + var convert = mapToArray; + + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG; + convert || (convert = setToArray); + + if (object.size != other.size && !isPartial) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG; + + // Recursively compare objects (susceptible to call stack limits). + stack.set(object, other); + var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack['delete'](object); + return result; + + case symbolTag: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; +} + +module.exports = equalByTag; + + +/***/ }), +/* 231 */ +/***/ (function(module, exports, __webpack_require__) { + +var root = __webpack_require__(6); + +/** Built-in value references. */ +var Uint8Array = root.Uint8Array; + +module.exports = Uint8Array; + + +/***/ }), +/* 232 */ +/***/ (function(module, exports) { + +/** + * Converts `map` to its key-value pairs. + * + * @private + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. + */ +function mapToArray(map) { + var index = -1, + result = Array(map.size); + + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; +} + +module.exports = mapToArray; + + +/***/ }), +/* 233 */ +/***/ (function(module, exports) { + +/** + * Converts `set` to an array of its values. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. + */ +function setToArray(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = value; + }); + return result; +} + +module.exports = setToArray; + + +/***/ }), +/* 234 */ +/***/ (function(module, exports, __webpack_require__) { + +var getAllKeys = __webpack_require__(235); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + objProps = getAllKeys(object), + objLength = objProps.length, + othProps = getAllKeys(other), + othLength = othProps.length; + + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + // Check that cyclic values are equal. + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } + var result = true; + stack.set(object, other); + stack.set(other, object); + + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, objValue, key, other, object, stack) + : customizer(objValue, othValue, key, object, other, stack); + } + // Recursively compare objects (susceptible to call stack limits). + if (!(compared === undefined + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) + : compared + )) { + result = false; + break; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; + } + } + stack['delete'](object); + stack['delete'](other); + return result; +} + +module.exports = equalObjects; + + +/***/ }), +/* 235 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetAllKeys = __webpack_require__(103), + getSymbols = __webpack_require__(104), + keys = __webpack_require__(35); + +/** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ +function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); +} + +module.exports = getAllKeys; + + +/***/ }), +/* 236 */ +/***/ (function(module, exports) { + +/** + * A specialized version of `_.filter` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ +function arrayFilter(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } + return result; +} + +module.exports = arrayFilter; + + +/***/ }), +/* 237 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ +function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); + + while (++index < n) { + result[index] = iteratee(index); + } + return result; +} + +module.exports = baseTimes; + + +/***/ }), +/* 238 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(15), + isObjectLike = __webpack_require__(12); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]'; + +/** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ +function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; +} + +module.exports = baseIsArguments; + + +/***/ }), +/* 239 */ +/***/ (function(module, exports) { + +/** + * This method returns `false`. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] + */ +function stubFalse() { + return false; +} + +module.exports = stubFalse; + + +/***/ }), +/* 240 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(15), + isLength = __webpack_require__(55), + isObjectLike = __webpack_require__(12); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** Used to identify `toStringTag` values of typed arrays. */ +var typedArrayTags = {}; +typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = +typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = +typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = +typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = +typedArrayTags[uint32Tag] = true; +typedArrayTags[argsTag] = typedArrayTags[arrayTag] = +typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = +typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = +typedArrayTags[errorTag] = typedArrayTags[funcTag] = +typedArrayTags[mapTag] = typedArrayTags[numberTag] = +typedArrayTags[objectTag] = typedArrayTags[regexpTag] = +typedArrayTags[setTag] = typedArrayTags[stringTag] = +typedArrayTags[weakMapTag] = false; + +/** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ +function baseIsTypedArray(value) { + return isObjectLike(value) && + isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; +} + +module.exports = baseIsTypedArray; + + +/***/ }), +/* 241 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ +function baseUnary(func) { + return function(value) { + return func(value); + }; +} + +module.exports = baseUnary; + + +/***/ }), +/* 242 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(99); + +/** Detect free variable `exports`. */ +var freeExports = true && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Detect free variable `process` from Node.js. */ +var freeProcess = moduleExports && freeGlobal.process; + +/** Used to access faster Node.js helpers. */ +var nodeUtil = (function() { + try { + // Use `util.types` for Node.js 10+. + var types = freeModule && freeModule.require && freeModule.require('util').types; + + if (types) { + return types; + } + + // Legacy `process.binding('util')` for Node.js < 10. + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} +}()); + +module.exports = nodeUtil; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(107)(module))) + +/***/ }), +/* 243 */ +/***/ (function(module, exports, __webpack_require__) { + +var overArg = __webpack_require__(108); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeKeys = overArg(Object.keys, Object); + +module.exports = nativeKeys; + + +/***/ }), +/* 244 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(11), + root = __webpack_require__(6); + +/* Built-in method references that are verified to be native. */ +var DataView = getNative(root, 'DataView'); + +module.exports = DataView; + + +/***/ }), +/* 245 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(11), + root = __webpack_require__(6); + +/* Built-in method references that are verified to be native. */ +var Promise = getNative(root, 'Promise'); + +module.exports = Promise; + + +/***/ }), +/* 246 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(11), + root = __webpack_require__(6); + +/* Built-in method references that are verified to be native. */ +var Set = getNative(root, 'Set'); + +module.exports = Set; + + +/***/ }), +/* 247 */ +/***/ (function(module, exports, __webpack_require__) { + +var isStrictComparable = __webpack_require__(110), + keys = __webpack_require__(35); + +/** + * Gets the property names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ +function getMatchData(object) { + var result = keys(object), + length = result.length; + + while (length--) { + var key = result[length], + value = object[key]; + + result[length] = [key, value, isStrictComparable(value)]; + } + return result; +} + +module.exports = getMatchData; + + +/***/ }), +/* 248 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsEqual = __webpack_require__(101), + get = __webpack_require__(59), + hasIn = __webpack_require__(254), + isKey = __webpack_require__(61), + isStrictComparable = __webpack_require__(110), + matchesStrictComparable = __webpack_require__(111), + toKey = __webpack_require__(24); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** + * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. + * + * @private + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ +function baseMatchesProperty(path, srcValue) { + if (isKey(path) && isStrictComparable(srcValue)) { + return matchesStrictComparable(toKey(path), srcValue); + } + return function(object) { + var objValue = get(object, path); + return (objValue === undefined && objValue === srcValue) + ? hasIn(object, path) + : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; +} + +module.exports = baseMatchesProperty; + + +/***/ }), +/* 249 */ +/***/ (function(module, exports, __webpack_require__) { + +var memoizeCapped = __webpack_require__(250); + +/** Used to match property names within property paths. */ +var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + +/** Used to match backslashes in property paths. */ +var reEscapeChar = /\\(\\)?/g; + +/** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ +var stringToPath = memoizeCapped(function(string) { + var result = []; + if (string.charCodeAt(0) === 46 /* . */) { + result.push(''); + } + string.replace(rePropName, function(match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; +}); + +module.exports = stringToPath; + + +/***/ }), +/* 250 */ +/***/ (function(module, exports, __webpack_require__) { + +var memoize = __webpack_require__(251); + +/** Used as the maximum memoize cache size. */ +var MAX_MEMOIZE_SIZE = 500; + +/** + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * + * @private + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. + */ +function memoizeCapped(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + + var cache = result.cache; + return result; +} + +module.exports = memoizeCapped; + + +/***/ }), +/* 251 */ +/***/ (function(module, exports, __webpack_require__) { + +var MapCache = __webpack_require__(50); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `clear`, `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ +function memoize(func, resolver) { + if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || MapCache); + return memoized; +} + +// Expose `MapCache`. +memoize.Cache = MapCache; + +module.exports = memoize; + + +/***/ }), +/* 252 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseToString = __webpack_require__(253); + +/** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ +function toString(value) { + return value == null ? '' : baseToString(value); +} + +module.exports = toString; + + +/***/ }), +/* 253 */ +/***/ (function(module, exports, __webpack_require__) { + +var Symbol = __webpack_require__(23), + arrayMap = __webpack_require__(112), + isArray = __webpack_require__(2), + isSymbol = __webpack_require__(38); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + +/** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ +function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isArray(value)) { + // Recursively convert values (susceptible to call stack limits). + return arrayMap(value, baseToString) + ''; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +module.exports = baseToString; + + +/***/ }), +/* 254 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseHasIn = __webpack_require__(255), + hasPath = __webpack_require__(256); + +/** + * Checks if `path` is a direct or inherited property of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.hasIn(object, 'a'); + * // => true + * + * _.hasIn(object, 'a.b'); + * // => true + * + * _.hasIn(object, ['a', 'b']); + * // => true + * + * _.hasIn(object, 'b'); + * // => false + */ +function hasIn(object, path) { + return object != null && hasPath(object, path, baseHasIn); +} + +module.exports = hasIn; + + +/***/ }), +/* 255 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.hasIn` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ +function baseHasIn(object, key) { + return object != null && key in Object(object); +} + +module.exports = baseHasIn; + + +/***/ }), +/* 256 */ +/***/ (function(module, exports, __webpack_require__) { + +var castPath = __webpack_require__(37), + isArguments = __webpack_require__(36), + isArray = __webpack_require__(2), + isIndex = __webpack_require__(53), + isLength = __webpack_require__(55), + toKey = __webpack_require__(24); + +/** + * Checks if `path` exists on `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + */ +function hasPath(object, path, hasFunc) { + path = castPath(path, object); + + var index = -1, + length = path.length, + result = false; + + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result || ++index != length) { + return result; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && + (isArray(object) || isArguments(object)); +} + +module.exports = hasPath; + + +/***/ }), +/* 257 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseProperty = __webpack_require__(113), + basePropertyDeep = __webpack_require__(258), + isKey = __webpack_require__(61), + toKey = __webpack_require__(24); + +/** + * Creates a function that returns the value at `path` of a given object. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + * @example + * + * var objects = [ + * { 'a': { 'b': 2 } }, + * { 'a': { 'b': 1 } } + * ]; + * + * _.map(objects, _.property('a.b')); + * // => [2, 1] + * + * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); + * // => [1, 2] + */ +function property(path) { + return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); +} + +module.exports = property; + + +/***/ }), +/* 258 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGet = __webpack_require__(60); + +/** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + */ +function basePropertyDeep(path) { + return function(object) { + return baseGet(object, path); + }; +} + +module.exports = basePropertyDeep; + + +/***/ }), +/* 259 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseFindIndex = __webpack_require__(114), + baseIteratee = __webpack_require__(10), + toInteger = __webpack_require__(115); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * This method is like `_.find` except that it returns the index of the first + * element `predicate` returns truthy for instead of the element itself. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.findIndex(users, function(o) { return o.user == 'barney'; }); + * // => 0 + * + * // The `_.matches` iteratee shorthand. + * _.findIndex(users, { 'user': 'fred', 'active': false }); + * // => 1 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findIndex(users, ['active', false]); + * // => 0 + * + * // The `_.property` iteratee shorthand. + * _.findIndex(users, 'active'); + * // => 2 + */ +function findIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseFindIndex(array, baseIteratee(predicate, 3), index); +} + +module.exports = findIndex; + + +/***/ }), +/* 260 */ +/***/ (function(module, exports, __webpack_require__) { + +var toNumber = __webpack_require__(63); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0, + MAX_INTEGER = 1.7976931348623157e+308; + +/** + * Converts `value` to a finite number. + * + * @static + * @memberOf _ + * @since 4.12.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted number. + * @example + * + * _.toFinite(3.2); + * // => 3.2 + * + * _.toFinite(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toFinite(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toFinite('3.2'); + * // => 3.2 + */ +function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign = (value < 0 ? -1 : 1); + return sign * MAX_INTEGER; + } + return value === value ? value : 0; +} + +module.exports = toFinite; + + +/***/ }), +/* 261 */ +/***/ (function(module, exports, __webpack_require__) { + +var trimmedEndIndex = __webpack_require__(262); + +/** Used to match leading whitespace. */ +var reTrimStart = /^\s+/; + +/** + * The base implementation of `_.trim`. + * + * @private + * @param {string} string The string to trim. + * @returns {string} Returns the trimmed string. + */ +function baseTrim(string) { + return string + ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') + : string; +} + +module.exports = baseTrim; + + +/***/ }), +/* 262 */ +/***/ (function(module, exports) { + +/** Used to match a single whitespace character. */ +var reWhitespace = /\s/; + +/** + * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace + * character of `string`. + * + * @private + * @param {string} string The string to inspect. + * @returns {number} Returns the index of the last non-whitespace character. + */ +function trimmedEndIndex(string) { + var index = string.length; + + while (index-- && reWhitespace.test(string.charAt(index))) {} + return index; +} + +module.exports = trimmedEndIndex; + + +/***/ }), +/* 263 */ +/***/ (function(module, exports) { + +function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) { + for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { + arr2[i] = arr[i]; + } + + return arr2; + } +} + +module.exports = _arrayWithoutHoles; + +/***/ }), +/* 264 */ +/***/ (function(module, exports) { + +function _iterableToArray(iter) { + if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); +} + +module.exports = _iterableToArray; + +/***/ }), +/* 265 */ +/***/ (function(module, exports) { + +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance"); +} + +module.exports = _nonIterableSpread; + +/***/ }), +/* 266 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.createElementState = createElementState; +exports.mergeActionState = mergeActionState; +exports.ixElements = void 0; + +var _timm = __webpack_require__(22); + +var _constants = __webpack_require__(3); + +var _constants$IX2EngineC = _constants.IX2EngineConstants, + HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, + PLAIN_OBJECT = _constants$IX2EngineC.PLAIN_OBJECT, + ABSTRACT_NODE = _constants$IX2EngineC.ABSTRACT_NODE, + CONFIG_X_VALUE = _constants$IX2EngineC.CONFIG_X_VALUE, + CONFIG_Y_VALUE = _constants$IX2EngineC.CONFIG_Y_VALUE, + CONFIG_Z_VALUE = _constants$IX2EngineC.CONFIG_Z_VALUE, + CONFIG_VALUE = _constants$IX2EngineC.CONFIG_VALUE, + CONFIG_X_UNIT = _constants$IX2EngineC.CONFIG_X_UNIT, + CONFIG_Y_UNIT = _constants$IX2EngineC.CONFIG_Y_UNIT, + CONFIG_Z_UNIT = _constants$IX2EngineC.CONFIG_Z_UNIT, + CONFIG_UNIT = _constants$IX2EngineC.CONFIG_UNIT; +var _constants$IX2EngineA = _constants.IX2EngineActionTypes, + IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, + IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, + IX2_ELEMENT_STATE_CHANGED = _constants$IX2EngineA.IX2_ELEMENT_STATE_CHANGED; +var initialState = {}; +var refState = 'refState'; + +var ixElements = function ixElements() { + var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; + var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + switch (action.type) { + case IX2_SESSION_STOPPED: + { + return initialState; + } + + case IX2_INSTANCE_ADDED: + { + var _action$payload = action.payload, + elementId = _action$payload.elementId, + ref = _action$payload.element, + origin = _action$payload.origin, + actionItem = _action$payload.actionItem, + refType = _action$payload.refType; + var actionTypeId = actionItem.actionTypeId; + var newState = state; // Create new ref entry if it doesn't exist + + if ((0, _timm.getIn)(newState, [elementId, ref]) !== ref) { + newState = createElementState(newState, ref, refType, elementId, actionItem); + } // Merge origin values into ref state + + + return mergeActionState(newState, elementId, actionTypeId, origin, actionItem); + } + + case IX2_ELEMENT_STATE_CHANGED: + { + var _action$payload2 = action.payload, + _elementId = _action$payload2.elementId, + _actionTypeId = _action$payload2.actionTypeId, + current = _action$payload2.current, + _actionItem = _action$payload2.actionItem; + return mergeActionState(state, _elementId, _actionTypeId, current, _actionItem); + } + + default: + { + return state; + } + } +}; + +exports.ixElements = ixElements; + +function createElementState(state, ref, refType, elementId, actionItem) { + var refId = refType === PLAIN_OBJECT ? (0, _timm.getIn)(actionItem, ['config', 'target', 'objectId']) : null; + return (0, _timm.mergeIn)(state, [elementId], { + id: elementId, + ref: ref, + refId: refId, + refType: refType + }); +} + +function mergeActionState(state, elementId, actionTypeId, actionState, // FIXME: weak type is used +actionItem) { + var units = pickUnits(actionItem); + var mergePath = [elementId, refState, actionTypeId]; + return (0, _timm.mergeIn)(state, mergePath, actionState, units); +} + +var valueUnitPairs = [[CONFIG_X_VALUE, CONFIG_X_UNIT], [CONFIG_Y_VALUE, CONFIG_Y_UNIT], [CONFIG_Z_VALUE, CONFIG_Z_UNIT], [CONFIG_VALUE, CONFIG_UNIT]]; // FIXME: weak type is used +// eslint-disable-next-line flowtype/no-weak-types + +function pickUnits(actionItem) { + var config = actionItem.config; + return valueUnitPairs.reduce(function (result, pair) { + var valueKey = pair[0]; + var unitKey = pair[1]; + var configValue = config[valueKey]; + var configUnit = config[unitKey]; + + if (configValue != null && configUnit != null) { + result[unitKey] = configUnit; + } + + return result; + }, {}); +} + +/***/ }), +/* 267 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.clearPlugin = exports.renderPlugin = exports.createPluginInstance = exports.getPluginDestination = exports.getPluginOrigin = exports.getPluginDuration = exports.getPluginConfig = void 0; +/* eslint-env browser */ +// $FlowFixMe + +var getPluginConfig = function getPluginConfig(actionItemConfig) { + return actionItemConfig.value; +}; // $FlowFixMe + + +exports.getPluginConfig = getPluginConfig; + +var getPluginDuration = function getPluginDuration(element, actionItem) { + if (actionItem.config.duration !== 'auto') { + return null; + } + + var duration = parseFloat(element.getAttribute('data-duration')); + + if (duration > 0) { + return duration * 1000; + } + + return parseFloat(element.getAttribute('data-default-duration')) * 1000; +}; // $FlowFixMe + + +exports.getPluginDuration = getPluginDuration; + +var getPluginOrigin = function getPluginOrigin(refState) { + return refState || { + value: 0 + }; +}; // $FlowFixMe + + +exports.getPluginOrigin = getPluginOrigin; + +var getPluginDestination = function getPluginDestination(actionItemConfig) { + return { + value: actionItemConfig.value + }; +}; // $FlowFixMe + + +exports.getPluginDestination = getPluginDestination; + +var createPluginInstance = function createPluginInstance(element) { + var instance = window.Webflow.require('lottie').createInstance(element); + + instance.stop(); + instance.setSubframe(true); + return instance; +}; // $FlowFixMe + + +exports.createPluginInstance = createPluginInstance; + +var renderPlugin = function renderPlugin(pluginInstance, refState, actionItem) { + if (!pluginInstance) { + return; + } + + var percent = refState[actionItem.actionTypeId].value / 100; + pluginInstance.goToFrame(pluginInstance.frames * percent); +}; // $FlowFixMe + + +exports.renderPlugin = renderPlugin; + +var clearPlugin = function clearPlugin(element) { + var instance = window.Webflow.require('lottie').createInstance(element); + + instance.stop(); +}; + +exports.clearPlugin = clearPlugin; + +/***/ }), +/* 268 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault2 = __webpack_require__(1); + +var _typeof2 = _interopRequireDefault2(__webpack_require__(17)); + +var _defineProperty2 = _interopRequireDefault2(__webpack_require__(21)); + +var _Object$freeze, _Object$freeze2, _transformDefaults; + +var _interopRequireDefault = __webpack_require__(1); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getInstanceId = getInstanceId; +exports.getElementId = getElementId; +exports.reifyState = reifyState; +exports.observeStore = observeStore; +exports.getAffectedElements = getAffectedElements; +exports.getComputedStyle = getComputedStyle; +exports.getInstanceOrigin = getInstanceOrigin; +exports.getDestinationValues = getDestinationValues; +exports.getRenderType = getRenderType; +exports.getStyleProp = getStyleProp; +exports.renderHTMLElement = renderHTMLElement; +exports.clearAllStyles = clearAllStyles; +exports.cleanupHTMLElement = cleanupHTMLElement; +exports.getMaxDurationItemIndex = getMaxDurationItemIndex; +exports.getActionListProgress = getActionListProgress; +exports.reduceListToGroup = reduceListToGroup; +exports.shouldNamespaceEventParameter = shouldNamespaceEventParameter; +exports.getNamespacedParameterId = getNamespacedParameterId; +exports.shouldAllowMediaQuery = shouldAllowMediaQuery; +exports.mediaQueriesEqual = mediaQueriesEqual; +exports.stringifyTarget = stringifyTarget; +Object.defineProperty(exports, "shallowEqual", { + enumerable: true, + get: function get() { + return _shallowEqual["default"]; + } +}); +exports.getItemConfigByKey = void 0; + +var _defaultTo = _interopRequireDefault(__webpack_require__(269)); + +var _reduce = _interopRequireDefault(__webpack_require__(270)); + +var _findLast = _interopRequireDefault(__webpack_require__(276)); + +var _timm = __webpack_require__(22); + +var _constants = __webpack_require__(3); + +var _shallowEqual = _interopRequireDefault(__webpack_require__(278)); + +var _IX2EasingUtils = __webpack_require__(118); + +var _IX2VanillaPlugins = __webpack_require__(120); + +var _IX2BrowserSupport = __webpack_require__(47); +/* eslint-env browser */ + + +var _constants$IX2EngineC = _constants.IX2EngineConstants, + BACKGROUND = _constants$IX2EngineC.BACKGROUND, + TRANSFORM = _constants$IX2EngineC.TRANSFORM, + TRANSLATE_3D = _constants$IX2EngineC.TRANSLATE_3D, + SCALE_3D = _constants$IX2EngineC.SCALE_3D, + ROTATE_X = _constants$IX2EngineC.ROTATE_X, + ROTATE_Y = _constants$IX2EngineC.ROTATE_Y, + ROTATE_Z = _constants$IX2EngineC.ROTATE_Z, + SKEW = _constants$IX2EngineC.SKEW, + PRESERVE_3D = _constants$IX2EngineC.PRESERVE_3D, + FLEX = _constants$IX2EngineC.FLEX, + OPACITY = _constants$IX2EngineC.OPACITY, + FILTER = _constants$IX2EngineC.FILTER, + FONT_VARIATION_SETTINGS = _constants$IX2EngineC.FONT_VARIATION_SETTINGS, + WIDTH = _constants$IX2EngineC.WIDTH, + HEIGHT = _constants$IX2EngineC.HEIGHT, + BACKGROUND_COLOR = _constants$IX2EngineC.BACKGROUND_COLOR, + BORDER_COLOR = _constants$IX2EngineC.BORDER_COLOR, + COLOR = _constants$IX2EngineC.COLOR, + CHILDREN = _constants$IX2EngineC.CHILDREN, + IMMEDIATE_CHILDREN = _constants$IX2EngineC.IMMEDIATE_CHILDREN, + SIBLINGS = _constants$IX2EngineC.SIBLINGS, + PARENT = _constants$IX2EngineC.PARENT, + DISPLAY = _constants$IX2EngineC.DISPLAY, + WILL_CHANGE = _constants$IX2EngineC.WILL_CHANGE, + AUTO = _constants$IX2EngineC.AUTO, + COMMA_DELIMITER = _constants$IX2EngineC.COMMA_DELIMITER, + COLON_DELIMITER = _constants$IX2EngineC.COLON_DELIMITER, + BAR_DELIMITER = _constants$IX2EngineC.BAR_DELIMITER, + RENDER_TRANSFORM = _constants$IX2EngineC.RENDER_TRANSFORM, + RENDER_GENERAL = _constants$IX2EngineC.RENDER_GENERAL, + RENDER_STYLE = _constants$IX2EngineC.RENDER_STYLE, + RENDER_PLUGIN = _constants$IX2EngineC.RENDER_PLUGIN; +var _constants$ActionType = _constants.ActionTypeConsts, + TRANSFORM_MOVE = _constants$ActionType.TRANSFORM_MOVE, + TRANSFORM_SCALE = _constants$ActionType.TRANSFORM_SCALE, + TRANSFORM_ROTATE = _constants$ActionType.TRANSFORM_ROTATE, + TRANSFORM_SKEW = _constants$ActionType.TRANSFORM_SKEW, + STYLE_OPACITY = _constants$ActionType.STYLE_OPACITY, + STYLE_FILTER = _constants$ActionType.STYLE_FILTER, + STYLE_FONT_VARIATION = _constants$ActionType.STYLE_FONT_VARIATION, + STYLE_SIZE = _constants$ActionType.STYLE_SIZE, + STYLE_BACKGROUND_COLOR = _constants$ActionType.STYLE_BACKGROUND_COLOR, + STYLE_BORDER = _constants$ActionType.STYLE_BORDER, + STYLE_TEXT_COLOR = _constants$ActionType.STYLE_TEXT_COLOR, + GENERAL_DISPLAY = _constants$ActionType.GENERAL_DISPLAY; +var OBJECT_VALUE = 'OBJECT_VALUE'; + +var trim = function trim(v) { + return v.trim(); +}; + +var colorStyleProps = Object.freeze((_Object$freeze = {}, (0, _defineProperty2["default"])(_Object$freeze, STYLE_BACKGROUND_COLOR, BACKGROUND_COLOR), (0, _defineProperty2["default"])(_Object$freeze, STYLE_BORDER, BORDER_COLOR), (0, _defineProperty2["default"])(_Object$freeze, STYLE_TEXT_COLOR, COLOR), _Object$freeze)); +var willChangeProps = Object.freeze((_Object$freeze2 = {}, (0, _defineProperty2["default"])(_Object$freeze2, _IX2BrowserSupport.TRANSFORM_PREFIXED, TRANSFORM), (0, _defineProperty2["default"])(_Object$freeze2, BACKGROUND_COLOR, BACKGROUND), (0, _defineProperty2["default"])(_Object$freeze2, OPACITY, OPACITY), (0, _defineProperty2["default"])(_Object$freeze2, FILTER, FILTER), (0, _defineProperty2["default"])(_Object$freeze2, WIDTH, WIDTH), (0, _defineProperty2["default"])(_Object$freeze2, HEIGHT, HEIGHT), (0, _defineProperty2["default"])(_Object$freeze2, FONT_VARIATION_SETTINGS, FONT_VARIATION_SETTINGS), _Object$freeze2)); +var objectCache = {}; +var instanceCount = 1; + +function getInstanceId() { + return 'i' + instanceCount++; +} + +var elementCount = 1; // $FlowFixMe + +function getElementId(ixElements, ref) { + // TODO: optimize element lookup + for (var key in ixElements) { + var ixEl = ixElements[key]; + + if (ixEl && ixEl.ref === ref) { + return ixEl.id; + } + } + + return 'e' + elementCount++; +} // $FlowFixMe + + +function reifyState() { + var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + events = _ref2.events, + actionLists = _ref2.actionLists, + site = _ref2.site; + + var eventTypeMap = (0, _reduce["default"])(events, function (result, event) { + var eventTypeId = event.eventTypeId; + + if (!result[eventTypeId]) { + result[eventTypeId] = {}; + } + + result[eventTypeId][event.id] = event; + return result; + }, {}); + var mediaQueries = site && site.mediaQueries; + var mediaQueryKeys = []; + + if (mediaQueries) { + mediaQueryKeys = mediaQueries.map(function (mq) { + return mq.key; + }); + } else { + mediaQueries = []; + console.warn("IX2 missing mediaQueries in site data"); + } + + return { + ixData: { + events: events, + actionLists: actionLists, + eventTypeMap: eventTypeMap, + mediaQueries: mediaQueries, + mediaQueryKeys: mediaQueryKeys + } + }; +} + +var strictEqual = function strictEqual(a, b) { + return a === b; +}; // $FlowFixMe + + +function observeStore(_ref3) { + var store = _ref3.store, + select = _ref3.select, + onChange = _ref3.onChange, + _ref3$comparator = _ref3.comparator, + comparator = _ref3$comparator === void 0 ? strictEqual : _ref3$comparator; + var getState = store.getState, + subscribe = store.subscribe; + var unsubscribe = subscribe(handleChange); + var currentState = select(getState()); + + function handleChange() { + var nextState = select(getState()); + + if (nextState == null) { + unsubscribe(); + return; + } + + if (!comparator(nextState, currentState)) { + currentState = nextState; + onChange(currentState, store); + } + } + + return unsubscribe; +} + +function normalizeTarget(target) { + var type = (0, _typeof2["default"])(target); + + if (type === 'string') { + return { + id: target + }; + } else if (target != null && type === 'object') { + var id = target.id, + objectId = target.objectId, + selector = target.selector, + selectorGuids = target.selectorGuids, + appliesTo = target.appliesTo, + useEventTarget = target.useEventTarget; + return { + id: id, + objectId: objectId, + selector: selector, + selectorGuids: selectorGuids, + appliesTo: appliesTo, + useEventTarget: useEventTarget + }; + } + + return {}; +} + +function getAffectedElements(_ref4) { + var config = _ref4.config, + event = _ref4.event, + eventTarget = _ref4.eventTarget, + elementRoot = _ref4.elementRoot, + elementApi = _ref4.elementApi; + + var _ref, _event$action, _event$action$config; + + if (!elementApi) { + throw new Error('IX2 missing elementApi'); + } + + var targets = config.targets; + + if (Array.isArray(targets) && targets.length > 0) { + return targets.reduce(function (accumulator, target) { + return accumulator.concat(getAffectedElements({ + config: { + target: target + }, + event: event, + eventTarget: eventTarget, + elementRoot: elementRoot, + elementApi: elementApi + })); + }, []); + } + + var getValidDocument = elementApi.getValidDocument, + getQuerySelector = elementApi.getQuerySelector, + queryDocument = elementApi.queryDocument, + getChildElements = elementApi.getChildElements, + getSiblingElements = elementApi.getSiblingElements, + matchSelector = elementApi.matchSelector, + elementContains = elementApi.elementContains, + isSiblingNode = elementApi.isSiblingNode; + var target = config.target; + + if (!target) { + return []; + } + + var _normalizeTarget = normalizeTarget(target), + id = _normalizeTarget.id, + objectId = _normalizeTarget.objectId, + selector = _normalizeTarget.selector, + selectorGuids = _normalizeTarget.selectorGuids, + appliesTo = _normalizeTarget.appliesTo, + useEventTarget = _normalizeTarget.useEventTarget; + + if (objectId) { + var ref = objectCache[objectId] || (objectCache[objectId] = {}); + return [ref]; + } + + if (appliesTo === _constants.EventAppliesTo.PAGE) { + var doc = getValidDocument(id); + return doc ? [doc] : []; + } + + var overrides = (_ref = event === null || event === void 0 ? void 0 : (_event$action = event.action) === null || _event$action === void 0 ? void 0 : (_event$action$config = _event$action.config) === null || _event$action$config === void 0 ? void 0 : _event$action$config.affectedElements) !== null && _ref !== void 0 ? _ref : {}; + var override = overrides[id || selector] || {}; + var validOverride = Boolean(override.id || override.selector); + var limitAffectedElements; + var baseSelector; + var finalSelector; + var eventTargetSelector = event && getQuerySelector(normalizeTarget(event.target)); + + if (validOverride) { + limitAffectedElements = override.limitAffectedElements; + baseSelector = eventTargetSelector; + finalSelector = getQuerySelector(override); + } else { + // pass in selectorGuids as well for server-side rendering. + baseSelector = finalSelector = getQuerySelector({ + id: id, + selector: selector, + selectorGuids: selectorGuids + }); + } + + if (event && useEventTarget) { + // eventTarget is not defined when this function is called in a clear request, so find + // all target elements associated with the event data, and return affected elements. + var eventTargets = eventTarget && (finalSelector || useEventTarget === true) ? [eventTarget] : queryDocument(eventTargetSelector); + + if (finalSelector) { + if (useEventTarget === PARENT) { + return queryDocument(finalSelector).filter(function (parentElement) { + return eventTargets.some(function (targetElement) { + return elementContains(parentElement, targetElement); + }); + }); + } + + if (useEventTarget === CHILDREN) { + return queryDocument(finalSelector).filter(function (childElement) { + return eventTargets.some(function (targetElement) { + return elementContains(targetElement, childElement); + }); + }); + } + + if (useEventTarget === SIBLINGS) { + return queryDocument(finalSelector).filter(function (siblingElement) { + return eventTargets.some(function (targetElement) { + return isSiblingNode(targetElement, siblingElement); + }); + }); + } + } + + return eventTargets; + } + + if (baseSelector == null || finalSelector == null) { + return []; + } + + if (_IX2BrowserSupport.IS_BROWSER_ENV && elementRoot) { + return queryDocument(finalSelector).filter(function (element) { + return elementRoot.contains(element); + }); + } + + if (limitAffectedElements === CHILDREN) { + return queryDocument(baseSelector, finalSelector); + } else if (limitAffectedElements === IMMEDIATE_CHILDREN) { + return getChildElements(queryDocument(baseSelector)).filter(matchSelector(finalSelector)); + } else if (limitAffectedElements === SIBLINGS) { + return getSiblingElements(queryDocument(baseSelector)).filter(matchSelector(finalSelector)); + } else { + return queryDocument(finalSelector); + } +} // $FlowFixMe + + +function getComputedStyle(_ref5) { + var element = _ref5.element, + actionItem = _ref5.actionItem; + + if (!_IX2BrowserSupport.IS_BROWSER_ENV) { + return {}; + } + + var actionTypeId = actionItem.actionTypeId; + + switch (actionTypeId) { + case STYLE_SIZE: + case STYLE_BACKGROUND_COLOR: + case STYLE_BORDER: + case STYLE_TEXT_COLOR: + case GENERAL_DISPLAY: + return window.getComputedStyle(element); + + default: + return {}; + } +} + +var pxValueRegex = /px/; + +var getFilterDefaults = function getFilterDefaults(actionState, filters) { + return filters.reduce(function (result, filter) { + if (result[filter.type] == null) { + result[filter.type] = filterDefaults[// $FlowFixMe - property `saturation` (did you mean `saturate`?) is missing in `filterDefaults` + filter.type]; + } + + return result; + }, actionState || {}); +}; + +var getFontVariationDefaults = function getFontVariationDefaults(actionState, fontVariations) { + return fontVariations.reduce(function (result, fontVariation) { + if (result[fontVariation.type] == null) { + result[fontVariation.type] = fontVariationDefaults[fontVariation.type] || fontVariation.defaultValue || 0; + } + + return result; + }, actionState || {}); +}; + +function getInstanceOrigin(element) { + var refState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var computedStyle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var actionItem = arguments.length > 3 ? arguments[3] : undefined; + var elementApi = arguments.length > 4 ? arguments[4] : undefined; + var getStyle = elementApi.getStyle; // Flow Hack: Passing actionTypeId to isPluginType and then trying + // to do type refinement using the same variable via a switch statement + // breaks down. This is is a workaround to ensure we can use type refinement. + + var actionTypeId = actionItem.actionTypeId; + + if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { + // $FlowFixMe + return (0, _IX2VanillaPlugins.getPluginOrigin)(actionTypeId)(refState[actionTypeId]); + } + + switch (actionItem.actionTypeId) { + case TRANSFORM_MOVE: + case TRANSFORM_SCALE: + case TRANSFORM_ROTATE: + case TRANSFORM_SKEW: + { + return refState[actionItem.actionTypeId] || transformDefaults[actionItem.actionTypeId]; + } + + case STYLE_FILTER: + return getFilterDefaults(refState[actionItem.actionTypeId], actionItem.config.filters); + + case STYLE_FONT_VARIATION: + return getFontVariationDefaults(refState[actionItem.actionTypeId], actionItem.config.fontVariations); + + case STYLE_OPACITY: + return { + value: (0, _defaultTo["default"])(parseFloat(getStyle(element, OPACITY)), 1.0) + }; + + case STYLE_SIZE: + { + var inlineWidth = getStyle(element, WIDTH); + var inlineHeight = getStyle(element, HEIGHT); + var widthValue; + var heightValue; // When destination unit is 'AUTO', ensure origin values are in px + + if (actionItem.config.widthUnit === AUTO) { + widthValue = pxValueRegex.test(inlineWidth) ? parseFloat(inlineWidth) : parseFloat(computedStyle.width); + } else { + widthValue = (0, _defaultTo["default"])(parseFloat(inlineWidth), parseFloat(computedStyle.width)); + } + + if (actionItem.config.heightUnit === AUTO) { + heightValue = pxValueRegex.test(inlineHeight) ? parseFloat(inlineHeight) : parseFloat(computedStyle.height); + } else { + heightValue = (0, _defaultTo["default"])(parseFloat(inlineHeight), parseFloat(computedStyle.height)); + } + + return { + widthValue: widthValue, + heightValue: heightValue + }; + } + + case STYLE_BACKGROUND_COLOR: + case STYLE_BORDER: + case STYLE_TEXT_COLOR: + return parseColor({ + element: element, + actionTypeId: actionItem.actionTypeId, + computedStyle: computedStyle, + getStyle: getStyle + }); + + case GENERAL_DISPLAY: + return { + value: (0, _defaultTo["default"])(getStyle(element, DISPLAY), computedStyle.display) + }; + // $FlowFixMe - `OBJECT_VALUE` is not an expected `actionTypeId` + + case OBJECT_VALUE: + return refState[actionItem.actionTypeId] || { + value: 0 + }; + + default: + { + // As far as the type system can tell, we're missing a handler for + // PLUGIN_LOTTIE. + // + // This is actually handled by `isPluginType` above. + // + // $FlowFixMe + + /*:: (actionItem: empty); */ + return; + } + } +} + +var reduceFilters = function reduceFilters(result, filter) { + if (filter) { + result[filter.type] = filter.value || 0; + } + + return result; +}; + +var reduceFontVariations = function reduceFontVariations(result, fontVariation) { + if (fontVariation) { + result[fontVariation.type] = fontVariation.value || 0; + } + + return result; +}; // $FlowFixMe + + +var getItemConfigByKey = function getItemConfigByKey(actionTypeId, key, config) { + if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { + // $FlowFixMe + return (0, _IX2VanillaPlugins.getPluginConfig)(actionTypeId)(config, key); + } + + switch (actionTypeId) { + case STYLE_FILTER: + { + var filter = (0, _findLast["default"])(config.filters, function (_ref6) { + var type = _ref6.type; + return type === key; + }); + return filter ? filter.value : 0; + } + + case STYLE_FONT_VARIATION: + { + var fontVariation = (0, _findLast["default"])(config.fontVariations, function (_ref7) { + var type = _ref7.type; + return type === key; + }); + return fontVariation ? fontVariation.value : 0; + } + + default: + return config[key]; + } +}; + +exports.getItemConfigByKey = getItemConfigByKey; + +function getDestinationValues(_ref8) { + var element = _ref8.element, + actionItem = _ref8.actionItem, + elementApi = _ref8.elementApi; + + if ((0, _IX2VanillaPlugins.isPluginType)(actionItem.actionTypeId)) { + // $FlowFixMe + return (0, _IX2VanillaPlugins.getPluginDestination)(actionItem.actionTypeId)(actionItem.config); + } + + switch (actionItem.actionTypeId) { + case TRANSFORM_MOVE: + case TRANSFORM_SCALE: + case TRANSFORM_ROTATE: + case TRANSFORM_SKEW: + { + var _actionItem$config = actionItem.config, + xValue = _actionItem$config.xValue, + yValue = _actionItem$config.yValue, + zValue = _actionItem$config.zValue; + return { + xValue: xValue, + yValue: yValue, + zValue: zValue + }; + } + + case STYLE_SIZE: + { + var getStyle = elementApi.getStyle, + setStyle = elementApi.setStyle, + getProperty = elementApi.getProperty; + var _actionItem$config2 = actionItem.config, + widthUnit = _actionItem$config2.widthUnit, + heightUnit = _actionItem$config2.heightUnit; + var _actionItem$config3 = actionItem.config, + widthValue = _actionItem$config3.widthValue, + heightValue = _actionItem$config3.heightValue; + + if (!_IX2BrowserSupport.IS_BROWSER_ENV) { + return { + widthValue: widthValue, + heightValue: heightValue + }; + } + + if (widthUnit === AUTO) { + var temp = getStyle(element, WIDTH); + setStyle(element, WIDTH, ''); + widthValue = getProperty(element, 'offsetWidth'); + setStyle(element, WIDTH, temp); + } + + if (heightUnit === AUTO) { + var _temp = getStyle(element, HEIGHT); + + setStyle(element, HEIGHT, ''); + heightValue = getProperty(element, 'offsetHeight'); + setStyle(element, HEIGHT, _temp); + } + + return { + widthValue: widthValue, + heightValue: heightValue + }; + } + + case STYLE_BACKGROUND_COLOR: + case STYLE_BORDER: + case STYLE_TEXT_COLOR: + { + var _actionItem$config4 = actionItem.config, + rValue = _actionItem$config4.rValue, + gValue = _actionItem$config4.gValue, + bValue = _actionItem$config4.bValue, + aValue = _actionItem$config4.aValue; + return { + rValue: rValue, + gValue: gValue, + bValue: bValue, + aValue: aValue + }; + } + + case STYLE_FILTER: + { + return actionItem.config.filters.reduce(reduceFilters, {}); + } + + case STYLE_FONT_VARIATION: + { + return actionItem.config.fontVariations.reduce(reduceFontVariations, {}); + } + + default: + { + var value = actionItem.config.value; + return { + value: value + }; + } + } +} // $FlowFixMe + + +function getRenderType(actionTypeId) { + if (/^TRANSFORM_/.test(actionTypeId)) { + return RENDER_TRANSFORM; + } + + if (/^STYLE_/.test(actionTypeId)) { + return RENDER_STYLE; + } + + if (/^GENERAL_/.test(actionTypeId)) { + return RENDER_GENERAL; + } + + if (/^PLUGIN_/.test(actionTypeId)) { + return RENDER_PLUGIN; + } +} // $FlowFixMe + + +function getStyleProp(renderType, actionTypeId) { + return renderType === RENDER_STYLE ? actionTypeId.replace('STYLE_', '').toLowerCase() : null; +} + +function renderHTMLElement( // $FlowFixMe +element, // $FlowFixMe +refState, // $FlowFixMe +actionState, // $FlowFixMe +eventId, // $FlowFixMe +actionItem, // $FlowFixMe +styleProp, // $FlowFixMe +elementApi, // $FlowFixMe +renderType, // $FlowFixMe +pluginInstance) { + switch (renderType) { + case RENDER_TRANSFORM: + { + return renderTransform(element, refState, actionState, actionItem, elementApi); + } + + case RENDER_STYLE: + { + return renderStyle(element, refState, actionState, actionItem, styleProp, elementApi); + } + + case RENDER_GENERAL: + { + return renderGeneral(element, actionItem, elementApi); + } + + case RENDER_PLUGIN: + { + var actionTypeId = actionItem.actionTypeId; + + if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { + // $FlowFixMe + return (0, _IX2VanillaPlugins.renderPlugin)(actionTypeId)(pluginInstance, refState, actionItem); + } + } + } +} + +var transformDefaults = (_transformDefaults = {}, (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_MOVE, Object.freeze({ + xValue: 0, + yValue: 0, + zValue: 0 +})), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_SCALE, Object.freeze({ + xValue: 1, + yValue: 1, + zValue: 1 +})), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_ROTATE, Object.freeze({ + xValue: 0, + yValue: 0, + zValue: 0 +})), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_SKEW, Object.freeze({ + xValue: 0, + yValue: 0 +})), _transformDefaults); +var filterDefaults = Object.freeze({ + blur: 0, + 'hue-rotate': 0, + invert: 0, + grayscale: 0, + saturate: 100, + sepia: 0, + contrast: 100, + brightness: 100 +}); +var fontVariationDefaults = Object.freeze({ + wght: 0, + opsz: 0, + wdth: 0, + slnt: 0 +}); + +var getFilterUnit = function getFilterUnit(filterType, actionItemConfig) { + var filter = (0, _findLast["default"])(actionItemConfig.filters, function (_ref9) { + var type = _ref9.type; + return type === filterType; + }); + + if (filter && filter.unit) { + return filter.unit; + } + + switch (filterType) { + case 'blur': + return 'px'; + + case 'hue-rotate': + return 'deg'; + + default: + return '%'; + } +}; + +var transformKeys = Object.keys(transformDefaults); + +function renderTransform(element, refState, actionState, actionItem, elementApi) { + var newTransform = transformKeys.map(function (actionTypeId) { + var defaults = transformDefaults[actionTypeId]; + + var _ref10 = refState[actionTypeId] || {}, + _ref10$xValue = _ref10.xValue, + xValue = _ref10$xValue === void 0 ? defaults.xValue : _ref10$xValue, + _ref10$yValue = _ref10.yValue, + yValue = _ref10$yValue === void 0 ? defaults.yValue : _ref10$yValue, + _ref10$zValue = _ref10.zValue, + zValue = _ref10$zValue === void 0 ? defaults.zValue : _ref10$zValue, + _ref10$xUnit = _ref10.xUnit, + xUnit = _ref10$xUnit === void 0 ? '' : _ref10$xUnit, + _ref10$yUnit = _ref10.yUnit, + yUnit = _ref10$yUnit === void 0 ? '' : _ref10$yUnit, + _ref10$zUnit = _ref10.zUnit, + zUnit = _ref10$zUnit === void 0 ? '' : _ref10$zUnit; + + switch (actionTypeId) { + case TRANSFORM_MOVE: + return "".concat(TRANSLATE_3D, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ", ").concat(zValue).concat(zUnit, ")"); + + case TRANSFORM_SCALE: + return "".concat(SCALE_3D, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ", ").concat(zValue).concat(zUnit, ")"); + + case TRANSFORM_ROTATE: + return "".concat(ROTATE_X, "(").concat(xValue).concat(xUnit, ") ").concat(ROTATE_Y, "(").concat(yValue).concat(yUnit, ") ").concat(ROTATE_Z, "(").concat(zValue).concat(zUnit, ")"); + + case TRANSFORM_SKEW: + return "".concat(SKEW, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ")"); + + default: + return ''; + } + }).join(' '); + var setStyle = elementApi.setStyle; + addWillChange(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, elementApi); + setStyle(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, newTransform); // Set transform-style: preserve-3d + + if (hasDefined3dTransform(actionItem, actionState)) { + setStyle(element, _IX2BrowserSupport.TRANSFORM_STYLE_PREFIXED, PRESERVE_3D); + } +} + +function renderFilter(element, actionState, actionItemConfig, elementApi) { + var filterValue = (0, _reduce["default"])(actionState, function (result, value, type) { + return "".concat(result, " ").concat(type, "(").concat(value).concat(getFilterUnit(type, actionItemConfig), ")"); + }, ''); + var setStyle = elementApi.setStyle; + addWillChange(element, FILTER, elementApi); + setStyle(element, FILTER, filterValue); +} + +function renderFontVariation(element, actionState, actionItemConfig, elementApi) { + var fontVariationValue = (0, _reduce["default"])(actionState, function (result, value, type) { + result.push("\"".concat(type, "\" ").concat(value)); + return result; + }, []).join(', '); + var setStyle = elementApi.setStyle; + addWillChange(element, FONT_VARIATION_SETTINGS, elementApi); + setStyle(element, FONT_VARIATION_SETTINGS, fontVariationValue); +} + +function hasDefined3dTransform(_ref11, _ref12) { + var actionTypeId = _ref11.actionTypeId; + var xValue = _ref12.xValue, + yValue = _ref12.yValue, + zValue = _ref12.zValue; + // TRANSLATE_Z + return actionTypeId === TRANSFORM_MOVE && zValue !== undefined || // SCALE_Z + actionTypeId === TRANSFORM_SCALE && zValue !== undefined || // ROTATE_X or ROTATE_Y + actionTypeId === TRANSFORM_ROTATE && (xValue !== undefined || yValue !== undefined); +} + +var paramCapture = '\\(([^)]+)\\)'; +var rgbValidRegex = /^rgb/; +var rgbMatchRegex = RegExp("rgba?".concat(paramCapture)); + +function getFirstMatch(regex, value) { + var match = regex.exec(value); + return match ? match[1] : ''; +} + +function parseColor(_ref13) { + var element = _ref13.element, + actionTypeId = _ref13.actionTypeId, + computedStyle = _ref13.computedStyle, + getStyle = _ref13.getStyle; + var prop = colorStyleProps[actionTypeId]; + var inlineValue = getStyle(element, prop); + var value = rgbValidRegex.test(inlineValue) ? inlineValue : computedStyle[prop]; + var matches = getFirstMatch(rgbMatchRegex, value).split(COMMA_DELIMITER); + return { + rValue: (0, _defaultTo["default"])(parseInt(matches[0], 10), 255), + gValue: (0, _defaultTo["default"])(parseInt(matches[1], 10), 255), + bValue: (0, _defaultTo["default"])(parseInt(matches[2], 10), 255), + aValue: (0, _defaultTo["default"])(parseFloat(matches[3]), 1) + }; +} + +function renderStyle(element, refState, actionState, actionItem, styleProp, elementApi) { + var setStyle = elementApi.setStyle; + + switch (actionItem.actionTypeId) { + case STYLE_SIZE: + { + var _actionItem$config5 = actionItem.config, + _actionItem$config5$w = _actionItem$config5.widthUnit, + widthUnit = _actionItem$config5$w === void 0 ? '' : _actionItem$config5$w, + _actionItem$config5$h = _actionItem$config5.heightUnit, + heightUnit = _actionItem$config5$h === void 0 ? '' : _actionItem$config5$h; + var widthValue = actionState.widthValue, + heightValue = actionState.heightValue; + + if (widthValue !== undefined) { + if (widthUnit === AUTO) { + widthUnit = 'px'; + } + + addWillChange(element, WIDTH, elementApi); + setStyle(element, WIDTH, widthValue + widthUnit); + } + + if (heightValue !== undefined) { + if (heightUnit === AUTO) { + heightUnit = 'px'; + } + + addWillChange(element, HEIGHT, elementApi); + setStyle(element, HEIGHT, heightValue + heightUnit); + } + + break; + } + + case STYLE_FILTER: + { + renderFilter(element, actionState, actionItem.config, elementApi); + break; + } + + case STYLE_FONT_VARIATION: + { + renderFontVariation(element, actionState, actionItem.config, elementApi); + break; + } + + case STYLE_BACKGROUND_COLOR: + case STYLE_BORDER: + case STYLE_TEXT_COLOR: + { + var prop = colorStyleProps[actionItem.actionTypeId]; + var rValue = Math.round(actionState.rValue); + var gValue = Math.round(actionState.gValue); + var bValue = Math.round(actionState.bValue); + var aValue = actionState.aValue; + addWillChange(element, prop, elementApi); + setStyle(element, prop, aValue >= 1 ? "rgb(".concat(rValue, ",").concat(gValue, ",").concat(bValue, ")") : "rgba(".concat(rValue, ",").concat(gValue, ",").concat(bValue, ",").concat(aValue, ")")); + break; + } + + default: + { + var _actionItem$config$un = actionItem.config.unit, + unit = _actionItem$config$un === void 0 ? '' : _actionItem$config$un; + addWillChange(element, styleProp, elementApi); + setStyle(element, styleProp, actionState.value + unit); + break; + } + } +} + +function renderGeneral(element, actionItem, elementApi) { + var setStyle = elementApi.setStyle; + + switch (actionItem.actionTypeId) { + case GENERAL_DISPLAY: + { + var value = actionItem.config.value; + + if (value === FLEX && _IX2BrowserSupport.IS_BROWSER_ENV) { + setStyle(element, DISPLAY, _IX2BrowserSupport.FLEX_PREFIXED); + } else { + setStyle(element, DISPLAY, value); + } + + return; + } + } +} + +function addWillChange(element, prop, elementApi) { + if (!_IX2BrowserSupport.IS_BROWSER_ENV) { + return; + } + + var validProp = willChangeProps[prop]; + + if (!validProp) { + return; + } + + var getStyle = elementApi.getStyle, + setStyle = elementApi.setStyle; + var value = getStyle(element, WILL_CHANGE); + + if (!value) { + setStyle(element, WILL_CHANGE, validProp); + return; + } + + var values = value.split(COMMA_DELIMITER).map(trim); + + if (values.indexOf(validProp) === -1) { + setStyle(element, WILL_CHANGE, values.concat(validProp).join(COMMA_DELIMITER)); + } +} + +function removeWillChange(element, prop, elementApi) { + if (!_IX2BrowserSupport.IS_BROWSER_ENV) { + return; + } + + var validProp = willChangeProps[prop]; + + if (!validProp) { + return; + } + + var getStyle = elementApi.getStyle, + setStyle = elementApi.setStyle; + var value = getStyle(element, WILL_CHANGE); + + if (!value || value.indexOf(validProp) === -1) { + return; + } + + setStyle(element, WILL_CHANGE, value.split(COMMA_DELIMITER).map(trim).filter(function (v) { + return v !== validProp; + }).join(COMMA_DELIMITER)); +} // $FlowFixMe + + +function clearAllStyles(_ref14) { + var store = _ref14.store, + elementApi = _ref14.elementApi; + + var _store$getState = store.getState(), + ixData = _store$getState.ixData; + + var _ixData$events = ixData.events, + events = _ixData$events === void 0 ? {} : _ixData$events, + _ixData$actionLists = ixData.actionLists, + actionLists = _ixData$actionLists === void 0 ? {} : _ixData$actionLists; + Object.keys(events).forEach(function (eventId) { + var event = events[eventId]; + var config = event.action.config; + var actionListId = config.actionListId; + var actionList = actionLists[actionListId]; + + if (actionList) { + clearActionListStyles({ + actionList: actionList, + event: event, + elementApi: elementApi + }); + } + }); + Object.keys(actionLists).forEach(function (actionListId) { + clearActionListStyles({ + actionList: actionLists[actionListId], + elementApi: elementApi + }); + }); +} // $FlowFixMe + + +function clearActionListStyles(_ref15) { + var _ref15$actionList = _ref15.actionList, + actionList = _ref15$actionList === void 0 ? {} : _ref15$actionList, + event = _ref15.event, + elementApi = _ref15.elementApi; + var actionItemGroups = actionList.actionItemGroups, + continuousParameterGroups = actionList.continuousParameterGroups; + actionItemGroups && actionItemGroups.forEach(function (actionGroup) { + clearActionGroupStyles({ + actionGroup: actionGroup, + event: event, + elementApi: elementApi + }); + }); + continuousParameterGroups && continuousParameterGroups.forEach(function (paramGroup) { + var continuousActionGroups = paramGroup.continuousActionGroups; + continuousActionGroups.forEach(function (actionGroup) { + clearActionGroupStyles({ + actionGroup: actionGroup, + event: event, + elementApi: elementApi + }); + }); + }); +} + +function clearActionGroupStyles(_ref16) { + var actionGroup = _ref16.actionGroup, + event = _ref16.event, + elementApi = _ref16.elementApi; + var actionItems = actionGroup.actionItems; + actionItems.forEach(function (_ref17) { + var actionTypeId = _ref17.actionTypeId, + config = _ref17.config; + var clearElement; + + if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { + clearElement = (0, _IX2VanillaPlugins.clearPlugin)(actionTypeId); + } else { + clearElement = processElementByType({ + effect: clearStyleProp, + actionTypeId: actionTypeId, + elementApi: elementApi + }); + } + + getAffectedElements({ + config: config, + event: event, + elementApi: elementApi + }).forEach(clearElement); + }); +} // $FlowFixMe + + +function cleanupHTMLElement(element, actionItem, elementApi) { + var setStyle = elementApi.setStyle, + getStyle = elementApi.getStyle; + var actionTypeId = actionItem.actionTypeId; + + if (actionTypeId === STYLE_SIZE) { + var config = actionItem.config; + + if (config.widthUnit === AUTO) { + setStyle(element, WIDTH, ''); + } + + if (config.heightUnit === AUTO) { + setStyle(element, HEIGHT, ''); + } + } + + if (getStyle(element, WILL_CHANGE)) { + processElementByType({ + effect: removeWillChange, + actionTypeId: actionTypeId, + elementApi: elementApi + })(element); + } +} + +var processElementByType = function processElementByType(_ref18) { + var effect = _ref18.effect, + actionTypeId = _ref18.actionTypeId, + elementApi = _ref18.elementApi; + return function (element) { + switch (actionTypeId) { + case TRANSFORM_MOVE: + case TRANSFORM_SCALE: + case TRANSFORM_ROTATE: + case TRANSFORM_SKEW: + effect(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, elementApi); + break; + + case STYLE_FILTER: + effect(element, FILTER, elementApi); + break; + + case STYLE_FONT_VARIATION: + effect(element, FONT_VARIATION_SETTINGS, elementApi); + break; + + case STYLE_OPACITY: + effect(element, OPACITY, elementApi); + break; + + case STYLE_SIZE: + effect(element, WIDTH, elementApi); + effect(element, HEIGHT, elementApi); + break; + + case STYLE_BACKGROUND_COLOR: + case STYLE_BORDER: + case STYLE_TEXT_COLOR: + effect(element, colorStyleProps[actionTypeId], elementApi); + break; + + case GENERAL_DISPLAY: + effect(element, DISPLAY, elementApi); + break; + } + }; +}; + +function clearStyleProp(element, prop, elementApi) { + var setStyle = elementApi.setStyle; + removeWillChange(element, prop, elementApi); + setStyle(element, prop, ''); // Clear transform-style: preserve-3d + + if (prop === _IX2BrowserSupport.TRANSFORM_PREFIXED) { + setStyle(element, _IX2BrowserSupport.TRANSFORM_STYLE_PREFIXED, ''); + } +} // $FlowFixMe + + +function getMaxDurationItemIndex(actionItems) { + var maxDuration = 0; + var resultIndex = 0; + actionItems.forEach(function (actionItem, index) { + var config = actionItem.config; + var total = config.delay + config.duration; + + if (total >= maxDuration) { + maxDuration = total; + resultIndex = index; + } + }); + return resultIndex; +} // $FlowFixMe + + +function getActionListProgress(actionList, instance) { + var actionItemGroups = actionList.actionItemGroups, + useFirstGroupAsInitialState = actionList.useFirstGroupAsInitialState; + var instanceItem = instance.actionItem, + _instance$verboseTime = instance.verboseTimeElapsed, + verboseTimeElapsed = _instance$verboseTime === void 0 ? 0 : _instance$verboseTime; + var totalDuration = 0; + var elapsedDuration = 0; + actionItemGroups.forEach(function (group, index) { + if (useFirstGroupAsInitialState && index === 0) { + return; + } + + var actionItems = group.actionItems; + var carrierItem = actionItems[getMaxDurationItemIndex(actionItems)]; + var config = carrierItem.config, + actionTypeId = carrierItem.actionTypeId; + + if (instanceItem.id === carrierItem.id) { + elapsedDuration = totalDuration + verboseTimeElapsed; + } + + var duration = getRenderType(actionTypeId) === RENDER_GENERAL ? 0 : config.duration; + totalDuration += config.delay + duration; + }); + return totalDuration > 0 ? (0, _IX2EasingUtils.optimizeFloat)(elapsedDuration / totalDuration) : 0; +} // $FlowFixMe + + +function reduceListToGroup(_ref19) { + var actionList = _ref19.actionList, + actionItemId = _ref19.actionItemId, + rawData = _ref19.rawData; + var actionItemGroups = actionList.actionItemGroups, + continuousParameterGroups = actionList.continuousParameterGroups; + var newActionItems = []; + + var takeItemUntilMatch = function takeItemUntilMatch(actionItem) { + newActionItems.push((0, _timm.mergeIn)(actionItem, ['config'], { + delay: 0, + duration: 0 + })); + return actionItem.id === actionItemId; + }; + + actionItemGroups && actionItemGroups.some(function (_ref20) { + var actionItems = _ref20.actionItems; + return actionItems.some(takeItemUntilMatch); + }); + continuousParameterGroups && continuousParameterGroups.some(function (paramGroup) { + var continuousActionGroups = paramGroup.continuousActionGroups; + return continuousActionGroups.some(function (_ref21) { + var actionItems = _ref21.actionItems; + return actionItems.some(takeItemUntilMatch); + }); + }); + return (0, _timm.setIn)(rawData, ['actionLists'], (0, _defineProperty2["default"])({}, actionList.id, { + id: actionList.id, + actionItemGroups: [{ + actionItems: newActionItems + }] + })); +} // $FlowFixMe + + +function shouldNamespaceEventParameter(eventTypeId, _ref23) { + var basedOn = _ref23.basedOn; + return eventTypeId === _constants.EventTypeConsts.SCROLLING_IN_VIEW && (basedOn === _constants.EventBasedOn.ELEMENT || basedOn == null) || eventTypeId === _constants.EventTypeConsts.MOUSE_MOVE && basedOn === _constants.EventBasedOn.ELEMENT; +} + +function getNamespacedParameterId(eventStateKey, continuousParameterGroupId) { + var namespacedParameterId = eventStateKey + COLON_DELIMITER + continuousParameterGroupId; + return namespacedParameterId; +} // $FlowFixMe + + +function shouldAllowMediaQuery(mediaQueries, mediaQueryKey) { + // During design mode, current media query key does not exist + if (mediaQueryKey == null) { + return true; + } + + return mediaQueries.indexOf(mediaQueryKey) !== -1; +} // $FlowFixMe + + +function mediaQueriesEqual(listA, listB) { + return (0, _shallowEqual["default"])(listA && listA.sort(), listB && listB.sort()); +} // $FlowFixMe + + +function stringifyTarget(target) { + if (typeof target === 'string') { + return target; + } + + var _target$id = target.id, + id = _target$id === void 0 ? '' : _target$id, + _target$selector = target.selector, + selector = _target$selector === void 0 ? '' : _target$selector, + _target$useEventTarge = target.useEventTarget, + useEventTarget = _target$useEventTarge === void 0 ? '' : _target$useEventTarge; + return id + BAR_DELIMITER + selector + BAR_DELIMITER + useEventTarget; +} + +/***/ }), +/* 269 */ +/***/ (function(module, exports) { + +/** + * Checks `value` to determine whether a default value should be returned in + * its place. The `defaultValue` is returned if `value` is `NaN`, `null`, + * or `undefined`. + * + * @static + * @memberOf _ + * @since 4.14.0 + * @category Util + * @param {*} value The value to check. + * @param {*} defaultValue The default value. + * @returns {*} Returns the resolved value. + * @example + * + * _.defaultTo(1, 10); + * // => 1 + * + * _.defaultTo(undefined, 10); + * // => 10 + */ +function defaultTo(value, defaultValue) { + return (value == null || value !== value) ? defaultValue : value; +} + +module.exports = defaultTo; + + +/***/ }), +/* 270 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayReduce = __webpack_require__(271), + baseEach = __webpack_require__(121), + baseIteratee = __webpack_require__(10), + baseReduce = __webpack_require__(275), + isArray = __webpack_require__(2); + +/** + * Reduces `collection` to a value which is the accumulated result of running + * each element in `collection` thru `iteratee`, where each successive + * invocation is supplied the return value of the previous. If `accumulator` + * is not given, the first element of `collection` is used as the initial + * value. The iteratee is invoked with four arguments: + * (accumulator, value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.reduce`, `_.reduceRight`, and `_.transform`. + * + * The guarded methods are: + * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, + * and `sortBy` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @returns {*} Returns the accumulated value. + * @see _.reduceRight + * @example + * + * _.reduce([1, 2], function(sum, n) { + * return sum + n; + * }, 0); + * // => 3 + * + * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { + * (result[value] || (result[value] = [])).push(key); + * return result; + * }, {}); + * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) + */ +function reduce(collection, iteratee, accumulator) { + var func = isArray(collection) ? arrayReduce : baseReduce, + initAccum = arguments.length < 3; + + return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach); +} + +module.exports = reduce; + + +/***/ }), +/* 271 */ +/***/ (function(module, exports) { + +/** + * A specialized version of `_.reduce` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @param {boolean} [initAccum] Specify using the first element of `array` as + * the initial value. + * @returns {*} Returns the accumulated value. + */ +function arrayReduce(array, iteratee, accumulator, initAccum) { + var index = -1, + length = array == null ? 0 : array.length; + + if (initAccum && length) { + accumulator = array[++index]; + } + while (++index < length) { + accumulator = iteratee(accumulator, array[index], index, array); + } + return accumulator; +} + +module.exports = arrayReduce; + + +/***/ }), +/* 272 */ +/***/ (function(module, exports, __webpack_require__) { + +var createBaseFor = __webpack_require__(273); + +/** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ +var baseFor = createBaseFor(); + +module.exports = baseFor; + + +/***/ }), +/* 273 */ +/***/ (function(module, exports) { + +/** + * Creates a base function for methods like `_.forIn` and `_.forOwn`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var index = -1, + iterable = Object(object), + props = keysFunc(object), + length = props.length; + + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; +} + +module.exports = createBaseFor; + + +/***/ }), +/* 274 */ +/***/ (function(module, exports, __webpack_require__) { + +var isArrayLike = __webpack_require__(16); + +/** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee) { + if (collection == null) { + return collection; + } + if (!isArrayLike(collection)) { + return eachFunc(collection, iteratee); + } + var length = collection.length, + index = fromRight ? length : -1, + iterable = Object(collection); + + while ((fromRight ? index-- : ++index < length)) { + if (iteratee(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; +} + +module.exports = createBaseEach; + + +/***/ }), +/* 275 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.reduce` and `_.reduceRight`, without support + * for iteratee shorthands, which iterates over `collection` using `eachFunc`. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} accumulator The initial value. + * @param {boolean} initAccum Specify using the first or last element of + * `collection` as the initial value. + * @param {Function} eachFunc The function to iterate over `collection`. + * @returns {*} Returns the accumulated value. + */ +function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { + eachFunc(collection, function(value, index, collection) { + accumulator = initAccum + ? (initAccum = false, value) + : iteratee(accumulator, value, index, collection); + }); + return accumulator; +} + +module.exports = baseReduce; + + +/***/ }), +/* 276 */ +/***/ (function(module, exports, __webpack_require__) { + +var createFind = __webpack_require__(96), + findLastIndex = __webpack_require__(277); + +/** + * This method is like `_.find` except that it iterates over elements of + * `collection` from right to left. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Collection + * @param {Array|Object} collection The collection to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=collection.length-1] The index to search from. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * _.findLast([1, 2, 3, 4], function(n) { + * return n % 2 == 1; + * }); + * // => 3 + */ +var findLast = createFind(findLastIndex); + +module.exports = findLast; + + +/***/ }), +/* 277 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseFindIndex = __webpack_require__(114), + baseIteratee = __webpack_require__(10), + toInteger = __webpack_require__(115); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max, + nativeMin = Math.min; + +/** + * This method is like `_.findIndex` except that it iterates over elements + * of `collection` from right to left. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=array.length-1] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': false } + * ]; + * + * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); + * // => 2 + * + * // The `_.matches` iteratee shorthand. + * _.findLastIndex(users, { 'user': 'barney', 'active': true }); + * // => 0 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findLastIndex(users, ['active', false]); + * // => 2 + * + * // The `_.property` iteratee shorthand. + * _.findLastIndex(users, 'active'); + * // => 0 + */ +function findLastIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = length - 1; + if (fromIndex !== undefined) { + index = toInteger(fromIndex); + index = fromIndex < 0 + ? nativeMax(length + index, 0) + : nativeMin(index, length - 1); + } + return baseFindIndex(array, baseIteratee(predicate, 3), index, true); +} + +module.exports = findLastIndex; + + +/***/ }), +/* 278 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(1); + +var _typeof2 = _interopRequireDefault(__webpack_require__(17)); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; // from https://github.com/acdlite/recompose/blob/master/src/packages/recompose/shallowEqual.js + +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @providesModule shallowEqual + * @typechecks + */ + +/* eslint-disable no-self-compare */ + +var hasOwnProperty = Object.prototype.hasOwnProperty; +/** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + +function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + // Added the nonzero y check to make Flow happy, but it is redundant + return x !== 0 || y !== 0 || 1 / x === 1 / y; + } // Step 6.a: NaN == NaN + + + return x !== x && y !== y; +} +/** + * Performs equality by iterating through keys on an object and returning false + * when any key has values which are not strictly equal between the arguments. + * Returns true when the values of all keys are strictly equal. + */ + + +function shallowEqual(objA, objB) { + if (is(objA, objB)) { + return true; + } + + if ((0, _typeof2["default"])(objA) !== 'object' || objA === null || (0, _typeof2["default"])(objB) !== 'object' || objB === null) { + return false; + } + + var keysA = Object.keys(objA); + var keysB = Object.keys(objB); + + if (keysA.length !== keysB.length) { + return false; + } // Test for A's keys different from B. + + + for (var i = 0; i < keysA.length; i++) { + if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { + return false; + } + } + + return true; +} + +var _default = shallowEqual; +exports["default"] = _default; + +/***/ }), +/* 279 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ixInstances = void 0; + +var _constants = __webpack_require__(3); + +var _shared = __webpack_require__(14); + +var _timm = __webpack_require__(22); +/* eslint-env browser */ + + +var _constants$IX2EngineA = _constants.IX2EngineActionTypes, + IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, + IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, + IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, + IX2_INSTANCE_STARTED = _constants$IX2EngineA.IX2_INSTANCE_STARTED, + IX2_INSTANCE_REMOVED = _constants$IX2EngineA.IX2_INSTANCE_REMOVED, + IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED; +var _shared$IX2EasingUtil = _shared.IX2EasingUtils, + optimizeFloat = _shared$IX2EasingUtil.optimizeFloat, + applyEasing = _shared$IX2EasingUtil.applyEasing, + createBezierEasing = _shared$IX2EasingUtil.createBezierEasing; +var RENDER_GENERAL = _constants.IX2EngineConstants.RENDER_GENERAL; +var _shared$IX2VanillaUti = _shared.IX2VanillaUtils, + getItemConfigByKey = _shared$IX2VanillaUti.getItemConfigByKey, + getRenderType = _shared$IX2VanillaUti.getRenderType, + getStyleProp = _shared$IX2VanillaUti.getStyleProp; + +var continuousInstance = function continuousInstance(state, action) { + var lastPosition = state.position, + parameterId = state.parameterId, + actionGroups = state.actionGroups, + destinationKeys = state.destinationKeys, + smoothing = state.smoothing, + restingValue = state.restingValue, + actionTypeId = state.actionTypeId, + customEasingFn = state.customEasingFn, + skipMotion = state.skipMotion, + skipToValue = state.skipToValue; + var parameters = action.payload.parameters; + var velocity = Math.max(1 - smoothing, 0.01); + var paramValue = parameters[parameterId]; + + if (paramValue == null) { + velocity = 1; + paramValue = restingValue; + } + + var nextPosition = Math.max(paramValue, 0) || 0; + var positionDiff = optimizeFloat(nextPosition - lastPosition); + var position = skipMotion ? skipToValue : optimizeFloat(lastPosition + positionDiff * velocity); + var keyframePosition = position * 100; + + if (position === lastPosition && state.current) { + return state; + } + + var fromActionItem; + var toActionItem; + var positionOffset; + var positionRange; + + for (var i = 0, length = actionGroups.length; i < length; i++) { + var _actionGroups$i = actionGroups[i], + keyframe = _actionGroups$i.keyframe, + actionItems = _actionGroups$i.actionItems; + + if (i === 0) { + fromActionItem = actionItems[0]; + } + + if (keyframePosition >= keyframe) { + fromActionItem = actionItems[0]; + var nextGroup = actionGroups[i + 1]; + var hasNextItem = nextGroup && keyframePosition !== keyframe; + toActionItem = hasNextItem ? nextGroup.actionItems[0] : null; + + if (hasNextItem) { + positionOffset = keyframe / 100; + positionRange = (nextGroup.keyframe - keyframe) / 100; + } + } + } + + var current = {}; + + if (fromActionItem && !toActionItem) { + for (var _i = 0, _length = destinationKeys.length; _i < _length; _i++) { + var key = destinationKeys[_i]; + current[key] = getItemConfigByKey(actionTypeId, key, fromActionItem.config); + } + } else if (fromActionItem && toActionItem && positionOffset !== undefined && positionRange !== undefined) { + var localPosition = (position - positionOffset) / positionRange; + var easing = fromActionItem.config.easing; + var eased = applyEasing(easing, localPosition, customEasingFn); + + for (var _i2 = 0, _length2 = destinationKeys.length; _i2 < _length2; _i2++) { + var _key = destinationKeys[_i2]; + var fromVal = getItemConfigByKey(actionTypeId, _key, fromActionItem.config); + var toVal = getItemConfigByKey(actionTypeId, _key, toActionItem.config); // $FlowFixMe — toVal and fromVal could potentially be null, need to update type higher to determine number + + var diff = toVal - fromVal; // $FlowFixMe + + var value = diff * eased + fromVal; + current[_key] = value; + } + } + + return (0, _timm.merge)(state, { + position: position, + current: current + }); +}; + +var timedInstance = function timedInstance(state, action) { + var _state = state, + active = _state.active, + origin = _state.origin, + start = _state.start, + immediate = _state.immediate, + renderType = _state.renderType, + verbose = _state.verbose, + actionItem = _state.actionItem, + destination = _state.destination, + destinationKeys = _state.destinationKeys, + pluginDuration = _state.pluginDuration, + instanceDelay = _state.instanceDelay, + customEasingFn = _state.customEasingFn, + skipMotion = _state.skipMotion; + var easing = actionItem.config.easing; + var _actionItem$config = actionItem.config, + duration = _actionItem$config.duration, + delay = _actionItem$config.delay; + + if (pluginDuration != null) { + duration = pluginDuration; + } + + delay = instanceDelay != null ? instanceDelay : delay; + + if (renderType === RENDER_GENERAL) { + duration = 0; + } else if (immediate || skipMotion) { + duration = delay = 0; + } + + var now = action.payload.now; + + if (active && origin) { + var delta = now - (start + delay); + + if (verbose) { + var verboseDelta = now - start; + var verboseDuration = duration + delay; + var verbosePosition = optimizeFloat(Math.min(Math.max(0, verboseDelta / verboseDuration), 1)); + state = (0, _timm.set)(state, 'verboseTimeElapsed', verboseDuration * verbosePosition); + } + + if (delta < 0) { + return state; + } + + var position = optimizeFloat(Math.min(Math.max(0, delta / duration), 1)); + var eased = applyEasing(easing, position, customEasingFn); + var newProps = {}; + var current = null; + + if (destinationKeys.length) { + current = destinationKeys.reduce(function (result, key) { + var destValue = destination[key]; + var originVal = parseFloat(origin[key]) || 0; + var diff = parseFloat(destValue) - originVal; + var value = diff * eased + originVal; + result[key] = value; + return result; + }, {}); + } + + newProps.current = current; + newProps.position = position; + + if (position === 1) { + newProps.active = false; + newProps.complete = true; + } + + return (0, _timm.merge)(state, newProps); + } + + return state; +}; + +var ixInstances = function ixInstances() { + var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object.freeze({}); + var action = arguments.length > 1 ? arguments[1] : undefined; + + switch (action.type) { + case IX2_RAW_DATA_IMPORTED: + { + return action.payload.ixInstances || Object.freeze({}); + } + + case IX2_SESSION_STOPPED: + { + return Object.freeze({}); + } + + case IX2_INSTANCE_ADDED: + { + var _action$payload = action.payload, + instanceId = _action$payload.instanceId, + elementId = _action$payload.elementId, + actionItem = _action$payload.actionItem, + eventId = _action$payload.eventId, + eventTarget = _action$payload.eventTarget, + eventStateKey = _action$payload.eventStateKey, + actionListId = _action$payload.actionListId, + groupIndex = _action$payload.groupIndex, + isCarrier = _action$payload.isCarrier, + origin = _action$payload.origin, + destination = _action$payload.destination, + immediate = _action$payload.immediate, + verbose = _action$payload.verbose, + continuous = _action$payload.continuous, + parameterId = _action$payload.parameterId, + actionGroups = _action$payload.actionGroups, + smoothing = _action$payload.smoothing, + restingValue = _action$payload.restingValue, + pluginInstance = _action$payload.pluginInstance, + pluginDuration = _action$payload.pluginDuration, + instanceDelay = _action$payload.instanceDelay, + skipMotion = _action$payload.skipMotion, + skipToValue = _action$payload.skipToValue; + var actionTypeId = actionItem.actionTypeId; + var renderType = getRenderType(actionTypeId); + var styleProp = getStyleProp(renderType, actionTypeId); + var destinationKeys = Object.keys(destination).filter(function (key) { + return destination[key] != null; + }); + var easing = actionItem.config.easing; + return (0, _timm.set)(state, instanceId, { + id: instanceId, + elementId: elementId, + active: false, + position: 0, + start: 0, + origin: origin, + destination: destination, + destinationKeys: destinationKeys, + immediate: immediate, + verbose: verbose, + current: null, + actionItem: actionItem, + actionTypeId: actionTypeId, + eventId: eventId, + eventTarget: eventTarget, + eventStateKey: eventStateKey, + actionListId: actionListId, + groupIndex: groupIndex, + renderType: renderType, + isCarrier: isCarrier, + styleProp: styleProp, + continuous: continuous, + parameterId: parameterId, + actionGroups: actionGroups, + smoothing: smoothing, + restingValue: restingValue, + pluginInstance: pluginInstance, + pluginDuration: pluginDuration, + instanceDelay: instanceDelay, + skipMotion: skipMotion, + skipToValue: skipToValue, + customEasingFn: Array.isArray(easing) && easing.length === 4 ? createBezierEasing(easing) : undefined + }); + } + + case IX2_INSTANCE_STARTED: + { + var _action$payload2 = action.payload, + _instanceId = _action$payload2.instanceId, + time = _action$payload2.time; + return (0, _timm.mergeIn)(state, [_instanceId], { + active: true, + complete: false, + start: time + }); + } + + case IX2_INSTANCE_REMOVED: + { + var _instanceId2 = action.payload.instanceId; + + if (!state[_instanceId2]) { + return state; + } + + var newState = {}; + var keys = Object.keys(state); + var length = keys.length; + + for (var i = 0; i < length; i++) { + var key = keys[i]; + + if (key !== _instanceId2) { + newState[key] = state[key]; + } + } + + return newState; + } + + case IX2_ANIMATION_FRAME_CHANGED: + { + var _newState = state; + + var _keys = Object.keys(state); + + var _length3 = _keys.length; + + for (var _i3 = 0; _i3 < _length3; _i3++) { + var _key2 = _keys[_i3]; + var instance = state[_key2]; + var reducer = instance.continuous ? continuousInstance : timedInstance; + _newState = (0, _timm.set)(_newState, _key2, reducer(instance, action)); + } + + return _newState; + } + + default: + { + return state; + } + } +}; + +exports.ixInstances = ixInstances; + +/***/ }), +/* 280 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ixParameters = void 0; + +var _constants = __webpack_require__(3); + +var _constants$IX2EngineA = _constants.IX2EngineActionTypes, + IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, + IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, + IX2_PARAMETER_CHANGED = _constants$IX2EngineA.IX2_PARAMETER_CHANGED; // prettier-ignore + +var ixParameters = function ixParameters() { + var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { + /*mutable flat state*/ + }; + var action = arguments.length > 1 ? arguments[1] : undefined; + + switch (action.type) { + case IX2_RAW_DATA_IMPORTED: + { + return action.payload.ixParameters || { + /*mutable flat state*/ + }; + } + + case IX2_SESSION_STOPPED: + { + return { + /*mutable flat state*/ + }; + } + + case IX2_PARAMETER_CHANGED: + { + var _action$payload = action.payload, + key = _action$payload.key, + value = _action$payload.value; + state[key] = value; + return state; + } + + default: + { + return state; + } + } +}; + +exports.ixParameters = ixParameters; + +/***/ }), +/* 281 */ +/***/ (function(module, exports) { + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +module.exports = _objectWithoutPropertiesLoose; + +/***/ }), +/* 282 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseKeys = __webpack_require__(56), + getTag = __webpack_require__(58), + isArrayLike = __webpack_require__(16), + isString = __webpack_require__(283), + stringSize = __webpack_require__(284); + +/** `Object#toString` result references. */ +var mapTag = '[object Map]', + setTag = '[object Set]'; + +/** + * Gets the size of `collection` by returning its length for array-like + * values or the number of own enumerable string keyed properties for objects. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object|string} collection The collection to inspect. + * @returns {number} Returns the collection size. + * @example + * + * _.size([1, 2, 3]); + * // => 3 + * + * _.size({ 'a': 1, 'b': 2 }); + * // => 2 + * + * _.size('pebbles'); + * // => 7 + */ +function size(collection) { + if (collection == null) { + return 0; + } + if (isArrayLike(collection)) { + return isString(collection) ? stringSize(collection) : collection.length; + } + var tag = getTag(collection); + if (tag == mapTag || tag == setTag) { + return collection.size; + } + return baseKeys(collection).length; +} + +module.exports = size; + + +/***/ }), +/* 283 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(15), + isArray = __webpack_require__(2), + isObjectLike = __webpack_require__(12); + +/** `Object#toString` result references. */ +var stringTag = '[object String]'; + +/** + * Checks if `value` is classified as a `String` primitive or object. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a string, else `false`. + * @example + * + * _.isString('abc'); + * // => true + * + * _.isString(1); + * // => false + */ +function isString(value) { + return typeof value == 'string' || + (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); +} + +module.exports = isString; + + +/***/ }), +/* 284 */ +/***/ (function(module, exports, __webpack_require__) { + +var asciiSize = __webpack_require__(285), + hasUnicode = __webpack_require__(286), + unicodeSize = __webpack_require__(287); + +/** + * Gets the number of symbols in `string`. + * + * @private + * @param {string} string The string to inspect. + * @returns {number} Returns the string size. + */ +function stringSize(string) { + return hasUnicode(string) + ? unicodeSize(string) + : asciiSize(string); +} + +module.exports = stringSize; + + +/***/ }), +/* 285 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseProperty = __webpack_require__(113); + +/** + * Gets the size of an ASCII `string`. + * + * @private + * @param {string} string The string inspect. + * @returns {number} Returns the string size. + */ +var asciiSize = baseProperty('length'); + +module.exports = asciiSize; + + +/***/ }), +/* 286 */ +/***/ (function(module, exports) { + +/** Used to compose unicode character classes. */ +var rsAstralRange = '\\ud800-\\udfff', + rsComboMarksRange = '\\u0300-\\u036f', + reComboHalfMarksRange = '\\ufe20-\\ufe2f', + rsComboSymbolsRange = '\\u20d0-\\u20ff', + rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, + rsVarRange = '\\ufe0e\\ufe0f'; + +/** Used to compose unicode capture groups. */ +var rsZWJ = '\\u200d'; + +/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ +var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); + +/** + * Checks if `string` contains Unicode symbols. + * + * @private + * @param {string} string The string to inspect. + * @returns {boolean} Returns `true` if a symbol is found, else `false`. + */ +function hasUnicode(string) { + return reHasUnicode.test(string); +} + +module.exports = hasUnicode; + + +/***/ }), +/* 287 */ +/***/ (function(module, exports) { + +/** Used to compose unicode character classes. */ +var rsAstralRange = '\\ud800-\\udfff', + rsComboMarksRange = '\\u0300-\\u036f', + reComboHalfMarksRange = '\\ufe20-\\ufe2f', + rsComboSymbolsRange = '\\u20d0-\\u20ff', + rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, + rsVarRange = '\\ufe0e\\ufe0f'; + +/** Used to compose unicode capture groups. */ +var rsAstral = '[' + rsAstralRange + ']', + rsCombo = '[' + rsComboRange + ']', + rsFitz = '\\ud83c[\\udffb-\\udfff]', + rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', + rsNonAstral = '[^' + rsAstralRange + ']', + rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', + rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', + rsZWJ = '\\u200d'; + +/** Used to compose unicode regexes. */ +var reOptMod = rsModifier + '?', + rsOptVar = '[' + rsVarRange + ']?', + rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', + rsSeq = rsOptVar + reOptMod + rsOptJoin, + rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; + +/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ +var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); + +/** + * Gets the size of a Unicode `string`. + * + * @private + * @param {string} string The string inspect. + * @returns {number} Returns the string size. + */ +function unicodeSize(string) { + var result = reUnicode.lastIndex = 0; + while (reUnicode.test(string)) { + ++result; + } + return result; +} + +module.exports = unicodeSize; + + +/***/ }), +/* 288 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIteratee = __webpack_require__(10), + negate = __webpack_require__(289), + pickBy = __webpack_require__(290); + +/** + * The opposite of `_.pickBy`; this method creates an object composed of + * the own and inherited enumerable string keyed properties of `object` that + * `predicate` doesn't return truthy for. The predicate is invoked with two + * arguments: (value, key). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The source object. + * @param {Function} [predicate=_.identity] The function invoked per property. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.omitBy(object, _.isNumber); + * // => { 'b': '2' } + */ +function omitBy(object, predicate) { + return pickBy(object, negate(baseIteratee(predicate))); +} + +module.exports = omitBy; + + +/***/ }), +/* 289 */ +/***/ (function(module, exports) { + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** + * Creates a function that negates the result of the predicate `func`. The + * `func` predicate is invoked with the `this` binding and arguments of the + * created function. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} predicate The predicate to negate. + * @returns {Function} Returns the new negated function. + * @example + * + * function isEven(n) { + * return n % 2 == 0; + * } + * + * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); + * // => [1, 3, 5] + */ +function negate(predicate) { + if (typeof predicate != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + return function() { + var args = arguments; + switch (args.length) { + case 0: return !predicate.call(this); + case 1: return !predicate.call(this, args[0]); + case 2: return !predicate.call(this, args[0], args[1]); + case 3: return !predicate.call(this, args[0], args[1], args[2]); + } + return !predicate.apply(this, args); + }; +} + +module.exports = negate; + + +/***/ }), +/* 290 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayMap = __webpack_require__(112), + baseIteratee = __webpack_require__(10), + basePickBy = __webpack_require__(291), + getAllKeysIn = __webpack_require__(294); + +/** + * Creates an object composed of the `object` properties `predicate` returns + * truthy for. The predicate is invoked with two arguments: (value, key). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The source object. + * @param {Function} [predicate=_.identity] The function invoked per property. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.pickBy(object, _.isNumber); + * // => { 'a': 1, 'c': 3 } + */ +function pickBy(object, predicate) { + if (object == null) { + return {}; + } + var props = arrayMap(getAllKeysIn(object), function(prop) { + return [prop]; + }); + predicate = baseIteratee(predicate); + return basePickBy(object, props, function(value, path) { + return predicate(value, path[0]); + }); +} + +module.exports = pickBy; + + +/***/ }), +/* 291 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGet = __webpack_require__(60), + baseSet = __webpack_require__(292), + castPath = __webpack_require__(37); + +/** + * The base implementation of `_.pickBy` without support for iteratee shorthands. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @param {Function} predicate The function invoked per property. + * @returns {Object} Returns the new object. + */ +function basePickBy(object, paths, predicate) { + var index = -1, + length = paths.length, + result = {}; + + while (++index < length) { + var path = paths[index], + value = baseGet(object, path); + + if (predicate(value, path)) { + baseSet(result, castPath(path, object), value); + } + } + return result; +} + +module.exports = basePickBy; + + +/***/ }), +/* 292 */ +/***/ (function(module, exports, __webpack_require__) { + +var assignValue = __webpack_require__(293), + castPath = __webpack_require__(37), + isIndex = __webpack_require__(53), + isObject = __webpack_require__(8), + toKey = __webpack_require__(24); + +/** + * The base implementation of `_.set`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */ +function baseSet(object, path, value, customizer) { + if (!isObject(object)) { + return object; + } + path = castPath(path, object); + + var index = -1, + length = path.length, + lastIndex = length - 1, + nested = object; + + while (nested != null && ++index < length) { + var key = toKey(path[index]), + newValue = value; + + if (key === '__proto__' || key === 'constructor' || key === 'prototype') { + return object; + } + + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : undefined; + if (newValue === undefined) { + newValue = isObject(objValue) + ? objValue + : (isIndex(path[index + 1]) ? [] : {}); + } + } + assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; +} + +module.exports = baseSet; + + +/***/ }), +/* 293 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseAssignValue = __webpack_require__(124), + eq = __webpack_require__(48); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } +} + +module.exports = assignValue; + + +/***/ }), +/* 294 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetAllKeys = __webpack_require__(103), + getSymbolsIn = __webpack_require__(295), + keysIn = __webpack_require__(297); + +/** + * Creates an array of own and inherited enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ +function getAllKeysIn(object) { + return baseGetAllKeys(object, keysIn, getSymbolsIn); +} + +module.exports = getAllKeysIn; + + +/***/ }), +/* 295 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayPush = __webpack_require__(51), + getPrototype = __webpack_require__(296), + getSymbols = __webpack_require__(104), + stubArray = __webpack_require__(105); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeGetSymbols = Object.getOwnPropertySymbols; + +/** + * Creates an array of the own and inherited enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ +var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { + var result = []; + while (object) { + arrayPush(result, getSymbols(object)); + object = getPrototype(object); + } + return result; +}; + +module.exports = getSymbolsIn; + + +/***/ }), +/* 296 */ +/***/ (function(module, exports, __webpack_require__) { + +var overArg = __webpack_require__(108); + +/** Built-in value references. */ +var getPrototype = overArg(Object.getPrototypeOf, Object); + +module.exports = getPrototype; + + +/***/ }), +/* 297 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayLikeKeys = __webpack_require__(106), + baseKeysIn = __webpack_require__(298), + isArrayLike = __webpack_require__(16); + +/** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ +function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); +} + +module.exports = keysIn; + + +/***/ }), +/* 298 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(8), + isPrototype = __webpack_require__(57), + nativeKeysIn = __webpack_require__(299); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeysIn(object) { + if (!isObject(object)) { + return nativeKeysIn(object); + } + var isProto = isPrototype(object), + result = []; + + for (var key in object) { + if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + return result; +} + +module.exports = baseKeysIn; + + +/***/ }), +/* 299 */ +/***/ (function(module, exports) { + +/** + * This function is like + * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * except that it includes inherited enumerable properties. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function nativeKeysIn(object) { + var result = []; + if (object != null) { + for (var key in Object(object)) { + result.push(key); + } + } + return result; +} + +module.exports = nativeKeysIn; + + +/***/ }), +/* 300 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseKeys = __webpack_require__(56), + getTag = __webpack_require__(58), + isArguments = __webpack_require__(36), + isArray = __webpack_require__(2), + isArrayLike = __webpack_require__(16), + isBuffer = __webpack_require__(52), + isPrototype = __webpack_require__(57), + isTypedArray = __webpack_require__(54); + +/** `Object#toString` result references. */ +var mapTag = '[object Map]', + setTag = '[object Set]'; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Checks if `value` is an empty object, collection, map, or set. + * + * Objects are considered empty if they have no own enumerable string keyed + * properties. + * + * Array-like values such as `arguments` objects, arrays, buffers, strings, or + * jQuery-like collections are considered empty if they have a `length` of `0`. + * Similarly, maps and sets are considered empty if they have a `size` of `0`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is empty, else `false`. + * @example + * + * _.isEmpty(null); + * // => true + * + * _.isEmpty(true); + * // => true + * + * _.isEmpty(1); + * // => true + * + * _.isEmpty([1, 2, 3]); + * // => false + * + * _.isEmpty({ 'a': 1 }); + * // => false + */ +function isEmpty(value) { + if (value == null) { + return true; + } + if (isArrayLike(value) && + (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || + isBuffer(value) || isTypedArray(value) || isArguments(value))) { + return !value.length; + } + var tag = getTag(value); + if (tag == mapTag || tag == setTag) { + return !value.size; + } + if (isPrototype(value)) { + return !baseKeys(value).length; + } + for (var key in value) { + if (hasOwnProperty.call(value, key)) { + return false; + } + } + return true; +} + +module.exports = isEmpty; + + +/***/ }), +/* 301 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseAssignValue = __webpack_require__(124), + baseForOwn = __webpack_require__(122), + baseIteratee = __webpack_require__(10); + +/** + * Creates an object with the same keys as `object` and values generated + * by running each own enumerable string keyed property of `object` thru + * `iteratee`. The iteratee is invoked with three arguments: + * (value, key, object). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns the new mapped object. + * @see _.mapKeys + * @example + * + * var users = { + * 'fred': { 'user': 'fred', 'age': 40 }, + * 'pebbles': { 'user': 'pebbles', 'age': 1 } + * }; + * + * _.mapValues(users, function(o) { return o.age; }); + * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) + * + * // The `_.property` iteratee shorthand. + * _.mapValues(users, 'age'); + * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) + */ +function mapValues(object, iteratee) { + var result = {}; + iteratee = baseIteratee(iteratee, 3); + + baseForOwn(object, function(value, key, object) { + baseAssignValue(result, key, iteratee(value, key, object)); + }); + return result; +} + +module.exports = mapValues; + + +/***/ }), +/* 302 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayEach = __webpack_require__(303), + baseEach = __webpack_require__(121), + castFunction = __webpack_require__(304), + isArray = __webpack_require__(2); + +/** + * Iterates over elements of `collection` and invokes `iteratee` for each element. + * The iteratee is invoked with three arguments: (value, index|key, collection). + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * **Note:** As with other "Collections" methods, objects with a "length" + * property are iterated like arrays. To avoid this behavior use `_.forIn` + * or `_.forOwn` for object iteration. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @alias each + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + * @see _.forEachRight + * @example + * + * _.forEach([1, 2], function(value) { + * console.log(value); + * }); + * // => Logs `1` then `2`. + * + * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a' then 'b' (iteration order is not guaranteed). + */ +function forEach(collection, iteratee) { + var func = isArray(collection) ? arrayEach : baseEach; + return func(collection, castFunction(iteratee)); +} + +module.exports = forEach; + + +/***/ }), +/* 303 */ +/***/ (function(module, exports) { + +/** + * A specialized version of `_.forEach` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ +function arrayEach(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; + } + } + return array; +} + +module.exports = arrayEach; + + +/***/ }), +/* 304 */ +/***/ (function(module, exports, __webpack_require__) { + +var identity = __webpack_require__(62); + +/** + * Casts `value` to `identity` if it's not a function. + * + * @private + * @param {*} value The value to inspect. + * @returns {Function} Returns cast function. + */ +function castFunction(value) { + return typeof value == 'function' ? value : identity; +} + +module.exports = castFunction; + + +/***/ }), +/* 305 */ +/***/ (function(module, exports, __webpack_require__) { + +var debounce = __webpack_require__(306), + isObject = __webpack_require__(8); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** + * Creates a throttled function that only invokes `func` at most once per + * every `wait` milliseconds. The throttled function comes with a `cancel` + * method to cancel delayed `func` invocations and a `flush` method to + * immediately invoke them. Provide `options` to indicate whether `func` + * should be invoked on the leading and/or trailing edge of the `wait` + * timeout. The `func` is invoked with the last arguments provided to the + * throttled function. Subsequent calls to the throttled function return the + * result of the last `func` invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the throttled function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.throttle` and `_.debounce`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to throttle. + * @param {number} [wait=0] The number of milliseconds to throttle invocations to. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=true] + * Specify invoking on the leading edge of the timeout. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new throttled function. + * @example + * + * // Avoid excessively updating the position while scrolling. + * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); + * + * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. + * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); + * jQuery(element).on('click', throttled); + * + * // Cancel the trailing throttled invocation. + * jQuery(window).on('popstate', throttled.cancel); + */ +function throttle(func, wait, options) { + var leading = true, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + if (isObject(options)) { + leading = 'leading' in options ? !!options.leading : leading; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + return debounce(func, wait, { + 'leading': leading, + 'maxWait': wait, + 'trailing': trailing + }); +} + +module.exports = throttle; + + +/***/ }), +/* 306 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(8), + now = __webpack_require__(307), + toNumber = __webpack_require__(63); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max, + nativeMin = Math.min; + +/** + * Creates a debounced function that delays invoking `func` until after `wait` + * milliseconds have elapsed since the last time the debounced function was + * invoked. The debounced function comes with a `cancel` method to cancel + * delayed `func` invocations and a `flush` method to immediately invoke them. + * Provide `options` to indicate whether `func` should be invoked on the + * leading and/or trailing edge of the `wait` timeout. The `func` is invoked + * with the last arguments provided to the debounced function. Subsequent + * calls to the debounced function return the result of the last `func` + * invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the debounced function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.debounce` and `_.throttle`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to debounce. + * @param {number} [wait=0] The number of milliseconds to delay. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=false] + * Specify invoking on the leading edge of the timeout. + * @param {number} [options.maxWait] + * The maximum time `func` is allowed to be delayed before it's invoked. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new debounced function. + * @example + * + * // Avoid costly calculations while the window size is in flux. + * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); + * + * // Invoke `sendMail` when clicked, debouncing subsequent calls. + * jQuery(element).on('click', _.debounce(sendMail, 300, { + * 'leading': true, + * 'trailing': false + * })); + * + * // Ensure `batchLog` is invoked once after 1 second of debounced calls. + * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); + * var source = new EventSource('/stream'); + * jQuery(source).on('message', debounced); + * + * // Cancel the trailing debounced invocation. + * jQuery(window).on('popstate', debounced.cancel); + */ +function debounce(func, wait, options) { + var lastArgs, + lastThis, + maxWait, + result, + timerId, + lastCallTime, + lastInvokeTime = 0, + leading = false, + maxing = false, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + wait = toNumber(wait) || 0; + if (isObject(options)) { + leading = !!options.leading; + maxing = 'maxWait' in options; + maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + + function invokeFunc(time) { + var args = lastArgs, + thisArg = lastThis; + + lastArgs = lastThis = undefined; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + + function leadingEdge(time) { + // Reset any `maxWait` timer. + lastInvokeTime = time; + // Start the timer for the trailing edge. + timerId = setTimeout(timerExpired, wait); + // Invoke the leading edge. + return leading ? invokeFunc(time) : result; + } + + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime, + timeWaiting = wait - timeSinceLastCall; + + return maxing + ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) + : timeWaiting; + } + + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime; + + // Either this is the first call, activity has stopped and we're at the + // trailing edge, the system time has gone backwards and we're treating + // it as the trailing edge, or we've hit the `maxWait` limit. + return (lastCallTime === undefined || (timeSinceLastCall >= wait) || + (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); + } + + function timerExpired() { + var time = now(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + // Restart the timer. + timerId = setTimeout(timerExpired, remainingWait(time)); + } + + function trailingEdge(time) { + timerId = undefined; + + // Only invoke if we have `lastArgs` which means `func` has been + // debounced at least once. + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = undefined; + return result; + } + + function cancel() { + if (timerId !== undefined) { + clearTimeout(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = undefined; + } + + function flush() { + return timerId === undefined ? result : trailingEdge(now()); + } + + function debounced() { + var time = now(), + isInvoking = shouldInvoke(time); + + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + + if (isInvoking) { + if (timerId === undefined) { + return leadingEdge(lastCallTime); + } + if (maxing) { + // Handle invocations in a tight loop. + clearTimeout(timerId); + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === undefined) { + timerId = setTimeout(timerExpired, wait); + } + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; +} + +module.exports = debounce; + + +/***/ }), +/* 307 */ +/***/ (function(module, exports, __webpack_require__) { + +var root = __webpack_require__(6); + +/** + * Gets the timestamp of the number of milliseconds that have elapsed since + * the Unix epoch (1 January 1970 00:00:00 UTC). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Date + * @returns {number} Returns the timestamp. + * @example + * + * _.defer(function(stamp) { + * console.log(_.now() - stamp); + * }, _.now()); + * // => Logs the number of milliseconds it took for the deferred invocation. + */ +var now = function() { + return root.Date.now(); +}; + +module.exports = now; + + +/***/ }), +/* 308 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(1); + +var _typeof2 = _interopRequireDefault(__webpack_require__(17)); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.setStyle = setStyle; +exports.getStyle = getStyle; +exports.getProperty = getProperty; +exports.matchSelector = matchSelector; +exports.getQuerySelector = getQuerySelector; +exports.getValidDocument = getValidDocument; +exports.queryDocument = queryDocument; +exports.elementContains = elementContains; +exports.isSiblingNode = isSiblingNode; +exports.getChildElements = getChildElements; +exports.getSiblingElements = getSiblingElements; +exports.getRefType = getRefType; +exports.getClosestElement = void 0; + +var _shared = __webpack_require__(14); + +var _constants = __webpack_require__(3); +/* eslint-env browser */ + + +var ELEMENT_MATCHES = _shared.IX2BrowserSupport.ELEMENT_MATCHES; +var _constants$IX2EngineC = _constants.IX2EngineConstants, + IX2_ID_DELIMITER = _constants$IX2EngineC.IX2_ID_DELIMITER, + HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, + PLAIN_OBJECT = _constants$IX2EngineC.PLAIN_OBJECT, + WF_PAGE = _constants$IX2EngineC.WF_PAGE; + +function setStyle(element, prop, value) { + // $FlowIgnore — flow complains that prop should be a number. Will need to update upstream + element.style[prop] = value; +} + +function getStyle(element, prop) { + // $FlowIgnore — flow complains that prop should be a number. Will need to update upstream + return element.style[prop]; +} + +function getProperty(element, prop) { + // $FlowIgnore — flow complains that prop should be a number. Will need to update upstream + return element[prop]; +} + +function matchSelector(selector) { + // $FlowIgnore — ELEMENT_MATCHES is the name of the method on the element's prototype depending on browser + return function (element) { + return element[ELEMENT_MATCHES](selector); + }; +} + +function getQuerySelector(_ref) { + var id = _ref.id, + selector = _ref.selector; + + if (id) { + var nodeId = id; + + if (id.indexOf(IX2_ID_DELIMITER) !== -1) { + var pair = id.split(IX2_ID_DELIMITER); + var pageId = pair[0]; + nodeId = pair[1]; // Short circuit query if we're on the wrong page + // $FlowIgnore — if documentElement is null crash + + if (pageId !== document.documentElement.getAttribute(WF_PAGE)) { + return null; + } + } + + return "[data-w-id=\"".concat(nodeId, "\"], [data-w-id^=\"").concat(nodeId, "_instance\"]"); + } + + return selector; +} + +function getValidDocument(pageId) { + if (pageId == null || // $FlowIgnore — if documentElement is null crash + pageId === document.documentElement.getAttribute(WF_PAGE)) { + return document; + } + + return null; +} + +function queryDocument(baseSelector, descendantSelector) { + return Array.prototype.slice.call(document.querySelectorAll(descendantSelector ? baseSelector + ' ' + descendantSelector : baseSelector)); +} + +function elementContains(parent, child) { + return parent.contains(child); +} + +function isSiblingNode(a, b) { + return a !== b && a.parentNode === b.parentNode; +} + +function getChildElements(sourceElements) { + var childElements = []; + + for (var i = 0, _ref2 = sourceElements || [], length = _ref2.length; i < length; i++) { + var children = sourceElements[i].children; + var childCount = children.length; + + if (!childCount) { + continue; + } + + for (var j = 0; j < childCount; j++) { + childElements.push(children[j]); + } + } + + return childElements; +} // $FlowFixMe + + +function getSiblingElements() { + var sourceElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var elements = []; + var parentCache = []; + + for (var i = 0, length = sourceElements.length; i < length; i++) { + var parentNode = sourceElements[i].parentNode; + + if (!parentNode || !parentNode.children || !parentNode.children.length) { + continue; + } + + if (parentCache.indexOf(parentNode) !== -1) { + continue; + } + + parentCache.push(parentNode); + var el = parentNode.firstElementChild; + + while (el != null) { + if (sourceElements.indexOf(el) === -1) { + elements.push(el); + } + + el = el.nextElementSibling; + } + } + + return elements; +} + +var getClosestElement = Element.prototype.closest ? function (element, selector) { + // $FlowIgnore — ELEMENT_MATCHES is the name of the method on the element's prototype depending on browser + if (!document.documentElement.contains(element)) { + return null; + } + + return element.closest(selector); +} : function (element, selector) { + // $FlowIgnore — if documentElement is null crash + if (!document.documentElement.contains(element)) { + return null; + } + + var el = element; + + do { + // $FlowIgnore — if documentElement is null crash + if (el[ELEMENT_MATCHES] && el[ELEMENT_MATCHES](selector)) { + return el; + } + + el = el.parentNode; + } while (el != null); + + return null; +}; +exports.getClosestElement = getClosestElement; + +function getRefType(ref) { + if (ref != null && (0, _typeof2["default"])(ref) == 'object') { + return ref instanceof Element ? HTML_ELEMENT : PLAIN_OBJECT; + } + + return null; +} + +/***/ }), +/* 309 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault2 = __webpack_require__(1); + +var _defineProperty2 = _interopRequireDefault2(__webpack_require__(21)); + +var _typeof2 = _interopRequireDefault2(__webpack_require__(17)); + +var _default2; + +var _interopRequireDefault = __webpack_require__(1); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _extends2 = _interopRequireDefault(__webpack_require__(30)); + +var _flow = _interopRequireDefault(__webpack_require__(310)); + +var _get = _interopRequireDefault(__webpack_require__(59)); + +var _clamp = _interopRequireDefault(__webpack_require__(329)); + +var _constants = __webpack_require__(3); + +var _IX2VanillaEngine = __webpack_require__(123); + +var _IX2EngineActions = __webpack_require__(64); + +var _shared = __webpack_require__(14); +/* eslint-env browser */ + + +var _constants$EventTypeC = _constants.EventTypeConsts, + MOUSE_CLICK = _constants$EventTypeC.MOUSE_CLICK, + MOUSE_SECOND_CLICK = _constants$EventTypeC.MOUSE_SECOND_CLICK, + MOUSE_DOWN = _constants$EventTypeC.MOUSE_DOWN, + MOUSE_UP = _constants$EventTypeC.MOUSE_UP, + MOUSE_OVER = _constants$EventTypeC.MOUSE_OVER, + MOUSE_OUT = _constants$EventTypeC.MOUSE_OUT, + DROPDOWN_CLOSE = _constants$EventTypeC.DROPDOWN_CLOSE, + DROPDOWN_OPEN = _constants$EventTypeC.DROPDOWN_OPEN, + SLIDER_ACTIVE = _constants$EventTypeC.SLIDER_ACTIVE, + SLIDER_INACTIVE = _constants$EventTypeC.SLIDER_INACTIVE, + TAB_ACTIVE = _constants$EventTypeC.TAB_ACTIVE, + TAB_INACTIVE = _constants$EventTypeC.TAB_INACTIVE, + NAVBAR_CLOSE = _constants$EventTypeC.NAVBAR_CLOSE, + NAVBAR_OPEN = _constants$EventTypeC.NAVBAR_OPEN, + MOUSE_MOVE = _constants$EventTypeC.MOUSE_MOVE, + PAGE_SCROLL_DOWN = _constants$EventTypeC.PAGE_SCROLL_DOWN, + SCROLL_INTO_VIEW = _constants$EventTypeC.SCROLL_INTO_VIEW, + SCROLL_OUT_OF_VIEW = _constants$EventTypeC.SCROLL_OUT_OF_VIEW, + PAGE_SCROLL_UP = _constants$EventTypeC.PAGE_SCROLL_UP, + SCROLLING_IN_VIEW = _constants$EventTypeC.SCROLLING_IN_VIEW, + PAGE_FINISH = _constants$EventTypeC.PAGE_FINISH, + ECOMMERCE_CART_CLOSE = _constants$EventTypeC.ECOMMERCE_CART_CLOSE, + ECOMMERCE_CART_OPEN = _constants$EventTypeC.ECOMMERCE_CART_OPEN, + PAGE_START = _constants$EventTypeC.PAGE_START, + PAGE_SCROLL = _constants$EventTypeC.PAGE_SCROLL; +var COMPONENT_ACTIVE = 'COMPONENT_ACTIVE'; +var COMPONENT_INACTIVE = 'COMPONENT_INACTIVE'; +var COLON_DELIMITER = _constants.IX2EngineConstants.COLON_DELIMITER; +var getNamespacedParameterId = _shared.IX2VanillaUtils.getNamespacedParameterId; + +var composableFilter = function composableFilter(predicate) { + return function (options) { + if ((0, _typeof2["default"])(options) === 'object' && predicate(options)) { + return true; + } + + return options; + }; +}; + +var isElement = composableFilter(function (_ref) { + var element = _ref.element, + nativeEvent = _ref.nativeEvent; + return element === nativeEvent.target; +}); +var containsElement = composableFilter(function (_ref2) { + var element = _ref2.element, + nativeEvent = _ref2.nativeEvent; + return element.contains(nativeEvent.target); +}); +var isOrContainsElement = (0, _flow["default"])([isElement, containsElement]); + +var getAutoStopEvent = function getAutoStopEvent(store, autoStopEventId) { + if (autoStopEventId) { + var _store$getState = store.getState(), + ixData = _store$getState.ixData; + + var events = ixData.events; + var eventToStop = events[autoStopEventId]; + + if (eventToStop && !AUTO_STOP_DISABLED_EVENTS[eventToStop.eventTypeId]) { + return eventToStop; + } + } + + return null; +}; + +var hasAutoStopEvent = function hasAutoStopEvent(_ref3) { + var store = _ref3.store, + event = _ref3.event; + var eventAction = event.action; + var autoStopEventId = eventAction.config.autoStopEventId; + return Boolean(getAutoStopEvent(store, autoStopEventId)); +}; + +var actionGroupCreator = function actionGroupCreator(_ref4, state) { + var store = _ref4.store, + event = _ref4.event, + element = _ref4.element, + eventStateKey = _ref4.eventStateKey; + var eventAction = event.action, + eventId = event.id; + var _eventAction$config = eventAction.config, + actionListId = _eventAction$config.actionListId, + autoStopEventId = _eventAction$config.autoStopEventId; + var eventToStop = getAutoStopEvent(store, autoStopEventId); + + if (eventToStop) { + (0, _IX2VanillaEngine.stopActionGroup)({ + store: store, + eventId: autoStopEventId, + eventTarget: element, + eventStateKey: autoStopEventId + COLON_DELIMITER + eventStateKey.split(COLON_DELIMITER)[1], + actionListId: (0, _get["default"])(eventToStop, 'action.config.actionListId') + }); + } + + (0, _IX2VanillaEngine.stopActionGroup)({ + store: store, + eventId: eventId, + eventTarget: element, + eventStateKey: eventStateKey, + actionListId: actionListId + }); + (0, _IX2VanillaEngine.startActionGroup)({ + store: store, + eventId: eventId, + eventTarget: element, + eventStateKey: eventStateKey, + actionListId: actionListId + }); + return state; +}; // $FlowFixMe + + +var withFilter = function withFilter(filter, handler) { + return function (options, state) { + return (// $FlowFixMe + filter(options, state) === true ? handler(options, state) : state + ); + }; +}; + +var baseActionGroupOptions = { + handler: withFilter(isOrContainsElement, actionGroupCreator) +}; +var baseActivityActionGroupOptions = (0, _extends2["default"])({}, baseActionGroupOptions, { + types: [COMPONENT_ACTIVE, COMPONENT_INACTIVE].join(' ') +}); +var SCROLL_EVENT_TYPES = [{ + target: window, + types: 'resize orientationchange', + throttle: true +}, { + target: document, + types: 'scroll wheel readystatechange IX2_PAGE_UPDATE', + throttle: true +}]; +var MOUSE_OVER_OUT_TYPES = 'mouseover mouseout'; +var baseScrollActionGroupOptions = { + types: SCROLL_EVENT_TYPES +}; +var AUTO_STOP_DISABLED_EVENTS = { + PAGE_START: PAGE_START, + PAGE_FINISH: PAGE_FINISH +}; + +var getDocumentState = function () { + var supportOffset = window.pageXOffset !== undefined; + var isCSS1Compat = document.compatMode === 'CSS1Compat'; + var rootElement = isCSS1Compat ? document.documentElement : document.body; + return function () { + return { + // $FlowFixMe + scrollLeft: supportOffset ? window.pageXOffset : rootElement.scrollLeft, + // $FlowFixMe + scrollTop: supportOffset ? window.pageYOffset : rootElement.scrollTop, + // required to remove elasticity in Safari scrolling. + stiffScrollTop: (0, _clamp["default"])( // $FlowFixMe + supportOffset ? window.pageYOffset : rootElement.scrollTop, 0, // $FlowFixMe + rootElement.scrollHeight - window.innerHeight), + // $FlowFixMe + scrollWidth: rootElement.scrollWidth, + // $FlowFixMe + scrollHeight: rootElement.scrollHeight, + // $FlowFixMe + clientWidth: rootElement.clientWidth, + // $FlowFixMe + clientHeight: rootElement.clientHeight, + innerWidth: window.innerWidth, + innerHeight: window.innerHeight + }; + }; +}(); + +var areBoxesIntersecting = function areBoxesIntersecting(a, b) { + return !(a.left > b.right || a.right < b.left || a.top > b.bottom || a.bottom < b.top); +}; + +var isElementHovered = function isElementHovered(_ref5) { + var element = _ref5.element, + nativeEvent = _ref5.nativeEvent; + var type = nativeEvent.type, + target = nativeEvent.target, + relatedTarget = nativeEvent.relatedTarget; + var containsTarget = element.contains(target); + + if (type === 'mouseover' && containsTarget) { + return true; + } + + var containsRelated = element.contains(relatedTarget); + + if (type === 'mouseout' && containsTarget && containsRelated) { + return true; + } + + return false; +}; + +var isElementVisible = function isElementVisible(options) { + var element = options.element, + config = options.event.config; + + var _getDocumentState = getDocumentState(), + clientWidth = _getDocumentState.clientWidth, + clientHeight = _getDocumentState.clientHeight; + + var scrollOffsetValue = config.scrollOffsetValue; + var scrollOffsetUnit = config.scrollOffsetUnit; + var isPX = scrollOffsetUnit === 'PX'; + var offsetPadding = isPX ? scrollOffsetValue : clientHeight * (scrollOffsetValue || 0) / 100; + return areBoxesIntersecting(element.getBoundingClientRect(), { + left: 0, + top: offsetPadding, + right: clientWidth, + bottom: clientHeight - offsetPadding + }); +}; + +var whenComponentActiveChange = function whenComponentActiveChange(handler) { + return function (options, oldState) { + var type = options.nativeEvent.type; // prettier-ignore + + var isActive = [COMPONENT_ACTIVE, COMPONENT_INACTIVE].indexOf(type) !== -1 ? type === COMPONENT_ACTIVE : oldState.isActive; + var newState = (0, _extends2["default"])({}, oldState, { + isActive: isActive + }); + + if (!oldState || newState.isActive !== oldState.isActive) { + return handler(options, newState) || newState; + } + + return newState; + }; +}; + +var whenElementHoverChange = function whenElementHoverChange(handler) { + return function (options, oldState) { + var newState = { + elementHovered: isElementHovered(options) + }; + + if (oldState ? newState.elementHovered !== oldState.elementHovered : newState.elementHovered) { + return handler(options, newState) || newState; + } + + return newState; + }; +}; // $FlowFixMe + + +var whenElementVisibiltyChange = function whenElementVisibiltyChange(handler) { + return function (options, oldState) { + var newState = (0, _extends2["default"])({}, oldState, { + elementVisible: isElementVisible(options) + }); + + if (oldState ? newState.elementVisible !== oldState.elementVisible : newState.elementVisible) { + return handler(options, newState) || newState; + } + + return newState; + }; +}; // $FlowFixMe + + +var whenScrollDirectionChange = function whenScrollDirectionChange(handler) { + return function (options) { + var oldState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + var _getDocumentState2 = getDocumentState(), + scrollTop = _getDocumentState2.stiffScrollTop, + scrollHeight = _getDocumentState2.scrollHeight, + innerHeight = _getDocumentState2.innerHeight; + + var _options$event = options.event, + config = _options$event.config, + eventTypeId = _options$event.eventTypeId; + var scrollOffsetValue = config.scrollOffsetValue, + scrollOffsetUnit = config.scrollOffsetUnit; + var isPX = scrollOffsetUnit === 'PX'; + var scrollHeightBounds = scrollHeight - innerHeight; // percent top since innerHeight may change for mobile devices which also changes the scrollTop value. + + var percentTop = Number((scrollTop / scrollHeightBounds).toFixed(2)); // no state change + + if (oldState && oldState.percentTop === percentTop) { + return oldState; + } + + var scrollTopPadding = (isPX ? scrollOffsetValue : innerHeight * (scrollOffsetValue || 0) / 100) / scrollHeightBounds; + var scrollingDown; + var scrollDirectionChanged; + var anchorTop = 0; + + if (oldState) { + scrollingDown = percentTop > oldState.percentTop; + scrollDirectionChanged = oldState.scrollingDown !== scrollingDown; + anchorTop = scrollDirectionChanged ? percentTop : oldState.anchorTop; + } + + var inBounds = eventTypeId === PAGE_SCROLL_DOWN ? percentTop >= anchorTop + scrollTopPadding : percentTop <= anchorTop - scrollTopPadding; + var newState = (0, _extends2["default"])({}, oldState, { + percentTop: percentTop, + inBounds: inBounds, + anchorTop: anchorTop, + scrollingDown: scrollingDown + }); + + if (oldState && inBounds && (scrollDirectionChanged || newState.inBounds !== oldState.inBounds)) { + return handler(options, newState) || newState; + } + + return newState; + }; +}; + +var pointIntersects = function pointIntersects(point, rect) { + return point.left > rect.left && point.left < rect.right && point.top > rect.top && point.top < rect.bottom; +}; + +var whenPageLoadFinish = function whenPageLoadFinish(handler) { + return function (options, oldState) { + var newState = { + finished: document.readyState === 'complete' + }; + + if (newState.finished && !(oldState && oldState.finshed)) { + handler(options); + } + + return newState; + }; +}; + +var whenPageLoadStart = function whenPageLoadStart(handler) { + return function (options, oldState) { + var newState = { + started: true + }; + + if (!oldState) { + handler(options); + } + + return newState; + }; +}; + +var whenClickCountChange = function whenClickCountChange(handler) { + return function (options) { + var oldState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { + clickCount: 0 + }; + var newState = { + clickCount: oldState.clickCount % 2 + 1 + }; + + if (newState.clickCount !== oldState.clickCount) { + return handler(options, newState) || newState; + } + + return newState; + }; +}; + +var getComponentActiveOptions = function getComponentActiveOptions() { + var allowNestedChildrenEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + return (0, _extends2["default"])({}, baseActivityActionGroupOptions, { + handler: withFilter(allowNestedChildrenEvents ? isOrContainsElement : isElement, whenComponentActiveChange(function (options, state) { + return state.isActive ? baseActionGroupOptions.handler(options, state) : state; + })) + }); +}; + +var getComponentInactiveOptions = function getComponentInactiveOptions() { + var allowNestedChildrenEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + return (0, _extends2["default"])({}, baseActivityActionGroupOptions, { + handler: withFilter(allowNestedChildrenEvents ? isOrContainsElement : isElement, whenComponentActiveChange(function (options, state) { + return !state.isActive ? baseActionGroupOptions.handler(options, state) : state; + })) + }); +}; + +var scrollIntoOutOfViewOptions = (0, _extends2["default"])({}, baseScrollActionGroupOptions, { + handler: whenElementVisibiltyChange(function (options, state) { + var elementVisible = state.elementVisible; + var event = options.event, + store = options.store; + + var _store$getState2 = store.getState(), + ixData = _store$getState2.ixData; + + var events = ixData.events; // trigger the handler only once if only one of SCROLL_INTO or SCROLL_OUT_OF event types + // are registered. + + if (!events[event.action.config.autoStopEventId] && state.triggered) { + return state; + } + + if (event.eventTypeId === SCROLL_INTO_VIEW === elementVisible) { + actionGroupCreator(options); + return (0, _extends2["default"])({}, state, { + triggered: true + }); + } else { + return state; + } + }) +}); +var MOUSE_OUT_ROUND_THRESHOLD = 0.05; + +var _default = (_default2 = {}, (0, _defineProperty2["default"])(_default2, SLIDER_ACTIVE, getComponentActiveOptions()), (0, _defineProperty2["default"])(_default2, SLIDER_INACTIVE, getComponentInactiveOptions()), (0, _defineProperty2["default"])(_default2, DROPDOWN_OPEN, getComponentActiveOptions()), (0, _defineProperty2["default"])(_default2, DROPDOWN_CLOSE, getComponentInactiveOptions()), (0, _defineProperty2["default"])(_default2, NAVBAR_OPEN, getComponentActiveOptions(false)), (0, _defineProperty2["default"])(_default2, NAVBAR_CLOSE, getComponentInactiveOptions(false)), (0, _defineProperty2["default"])(_default2, TAB_ACTIVE, getComponentActiveOptions()), (0, _defineProperty2["default"])(_default2, TAB_INACTIVE, getComponentInactiveOptions()), (0, _defineProperty2["default"])(_default2, ECOMMERCE_CART_OPEN, { + types: 'ecommerce-cart-open', + handler: withFilter(isOrContainsElement, actionGroupCreator) +}), (0, _defineProperty2["default"])(_default2, ECOMMERCE_CART_CLOSE, { + types: 'ecommerce-cart-close', + handler: withFilter(isOrContainsElement, actionGroupCreator) +}), (0, _defineProperty2["default"])(_default2, MOUSE_CLICK, { + types: 'click', + handler: withFilter(isOrContainsElement, whenClickCountChange(function (options, _ref6) { + var clickCount = _ref6.clickCount; + + if (hasAutoStopEvent(options)) { + clickCount === 1 && actionGroupCreator(options); + } else { + actionGroupCreator(options); + } + })) +}), (0, _defineProperty2["default"])(_default2, MOUSE_SECOND_CLICK, { + types: 'click', + handler: withFilter(isOrContainsElement, whenClickCountChange(function (options, _ref7) { + var clickCount = _ref7.clickCount; + + if (clickCount === 2) { + actionGroupCreator(options); + } + })) +}), (0, _defineProperty2["default"])(_default2, MOUSE_DOWN, (0, _extends2["default"])({}, baseActionGroupOptions, { + types: 'mousedown' +})), (0, _defineProperty2["default"])(_default2, MOUSE_UP, (0, _extends2["default"])({}, baseActionGroupOptions, { + types: 'mouseup' +})), (0, _defineProperty2["default"])(_default2, MOUSE_OVER, { + types: MOUSE_OVER_OUT_TYPES, + handler: withFilter(isOrContainsElement, whenElementHoverChange(function (options, state) { + if (state.elementHovered) { + actionGroupCreator(options); + } + })) +}), (0, _defineProperty2["default"])(_default2, MOUSE_OUT, { + types: MOUSE_OVER_OUT_TYPES, + handler: withFilter(isOrContainsElement, whenElementHoverChange(function (options, state) { + if (!state.elementHovered) { + actionGroupCreator(options); + } + })) +}), (0, _defineProperty2["default"])(_default2, MOUSE_MOVE, { + types: 'mousemove mouseout scroll', + handler: function handler( // $FlowFixMe + _ref8) { + var store = _ref8.store, + element = _ref8.element, + eventConfig = _ref8.eventConfig, + nativeEvent = _ref8.nativeEvent, + eventStateKey = _ref8.eventStateKey; + var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { + clientX: 0, + clientY: 0, + pageX: 0, + pageY: 0 + }; + var basedOn = eventConfig.basedOn, + selectedAxis = eventConfig.selectedAxis, + continuousParameterGroupId = eventConfig.continuousParameterGroupId, + reverse = eventConfig.reverse, + _eventConfig$restingS = eventConfig.restingState, + restingState = _eventConfig$restingS === void 0 ? 0 : _eventConfig$restingS; + var _nativeEvent$clientX = nativeEvent.clientX, + clientX = _nativeEvent$clientX === void 0 ? state.clientX : _nativeEvent$clientX, + _nativeEvent$clientY = nativeEvent.clientY, + clientY = _nativeEvent$clientY === void 0 ? state.clientY : _nativeEvent$clientY, + _nativeEvent$pageX = nativeEvent.pageX, + pageX = _nativeEvent$pageX === void 0 ? state.pageX : _nativeEvent$pageX, + _nativeEvent$pageY = nativeEvent.pageY, + pageY = _nativeEvent$pageY === void 0 ? state.pageY : _nativeEvent$pageY; + var isXAxis = selectedAxis === 'X_AXIS'; + var isMouseOut = nativeEvent.type === 'mouseout'; + var value = restingState / 100; + var namespacedParameterId = continuousParameterGroupId; + var elementHovered = false; + + switch (basedOn) { + case _constants.EventBasedOn.VIEWPORT: + { + value = isXAxis ? Math.min(clientX, window.innerWidth) / window.innerWidth : Math.min(clientY, window.innerHeight) / window.innerHeight; + break; + } + + case _constants.EventBasedOn.PAGE: + { + var _getDocumentState3 = getDocumentState(), + scrollLeft = _getDocumentState3.scrollLeft, + scrollTop = _getDocumentState3.scrollTop, + scrollWidth = _getDocumentState3.scrollWidth, + scrollHeight = _getDocumentState3.scrollHeight; + + value = isXAxis ? Math.min(scrollLeft + pageX, scrollWidth) / scrollWidth : Math.min(scrollTop + pageY, scrollHeight) / scrollHeight; + break; + } + + case _constants.EventBasedOn.ELEMENT: + default: + { + namespacedParameterId = getNamespacedParameterId(eventStateKey, continuousParameterGroupId); + var isMouseEvent = nativeEvent.type.indexOf('mouse') === 0; // Use isOrContainsElement for mouse events since they are fired from the target + + if (isMouseEvent && isOrContainsElement({ + element: element, + nativeEvent: nativeEvent + }) !== true) { + break; + } + + var rect = element.getBoundingClientRect(); + var left = rect.left, + top = rect.top, + width = rect.width, + height = rect.height; // Otherwise we'll need to calculate the mouse position from the previous handler state + // against the target element's rect + + if (!isMouseEvent && !pointIntersects({ + left: clientX, + top: clientY + }, rect)) { + break; + } + + elementHovered = true; + value = isXAxis ? (clientX - left) / width : (clientY - top) / height; + break; + } + } // cover case where the event is a mouse out, but the value is not quite at 100% + + + if (isMouseOut && (value > 1 - MOUSE_OUT_ROUND_THRESHOLD || value < MOUSE_OUT_ROUND_THRESHOLD)) { + value = Math.round(value); + } // Only update based on element if the mouse is moving over or has just left the element + + + if (basedOn !== _constants.EventBasedOn.ELEMENT || elementHovered || // $FlowFixMe + elementHovered !== state.elementHovered) { + value = reverse ? 1 - value : value; + store.dispatch((0, _IX2EngineActions.parameterChanged)(namespacedParameterId, value)); + } + + return { + elementHovered: elementHovered, + clientX: clientX, + clientY: clientY, + pageX: pageX, + pageY: pageY + }; + } +}), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL, { + types: SCROLL_EVENT_TYPES, + // $FlowFixMe + handler: function handler(_ref9) { + var store = _ref9.store, + eventConfig = _ref9.eventConfig; + var continuousParameterGroupId = eventConfig.continuousParameterGroupId, + reverse = eventConfig.reverse; + + var _getDocumentState4 = getDocumentState(), + scrollTop = _getDocumentState4.scrollTop, + scrollHeight = _getDocumentState4.scrollHeight, + clientHeight = _getDocumentState4.clientHeight; + + var value = scrollTop / (scrollHeight - clientHeight); + value = reverse ? 1 - value : value; + store.dispatch((0, _IX2EngineActions.parameterChanged)(continuousParameterGroupId, value)); + } +}), (0, _defineProperty2["default"])(_default2, SCROLLING_IN_VIEW, { + types: SCROLL_EVENT_TYPES, + handler: function handler( // $FlowFixMe + _ref10) { + var element = _ref10.element, + store = _ref10.store, + eventConfig = _ref10.eventConfig, + eventStateKey = _ref10.eventStateKey; + var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { + scrollPercent: 0 + }; + + var _getDocumentState5 = getDocumentState(), + scrollLeft = _getDocumentState5.scrollLeft, + scrollTop = _getDocumentState5.scrollTop, + scrollWidth = _getDocumentState5.scrollWidth, + scrollHeight = _getDocumentState5.scrollHeight, + visibleHeight = _getDocumentState5.clientHeight; + + var basedOn = eventConfig.basedOn, + selectedAxis = eventConfig.selectedAxis, + continuousParameterGroupId = eventConfig.continuousParameterGroupId, + startsEntering = eventConfig.startsEntering, + startsExiting = eventConfig.startsExiting, + addEndOffset = eventConfig.addEndOffset, + addStartOffset = eventConfig.addStartOffset, + _eventConfig$addOffse = eventConfig.addOffsetValue, + addOffsetValue = _eventConfig$addOffse === void 0 ? 0 : _eventConfig$addOffse, + _eventConfig$endOffse = eventConfig.endOffsetValue, + endOffsetValue = _eventConfig$endOffse === void 0 ? 0 : _eventConfig$endOffse; + var isXAxis = selectedAxis === 'X_AXIS'; + + if (basedOn === _constants.EventBasedOn.VIEWPORT) { + var value = isXAxis ? scrollLeft / scrollWidth : scrollTop / scrollHeight; + + if (value !== state.scrollPercent) { + store.dispatch((0, _IX2EngineActions.parameterChanged)(continuousParameterGroupId, value)); + } + + return { + scrollPercent: value + }; + } else { + var namespacedParameterId = getNamespacedParameterId(eventStateKey, continuousParameterGroupId); + var elementRect = element.getBoundingClientRect(); + var offsetStartPerc = (addStartOffset ? addOffsetValue : 0) / 100; + var offsetEndPerc = (addEndOffset ? endOffsetValue : 0) / 100; // flip the offset percentages depending on start / exit type + + offsetStartPerc = startsEntering ? offsetStartPerc : 1 - offsetStartPerc; + offsetEndPerc = startsExiting ? offsetEndPerc : 1 - offsetEndPerc; + var offsetElementTop = elementRect.top + Math.min(elementRect.height * offsetStartPerc, visibleHeight); + var offsetElementBottom = elementRect.top + elementRect.height * offsetEndPerc; + var offsetHeight = offsetElementBottom - offsetElementTop; + var fixedScrollHeight = Math.min(visibleHeight + offsetHeight, scrollHeight); + var fixedScrollTop = Math.min(Math.max(0, visibleHeight - offsetElementTop), fixedScrollHeight); + var fixedScrollPerc = fixedScrollTop / fixedScrollHeight; + + if (fixedScrollPerc !== state.scrollPercent) { + store.dispatch((0, _IX2EngineActions.parameterChanged)(namespacedParameterId, fixedScrollPerc)); + } + + return { + scrollPercent: fixedScrollPerc + }; + } + } +}), (0, _defineProperty2["default"])(_default2, SCROLL_INTO_VIEW, scrollIntoOutOfViewOptions), (0, _defineProperty2["default"])(_default2, SCROLL_OUT_OF_VIEW, scrollIntoOutOfViewOptions), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL_DOWN, (0, _extends2["default"])({}, baseScrollActionGroupOptions, { + handler: whenScrollDirectionChange(function (options, state) { + if (state.scrollingDown) { + actionGroupCreator(options); + } + }) +})), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL_UP, (0, _extends2["default"])({}, baseScrollActionGroupOptions, { + handler: whenScrollDirectionChange(function (options, state) { + if (!state.scrollingDown) { + actionGroupCreator(options); + } + }) +})), (0, _defineProperty2["default"])(_default2, PAGE_FINISH, { + types: 'readystatechange IX2_PAGE_UPDATE', + handler: withFilter(isElement, whenPageLoadFinish(actionGroupCreator)) +}), (0, _defineProperty2["default"])(_default2, PAGE_START, { + types: 'readystatechange IX2_PAGE_UPDATE', + handler: withFilter(isElement, whenPageLoadStart(actionGroupCreator)) +}), _default2); + +exports["default"] = _default; + +/***/ }), +/* 310 */ +/***/ (function(module, exports, __webpack_require__) { + +var createFlow = __webpack_require__(311); + +/** + * Creates a function that returns the result of invoking the given functions + * with the `this` binding of the created function, where each successive + * invocation is supplied the return value of the previous. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Util + * @param {...(Function|Function[])} [funcs] The functions to invoke. + * @returns {Function} Returns the new composite function. + * @see _.flowRight + * @example + * + * function square(n) { + * return n * n; + * } + * + * var addSquare = _.flow([_.add, square]); + * addSquare(1, 2); + * // => 9 + */ +var flow = createFlow(); + +module.exports = flow; + + +/***/ }), +/* 311 */ +/***/ (function(module, exports, __webpack_require__) { + +var LodashWrapper = __webpack_require__(65), + flatRest = __webpack_require__(312), + getData = __webpack_require__(127), + getFuncName = __webpack_require__(128), + isArray = __webpack_require__(2), + isLaziable = __webpack_require__(325); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** Used to compose bitmasks for function metadata. */ +var WRAP_CURRY_FLAG = 8, + WRAP_PARTIAL_FLAG = 32, + WRAP_ARY_FLAG = 128, + WRAP_REARG_FLAG = 256; + +/** + * Creates a `_.flow` or `_.flowRight` function. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new flow function. + */ +function createFlow(fromRight) { + return flatRest(function(funcs) { + var length = funcs.length, + index = length, + prereq = LodashWrapper.prototype.thru; + + if (fromRight) { + funcs.reverse(); + } + while (index--) { + var func = funcs[index]; + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + if (prereq && !wrapper && getFuncName(func) == 'wrapper') { + var wrapper = new LodashWrapper([], true); + } + } + index = wrapper ? index : length; + while (++index < length) { + func = funcs[index]; + + var funcName = getFuncName(func), + data = funcName == 'wrapper' ? getData(func) : undefined; + + if (data && isLaziable(data[0]) && + data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && + !data[4].length && data[9] == 1 + ) { + wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); + } else { + wrapper = (func.length == 1 && isLaziable(func)) + ? wrapper[funcName]() + : wrapper.thru(func); + } + } + return function() { + var args = arguments, + value = args[0]; + + if (wrapper && args.length == 1 && isArray(value)) { + return wrapper.plant(value).value(); + } + var index = 0, + result = length ? funcs[index].apply(this, args) : value; + + while (++index < length) { + result = funcs[index].call(this, result); + } + return result; + }; + }); +} + +module.exports = createFlow; + + +/***/ }), +/* 312 */ +/***/ (function(module, exports, __webpack_require__) { + +var flatten = __webpack_require__(313), + overRest = __webpack_require__(316), + setToString = __webpack_require__(318); + +/** + * A specialized version of `baseRest` which flattens the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. + */ +function flatRest(func) { + return setToString(overRest(func, undefined, flatten), func + ''); +} + +module.exports = flatRest; + + +/***/ }), +/* 313 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseFlatten = __webpack_require__(314); + +/** + * Flattens `array` a single level deep. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flatten([1, [2, [3, [4]], 5]]); + * // => [1, 2, [3, [4]], 5] + */ +function flatten(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, 1) : []; +} + +module.exports = flatten; + + +/***/ }), +/* 314 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayPush = __webpack_require__(51), + isFlattenable = __webpack_require__(315); + +/** + * The base implementation of `_.flatten` with support for restricting flattening. + * + * @private + * @param {Array} array The array to flatten. + * @param {number} depth The maximum recursion depth. + * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. + * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. + * @param {Array} [result=[]] The initial result value. + * @returns {Array} Returns the new flattened array. + */ +function baseFlatten(array, depth, predicate, isStrict, result) { + var index = -1, + length = array.length; + + predicate || (predicate = isFlattenable); + result || (result = []); + + while (++index < length) { + var value = array[index]; + if (depth > 0 && predicate(value)) { + if (depth > 1) { + // Recursively flatten arrays (susceptible to call stack limits). + baseFlatten(value, depth - 1, predicate, isStrict, result); + } else { + arrayPush(result, value); + } + } else if (!isStrict) { + result[result.length] = value; + } + } + return result; +} + +module.exports = baseFlatten; + + +/***/ }), +/* 315 */ +/***/ (function(module, exports, __webpack_require__) { + +var Symbol = __webpack_require__(23), + isArguments = __webpack_require__(36), + isArray = __webpack_require__(2); + +/** Built-in value references. */ +var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined; + +/** + * Checks if `value` is a flattenable `arguments` object or array. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. + */ +function isFlattenable(value) { + return isArray(value) || isArguments(value) || + !!(spreadableSymbol && value && value[spreadableSymbol]); +} + +module.exports = isFlattenable; + + +/***/ }), +/* 316 */ +/***/ (function(module, exports, __webpack_require__) { + +var apply = __webpack_require__(317); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ +function overRest(func, start, transform) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); + + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform(array); + return apply(func, this, otherArgs); + }; +} + +module.exports = overRest; + + +/***/ }), +/* 317 */ +/***/ (function(module, exports) { + +/** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ +function apply(func, thisArg, args) { + switch (args.length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); +} + +module.exports = apply; + + +/***/ }), +/* 318 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseSetToString = __webpack_require__(319), + shortOut = __webpack_require__(321); + +/** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ +var setToString = shortOut(baseSetToString); + +module.exports = setToString; + + +/***/ }), +/* 319 */ +/***/ (function(module, exports, __webpack_require__) { + +var constant = __webpack_require__(320), + defineProperty = __webpack_require__(125), + identity = __webpack_require__(62); + +/** + * The base implementation of `setToString` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ +var baseSetToString = !defineProperty ? identity : function(func, string) { + return defineProperty(func, 'toString', { + 'configurable': true, + 'enumerable': false, + 'value': constant(string), + 'writable': true + }); +}; + +module.exports = baseSetToString; + + +/***/ }), +/* 320 */ +/***/ (function(module, exports) { + +/** + * Creates a function that returns `value`. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {*} value The value to return from the new function. + * @returns {Function} Returns the new constant function. + * @example + * + * var objects = _.times(2, _.constant({ 'a': 1 })); + * + * console.log(objects); + * // => [{ 'a': 1 }, { 'a': 1 }] + * + * console.log(objects[0] === objects[1]); + * // => true + */ +function constant(value) { + return function() { + return value; + }; +} + +module.exports = constant; + + +/***/ }), +/* 321 */ +/***/ (function(module, exports) { + +/** Used to detect hot functions by number of calls within a span of milliseconds. */ +var HOT_COUNT = 800, + HOT_SPAN = 16; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeNow = Date.now; + +/** + * Creates a function that'll short out and invoke `identity` instead + * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` + * milliseconds. + * + * @private + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new shortable function. + */ +function shortOut(func) { + var count = 0, + lastCalled = 0; + + return function() { + var stamp = nativeNow(), + remaining = HOT_SPAN - (stamp - lastCalled); + + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func.apply(undefined, arguments); + }; +} + +module.exports = shortOut; + + +/***/ }), +/* 322 */ +/***/ (function(module, exports, __webpack_require__) { + +var WeakMap = __webpack_require__(109); + +/** Used to store function metadata. */ +var metaMap = WeakMap && new WeakMap; + +module.exports = metaMap; + + +/***/ }), +/* 323 */ +/***/ (function(module, exports) { + +/** + * This method returns `undefined`. + * + * @static + * @memberOf _ + * @since 2.3.0 + * @category Util + * @example + * + * _.times(2, _.noop); + * // => [undefined, undefined] + */ +function noop() { + // No operation performed. +} + +module.exports = noop; + + +/***/ }), +/* 324 */ +/***/ (function(module, exports) { + +/** Used to lookup unminified function names. */ +var realNames = {}; + +module.exports = realNames; + + +/***/ }), +/* 325 */ +/***/ (function(module, exports, __webpack_require__) { + +var LazyWrapper = __webpack_require__(67), + getData = __webpack_require__(127), + getFuncName = __webpack_require__(128), + lodash = __webpack_require__(326); + +/** + * Checks if `func` has a lazy counterpart. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` has a lazy counterpart, + * else `false`. + */ +function isLaziable(func) { + var funcName = getFuncName(func), + other = lodash[funcName]; + + if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { + return false; + } + if (func === other) { + return true; + } + var data = getData(other); + return !!data && func === data[0]; +} + +module.exports = isLaziable; + + +/***/ }), +/* 326 */ +/***/ (function(module, exports, __webpack_require__) { + +var LazyWrapper = __webpack_require__(67), + LodashWrapper = __webpack_require__(65), + baseLodash = __webpack_require__(66), + isArray = __webpack_require__(2), + isObjectLike = __webpack_require__(12), + wrapperClone = __webpack_require__(327); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Creates a `lodash` object which wraps `value` to enable implicit method + * chain sequences. Methods that operate on and return arrays, collections, + * and functions can be chained together. Methods that retrieve a single value + * or may return a primitive value will automatically end the chain sequence + * and return the unwrapped value. Otherwise, the value must be unwrapped + * with `_#value`. + * + * Explicit chain sequences, which must be unwrapped with `_#value`, may be + * enabled using `_.chain`. + * + * The execution of chained methods is lazy, that is, it's deferred until + * `_#value` is implicitly or explicitly called. + * + * Lazy evaluation allows several methods to support shortcut fusion. + * Shortcut fusion is an optimization to merge iteratee calls; this avoids + * the creation of intermediate arrays and can greatly reduce the number of + * iteratee executions. Sections of a chain sequence qualify for shortcut + * fusion if the section is applied to an array and iteratees accept only + * one argument. The heuristic for whether a section qualifies for shortcut + * fusion is subject to change. + * + * Chaining is supported in custom builds as long as the `_#value` method is + * directly or indirectly included in the build. + * + * In addition to lodash methods, wrappers have `Array` and `String` methods. + * + * The wrapper `Array` methods are: + * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` + * + * The wrapper `String` methods are: + * `replace` and `split` + * + * The wrapper methods that support shortcut fusion are: + * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, + * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, + * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` + * + * The chainable wrapper methods are: + * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, + * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, + * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, + * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, + * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, + * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, + * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, + * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, + * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, + * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, + * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, + * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, + * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, + * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, + * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, + * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, + * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, + * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, + * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, + * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, + * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, + * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, + * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, + * `zipObject`, `zipObjectDeep`, and `zipWith` + * + * The wrapper methods that are **not** chainable by default are: + * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, + * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, + * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, + * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, + * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, + * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, + * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, + * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, + * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, + * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, + * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, + * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, + * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, + * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, + * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, + * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, + * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, + * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, + * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, + * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, + * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, + * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, + * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, + * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, + * `upperFirst`, `value`, and `words` + * + * @name _ + * @constructor + * @category Seq + * @param {*} value The value to wrap in a `lodash` instance. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * function square(n) { + * return n * n; + * } + * + * var wrapped = _([1, 2, 3]); + * + * // Returns an unwrapped value. + * wrapped.reduce(_.add); + * // => 6 + * + * // Returns a wrapped value. + * var squares = wrapped.map(square); + * + * _.isArray(squares); + * // => false + * + * _.isArray(squares.value()); + * // => true + */ +function lodash(value) { + if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { + if (value instanceof LodashWrapper) { + return value; + } + if (hasOwnProperty.call(value, '__wrapped__')) { + return wrapperClone(value); + } + } + return new LodashWrapper(value); +} + +// Ensure wrappers are instances of `baseLodash`. +lodash.prototype = baseLodash.prototype; +lodash.prototype.constructor = lodash; + +module.exports = lodash; + + +/***/ }), +/* 327 */ +/***/ (function(module, exports, __webpack_require__) { + +var LazyWrapper = __webpack_require__(67), + LodashWrapper = __webpack_require__(65), + copyArray = __webpack_require__(328); + +/** + * Creates a clone of `wrapper`. + * + * @private + * @param {Object} wrapper The wrapper to clone. + * @returns {Object} Returns the cloned wrapper. + */ +function wrapperClone(wrapper) { + if (wrapper instanceof LazyWrapper) { + return wrapper.clone(); + } + var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); + result.__actions__ = copyArray(wrapper.__actions__); + result.__index__ = wrapper.__index__; + result.__values__ = wrapper.__values__; + return result; +} + +module.exports = wrapperClone; + + +/***/ }), +/* 328 */ +/***/ (function(module, exports) { + +/** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ +function copyArray(source, array) { + var index = -1, + length = source.length; + + array || (array = Array(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; +} + +module.exports = copyArray; + + +/***/ }), +/* 329 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseClamp = __webpack_require__(330), + toNumber = __webpack_require__(63); + +/** + * Clamps `number` within the inclusive `lower` and `upper` bounds. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Number + * @param {number} number The number to clamp. + * @param {number} [lower] The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the clamped number. + * @example + * + * _.clamp(-10, -5, 5); + * // => -5 + * + * _.clamp(10, -5, 5); + * // => 5 + */ +function clamp(number, lower, upper) { + if (upper === undefined) { + upper = lower; + lower = undefined; + } + if (upper !== undefined) { + upper = toNumber(upper); + upper = upper === upper ? upper : 0; + } + if (lower !== undefined) { + lower = toNumber(lower); + lower = lower === lower ? lower : 0; + } + return baseClamp(toNumber(number), lower, upper); +} + +module.exports = clamp; + + +/***/ }), +/* 330 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.clamp` which doesn't coerce arguments. + * + * @private + * @param {number} number The number to clamp. + * @param {number} [lower] The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the clamped number. + */ +function baseClamp(number, lower, upper) { + if (number === number) { + if (upper !== undefined) { + number = number <= upper ? number : upper; + } + if (lower !== undefined) { + number = number >= lower ? number : lower; + } + } + return number; +} + +module.exports = baseClamp; + + +/***/ }), +/* 331 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals window, document */ + +/* eslint-disable no-var */ + +/** + * Webflow: Auto-select links to current page or section + */ + +var Webflow = __webpack_require__(4); + +Webflow.define('links', module.exports = function ($, _) { + var api = {}; + var $win = $(window); + var designer; + var inApp = Webflow.env(); + var location = window.location; + var tempLink = document.createElement('a'); + var linkCurrent = 'w--current'; + var indexPage = /index\.(html|php)$/; + var dirList = /\/$/; + var anchors; + var slug; // ----------------------------------- + // Module methods + + api.ready = api.design = api.preview = init; // ----------------------------------- + // Private methods + + function init() { + designer = inApp && Webflow.env('design'); + slug = Webflow.env('slug') || location.pathname || ''; // Reset scroll listener, init anchors + + Webflow.scroll.off(scroll); + anchors = []; // Test all links for a selectable href + + var links = document.links; + + for (var i = 0; i < links.length; ++i) { + select(links[i]); + } // Listen for scroll if any anchors exist + + + if (anchors.length) { + Webflow.scroll.on(scroll); + scroll(); + } + } + + function select(link) { + var href = designer && link.getAttribute('href-disabled') || link.getAttribute('href'); + tempLink.href = href; // Ignore any hrefs with a colon to safely avoid all uri schemes + + if (href.indexOf(':') >= 0) { + return; + } + + var $link = $(link); // Check for all links with hash (eg (this-host)(/this-path)#section) to this page + + if (tempLink.hash.length > 1 && tempLink.host + tempLink.pathname === location.host + location.pathname) { + // Ignore any hrefs with Google Translate type hash + // Example: jQuery can't parse $('#googtrans(en|es)') + // https://forum.webflow.com/t/dropdown-menus-not-working-on-site/87140 + if (!/^#[a-zA-Z0-9\-\_]+$/.test(tempLink.hash)) { + return; + } + + var $section = $(tempLink.hash); + $section.length && anchors.push({ + link: $link, + sec: $section, + active: false + }); + return; + } // Ignore empty # links + + + if (href === '#' || href === '') { + return; + } // Determine whether the link should be selected + + + var match = tempLink.href === location.href || href === slug || indexPage.test(href) && dirList.test(slug); + setClass($link, linkCurrent, match); + } + + function scroll() { + var viewTop = $win.scrollTop(); + var viewHeight = $win.height(); // Check each anchor for a section in view + + _.each(anchors, function (anchor) { + var $link = anchor.link; + var $section = anchor.sec; + var top = $section.offset().top; + var height = $section.outerHeight(); + var offset = viewHeight * 0.5; + var active = $section.is(':visible') && top + height - offset >= viewTop && top + offset <= viewTop + viewHeight; + + if (anchor.active === active) { + return; + } + + anchor.active = active; + setClass($link, linkCurrent, active); + }); + } + + function setClass($elem, className, add) { + var exists = $elem.hasClass(className); + + if (add && exists) { + return; + } + + if (!add && !exists) { + return; + } + + add ? $elem.addClass(className) : $elem.removeClass(className); + } // Export module + + + return api; +}); + +/***/ }), +/* 332 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals window, document */ + +/* eslint-disable no-var */ + +/** + * Webflow: Smooth scroll + */ + +var Webflow = __webpack_require__(4); + +Webflow.define('scroll', module.exports = function ($) { + /** + * A collection of namespaced events found in this module. + * Namespaced events encapsulate our code, and make it safer and easier + * for designers to apply custom code overrides. + * @see https://api.jquery.com/on/#event-names + * @typedef {Object.} NamespacedEventsCollection + */ + var NS_EVENTS = { + WF_CLICK_EMPTY: 'click.wf-empty-link', + WF_CLICK_SCROLL: 'click.wf-scroll' + }; + var loc = window.location; + var history = inIframe() ? null : window.history; + var $win = $(window); + var $doc = $(document); + var $body = $(document.body); + + var animate = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (fn) { + window.setTimeout(fn, 15); + }; + + var rootTag = Webflow.env('editor') ? '.w-editor-body' : 'body'; + var headerSelector = 'header, ' + rootTag + ' > .header, ' + rootTag + ' > .w-nav:not([data-no-scroll])'; + var emptyHrefSelector = 'a[href="#"]'; + /** + * Select only links whose href: + * - contains a # + * - is not one of our namespaced TabLink elements + * - is not _only_ a # + */ + + var localHrefSelector = 'a[href*="#"]:not(.w-tab-link):not(' + emptyHrefSelector + ')'; + var scrollTargetOutlineCSS = '.wf-force-outline-none[tabindex="-1"]:focus{outline:none;}'; + var focusStylesEl = document.createElement('style'); + focusStylesEl.appendChild(document.createTextNode(scrollTargetOutlineCSS)); + + function inIframe() { + try { + return Boolean(window.frameElement); + } catch (e) { + return true; + } + } + + var validHash = /^#[a-zA-Z0-9][\w:.-]*$/; + /** + * Determine if link navigates to current page + * @param {HTMLAnchorElement} link + */ + + function linksToCurrentPage(link) { + return validHash.test(link.hash) && link.host + link.pathname === loc.host + loc.pathname; + } + /** + * Check if the designer has indicated that this page should + * have no scroll animation, or if the end user has set + * prefers-reduced-motion in their OS + */ + + + var reducedMotionMediaQuery = typeof window.matchMedia === 'function' && window.matchMedia('(prefers-reduced-motion: reduce)'); + + function reducedMotionEnabled() { + return document.body.getAttribute('data-wf-scroll-motion') === 'none' || reducedMotionMediaQuery.matches; + } + + function setFocusable($el, action) { + var initialTabindex; + + switch (action) { + case 'add': + initialTabindex = $el.attr('tabindex'); + + if (initialTabindex) { + $el.attr('data-wf-tabindex-swap', initialTabindex); + } else { + $el.attr('tabindex', '-1'); + } + + break; + + case 'remove': + initialTabindex = $el.attr('data-wf-tabindex-swap'); + + if (initialTabindex) { + $el.attr('tabindex', initialTabindex); + $el.removeAttr('data-wf-tabindex-swap'); + } else { + $el.removeAttr('tabindex'); + } + + break; + } + + $el.toggleClass('wf-force-outline-none', action === 'add'); + } + /** + * Determine if we should execute custom scroll + */ + + + function validateScroll(evt) { + var target = evt.currentTarget; + + if ( // Bail if in Designer + Webflow.env('design') || // Ignore links being used by jQuery mobile + window.$.mobile && /(?:^|\s)ui-link(?:$|\s)/.test(target.className)) { + return; + } + + var hash = linksToCurrentPage(target) ? target.hash : ''; + if (hash === '') return; + var $el = $(hash); + + if (!$el.length) { + return; + } + + if (evt) { + evt.preventDefault(); + evt.stopPropagation(); + } + + updateHistory(hash, evt); + window.setTimeout(function () { + scroll($el, function setFocus() { + setFocusable($el, 'add'); + $el.get(0).focus({ + preventScroll: true + }); + setFocusable($el, 'remove'); + }); + }, evt ? 0 : 300); + } + + function updateHistory(hash) { + // Push new history state + if (loc.hash !== hash && history && history.pushState && // Navigation breaks Chrome when the protocol is `file:`. + !(Webflow.env.chrome && loc.protocol === 'file:')) { + var oldHash = history.state && history.state.hash; + + if (oldHash !== hash) { + history.pushState({ + hash: hash + }, '', hash); + } + } + } + + function scroll($targetEl, cb) { + var start = $win.scrollTop(); + var end = calculateScrollEndPosition($targetEl); + if (start === end) return; + var duration = calculateScrollDuration($targetEl, start, end); + var clock = Date.now(); + + var step = function step() { + var elapsed = Date.now() - clock; + window.scroll(0, getY(start, end, elapsed, duration)); + + if (elapsed <= duration) { + animate(step); + } else if (typeof cb === 'function') { + cb(); + } + }; + + animate(step); + } + + function calculateScrollEndPosition($targetEl) { + // If a fixed header exists, offset for the height + var $header = $(headerSelector); + var offsetY = $header.css('position') === 'fixed' ? $header.outerHeight() : 0; + var end = $targetEl.offset().top - offsetY; // If specified, scroll so that the element ends up in the middle of the viewport + + if ($targetEl.data('scroll') === 'mid') { + var available = $win.height() - offsetY; + var elHeight = $targetEl.outerHeight(); + + if (elHeight < available) { + end -= Math.round((available - elHeight) / 2); + } + } + + return end; + } + + function calculateScrollDuration($targetEl, start, end) { + if (reducedMotionEnabled()) return 0; + var mult = 1; // Check for custom time multiplier on the body and the scroll target + + $body.add($targetEl).each(function (_, el) { + var time = parseFloat(el.getAttribute('data-scroll-time')); + + if (!isNaN(time) && time >= 0) { + mult = time; + } + }); + return (472.143 * Math.log(Math.abs(start - end) + 125) - 2000) * mult; + } + + function getY(start, end, elapsed, duration) { + if (elapsed > duration) { + return end; + } + + return start + (end - start) * ease(elapsed / duration); + } + + function ease(t) { + return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1; + } + + function ready() { + var WF_CLICK_EMPTY = NS_EVENTS.WF_CLICK_EMPTY, + WF_CLICK_SCROLL = NS_EVENTS.WF_CLICK_SCROLL; + $doc.on(WF_CLICK_SCROLL, localHrefSelector, validateScroll); + /** + * Prevent empty hash links from triggering scroll. + * Legacy feature to preserve: use the default "#" link + * to trigger an interaction, and do not want the page + * to scroll to the top. + */ + + $doc.on(WF_CLICK_EMPTY, emptyHrefSelector, function (e) { + e.preventDefault(); + }); + document.head.insertBefore(focusStylesEl, document.head.firstChild); + } // Export module + + + return { + ready: ready + }; +}); + +/***/ }), +/* 333 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals document, window */ + +/* eslint-disable no-var */ + +/** + * Webflow: Touch events + * Supports legacy 'tap' event + * Adds a 'swipe' event to desktop and mobile + */ + +var Webflow = __webpack_require__(4); + +Webflow.define('touch', module.exports = function ($) { + var api = {}; + var getSelection = window.getSelection; // Delegate all legacy 'tap' events to 'click' + + $.event.special.tap = { + bindType: 'click', + delegateType: 'click' + }; + + api.init = function (el) { + el = typeof el === 'string' ? $(el).get(0) : el; + return el ? new Touch(el) : null; + }; + + function Touch(el) { + var active = false; + var useTouch = false; + var thresholdX = Math.min(Math.round(window.innerWidth * 0.04), 40); + var startX; + var lastX; + el.addEventListener('touchstart', start, false); + el.addEventListener('touchmove', move, false); + el.addEventListener('touchend', end, false); + el.addEventListener('touchcancel', cancel, false); + el.addEventListener('mousedown', start, false); + el.addEventListener('mousemove', move, false); + el.addEventListener('mouseup', end, false); + el.addEventListener('mouseout', cancel, false); + + function start(evt) { + // We don’t handle multi-touch events yet. + var touches = evt.touches; + + if (touches && touches.length > 1) { + return; + } + + active = true; + + if (touches) { + useTouch = true; + startX = touches[0].clientX; + } else { + startX = evt.clientX; + } + + lastX = startX; + } + + function move(evt) { + if (!active) { + return; + } + + if (useTouch && evt.type === 'mousemove') { + evt.preventDefault(); + evt.stopPropagation(); + return; + } + + var touches = evt.touches; + var x = touches ? touches[0].clientX : evt.clientX; + var velocityX = x - lastX; + lastX = x; // Allow swipes while pointer is down, but prevent them during text selection + + if (Math.abs(velocityX) > thresholdX && getSelection && String(getSelection()) === '') { + triggerEvent('swipe', evt, { + direction: velocityX > 0 ? 'right' : 'left' + }); + cancel(); + } + } + + function end(evt) { + if (!active) { + return; + } + + active = false; + + if (useTouch && evt.type === 'mouseup') { + evt.preventDefault(); + evt.stopPropagation(); + useTouch = false; + return; + } + } + + function cancel() { + active = false; + } + + function destroy() { + el.removeEventListener('touchstart', start, false); + el.removeEventListener('touchmove', move, false); + el.removeEventListener('touchend', end, false); + el.removeEventListener('touchcancel', cancel, false); + el.removeEventListener('mousedown', start, false); + el.removeEventListener('mousemove', move, false); + el.removeEventListener('mouseup', end, false); + el.removeEventListener('mouseout', cancel, false); + el = null; + } // Public instance methods + + + this.destroy = destroy; + } // Wrap native event to supoprt preventdefault + stopPropagation + + + function triggerEvent(type, evt, data) { + var newEvent = $.Event(type, { + originalEvent: evt + }); + $(evt.target).trigger(newEvent, data); + } // Listen for touch events on all nodes by default. + + + api.instance = api.init(document); // Export module + + return api; +}); + +/***/ }), +/* 334 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals + window, + document, + FormData, + WEBFLOW_FORM_API_HOST, + WEBFLOW_FORM_OLDIE_HOST +*/ + +/* eslint-disable no-var */ + +/** + * Webflow: Forms + */ + +var _interopRequireDefault = __webpack_require__(1); + +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(335)); + +var Webflow = __webpack_require__(4); + +Webflow.define('forms', module.exports = function ($, _) { + var api = {}; + var $doc = $(document); + var $forms; + var loc = window.location; + var retro = window.XDomainRequest && !window.atob; + var namespace = '.w-form'; + var siteId; + var emailField = /e(-)?mail/i; + var emailValue = /^\S+@\S+$/; + var alert = window.alert; + var inApp = Webflow.env(); + var listening; + var formUrl; + var signFileUrl; // MailChimp domains: list-manage.com + mirrors + + var chimpRegex = /list-manage[1-9]?.com/i; + + var disconnected = _.debounce(function () { + alert('Oops! This page has improperly configured forms. Please contact your website administrator to fix this issue.'); + }, 100); + + api.ready = api.design = api.preview = function () { + // Init forms + init(); // Wire document events on published site only once + + if (!inApp && !listening) { + addListeners(); + } + }; + + function init() { + siteId = $('html').attr('data-wf-site'); + formUrl = "https://webflow.com" + '/api/v1/form/' + siteId; // Work around same-protocol IE XDR limitation - without this IE9 and below forms won't submit + + if (retro && formUrl.indexOf("https://webflow.com") >= 0) { + formUrl = formUrl.replace("https://webflow.com", "https://formdata.webflow.com"); + } + + signFileUrl = "".concat(formUrl, "/signFile"); + $forms = $(namespace + ' form'); + + if (!$forms.length) { + return; + } + + $forms.each(build); + } + + function build(i, el) { + // Store form state using namespace + var $el = $(el); + var data = $.data(el, namespace); + + if (!data) { + data = $.data(el, namespace, { + form: $el + }); + } // data.form + + + reset(data); + var wrap = $el.closest('div.w-form'); + data.done = wrap.find('> .w-form-done'); + data.fail = wrap.find('> .w-form-fail'); + data.fileUploads = wrap.find('.w-file-upload'); + data.fileUploads.each(function (j) { + initFileUpload(j, data); + }); // Accessiblity fixes + + var formName = data.form.attr('aria-label') || data.form.attr('data-name') || 'Form'; + + if (!data.done.attr('aria-label')) { + data.form.attr('aria-label', formName); + } + + data.done.attr('tabindex', '-1'); + data.done.attr('role', 'region'); + + if (!data.done.attr('aria-label')) { + data.done.attr('aria-label', formName + ' success'); + } + + data.fail.attr('tabindex', '-1'); + data.fail.attr('role', 'region'); + + if (!data.fail.attr('aria-label')) { + data.fail.attr('aria-label', formName + ' failure'); + } + + var action = data.action = $el.attr('action'); + data.handler = null; + data.redirect = $el.attr('data-redirect'); // MailChimp form + + if (chimpRegex.test(action)) { + data.handler = submitMailChimp; + return; + } // Custom form action + + + if (action) { + return; + } // Webflow forms for hosting accounts + + + if (siteId) { + data.handler = typeof hostedSubmitWebflow === 'function' ? hostedSubmitWebflow : exportedSubmitWebflow; + return; + } // Alert for disconnected Webflow forms + + + disconnected(); + } + + function addListeners() { + listening = true; // Handle form submission for Webflow forms + + $doc.on('submit', namespace + ' form', function (evt) { + var data = $.data(this, namespace); + + if (data.handler) { + data.evt = evt; + data.handler(data); + } + }); // handle checked ui for custom checkbox and radio button + + var CHECKBOX_CLASS_NAME = '.w-checkbox-input'; + var RADIO_INPUT_CLASS_NAME = '.w-radio-input'; + var CHECKED_CLASS = 'w--redirected-checked'; + var FOCUSED_CLASS = 'w--redirected-focus'; + var FOCUSED_VISIBLE_CLASS = 'w--redirected-focus-visible'; + var focusVisibleSelectors = ':focus-visible, [data-wf-focus-visible]'; + var CUSTOM_CONTROLS = [['checkbox', CHECKBOX_CLASS_NAME], ['radio', RADIO_INPUT_CLASS_NAME]]; + $doc.on('change', namespace + " form input[type=\"checkbox\"]:not(" + CHECKBOX_CLASS_NAME + ')', function (evt) { + $(evt.target).siblings(CHECKBOX_CLASS_NAME).toggleClass(CHECKED_CLASS); + }); + $doc.on('change', namespace + " form input[type=\"radio\"]", function (evt) { + $("input[name=\"".concat(evt.target.name, "\"]:not(").concat(CHECKBOX_CLASS_NAME, ")")).map(function (i, el) { + return $(el).siblings(RADIO_INPUT_CLASS_NAME).removeClass(CHECKED_CLASS); + }); + var $target = $(evt.target); + + if (!$target.hasClass('w-radio-input')) { + $target.siblings(RADIO_INPUT_CLASS_NAME).addClass(CHECKED_CLASS); + } + }); + CUSTOM_CONTROLS.forEach(function (_ref) { + var _ref2 = (0, _slicedToArray2["default"])(_ref, 2), + controlType = _ref2[0], + customControlClassName = _ref2[1]; + + $doc.on('focus', namespace + " form input[type=\"".concat(controlType, "\"]:not(") + customControlClassName + ')', function (evt) { + $(evt.target).siblings(customControlClassName).addClass(FOCUSED_CLASS); + $(evt.target).filter(focusVisibleSelectors).siblings(customControlClassName).addClass(FOCUSED_VISIBLE_CLASS); + }); + $doc.on('blur', namespace + " form input[type=\"".concat(controlType, "\"]:not(") + customControlClassName + ')', function (evt) { + $(evt.target).siblings(customControlClassName).removeClass("".concat(FOCUSED_CLASS, " ").concat(FOCUSED_VISIBLE_CLASS)); + }); + }); + } // Reset data common to all submit handlers + + + function reset(data) { + var btn = data.btn = data.form.find(':input[type="submit"]'); + data.wait = data.btn.attr('data-wait') || null; + data.success = false; + btn.prop('disabled', false); + data.label && btn.val(data.label); + } // Disable submit button + + + function disableBtn(data) { + var btn = data.btn; + var wait = data.wait; + btn.prop('disabled', true); // Show wait text and store previous label + + if (wait) { + data.label = btn.val(); + btn.val(wait); + } + } // Find form fields, validate, and set value pairs + + + function findFields(form, result) { + var status = null; + result = result || {}; // The ":input" selector is a jQuery shortcut to select all inputs, selects, textareas + + form.find(':input:not([type="submit"]):not([type="file"])').each(function (i, el) { + var field = $(el); + var type = field.attr('type'); + var name = field.attr('data-name') || field.attr('name') || 'Field ' + (i + 1); + var value = field.val(); + + if (type === 'checkbox') { + value = field.is(':checked'); + } else if (type === 'radio') { + // Radio group value already processed + if (result[name] === null || typeof result[name] === 'string') { + return; + } + + value = form.find('input[name="' + field.attr('name') + '"]:checked').val() || null; + } + + if (typeof value === 'string') { + value = $.trim(value); + } + + result[name] = value; + status = status || getStatus(field, type, name, value); + }); + return status; + } + + function findFileUploads(form) { + var result = {}; + form.find(':input[type="file"]').each(function (i, el) { + var field = $(el); + var name = field.attr('data-name') || field.attr('name') || 'File ' + (i + 1); + var value = field.attr('data-value'); + + if (typeof value === 'string') { + value = $.trim(value); + } + + result[name] = value; + }); + return result; + } + + var trackingCookieNameMap = { + _mkto_trk: 'marketo' // __hstc: 'hubspot', + + }; + + function collectEnterpriseTrackingCookies() { + var cookies = document.cookie.split('; ').reduce(function (acc, cookie) { + var splitCookie = cookie.split('='); + var name = splitCookie[0]; + + if (name in trackingCookieNameMap) { + var mappedName = trackingCookieNameMap[name]; + var value = splitCookie.slice(1).join('='); + acc[mappedName] = value; + } + + return acc; + }, {}); + return cookies; + } + + function getStatus(field, type, name, value) { + var status = null; + + if (type === 'password') { + status = 'Passwords cannot be submitted.'; + } else if (field.attr('required')) { + if (!value) { + status = 'Please fill out the required field: ' + name; + } else if (emailField.test(field.attr('type'))) { + if (!emailValue.test(value)) { + status = 'Please enter a valid email address for: ' + name; + } + } + } else if (name === 'g-recaptcha-response' && !value) { + status = 'Please confirm you’re not a robot.'; + } + + return status; + } + + function exportedSubmitWebflow(data) { + preventDefault(data); + afterSubmit(data); + } // Submit form to MailChimp + + + function submitMailChimp(data) { + reset(data); + var form = data.form; + var payload = {}; // Skip Ajax submission if http/s mismatch, fallback to POST instead + + if (/^https/.test(loc.href) && !/^https/.test(data.action)) { + form.attr('method', 'post'); + return; + } + + preventDefault(data); // Find & populate all fields + + var status = findFields(form, payload); + + if (status) { + return alert(status); + } // Disable submit button + + + disableBtn(data); // Use special format for MailChimp params + + var fullName; + + _.each(payload, function (value, key) { + if (emailField.test(key)) { + payload.EMAIL = value; + } + + if (/^((full[ _-]?)?name)$/i.test(key)) { + fullName = value; + } + + if (/^(first[ _-]?name)$/i.test(key)) { + payload.FNAME = value; + } + + if (/^(last[ _-]?name)$/i.test(key)) { + payload.LNAME = value; + } + }); + + if (fullName && !payload.FNAME) { + fullName = fullName.split(' '); + payload.FNAME = fullName[0]; + payload.LNAME = payload.LNAME || fullName[1]; + } // Use the (undocumented) MailChimp jsonp api + + + var url = data.action.replace('/post?', '/post-json?') + '&c=?'; // Add special param to prevent bot signups + + var userId = url.indexOf('u=') + 2; + userId = url.substring(userId, url.indexOf('&', userId)); + var listId = url.indexOf('id=') + 3; + listId = url.substring(listId, url.indexOf('&', listId)); + payload['b_' + userId + '_' + listId] = ''; + $.ajax({ + url: url, + data: payload, + dataType: 'jsonp' + }).done(function (resp) { + data.success = resp.result === 'success' || /already/.test(resp.msg); + + if (!data.success) { + console.info('MailChimp error: ' + resp.msg); + } + + afterSubmit(data); + }).fail(function () { + afterSubmit(data); + }); + } // Common callback which runs after all Ajax submissions + + + function afterSubmit(data) { + var form = data.form; + var redirect = data.redirect; + var success = data.success; // Redirect to a success url if defined + + if (success && redirect) { + Webflow.location(redirect); + return; + } // Show or hide status divs + + + data.done.toggle(success); + data.fail.toggle(!success); + + if (success) { + data.done.focus(); + } else { + data.fail.focus(); + } // Hide form on success + + + form.toggle(!success); // Reset data and enable submit button + + reset(data); + } + + function preventDefault(data) { + data.evt && data.evt.preventDefault(); + data.evt = null; + } + + function initFileUpload(i, form) { + if (!form.fileUploads || !form.fileUploads[i]) { + return; + } + + var file; + var $el = $(form.fileUploads[i]); + var $defaultWrap = $el.find('> .w-file-upload-default'); + var $uploadingWrap = $el.find('> .w-file-upload-uploading'); + var $successWrap = $el.find('> .w-file-upload-success'); + var $errorWrap = $el.find('> .w-file-upload-error'); + var $input = $defaultWrap.find('.w-file-upload-input'); + var $label = $defaultWrap.find('.w-file-upload-label'); + var $labelChildren = $label.children(); + var $errorMsgEl = $errorWrap.find('.w-file-upload-error-msg'); + var $fileEl = $successWrap.find('.w-file-upload-file'); + var $removeEl = $successWrap.find('.w-file-remove-link'); + var $fileNameEl = $fileEl.find('.w-file-upload-file-name'); + var sizeErrMsg = $errorMsgEl.attr('data-w-size-error'); + var typeErrMsg = $errorMsgEl.attr('data-w-type-error'); + var genericErrMsg = $errorMsgEl.attr('data-w-generic-error'); // Accessiblity fixes + // The file upload Input is not stylable by the designer, so we are + // going to pretend the Label is the input. ¯\_(ツ)_/¯ + + if (!inApp) { + $label.on('click keydown', function (e) { + if (e.type === 'keydown' && e.which !== 13 && e.which !== 32) { + return; + } + + e.preventDefault(); + $input.click(); + }); + } // Both of these are added through CSS + + + $label.find('.w-icon-file-upload-icon').attr('aria-hidden', 'true'); + $removeEl.find('.w-icon-file-upload-remove').attr('aria-hidden', 'true'); + + if (!inApp) { + $removeEl.on('click keydown', function (e) { + if (e.type === 'keydown') { + if (e.which !== 13 && e.which !== 32) { + return; + } + + e.preventDefault(); + } + + $input.removeAttr('data-value'); + $input.val(''); + $fileNameEl.html(''); + $defaultWrap.toggle(true); + $successWrap.toggle(false); + $label.focus(); + }); + $input.on('change', function (e) { + file = e.target && e.target.files && e.target.files[0]; + + if (!file) { + return; + } // Show uploading + + + $defaultWrap.toggle(false); + $errorWrap.toggle(false); + $uploadingWrap.toggle(true); + $uploadingWrap.focus(); // Set filename + + $fileNameEl.text(file.name); // Disable submit button + + if (!isUploading()) { + disableBtn(form); + } + + form.fileUploads[i].uploading = true; + signFile(file, afterSign); + }); // Setting input width 1px and height equal label + // This is so the browser required error will show up + + var height = $label.outerHeight(); + $input.height(height); + $input.width(1); + } else { + $input.on('click', function (e) { + e.preventDefault(); + }); + $label.on('click', function (e) { + e.preventDefault(); + }); + $labelChildren.on('click', function (e) { + e.preventDefault(); + }); + } + + function parseError(err) { + var errorMsg = err.responseJSON && err.responseJSON.msg; + var userError = genericErrMsg; + + if (typeof errorMsg === 'string' && errorMsg.indexOf('InvalidFileTypeError') === 0) { + userError = typeErrMsg; + } else if (typeof errorMsg === 'string' && errorMsg.indexOf('MaxFileSizeError') === 0) { + userError = sizeErrMsg; + } + + $errorMsgEl.text(userError); + $input.removeAttr('data-value'); + $input.val(''); + $uploadingWrap.toggle(false); + $defaultWrap.toggle(true); + $errorWrap.toggle(true); + $errorWrap.focus(); + form.fileUploads[i].uploading = false; + + if (!isUploading()) { + reset(form); + } + } + + function afterSign(err, data) { + if (err) { + return parseError(err); + } + + var fileName = data.fileName; + var postData = data.postData; + var fileId = data.fileId; + var s3Url = data.s3Url; + $input.attr('data-value', fileId); + uploadS3(s3Url, postData, file, fileName, afterUpload); + } + + function afterUpload(err) { + if (err) { + return parseError(err); + } // Show success + + + $uploadingWrap.toggle(false); + $successWrap.css('display', 'inline-block'); + $successWrap.focus(); + form.fileUploads[i].uploading = false; + + if (!isUploading()) { + reset(form); + } + } + + function isUploading() { + var uploads = form.fileUploads && form.fileUploads.toArray() || []; + return uploads.some(function (value) { + return value.uploading; + }); + } + } + + function signFile(file, cb) { + var payload = new URLSearchParams({ + name: file.name, + size: file.size + }); + $.ajax({ + type: 'GET', + url: "".concat(signFileUrl, "?").concat(payload), + crossDomain: true + }).done(function (data) { + cb(null, data); + }).fail(function (err) { + cb(err); + }); + } + + function uploadS3(url, data, file, fileName, cb) { + var formData = new FormData(); + + for (var k in data) { + formData.append(k, data[k]); + } + + formData.append('file', file, fileName); + $.ajax({ + type: 'POST', + url: url, + data: formData, + processData: false, + contentType: false + }).done(function () { + cb(null); + }).fail(function (err) { + cb(err); + }); + } // Export module + + + return api; +}); + +/***/ }), +/* 335 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayWithHoles = __webpack_require__(336); + +var iterableToArrayLimit = __webpack_require__(337); + +var nonIterableRest = __webpack_require__(338); + +function _slicedToArray(arr, i) { + return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest(); +} + +module.exports = _slicedToArray; + +/***/ }), +/* 336 */ +/***/ (function(module, exports) { + +function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} + +module.exports = _arrayWithHoles; + +/***/ }), +/* 337 */ +/***/ (function(module, exports) { + +function _iterableToArrayLimit(arr, i) { + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; +} + +module.exports = _iterableToArrayLimit; + +/***/ }), +/* 338 */ +/***/ (function(module, exports) { + +function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance"); +} + +module.exports = _nonIterableRest; + +/***/ }), +/* 339 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals window, document */ + +/* eslint-disable no-var */ + +/** + * Webflow: Navbar component + */ + +var Webflow = __webpack_require__(4); + +var IXEvents = __webpack_require__(69); + +var KEY_CODES = { + ARROW_LEFT: 37, + ARROW_UP: 38, + ARROW_RIGHT: 39, + ARROW_DOWN: 40, + ESCAPE: 27, + SPACE: 32, + ENTER: 13, + HOME: 36, + END: 35 +}; +Webflow.define('navbar', module.exports = function ($, _) { + var api = {}; + var tram = $.tram; + var $win = $(window); + var $doc = $(document); + var debounce = _.debounce; + var $body; + var $navbars; + var designer; + var inEditor; + var inApp = Webflow.env(); + var overlay = '
'; + var namespace = '.w-nav'; + var navbarOpenedButton = 'w--open'; + var navbarOpenedDropdown = 'w--nav-dropdown-open'; + var navbarOpenedDropdownToggle = 'w--nav-dropdown-toggle-open'; + var navbarOpenedDropdownList = 'w--nav-dropdown-list-open'; + var navbarOpenedLink = 'w--nav-link-open'; + var ix = IXEvents.triggers; + var menuSibling = $(); // ----------------------------------- + // Module methods + + api.ready = api.design = api.preview = init; + + api.destroy = function () { + menuSibling = $(); + removeListeners(); + + if ($navbars && $navbars.length) { + $navbars.each(teardown); + } + }; // ----------------------------------- + // Private methods + + + function init() { + designer = inApp && Webflow.env('design'); + inEditor = Webflow.env('editor'); + $body = $(document.body); // Find all instances on the page + + $navbars = $doc.find(namespace); + + if (!$navbars.length) { + return; + } + + $navbars.each(build); // Wire events + + removeListeners(); + addListeners(); + } + + function removeListeners() { + Webflow.resize.off(resizeAll); + } + + function addListeners() { + Webflow.resize.on(resizeAll); + } + + function resizeAll() { + $navbars.each(resize); + } + + function build(i, el) { + var $el = $(el); // Store state in data + + var data = $.data(el, namespace); + + if (!data) { + data = $.data(el, namespace, { + open: false, + el: $el, + config: {}, + selectedIdx: -1 + }); + } + + data.menu = $el.find('.w-nav-menu'); + data.links = data.menu.find('.w-nav-link'); + data.dropdowns = data.menu.find('.w-dropdown'); + data.dropdownToggle = data.menu.find('.w-dropdown-toggle'); + data.dropdownList = data.menu.find('.w-dropdown-list'); + data.button = $el.find('.w-nav-button'); + data.container = $el.find('.w-container'); + data.overlayContainerId = 'w-nav-overlay-' + i; + data.outside = outside(data); // If the brand links exists and is set to link to the homepage, the + // default setting, then add an aria-label + + var navBrandLink = $el.find('.w-nav-brand'); + + if (navBrandLink && navBrandLink.attr('href') === '/' && navBrandLink.attr('aria-label') == null) { + navBrandLink.attr('aria-label', 'home'); + } // VoiceOver bug, when items that disallow user selection are focused + // VoiceOver gets confused and scrolls to the end of the page. ¯\_(ツ)_/¯ + + + data.button.attr('style', '-webkit-user-select: text;'); // Add attributes to toggle element + + if (data.button.attr('aria-label') == null) { + data.button.attr('aria-label', 'menu'); + } + + data.button.attr('role', 'button'); + data.button.attr('tabindex', '0'); + data.button.attr('aria-controls', data.overlayContainerId); + data.button.attr('aria-haspopup', 'menu'); + data.button.attr('aria-expanded', 'false'); // Remove old events + + data.el.off(namespace); + data.button.off(namespace); + data.menu.off(namespace); // Set config from data attributes + + configure(data); // Add events based on mode + + if (designer) { + removeOverlay(data); + data.el.on('setting' + namespace, handler(data)); + } else { + addOverlay(data); + data.button.on('click' + namespace, toggle(data)); + data.menu.on('click' + namespace, 'a', navigate(data)); + data.button.on('keydown' + namespace, makeToggleButtonKeyboardHandler(data)); + data.el.on('keydown' + namespace, makeLinksKeyboardHandler(data)); + } // Trigger initial resize + + + resize(i, el); + } + + function teardown(i, el) { + var data = $.data(el, namespace); + + if (data) { + removeOverlay(data); + $.removeData(el, namespace); + } + } + + function removeOverlay(data) { + if (!data.overlay) { + return; + } + + close(data, true); + data.overlay.remove(); + data.overlay = null; + } + + function addOverlay(data) { + if (data.overlay) { + return; + } + + data.overlay = $(overlay).appendTo(data.el); + data.overlay.attr('id', data.overlayContainerId); + data.parent = data.menu.parent(); + close(data, true); + } + + function configure(data) { + var config = {}; + var old = data.config || {}; // Set config options from data attributes + + var animation = config.animation = data.el.attr('data-animation') || 'default'; + config.animOver = /^over/.test(animation); + config.animDirect = /left$/.test(animation) ? -1 : 1; // Re-open menu if the animation type changed + + if (old.animation !== animation) { + data.open && _.defer(reopen, data); + } + + config.easing = data.el.attr('data-easing') || 'ease'; + config.easing2 = data.el.attr('data-easing2') || 'ease'; + var duration = data.el.attr('data-duration'); + config.duration = duration != null ? Number(duration) : 400; + config.docHeight = data.el.attr('data-doc-height'); // Store config in data + + data.config = config; + } + + function handler(data) { + return function (evt, options) { + options = options || {}; + var winWidth = $win.width(); + configure(data); + options.open === true && open(data, true); + options.open === false && close(data, true); // Reopen if media query changed after setting + + data.open && _.defer(function () { + if (winWidth !== $win.width()) { + reopen(data); + } + }); + }; + } + + function makeToggleButtonKeyboardHandler(data) { + return function (evt) { + switch (evt.keyCode) { + case KEY_CODES.SPACE: + case KEY_CODES.ENTER: + { + // Toggle returns a function + toggle(data)(); + evt.preventDefault(); + return evt.stopPropagation(); + } + + case KEY_CODES.ESCAPE: + { + close(data); + evt.preventDefault(); + return evt.stopPropagation(); + } + + case KEY_CODES.ARROW_RIGHT: + case KEY_CODES.ARROW_DOWN: + case KEY_CODES.HOME: + case KEY_CODES.END: + { + if (!data.open) { + evt.preventDefault(); + return evt.stopPropagation(); + } + + if (evt.keyCode === KEY_CODES.END) { + data.selectedIdx = data.links.length - 1; + } else { + data.selectedIdx = 0; + } + + focusSelectedLink(data); + evt.preventDefault(); + return evt.stopPropagation(); + } + } + }; + } + + function makeLinksKeyboardHandler(data) { + return function (evt) { + if (!data.open) { + return; + } // Realign selectedIdx with the menu item that is currently in focus. + // We need this because we do not track the `Tab` key activity! + + + data.selectedIdx = data.links.index(document.activeElement); + + switch (evt.keyCode) { + case KEY_CODES.HOME: + case KEY_CODES.END: + { + if (evt.keyCode === KEY_CODES.END) { + data.selectedIdx = data.links.length - 1; + } else { + data.selectedIdx = 0; + } + + focusSelectedLink(data); + evt.preventDefault(); + return evt.stopPropagation(); + } + + case KEY_CODES.ESCAPE: + { + close(data); // Focus toggle button + + data.button.focus(); + evt.preventDefault(); + return evt.stopPropagation(); + } + + case KEY_CODES.ARROW_LEFT: + case KEY_CODES.ARROW_UP: + { + data.selectedIdx = Math.max(-1, data.selectedIdx - 1); + focusSelectedLink(data); + evt.preventDefault(); + return evt.stopPropagation(); + } + + case KEY_CODES.ARROW_RIGHT: + case KEY_CODES.ARROW_DOWN: + { + data.selectedIdx = Math.min(data.links.length - 1, data.selectedIdx + 1); + focusSelectedLink(data); + evt.preventDefault(); + return evt.stopPropagation(); + } + } + }; + } + + function focusSelectedLink(data) { + if (data.links[data.selectedIdx]) { + var selectedElement = data.links[data.selectedIdx]; + selectedElement.focus(); + navigate(selectedElement); + } + } + + function reopen(data) { + if (!data.open) { + return; + } + + close(data, true); + open(data, true); + } + + function toggle(data) { + // Debounce toggle to wait for accurate open state + return debounce(function () { + data.open ? close(data) : open(data); + }); + } + + function navigate(data) { + return function (evt) { + var link = $(this); + var href = link.attr('href'); // Avoid late clicks on touch devices + + if (!Webflow.validClick(evt.currentTarget)) { + evt.preventDefault(); + return; + } // Close when navigating to an in-page anchor + + + if (href && href.indexOf('#') === 0 && data.open) { + close(data); + } + }; + } + + function outside(data) { + // Unbind previous click handler if it exists + if (data.outside) { + $doc.off('click' + namespace, data.outside); + } + + return function (evt) { + var $target = $(evt.target); // Ignore clicks on Editor overlay UI + + if (inEditor && $target.closest('.w-editor-bem-EditorOverlay').length) { + return; + } // Close menu when clicked outside, debounced to wait for state + + + outsideDebounced(data, $target); + }; + } + + var outsideDebounced = debounce(function (data, $target) { + if (!data.open) { + return; + } + + var menu = $target.closest('.w-nav-menu'); + + if (!data.menu.is(menu)) { + close(data); + } + }); + + function resize(i, el) { + var data = $.data(el, namespace); // Check for collapsed state based on button display + + var collapsed = data.collapsed = data.button.css('display') !== 'none'; // Close menu if button is no longer visible (and not in designer) + + if (data.open && !collapsed && !designer) { + close(data, true); + } // Set max-width of links + dropdowns to match container + + + if (data.container.length) { + var updateEachMax = updateMax(data); + data.links.each(updateEachMax); + data.dropdowns.each(updateEachMax); + } // If currently open, update height to match body + + + if (data.open) { + setOverlayHeight(data); + } + } + + var maxWidth = 'max-width'; + + function updateMax(data) { + // Set max-width of each element to match container + var containMax = data.container.css(maxWidth); + + if (containMax === 'none') { + containMax = ''; + } + + return function (i, link) { + link = $(link); + link.css(maxWidth, ''); // Don't set the max-width if an upstream value exists + + if (link.css(maxWidth) === 'none') { + link.css(maxWidth, containMax); + } + }; + } + + function addMenuOpen(i, el) { + el.setAttribute('data-nav-menu-open', ''); + } + + function removeMenuOpen(i, el) { + el.removeAttribute('data-nav-menu-open'); + } + + function open(data, immediate) { + if (data.open) { + return; + } + + data.open = true; + data.menu.each(addMenuOpen); + data.links.addClass(navbarOpenedLink); + data.dropdowns.addClass(navbarOpenedDropdown); + data.dropdownToggle.addClass(navbarOpenedDropdownToggle); + data.dropdownList.addClass(navbarOpenedDropdownList); + data.button.addClass(navbarOpenedButton); + var config = data.config; + var animation = config.animation; + + if (animation === 'none' || !tram.support.transform || config.duration <= 0) { + immediate = true; + } + + var bodyHeight = setOverlayHeight(data); + var menuHeight = data.menu.outerHeight(true); + var menuWidth = data.menu.outerWidth(true); + var navHeight = data.el.height(); + var navbarEl = data.el[0]; + resize(0, navbarEl); + ix.intro(0, navbarEl); + Webflow.redraw.up(); // Listen for click outside events + + if (!designer) { + $doc.on('click' + namespace, data.outside); + } // No transition for immediate + + + if (immediate) { + complete(); + return; + } + + var transConfig = 'transform ' + config.duration + 'ms ' + config.easing; // Add menu to overlay + + if (data.overlay) { + menuSibling = data.menu.prev(); + data.overlay.show().append(data.menu); + } // Over left/right + + + if (config.animOver) { + tram(data.menu).add(transConfig).set({ + x: config.animDirect * menuWidth, + height: bodyHeight + }).start({ + x: 0 + }).then(complete); + data.overlay && data.overlay.width(menuWidth); + return; + } // Drop Down + + + var offsetY = navHeight + menuHeight; + tram(data.menu).add(transConfig).set({ + y: -offsetY + }).start({ + y: 0 + }).then(complete); + + function complete() { + data.button.attr('aria-expanded', 'true'); + } + } + + function setOverlayHeight(data) { + var config = data.config; + var bodyHeight = config.docHeight ? $doc.height() : $body.height(); + + if (config.animOver) { + data.menu.height(bodyHeight); + } else if (data.el.css('position') !== 'fixed') { + bodyHeight -= data.el.outerHeight(true); + } + + data.overlay && data.overlay.height(bodyHeight); + return bodyHeight; + } + + function close(data, immediate) { + if (!data.open) { + return; + } + + data.open = false; + data.button.removeClass(navbarOpenedButton); + var config = data.config; + + if (config.animation === 'none' || !tram.support.transform || config.duration <= 0) { + immediate = true; + } + + ix.outro(0, data.el[0]); // Stop listening for click outside events + + $doc.off('click' + namespace, data.outside); + + if (immediate) { + tram(data.menu).stop(); + complete(); + return; + } + + var transConfig = 'transform ' + config.duration + 'ms ' + config.easing2; + var menuHeight = data.menu.outerHeight(true); + var menuWidth = data.menu.outerWidth(true); + var navHeight = data.el.height(); // Over left/right + + if (config.animOver) { + tram(data.menu).add(transConfig).start({ + x: menuWidth * config.animDirect + }).then(complete); + return; + } // Drop Down + + + var offsetY = navHeight + menuHeight; + tram(data.menu).add(transConfig).start({ + y: -offsetY + }).then(complete); + + function complete() { + data.menu.height(''); + tram(data.menu).set({ + x: 0, + y: 0 + }); + data.menu.each(removeMenuOpen); + data.links.removeClass(navbarOpenedLink); + data.dropdowns.removeClass(navbarOpenedDropdown); + data.dropdownToggle.removeClass(navbarOpenedDropdownToggle); + data.dropdownList.removeClass(navbarOpenedDropdownList); + + if (data.overlay && data.overlay.children().length) { + // Move menu back to parent at the original location + menuSibling.length ? data.menu.insertAfter(menuSibling) : data.menu.prependTo(data.parent); + data.overlay.attr('style', '').hide(); + } // Trigger event so other components can hook in (dropdown) + + + data.el.triggerHandler('w-close'); + data.button.attr('aria-expanded', 'false'); + } + } // Export module + + + return api; +}); + +/***/ }) +/******/ ]);/** + * ---------------------------------------------------------------------- + * Webflow: Interactions 2.0: Init + */ +Webflow.require('ix2').init( +{"events":{"e":{"id":"e","name":"","animationType":"custom","eventTypeId":"NAVBAR_OPEN","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-2"}},"mediaQueries":["medium","small","tiny"],"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e4b","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"168641a1-4189-3d35-88f0-3cb624138e4b","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646043667332},"e-2":{"id":"e-2","name":"","animationType":"custom","eventTypeId":"NAVBAR_CLOSE","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-2","affectedElements":{},"playInReverse":false,"autoStopEventId":"e"}},"mediaQueries":["medium","small","tiny"],"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e4b","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"168641a1-4189-3d35-88f0-3cb624138e4b","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646043667353},"e-3":{"id":"e-3","name":"","animationType":"custom","eventTypeId":"PAGE_SCROLL_UP","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-3","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-4"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf80eccde88d","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf80eccde88d","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1646044394909},"e-4":{"id":"e-4","name":"","animationType":"custom","eventTypeId":"PAGE_SCROLL_DOWN","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-4","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-3"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf80eccde88d","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf80eccde88d","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1646044394910},"e-5":{"id":"e-5","name":"","animationType":"custom","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-5","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-6"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"00dffee7-9d65-a623-f93f-03dcd1b62724","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"00dffee7-9d65-a623-f93f-03dcd1b62724","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646133063839},"e-6":{"id":"e-6","name":"","animationType":"custom","eventTypeId":"MOUSE_SECOND_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-6","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-5"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"00dffee7-9d65-a623-f93f-03dcd1b62724","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"00dffee7-9d65-a623-f93f-03dcd1b62724","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646133063839},"e-7":{"id":"e-7","name":"","animationType":"preset","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-5","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-8"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf80eccde88d|8530818c-3f47-fbc9-2b53-1e07e5d928ca","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf80eccde88d|8530818c-3f47-fbc9-2b53-1e07e5d928ca","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646134033825},"e-8":{"id":"e-8","name":"","animationType":"preset","eventTypeId":"MOUSE_SECOND_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-6","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-7"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf80eccde88d|8530818c-3f47-fbc9-2b53-1e07e5d928ca","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf80eccde88d|8530818c-3f47-fbc9-2b53-1e07e5d928ca","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646134033825},"e-9":{"id":"e-9","name":"","animationType":"custom","eventTypeId":"PAGE_START","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-7","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-10"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf80eccde88d","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf80eccde88d","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646201675590},"e-10":{"id":"e-10","name":"","animationType":"custom","eventTypeId":"PAGE_FINISH","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-8","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-9"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf80eccde88d","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf80eccde88d","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646201675590},"e-12":{"id":"e-12","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-10","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-13"}},"mediaQueries":["main","medium","small","tiny"],"target":{"selector":".absolute-wrapper","originalId":"631e4c55f265cf80eccde88d|13c88868-8ca3-8030-1081-d83fcab41c29","appliesTo":"CLASS"},"targets":[{"selector":".absolute-wrapper","originalId":"631e4c55f265cf80eccde88d|13c88868-8ca3-8030-1081-d83fcab41c29","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":20,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1646206877989},"e-14":{"id":"e-14","name":"","animationType":"custom","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-15","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf80eccde88d|3dbf66d8-80c3-d103-ef52-5c1851ace62b","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf80eccde88d|3dbf66d8-80c3-d103-ef52-5c1851ace62b","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-15-p","smoothing":50,"startsEntering":true,"addStartOffset":true,"addOffsetValue":380,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1646209906031},"e-15":{"id":"e-15","name":"","animationType":"custom","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-11","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-16"}},"mediaQueries":["main"],"target":{"selector":".link-wrapper","originalId":"168641a1-4189-3d35-88f0-3cb624138e50","appliesTo":"CLASS"},"targets":[{"selector":".link-wrapper","originalId":"168641a1-4189-3d35-88f0-3cb624138e50","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646211790012},"e-16":{"id":"e-16","name":"","animationType":"custom","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-12","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-15"}},"mediaQueries":["main"],"target":{"selector":".link-wrapper","originalId":"168641a1-4189-3d35-88f0-3cb624138e50","appliesTo":"CLASS"},"targets":[{"selector":".link-wrapper","originalId":"168641a1-4189-3d35-88f0-3cb624138e50","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646211790012},"e-17":{"id":"e-17","name":"","animationType":"custom","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-11","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-18"}},"mediaQueries":["main"],"target":{"selector":".footer-link","originalId":"da24ec96-dae6-824f-f75e-300d303b5c0f","appliesTo":"CLASS"},"targets":[{"selector":".footer-link","originalId":"da24ec96-dae6-824f-f75e-300d303b5c0f","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646212457924},"e-18":{"id":"e-18","name":"","animationType":"custom","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-12","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-17"}},"mediaQueries":["main"],"target":{"selector":".footer-link","originalId":"da24ec96-dae6-824f-f75e-300d303b5c0f","appliesTo":"CLASS"},"targets":[{"selector":".footer-link","originalId":"da24ec96-dae6-824f-f75e-300d303b5c0f","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646212457924},"e-19":{"id":"e-19","name":"","animationType":"custom","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-13","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-20"}},"mediaQueries":["main"],"target":{"selector":".primary-button","originalId":"631e4c55f265cf80eccde88d|2ccbf419-d953-fde6-3eff-375e16dd0ebc","appliesTo":"CLASS"},"targets":[{"selector":".primary-button","originalId":"631e4c55f265cf80eccde88d|2ccbf419-d953-fde6-3eff-375e16dd0ebc","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646212588891},"e-20":{"id":"e-20","name":"","animationType":"custom","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-14","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-19"}},"mediaQueries":["main"],"target":{"selector":".primary-button","originalId":"631e4c55f265cf80eccde88d|2ccbf419-d953-fde6-3eff-375e16dd0ebc","appliesTo":"CLASS"},"targets":[{"selector":".primary-button","originalId":"631e4c55f265cf80eccde88d|2ccbf419-d953-fde6-3eff-375e16dd0ebc","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646212588891},"e-21":{"id":"e-21","name":"","animationType":"custom","eventTypeId":"PAGE_START","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-7","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-22"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf3a01cde893","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf3a01cde893","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646213778403},"e-22":{"id":"e-22","name":"","animationType":"custom","eventTypeId":"PAGE_FINISH","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-8","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-21"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf3a01cde893","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf3a01cde893","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646213778404},"e-23":{"id":"e-23","name":"","animationType":"custom","eventTypeId":"PAGE_SCROLL_UP","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-3","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-24"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf3a01cde893","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf3a01cde893","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1646213794854},"e-24":{"id":"e-24","name":"","animationType":"custom","eventTypeId":"PAGE_SCROLL_DOWN","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-4","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-23"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf3a01cde893","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf3a01cde893","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1646213794880},"e-25":{"id":"e-25","name":"","animationType":"preset","eventTypeId":"NAVBAR_OPEN","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-26"}},"mediaQueries":["medium","small","tiny"],"target":{"id":"631e4c55f265cf3a01cde893|2a990361-4377-48ba-de99-5ea8887bf041","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf3a01cde893|2a990361-4377-48ba-de99-5ea8887bf041","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646216565201},"e-26":{"id":"e-26","name":"","animationType":"preset","eventTypeId":"NAVBAR_CLOSE","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-2","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-25"}},"mediaQueries":["medium","small","tiny"],"target":{"id":"631e4c55f265cf3a01cde893|2a990361-4377-48ba-de99-5ea8887bf041","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf3a01cde893|2a990361-4377-48ba-de99-5ea8887bf041","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646216565201},"e-29":{"id":"e-29","name":"","animationType":"custom","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-9","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"selector":".roadmap.for-roadmap","originalId":"631e4c55f265cf80eccde88d|3e5a6f67-0775-4b37-5333-a1c0c45bafc5","appliesTo":"CLASS"},"targets":[{"selector":".roadmap.for-roadmap","originalId":"631e4c55f265cf80eccde88d|3e5a6f67-0775-4b37-5333-a1c0c45bafc5","appliesTo":"CLASS"}],"config":[{"continuousParameterGroupId":"a-9-p","smoothing":50,"startsEntering":true,"addStartOffset":true,"addOffsetValue":200,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1646216740493},"e-30":{"id":"e-30","name":"","animationType":"custom","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-15","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"selector":".roadmap.for-style-guide","originalId":"631e4c55f265cf3a01cde893|3dbf66d8-80c3-d103-ef52-5c1851ace618","appliesTo":"CLASS"},"targets":[{"selector":".roadmap.for-style-guide","originalId":"631e4c55f265cf3a01cde893|3dbf66d8-80c3-d103-ef52-5c1851ace618","appliesTo":"CLASS"}],"config":[{"continuousParameterGroupId":"a-15-p","smoothing":50,"startsEntering":true,"addStartOffset":true,"addOffsetValue":380,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1646216780913},"e-31":{"id":"e-31","name":"","animationType":"preset","eventTypeId":"NAVBAR_OPEN","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-32"}},"mediaQueries":["medium","small","tiny"],"target":{"id":"631e4c55f265cf837ccde892|c5a9abca-9bae-fa16-90aa-63b7ce95c66d","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf837ccde892|c5a9abca-9bae-fa16-90aa-63b7ce95c66d","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646218060509},"e-32":{"id":"e-32","name":"","animationType":"preset","eventTypeId":"NAVBAR_CLOSE","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-2","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-31"}},"mediaQueries":["medium","small","tiny"],"target":{"id":"631e4c55f265cf837ccde892|c5a9abca-9bae-fa16-90aa-63b7ce95c66d","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf837ccde892|c5a9abca-9bae-fa16-90aa-63b7ce95c66d","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646218060509},"e-33":{"id":"e-33","name":"","animationType":"custom","eventTypeId":"PAGE_START","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-7","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-34"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf837ccde892","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf837ccde892","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646218073157},"e-34":{"id":"e-34","name":"","animationType":"custom","eventTypeId":"PAGE_FINISH","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-8","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-33"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf837ccde892","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf837ccde892","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646218073157},"e-35":{"id":"e-35","name":"","animationType":"custom","eventTypeId":"PAGE_SCROLL_UP","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-3","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-36"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf837ccde892","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf837ccde892","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1646218089775},"e-36":{"id":"e-36","name":"","animationType":"custom","eventTypeId":"PAGE_SCROLL_DOWN","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-4","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-35"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf837ccde892","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf837ccde892","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1646218089802},"e-37":{"id":"e-37","name":"","animationType":"preset","eventTypeId":"NAVBAR_OPEN","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-38"}},"mediaQueries":["medium","small","tiny"],"target":{"id":"631e4c55f265cfd1e0cde891|e7d89efc-6b51-6ff3-b651-7f60e750d80b","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cfd1e0cde891|e7d89efc-6b51-6ff3-b651-7f60e750d80b","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646221644428},"e-38":{"id":"e-38","name":"","animationType":"preset","eventTypeId":"NAVBAR_CLOSE","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-2","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-37"}},"mediaQueries":["medium","small","tiny"],"target":{"id":"631e4c55f265cfd1e0cde891|e7d89efc-6b51-6ff3-b651-7f60e750d80b","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cfd1e0cde891|e7d89efc-6b51-6ff3-b651-7f60e750d80b","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646221644428},"e-39":{"id":"e-39","name":"","animationType":"custom","eventTypeId":"PAGE_START","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-7","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-40"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cfd1e0cde891","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cfd1e0cde891","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646221814303},"e-40":{"id":"e-40","name":"","animationType":"custom","eventTypeId":"PAGE_FINISH","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-8","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-39"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cfd1e0cde891","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cfd1e0cde891","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646221814303},"e-41":{"id":"e-41","name":"","animationType":"custom","eventTypeId":"PAGE_SCROLL_UP","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-3","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-42"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cfd1e0cde891","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cfd1e0cde891","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1646221829440},"e-42":{"id":"e-42","name":"","animationType":"custom","eventTypeId":"PAGE_SCROLL_DOWN","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-4","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-41"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cfd1e0cde891","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cfd1e0cde891","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1646221829441},"e-43":{"id":"e-43","name":"","animationType":"preset","eventTypeId":"NAVBAR_OPEN","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-44"}},"mediaQueries":["medium","small","tiny"],"target":{"id":"631e4c55f265cf31b5cde890|48aad16a-11d4-2829-7bae-bacf83e01d73","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf31b5cde890|48aad16a-11d4-2829-7bae-bacf83e01d73","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646222291395},"e-44":{"id":"e-44","name":"","animationType":"preset","eventTypeId":"NAVBAR_CLOSE","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-2","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-43"}},"mediaQueries":["medium","small","tiny"],"target":{"id":"631e4c55f265cf31b5cde890|48aad16a-11d4-2829-7bae-bacf83e01d73","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf31b5cde890|48aad16a-11d4-2829-7bae-bacf83e01d73","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646222291395},"e-45":{"id":"e-45","name":"","animationType":"custom","eventTypeId":"PAGE_START","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-7","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-46"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf31b5cde890","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf31b5cde890","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646222677511},"e-46":{"id":"e-46","name":"","animationType":"custom","eventTypeId":"PAGE_FINISH","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-8","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-45"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf31b5cde890","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf31b5cde890","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646222677511},"e-47":{"id":"e-47","name":"","animationType":"custom","eventTypeId":"PAGE_SCROLL_UP","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-3","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-48"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf31b5cde890","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf31b5cde890","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1646222696009},"e-48":{"id":"e-48","name":"","animationType":"custom","eventTypeId":"PAGE_SCROLL_DOWN","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-4","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-47"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf31b5cde890","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf31b5cde890","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1646222696036},"e-51":{"id":"e-51","name":"","animationType":"custom","eventTypeId":"PAGE_START","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-7","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-52"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf77f4cde88f","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf77f4cde88f","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646224312114},"e-52":{"id":"e-52","name":"","animationType":"custom","eventTypeId":"PAGE_FINISH","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-8","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-51"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf77f4cde88f","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf77f4cde88f","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646224312114},"e-53":{"id":"e-53","name":"","animationType":"custom","eventTypeId":"PAGE_SCROLL_UP","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-3","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-54"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf77f4cde88f","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf77f4cde88f","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1646224324499},"e-54":{"id":"e-54","name":"","animationType":"custom","eventTypeId":"PAGE_SCROLL_DOWN","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-4","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-53"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"631e4c55f265cf77f4cde88f","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf77f4cde88f","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1646224324525},"e-55":{"id":"e-55","name":"","animationType":"preset","eventTypeId":"NAVBAR_OPEN","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-56"}},"mediaQueries":["medium","small","tiny"],"target":{"id":"631e4c55f265cf77f4cde88f|6a9d0035-0411-4622-1eb6-61dd9cc1dbe4","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf77f4cde88f|6a9d0035-0411-4622-1eb6-61dd9cc1dbe4","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646224419714},"e-56":{"id":"e-56","name":"","animationType":"preset","eventTypeId":"NAVBAR_CLOSE","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-2","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-55"}},"mediaQueries":["medium","small","tiny"],"target":{"id":"631e4c55f265cf77f4cde88f|6a9d0035-0411-4622-1eb6-61dd9cc1dbe4","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"631e4c55f265cf77f4cde88f|6a9d0035-0411-4622-1eb6-61dd9cc1dbe4","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1646224419714}},"actionLists":{"a":{"id":"a","title":"Navbar Open","actionItemGroups":[{"actionItems":[{"id":"a-n","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".open-menu-icon","selectorGuids":["8d527178-c2fd-d844-5b15-1e20cdec87d1"]},"value":1,"unit":""}},{"id":"a-n-5","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".navbar-white-overlay","selectorGuids":["652d56d8-fc16-4b2c-20bc-68a78336f769"]},"value":0,"unit":""}},{"id":"a-n-2","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".close-menu-icon","selectorGuids":["97cc2556-5b63-c634-604e-52fbe5aab905"]},"value":0,"unit":""}}]},{"actionItems":[{"id":"a-n-3","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"ease","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".close-menu-icon","selectorGuids":["97cc2556-5b63-c634-604e-52fbe5aab905"]},"value":1,"unit":""}},{"id":"a-n-6","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"ease","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".navbar-white-overlay","selectorGuids":["652d56d8-fc16-4b2c-20bc-68a78336f769"]},"value":1,"unit":""}},{"id":"a-n-4","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"ease","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".open-menu-icon","selectorGuids":["8d527178-c2fd-d844-5b15-1e20cdec87d1"]},"value":0,"unit":""}}]}],"useFirstGroupAsInitialState":true,"createdOn":1646043673810},"a-2":{"id":"a-2","title":"Navbar Close","actionItemGroups":[{"actionItems":[{"id":"a-2-n","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"ease","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".open-menu-icon","selectorGuids":["8d527178-c2fd-d844-5b15-1e20cdec87d1"]},"value":1,"unit":""}},{"id":"a-2-n-2","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"ease","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".close-menu-icon","selectorGuids":["97cc2556-5b63-c634-604e-52fbe5aab905"]},"value":0,"unit":""}},{"id":"a-2-n-3","actionTypeId":"STYLE_OPACITY","config":{"delay":200,"easing":"ease","duration":300,"target":{"useEventTarget":"CHILDREN","selector":".navbar-white-overlay","selectorGuids":["652d56d8-fc16-4b2c-20bc-68a78336f769"]},"value":0,"unit":""}}]}],"useFirstGroupAsInitialState":false,"createdOn":1646043673810},"a-3":{"id":"a-3","title":"Show Navbar","actionItemGroups":[{"actionItems":[{"id":"a-3-n","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"ease","duration":400,"target":{"selector":".navbar","selectorGuids":["1405bb0c-89c0-43fa-5706-8340bb8a365e"]},"yValue":0,"xUnit":"PX","yUnit":"%","zUnit":"PX"}}]}],"useFirstGroupAsInitialState":false,"createdOn":1646044398330},"a-4":{"id":"a-4","title":"Hide Navbar","actionItemGroups":[{"actionItems":[{"id":"a-4-n","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"ease","duration":400,"target":{"selector":".navbar","selectorGuids":["1405bb0c-89c0-43fa-5706-8340bb8a365e"]},"yValue":-100,"xUnit":"PX","yUnit":"%","zUnit":"PX"}}]}],"useFirstGroupAsInitialState":false,"createdOn":1646044398330},"a-5":{"id":"a-5","title":"Faq Open","actionItemGroups":[{"actionItems":[{"id":"a-5-n","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"SIBLINGS","selector":".faq-answer-container","selectorGuids":["68003639-e0af-dc54-69e4-f774eeab6143"]},"widthValue":100,"heightValue":0,"widthUnit":"%","heightUnit":"px","locked":false}},{"id":"a-5-n-3","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".plus-vertical-line","selectorGuids":["d17ccfc8-4d24-2e2d-f389-2c6741241259"]},"zValue":0,"xUnit":"DEG","yUnit":"DEG","zUnit":"deg"}}]},{"actionItems":[{"id":"a-5-n-2","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"ease","duration":500,"target":{"useEventTarget":"SIBLINGS","selector":".faq-answer-container","selectorGuids":["68003639-e0af-dc54-69e4-f774eeab6143"]},"widthValue":100,"widthUnit":"%","heightUnit":"AUTO","locked":false}},{"id":"a-5-n-4","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"ease","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".plus-vertical-line","selectorGuids":["d17ccfc8-4d24-2e2d-f389-2c6741241259"]},"zValue":90,"xUnit":"DEG","yUnit":"DEG","zUnit":"deg"}}]}],"useFirstGroupAsInitialState":true,"createdOn":1646133068106},"a-6":{"id":"a-6","title":"Faq Close","actionItemGroups":[{"actionItems":[{"id":"a-6-n","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"ease","duration":500,"target":{"useEventTarget":"SIBLINGS","selector":".faq-answer-container","selectorGuids":["68003639-e0af-dc54-69e4-f774eeab6143"]},"widthValue":100,"heightValue":0,"widthUnit":"%","heightUnit":"px","locked":false}},{"id":"a-6-n-2","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"ease","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".plus-vertical-line","selectorGuids":["d17ccfc8-4d24-2e2d-f389-2c6741241259"]},"zValue":0,"xUnit":"DEG","yUnit":"DEG","zUnit":"deg"}}]}],"useFirstGroupAsInitialState":false,"createdOn":1646133068106},"a-7":{"id":"a-7","title":"Loader Animation","actionItemGroups":[{"actionItems":[{"id":"a-7-n","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"target":{"id":"17455af9-c94a-9952-be86-c34eab95daec"},"value":"none"}},{"id":"a-7-n-7","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"17455af9-c94a-9952-be86-c34eab95daec"},"value":1,"unit":""}},{"id":"a-7-n-5","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".loader-inner.third","selectorGuids":["0a022d60-8921-aa07-e88d-661d26b59b2c","49a3966e-9308-9e2d-126b-da542e8a0353"]},"value":0,"unit":""}},{"id":"a-7-n-3","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".loader-inner.second","selectorGuids":["0a022d60-8921-aa07-e88d-661d26b59b2c","81c71dba-339b-fa06-e99c-43e3330e27ba"]},"value":0,"unit":""}}]},{"actionItems":[{"id":"a-7-n-2","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"target":{"id":"17455af9-c94a-9952-be86-c34eab95daec"},"value":"flex"}},{"id":"a-7-n-12","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":0,"target":{"id":"17455af9-c94a-9952-be86-c34eab95daec"},"value":1,"unit":""}}]},{"actionItems":[{"id":"a-7-n-4","actionTypeId":"STYLE_OPACITY","config":{"delay":650,"easing":"","duration":0,"target":{"selector":".loader-inner.second","selectorGuids":["0a022d60-8921-aa07-e88d-661d26b59b2c","81c71dba-339b-fa06-e99c-43e3330e27ba"]},"value":1,"unit":""}}]},{"actionItems":[{"id":"a-7-n-6","actionTypeId":"STYLE_OPACITY","config":{"delay":650,"easing":"","duration":0,"target":{"selector":".loader-inner.third","selectorGuids":["0a022d60-8921-aa07-e88d-661d26b59b2c","49a3966e-9308-9e2d-126b-da542e8a0353"]},"value":1,"unit":""}}]},{"actionItems":[{"id":"a-7-n-8","actionTypeId":"STYLE_OPACITY","config":{"delay":650,"easing":"ease","duration":500,"target":{"id":"17455af9-c94a-9952-be86-c34eab95daec"},"value":0,"unit":""}}]},{"actionItems":[{"id":"a-7-n-9","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":0,"target":{"selector":".loader-inner.third","selectorGuids":["0a022d60-8921-aa07-e88d-661d26b59b2c","49a3966e-9308-9e2d-126b-da542e8a0353"]},"value":0,"unit":""}},{"id":"a-7-n-11","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"target":{"id":"17455af9-c94a-9952-be86-c34eab95daec"},"value":"none"}},{"id":"a-7-n-10","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":0,"target":{"selector":".loader-inner.second","selectorGuids":["0a022d60-8921-aa07-e88d-661d26b59b2c","81c71dba-339b-fa06-e99c-43e3330e27ba"]},"value":0,"unit":""}}]}],"useFirstGroupAsInitialState":true,"createdOn":1646201766340},"a-8":{"id":"a-8","title":"Hero Animation","actionItemGroups":[{"actionItems":[{"id":"a-8-n","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".hero-content","selectorGuids":["40253c2c-464b-c1b0-e0ab-78d99fd9a2a0"]},"value":0,"unit":""}},{"id":"a-8-n-52","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".link-wrapper.secondary-page","selectorGuids":["36e27251-2214-4cf1-eb45-396588119bad","92e31bd9-2991-2110-1abd-78844da5dff9"]},"yValue":-10,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-50","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".link-wrapper.secondary-page","selectorGuids":["36e27251-2214-4cf1-eb45-396588119bad","92e31bd9-2991-2110-1abd-78844da5dff9"]},"value":0,"unit":""}},{"id":"a-8-n-48","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".hero-image-wrapper.right","selectorGuids":["383c2f37-4bb6-efb2-8fe5-25ebbc9ce73f","e90f8225-ced3-3f81-07a4-c421e6487425"]},"xValue":12,"xUnit":"px","yUnit":"PX","zUnit":"PX"}},{"id":"a-8-n-43","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".menu-button","selectorGuids":["d5f566e3-b51c-4737-0900-bd1dbcf9d85f"]},"yValue":-10,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-41","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".menu-button","selectorGuids":["d5f566e3-b51c-4737-0900-bd1dbcf9d85f"]},"value":0,"unit":""}},{"id":"a-8-n-39","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".hero-mobile-text-and-btn","selectorGuids":["df415c40-8ad5-e26f-ef5c-e27ed2f83ee8"]},"yValue":12,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-37","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".hero-mobile-text-and-btn","selectorGuids":["df415c40-8ad5-e26f-ef5c-e27ed2f83ee8"]},"value":0,"unit":""}},{"id":"a-8-n-19","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e50"},"yValue":-10,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-17","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e50"},"value":0,"unit":""}},{"id":"a-8-n-15","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".logo-wrapper","selectorGuids":["37d5da07-b607-e1c9-1268-fc3c5e6b1392"]},"yValue":-10,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-13","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".logo-wrapper","selectorGuids":["37d5da07-b607-e1c9-1268-fc3c5e6b1392"]},"value":0,"unit":""}},{"id":"a-8-n-7","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".hero-image-wrapper.left","selectorGuids":["383c2f37-4bb6-efb2-8fe5-25ebbc9ce73f","a22f079a-c0fd-edc8-a079-4a007fa15e1b"]},"xValue":-12,"xUnit":"px","yUnit":"PX","zUnit":"PX"}},{"id":"a-8-n-5","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".hero-image-wrapper.left","selectorGuids":["383c2f37-4bb6-efb2-8fe5-25ebbc9ce73f","a22f079a-c0fd-edc8-a079-4a007fa15e1b"]},"value":0,"unit":""}},{"id":"a-8-n-3","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".hero-content","selectorGuids":["40253c2c-464b-c1b0-e0ab-78d99fd9a2a0"]},"yValue":12,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-21","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e53"},"yValue":-10,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-22","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e53"},"value":0,"unit":""}},{"id":"a-8-n-25","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e56"},"yValue":-10,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-26","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e56"},"value":0,"unit":""}},{"id":"a-8-n-29","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e59"},"yValue":-10,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-30","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e59"},"value":0,"unit":""}},{"id":"a-8-n-33","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e5c"},"yValue":-10,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-34","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e5c"},"value":0,"unit":""}},{"id":"a-8-n-46","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".hero-image-wrapper.right","selectorGuids":["383c2f37-4bb6-efb2-8fe5-25ebbc9ce73f","e90f8225-ced3-3f81-07a4-c421e6487425"]},"value":0,"unit":""}},{"id":"a-8-n-54","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".primary-button.secondary-page","selectorGuids":["416341c2-dc3d-9415-fa5b-d3168c229fb8","52b965c9-9b30-2eb2-f182-1980f52dc30d"]},"yValue":-10,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-55","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".primary-button.secondary-page","selectorGuids":["416341c2-dc3d-9415-fa5b-d3168c229fb8","52b965c9-9b30-2eb2-f182-1980f52dc30d"]},"value":0,"unit":""}},{"id":"a-8-n-58","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".secondary-button.for-navbar","selectorGuids":["b5532136-c037-8f9d-ca00-4a5220b2c604","9557ec1d-5169-accb-027b-545f651aeb42"]},"yValue":-10,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-59","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".secondary-button.for-navbar","selectorGuids":["b5532136-c037-8f9d-ca00-4a5220b2c604","9557ec1d-5169-accb-027b-545f651aeb42"]},"value":0,"unit":""}}]},{"actionItems":[{"id":"a-8-n-2","actionTypeId":"STYLE_OPACITY","config":{"delay":2000,"easing":"outQuad","duration":1000,"target":{"selector":".hero-content","selectorGuids":["40253c2c-464b-c1b0-e0ab-78d99fd9a2a0"]},"value":1,"unit":""}},{"id":"a-8-n-44","actionTypeId":"TRANSFORM_MOVE","config":{"delay":2000,"easing":"outQuad","duration":1000,"target":{"selector":".menu-button","selectorGuids":["d5f566e3-b51c-4737-0900-bd1dbcf9d85f"]},"yValue":0,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-42","actionTypeId":"STYLE_OPACITY","config":{"delay":2000,"easing":"outQuad","duration":1000,"target":{"selector":".menu-button","selectorGuids":["d5f566e3-b51c-4737-0900-bd1dbcf9d85f"]},"value":1,"unit":""}},{"id":"a-8-n-16","actionTypeId":"TRANSFORM_MOVE","config":{"delay":2000,"easing":"outQuad","duration":1000,"target":{"selector":".logo-wrapper","selectorGuids":["37d5da07-b607-e1c9-1268-fc3c5e6b1392"]},"yValue":0,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-14","actionTypeId":"STYLE_OPACITY","config":{"delay":2000,"easing":"outQuad","duration":1000,"target":{"selector":".logo-wrapper","selectorGuids":["37d5da07-b607-e1c9-1268-fc3c5e6b1392"]},"value":1,"unit":""}},{"id":"a-8-n-4","actionTypeId":"TRANSFORM_MOVE","config":{"delay":2000,"easing":"outQuad","duration":1000,"target":{"selector":".hero-content","selectorGuids":["40253c2c-464b-c1b0-e0ab-78d99fd9a2a0"]},"yValue":0,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-18","actionTypeId":"STYLE_OPACITY","config":{"delay":2100,"easing":"outQuad","duration":1000,"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e50"},"value":1,"unit":""}},{"id":"a-8-n-20","actionTypeId":"TRANSFORM_MOVE","config":{"delay":2100,"easing":"outQuad","duration":1000,"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e50"},"yValue":0,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-6","actionTypeId":"STYLE_OPACITY","config":{"delay":2200,"easing":"outQuad","duration":1000,"target":{"selector":".hero-image-wrapper.left","selectorGuids":["383c2f37-4bb6-efb2-8fe5-25ebbc9ce73f","a22f079a-c0fd-edc8-a079-4a007fa15e1b"]},"value":1,"unit":""}},{"id":"a-8-n-49","actionTypeId":"TRANSFORM_MOVE","config":{"delay":2200,"easing":"outQuad","duration":1000,"target":{"selector":".hero-image-wrapper.right","selectorGuids":["383c2f37-4bb6-efb2-8fe5-25ebbc9ce73f","e90f8225-ced3-3f81-07a4-c421e6487425"]},"xValue":0,"xUnit":"px","yUnit":"PX","zUnit":"PX"}},{"id":"a-8-n-8","actionTypeId":"TRANSFORM_MOVE","config":{"delay":2200,"easing":"outQuad","duration":1000,"target":{"selector":".hero-image-wrapper.left","selectorGuids":["383c2f37-4bb6-efb2-8fe5-25ebbc9ce73f","a22f079a-c0fd-edc8-a079-4a007fa15e1b"]},"xValue":0,"xUnit":"px","yUnit":"PX","zUnit":"PX"}},{"id":"a-8-n-23","actionTypeId":"STYLE_OPACITY","config":{"delay":2200,"easing":"outQuad","duration":1000,"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e53"},"value":1,"unit":""}},{"id":"a-8-n-24","actionTypeId":"TRANSFORM_MOVE","config":{"delay":2200,"easing":"outQuad","duration":1000,"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e53"},"yValue":0,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-47","actionTypeId":"STYLE_OPACITY","config":{"delay":2200,"easing":"outQuad","duration":1000,"target":{"selector":".hero-image-wrapper.right","selectorGuids":["383c2f37-4bb6-efb2-8fe5-25ebbc9ce73f","e90f8225-ced3-3f81-07a4-c421e6487425"]},"value":1,"unit":""}},{"id":"a-8-n-27","actionTypeId":"STYLE_OPACITY","config":{"delay":2300,"easing":"outQuad","duration":1000,"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e56"},"value":1,"unit":""}},{"id":"a-8-n-53","actionTypeId":"TRANSFORM_MOVE","config":{"delay":2300,"easing":"outQuad","duration":1000,"target":{"selector":".link-wrapper.secondary-page","selectorGuids":["36e27251-2214-4cf1-eb45-396588119bad","92e31bd9-2991-2110-1abd-78844da5dff9"]},"yValue":0,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-51","actionTypeId":"STYLE_OPACITY","config":{"delay":2300,"easing":"outQuad","duration":1000,"target":{"selector":".link-wrapper.secondary-page","selectorGuids":["36e27251-2214-4cf1-eb45-396588119bad","92e31bd9-2991-2110-1abd-78844da5dff9"]},"value":1,"unit":""}},{"id":"a-8-n-28","actionTypeId":"TRANSFORM_MOVE","config":{"delay":2300,"easing":"outQuad","duration":1000,"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e56"},"yValue":0,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-31","actionTypeId":"STYLE_OPACITY","config":{"delay":2400,"easing":"outQuad","duration":1000,"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e59"},"value":1,"unit":""}},{"id":"a-8-n-40","actionTypeId":"TRANSFORM_MOVE","config":{"delay":2400,"easing":"outQuad","duration":1000,"target":{"selector":".hero-mobile-text-and-btn","selectorGuids":["df415c40-8ad5-e26f-ef5c-e27ed2f83ee8"]},"yValue":0,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-38","actionTypeId":"STYLE_OPACITY","config":{"delay":2400,"easing":"outQuad","duration":1000,"target":{"selector":".hero-mobile-text-and-btn","selectorGuids":["df415c40-8ad5-e26f-ef5c-e27ed2f83ee8"]},"value":1,"unit":""}},{"id":"a-8-n-32","actionTypeId":"TRANSFORM_MOVE","config":{"delay":2400,"easing":"outQuad","duration":1000,"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e59"},"yValue":0,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-56","actionTypeId":"TRANSFORM_MOVE","config":{"delay":2400,"easing":"outQuad","duration":1000,"target":{"selector":".primary-button.secondary-page","selectorGuids":["416341c2-dc3d-9415-fa5b-d3168c229fb8","52b965c9-9b30-2eb2-f182-1980f52dc30d"]},"yValue":0,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-57","actionTypeId":"STYLE_OPACITY","config":{"delay":2400,"easing":"outQuad","duration":1000,"target":{"selector":".primary-button.secondary-page","selectorGuids":["416341c2-dc3d-9415-fa5b-d3168c229fb8","52b965c9-9b30-2eb2-f182-1980f52dc30d"]},"value":1,"unit":""}},{"id":"a-8-n-60","actionTypeId":"TRANSFORM_MOVE","config":{"delay":2400,"easing":"outQuad","duration":1000,"target":{"selector":".secondary-button.for-navbar","selectorGuids":["b5532136-c037-8f9d-ca00-4a5220b2c604","9557ec1d-5169-accb-027b-545f651aeb42"]},"yValue":0,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-8-n-61","actionTypeId":"STYLE_OPACITY","config":{"delay":2400,"easing":"outQuad","duration":1000,"target":{"selector":".secondary-button.for-navbar","selectorGuids":["b5532136-c037-8f9d-ca00-4a5220b2c604","9557ec1d-5169-accb-027b-545f651aeb42"]},"value":1,"unit":""}},{"id":"a-8-n-35","actionTypeId":"STYLE_OPACITY","config":{"delay":2500,"easing":"outQuad","duration":1000,"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e5c"},"value":1,"unit":""}},{"id":"a-8-n-36","actionTypeId":"TRANSFORM_MOVE","config":{"delay":2500,"easing":"outQuad","duration":1000,"target":{"id":"168641a1-4189-3d35-88f0-3cb624138e5c"},"yValue":0,"xUnit":"PX","yUnit":"px","zUnit":"PX"}}]}],"useFirstGroupAsInitialState":true,"createdOn":1646203701082},"a-10":{"id":"a-10","title":"Fade In From Right","actionItemGroups":[{"actionItems":[{"id":"a-10-n","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":true,"id":"631e4c55f265cf80eccde88d|4f7a73ba-dfee-3c16-b4c9-96e1474c84b8"},"value":0,"unit":""}},{"id":"a-10-n-3","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":true,"id":"631e4c55f265cf80eccde88d|4f7a73ba-dfee-3c16-b4c9-96e1474c84b8"},"xValue":20,"xUnit":"px","yUnit":"PX","zUnit":"PX"}}]},{"actionItems":[{"id":"a-10-n-2","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"outQuad","duration":500,"target":{"useEventTarget":true,"id":"631e4c55f265cf80eccde88d|4f7a73ba-dfee-3c16-b4c9-96e1474c84b8"},"value":1,"unit":""}},{"id":"a-10-n-4","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"outQuad","duration":1000,"target":{"useEventTarget":true,"id":"631e4c55f265cf80eccde88d|4f7a73ba-dfee-3c16-b4c9-96e1474c84b8"},"xValue":0,"xUnit":"px","yUnit":"PX","zUnit":"PX"}}]}],"useFirstGroupAsInitialState":true,"createdOn":1646206555430},"a-15":{"id":"a-15","title":"Styleguide Dotted Line Animation","continuousParameterGroups":[{"id":"a-15-p","type":"SCROLL_PROGRESS","parameterLabel":"Scroll","continuousActionGroups":[{"keyframe":0,"actionItems":[{"id":"a-15-n","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".inner-dotted-line","selectorGuids":["22d124a3-90e0-c4d9-80a3-cd0f5f4ebd21"]},"heightValue":0,"widthUnit":"PX","heightUnit":"%","locked":false}}]},{"keyframe":60,"actionItems":[{"id":"a-15-n-2","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".inner-dotted-line","selectorGuids":["22d124a3-90e0-c4d9-80a3-cd0f5f4ebd21"]},"heightValue":100,"widthUnit":"PX","heightUnit":"%","locked":false}}]}]}],"createdOn":1646205999952},"a-11":{"id":"a-11","title":"Link Hover In","actionItemGroups":[{"actionItems":[{"id":"a-11-n","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"ease","duration":300,"target":{"useEventTarget":"CHILDREN","selector":".link-blob","selectorGuids":["f08b06b8-757e-8984-6add-697b6ae7672c"]},"xValue":0,"yValue":0,"locked":true}}]},{"actionItems":[{"id":"a-11-n-2","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"ease","duration":300,"target":{"useEventTarget":"CHILDREN","selector":".link-blob","selectorGuids":["f08b06b8-757e-8984-6add-697b6ae7672c"]},"xValue":1,"yValue":1,"locked":true}}]}],"useFirstGroupAsInitialState":true,"createdOn":1646211794504},"a-12":{"id":"a-12","title":"Link Hover Out","actionItemGroups":[{"actionItems":[{"id":"a-12-n","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"ease","duration":300,"target":{"useEventTarget":"CHILDREN","selector":".link-blob","selectorGuids":["f08b06b8-757e-8984-6add-697b6ae7672c"]},"xValue":0,"yValue":0,"locked":true}}]}],"useFirstGroupAsInitialState":false,"createdOn":1646211794504},"a-13":{"id":"a-13","title":"Button Hover In","actionItemGroups":[{"actionItems":[{"id":"a-13-n","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":true,"id":"631e4c55f265cf80eccde88d|2ccbf419-d953-fde6-3eff-375e16dd0ebc"},"globalSwatchId":"1e44d4c3","rValue":247,"bValue":156,"gValue":133,"aValue":1}}]},{"actionItems":[{"id":"a-13-n-2","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"ease","duration":300,"target":{"useEventTarget":true,"id":"631e4c55f265cf80eccde88d|2ccbf419-d953-fde6-3eff-375e16dd0ebc"},"globalSwatchId":"","rValue":255,"bValue":133,"gValue":102,"aValue":1}}]}],"useFirstGroupAsInitialState":true,"createdOn":1646212597114},"a-14":{"id":"a-14","title":"Button Hover Out","actionItemGroups":[{"actionItems":[{"id":"a-14-n","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"ease","duration":300,"target":{"useEventTarget":true,"id":"631e4c55f265cf80eccde88d|2ccbf419-d953-fde6-3eff-375e16dd0ebc"},"globalSwatchId":"1e44d4c3","rValue":247,"bValue":156,"gValue":133,"aValue":1}}]}],"useFirstGroupAsInitialState":false,"createdOn":1646212597114},"a-9":{"id":"a-9","title":"Roadmap Dotted Line Animation","continuousParameterGroups":[{"id":"a-9-p","type":"SCROLL_PROGRESS","parameterLabel":"Scroll","continuousActionGroups":[{"keyframe":0,"actionItems":[{"id":"a-9-n","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".inner-dotted-line","selectorGuids":["22d124a3-90e0-c4d9-80a3-cd0f5f4ebd21"]},"heightValue":0,"widthUnit":"PX","heightUnit":"%","locked":false}}]},{"keyframe":80,"actionItems":[{"id":"a-9-n-2","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".inner-dotted-line","selectorGuids":["22d124a3-90e0-c4d9-80a3-cd0f5f4ebd21"]},"heightValue":100,"widthUnit":"PX","heightUnit":"%","locked":false}}]}]}],"createdOn":1646205999952}},"site":{"mediaQueries":[{"key":"main","min":992,"max":10000},{"key":"medium","min":768,"max":991},{"key":"small","min":480,"max":767},{"key":"tiny","min":0,"max":479}]}} +); diff --git a/template/changelog.html b/template/changelog.html new file mode 100644 index 0000000..c5c35da --- /dev/null +++ b/template/changelog.html @@ -0,0 +1,187 @@ + + + + + + NFT Peeps - Webflow HTML website template + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+
Template Page
+
+

Changelog

+
+
+

Changelog page contains information about new versions/updates of this template.

+
+ Homepage +
+
+
+
NFT 1 image
+
+
+
+
+

Changelog page contains information about new versions/updates of this template.

+
+ Homepage +
+
+
+
+
+
+
+
Changelog
+
+

Template Versions

+
+
+
+
+
+
Mar 3, 2022
+
+
Version 1
+
+

Template Publish

+
+
+
+
+
+
+
Apr 24, 2022
+
+
Version 2
+
+

Loader Text Link

+
+
+
+
+
+
+ +
+
+
Bored NFT Peeps
+
+
+
Bored NFT Peeps
+
+
+
Bored NFT Peeps
+
+
+
+ + + + + \ No newline at end of file diff --git a/template/licenses.html b/template/licenses.html new file mode 100644 index 0000000..65b8951 --- /dev/null +++ b/template/licenses.html @@ -0,0 +1,187 @@ + + + + + + NFT Peeps - Webflow HTML website template + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+
Template Page
+
+

Licenses

+
+
+

Licenses page contains licenses that are used throughout this template.

+
+ Homepage +
+
+
+
NFT 1 image
+
+
+
+
+

Licenses page contains licenses that are used throughout this template.

+
+ Homepage +
+
+
+
+
+
+
+
Licenses
+
+

Used Licenses

+
+
+
+
+
+
No. 1
+
+
Illustrations
+
+

All Illustrations were sourced from Blush and are free for use. Creator: Pablo Stanley

+
+
+
+
+
+
+
No. 2
+
+
Fonts
+
+

Fonts used on this website are Open Sans and Montserrat and are free for use.

+
+
+
+
+
+
+ +
+
+
Bored NFT Peeps
+
+
+
Bored NFT Peeps
+
+
+
Bored NFT Peeps
+
+
+
+ + + + + \ No newline at end of file diff --git a/template/style-guide.html b/template/style-guide.html new file mode 100644 index 0000000..4031a5a --- /dev/null +++ b/template/style-guide.html @@ -0,0 +1,266 @@ + + + + + + NFT Peeps - Webflow HTML website template + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+
Template Page
+
+

Style Guide

+
+
+

Style Guide page contains styles that are used the most throughout this template.

+
+ Homepage +
+
+
+
NFT 1 image
+
+
+
+
+

Style Guide page contains styles that are used the most throughout this template.

+
+ Homepage +
+
+
+
+
+
+
+
Styles
+
+

Most Used Styles

+
+
+
+
+
+
Lorem
+
+
+
+
+
+
+
+
Huge Text
+
+
+
+
+
+
+

Lorem

+
+
+
+
+
+
+
+
Heading 1
+
+
+
+
+
+
+

Lorem

+
+
+
+
+
+
+
+
Heading 2
+
+
+
+
+
+
+
This is some text inside of a div block.
+
+
+
+
+
+
+
+
Big Text
+
+
+
+
+
+
+
This is some text inside of a div block.
+
+
+
+
+
+
+
+
Small Text
+
+
+
+
+
+
+

Tempor interdum sed nisl aliquam ut orci feugiat neque. Nibh amet proin in tristique. Ipsum morbi adipiscing faucibus eu odio in tellus risus.

+
+
+
+
+
+
+
+
Paragraph
+
+
+
+
+
+ +
+
+
Primary Button
+
+
+
+
+
+
+ +
+
+
Bored NFT Peeps
+
+
+
Bored NFT Peeps
+
+
+
Bored NFT Peeps
+
+
+
+ + + + + \ No newline at end of file